La Bibliothèque de Neverwinter Nights
Aide et informations diverses sur Neverwinter Nights ainsi que D&D3.
La date/heure actuelle est 01/06/2024 07:09:33


  Page 1 sur 1 ¤

Voir le sujet précédent ¤ Voir le sujet suivant 
Auteur Message
metallick
Chevalier
Inscrit le: 26 Aoû 2006
Messages: 88
Répondre en citant
Posté le : 07/09/2006 17:22:12 Sujet du message : Gardes qui protègent la ville

Rebonjour ^^ Je voudrais a présent... Faire que mes gardes protègent ma ville... En gros, je voudrais qu'ils disent aux pj de ranger leurs armes 3 fois puis qu'ils attanquent...
Quelqu'un peut m'aider svp?
 
Revenir en haut Voir le profil de l'utilisateur Envoyer un message privé Ignorer l'utilisateur
 
Black Knight
Grand Maître Chanteur du Conseil
Inscrit le: 27 Oct 2005
Messages: 1031
Localisation: Fin fond du trou du cul du monde
Répondre en citant
Posté le : 07/09/2006 19:47:15 Sujet du message :

As tu bien fait la fonction recherche? Parce que je suis sur que j'ai déjà vu un sujet pareil
_________________
[http]
 
Revenir en haut Voir le profil de l'utilisateur Envoyer un message privé Ignorer l'utilisateur
 
metallick
Chevalier
Inscrit le: 26 Aoû 2006
Messages: 88
Répondre en citant
Posté le : 07/09/2006 20:23:59 Sujet du message :

La fonction recehrche ne m'est d'aucune utilité...
 
Revenir en haut Voir le profil de l'utilisateur Envoyer un message privé Ignorer l'utilisateur
 
Noon
Héros
Inscrit le: 15 Jan 2005
Messages: 272
Localisation: Entre Vannes et les RO
Répondre en citant
Posté le : 07/09/2006 23:41:37 Sujet du message :

Oh ? j'ai tapé sommation dans recherche et j'ai l'impression de voir plusieurs sujets qui pourraient t'intéresser...
_________________
Beshaba me protège, Tymora guide mes tirs.

The Cake is a lie !

Mes modules NwN2:De Vieilles Rencontres! et De Vieilles Rencontres2
Double Avenir sur le Nwvault
 
Revenir en haut Voir le profil de l'utilisateur Envoyer un message privé Ignorer l'utilisateur
 
metallick
Chevalier
Inscrit le: 26 Aoû 2006
Messages: 88
Répondre en citant
Posté le : 08/09/2006 16:58:06 Sujet du message :

lol vi mais il me manque quelques éléments Confused
 
Revenir en haut Voir le profil de l'utilisateur Envoyer un message privé Ignorer l'utilisateur
 
Black Knight
Grand Maître Chanteur du Conseil
Inscrit le: 27 Oct 2005
Messages: 1031
Localisation: Fin fond du trou du cul du monde
Répondre en citant
Posté le : 08/09/2006 17:26:38 Sujet du message :

Escuse moi mais, si la fonction recherche est inutile, notre aide l'ai aussi? Bé oui, ça métonnerais pas que ce soit un de nous qui ai ce script...

Envoi nous un script que ta trouver et dit nous ce que tu veux qu'on rajoute... sinon je t'aide pas -_-'
_________________
[http]
 
Revenir en haut Voir le profil de l'utilisateur Envoyer un message privé Ignorer l'utilisateur
 
Xeolani
Grand Sage du Conseil
Inscrit le: 19 Fév 2005
Messages: 785
Répondre en citant
Posté le : 08/09/2006 17:32:38 Sujet du message :

Black Nnight, metallick demande de l'aide. Il nous dit, ne pas avoir trouver dans ses recherches sur le forum les informations qu'il souhaite avoir. Cela ne sert a rien d'etre désagréable et de lui dire que tu ne lui donneras pas de l'aide...
Ensuite, il est vrai que sans plus d'informations, il est dur de t'aider metallick Cool
 
Revenir en haut Voir le profil de l'utilisateur Envoyer un message privé Ignorer l'utilisateur
 
metallick
Chevalier
Inscrit le: 26 Aoû 2006
Messages: 88
Répondre en citant
Posté le : 09/09/2006 12:03:25 Sujet du message :

En fait j'ai fini par réussir ^^ Grace au sommation... J'ai recopié un script déja fait... il ressemble a sa pour ceux qui auraient besoin d'aide:

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 = 100.0;//Distance in which to spot player
float ANGER_DUR = 30.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.


A mettre dans le OnHeartBeat du pnj
 
Revenir en haut Voir le profil de l'utilisateur Envoyer un message privé Ignorer l'utilisateur
 
lylver
Héros
Inscrit le: 08 Avr 2005
Messages: 274
Répondre en citant
Posté le : 19/09/2006 12:39:10 Sujet du message :

Ce message est un spoiler, et risque de vous informer de choses que vous auriez dû apprendre par vous même (fin d'un jeu, film, etc). À vos risques et périls (ludiques), vous pouvez le voir en cliquant sur cet avertissement.
Spoiler :
NWScript :
//:Confused///
//:: Updated Lylver, Octobre 2005
//:: InsignedesChevaliersdeLyon
//:Confused///
#include "NW_I0_GENERIC"
#include "x2_inc_itemprop"

//VARIABLES START - EDIT AT OWN PLEASURE
string WARNING1 = "Retirez vos armes !!";
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 = 120.0; //Length of time (sec) that will remain angry at the pc
//END OF VARIABLES

void main()
{
object oPC;
object oItem;
int bWeapon = FALSE ;

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( (GetItemPossessedBy(oPC,"AmulettedesChevaliersdeLyon")!=OBJECT_INVALID) &&
      (GetLocalInt(OBJECT_SELF,GetFamiliarName(oPC))!=1) ){
      AssignCommand(OBJECT_SELF,ActionPlayAnimation(ANIMATION_FIREFORGET_BOW,1.0));
      if( GetItemPossessedBy(oPC,"InsignedesChevaliersdeLyon")!=OBJECT_INVALID ){
        SpeakString("Bienvenue Seigneur "+GetFamiliarName(oPC)+" "+GetName(oPC));
      }
      SetLocalInt(OBJECT_SELF,GetFamiliarName(oPC), 1);
  }
  oItem = GetItemInSlot(INVENTORY_SLOT_RIGHTHAND,oPC) ;
  // check CEP
  if( GetBaseItemType(oItem) >=300 && GetBaseItemType(oItem) <= 324 ){
      bWeapon = TRUE ; // CEP Weapon (a peu pres)
      if( GetBaseItemType(oItem) == 314 ) bWeapon = FALSE ; // Faschion Accessory
  }
  bWeapon = ( bWeapon || // check CEP
            IPGetIsMeleeWeapon(oItem) ||
            IPGetIsRangedWeapon(oItem) ||
            GetIsCreatureDisarmable(oPC) ) && // bah ca mange pas de pain
            (GetBaseItemType(oItem) != BASE_ITEM_MAGICSTAFF) &&
            (GetBaseItemType(oItem) != 314) &&
            (GetItemPossessedBy(oPC,"AmulettedesChevaliersdeLyon")==OBJECT_INVALID) &&
            (GetItemPossessedBy(oPC,"InsignedesChevaliersdeLyon")==OBJECT_INVALID) ;
  if( (GetLevelByClass(CLASS_TYPE_DRAGON_DISCIPLE, oPC) > 8) && (d6()==1) ){
      FloatingTextStringOnCreature("*garde un oeil sur le demi-dragon*",OBJECT_SELF,FALSE) ;
  }
  if( GetHasFeat(FEAT_DEATHLESS_MASTER_TOUCH, oPC) && (d6()==1) ){
      FloatingTextStringOnCreature("",OBJECT_SELF,FALSE) ;
  }
  if( bWeapon ){
      if( GetLocalObject(OBJECT_SELF,"LastOffender")==oPC ){
        if( GetLocalInt(OBJECT_SELF,"OffenseCount")==2 ){
            SpeakString(ATTACK_MSG);
            SetIsTemporaryEnemy(oPC,OBJECT_SELF,TRUE,ANGER_DUR);
            if( GetIsPC(GetAttackTarget(oPC)) ||
                (GetAppearanceType(oPC) >6) || // metamorphe (apparence non humanoide)
                (GetLevelByClass(CLASS_TYPE_DRAGON_DISCIPLE, oPC) > 8) || // ailes
                GetHasFeat(FEAT_DEATHLESS_MASTER_TOUCH, oPC) ){ // bras mort-vivant
              ActionAttack(oPC); // pour SPECIAL_ATTACK_DISARM mettre le don ad hoc
            }
            else {
              AssignCommand(oPC,ActionUnequipItem(oItem)) ;
              FloatingTextStringOnCreature("*range son arme*",oPC,FALSE) ;
            }
        } 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.


Un autre avec des fioritures pour ne pas râler quand les gardes voient des parapluies CEP et autres bricoles ... à trier.
 
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 66.986ms