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

Panneau de contrĂ´le

Recherche | Retour aux forums

JOL Archives

Problème Waypoints

Par kaliyouga le 16/2/2003 Ă  16:34:26 (#3248919)

Bonjour Ă  tous :D

J'ai quelques petits problèmes de waypoints.

J'ai fait des recherches avec les mots waypoint ou waypoints, mais je n'ai rien trouvé qui corresponde a mon problème, qui est basique de chez basique.

Voila le schéma: Une ville, deux gardes, deux chiens de gardes.
Pour une facilité de compréhension je vais en parler par groupe : groupe 1 (1 chien+ 1 garde) et groupe 2 (les 2 autres)

Les gardes doivent faire leur chemin de ronde a travers la ville, suivis de près par leur chien.

J'ai donc placé des waypoints tout simplèment pour chaque chien et chaque garde. J'ai réglé leur vitesse de déplacèment à tous à normal.

1 er problème
Le groupe 1 part un peu avant le groupe 2. Cela fait un effet très étrange et pas du tout naturel. Comment faire pour que:
-soit les 2 groupes partent en mĂŞme temps
-soit le groupe 1 parte bien avant que le groupe 2

2 eme problème
Dans chaque groupe, le chien et le garde sont loins l'un de l'autre. y a t'il un script qui dirait au chien de suivre son maître? (le chien n'aurait alors pas de wp).

3 eme problème
Si j'essaye de parler au garde (ou au chien, même si c'est une drôle d'idée) il s'arrête et ne reprendra pas son chemin de ronde. Comment remédier a cela?

voila, il me semble avoir énuméré tous mes problèmes ^^

je vous remercie d'avance de bien vouloir m'aider :merci:

@+

Par JedaĂŻ le 16/2/2003 Ă  17:18:41 (#3249126)

1 ) Mettre le 2ème groupe de l'autre côté de la ville : si il s'agit bien d'un circuit ( utilisant RunCircuit() ), les deux groupes suivront le même et ne se rencontreront jamais, non ?:confus:

2 ) ActionForceFollowObject( object oFollow, float fDistance = 0.0f );

3 ) Lui mettre un dialogue à une ligne du genre "Wooof" pour le chien et "Je dois continuer ma ronde" pour le garde (ou l'inverse...), normalement, les scripts de fin de conversation par défaut relanceront un WalkWayPoints().:D

Par kaliyouga le 16/2/2003 Ă  17:47:55 (#3249274)

merci ! ^^

je test ca :D

Par Archamedes_Fr le 16/2/2003 Ă  18:00:30 (#3249338)

Pour les recherches, il faut spécifier la période de recherche, au cas où... Moi je me suis fait avoir au début...

Pour les chiens, Prophétia a posté récemment... si je retrouve j'édite.

J'ai retrouvé. c'est ici

Par kaliyouga le 16/2/2003 Ă  19:15:33 (#3249702)

merci de ta réponse. Je suis aller voir et j'ai mis les scripts dans les onspawn du chien et du garde.

il reste un problème. Juste les gardes bougent.


Pourtant, les scripts sont bien compilés.

voici mes scripts:

dans le onspawn du chien:


void main()
{
//les chiens suivent le pnj
object oCreature = GetObjectByTag("garde1");
AssignCommand(OBJECT_SELF, ActionForceFollowObject(oCreature,5.0));

}


dans celui du pnj:


void main()
{
//creation des chiens
int i;
for(i = 0; i < 1; i++){
int iObjectType = OBJECT_TYPE_CREATURE;
//atention, ici on utilise le ResRef et non pas le Tag
string sCreature = "chien004";
location lLoc = GetLocation(OBJECT_SELF);
int bUseAppearAnimation = TRUE;
CreateObject(iObjectType, sCreature, lLoc, bUseAppearAnimation);
}
}


Le garde s'appelle tadoss le garde et son tag est garde1
Le chien s'appelle chien3 et son tag est chien3


je pense que le problème vient du resref du chien... en effet, je ne sait pas ce que c'est!

voila ;)

Par Reyan le 16/2/2003 Ă  21:34:18 (#3250514)

un Resref, c'est le nom de la créature ds la "palette", autrement dit, il UNIQUE, tjrs, pas comme un TAg :)
c'est TJRS ce qu'on utilise pour créer un truc :) après grace aux nouvelle fonction, on peut changer TAg et nom, mais le resref, non, même ds le toolset c galère à changer ....
pour l'avoir, tu fais "éditer" et il est dans "avancé" :)

Par RAT le 16/2/2003 Ă  23:11:45 (#3250968)

Vi tout à fait, et je répete au cas ou au niveau des resref comme on reexplique ce qu'est un resref. Si ton resref n'est pas correcte pour une créature cela va te créer automatiquement un blaireau car c'est le resref par défaut. :)

Par kaliyouga le 16/2/2003 Ă  23:14:49 (#3250986)

merci beaucoup ;)

je test ca ce soir

Par kaliyouga le 16/2/2003 Ă  23:45:34 (#3251202)

j'ai testé, mais il reste encore un problème :)

mais bon, on avance! ^^

en fait, mon pnj ne se décide a suivre ses petits waypoints seulement lorsque je lui parle... ce qui est plutot embetant. Sinon le chien apparait bien, suis bien son maitre. seul problème, pour qu'il n y est pas d'effet de saccade (car le chient cours derrière son maitre) j'ai du regler se vitesse de déplacement a lent. Ce qui fait qu'il cours sans saccade, mais qu'on la l'impression qu'il court comme si il etait sur la lune!

voili vouilu

Par Jaha Effect le 17/2/2003 Ă  0:26:06 (#3251415)

Moi je te conseil plutôt le ActionForceMoveToObject en accélérant légèrement sont déplacement. Tu verra ça va très bien ;)

Jaha Effect :D

Par kaliyouga le 17/2/2003 Ă  0:43:17 (#3251475)

tu veux dire un ActionForceMoveToObject sur le garde? ou sur les waypoints?

et sinon, t'as une idée de pourquoi les gardes ne veulent pas avancer à leurs waypoints tout seuls? et partent seulement quand je leur parle?

Par kaliyouga le 17/2/2003 Ă  0:47:26 (#3251500)

si je fait ca j'ai un pb de compilation

ca donne ca:


void main()
{
//les chiens suivent le pnj
object oCreature = GetObjectByTag("garde1");
AssignCommand(OBJECT_SELF, ActionForceMoveToObject(oCreature,1.0));

}


je sait pas pourquoi mais je sens que c'est encore une erreur toute simple ^^

Par RAT le 17/2/2003 Ă  4:11:41 (#3251961)

Provient du message de kaliyouga
tu veux dire un ActionForceMoveToObject sur le garde? ou sur les waypoints?

et sinon, t'as une idée de pourquoi les gardes ne veulent pas avancer à leurs waypoints tout seuls? et partent seulement quand je leur parle?



tu as vérifié si dans leurs onspawn , ils ont la fonction WalkWaypoint();?

car s'ils ne l'ont pas, ils n'avanceront pas quand ils seront spawnés mais par contre tu peux relancer la fonction avec l'action de lui parler :).
Donc vérifie si tu possède bien cette fonction dans son Onspawn.
:)

Par Jaha Effect le 17/2/2003 Ă  10:04:59 (#3252520)

Non je parlais du ActionForceMoveToObject sur tes chiens de garde. Quand tu utilise une fonction, il y a une truc qui très bien pour pas te planter c'est de la rechercher dans la liste des fonction de l'éditeur et de cliquer dessus pour en avoir une description. Ca donne ça pour cette fonction.

Void ActionForceMoveToObject (object oMoveTo, int bRun=FALSE, float fRange=1.0f, float fTimeout=30.0f)

Si tu veux que ça compile faut écrire ta fonction comme ça
void main()
{
//les chiens suivent le pnj
object oCreature = GetObjectByTag("garde1");
AssignCommand(OBJECT_SELF, ActionForceMoveToObject(oCreature, FALSE, 1.0f));
}


Jaha Effect :D

Par kaliyouga le 17/2/2003 Ă  14:50:07 (#3254529)

ok, merci a vous j'essaye ca ce soir

Par RAT le 17/2/2003 Ă  15:27:25 (#3254795)

de nada on est là pour ça:)

JOL Archives 1.0.1
@ JOL / JeuxOnLine