La Bibliothèque de Neverwinter Nights
Aide et informations diverses sur Neverwinter Nights ainsi que D&D3.
Aide et informations diverses sur Neverwinter Nights ainsi que D&D3.
FAQ
Rechercher
Liste des Membres
Groupes d'utilisateurs
S'enregistrer Se connecter pour vérifier ses messages privés Connexion
S'enregistrer Se connecter pour vérifier ses messages privés Connexion
La date/heure actuelle est 29/12/2024 18:45:34
La Bibliothèque de Neverwinter Nights Index du Forum »
La Bibliothèque Binaire du NWScript - Neverwinter Nights
Voir le sujet précédent ¤ Voir le sujet suivant | |
---|---|
Auteur | Message |
N'kälhäash Novice Messages: 12 |
Bonjour ,
Voila , j'ai déjà un script dans onactivate du module et je dois en placer un autre comment les fusionner ? merci |
Revenir en haut | |
Cassin Papa-poule(t) & poissard intemporel Messages: 7471 Localisation: 6 bis rue de la Couveuse, Poulailler 39b |
NORMALEMENT si tes scripts n'utilisent pas les mêmes références il suffit de les coller l'un en dessous de l'autre (tu inclus le deuxième dans le void main du premier).
Mais si tu mettais tes scripts, ça irait mieux pour t'aider _________________ Aventure ! Camaraderie ! Et acier sur acier ! Les ingrédients légendaires ! Hein Bouh ? http://cassin1306.spaces.live.com |
Revenir en haut | |
N'kälhäash Novice Messages: 12 |
Voilà ce que j'ai déjà (DM helper) :
Code : #include "hc_inc"
#include "hc_inc_on_act" #include "hc_text_activate" object oOther; void main() { if(!preEvent()) return; object oItem=GetItemActivated(); object oUser=GetItemActivator(); oOther=GetItemActivatedTarget(); string sItemTag=GetTag(oItem); if(sItemTag=="TrackerTool" && GetLevelByClass(CLASS_TYPE_RANGER, oUser) > 0) { ExecuteScript("hc_track_start", oUser); postEvent(); return; } if(sItemTag=="hc_paladinsymb" && GetLevelByClass(CLASS_TYPE_PALADIN,oUser)>0) { ExecuteScript("hc_pal_detevil",oUser); postEvent(); return; } if ( sItemTag == "hc_palbadgecour" ) { if(GetLevelByClass(CLASS_TYPE_PALADIN, oUser) < 2) { SendMessageToPC(oUser,NOINSPIRE); postEvent(); return; } location lHere = GetItemActivatedTargetLocation(); oOther=GetFirstObjectInShape(SHAPE_SPHERE,3.0,GetLocation(oUser),FALSE,OBJECT_TYPE_CREATURE); effect eVis = EffectVisualEffect(VFX_IMP_GOOD_HELP); ApplyEffectToObject(DURATION_TYPE_TEMPORARY,eVis,oUser); while ( GetIsObjectValid(oOther) ) { if ( (GetIsFriend(oOther,oUser)) && (oOther != oUser ) ) { ApplyEffectToObject(DURATION_TYPE_TEMPORARY,EffectSavingThrowIncrease(SAVING_THROW_WILL,4,SAVING_THROW_TYPE_FEAR),oOther,d6(2)*6.0); if ( GetIsPC(oOther) ) SendMessageToPC(oOther,IMBUECOURAGE); } oOther=GetNextObjectInShape(SHAPE_SPHERE,3.0,GetLocation(oUser),FALSE,OBJECT_TYPE_CREATURE); } } // Thieves' Tools if ((sItemTag == "thievesTools") || (sItemTag == "thievesToolsMaster")) { SetLocalObject(oUser,"OTHER",oOther); SetLocalObject(oUser,"ITEM",oItem); SetLocalString(oUser,"TAG",sItemTag); ExecuteScript("hc_act_thieftool",oUser); postEvent(); return; } if ( sItemTag == "BookOfSummons" ) { AssignCommand(oUser, ActionStartConversation(oUser, "hc_c_bookofsummo", TRUE)); } // Active trap searching, gets rid of auto Take 20 problem. if (sItemTag == "searchtool") { SetLocalObject(oUser,"OTHER",oOther); SetLocalObject(oUser,"ITEM",oItem); ExecuteScript("hc_act_search",oUser); postEvent(); return; } //Begin Healer's Kit = With thanks to Andalus for taking the time to make. if(sItemTag=="hc_healkit") { if(GetIsPC(oOther) == FALSE) { postEvent(); return; } SetLocalObject(oUser,"OTHER",oOther); SetLocalObject(oUser,"ITEM",oItem); ExecuteScript("hc_act_healkit",oUser); postEvent(); return; } //End Healer's Kit if(sItemTag=="hc_skinning") { SetLocalObject(oUser,"OTHER",oOther); SetLocalObject(oUser,"ITEM",oItem); ExecuteScript("hc_act_skinning",oUser); postEvent(); return; } if(sItemTag=="hc_acidflask" || sItemTag=="hc_alchfire" || sItemTag=="hc_holywater" || sItemTag=="hc_tangle" || sItemTag=="hc_thunder") { SetLocalObject(oUser,"GRENADE",oItem); SetLocalObject(oUser,"GRENADETARGET",oOther); ExecuteScript("hc_grenade", oUser); } if(sItemTag=="hc_oilflask") { SetLocalObject(oUser,"OTHER",oOther); SetLocalObject(oUser,"ITEM",oItem); ExecuteScript("hc_act_oilflask",oUser); postEvent(); return; } if(FindSubString(sItemTag,"PotionOf")!= -1) { object oTarget=GetItemActivatedTarget(); SetLocalObject(oUser,"OTHER",oOther); SetLocalObject(oUser,"ITEM",oItem); SetLocalString(oUser,"TAG",sItemTag); ExecuteScript("hc_act_potion",oUser); postEvent(); return; } // If the item is the DM Helper, activate it after checking to make sure a // PC hasnt got their hands on it. object oActivator=oUser; string sHTarget=""; string sHLoc; string sHConv; if(sItemTag=="HCRHelper" || sItemTag=="HCRHelpwand") { sHTarget="HCRHtarget"; sHLoc="HCRHloc"; sHConv="hcrhconv"; } if(GetTag(oItem)=="DMsHelper") { sHTarget="dmwandtarget"; sHLoc="dmwandloc"; sHConv="dmwand"; } if(GetTag(oItem)=="WandOfFX") { sHTarget="FXWandTarget"; sHLoc="FXWandLoc"; sHConv="fxwand"; } if(sHTarget!="") { // get the wand's activator and target, put target info into local vars on activator object oDM = GetItemActivator(); object oMyTarget = GetItemActivatedTarget(); SetLocalObject(oDM, sHTarget, oMyTarget); location lTargetLoc = GetItemActivatedTargetLocation(); SetLocalLocation(oDM, sHLoc, lTargetLoc); object oTest=GetFirstPC(); string sTestName = GetPCPlayerName(oDM); // Test to make sure the activator is a DM, or is a DM // controlling a creature. while (GetIsObjectValid(oTest) == TRUE) { if (GetPCPlayerName(oTest) == sTestName && GetIsDM(oTest) == FALSE && GetPCPublicCDKey(oTest)!=GetPersistentString(oMod,"PLAYERDM")) { DestroyObject(oItem); SendMessageToPC(oActivator,NOMORTAL); postEvent(); return; } oTest=GetNextPC(); } //Make the activator start a conversation with itself AssignCommand(oDM, ActionStartConversation(oDM, sHConv, TRUE)); postEvent(); return; } if(GetTag(oItem)=="EmoteWand") { AssignCommand(oActivator, ActionStartConversation(oActivator, "emotewand", TRUE)); postEvent(); return; } if(GetTag(oItem)=="XPWand") { object oDM = GetItemActivator(); object oMyTarget = GetItemActivatedTarget(); SetLocalObject (oDM, "xpwand_target", oMyTarget); AssignCommand (oDM, ActionStartConversation (oDM, "xpwand_conv", TRUE)); postEvent(); return; } if(sItemTag=="PlayerCorpse") { object oCleric=GetItemActivatedTarget(); SetLocalObject(oUser,"CLERIC",oCleric); SetLocalObject(oUser,"ITEM",oItem); ExecuteScript("hc_act_pct",oUser); } SetLocalObject(oUser,"OTHER",oOther); SetLocalObject(oUser,"ITEM",oItem); SetLocalString(oUser,"TAG",sItemTag); ExecuteScript("hc_act_others",oUser); postEvent(); } Et voila ce que j'aimerai rajouter : Code : #include "gzinc_skills"
void main() { // START-------------------------- Dom Queron's Siege Engine System ---------------- object oItm = GetItemActivated(); object oPC = GetItemActivator(); if (GetTag(oItm) == "GZ_IT_BOOK_SIEGE") { if (GZSkillGetLevel(oPC,GZ_SKILL_SIEGECRAFT)>0 || GZSkillGetLevel(oPC,GZ_SKILL_SIEGECRAFT)<30) { GZSkillSetSkill(oPC,GZ_SKILL_SIEGECRAFT,GZSkillGetLevel(oPC,GZ_SKILL_SIEGECRAFT)+10); } else { FloatingTextStringOnCreature("Unfortunatelly you cannot learn anything from this book!",oPC); } } else if (GetTag(oItm) == "GZ_IT_CAT_BOX" || GetTag(oItm) == "GZ_IT_CAT_BOXM" ) { if (GZSkillGetLevel(oPC,GZ_SKILL_SIEGECRAFT)>0) // minimum skill required to use this item { location lNewPosition = GetLocation(oPC); object oNewCatapult; if (GetTag(oItm) == "GZ_IT_CAT_BOX") oNewCatapult = CreateObject(OBJECT_TYPE_PLACEABLE, "gz_obj_lcatap", lNewPosition); else oNewCatapult = CreateObject(OBJECT_TYPE_PLACEABLE, "gz_obj_mcatap", lNewPosition); if (oNewCatapult != OBJECT_INVALID) //only destroy item when successful deployed { //Designate the player as owner of that catapult. SetLocalObject(oNewCatapult, "oOwner", oPC); SetLocalObject(oPC, "oCatapult", oNewCatapult); //Make the catapult launch its conversation with the player. //AssignCommand(oNewCatapult, ActionStartConversation(oPC, "", TRUE)); DestroyObject(oItm); } else { FloatingTextStringOnCreature("This place is suitable for a siege engine!",oPC); } }else { FloatingTextStringOnCreature("I do not know how to handle this item!",oPC); } } // END-------------------------- Dom Queron's Siege Engine System ---------------- } ^^ |
Revenir en haut | |
Cassin Papa-poule(t) & poissard intemporel Messages: 7471 Localisation: 6 bis rue de la Couveuse, Poulailler 39b |
Ben normalement en faisant ça :
Code : #include "hc_inc"
#include "hc_inc_on_act" #include "hc_text_activate" object oOther; void main() { if(!preEvent()) return; object oItem=GetItemActivated(); object oUser=GetItemActivator(); oOther=GetItemActivatedTarget(); string sItemTag=GetTag(oItem); if(sItemTag=="TrackerTool" && GetLevelByClass(CLASS_TYPE_RANGER, oUser) > 0) { ExecuteScript("hc_track_start", oUser); postEvent(); return; } if(sItemTag=="hc_paladinsymb" && GetLevelByClass(CLASS_TYPE_PALADIN,oUser)>0) { ExecuteScript("hc_pal_detevil",oUser); postEvent(); return; } if ( sItemTag == "hc_palbadgecour" ) { if(GetLevelByClass(CLASS_TYPE_PALADIN, oUser) < 2) { SendMessageToPC(oUser,NOINSPIRE); postEvent(); return; } location lHere = GetItemActivatedTargetLocation(); oOther=GetFirstObjectInShape(SHAPE_SPHERE,3.0,GetLocation(oUser),FALSE,OBJECT_TYPE_CREATURE); effect eVis = EffectVisualEffect(VFX_IMP_GOOD_HELP); ApplyEffectToObject(DURATION_TYPE_TEMPORARY,eVis,oUser); while ( GetIsObjectValid(oOther) ) { if ( (GetIsFriend(oOther,oUser)) && (oOther != oUser ) ) { ApplyEffectToObject(DURATION_TYPE_TEMPORARY,EffectSavingThrowIncrease(SAVING_THROW_WILL,4,SAVING_THROW_TYPE_FEAR),oOther,d6(2)*6.0); if ( GetIsPC(oOther) ) SendMessageToPC(oOther,IMBUECOURAGE); } oOther=GetNextObjectInShape(SHAPE_SPHERE,3.0,GetLocation(oUser),FALSE,OBJECT_TYPE_CREATURE); } } // Thieves' Tools if ((sItemTag == "thievesTools") || (sItemTag == "thievesToolsMaster")) { SetLocalObject(oUser,"OTHER",oOther); SetLocalObject(oUser,"ITEM",oItem); SetLocalString(oUser,"TAG",sItemTag); ExecuteScript("hc_act_thieftool",oUser); postEvent(); return; } if ( sItemTag == "BookOfSummons" ) { AssignCommand(oUser, ActionStartConversation(oUser, "hc_c_bookofsummo", TRUE)); } // Active trap searching, gets rid of auto Take 20 problem. if (sItemTag == "searchtool") { SetLocalObject(oUser,"OTHER",oOther); SetLocalObject(oUser,"ITEM",oItem); ExecuteScript("hc_act_search",oUser); postEvent(); return; } //Begin Healer's Kit = With thanks to Andalus for taking the time to make. if(sItemTag=="hc_healkit") { if(GetIsPC(oOther) == FALSE) { postEvent(); return; } SetLocalObject(oUser,"OTHER",oOther); SetLocalObject(oUser,"ITEM",oItem); ExecuteScript("hc_act_healkit",oUser); postEvent(); return; } //End Healer's Kit if(sItemTag=="hc_skinning") { SetLocalObject(oUser,"OTHER",oOther); SetLocalObject(oUser,"ITEM",oItem); ExecuteScript("hc_act_skinning",oUser); postEvent(); return; } if(sItemTag=="hc_acidflask" || sItemTag=="hc_alchfire" || sItemTag=="hc_holywater" || sItemTag=="hc_tangle" || sItemTag=="hc_thunder") { SetLocalObject(oUser,"GRENADE",oItem); SetLocalObject(oUser,"GRENADETARGET",oOther); ExecuteScript("hc_grenade", oUser); } if(sItemTag=="hc_oilflask") { SetLocalObject(oUser,"OTHER",oOther); SetLocalObject(oUser,"ITEM",oItem); ExecuteScript("hc_act_oilflask",oUser); postEvent(); return; } if(FindSubString(sItemTag,"PotionOf")!= -1) { object oTarget=GetItemActivatedTarget(); SetLocalObject(oUser,"OTHER",oOther); SetLocalObject(oUser,"ITEM",oItem); SetLocalString(oUser,"TAG",sItemTag); ExecuteScript("hc_act_potion",oUser); postEvent(); return; } // If the item is the DM Helper, activate it after checking to make sure a // PC hasnt got their hands on it. object oActivator=oUser; string sHTarget=""; string sHLoc; string sHConv; if(sItemTag=="HCRHelper" || sItemTag=="HCRHelpwand") { sHTarget="HCRHtarget"; sHLoc="HCRHloc"; sHConv="hcrhconv"; } if(GetTag(oItem)=="DMsHelper") { sHTarget="dmwandtarget"; sHLoc="dmwandloc"; sHConv="dmwand"; } if(GetTag(oItem)=="WandOfFX") { sHTarget="FXWandTarget"; sHLoc="FXWandLoc"; sHConv="fxwand"; } if(sHTarget!="") { // get the wand's activator and target, put target info into local vars on activator object oDM = GetItemActivator(); object oMyTarget = GetItemActivatedTarget(); SetLocalObject(oDM, sHTarget, oMyTarget); location lTargetLoc = GetItemActivatedTargetLocation(); SetLocalLocation(oDM, sHLoc, lTargetLoc); object oTest=GetFirstPC(); string sTestName = GetPCPlayerName(oDM); // Test to make sure the activator is a DM, or is a DM // controlling a creature. while (GetIsObjectValid(oTest) == TRUE) { if (GetPCPlayerName(oTest) == sTestName && GetIsDM(oTest) == FALSE && GetPCPublicCDKey(oTest)!=GetPersistentString(oMod,"PLAYERDM")) { DestroyObject(oItem); SendMessageToPC(oActivator,NOMORTAL); postEvent(); return; } oTest=GetNextPC(); } //Make the activator start a conversation with itself AssignCommand(oDM, ActionStartConversation(oDM, sHConv, TRUE)); postEvent(); return; } if(GetTag(oItem)=="EmoteWand") { AssignCommand(oActivator, ActionStartConversation(oActivator, "emotewand", TRUE)); postEvent(); return; } if(GetTag(oItem)=="XPWand") { object oDM = GetItemActivator(); object oMyTarget = GetItemActivatedTarget(); SetLocalObject (oDM, "xpwand_target", oMyTarget); AssignCommand (oDM, ActionStartConversation (oDM, "xpwand_conv", TRUE)); postEvent(); return; } if(sItemTag=="PlayerCorpse") { object oCleric=GetItemActivatedTarget(); SetLocalObject(oUser,"CLERIC",oCleric); SetLocalObject(oUser,"ITEM",oItem); ExecuteScript("hc_act_pct",oUser); } SetLocalObject(oUser,"OTHER",oOther); SetLocalObject(oUser,"ITEM",oItem); SetLocalString(oUser,"TAG",sItemTag); ExecuteScript("hc_act_others",oUser); postEvent(); // START-------------------------- Dom Queron's Siege Engine System ---------------- object oItm = GetItemActivated(); object oPC = GetItemActivator(); if (GetTag(oItm) == "GZ_IT_BOOK_SIEGE") { if (GZSkillGetLevel(oPC,GZ_SKILL_SIEGECRAFT)>0 || GZSkillGetLevel(oPC,GZ_SKILL_SIEGECRAFT)<30) { GZSkillSetSkill(oPC,GZ_SKILL_SIEGECRAFT,GZSkillGetLevel(oPC,GZ_SKILL_SIEGECRAFT)+10); } else { FloatingTextStringOnCreature("Unfortunatelly you cannot learn anything from this book!",oPC); } } else if (GetTag(oItm) == "GZ_IT_CAT_BOX" || GetTag(oItm) == "GZ_IT_CAT_BOXM" ) { if (GZSkillGetLevel(oPC,GZ_SKILL_SIEGECRAFT)>0) // minimum skill required to use this item { location lNewPosition = GetLocation(oPC); object oNewCatapult; if (GetTag(oItm) == "GZ_IT_CAT_BOX") oNewCatapult = CreateObject(OBJECT_TYPE_PLACEABLE, "gz_obj_lcatap", lNewPosition); else oNewCatapult = CreateObject(OBJECT_TYPE_PLACEABLE, "gz_obj_mcatap", lNewPosition); if (oNewCatapult != OBJECT_INVALID) //only destroy item when successful deployed { //Designate the player as owner of that catapult. SetLocalObject(oNewCatapult, "oOwner", oPC); SetLocalObject(oPC, "oCatapult", oNewCatapult); //Make the catapult launch its conversation with the player. //AssignCommand(oNewCatapult, ActionStartConversation(oPC, "", TRUE)); DestroyObject(oItm); } else { FloatingTextStringOnCreature("This place is suitable for a siege engine!",oPC); } }else { FloatingTextStringOnCreature("I do not know how to handle this item!",oPC); } } // END-------------------------- Dom Queron's Siege Engine System ---------------- } ça devrait marcher (à vérifier hein, je sais pas si ça compile, mais normalement il ne devrait pas y avoir de problème) _________________ Aventure ! Camaraderie ! Et acier sur acier ! Les ingrédients légendaires ! Hein Bouh ? http://cassin1306.spaces.live.com |
Revenir en haut | |
N'kälhäash Novice Messages: 12 |
ça marche, merci bien
|
Revenir en haut | |
La Bibliothèque de Neverwinter Nights Index du Forum »
La Bibliothèque Binaire du NWScript - Neverwinter Nights
Page 1 sur 1 ¤
Vous ne pouvez pas poster de nouveaux sujets dans ce forum
Vous ne pouvez pas répondre aux sujets dans ce forum
Vous ne pouvez pas éditer vos messages dans ce forum
Vous ne pouvez pas supprimer vos messages dans ce forum
Vous ne pouvez pas voter dans les sondages de ce forum