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

Panneau de contrôle

Recherche | Retour aux forums

JOL Archives

Mon videur me tabasse pas, c'est pas normal... ;o)

Par Cassin le 17/12/2002 à 17:16:02 (#2814588)

Salut !

J'ai un petit problème avec un videur dans une auberge :D

A l'étage il y a des chambres, quoi de plus normal, et un videur qui surveille. Le truc à faire, c'est que lorsqu'un joueur essaie de défoncer une porte, le videur arrive et le prévient d'arrêter. Au bout du 3ème averto, pouf il l'attaque.

J'ai donc fait ce script sur le OnPhysicalyAttacked des portes :

object oPC = GetLastAttacker(OBJECT_SELF);
object oVideur = GetObjectByTag("videur");

void main()
{
SetLocalInt(oPC, "gardeauberge", GetLocalInt(oPC, "gardeauberge")+1); // Là on incrémente le compteur d'avertissements
AssignCommand(oVideur, ActionMoveToObject (oPC, TRUE)); // Le videur marche vers le joueur
AssignCommand(oPC, ClearAllActions(TRUE)); // On fait arrêter l'action d'attaquer la porte au joueur
DelayCommand(3.0, ActionStartConversation(oVideur, "videur")); // Petit délais obligatoire pour laisser au videur le temps d'arriver jusqu'au joueur
}


Mais le hic c'est que le videur reste bloqué sur la phrase "d'accueil", celle qui apparaît normalement lorsque le joueur n'a pas encore été avertit une seule fois.
HORS, si le joueur adresse la parole au videur après, là c'est bien la bonne phrase (en fonction du compteur) qui apparaît.

Pourquoi ce décalage ? Y a-t-il une différence entre déclencher une conversation par un script ou en cliquant sur le personnage ?

Par Nylou le 17/12/2002 à 17:45:06 (#2814858)

Si j'ai bien compris, ta conversation est conditionnée par ce compteur ?

Ton "gardeauberge" a t il était initialisé ?

Lorsque tu commences ta conversation, tu récupères le LocalInt correspondant au PC ?


Je pose des questions betes mais souvent ca peut aider.


P.S. : tu devrais aussi déclencher tout ça lorsque l'on jette des sorts sur la porte.

Par Cassin le 17/12/2002 à 17:54:11 (#2814957)

Oui, mon dialogue est construit correctement, puisque ça marche quand on parle au garde, mais pas quand le garde nous parle :doute:

En fait j'ai ça :
- phrase 1 : si compteur à 1
- phrase 2 : si compteur à 2
- phrase 3 : si compteur à 3 ou +
- phrase 4 : aucune condition

Et lorsque je frappe sur une porte, le garde arrive mais c'est toujours la phrase 4 qui sort. SAUF si le joueur lui parle de lui-même, là ça marche. :hardos:


Sinon, pour les ouvertures de portes à coup de sorts, merci, je n'y avais pas pensé... :D

Par Nylou le 17/12/2002 à 18:00:51 (#2815041)

Tu m'as pas répondu sur l'initialisation de ta variable.

Traces la valeur de ton compteur dans l'execution de ton dialogue, je suis sure que tu auras des surprises.

Comment tu récupères le compteur dans ta conversation ?

Si j'ai bien tout lu Freud, cette variable est associée à un PJ donné.
Tu l'incrémentes mais si tu n'as pas affecté de valeur au départ tu auras des valeurs farfelues voire des erreurs.

low-values + 1 ça donne n'importe quoi comme valeur.

Par Cassin le 17/12/2002 à 20:08:50 (#2816334)

Aaaaaahhhhh, OK, je savais pas ça... ;)

Bon, je teste ça ce soir... ;)


EDIT : voilà, j'ai initialisé ma variable à 0 lorsque les joueurs rentrent dans la zone (de toutes façons j'aurais du le faire pour chaque visite que les joueurs feraient à l'auberge donc...), mais le problème est toujours le même : lorsque le videur m'accoste il ne me dit que la quatrième phrase, mais si je lui parle normalement ça marche... :(

Par Nylou le 17/12/2002 à 22:51:46 (#2817860)

Tu nous as toujours pas dit quelle était la valeur de ta variable au moment de la conversation.

Mets des traces.
Fais crier le PJ pour afficher ta valeur par exemple.

Par Cassin le 18/12/2002 à 8:56:00 (#2819982)

Non en effet j'ai pas eu le temps de tracer les variables, mais normalement elles doivent être bonnes puisque le dialogue marche quand c'est le joueur qui le provoque... :doute:

Bon, je vais essayer de tester ça, mais je sais pas si je vais avoir le temps aujourd'hui...

Par coolstar le 19/12/2002 à 4:09:08 (#2828618)

Provient du message de Nylou
Tu m'as pas répondu sur l'initialisation de ta variable.

Traces la valeur de ton compteur dans l'execution de ton dialogue, je suis sure que tu auras des surprises.

Comment tu récupères le compteur dans ta conversation ?

Si j'ai bien tout lu Freud, cette variable est associée à un PJ donné.
Tu l'incrémentes mais si tu n'as pas affecté de valeur au départ tu auras des valeurs farfelues voire des erreurs.

low-values + 1 ça donne n'importe quoi comme valeur.

REMARQUE: A ce que j'ai pu constater, si une Variable n'est pas définie elle est donc considérée comme "inexistante", c'est-à-dire 'Nulle' en d'autre terme... En ce cas, il semblerait que d'Incrémenter de +1 une Valeur 'Nulle' la fait passer à '1'... Partant de ce principe, l'on peut en ce cas tester tout de même la Variable 'Nulle' (précédant l'Incrémentation!) en utilisant ainsi : if(nValue<1)... ;)




Petit évolution du problème par ici... :rasta:

JOL Archives 1.0.1
@ JOL / JeuxOnLine