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

Panneau de contrôle

Recherche | Retour aux forums

JOL Archives

PB de Scrpt avec double IF

Par Mastokk le 12/12/2002 à 0:45:47 (#2766219)

J'ai un problème avec ce script, il refuse de compiler et je ne vois pas pourquoi:


void main()

{
object oLastOpener = GetLastOpener();
if (GetLocalInt(OBJECT_SELF, "EMERAUDE") != 0)
{
if (CheckPartyForItem(oLastOpener, "AmulettefamillialedelafamilleMes"))
{
CreateObject(OBJECT_TYPE_ITEM, "be_emeraude", OBJECT_SELF, FALSE);
SetLocalInt(OBJECT_SELF, "EMERAUDE", 1);
}
}
if (GetLocalInt(OBJECT_SELF,"NW_DO_ONCE") != 0)
{
return;
}
GenerateLowTreasure(oLastOpener, OBJECT_SELF);
SetLocalInt(OBJECT_SELF,"NW_DO_ONCE",1);
ShoutDisturbed();
}


Quelqu'un voit pourquoi ? :aide:

Re: PB de Scrpt avec double IF

Par Tynril le 12/12/2002 à 0:50:03 (#2766242)

void main() {
object oLastOpener = GetLastOpener();
if (GetLocalInt(OBJECT_SELF, "EMERAUDE") != 0) {
if (CheckPartyForItem(oLastOpener, "AmulettefamillialedelafamilleMes")) {
//CreateObject(OBJECT_TYPE_ITEM, "be_emeraude", OBJECT_SELF, FALSE);
//CreateObject ne peut pas cibler un PJ, OBJECT_SELF est un objet, pas une location !
CreateItemOnObject("be_emeraude",OBJECT_SELF,1);
//Pour créer une emeraude sur soit même.
SetLocalInt(OBJECT_SELF, "EMERAUDE", 1);
}
}
if (GetLocalInt(OBJECT_SELF,"NW_DO_ONCE") != 0) {
return;
}
GenerateLowTreasure(oLastOpener, OBJECT_SELF);
SetLocalInt(OBJECT_SELF,"NW_DO_ONCE",1);
ShoutDisturbed();
}
:)

Par Mastokk le 12/12/2002 à 0:54:36 (#2766273)

Je te remercie mais j'ai toujours un problème de compilation:

Il me dit No right Bracket ici :


if (CheckPartyForItem(oLastOpener, "AmulettefamillialedelafamilleMes")) {


J'avais le même message à la même ligne dans ma version précédente.

Par Tynril le 12/12/2002 à 1:04:38 (#2766334)

Tu as oublié les includes :

#include "nw_i0_tool"
#include "NW_O2_CONINCLUDE"
void main() {
object oLastOpener = GetLastOpenedBy();
if (GetLocalInt(OBJECT_SELF, "EMERAUDE") != 0) {
if (CheckPartyForItem(oLastOpener, "AmulettefamillialedelafamilleMes")) {
//CreateObject(OBJECT_TYPE_ITEM, "be_emeraude", OBJECT_SELF, FALSE);
//CreateObject ne peut pas cibler un PJ, OBJECT_SELF est un objet, pas une location !
CreateItemOnObject("be_emeraude",OBJECT_SELF,1);
//Pour créer une emeraude sur soit même.
SetLocalInt(OBJECT_SELF, "EMERAUDE", 1);
}
}
if (GetLocalInt(OBJECT_SELF,"NW_DO_ONCE") != 0) {
return;
}
GenerateLowTreasure(oLastOpener, OBJECT_SELF);
SetLocalInt(OBJECT_SELF,"NW_DO_ONCE",1);
ShoutDisturbed();
}

Par Mastokk le 12/12/2002 à 1:31:29 (#2766441)

erf les includes, j'oublie à chaque fois.. merci.

Bon le script me semble bon, et pourtant l'objet n'est pas créé. Il s'agit normalement de créer un objet dans un sarcophage lorsque le PJ l'ouvre et qu'il possède un autre objet.

je vois pas de quoi ca pourrait venir... A la base, une variable locale est bien à zero ?

Par coolstar le 12/12/2002 à 1:59:37 (#2766552)

#include "nw_i0_tool"
#include "NW_O2_CONINCLUDE"

void main()
{
object oLastOpener = GetLastOpenedBy();

if (GetLocalInt(OBJECT_SELF, "EMERAUDE") != 0)
{
return;
}
if (CheckPartyForItem(oLastOpener, "AmulettefamillialedelafamilleMes"))
{
//CreateObject(OBJECT_TYPE_ITEM, "be_emeraude", OBJECT_SELF, FALSE);
//CreateObject ne peut pas cibler un PJ, OBJECT_SELF est un objet, pas une location !
CreateItemOnObject("be_emeraude", OBJECT_SELF, 1);
//Pour créer une emeraude sur soit même.
SetLocalInt(OBJECT_SELF, "EMERAUDE", 1);
}
if (GetLocalInt(OBJECT_SELF,"NW_DO_ONCE") != 0)
{
return;
}
GenerateLowTreasure(oLastOpener, OBJECT_SELF);
SetLocalInt(OBJECT_SELF, "NW_DO_ONCE", 1);

ShoutDisturbed();
}


:ange:

Par Mastokk le 12/12/2002 à 2:11:59 (#2766592)

:doute: Il est où le changement ?

Ha ok le problème viendrait d'un return manquant.. ok j'essaie ca, merci.

Merci de votre aide, ça marche :)

Par coolstar le 12/12/2002 à 2:55:47 (#2766734)

Le même mais en pareil! :D

#include "nw_i0_tool" /* Nécessaire pour l’utilisation de "CheckPartyForItem" */
#include "NW_O2_CONINCLUDE" /* Nécessaire pour l’utilisation de "GenerateLowTreasure" */

void main()
{
object oLastOpener = GetLastOpenedBy(); // Acquisition de la dernière personne par qui le coffre est ouvert.
object oChest = OBJECT_SELF; // Recentrement de Tous les OBJECT_SELF concernant le coffre.
string sItemTag = "AmulettefamillialedelafamilleMes"; // Désignation du TAG de l'Amulette a repérer.
string sItemTemplate = "be_emeraude"; // Désignation du REF de l'Emeraude a créer.
string sVarNameItem = "EMERAUDE"; // Dénomination de la Variable pour la création de l'objet.
string sVarNameChest = "NW_DO_ONCE"; // Dénomination de la Variable pour l'ouverture du coffre.
int nValue0 = FALSE; // Initialisation de la Valeur FAUSSE pour utiliser les Variables.
int nValue1 = TRUE; // Initialisation de la Valeur VRAIE pour utiliser les Variables.

int iItemCondition = CheckPartyForItem(oLastOpener, sItemTag); // Détention de l'Amulette.
int iValueConditionItem = GetLocalInt(oChest, sVarNameItem) == nValue0; // Création de l'Emeraude FAUSSE.
int iValueConditionChest = GetLocalInt(oChest, sVarNameChest) == nValue0; // Ouverture du coffre FAUSSE.

// Verifie si les Conditions sont toutes 2 effectives : Détention de l'Amulette & Création de l'Emeraude FAUSSE.
if (iItemCondition && iValueConditionItem)
{ // Si les Conditions sont toutes 2 effectives les opérations suivantes s'effectuent.
CreateItemOnObject(sItemTemplate, oChest); // Création de l'Emeraude (devient VRAIE).
SetLocalInt(oChest, sVarNameItem, nValue1); // La Variable EMERAUDE acquière la Valeur TRUE (VRAIE).
}
// Vérifie si la Condition est effective : Ouverture du coffre FAUSSE.
if (iValueConditionChest)
// Si la Condition est effective les opérations suivantes s'effectuent.
GenerateLowTreasure(oLastOpener, oChest); // Génération aléatoire d'un Trésors de faible niveau.
SetLocalInt(oChest, sVarNameChest, nValue1); // La Variable NW_DO_ONCE acquière la Valeur TRUE (VRAIE).

ShoutDisturbed(); // Avertit a l'entour que le coffre a été ouvert ??
}

Par eMRaistlin le 12/12/2002 à 9:25:32 (#2767350)

Le même mais en pareil!

:mdr: :mdr: :mdr: :mdr: :mdr: :mdr: :mdr: :mdr: :mdr:

JOL Archives 1.0.1
@ JOL / JeuxOnLine