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]
Neverwinter Nights
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…..
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