L2PacketHackФорум программы L2PacketHack, всё что с ней связано находится тут.
Правила раздела!
Категорически запрещено:
* Просить пакеты/скрипты на шмот/адену/другие вещи;
* Просить (помочь) взломать/сломать сервак/аккаунт или раздеть/наказать кого-то на любом серваке;
* Просить научить работать с программой, если не понимаете элементарных вещей в отношениях клиент-сервер (так как, если вы их понимаете, то вопросов по основным возможностям программы быть недолжно);
* Все посты не удовлетворяющие этим запретам, а так же не относящиеся к теме будут удаляться при первой возможности.
* Запрещается создавать темы с просьбой выполнить какую-то работу за автора темы.
* Форум является средством общения и общего поиска решения. Вашу работу за Вас никто выполнять не будет.
* Данные запреты неподлежат обсуждению.
В делфи, по умолчанию, String обрабатывается как AnsiString. Но он может быть обработан как ShortString, если директива компилятора $LongStrings установлена в Off (по умолчанию установлена в On).
AnsiChar может содержать любое число символов, ограниченное только памятью. А вот ShortString имеет фиксированый размер FixedSize (до 255 символов).
Но следует учитывать что Delphi и FS (скриптовый движок пакетхака) разные вещи. В FS вообще нету такой вещи как строки, даже если написать var s:string; данные будут хранится в типе variant, максимальный размер которого ограничивается доступной памятью.
__________________
В любом из нас спит гений. И с каждым днем все крепче.
я так понимаю щас на многих серверах стоит защита..( обход которой негде не написан)(через CFF не виден проклятый файл nophx.)c заменой чистой системы тоже не катит..
ну вобщем нашел простой сервер./la2cryx.ru.
заходу.l2ph заходит. покеты побежали.. но как тока я пытаюсь что то отослать. то сразу обрыв связи...
подскажите что это может быть или что я делаю не так
//J-Fobos: если вас интересует подключение пакетхака к серверу, то вам в другую тему. А по поводу обрыва связи: либо неверный пакет, либо нарушается цепочка пакетов (а это уже может быть неправильное декодирование трафика).
Последний раз редактировалось J-Fobos, 17.05.2011 в 00:03.
Народ помогите хоть кто нибудь... Блин уже достало, уже 3 ночи юзаю поиск скачиваю разные версии пакетхака ничего не помогает... Проблема!
Открываю ПХ захожу на сервак, воожу логин пароль, залетаю на сервак, скрипты не пашут.... открываю лог пакетов вообще ничего , ниодного пакета не видно.... Сервак лажа полная с онлайном 100 человек (не может там стоять супер пупер защиты) хроники Фрея... помогите очень прошу... Зайдите кто нибудь попробуйте хоть что нить сделать... вот ссыль на сервак Оффтоп
http://l2ifrit.ru/
//J-Fobos: проблемы с подключениям к серверам решаются в соседней теме.
Последний раз редактировалось J-Fobos, 17.05.2011 в 21:05.
День добрый, у меня вот какая проблема, не срабатывает процедура старта скрипта procedure Init; так и процедура окончания скрипта procedure Free; при этом основной код скрипта работает как надо, компилируется все без ошибок. Пробовал множество скриптов во всех такая же проблема. Часть кода из моего скрипта:
Код:
procedure Init; //Вызывается при включении скрипта
begin
SendMsc('Скрипт стартовал');
UseForConnectName:=Name;
timer:=TTimer.Create(nil);
timer.interval:=5;
timer.OnTimer:=@OnTimer;
timer.enabled:=false;
end;
Версия пакетхака 3.5.33.166 скачана с этого сайта
//J-Fobos: приведите еще код процедуры/функции SendMsc
Последний раз редактировалось J-Fobos, 17.05.2011 в 21:06.
procedure SendMsc(msc:string);
begin
buf:=#$4A;
WriteD(0);
WriteD(10);
WriteS('');
WriteS(msc);
SendToClientEx(Name);
end;
Без этой функции в процедуре Инит тоже ничего не работает, не создается экземпляр таймера. Пока обошел этот лаг написав буквальный вызов процедуры Init в основном коде обработки пакетов. При первом её вызове она выставляет параметр в труе и больше не запускается, а как быть с функцией запускаемой при остановке скрипта - Free?
Вот весь код скрипта:
Код:
const
//======================================
Name='BOPOH'; //<-----Ник Персонажа
//======================================
var
//a:integer;
//x:integer;
//MyID:string;
//y:integer;
//z:integer;
//ValidatePosition:string;
b:boolean;
InitStart:boolean;
timer:TTimer;
procedure Init; //Вызывается при включении скрипта
begin
SendMsc('Скрипт стартовал');
UseForConnectName:=Name;
timer:=TTimer.Create(nil);
timer.interval:=500; //Скорость распития ЦП в мили. сек., чем меньше число тем быстрее
timer.OnTimer:=@OnTimer;
timer.enabled:=false;
InitStart:=true;
end;
procedure OnTimer(Sender: TObject);
begin
SendMsc('Съел ЦП баночку)');
end;
procedure SendMsc(msc:string);
begin
buf:=#$4A;
WriteD(0);
WriteD(10);
WriteS('');
WriteS(msc);
SendToClientEx(Name);
end;
procedure UseCP;
begin
buf:=#$19;
WriteD(268907985);
WriteD(0);
SendToServerEx(Name);
end;
//основная часть скрипта
//вызывается при приходе каждого пакета если скрипт включен
begin
if InitStart<>true then Init();
//Нечитаем пустые пакеты
if pck='' then exit;
//Если Имя соединения Name
//И Пакет Action от клиента то
if FromClient and (ConnectName=Name)
and (pck=hstr('49 2E 00 61 00 75 00 74 00 6F 00 63 00 70 00 00 00 00 00 00 00')) //пакет сказать в чат .autocp
then begin
if b=true then begin
b:=false;
timer.enabled:=false;
SendMsc('режим autocp выключен'); //Оповещаем юзера
end
else begin
b:=true;
timer.enabled:=true;
SendMsc('режим autocp включен'); //Оповещаем юзера
end;
pck:='';
end;
if FromServer and (ConnectName=Name) and (pck[0]='#$18') then
begin
SendMsc('Пакет пойман!');
end;
end.
procedure Free; //Вызывается при выключении скрипта
begin
timer.free;
end;
Это недоделка для автохаванья ЦП банок, пока только по таймеру выводит надпись "Съел ЦП баночку)"
Последний раз редактировалось Velizarx, 17.05.2011 в 21:19.
Как обычно и узнают) запускаю скрипт и смотрю на состояние переменных, экземпляр класса таймер и прочее даже не существует, хотя если буквально вызывать функцию (как у меня в коде выше) то все нормально работает и в списке переменных видно что значения заполнились и всё в порядке. Функция печати тут не причем, туда что не запихни все не пашет. Например инкримент переменной со значением 1 делал в этой функции, и смотрел результат, инкримент не выполнялся тоже.
На всякий случай попробую добавить эту строчку щас.
Добавлено через 14 минут
Ооо, заработала на удивление после вписывания строки SendMsg(' Init start '); в процедуру Инит, не могли бы вы пояснить как это работает, ведь по моему вызов такой строки всего лишь должен был вывести в чат фразу "Init start"? и как можно осушествить запуск процедуры Free?
Мммм методом тыка определил что функция работает даже если удалить строку совсем, может дело было в том что на этой строке возникала ошибка? в связи с тем что функция SendMsc не была инициализирована еще? (Просто я слабовато паскаль знаю, пишу на Си подобных языках)
Последний раз редактировалось Velizarx, 18.05.2011 в 00:32.
Причина: Добавлено сообщение