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

Páginas: [1]   Ir Abajo
  Imprimir  
Autor Tema: Script para Mejorar el AI de las mascotas (aun en desarrollo)  (Leído 213 veces)
0 Usuarios y 1 Visitante están viendo este tema.
Randou
Desconectado Desconectado

*
Primera Clase
Miembro Nº: 8345
Mensajes: 6
Reputacion: 2
« : 22 de Junio de 2008, 02:33:33 »

El AI de las mascotas se encuentra dentro del archivo pet_db.txt que trae el emulador pero normelmente solo le configuramos la Id, comida y los datos sobre alimentacion e intimacy, poca importancia se le da al script que permite a la mascota hacer una accion, pues se cree que solo tinee una habilidad, pero ¿esto sera realmente cierto?

antes de continuar es necesario señalar algunos detalles, citare una frase que esta dentro del  archivo pet_db.TXT

"In theory you can use any valid script, but it is run only once upon pet loading"

la traduccion es (a mi entender):
en teoria uste puede usar cualquier script valido, pero solo puede correr uno por cada mascota

esta frase quizas sea el origen de que muchos menospresien a las mascotas, pues de ser cierto solo hacen uan cosa y ya, pero el enunciado a mi parecer esta mal interpretado, se pueden usar varios script en conjuto para una mascota,  sin embargo no se pueden repetir, para poner un ejemplo citare el script de poring:

1002,PORING,Poring,619,9001,10013,531,80,20,50,100,250,20,2000,400,1,0,350,400,800,{ petloot 10; }

si agregamos un comoamndo por ejemplo  petloot 20

1002,PORING,Poring,619,9001,10013,531,80,20,50,100,250,20,2000,400,1,0,350,400,800,{ petloot 10; petloot 20; }

noten que se repite el mismo comando , aunque el emulador lo lea y no de error, uno de lo s 2 quedara anulado,, el poring seguira loteando 10 items y no 20  como dice el segundo comando, sin embargo si en vez de petloot agregamos un comando diferente, digamos petskillbonus bAllStats,10,10,50, nos quedaria asi

1002,PORING,Poring,619,9001,10013,531,80,20,50,100,250,20,2000,400,1,0,350,400,800,{ petloot 10; petskillbonus bAllStats,10,10,50; }

en este caso los 2 comandos son diferentes, por lo tanto se podran ejecutar los 2 al mismo tiempo, el poring no solo loteara 10 items sino que ademas dara +10 a todos los status por 10  segundos cada minuto

tomando esto en cuentra desarrolle el siguente script que muestro a continuacion


1002,PORING,Poring,619,9001,10013,531,80,20,50,100,250,20,2000,400,1,0,350,400,800,{ if (Class==Job_SuperNovice) { ; } if (Class==Job_Lord_Knight||Class==Job_Lord_Knight2) { ; } if(Class==Job_Paladin||Class==Job_Paladin2) { ; } if(Class==Job_Assassin_Cross) { ; } if(Class==Job_Stalker) { ; } if(Class==Job_Whitesmith) { ; } if(Class==Job_Creator) { ; } if(Class==Job_Sniper) { ; } if(Class==Job_Clown||Class==Job_Gypsy) { ; } if(Class==Job_High_Wizard) { ; } if(Class==Job_Professor) { ; } if(Class==Job_High_Priest) { ; } if(Class==Job_Champion) { ; } if(Class==Job_Creator) { ; } if(Class==Job_Soul_Linker) { ; } if(Class==Job_Star_Gladiator||Class==Job_Star_Gladiator2) { ; } petloot 10; }


como notaran es algo largo, lo curioso es que todo tiene que ir en una misma linea, a continuacion intentare explicar lo mejor posible el script:

1002,PORING,Poring,619,9001,10013,531,80,20,50,100,250,20,2000,400,1,0,350,400,800,  { if (Class==Job_SuperNovice) { ; } petloot 10; }

En Azul: los valores por defectos de la mascota, en esta parte se pueden cambiar los valores, pero no agregar o quitar alguna habilidad, como no nos interesa esta parte no la tocaremos para nada

En Verde: la condicion para activar el comando, la que yo uso es en este caso identifica el job del dueño, si es un supernovice activara el comando , de lo contrario el comando quedara inactivo

En Rojo: dentro de estos corchetes se coloca el comando a usar, por razones obvias recomiendo usar solo comandos de mascotas, existen otros que tambien se pueden usar, pero  hace falta un amplio conocimiento para hacer script y lamentablemente el mio no es tanto como yo desaria.

En Negro, el comando externo, al igual que en la parte en rojo se puede cambiar, pero para poder mostar en el ejemplo lo dejare tal como esta.

bien ya identificada las partes procedere  a mostrar como se usa, digamos que estamos en un server high rates, todos sabemos que en esa clase de server los supernovices son demasiado debiles, asi que vamos a darle cierta ventaja agregando el siguente comando:

petskillbonus bAllStats,54,10,50;

con esto el poring si detecta que su dueño es un supernovice le dara+54 a todos los status, por 10 segundo cada minuto, quedaria de esta forma:

1002,PORING,Poring,619,9001,10013,531,80,20,50,100,250,20,2000,400,1,0,350,400,800,  { if (Class==Job_SuperNovice) { petskillbonus bAllStats,54,10,50; } petloot 10; }

muy bien, ya nuestro poring es mas inteligente y reconoce un job, pero queremos que tambien reconozca otro job asi que pondremos a un Lord knight, quedaria asi:

1002,PORING,Poring,619,9001,10013,531,80,20,50,100,250,20,2000,400,1,0,350,400,800,   { if (Class==Job_SuperNovice) { petskillbonus bAllStats,54,10,50; } if (Class==Job_Lord_Knight||Class==Job_Lord_Knight2) { ; } petloot 10; }

notese que en el caso del LK en realidad agrege 2 jobs en vez de uno, a razon de esto es por que uno de los jobs representa al LK de pie, mientras el otro lo representa montado en peco, si queremos que la siguente propiedad surta efecto tanto si esta en peco como si no hay que agregar los 2 (recuerden usar el "||" para separar cada job dentro de la misma condicion)

ahora  como el LK es poderoso no le daremos tanta ventaja como al Supernovice, digamos que como el poring es de elemento agua, hara que el arma del LK sea del  elemento agua, nos quedaria asi:

1002,PORING,Poring,619,9001,10013,531,80,20,50,100,250,20,2000,400,1,0,350,400,800,   { if (Class==Job_SuperNovice) { petskillbonus bAllStats,54,10,50; } if (Class==Job_Lord_Knight||Class==Job_Lord_Knight2) { petskillbonus bAtkEle,Ele_Water,3600, 0; } petloot 10; }

noten que el comando Petskillbonus se repite 2 veces, pero estan encerrado en condiciones diferentes por lo tanto es valido  y completamente funcional

bien de aca en adelante podremos agregar varios jobs para hacer que el poring ejecute mas habilidades, como que atque con water ball si su dueño es mago  o robe si su dueño es un stalker

aunque en teoria es posible poner todos lo jobs y personalizarlos a cada uno, en la practica esto es un imposible, ¿la razon? sencillamente que si agregamos todos los jobs existentes la linea seria demasiado larga y el emulador no puede leer lineas tan largas,  en este punto hago un llamado, si alguien sabe una manera de poder  agregar los comandos paa que el emulador los leas sin problemas de espacio se lo agradeceria, pues quiero agregar a los jobs no renacidos y a los baby jobs y no conformarme solo con 17 jobs (los 12 renacidos ,el supernovice, el gunslinger, el ninja el soullinker y el star gladiator) por favor dejemen un mensaje en este topic
ATTE: Randou


Post: espero no estar infrigiendo la norma 14.(Revivir un post muerto) pues el mio es reciente y fue cerrado sin respuesta o solucion, asi mimo pido disculpa si al emplear color en los ejemplos violo alguna norma (espero que no sea asi) ya que solo lo hago  para poder ilustrar mejor mi explicacion, en caso de ser asi pido un poco de cnsideracion a los moderadores y que por favorsolo diganme el error y a la brevedadposible lo corrijo


Fecha: viernes 12 de septiembre del 2008

con la llegada del episodio 13, muchos de los comandos de las mascotas se han cambiado , pronto hare una actualizacion de este script que ya creo ahver encotrado solucion al problema  y lo colocare  en el foro HMM
« Última modificación: 13 de Septiembre de 2008, 06:03:04 por Randou, Reason: Actualizacion » En línea
DivineRO :: Ragnarok Online :: Believe in God...
« : 22 de Junio de 2008, 02:33:33 »

 En línea
Páginas: [1]   Ir Arriba
  Imprimir  
 
Ir a:  


Post Similares
Asunto Iniciado por Respuestas Vistas Último mensaje
Nesesito ayuda con las mascotas
Soporte eAthena (Emulador y Server)
Matraned 3 122 Último mensaje 20 de Diciembre de 2006, 01:57:49
por ConwaidD
Desarrollo de Scripts 2.0 para RO
Discusion libre eAthena, emuladores y Servidores
Begeo 0 1260 Último mensaje 27 de Diciembre de 2007, 11:09:40
por Begeo
Desarrollo de script "Antifraudes".
Soporte Script's, Materiales y NPC
Azura Kamaitachi 5 254 Último mensaje 15 de Enero de 2009, 03:31:38
por Streiker
[Solucionado]Mascotas Custom
Soporte eAthena (Emulador y Server)
alealeale321 3 91 Último mensaje 27 de Agosto de 2008, 10:17:44
por alealeale321
Mejorar mi avatar
Taller de Firmas y Diseños
shohen 3 42 Último mensaje 25 de Mayo de 2009, 03:02:11
por Theli
Powered by SMF 1.1.9 | SMF © 2006-2008, Simple Machines LLC
BlueSkies design by Bloc, editado por eves para DivineRO | XHTML | CSS

Página creada en 0.151 segundos con 26 consultas.


Google visitó por ultima vez esta pagina 02 de Julio de 2009, 02:51:40