Le Gobscript est le langage de commande des suivants.
Ordres
bool move(Xx, Yy, Nn);
le suivant se déplace aux coordonnées (Xx,Yy,Nn)
bool follow(PLAYER|MONSTER, Id, distance);
le suivant suit le joueur ou le monstre n° Id
bool stop();
le suivant ne fait plus rien (tous les ordres suivants sont ignorés)
if false
bool pick(PLANT|OBJECT, Id);
le suivant ramasse la plante ou l'objet n° Id
bool drop(ALL|PLANT|OBJECT, ALL|Id, GROUND|PLAYER|MONSTER, GROUND|Id2);
le suivant dépose sur le sol ou donne au joueur ou au monstre n° Id2 l'objet ou la plante n° Id
bool attack(PLAYER|MONSTER|PLACE, Id);
le suivant attaque le joueur ou le monstre ou le lieu n° Id
bool defend(PLAYER|MONSTER|PLACE, Id);
le suivant défend le joueur ou le monstre ou le lieu n° Id
bool rebuild(Id);
le suivant reconstruit le lieu n° Id
bool repair(Id);
le suivant répare l'objet (au sol ou dans une tanière où il a accès au stock) n° Id
bool cure(PLAYER|MONSTER, Id);
le suivant soigne le joueur ou le monstre n° Id
bool enter(PORTAL|PLACE, Id);
le suivant prend le portail n° Id ou entre dans le lieu n° Id
bool scout(Xx, Yy, Nn);
le suivant se déplace jusqu'aux coordonnées (Xx,Yy,Nn) et envoie un compte-rendu de ce qu'il a pu observer
bool equip(Id);
le suivant équipe l'objet n° Id
bool unequip(Id);
le suivant enlève l'objet n° Id
bool build(Id);
le suivant construit le lieu n° Id
bool produce(TYPE);
le suivant fabrique un objet de type TYPE
bool trade(???);
le suivant commerce
bool buy(???);
le suivant achète
bool sell(???);
le suivant achète
bool use(???);
le suivant utilise une potion ou un parchemin
bool train();
le suivant s'entraine
bool nop();
le suivant ne fait rien (mais les ordres suivants sont exécutés)
instruction pour simplifier le langage
PLANT, OBJECT, PLAYER, MONSTER, PLACE, PORTAL, ALL, GROUND sont des constantes à utiliser tel quel
PLANT|OBJECT signifie que l'on peut mettre PLANT ou OBJECT (mais pas les deux)
Les paramètres en vert sont à renseigner par l'utilisateur (ce sont les coordonnées ou le n° des objets/lieux/monstres/joueurs/portails/plantes)
Elles renvoient VRAI si elles ont fait leur action, sinon FAUX
Voici une liste des fonctions informatives :
bool isAlly(PLAYER|MONSTER, Id);
retourne VRAI si le joueur ou le monstre n° Id est un allié
bool isEnnemy(PLAYER|MONSTER, Id);
retourne VRAI si le joueur ou le monstre n° Id est un ennemy
int isWounded(PLAYER|MONSTER|PLACE|SELF,Id|SELF);
retourne le pourcentage de blessures (comme Connaissance des Monstres : 0 => pleine forme, 95 => presque mort) du joueur ou du monstre ou du lieu n° Id ou du suivant
array players();
retourne le tableau des joueurs dans la vue du suivant
array monsters();
retourne le tableau des monstres dans la vue du suivant
array objects();
retourne le tableau des trésors dans la vue du suivant
array plants();
retourne le tableau des plantes dans la vue du suivant
array places();
retourne le tableau des lieux/décors dans la vue du suivant
int type(e);
retourne le type de e, e étant un élément d'un tableau retourné par players/monsters/objects/plants/places
int id(e);
retourne le numéro de e, e étant un élément d'un tableau retourné par players/monsters/objects/plants/places
int posx(e);
retourne la position en X de e, e étant un élément d'un tableau retourné par players/monsters/objects/plants/places
int posy(e);
retourne la position en Y de e, e étant un élément d'un tableau retourné par players/monsters/objects/plants/places
int posn(e);
retourne la position en N de e, e étant un élément d'un tableau retourné par players/monsters/objects/plants/places
Voici la liste des fonctions de test :
bool eq(ARG1, ARG2)
retourne VRAI si ARG1 est égal à ARG2
bool ne(ARG1, ARG2)
retourne VRAI si ARG1 est différent de ARG2
bool lt(ARG1, ARG2)
retourne VRAI si ARG1 est plus petit que ARG2
bool le(ARG1, ARG2)
retourne VRAI si ARG1 est plus petit ou égal que ARG2
bool gt(ARG1, ARG2)
retourne VRAI si ARG1 est plus grand que ARG2
bool ge(ARG1, ARG2)
retourne VRAI si ARG1 est plus grand ou égal que ARG2
Voici une liste des structures de contrôle :
if Condition:
Actions
endif;
si Condition est VRAI alors Actions sont exécutées
if Condition:
Actions
else:
Actions2
endif;
Si Condition est VRAI alors Actions sont exécutées sinon Actions2 sont exécutées
foreach Array as Variable:
Actions
endforeach;
Pour chaque élément de Array, Actions sont exécutées, Variable désigne l'élément courant