LordBassilus

05/06/2006 15:41:18

vereis, mi idea es que un npc (pnj) te pida varios objetos cuando hablas con él para elavorar una poción por ejemplo, pero al efectuar los scripts no se como meter más de una vez el mismo objeto.

EJ: un pnj te pide que le traigas 10 trufas para hacerte una poción de XXX pero al darselas, solo se hacer que reconozca que tienes una con este script:

[code:1:352b194166]
int StartingConditional()
{

// Comprobamos si el Pj que habla tiene la trufa en su inventario
if(!HasItem(GetPCSpeaker(), "trufa"))
return FALSE;

return TRUE;
}[/code:1:352b194166]

De ese modo detecta solo una y lo que yo quiero es q detecte varias al mismo tiempo.

Gerjo

05/06/2006 16:36:05

Veamos, yo no tengo mucha idea del tema pero bueno...esto funciona y reconoce los objetos que le lleves...todos a la vez.

[code:1:89342586de]int StartingConditional()
{

// Comprobar si el PJ que habla tiene los objetos en su inventario
if(!HasItem(GetPCSpeaker(), "nm_gj_01"))
return FALSE;
if(!HasItem(GetPCSpeaker(), "nm_gj_02"))
return FALSE;
if(!HasItem(GetPCSpeaker(), "nm_gj_03"))
return FALSE;
if(!HasItem(GetPCSpeaker(), "nm_gj_04"))
return FALSE;

return TRUE;
}[/code:1:89342586de]

He escogido 4 objetos...les he personalizado a cada uno la etiqueta...ahora cuando voy al mercader o lo que sea y me pide los objetos, comprueba que tengo los 4 o no me los recoge...

No se si sera esto lo que buscas o si te sirve...

Un saludo

Pd. como puedes ver es lo mismo que tu pones pero cada uno con una etiqueta distinta...
En tu caso 4 o 10 trufas, cada una con una etiqueta y solucionado :P

Gerjo

05/06/2006 17:28:31

Mejorando lo anteriormente puesto :P ...

[code:1:5da0c2aa9a]int GetNumItems(object oTarget,string sItem)
{
int nNumItems = 0;
object oItem = GetFirstItemInInventory(oTarget);
while (GetIsObjectValid(oItem) == TRUE)
{
if (GetTag(oItem) == sItem)
{
nNumItems = nNumItems + GetNumStackedItems(oItem);
}
oItem = GetNextItemInInventory(oTarget);
}
return nNumItems;
}

int StartingConditional()
{
object oPC = GetPCSpeaker();
//Entre las comillas pones la etiqueta que llevarán las trufas y despues del = pones el numero de trufas que pedirá.
if (GetNumItems(oPC, "nm_gj_01") != 4) return FALSE;

return TRUE;
}[/code:1:5da0c2aa9a]

Esto te da la opcion de que el pnj te recoja 4 objetos por ejemplo sin necesidad de modificar las etiquetas, asi que todos los objetos serian identicos...

Un saludo 8)

Pd. Puesto los code :P

ioker

05/06/2006 18:01:57

Gerjo, cierto que así sería :) . Una cosita...pon los códigos de scripts entre las etiquetas [ code ] y [ /code ] (sin espacios entre los corchetes y la palabra code o /code) y así saldrá como lo hace yne, althor y demás y nos aclararemos mejor, ya que hace las tabulaciones y se entiende mejor :). Buen aporte, porque se me ha ocurrido una cosa respecto a eso.

1 Saludo...

LordBassilus

05/06/2006 21:00:45

realmente de esa forma si sabía hacerlo, pero preguntaba por si había una manera más simplificada, como la que puse arriva pero añadiendo algo XDDD pero wno, me vale ^^