Hello everybody, I'm having a little bit of trouble.
I've been trying to use examples from other NPC buffers which seem to cast 'instantly' sort of.
What I had in mind was to allow the player to create different sets of buffs that they can also pick from later. I've defined two classes inside L2PcInstance:
ZCL_BUFF_ROW and ZCL_BUFF_TABLE.
Each instance of L2PcInstance has an object ZCL_BUFF_TABLE. The object_id of the character is passed to the constructor of this class and then the results are placed into hashtables:
private Hashtable<Integer,Integer> _buff_ids;
So the character has 24 values for 24 buffs.
In the above class, ZCL_BUFF_TABLE, there is another hashtable I've made to store the rows off buffs so a character can have multiple presets.
The problem comes in later at the NPC buffer itself. I normally see that the useMagic() function is called at the Python script, but I wasn't sure if I'd be able to iterate across a java hashtable inside python. So I implemented two functions:
// Method of ZCL_BUFF_TABLE
public void STApplyBuffRow(QuestState st, int index)
{
st.getPlayer().setTarget( st.getPlayer() );
_buff_table.get(index).STapplyBuffs(st);
}
// Method of ZCL_BUFF_ROW
public void STapplyBuffs(QuestState st)
{
L2Skill skill = null;
for ( int b_id : _buff_ids.values() )
{
skill = SkillTable.getInstance().getInfo( b_id, 1 );
st.getPlayer().useMagic(skill, false, false);
}
}
I'm passing the QuestState to the functions so I can apply the buffs to player in the Java code and just place the function
In the python code. However, what ends up happening is the player casts the buffs and it takes a long time which really isn't what I'm looking for. When I was looking at other examples, it's almost instant.
AND one last question.
I'm also new to java. I've taken peaks at the L2j server before but now I'm a bit more serious about it. I'm wondering though how in the long run will making additions to the player class affect the performance? For example, is a Hashtable in java an effecient way to store this list or is there perhaps a faster way?
L2Elixir wishes everyone a Happy New Year! 🎉
We are continuously working on the server, with more events, fixes, and improvements coming soon.
Thank you all for being part of this journey and for playing fair — most importantly, have fun!
After over 1 month online, the population keeps growing steadily. L2Elixir has been reborn — once and for all.
We’re truly happy to see so many old players returning, reconnecting with friends, reviving old alliances, and even restarting legendary wars.
See you in-game! ⚔️✨
One of the best external rust cheats with lot of functions for 2026.
OFFICIAL DEVELOPERS !
After payment you will receive:
Product download link
Activation key for the selected period.
Free support for the duration of the product subscription.
INFORMATION :
AC - Undetected
Support System : Windows 10 - 11
Support CPU : INTEL & AMD
Game mode : Windowed Mode, Borderless
Supported Game Version : Steam
System Requirements :
- Nothing
MENU
https://ibb.co/album/Fbx0DB
IN GAME
Our prices:
Prices must be checked directly on our website, as they may change at any time to control sales — however, we remain among the most competitive in the market.
Visit Our Website
Not my server,advertising for the love of the game especially for Elmorelab players
Just found about it and the admin bought the files from Master Toma so it will be similar to Teon from Elmorelab
Starting with C1 and upgrading up to Kamael in the future
rates x1
no p2w donos (no runes etc.)
1 client
Site: https://eternalrecall.org/
Discord: https://discord.com/invite/Ef5KZXR3HY
Question
dpbBryan
Hello everybody, I'm having a little bit of trouble.
I've been trying to use examples from other NPC buffers which seem to cast 'instantly' sort of.
What I had in mind was to allow the player to create different sets of buffs that they can also pick from later. I've defined two classes inside L2PcInstance:
ZCL_BUFF_ROW and ZCL_BUFF_TABLE.
Each instance of L2PcInstance has an object ZCL_BUFF_TABLE. The object_id of the character is passed to the constructor of this class and then the results are placed into hashtables:
So the character has 24 values for 24 buffs.
In the above class, ZCL_BUFF_TABLE, there is another hashtable I've made to store the rows off buffs so a character can have multiple presets.
The problem comes in later at the NPC buffer itself. I normally see that the useMagic() function is called at the Python script, but I wasn't sure if I'd be able to iterate across a java hashtable inside python. So I implemented two functions:
// Method of ZCL_BUFF_TABLE public void STApplyBuffRow(QuestState st, int index) { st.getPlayer().setTarget( st.getPlayer() ); _buff_table.get(index).STapplyBuffs(st); } // Method of ZCL_BUFF_ROW public void STapplyBuffs(QuestState st) { L2Skill skill = null; for ( int b_id : _buff_ids.values() ) { skill = SkillTable.getInstance().getInfo( b_id, 1 ); st.getPlayer().useMagic(skill, false, false); } }I'm passing the QuestState to the functions so I can apply the buffs to player in the Java code and just place the function
In the python code. However, what ends up happening is the player casts the buffs and it takes a long time which really isn't what I'm looking for. When I was looking at other examples, it's almost instant.
AND one last question.
I'm also new to java. I've taken peaks at the L2j server before but now I'm a bit more serious about it. I'm wondering though how in the long run will making additions to the player class affect the performance? For example, is a Hashtable in java an effecient way to store this list or is there perhaps a faster way?
3 answers to this question
Recommended Posts
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 accountSign in
Already have an account? Sign in here.
Sign In Now