Рейтинг темы:
  • 0 Голос(ов) - 0 в среднем
  • 1
  • 2
  • 3
  • 4
  • 5
Дюп - двойная сессия
#31
L2CCCP, В сборке игроки удерживаются в L2World, в Map<String, L2PcInstance>. В EnterWorld проверяется так:
Код:
L2PcInstance player = L2World.getInstance().getPlayer(activeChar.getName());
if (player != null)
{
    _log.warn("EnterWorld failed! duplicate caracter: " + player.getName());
    getClient().closeNow();
    return;
}
Ответ
#32
L2CCCP Написал:[SRC="java"]
int MyObjectId = activeChar.getObjectId();

synchronized (_lock) //Object
{
for(Player player : GameObjectsStorage.getAllPlayersForIterate())
{
try
{
if(player.getObjectId() == MyObjectId)
{
_log.warn("Double EnterWorld for char: " + activeChar.getName());
player.kick();
}
}
catch(Exception e)
{
_log.error("Double EnterWorld", e);
}
}
}
[/SRC]
В клиентский пакет EnterWorld.
Пробегаемся по хранилищу объектов с поиском идентичных id объекта игрока в момент входа в игру персонажем.

Воу-воу. Полегче. На большом онлайне очередь пакетов обосрется после такого МЕГОФИКСА.

bot2b Написал:В сборке игроки удерживаются в L2World, в Map<String, L2PcInstance>.

Вы серьезно ?! А как же стринговые коллизии ?! Я уже и забыл какие ит сервера говно. Я надеюсь в люсе2 Рут выпилил такую хрень, а то пиздец же.
Ответ
#33
GabberBaby Написал:Воу-воу. Полегче. На большом онлайне очередь пакетов обосрется после такого МЕГОФИКСА.
Понял бы шутку\юмор если бы в линягу играло 15 000 игроков и релогинились бы каждую секунду, но так увы пока в нее играет столько сколько в нее играет не вижу в этом ничего МЕГО нагрузочного.

Имхо лучше так чем дубли с дюпами в подарок.
Ответ
#34
L2CCCP Написал:Понял бы шутку\юмор если бы в линягу играло 15 000 игроков и релогинились бы каждую секунду, но так увы пока в нее играет столько сколько в нее играет не вижу в этом ничего МЕГО нагрузочного.

Имхо лучше так чем дубли с дюпами в подарок.

Это не спасет, там косяк в другом))

PS: По хорошему надо полностью перепиливать логин сервер, так как тот который сейчас есть у l2j это кусок говна, его писали аля (и так сойдет).
Ответ
#35
L2CCCP Написал:Понял бы шутку\юмор если бы в линягу играло 15 000 игроков и релогинились бы каждую секунду, но так увы пока в нее играет столько сколько в нее играет не вижу в этом ничего МЕГО нагрузочного.

Имхо лучше так чем дубли с дюпами в подарок.

Одновременно согласен и нет. Всюду применять консервативные методы (лишь бы работало\работает ну и пусть) не камильфо.
Если уж фиксить, то выяснить и устранить без сомнительных конструкций, о которых, подчеркну, впоследствии многие забывают и это наслаивается как кал.

Видите-ли, много кто так думает и делает. Синхронизация по глобалке, ну, вроде не 15к, от чего же хуже будет?
А потом? Потом, как на моей практике - лаги и последующее профилирование сервера дают мозговыносящие результаты и долгие часы поиска вот таких вот приколов.

Принципиально избегаю такого рода фиксы и Вам советую Smile
p.s Да, крик души.
Ответ
#36
GabberBaby Написал:Воу-воу. Полегче. На большом онлайне очередь пакетов обосрется после такого МЕГОФИКСА.



Вы серьезно ?! А как же стринговые коллизии ?! Я уже и забыл какие ит сервера говно. Я надеюсь в люсе2 Рут выпилил такую хрень, а то пиздец же.
[Изображение: 4b92cf7c63cb357aba2eec934e7c821c.png]
Конечно выпилил, еще в начале).

kingzor Написал:Это не спасет, там косяк в другом))

PS: По хорошему надо полностью перепиливать логин сервер, так как тот который сейчас есть у l2j это кусок говна, его писали аля (и так сойдет).

Вот и я об этом же. Хотя сам логин я не сильно трогал.

Добавлено через 2 минуты
L2CCCP Написал:Понял бы шутку\юмор если бы в линягу играло 15 000 игроков и релогинились бы каждую секунду, но так увы пока в нее играет столько сколько в нее играет не вижу в этом ничего МЕГО нагрузочного.

Имхо лучше так чем дубли с дюпами в подарок.

Совершенно не согласен, это плохой тон. Нужно решать проблему в корне. В вашем случае это костыль, причем грубый.
Ответ
#37
Ребят, а че вы просто не возьмете логин сервер с овера ? Там же вроде пофикшены все эти двойные логины.

L2CCCP Написал:Понял бы шутку\юмор если бы в линягу играло 15 000 игроков и релогинились бы каждую секунду, но так увы пока в нее играет столько сколько в нее играет не вижу в этом ничего МЕГО нагрузочного.

Имхо лучше так чем дубли с дюпами в подарок.

А еще лучше сделать нормальный фикс, а не говнокодить. Разрабам л2 серверов ли этого не знать. Хотя некоторым конечно лучше запилить костылей и быстрей побежать пилить всякие сервисы клиентам. Ну а че, они же не кодыры, они не знают разницу между нормальным кодом и говном.

Ro_0TT Написал:[Изображение: 4b92cf7c63cb357aba2eec934e7c821c.png]
Конечно выпилил, еще в начале).
Красава. Smile
Ответ
#38
Что ж остается делать.. Как не переписывать) Спасибо за ответы, попытки помощи!
Всё равно, исходников логина нет. Какраз и повод, всё сделать как у людей)
Ответ
#39
heaven Написал:Что ж остается делать.. Как не переписывать) Спасибо за ответы, попытки помощи!
Всё равно, исходников логина нет. Какраз и повод, всё сделать как у людей)

Есть еще вариант))
Узнать как работает баг и запилить костыль))
Ответ
#40
я конечно 0 в сборках, в серверах, но нет ли выхода сделать возможность релога с задержкой 20-30 сек?
Ответ


Перейти к форуму:


Пользователи, просматривающие эту тему: 7 Гость(ей)