PDA

Просмотр полной версии : [Скрипт] 2 скрипт-бота.


lSiml
03.05.2010, 17:41
Вся информация и скрипты взяты с _[Ссылки могут видеть только зарегистрированные и активированные пользователи]




Бот#1
Бот Локомотив(сам не тестил):
2604
2605 работает только под грацию

Бот настраивается из самой игры. Весь бот это 1 скрипт. Думаю объеснять как запустить не надо.

Бот#2
SKYbot-dll бот:

возможности:
умеет качаться в ограниченном круге,
круг можно ограничить по Z оси чтоб не мочил тех мобов что под землёй,
имеет мини карту с возможностью масштабирования,
если уперается в дерево или камень то пытается её обойти,
если вы юзнёте в процессе кача бутылку хп то он запоминает её ид и юзает её когда хп ниже 70%,
садится когда хп 55% и встаёт при 100%,
все эти значения принятые по умолчанию можно изменить в main.dpr или привязать эти переменные к каким то событиям в форме.

бот работает через dll файл, в скрипте(находиться в архивах выложеных ниже) нужно будет прописать точный путь к этому файлу.

2603
2598
распакуете в 1 папку, как запустить думаю разберётесь.
Если будут возникать вопросы задавайте если смагу отвечю сам, если нет дам ссылку на первоисточники мб там чтото найдёте.

3 бот найдён после создания темы поэтому в названии написано "2 бота"

Бот#3 под Грацию пт2.

1. на ил и ниже точно работать не будет (нужна серьезная переработка хтмл. а я манал.)
2. Просьбы переделать под не пт2 или под пт на котором оно чегото косячит будут просто убиваться. сами разбирайтесь. все предельно просто и так.
3. работать будет только с последней версией пх. (все ниже 141й не имеют требуемых функций в структуре плагинов)
4. Протестировано на пт2. под остальные грации скорей всего нужна адаптация скрипта. (кстати. некоторые пт2 отличаються пакетами itemlist/inventoryupdate, я уже попытался это учесть в скрипте)
5. Все действия по разбору и конструированию пакетов в скрипте. лезть в длл для адаптации - НЕ НУЖНО.
6. функционал наращивать буду по своему усмотрению :P

прочитали все что выше красненьким ? теперь можете приступать к установке
1. распаковать содержимое архива с плагином (igExt.rar) в папку plugins пакетхака.
2. запустить пх.
3. меню "автоматизация - плагины", установить галочку напротив Igext
4. меню "автоматизация - скрипты", поместить содержимое скрипта с текстового файла прикрепленного ниже (Script.txt) в созданый наново скрипт. (для каждого игрока ботящего через этот плагин должен быть свой скрипт)
5. отредактировать
* characterName (имя персонажа)
* SettingsName (имя файла настроек персонажа, пойдет и имя игрока. главное чтобы не было в имени символов которые не могут быть использоваться в имени файла)
* DataFolder полный путь к файлам настроек дллины (последний слеш НЕ нужен)
все остальное - по вашему усмотрению.
6. отметить скрипт к использованию.
7. запустить игру и в игре тыкнуть greetings. (соц действие "привет")
8. настроить самого бота и радоваться жизни.


умеет тупить.
умеет бегать и гасить мобов скилами или мили атаками (настройки скилов практически идентичны волкеровским) в определенной зоне
умеет пикапить лут
умеет садиться на рест (и бежать на рестпоинт)
умеет пить банки или юзать скилы для хилла
умеет бафаться
умеет спойлить/свипить
умеет давать здачи сагрившимся мобам (и возможно даже игрокам.. не проверял.. желающих не было).
умеет запоминать какого колва мп ему не хватило для юзания конкретного скила.. отсюда тупит с этим делом все меньше и меньше.
и прочие мелочи
короче.. бот.
настраиваеться прям в игре через хтмл рожу.
Проверялся на sibnet и centurion (обе пт2)

2600
2601
2602

для тех кто собираеться адаптировать скрипт под "другую" грацию:

чтобы узнать какие параметры нужно передать функции "экспортирующейся" из плагина тыкаем ctrl+space
к примеру
PckChangeWaitType требует 2 параметра. обжектайди "обьекта" который сел или встал и собственно параметр IsSit (true-сел, false-встал)

~Ajerizo~
03.05.2010, 18:53
Выложи пожалуйста скрипты для ответа при появлении РБ.
Чтобы твинк находящийся около определнного РБ например АК.
Кричал в ПМ мейну о появлении РБ.
Также не помешает пара скриптов на основные и затребованные веши: спойл, здача профессий.

lSiml
03.05.2010, 19:25
Выложи пожалуйста скрипты для ответа при появлении РБ.
Чтобы твинк находящийся около определнного РБ например АК.
Кричал в ПМ мейну о появлении РБ.
Также не помешает пара скриптов на основные и затребованные веши: спойл, здача профессий.


слежка за рб:
//Следим за РБ by NLObP для L2PacketHack v.3.1.9+ by Xkor
program spy;
{************************************************* *******************************
Возможности скрипта:
--------------------
0.1
+ Панель управления;
+ Посылает приватное сообщение игроку, когда увидит РБ;

Проверялось на TheAbyss.ru x300(interlude)

Скрипт распространяется как есть, и я не несу ответственности за то, что
ВЫ натворили у себя, его используя.

MyICQ 402988808
************************************************** ******************************}

//............................................
//Список констант
const
Name='Teremok'; //Вписать сюда имя чара
//установить константу в зависимости от типа игры (С4 или Интерлюд)
interlude=true; //Interlude - true, C4 - false
//kID=1000000; //коэфф вычитаемый из NpcID C4 lagam.net
kID=1023000; //коэфф вычитаемый из NpcID C6 theAbyss.ru

//............................................
//Список переменных
var
PlayerID, PlayerOID:integer;
PlayerName, TmpName, _message : string;
NpcID,NpcOID:integer;
ready : boolean;
timer : TTimer;
FormMain : TForm; //Создаваемая форма
Splitter1, Splitter2 : TSplitter;
Stats, Msg : TMemo;
Panel1 : TPanel;
GroupBox2 : TGroupBox;
Label2, Label4, Label12, Label13 : TLabel;
CheckBoxNpc : TCheckBox;
ComboBoxNpc : TComboBox;
ButtonStart, ButtonStop : TButton;
CheckBoxPlayer : TCheckBox;
ComboBoxPlayer : TComboBox;
EditNpcID, EditPlayerID, EditPlayerOID, EditNpcOID : TEdit;
Label1, Label3 : TLabel;
Edit1, Edit2 : TEdit;
//............................................
//*************************************
//Обработчики событий для элементов управления на форме
//......................................
//CheckBoxNpc
procedure CheckBoxNpc_Click(Sender: TCheckBox);
//Event : OnClick
begin
if CheckBoxNpc.Checked
then begin
EditNpcID.text:=Inttostr(NpcID); //inttostr(sumNpc(NpcID));
ComboBoxNpc.Enabled:=false; //выключаем
end else begin
NpcID:=0; //отмена
NpcOID:=0;
ComboBoxNpc.Enabled:=true; //включаем
EditNpcOID.Text:='0';
EditNpcID.text:='0';
end;
end;
//......................................
//......................................
//ComboBoxNpc
procedure ComboBoxNpc_Click(Sender: TComboBox);
//Event : OnClick
begin
NpcID:=ExtractIDValues(ComboBoxNpc.Items.Strings[ComboBoxNpc.ItemIndex]);
end;
//......................................
//......................................
//CheckBoxPlayer
procedure CheckBoxPlayer_Click(Sender: TCheckBox);
//Event : OnClick
begin
if CheckBoxPlayer.Checked
then begin
PlayerName:=TmpName;
ComboBoxPlayer.Enabled:=false; //выключаем
end else begin
PlayerID:=0; //отмена
PlayerOID:=0;
ComboBoxPlayer.Enabled:=true; //включаем
end;
end;
//......................................
//......................................
//ComboBoxPlayer
procedure ComboBoxPlayer_Click(Sender: TComboBox);
//Event : OnClick
begin
TmpName:=ComboBoxPlayer.Items.Strings[ComboBoxPlayer.ItemIndex];
EditPlayerID.text:=TmpName;
end;
//......................................
//......................................
//ButtonStart
procedure ButtonStart_Click(Sender: TButton);
//Event : OnClick
begin
if CheckBoxPlayer.Checked and CheckBoxNpc.Checked
then begin
msg.Lines.Add('Команда Старт!!!');
ready:=true; //готовы к работе
timer.interval:=strtoint(edit1.text);
//для версии 3.1.9+ можно попробовать отключить клиента
//Варнинг! Опасно для жизни! =)
//buf:=#$7E;
//SendToClientEx(Name);
ButtonStop.Enabled := TRUE;
ButtonStart.Enabled := FALSE;
end else
msg.Lines.Add('Для работы скрипта выбери РБ и Игрока');
end;
//......................................
//......................................
//ButtonStop
procedure ButtonStop_Click(Sender: TButton);
//Event : OnClick
begin
msg.Lines.Add('Команда Стоп!!!');
timer.enabled:=false;
ready:=false;
ButtonStop.Enabled := FALSE;
ButtonStart.Enabled := TRUE;
end;
//......................................
//......................................
procedure Edit1_Exit(Sender: TEdit);
//Event : OnExit
begin
// MyHPID:=ExtractIDValues(ComboBoxHPotion.Npcs.Strin gs[ComboBoxHPotion.ItemIndex]);
// EditHPotionID.Text:=Inttostr(FindNpc(MyHPID));
// EditHPotionOID.text:=inttostr(NpcBase2[1,1]);
end;
//......................................
//*************************************
procedure Free_FormMain;
//Освобождаем ресурсы ...
begin
TRY
if FormMain<>NIL then begin
FormMain.Free;
FormMain:=NIL;
end;
FINALLY
END;
end; //Free_FormMain
//========================
//========================
function Create_FormMain : TForm;
//Создаем форму и соотв. компоненты на ней ...
Var
Yes : boolean;
begin
Yes := FALSE;
Result := TForm.Create(nil);

TRY
//------------------------
//Свойства формы
Result.Caption := 'Spy by NLObP v.0.2';
Result.Left := 397;
Result.Top := 233;
Result.Width := 581;
Result.Height := 205;
Result.FormStyle := fsNormal;
Result.Position := poDesigned;
Result.BorderStyle := bsSizeable;
Result.BorderWidth := 0;
Result.WindowState := wsNormal;
Result.Color := clBtnFace;
Result.Font.Name := 'Tahoma';
Result.Font.Size := 8;
Result.Font.Color := clWindowText;
Result.Font.CharSet:= 1;
//------------------------
//......................................
//Splitter1
Splitter1 := TSplitter.Create(Result);
Splitter1.Parent := Result;
Splitter1.Align := alBottom;
Splitter1.Color := clBtnFace;
Splitter1.Left := 0;
Splitter1.Top := 103;
Splitter1.Width := 573;
Splitter1.Height := 3;
Splitter1.Visible := TRUE;
Splitter1.Tag := 0;
//......................................
//......................................
//Splitter2
Splitter2 := TSplitter.Create(Result);
Splitter2.Parent := Result;
Splitter2.Align := alRight;
Splitter2.Color := clBtnFace;
Splitter2.Left := 442;
Splitter2.Top := 0;
Splitter2.Width := 1;
Splitter2.Height := 103;
Splitter2.Visible := TRUE;
Splitter2.Tag := 0;
//......................................
//......................................
//Stats
Stats := TMemo.Create(Result);
Stats.Parent := Result;
Stats.Left := 443;
Stats.Top := 0;
Stats.Width := 130;
Stats.Height := 103;
Stats.Visible := TRUE;
Stats.Tag := 0;
Stats.Enabled := TRUE;
Stats.Hint := '';
Stats.ShowHint := FALSE;
Stats.Font.Name := 'Tahoma';
Stats.Font.Size := 8;
Stats.Font.Color := clWindowText;
Stats.Color := clWindow;
Stats.TabOrder := 0;
Stats.TabStop := TRUE;
Stats.Align := alRight;
Stats.WordWrap := TRUE;
Stats.Alignment := taLeftJustify;
Stats.WantTabs := FALSE;
Stats.WantReturns := TRUE;
Stats.HideSelection := TRUE;
Stats.MaxLength := 0;
Stats.OEMConvert := FALSE;
Stats.ReadOnly := FALSE;
Stats.ScrollBars := ssNone;
//......................................
//......................................
//Msg
Msg := TMemo.Create(Result);
Msg.Parent := Result;
Msg.Left := 0;
Msg.Top := 106;
Msg.Width := 573;
Msg.Height := 65;
Msg.Visible := TRUE;
Msg.Tag := 0;
Msg.Enabled := TRUE;
Msg.Hint := '';
Msg.ShowHint := FALSE;
Msg.Font.Name := 'Tahoma';
Msg.Font.Size := 8;
Msg.Font.Color := clWindowText;
Msg.Color := clWindow;
Msg.TabOrder := 1;
Msg.TabStop := TRUE;
Msg.Align := alBottom;
Msg.WordWrap := TRUE;
Msg.Alignment := taLeftJustify;
Msg.WantTabs := FALSE;
Msg.WantReturns := TRUE;
Msg.HideSelection := TRUE;
Msg.MaxLength := 0;
Msg.OEMConvert := FALSE;
Msg.ReadOnly := FALSE;
Msg.ScrollBars := ssNone;
//......................................
//......................................
//Panel1
Panel1 := TPanel.Create(Result);
Panel1.Parent := Result;
Panel1.Left := 0;
Panel1.Top := 0;
Panel1.Width := 442;
Panel1.Height := 103;
Panel1.Visible := TRUE;
Panel1.Tag := 0;
Panel1.Enabled := TRUE;
Panel1.Hint := '';
Panel1.ShowHint := FALSE;
Panel1.Caption := '';
Panel1.Align := alClient;
Panel1.Color := clBtnFace;
Panel1.Font.Name := 'Tahoma';
Panel1.Font.Size := 8;
Panel1.Font.Color := clWindowText;
Panel1.Font.CharSet := 1;
Panel1.BevelWidth := 1;
Panel1.BorderWidth := 0;
Panel1.BevelInner := bvNone;
Panel1.BevelOuter := bvRaised;
Panel1.TabOrder := 2;
Panel1.TabStop := FALSE;
Panel1.AutoSize := FALSE;
//......................................
//......................................
//GroupBox2
GroupBox2 := TGroupBox.Create(Result);
GroupBox2.Parent := Panel1;
GroupBox2.Left := 1;
GroupBox2.Top := 1;
GroupBox2.Width := 440;
GroupBox2.Height := 101;
GroupBox2.Visible := TRUE;
GroupBox2.Tag := 0;
GroupBox2.Enabled := TRUE;
GroupBox2.Hint := '';
GroupBox2.ShowHint := FALSE;
GroupBox2.Caption := 'Настройки';
GroupBox2.Align := alClient;
GroupBox2.Color := clBtnFace;
GroupBox2.Font.Name := 'Tahoma';
GroupBox2.Font.Size := 8;
GroupBox2.Font.Color := clWindowText;
GroupBox2.Font.CharSet := 1;
GroupBox2.TabOrder := 0;
GroupBox2.TabStop := FALSE;
//......................................
//......................................
//Label1
Label1 := TLabel.Create(Result);
Label1.Parent := GroupBox2;
Label1.Left := 10;
Label1.Top := 70;
Label1.Width := 58;
Label1.Height := 13;
Label1.Visible := TRUE;
Label1.Tag := 0;
Label1.Enabled := TRUE;
Label1.Hint := '';
Label1.ShowHint := FALSE;
Label1.Caption := 'Период посылки:';
Label1.Transparent := TRUE;
Label1.WordWrap := FALSE;
Label1.Alignment := taLeftJustify;
Label1.Layout := tlTop;
Label1.AutoSize := TRUE;
Label1.Align := alNone;
Label1.Font.Name := 'Tahoma';
Label1.Font.Size := 8;
Label1.Font.Color := clWindowText;
Label1.Color := clBtnFace;
//......................................
{ //......................................
//Label1
Label3 := TLabel.Create(Result);
Label3.Parent := GroupBox2;
Label3.Left := 170;
Label3.Top := 70;
Label3.Width := 58;
Label3.Height := 13;
Label3.Visible := TRUE;
Label3.Tag := 0;
Label3.Enabled := TRUE;
Label3.Hint := '';
Label3.ShowHint := FALSE;
Label3.Caption := 'Мин.:';
Label3.Transparent := TRUE;
Label3.WordWrap := FALSE;
Label3.Alignment := taLeftJustify;
Label3.Layout := tlTop;
Label3.AutoSize := TRUE;
Label3.Align := alNone;
Label3.Font.Name := 'Tahoma';
Label3.Font.Size := 8;
Label3.Font.Color := clWindowText;
Label3.Color := clBtnFace;
//......................................}
//......................................
//Edit1
Edit1 := TEdit.Create(Result);
Edit1.Parent := GroupBox2;
Edit1.Left := 99;
Edit1.Top := 67;
Edit1.Width := 60;
Edit1.Height := 21;
Edit1.Visible := TRUE;
Edit1.Tag := 0;
Edit1.Enabled := TRUE;
Edit1.Hint := 'Введи период посылки сообщения в мс';
Edit1.ShowHint := TRUE;
Edit1.Text := '5000';
Edit1.Font.Name := 'Tahoma';
Edit1.Font.Size := 8;
Edit1.Font.Color := clWindowText;
Edit1.Color := clWindow;
Edit1.TabOrder := 5;
Edit1.TabStop := TRUE;
Edit1.ReadOnly := FALSE;
Edit1.MaxLength := 0;
Edit1.AutoSize := TRUE;
Edit1.OnExit := @Edit1_Exit;
//......................................
{ //......................................
//Edit2
Edit2 := TEdit.Create(Result);
Edit2.Parent := GroupBox2;
Edit2.Left := 199;
Edit2.Top := 67;
Edit2.Width := 60;
Edit2.Height := 21;
Edit2.Visible := TRUE;
Edit2.Tag := 0;
Edit2.Enabled := TRUE;
Edit2.Hint := 'Какого уровня смогли достичь';
Edit2.ShowHint := TRUE;
Edit2.Text := '0';
Edit2.Font.Name := 'Tahoma';
Edit2.Font.Size := 8;
Edit2.Font.Color := clWindowText;
Edit2.Color := clWindow;
Edit2.TabOrder := 5;
Edit2.TabStop := FALSE;
Edit2.ReadOnly := TRUE;
Edit2.MaxLength := 0;
Edit2.AutoSize := TRUE;
//......................................}
//......................................
//Label2
Label2 := TLabel.Create(Result);
Label2.Parent := GroupBox2;
Label2.Left := 416;
Label2.Top := 19;
Label2.Width := 18;
Label2.Height := 13;
Label2.Visible := TRUE;
Label2.Tag := 0;
Label2.Enabled := TRUE;
Label2.Hint := '';
Label2.ShowHint := FALSE;
Label2.Caption := '';
Label2.Transparent := TRUE;
Label2.WordWrap := FALSE;
Label2.Alignment := taLeftJustify;
Label2.Layout := tlTop;
Label2.AutoSize := TRUE;
Label2.Align := alNone;
Label2.Font.Name := 'Tahoma';
Label2.Font.Size := 8;
Label2.Font.Color := clWindowText;
Label2.Color := clBtnFace;
//......................................
//......................................
//Label4
Label4 := TLabel.Create(Result);
Label4.Parent := GroupBox2;
Label4.Left := 416;
Label4.Top := 43;
Label4.Width := 18;
Label4.Height := 13;
Label4.Visible := TRUE;
Label4.Tag := 0;
Label4.Enabled := TRUE;
Label4.Hint := '';
Label4.ShowHint := FALSE;
Label4.Caption := '';
Label4.Transparent := TRUE;
Label4.WordWrap := FALSE;
Label4.Alignment := taLeftJustify;
Label4.Layout := tlTop;
Label4.AutoSize := TRUE;
Label4.Align := alNone;
Label4.Font.Name := 'Tahoma';
Label4.Font.Size := 8;
Label4.Font.Color := clWindowText;
Label4.Color := clBtnFace;
//......................................
//......................................
//Label12
Label12 := TLabel.Create(Result);
Label12.Parent := GroupBox2;
Label12.Left := 273;
Label12.Top := 3;
Label12.Width := 33;
Label12.Height := 13;
Label12.Visible := TRUE;
Label12.Tag := 0;
Label12.Enabled := TRUE;
Label12.Hint := '';
Label12.ShowHint := FALSE;
Label12.Caption := 'NpcOID';
Label12.Transparent := TRUE;
Label12.WordWrap := FALSE;
Label12.Alignment := taLeftJustify;
Label12.Layout := tlTop;
Label12.AutoSize := TRUE;
Label12.Align := alNone;
Label12.Font.Name := 'Tahoma';
Label12.Font.Size := 8;
Label12.Font.Color := clWindowText;
Label12.Color := clBtnFace;
//......................................
//......................................
//Label13
Label13 := TLabel.Create(Result);
Label13.Parent := GroupBox2;
Label13.Left := 349;
Label13.Top := 3;
Label13.Width := 35;
Label13.Height := 13;
Label13.Visible := TRUE;
Label13.Tag := 0;
Label13.Enabled := TRUE;
Label13.Hint := '';
Label13.ShowHint := FALSE;
Label13.Caption := 'NpcID';
Label13.Transparent := TRUE;
Label13.WordWrap := FALSE;
Label13.Alignment := taLeftJustify;
Label13.Layout := tlTop;
Label13.AutoSize := TRUE;
Label13.Align := alNone;
Label13.Font.Name := 'Tahoma';
Label13.Font.Size := 8;
Label13.Font.Color := clWindowText;
Label13.Color := clBtnFace;
//......................................
//......................................
//CheckBoxNpc
CheckBoxNpc := TCheckBox.Create(Result);
CheckBoxNpc.Parent := GroupBox2;
CheckBoxNpc.Left := 18;
CheckBoxNpc.Top := 18;
CheckBoxNpc.Width := 66;
CheckBoxNpc.Height := 17;
CheckBoxNpc.Visible := TRUE;
CheckBoxNpc.Tag := 0;
CheckBoxNpc.Enabled := TRUE;
CheckBoxNpc.Hint := 'Поставить галочку если выбрал за кем следить';
CheckBoxNpc.ShowHint := TRUE;
CheckBoxNpc.Caption := 'Рейд Босс';
CheckBoxNpc.Font.Name := 'Tahoma';
CheckBoxNpc.Font.Size := 8;
CheckBoxNpc.Font.Color := clWindowText;
CheckBoxNpc.Color := clBtnFace;
CheckBoxNpc.TabOrder := 0;
CheckBoxNpc.TabStop := TRUE;
CheckBoxNpc.Checked := FALSE;
CheckBoxNpc.AllowGrayed := FALSE;
CheckBoxNpc.State := cbUnchecked;
CheckBoxNpc.OnClick := @CheckBoxNpc_Click;
//......................................
//......................................
//ComboBoxNpc
ComboBoxNpc := TComboBox.Create(Result);
ComboBoxNpc.Parent := GroupBox2;
ComboBoxNpc.Left := 90;
ComboBoxNpc.Top := 16;
ComboBoxNpc.Width := 169;
ComboBoxNpc.Height := 21;
ComboBoxNpc.Visible := TRUE;
ComboBoxNpc.Tag := 0;
ComboBoxNpc.Enabled := TRUE;
ComboBoxNpc.Hint := 'Выбери из списка Рейд Босса';
ComboBoxNpc.ShowHint := TRUE;
ComboBoxNpc.Text := 'ComboBoxNpc';
ComboBoxNpc.Font.Name := 'Tahoma';
ComboBoxNpc.Font.Size := 8;
ComboBoxNpc.Font.Color := clWindowText;
ComboBoxNpc.Color := clWindow;
ComboBoxNpc.TabOrder := 1;
ComboBoxNpc.TabStop := TRUE;
ComboBoxNpc.Sorted := FALSE;
ComboBoxNpc.ItemHeight := 13;
ComboBoxNpc.Items.ADD('25035=Shilens Messenger Cabrio (Raid Boss)');
ComboBoxNpc.Items.ADD('29019=Antharas');
ComboBoxNpc.Items.ADD('29020=Baium (когда он в камне)');
ComboBoxNpc.Items.ADD('29025=Baium (когда он моб)');
ComboBoxNpc.Items.ADD('29001=Queen Ant');
ComboBoxNpc.Items.ADD('25220=Death Lord Hallate (Raid Boss)');
ComboBoxNpc.Items.ADD('25054=Kernon (Raid Boss )');
ComboBoxNpc.Items.ADD('25126=Longhorn Golkonda (Raid Boss)');
//test
ComboBoxNpc.Items.ADD('8573=Monakan Fishermens Guild Member');
ComboBoxNpc.ItemIndex := 0;
ComboBoxNpc.OnClick := @ComboBoxNpc_Click;
//......................................
//......................................
//ButtonStart
ButtonStart := TButton.Create(Result);
ButtonStart.Parent := GroupBox2;
ButtonStart.Left := 263;
ButtonStart.Top := 67;
ButtonStart.Width := 75;
ButtonStart.Height := 25;
ButtonStart.Visible := TRUE;
ButtonStart.Tag := 0;
ButtonStart.Enabled := TRUE;
ButtonStart.Hint := '';
ButtonStart.ShowHint := FALSE;
ButtonStart.Caption := 'Start';
ButtonStart.Font.Name := 'Tahoma';
ButtonStart.Font.Size := 8;
ButtonStart.Font.Color := clWindowText;
ButtonStart.Font.CharSet := 1;
ButtonStart.TabOrder := 2;
ButtonStart.TabStop := TRUE;
ButtonStart.Cancel := FALSE;
ButtonStart.ModalResult := 0;
ButtonStart.OnClick := @ButtonStart_Click;
//......................................
//......................................
//ButtonStop
ButtonStop := TButton.Create(Result);
ButtonStop.Parent := GroupBox2;
ButtonStop.Left := 339;
ButtonStop.Top := 67;
ButtonStop.Width := 75;
ButtonStop.Height := 25;
ButtonStop.Visible := TRUE;
ButtonStop.Tag := 0;
ButtonStop.Enabled := FALSE;
ButtonStop.Hint := '';
ButtonStop.ShowHint := FALSE;
ButtonStop.Caption := 'Stop';
ButtonStop.Font.Name := 'Tahoma';
ButtonStop.Font.Size := 8;
ButtonStop.Font.Color := clWindowText;
ButtonStop.Font.CharSet := 1;
ButtonStop.TabOrder := 3;
ButtonStop.TabStop := TRUE;
ButtonStop.Cancel := FALSE;
ButtonStop.ModalResult := 0;
ButtonStop.OnClick := @ButtonStop_Click;
//......................................
//......................................
//CheckBoxPlayer
CheckBoxPlayer := TCheckBox.Create(Result);
CheckBoxPlayer.Parent := GroupBox2;
CheckBoxPlayer.Left := 18;
CheckBoxPlayer.Top := 41;
CheckBoxPlayer.Width := 66;
CheckBoxPlayer.Height := 23;
CheckBoxPlayer.Visible := TRUE;
CheckBoxPlayer.Tag := 0;
CheckBoxPlayer.Enabled := TRUE;
CheckBoxPlayer.Hint := 'Поставить галочку если выбрал кому посылать сообщение';
CheckBoxPlayer.ShowHint := TRUE;
CheckBoxPlayer.Caption := 'Игрок';
CheckBoxPlayer.Font.Name := 'Tahoma';
CheckBoxPlayer.Font.Size := 8;
CheckBoxPlayer.Font.Color := clWindowText;
CheckBoxPlayer.Color := clBtnFace;
CheckBoxPlayer.TabOrder := 4;
CheckBoxPlayer.TabStop := TRUE;
CheckBoxPlayer.Checked := FALSE;
CheckBoxPlayer.AllowGrayed := FALSE;
CheckBoxPlayer.State := cbUnchecked;
CheckBoxPlayer.OnClick := @CheckBoxPlayer_Click;
//......................................
//......................................
//ComboBoxPlayer
ComboBoxPlayer := TComboBox.Create(Result);
ComboBoxPlayer.Parent := GroupBox2;
ComboBoxPlayer.Left := 90;
ComboBoxPlayer.Top := 40;
ComboBoxPlayer.Width := 169;
ComboBoxPlayer.Height := 21;
ComboBoxPlayer.Visible := TRUE;
ComboBoxPlayer.Tag := 0;
ComboBoxPlayer.Enabled := TRUE;
ComboBoxPlayer.Hint := 'Выбери из списка имя игрока, которому шлем сообщения';
ComboBoxPlayer.ShowHint := TRUE;
ComboBoxPlayer.Text := 'ComboBoxPlayer';
ComboBoxPlayer.Font.Name := 'Tahoma';
ComboBoxPlayer.Font.Size := 8;
ComboBoxPlayer.Font.Color := clWindowText;
ComboBoxPlayer.Color := clWindow;
ComboBoxPlayer.TabOrder := 5;
ComboBoxPlayer.TabStop := TRUE;
ComboBoxPlayer.Sorted := FALSE;
ComboBoxPlayer.ItemHeight := 13;
ComboBoxPlayer.Items.ADD('NLObP');
ComboBoxPlayer.Items.ADD('Teremok');
ComboBoxPlayer.ItemIndex := 0;
ComboBoxPlayer.OnClick := @ComboBoxPlayer_Click;
//......................................
//......................................
//EditNpcID
EditNpcID := TEdit.Create(Result);
EditNpcID.Parent := GroupBox2;
EditNpcID.Left := 341;
EditNpcID.Top := 16;
EditNpcID.Width := 72;
EditNpcID.Height := 21;
EditNpcID.Visible := TRUE;
EditNpcID.Tag := 0;
EditNpcID.Enabled := TRUE;
EditNpcID.Hint := '';
EditNpcID.ShowHint := FALSE;
EditNpcID.Text := '0';
EditNpcID.Font.Name := 'Tahoma';
EditNpcID.Font.Size := 8;
EditNpcID.Font.Color := clWindowText;
EditNpcID.Color := clWindow;
EditNpcID.TabOrder := 6;
EditNpcID.TabStop := TRUE;
EditNpcID.ReadOnly := TRUE;
EditNpcID.MaxLength := 0;
EditNpcID.AutoSize := TRUE;
//......................................
//......................................
//EditPlayerID
EditPlayerID := TEdit.Create(Result);
EditPlayerID.Parent := GroupBox2;
EditPlayerID.Left := 341;
EditPlayerID.Top := 40;
EditPlayerID.Width := 72;
EditPlayerID.Height := 21;
EditPlayerID.Visible := TRUE;
EditPlayerID.Tag := 0;
EditPlayerID.Enabled := TRUE;
EditPlayerID.Hint := '';
EditPlayerID.ShowHint := FALSE;
EditPlayerID.Text := '0';
EditPlayerID.Font.Name := 'Tahoma';
EditPlayerID.Font.Size := 8;
EditPlayerID.Font.Color := clWindowText;
EditPlayerID.Color := clWindow;
EditPlayerID.TabOrder := 7;
EditPlayerID.TabStop := TRUE;
EditPlayerID.ReadOnly := TRUE;
EditPlayerID.MaxLength := 0;
EditPlayerID.AutoSize := TRUE;
//......................................
//......................................
//EditPlayerOID
EditPlayerOID := TEdit.Create(Result);
EditPlayerOID.Parent := GroupBox2;
EditPlayerOID.Left := 263;
EditPlayerOID.Top := 40;
EditPlayerOID.Width := 72;
EditPlayerOID.Height := 21;
EditPlayerOID.Visible := TRUE;
EditPlayerOID.Tag := 0;
EditPlayerOID.Enabled := TRUE;
EditPlayerOID.Hint := '';
EditPlayerOID.ShowHint := FALSE;
EditPlayerOID.Text := '0';
EditPlayerOID.Font.Name := 'Tahoma';
EditPlayerOID.Font.Size := 8;
EditPlayerOID.Font.Color := clWindowText;
EditPlayerOID.Color := clWindow;
EditPlayerOID.TabOrder := 8;
EditPlayerOID.TabStop := TRUE;
EditPlayerOID.ReadOnly := TRUE;
EditPlayerOID.MaxLength := 0;
EditPlayerOID.AutoSize := TRUE;
//......................................
//......................................
//EditNpcOID
EditNpcOID := TEdit.Create(Result);
EditNpcOID.Parent := GroupBox2;
EditNpcOID.Left := 264;
EditNpcOID.Top := 16;
EditNpcOID.Width := 72;
EditNpcOID.Height := 21;
EditNpcOID.Visible := TRUE;
EditNpcOID.Tag := 0;
EditNpcOID.Enabled := TRUE;
EditNpcOID.Hint := '';
EditNpcOID.ShowHint := FALSE;
EditNpcOID.Text := '0';
EditNpcOID.Font.Name := 'Tahoma';
EditNpcOID.Font.Size := 8;
EditNpcOID.Font.Color := clWindowText;
EditNpcOID.Color := clWindow;
EditNpcOID.TabOrder := 9;
EditNpcOID.TabStop := TRUE;
EditNpcOID.ReadOnly := TRUE;
EditNpcOID.MaxLength := 0;
EditNpcOID.AutoSize := TRUE;
//......................................
Yes := TRUE;
FINALLY
if not Yes then begin
//Освобождаем ресурсы, если неудачно ...
if Result<>NIL then begin
Result.Free;
Result:=NIL;
end;
end;
END;
msg.Lines.Add('...');
Stats.Lines.Add('Запускаем окно с чаром или бота. Он следит за нужной целью и как только он увидит цель (пакет NpcInfo) начинает спамить в пм определённому чару, с определённым помежутком времени');
Result.Show;
end; //Create_FormMain
//========================
//========================
procedure Init; //Вызывается при включении скрипта
var
i:integer;
begin
FormMain:=Create_FormMain;
timer:=TTimer.Create(nil);
timer.OnTimer:=@OnTimer;
timer.enabled:=false;
timer.interval:=10000; //время задержки
ready:=false;
end;
//......................................
//************************************************** ****************************
procedure Free; //Вызывается при выключении скрипта
begin
// NpcBase:=nil; //нельзя так делать с массивом
timer.Free;
//достаточно освободить форму
Free_FormMain;
end;
//......................................
//************************************************** *************
//только для Пакетхак v.3.1.9+
procedure OnConnect(WithClient: Boolean); //Вызывается при установке соединения
begin
NoFreeOnClientDisconnect;
NoFreeOnServerDisconnect;
end;
//......................................
//************************************************** ****************************
//38=Say2:s(Text)d(Type)s(Target)
procedure Say2(msg:string);
begin
buf:=#$38;
WriteS(msg);
WriteD(2);
WriteS(PlayerName);
SendToServerEx(Name);
end;
//......................................
//************************************************** *************
function ExtractIDValues(sData: string): integer;
var
s: string;
i,j: integer;
begin
i:=0;
s:=sData;
i:=pos('=',s);
if i>=0 then
s:=copy(s,1,i-1);
try
result:=strtoint(s);
except
result:=0;
end;
end;
//............................................
//************************************************** ****************************
procedure OnTimer(Sender: TObject);
begin
msg.Lines.Add('Шлём сообщение PlayerName='+PlayerName);
//msg.Lines.Add(_message);
say2(_message);
end;
//......................................
//************************************************** ****************************
// вызывается при приходе каждого пакета, если скрипт включен
//************************************************** ****************************
begin
//************************************************** **************************
//не обрабатываем пустые пакеты
if pck='' then exit;
//......................................
//************************************************** **************************
if FromServer and ready then //если готовы то проверяем
case pck[1] of
//************************************************** *************
//пакет Die (моб умер)
//06=Die:h(CharID)d(d)d(HAsHideout)d(HasCastle)d(fla gs)d(sweepable)d(access)
#$06: begin
msg.Lines.Add('S>Пакет Die #$06 ObjectID='+IntToStr(ReadD(2)));
if (NpcOID=ReadD(2)) then begin
msg.Lines.Add('Убили моба ObjectID='+IntToStr(NpcOID)+' в '+TimeToStr(time));
_message:='Убили '+ComboBoxNpc.Items.Strings[ComboBoxNpc.ItemIndex]+' в '+TimeToStr(time);
end;
end;
//************************************************** *************
//12=DeleteObject:d(ObjectID)d(d)
#$12: begin
msg.Lines.Add('S>C $12 DeleteObject '+inttostr(ReadD(2)));
if (NpcOID=ReadD(2)) then begin
msg.Lines.Add('Пропал ожидаемый моб ObjectID='+IntToStr(NpcOID)+' в '+TimeToStr(time));
_message:='Пропал '+ComboBoxNpc.Items.Strings[ComboBoxNpc.ItemIndex]+' в '+TimeToStr(time);
end;
end;
//************************************************** *************
//16=NpcInfo:d(ObjectID)d(NpcTypeID)d(IsAttackable)d (X)d(Y)d(Z)d(Heading)
//d(d)d(Maspd)d(Paspd)d(runSpd)d(walkSpd)d(swimRSpd) d(swimWSpd)d(flRSpd)
//d(flWSpd)d(FlyRSpd)d(FlyWSpd)f(ProperMul)f(Paspd)f (CollisRadius)
//f(CollisHeight)d(RHand)d(d)d(LHand)b(nameabove)b(i sRun)b(isInFight)
//b(isAlikeDead)b(isSummoned)s(Name)s(Title)d(d)d(d) d(karma)d(abnEffect)
//d(d)d(d)d(d)d(d)b(c)b(Team)f(collisRadius)f(collis Height)d(d)
#$16: begin
msg.Lines.Add('S>Пакет NpcInfo #$16 NpcOID='+inttostr(ReadD(2))+' NpcID='+inttostr(ReadD(6)));
if (NpcID=ReadD(6)-kID) then begin
NpcOID:=ReadD(2);
EditNpcOID.text:=inttostr(NpcOID);
timer.enabled:=true;
msg.Lines.Add('Появился ожидаемый моб NpcID='+IntToStr(NpcID)+' в '+TimeToStr(time));
_message:='Появился '+ComboBoxNpc.Items.Strings[ComboBoxNpc.ItemIndex]+' в '+TimeToStr(time);
end;
end;
end;
end.

Все остальные поищи на _coderx.ru
Там всё должно быть))