APORTE: Como crear un item que spawnea mobs/rb/npcs.

Iniciado por fa1thDEV, Jun 06, 2023, 11:27 PM

Tema anterior - Siguiente tema
Buenas, después de tantos intentos, logre para OFF spawnear un rb mediante un ITEM, este método no es muy visto en los servidores actuales, es por eso que he decidido compartir esto con ustedes, espero que puedan darme los créditos <3.

Primero que nada, lo primero que todos sabemos es que hay muchos items o skills que spawnean objetos o summons, como los skills de necro o la flauta del dragon, tambien encontraremos otros en el ai.obj o en la programación base que tienen ciertas funciones para spawnear o sumonear.

Pero nos olvidamos que hay uno que especialmente spawnea un NPC por cierto tiempo, y este code se dedica a eso, estamos hablando del NPC de navidad, aunque en realidad es un ITEM que spawnea el NPC de navidad.

ID: 5560   ITEM NAME: Christmas Tree

Una vez sabiendo esto, para saber que tipo de skill usa este item, nos dirigimos a ItemData.txt (ubicado en script( y presionamos Ctrl + f, buscamos la ID 5560, automáticamente nos va a aparecer toda la información de este item:

item_begin   etcitem   5560   [x_mas_tree1]   item_type=etcitem   slot_bit_type={none}   armor_type=none   etcitem_type=potion   recipe_id=0   blessed=0   weight=0   default_action=action_skill_reduce   consume_type=consume_type_stackable   initial_count=1   maximum_count=20   soulshot_count=0   spiritshot_count=0   reduced_soulshot={}   reduced_spiritshot={}   reduced_mp_consume={}   immediate_effect=1   price=0   default_price=1   item_skill=[s_summon_x_mas_tree_a]   critical_attack_skill=[none]   attack_skill=[none]   magic_skill=[none]   item_skill_enchanted_four=[none]   material_type=paper   crystal_type=none   crystal_count=0   is_trade=1   is_drop=1   is_destruct=1   physical_damage=0   random_damage=0   weapon_type=none   can_penetrate=0   critical=0   hit_modify=0   avoid_modify=0   dual_fhit_rate=0   shield_defense=0   shield_defense_rate=0   attack_range=0   damage_range={}   attack_speed=0   reuse_delay=0   mp_consume=0   magical_damage=0   durability=0   damaged=0   physical_defense=0   magical_defense=0   mp_bonus=0   category={}   enchanted=0   html=[item_default.htm]   equip_pet={0}   magic_weapon=0   enchant_enable=0   can_equip_sex=-1   can_equip_race={}   can_equip_change_class=-1   can_equip_class={}   can_equip_agit=-1   can_equip_castle=-1   can_equip_castle_num={}   can_equip_clan_leader=-1   can_equip_clan_level=-1   can_equip_hero=-1   can_equip_nobless=-1   can_equip_chaotic=-1   item_end


Una vez que verificamos que skill esta usando (marcado en amarillo arriba), copiamos el nombre, en este caso es "item_skill=[s_summon_x_mas_tree_a]" -> "s_summon_x_mas_tree_a", realizamos el mismo proceso de busqueda, pero en este caso nos vamos al archivo llamado "SkilData.txt", lo abrimos y presionando Ctrl + F, buscamos s_summon_x_mas_tree_a.

Nos aparecera esta informacion, cabe aclarar que esta info es la creacion del skill y su efecto;

skill_begin   skill_name=[s_summon_x_mas_tree_a]   /* [쁼뀘 킸났 삌큘] */   skill_id=2137   level=1   operate_type=A1   magic_level=1   effect={{i_summon_npc;[x_mas_tree_a];1}}   is_magic=0   mp_consume2=0   cast_range=-1   effective_range=-1   skill_hit_time=0   skill_cool_time=0   skill_hit_cancel_time=0   reuse_delay=0   attribute=attr_none   effect_point=0   target_type=self   affect_scope=single   affect_limit={0;0}   next_action=none   ride_state={@ride_none}   skill_end

Una vez encontrado, verán que hay una parte que dice "effect", esto seria que clase de llamado hace este skill, en este caso, esta llamando a spawnear un NPC (ustedes mismos pueden verificar el id de los skilles que quieran y buscarlos en este archivo, y veran los efectos), "effect={{i_summon_npc;[x_mas_tree_a];1}}".

effect= hace referencia al efecto que va a producir
{{i_summon_npc; -> hace referencia a que esta spawneando un npc.
[x_mas_tree_a];1 -> hace refencia a la id del NPC entre corchetes y el ;1 hace referencia a la cantidad.   

una vez verificado esto, ahora ya tenemos la base para spawnear un mob, procederemos a hacer lo basico, crear un item con filedit (itemname, skillgrp, skillname, etc), en este caso les dejo el skillgrp/itemname/skillname:

skillgrp: 2138   1   0   0   -1   0   0.000000   0         icon.skill0000   0   0   0   0   -1   -1

skillname: 2138   1   Summon Special Boss   none   none   none

Itemname: 2138   Raid Boss - Random Bomb      Double-click to summon the Raid Boss. Beware: In case you move the raidboss into a peace zone, it will get despawned without warning!   -1               0   0   0   

etcgrp: 2   2138   0   3   5   6   0   dropitems.drop_jewel_box_m00         dropitemstex.drop_jewel_box_t00         Raidboss.Bomb               0   1   18   0   0   1      1      ItemSound.itemdrop_jewelbox      2   0   0


- Cambien las ID, porque son ID ramdoms. -


Una vez hecho esto, procedemos ir al DATAPACK, donde tendremos que crear el skill de 0 para que funcione correctamente, en mi caso, yo reemplace la id del npc del arbol y me funciona correctamente con ese item. Pero en este caso, lo que deberian hacer, es clonar el skilldata del arbol y el itemdata, es decir:

SKILLDATA:

skill_begin   skill_name=[s_NOMBRE_DE_SKILL]   /* [ꃠꀉ 킸났 삌큘] */   skill_id=ID DEL SKILL   level=1   operate_type=A1   magic_level=1   effect={{i_summon_npc;[x_mas_tree_b];1}}   is_magic=0   mp_consume2=0   cast_range=-1   effective_range=-1   skill_hit_time=0   skill_cool_time=0   skill_hit_cancel_time=0   reuse_delay=0   attribute=attr_none   effect_point=0   target_type=self   affect_scope=single   affect_limit={0;0}   next_action=none   ride_state={@ride_none}   skill_end

ITEMDATA:

item_begin   etcitem   (5560 ID DE ITEM)   [nombre_de_item]   item_type=etcitem   slot_bit_type={none}   armor_type=none   etcitem_type=potion   recipe_id=0   blessed=0   weight=0   default_action=action_skill_reduce   consume_type=consume_type_stackable   initial_count=1   maximum_count=20   soulshot_count=0   spiritshot_count=0   reduced_soulshot={}   reduced_spiritshot={}   reduced_mp_consume={}   immediate_effect=1   price=0   default_price=1   item_skill=[s_NOMBRE_DE_SKILL]   critical_attack_skill=[none]   attack_skill=[none]   magic_skill=[none]   item_skill_enchanted_four=[none]   material_type=paper   crystal_type=none   crystal_count=0   is_trade=1   is_drop=1   is_destruct=1   physical_damage=0   random_damage=0   weapon_type=none   can_penetrate=0   critical=0   hit_modify=0   avoid_modify=0   dual_fhit_rate=0   shield_defense=0   shield_defense_rate=0   attack_range=0   damage_range={}   attack_speed=0   reuse_delay=0   mp_consume=0   magical_damage=0   durability=0   damaged=0   physical_defense=0   magical_defense=0   mp_bonus=0   category={}   enchanted=0   html=[item_default.htm]   equip_pet={0}   magic_weapon=0   enchant_enable=0   can_equip_sex=-1   can_equip_race={}   can_equip_change_class=-1   can_equip_class={}   can_equip_agit=-1   can_equip_castle=-1   can_equip_castle_num={}   can_equip_clan_leader=-1   can_equip_clan_level=-1   can_equip_hero=-1   can_equip_nobless=-1   can_equip_chaotic=-1   item_end

SKILLPCH Y SKILLPCH2:

Deberan copiar el codigo de skilldata y meterlo en el "L2OFF GM PANEL", en donde lo tienen instalado, tienen un txt que se llama también "skilldata.txt", ahi pegan el codigo y guardan, luego de esto, abren el "L2OFF GM PANEL", tocando la opcion de "PCH Editor" y eso les abrira el generador, en el cual clickean "skilldata".

Les dejo imágenes para guiarse:

Image from Gyazo" width="479

Image from Gyazo" width="630

Image from Gyazo" width="428


Espero que les haya servidor, att fa1thDEV/WaterColour.
WaterColour@L2

Buenisimo el dato..! Tengo ideas viables que estarían muy buenas para aplicar sobre esto a ver si lo implemento en los proximos meses cuando termine algunos detalles.

Cita de: seroncho en Jun 07, 2023, 03:20 PMBuenisimo el dato..! Tengo ideas viables que estarían muy buenas para aplicar sobre esto a ver si lo implemento en los proximos meses cuando termine algunos detalles.

Si tenes algo que te gustaria, dejame por privado y lo hago, de paso aprendo y enseño <3
WaterColour@L2

Hola!, sinceramente me parece genial tu aporte, es muy valioso.

Consulta, si yo quiero por ejemplo que un mob X me spawnee a un custom mob durante el horario de un evento estipulado previamente por un scrypt. En el caso de un l2off cómo podríamos hacerlo?

Desde ya muchas gracias!!

ZethXuke - XukePlays! o simplemente Xuke!
Acompañame en la aventura de dar vida a un proyecto único de Lineage2:
https://www.youtube.com/@xukel2
https://www.twitch.tv/xukel2