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
