Elleslande Module pour NWN
Vous souhaitez réagir à ce message ? Créez un compte en quelques clics ou connectez-vous pour continuer.
Elleslande Module pour NWN

Forum d' Elleslande, module RP pour Neverwinter Nights
 
AccueilRechercherDernières imagesS'enregistrerConnexion
Le Deal du moment : -55%
Coffret d’outils – STANLEY – ...
Voir le deal
21.99 €

 

 [VILLE] Des magasins qui ouvrent à l'heure

Aller en bas 
AuteurMessage
Astarode
Admin
Astarode


Nombre de messages : 374
Age : 53
Localisation : Elleslande
Date d'inscription : 16/11/2005

[VILLE] Des magasins qui ouvrent à l'heure Empty
MessageSujet: [VILLE] Des magasins qui ouvrent à l'heure   [VILLE] Des magasins qui ouvrent à l'heure EmptyDim 19 Mar - 21:44

Ce script a été développé par Silk, je poste pour lui car il n'a pas trop de temps en ce moment...

Il est facilement adaptable : il vous suffira de changer les heures geek

Silk a écrit:

// Script est à placer dans le "OnHeartbeat" d'une porte.
// La porte se fermera et se verrouillera automatiquement 20h,
// puis se déverrouillera et s'ouvrira automatiquement à 8h.

void main()
{
if(GetTimeHour()>19)
{
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)) // le ! devant GetLocked permet de tester la condition inverse. Ici, si la porte est dévérouillée
ActionDoCommand(SetLocked(OBJECT_SELF,TRUE));
}
else if(GetTimeHour()>7)
{
if(GetLocked(OBJECT_SELF))
ActionDoCommand(SetLocked(OBJECT_SELF,FALSE));

if(!GetIsOpen(OBJECT_SELF))
ActionOpenDoor(OBJECT_SELF);
}
}
Revenir en haut Aller en bas
https://elleslande.1fr1.net
Astarode
Admin
Astarode


Nombre de messages : 374
Age : 53
Localisation : Elleslande
Date d'inscription : 16/11/2005

[VILLE] Des magasins qui ouvrent à l'heure Empty
MessageSujet: Re: [VILLE] Des magasins qui ouvrent à l'heure   [VILLE] Des magasins qui ouvrent à l'heure EmptySam 1 Avr - 13:58

Bien que parfaitement fonctionnel et original, le script de Silk s'est révélé à l'usage assez gourmand en ressource.

En effet, la porte déclenche le script et teste l'heure TOUTES LES 6 SECONDES !!! (contre coup du "OnHeartBeat"). Dès lors, s'il y a plusieurs portes contenant ce script et que la zone fait vivre plusieurs PNJs (...), la pile se trouve vite saturée.

Voici donc une alternative un peu plus dépouillée. Ici, point de portes qui s'ouvrent en grand à l'heure dite, ou qui se referment comme par magie à la tombée de la nuit. Ce script, à mettre dans le "OnOpen", test l'heure et vérouille ou dévérrouille la porte suivant le résultat UNIQUEMENT lorsque la porte est actionnée. A noter que pendant les heures d'ouverture, la porte se referme d'elle-même au bout de 10 secondes (les PJs ayant la facheuse tendance à ne jamais refermer geek ).

Astarode a écrit:
void main()
{
object oDoor = OBJECT_SELF;
if(GetTimeHour()>7 && GetTimeHour()<21)// Test l'heure au moment où la porte est actionnée et déclenche la suite s'il est entre 8h et 20h
{
DelayCommand(5.0f,ActionCloseDoor(oDoor));// Referme la porte après 5s.
}
else
{
ActionCloseDoor(oDoor);//Si le test n'est pas bon (heure non entre 8h et 20h), ferme la porte
}
}

PS
Si vous avez des suggestions, n'hésitez pas...
Revenir en haut Aller en bas
https://elleslande.1fr1.net
 
[VILLE] Des magasins qui ouvrent à l'heure
Revenir en haut 
Page 1 sur 1
 Sujets similaires
-
» [VILLE] Des rumeurs aléatoires à la carte
» [VILLE] Script pour un garde municipal
» Avis placardé en différents recoins de la ville basse...

Permission de ce forum:Vous ne pouvez pas répondre aux sujets dans ce forum
Elleslande Module pour NWN :: Zone technique :: Aurora : Trucs et astuces pour l'éditeur de NWN-
Sauter vers: