Сообщений: 31
Тем: 2
Зарегистрирован: Apr 2013
Репутация:
210
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;
}
Сообщений: 437
Тем: 7
Зарегистрирован: May 2011
Репутация:
2,580
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 Рут выпилил такую хрень, а то пиздец же.
Сообщений: 1,053
Тем: 33
Зарегистрирован: Sep 2011
Репутация:
12,172
GabberBaby Написал:Воу-воу. Полегче. На большом онлайне очередь пакетов обосрется после такого МЕГОФИКСА. Понял бы шутку\юмор если бы в линягу играло 15 000 игроков и релогинились бы каждую секунду, но так увы пока в нее играет столько сколько в нее играет не вижу в этом ничего МЕГО нагрузочного.
Имхо лучше так чем дубли с дюпами в подарок.
Сообщений: 631
Тем: 12
Зарегистрирован: May 2009
Репутация:
3,873
L2CCCP Написал:Понял бы шутку\юмор если бы в линягу играло 15 000 игроков и релогинились бы каждую секунду, но так увы пока в нее играет столько сколько в нее играет не вижу в этом ничего МЕГО нагрузочного.
Имхо лучше так чем дубли с дюпами в подарок.
Это не спасет, там косяк в другом))
PS: По хорошему надо полностью перепиливать логин сервер, так как тот который сейчас есть у l2j это кусок говна, его писали аля (и так сойдет).
Сообщений: 226
Тем: 43
Зарегистрирован: Dec 2011
Репутация:
1,008
L2CCCP Написал:Понял бы шутку\юмор если бы в линягу играло 15 000 игроков и релогинились бы каждую секунду, но так увы пока в нее играет столько сколько в нее играет не вижу в этом ничего МЕГО нагрузочного.
Имхо лучше так чем дубли с дюпами в подарок.
Одновременно согласен и нет. Всюду применять консервативные методы (лишь бы работало\работает ну и пусть) не камильфо.
Если уж фиксить, то выяснить и устранить без сомнительных конструкций, о которых, подчеркну, впоследствии многие забывают и это наслаивается как кал.
Видите-ли, много кто так думает и делает. Синхронизация по глобалке, ну, вроде не 15к, от чего же хуже будет?
А потом? Потом, как на моей практике - лаги и последующее профилирование сервера дают мозговыносящие результаты и долгие часы поиска вот таких вот приколов.
Принципиально избегаю такого рода фиксы и Вам советую
p.s Да, крик души.
Сообщений: 3,968
Тем: 90
Зарегистрирован: Nov 2010
Репутация:
15,337
04-02-2014, 12:24 AM
(Сообщение последний раз редактировалось: 04-02-2014, 12:28 AM Ro_0TT.)
GabberBaby Написал:Воу-воу. Полегче. На большом онлайне очередь пакетов обосрется после такого МЕГОФИКСА.
Вы серьезно ?! А как же стринговые коллизии ?! Я уже и забыл какие ит сервера говно. Я надеюсь в люсе2 Рут выпилил такую хрень, а то пиздец же.
Конечно выпилил, еще в начале).
kingzor Написал:Это не спасет, там косяк в другом))
PS: По хорошему надо полностью перепиливать логин сервер, так как тот который сейчас есть у l2j это кусок говна, его писали аля (и так сойдет).
Вот и я об этом же. Хотя сам логин я не сильно трогал.
Добавлено через 2 минуты
L2CCCP Написал:Понял бы шутку\юмор если бы в линягу играло 15 000 игроков и релогинились бы каждую секунду, но так увы пока в нее играет столько сколько в нее играет не вижу в этом ничего МЕГО нагрузочного.
Имхо лучше так чем дубли с дюпами в подарок.
Совершенно не согласен, это плохой тон. Нужно решать проблему в корне. В вашем случае это костыль, причем грубый.
Сообщений: 437
Тем: 7
Зарегистрирован: May 2011
Репутация:
2,580
Ребят, а че вы просто не возьмете логин сервер с овера ? Там же вроде пофикшены все эти двойные логины.
L2CCCP Написал:Понял бы шутку\юмор если бы в линягу играло 15 000 игроков и релогинились бы каждую секунду, но так увы пока в нее играет столько сколько в нее играет не вижу в этом ничего МЕГО нагрузочного.
Имхо лучше так чем дубли с дюпами в подарок.
А еще лучше сделать нормальный фикс, а не говнокодить. Разрабам л2 серверов ли этого не знать. Хотя некоторым конечно лучше запилить костылей и быстрей побежать пилить всякие сервисы клиентам. Ну а че, они же не кодыры, они не знают разницу между нормальным кодом и говном.
Ro_0TT Написал:
Конечно выпилил, еще в начале). Красава.
Сообщений: 113
Тем: 11
Зарегистрирован: Feb 2013
Репутация:
29
Что ж остается делать.. Как не переписывать) Спасибо за ответы, попытки помощи!
Всё равно, исходников логина нет. Какраз и повод, всё сделать как у людей)
Сообщений: 631
Тем: 12
Зарегистрирован: May 2009
Репутация:
3,873
heaven Написал:Что ж остается делать.. Как не переписывать) Спасибо за ответы, попытки помощи!
Всё равно, исходников логина нет. Какраз и повод, всё сделать как у людей)
Есть еще вариант))
Узнать как работает баг и запилить костыль))
Сообщений: 882
Тем: 56
Зарегистрирован: Mar 2012
Репутация:
347
я конечно 0 в сборках, в серверах, но нет ли выхода сделать возможность релога с задержкой 20-30 сек?
|