Jump to content

Recommended Posts

Posted

well i will explain here how do we do a custom transformation

 

i explain what we need first off all

 

a small knowledge of xml understand how skills work how to  create ur own buffs/debuffs/magik/atacking skills and other types

 

also a knowledge to edit client

 

also how to edit java not creating it we dont need uncompiled pack to do this we can do it on compiled allready

 

AND!!! download notepad++ it will make ur work way much easyer trust me  Smiley

 

 

ON TO  THE GUIDE!! create copy a xml from gameserver/data/stats/skills file delete all the skills inside but keep the <list>and </list> and keep the encoding at the start id the xml rename it to whatever number we wont i chose 75100-75199 copy an existing transform skill

 

heres the anakim trans

 

<skill id="664" levels="1" name="Transform Anakim">

 <set name="mpConsume" val="31"/>

 <set name="target" val="TARGET_SELF"/>      

 <set name="skillType" val="BUFF"/>

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

 <set name="operateType" val="OP_ACTIVE"/>

 <set name="hitTime" val="2500"/>

 <set name="reuseDelay" val="14400000"/>

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

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

 <set name="transformId" val="306"/>

 <cond msgId="1509">

   <player olympiad="false"/>

 </cond>

 <for>

   <effect name="Transformation" time="1800" val="0"/> <!-- Transformation lasts 30 minutes -->

 </for>

</skill>

 

the key part here is the transform id the transform id u find it in gameserver\data\scripts\transformations there u will see the transform id (so then how do we know thats anakim ?) now in system file theres a file named transformdata.dat open it and u will see go to id 306 and u will 2 lines like that

306   0   13100   0   LineageEffect.s_u833_transform   LineageEffect.s_u833_transform   0   0   0   0

306   1   13100   0   LineageEffect.s_u833_transform   LineageEffect.s_u833_transform   0   0   0   0

where 13100 is the anakim one another anakim sql so copy this lines change the transform id and the npc id to what u wont  wen ur done with it encode it again with file editor

 

so next step u copy the transform skill of anakim and u change the name to transform antharas etc and change the transform id and change also the skill number and rename it to 75100 or 75176 whatever u wont and put level 1  

 

NOW on to the java file copy a transform java from the path i showed to u before

 

import net.sf.l2j.gameserver.instancemanager.TransformationManager;

import net.sf.l2j.gameserver.model.L2Transformation;

 

public class Frog extends L2Transformation

{

  public Frog()

  {

     // id, colRadius, colHeight

     super(111, -1, 20, 9);

  }

 

  public void onTransform()

  {

     if (getPlayer().getTransformationId() != 111 || getPlayer().isCursedWeaponEquipped())

        return;

 

     transformedSkills();

  }

 

  public void transformedSkills()

  {

     // Decrease Bow/Crossbow Attack Speed

     getPlayer().addSkill(SkillTable.getInstance().getInfo(5491, 1), false);

     // Transfrom Dispel

     getPlayer().addSkill(SkillTable.getInstance().getInfo(619, 1), false);

 

     getPlayer().setTransformAllowedSkills(new int[]{5491,619});

  }

 

  public void onUntransform()

  {

     removeSkills();

  }

 

  public void removeSkills()

  {

     // Decrease Bow/Crossbow Attack Speed

     getPlayer().removeSkill(SkillTable.getInstance().getInfo(5491, 1), false);

     // Transfrom Dispel

     getPlayer().removeSkill(SkillTable.getInstance().getInfo(619, 1), false);

 

     getPlayer().setTransformAllowedSkills(new int[]{});

  }

 

  public static void main(String[] args)

  {

     TransformationManager.getInstance().registerTransformation(new Frog());

  }

}

Where frog u will put Antharas in all 3 places and down where it says register new trans that have transform name where 20 and 9 is width and height pu the ur desired width and heidth of ur mob

where -1 leave it as it is and rename the file to ur transform name antharas in this case now wen ur done with the java file save it to the path where all transformations are then edit the scripts.cfg in gameserver/data/scripts.cfg

 

ade this line transformations/Zombie.java in our case we will put transformations/Antharas.java where in the group where all transformations are now close it and save it

 

now we edit system the skilgrp.dat put this line with ur transform skill id

75100   1   7   1   44   4294967295   1   2.50000000   1   A      icon.skilltransform1      0   0   0   0   -1   -1 where 75100 put  ur transform skill id

 

and skillsoundgrp.dat

 

75100   1            0.00000000   0.00000000   0.00000000   0.00000000   0.00000000   0.00000000            0.00000000   0.00000000   0.00000000   0.00000000   0.00000000   0.00000000            0.00000000   0.00000000   0.00000000   0.00000000   0.00000000   0.00000000   chrsound.m_hfighter_call   chrsound.f_hfighter_call   chrsound.m_darkelf_call   chrsound.f_darkelf_call   chrsound.m_dwarf_type_c   chrsound.f_dwarf_type_c   chrsound.m_elf_call   chrsound.f_elf_call   chrsound.m_hmagician_call   chrsound.f_hmagician_call   chrsound.m_orc_fighter_type_c   chrsound.f_orc_fighter_type_c   chrsound.m_orc_magician_type_c   chrsound.f_orc_magician_type_c   chrsound.MKamael_TypeC_S   chrsound.FKamael_TypeC_S      chrsound.m_hfighter_throw   chrsound.f_hfighter_throw   chrsound.m_darkelf_throw   chrsound.f_darkelf_throw   chrsound.m_dwarf_throw   chrsound.f_dwarf_throw   chrsound.m_elf_throw   chrsound.f_elf_throw   chrsound.m_hmagician_throw   chrsound.f_hmagician_throw   chrsound.m_orc_fighter_throw   chrsound.f_orc_fighter_throw   chrsound.m_orc_magician_throw   chrsound.f_orc_magician_throw   chrsound.MKamael_throw   chrsound.FKamael_throw      250.00000000   50.00000000 where 75100 put  ur transform skill id

 

and skillname.dat

75100   1   a,Transform Anakim\0   a,Transform to Anakim.\0   a,none\0   a,none\0

where 75100 put  ur transform skill id and where Transform Anakim put ur transformation name

 

now go ingame press shift click on urself skills ade skills down in the window put ur skill id and level and press the skill and ZOOMG  theres ur trans XD if u need any help lemme know in this topic dont pm me cuz others must learn also if they have some mistake in the code hope u enjoyed my guide have a nice transcrazyness XD!!!

 

AND!!! Credits gows to me sectis XD thanks for reading and reminding me of that hehe

  • 4 months later...
  • 3 months later...
  • 2 months later...

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now


  • Posts

    • TG Support: https://t.me/buyingproxysup | Channel: https://t.me/buyingproxycom Discord support: #buyingproxy | Server: Join the BuyingProxy Discord Server!  Create your free account here
    • I came out of my cave as I do once every 5 years. By now, I know nobody really cares about L2, but I still find it fun to experiment. Everything you see here will be free and open source. I have no interest in selling anything.   Long story short, I like to revisit Interlude and apply what I've learned to see how far I can push it. Here's Outerlude, a public fork of aCis for the modern age.   Video demo:   Work that has been done:   Redone the netcode from scratch to be async The NPC AI was completely redone based on Finite State Machines Moved to PostgreSQL and using some of its cool features Lots of config that should be hot reloadable has moved to the database OpenTelemetry instrumentation, where it makes sense, and a Grafana dashboard A built-in REST API for server management A built-in MCP Server for LLMs Nidrah AI, an AI Agent to make managing the server easier Real-time server map view Chat auditing and live snooping A new Fake Players Engine with a Node logic system and a new LLM planner for any behavior Just watch the video   If there is interest in this and I'm happy with it, or I get bored (which I always do), I will open-source it. Let me know what you think and if there is some feature you'd like me to implement.
    • Hello everyone!   I offer Java development services for L2-like projects.   I have been working with Java since 2015-2016. During the last years I worked on contract Lineage 2 server development and related infrastructure. My main focus is server-side Java, L2JMobius-based forks, custom systems, packets, datapack/XML, SQL/JDBC, optimization and fixing unstable logic.   Experience with: L2JMobius main/original branch; L2JMobius Essence branch; Lucera interlude; Custom L2-like packs where many things were already changed from the original codebase;   What I can help with: custom systems for your pack; skills / effects / triggers / formulas; NPC / AI / scripts; shops / services / buffer / GM shop logic; items / enchant / rewards / missions; special hunting zones, instances, spawn/zone logic; custom packets and server-side integration with existing client UI changes; server-side integration for existing client-side edits/maps/geodata; SQL/JDBC, XML/datapack, XSD, configs; porting mechanics between branches/chronicles; bug fixing, cleanup, legacy refactoring; performance fixes: memory leaks, race conditions, broadcast/task-manager bottlenecks. other server-side game mechanics;   Examples of larger systems I worked on: clan/economy systems: roles, permissions, auction, shop, warehouse, ranks, seasons, history; PvP/event-like systems: territory/conquest mechanics, rankings, rewards, schedules; hunt pass / season pass / progression systems; account panel / web API for a game project; launcher backend, token-login flow, updater tooling; parsers and analyzers for game/client data; internal testing tools for server-side validation.   I can work with Git, separate branches, commits, pull/merge requests or patches, depending on your workflow. For tasks I usually provide a short note about what was changed and what should be tested.   Format: hourly: 15-20 USD/hour, depending on the task; fixed price per task after checking the requirements/code; small task: from 15 USD; payment: USDT; no revenue share and no unpaid test tasks; a small paid task is usually the best way to check quality and communication first. Contact: Discord: @stroke_dan Telegram @castirom
  • Topics

×
×
  • Create New...

Important Information

This community uses essential cookies to function properly. Non-essential cookies and third-party services are used only with your consent. Read our Privacy Policy and We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue..