La Bibliothèque de Neverwinter Nights
Aide et informations diverses sur Neverwinter Nights ainsi que D&D3.
La date/heure actuelle est 04/07/2025 12:16:52


  Page 2 sur 2 ¤ Aller à la page Précédente  1, 2

Voir le sujet précédent ¤ Voir le sujet suivant 
Auteur Message
Argyl
Grand Sage du Conseil
Inscrit le: 09 Fév 2005
Messages: 704
Répondre en citant
Posté le : 26/04/2006 16:35:08 Sujet du message :

Ben, Enki, c'est tout à fait ce que je veux dire par définitions de "tolérance", donc si on va jusque là pas besoin de commencer à t'em***** avec l'éditeur Very Happy

Et pi, j'aime pas l'éditeur Very Happy
 
Revenir en haut Voir le profil de l'utilisateur Envoyer un message privé Ignorer l'utilisateur
 
Orlondow
Acolyte
Inscrit le: 09 Juin 2004
Messages: 33
Répondre en citant
Posté le : 26/04/2006 18:09:53 Sujet du message :

he bien merci de tes conseil enki !

quelques questions toutefois


Citation :
tu créés trois Subraces (ethnies) différentes : " Les bons", "Les moyens", "Les pas bons".
Et tu les opposes.
=> avec le script de Black Knight modifié (en changeant la variable par une subrace) dans le onmoduleenter ça irait ? ça srait suffisant pour ça ?


Citation :
Ensuite, dans le script de perception de tes PNJs, tu précises que si un le PNJ qui est l'hôte du script (OBJECT_SELF) est d'alignement bon et si le joueur qu'il voit est d'alignement mauvais alors OBJECT_SELF doit devenir enemy. Il ne change pas de faction, donc si un PJ "bon" passe par là, il sera considéreé comme neutre.
Tu fais d'autres conditions du même type pour les autres alignement.
=> ça veut dire que toute la faction de NPC deviendra ennemie avec lui : ça n'influencera pas les autres ? Est-e que c'est assez "lourd" comme script ou plutôt "léger" ? (c'est pour savoir si dans une ville on le met à tous ou pas)

ce qui serait chou de ta part serait de nous rédiger juste cette partie du script pour que tous y ait accès (même ceux qui aiment pas scripter genre Argyl ou les newbees) Laughing:oops:
_________________
Les portes de Gwalap serveur Persistent/Action
 
Revenir en haut Voir le profil de l'utilisateur Envoyer un message privé Ignorer l'utilisateur
 
Enki
Légende vivante
Inscrit le: 06 Déc 2005
Messages: 432
Répondre en citant
Posté le : 26/04/2006 18:25:56 Sujet du message :

Pour le script de Black Knight, je sais pas trop, j'ai pas regardé, mais par contre, ce que je propose n'est pas très lourd ni très dur à faire.
J'ai pas le temps ce soir, mais si je peux, je le ferai cette nuit.

A bientôt.
 
Revenir en haut Voir le profil de l'utilisateur Envoyer un message privé Ignorer l'utilisateur
 
Orlondow
Acolyte
Inscrit le: 09 Juin 2004
Messages: 33
Répondre en citant
Posté le : 26/04/2006 21:15:16 Sujet du message :

au fait à propos, puisqu'on est dans les factions et la réputation, étant donné que setisenmy (ou quelque chose de ressemblant, utilisant l'include nw_plot_01 ou quelque chose du genre) fait baisser la réputation de 100 (on s'en rend compte quand on va ans l'include), je me demandais si il était possiblé une fois qu'un NPC était devenu "méchant" avec le PC, il puisse à nouveau redevenir (ainsi que toute sa faction si je ne m'abuse) "neutre" (avec la possibilité de redevenir méchant bien sûr !).

j'ai bien réussi à faire devenir un PNJ méchant avec le PC via setisenmy mais pas moyen de le faire redevenir neutre (d'ailleurs SetIsNeutral n'existe tout simplement pas dans l'include Shocked !!!). Je suis toutefois parvenu à le faire redevenir gentil avec SetIsTemporaryFriend (notez qu'avec SetIsTemporaryNeutral ça marchait pas : il restait méchant) mais alors impossible de le faire redevenir méchant via SetIsEnmy Laughing

le problème que je pose est donc celui du passage d'un PC d'un "clan" à un autre en cours de partie, et est donc relié à ces problèmes de faction des NPC, c'est pourquoi je le laisse à la suite de ce qui précède Embarassed

en clair ce qu'il me faut, c'est un script faisant devenir "méchant" (à volonté) et un script faisant devenir "gentil" (à volonté aussi) un NPC vis à vis d'un PJ

sur ce je vous laisse ! demain sera une rude journée
_________________
Les portes de Gwalap serveur Persistent/Action
 
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 : 26/04/2006 22:03:31 Sujet du message :

Alors tu peux mettre mon script dans le OnEnter :

NWScript :

void main()
{
object oEnemi = GetFirstPC();
int iTeamPC = GetLocalInt(oPC, "Team");
if(GetIsPC(oPC) && GetIsPC(oEnemi))
{
while(GetIsObjectValid(oEnemi))
{
int iTeamEnemi = GetLocalInt(oEnemi, "Team");
if(iTeamPC != iTeamEnemi)
{
SetPCDislike(oPC, oEnemi);
}
else if(iTeamPC == iTeamEnemi)
{
SetPCLike(oPC, oEnemi);
}
oEnemi = GetNextPC();
}
}
}
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.


Regarde bien mon script, je vais un peu te le traduire :

SetPCDislike = Met le PersonnageA ennemi avec le PersonnageB
SetPCLike = Met le PersonnageA ami avec le PersonnageB

Ensuite si tu veux faire changer de clan quelqu'un c'est trés simple :

On prend un exemple : PersonnageA est bien, et est donc hostile avec PersonnageB qui est Neutre. PersonnageA veut plus être du bien, donc il passe en neutre :

NWScript :

void main()
{
SetLocalInt(oPC, "Team",3);
object oEnemi = GetFirstPC();
int iTeamPC = GetLocalInt(oPC, "Team");
if(GetIsPC(oPC) && GetIsPC(oEnemi))
{
while(GetIsObjectValid(oEnemi))
{
int iTeamEnemi = GetLocalInt(oEnemi, "Team");
if(iTeamPC != iTeamEnemi)
{
SetPCDislike(oPC, oEnemi);
}
else if(iTeamPC == iTeamEnemi)
{
SetPCLike(oPC, oEnemi);
}
oEnemi = GetNextPC();
}
}
}
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.

_________________
[http]
 
Revenir en haut Voir le profil de l'utilisateur Envoyer un message privé Ignorer l'utilisateur
 
Enki
Légende vivante
Inscrit le: 06 Déc 2005
Messages: 432
Répondre en citant
Posté le : 27/04/2006 00:52:04 Sujet du message :

>> Aquamitchel, voilà le script que tu demandais.

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///////////////////////// ////////////////////////
//:: NW_C2_DEFAULT2
/*
  Default OnPerception event handler for NPCs.

  Handles behavior when perceiving a creature for the
  first time.
*/

//:Confused///////////////////////// ////////////////////////

#include "nw_i0_generic"
#include "nw_i0_plot"
void main()
{
// * if not runnning normal or better Ai then exit for performance reasons
    // * if not runnning normal or better Ai then exit for performance reasons
    if (GetAILevel() == AI_LEVEL_VERY_LOW) return;

    object oPercep = GetLastPerceived();
    int bSeen = GetLastPerceptionSeen();
    int bHeard = GetLastPerceptionHeard();
    int iAlign=GetAlignmentGoodEvil(oPercep);
    int iAlignSelf= GetAlignmentGoodEvil(OBJECT_SELF);



    if (bHeard == FALSE)
    {
        // Has someone vanished in front of me?
        bHeard = GetLastPerceptionVanished();
    }

    // This will cause the NPC to speak their one-liner
    // conversation on perception even if they are already
    // in combat.
    if(GetSpawnInCondition(NW_FLAG_SPECIAL_COMBAT_CONVERSATION)
      && GetIsPC(oPercep)
      && bSeen)
    {
        SpeakOneLinerConversation();
    }

    // March 5 2003 Brent
    // Had to add this section back in, since  modifications were not taking this specific
    // example into account -- it made invisibility basically useless.
    //If the last perception event was hearing based or if someone vanished then go to search mode
    if ((GetLastPerceptionVanished()) && GetIsEnemy(GetLastPerceived()))
    {
        object oGone = GetLastPerceived();
        if((GetAttemptedAttackTarget() == GetLastPerceived() ||
          GetAttemptedSpellTarget() == GetLastPerceived() ||
          GetAttackTarget() == GetLastPerceived()) && GetArea(GetLastPerceived()) != GetArea(OBJECT_SELF))
        {
          ClearAllActions();
          DetermineCombatRound();
        }
    }

    // This section has been heavily revised while keeping the
    // pre-existing behavior:
    // - If we're in combat, keep fighting.
    // - If not and we've perceived an enemy, start to fight.
    //  Even if the perception event was a 'vanish', that's
    //  still what we do anyway, since that will keep us
    //  fighting any visible targets.
    // - If we're not in combat and haven't perceived an enemy,
    //  see if the perception target is a PC and if we should
    //  speak our attention-getting one-liner.
    if (GetIsInCombat(OBJECT_SELF))
    {
        // don't do anything else, we're busy
        //MyPrintString("GetIsFig hting: TRUE");

    }
    // * BK FEB 2003 Only fight if you can see them. DO NOT RELY ON HEARING FOR ENEMY DETECTION
    else if (GetIsEnemy(oPercep) && bSeen)
    { // SpawnScriptDebugger();
        //MyPrintString("GetIsEne my: TRUE");
        // We spotted an enemy and we're not already fighting
        if(!GetHasEffect(EFFECT_TYPE_SLEEP)) {
            if(GetBehaviorState(NW_FLAG_BEHAVIOR_SPECIAL))
            {
                //MyPrintString("Determin eSpecialBehavior");
                DetermineSpecialBehavior();
            } else
            {
                //MyPrintString("Determin eCombatRound");
                SetFacingPoint(GetPosition(oPercep));
                SpeakString("NW_I_WAS_ATTACKED", TALKVOLUME_SILENT_TALK);
                DetermineCombatRound();
            }
        }
    }

    else if (bSeen && iAlign == ALIGNMENT_EVIL && iAlignSelf == ALIGNMENT_GOOD )
    { // SpawnScriptDebugger();
        //MyPrintString("GetIsEne my: TRUE");
        // We spotted an enemy and we're not already fighting
        if(!GetHasEffect(EFFECT_TYPE_SLEEP)) {
            if(GetBehaviorState(NW_FLAG_BEHAVIOR_SPECIAL))
            {
                //MyPrintString("Determin eSpecialBehavior");
                DetermineSpecialBehavior();
            } else
            {
                //MyPrintString("Determin eCombatRound");
                SetFacingPoint(GetPosition(oPercep));
                SpeakString("NW_I_WAS_ATTACKED", TALKVOLUME_SILENT_TALK);
                SetIsEnemy(oPercep);
                DetermineCombatRound();

            }
        }
    }



        else if (bSeen && iAlign == ALIGNMENT_GOOD && iAlignSelf == ALIGNMENT_EVIL )
    { // SpawnScriptDebugger();
        //MyPrintString("GetIsEne my: TRUE");
        // We spotted an enemy and we're not already fighting
        if(!GetHasEffect(EFFECT_TYPE_SLEEP)) {
            if(GetBehaviorState(NW_FLAG_BEHAVIOR_SPECIAL))
            {
                //MyPrintString("Determin eSpecialBehavior");
                DetermineSpecialBehavior();
            } else
            {
                //MyPrintString("Determin eCombatRound");
                SetFacingPoint(GetPosition(oPercep));
                SpeakString("NW_I_WAS_ATTACKED", TALKVOLUME_SILENT_TALK);
                SetIsEnemy(oPercep);
                DetermineCombatRound();

            }
        }
    }





    else
    {
        if (bSeen)
        {
            //MyPrintString("GetLastP erceptionSeen: TRUE");
            if(GetBehaviorState(NW_FLAG_BEHAVIOR_SPECIAL)) {
                DetermineSpecialBehavior();
            } else if (GetSpawnInCondition(NW_FLAG_SPECIAL_CONVERSATION)
                      && GetIsPC(oPercep))
            {
                // The NPC will speak their one-liner conversation
                // This should probably be:
                // SpeakOneLinerConversation(oPer cep);
                // instead, but leaving it as is for now.
                ActionStartConversation(OBJECT_SELF);
            }
        }
        else
        // * July 14 2003: Some minor reactions based on invisible creatures being nearby
        if (bHeard && GetIsEnemy(oPercep))
        {
          // SpeakString("vanished&quo tWink;
            // * don't want creatures wandering too far after noises
            if (GetDistanceToObject(oPercep) <= 7.0)
            {
//                if (GetHasSpell(SPELL_TRUE_SEEING ) == TRUE)
                if (GetHasSpell(SPELL_TRUE_SEEING))
                {
                    ActionCastSpellAtObject(SPELL_TRUE_SEEING, OBJECT_SELF);
                }
                else
//                if (GetHasSpell(SPELL_SEE_INVISIB ILITY) == TRUE)
                if (GetHasSpell(SPELL_SEE_INVISIBILITY))
                {
                    ActionCastSpellAtObject(SPELL_SEE_INVISIBILITY, OBJECT_SELF);
                }

                else
//                if (GetHasSpell(SPELL_INVISIBILIT Y_PURGE) == TRUE)
                if (GetHasSpell(SPELL_INVISIBILITY_PURGE))
                {
                    ActionCastSpellAtObject(SPELL_INVISIBILITY_PURGE, OBJECT_SELF);
                }
                else
                {
                    ActionPlayAnimation(ANIMATION_FIREFORGET_HEAD_TURN_LEFT, 0.5);
                    ActionPlayAnimation(ANIMATION_FIREFORGET_HEAD_TURN_RIGHT, 0.5);
                    ActionPlayAnimation(ANIMATION_FIREFORGET_PAUSE_SCRATCH_HEAD, 0.5);
                }
            }
        }

        // activate ambient animations or walk waypoints if appropriate
      if (!IsInConversation(OBJECT_SELF)) {
          if (GetIsPostOrWalking()) {
              WalkWayPoints();
          } else if (GetIsPC(oPercep) &&
              (GetSpawnInCondition(NW_FLAG_AMBIENT_ANIMATIONS)
                || GetSpawnInCondition(NW_FLAG_AMBIENT_ANIMATIONS_AVIAN)
                || GetSpawnInCondition(NW_FLAG_IMMOBILE_AMBIENT_ANIMATIONS)
                || GetIsEncounterCreature()))
          {
                SetAnimationCondition(NW_ANIM_FLAG_IS_ACTIVE);
          }
        }
    }

    // Send the user-defined event if appropriate
    if(GetSpawnInCondition(NW_FLAG_PERCIEVE_EVENT) && GetLastPerceptionSeen())
    {
        SignalEvent(OBJECT_SELF, EventUserDefined(EVENT_PERCEIVE));
    }
}

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.


>> Orlondow :


Citation :

en clair ce qu'il me faut, c'est un script faisant devenir "méchant" (à volonté) et un script faisant devenir "gentil" (à volonté aussi) un NPC vis à vis d'un PJ
je vais voir si j'ai le temps demain, mais je crois qu'il y a un post sur le forum qui n parle déjà.
 
Revenir en haut Voir le profil de l'utilisateur Envoyer un message privé Ignorer l'utilisateur
 
Orlondow
Acolyte
Inscrit le: 09 Juin 2004
Messages: 33
Répondre en citant
Posté le : 27/04/2006 19:32:52 Sujet du message :

je vais essayer ça, black !
_________________
Les portes de Gwalap serveur Persistent/Action
 
Revenir en haut Voir le profil de l'utilisateur Envoyer un message privé Ignorer l'utilisateur
 
Orlondow
Acolyte
Inscrit le: 09 Juin 2004
Messages: 33
Répondre en citant
Posté le : 27/04/2006 19:38:32 Sujet du message :

ça marche po Sad

NWScript :

#include "nw_i0_plot"
void main()
{
object oPC = GetEnteringObject();
object oGlad = GetObjectByTag("JIDANBOU");
if (GetIsPC(oPC)) SetPCDislike(oPC, oGlad); //AssignCommand(,SetIsEnemy()) ;
}
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.


pourtant c pas un problème de tag parce que ça marchait avec SetIsEnemy()...

peut-être que ça marche qu'entre PC ?
_________________
Les portes de Gwalap serveur Persistent/Action
 
Revenir en haut Voir le profil de l'utilisateur Envoyer un message privé Ignorer l'utilisateur
 
Enki
Légende vivante
Inscrit le: 06 Déc 2005
Messages: 432
Répondre en citant
Posté le : 27/04/2006 19:46:35 Sujet du message :

oui, SetPCDislike ne marche à ma connaissance qu'avec les PCs.
 
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 : 27/04/2006 21:09:40 Sujet du message :

Ha ok j'ai cru que tu voulais les hostilités entre joueur, escuse. Bon alors tu as deux solutions :

1) si tu veux faire du Monstre vs Monstre, il te suffit tout simplement de créer deux faction (avec l'editeur>outil>créer faction) et de les mettres hostile entre eux.

2) si tu veux faire du Monstre+PC vs Monstre+PC, c'est plus chaud, car il faut pas que les monstres alliers attaquent les joueurs qui sont avec eux. Alors pour faire sa on va utilisé des variable appellé donc encore "Team" :

Pour un joueur tu mets donc mon script en place.

Pour le monstre tu mets sa dans le OnSpawn :

NWScript :
//:Confused///////////////////////// /////////////////////
//:: Default: On Spawn In
//:: NW_C2_DEFAULT9
//:: Copyright (c) 2001 Bioware Corp.
//:Confused///////////////////////// ////////////////////
/*
    Determines the course of action to be taken
    after having just been spawned in
*/

//:Confused///////////////////////// ////////////////////
//:: Created By: Preston Watamaniuk
//:: Created On: Oct 25, 2001
//:: Modified By: James Robinson
//:: Modified On: July 2003
//:Confused///////////////////////// ////////////////////
#include "NW_O2_CONINCLUDE"
#include "NW_I0_GENERIC"

void main()
{
// OPTIONAL BEHAVIORS (Comment In or Out to Activate ) ****************************** ****************************** ****************
    //SetSpawnInCondition(NW_FLAG_ SPECIAL_CONVERSATION);
    //SetSpawnInCondition(NW_FLAG_ SPECIAL_COMBAT_CONVERSATION);
                // This causes the creature to say a special greeting in their conversation file
                // upon Perceiving the player. Attach the [NW_D2_GenCheck.nss] script to the desired
                // greeting in order to designate it. As the creature is actually saying this to
                // himself, don't attach any player responses to the greeting.

    //SetSpawnInCondition(NW_FLAG_ SHOUT_ATTACK_MY_TARGET);
                // This will set the listening pattern on the NPC to attack when allies call
    //SetSpawnInCondition(NW_FLAG_ STEALTH);
                // If the NPC has stealth and they are a rogue go into stealth mode
    //SetSpawnInCondition(NW_FLAG_ SEARCH);
                // If the NPC has Search go into Search Mode
    //SetSpawnInCondition(NW_FLAG_ SET_WARNINGS);
                // This will set the NPC to give a warning to non-enemies before attacking

    //SetSpawnInCondition(NW_FLAG_ SLEEP);
                //Creatures that spawn in during the night will be asleep.
    //SetSpawnInCondition(NW_FLAG_ DAY_NIGHT_POSTING);
    //SetSpawnInCondition(NW_FLAG_ APPEAR_SPAWN_IN_ANIMATION);
    //SetSpawnInCondition(NW_FLAG_ IMMOBILE_AMBIENT_ANIMATIONS);
    //SetSpawnInCondition(NW_FLAG_ AMBIENT_ANIMATIONS);
                //This will play Ambient Animations until the NPC sees an enemy or is cleared.
                //NOTE that these animations will play automatically for Encounter Creatures.

    // NOTE: ONLY ONE OF THE FOLOOWING ESCAPE COMMANDS SHOULD EVER BE ACTIVATED AT ANY ONE TIME.
    //SetSpawnInCondition(NW_FLAG_ ESCAPE_RETURN);    // OPTIONAL BEHAVIOR (Flee to a way point and return a short time later.)
    //SetSpawnInCondition(NW_FLAG_ ESCAPE_LEAVE);    // OPTIONAL BEHAVIOR (Flee to a way point and do not return.)
    //SetSpawnInCondition(NW_FLAG_ TELEPORT_LEAVE);  // OPTIONAL BEHAVIOR (Teleport to safety and do not return.)
    //SetSpawnInCondition(NW_FLAG_ TELEPORT_RETURN);  // OPTIONAL BEHAVIOR (Teleport to safety and return a short time later.)

// CUSTOM USER DEFINED EVENTS
/*
    The following settings will allow the user to fire one of the blank user defined events in the NW_D2_DefaultD.  Like the
    On Spawn In script this script is meant to be customized by the end user to allow for unique behaviors.  The user defined
    events user 1000 - 1010
*/

    //SetSpawnInCondition(NW_FLAG_ HEARTBEAT_EVENT);        //OPTIONAL BEHAVIOR - Fire User Defined Event 1001
    //SetSpawnInCondition(NW_FLAG_ PERCIEVE_EVENT);        //OPTIONAL BEHAVIOR - Fire User Defined Event 1002
    //SetSpawnInCondition(NW_FLAG_ ATTACK_EVENT);          //OPTIONAL BEHAVIOR - Fire User Defined Event 1005
    //SetSpawnInCondition(NW_FLAG_ DAMAGED_EVENT);          //OPTIONAL BEHAVIOR - Fire User Defined Event 1006
    //SetSpawnInCondition(NW_FLAG_ DISTURBED_EVENT);        //OPTIONAL BEHAVIOR - Fire User Defined Event 1008
    //SetSpawnInCondition(NW_FLAG_ END_COMBAT_ROUND_EVENT); //OPTIONAL BEHAVIOR - Fire User Defined Event 1003
    //SetSpawnInCondition(NW_FLAG_ ON_DIALOGUE_EVENT);      //OPTIONAL BEHAVIOR - Fire User Defined Event 1004
    //SetSpawnInCondition(NW_FLAG_ DEATH_EVENT);            //OPTIONAL BEHAVIOR - Fire User Defined Event 1007

// DEFAULT GENERIC BEHAVIOR (DO NOT TOUCH) ****************************** ****************************** *****************************
    SetListeningPatterns(); // Goes through and sets up which shouts the NPC will listen to.
    WalkWayPoints(); // Optional Parameter: void WalkWayPoints(int nRun = FALSE, float fPause = 1.0)
                              // 1. Looks to see if any Way Points in the module have the tag "WP_" + NPC TAG + "_0X", if so walk them
                              // 2. If the tag of the Way Point is "POST_" + NPC TAG the creature will return this way point after
                              //    combat.
    GenerateNPCTreasure(); //* Use this to create a small amount of treasure on the creature

    // Set my Faction variable on Spawn
    int iTeam = StringToInt(GetTag(OBJECT_SELF));

    SetLocalInt(OBJECT_SELF, "Team", iTeam);
}
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.


Pour choisir sont camps, en tag tu mets soit 1, soit 2, enfin ce que tu a mit pour les joueurs. Donc si on reprend mon script on mettra soit 1 pour bien, soit 2 pour mal, soit 3 pour neutre.

Ensuite tu mets sa dans le OnHeartBeat :

NWScript :
//:Confused///////////////////////// /////////////////////
//:: Default On Heartbeat
//:: NW_C2_DEFAULT1
//:: Copyright (c) 2001 Bioware Corp.
//:Confused///////////////////////// ////////////////////
/*
    This script will have people perform default
    animations.
*/

//:Confused///////////////////////// ////////////////////
//:: Created By: Preston Watamaniuk
//:: Created On: Nov 23, 2001
//:: Modified By: James Robinson
//:: Modified On: July, 2003
//:Confused///////////////////////// ////////////////////
#include "NW_I0_GENERIC"

void main()
{
    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));
    }

    int iTeam = GetLocalInt(OBJECT_SELF, "Team");
    object oVictim = GetFirstPC();

        while(GetIsObjectValid(oVictim)){
            int iVictimsTeam = GetLocalInt(oVictim, "Team");

            if(iVictimsTeam != iTeam && iVictimsTeam != 0){
                SetIsTemporaryEnemy(oVictim, OBJECT_SELF, TRUE, 6.1); // Hostility lasts only 1 turn in case player becomes neutral or changes side
            }

            oVictim = GetNextPC();



    }
}
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.


Ici la créature va verifié toutes les créature aux alentours et les mettre hostile si ils ne sont pas du meme LocalInt("Team") si tu vois ce que je veux dire.

Voila normalement sa devrait marché
_________________
[http]
 
Revenir en haut Voir le profil de l'utilisateur Envoyer un message privé Ignorer l'utilisateur
 
Montrer les messages depuis :
Page 2 sur 2 ¤ Aller à la page Précédente  1, 2


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 88.673ms