La Bibliothèque de Neverwinter Nights
Aide et informations diverses sur Neverwinter Nights ainsi que D&D3.
La date/heure actuelle est 23/11/2024 21:27:19


  Page 1 sur 1 ¤

Voir le sujet précédent ¤ Voir le sujet suivant 
Auteur Message
Master of Wa
Novice
Inscrit le: 19 Nov 2003
Messages: 15
Répondre en citant
Posté le : 30/11/2003 15:14:31 Sujet du message : Script de soin

Bon je vous ennui encore un peu avec mes problemes!
Je cherche un script pour que lorqu'un PJ parle a un PNJ il se fasse guerir (soin+guerison...la totale quoi).Voila c'est tout merci d'avance!
(je vous promet je v m améliorer Very Happy )!
 
Revenir en haut Voir le profil de l'utilisateur Envoyer un message privé Ignorer l'utilisateur
 
Panda Fou
Grand Chevalier
Inscrit le: 15 Nov 2003
Messages: 101
Localisation: Qui me parle ?
Répondre en citant
Posté le : 30/11/2003 15:48:25 Sujet du message :

Il faut placer sur un noeud de conversation sur Action Taken.
NWScript :

void FakeRestore(object oTarget);

void main()
{

        object oPC = GetPCSpeaker();
        object oHenchman = GetAssociate(ASSOCIATE_TYPE_HENCHMAN,oPC);
        object oAnimal = GetAssociate(ASSOCIATE_TYPE_ANIMALCOMPANION,oPC);
        object oFamiliar = GetAssociate(ASSOCIATE_TYPE_FAMILIAR,oPC);
        object oDominated = GetAssociate(ASSOCIATE_TYPE_DOMINATED,oPC);
        object oSummoned = GetAssociate(ASSOCIATE_TYPE_SUMMONED,oPC);
        ActionPauseConversation();
        ActionCastFakeSpellAtObject(SPELL_GREATER_RESTORATION, OBJECT_SELF);
        ActionDoCommand(FakeRestore(oPC));
        if(GetIsObjectValid(oHenchman))
        {
                ActionDoCommand(FakeRestore(oHenchman));
               
                if (!GetIsObjectValid(GetItemPossessedBy(oHenchman,"NW_IT_MPOTION003")))
                {
                        CreateItemOnObject("NW_IT_MPOTION003",oHenchman,3);
                }
        }
        if(GetIsObjectValid(oAnimal))
        {
                ActionDoCommand(FakeRestore(oAnimal));
        }
        if(GetIsObjectValid(oFamiliar))
        {
                ActionDoCommand(FakeRestore(oFamiliar));
        }
        if(GetIsObjectValid(oDominated))
        {
                ActionDoCommand(FakeRestore(oDominated));
        }
        if(GetIsObjectValid(oSummoned))
        {
                ActionDoCommand(FakeRestore(oSummoned));
        }
        ActionResumeConversation();
}

void FakeRestore(object oTarget)
{

        effect eVisual = EffectVisualEffect(VFX_IMP_RESTORATION_GREATER);

        effect eBad = GetFirstEffect(oTarget);
        //Search for negative effects
        while(GetIsEffectValid(eBad))
        {
                if (GetEffectType(eBad) == EFFECT_TYPE_ABILITY_DECREASE ||
                GetEffectType(eBad) == EFFECT_TYPE_AC_DECREASE ||
                GetEffectType(eBad) == EFFECT_TYPE_ATTACK_DECREASE ||
                GetEffectType(eBad) == EFFECT_TYPE_DAMAGE_DECREASE ||
                GetEffectType(eBad) == EFFECT_TYPE_DAMAGE_IMMUNITY_DECREASE ||
                GetEffectType(eBad) == EFFECT_TYPE_SAVING_THROW_DECREASE ||
                GetEffectType(eBad) == EFFECT_TYPE_SPELL_RESISTANCE_DECREASE ||
                GetEffectType(eBad) == EFFECT_TYPE_SKILL_DECREASE ||
                GetEffectType(eBad) == EFFECT_TYPE_BLINDNESS ||
                GetEffectType(eBad) == EFFECT_TYPE_DEAF ||
                GetEffectType(eBad) == EFFECT_TYPE_CURSE ||
                GetEffectType(eBad) == EFFECT_TYPE_DISEASE ||
                GetEffectType(eBad) == EFFECT_TYPE_POISON ||
                GetEffectType(eBad) == EFFECT_TYPE_PARALYZE ||
                GetEffectType(eBad) == EFFECT_TYPE_NEGATIVELEVEL)
                {
                        //Et annulation de ceux-ci.
                        RemoveEffect(oTarget, eBad);
                }
                eBad = GetNextEffect(oTarget);
        }
        if(GetRacialType(oTarget) != RACIAL_TYPE_UNDEAD)
        {
                //Applique les effets
                int nHeal = GetMaxHitPoints(oTarget) - GetCurrentHitPoints(oTarget);
                effect eHeal = EffectHeal(nHeal);
                if (nHeal > 0)
                ApplyEffectToObject(DURATION_TYPE_INSTANT, eHeal, oTarget);
        }
        ApplyEffectToObject(DURATION_TYPE_INSTANT, eVisual, oTarget);
}

Note : le code affiché ci-dessus n'est pas rendu tel qu'il devrait l'être réellement, en particulier des sauts de lignes sont automatiquement insérés pour éviter de casser la mise en page. En le copiant/collant, vous résoudrez ce problème.

_________________
Suis-je fou ?
-Panda Fou-
 
Revenir en haut Voir le profil de l'utilisateur Envoyer un message privé Ignorer l'utilisateur
 
kiky.le.magnifique
Homme très gay
Inscrit le: 19 Sep 2003
Messages: 907
Localisation: Camping de la nation martienne...
Répondre en citant
Posté le : 30/11/2003 16:01:11 Sujet du message :

 
Revenir en haut Voir le profil de l'utilisateur Envoyer un message privé Visiter le site web du posteur Ignorer l'utilisateur
 
Master of Wa
Novice
Inscrit le: 19 Nov 2003
Messages: 15
Répondre en citant
Posté le : 30/11/2003 18:45:09 Sujet du message :

Ca marche impec merci a vous! Very Happy
 
Revenir en haut Voir le profil de l'utilisateur Envoyer un message privé Ignorer l'utilisateur
 
Montrer les messages depuis :
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


Sauter vers:
FAQ | Rechercher | Liste des Membres | Groupes d'utilisateurs | S'enregistrer | Profil | Se connecter pour vérifier ses messages privés | Connexion
Powered by phpBB 2.* [m] © 2001, 2002 phpBB Group
Theme rewritten in beautiful XHTML code by Baldurien.
Thème "La Bibliothèque de Neverwinter" crée par Kruger
Traduction par : phpBB-fr.com
Page generated in 61.22ms