Jump to content

[Share]How to have auto TvT(simply way for niebies)

Recommended Posts

So i share a simply way for niebies...


1)Go to your datapack in data/scripts/cron/ directory

2)Create a file and name it tvt.py(py is the extension so if you create a txt file and rename it,remove the txt and add py)

3)Open the file and paste


import sys

from com.l2jfree.gameserver.model.entity.events import TvT




save and close it.


4)Finally add in your global tasks the following:

INSERT INTO `global_tasks` (`id`, `task`, `type`, `last_activation`, `param1`, `param2`, `param3`) VALUES

(996, 'jython', 'TYPE_FIXED_SHEDULED', 1206595935732, '60000', '14400000', 'tvt.py');


"param1" means time since server restart.So in what i share means that event will start 1 minite after restart

"param2" means how much time that the event will repeat.In what i share event will start automatic every 4 hours


You can change it by your needs(for example you may want every 3 hours)


Have fun.....


how to do this on l2jteon? there is not cron folder!

Link to comment
Share on other sites

  • 4 weeks later...
  • 2 weeks later...
  • 2 years later...

I have problem with add auto eventmodrabbits.java. Can som1 help me with this? Event code :


* This program is free software: you can redistribute it and/or modify it under

* the terms of the GNU General Public License as published by the Free Software

* Foundation, either version 3 of the License, or (at your option) any later

* version.


* This program is distributed in the hope that it will be useful, but WITHOUT

* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS

* FOR A PARTICULAR PURPOSE. See the GNU General Public License for more

* details.


* You should have received a copy of the GNU General Public License along with

* this program. If not, see <http://www.gnu.org/licenses/>.


package mods.eventmodRabbits;


import java.util.List;

import java.util.concurrent.ScheduledFuture;


import javolution.util.FastList;


import com.l2jserver.Config;

import com.l2jserver.gameserver.Announcements;

import com.l2jserver.gameserver.ThreadPoolManager;

import com.l2jserver.gameserver.datatables.SkillTable;

import com.l2jserver.gameserver.instancemanager.QuestManager;

import com.l2jserver.gameserver.model.L2Object;

import com.l2jserver.gameserver.model.L2Skill;

import com.l2jserver.gameserver.model.actor.L2Npc;

import com.l2jserver.gameserver.model.actor.instance.L2EventChestInstance;

import com.l2jserver.gameserver.model.actor.instance.L2EventMonsterInstance;

import com.l2jserver.gameserver.model.actor.instance.L2MonsterInstance;

import com.l2jserver.gameserver.model.actor.instance.L2PcInstance;

import com.l2jserver.gameserver.model.quest.Event;

import com.l2jserver.gameserver.model.quest.Quest;

import com.l2jserver.gameserver.model.quest.QuestState;

import com.l2jserver.gameserver.util.Util;

import com.l2jserver.util.Rnd;


public class eventmodRabbits extends Event


// Event NPC's list

private List<L2Npc> _npclist;

// Event Task

ScheduledFuture<?> _eventTask = null;

// Event time

public static final int _event_time = 10;

// Event state

private static boolean _isactive = false;

// Current Chest count

private static int _chest_count = 0;

// How much Chests

private static final int _option_howmuch = 200;

// NPc's

public static final int _npc_snow  = 900101;

public static final int _npc_chest = 900102;

// Skills

public static final int _skill_tornado = 630;

public static final int _skill_magic_eye = 629;


// Drop data

private static final int[][] DROPLIST =


{  1538,  80,  3, 5 }, // Blessed Scroll of Escape

{  3936,  60,  3, 5 }, // Blessed Scroll of Ressurection

{  14720,  50,  5, 10 }, // E Apiga

{  1540,  40, 20, 30 }, // Quick Healing Potion

{  6622,  35,  1, 3 }, // Giant's Codex

{ 9627,  30,  1, 3 }, // GCM

{ 20004,  25,  1, 1 }, // grejtering

{ 14721,  15,  1, 1 } // GEApiga



public static void main(String[] args)


new eventmodRabbits(-1, "eventmodRabbits", "mods");



public eventmodRabbits(int questId, String name, String descr)


super(questId, name, descr);













public String onSpawn(L2Npc npc)








return super.onSpawn(npc);




public boolean eventStart()


// Don't start event if its active


return false;


// Check Custom Table - we use custom NPC's


return false;


// Initialize list

_npclist = new FastList<L2Npc>();


// Set Event active

_isactive = true;


// Spawn Manager

recordSpawn(_npc_snow, -59227, -56939, -2039, 64106, false, 0);


// Spawn Chests

for(int i=0; i < _option_howmuch; i++)


int x = Rnd.get(-60653, -58772);

int y = Rnd.get(-55830, -57718);

recordSpawn(_npc_chest, x, y, -2030, 0, true, _event_time*60*1000);




// Announce event start

Announcements.getInstance().announceToAll("Rabbit Event : Chests spawned!");

Announcements.getInstance().announceToAll("Go to Fantasy Isle and grab some rewards!");

Announcements.getInstance().announceToAll("You have "+_event_time+" min - after that time all chests will disappear...");


// Schedule Event end

_eventTask = ThreadPoolManager.getInstance().scheduleGeneral(new Runnable()


public void run()




}, _event_time*60*1000);


return true;



private void timeUp()


Announcements.getInstance().announceToAll("Time up !");





public boolean eventStop()


// Don't stop inactive event


return false;


// Set inactive

_isactive = false;


// Cancel task if any

if (_eventTask != null)



_eventTask = null;


// Despawn Npc's



for (L2Npc _npc : _npclist)

if (_npc != null)





// Announce event end

Announcements.getInstance().announceToAll("Rabbit Event finished");


return true;




public String onAdvEvent(String event, L2Npc npc, L2PcInstance player)


String htmltext = event;


if (event.equalsIgnoreCase("transform"))


if (player.isTransformed() || player.isInStance())



SkillTable.getInstance().getInfo(2428, 1).getEffects(npc, player);


return null;


return htmltext;




public String onFirstTalk(L2Npc npc, L2PcInstance player)


QuestState st = player.getQuestState(getName());

if (st == null)


Quest q = QuestManager.getInstance().getQuest(getName());

st = q.newQuestState(player);


return npc.getNpcId()+".htm";




public String onSkillSee(L2Npc npc, L2PcInstance caster, L2Skill skill, L2Object[] targets, boolean isPet)


if (Util.contains(targets,npc))


if(skill.getId() == _skill_tornado)


dropItem(npc, caster, DROPLIST);




if(_chest_count <= 0)


Announcements.getInstance().announceToAll("No more chests...");




else if (skill.getId() == _skill_magic_eye)


if(npc instanceof L2EventChestInstance)




return super.onSkillSee(npc,caster,skill,targets,isPet);




public String onAttack(L2Npc npc, L2PcInstance attacker, int damage, boolean isPet, L2Skill skill)


// Some retards go to event and disturb it by breaking chests

// So... Apply raid curse if player don't use skill on chest but attack it

if(_isactive && npc.getNpcId() == _npc_chest)

SkillTable.getInstance().getInfo(4515, 1).getEffects(npc, attacker);


return super.onAttack(npc, attacker, damage, isPet);



private static final void dropItem(L2Npc mob, L2PcInstance player, int[][] droplist)


final int chance = Rnd.get(100);


for (int i = 0; i < droplist.length; i++)


int[] drop = droplist;

if (chance > drop[1])


((L2MonsterInstance)mob).dropItem(player, drop[0], Rnd.get(drop[2], drop[3]));






private L2Npc recordSpawn(int npcId, int x, int y, int z, int heading, boolean randomOffSet, long despawnDelay)


L2Npc _tmp = addSpawn(npcId, x, y, z, heading, randomOffSet, despawnDelay);

if(_tmp != null)


return _tmp;




public boolean eventBypass(L2PcInstance activeChar, String bypass)


return false;




Chronicle freya.

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.

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.

  • Posts

    • Hello, I hope you all have a nice day, today I come to share with you a tutorial on how to put C4 skills in an INTERLUDE. The first thing to do is to locate the file called "skilladquire.txt" in scripts, in it we will see all the skills that are learned automatically during leveling. Once located, select everything inside and save it in another notepad to not lose anything, after that, download the .txt file that I have left, copy what is in it and paste it in the "skilladquire.txt", and that's it! Only work for IL OFF servers.   It will be working correctly, I hope it helps ❤️ LINK: https://www.mediafire.com/file/su558lwabnuooq5/skillacquireC4.txt/file  I would appreciate if you could give me the credits or support me for more tutorials like these, greetings, att
    • SPANISH VERSION (BELOW ENGLISH VERSION): 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    [color=yellow]effect={{i_summon_npc;[x_mas_tree_a];1}}[/color]    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}}".   [b]effect=[/b] -> hace referencia al efecto que va a producir [b]{{i_summon_npc;[/b] -> hace referencia a que esta spawneando un npc. [b][x_mas_tree_a];1[/b] -> 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: EJEMPLOS DE COMO QUEDARIA:   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:   [code]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:   https://prnt.sc/qDghj9pL_I9d https://gyazo.com/611a1bd80962cbadb56cec183ca50f28 https://gyazo.com/fe46c0b2e5f1a115aa541351640407e2 Espero que les haya servidor, att fa1thDEV/WaterColour. ------------------------------------------------------------------------------------------------------------------------------------------- ENGLISH VERSION:   Good, after so many attempts, I managed to OFF spawn a rb using an ITEM, this method is not very seen in the current servers, that's why I decided to share this with you, I hope you can give me the credits <3.   First of all, the first thing we all know is that there are many items or skills that spawn objects or summons, like the necro skills or the dragon flute, we will also find others in the ai.obj or in the base programming that have certain functions to spawn or summon.   But we forget that there is one that especially spawns an NPC for a certain time, and this code is dedicated to that, we are talking about the Christmas NPC, although it is actually an ITEM that spawns the Christmas NPC.   ID: 5560    ITEM NAME: Christmas Tree Once we know this, to know what type of skill this item uses, we go to ItemData.txt (located in script and press Ctrl + f, we look for the ID 5560, automatically all the information of this item will appear: 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   Once we verify which skill is being used (marked in yellow above), we copy the name, in this case it is "item_skill=[s_summon_x_mas_tree_a]" -> "item_skill=[s_summon_x_mas_tree_a]". -> "s_summon_x_mas_tree_a", we make the same search process, but in this case we go to the file called "SkilData.txt", we open it and pressing Ctrl + F, we look for s_summon_x_mas_tree_a.   This information will appear, it is important to clarify that this info is the creation of the skill and its effect; 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   Once found, you will see that there is a part that says "effect", this would be what kind of call this skill makes, in this case, it is calling to spawn an NPC (you can check the id of the skills you want and look for them in this file, and you will see the effects), "effect={{i_summon_npc;[x_mas_tree_a];1}}".   effect= -> refers to the effect you are going to produce. {{i_summon_npc; -> refers to spawning an npc. [x_mas_tree_a];1 -> refers to the NPC id in square brackets and the ;1 refers to the amount.     once verified this, now we have the base to spawn a mob, we will proceed to do the basics, create an item with filedit (itemname, skillgrp, skillname, etc), in this case I leave you the skillgrp/itemname/skillname: EXAMPLES HOW:   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   - Change the IDs, because they are ID ramdoms. - Once this is done, we proceed to DATAPACK, where we will have to create the skill from 0 to work correctly, in my case, I replaced the id of the npc of the tree and it works correctly with that item. But in this case, what you should do, is to clone the skilldata of the tree and the itemdata, that is to say:   SKILLDATA:   skill_begin    skill_name=[s_Name_SKILL]    /* [ꃠꀉ 킸났 삌큘] */    [skill_id=ID_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:   [code]item_begin    etcitem    (5560 ID ITEM)  [name_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_name_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: You should copy the code of skilldata and put it in the "L2OFF GM PANEL", where you have it installed, you have a txt that is also called "skilldata.txt", there paste the code and save, after this, open the "L2OFF GM PANEL", touching the option of "PCH Editor" and that will open the generator, in which you click "skilldata". I leave images to guide you: https://prnt.sc/qDghj9pL_I9d https://gyazo.com/611a1bd80962cbadb56cec183ca50f28 https://gyazo.com/fe46c0b2e5f1a115aa541351640407e2 I hope you found it useful, att fa1thDEV/WaterColour. BTW!, if there is any error, I am more than willing to fix or collaborate, greetings!
    • Source: Essence  Assassin Server never was online , fixed most of bugs but still need work. The basis of the source premium l2jmobius JDK 17 is used to run. I can run a test server if needed. Cost "Source" - 400 USD   
  • Topics

  • Create New...

AdBlock Extension Detected!

Our website is made possible by displaying online advertisements to our members.

Please disable AdBlock browser extension first, to be able to use our community.

I've Disabled AdBlock