Скриптинг Форум посвещенный созданию скриптов для L2PacketHack
08.07.2008, 23:10
#1
Новичок
Регистрация: 15.04.2008
Сообщений: 20
Сказал Спасибо: 4
Имеет 0 спасибок в 0 сообщенях
Следим за Рейд Боссами
Кто может зделать скрипт для рейдов. Суть такова.
Запускаеш окно с чаром или бота и он спамит таргет нужной цели (например /target Baium) и как тока он берёт его в таргет начинает спамить в пм определённому чару сообщения с определённым помежутком (пофик что). Ну и совсем было бы круто если бы ещё и звуковой сигнал можно было как-то впихнуть, но я не знаю можно ли через l2phx это зделать.
З.Ы. модеры плиз подправьте темку а то я малость опечатался
Последний раз редактировалось NLObP, 11.07.2008 в 04:00 .
10.07.2008, 15:39
#2
Новичок
Регистрация: 15.04.2008
Сообщений: 20
Сказал Спасибо: 4
Имеет 0 спасибок в 0 сообщенях
ID
25035 Shilen's Messenger Cabrio (Raid Boss )
29019 Antharas
29020 Baium (это когда он в камне и отображаеться как нпс) но могу спутать эти 2 ид (не нашол в файлах клиента расшифровку кто есть кто)
29025 Baium (это вроде када он моб)
29001 Queen Ant
25220 Death Lord Hallate (Raid Boss )
25054 Kernon (Raid Boss )
25126 Longhorn Golkonda (Raid Boss )
Добавлено через 10 минут
И если можно внести в скрипт несколько человек, которым будет слаться сообщения. NLObP, что-то наподобие той панельки, что ты делал для скрипта заточек, тока там графы выбора: мониторинг мобов, спискок людей кому отправлять, что отправлять и с какой переодичностью. А если, как сказал VORON можно зделать ещё и без клиента будет вообще идеально.
Последний раз редактировалось Miler, 10.07.2008 в 15:39 .
Причина: Добавлено сообщение
11.07.2008, 04:03
#3
Рыцарь
Регистрация: 25.02.2008
Адрес: г.Волгоград
Сообщений: 2,009
Сказал Спасибо: 1,285
Имеет 1,458 спасибок в 793 сообщенях
Вот в первом приближении. На РБ не проверял.
Как обычно, настраиваем скрипт для работы на своем сервере.
Изменяем:
Код:
Name='NLObP'; //Вписать сюда имя чара
//kID=1000000; //коэфф вычитаемый из NpcID C4 lagam.net
kID=1023000; //коэфф вычитаемый из NpcID C6 theAbyss.ru
Также, надо добавить/убавить/откорректировать в этих секциях для РБ и Игроков строчки вида:
Код:
ComboBoxNpc.Items.ADD('29019=Antharas');
delphi Код:
//......................................
//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;
//......................................
//......................................
//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.ItemIndex := 0 ;
ComboBoxPlayer.OnClick := @ComboBoxPlayer_Click;
//......................................
delphi Код:
//Следим за РБ by NLObP для L2PacketHack v.3.1.9+ by Xkor
//version 0.2 от 11.07.2008г.
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.Strings[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(flags)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(isRun)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(collisHeight)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 .
Последний раз редактировалось NLObP, 11.07.2008 в 12:48 .
За это сообщение NLObP нажился 6 спасибками от:
11.07.2008, 12:27
#4
Рыцарь
Регистрация: 25.02.2008
Адрес: г.Волгоград
Сообщений: 2,009
Сказал Спасибо: 1,285
Имеет 1,458 спасибок в 793 сообщенях
Цитата:
Сообщение от
Miler
Протестил, что-то у меня не работает. ИД брал из npcname-e.dat . тестил на мобе 20670=Crimson Drake и ещё несколько. Пакеты нпс инфо идут, а в пм нечего не пишеться.
kID=1023000; //коэфф вычитаемый из NpcID C6 theAbyss.ru
Коэффициент соответствует твоему серверу? Посмотри в NpcInfo какие ID стоят. Лучше всего проверять где есть 1-2 NPC, тогда можно точно коэффициент найти.
Чтобы слал в ПМ надо
старт нажать.
Заменил скрипт, теперь при отлове NpcInfo будет показывать NpcID.
Последний раз редактировалось NLObP, 11.07.2008 в 12:49 .
11.07.2008, 18:46
#5
Новичок
Регистрация: 15.04.2008
Сообщений: 20
Сказал Спасибо: 4
Имеет 0 спасибок в 0 сообщенях
Приходит несколько пакетов
S>Пакет NpcInfo #$16 NpcOID=1221649889 NpcID=1020670
S>Пакет NpcInfo #$16 NpcOID=1222677125 NpcID=1020668
S>Пакет NpcInfo #$16 NpcOID=1218485145 NpcID=1020674
S>Пакет NpcInfo #$16 NpcOID=1221650090 NpcID=1020669
S>Пакет NpcInfo #$16 NpcOID=1222685839 NpcID=1021000
Как расчитываеться kID из них?
11.07.2008, 19:32
#6
Рыцарь
Регистрация: 25.02.2008
Адрес: г.Волгоград
Сообщений: 2,009
Сказал Спасибо: 1,285
Имеет 1,458 спасибок в 793 сообщенях
Цитата:
Сообщение от
Miler
NpcID=1020670
Это, если отнять 1000000, будет 20670.
Запускаешь скрипт. Выходишь в место, где 1-2 NPC. Имена их знаешь. Берешь их NpcID и вычисляешь.
NpcID (от сервера) - коэфф. = NpcID который должен быть у тех 1-2 NPC которых видишь рядом.
Последний раз редактировалось NLObP, 11.07.2008 в 19:53 .
11.07.2008, 20:00
#7
Новичок
Регистрация: 15.04.2008
Сообщений: 20
Сказал Спасибо: 4
Имеет 0 спасибок в 0 сообщенях
Я всё настроил просто пара вещей наясна была. Как я понял из строки NpcID мы вычетаем ID и остаток и есть KID (до меня просто не дошло). Терь всё пашет на все 100%, офигенная вещь получилась спс. А как подправить, чтобы отправляло в пм нескольким людят сразу поочереди?
11.07.2008, 20:10
#8
Рыцарь
Регистрация: 25.02.2008
Адрес: г.Волгоград
Сообщений: 2,009
Сказал Спасибо: 1,285
Имеет 1,458 спасибок в 793 сообщенях
Цитата:
Сообщение от
Miler
Я всё настроил просто пара вещей наясна была. Как я понял из строки NpcID мы вычетаем ID и остаток и есть KID (до меня просто не дошло). Терь всё пашет на все 100%, офигенная вещь получилась спс. А как подправить, чтобы отправляло в пм нескольким людят сразу поочереди?
Да имено так. Главное знать настоящий NpcID.
Можно Say2 исправить, и заранее руками в скрипте прописать кому слать.
В инит пропиши
Код:
PlayerName:='012';
PlayerName1:='123';
PlayerName2:='234';
PlayerName3:='345';
а процедуру так исправь
Код:
procedure Say2(msg:string);
begin
buf:=#$38;
WriteS(msg);
WriteD(2);
WriteS(PlayerName);
SendToServerEx(Name);
buf:=#$38;
WriteS(msg);
WriteD(2);
WriteS(PlayerName2);
SendToServerEx(Name);
buf:=#$38;
WriteS(msg);
WriteD(2);
WriteS(PlayerName3);
SendToServerEx(Name);
end;
С панельки гиморно добавлять. Это еще комбобоксы добавить надо. Может и из одного можно несколько, я не знаю.
ЗЫЖ проверок только нет, что игрок введен, не проколись. Переменная PlayerName обязательно должна быть инициализирована!
Последний раз редактировалось NLObP, 11.07.2008 в 20:14 .
За это сообщение NLObP нажился спасибкой от:
12.07.2008, 06:52
#9
Новичок
Регистрация: 15.04.2008
Сообщений: 20
Сказал Спасибо: 4
Имеет 0 спасибок в 0 сообщенях
Сегодня ночью тестил на Shilens Messenger Cabrio. Всё обалденно сработало!! Когда рейд появился он начал спамить, что он тут, када его увели написало что пропал, ну и када мы его завалили написало в чат что рейд труп) Для тех кто будет юзать советую зделать так:
Запускаете скрипт на чара и пусть он шлёт сообщения на бота, а в боте поставьте, чтобы када ему пишут в пм он издавал сигнал.
13.07.2008, 02:04
#10
Новичок
Регистрация: 15.04.2008
Сообщений: 20
Сказал Спасибо: 4
Имеет 0 спасибок в 0 сообщенях
Тут другое. Нафига колоть баюма, надо его фармить) А скрипт универсален для любого моба (рейда). Тоесть очень легко паляться антквин, рейды на нублеса и другие. Не приходиться тупо альтабться сматреть када где рейд появился. И очень удобно что пишет время када он появился и када он умер. ТОесть если тя даже небыло на нём ты легко можеш посчитать когда рейд будет в следующий раз.мне от так пишет:
18:50:06 Gnum : Появился 20674=Doom Knight в 18:50:06
18:50:08 Gnum : Появился 20674=Doom Knight в 18:50:07
18:50:10 Gnum : Убили 20674=Doom Knight в 18:50:10
Для проверки на них тестил.
Добавлено через 12 минут
Возникла загвоздка. В тои на 3 или других этажах када врубаеш скрип он начинает с бешенной скоростью получать пакеты.
S>Пакет NpcInfo
Наверно это из за того что он и на соседних этажах захватывает мобов. И пакетхак начинает жрать кучю оперативы. Спустя 10 мин он есть 40%
цп и чем дальше тем хуже. У кого есть какие идеи решения проблемы?
Последний раз редактировалось Miler, 13.07.2008 в 02:04 .
Причина: Добавлено сообщение
Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения
HTML код Выкл.
Часовой пояс GMT +4, время: 03:17 .
vBulletin style designed by
MSC Team .
Powered by vBulletin® Version 3.6.11
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd. Перевод:
zCarot
Вы хотите чувствовать себя в безопасности? чоп Белган обеспечит её!