La Bibliothèque de Neverwinter Nights
Aide et informations diverses sur Neverwinter Nights ainsi que D&D3.
La date/heure actuelle est 22/09/2024 11:20:32


  Page 1 sur 1 ¤

Voir le sujet précédent ¤ Voir le sujet suivant 
Auteur Message
massnada
Voyageur
Inscrit le: 08 Avr 2005
Messages: 2
Répondre en citant
Posté le : 08/04/2005 20:06:14 Sujet du message : Script Vampire - Appliquer des effets

Bonjour a tous, je viens de créer un script qui m'applique certains effets (immu poison et immu maladie, resistance aux dégats divins baissées). Ce script doit m'appliquer des malus aléatoire la journée pour les personnages ayant spécifié une ethnie "vampire" et les supprimer le soir.

Jusqu'ici tout va bien, pour tester mon module je regle l'heure sur 17h (tombée de la nuit a 18h) et l'écoulement a 1h = 1mn. Lorsque la nuit tombe les effets de mes malus (baisses de caracs F, Dex et Cons) disparaissent et a l'aube (après 6h) ils reviennent.

Le probleme c'est qu'aux environs de 9h IG, mes malus disparaissent et mon script qui vérifie si les malus sont absents doit relancer ma condition qui applique ces malus... J'ai débuggé en mettant des string pour verifier si la partie de mon script s'executait bien mais apparement il n'y a pas de problemes, j'ai l'impression simplement qu'il ne veut pas refaire répeter mes fonctions ApplyEffectToObject().

Au niveau du fonctionnement sur l'evenement OnEnter du module je lance un script nommé a_vampire qui récupere l'éthnie du joueur qui se connecte, si dans la ethnie on retrouve vampire il execute le script principal qui se nomme a_vampire et qui tourne très bien durant 14h IG.

Voici le code pour ceux que ça intéresse. C'est vraiment très étrange qu'il refuse de m'appliquer mes effets alors qu'apparement la déclaration object qui récupere le joueur (oVamp) semble toujours présent vu qu'il me renvoie mes strings de text. La vérité est ailleurs ?

//////script lancé a parti de OnClientEnter en récuperant l'ethnie du joueur
////// le script se rappel de lui-même toute les 6.0 secondes
NWScript :
void vampire()
{


object oVamp = OBJECT_SELF;

if (GetIsPC(oVamp)==FALSE)
{
return;
}

if (GetIsDay()==TRUE)
    {
    if (GetEffectSubType(GetFirstEffect(oVamp))!= SUBTYPE_SUPERNATURAL)
        {
        //FloatingTextStringOnCreature ("pas d'effets on doit les appliquer", oVamp);
        ApplyEffectToObject(DURATION_TYPE_INSTANT, ExtraordinaryEffect(EffectDamageImmunityDecrease(DAMAGE_TYPE_DIVINE, 100)), oPC);
        ApplyEffectToObject(DURATION_TYPE_INSTANT, ExtraordinaryEffect(EffectImmunity(IMMUNITY_TYPE_DISEASE)), oVamp);
        ApplyEffectToObject(DURATION_TYPE_INSTANT, ExtraordinaryEffect(EffectImmunity(IMMUNITY_TYPE_POISON)), oVamp);
        ApplyEffectToObject(DURATION_TYPE_TEMPORARY, SupernaturalEffect(EffectAbilityDecrease(ABILITY_STRENGTH, d6())), oVamp, 9999.0);
        //FloatingTextStringOnCreature ("effet 1", oVamp);
        ApplyEffectToObject(DURATION_TYPE_TEMPORARY, SupernaturalEffect(EffectAbilityDecrease(ABILITY_DEXTERITY, d6())), oVamp, 9999.0);
        //FloatingTextStringOnCreature ("effet 2", oVamp);
        ApplyEffectToObject(DURATION_TYPE_TEMPORARY, SupernaturalEffect(EffectAbilityDecrease(ABILITY_CONSTITUTION, d6())), oVamp, 9999.0);
        //FloatingTextStringOnCreature ("effet 3", oVamp);
        DelayCommand(6.0, ExecuteScript("a_vampire", oVamp));
        }
        else
        {
            effect eLoop=GetFirstEffect(oVamp);

                while (GetIsEffectValid(eLoop))
                {
                    if (GetEffectSubType(eLoop)!=SUBTYPE_EXTRAORDINARY)
                    {
                    FloatingTextStringOnCreature("on applique les effets permanents", oVamp);
                    ApplyEffectToObject(DURATION_TYPE_INSTANT, ExtraordinaryEffect(EffectDamageImmunityDecrease(DAMAGE_TYPE_DIVINE, 100)), oVamp);
                    ApplyEffectToObject(DURATION_TYPE_INSTANT, ExtraordinaryEffect(EffectImmunity(IMMUNITY_TYPE_DISEASE)), oVamp);
                    ApplyEffectToObject(DURATION_TYPE_INSTANT, ExtraordinaryEffect(EffectImmunity(IMMUNITY_TYPE_POISON)), oVamp);
                    DelayCommand(6.0, ExecuteScript("a_vampire", oVamp));
                    }
                }
        DelayCommand(6.0, ExecuteScript("a_vampire", oVamp));
        }
    }
else
{
    effect eLoop=GetFirstEffect(oVamp);

    while (GetIsEffectValid(eLoop))
    {
        if (GetEffectSubType(eLoop)==SUBTYPE_SUPERNATURAL)
        {
        RemoveEffect(oVamp, eLoop);

        eLoop=GetNextEffect(oVamp);
        }
    }

    effect eLoop=GetFirstEffect(oVamp);

                while (GetIsEffectValid(eLoop))
                {
                    if (GetEffectSubType(eLoop)!=SUBTYPE_EXTRAORDINARY)
                    {
                    FloatingTextStringOnCreature("on applique les effets permanents", oVamp);
                    ApplyEffectToObject(DURATION_TYPE_INSTANT, ExtraordinaryEffect(EffectDamageImmunityDecrease(DAMAGE_TYPE_DIVINE, 100)), oVamp);
                    ApplyEffectToObject(DURATION_TYPE_INSTANT, ExtraordinaryEffect(EffectImmunity(IMMUNITY_TYPE_DISEASE)), oVamp);
                    ApplyEffectToObject(DURATION_TYPE_INSTANT, ExtraordinaryEffect(EffectImmunity(IMMUNITY_TYPE_POISON)), oVamp);
                    DelayCommand(6.0, ExecuteScript("a_vampire", oVamp));
                    }
                }
DelayCommand(6.0, ExecuteScript("a_vampire", oVamp));
}
}
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.
 
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 58.272ms