Bonjour,
- stephlix a écrit:
- Bonjour à tous,
Tout d'abord merci à Mike89 pour ses précisions sur le Fofo de Wiwiland.
Poster sur plusieurs forums n'est pas un pb... je suis parfois absent de wiwiland, mais d'autres peuvent parfaitement répondre. C'est toi qui choisis, tu est libre, et moi de ne pas répondre deux fois, et renvoyer à ce qui existe déja ailleurs... c'est çà l'intérêt du web. Donc pas de problème.
- stephlix a écrit:
-
Pour info, j'ai donc utilisé un token, ça m'a permis de bien cibler les Idles sur le PNJ concerné sans polluer les autres.
Quelques précisions que je n'ai pas postées sur Wiwiland, pour ne pas gonfler le sujet. Et sur Wteam, il y a forcément un plus !
.
Tu as mis le script où ? Sur le token (jeton) ou sur le pnj ? Je suppose que c'est sur le pnj... parce que sans tester, sur le jeton cela ne marche pas à cause du PickIdle son devant l'identité du pnj concerné.
Cela marche, mais je ne suis pas partisan du token, car cela se voit dans l'inventaire, et une solution purement technique ne doit pas se voir : ce n'est pas PRO !
Un token est interessant quand un objet ramassé doit provoquer des choses... mais ce n'est plus un token, c'est un vrai item prévu par un scénario. Un objet ensorcelé qui fait danser, n'est pas un token technique.
Un token est donc artificiel alors qu'il existe d'autres moyens de provoquer des actions. Cela dépend si cela doit avoir lieu sur un seul pnj, ou un groupe de pnj.
Un seul pnj - pas besoin de token. Le script du pnj suffit. Au lieu de la présence du token dans le OnLoad, teste donc :
* getdistance player 4096 ; si le danseur est dans une cellule extérieure
* GetinSameCell player ; si le danseur est dans une cellule intérieure
Si le danseur peut changer de lieu de danse : teste en majeur IsinInterior == 1... else...
Mais est-ce bien nécessaire, puisque s'il y a un LOAD, c'est que le PJ arrive pas loin... donc pad de token ni de test de distance... si le pnj est seul à danser.
Si plusieurs danseurs, il EST NECESSAIRE les mettre dans une faction
MesDanseurs :
*** En particulier, si certains danseurs ont déja un script qui leur fait autre chose, et que tous les pnj qui ont ce script ne doivent pas danser.
Donc dans le OnLoad de ce script, ET éventuellement dans le script des danseurs on testera :
* If IsInFaction MesDanseurs... autres conditions ... PickIdle
Et la condition sur l'IDLE ANIMATION de ref du pnj unique sera remplacée par le test d'appartenance du pnj à la faction : IsInFaction MesDanseurs au lieu de GetIsID.
REMARQUE 1 : les anglo-saxons sont des fanatiques du token... pourquoi un script plus un token alors qu'un script plus une faction suffit... Le pb des token est que cela encombre bien plus la mémoire, que cela fait vilain dans l'inventaire (sutout pour celui qui n'a pas créé le mod), etc.
L'intérêt du token est de mettre le script sur lui, et pas sur le pnj... avec la référence du pnj ! Or dans
l'exemple donné, le script n'est même pas sur le token.
REMARQUE 2 : Le script ONLoad sur le pnj (ou le token) est-il bien utile... un pnj loadé (chargé avec sa cellule) ne va t-il pas spontanément (enfin le moteur de jeu, l'AI) tester s'il a un
package à exécuter ou une
idle animation ?
Car c'est bien à çà que servent les Idles (inactif)... des animations pour ceux qui glandouillent, c'est à dire qui n'ont pas de package en cours.
En ce cas il suffit de bien conditionner et de bien placer l'Idle nouvelle dans la file des Idle animations.
A tester toutes ces possibilités, comme çà tu te feras une idée de la façon dont marche l'AI. Et donnes nous tes résultats, ou si çà marche pas, reposte le problème.
J'espère avoir été clair... pas facile avec toutes ces solutions mais parfois compliquées sans nécéssité.