La Bibliothèque de Neverwinter Nights
Aide et informations diverses sur Neverwinter Nights ainsi que D&D3.
La date/heure actuelle est 12/05/2024 18:21:33


  Page 1 sur 1 ¤

Voir le sujet précédent ¤ Voir le sujet suivant 
Auteur Message
aklyord
Novice
Inscrit le: 03 Jan 2006
Messages: 11
Répondre en citant
Posté le : 22/02/2006 17:31:42 Sujet du message : prob avec guardes...

voila quand on oublie de ranger sont arme les guardes vous tue jusque la ok mais si on vous rez ou que l'ont respam il continue a vous tuer... donc voila le script sachant que j'utilise le prc...:

NWScript :

//:Confused///////////////////////// ////////////////////
//:: Created By: David "The Shadowlord" Corrales
//:: Created On: August 20 2002
//:Confused///////////////////////// ////////////////////

#include "NW_I0_GENERIC"

//VARIABLES START - EDIT AT OWN PLEASURE
string WARNING1 = "";
string WARNING2 = "";
string WARNING3 = "";//Move to Player
string ATTACK_MSG = "";//Attack here
string COMPLY_REPLY = "Bien, merci.";
float WARN_DISTANCE = 20.0;//Distance in which to spot player
float ANGER_DUR = 10.0; //Length of time (sec) that will remain angry at the pc
//END OF VARIABLES

void main()
{
    object oPC;
        object item;

        oPC = GetNearestCreature(CREATURE_TYPE_PLAYER_CHAR, PLAYER_CHAR_IS_PC, OBJECT_SELF);

            if(oPC != OBJECT_INVALID && (GetDistanceBetween(OBJECT_SELF,oPC) < WARN_DISTANCE) && GetObjectSeen(oPC) && !GetIsEnemy(oPC))
            {

            if((item = GetItemInSlot(INVENTORY_SLOT_RIGHTHAND,oPC))!=OBJECT_INVALID)
            {
                if(GetLocalObject(OBJECT_SELF,"LastOffender")==oPC)
                {
                    if(GetLocalInt(OBJECT_SELF,"OffenseCount")==2)
                    {
                        SpeakString(ATTACK_MSG);
                        SetIsTemporaryEnemy(oPC,OBJECT_SELF,TRUE,ANGER_DUR);
                        ActionAttack(oPC);
                    }
                    else if(GetLocalInt(OBJECT_SELF,"OffenseCount")==1)
                    {
                        ActionMoveToObject(oPC,TRUE);
                        SetLocalInt(OBJECT_SELF,"OffenseCount",2);
                        SpeakString(WARNING3);
                    }
                    else
                    {
                        SetLocalInt(OBJECT_SELF,"OffenseCount",1);
                        SpeakString(WARNING2);
                    }
                }
                else
                {
                      DeleteLocalInt(OBJECT_SELF,"OffenseCount");
                      SpeakString(WARNING1);
                      SetLocalObject(OBJECT_SELF,"LastOffender",oPC);
                }
            }
            else
            {
                    if( GetLocalObject(OBJECT_SELF,"LastOffender")!= OBJECT_INVALID)
                        SpeakString(COMPLY_REPLY);

                    DeleteLocalObject(OBJECT_SELF,"LastOffender");
                    DeleteLocalInt(OBJECT_SELF,"OffenseCount");
            }
        }

    if(GetSpawnInCondition(NW_FLAG_FAST_BUFF_ENEMY))
    {
        if(TalentAdvancedBuff(40.0))
        {
            SetSpawnInCondition(NW_FLAG_FAST_BUFF_ENEMY, FALSE);
            return;
        }
    }

    if(GetSpawnInCondition(NW_FLAG_DAY_NIGHT_POSTING))
    {
        int nDay = FALSE;
        if(GetIsDay() || GetIsDawn())
        {
            nDay = TRUE;
        }
        if(GetLocalInt(OBJECT_SELF, "NW_GENERIC_DAY_NIGHT") != nDay)
        {
            if(nDay == TRUE)
            {
                SetLocalInt(OBJECT_SELF, "NW_GENERIC_DAY_NIGHT", TRUE);
            }
            else
            {
                DeleteLocalInt(OBJECT_SELF, "NW_GENERIC_DAY_NIGHT");
            }
            WalkWayPoints();
        }
    }

    if(!GetHasEffect(EFFECT_TYPE_SLEEP))
    {
        if(!GetIsPostOrWalking())
        {
            if(!GetIsObjectValid(GetAttemptedAttackTarget()) && !GetIsObjectValid(GetAttemptedSpellTarget()))
            {
                if(!GetIsObjectValid(GetNearestCreature(CREATURE_TYPE_REPUTATION, REPUTATION_TYPE_ENEMY, OBJECT_SELF, 1, CREATURE_TYPE_PERCEPTION, PERCEPTION_SEEN)))
                {
                    if(!GetBehaviorState(NW_FLAG_BEHAVIOR_SPECIAL) && !IsInConversation(OBJECT_SELF))
                    {
                        if(GetSpawnInCondition(NW_FLAG_AMBIENT_ANIMATIONS) || GetSpawnInCondition(NW_FLAG_AMBIENT_ANIMATIONS_AVIAN))
                        {
                            PlayMobileAmbientAnimations();
                        }
                        else if(GetIsEncounterCreature() &&
                        !GetIsObjectValid(GetNearestCreature(CREATURE_TYPE_REPUTATION, REPUTATION_TYPE_ENEMY, OBJECT_SELF, 1, CREATURE_TYPE_PERCEPTION, PERCEPTION_SEEN)))
                        {
                            PlayMobileAmbientAnimations();
                        }
                        else if(GetSpawnInCondition(NW_FLAG_IMMOBILE_AMBIENT_ANIMATIONS) &&
                          !GetIsObjectValid(GetNearestCreature(CREATURE_TYPE_REPUTATION, REPUTATION_TYPE_ENEMY, OBJECT_SELF, 1, CREATURE_TYPE_PERCEPTION, PERCEPTION_SEEN)))
                        {
                            PlayImmobileAmbientAnimations();
                        }
                    }
                    else
                    {
                        DetermineSpecialBehavior();
                    }
                }
                else
                {
                    //DetermineCombatRound();
                }
            }
        }
    }
    else
    {
        if(GetSpawnInCondition(NW_FLAG_SLEEPING_AT_NIGHT))
        {
            effect eVis = EffectVisualEffect(VFX_IMP_SLEEP);
            if(d10() > 6)
            {
                ApplyEffectToObject(DURATION_TYPE_INSTANT, eVis, OBJECT_SELF);
            }
        }
    }

    if(GetSpawnInCondition(NW_FLAG_HEARTBEAT_EVENT))
    {
        SignalEvent(OBJECT_SELF, EventUserDefined(1001));
    }
}

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
 
L'Erudit
Seigneur
Inscrit le: 26 Oct 2005
Messages: 167
Répondre en citant
Posté le : 22/02/2006 18:46:30 Sujet du message :

Dans ton cas, il faut réinitialiser la réputation à neutre (0), une fois que le PJ est mort.
 
Revenir en haut Voir le profil de l'utilisateur Envoyer un message privé Ignorer l'utilisateur
 
aklyord
Novice
Inscrit le: 03 Jan 2006
Messages: 11
Répondre en citant
Posté le : 23/02/2006 11:56:39 Sujet du message :

ok mais comment?
 
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.618ms