|
| Création du dopple supérieur | |
| | Auteur | Message |
---|
Miltiades Miltiades, paladin de Tyr
Nombre de messages : 551 Localisation : En train de chatier le mal Date d'inscription : 16/12/2005
| Sujet: Création du dopple supérieur Mar 10 Jan - 22:08 | |
| Pourrais-tu créer le dopple qui clone parfaitement le PJ le plus proche stp?
Il pourra servir pour des rp futurs intéressants
merci | |
| | | Ba'elzaden Maitre d'Aelor
Nombre de messages : 909 Date d'inscription : 15/12/2005
| Sujet: Re: Création du dopple supérieur Mar 10 Jan - 22:52 | |
| Istanir avait un script comme ça mais il marche que une fois sur deux... (soit le dopple restait sans se changer soit le clone était aps hostile enfin ça marchaitr que moyennement) | |
| | | Gimli Oakenshield L'ignorant en Hardware
Nombre de messages : 783 Localisation : Près de mon ordi ! Date d'inscription : 15/12/2005
| Sujet: Re: Création du dopple supérieur Jeu 12 Jan - 17:16 | |
| J'vais voir ce que je peux faire ... | |
| | | Gimli Oakenshield L'ignorant en Hardware
Nombre de messages : 783 Localisation : Près de mon ordi ! Date d'inscription : 15/12/2005
| Sujet: Re: Création du dopple supérieur Jeu 12 Jan - 17:35 | |
| Bon, j'ai peut-être trouvé quelquechose qui peux t'interresser mais il me faut des précisions : le dopple arrive dans quelles condition et faut-il que s'il apperçoit un nouveau pj il change a nouveau de forme ? | |
| | | Miltiades Miltiades, paladin de Tyr
Nombre de messages : 551 Localisation : En train de chatier le mal Date d'inscription : 16/12/2005
| Sujet: Re: Création du dopple supérieur Jeu 12 Jan - 21:08 | |
| disons qu'il peut apparaître lors d'une rencontre ou si j'en place un avt que les pj arrivent.
Sinon il prend la forme du premier pj rencontré et n'en change plus. | |
| | | Gimli Oakenshield L'ignorant en Hardware
Nombre de messages : 783 Localisation : Près de mon ordi ! Date d'inscription : 15/12/2005
| Sujet: Re: Création du dopple supérieur Jeu 12 Jan - 22:45 | |
| C'est exactement ça : doppel
Dernière édition par le Mer 25 Jan - 16:35, édité 1 fois | |
| | | Gimli Oakenshield L'ignorant en Hardware
Nombre de messages : 783 Localisation : Près de mon ordi ! Date d'inscription : 15/12/2005
| Sujet: Re: Création du dopple supérieur Dim 15 Jan - 15:18 | |
| Désolé, J'avais oublié une condition et deux ou trois truc dans le .erf précédent .. Voilma maintenant, cela se limite a un script : a mettre dans le OnPerception ... - Code:
-
//////////////////////////////////////////////////////////// // Here you can assign actions/behavior to the Doppelganger //////////////////////////////////////////////////////////// void CommandDoppelganger(object oDoppelganger, object oPc) { AssignCommand(oDoppelganger, ActionMoveToObject(oPc, TRUE, 7.0f)); AssignCommand(oDoppelganger, ActionDoCommand(PlayVoiceChat(VOICE_CHAT_TAUNT, OBJECT_SELF))); AssignCommand(oDoppelganger, ActionDoCommand(ActionPlayAnimation(ANIMATION_FIREFORGET_TAUNT))); AssignCommand(oDoppelganger, ActionDoCommand(ActionAttack(oPc, FALSE))); }
//////////////////////////////////////////////////////////// // The Main script that launches OnEnter //////////////////////////////////////////////////////////// void main() { object oPC = GetLastPerceived(); string sName = GetName(oPC);
if(GetIsPC(oPC) && GetLastPerceptionSeen()) { object oSlot = GetItemInSlot(INVENTORY_SLOT_RIGHTHAND, oPC); string sRes = GetResRef(oSlot); location lNest = GetLocation(OBJECT_SELF); DestroyObject(OBJECT_SELF); CopyObject(oPC, lNest, OBJECT_INVALID, "doppelganger_2"); //modified the tag! object oDoppelganger = GetNearestObjectByTag("doppelganger_2"); ChangeToStandardFaction(oDoppelganger, STANDARD_FACTION_HOSTILE); object oItem = GetFirstItemInInventory(oDoppelganger); while (GetIsObjectValid(oItem) == TRUE) { SetDroppableFlag(oItem,FALSE); oItem = GetNextItemInInventory(oDoppelganger); } int nHP = GetMaxHitPoints(oDoppelganger); ApplyEffectToObject(DURATION_TYPE_INSTANT, EffectHeal(nHP), oDoppelganger); CommandDoppelganger(oDoppelganger, oPC); oSlot = GetItemInSlot(INVENTORY_SLOT_ARMS, oDoppelganger); SetDroppableFlag(oSlot,FALSE); oSlot = GetItemInSlot(INVENTORY_SLOT_ARROWS, oDoppelganger); SetDroppableFlag(oSlot,FALSE); oSlot = GetItemInSlot(INVENTORY_SLOT_BELT, oDoppelganger); SetDroppableFlag(oSlot,FALSE); oSlot = GetItemInSlot(INVENTORY_SLOT_BOLTS, oDoppelganger); SetDroppableFlag(oSlot,FALSE); oSlot = GetItemInSlot(INVENTORY_SLOT_BOOTS, oDoppelganger); SetDroppableFlag(oSlot,FALSE); oSlot = GetItemInSlot(INVENTORY_SLOT_BULLETS, oDoppelganger); SetDroppableFlag(oSlot,FALSE); oSlot = GetItemInSlot(INVENTORY_SLOT_CARMOUR, oDoppelganger); SetDroppableFlag(oSlot,FALSE); oSlot = GetItemInSlot(INVENTORY_SLOT_CHEST, oDoppelganger); SetDroppableFlag(oSlot,FALSE); oSlot = GetItemInSlot(INVENTORY_SLOT_CLOAK, oDoppelganger); SetDroppableFlag(oSlot,FALSE); oSlot = GetItemInSlot(INVENTORY_SLOT_CWEAPON_B, oDoppelganger); SetDroppableFlag(oSlot,FALSE); oSlot = GetItemInSlot(INVENTORY_SLOT_CWEAPON_L, oDoppelganger); SetDroppableFlag(oSlot,FALSE); oSlot = GetItemInSlot(INVENTORY_SLOT_CWEAPON_R, oDoppelganger); SetDroppableFlag(oSlot,FALSE); oSlot = GetItemInSlot(INVENTORY_SLOT_HEAD, oDoppelganger); SetDroppableFlag(oSlot,FALSE); oSlot = GetItemInSlot(INVENTORY_SLOT_LEFTHAND, oDoppelganger); SetDroppableFlag(oSlot,FALSE); oSlot = GetItemInSlot(INVENTORY_SLOT_LEFTRING, oDoppelganger); SetDroppableFlag(oSlot,FALSE); oSlot = GetItemInSlot(INVENTORY_SLOT_NECK, oDoppelganger); SetDroppableFlag(oSlot,FALSE); oSlot = GetItemInSlot(INVENTORY_SLOT_RIGHTHAND, oDoppelganger); SetDroppableFlag(oSlot,FALSE); oSlot = GetItemInSlot(INVENTORY_SLOT_RIGHTRING, oDoppelganger); SetDroppableFlag(oSlot,FALSE); int nGold = GetGold(oDoppelganger); TakeGoldFromCreature(nGold-150, oDoppelganger, TRUE);
} } | |
| | | Gimli Oakenshield L'ignorant en Hardware
Nombre de messages : 783 Localisation : Près de mon ordi ! Date d'inscription : 15/12/2005
| Sujet: Re: Création du dopple supérieur Mer 25 Jan - 16:37 | |
| Voila le nouveau script qui fait en sorte que le doppel ne copie pleins de fois : - Code:
-
//////////////////////////////////////////////////////////// // Here you can assign actions/behavior to the Doppelganger //////////////////////////////////////////////////////////// void CommandDoppelganger(object oDoppelganger, object oPc) { AssignCommand(oDoppelganger, ActionMoveToObject(oPc, TRUE, 7.0f)); AssignCommand(oDoppelganger, ActionDoCommand(PlayVoiceChat(VOICE_CHAT_TAUNT, OBJECT_SELF))); AssignCommand(oDoppelganger, ActionDoCommand(ActionPlayAnimation(ANIMATION_FIREFORGET_TAUNT))); AssignCommand(oDoppelganger, ActionDoCommand(ActionAttack(oPc, FALSE))); }
//////////////////////////////////////////////////////////// // The Main script that launches OnEnter //////////////////////////////////////////////////////////// void main() { object oPC = GetLastPerceived(); string sName = GetName(oPC); int iCopy = GetLocalInt(OBJECT_SELF,"copy");
if(GetIsPC(oPC) && GetLastPerceptionSeen() && iCopy == FALSE) { SetLocalInt(OBJECT_SELF,"copy",TRUE); object oSlot = GetItemInSlot(INVENTORY_SLOT_RIGHTHAND, oPC); string sRes = GetResRef(oSlot); location lNest = GetLocation(OBJECT_SELF); DestroyObject(OBJECT_SELF); CopyObject(oPC, lNest, OBJECT_INVALID, "doppelganger_2"); //modified the tag! object oDoppelganger = GetNearestObjectByTag("doppelganger_2"); ChangeToStandardFaction(oDoppelganger, STANDARD_FACTION_HOSTILE); object oItem = GetFirstItemInInventory(oDoppelganger); while (GetIsObjectValid(oItem) == TRUE) { SetDroppableFlag(oItem,FALSE); oItem = GetNextItemInInventory(oDoppelganger); } int nHP = GetMaxHitPoints(oDoppelganger); ApplyEffectToObject(DURATION_TYPE_INSTANT, EffectHeal(nHP), oDoppelganger); CommandDoppelganger(oDoppelganger, oPC); oSlot = GetItemInSlot(INVENTORY_SLOT_ARMS, oDoppelganger); SetDroppableFlag(oSlot,FALSE); oSlot = GetItemInSlot(INVENTORY_SLOT_ARROWS, oDoppelganger); SetDroppableFlag(oSlot,FALSE); oSlot = GetItemInSlot(INVENTORY_SLOT_BELT, oDoppelganger); SetDroppableFlag(oSlot,FALSE); oSlot = GetItemInSlot(INVENTORY_SLOT_BOLTS, oDoppelganger); SetDroppableFlag(oSlot,FALSE); oSlot = GetItemInSlot(INVENTORY_SLOT_BOOTS, oDoppelganger); SetDroppableFlag(oSlot,FALSE); oSlot = GetItemInSlot(INVENTORY_SLOT_BULLETS, oDoppelganger); SetDroppableFlag(oSlot,FALSE); oSlot = GetItemInSlot(INVENTORY_SLOT_CARMOUR, oDoppelganger); SetDroppableFlag(oSlot,FALSE); oSlot = GetItemInSlot(INVENTORY_SLOT_CHEST, oDoppelganger); SetDroppableFlag(oSlot,FALSE); oSlot = GetItemInSlot(INVENTORY_SLOT_CLOAK, oDoppelganger); SetDroppableFlag(oSlot,FALSE); oSlot = GetItemInSlot(INVENTORY_SLOT_CWEAPON_B, oDoppelganger); SetDroppableFlag(oSlot,FALSE); oSlot = GetItemInSlot(INVENTORY_SLOT_CWEAPON_L, oDoppelganger); SetDroppableFlag(oSlot,FALSE); oSlot = GetItemInSlot(INVENTORY_SLOT_CWEAPON_R, oDoppelganger); SetDroppableFlag(oSlot,FALSE); oSlot = GetItemInSlot(INVENTORY_SLOT_HEAD, oDoppelganger); SetDroppableFlag(oSlot,FALSE); oSlot = GetItemInSlot(INVENTORY_SLOT_LEFTHAND, oDoppelganger); SetDroppableFlag(oSlot,FALSE); oSlot = GetItemInSlot(INVENTORY_SLOT_LEFTRING, oDoppelganger); SetDroppableFlag(oSlot,FALSE); oSlot = GetItemInSlot(INVENTORY_SLOT_NECK, oDoppelganger); SetDroppableFlag(oSlot,FALSE); oSlot = GetItemInSlot(INVENTORY_SLOT_RIGHTHAND, oDoppelganger); SetDroppableFlag(oSlot,FALSE); oSlot = GetItemInSlot(INVENTORY_SLOT_RIGHTRING, oDoppelganger); SetDroppableFlag(oSlot,FALSE); int nGold = GetGold(oDoppelganger); TakeGoldFromCreature(nGold-150, oDoppelganger, TRUE);
} } | |
| | | Contenu sponsorisé
| Sujet: Re: Création du dopple supérieur | |
| |
| | | | Création du dopple supérieur | |
|
Sujets similaires | |
|
| Permission de ce forum: | Vous ne pouvez pas répondre aux sujets dans ce forum
| |
| |
| |