Programación > Manuales

[Guía NPC] Capitulo III

(1/1)

Alepcis:
Capitulo III
Optimizar los NPCs
Guía tomada y actualizada de éste foro.
Después de saber sobre algunos comandos veremos lo siguiente:
Sería muy tedioso/aburrido para algunos usuarios tener que leer la infinidad de texto que nos muestran algunas quest o scripts, por lo que ahora veremos como optimizar ésa parte en especifico.

Tomaremos en cuenta el código del capitulo anterior y modificaremos algunas líneas.

--- Código: ---prontera,75,133,2     script     TomoII     644,{//Encabezado
     set .@name$, "^c50000[TomoII]^000000";//Asignamos [TomoII] a la variable .@name$
     mes "Hola bienvenido al segundo tomo.";
     mes .@name$;
     mes "Dime ¿qué puedo hacer por ti?.";
     next;
     switch(select("Hacer pociones Rojas:Nada")){//switch
     case 1:
     mes .@name$;
     mes "Bien, deberás traerme los siguientes items";
     mes "1 Red Herb";
     next;
     mes .@name$;
     mes "¿Tienes todos los items?";
     next;
     menu "Sí.",menusi,"No.",menuno;//menu
     menusi:
          if(countitem(507)>0){//Revisa si tenemos el item
               delitem 507,1;//Nos borra el item
               getitem 501,1;//Nos da el nuevo item
          }else{
               mes .@name$;
               mes "Lo siento revisa si tienes todo";
             }
     close;
     menuno:
     mes .@name$;
     mes "Nos vemos cuando tengas todo";
     close;
     break;
     case 2:
     mes .@name$;
     mes "Hasta luego";
     close;
     }//Finaliza Switch
}//Finaliza el código
--- Fin del código ---

Después de hacerle los ajustes quedaría de la siguiente manera:


--- Código: ---prontera,155,163,2 script Tomo III 412,{//Encabezado
set .@name$, "^c50000[Tomo III]^000000";//Asignamos [TomoII] a la variable .@name$
if(tomoII==2){//Revisa el valor de tomoII si es igual a 2 nos enviará hasta hacerpotas.
goto hacerpotas;
}else{//Si no nos mostrará todo el dialogo.
mes .@name$;
mes "Hola bienvenido al tercer tomo.";
next;
mes .@name$;
mes "A estas alturas de las lecciones ya deberías saber usar algunos comandos";
next;
mes .@name$;
mes "Alguna que otra instrucción, por lo que te diré que yo puedo hacerte algunas pociones";
next;
mes .@name$;
mes "Dime ¿te interesa saber más sobre las pociones?";
next;
mes "Para que te pregunto, mejor te cuenta de una buena vez";
next;
mes .@name$;
mes "Es herencia de familia, mis padres se dedicaban a ésto y mira que les ha rendido";
next;
mes "Yo puedo hacer pociones pero venga podrías decirme tú ¿no?";
next;
mes "Sin tantos rodeos";
next;
mes .@name$;
mes "Dime ¿qué puedo hacer por ti?.";
next;
switch(select("Hacer pociones Rojas:Nada")){//switch
case 1:
set tomoII,2;//Asigna un valor a tomoII
goto hacerpotas;
break;
case 2:
mes .@name$;
mes "Hasta luego";
close;
}//Finaliza Switch
}
hacerpotas://Hacer potas es decir el menú de selección
mes .@name$;
mes "Bien, deberás traerme los siguientes items";
mes "1 Red Herb";
next;
mes .@name$;
mes "¿Tienes todos los items?";
next;
menu "Sí.",menusi,"No.",menuno;//menu
menusi:
if(countitem(507)>0){//Revisa si tenemos el item
delitem 507,1;//Nos borra el item
getitem 501,1;//Nos da el nuevo item
}else{
mes .@name$;
mes "Lo siento revisa si tienes todo";
}
close;
menuno:
mes .@name$;
mes "Nos vemos cuando tengas todo";
close;
}//Finaliza el código
--- Fin del código ---

Alepcis:
Editado y corregido algunos errores de sintaxis.

Navegación

[0] Índice de Mensajes

Ir a la versión completa