Опрос знатокам: есть ли "облегченный" клиент для л2? Ну хз как обяснить... мне нужна прога которая подключается к серверу, а кней уже подключить l2phx так как без клиентка он не работает, а 12 окон комп не тянет( а мне надо всего лиш прием и отправка пакетов.
как вариант - клиент входит, л2пх включает скрипт, клиент выходит, но л2пх продолжает держать клиента онлайн. а если там были еще скрипты запущены на всякие ассисты и прочее - то будет продолжать работать.
как вариант - клиент входит, л2пх включает скрипт, клиент выходит, но л2пх продолжает держать клиента онлайн. а если там были еще скрипты запущены на всякие ассисты и прочее - то будет продолжать работать.
ООО!!! а какой скрипт? как удержать соединение? Заранее благодарен!!!!
__________________
Фирма веников не вьяжет,
Фирма делает гробы...
эм... сложный вопрос могу лишь рассказать общую теорию построения такого скрипта
во первых - если ты наблюдал за пакетами, приходящими в клиент - даже если ничего не делать персонажем, просто стоять и рядом никого не будет - время от времени приходит пакет пинг и клиент ему отзывается - посылает на сервер обратно другой пакет-ответ на пинг. он может быть разный на разных серверах, поэтому точно не скажу какие там параметры и 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.
благодарю, нашел етот скрипт на форуме, точнее кусок, работает, но не так как хотелесь б, каждый второй запуск окна надо закрыть окно, а потом поновой открыть и сделать логаут, сервер от флопы вобще не защищен. вот для моих нужд после тестирований подошел такой вариант скрипта:
Код:
procedure Init; //Вызывается при включении скрипта
begin
end;
procedure Free; //Вызывается при выключении скрипта
begin
end;
//основная часть скрипта
//вызывается при приходе каждого пакета если скрипт включен
begin
NoCloseServerAfterClientDisconnect;
NoCloseClientAfterServerDisconnect;
pck:='';
buf:=#$84;
SendToClient;
end.
Ну почти подошел, роботает не совсем оптимально, но при заходе на перса автоматом окно вылетает)))) а соединение с сервером остается. но с клиентом теряется. буду тестит, колупать дальше. щас опробую твой скрипт. ( я персов на цтф ивенты пускаю, они вылетают туда, но там их не видно))))) по окончанию цтф получают медь) но приходится потом в ручную от туда портировать в город. надо дописать скрипт чтоб хоть сое юзали по окончанию ивента.... СПС
Добавлено через 1 час 9 минут
Цитата:
Сообщение от SeregaZ
эм... сложный вопрос могу лишь рассказать общую теорию построения такого скрипта
во первых - если ты наблюдал за пакетами, приходящими в клиент - даже если ничего не делать персонажем, просто стоять и рядом никого не будет - время от времени приходит пакет пинг и клиент ему отзывается - посылает на сервер обратно другой пакет-ответ на пинг. он может быть разный на разных серверах, поэтому точно не скажу какие там параметры и id... вот значит нам надо эмулировать отсылку ответа на этот пинг.
нет такого пакета, так как я нашел комнату, в которую посторонние пакеты не приходят, если персом нечего не делать, то пакеты от сервера не приходят даже в течении часа, никаких левых паетов. а место ето "комната илюзий" или както так. защиты от флопы нет на сервере. Правда есть шифрация некоторых пакетов, тоесть при перезаходе повторная отправка пакета серверу не понятна( ну баф через системное меню, пробафался, выловил пакеты, отправил повторно все работает, релогнулся уже не бафает. + каждый рас при бафе через сис меню клиент отправляет другие пакеты( со смещение)). Большинство пакетов проходит проверку на сервере на подлинность. Но допустим точка пухи на +18 за 5 сек реальна. выловил 2 пакета на затоку, и отправляю серверу таймером с минимальной задержкой, в итоже от 50 до 250 точек и пуха на +18( +18 макс точка, +15 безопасная, после неудачной точки вещь не распадается).
__________________
Фирма веников не вьяжет,
Фирма делает гробы...
Последний раз редактировалось palvy, 09.03.2014 в 22:30.
Причина: Добавлено сообщение
"... я персов на цтф ивенты пускаю, они вылетают туда, но там их не видно..." - от клиента (но т.к. он отключен то из скрипта) надо отправлять appearing, типа регнулся на цтф, засек 20 секунд (или сколько там от момента рега до улета на стадион+10-15 сек) - отправил серверу пакет.
ессно дисконнектит, последние 2 строки как раз и офают клиент.
__________________ На фразы в аську типа "слух карочь 1)как точить 2)как раскачаться за 5 мин" - игнор. ИМХО идиотизм
Дай голодному рыбу - он будет один день сыт. Покажи ему, как удить рыбу - он пошлёт тебя и скажет, что у него есть более интересные занятия, чем забрасывать снасти в воду
David Kastrup @ de.comp.text.tex.
"Приобретенные навыки общения с маленькими детьми - сильно упрощают взаимопонимание на форумах..."
А вы знаете, что для качественной сварки - место шва нужно протереть спиртом?
нет, я выяснил, когда офаю клиент, а соединение остается, то на стандартные пакеты клиент не отвечает( его уже нету), надо в скрипте дописать проверку на текущее место нахождение перса, и если его портует на цтф ивент то на какие координаты, и отправить скриптом ответ, что я появился на етих координатах, с етим чет сложновато, где-то ошибка....( так как цтф каждые 3 часа то проводить тест раз в 3 часа не прикольно, то тестирую на БлесСОЕ, принцип тотже) . Может есть готовый скрипт по использованию сое???
Добавлено через 2 минуты
ну на цтф уже 20 окон летит)))) медь капает, только каждый рас надо заходить в игру и делать сое в город, так как они зависют там.....
__________________
Фирма веников не вьяжет,
Фирма делает гробы...
Последний раз редактировалось palvy, 10.03.2014 в 02:31.
Причина: Добавлено сообщение
Если бы офал клиент ПОСЛЕ всех выяснений, ты б заметил, что клиент шлет серверу запрос, указаный выше, дающий знать серверу что клиент прогрузил локацию в которую портнулся, и готов получать инфу об окружении. До этого момента - сервер не только не шлет такие данные, но и не отображает твоего перса для окружающих.
__________________ На фразы в аську типа "слух карочь 1)как точить 2)как раскачаться за 5 мин" - игнор. ИМХО идиотизм
Дай голодному рыбу - он будет один день сыт. Покажи ему, как удить рыбу - он пошлёт тебя и скажет, что у него есть более интересные занятия, чем забрасывать снасти в воду
David Kastrup @ de.comp.text.tex.
"Приобретенные навыки общения с маленькими детьми - сильно упрощают взаимопонимание на форумах..."
А вы знаете, что для качественной сварки - место шва нужно протереть спиртом?
О действительно отправил апперинг, а ето "3А", все заработало))), тут такой вопрос:
Шаманил с скриптом и получил работоспособную модель на 50 %, так как надо открыть клиент, ввести лог и пароль, зайти на перса, включить скрипт, потом нажать кнопку выход, но окно не закрывается. ( так как я запускаю л2 постоянно через иг бота то комбинация "ctrl+Q" "убивает" клиент, как бы через диспечер задачь снять процес. Соединение рвется, повторно открываю окно захожу на акаунт, на клиент, нажимаю кнопку выход, окно опять не закрывается, нажимаю контрол+кю( если перед етим не нажимать выход то не работает). и вуаля соединение остается, все работает.
А вот и вопрос что в скрипте не так? Почему надо дважды запускать одного и тогоже перса?
Вот сам скрипт:
PHP код:
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.
__________________
Фирма веников не вьяжет,
Фирма делает гробы...
Последний раз редактировалось palvy, 12.03.2014 в 00:57.