Différences entre les versions de « TESCS : Day »

De Wiwiki
Aller à la navigation Aller à la recherche
(Création de la page.)
 
m (→‎Exemple d'utilisation : Correction du script "coupé en deux")
 
Ligne 16 : Ligne 16 :
   [[TESCS : Set|Set]] joursPasses to '''Day'''
   [[TESCS : Set|Set]] joursPasses to '''Day'''
  [[TESCS : EndIf|EndIf]]
  [[TESCS : EndIf|EndIf]]
 
  [[TESCS : If|If]] ( OnActivate == 1 )
  [[TESCS : If|If]] ( OnActivate == 1 )
   [[TESCS : Set|Set]] init to 0
   [[TESCS : Set|Set]] init to 0

Version actuelle datée du 2 décembre 2011 à 04:47


Day est une variable globale de type Short qui contient le jour courant.

Exemple d'utilisation

Voici un exemple d'utilisation : si le joueur passe dix jours sans sortir de sa chambre, il fait une crise de folie . Le script est lié à la porte de la chambre.

Begin folieEnfermement

Short jour
Short joursPasses
Short init

If ( init == 0 )
 Set init to 1
 Set joursPasses to Day
EndIf

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

If ( joursPasses != Day )
 If ( init == 1 )
  Set joursPasses to Day
  Set jour to jour + 1
 EndIf
EndIf

If ( jour == 10 )
 player->AddSpell "folieEnfermementSpell"
 Set init to -1
 Set jour to -1
EndIf
End

Un script un peu plus long que les exemples habituels. Ca fait du bien de temps en temps ! Au début, on initialise les variables : "init" pour initialiser et réinitialiser le script, "jour" pour la durée d'enfermement en jours, et "joursPasses" comme variable temporaire pour détecter quand le jour change. Premier bloc If/EndIf : On initialise le script. On affecte la valeur Day (le jour actuel) à la variable temporaire qui détectera le moment exact où le jour changera (soit à minuit pile). Second bloc : Si la porte d'entrée est activée, le script est réinitialisé, on met init à la valeur 0 pour qu'une nouvelle entrée du personnage dans la cellule redéclenche le premier bloc, et donc le script. Troisième bloc : le plus important. Il détecte si ( joursPasses != Day ), autrement dit si le jour a changé à la frame dite. Si oui, pour éviter que la variable de décompte des jours écoulés ne commence à augmenter de 1 par frame, on affecte Day comme valeur à joursPasses. La prochaine activation du bloc sera dans exactement 24 heures. Quatrième bloc : si le nombre de jours égale 10, alors on donne au joueur le sort "folieEnfermementSpell" (on rajoute Spell pour éviter que le script et le sort aient le même nom), et on met init et jour à des valeurs qui ne déclencheront plus aucun bloc, à savoir -1.

Notes :

  • Exemple concret : Nous sommes le 17 vifazur 3E428, on aura Day == 17.
  • Une autre variable utilisable pour ce type de scripts est DaysPassed, mais elle nécessite l'extension Tribunal.

Voir également :