TESCS : AiTravel
Permet à l'acteur appelant de voyager jusqu'à un point, de coordonnées données, se trouvant dans la même cellule (qu'elle soit intérieure ou extérieure).
Syntaxe
La syntaxe correcte pour cette fonction est :
id_acteur -> AiTravel, x, y, z
id_acteur voyagera alors vers le point de coordonnées x, y, z.
Exemple d'utilisation
Voici un exemple d'utilisation : on fait voyager un marchand vers un lieu de la carte (bien sûr les coordonnées n'ont rien de véridique, elles ne sont dues qu'au hasard).
Begin VoyageMarchand Short doOnce If ( doOnce == 0 ) marchand->AiTravel, 6312, 4024, 1324 set doOnce to 1 Endif End
N'oubliez pas de mettre des conditions de telle façon que l'AiTravel ne soit exécuté qu'une fois.
Notes
- AiTravel n'accepte pas les variables en argument, même avec Tribunal; cet écueil n'est surmontable qu'avec MWSE (voir la commande xAiTravel)
- La présence ou non d'un pathgrid a un certain effet sur cette commande. Lorsqu'un pathgrid existe et permet à la référence en question de se rendre au point x y z, alors s'il n'y pas d'obstacle entre le PNJ et le point d'arrivée, le PNJ s'y rend en ligne droite en empruntant le chemin le plus court; sinon le PNJ se rend au point désiré en empruntant les lignes du pathgrid. S'il n'y a pas de pathgrid, la référence essaie toujours de se rendre au point x y z en ligne droite. S'il y a un obstacle entre le point de départ et le point d'arrivée, la référence aura alors tendance à warper, c'est à dire à disparaître lorsqu'elle rencontre l'obstacle pour réapparaître immédiatement au point x y z.
- S'il n'y a pas de difficulté majeure en intérieur, en extérieur le franchissement de bordure d'une cellule pose par contre de gros problèmes. Si l'on veut éviter à la référence de warper, il faut conduire par un AiTravel la référence jusqu'au début de la cellule voisine – mais pas plus loin - puis appeler un autre AiTravel. Cette procédure est délicate et nécessite des tests in-game soigneux.