Elleslande Module pour NWN
Forum d' Elleslande, module RP pour Neverwinter Nights
 
AccueilCalendrierFAQRechercherS’enregistrerConnexion
 question de verouillageVoir le sujet précédent Voir le sujet suivant Aller en bas 
AuteurMessage
Ame Sombre
Novice



Age : 23
Inscrit le : 05 Sep 2006
Messages : 18

MessageSujet: question de verouillage   Mar 5 Sep - 3:35

question surement tres con***e.

Je fais un piti module la, mais le truc c'est que je chercher le script qui verrouille automatiquement une porte apres ouverture.

j'ai deja demandé a des scripteurs d'autre serveur sur lequel je jouais, nada, secret d'amateur, ils ne voulaient pas me le fournir, ni meme d'explication.

sans script,on peux la verouiller, la faire ouvrir uniquement par une clef, mais il faut re-utiliser la clef pour relocker la porte (aller expliquer ca a un dm amateur qui debute ... je parle de moi^^)

donc si qqun a un lien ou le script direct, je lui frotterais la tete gratos durant 3 jours non stop.
Pis je rajoute sous le menton, soyons fou! cheers

Merci biiiien
Revenir en haut Aller en bas
Astarode
Admin



Age : 37
Inscrit le : 16 Nov 2005
Messages : 374
Localisation : Elleslande

MessageSujet: Re: question de verouillage   Mar 5 Sep - 18:59

Es-ce ça que tu cherches ?

http://elleslande.forumzen.com/viewtopic.forum?t=134


A moins que tu ne cherches juste qu'à refermer la porte...
... les joueurs les ouvrent mais ne les referment jamais... Bonjour les courants d'air ! drunken

void main()
{
// Referme la porte après un délai de 10 secondes
// A mettre dans le OnEnter de la porte


DelayCommand(10.0f,ActionCloseDoor(OBJECT_SELF));
}
_________________
Pour me joindre sur MSN : ld10b@hotmail.com
Revenir en haut Aller en bas
Ame Sombre
Novice



Age : 23
Inscrit le : 05 Sep 2006
Messages : 18

MessageSujet: Re: question de verouillage   Mar 5 Sep - 22:59

Ce serait pour une geole, il faut donc que la porte soit verrouillée a la fermeture, de sorte qu'il n'y ai qu'une clef pour l'ouvrire.
Pour l'instant, j'arrive à la verrouiller, mais des qu'elle est ouverte avec une clef specifique, elle ne ce verrouille pas AUTOMATIQUEMENT à la fermeture.

J'ai deja 4 PNJ's qui font greve a cause des-dit courants d'air... Rolling Eyes

Est ce qu'avec le script de ci dessus, la porte ce ferme ET ce verrouille?
Revenir en haut Aller en bas
Silk
Faiseur d'Univers



Age : 30
Inscrit le : 20 Nov 2005
Messages : 298
Localisation : Albi

MessageSujet: le scripting   Mer 6 Sep - 7:11

Je te donne un lien interessant : http://nwnscript.coldwire.net/

il s'agit d'une base de donnée de fonction de scripting avec exemple.

Si tu regarde à ActionCloseDoor tu as cet exemple :

Citation:

// Script placé dans l'évenement "OnHeartbeat" d'une porte.
// La porte se fermera et se verrouillera automatiquement au crépuscule,
// puis se déverrouillera et s'ouvrira automatiquement à l'aube.
void main()
{
if(GetIsDusk())
{
if(GetIsOpen(OBJECT_SELF))
ActionCloseDoor(OBJECT_SELF);

// La fonction "SetLocked()" est utilisée avec "ActionDoCommand()".
// Elle doit être dans la file d'action, afin que la porte se ferme
// complètement avant de se verrouiller.
if(!GetLocked(OBJECT_SELF)
ActionDoCommand(SetLocked(OBJECT_SELF,TRUE));
}
else if(GetIsDawn())
{
if(GetLocked(OBJECT_SELF))
ActionDoCommand(SetLocked(OBJECT_SELF,FALSE));

if(!GetIsOpen(OBJECT_SELF))
ActionOpenDoor(OBJECT_SELF);
}
}



Bien sur les script dans les Heartbeat sont a déconseiller car ils se lance toutes les 6s ce qui pourri la vie a ton serveur !

Par contre si tu reprend le script d'Asta :

Citation:

void main()
{
// Referme la porte après un délai de 10 secondes
// A mettre dans le OnEnter de la porte

DelayCommand(10.0f,ActionCloseDoor(OBJECT_SELF));
DelayCommand(12.0f,ActionDoCommand(SetLocked(OBJECT_SELF,FALSE)));
}



Voilà, à prioris au bout de 10s la porte se ferme et 2s après elle se reverouille...
Bien sur ne met pas ça sur une porte où tu choisi de "detruire la clef" après utilisation...

Je pense que comme ça ça devrait fonctionner.
_________________
----------------------------------------
Peut être que l'on se retrouvera ...
Revenir en haut Aller en bas
Ame Sombre
Novice



Age : 23
Inscrit le : 05 Sep 2006
Messages : 18

MessageSujet: Re: question de verouillage   Mer 6 Sep - 15:46

Le script d'Asta modif by Silk me convient parfaitement.

Je l'essaye de suite, le tout en vous remerciant Wink
Revenir en haut Aller en bas
Astarode
Admin



Age : 37
Inscrit le : 16 Nov 2005
Messages : 374
Localisation : Elleslande

MessageSujet: Re: question de verouillage   Mer 6 Sep - 19:16

Je n'avais pas préciser pour la commande de verrouilage car ça me semblait couler de source. En revanche, tu peux, à la place du DelayCommande mettre DIRECTEMENT le SetLoked.

En, effet, le DelayCommand mets en place un timer qui exécute la commande spécifiée à la fin de décompte. Ici, tu peux verrouiller la porte dès qu'elle s'est refermée. pig
_________________
Pour me joindre sur MSN : ld10b@hotmail.com
Revenir en haut Aller en bas
Silk
Faiseur d'Univers



Age : 30
Inscrit le : 20 Nov 2005
Messages : 298
Localisation : Albi

MessageSujet: Re: question de verouillage   Mer 6 Sep - 19:45

je pensais que le script passerais à la commande suivante en attendant que le delay s'effectue.... Smile

d'ou les 12s pour laisser le temps à la porte de se fermer...
_________________
----------------------------------------
Peut être que l'on se retrouvera ...
Revenir en haut Aller en bas
Astarode
Admin



Age : 37
Inscrit le : 16 Nov 2005
Messages : 374
Localisation : Elleslande

MessageSujet: Re: question de verouillage   Mer 6 Sep - 19:53

Citation:

void main()
{
// Referme la porte après un délai de 10 secondes
// A mettre dans le OnEnter de la porte

DelayCommand(10.0f,ActionCloseDoor(OBJECT_SELF));
DelayCommand(12.0f,ActionDoCommand(SetLocked(OBJECT_SELF,FALSE)));
}


Dans le script que tu as proposé, la porte ne se reverrouille pas 2 mais 12 secondes après la fin de la commande précédente pig
De plus, il te faudra mettre le SetLocked à TRUE comme expliqué -->ici

Du "prêt-à-macher" donnera donc :
Astarode a écrit:
void main()
{
// Referme la porte après un délai de 10 secondes et la verrouille
// A mettre dans le OnEnter de la porte

DelayCommand(10.0f,ActionCloseDoor(OBJECT_SELF));
SetLocked(OBJECT_SELF,TRUE);
}

_________________
Pour me joindre sur MSN : ld10b@hotmail.com
Revenir en haut Aller en bas
Silk
Faiseur d'Univers



Age : 30
Inscrit le : 20 Nov 2005
Messages : 298
Localisation : Albi

MessageSujet: effectivement   Jeu 7 Sep - 8:05

effectivement pour le false j'ai fait un copier coller betement sans relire milles excuses !
_________________
----------------------------------------
Peut être que l'on se retrouvera ...
Revenir en haut Aller en bas
question de verouillageVoir le sujet précédent Voir le sujet suivant Revenir en haut 
Page 1 sur 1

Permission de ce forum:Vous ne pouvez pas répondre aux sujets dans ce forum
Elleslande Module pour NWN :: Zone technique :: Aurora : Le coin des invités-