PDA

Просмотр полной версии : Клиент


palvy
05.03.2014, 23:47
Опрос знатокам: есть ли "облегченный" клиент для л2? Ну хз как обяснить... мне нужна прога которая подключается к серверу, а кней уже подключить l2phx так как без клиентка он не работает, а 12 окон комп не тянет( а мне надо всего лиш прием и отправка пакетов.

SeregaZ
06.03.2014, 15:08
как вариант - клиент входит, л2пх включает скрипт, клиент выходит, но л2пх продолжает держать клиента онлайн. а если там были еще скрипты запущены на всякие ассисты и прочее - то будет продолжать работать.

palvy
07.03.2014, 00:42
как вариант - клиент входит, л2пх включает скрипт, клиент выходит, но л2пх продолжает держать клиента онлайн. а если там были еще скрипты запущены на всякие ассисты и прочее - то будет продолжать работать.
ООО!!! а какой скрипт? как удержать соединение? Заранее благодарен!!!!

SeregaZ
07.03.2014, 10:07
эм... сложный вопрос :) могу лишь рассказать общую теорию построения такого скрипта :)

во первых - если ты наблюдал за пакетами, приходящими в клиент - даже если ничего не делать персонажем, просто стоять и рядом никого не будет - время от времени приходит пакет пинг и клиент ему отзывается - посылает на сервер обратно другой пакет-ответ на пинг. он может быть разный на разных серверах, поэтому точно не скажу какие там параметры и id... вот значит нам надо эмулировать отсылку ответа на этот пинг.

во вторых - когда ты выходишь из игры, клиент посылает серверу что-то типа логофф - типа разлогинился, нам нужно его перехватить и обнулить. то есть когда ты жмешь выход из игры, клиент закроется - нооооо сервер не дополучит этот пакет логофф и будет продолжать получать ответы на пинг - а значит будет думать что ты все еще в сети.

где-то дуней мне давал такой скрипт... надо поискать - ты его не запускай, иначе из-за несовпадения id спалишься, что используешь левые программы - ты посмотри общую структуру, а после добавь свои значения что есть в пинге.
const
name = 'besmudag';

procedure NetPing;
begin
buf:=#$A8;
WriteD(ReadD(2));
WriteD(5);
WriteD(6144);
SendToServerEx(name);
end;

procedure offclient;
begin
pck:='';
NoCloseServerAfterClientDisconnect;
NoCloseClientAfterServerDisconnect;
buf:=#$7E;
SendToClientEx(name);
end;

begin
if (connectname=name) and (fromclient) and (pck[1]=#$09) then offclient;
if (connectname=name) and (fromserver) and (pck[1]=#$D3) then NetPing;
end.

palvy
09.03.2014, 22:30
благодарю, нашел етот скрипт на форуме, точнее кусок, работает, но не так как хотелесь б, каждый второй запуск окна надо закрыть окно, а потом поновой открыть и сделать логаут, сервер от флопы вобще не защищен. вот для моих нужд после тестирований подошел такой вариант скрипта:procedure Init; //Вызывается при включении скрипта
begin

end;

procedure Free; //Вызывается при выключении скрипта
begin

end;

//основная часть скрипта
//вызывается при приходе каждого пакета если скрипт включен
begin


NoCloseServerAfterClientDisconnect;
NoCloseClientAfterServerDisconnect;
pck:='';
buf:=#$84;
SendToClient;


end.

Ну почти подошел, роботает не совсем оптимально, но при заходе на перса автоматом окно вылетает)))) а соединение с сервером остается. но с клиентом теряется. буду тестит, колупать дальше. щас опробую твой скрипт. ( я персов на цтф ивенты пускаю, они вылетают туда, но там их не видно))))) по окончанию цтф получают медь) но приходится потом в ручную от туда портировать в город. надо дописать скрипт чтоб хоть сое юзали по окончанию ивента.... СПС

Добавлено через 1 час 9 минут
эм... сложный вопрос :) могу лишь рассказать общую теорию построения такого скрипта :)

во первых - если ты наблюдал за пакетами, приходящими в клиент - даже если ничего не делать персонажем, просто стоять и рядом никого не будет - время от времени приходит пакет пинг и клиент ему отзывается - посылает на сервер обратно другой пакет-ответ на пинг. он может быть разный на разных серверах, поэтому точно не скажу какие там параметры и id... вот значит нам надо эмулировать отсылку ответа на этот пинг.




нет такого пакета, так как я нашел комнату, в которую посторонние пакеты не приходят, если персом нечего не делать, то пакеты от сервера не приходят даже в течении часа, никаких левых паетов. а место ето "комната илюзий" или както так. защиты от флопы нет на сервере. Правда есть шифрация некоторых пакетов, тоесть при перезаходе повторная отправка пакета серверу не понятна( ну баф через системное меню, пробафался, выловил пакеты, отправил повторно все работает, релогнулся уже не бафает. + каждый рас при бафе через сис меню клиент отправляет другие пакеты( со смещение)). Большинство пакетов проходит проверку на сервере на подлинность. Но допустим точка пухи на +18 за 5 сек реальна. выловил 2 пакета на затоку, и отправляю серверу таймером с минимальной задержкой, в итоже от 50 до 250 точек и пуха на +18( +18 макс точка, +15 безопасная, после неудачной точки вещь не распадается).

Breadfan
09.03.2014, 22:50
"... я персов на цтф ивенты пускаю, они вылетают туда, но там их не видно..." - от клиента (но т.к. он отключен то из скрипта) надо отправлять appearing, типа регнулся на цтф, засек 20 секунд (или сколько там от момента рега до улета на стадион+10-15 сек) - отправил серверу пакет.
NoCloseServerAfterClientDisconnect;
NoCloseClientAfterServerDisconnect;
pck:='';
buf:=#$84;
SendToClient; ессно дисконнектит, последние 2 строки как раз и офают клиент.

palvy
10.03.2014, 02:31
нет, я выяснил, когда офаю клиент, а соединение остается, то на стандартные пакеты клиент не отвечает( его уже нету), надо в скрипте дописать проверку на текущее место нахождение перса, и если его портует на цтф ивент то на какие координаты, и отправить скриптом ответ, что я появился на етих координатах, с етим чет сложновато, где-то ошибка....( так как цтф каждые 3 часа то проводить тест раз в 3 часа не прикольно, то тестирую на БлесСОЕ, принцип тотже) . Может есть готовый скрипт по использованию сое???

Добавлено через 2 минуты
ну на цтф уже 20 окон летит)))) медь капает, только каждый рас надо заходить в игру и делать сое в город, так как они зависют там.....

Breadfan
10.03.2014, 03:03
:hang3:

Если бы офал клиент ПОСЛЕ всех выяснений, ты б заметил, что клиент шлет серверу запрос, указаный выше, дающий знать серверу что клиент прогрузил локацию в которую портнулся, и готов получать инфу об окружении. До этого момента - сервер не только не шлет такие данные, но и не отображает твоего перса для окружающих.

SeregaZ
10.03.2014, 10:31
и точно! как я мог забыть про что-то там валидейтлокейшн :)

palvy
10.03.2014, 12:37
О действительно отправил апперинг, а ето "3А", все заработало))), тут такой вопрос:
Шаманил с скриптом и получил работоспособную модель на 50 %, так как надо открыть клиент, ввести лог и пароль, зайти на перса, включить скрипт, потом нажать кнопку выход, но окно не закрывается. ( так как я запускаю л2 постоянно через иг бота то комбинация "ctrl+Q" "убивает" клиент, как бы через диспечер задачь снять процес. Соединение рвется, повторно открываю окно захожу на акаунт, на клиент, нажимаю кнопку выход, окно опять не закрывается, нажимаю контрол+кю( если перед етим не нажимать выход то не работает). и вуаля соединение остается, все работает.
А вот и вопрос что в скрипте не так? Почему надо дважды запускать одного и тогоже перса?
Вот сам скрипт:

const
nik='Proba';


var
ctfid,k: integer;



procedure Init; //Вызывается при включении скрипта
begin

end;

procedure OnTimer01(Sender: TObject);
begin

end;

procedure Free; //Вызывается при выключении скрипта
begin
k:=0;
end;

procedure OnConnect(WithClient: Boolean); //Вызывается при установке соединения
begin

end;

procedure OnDisonnect(WithClient: Boolean); //Вызывается при потере соединения
begin

end;



procedure offclient;
begin
pck:='';
NoCloseServerAfterClientDisconnect;
NoCloseClientAfterServerDisconnect;
buf:=#$7E;
SendToClientEx(nik);
end;

begin
if (connectname=nik) and (fromclient) and (pck[1]=#$00) then offclient;




//отправляем ответ на ивент
if k=1 then
begin
buf:=hstr('C6 BF 07 00 00 01 00 00 00');
WriteD(ctfid);
SendToServerEx(nik); k:=0;
end;
// читаем айди запроса
if Fromserver and (ConnectName=nik) and (pck[1]= HStr('F3')) then

begin
ctfid:=readd(102);
k:=1;


end;



end.

Breadfan
10.03.2014, 20:10
это палата №6 какая-то....Попробую пояснить еще раз...
Между получением команды на телепорт в какую-либо точку, и проявлением в ней, клиент должен "подготовиться" (чтото выгрузить\чтото подгрузить), и лишь затем получать инфу о своем новом окружении - как то - нпс,игроки...Так вот, клиент, дабы делать все поочередно, сначала выполняет необходимые операции, и лишь затем отправляет серверу пакет appearing - сигнализируя о том, что новая локация загружена, и он готов получить данные об окружении. Пока сервер не получит этот пакет, персонаж будет "невидим" для остальных (сервер считает что персонаж вроде как все еще перемещается), и ессно - сам не будет видеть окружающих - нафига серверу слать данные, если клиент еще локацию не загрузил?
Что тут неясного-то?
Если ты запустишь "скрипт" с клиентом наподобие такого:
begin
If (fromclient and (pck[1]=#$3A)) then pck:='';
end.
то, надеюсь, поймешь к чему я клоню. Уточню - запустить скрипт, и сделать тп куда угодно.

vahes
11.03.2014, 10:42
железные нервы :D

Breadfan
12.03.2014, 13:52
тот скрипт что наваян - смахивает на суровое комбо из скриптов для ИЛ и финала. Определись с хрониками. Почему у тебя вместо $84 стоит $7E?

palvy
13.03.2014, 01:28
тот скрипт что наваян - смахивает на суровое комбо из скриптов для ИЛ и финала. Определись с хрониками. Почему у тебя вместо $84 стоит $7E?

Мужики, флопой пользуюсь 1 месяц, читал, изучал, щас создал темку ( не судите строго). в знак благодарность, могу поделится скриптом на ловлю лс в одно нажатие, или авто ловлю лс, на крит атаку или на физ атаку)

SeregaZ
13.03.2014, 10:30
ты мне одно скажи - что за флопа? старый трехдюймовый дисковод, но женского рода? форум посвящен программе с несколько другим названием... а второй момент: всякие читорские методы мы не обсуждаем :) тут исключительно программерский подход, о том как что-то автоматизировать, то есть что-бы программа что-то делала за тебя - а читы, это так сказать, случайное недразумение...

palvy
13.03.2014, 21:13
}{опрошо, L2PacketHack v%s by CoderX.ru Team. причем тут читы? ловля лс в два нажатия? скарипт автоматизирует посылку айцди пухи, айди лс, айди гем стоунов, количество гейм стовнов при нажатии соц действия "приветствие", ето не чит, а автоматизация процеса вставки лс....

Добавлено через 4 минуты
ну в моих кругах, все говорят флопа, хлапекс, но юзают л2пхикс( согласить флопа в разворном звучит ярче, в принцепе не пользовался ниразу, но насколько понимаю принцип роботы у них один и тут же, только авторы разные)

Добавлено через 1 минуту
пользуюсь 1 месяц, читал, изучал, щас создал темку ( не судите строго) в принцепе мож но было и простить, а не катить бочку....

SeregaZ
13.03.2014, 22:29
а... так то про камни речь шла что атака и крит? а я думал читеришь :) извиняюсь тада... называй программу "пэха" с ударением на последний слог. л2пх (элдвапэха) уже как-то не актуально, ведь помимо ладвы уже давно айон тоже фурычит :)

palvy
14.03.2014, 23:55
Ребята, все равно приходится перезаходить чтоб сработал скрипт, от как часы:
1) логин + пароль.
2) перс1
3)система+выход

4)логин+пароль
5)перс1
6)системы+выход и срипт сработал, соединение осталось.


( в после третего клиент отправляет на сервер пакет инвентарлит, а после 6 сервер клиенту пакет leaveworld).

хелп плиз!

чтоб завести 20 окон надо ввести 40 раз логи + пароль((((((
const
nik='май';


var
ctfid,k: integer;



procedure Init; //Вызывается при включении скрипта
begin

end;

procedure OnTimer01(Sender: TObject);
begin

end;

procedure Free; //Вызывается при выключении скрипта
begin
k:=0;
end;

procedure OnConnect(WithClient: Boolean); //Вызывается при установке соединения
begin

end;

procedure OnDisonnect(WithClient: Boolean); //Вызывается при потере соединения
begin

end;

procedure NetPing;
begin
buf:=#$A8;
WriteD(ReadD(2));
WriteD(5);
WriteD(6144);
SendToServerEx(nik);
end;

procedure offclient;
begin
pck:='';
NoCloseServerAfterClientDisconnect;
NoCloseClientAfterServerDisconnect;
buf:=#$84;
SendToClientEx(nik);
end;

begin
if (connectname=nik) and (fromclient) and (pck[1]=#$00) then offclient;
if (connectname=nik) and (fromserver) and (pck[1]=#$D3) then NetPing;



//Cancel Augment
if k=1 then
begin
buf:=hstr('C6 BF 07 00 00 01 00 00 00');
WriteD(ctfid);
SendToServerEx(nik); k:=0;
end;
if Fromserver and (ConnectName=nik) and (pck[1]= HStr('F3')) then //56 0D 00 00 00 00 00 00 00 00 (Social No)

begin
ctfid:=readd(102);
k:=1;


end;



end.

Добавлено через 4 минуты
а вот и крипт на ловлю лс по нажатию 2 соц действий.
расшифровка:
1)подходиш к гному
2) включаеш скрипт
3)вручную как обычно вставляеш лс в пуху( если лс уже стоит, то предварительно надо снять, потом включить скрипт)
4) вручную снимаеш лс
5) соц действие "приветствие" вставка лс
6) сой действие "победа" вынимает лс.


const
nik='Lspyxa';

var
WeaponID, LsID, GemID, GemCount, zero: integer;

procedure Init; //Вызывается при включении скрипта
begin

end;

procedure OnTimer01(Sender: TObject);
begin

end;

procedure Free; //Вызывается при выключении скрипта
begin

end;

procedure OnConnect(WithClient: Boolean); //Вызывается при установке соединения
begin

end;

procedure OnDisonnect(WithClient: Boolean); //Вызывается при потере соединения
begin

end;

//основная часть скрипта
//вызывается при приходе каждого пакета если скрипт включен
begin
if FromClient and (pck[1]=#$D0) then
begin
WeaponID:=ReadD(4);
LsID:=ReadD(8);
GemID:=ReadD(12);
GemCount:=ReadD(16);
zero:=ReadD(20);
end;

//Cancel Augment

if FromClient and (pck = HStr('56 0D 00 00 00 00 00 00 00 00 ')) then //56 0D 00 00 00 00 00 00 00 00 (Social No)

begin
buf:=hstr('FE 52 00 ');//окно удаления арГ
SendToClient;
delay(300);
pck:='';
buf:=hstr('23 30 00 30 00 00 00 ');
SendToServer;
Buf:=#$D0#$42#$00;
WriteD(WeaponID);
SendToServer;
Buf:=#$D0#$43#$00;
WriteD(WeaponID);
SendToServer;

end;

//Augment
if FromClient and (pck = HStr('56 0C 00 00 00 00 00 00 00 00 ')) then //56 0C 00 00 00 00 00 00 00 00 (Social Yes)
begin
buf:=hstr('FE 51 00 ');//окно Арг
SendToClient;
delay(300);
pck:='';
buf:=hstr('23 30 00 30 00 00 00 ');
SendToServer;
Buf:=#$D0#$26#$00;
WriteD(WeaponID);
SendToServer;
delay(50);
Buf:=#$D0#$27#$00;
WriteD(WeaponID);
WriteD(LsID);
SendToServer;
delay(50);
Buf:=#$D0#$28#$00;
WriteD(WeaponID);
WriteD(LsID);
WriteD(GemID);
WriteD(GemCount);
WriteD(zero);
SendToServer;
delay(50);
Buf:=#$D0#$41#$00;
WriteD(WeaponID);
WriteD(LsID);
WriteD(GemID);
WriteD(GemCount);
WriteD(zero);
SendToServer;
end;
end.

Breadfan
18.03.2014, 20:05
Вобщем. Вот отключение почти в "голом" виде:
const
nameCon='АяПростоБулка';
var
tempnick,tempstr:string;
tempint:integer;
procedure Init; //Вызывается при включении скрипта
begin
sendmsg('begin');
end;
procedure Free; //Вызывается при выключении скрипта
begin
end;

begin
if ConnectName<>nameCon then exit;
if fromserver then begin
if pck[1]=#$4a then begin
tempint:=10;
tempnick:=ReadS(tempint);tempint:=tempint+4;
tempstr:=ReadS(tempint);sendMSG(tempnick+' сообщает: '+tempstr);
end;

exit;//заглушка, мне не требовалось
end else begin
if pck[1]=#$00 then begin
pck:='';
NoCloseServerAfterClientDisconnect;
NoCloseClientAfterServerDisconnect;
sendMsg('Клиент - отключен, соединение сохранено');
buf:=#$84;SendToClientEx(nameCon);exit;
end;
end;
end.

Вот такой лог получил в итоге (в чат пишет СладкаяПупсенька, а на скрипте - АяПростоБулка):
18.03.2014 19:02:51 Имя соединения для тунеля ($257055264): АяПростоБулка
18.03.2014 19:02:57 Script: АяПростоБулка сообщает: Вас приветствует сервер Arena-World
18.03.2014 19:02:57 Script: АяПростоБулка сообщает: Сайт сервера: http://www.Arena-World.com
18.03.2014 19:02:57 Script: АяПростоБулка сообщает: Добро пожаловать на сервер от команды High Five x5000
18.03.2014 19:02:57 Script: АяПростоБулка сообщает: Связь с администрацией осуществляется только через форум!
18.03.2014 19:02:57 Script: АяПростоБулка сообщает: О всех найденых недоработках просьба сообщать на форум.
18.03.2014 19:02:57 Script: АяПростоБулка сообщает: PvP Zona > use command .pvp
18.03.2014 19:02:57 Script: АяПростоБулка сообщает: Farm Zona > use command .farm_hard>.farm_low
18.03.2014 19:02:57 Script: АяПростоБулка сообщает: Желаем приятной игры!
18.03.2014 19:03:09 Script: Клиент - отключен, соединение сохранено
18.03.2014 19:03:09 Тунель ($257055264) Отвалились от клиента
18.03.2014 19:03:19 Script: СладкаяПупсенька сообщает: 12345
18.03.2014 19:03:22 Script: СладкаяПупсенька сообщает: 54321
18.03.2014 19:03:43 Script: СладкаяПупсенька сообщает: ---------------

Где ты у себя напорол - что "по два раза заводить перса приходится" - без понятия.
ЗЫ спасибо администрации сервера за возможность демонстрации и т.д....

palvy
18.03.2014, 22:38
1) завел траблику, переписал в скрипте имя, сохранил скрипт, запустил, при нажатии выход----- сработало.
2) запустил иголенку, добавил новый скрипт, переписал имя подключения, сохранил, поставил галочку на исполнение, при нажатии выход, в скрипт пишет что все успешно, но насамом деле клиент не закрылся, повторно нажимаю выход---- не выходит( закрыл через диспечер задач соединение не осталось в ПХ)
3) запускаю повторно иголенку, скрипт уже включен( я его не выключал) при нажатии выход, клиент закрывается, скрипт пишет что все ок, соединение остается!!!
Вопрос, почему во втором случае не закрывался клиент??? ато скрипт сработал, зафиксировал соединение, но сам клиент не пустил на выход(((
ПОМОГИТЕ пожалуйста)

лог
17.03.2014 21:17:49 ServerListen: Обнаружено новое соединение.
17.03.2014 21:17:49 Тунель ($189028432) создан
17.03.2014 21:17:49 Тунель ($189028432) запущен для чтения с сокета № 664
17.03.2014 21:17:49 Тунель ($189028432), Серверный сокет № 664 / Клиентский сокет № 516, Соединение установлено с 212.113.38.53:7777
17.03.2014 21:17:52 Имя соединения для тунеля ($189028432): Trablika
17.03.2014 21:19:50 Script: begin
17.03.2014 21:20:33 Script: Trablika сообщает: f
17.03.2014 21:20:38 Script: Клиент - отключен, соединение сохранено
17.03.2014 21:20:38 Тунель ($189028432) Отвалились от клиента
17.03.2014 21:22:50 (LSP) Обнаружено соединение (Сокет 2136) IP/port 212.113.38.53:2106. Соединение будет проигнорировано
17.03.2014 21:23:01 (LSP) Обнаружено соединение (Сокет 2136) IP/port 212.113.38.53:7777. Соединение будет перехвачено
17.03.2014 21:23:01 ServerListen: Обнаружено новое соединение.
17.03.2014 21:23:01 Тунель ($224788576) создан
17.03.2014 21:23:01 Тунель ($224788576) запущен для чтения с сокета № 664
17.03.2014 21:23:01 Тунель ($224788576), Серверный сокет № 664 / Клиентский сокет № 648, Соединение установлено с 212.113.38.53:7777
17.03.2014 21:23:04 Имя соединения для тунеля ($224788576): Igolenka
17.03.2014 21:23:06 Script: Igolenka сообщает: Rulineage x1200 PvP High Five
17.03.2014 21:23:06 Script: Igolenka сообщает: Все доступные функции в Alt+B
17.03.2014 21:23:06 Script: Igolenka сообщает: Тех.поддержка support.rulineage.com
17.03.2014 21:23:06 Script: сообщает: Начался ивент, посвященный 8 марта. Поздравляем женское население сервера с праздником!
17.03.2014 21:28:12 Script: Igolenka сообщает: g
17.03.2014 21:28:12 Script: Igolenka сообщает: g
17.03.2014 21:28:26 Script: Клиент - отключен, соединение сохранено
17.03.2014 21:28:40 Script: Клиент - отключен, соединение сохранено
17.03.2014 21:29:19 Script: begin
17.03.2014 21:29:26 Script: Клиент - отключен, соединение сохранено
17.03.2014 21:29:35 Script: Клиент - отключен, соединение сохранено
17.03.2014 21:29:42 Тунель ($224788576) Отвалились от клиента
17.03.2014 21:29:42 Тунель ($224788576) Отвалились от сервера
17.03.2014 21:29:42 Тунель ($224788576) уничтожен
17.03.2014 21:29:42 Сохраняем лог пакетов...
17.03.2014 21:30:26 (LSP) Обнаружено соединение (Сокет 2140) IP/port 212.113.38.53:2106. Соединение будет проигнорировано
17.03.2014 21:30:36 (LSP) Обнаружено соединение (Сокет 2140) IP/port 212.113.38.53:7777. Соединение будет перехвачено
17.03.2014 21:30:36 ServerListen: Обнаружено новое соединение.
17.03.2014 21:30:36 Тунель ($224788576) создан
17.03.2014 21:30:36 Тунель ($224788576) запущен для чтения с сокета № 652
17.03.2014 21:30:37 Тунель ($224788576), Серверный сокет № 652 / Клиентский сокет № 664, Соединение установлено с 212.113.38.53:7777
17.03.2014 21:30:40 Имя соединения для тунеля ($224788576): Igolenka
17.03.2014 21:30:42 Script: Igolenka сообщает: Rulineage x1200 PvP High Five
17.03.2014 21:30:42 Script: Igolenka сообщает: Все доступные функции в Alt+B
17.03.2014 21:30:42 Script: Igolenka сообщает: Тех.поддержка support.rulineage.com
17.03.2014 21:30:42 Script: сообщает: Начался ивент, посвященный 8 марта. Поздравляем женское население сервера с праздником!
17.03.2014 21:30:47 Script: Клиент - отключен, соединение сохранено
17.03.2014 21:30:47 Тунель ($224788576) Отвалились от клиента

Breadfan
19.03.2014, 01:37
Ну значит кто-то когда-то сломал процедуру. Заводи всех сразу - затем офай.

dyh9l
19.03.2014, 10:15
О действительно отправил апперинг, а ето "3А", все заработало))), тут такой вопрос:
Шаманил с скриптом и получил работоспособную модель на 50 %, так как надо открыть клиент, ввести лог и пароль, зайти на перса, включить скрипт, потом нажать кнопку выход, но окно не закрывается. ( так как я запускаю л2 постоянно через иг бота то комбинация "ctrl+Q" "убивает" клиент, как бы через диспечер задачь снять процес. Соединение рвется, повторно открываю окно захожу на акаунт, на клиент, нажимаю кнопку выход, окно опять не закрывается, нажимаю контрол+кю( если перед етим не нажимать выход то не работает). и вуаля соединение остается, все работает.
А вот и вопрос что в скрипте не так? Почему надо дважды запускать одного и тогоже перса?
Вот сам скрипт:

const
nik='Proba';


var
ctfid,k: integer;



procedure Init; //Вызывается при включении скрипта
begin

end;

procedure OnTimer01(Sender: TObject);
begin

end;

procedure Free; //Вызывается при выключении скрипта
begin
k:=0;
end;

procedure OnConnect(WithClient: Boolean); //Вызывается при установке соединения
begin

end;

procedure OnDisonnect(WithClient: Boolean); //Вызывается при потере соединения
begin

end;



procedure offclient;
begin
pck:='';
NoCloseServerAfterClientDisconnect;
NoCloseClientAfterServerDisconnect;
buf:=#$7E;
SendToClientEx(nik);
end;

begin
if (connectname=nik) and (fromclient) and (pck[1]=#$00) then offclient;




//отправляем ответ на ивент
if k=1 then
begin
buf:=hstr('C6 BF 07 00 00 01 00 00 00');
WriteD(ctfid);
SendToServerEx(nik); k:=0;
end;
// читаем айди запроса
if Fromserver and (ConnectName=nik) and (pck[1]= HStr('F3')) then

begin
ctfid:=readd(102);
k:=1;


end;



end.

Т.к. я постоянно любил на оффлайне оставлять по 20 окон, я столкнулся с аналогичной проблемой, я думаю это причина конкретно в самих либо методах либо ПХ, потому, что единственное решение, как это помогало исправить, я просто брал скрипт и редактировал в нем любую строчку (хоть просто комментарий добавлял) и сохранял снова, и только после этого снова запускал окно л2 и кнопка "выход" уже реагировала нормально.

palvy
20.03.2014, 01:26
Ну значит кто-то когда-то сломал процедуру. Заводи всех сразу - затем офай.
Комп не тянет больше 6 окон, а на оли надо 12, так как я летаю без "гостей"

Добавлено через 6 минут
Т.к. я постоянно любил на оффлайне оставлять по 20 окон, я столкнулся с аналогичной проблемой, я думаю это причина конкретно в самих либо методах либо ПХ, потому, что единственное решение, как это помогало исправить, я просто брал скрипт и редактировал в нем любую строчку (хоть просто комментарий добавлял) и сохранял снова, и только после этого снова запускал окно л2 и кнопка "выход" уже реагировала нормально.
__________________


ок, буду пробовать, дошол до вывода что ето действительно пх глючит, так как запускал оли, класовые бои--11 офф окон и 1 окно основа онлайн. сделал скрипт на регистрацию на оли всех 12 окон 1 скриптом.
запустил, полетел победил, вернул их обратно, и опять при включении скрипта должно отправлять форму на регистрацию, но однако реистрирует ужн не 12 окон а только 7, при перенагрузке ПХ она начинает порядочно глючить, может есть болле стабильная версия работающая на хай фай( использую v3.5.43.176)?