Jump to content

Rootware

Legendary Member
  • Posts

    1,370
  • Credits

  • Joined

  • Last visited

  • Days Won

    14
  • Feedback

    100%

Everything posted by Rootware

  1. It requires also client interface edit. And this is not part of H5 and need create special trick for implement it. Doubt what you find a skilled dev here for this job.
  2. getAI().notifyEvent(CtrlEvent.EVT_FINISH_CASTING); This code useless for your problem. EVT_FINISH_CASTING event uses for cases which attached to skill's casting end. In your case you need add check for skill reuse delay before stopMove() action.
  3. If bypass not contains "-h" parameter then in client the HTML Viewer freezing in next 5 seconds (for awaiting refreshing HTML page) if server didn't sent ShowBoard or NpcHtmlMessage packets. I think you meant this effect as issue?
  4. You need restore all dependencies. It means you need: reproduce classes irerarchy and package location (e.g. if target class locates by path "l2j.net.sf.gameserver" you need create this package path in your new project and put there target class); if target class calls some methods from classes from this package then you need create this classes as DUMMIES and reproduce them empty methods/fields for exclude logical errors while compilation. This names as "make a dead code"; compile result and take modified class for replacing. That's all steps i meant by phrase "Restore all imports with external dependencies". Sometimes recompilation the target class requeres a lot of time and new project can includes few hundreds "depended" classes. You must be ready for this.
  5. If you need change any class from JAR package then you need: Decompile the target class; Create new Java project in IDE as container of target class (project can includes only "dead code"); Normalize all fields and methods; Restore all imports with external dependencies; Compile as new project; Replace new class from new JAR package to old. For all you need any IDE (Eclipse, IntelliJ IDEA) and any Jva decompile (e.g. Java Decompiler)
  6. I didn't spoke about manual handling a bots. Server can processing it automatically. If you cares about online then stay as is and forget about any bot protection. The meaning of my words was "why need pay a lot of money for the same result with zero cost and the same efficiency". In addition, the server lifetime is so short that you can ignore the players' cries about bots at all.
  7. No info related with this NPCID in npcname-e.dat and npcgrp.dat.
  8. 7 of 10 bots can be easily detected from server side w/o any additional tools for client side. All what need it's client HWID for ban hammer management. But no one cares about it. Of course better wasting a lot of money for external doubtful solutions. Madness.
  9. @Tryskellyou always knows how to give people hope.
  10. This event was before Freya updates. July 2009 it's time of GF. Following this info the leaked GF PTS can't contains this event. So, you need check leaked HTML Freya and AI. No more data original possible. https://web.archive.org/web/20140319095119/http://legacy.lineage2.com/archive/2009/06/master_of_encha.html And it's couldn't be a part of Interlude.
  11. You have problem with DB connection. Check the server start log, may helps you to find where you lost a connection to DB. Initialization a connection pool manager starts in firsts steps of server start. Check it. In some sources DB connection don't checks immediately after initialization and can throws errors only after server starts. For avoid that issue add in db initialization code one new property "connection timeout = 3-5 seconds". This time enough for connection to DB, because avg connection time around 500-800 ms. By default this value is 30 seconds. That's very large timeout for initialization.
  12. The telepaths battle has begun! No code, no full screenshot of CB.
  13. What can be easier. Add into SpawnTable.java method who will be create XML line into StringBuilder with spawn properties. Make a HashMap like <String, StringBuilder> where String will be NPC instance (e.g. Monster, Teleporter, etc). This String use for XML filename after fully loading spawnlist. This method call each time before addition spawndata in spawn. And call in the end the method what store all prepared data into XML.
  14. @melronno problem. Explaning for ytou all fields. String HTML_TEXT = "<html><body>Some Text</body></html>"; This field contains all dynamic data from page. It can be full page or only data grid part of rating. long TIMESTAMP = 0; This field need for detecting a fact of outdating a cache only. Why like this? It's simple. If no request from players, no requests for updates as long as possible. AtomicBoolean _underUpdate = false; This field need as thbread-safety flag about "caching process already started in another thread" for concurrent access cases. The first request with outddated cache state will use additional load for server w/o systematic actions via another separated threads. In time while cache rebuilding all other requests will use cached data from string. In the end, this pattern do not contains resources more than need for handle this rank. I named you and other speakers as "smart guys" because if you tries to teach someone to fix issues in code then make this job better as it possible. No need rework something in class if pattern of class is totally wrong. The reason of my "anger" post was in it. You should evaluate how appropriate a minor fix is and suggest a different class pattern if it is more correct than fixing all potentially dangerous places of code. This is the major problem of all teachers in L2J (ofc with me). P.S. I'm not suggested anything, by the way.
  15. For all smart guys which gave pointless recommendations for improving @StinkyMadness code need a bit more learn an OOP concept. This is an ideal solution from your paranoia with concurrent access: String HTML_TEXT = "<html><body>Some Text</body></html>"; long TIMESTAMP = 0; AtomicBoolean _underUpdate = false; public void showMePage(Player player) { if (TIMESTAMP < System.curentTimeMilliseconds() && !underUpdate) { _underUpdate = true; // get data from DB here, build HTML text and save into HTML_TEXT field. TIMESTAMP = System.curentTimeMilliseconds() + 60000L; _underUpdate = false; } player.sendHTML(HTML_TEXT); } Sorry guys for this words but your potential case possible if server will ran on Pentium 1. In other cases a server performance enough for fast updating statistic and caching it in class fields between few near requests.
  16. Your main problem is that you are deluded into thinking that you have solved these problems. Do not think that all your predecessors did not ask a similar question when analyzing the current state of the L2 community. Use L2J Mobius. If you find a bugs required to fix then learn Java or hire developers.
  17. So, we talking about 100% working project or most beneficial? You starts from one thesis and if you fucked up, you switched to another. I see that this topic it's another Bla Bla BLa.
  18. Those projects it's really garbage. Try to waste a bit more time for tests and you find a lot of bugs in those projects.
  19. All what you want it's impossible. The 99 of 100 members it's ballast. They only get and give nothing. It's like an lake water. 2 rives give a water and thousands just take. For some time a lake still full water and after it grows shallow and disappears 10 staffers never win the hungry's army. (c) If you want to change the community then you need to change everyones for be producer, not consumer. Otherwise it's one more drama with baby cry.
  20. Possible. You need to try anyway, because no one saw the client part of protection when checking PC identificator.
  21. Usually HWID calculates by CPU, HDD and MAC address. The result HWID can be hash of one of those parameters or summary of all. Rare uses RAM or Windows installation OID. You can try to bypass HWID ban via Virtual PC instance as example. All other cases you need to change hardware configuration.
  22. Mate, this trick has more bugs than benefit. Just forget about it.
×
×
  • Create New...