Waypoints

Répondre
Partager Rechercher
Voilà voilà j'ai deux problèmes un peu gênants:

En incarnant des pnj en tant que DM, je n'arrive pas à donner des objets aux PJs. J'ai à chaque fois un message du style: impossible de donner à votre familier, ou un truc comme ça, c'est très pénible. Comment dois-je faire ?

Autre chose: Grosse quiche débutant en scripts, je n'arrive pas à faire suivre un pnj par un autre qui bouge de WP en WP (j'ai déjà vu les autres posts à ce sujet, mon cas est désespéré...)

J'ai mis ça dans le onspawn du pnj suiveur:




void main()
oSuivi = GetObjectByTag(sd_01_PNJ1)
{

// suit le PNJ1:


float meters = 3.0;
ActionForceFollowObject(oSuivi, meters);



}

Qu'est-ce qui cloche ?
Pour les Waypoint, le mieux, c'est que tu mette la fonction WalkWaypoints() au Pnj sur son OnSpawn, et que tu nomme les Waypoint "WP_TAG" avec TAG = le tag de la creature.

C'est la fonction Bioware, et ca marche bien ^^


ce qui cloche dans ton script, c'est :
-Soit l'absence du ';' a la fin du GetObjectByTag,
-Soit le fait que tu ai fait ta declaration au dessus du '{'
(je sais que tu peux declarer en dehors des {, mais je sais pas si le GetObjectByTag fonctionnera, lui...)

Quand a l'incarnation, je crois que ca marche avec une incarnation Full power, et non pas une incarnation normale...

A verifier...
A noter que tu dois pas pouvoir suivre un objet autre qu'une creature...

(a savoir : un WP n'est pas une creature ^^)

Donc, soit tu cree une creature null_human a qui tu donne le tag, soit tu utilise WalkWaypoints )
lol, je comprend encore moins là (ça dois venir de mon titre de post qui c'est vrai a pas grand rapport, désolé )

Bon je récapitule : il y a deux pnj avec tag respectifs PNJ1 et PNJ2. Le PNJ1 fait une ronde et suit des waypoints. Le PNJ2 ne fait rien lui, hormis suivre le PNJ1.

J'ai mis le script ci-dessus dans le onspawn du PNJ1 mais ça marche pas...

voilà
peutêtre bien à cause du walkwaypoint qui marche parfois TROP bien, il y en a un a la fin du script de onspawn, qui demande au PNJ de suivre son WP, si il y en a pas, de tt facon ca fait clearallaction
donc, ce que tupeu faire, c'est le mettre dans le onheartbeat du PNJ 2 si tu n'as pas peur du onheartbeat ( hu hu hu )
soit euh ... enlever le walkwaypoint
sachant que de toute facon dans ce cas, si tu parle à ton PNJ2, si il se bat, si il a envi d'aller au toilette, si etc., une fois son action finit, il ne rejoindras pas le PNJ1, sauf si dans chaque cas tu place au bon endroit un

oSuivi = GetObjectByTag(sd_01_PNJ1)
float meters = 3.0;
ActionForceFollowObject(oSuivi, meters);

donc bon ... autant mettre direct dans un onheartbeat non ?
tu fais un GetObjectByTag(sd_01_PNJ1)


mais tu es sur que le Tag Du Pnj 1 est bien "sd_01_PNJ1" ?

Si tu en es sur (c'est important d'etre precis, ici, quand tu expose un pb : la preuve ^^), alors met des "" autour de sd_01_PNJ1 dans ton script.

Si c'est une valeur que tu recupère, alors il me faut le script entier.

Je veux bien t'aider, mais le pb, dans ce genre de cas, c'est souvent des erreur sur des choses qu'on pense acquise (Attention aux tags...)
bhouuuu... je dois être trop nul


j'ai pourtant tout bien refait.

Sachant que le PNJ1 (tag=PNJ1) fait une ronde et suit des waypoints et que le PNJ2 (tag=PNJ2) ne fait rien lui, hormis suivre le PNJ1, j'ai mis ce script dans le onspawn du PNJ2:



void main()
{

oSuivi = GetObjectByTag(PNJ1);


// suit le PNJ1:


float meters = 2.0;
ActionForceFollowObject(oSuivi, meters);



}

Je sens que si je passe trois jours sur des détails comme ça, j'ai pas fini mon module avant 2012 moi
le probleme, ce que je ne comprend pas, c'est qu'un TAG c'est une chaine de caractère, une string, donc normalement c'est entre " "
la y en a pas, ca devrait même pas compiler ... tu le compile ton script

sinon remplace
Code PHP:

oSuivi GetObjectByTag(PNJ1); 

par
Code PHP:

oSuivi GetObjectByTag("PNJ1"); 

Je l'ai fait: ça donne rien...

bha tant pis, je laisse tomber et je fais des waypoints pour les deux PNJ, en espérant qu'ils resteront ensemble dans leur progression.

En tout cas, si quelqu'un à réussi à faire un script permettant de faire suivre un pnj par un autre, je suis preneur...

merci à tous

bon je vais te filer ce que j'utilise pour mes garde, c'est assez simple
Dans le OnSpawn de ton garde il faut virer les // devant
Code PHP:

SetSpawnInCondition(NW_FLAG_PERCIEVE_EVENT); 

Code PHP:

void main() 

int nEvent GetUserDefinedEventNumber (); 
if (
nEvent == 1002
  { 
    
object oChef GetObjectByTag("ChefMilice_M_1"); 
      if (!
IsInConversation(OBJECT_SELF)) 
    { 
    
ActionMoveToObject(oChef); 
    } 
  } 

dans le OnConversation du garde tu met ça
Code PHP:

void main() 

    
object oChef GetObjectByTag("ChefMilice_M_1"); 
    
SpeakString ("Adressez vous a mon Chef"); 
    
ClearAllActions (); 
    
ActionMoveToObject(oChef); 

Et tu défini tes waypoints avec ton chef des gardes, ce qui fait que quand ton chef des garde va spawn, les gardes vont le repérer et le suivre automatiquement. Si quelqu'un parle a un de tes gardes, il va l'envoyer parler au chef et reprendre ça marche tout seul.
C'est tout con mais ça marche tout seul, comme je le dis toujours rien ne vaux la simplicité

Jaha Effect
Répondre

Connectés sur ce fil

 
1 connecté (0 membre et 1 invité) Afficher la liste détaillée des connectés