L2PacketHackФорум программы L2PacketHack, всё что с ней связано находится тут.
Правила раздела!
Категорически запрещено:
* Просить пакеты/скрипты на шмот/адену/другие вещи;
* Просить (помочь) взломать/сломать сервак/аккаунт или раздеть/наказать кого-то на любом серваке;
* Просить научить работать с программой, если не понимаете элементарных вещей в отношениях клиент-сервер (так как, если вы их понимаете, то вопросов по основным возможностям программы быть недолжно);
* Все посты не удовлетворяющие этим запретам, а так же не относящиеся к теме будут удаляться при первой возможности.
* Запрещается создавать темы с просьбой выполнить какую-то работу за автора темы.
* Форум является средством общения и общего поиска решения. Вашу работу за Вас никто выполнять не будет.
* Данные запреты неподлежат обсуждению.
там решений куча в теме, с чего ты взял что если у тябя нет времени учить язык программирования скриптов, то у кого то другого будет время спецом для тебя писать скрипт . направление поиска указал ищи там есть готовые скрипты для бд и свса
В том то и дело что мне не нужны готовые скрипты, я хочу сам разобратся. Вот я полный нуб обьясни мне где в этом скрипте строчка которая отвчеает за то чтоб через каждые 2 минуты танцевал?!
Код:
//Скрипт на БД чтобы танцевал каждые 2 минуты и бегал за командиром
const //Dance
d1='2F 11 01 00 00 00 00 00 00 00'; // Dance of Mystic
d2='2F 15 01 00 00 00 00 00 00 00'; // Dance of Light
d4='2F 10 01 00 00 00 00 00 00 00'; // Inspirations
d3='2F 12 01 00 00 00 00 00 00 00'; // Dance of Fire
d5=''; // Dance of Concentration
var
IDPartyMember, IDAssistTarget: String; //ИД командира и ИД его таргета и Собственный ИД
CoordBDX, CoordBDY, CoordBDZ :String; //координаты бота
NameBD, NameKomandos : String; // Имена
x: integer;
timerBD: TTimer;
timerBD1: TTimer;
procedure OnTimerBD(Sender: TObject);
begin
Case x of
1: begin
buf:=hstr(d1);
SendToServerEx(NameBD);
x:=x+1;
end;
2: begin
buf:=hstr(d2);
SendToServerEx(NameBD);
x:=x+1;
end;
3: begin
bRun;
x:=0;
timerBD.enabled:=false;
end;
end;
end;
procedure OnTimerBD1(Sender: TObject);
begin
timerBD.enabled:=true;
x:=1;
end;
procedure bRun;
begin
if (CoordBDX <> '') and (IDPartyMember <> '') then
begin
//выделяем командира, эмулируя щелчек мыши
buf:=hstr('04') + IDPartyMember + CoordBDX + CoordBDY + CoordBDZ + hstr('00');
SendToServerEX(NameBD);
//бежим за командиром эмулируя повторный щелчек мыши по таргету
buf:=hstr('04') + IDPartyMember + CoordBDX + CoordBDY + CoordBDZ + hstr('00');
SendToServerEX(NameBD);
end;
end;
procedure Init; //Вызывается при включении скрипта
begin
NameBD:='НИК БД;
NameKomandos:='НИК КОМАНДИРА';
timerBD:=TTimer.Create(nil);
timerBD.OnTimer:=@OnTimerBD;
timerBD.enabled:=false;
timerBD.interval:=2000;
x:=0;
timerBD1:=TTimer.Create(nil);
timerBD1.OnTimer:=@OnTimerBD1;
timerBD1.enabled:=false;
timerBD1.interval:=120000;
end;
procedure Free; //Вызывается при выключении скрипта
begin
timerBD.Free;
timerBD1.Free;
end;
//основная часть скрипта
//вызывается при приходе каждого пакета если скрипт включен
begin
if pck='' then exit;
//если от сервака принят пакет с ИД и Координатами членов пати то
if FromServer and (pck[1]=#$a7) then
begin
//запоминаем ИД командира
IDPartyMember:=pck[6] + pck[7] + pck[8] + pck[9];
end;
//если принят пакет от клиента с кординатами бд то
if FromClient and (ConnectName=NameBD) and (pck[1]=#$48) then
begin
//запоминаем координаты
CoordBDX:= pck[6] + pck[7] + pck[8] + pck[9];
CoordBDY:= pck[10] + pck[11] + pck[12] + pck[13];
CoordBDZ:= pck[14] + pck[15] + pck[16] + pck[17];
end;
//далее идут управляющие команды
//если КОМАНДИР пишет в любой чат цифру "1" то
if FromClient and (ConnectName=NameKomandos)and (pck[1]=#$38) then
if (pck[2]=#$31) and (pck[3]=#$00) then
begin
//убиваем этот пакет, чтоб сервер его не получил
pck:='';
//БД БЕЖИТ за КОМАНДИРОМ
bRun;
//выйти из рабочей части скрипта чтобы другие услови не проверяли убитый пакет нулевой длинны
exit;
end;
// запускаем танцы
if FromClient and (ConnectName=NameKomandos)and (pck[1]=#$38) then
if (pck[2]=#$38) and (pck[3]=#$00) then
begin
//убиваем этот пакет, чтоб сервер его не получил
pck:='';
// бафы
timerBD1.enabled:=true;
timerBD.enabled:=true;
x:=1;
exit;
end;
// остановить танцы
if FromClient and (ConnectName=NameKomandos)and (pck[1]=#$38) then
if (pck[2]=#$39) and (pck[3]=#$00) then
begin
//убиваем этот пакет, чтоб сервер его не получил
pck:='';
timerBD1.enabled:=false;
exit;
end;
end.
можно поподробней узнать как работает процедура таймера, и привести для примера рабочий скрипт, который бы отправлял определенный пакет каждые 2 минуты?
Вообщем собсно такой вопросец.
Имееться сервер С4, не ява. Куча багов пофиксено, но и много осталось.
Где то я читал за подмену ID предмета. Ну тоесть покупаеш один предмет, а получаешь совершенно другой.
Поскольку я не понимаю в Л2ПХ ничерта, обьясните мне возможно ли это. И если можна подкиньте скриптик для такой подмены.
__________________ Я не злопамятный, я добрый, просто память хорошая.
Не#^^й ржать с некоторых моих сообщений - ибо все мы когда то были нубами в этом нелёгком деле БОТОВОДСТВО.
Ну как минимум не хватаем begin перед end. , а вообще у тебя только три процедуры, а собственно того что их бы запускало нет, как раз между этими begin end.
Добавлено через 17 минут
А вообще канешн жуть понадела что, ты бы не мудорствовал и велосипед не изобретал,а посматрел бы сначало похожее готовое.
У тя дохрена ошибок, я бы даже сказал у тебя мало что правильно.
Не определена переменная x; процедура OnTimerBD1 должна быть без параметра и она нигде не запускается; если даже переделаешь что бы запускалось, то будешь ждать 2 минуты прежде чем первый раз бафнет; бафнет он скорее всего только первый баф, ну может и второй в очередь встанет, но не факт, а третий баф точно не будет кастоваться, т.к. у тебя нету перерыва между отправками пакетов и тд и тп))
Последний раз редактировалось APXAHGEJI, 12.06.2008 в 23:05.
Причина: Добавлено сообщение