Aelor
Vous souhaitez réagir à ce message ? Créez un compte en quelques clics ou connectez-vous pour continuer.

Aelor

Forum officiel du module NeverWinter Nights et role play Aelor.
 
AccueilAccueil  PortailPortail  RechercherRechercher  Dernières imagesDernières images  S'enregistrerS'enregistrer  Connexion  

 

 Création du dopple supérieur

Aller en bas 
3 participants
AuteurMessage
Miltiades
Miltiades, paladin de Tyr
Miltiades


Nombre de messages : 551
Localisation : En train de chatier le mal
Date d'inscription : 16/12/2005

Création du dopple supérieur Empty
MessageSujet: Création du dopple supérieur   Création du dopple supérieur EmptyMar 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
Revenir en haut Aller en bas
https://aelor.actifforum.com/index.forum
Ba'elzaden
Maitre d'Aelor
Ba'elzaden


Nombre de messages : 909
Date d'inscription : 15/12/2005

Création du dopple supérieur Empty
MessageSujet: Re: Création du dopple supérieur   Création du dopple supérieur EmptyMar 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)
Revenir en haut Aller en bas
Gimli Oakenshield
L'ignorant en Hardware
Gimli Oakenshield


Nombre de messages : 783
Localisation : Près de mon ordi !
Date d'inscription : 15/12/2005

Création du dopple supérieur Empty
MessageSujet: Re: Création du dopple supérieur   Création du dopple supérieur EmptyJeu 12 Jan - 17:16

J'vais voir ce que je peux faire ...
Revenir en haut Aller en bas
Gimli Oakenshield
L'ignorant en Hardware
Gimli Oakenshield


Nombre de messages : 783
Localisation : Près de mon ordi !
Date d'inscription : 15/12/2005

Création du dopple supérieur Empty
MessageSujet: Re: Création du dopple supérieur   Création du dopple supérieur EmptyJeu 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 ?
Revenir en haut Aller en bas
Miltiades
Miltiades, paladin de Tyr
Miltiades


Nombre de messages : 551
Localisation : En train de chatier le mal
Date d'inscription : 16/12/2005

Création du dopple supérieur Empty
MessageSujet: Re: Création du dopple supérieur   Création du dopple supérieur EmptyJeu 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.
Revenir en haut Aller en bas
https://aelor.actifforum.com/index.forum
Gimli Oakenshield
L'ignorant en Hardware
Gimli Oakenshield


Nombre de messages : 783
Localisation : Près de mon ordi !
Date d'inscription : 15/12/2005

Création du dopple supérieur Empty
MessageSujet: Re: Création du dopple supérieur   Création du dopple supérieur EmptyJeu 12 Jan - 22:45

C'est exactement ça : doppel


Dernière édition par le Mer 25 Jan - 16:35, édité 1 fois
Revenir en haut Aller en bas
Gimli Oakenshield
L'ignorant en Hardware
Gimli Oakenshield


Nombre de messages : 783
Localisation : Près de mon ordi !
Date d'inscription : 15/12/2005

Création du dopple supérieur Empty
MessageSujet: Re: Création du dopple supérieur   Création du dopple supérieur EmptyDim 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);


    }
}
Revenir en haut Aller en bas
Gimli Oakenshield
L'ignorant en Hardware
Gimli Oakenshield


Nombre de messages : 783
Localisation : Près de mon ordi !
Date d'inscription : 15/12/2005

Création du dopple supérieur Empty
MessageSujet: Re: Création du dopple supérieur   Création du dopple supérieur EmptyMer 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);


    }
}
Revenir en haut Aller en bas
Contenu sponsorisé





Création du dopple supérieur Empty
MessageSujet: Re: Création du dopple supérieur   Création du dopple supérieur Empty

Revenir en haut Aller en bas
 
Création du dopple supérieur
Revenir en haut 
Page 1 sur 1
 Sujets similaires
-
» Aide pour la création d'un PC en pièces détachées.

Permission de ce forum:Vous ne pouvez pas répondre aux sujets dans ce forum
Aelor :: Archives :: Editeur :: Script-
Sauter vers: