Tamaño del Texto:
Bienvenido(a), Visitante. Por favor, ingresa o regístrate.
¿Perdiste tu email de activación?
 

Páginas: [1]   Ir Abajo
  Imprimir  
Autor Tema: [NPC] MVP Rooms  (Leído 164 veces)
0 Usuarios y 1 Visitante están viendo este tema.
koisetsu
Usuario Novato

Desconectado Desconectado

Sexo: Femenino
Mensajes: 9
Miembro Nº: 1059





Última visita: 03 de Junio de 2008, 02:23:13
« : 17 de Abril de 2008, 10:27:12 »

bueno este es mi primer aporte y tambien mi  primer npc  NO1 que hago leyendo guias pues pense porque no aportar algo y no nada mas estar descargando asi que decidi aportar mis npcs este es el primero unos

mvp rooms
el npc esta localizado en gonryun ya que ahi es la ciudad principal de mi server y las salas de mvp estan en quiz_02 eso es facilmente cambiable segun el gusto de la persona

P.D. por cada mvp invocado el npc te quita 10m de zeny (diseñado para server high rates y actualizado invoca tambien a satan morroc.)

chequenlo y me dicen que tal esta phiwa3
En línea
DivineRO :: Foro :: Ragnarok Online
« : 17 de Abril de 2008, 10:27:12 »

 En línea
Begeo
Usuario Habitual
*
Desconectado Desconectado

Sexo: Femenino
Mensajes: 49
Miembro Nº: 2202


使いましょう!




Última visita: 03 de Julio de 2008, 06:47:00
« Respuesta #1 : 17 de Abril de 2008, 10:37:32 »

Bien, he visto que usas muchos (tal vez demasiados) labels. Te recomiendo que en vez de hacer tantos labels, permitas al jugador introducir el nombre (o un código) del MvP mediante Input _MVPCODE$ o algo así. Después, agregas una serie de IF's donde diga "if(_MVPCODE$==loquesea) monster etc etc;". Si no te convence usar tanto IF, también puedes usar un switch.

Los switch son así:

Código:
switch(variable){
case CODE1:
      // código en caso de que la variable sea de valor CODE1
      break;
case CODE2:
      // código en caso de que la variable sea de valor CODE2
      break;
}
En línea

El fuego te quemará.
El agua te ahogará.
La luz te cegará.
La oscuridad te endiablará.
Benditos sean aquellos que buscan la paz y no la guerra,
Los no llamadores del averno, sean.
Érid
Donadores
Posteador de Oro
*
Desconectado Desconectado

Sexo: Masculino
Mensajes: 656
Miembro Nº: 979


Controlador de mentes...


WWW

Última visita: 23 de Julio de 2008, 08:30:42
« Respuesta #2 : 17 de Abril de 2008, 11:09:02 »

O puedes usar un input donde verifique si el ID que puso es MvP o no, con un IF como este:


if(
Input _MVPCODE==1511 ||
Input _MVPCODE==1647  ||
Input _MVPCODE==1785 ||
Input _MVPCODE==1630 || killedrid==1039 || ...){


En los "..." continúas con el resto de ids de MvPs y pones un else que avise que el ID que escribió no es de un MvP xD.

E invocas el MvP con el ID que tenga de valor Input _MVPCODE.

P.D: Para saber el id de un MvP sin entrar a internet puedes usar @mi Nombre de mob
« Última modificación: 17 de Abril de 2008, 11:10:35 por Érid » En línea

koisetsu
Usuario Novato

Desconectado Desconectado

Sexo: Femenino
Mensajes: 9
Miembro Nº: 1059





Última visita: 03 de Junio de 2008, 02:23:13
« Respuesta #3 : 18 de Abril de 2008, 03:27:46 »

pues intentare hacerle como dicen pero, por experiencias que he tenido que trato de modificar un npc y luego ya no arranca creo mejor hare una copia y tratare de modificarlo como me dicen, = luego tratare de poner mas npcs que hago haber si me pueden ayudar si tienen bugs o algo ^.^
En línea
Begeo
Usuario Habitual
*
Desconectado Desconectado

Sexo: Femenino
Mensajes: 49
Miembro Nº: 2202


使いましょう!




Última visita: 03 de Julio de 2008, 06:47:00
« Respuesta #4 : 18 de Abril de 2008, 09:53:46 »

O puedes usar un input donde verifique si el ID que puso es MvP o no, con un IF como este:


if(
Input _MVPCODE==1511 ||
Input _MVPCODE==1647  ||
Input _MVPCODE==1785 ||
Input _MVPCODE==1630 || killedrid==1039 || ...){


En los "..." continúas con el resto de ids de MvPs y pones un else que avise que el ID que escribió no es de un MvP xD.

E invocas el MvP con el ID que tenga de valor Input _MVPCODE.

P.D: Para saber el id de un MvP sin entrar a internet puedes usar @mi Nombre de mob
Demasiados OR o AND, hacen al código menos sexy. Y no creo que el usuario del NPC vaya a saberse de memoria los códigos de los MvP. Es más, sería una lata para él tener que cerrar el npc y poner @mi .

Ahí es donde entra la imaginación: Simplemente se ponen todos los códgios de MVP en un mes previo al input, y listo ;3
En línea

El fuego te quemará.
El agua te ahogará.
La luz te cegará.
La oscuridad te endiablará.
Benditos sean aquellos que buscan la paz y no la guerra,
Los no llamadores del averno, sean.
Érid
Donadores
Posteador de Oro
*
Desconectado Desconectado

Sexo: Masculino
Mensajes: 656
Miembro Nº: 979


Controlador de mentes...


WWW

Última visita: 23 de Julio de 2008, 08:30:42
« Respuesta #5 : 18 de Abril de 2008, 12:18:47 »

Yo quería hacer un array con todos los IDs y usar select y transformar el ID en en nombre con strmobinfo pero tenía que probarlo y no daba la seguridad de que funcionara, esa fue mi primer idea, pero es mejor como dices, digo, sería algo como:

setarray @MvP_ID[1],1511,1647,1785,1630,1620,1850,1545,1250,1516,1240,1720,1525,1690;

mes "selecciona un MVP";
next;
for(set .@i,1;.@i<(getarraysize(@MvP_ID));set .@i,.@i+5){
   set @Input_MVPCODE$,select(strmobinfo(1,@MvP_ID[.@i]),strmobinfo(1,@MvP_ID[.@i+1]),strmobinfo(1,@MvP_ID[.@i+2]),strmobinfo(1,@MvP_ID[.@i+3]),strmobinfo(1,@MvP_ID[.@i+4]),"Next");
   set .@num2,@Input_MVPCODE$;
   if(@Input_MVPCODE$=="6"){
      set .@n,.@n+.@num2;
      set .@a,.@a+1;
   }else{
   if(.@n>0) set .@num2,.@num2-.@a;
   break;
   }
}
set .@num,.@num2 + 1*.@n;
close2;
monster "prontera",155,163,strmobinfo(1,@MvP_ID[.@num]),@MvP_ID[.@num],1;
end;


Se puede pulir bastante, de seguro hay cosas demás y eso, pero Begeo o tú pueden pulirlo xD, mi PC quiere estallar y debo dormir, no puedo dedicarme a pulirlo, pero seguro que lo mejoran ^^, con esto se ahorran bastante, en cada página hay 5 MvPs, y hay que arreglar lo de los ceros, creo que se arregla cambiando la variable del select de string a integer quitando el $, pero no tengo tiempo para probarlo =P Haciendo eso hay una línea que quitar xD).
« Última modificación: 18 de Abril de 2008, 12:19:52 por Érid » En línea

Begeo
Usuario Habitual
*
Desconectado Desconectado

Sexo: Femenino
Mensajes: 49
Miembro Nº: 2202


使いましょう!




Última visita: 03 de Julio de 2008, 06:47:00
« Respuesta #6 : 18 de Abril de 2008, 01:31:57 »

Acabo de estudiar un poco sobre arrays, así que no me mateis mucho.

Yo lo haría así:
Código:
setarray @mvpid[0],1,2; // MvP's de ejemplo
mes "Baphomet: 1";
mes "Creamy: 2";
next;
input @sacamvp; // input fuera del for para pedirlo sólo una vez.
Set @vuelta,0;
if(@sacamvp<=0 || @sacamvp>=3) goto l_fallo;
do{
   if(@sacamvp==@vuelta){// Un sólo check para todos. Ya que @vuelta irá cambiando, es el equivalente a poner muchos if.
      Set Zeny,Zeny-2000000; // Menos 2 millones
   if(@vuelta==1) atcommand "@monster baphomet";
   if(@vuelta==2) atcommand "@monster creamy";
    /// y añadimos más IF según más mobs queremos.
   }
Set @vuelta,@vuelta+1;
}while(@monstruo<2) // No suelo usar for, es muy complicado XDDD do while suena mejor.

l_fallo:
mes "No permitido.";
close;

Se me ocurren otros 2 modos de hacerlo. Igual, creo que el código de Erid está mejor que este. (Ya sabéis que no soy ninguna profesional)
« Última modificación: 18 de Abril de 2008, 01:33:53 por Begeo » En línea

El fuego te quemará.
El agua te ahogará.
La luz te cegará.
La oscuridad te endiablará.
Benditos sean aquellos que buscan la paz y no la guerra,
Los no llamadores del averno, sean.
Páginas: [1]   Ir Arriba
  Imprimir  
 
Ir a:  

Powered by SMF 1.1.5 | SMF © 2006, Simple Machines LLC
Seo4Smf v0.2 © Webmaster's Talks

BlueSkies design by Bloc, editado por eves para DivineRO | XHTML | CSS

Página creada en 0.32 segundos con 21 consultas.


Google visitó por ultima vez esta pagina 15 de Julio de 2008, 09:20:32