TESCS : AiTravel

De Wiwiki
Révision datée du 25 octobre 2010 à 18:36 par Infomase (discussion | contributions) (Lien vers MWSE)
Aller à la navigation Aller à la recherche


Permet à l'acteur appelant de voyager jusqu'à un point, de coordonnées données, se trouvant dans la même cellule.

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.

Voir également