Bienvenue sur JeuxOnLine - MMO, MMORPG et MOBA !
Les sites de JeuxOnLine...
 

Panneau de contrôle

Recherche | Retour aux forums

JOL Archives

Probleme de deplacement

Par irec le 30/11/2002 à 11:19:50 (#2678066)

A la fin d'un dialogue j'ai ce script la dans "action taken"

------------------

void main()

{

object oTarget = GetObjectByTag("2embuch");

ActionForceMoveToObject(oTarget);
SetLocalInt(OBJECT_SELF, "deplace", 2);
}

-------------------

qui est senser faire deplacer le NPC jusqu'au WP 2embuch, et placer la variable deplace a 2 pour faire bouger les autre NPC autour, mais personne ne bouge .

pkoi ?

Par Iridian le 30/11/2002 à 11:59:10 (#2678349)


object oTarget = GetObjectByTag("2embuch");
ActionForceMoveToObject(oTarget);


Cette fonction me parait bizarre.
Sans la connaitre, j'ai l'impression que tu demandes au WP de se déplacer.

Il ne manque pas un paramètre indiquant QUI doit se déplacer ?

*va vérifier*

[edit :
Essai peut-etre avec ca :

void AssignCommand(oPc,action aActionToAssign)

Par contre je n'ai trouvé aucune fonction en ActionXXX qui retourne un objet oAction

Par irec le 30/11/2002 à 12:12:41 (#2678462)

nonon , c un copier coller du script , tu peut m'en ecrire un qui fonctionnerais ?

Par Iridian le 30/11/2002 à 13:05:16 (#2678906)

Je ne suis pas chez moi pour tester, mais je commencerai par essayer ca :


void main()
{
object oTarget = GetObjectByTag("2embuch");
object oPc = GetPCSpeaker();

AssignCommand(oPc,ActionForceMoveToObject(oTarget));
SetLocalInt(OBJECT_SELF, "deplace", 2);
}


En sachant qu'il y a des incohérences, a savoir que la fonction ActionForceMoveToObject est sensé retourner *void*.
Cependant, j'ai regarder toutes les fonctions décrites ici : fonctions, et aucune ne semble renvoyer une variable de type "action".

Par Jedaï le 30/11/2002 à 13:31:27 (#2679081)

Iridian> ActionForceMoveToObject() est équivalent à ActionMoveToObject() mais en beaucoup plus insistant (ton NPC n'abandonnera pas au premier mur rencontré... :D ). Par ailleurs il n'existe pas de type "action", c'est une pure invention de Bioware :p, je ne sais pas ce qu'ils ont utilisé, peut-être un pointeur sur la fonction, en tout cas la seule restriction des BiduleCommand() c'est qu'ils n'acceptent que les fonctions qui ont comme type de retour void. Dont des trucs qui n'ont rien à voir avec une action : SetLocalInt() par exemple...


Irec> Je pense que le script est bon (vérifie quand même les tags). Le problème doit venir des scripts de "fin de dialogue" par défaut, tu les trouvera dans l'éditeur de dialogue dans l'onglet "Autres fichiers" : supprime les deux, ça devrait régler ton problème :)! Et utilise ton script originel, pas celui d'Iridian.

Par coolstar le 1/12/2002 à 6:12:46 (#2683666)

Moi aussi je ne comprends pas... T'es sûr Jedaï que c bon ??? :D

Par Jedaï le 1/12/2002 à 11:35:51 (#2684278)

Coolstar> Je t'assure que normalement ça doit marcher si c'est bien le NPC qui dialogue qui doit se déplacer. On peut quand même remplacer :


object oTarget = GetObjectByTag("2embuch");

par :

object oTarget = GetWaypointByTag("2embuch");


Mais c'est plus du chipotage qu'autre chose...

Par contre pour faire déplacer les autres NPCs, la solution la plus simple c'est d'utiliser AssignCommand() mais j'ai déjà donné le script corrigé à Irec qui me l'avait demandé par message privé.:)

Edit : C'est bien ça que tu comprend pas ? ou alors autre chose ?

Par eMRaistlin le 1/12/2002 à 11:38:13 (#2684290)

Ca a l'air bon aussi... je me demande si ca vient pas effectivement du ClearAllAction de chaque fin de conversation, comme le suggere brillement Jedaï

Par Jedaï le 1/12/2002 à 11:52:13 (#2684387)

J'aime pas trop les messages privée à cause de ça....:(

Problème réglé :D

C'était bien les scripts de fin de conversation qui gênaient, le problème s'est réglé en privé, y compris le déplacement des autres NPCs.:baille:

Bioware nous a décidément fait un cadeau empoisonné en nous mettant ces script par défaut... Avant on nous demandait comment faire pour que le NPC reprenne sa ronde après avoir parlé, maintenant on nous demande comment faire pour que le NPC fasse quelque chose après un dialogue !:hardos:

Par coolstar le 1/12/2002 à 12:28:29 (#2684586)

LOL!


J'avais fait le même constat avec ma tentative de Conversation concernant les PNJs Assis... Le Lancement de Conversation (OnConversation) et les Fins de conversation (Script fin de dialogue) annulaient chaque fois le Script pour asseoir les PNJs... :enerve:

Effectivement, les ClearAlleActions inclus par défaut nous font défaut... L'alternative miraculeuse que j'avais trouvé alors pour ça était tout simplement de retirer les Scripts respectifs de "Biowaaiii!!" (mais je pense que l'on pourrait seulement rééditer et retirer la ligne fautive?)... comme je l'ai expliqué plus avant par ici... :D

;)




PS : Je serais d'avis que les demandes par MP soient tout de même présentées chaque fois sur le Forum à l'issue, comme il m'est déjà arrivé de le faire... ça serait plus cool (comme moi quoi... :D )! :ange:

Par irec le 1/12/2002 à 12:30:59 (#2684601)

Bon pour pas changer j'ai encore un blem ( eh oui ) , je met sur un trigger une commande qui spawn une creature et sous cette commande de spawn je met une commande de depplacement de cette creature ( avec assigncommand ) , vers un WP ,ben cette creature ne bouge pas , meme si je met la commande sur elle en Spawn

Par eMRaistlin le 1/12/2002 à 15:59:37 (#2686014)

irec, essaye de mettre tes script avec tes questions... ce sera plus facile a corriger ^^

(et c'est mieux pour tout le monde de corriger plutot que de creer hors contexte ):)

Par irec le 2/12/2002 à 12:57:46 (#2692294)

C bon c corrigé :) mci kan meme

Par coolstar le 2/12/2002 à 13:08:25 (#2692369)

c'était qui? c'était quoi?? merci de nous tenir au courant!! :enerve:

:rolleyes:

Par irec le 2/12/2002 à 13:18:42 (#2692468)

ct un probleme de syntaxe , j'avais mis un assigncommand ( forcemovetoobject ....ect direct sur le NPC ( le assigncommand l'empecher de bouger apparament ). voila

Par coolstar le 2/12/2002 à 13:37:41 (#2692562)

:D

JOL Archives 1.0.1
@ JOL / JeuxOnLine