La Bibliothèque de Neverwinter Nights
Aide et informations diverses sur Neverwinter Nights ainsi que D&D3.
La date/heure actuelle est 23/11/2024 21:02: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
lojic
Novice
Inscrit le: 07 Juil 2005
Messages: 16
Répondre en citant
Posté le : 13/06/2006 16:42:22 Sujet du message :

just comme sa ... je passait par la et je me suis demander pourquoi ne pas utiliser le generateur d'evenement comme l'a proposer Ivelios. Je ne suis pas sur d'avoir saisit l'utilisation , mais si s'est comme je le pense sa dervrais etre faisable , alors voici mon idee :

NWScript :
Timer/générateur dvènement

Voici un timer économique qui compte les minutes, il permettra de
contrôler le respawn des contenants par exemple ou encore de déclencher
des évènements à une heure précise de la journée ou de la nuit qui sera
probablement utilisé pour les systèmes de lycanthropie...

Le système se découpe en deux parties le premier est une simple
ligne à ajouter au début du OnModuleLoad de votre module :

    SignalEvent(GetObjectByTag("TIMER"),EventUserDefined(606024));

Cette ligne de code sert à amorcer le TIMER au lancement de votre module.
La seconde partie est un script à placer dans le OnUserDefined d'un
plaçable quelconque(immortel au moins) à mettre où vous voudrez dans
votre module, le TAG du plaçable doit être TIMER. Voici le script en question :



//d'une chaine d'action infinie
//Attention les chaines d'action sont interdites sur le placable lui


void main()
{
    int nUser = GetUserDefinedEventNumber();
    switch(nUser)
    {
        case 0://minuit
        break;
        case 6:

      //ici on demande de deverouiller les portes que l'on veux en les choisisant par leur TAG

        break;
        case 12://midi
        break;
        case 18:

      //ici on demande de verouiller les portes que l'on veux en les choisisant par leur TAG

        break;
        case 606024:
            int nHour = GetTimeHour();
            if(GetTimeMinute()==0)
            {
                SignalEvent(OBJECT_SELF,EventUserDefined(nHour));
            }
            ActionWait(60.0);
            ActionDoCommand(SetLocalInt(GetModule(),"minute",GetLocalInt(GetModule(),"minute")+1));
            ActionDoCommand(SignalEvent(OBJECT_SELF,EventUserDefined(606024)));
        break;
    }
}
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:/fr-tnt.forumactif.com
 
Revenir en haut Voir le profil de l'utilisateur Envoyer un message privé Ignorer l'utilisateur
 
warpShadow
Légende vivante
Inscrit le: 01 Fév 2005
Messages: 363
Localisation: Perpignan
Répondre en citant
Posté le : 13/06/2006 22:23:42 Sujet du message :

//onopen de la porte. Script du module valprofond

NWScript :
void main()
{
int heure = GetTimeHour();

    if( heure >= 21 )
    if( heure < 8 )
    {
    SetLocked(OBJECT_SELF,TRUE);
    }

    if ( (heure < 21 ))
    if ( (heure >= 8 ))
    {
    SetLocked(OBJECT_SELF,FALSE);
    }

  if(GetIsOpen(OBJECT_SELF))
  {
  DelayCommand(30.0,ActionCloseDoor(OBJECT_SELF));
  }

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

_________________
Asphia
Module RP Médiéval Fantastique pour Neverwiner Nights
 
Revenir en haut Voir le profil de l'utilisateur Envoyer un message privé Visiter le site web du posteur Ignorer l'utilisateur
 
Ivellios
Légende vivante
Inscrit le: 25 Jan 2005
Messages: 447
Localisation: Poitiers
Répondre en citant
Posté le : 14/06/2006 09:46:21 Sujet du message :

Ton script me parait moyen, bon j'ai pas testé mais il me paraît bizarre :
- Faire un SetLocked(On) sur une porte quand tu l'ouvre ça ne la referme pas, donc la porte est ouverte (mais vérouillé).
- Faire un SetLocked(Off) sur le OnFailedToOpen plutôt non ?

Ceci dit je peux bien me tromper...
_________________
Scripts, systèmes, fonctions,... c'est par ici...
Pyjama pour castor, une vocation, un avenir sûr
 
Revenir en haut Voir le profil de l'utilisateur Envoyer un message privé Visiter le site web du posteur MSN Messenger Ignorer l'utilisateur
 
warpShadow
Légende vivante
Inscrit le: 01 Fév 2005
Messages: 363
Localisation: Perpignan
Répondre en citant
Posté le : 16/06/2006 00:19:08 Sujet du message :

en fait, ici, la porte se referme 30 seconde après son ouverture, quoi qu'il arrive.
quand elle est ouverte, le script regarde l'heure qu'il est, sil est entre21h et 8h, le blocage est TRUE. Sinon, le blocage est false.
une fois que la porte s'est refermée, s'il fait nuit, elle reste close jusqu'a ce qu'on essaie de l'ouvrir à l'heure d'ouverture.

voila.
_________________
Asphia
Module RP Médiéval Fantastique pour Neverwiner Nights
 
Revenir en haut Voir le profil de l'utilisateur Envoyer un message privé Visiter le site web du posteur Ignorer l'utilisateur
 
Ivellios
Légende vivante
Inscrit le: 25 Jan 2005
Messages: 447
Localisation: Poitiers
Répondre en citant
Posté le : 16/06/2006 06:27:32 Sujet du message :


Ivellios a écrit :
Ton script me parait moyen, bon j'ai pas testé mais il me paraît bizarre :
- Faire un SetLocked(On) sur une porte quand tu l'ouvre ça ne la referme pas, donc la porte est ouverte (mais vérouillé).
- Faire un SetLocked(Off) sur le OnFailedToOpen plutôt non ?

Ceci dit je peux bien me tromper...
Je me répète, le problème vient du faite que si la porte est vérouillé, le OnOpen n'est pas un event qui s'avctive (il me semble), donc ton script n'est pas bon sur ce point là.

De plus, si tu vérouille ta porte quand tu l'ouvre, même à minuit elle reste ouverte 30 seconde, et en se refermant là se sera vérouillé, autant fait un ActionCloseDoor tout de suite après dans ce cas là...
_________________
Scripts, systèmes, fonctions,... c'est par ici...
Pyjama pour castor, une vocation, un avenir sûr
 
Revenir en haut Voir le profil de l'utilisateur Envoyer un message privé Visiter le site web du posteur MSN Messenger Ignorer l'utilisateur
 
L'Erudit
Seigneur
Inscrit le: 26 Oct 2005
Messages: 167
Répondre en citant
Posté le : 16/06/2006 14:24:53 Sujet du message :

La solution est d'utiliser un trigger !
 
Revenir en haut Voir le profil de l'utilisateur Envoyer un message privé Ignorer l'utilisateur
 
warpShadow
Légende vivante
Inscrit le: 01 Fév 2005
Messages: 363
Localisation: Perpignan
Répondre en citant
Posté le : 18/06/2006 23:49:15 Sujet du message :


Ivellios a écrit :

Ivellios a écrit :
Ton script me parait moyen, bon j'ai pas testé mais il me paraît bizarre :
- Faire un SetLocked(On) sur une porte quand tu l'ouvre ça ne la referme pas, donc la porte est ouverte (mais vérouillé).
- Faire un SetLocked(Off) sur le OnFailedToOpen plutôt non ?

Ceci dit je peux bien me tromper...
Je me répète, le problème vient du faite que si la porte est vérouillé, le OnOpen n'est pas un event qui s'avctive (il me semble), donc ton script n'est pas bon sur ce point là.

De plus, si tu vérouille ta porte quand tu l'ouvre, même à minuit elle reste ouverte 30 seconde, et en se refermant là se sera vérouillé, autant fait un ActionCloseDoor tout de suite après dans ce cas là...
pourtant, ça marche très bien Embarassed
_________________
Asphia
Module RP Médiéval Fantastique pour Neverwiner Nights
 
Revenir en haut Voir le profil de l'utilisateur Envoyer un message privé Visiter le site web du posteur Ignorer l'utilisateur
 
Ivellios
Légende vivante
Inscrit le: 25 Jan 2005
Messages: 447
Localisation: Poitiers
Répondre en citant
Posté le : 20/06/2006 09:10:24 Sujet du message :

J'ai du me planter alors, je testerais plus tard...
_________________
Scripts, systèmes, fonctions,... c'est par ici...
Pyjama pour castor, une vocation, un avenir sûr
 
Revenir en haut Voir le profil de l'utilisateur Envoyer un message privé Visiter le site web du posteur MSN Messenger Ignorer l'utilisateur
 
marneus
Chevalier
Inscrit le: 17 Oct 2005
Messages: 89
Localisation: devant mon pc ... surment
Répondre en citant
Posté le : 21/06/2006 15:50:17 Sujet du message :

j'ai tester, et il marche a merveille
 
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 60.036ms