Différences entre les versions de « TESCS2 : Begin »

De Wiwiki
Aller à la navigation Aller à la recherche
(correction lien et cible unequip)
(Précision sur scripts d'effet magique)
Ligne 4 : Ligne 4 :


Toutes les commandes de script, à l'exception de la déclaration des variables doivent être dans des blocs définis par les commandes Begin … End. Toutefois, les [[TESCS2 : Types de script#Scripts de résultat (Result scripts)|Scripts de résultats]] ne sont pas concernés par les blocs. A chaque fois qu'un script s'exécute, chaque bloc est évalué pour voir si l'événement auquel il se rattache s'est réalisé. Dans le cas contraire, le script qu'il contient ne s'exécute pas.  
Toutes les commandes de script, à l'exception de la déclaration des variables doivent être dans des blocs définis par les commandes Begin … End. Toutefois, les [[TESCS2 : Types de script#Scripts de résultat (Result scripts)|Scripts de résultats]] ne sont pas concernés par les blocs. A chaque fois qu'un script s'exécute, chaque bloc est évalué pour voir si l'événement auquel il se rattache s'est réalisé. Dans le cas contraire, le script qu'il contient ne s'exécute pas.  
Les [[TESCS2 : Types de script#Scripts d'effet magique|Scripts d'effet magique]] ne peuvent contenir que les blocs suivants :
*[[TESCS2 : ScriptEffectStart|ScriptEffectStart]]
*[[TESCS2 : ScriptEffectFinish|ScriptEffectFinish]]
*[[TESCS2 : ScriptEffectUpdate|ScriptEffectUpdate]]


==Exemple de bloc de script==
==Exemple de bloc de script==
Ligne 26 : Ligne 31 :
     Set MaQuete.MouchardRef to GetRef
     Set MaQuete.MouchardRef to GetRef
   ; s'exécute à chaque fois que la référence appelante du script est alarmée par un crime commis par le PJ  
   ; s'exécute à chaque fois que la référence appelante du script est alarmée par un crime commis par le PJ  
   ; '''Attention :''' le bloc OnAlarm sans paramètre s'est exécutée également…
   ; '''Attention :''' le bloc OnAlarm sans paramètre s'est exécuté également.
   end  
   end  



Version du 11 février 2007 à 12:36

Blocs de script

Toutes les commandes de script, à l'exception de la déclaration des variables doivent être dans des blocs définis par les commandes Begin … End. Toutefois, les Scripts de résultats ne sont pas concernés par les blocs. A chaque fois qu'un script s'exécute, chaque bloc est évalué pour voir si l'événement auquel il se rattache s'est réalisé. Dans le cas contraire, le script qu'il contient ne s'exécute pas.

Les Scripts d'effet magique ne peuvent contenir que les blocs suivants :

Exemple de bloc de script

Begin GameMode 
    If DejaFait == 0
       Set MaQuete.pnj1Ref to GetRef       ; transmettre la référence vers le script de quête
       Set DejaFait to 1                   ; pour ne faire qu'une fois
    EndIf
    If …/… etc.
End

Blocs multiple du même type

Les blocs comportant des paramètres peuvent apparaître plusieurs fois dans un script, soit sans paramètre soit avec des paramètres différents. Par exemple ce script est valide :

 begin OnAlarm 
    Set MaQueteTemoinRef to GetRef
    ; s'exécute à chaque fois que la référence appelante du script est alarmée par un criminel quelconque 
 end 
 begin OnAlarm player 
    Set MaQuete.MouchardRef to GetRef
  ; s'exécute à chaque fois que la référence appelante du script est alarmée par un crime commis par le PJ 
  ; Attention : le bloc OnAlarm sans paramètre s'est exécuté également. 
 end 
 begin OnAlarm Bandit1Ref
    Set MaQuete.TemoinCrime1Ref to GetRef
  ; s'exécute à chaque fois que la référence appelante du script est alarmée par un crime commis par Bandit1Ref
  ; Attention : le bloc OnAlarm sans paramètre s'est exécuté également .
 End

Tableau des commandes de bloc

Les paramètres entre crochets [ ] sont optionnels, donc non obligatoires. Les (???) indiquent quelques questionnements à éclaircir.

Type de bloc Paramètres Description
GameMode . Ce bloc s'exécute à chaque fois, selon la Périodicité d'exécution du script, lorsque le jeu n'est pas en Mode Menu. La plupart des Scripts nommés utilisent ce type de bloc, sauf les Scripts d'effet magique.
MenuMode [MenuType] S'exécute lorsque le jeu est en Mode Menu c'est à dire lorsqu'une fenêtre quelconque (de dialogue, d'inventaire…) est affichée, ou ce type de menu est affiché
OnActivate . S'exécute une seule fois, à chaque fois que l'objet est activé, à la place de l'activation par défaut.
OnActorEquip ObjectID S'exécute une seule fois, à chaque fois que l'acteur appelant équipe l'article (Item) spécifié.
OnActorUnequip ObjectID S'exécute une seule fois, à chaque fois que l'acteur appelant déséquipe l'objet spécifié.
OnAdd [ContainerRefID] S'exécute une seule fois, à chaque fois que l'article (Item) appelant est ajouté à un inventaire, ou cet inventaire.
OnAlarm CrimeType, [Criminel] S'exécute une seule fois, à chaque fois que l'acteur appelant reçoit une alarme pour le crime spécifié, commis par un criminel (acteur), ou par ce criminel
OnAlarmVictim CrimeType, [Victime] S'exécute une seule fois, à chaque fois que l'acteur appelant reçoit une alarme pour le crime spécifié, commis contre une victime (acteur), ou cette victime.
OnDeath [ActorID] S'exécute une fois, lorsque l'acteur appelant est tué par un acteur, ou cet autre acteur.
OnDrop [ContainerRefID] S'exécute une fois, lorsque l'objet (Item) est jeté hors d'un container, ou de ce container.
OnEquip [ActorID] S'exécute une fois, lorsque l'objet (Item) est équipé par un acteur, ou cet acteur.
OnHit [ActorID] S'exécute une fois, lorsque l'acteur appelant est frappé par un acteur, ou cet acteur.
OnHitWith [ObjectID] S'exécute une fois, lorsque l'acteur appelant est frappé par une arme, ou cette arme.
OnKnockout [ActorID] ??? S'exécute une fois, lorsque l'acteur appelant est mis KO par un acteur (, ou cet acteur ???).
OnLoad . S'exécute une fois, lorsque l'objet 3D associé à l'objet appelant est chargé.
OnMagicEffectHit EffectID S'exécute une fois, lorsque l'acteur cible est frappé par l'effet magique spécifié.
OnMurder [ActorID] S'exécute une fois, lorsque l'acteur appelant est assassiné par un acteur, ou cet acteur.
OnPackageChange PackageID S'exécute une fois, lorsque l'acteur appelant remplace ce package par un autre.
OnPackageDone PackageID S'exécute une fois, lorsque l'acteur appelant termine ce package.
OnPackageStart PackageID S'exécute une fois, lorsque l'acteur appelant démarre ce package.
OnReset . S'exécute une fois, lorsque la cellule (cell) de l'objet appelant est réinitialisée (reset).
OnSell [SellerRefID] S'exécute une fois, lorsque l'objet appelant (Item) est vendu par quelqu'un, ou par ce vendeur.
OnStartCombat [TargetActorID] S'exécute une fois, lorsque l'acteur appelant commence un combat avec un acteur, ou cet acteur.
OnTrigger [TriggeringRefID] S'exécute une fois, lorsque l'objet appelant entre en collision avec un objet, ou cet objet.
OnTriggerActor [TriggeringRefID] S'exécute une fois, lorsque l'objet appelant entre en collision avec un acteur, ou cet acteur.
OnTriggerMob [TriggeringRefID] S'exécute une fois, lorsque l'objet appelant entre en collision avec un objet mobile, ou cet objet mobile (acteur, flèche, projectile magique)
OnUnequip [ContainerRefID] S'exécute une fois lorsque l'objet appelant est déséquipé par l'acteur (container ? ) indiqué.
ScriptEffectStart . S'exécute une fois lors du lancement d'un effet magique (scripts d'effet uniquement).
ScriptEffectFinish . S'exécute une fois lors de la fin d'un effet magique (scripts d'effet uniquement).
ScriptEffectUpdate . S'exécute en continu pendant un effet magique (scripts d'effet uniquement).