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

Panneau de contrôle

Recherche | Retour aux forums

JOL Archives

Demande de correction de script

Par Cassin le 9/9/2002 à 20:11:13 (#2128118)

Salut !

J'ai des petits problèmes avec 2 scripts apparemment tout cons :
- le premier fait qu'un PNJ donne un anneau au joueur lorsqu'il lui parle. J'ai exactement le même script pour qu'un autre PNJ donne un diamant, la seule différence étant que j'ai supprimé la partie du script qui supprime les 2 anneaux demandés en échange du diamant de l'inventaire du joueur.

void main()
{
object oAnneau = GetFirstItemInInventory(OBJECT_SELF);
while (GetIsObjectValid(oAnneau) && (GetTag(oAnneau) != "anneau2"))
oAnneau == GetNextItemInInventory(OBJECT_SELF);
if (GetIsObjectValid(oAnneau))
ActionGiveItem(oAnneau, GetPCSpeaker());
else
ActionSpeakString("Il a disparut ! Oh non !");

}


Le script se compile mais dans le jeu, j'ai le message "TOO MANY INSTRUCTION" qui s'affiche... Why ?



Le second script est sur une area transition dans le OnClick, normalement le joueur peut la passer s'il a un objet sur lui, si non, une phrase s'affiche. J'ai ça :
object oClicker = GetClickingObject();
object oTarget = GetTransitionTarget(OBJECT_SELF);
location lLoc = GetLocation(oTarget);

void main()
{
if ( !(GetItemPossessedBy (oClicker, "Hache2mMGK")== OBJECT_INVALID) ||
!(GetItemPossessedBy(oClicker, "HallebardeMGK")== OBJECT_INVALID) ||
!(GetItemPossessedBy(oClicker, "Hache1mMGK")== OBJECT_INVALID) ||
!(GetItemPossessedBy(oClicker, "BatardeMGK")== OBJECT_INVALID) ||
!(GetItemPossessedBy(oClicker, "DagueMGK")== OBJECT_INVALID) ||
!(GetItemPossessedBy(oClicker, "Epee2mMGK")== OBJECT_INVALID) ||
!(GetItemPossessedBy(oClicker, "EpeeLMGK")== OBJECT_INVALID) ||
!(GetItemPossessedBy(oClicker, "EpeeCMGK")== OBJECT_INVALID) ||
!(GetItemPossessedBy(oClicker, "FleauMGK")== OBJECT_INVALID) ||
!(GetItemPossessedBy(oClicker, "MarteauMGK")== OBJECT_INVALID) ||
!(GetItemPossessedBy(oClicker, "MasseMGK")== OBJECT_INVALID) ||
!(GetItemPossessedBy(oClicker, "EtoiledumatinMGK")== OBJECT_INVALID) ||
!(GetItemPossessedBy(oClicker, "BatonMGK")== OBJECT_INVALID) ||
!(GetItemPossessedBy(oClicker, "LanceMGK")== OBJECT_INVALID) )
AssignCommand(oClicker,JumpToLocation(lLoc));
else
ActionSpeakString("Je ne peux pas retourner au Monastere les mains vide !");
}


Le script se compile idem, mais que j'ai une des armes citées ou non, l'area transition ne se déclenche pas... Au lieu des multiples if j'avais essayé de faire vérifier la variable qui se met à un lorsque je récupère l'objet, ça ne marchait pas non plus...
Où est mon erreur ? :doute:

(EDIT) : bon, plus la peine celui-là, j'ai trouvé : j'avais juste oublié de rajouter "WP_" devant le tag de mon trigger d'arrivée... :D Oups... ;)

Par Jedaï le 9/9/2002 à 20:44:19 (#2128367)

Bon alors pour le premier je ne sais pas ce qui déclenche le message d'erreur mais je te conseillerai plutôt :


void main()
{
object oAnneau = GetItemPossessedBy(OBJECT_SELF, "anneau2");
if (GetIsObjectValid(oAnneau))
ActionGiveItem(oAnneau, GetPCSpeaker());
else
ActionSpeakString("Il a disparut ! Oh non !");

}


Pour le deuxième je ne comprend pas ce qui cloche à part que j'ai l'impression que Aurora n'apprécie pas les variables globales (pas sûr). Donc tu peux essayer ça :




void main()
{
object oClicker = GetClickingObject();
object oTarget = GetTransitionTarget(OBJECT_SELF);
location lLoc = GetLocation(oTarget);

if ( GetIsObjectValid(GetItemPossessedBy (oClicker, "Hache2mMGK")) ||
GetIsObjectValid(GetItemPossessedBy(oClicker, "HallebardeMGK")) ||
GetIsObjectValid(GetItemPossessedBy(oClicker, "Hache1mMGK")) ||
GetIsObjectValid(GetItemPossessedBy(oClicker, "BatardeMGK")) ||
GetIsObjectValid(GetItemPossessedBy(oClicker, "DagueMGK")) ||
GetIsObjectValid(GetItemPossessedBy(oClicker, "Epee2mMGK")) ||
GetIsObjectValid(GetItemPossessedBy(oClicker, "EpeeLMGK")) ||
GetIsObjectValid(GetItemPossessedBy(oClicker, "EpeeCMGK")) ||
GetIsObjectValid(GetItemPossessedBy(oClicker, "FleauMGK")) ||
GetIsObjectValid(GetItemPossessedBy(oClicker, "MarteauMGK")) ||
GetIsObjectValid(GetItemPossessedBy(oClicker, "MasseMGK")) ||
GetIsObjectValid(GetItemPossessedBy(oClicker, "EtoiledumatinMGK")) ||
GetIsObjectValid(GetItemPossessedBy(oClicker, "BatonMGK")) ||
GetIsObjectValid(GetItemPossessedBy(oClicker, "LanceMGK")) )
AssignCommand(oClicker,JumpToLocation(lLoc));
else
ActionSpeakString("Je ne peux pas retourner au Monastere les mains vide !");
}

Par Cassin le 9/9/2002 à 20:55:07 (#2128449)

OK, encore une fois merci Jedaï ! :merci:

Pour le deuxième, c'est bon, j'ai trouvé (voir EDIT du premier post)


THX !

Par Tyn' le 9/9/2002 à 21:01:57 (#2128489)

Si je peux me permettre d'être chiant... C'est disparu sans T :ange:

Par znog32 le 9/9/2002 à 21:09:43 (#2128554)

.. et les mains vides avec un "s" aussi ...;)

Par Cassin le 10/9/2002 à 8:37:39 (#2130257)

:D


Merci les gars, c'est vrai que ça fait mauvais effet... ;)

JOL Archives 1.0.1
@ JOL / JeuxOnLine