Вернуться   CoderX :: Forums > Lineage II > L2PacketHack > Скриптинг
Войти через OpenID

Скриптинг Форум посвещенный созданию скриптов для L2PacketHack

Чат (Новых сообщений с момента вашего последнего визита нет)
Загрузка...
Задавайте ваши вопросы на форуме. Чат предназначен для небольших разговоров.
 
Ответ
 
Опции темы Опции просмотра
Старый 21.07.2015, 17:21   #1
Новичок
 
Регистрация: 21.07.2015
Сообщений: 7
Сказал Спасибо: 1
Имеет 0 спасибок в 0 сообщенях
gh0sst пока неопределено
Лампочка ИЩУ СКРИПТ САМЫЙ ПРОСТОЙ

Здравствуйте, программисты. Я ищу очень простой скрипт. Так как сам не могу ни в чем разобраться, попрошу помощи, т.к. чувствую, что этот скрипт очень простой, и наверняка все его делали под себя.
Прошу вашей помощи, если у кого-то завалялся этот скрипт, или что-то подобное, поделитесь.
Итак, это скрипт - чтобы чуваки (пп, ше, бд) ходили за моим дестром, и кидали ему баф каждые 20 минут. На хилера я скрипт нашел, только еще бы привязать к нему функцию кидать баф ВАМП.
В общем, нужен скрипт, который тупо бафает каждые 20 минут орка, и бежит за ним.
Заранее благодарю.

Скрипт на ХИЛЕРА (не пробовал, нашел в интернете)
Код HTML:
const
 FirstUser = 'voin'; // 
 SecondUser = 'lekar'; // 
 maxRad = 200; // 
 minRad = 70;
 ugol = 40; // 
 var
 CharObjID1,CharObjID2,ax,ay,az,bx,by,bz,i: integer;
 dx,dy,dz,dr: integer;
 da: extended;
 Sel, initOk: boolean;

 procedure Init;
 begin
 Sel:=False;
 initOk:=False;
 CharObjID1:=0;
 CharObjID2:=0;
 bx:=0;
 by:=0;
 bz:=0;
 buf:=HStr('4A 00 00 00 00 0A 00 00 00 00 00');
 WriteS(начало инициализации скрипта);
 SendToClientEx(FirstUser);
 end;

 procedure pre;
 begin
 if (dx=0) then dx:=1;
 dr:=round(random*(maxRad-minRad))+minRad;
 da:=ArcTan(dy/dx)+(random-0.5)*pi/180*ugol;
 if dx>0 then da:=da+pi;
 dx:=round(dr*cos(da))+ax;
 dy:=round(dr*sin(da))+ay;
 dz:=az;
 buf:=#$01;
 WriteD(dx);
 WriteD(dy);
 WriteD(dz);
 WriteD(bx);
 WriteD(by);
 WriteD(bz-$20);
 WriteD(1);
 SendToServer;
 end;

 procedure Go;
 begin
 if (CharObjID1<>0)and(CharObjID2<>0)and(not initOk)
 {and((ax<>0)or(ay<>0)or(az<>0))}
 and((bx<>0)or(by<>0)or(bz<>0)) then begin
 buf:=HStr('4A 00 00 00 00 0A 00 00 00 00 00');
 WriteS(инициализации скрипта окончена);
 SendToClientEx(FirstUser);
 initOk:=True;
 end;
 end;

 begin
 if FromServer then case pck[1] of
 #$04: if (ConnectName=FirstUser) then begin
 CharObjID1:=ReadD(18);
 Go;
 end else if (ConnectName=SecondUser) then begin
 CharObjID2:=ReadD(18);
 Go;
 end;
 #$01: if (ConnectName=SecondUser) then if (ReadD(2)=CharObjID1)and(initOk) then begin
 i:=6;
 ax:=ReadD(i);
 ay:=ReadD(i);
 az:=ReadD(i);
 dx:=ax-bx;
 dy:=ay-by;
 if sqrt(dx*dx+dy*dy)>maxRad then pre;
 end else if (ReadD(2)=CharObjID2) then begin
 i:=6;
 bx:=ReadD(i);
 by:=ReadD(i);
 bz:=ReadD(i);
 Go;
 end;
 #$2A: if (ConnectName=SecondUser)and(ReadD(2)=CharObjID2)an d(initOk) then begin
 Sel:=False;
 end;
 end;
 if FromClient and (ConnectName=FirstUser) and (pck=HStr('1b04000000'))and(initOk) then begin
 if (not Sel) then begin
 buf:=#$04;
 WriteD(CharObjID1);
 WriteD(ax);
 WriteD(ay);
 WriteD(az);
 WriteC(0);
 SendToServerEx(SecondUser);
 Sel:=True;
 end;
 pck:='';
 buf:=#$2f;
 WriteD(1217); // id скила Greater Heal
 WriteD(0);
 WriteC(0);
 SendToServerEx(SecondUser);
 end;
 end.

Последний раз редактировалось gh0sst, 21.07.2015 в 17:23.
gh0sst вне форума   Ответить с цитированием
Старый 21.07.2015, 17:40   #2
Местный
 
Аватар для SeregaZ
 
Регистрация: 16.08.2009
Сообщений: 1,224
Сказал Спасибо: 4
Имеет 229 спасибок в 182 сообщенях
SeregaZ пока неопределено
По умолчанию

не не не... не пойдет. что значит "нашел"? нашел это не наш метод! давай чуток пошевелим мозгами, посидим и разберемся. там ничего сложного

итак задание первое:
на том персонаже - бафере или кто он там - зайди и потыркай кнопки бафа и посмотри какому бафу какой пакет соответствует. и составь список по очереди.
1. название
пакет
2. название
пакет
....
__________________
хочу картинку в подпись!
SeregaZ вне форума   Ответить с цитированием
Старый 21.07.2015, 18:46   #3
Новичок
 
Регистрация: 21.07.2015
Сообщений: 7
Сказал Спасибо: 1
Имеет 0 спасибок в 0 сообщенях
gh0sst пока неопределено
По умолчанию

В общем, тот скрипт не работает, оказывается, ошибки в скрипте.

Хорошо, я посмотрел , и вот что нашел :

ШЕ ВАМПА

2F F4 04 00 00 00 00 00 00 00
ID 1268

Далее ПП

2F 0B 04 00 00 00 00 00 00 00 1035 МЕНТАЛКА
2F 0C 04 00 00 00 00 00 00 00 1036 МАГ ЩИТ
2F 10 04 00 00 00 00 00 00 00 1040 ФИЗ ЩИТ
2F 14 04 00 00 00 00 00 00 00 1044 РЕГЕНЕРАЦИЯ
2F 15 04 00 00 00 00 00 00 00 1045 БЛЕСС ХП
2F 2C 04 00 00 00 00 00 00 00 1068 МАЙТ
2F 26 04 00 00 00 00 00 00 00 1062 БЕРС
2F 35 04 00 00 00 00 00 00 00 1077 ФОКУС
2F 3E 04 00 00 00 00 00 00 00 1086 ХАСТ
2F D8 04 00 00 00 00 00 00 00 1240 ГАЙДЕНС
2F DA 04 00 00 00 00 00 00 00 1242 ДЕС ВИСПЕР


2F 10 01 00 00 00 00 00 00 00 272 ДЕНС НА МЕТКОСТЬ

2F 12 01 00 00 00 00 00 00 00 274 ДЕНС НА СИЛУ КРИТА

Вот мне нужно всего-лишь отправить эти пакеты раз в 20 минут, а у бд раз в 1.5 минуты, и чтобы постоянно все бежали за орком.
gh0sst вне форума   Ответить с цитированием
Старый 22.07.2015, 10:37   #4
Местный
 
Аватар для SeregaZ
 
Регистрация: 16.08.2009
Сообщений: 1,224
Сказал Спасибо: 4
Имеет 229 спасибок в 182 сообщенях
SeregaZ пока неопределено
По умолчанию

надеюсь ты не торопишься? а то мы тут надоооооооооооолго

так. хорошо. задание второе ты знаешь как таймеры устроены в л2пх? как объявлять, как использовать и как задавать им длительность? ща где-то мы таймер разбирали... первое же сообщение:
http://coderx.ru/showthread.php?t=9181

прочитай пункт про таймер и скажи что не понятно я там вроде бы каждый момент как мог прокомментировал. как разберешься перейдем к следующему заданию.
__________________
хочу картинку в подпись!
SeregaZ вне форума   Ответить с цитированием
Старый 22.07.2015, 13:43   #5
Новичок
 
Регистрация: 21.07.2015
Сообщений: 7
Сказал Спасибо: 1
Имеет 0 спасибок в 0 сообщенях
gh0sst пока неопределено
По умолчанию

В общем, не понятно что значит
Timer01.OnTimer:=@OnTimer01;

А так, лучше делать по отсутсвию бафов, если это возможно вообще.
а так врое все понятно, попробую сделать, потом если получится выложу
gh0sst вне форума   Ответить с цитированием
Старый 22.07.2015, 15:36   #6
Местный
 
Аватар для ScythLab
 
Регистрация: 24.10.2014
Сообщений: 190
Сказал Спасибо: 4
Имеет 42 спасибок в 40 сообщенях
ScythLab пока неопределено
По умолчанию

Это значит, что метод OnTimer01 будет вызываться через заданный Interval времени (в Timer01)
__________________
Хобби: разработка бота для Lineage.
ScythLab вне форума   Ответить с цитированием
Старый 22.07.2015, 17:12   #7
Новичок
 
Регистрация: 21.07.2015
Сообщений: 7
Сказал Спасибо: 1
Имеет 0 спасибок в 0 сообщенях
gh0sst пока неопределено
По умолчанию

Scythlab, привет, я как раз бегаю твоим ботом, и хочу привязать трех баферов к нему, чтобы бафали через пакетхак
gh0sst вне форума   Ответить с цитированием
Старый 30.07.2015, 18:34   #8
Местный
 
Аватар для ScythLab
 
Регистрация: 24.10.2014
Сообщений: 190
Сказал Спасибо: 4
Имеет 42 спасибок в 40 сообщенях
ScythLab пока неопределено
По умолчанию

Цитата:
Сообщение от gh0sst Посмотреть сообщение
Scythlab, привет, я как раз бегаю твоим ботом, и хочу привязать трех баферов к нему, чтобы бафали через пакетхак
Удачи
Вообще в планах на следующую версию было добавление бафов, но не уверен, что это войдет в следующий релиз, а вот работа с несколькими окнами скорей всего появится.
__________________
Хобби: разработка бота для Lineage.
ScythLab вне форума   Ответить с цитированием
За это сообщение ScythLab нажился спасибкой от:
Старый 22.07.2015, 18:55   #9
Местный
 
Аватар для SeregaZ
 
Регистрация: 16.08.2009
Сообщений: 1,224
Сказал Спасибо: 4
Имеет 229 спасибок в 182 сообщенях
SeregaZ пока неопределено
По умолчанию

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

вся закавыка - а нужен ли баф самому ботинку? ведь если это ппшка, то думаю лучше включить в начало программы бафа кидание акумена и берсеркера самому себе. как ты считаешь?
__________________
хочу картинку в подпись!
SeregaZ вне форума   Ответить с цитированием
Старый 30.07.2015, 13:27   #10
Новичок
 
Регистрация: 21.07.2015
Сообщений: 7
Сказал Спасибо: 1
Имеет 0 спасибок в 0 сообщенях
gh0sst пока неопределено
По умолчанию

В общем, решил не заморачиваться, нашел готовый скрипт, переделал под ПП, ШЕ отдельно. но не работает (
Код HTML:
//by vimin
//Скрипт для SE, чтобы бегал, лечил и бафал по команде от командира.

const //баффы
b1='2F 10 04 00 00 00 00 00 00 00';    // Shield
b2='2F 0B 04 00 00 00 00 00 00 00';    // Mental Shield
b3='2F 23 04 00 00 00 00 00 00 00';    // Empower
b4='2F B4 04 00 00 00 00 00 00 00';    // Wind Walk
b5='2F 36 04 00 00 00 00 00 00 00';    // Concentration

var
IDPartyMember, IDAssistTarget: String; //ИД командира и ИД его таргета и Собственный ИД
CoordBufX, CoordBufY, CoordBufZ :String; //координаты бота
NameBuffer, NameKomandos : String; // Имена
x: integer;
timer1: TTimer;

procedure OnTimer(Sender: TObject);
begin
 case x of
 1: begin
    //выделяем командира, эмулируя щелчек мыши
    buf:=hstr('04') + IDPartyMember + CoordBufX + CoordBufY + CoordBufZ + hstr('00');
    SendToServerEX(NameBuffer);

    buf:=hstr(b1);
    SendToServerEx(NameBuffer);
    x:=x+1;
    end;
 2: begin
    buf:=hstr(b2);
    SendToServerEx(NameBuffer);
    x:=x+1;
    end;
 3: begin
    buf:=hstr(b3);
    SendToServerEx(NameBuffer);
    x:=x+1;
    end;
 4: begin
    buf:=hstr(b4);
    SendToServerEx(NameBuffer);
    x:=x+1;
    end;
5: begin
    buf:=hstr(b5);
    SendToServerEx(NameBuffer);
    x:=0;
    timer1.enabled:=false;
    end;
 end;
end;

procedure bRun;
begin
     if (CoordBufX <> '') and (IDPartyMember <> '') then
     begin
          //выделяем командира, эмулируя щелчек мыши
          buf:=hstr('04') + IDPartyMember + CoordBufX + CoordBufY + CoordBufZ + hstr('00');
          SendToServerEX(NameBuffer);
          //бежим за командиром эмулируя повторный щелчек мыши по таргету
          buf:=hstr('04') + IDPartyMember + CoordBufX + CoordBufY + CoordBufZ + hstr('00');
          SendToServerEX(NameBuffer);
     end;
end;

procedure bHeal;
begin
     if (CoordBufX <> '') and (IDPartyMember <> '') then
     //if (IDPartyMember <> '') then
     begin
          //выделяем командира, эмулируя щелчек мыши
          buf:=hstr('04') + IDPartyMember + CoordBufX + CoordBufY + CoordBufZ + hstr('00');
          SendToServerEx(NameBuffer);

          // хил
          buf:=hstr('2F C1 04 00 00 00 00 00 00 00'); // Greater Heal

          //отправляем пакет серваку
          SendToServerEx(NameBuffer);
     end;
end;

procedure bRecharge;
begin
     // таргет командира
     buf:=hstr('04') + IDPartyMember + CoordBufX + CoordBufY + CoordBufZ + hstr('00');
     SendToServerEx(NameBuffer);

     // речарж
     buf:=hstr('2F F5 03 00 00 00 00 00 00 00'); // Recharge

     //отправляем пакет серваку
     SendToServerEx(NameBuffer);
     //Say('Make recharge');
end;

procedure Init; //Вызывается при включении скрипта
begin
     NameBuffer:='Buffer';
     NameKomandos:='Komandos';
     timer1:=TTimer.Create(nil);
     timer1.OnTimer:=@OnTimer;
     timer1.enabled:=false;
     timer1.interval:=5000;
     x:=0;
end;

procedure Free; //Вызывается при выключении скрипта
begin
    timer1.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=NameBuffer) and (pck[1]=#$48) then
   begin
        //запоминаем координаты
        CoordBufX:= pck[6] + pck[7] + pck[8] + pck[9];
        CoordBufY:= pck[10] + pck[11] + pck[12] + pck[13];
        CoordBufZ:= pck[14] + pck[15] + pck[16] + pck[17];
   end;

   //далее идут управляющие команды

   //если КОМАНДИР пишет в любой чат цифру "1" (код "#$31 #$00" в юникоде (в юникоде под 1 символ используются 2 байта) я так понял) то
   if FromClient and (ConnectName=NameKomandos)and (pck[1]=#$38) then
      if (pck[2]=#$31) and (pck[3]=#$00) then
      begin
           //убиваем этот пакет, чтоб сервер его не получил
           pck:='';
           //Бафер БЕЖИТ за КОМАНДИРОМ
           bRun;

           //выйти из рабочей части скрипта чтобы другие услови не проверяли убитый пакет нулевой длинны
           exit;
      end;

   // если КОМАНДИР пишет в любой чат цифру "2"
   if FromClient and (ConnectName=NameKomandos)and (pck[1]=#$38) then
       if (pck[2]=#$32) and (pck[3]=#$00) then
       begin
            //убиваем этот пакет, чтоб сервер его не получил
            pck:='';
            bHeal;
            exit;
       end;

   // если КОМАНДИР пишет в любой чат цифру "3" (речардж)
   if FromClient and (ConnectName=NameKomandos)and (pck[1]=#$38) then
       if (pck[2]=#$33) and (pck[3]=#$00) then
       begin
            //убиваем этот пакет, чтоб сервер его не получил
            pck:='';
            bRecharge;
            exit;
       end;

   // если КОМАНДИР пишет в любой чат цифру "4" (ребаф)
   if FromClient and (ConnectName=NameKomandos)and (pck[1]=#$38) then
       if (pck[2]=#$34) and (pck[3]=#$00) then
       begin
            //убиваем этот пакет, чтоб сервер его не получил
            pck:='';

            // бафы
            timer1.enabled:=true;
            x:=1;
            exit;
       end;

end.

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

В общем, как я понял, в данном скрипте стоит уже таймер.. 5000 - сколько по времени это хз. если я ошибаюсь, на крайняк, поставлю автокликер на основное окно, чтобы отправлял в чат клавишу 2 (т.е. Баф) каждые 20 минут.
Осталось понять, почему скрипт не пашет. может, этот скрипт только набросок?
gh0sst вне форума   Ответить с цитированием
Ответ

  CoderX :: Forums > Lineage II > L2PacketHack > Скриптинг



Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.


Часовой пояс GMT +4, время: 22:08.

vBulletin style designed by MSC Team.
Powered by vBulletin® Version 3.6.11
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd. Перевод: zCarot
Locations of visitors to this page
Rambler's Top100

Вы хотите чувствовать себя в безопасности? чоп Белган обеспечит её!