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 20:33:32


  Page 1 sur 1 ¤

Voir le sujet précédent ¤ Voir le sujet suivant 
Auteur Message
slider
Novice
Inscrit le: 14 Juin 2004
Messages: 6
Répondre en citant
Posté le : 14/06/2004 16:19:37 Sujet du message : garde

bonjour a tous je cherche un script car la je vois pas du tout commment faire je mis suis lancer depuis 2 à 3 jours sur les scripts et la je me pose une question j aimerais faire un garde quand il voit une personne muni d'une arme qu il demande de ranger mon arme et si je le fais pas qu il m attaque donc si vous pouviez me donner un debut de script ou une information donc une sorte de porte pour savoir par ou je doit commencer je vous remercie
 
Revenir en haut Voir le profil de l'utilisateur Envoyer un message privé Ignorer l'utilisateur
 
Mars
Seigneur
Inscrit le: 31 Mar 2004
Messages: 199
Répondre en citant
Posté le : 14/06/2004 19:10:33 Sujet du message :

Voila un script a mettre dans le OnHeartBeat de ton garde

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 = "Merci messire";
float WARN_DISTANCE = 20.0;//Distance in which to spot player
float ANGER_DUR = 120.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
                {
                      SetLocalInt(OBJECT_SELF,"OffenseCount",0);
                      SpeakString(WARNING1);
                      SetLocalObject(OBJECT_SELF,"LastOffender",oPC);
                }
            }
            else
            {
                    if( GetLocalObject(OBJECT_SELF,"LastOffender")!= OBJECT_INVALID)
                        SpeakString(COMPLY_REPLY);

                    DeleteLocalObject(OBJECT_SELF,"LastOffender");
                    SetLocalInt(OBJECT_SELF,"OffenseCount",0);
            }
        }

    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
            {
                SetLocalInt(OBJECT_SELF, "NW_GENERIC_DAY_NIGHT", FALSE);
            }
            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.



Attention de ne pas trop mettre de garde avec se script, le OnHeartBeat relance le script toute les 6 seconde
 
Revenir en haut Voir le profil de l'utilisateur Envoyer un message privé Ignorer l'utilisateur
 
slider
Novice
Inscrit le: 14 Juin 2004
Messages: 6
Répondre en citant
Posté le : 14/06/2004 20:14:27 Sujet du message :

lol je te remerci mais je voulais une base pas tout ca a du te demander des travaux bon merci
 
Revenir en haut Voir le profil de l'utilisateur Envoyer un message privé Ignorer l'utilisateur
 
Mars
Seigneur
Inscrit le: 31 Mar 2004
Messages: 199
Répondre en citant
Posté le : 14/06/2004 22:39:40 Sujet du message :

j'aimerais tellement l'avoir fait moi meme, mais se script n'est pas de moi il ma juste fallu le temp d'aller le chercher ^^
 
Revenir en haut Voir le profil de l'utilisateur Envoyer un message privé Ignorer l'utilisateur
 
slider
Novice
Inscrit le: 14 Juin 2004
Messages: 6
Répondre en citant
Posté le : 15/06/2004 00:28:26 Sujet du message :

oui moi aussi j aurais aimer l avoir trouver mais je te remercie de me l avoir envoyer quand meme d avoir fais cette demarche
 
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 50.88ms