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

Panneau de contrôle

Recherche | Retour aux forums

JOL Archives

Que représente le OBJECT_SELF

Par Etienne le 7/11/2002 à 8:41:55 (#2502199)

Bonjour à tous, les couche tot et les couche tard.

J'ai un besoin de précision dans l'exmple suivant

SetLocalInt(OBJECT_SELF, "VARIABLE1", 1);

Cette ligne se trouvant dans un
-script d'action conséquante (01_xcs_[VARIABLE1]_1)
lancé par un
- Dialogue (dia_[NOM_PNJ])
Prononcé par un
- PNJ du nom de [NOM_PNJ]
a un PJ dont on se fou du nom

Je voudrais savoir que représente OBJECT_SELF :
1- le dialogue
2- le PNJ qui prononce le dialogue
3- le PJ (ce que je ne croit pas)

Merci

Par eMRaistlin le 7/11/2002 à 9:13:20 (#2502288)

Je dirai le NPC...


Mais essayer d'eviter OBJECT_SELF aussi souvent que possible. Ce n'est pas un vrai objet mais une reference a un objet... Ca cree des erreurs parfois...

Re: Que représente le OBJECT_SELF

Par Morethil le 7/11/2002 à 9:34:37 (#2502370)

Provient du message de Etienne
SetLocalInt(OBJECT_SELF, "VARIABLE1", 1);


Je dirait aussi le PNJ, sans equivoque.

En traduction "littérale" ca donnerai :
Ajuster la variable locale "variable 1" à 1 sur l'objet lui même.
Donc comme ça ne peux pas être le PJ, c'est forcement le PNJ.

Quand a une conversation, elle ne peux pas avoir de scripte qui lui sont appliqué en tant qu'objet a mon avis. Une conversation ne varie jamais (une phrase existe toujours, même si elle n'est pas dite, vu que le MJ l'a ecrit) alors qu'un évènement sur un PJ ou PNJ peux ne pas exister.

Par eMRaistlin le 18/11/2002 à 15:40:31 (#2586932)

Pour reprendre unn peu ce que je disait (vu que je m'appercoit que j'ai ete un peu laconique.

Si tu fais 2 NPC, dont les tags sont respectivement "PNJ1" et "PNJ2".

Si tu affecte sur le OnSpawn un script sur le NPC1 qui donne :


void main()
{
object oPNJ1 = GetObjectByTag("NPC1");
object oPNJ2 = GetObjectByTag("NPC2");


AssignCommand(oPNJ1, SpeakString(GetTag(OBJECT_SELF));
AssignCommand(oPNJ2, SpeakString(GetTag(OBJECT_SELF));
}


Tu devrai constater (selon toute vraisemblance...) que le PNJ1 va dire son tag, et que le PNJ2 va aussi dire son TAG.


void main()
{
object oPNJ1 = GetObjectByTag("NPC1");
object oPNJ2 = GetObjectByTag("NPC2");
object oOBJECT_SELF = OBJECT_SELF;


AssignCommand(oPNJ1, SpeakString(GetTag(oOBJECT_SELF));
AssignCommand(oPNJ2, SpeakString(GetTag(oOBJECT_SELF));
}


Ici, tu devrai donc bien confirmer que le PNJ1 prononce son TAG, mais que le PNJ2 prononce le Tag du PNJ 1.

On confirme donc bien ici que OBJECT_SELF est une refernece a l'objet qui deroule le script, mais que ce n'est pas un Objet defini tel que peut l'etre "object oOBJECT_SELF".
(A noter aussi qu'on remarque du coup que l'appel d'un assignCommande revalide les variables au moment de l'execution.


Voila, en esoperant avoir completé une reponse qui me semblait un peu floue...

Par Azrael07 le 18/11/2002 à 17:37:01 (#2587797)

bon apparament ca a été résolut mais j'assure sans doutes possibles : c le NPC

Un dialogue n'est pas un objet (enfin si mais considérez que non, au niveau ou on bosse s'en est pas un)

JOL Archives 1.0.1
@ JOL / JeuxOnLine