- 0
Interlude NPC Buffer & Performance Question
-
Posts
-
Server owners, Top.MaxCheaters.com is now live and accepting Lineage 2 server listings. There is no voting, no rankings manipulation, and no paid advantages. Visibility is clean and equal, and early listings naturally appear at the top while the platform grows. If your server is active, it should already be listed. Submit here https://Top.MaxCheaters.com This platform is part of the MaxCheaters.com network and is being built as a long-term reference point for the Lineage 2 community. — MaxCheaters.com Team
-
By L2Haruna-Network · Posted
🔥 Lineage 2 Haruna x3 – Interlude 🔥 Grand Opening 06.02.2026 Welcome to L2 Haruna x3, a classic Interlude server focused on retail-like gameplay, fair competition, and long-term stability. No pay-to-win, no broken customs — just real Lineage 2 the way it was meant to be played. Website: https://l2haruna.com/ Discord: https://discord.gg/7DDC9Dsxnh Chronicle: Interlude Rates: EXP/SP: x3 Adena: x2 Drop/Spoil: x1 Seal Stones: x1 Boss EXP/SP: x2 More Info: Click me Server Time: UTC +2 📈 Core Gameplay • Classic Interlude mechanics & formulas • Balanced economy • Real PvP, clan wars, sieges, and Olympiad 🏆 Olympiad Information • Olympiad starts 3 months after server opening • Participation only through the Olympiad Master • Competition time: 20:00 – 02:00 (UTC +2) ⚙️ Website & Account System • Master Account (MA) system on website • Game accounts must be created via Master Account • Vote system inside MA • Website rankings: PvP, PK, Clans, Castles 🧙 NPCs, Buffs & Utilities • Server Manager NPC in all towns and villages • Adventurer’s Guide (Miss Queen) in all towns and villages • Offline Buff Shops (.buffshop) allowed only in Monster Derby Track • In-game Mailbox system • Start-Up Bonus for all characters • FREE Teleport in all towns/villages until level 40 🎮 Interface & Quality of Life • ALT + K – Skill Panel (learn and enchant skills) • Alt + Click – Buff removal • Shift + Click on monsters – Drop and spoil information • Offline Shop system (set shop and exit game) • 35 seconds spawn protection • Captcha system in game (anti-bot protection) 💬 Chat System • Global chat (!) – Free, requires level 15 • Trade chat (+) – Free, requires level 15 • (!) Global chat • (+) Regional trade chat 🛡 Fair Play & Restrictions • Maximum 2 game clients per IP • Donate Coins and Vote Coins cannot be sold, dropped, traded, or destroyed • Cursed weapons disabled until first Heroes • Wedding system disabled (will be activated later) ⚔️ Class Progression • 1st Class Transfer – Quest required • 2nd Class Transfer – Quest required • 3rd Class Transfer – Full quest required • Subclass – Full quest required • Noblesse – Full quest required 🗡 Equipment • Shadow Weapons (D / C / B Grade) available via Shadow Weapon Manager 🧠 Technical & Protection • High-quality geodata and geo-engine • Advanced protection against DDoS attacks • Protection against third-party programs and cheats Join Us Now! https://l2haruna.com/ -
By MutatedSkull · Posted
No where mention Lucera?
-
Topics

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