ReynalDev

Autor Tema: [Interlude] [aCis] StackType para items / Stack items  (Leído 116 veces)

Desconectado ReynalDev

  • *
  • Mensajes: 189
  • Jr Developer
    • ReynalDev
[Interlude] [aCis] StackType para items / Stack items
« en: Noviembre 24, 2017, 10:40:19 am »

Primero que nada vamos a definir a lo que me refiero cuando digo stacktype como ya sabemos type es tipo y stack lo podemos definir como acumulador por tanto se dice que es un atributo del item que sea del tipo acumulador.

Sabemos que los packs en su mayoria tratan ciertos items con un espacio cada uno, es decir, supongamos que tenemos 50 Life Stones, nos percatamos que está ocupando 50 espacios de nuestro inventario o bien mejor conocido como Slot(s) (Anexo imagen 1.0)

Por tanto es más práctico compactar o mejor dicho configurar que este tipo de items se acumulen en un solo espacio y nos vaya indicando cuantos de esos items tenemos. Para ellos necesitamos el atributo acumulador

Ahora si podemos empezar:

Para el ejemplo usaré las Life Stones y no hace falta recordar que este procedimiento es para el datapack aCis o ¿si?.
Continuando con el ejemplo voy a identificar el ID del item, como ya se mencionó anteriormente se usarán las Life Stones y siendo más específico las TOP lvl 76.

Por tanto el ítem es:
Top-Grade Life Stone - Level 76 ------> 8762 (Con ID 8762)

Procedemos a buscarlo en el XML de ítems ubicado en: gameserver\data\xml\items, pero ¿Cual de todos esos archivos es el que yo busco? Sencillo para eso es el ID para poder ubicar el ítem más rápidamente y como es 8762 usamos un poco de lógica y abrimos el archivo que nos permita encontrar ese valor (ID) en un rango de números, por tanto abrimos el archivo 8700-8799.

La ruta ya general es: gameserver\data\xml\items\8700-8799

Una vez abierto ese archivo ahora procedemos a buscar el ítem en sí para poder configurar sus atributos.

Código

	<item id="8762" type="EtcItem" name="Top-Grade Life Stone: level 76">
<set name="material" val="liquid" />
<set name="weight" val="2" />
<set name="price" val="4800000" />
<cond msgId="113">
<player level="76" />
</cond>
</item>

Ahora solo nos queda agregar una simple línea de código para poder darle ese atributo
Código

		<set name="is_stackable" val="true" />

Quedándonos de esta forma:
Código

	<item id="8762" type="EtcItem" name="Top-Grade Life Stone: level 76">
<set name="material" val="liquid" />
<set name="weight" val="2" />
<set name="price" val="4800000" />
<set name="is_stackable" val="true" />
<cond msgId="113">
<player level="76" />
</cond>
</item>

Hasta aquí el servidor ya sabe como acumular este ítem, pero nuestro visualizador, es decir, el Cliente no sabrá como acumularlos y por ellos también recurrimos a modificarlo.

Abrimos el archivo etcitemgrp con nuestro FileEdit. ¿No sabes que es el File Edit y para qué sirve? Rápidamente es un programa para modificar ciertos archivos del cliente en nuestro Lineage y suele usarse para la carpeta System, lo puedes descargar aquí

Como decía abrimos el archivo etcitemgrp con nuestro File Edit y buscamos el ID 8762 (Ahora sabes por que es importante el ID), nos encontraremos con esto:

Código

2	8762	0	3	3	3	0	dropitems.drop_mineral_unique_m00			dropitemstex.drop_mineral_unique_t00			icon.etc_mineral_unique_i03					0	2	53	0	0	1		1		ItemSound.itemdrop_mold		0	0	0

Claramente en el programa todo sale en una sola línea, nosotros nos enfocamos en un lugar en específico y son los últimos 3 números de la línea

En el primero 0 de los últimos 3 números, es decir:
aquí
Código

ItemSound.itemdrop_mold		0	0	0

Vamos a modificar el primer cero y colocamos un 2

Quedándonos así:
Código

ItemSound.itemdrop_mold		2	0	0

Y de forma general:
Código

2	8762	0	3	3	3	0	dropitems.drop_mineral_unique_m00			dropitemstex.drop_mineral_unique_t00			icon.etc_mineral_unique_i03					0	2	53	0	0	1		1		ItemSound.itemdrop_mold		2	0	0

Procedemos a guardar en 413 y listo ahora tenemos este ítem de forma de acumulador.

Nota: Al momento de aumentar solo toma una Life Stone, suele ocurrir que en Frozen agarra todas las Life Stones, es decir, si tienes 10 y vas a aumentar te toma las 10 de un golpe, aunque en lo personal tanto en Frozen como en aCis no tengo problema alguno ya que me toma 1 sola Life Stone al momento de aumentar.