Jump to content

Question

Posted (edited)

Hello guys,
I am not sure,but I guess that some players in my server are using this method to dupe items: http://www.maxcheaters.com/topic/189012-new-bug-duplicate-freya-hi5/
I've given it a thought and came with few solutions.

1) Change method when you enter the world,the last thing program does is load your inventory.
2) Change the way deleting item method works,load items from databse every time you delete something.Just thought of one downside for this method,wouldn't the said duping method work if instead of deleting item just trade it to someone or using other transfer method.Plus,I believe, it's really hitting on performance.
Any help guys?
EDIT: aCis rev 320

Edited by StealthyS4m

Recommended Posts

  • 0
Posted

 

Index: trunk/aCis_gameserver/java/net/sf/l2j/gameserver/network/clientpackets/AuthLogin.java
===================================================================
--- trunk/aCis_gameserver/java/net/sf/l2j/gameserver/network/clientpackets/AuthLogin.java    (revision 236)
+++ trunk/aCis_gameserver/java/net/sf/l2j/gameserver/network/clientpackets/AuthLogin.java    (revision 323)
@@ -15,8 +15,7 @@
 package net.sf.l2j.gameserver.network.clientpackets;
 
-import net.sf.l2j.Config;
 import net.sf.l2j.gameserver.LoginServerThread;
 import net.sf.l2j.gameserver.LoginServerThread.SessionKey;
-import net.sf.l2j.gameserver.network.L2GameClient;
+import net.sf.l2j.gameserver.network.serverpackets.L2GameServerPacket;
 
 /**
@@ -44,14 +43,13 @@
     protected void runImpl()
     {
-        final SessionKey key = new SessionKey(_loginKey1, _loginKey2, _playKey1, _playKey2);
-        if (Config.DEBUG)
-            _log.info("User:" + _loginName + "key:" + key);
-        
-        final L2GameClient client = getClient();
-        if (client.getAccountName() == null)
+        if (getClient().getAccountName() == null)
         {
-            client.setAccountName(_loginName);
-            LoginServerThread.getInstance().addGameServerLogin(_loginName, client);
-            LoginServerThread.getInstance().addWaitingClientAndSendRequest(_loginName, client, key);
+            if (LoginServerThread.getInstance().addGameServerLogin(_loginName, getClient()))
+            {
+                getClient().setAccountName(_loginName);
+                LoginServerThread.getInstance().addWaitingClientAndSendRequest(_loginName, getClient(), new SessionKey(_loginKey1, _loginKey2, _playKey1, _playKey2));
+            }
+            else
+                getClient().close((L2GameServerPacket) null);
         }
     }
 

 

 

Index: trunk/aCis_gameserver/java/net/sf/l2j/gameserver/LoginServerThread.java
===================================================================
--- trunk/aCis_gameserver/java/net/sf/l2j/gameserver/LoginServerThread.java    (revision 274)
+++ trunk/aCis_gameserver/java/net/sf/l2j/gameserver/LoginServerThread.java    (revision 323)
@@ -419,7 +419,10 @@
     }
     
-    public void addGameServerLogin(String account, L2GameClient client)
-    {
-        _accountsInGameServer.put(account, client);
+    public boolean addGameServerLogin(String account, L2GameClient client)
+    {
+        if (_accountsInGameServer.containsKey(account))
+            return false;
+        
+        return _accountsInGameServer.put(account, client) == null;
     }
  • 0
Posted

Mhmm,I got those lines in my source.
Back to the problem-item duping.
I just know that this player is using phx,using warehouse(standing nearby) and reconnects a few times.In just looks like that he is doing the bug shown in the video,but if double login isn't working then...idk.
If anyone knows how it's done,Thanks!

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 account

Sign in

Already have an account? Sign in here.

Sign In Now


  • Posts

    • New user panel SOURCE $ 200 for source code. R$ 1000,00 BRL for source code.    
    • Hello everyone, we are one of the top gaming currency stores. We work exclusively with top projects. If you are interested in anything like Adena, Coins, Equip, write to us Discord - pchelacoin Telegram - https://t.me/ipchelacoin BOHPTS, KETRAWARS, EURO-PVP, L2REBORN, E-GLOBAL, LA2DREAM TOP PRICE !!!!!!!
    • L2Elixir – Patch 4 Is Live!   We’re working non-stop, day and night, to deliver the best possible quality and bring back what made L2Elixir special. This project is built with passion, not shortcuts — for the old-school players who remember, and the new ones who want to experience it properly. Thank you for being part of the journey. Together, we’re making L2Elixir great again ❤️ The legends never fade.    ⚙️ General Enabled Class Change service (same class type only) ALT + B → Services → Character Development Enabled Shift + Click on Treasure Chests Players can now identify real chests (Adena, scroll drops) and use Key / Unlock Event deaths now cancel only debuffs, All self buffs are preserved, fixes issues with Root and similar effects Bladedancer class can now log in even when Max Clients (2) is reached. Since an active Bladedancer is not available for every damage dealer and some players tried to abuse this via VPN or a second PC, this feature was added to keep things fair. protections applies, requires testing!    🎒 Items Crystallizing enchanted items now gives the correct increased crystal amount (retail-like behavior) Removed Agathion Seal Bracelet: Rudolph from Santa rewards (Gracia Final item) Added Dualsword Craft Stamp into Milestone Exchange list    🧙 Skills Fixed Banish Undead lethal chance Hot Springs Malaria and similar effects now level up faster while being attacked
  • 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