Jump to content

enchat system


krias2013

Recommended Posts


  • Group:  Members
  • Topic Count:  5
  • Topics Per Day:  0.00
  • Content Count:  14
  • Reputation:   0
  • Joined:  10/05/13
  • Last Seen:  

necesito que las runas amm por ejemplo 4700 al darles clic se bayan directo al 4to slot y no permitan colocar otra runa pero nose porque pero no me permite hacer eso lo que ase que las runas se colocan en orden del eslot 1 al 4 en vez de quedar directo en el 4to slot, dejo unas imagenes para que bean como esta queda en mi emulador rAthena, pero yo necesito que sea de esta forma como esta en el video

 

post-21104-0-08950800-1400991413_thumb.jpg

post-21104-0-92242000-1400991415_thumb.jpg

post-21104-0-35684400-1400991418_thumb.jpg

Edited by krias2013
Link to comment
Share on other sites


  • Group:  Members
  • Topic Count:  15
  • Topics Per Day:  0.00
  • Content Count:  59
  • Reputation:   19
  • Joined:  01/03/13
  • Last Seen:  

Hola krias,

 

disculpa que no haya podido responder antes. Es posible que el sistema que utiliza el autor del video sea mediante la modificación del src o mediante el uso de un script (concretamente una función llamada desde el objeto).

 

En el caso de que quieras hacerlo por src no puedo ayudarte sin embargo, si decides hacerlo mediante un script deberás hacer lo siguiente:

 

PASO 1. MODIFICAR EL TIPO DE OBJETO

 

En tu emulador rAthena dirígete a "../db/import/item_db.txt" (en el caso de que uses este archivo para agregar los items custom, sino al archivo item_db.txt dónde tienes agregados los objetos que quieres insertar en el equipo). Ahora modifica el atributo <type> de los objetos que quieres agregar al equipo poniendo el número 11 (segúramente los debes tener con el número 6) y el atributo { < script> } dejandolo cómo

{ callfunc "F_enchant",<numero>; } .

 

¡ATENCIÓN! en la parte de <numero> de cada item tienes que poner numeros, comenzando desde 1 hasta el último item. Ejemplo:

 

Imagina que estamos añadiendo 5 runas diferentes (cada una da stats diferentes), el itemdb debería quedar así:

29001,Runa_Roja,STR +10,11,0,,0,,,,,,,,,,,,,{ callfunc "F_enchant",1; },{},{}
29002,Runa_Amarilla,AGI +10,11,0,,0,,,,,,,,,,,,,{ callfunc "F_enchant",2; },{},{}
29003,Runa_Azul,INT +10,11,0,,0,,,,,,,,,,,,,{ callfunc "F_enchant",3; },{},{}
29004,Runa_Verde,VIT +10,11,0,,0,,,,,,,,,,,,,{ callfunc "F_enchant",4; },{},{}
29005,Runa_Negra,DEX +10,11,0,,0,,,,,,,,,,,,,{ callfunc "F_enchant",5; },{},{}

¿Para qué sirve este numero? Con este número identificaremos que objeto es el que está llamando la función desde el script.

 

PASO 2. CREAR EL SCRIPT CORRESPONDIENTE

 

Ahora te toca configurar la función en un script " function script F_enchant { } " ahí ya le puedes dar las condiciones que quieras al usar el objeto.

Recuerda hacer que el script elimine el item al finalizar la acción que se ha usado para llamar la función, si no haces esto el objeto podrá usarse indefinidas veces.

 

Consejo 1: para obtener el id del objeto que llama la función usa:

 

if (getarg(0) == 1) @runeID = <ID de la runa correspondiente al número 1>; 

if (getarg(0) == 2) @runeID = <ID de la runa correspondiente al número 2>;

if (getarg(0) == 3) @runeID = <ID de la runa correspondiente al número 3>;

...  

 

Consejo 2: recuerda agregar las siguientes seis condiciones obligatorias:

 

  1. Evitar que el usuario quite el equipo o la runa mientras se usa el script con " disable_items; " al inicio del script.
  2. Guardar la parte del equipo seleccionada (en la que insertaremos la runa) en una variable (ejemplo "@part").
  3. Comprobar que el objeto seleccionado no tenga nada equipado en el 4º slot con " if (getequipcardid(@part,3) != 0) end; "
  4. Obtener todas las propiedades (cartas, si es refinable o no, su refine, etc...) antes de dar el nuevo objeto con la runa equipada.
  5. Guardar el id del equipo seleccionado con " set @itemid, getequipid(@part); ".
  6. Por último hacer que el script elimine la runa " delitem @runeID,1; " y nos de el objeto con la runa insertada usando: 

ESTRUCTURA:

getitem2 <item_id>,<amount>,<identify>,<refine>,<atribute>,<card1>,<card2>,<card3>,<card4>{,<account ID>};

 

COMO DEBE QUEDAR:

getitem2 @itemid,1,1,getequiprefinerycnt(@part),0,getequipcardid(@part,0),getequipcardid(@part,1),getequipcardid(@part,2),@runeID;

 

 

Si tienes alguna duda o no has entendido algo pregúntame. Un saludo.

 

EDIT: si prefieres hacerlo mediante src tal vez este topic te sea de ayuda: 

http://rathena.org/board/topic/95342-set-enchant-rune-cards-directly-into-4th-slot/
Edited by Nanashi
  • Upvote 1
Link to comment
Share on other sites


  • Group:  Members
  • Topic Count:  177
  • Topics Per Day:  0.04
  • Content Count:  909
  • Reputation:   247
  • Joined:  11/08/11
  • Last Seen:  

@Nanashi perfecto.. great work!!

Link to comment
Share on other sites


  • Group:  Members
  • Topic Count:  15
  • Topics Per Day:  0.00
  • Content Count:  59
  • Reputation:   19
  • Joined:  01/03/13
  • Last Seen:  

Gracias @Ziu, se agradece  /ok .

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

×
×
  • Create New...