Neverwinter Nights
Menú
Gamersmafia es ahora un archivo de solo lectura.

Ayuda con un script para conversación.

Hola. Debido a la esceula no he podido estudiar programación y necesito ayuda con un script (ya tengo una parte pero me falla una linea) Lo que tiene que suceder es lo siguiente (En conversacion NPC-PC) PC- Tengo los 6 items NPC- Gracias Toma los seis items NPC- Es mentira, no los tienes. Obviamente el script va en el primer dialogo del NPC y lo que quiero es que tome los 6 items (con tag ITEM1, ITEM2, ITEM3…. ITEM6) nada mas cuando el PC(PJ en español creo) tenga los 6 items, si le falta alguno entonces que salga el otro dialogo El script que tengo hasta el momento es este: [code:1:e1d8e5cc4d]int intCount = 0; int intAllItems = 0; while(intCount <= 6) { if(GetItemPossessedBy(GetLastSpeaker(), “ITEM” + intCount); { intAllItems = intAllItems + 1; } intCount = intCount + 1; } if(intAllItems == 6) return TRUE; return FALSE; [/code:1:e1d8e5cc4d]

jeje, yo creo que si leyeses el post que has escrito te darias cuenta del error… son 6 items con 6 tags distintos pero los tags son strings…. y no enteros…. creo que la solucion del propio wizard es mas sencilla y concreta

if(GetitempossesedBy(getlastspeaker(), “item1”)&&(gettitempossedby(…., “item2”) &&….. blabla bla

return true
else return false

etc etc

espero haber entendido lo que querias porponer

PEro tomaria cualquiera de los 6 aunque no los tenga todos en ese momento

no no, la condicional && ( y logico ) diria algo asi

si(tienes el objeto1 Y tienes el objeto2 Y tienes el objeto3…..

claramente asi comprueba que tiene todos, si mirase solo 1 usa el o logico (   )

Bueno, la primera vez no me jalo eso pero si dices que debe de reconocer los 6 entonces lo volvere a intentar.

Yo lo que haria seria meter en el onAquireItem un script que al adquirir usara una variable local con el nombre del item. Al iniciar la conversacion chequeas si las variables son 1(tiene el objeto)o 0(si no lo tiene).

[code:1:8de860595b]for(i=1;i<=NUMITEMS;i++)
{
GetLocalInt(oPC,"ITEM"+IntToString(i));
//el resto corre a tu cuenta :P
}
.[/code:1:8de860595b]
en el condicional: si cumple que todas las variables son 1 devuelve true si no false y se ejecuta la otra linea de conversacion.
Asi de simple

Los más activos en Scripting