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

Panneau de contrôle

Recherche | Retour aux forums

JOL Archives

Condition:Objets

Par Stritis le 30/10/2002 à 20:12:47 (#2443643)

Bon voila mon probleme un dialogue doit s'enclencher lorsque le joueur possede 10 os de gobelins mais le probleme c'est que je n'arrive qu'a mettre comme condition qu'il n'est qu'un os de gobelins , comment doit je mettre pour qu'il lui faille 10 os
Mon script:


#include "nw_i0_tool"

int StartingConditional()
{

// Vérifier que le PJ qui parle possède ces objets dans son inventaire
if(!CheckPartyForItem(GetPCSpeaker(), "Osdegobelin"))
return FALSE;

return TRUE;
}

Par TyKeM le 30/10/2002 à 20:50:39 (#2443916)

pourquoi tu fait pas un objet que lon doit reasembler a partir de 10 autre objet ?

ds ce k la tu as plus que un seul item a controler ...

Par eMRaistlin le 30/10/2002 à 21:01:07 (#2443974)

tu devrai surtout faire ca :


int StartingConditional()
{

// Vérifier que le PJ qui parle possède ces objets dans son inventaire

object oPC = GetLastPCSpeaker();
object oItem = GetFirstObjectInAccesory; //thanx procto ^^
int nCount = 0;

object oItemInventorie=GetFirstItemInInventory(oPCSpeaker);
while (GetIsObjectValid(oItemInventorie))
{
if (GetTag(oItem)=="os_de_gob")
{nCount = nCount+1;}
oItem=GetNextItemInInventory(oPCSpeaker);
}
if (nCount >= 10)
return TRUE;
return FALSE;
}

Par Symphonik le 30/10/2002 à 21:14:23 (#2444062)

un peu lourd, il existe un belle fonction il me semble pour ca :

int GetNumItems(object oTarget, string sItem);

donc ca doit donner a peu près ca : (pas testé)


#include "nw_i0_plot"

int StartingConditional()
{

object oPC = GetLastPCSpeaker();
int nCount=GetNumItems(oPC,"os_de_gob")

if (nCount >= 10)
return TRUE;
return FALSE;
}

Par eMRaistlin le 30/10/2002 à 21:21:53 (#2444109)

ca ne fonctionne que pour les items stackables...


les gems, ca va marcher, et verifier que tu as un tas de 10, mais pas les moyens et gros items...

Par LeProctophantasmiste le 30/10/2002 à 21:35:33 (#2444179)

Si si ça marche pour tous emRaistlin, ceci dit inclure nw_i0_plot ça n'est pas plus légé à mon avis :D, surtout qu'il n'y a pas 36 méthodes au final.


object oItem = GetFirstObjectInAcces;

Quesaquo? :D

ma version de GetNumItems, qui en plus compte les flêches ;), elle fait rien de plus pour les os de goblins remarque.

int GetItemQuantityOnObject(string sTag, object oPossessor = OBJECT_SELF)
{
int i;
object oItem;
int nTotal = 0;

oItem = GetFirstItemInInventory(oPossessor);
while(GetIsObjectValid(oItem))
{
if(GetTag(oItem) == sTag)
nTotal += GetNumStackedItems(oItem);
oItem = GetNextItemInInventory(oPossessor);
}

if(GetObjectType(oPossessor) == OBJECT_TYPE_CREATURE)
{
for(i = 0; i<14; i++)
{
oItem = GetItemInSlot(i, oPossessor);
if(GetTag(oItem) == sTag)
nTotal += GetNumStackedItems(oItem);// a priori que les slots 11,12,13 mais bon...
}
}
return nTotal;
}


dans le main:

int StartingConditional()
{
object oPC = GetPCSpeaker();
if(GetItemQuantityOnObject("Tag de l'objet à compter", oPC) < "ce que tu veux")
return FALSE;
return TRUE;
}


Tu ne pourras pas dire que l'on ne t'a pas donné de choix Stratis.

Par Stritis le 30/10/2002 à 21:47:35 (#2444258)

Provient du message de LeProctophantasmiste
Tu ne pourras pas dire que l'on ne t'a pas donné de choix Stratis.


C'est Stritis!! mais merci pour c'est reponses

Par Stritis le 31/10/2002 à 0:01:03 (#2445150)

Bon j'ai essaye vos methodes mais ça marche pas car quand j'insere le script il me mette "Erreur : Parsing Variable List" l'erreur vient de cette ligne

object oPC = GetLastPCSpeaker();

Par LeProctophantasmiste le 31/10/2002 à 0:18:53 (#2445249)

effectivement c'est GetPCSpeaker(), un truc, pour trouver le nom d'une fonction tu peux faire une "recherche" dans le cadre en haut à droite de l'éditeur en y entrant une partie de son nom...

Par Stritis le 31/10/2002 à 1:00:28 (#2445425)

ca marche pas car il me mette encore une un erreur dans

if (nCount >= 10)

J'utilise le modele de Symphonik

Par eMRaistlin le 31/10/2002 à 2:02:01 (#2445670)

#include "nw_i0_plot"

int StartingConditional()
{

object oPC = GetPCSpeaker();
int nCount=GetNumItems(oPC,"os_de_gob");

if (nCount >= 10)
return TRUE;
return FALSE;
}

Par Tyn' le 31/10/2002 à 3:26:40 (#2445899)

#include "nw_i0_plot"

int StartingConditional()
{
return GetNumItems(GetPCSpeaker(),"os_de_gob") >= 10;
}
Make it simple !
object oItem = GetFirstObjectInAccesory;
:doute: Fonction 1.26 ?

JOL Archives 1.0.1
@ JOL / JeuxOnLine