(Pb) Une porte qui s'ouvre en fonction d'un boss

Répondre
Partager Rechercher
Arf ça commence à faire beaucoup en même temps de problèmes, mais voila j'ai également un autre script qui marche pas .

Cette fois le script est pas de moi. Script de Tyrion^^

Dans le On Opened de la porte :

Code PHP:

void main ()
{
object oDoor OBJECT_SELF;

if((
GetLocalInt(oDoor,"golemguer_mort")==1)&&(GetLocalInt(oDoor,"vapt_Guer02")!=1))
    {
    
DelayCommand(5.0,AssignCommand(oDoorActionCloseDoor(oDoor)));
    
SetLocked(oDoorTRUE);
    
SetLocalInt(oDoor,"vapt_Guer02",1);
    }
else
    {
    
DelayCommand(5.0,AssignCommand(oDoorActionCloseDoor(oDoor)));
    }

dans le On Spawn de la créature :

Code PHP:

//::///////////////////////////////////////////////
//:: Default: On Spawn In
//:: NW_C2_DEFAULT9
//:: Copyright (c) 2001 Bioware Corp.
//:://////////////////////////////////////////////
/*
    Determines the course of action to be taken
    after having just been spawned in
*/
//:://////////////////////////////////////////////
//:: Created By: Preston Watamaniuk
//:: Created On: Oct 25, 2001
//:://////////////////////////////////////////////
#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

object oDoor GetObjectByTag("pt_Guer02");
SetLocalInt(oDoor,"golemguer_mort",1);

Y'a que ça d'important dedans :

Code PHP:

object oDoor GetObjectByTag("pt_Guer02");
SetLocalInt(oDoor,"golemguer_mort",1); 
Dans le On Death du monstre :

Code PHP:

//::///////////////////////////////////////////////
//:: Default:On Death
//:: NW_C2_DEFAULT7
//:: Copyright (c) 2001 Bioware Corp.
//:://////////////////////////////////////////////
/*
    Shouts to allies that they have been killed
*/
//:://////////////////////////////////////////////
//:: Created By: Preston Watamaniuk
//:: Created On: Oct 25, 2001
//:://////////////////////////////////////////////
#include "NW_I0_GENERIC"

void main()
{
    
int nClass GetLevelByClass(CLASS_TYPE_COMMONER);
    
int nAlign GetAlignmentGoodEvil(OBJECT_SELF);
    if(
nClass && (nAlign == ALIGNMENT_GOOD || nAlign == ALIGNMENT_NEUTRAL))
    {
        
object oKiller GetLastKiller();
        
AdjustAlignment(oKillerALIGNMENT_EVIL5);
    }

    
SpeakString("NW_I_AM_DEAD"TALKVOLUME_SILENT_TALK);
    
//Shout Attack my target, only works with the On Spawn In setup
    
SpeakString("NW_ATTACK_MY_TARGET"TALKVOLUME_SILENT_TALK);
    if(
GetSpawnInCondition(NW_FLAG_DEATH_EVENT))
    {
        
SignalEvent(OBJECT_SELFEventUserDefined(1007));
    }
object oDoor GetObjectByTag("pt_Guer02");
DeleteLocalInt(oDoor,"vapt_Guer02");
DeleteLocalInt(oDoor,"golemguer_mort");

Pareil y'a que ça d'important dedans :
Code PHP:

object oDoor GetObjectByTag("pt_Guer02");
DeleteLocalInt(oDoor,"vapt_Guer02");
DeleteLocalInt(oDoor,"golemguer_mort"); 
Donc normallement si le joueur ouvre la porte et que le monstre spawn, la porte se referme et se verrouille, puis quand celui-ci meurt, la porte se déverouille. La porte reste en position non verouillé le reste du temps. tag de la porte = pt_Guer02

Chez moi la porte se referme en effet, mais la créature une fois morte, la porte ne s'ouvre plus. Le Pj reste coincé.
Je vois pas d'où viens le problème. Je me suis dis que dans le premier script il ya avait deux fois l'action Close Door et que ça venait pêut être de ça, mais apparement non


Une petite aide serait pas de refus.
Merci bien^^
je pense que sur le OnFailToOpen de la porte tu devrais mettre le script inverse du premier


[PHP]void main ()
{
object oDoor = OBJECT_SELF;

if((GetLocalInt(oDoor,"golemguer_mort")==0))
{
SetLocked(oDoor, FALSE);
DelayCommand(5.0,AssignCommand(oDoor, ActionOpenDoor(oDoor)));
}
}
PHP]

'fin un truc comme ca..
sinon tu met une clé dans la poche du monstre.. qui meurs..

et sinon j'ai pas bien compris l'utilité de la variable :vapt_Guer02
ca fais pas double emploi avec la premiere ?
Merci Drak Valer.
Tu vois que tu fais presque parti de notre team comme on en avait parler précédemment. J'commence à regretter que tu soit pas avec nous
J'espere que le script te servira à toi aussi

Merci merci
J'essaye ça tout se suite^^


PS : la variable vapt_guer02 sert à savoir si le joueur à ouvert la porte (si il est rentré ou non dans la salle). Car c'est une porte initialement fermé, mais non verrouillé.
Bon ça à l'air de marcher correctement maintenant.
Merci Dark Valer

Je pensait pourtant que l'on avait pas besoin de scripts supplémentaires, mais je me trompais assurément.

PS : pas besoin de mettre de clef dans l'inventaire du boss, les variables s'occupent de tout.
Ici la porte se verrouille uniquement lorsque le monstre apparait. Ce qui m'arrange car chez moi le monstre apparait grâce à un levier (gong).

Répondre

Connectés sur ce fil

 
1 connecté (0 membre et 1 invité) Afficher la liste détaillée des connectés