Commandes

retour sommaire
Retour texte principal

Texte original par Bjarne Grönnevick
Titre original Appendix A commands
Traduction par Tropheus et Whisky

Bien, vous savez maintenant comment écrire un script, alors il est grand temps d'utiliser les commandes invoquées dans le scripting. Ce document est une liste de commandes associées à une description et autres explications pour les utiliser au mieux. Ce n'est pas une liste exhaustive, mais une liste des commandes, soit les plus utilisées, soit celles qui nécessitent une expliaction. Pour avoir une complète définition (mais courte) de toutes les commandes, jetez un oeil sur les fichiers suivants :
g_allclasses.html (pour Mohaa) et MOH_GameClass.html (pour spearhead).

De plus il parait indispensable de lire parallèlement le document classes (pour les classes).


Table des matières.

* Définition et syntaxe
* Manipulation d'objets


¤ Existence
¤ Rotation
¤ Mouvement

* Objets et conditions
* Dommages
* Sons
* Affichage de messages.
* Mathématiques
* Combinaison de commandes.

¤ Ascenseur


* Définition et syntaxe

Le format utilisé pour décrire la commande est le suivant :

Commande Nom de la commande.
Syntaxe A quelle classe appartient cette commande et combien de paramètre lui faut-il ?
Exemple Bribe de code en exemple pour expliquer comment utiliser cette commande.
Description Description textuelle de la commande. Quand faut-il l'utiliser etc...
Commentaire  Détail rajouté si besoin est.

 La partie syntaxe est écrite comme cela :

Classe nom_de_la_commande (type_du_paramètre_1, nom_du_paramètre_1, [type_du_paramètre_optionel_2, nom_du_parmètre_optionel_2])

Exemple : <Entitée> cansee (Entitée entitée, [float fov], [float distance_de_vision])

Explication : La classe "Entitée" tolère la commande "cansee". Cettre commande requièrt un paramètre de la classe "Entitée". De plus, vous pouvez ajouter 2 paramètres "float" (fov et distance_de_vision).

En résumé :

Un paramètre de commande est écrit entre parenthèses ( ).
Une commade optionelle est écrite entre crochets [ ].


* Manipulation d'objets

¤ Existence

 Commande  hide
 Syntaxe  <Entitée> hide
 Exemple  $documents_à_voler hide
 Description Cette commande cache un objet qui devient invible au joueur. Cet objet existe toujours, il est simplement invisible. Tant qu'il est invisible, rien ne se passe.

 Commande  show
 Syntaxe  <Entité> show
 Exemple  $documents_à_voler show
 Description  Cette commande permet de monter un objet au joueur. Tant qu'il est visible, rien ne se passe

 Commande  remove
 Syntaxe  <Entitée> remove
 Exemple  $documents_à_voler remove
 Description  Enlève un objet, de cette façon il n'existe plus dans le jeu.

 

¤ Rotation

 Commande  rotateX, rotateY, rotateZ
 Syntaxe  <ScriptSlave> rotateX (Float angular_velocity)
 Exemple  $fan rotateX 1.5
 Description  Rotation selon l'axe X (Y ou Z) à la vitesse angulaire spécifiée. "Angular-velocity" représente la vitesse de rotation de l'objet.
 Commande  rotateXdown, rotateYdown, rotateZdown
 Syntaxe  <ScriptSlave> rotateXdown (Float angle)
 Exemple  $trapdoor rotateXdown 45.0
 Description  Tourne le X (Y ou Z) vers le bas de l'angle spécifié. L'angle représente l'angle de rotation de l'objet.

 Commande  rotateXup, rotateYupp, rotateZup
 Syntaxe  <ScriptSlave> rotateXup (Float angle)
 Exemple  $trapdoor rotateXup 45.0
 Description  Tourne le X (Y ou Z) vers le haut de l'angle spécifié. L'angle représente l'angle de rotation de l'objet.

 Commande  rotateXdownto, rotateYdownto, rotateZdownto
 Syntaxe  <ScriptSlave> rotateXdownto (Float angle)
 Exemple  $trapdoor rotateXdownto 45.0
 Description  Tourne le X (Y ou Z) vers le bas de l'angle spécifié. L'angle représente l'angle de rotation de l'objet.

 Commande  rotateXupto, rotateYupto, rotateZupto
 Syntaxe  <ScriptSlave> rotateXupto (Float angle)
 Exemple  $trapdoor rotateXupto 45.0
 Description  Tourne le X (Y ou Z) vers le haut de l'angle spécifié. L'angle représente l'angle de rotation de l'objet.

 

¤ Mouvement

 Commande  move, waitmove
 Syntaxe  <ScriptSlave> move
 Exemple

$elevator moveto $waypoint_down

$elevator move

 Description  Fait bouger le script esclave. Cette commande execute la commande de mouvement précédente envoyée au script-esclave (la classe du script_objet). La commande waitmove attend que le mouvement soit terminé avant de continuer l'exécution du script.

 Commande  move, waitmove
 Syntaxe  <ScriptSlave> move
 Exemple

$elevator moveto $waypoint_down

$elevator move

 Description  Fait bouger le script esclave. Cette commande execute la commande de mouvement précédente envoyée au script-esclave (la classe du script_objet). La commande waitmove attend que le mouvement soit terminé avant de continuer l'exécution du script.

 Commande  moveto
 Syntaxe  <ScriptSlave> moveto (destination)
 Exemple $elevator moveto $top_floor
 Description bouge jusqu'à l'entitée spécifiée.


 Commande  moveto
 Syntaxe  <Actor> moveto (Stin anim,string dest)
 Exemple $diable moveto "anim/mon_animation" "ici"
 Description  Spécifie l'endroit où doit se déplacer le personnage ainsi que l'animation décidée pour son déplacement.

 Commande  moveup, movedown, moveFoward, moveBackward, moveLeft, moveRight, moveEast, moveWest, moveNorth, moveSouth
 Syntaxe  <ScriptSlave> moveup (float distance)
 Exemple $elevator moveup 64
 Description Fait bouger l'objet de la distance définie (64 en unités Mohaa)


* Objets et conditions.

 Commande  isAlive
 Syntaxe  <ScriptThread> isAlive
 Exemple if ! (isAlive $vip_player)
{
teamwin axis
}
 Description Cette commande teste pour voir si quelque chose est vivant. Si c'est le cas 1 est retourné sinon c'est 0 (si c'est mort).
La définition de la "vie" dans MOH est le fait d'avoir plus de 0 en point de vie.

 Commande  isTouching
 Syntaxe  <Entité> isTouching (Entité entité)
 Exemple if ! ($player[local.index] isTouching $it)
{
teamwin axis
}
 Description Cette commande teste pour savoir si quelque chose touche l'objet. Si c'est le cas 1 est retourné sinon c'est 0. (Je ne suis pas sur de cette fonction, si vous avez plus de précision, merci de m'en faire part !)

 

 Commande  sighttrace
 Syntaxe  
 Exemple
 Description


* Dommages

Quelques commandes ont un paramètre appelé "meansofdeath" (damage et killed de la classe Player par exemple). C'st un paramètre qui utilise ces valeurs :

 ID

 Nom

Description

 0
 MOD_NONE  

 1
 MOD_SUICIDE  

2
 MOD_CRUSH  

3
 MOD_CRUSH_EVERY_FRAME  

4
 MOD_TELEFRAG  

5
 MOD_LAVA  

6
 MOD_SLIME  

7
 MOD_FALLING  

8
 MOD_LAST_SELF_INFLICTED  

9
 MOD_EXPLOSION  

10
 MOD_EXPLODEWALL  

11
 MOD_ELECTRIC  

12
MOD_ELECTRICWATER  

13
 MOD_THROWNOBJECT  

14
 MOD_BEAM  

15
 MOD_ROCKET  

16
 MOD_IMPACT  

17
 MOD_BULLET  

18
 MOD_FAST_BULLET  

19
 MOD_VEHICLE

20
 MOD_FIRE  

21
 MOD_FLASHBANG  

22
 MOD_ON_FIRE

23
 MOD_GIB

24
 MOD_IMPALE

25
 MOD_BASH

26
 MOD_TOTAL_NUMBER  


* Sons

Le sons est joué sur différents canaux, Voici une liste des canaux valides :

 Numéro

Nom

Description

0

 auto
 C'est le canal qui a le moins de priorité. Il est toujours joué si c'est possible (harware audio channel ) mais ne jouera pas par dessus d'autres sons. Si aucun canal n'est disponible, le son ne sera pas joué tout simplement. Il est préférable de l'utiliser pour qui n'ont pas d'importances particulières comme les impacts de balles, plutot que pour des sons plus importants comme les bruits de pas.

1

 body (personnage)
 Ce sont les bruits faits par le corps du personnage. Ceci inclue des sons comme les impacts (de chutes et d'attérissage difficiles) mais aussi les bruit fait par l'équipement du joueur.

2

item (objets)
 Ce sont les sons faits par les objets portés par le personnage, ou tout les sons qui s'y réfèrent. Ceci incluerait aussi les sons faits par les objets utilisés par les joueur comme les jumelles les papiers, mais aussi ce canal peut être utilisé comme second canal pour les sons des armes si une arme doit emettre 2 sons en même temps. C'est aussi le canal utilisé pour le rechargement des armes pour prévenir des coupure de sons sur les autres canaux.

3

 weaponidle (arme au repos)
 C'est pour les bruits contants faits par les armmes ou le personnage en lui même. Un exemple de Quake 3 le bruit du rail de l'arme.

4

voice (voix) 
 Ce sont des sons émis par les personnages comme la douleur, la mort, les cris pendant le combat. C'est effectivement le canal ayant la plus basse priorité pour les dialogues.

5

 local
 Sons considérés comme locaux pour le joueur. Il n'y a pas de spécialisation 3D pour le son. Il accorde le volume en fonction de la distance. Il est préférable des les utiliser pour des sons qui sons unidertionnels comme la pluie et les éclairs.

6

weapon (arme) 
 Ce sont les sons qui sont émis par les armes du joueur. Ceci inclue les sons du tir, mais du rechargement.

7

 dialog-secondary
(dialogues secondaires)
 C'est le canal secondaire pour les dialogues. Bien à utiliser des dialogues de basse priorité comme les discussions entre les personnages. Il devrait inclure uniquement les les dialogues avec des sous-titres.

8

dialogue (dialogue) 
 C'est le canal primaire pour les dialogues des joueurs. Il devrait inclure uniquement les les dialogues avec des sous-titres.

 9

menu (menu) 
 C'est le canal réservé aux sons du menu.


 Commande  playsound
 Syntaxe  <Entity> playsond (nom du son, [numéro du canal], [volume], [distance min], [hauteur])
 Exemple $radio playsound "emergency-broadcast" 7
 Description Joue un son venant de cette entité. Le canal par défaut est le canal 1 (body)

 Commande  stopsound
 Syntaxe  <Entité> stopsound ([canal])
 Exemple $radio stopsound 7
 Description Arrête le son joué sur le canal spécifié. Canal par défaut (canal 1 (body))

 Commande  loopsound
 Syntaxe  <Entité> loopsound (nom_du_son, [volume], [distance minimale])
 Exemple $radio loopsound "ether_static"
 Description Joue un son en boucle avec un cetain volume et une certaine distance_minimale

 Commande  stoploopsound
 Syntaxe  <Entité>stoploopsound
 Exemple $radio stoploopsound
 Description Arrête le son en boucle sur cette entité.


* Affichage de messages

 Commande  print, println
 Syntaxe  <ScriptThread> print (texte)
 Exemple print "Le prix du sucre à doublé !"
 Description Affiche le message dans la console! LA commande println est suivie d'un retour à la ligne.

 Commande  iprintln, iprintlnbold
 Syntaxe  <ScriptThread>iprintln (texte)
 Exemple iprintln "La farine aussi !"
 Description Affiche un message en haut à gauche de l'écran en jaune (mais sans le clic) suivi d'un retour à la ligne. La version bold, utilise la même police, mais en blanc et avec le clic.

 Commande  iprintln_noloc, iprintlnbold_noloc
 Syntaxe  <ScriptThread> iprintln_noloc (texte)
 Exemple iprintln_noloc " C'est la faute du temps, si y fait pas beau !!!"
 Description Affiche un message dan la partie gauche de l'écran en blanc (avec un clic) et avec un retour à la ligne. la version bold utilise les caractères gras.
 Commande  locprint
 Syntaxe  <ScriptThread> locprint (Valeur de X, Valeur de Y, texte)
 Exemple locprint 30, 100, "Mais y fait beau quand il ne pleut pas !"
 Description Affiche le message aux coordonnées(X et Y) spécifiée pour tous les écran de tous les joueurs.


* Mathématiques

 Commande  abs
 Syntaxe  <ScritpThread> abs (valeur)
 Exemple abs -23.656
 Description Donne la valeurs absolue du paramètre. Pour 15.3 on aura 15.3, pour -2 on aura 2, pour-5.999 on aura 5.999


* Combinaison de commandes.

Cette partie du tutorial n'ayant pas encore été écrite par Bjarne Grönnevick je ne peux hélas pas vous la traduire.

Retour au texte principal.

Retour au sommaire