- 0
Interlude NPC Buffer & Performance Question
-
Posts
-
📢 ¡ATENCIÓN JUGADORES DE LINEAGE 2! 📢 ¡L2 Crest Converter ha llegado! El programa creado por PulserX para obtener crests de clan (banderas) que realmente funciona, programado y distribuido de manera gratuita a todo el mundo por su humilde servidor. ¿Cansado de que el viejo CrestMaker falle y arruine tus imágenes en Windows 10/11? Hemos creado una solución actualizada. ✅ Optimizado para Windows 10/11 ✅ Convierte PNG/JPG perfectamente ✅ Adiós a las imágenes cuadriculadas L2 Crest Converter es la herramienta que garantiza que tu crest se vea tal como la diseñaste. Descárgalo y velo en acción aquí: 👉 https://youtu.be/OVsoi5Vaj7M?si=mhE8Aet0w5nwo6ZE 👉 https://youtu.be/OVsoi5Vaj7M?si=mhE8Aet0w5nwo6ZE 👉 https://youtu.be/OVsoi5Vaj7M?si=mhE8Aet0w5nwo6ZE
-
New update! A gift coupon system has been added. Now you can activate gift coupons directly in the bot: Open "My Profile" Tap "Activate gift coupon" Enter the coupon code The balance will be topped up automatically. Received a coupon? Activate it and top up your balance. Buy Telegram Stars with maximum benefit in our bot
-
New update! A gift coupon system has been added. Now you can activate gift coupons directly in the bot: Open "My Profile" Tap "Activate gift coupon" Enter the coupon code The balance will be topped up automatically. Received a coupon? Activate it and top up your balance. Buy Telegram Stars with maximum benefit in our bot
-
New update! A gift coupon system has been added. Now you can activate gift coupons directly in the bot: Open "My Profile" Tap "Activate gift coupon" Enter the coupon code The balance will be topped up automatically. Received a coupon? Activate it and top up your balance. Buy Telegram Stars with maximum benefit in our bot
-
Dear users! We are happy to announce a major update of our bot! What’s new: Long-term number rental You can now rent virtual numbers for a long period (hours, days, or months)! This is perfect for those who need constant access to a number to receive SMS from various services. Number history A new feature allows you to view all your rented numbers in one place! You can: • See the full history of all numbers (instant and long-term) • View all received SMS codes • Return to active numbers to receive additional SMS • See the status of each number Gift coupon system You can now activate gift coupons directly in the bot! Just go to your profile and click “Activate gift coupon” — your balance will be topped up automatically! Chinese language Full support for the Chinese language has been added! The bot is now available in three languages: Russian, English, and Chinese. Switching languages has become even more convenient. Improved rental process Before purchasing a number, detailed service information is now displayed: • Service name • Ability to receive repeated SMS • Rental duration • Cost This will help you make a more informed decision before renting. Quick rental The “Virtual numbers (SMS)” button has now been renamed to “Quick rental” for greater clarity and convenience. Go to the SMS service
-
-
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