TESCS : DaysPassed

De Wiwiki
Aller à la navigation Aller à la recherche


DaysPassed est une variable globale intégrée au jeu avec Tribunal. Elle compte le nombre de jours écoulés depuis le début du jeu.

Exemple d'utilisation

Pour cet exemple, nous nous baserons sur le script étudié sur la page Day, et nous verrons comment l'accélérer en diminuant sa taille grâce à DaysPassed :

Begin folieEnfermement2

Short jourMaximal
Short init

If ( init == 0 )
 Set init to 1
 Set jourMaximal to DaysPassed + 10
EndIf

If ( OnActivate == 1 )
 Set init to 0
 Activate
EndIf

If ( init == 1 )
 If ( jourMaximal == DaysPassed )
  player->AddSpell "folieEnfermement2Spell"
  Set init to -1
 EndIf
EndIf
End

On remarque entre autre la fusion des deux derniers blocs en un bloc plus compact. Les variables sont moins nombreuses : jourMaximal détermine le jour à compter duquel la folie s'activera, et init garde sa fonction de garant de l'activation des bons blocs aux bons moments. Dans le premier bloc, presque rien n'a changé : seule la ligne de l'initialisation varie, on a à présent une initialisation du jour à atteindre plutôt que celle du compteur. En effet c'est DaysPassed qui occupe le rôle de compteur dans ce script. Dans le second bloc, le même classique que dans Day : le script reprendra quand on entrera dans cette chambre à nouveau. Dans le troisième bloc, on remarque n'avoir plus besoin de la boucle du troisième bloc de Day : dès que jourMaximal vaut le jour actuel, on donne le sort et on bloque la valeur de la variable init.

Notes :

  • Dans le décompte, DaysPassed est très utile, mais le combo Day/Month/Year combiné avec GameHour fait des merveilles dans d'autres cas. Le tout est de savoir choisir !
  • Attention, DaysPassed pourra être buggé si la partie a été commencée sans extensions puis que Tribunal a été installé.

Voir aussi :