Utils SAI-Editor éditeur d' AI
#1
Heart 
SAI-Editor éditeur d' AI (SmartAI / smart_script)



[Image: maxresdefault.jpg]


SAI-Editor est un éditeur d' AI destiné principalement au créature ou au gameobject . il permet de leur affecter une intelligence artificielle ou d'interagir avec son environnement .
Par exemple vous pourrez définir le comportement d'un mob face au joueur : a l'agro lance tel sort  , ci ces points de vie tombe au dessous d'un pourcentage le faire fuir .
Il pourra aussi faire réagir ou le mob ou le gameobject via un menu (gossip_menu) , terminer ou donner une quete , etc ... vous l'aurez compris SAI-Editor est indispensable pour déboguer ou ce créer son environnement perso .
Bien entendu SAI-Editor ne fait pas tout , il ne s'occupe que de l'interaction et la réaction . Dans l'exemple d'un dialogue ou l'on aurait plusieurs choix il vous faudra d’abord créer un gossip_menu et les textes qui vont avec . SAI-Editor lui récupérera l'information " un bouton droit d'un joueur " et retournera l'action , dans le cas de ce gossip_menu l'action correspondante au choix fait par le joueur : invoquer , téléporter , terminer une quete , changer l'etat d'un gameobject comme une porte , etc .

A première vue il peut paraitre assez compliqué mais en ci plongeant un peut vous ne pourrez plus vous en passer . Les principales choses a retenir de son interface :
- Dans la partie haute a gauche " Entry or guid " désigne l'id du mob ou gameobject ou son spawn si la valeur est négative
- juste en dessous le " Source type " désignera l'IA d'un mob avec SCRIPT_TYPE_CREATURE ou un game object avec SCRIPT_TYPE_GAMEOBJECT

- Dans la partie centrale " Dynamic script information " Event " désignera la source de l'action , par exemple un joueur qui fait un clic droit sur le MOB et comme celui ci gére par exemple un gossip_menu retournera le choix dans le menu proposé avec EVENT_GOSSIP_SELECT (62) ou aussi bien il peut détecter un joueur/mob a une certaine distance . Les possibilitées sont énormes .
- Juste au dessous " Action " désignera ce que le mob/gameobject devra faire : invoquer un autre monstre , fuir , terminer une quete , etc
- et enfin " Target " désignera la cible ou l'objectif , cela peut etre lui meme , le joueur ou le mob ayant déclenché  " Event " ou encore une simple coordonnée pour une téléportation

Je ne rentrerais pas dans les détails parce qu'il en faudrait des pages et ce n'est pas le but de cet article mais sachez que vous pourrez apres avoir cliqué sur exécuter recharger dans le jeu ces modifications avec la commande " .reload smart_scripts " , si le mob ou le gameobject a son AI activé (AIName`="SmartAI" pour un mob ou"SmartGameObjectAI" pour un game object ) .


Une vidéo plus explicite que des mots :






Le site ou vous trouverez les source : https://github.com/Discover-/SAI-Editor/
Ou l’exécutable windows deja compilé : ICI



Répondre
#2
Les phasemasks permettent d’exécuter des lignes uniquement si le mob est dans le phasemasks approprié , par exemple vous créez le phasemasks 1 pour la posture de combat du guerrier et le phasemasks 2 pour la posture deffensive .
S"il est en phasemasks 1 seul les lignes définies en phasemasks 1 seront executées , si je bascule en  phasemasks 2 les lignes en  phasemasks 1 ne seront plus exécutées mais les lignes  phasemasks 2 oui .
C'est une fonctionnalité très importante de smartAI qui permet de décupler l'AI , dans mon cas de faire jouer mon guerrier différemment a ma volonté .


SAI-Editor avait un soucis avec les phasemasks , en gros si une ligne avait une phasemask différente de 0 chaque fois que l'on changeais de ligne on avait droit a une boite de requete nous signalant une erreur . Cette erreur etait vraiment tres pénible .

Il fallait tout a zero (mode par défaut) soit tout en autre chose , mais pas 0 et autre chose en même temps .

Le soucis c'est que pour passer dans un phasemask <>0 il fallait au moins 1 ligne phasemask 0 qui bascule en autre chose .
J'ai donc " commenté " les lignes du source qui lançait cette boite d'erreur . depuis je revie ^^

Petite retouche de SAI-Editor-1.51

Important l'erreur de base est toujours la , c'est juste la pluie de boite de requête qui n'est plus affiché , donc assurez vous de n'avoir aucun phasemask si vous les utilisez
Répondre


Atteindre :


Utilisateur(s) parcourant ce sujet : 1 visiteur(s)