Обновление aCis Rev.323:
Было: net.sf.l2j.gameserver.LoginServerThread.java
[SRC="java"] public void addGameServerLogin(String account, L2GameClient client)
{
_accountsInGameServer.put(account, client);
}[/SRC]
Было: net.sf.l2j.gameserver.network.clientpackets.AuthLogin.java
[SRC="java"] @Override
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)
{
client.setAccountName(_loginName);
LoginServerThread.getInstance().addGameServerLogin(_loginName, client);
LoginServerThread.getInstance().addWaitingClientAndSendRequest(_loginName, client, key);
}
}[/SRC]
Стало: net.sf.l2j.gameserver.LoginServerThread.java
[SRC="java"] public boolean addGameServerLogin(String account, L2GameClient client)
{
if (_accountsInGameServer.containsKey(account))
return false;
return _accountsInGameServer.put(account, client) == null;
}[/SRC]
Стало: net.sf.l2j.gameserver.network.clientpackets.AuthLogin.java
[SRC="java"] @Override
protected void runImpl()
{
if (getClient().getAccountName() == null)
{
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);
}
}[/SRC]
Этого разве недостаточно для фикса двойной сессии? :confused:
Вот
оригинал патча [L2J 6477]. Спасибо за репорт постояльцу ЗГ.
Родился, живу и когда-нибудь умру.