Jump to content

Recommended Posts

Posted

Well I'm currently rewriting the buffer, but there's one thing - I will share only a promo buffer, that won't have scheme system, pet buffing and some of the configuration features. So what I say is - only beta testers, chosen by me, will get full version of the buffer, and the rest of you will be able to buy it for 5$ or so. The price isn't that high. As far as I know, it's like buying 2 large bottles of coke in Europe.

Posted

Well I'm currently rewriting the buffer, but there's one thing - I will share only a promo buffer, that won't have scheme system, pet buffing and some of the configuration features. So what I say is - only beta testers, chosen by me, will get full version of the buffer, and the rest of you will be able to buy it for 5$ or so. The price isn't that high. As far as I know, it's like buying 2 large bottles of coke in Europe.

When you have it ready, pm me , i will buy for sure =)

  • 4 weeks later...
Posted

i think, all ppl already sayed that, but, nice works!

realy.

He works like a charm on my epilogue server.

The question is: how i can fix this console error?

 

10 sept. 2010 00:19:44 com.l2jserver.L2DatabaseFactory$ConnectionCloser run
ATTENTION: Unclosed connection! Trace: sun.reflect.GeneratedMethodAccessor20.invoke(Unknown Source)
java.lang.RuntimeException
    at com.l2jserver.L2DatabaseFactory.getConnection(L2DatabaseFactory.java:223)
    at sun.reflect.GeneratedMethodAccessor20.invoke(Unknown Source)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
    at java.lang.reflect.Method.invoke(Unknown Source)
    at org.python.core.PyReflectedFunction.__call__(Unknown Source)
    at org.python.core.PyMethod.__call__(Unknown Source)
    at org.python.core.PyObject.__call__(Unknown Source)
    at org.python.core.PyInstance.invoke(Unknown Source)
    at org.python.pycode.serializable._pyx1284070287676.onAdvEvent$14(__init__.py:768)
    at org.python.pycode.serializable._pyx1284070287676.call_function(__init__.py)
    at org.python.core.PyTableCode.call(Unknown Source)
    at org.python.core.PyTableCode.call(Unknown Source)
    at org.python.core.PyTableCode.call(Unknown Source)
    at org.python.core.PyFunction.__call__(Unknown Source)
    at org.python.core.PyMethod.__call__(Unknown Source)
    at org.python.core.PyObject.__call__(Unknown Source)
    at org.python.core.PyObject._jcallexc(Unknown Source)
    at org.python.core.PyObject._jcall(Unknown Source)
    at org.python.proxies.main$Quest$432.onAdvEvent(Unknown Source)
    at com.l2jserver.gameserver.model.quest.Quest.notifyEvent(Quest.java:405)
    at com.l2jserver.gameserver.model.actor.instance.L2PcInstance.processQuestEvent(L2PcInstance.java:1790)
    at com.l2jserver.gameserver.network.clientpackets.RequestBypassToServer.runImpl(RequestBypassToServer.java:221)
    at com.l2jserver.gameserver.network.clientpackets.L2GameClientPacket.run(L2GameClientPacket.java:93)
    at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(Unknown Source)
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
    at java.lang.Thread.run(Unknown Source)

 

nvm, thx for sharing.

  • 2 weeks later...
  • 5 months later...
Posted

The reason for this post is to report a problem that can seriously affect the performance of your servers. Some of you maybe have not noticed, ought not to have many people using the buffer at the same time, but in my case 1 week ago, I had two total freezes when the whole server (500-700 players) attempted use the bufer after an event ;D. But I found something, a person is enough to knock over a server, with many people. Looks this code in script both original rin4a's buffer and my version have a problem, but is easy to fix.

 

as you can see in these lines of code, is open a connection to the database but is never closed, every time a user attempted to remove a buff of his scheme, open a new connection that was never closed causing a total server freeze.

 

                          if event == "remove_buff" :
                                      event = eventParam1.split("_")
                                      scheme = event[0]
                                      skill = event[1]
                                      level = event[2]
                                      con=L2DatabaseFactory.getInstance().getConnection()
                                      rem=con.prepareStatement("DELETE FROM buffer_scheme_contents WHERE scheme_id=? AND skill_id=? AND skill_level=? LIMIT 1")
                                      rem.setString(1, scheme)
                                      rem.setString(2, skill)
                                      rem.setString(3, level)
                                      try : rem.executeUpdate()
                                      except : pass

 

to fix the problem only adds to what I show below  :). thats all!

 

                          if event == "remove_buff" :
                                      event = eventParam1.split("_")
                                      scheme = event[0]
                                      skill = event[1]
                                      level = event[2]
                                      con=L2DatabaseFactory.getInstance().getConnection()
                                      rem=con.prepareStatement("DELETE FROM buffer_scheme_contents WHERE scheme_id=? AND skill_id=? AND skill_level=? LIMIT 1")
                                      rem.setString(1, scheme)
                                      rem.setString(2, skill)
                                      rem.setString(3, level)
                                      try :
                                                   rem.executeUpdate()
                                                   rem.close()         # <------------ADD----------
                                                   con.close()         # <------------ADD----------
                                      except : pass

 

After this modification, the performance of my server increase substantially (not more freezing, less lagg).

 

PD: I would recommend that only allow certain people to use the buffer for servers with more than 100 users (Use the VIP Option, i used and everything is fine).

 

I added that lines on your VIP buffer but when server try to load the script i got this error:

 

Error on: C:\Server\gameserver\data\scripts\custom\55555_NPCBUFFER\__init__.py.error.log
Line: -1 - Column: -1

Traceback (innermost last):
  (no code object) at line 0
SyntaxError: ('invalid syntax', ('__init__.py', 1216, 17, '                con.close()'))

 

i see you fixed this for the first buffer (555), can you fix this for the other version too (555555) ?

 

here is mine with your fix (not working) http://www.mediafire.com/?j9mmoh3c839stqz

 

thanks!

  • 4 weeks later...
Posted

Well I'm currently rewriting the buffer, but there's one thing - I will share only a promo buffer, that won't have scheme system, pet buffing and some of the configuration features. So what I say is - only beta testers, chosen by me, will get full version of the buffer, and the rest of you will be able to buy it for 5$ or so. The price isn't that high. As far as I know, it's like buying 2 large bottles of coke in Europe.

When done it, pm me , i will buy them ;]

  • 3 weeks later...
  • 2 months later...
Guest
This topic is now closed to further replies.



  • Posts

    • I can consider it too, but I would have to port all my own customs to the H5 extender then.
    • I am planning on making adminer optional which would also make php and apache2 optional, I just haven't had time yet. That script I made for myself and I know that I want adminer 😛   " and also be asked about opening 3306 or XXXX and listen to * thanks "   Could you explain this a bit more? I am not sure I should offer the option to open port 3306 as that is a bad thing unless you know what you are doing, and if you know what you are doing it is a simple thing to open it yourself after.   Listen to * is this for login / gameserver or Mariadb?
    • 🎉 ¡Llega EuroLatinL2! 🎉 🌍 Un servidor Interlude x20 con esencia retail y ajustes justos para una experiencia única. 🧠 Desarrollado por profesionales rusos, EuroLatinL2 está basado en el cliente original de Lineage II Interlude. Buscamos revivir lo mejor de la vieja escuela con un balance perfecto entre nostalgia y jugabilidad moderna. 🛡️ ¿Qué hace diferente a EuroLatinL2? ✨ Rates Mid x20 – Equilibrados para un progreso fluido, sin perder el desafío. 🧪 Experiencia 100% retail con leves ajustes para mantener el interés. ⚔️ Raid Bosses épicos ajustados al nivel 80. 💡 Nada de GM Shop, sin buffs OP, sin teleport personalizados. ⛩️ Solo tiendas y contenido original de Lineage II. 🧙 Buffer básico (solo Prophet), duración de 60 minutos. 🔄 Sistema de héroes cada 15 días y Olimpiadas 2h por día. 🛒 Sistema de donaciones solo para servicios estéticos y premium (sin pay-to-win). 🧬 Sistema de skins para armas y armaduras (solo apariencia). 💤 AutoFarm disponible solo con adena/premium, opcional. 🔥 ¿Quieres volver a disfrutar Lineage II como en sus mejores tiempos? 💬 Completa quests, forma grupos reales, derrota jefes con estrategia, y recolecta recetas (¡incluso para Soulshots!). ⏳ ¡La apertura está muy cerca! 🚪 No te quedes fuera de esta aventura. Vive Lineage II como debe ser. 🌐 Sitio oficial: https://eurolatin.eu 📣 ¡Comparte con tu clan y prepárate para la nostalgia! #Lineage2 #Interlude #EuroLatinL2 #L2Classic #PvE #PvP #NostalgiaL2
  • 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