PDA

Просмотр полной версии : проблема с оставлением чара в игре


supernewbie
06.07.2010, 18:10
И так сразу суть.
При использовании команды NoCloseServerAfterClientDisconnect;
Выключаю клиент, соединение остается, пакет от серва идут, персонаж в игре. Проблема заключается в том, что при использовании в скрипте команды
SendToServerEx('Имя соединения, которое было оставленно');
ничего не происходит, он не отправляет пакеты на это содинение.
PS пакет, отправленные командой SendToServer; отсылаются.
PSS примеры
Работает:
begin
if FromServer and (ConnectName=PP) and (pck[1]=#$4A) and (ReadS(10 + (length(Name) * 2 + 2)))='вв') then
begin
buf:=#$39;
WriteD(ww);
WriteD(1);
WriteC(0);
SendToServer;
end;
end;

Не работает:
begin
if FromClient and (ConnectName=Name) and (pck[1]=#$49) and (ReadS(2)='вв') then
begin
buf:=#$39;
WriteD(ww);
WriteD(1);
WriteC(0);
SendToServerEx(PP);
end;
end;

Как-нибудь можно решить эту проблему?

J-Fobos
06.07.2010, 20:39
В теории надо после закрытия соединения с клиентом (DisconnectClient) надо использовать функцию SetName(Name:string) которая задаст имя соединения и тогда уже можно будет использовать SendToServerEx.

supernewbie
07.07.2010, 04:40
:(
Во-первых (DisconnectClient) не работает, работает только (Disconnect).
Во-вторых SetName сделал при приходе от сервера сообщения в пм. Ничего не изменилось. Помогите елки-палки!

Добавлено через 34 минуты
Помогла только команда UseForConnectName, но она получается весь скрипт переделывает под одно соединение... Не фонтан, но лучше чем ничего.

Добавлено через 57 минут
Оказывается все даже еще хлеще... работает ТОЛЬКО команда UseForConnectID (именно ид, с неймом он вообще не работает).
Нужна команда, что-то вроде SendToServerExID :D
PS SetName тоже почему-то не работает...

Добавлено через 1 минуту
ну или на худой конец, хотя бы команда, которая убирает привязку к UseForConnectID... что-то вроде StopUseForConnectID :)

Fer123
07.07.2010, 10:21
попробуй SendToServerEx(ConnectNameByID(ID));

supernewbie
07.07.2010, 12:45
попробуй SendToServerEx(ConnectNameByID(ID));
не работает (

Добавлено через 31 секунду
с неймом он вообще не работает( только ид

Добавлено через 41 секунду
алекстим, квак помогайте)
а, блин квак уехал)

Breadfan
07.07.2010, 14:01
У меня в бафере такой способ включен:

http://coderx.ru/showpost.php?p=41274&postcount=8 и бот спокойно продолжает бегать после отключения клиента.

supernewbie
07.07.2010, 15:01
госпади! оказывается надо юзать две команды)
NoCloseServerAfterClientDisconnect;
NoCloseClientAfterServerDisconnect;
Интересно нах вторая нужна) но все робит, всем спс, все круты)
Особенно алекс тим)

Breadfan
07.07.2010, 18:13
Ну Алекс писал что "...а вот сокетный енжин их игнорировал если стояли не обе. поправил в сокетном енджине это место. к стати, билд перезалил...." - видать не до конца поправил, или не дозалил....или мало ли чего там еще....а может так и задумано, чтоб можно было оставлять\отключать отдельные направления - хз