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

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

Чат (Новых сообщений с момента вашего последнего визита нет)
Загрузка...
Задавайте ваши вопросы на форуме. Чат предназначен для небольших разговоров.
 
Ответ
 
Опции темы Опции просмотра
Старый 25.11.2007, 11:34   #1
Новичок
 
Регистрация: 03.11.2007
Адрес: Москва
Сообщений: 1
Сказал Спасибо: 0
Имеет 0 спасибок в 0 сообщенях
KPECTOHOCElL
Печаль Нуна ПОМОЩь!

ПОМОИГТЕ плиз написать крипт -споил ботом- тоесть что бы он только сполил цель ведущего-тоесть если споил пропер он прекратил его сполить и ждал пока онр умрет и потом свипанул егоя тута ненмного поразбирался в скриптах я так понимаю это должно выглядеть так-(кстати веть скрип работает одновременно с настройками бота?)ТОЕСТЬ я в боте настраиваю атаковать цель ведущего
в скрипте пишем
LABEL(Razb)
USESKILL-тута я Хз так и непонял что надо вставить(мне нуно что бы он прекротил использовать скил если он пропрет)
JMP(Razb)
если неправ то поправьте ^^ а я думаю я ппц ошибаюся
KPECTOHOCElL вне форума   Ответить с цитированием
Старый 25.11.2007, 19:52   #2
Рыцарь
 
Аватар для NLObP
 
Регистрация: 25.02.2008
Адрес: г.Волгоград
Сообщений: 2,009
Сказал Спасибо: 1,285
Имеет 1,458 спасибок в 793 сообщенях
NLObP пока неопределено
По умолчанию Re: Нуна ПОМОЩь!

В теме "Скриптинг\Да будет бот" первый скрипт от Voron про спойлера.
А вот мой вариант спойлера:
Код:
//spoiler by NLObP
//**************************************************************
// Команды лидера
// 1-следовать за командиром
// 2-спойлить и атаковать цель
// 3-сесть/встать

// На автомате, при нападении лидером на моба бот автоматически спойлит и ассистит
// после боя следует за лидером.
//**************************************************************
//константы и переменные скрипта
//**************************************************************
const
    Leader='ТДЩиЗ';     //ник перса лидера пати
    Spoiler='NLObP';  //ник перса спойлера
var
    LeaderID, TargetID, SpoilerID :String; //ИД командира и ИД его таргета
    CoordX, CoordY, CoordZ :String;       //координаты бота
    Cmd :String;                         //команда боту
    Spoiled :String;                    //заспойлен?

//**************************************************************
//                          Подпрограммы
//**************************************************************
Function HexToStrH(Value:String):String;
Var
    Len, I : Integer;
Begin
    Result:='';
    Len:=Length(Value);
    IF Len>0 Then Result:= Format('%.2x',[ord(Value[1])]);
    For I:=2 to Len do Result:=Result+Format(' %.2x',[ord(Value[i])]);
End;
//посылаем анонсное сообщение, которое видно только в окне бота
//можно использовать для отладки
procedure SendMsg(msg:string);
begin
    buf:=#$4A;
    WriteD(0);
    WriteD(10);
    WriteS('');
    WriteS(msg);
    SendToClient;
end;
//все сообщения ботов в приватном чате патилидера
//видны только нам
procedure Say(msg:string);
begin
  buf:=hstr('4A 00 00 00 00');
  WriteD(2);
  WriteS(ConnectName);
  WriteS(msg);
  SendToClientEx(Leader);
end;
//следовать за лидером
procedure FollowLeader;
begin
    if (CoordX<>'') and (LeaderID<>'') then begin
        //выделяем командира, эмулируя щелчек мыши
        //бежим за командиром эмулируя повторный щелчек мыши по таргету
        Say('Следуй за мной!');
        buf:=hstr('04')+LeaderID+CoordX+CoordY+CoordZ+hstr('00');
        SendToServerEX(Spoiler);
        buf:=hstr('04')+LeaderID+CoordX+CoordY+CoordZ+hstr('00');
        SendToServerEX(Spoiler);
    end
  else begin
     if CoordX='' then Say ('Бот не готов идти за тобой - CoordX!');
     if LeaderID='' then Say ('Бот не готов идти за тобой - LeaderID!');
  end;
end;
//атаковать цель командира
procedure Attack;
begin
  if (CoordX<>'') and (TargetID<>'') then begin
      buf:=hstr('04')+TargetID+CoordX+CoordY+CoordZ+hstr('00');
      SendToServerEX(Spoiler);
      buf:=hstr('04')+TargetID+CoordX+CoordY+CoordZ+hstr('00');
      SendToServerEX(Spoiler);
  end;
end;
//Сесть/встать
procedure Sit;
begin
  buf:=hstr('45 00 00 00 00 00 00 00 00 00');
  SendToServerEX(Spoiler);
end;
//спойлить цель командира и атаковать
procedure Spoil;
begin
  if (CoordX<>'') and (TargetID<>'') then begin
      Say('Спойли цель!');
      buf:=hstr('04')+TargetID+CoordX+CoordY+CoordZ+hstr('00');
      SendToServerEX(Spoiler);
      //RequestMagicSkillUse Spoil
      buf:=hstr('2F FE 00 00 00 00 00 00 00 00');
      SendToServerEX(Spoiler);
  end
  else begin
     if CoordX='' then Say ('Бот не готов спойлить - CoordX!');
     if TargetID='' then Say ('Бот не готов спойлить - TargetID!');
  end;
end;
//свипать цель командира
procedure Sweep;
begin
  if (CoordX<>'') and (TargetID<>'') then begin
    buf:=hstr('04')+TargetID+CoordX+CoordY+CoordZ+hstr('00');
    SendToServerEX(Spoiler);
    buf:=hstr('2F 2A 00 00 00 00 00 00 00 00');
    SendToServerEX(Spoiler);
    TargetID:='';
    Spoiled:='0';
    Say('Юзаю cвип!');
  end
  else begin
     if CoordX='' then Say ('Бот не готов свипать - CoordX!');
     if TargetID='' then Say ('Бот не готов свипать - TargetID!');
  end;
end;
Procedure SaveCoord;
begin
      //координаты бота
      //запоминаем координаты (адреса постоянны)
      CoordX:= pck[2] + pck[3] + pck[4] + pck[5];
      CoordY:= pck[6] + pck[7] + pck[8] + pck[9];
      CoordZ:= pck[10] + pck[11] + pck[12] + pck[13];
      //для отладки
      //Say('Запоминаю свои координаты.');
end;
//**************************************************************
//                 Вызывается при включении скрипта
//**************************************************************
procedure Init;
begin
    Spoiled:='0';
end;
//**************************************************************
//                 Вызывается при выключении скрипта
//**************************************************************
procedure Free;
begin
end;
//******************************************************************************
// вызывается при приходе каждого пакета, если скрипт включен
//******************************************************************************
begin
  //не обрабатываем пустые пакеты
  if pck='' then exit;
  //****************************************************************************
  //если от сервака принят пакет с ИД и Координатами членов пати то
  if FromServer and (ConnectName=Leader) and (pck[1]=#$a7) then begin
      //запоминаем ИД командира
      LeaderID:=pck[6] + pck[7] + pck[8] + pck[9];
      Say('Запомнил ИД лидера');
  end;
  //если от сервака принят пакет с UserInfo
  if FromServer and (ConnectName=Leader) and (pck[1]=#$04) then begin //and (LeaderID='')
      //Запоминаем собственный ИД
      LeaderID:=pck[18] + pck[19] + pck[20] + pck[21];
      Say('Запомнил ИД лидера');
  end;
  //если от сервака принят пакет с UserInfo
  if FromServer and (SpoilerID='') and (ConnectName=Spoiler) and (pck[1]=#$04) then begin
      //Запоминаем ИД бота
      SpoilerID:=pck[18] + pck[19] + pck[20] + pck[21];
      Say('Запомнил ИД бота');
  end;
{  //пакет TargetSelect
  //если принят пакет со сменой таргета у командира то
  if FromServer and (ConnectName=Leader) and (pck[1]=#$29) then begin
     if (LeaderID=pck[2]+pck[3]+pck[4]+pck[5]) then begin //and ((TargetID='') or (TargetID<>pck[6]+pck[7]+pck[8]+pck[9])) then begin
        //запоминаем ИД таргета командира для ассиста
        TargetID:= pck[6]+pck[7]+pck[8]+pck[9];
        Say('Это ИД таргета.');
        Spoiled:='0';
     end;
  end;
}
  //пакет TargetSelect
  //если принят пакет со сменой таргета у командира то
  if FromServer and (ConnectName=Leader) and (pck[1]=#$a6) then begin
        //запоминаем ИД таргета командира для ассиста
        TargetID:=pck[2]+pck[3]+pck[4]+pck[5];
        Say('Это ИД таргета.');
        Spoiled:='0';
  end;
  //пакет ValidatePosition
  //принят пакет от клиента с кординатами
  if FromClient and (ConnectName=Spoiler) and (pck[1]=#$48) then begin
      //координаты бота
      SaveCoord;
  end;
  //пакет Die (моб умер)
  //если скрипт уже перехватил координаты и все значения для переменных
  if FromServer and (ConnectName=Spoiler) and (pck[1]=#$06) and (TargetID=pck[2]+pck[3]+pck[4]+pck[5]) then begin
    //юзаем cвип (предполагая что в таргет брать ненужно, т.к. мы его спойлили
    //и труп остался в таргете у бота)
    Sweep;
  end;
  //пакет TargetUnselected
  //командир отменил цель
  if FromServer and (ConnectName=Spoiler) and (pck[1]=#$2a) and (LeaderID=pck[2]+pck[3]+pck[4]+pck[5]) then begin
    TargetID:='';
    Spoiled:='0';
    //FollowLeader;
  end;
  //пакет SystemMessage
  //SystemMessage=64 65 01 00 00 00 00 00 00 -  already spoiled
  //SystemMessage=64 64 02 00 00 00 00 00 00 - spoil activated
  //больше не спойлить цель, если сработал спойл (вроде так)
  if FromServer and (ConnectName=Spoiler) and (pck[1]+pck[2]+pck[3]=#$64#$64#$02) then Spoiled:='1';
  //пакет Attack
  //атаковать, если командир напал на цель
  if FromServer and (ConnectName=Spoiler) and (pck[1]=#$05) and (LeaderID=pck[2]+pck[3]+pck[4]+pck[5]) then begin
      if (CoordX<>'') and (TargetID<>'') then begin
          buf:=hstr('04')+TargetID+CoordX+CoordY+CoordZ+hstr('00');
          SendToServerEX(Spoiler);
          //можно попробовать расскоментировать, чтобы не спойлил все время
          if Spoiled='0' then begin
              Say('Спойлю цель!');
              //посылаем пакет RequestMagicSkillUse Spoil
              buf:=hstr('2F FE 00 00 00 00 00 00 00 00');
              SendToServerEX(Spoiler);
          end;
      end;
  end;
  //*****************************************************************
  //Команды лидера
  //*****************************************************************
  //пакет Say2
  if FromClient and (ConnectName=Leader) and (pck[1]=#$38) then begin
      Cmd:=ReadS(2);
      case Cmd of
        '1':
          begin
            pck:='';
            FollowLeader;
          end;
        '2':
          begin
            pck:='';
            Spoil;
          end;
        '3':
          begin
            pck:='';
            Sit;
          end;
      end;
      exit;
  end;
  //*****************************************************************
end.
__________________
| Для самых ленивый | Телепаты в отпуске |Мы работаем над этим |
Не умеешь - учись, не хочешь учиться - плати © Суровый Закон Жизни


NLObP вне форума   Ответить с цитированием
Ответ

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


Опции темы
Опции просмотра

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

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


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

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

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