JeuxOnLineForumsPlusConnectés : 553 (sites) | 1032 (forums)Créer un compte
Forum jeux-vidéo>Neverwinter Nights
Maskado
Les forums JOL > Forum jeux-vidéo > Neverwinter Nights > NWN - Maskado > interdire les armes en ville RSS
   
Répondre
Partager Outils Rechercher
Avatar de xelone
xelone
Dauphin
 
Avatar de xelone
 

interdire les armes en ville

Voila, je sais que ce sujet a deja été traité mais je ne le retrouve pas sur le site (en plus, dans l'option recherche, il me trouve rien)

si quelqu'un pouvait me mettre le lien vers le sujet s'il vous plait. merci
Lien direct vers le message - Vieux
Avatar de Damonya
Damonya
Dauphin
 
Avatar de Damonya
 
*A la flemme de chercher sur le forum*
Il existe plusieurs variantes de ce système
Ca c'est un des scripts que j'utilise pour mes gardes :
Il en existe surement d'autres.

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

#include "NW_I0_GENERIC"

//VARIABLES START - EDIT AT OWN PLEASURE
string WARNING1 "Deposez vos armes, c'est inutile dans la ville";
string WARNING2 "J'ai dis deposez vos armes. Tout de suite";
string WARNING3 "Attention, il n'y aura pas de quatrieme avertissement !";//Move to Player
string ATTACK_MSG "Par les Guildes, je vous bannis. A l'Attaque !";//Attack here
string COMPLY_REPLY "Bien, j'aime mieux ca.";
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_CHARPLAYER_CHAR_IS_PCOBJECT_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_ENEMYFALSE);
            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_REPUTATIONREPUTATION_TYPE_ENEMYOBJECT_SELF1CREATURE_TYPE_PERCEPTIONPERCEPTION_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_REPUTATIONREPUTATION_TYPE_ENEMYOBJECT_SELF1CREATURE_TYPE_PERCEPTIONPERCEPTION_SEEN)))
                        {
                            
PlayMobileAmbientAnimations();
                        }
                        else if(
GetSpawnInCondition(NW_FLAG_IMMOBILE_AMBIENT_ANIMATIONS) &&
                           !
GetIsObjectValid(GetNearestCreature(CREATURE_TYPE_REPUTATIONREPUTATION_TYPE_ENEMYOBJECT_SELF1CREATURE_TYPE_PERCEPTIONPERCEPTION_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_INSTANTeVisOBJECT_SELF);
            }
        }
    }

    if(
GetSpawnInCondition(NW_FLAG_HEARTBEAT_EVENT))
    {
        
SignalEvent(OBJECT_SELFEventUserDefined(1001));
    }

Lien direct vers le message - Vieux
Avatar de xelone
xelone
Dauphin
 
Avatar de xelone
 
bah j'ai un peu cherché mais c'est aussi peut-etre le moteur de recherche qui est pas tout a fait au point (sans critiquer car je saurais pas en faire autant)

Merci et juste une petite question, je le mets dans quoi ce script?
Lien direct vers le message - Vieux
Avatar de Damonya
Damonya
Dauphin
 
Avatar de Damonya
 
Citation:
Merci et juste une petite question, je le mets dans quoi ce script ?
Bah par contre ça se met dans le On Heart Beat de ton garde donc n'en met pas des tonnes dans ton module, si tu veux pas que ça rame trop
voila salut
Lien direct vers le message - Vieux
Avatar de xelone
xelone
Dauphin
 
Avatar de xelone
 
merci
Lien direct vers le message - Vieux
paradogz
Duc / Duchesse
 
Salut à tous et merci au posteur pour ce script sympa que je teste actuellement.

Ma question est la suivante : Comment faire en sorte que le PNJ retourne à son poste une fois qu'il a suivi un contrevenant qui a soit rangé son arme, ou non (mort, donc).

Merci d'avance
Lien direct vers le message - Vieux
Catoune
Marquis / Marquise
 
Attribue un waypoint à ton garde...il y retournera tout seul apres avoir fait sa besogne...vieille toutefois à ce que le &quot;TAG&quot; de ton garde soit unique !
Lien direct vers le message - Vieux
Catoune
Marquis / Marquise
 
Je dirais qu'il faut mieux éviter les scripts onheartbeat le plus possible !Voici ce que j'utilise pour mes contrôleurs, à mettre dans le onperception avec vision courte.la première fois le PJ prend une avertissement, la deuxième fois et les fois suivants une amende de 1000 Po quand il s'agit d'une arme, les casques sont seulement enlevé. Et tous ça seulement quand le PJ n'est pas en mode furtif. ah oui et un casque est permis, à la fin du code on vois le Tag de ce capuchon.
Code PHP:
#include "nw_i0_generic"void main(){    if (GetAILevel() == AI_LEVEL_VERY_LOW) return;    object oPA = GetLastPerceived();    int bSA = GetLastPerceptionSeen();    int bStel = GetStealthMode(oPA);    if(GetIsPC(oPA)&&!GetIsDM(oPA)       && bSA)        {if (bStel == STEALTH_MODE_DISABLED)            {            object iArme = GetItemInSlot(INVENTORY_SLOT_RIGHTHAND,oPA) ;            object iCasque = GetItemInSlot(INVENTORY_SLOT_HEAD,oPA) ;            if(iArme != OBJECT_INVALID && GetLocalInt(oPA,"ARME_EN_MAIN") == 0)                {                AssignCommand (oPA, ClearAllActions(TRUE));                AssignCommand(oPA, ActionUnequipItem (GetItemInSlot(INVENTORY_SLOT_RIGHTHAND,oPA)));                SpeakString("Rangez votre arme ! Le port d'armes est interdit en ville, merci...");                AssignCommand (oPA, SpeakString("Oui de suite ! Pardon...",TALKVOLUME_TALK));                SetLocalInt(oPA,"ARME_EN_MAIN",1);                return;                }            if(iArme != OBJECT_INVALID && GetLocalInt(oPA,"ARME_EN_MAIN") == 1)                {                AssignCommand (oPA, ClearAllActions(TRUE));                AssignCommand(oPA, ActionUnequipItem (GetItemInSlot(INVENTORY_SLOT_RIGHTHAND,oPA)));                SpeakString("Encore vous ?! Votre arme ! Cette fois ci vous avez une ammende de 1000 pieces d'or...");                TakeGoldFromCreature (1000,oPA, TRUE);                AssignCommand (oPA, SpeakString("Mes pieces d'or ! *snif*",TALKVOLUME_TALK));                return;                }            else if(iCasque != OBJECT_INVALID)                {                if(GetTag(iCasque)!= "capuchondombr001" && GetTag(iCasque)!= "capuchondombr002")                    {                    SpeakString("Votre casque ! Vous etes en ville, merci...");                    AssignCommand(oPA, ActionUnequipItem (GetItemInSlot(INVENTORY_SLOT_HEAD,oPA)));                    AssignCommand (oPA, ActionSpeakString("Pfff...",TALKVOLUME_TALK));                    }                if (GetTag(iCasque)== "capuchondombr001" && GetTag(iCasque)== "capuchondombr002")                    {                    SpeakString("Hm..., le controleur vous regarde en passant, mais ne vous dit rien...");                    }                }    }}} 
dsl je n'arrive pas a placer le code sans déformation du text
Lien direct vers le message - Vieux
Répondre
Les forums JOL > Forum jeux-vidéo > Neverwinter Nights > NWN - Maskado > interdire les armes en ville
   

Outils Rechercher
Rechercher:

Recherche avancée

Les vidéos de Neverwinter Nights RSS
  • Aucune vidéo pour le moment...
Thème visuel : Fuseau horaire GMT +1. Il est actuellement 15h16.
   

© JeuxOnLine, le site des MMO, MMORPG et MOBA. Tous droits réservés. - Conditions générales d'utilisation - Conditions d'utilisation des forums - Traitement des données personnelles - ! Signaler un contenu illicite