Регистрация Главная Пользователи Все разделы прочитаны
Сообщения за день Справка Регистрация

Скрипты для l2phx

-

Скрипты и перехват пакетов

- Скрипты и перехват пакетов

Ответ
 
Опции темы
Старый 29.12.2009, 23:23   #31
 Разведчик
Аватар для TAMBIK
 
TAMBIK на правильном пути
Регистрация: 08.11.2009
Сообщений: 19
Популярность: 58
Сказал(а) спасибо: 8
Поблагодарили 24 раз(а) в 15 сообщениях
 
По умолчанию Re: Скрипты для l2phx

Еще работает кое где
Код:
//  автор ТАМБИК
// Kamael-Hellbound
   const
   Name = 'TAMBIK';  // Имя 
procedure Init; 
begin
end;
procedure Free; 
begin
end;
// пати сам с собой
// чара кто будит приглашать в пати и предлогать трейд .можно грузить без l2phx
// кидаешь чару TAMBIK пати - скрипт принимает пати - 1раз
// кидаешь чару TAMBIK трейд - скрипт принимает пати - не больше
// положеного колличества членов пати 
// передаешь чару TAMBIK лидера пати
// выходишь из пати .итог = >> чар TAMBIK с собой в пати
//основная часть скрипта
//выполняется при приходе каждого пакета если скрипт включен
begin
if FromServer and (pck[1]=#$39) then begin  // вам приглашение в пати 
  buf:=#$43;
  WriteD(1); // принять пати
  SendToServerEx(Name);
  pck:='';
  exit;
  end;
begin
 if FromServer and (pck[1]=#$70) then begin//  вам трейд 
  buf:=#$55;
  WriteD(1); // принять пати
  SendToServerEx(Name);
  pck:='';
  exit;
  end;
 end;
end.
  Ответить с цитированием
Старый 06.01.2010, 09:41   #32
 Сержант
Аватар для ISharkI
 
ISharkI блестящий пример для подражанияISharkI блестящий пример для подражанияISharkI блестящий пример для подражанияISharkI блестящий пример для подражанияISharkI блестящий пример для подражанияISharkI блестящий пример для подражанияISharkI блестящий пример для подражанияISharkI блестящий пример для подражанияISharkI блестящий пример для подражанияISharkI блестящий пример для подражанияISharkI блестящий пример для подражания
Регистрация: 29.10.2009
Сообщений: 117
Популярность: 1783
Сказал(а) спасибо: 78
Поблагодарили 242 раз(а) в 79 сообщениях
Отправить сообщение для ISharkI с помощью ICQ
 
Post Re: Скрипты для l2phx

Код:
//FreedomEmulator v1.0beta
//скрипт скрывающий нпс и\или игроков
//помогает снять нагрузку с несчастного клиента
//при убивании пакетов активность можно посмотреть в отдельном окне
//тестировался на la2c6 abyss 10alpha
//(c)metalFan
const name=('metalFan');
var
frm,frm2: TForm;
Button1,Button2,Button3,Button4,Button5: TButton;
m:TMemo;
box:TGroupBox;
i,k,RaceID,SexID,ClassID: integer;
r1,r2,r3,s:boolean;
CharName,FName,VictimName,race,sex,class,message: string;
Inventory: array[0..79,0..9] of integer;
IdItem:real;
zu:Tlabel;
procedure Init; //Вызывается при включении скрипта
begin
//формочка
frm2 := TForm.Create(Application);
frm2.Caption := 'Activity (player\class\race\sex)';
frm2.BorderStyle := bsSizeable;
frm2.Position := poDesigned;
frm2.Width:=300;
frm2.Height:=200;
frm2.OnClose := @FormClose;
frm := TForm.Create(nil);
frm.Caption := 'FreedomEmulator by metalFan v1.0b';
frm.BorderStyle := bsDialog;
frm.Position := poScreenCenter;
frm.Width:=295;
frm.Height:=120;
frm.OnClose := @FormClose;
box:=TGroupBox.Create(nil);
box.parent:=frm;
box.Width:=273;
box.Height:=73;
box.Left := 8;
box.top := 8;
box.align:=alnone;
zu:=Tlabel.create(nil);
zu.parent:=frm;
zu.Width:=73;
zu.Height:=25;
zu.top:=52;
zu.left:=184;
zu.Caption:=('(c)metalFan');
zu.Transparent := False;
zu.Visible := True;
 
 
m:=TMemo.Create(frm2);
m.parent:=frm2;
m.align:=alClient;
m.ReadOnly:=true;
m.ScrollBars:=ssBoth;
Button1 := TButton.Create(frm);
Button1.Parent := frm;
Button1.Caption := '>.<';
Button1.Left := 16;
Button1.Top := 16;
Button1.onClick := @Action1;
Button1.OnMouseMove := @Button1MouseMove;
Button2 := TButton.Create(frm);
Button2.Parent := frm;
Button2.Caption := '>.<';
Button2.Left := 96;
Button2.Top := 16;
Button2.onClick := @Action2;
Button2.OnMouseMove := @Button2MouseMove;
Button3 := TButton.Create(frm);
Button3.Parent := frm;
Button3.Caption := '>.<';
Button3.Left := 16;
Button3.Top := 48;
Button3.onClick := @Action3;
Button3.OnMouseMove := @Button3MouseMove;
Button4 := TButton.Create(frm);
Button4.Parent := frm;
Button4.Caption := '>.<';
Button4.Left := 96;
Button4.Top := 48;
Button4.onClick := @Action4;
Button4.OnMouseMove := @Button4MouseMove;
Button5 := TButton.Create(frm);
Button5.Parent := frm;
Button5.Caption := '>.<';
Button5.Left := 176;
Button5.Top := 16;
Button5.onClick := @Action5;
Button5.OnMouseMove := @Button5MouseMove;
buf:=Hstr('4A 00 00 00 00 0A 00 00 00 00 00 4B 00 69 00 6C 00 6C 00 20 00 50 00 6C 00 61 00 79 00 65 00 72 00 73 00 20 00 2D 00 20 00 41 04 3A 04 40 04 4B 04 32 04 30 04 35 04 42 04 20 00 32 04 41 04 35 04 45 04 20 00 3F 04 35 04 40 04 41 04 3E 04 3D 04 30 04 36 04 35 04 39 04 2C 00 20 00 4B 00 69 00 6C 00 6C 00 20 00 4E 00 70 00 63 00 20 00 2D 00 20 00 41 04 3A 04 40 04 4B 04 32 04 30 04 35 04 42 04 20 00 32 04 41 04 35 04 45 04 20 00 32 04 35 04 3D 04 34 04 3E 04 40 04 3E 04 32 04 20 00 3A 00 29 00 20 00 2C 00 20 00 43 00 75 00 72 00 65 00 20 00 2D 00 20 00 32 04 4B 04 3A 04 3B 04 4E 04 47 04 30 04 35 04 42 04 20 00 41 04 3A 04 40 04 4B 04 32 04 30 04 3B 04 3A 04 43 04 2C 00 20 00 34 04 3B 04 4F 04 20 00 3E 04 42 04 3E 04 31 04 40 04 30 04 36 04 35 04 3D 04 38 04 4F 04 20 00 32 04 41 04 35 04 45 04 20 00 32 04 3E 04 3A 04 40 04 43 04 33 04 20 00 32 04 3A 04 3B 04 4E 04 47 04 38 04 42 04 35 04 20 00 38 04 20 00 37 04 30 04 42 04 35 04 3C 04 20 00 32 04 4B 04 3A 04 3B 04 4E 04 47 04 38 04 42 04 35 04 20 00 32 04 38 04 34 04 35 04 3E 04 41 04 4A 04 35 04 3C 04 3A 04 43 04 20 00 40 04 3E 04 3B 04 38 04 3A 04 3E 04 32 04 20 00 28 00 41 04 29 00 6D 00 65 00 74 00 61 00 6C 00 46 00 61 00 6E 00 00 00');
SendToClientEx(name);
frm.show;
frm2.Show;
r1:=False;
r2:=False;
r3:=True;
s:=true;
end;
 
procedure Free; //Вызывается при выключении скрипта
begin
button1.free;
button2.free;
button3.free;
m.free;
frm2.free;
frm.free;
end;
 
//(c)NLObP скажи нет случайному закрытию формы
procedure FormClose(Sender: TObject; var Action: TCloseAction);
begin
Action:=caNone;
end;
 
procedure OnDisconnect(WithClient: Boolean); //Вызывается при установке соединения
begin
NoFreeOnClientDisconnect;
NoFreeOnServerDisconnect;
end;
procedure Button1MouseMove(Sender: TButton);
begin
Button1.Caption := 'Kill players';
end;
procedure Button2MouseMove(Sender: TButton);
begin
Button2.Caption := 'Kill npc';
end;
procedure Button3MouseMove(Sender: TButton);
begin
Button3.Caption := 'Stop filter';
end;
procedure Button4MouseMove(Sender: TButton);
begin
Button4.Caption := 'Switch';
end;
procedure Button5MouseMove(Sender: TButton);
begin
if s=true then
begin
Button5.Caption := 'Hide Monitor'
end else
begin
Button5.Caption := 'Show Monitor';
end;
end;
procedure Action1(Sender: TButton);
begin
r1:=True;
buf:=Hstr('4A 00 00 00 00 0A 00 00 00 00 00 23 04 31 04 38 04 32 04 30 04 4E 04 20 00 38 04 33 04 40 04 3E 04 3A 04 3E 04 32 04 00 00');
SendToClientEx(name);
end;
procedure Action2 (Sender: TButton);
begin
r2:=True;
buf:=Hstr('4A 00 00 00 00 0A 00 00 00 00 00 23 04 31 04 38 04 32 04 30 04 4E 04 20 00 32 04 35 04 3D 04 34 04 3E 04 40 04 3E 04 32 04 00 00');
SendToClientEx(name);
end;
procedure Action3 (Sender: TButton);
begin
Button3.Caption := 'Load...';
r1:=False;
r2:=False;
buf:=Hstr('CF');
SendToServerEx(name);
delay(5000);
Button3.Caption := 'Done';
end;
procedure Action4 (Sender: TButton);
begin
if r3=true then
begin
r3:=False;
Button4.Caption := 'Stop...';
m.Lines.Add('Остановка монитора');
end
else
begin r3:=true;
Button4.Caption := 'Start...';
m.Lines.Add('Запуск монитора');
end;
delay(1000);
Button4.Caption := 'Done';
end;
procedure Action5 (Sender: TButton);
begin
if s=true then
begin
m.Lines.Add('Сворачиваю окошко с живностью');
s:=false;
m.Lines.Add('>.<');
delay(1000);
frm2.hide;
Button5.Caption := '>.<';
end else
begin
frm2.Show;
s:=True;
delay(1000);
m.Lines.Add('Разворачиваю окошко с живностью');
Button5.Caption := '>.<';
end;
 
 
end;
//(c)Shura1oplot инвентарь
procedure InventoryCreate;
var
i,k: integer;
begin
for i:=0 to 79 do
if (i<ReadH(4)) then begin
Inventory[i,0]:=ReadH(i*28+6); // itemType1
Inventory[i,1]:=ReadD(i*28+8); // ObjectId
Inventory[i,2]:=ReadD(i*28+12); // ItemID
end else
for k:=0 to 9 do Inventory[i,k]:=0; // забиваем нулями
end;
 
function GetInv(obj,up,down:integer): integer;
var
i: integer;
begin
for i:=0 to 79 do
if (Inventory[i,up]=obj) then begin
Result:=Inventory[i,down];
exit;
end;
Result:=-1;
end;
begin
if (FromServer) and (ConnectName=name) then
case pck[1] of
#$03: begin
if r1=true then
begin
pck:='';
end;
end;
#$16: begin
if r2=true then
begin
pck:='';
end;
end;
end;
if FromServer and (pck[1]=#$03) and r3=true then
begin
k:=22;
FName:=ReadS(k);
RaceID:=ReadD(k);
SexID:=ReadD(k);
ClassID:=ReadD(k);
case RaceID of
0:race:='Human';
1:race:='Elf';
2:race:='Dark Elf';
3:race:='Оrc';
4:race:='Dwarf';
end;
case SexID of
0:sex:='Male';
1:sex:='Female';
end;
case ClassID of
0:class:='Fighter';
1:class:='Warrior';
2:class:='Gladiator';
88:class:='Duelist';
3:class:='Warlord';
89:class:='Dreadnought';
4:class:='Knight';
5:class:='Paladin';
90:class:='PhoenixKnight';
6:class:='DarkAvenger';
91:class:='HellKnight';
7:class:='Rogue';
8:class:='TreasureHunter';
93:class:='Adventurer';
9:class:='Hawkeye';
92:class:='Sagittarius';
10:class:='Mage';
11:class:='Wizard';
12:class:='Sorceror';
94:class:='Archmage';
13:class:='Necromancer';
95:class:='Soultaker';
14:class:='Warlock';
96:class:='ArcanaLord';
15:class:='Cleric';
16:class:='Bishop';
97:class:='Cardinal';
17:class:='Prophet';
98:class:='Hierophant';
18:class:='Fighter';
19:class:='Knight';
20:class:='TempleKnight';
99:class:='EvaTemplar';
21:class:='SwordSinger';
22:class:='Scout';
23:class:='PlainsWalker';
101:class:='WindRider';
24:class:='SilverRanger';
102:class:='MoonlightSentinel';
25:class:='Mage';
26:class:='Wizard';
27:class:='SpellSinger';
103:class:='MysticMuse';
28:class:='ElementalSummoner';
104:class:='ElementalMaster';
29:class:='Oracle';
30:class:='Elder';
105:class:='EvaSaint';
31:class:='Fighter';
32:class:='PaulusKnight';
33:class:='ShillienKnight';
106:class:='ShillienTemplar';
34:class:='BladeDancer';
107:class:='SpectralDancer';
35:class:='Assassin';
36:class:='AbyssWalker';
108:class:='GhostHunter';
37:class:='PhantomRanger';
109:class:='GhostSentinel';
38:class:='Mage';
39:class:='DarkWizard';
40:class:='Spellhowler';
110:class:='StormScreamer';
41:class:='PhantomSummoner';
111:class:='SpectralMaster';
42:class:='ShillienOracle';
43:class:='ShillienElder';
112:class:='ShillienSaint';
44:class:='Fighter';
45:class:='Raider';
46:class:='Destroyer';
113:class:='Titan';
47:class:='Monk';
48:class:='Tyrant';
114:class:='GrandKhauatari';
49:class:='Mage';
50:class:='Shaman';
51:class:='Overlord';
115:class:='Dominator';
52:class:='Warcryer';
116:class:='Doomcryer';
53:class:='Fighter';
54:class:='Scavenger';
55:class:='BountyHunter';
117:class:='FortuneSeeker';
56:class:='Artisan';
57:class:='Warsmith';
118:class:='Maestro';
end;
Message:=(class+ ' |' +race+ ' |' +sex+ ' |');
m.Lines.Add(FName+' | '+Message);
end;
end.
end.
 
end.

в общем идете вы в гиран мило купить бутылки у вендора на сервере где онлайн под пару тысяч закатил, а там...
лаги... всюду гномы трейдеры и ктото бегает в общем очень плохо ващему слабому компьютеру...
но этот скрипт если не полностью, (MoveToPawn, MoveToLocation ни как не убить =\ хотя...) то облягчит вам жизнь, он скроет всех ненужных игроков и\или вендоров
функции можно включать\отключать в общем методом тыка думаю разберетесь
(с)metalFan
________________
Продвижение вашего сайта, увеличение ссылочной массы, продвижение по НЧ-СЧ-ВЧ запросам.
  Ответить с цитированием
Старый 10.01.2010, 12:51   #33
Заблокирован
 Разведчик
Аватар для siiion1
 
siiion1 на правильном пути
Регистрация: 10.12.2009
Сообщений: 4
Популярность: 30
Сказал(а) спасибо: 3
Поблагодарили 9 раз(а) в 7 сообщениях
 
По умолчанию Re: Скрипты для l2phx

Код:
// Бегущая строка в титуле, ©Br1nk v0.2
// пишем rt в пати чате для включения и выключения

var
  title, temp, titleoff: string;
  activated, mult, safemode: integer;
  tmr: TTimer;

procedure Init; //Вызывается при включении скрипта
begin
  title := 'ВСЕХ ЛЮБЛЮ НА СВЕТЕ Я ЭТО РОДИНА МОЯ!'; // текст титула
  titleoff := '-=ШОН=-';
  activated := 0; // Определяет, включается ли бегущая строка сразу при запуске скрипта или только после введения команды rt в патичат
  safemode := 1; // безопасный режим, стандартная длина титула. Если вы играете на кривой яве, поставьте 0, это даст вам более длинный титул, соответственно выглядит пижже..)
  tmr := TTimer.Create(nil);
  tmr.Interval := 800; // Частота обновления (мс)
  tmr.Enabled := False; 
  tmr.OnTimer := @Tick;
  mult := 4; // Определяет на сколько букв сдвигается строка в титуле при обновлении
end;

procedure Free;
begin
  tmr.Free;
  SetTitle(titleoff);
end;

procedure Tick;
begin
    temp := copy(title, 2 + mult, Length(title) - 1 - mult) + copy(title, 1, 1 + mult);
    title := temp;
    if safemode then
       SetTitle(Copy(temp, 0, 16))
    else
       SetTitle(temp);
end;

procedure Announce(text:string); // for debug purposes
begin
     buf := #$4A;
     WriteD(0);
     WriteD(10);
     WriteS('');
     WriteS(text);
     SendToClient;
end;

procedure SetTitle(text: string);
begin
  buf := HStr('55');
  WriteS(ConnectName);
  WriteS(text);
  WriteD(0);
  SendToServer;
end;

begin
  if FromClient and (pck=HStr('38 72 00 74 00 00 00 03 00 00 00')) then
  begin
    if (activated = 1) then
    begin
      activated := 0;
      SetTitle(titleoff);
      Announce('Title script powered off.');
    end
    else
      activated := 1;
    pck := '';
  end;
  if (activated = 1) then
    tmr.Enabled := True
  else
    tmr.Enabled := False;
end.
бегущий титул ))пишем все что угодно ,мож кому пригодится
ТЕСТИЛ НА ВЕРСИИ 4,3,0,13
включаем скрипт,пишем rt в пати чат
пригодится дайте спасибку)))

Последний раз редактировалось siiion1; 10.01.2010 в 12:58.
  Ответить с цитированием
Старый 02.02.2010, 17:32   #34
 Разведчик
Аватар для H0oL1GaN
 
H0oL1GaN на правильном путиH0oL1GaN на правильном пути
Регистрация: 11.08.2009
Сообщений: 35
Популярность: 104
Сказал(а) спасибо: 20
Поблагодарили 48 раз(а) в 18 сообщениях
Отправить сообщение для H0oL1GaN с помощью ICQ
 
По умолчанию Re: Скрипты для l2phx

PHP код:
[CODE][QUOTE=siiion1;139088][CODE][CODE]//Список констант
const
  
Name='siiion'//Вписать сюда имя чара
  //установить константу в зависимости от типа игры (С4 или Интерлюд)
  
interlude=true//Interlude - true, C4 - false
  //-------------------------
  
max=100;     //количество слотов в инвентаре чара

//............................................
//Список переменных
var
  
Itemscrl:integer;
  
ScrollIDScrollOID:integer;  //ScrollID скролла заточки
  
ItemID,ItemOID:integer;      //ItemID затачиваемого предмета
  
MaxEnchLvl:integer;         //уровень заточки который требуется достичь
  
ItemBase:  array[1..4,1..maxof integer//ItemOID, ItemID, Kol-vo, ItemLvl
  
readyadd boolean;
  
timer TTimer;
  
ItemCountCurEnchLvlinteger;
  
SocialID integer// вспомогательная
  
ItemsNameStringList TStringList;  //названия предметов, имена продавцов
  
FormMain TForm//Создаваемая форма
  
Splitter1 TSplitter;
  
Splitter2 TSplitter;
  
Stats TMemo;
  
Msg TMemo;
  
Panel1 TPanel;
  
GroupBox2 TGroupBox;
  
Label2 TLabel;
  
Label4 TLabel;
  
Label12 TLabel;
  
Label13 TLabel;
  
CheckBoxItem TCheckBox;
  
ComboBoxItem TComboBox;
  
ButtonStartEnchant TButton;
  
ButtonStopEnchant TButton;
  
CheckBoxScroll TCheckBox;
  
ComboBoxScroll TComboBox;
  
EditItemVal TEdit;
  
EditScrollVal TEdit;
  
EditScrollOID TEdit;
  
EditItemOID TEdit;
  
Label1 TLabel;
  
Label3 TLabel;
  
Edit1 TEdit;
  
Edit2 TEdit;
//............................................
//*************************************
//Обработчики событий для элементов управления на форме
//......................................
//CheckBoxItem
procedure CheckBoxItem_Click(SenderTCheckBox);
//Event : OnClick
begin
  
if CheckBoxItem.Checked
  then begin
    ItemOID
:=ItemBase[1,ComboBoxItem.ItemIndex+1];
    
ItemID:=ItemBase[2,ComboBoxItem.ItemIndex+1];
    
//проверка
//    EditItemOID.Text:=Inttostr(ItemID);
//    EditItemVal.text:=inttostr(ItemOID);

    
ComboBoxItem.Enabled:=false//выключаем
  
end else begin
    ItemID
:=0;               //отмена
    
ItemOID:=0;
    
ComboBoxItem.Enabled:=true;  //включаем
    //Пакет RequestItemList
    
buf:=hstr('0F');
    
SendToServerEx(Name);
  
end;
end;
//......................................
//......................................
//ComboBoxItem
procedure ComboBoxItem_Click(SenderTComboBox);
//Event : OnClick
begin
    ItemOID
:=ItemBase[1,ComboBoxItem.ItemIndex+1];
    
ItemID:=ItemBase[2,ComboBoxItem.ItemIndex+1];
//    ItemID:=ExtractIDValues(ComboBoxItem.Items.Strings[ComboBoxItem.ItemIndex]);
    
EditItemOID.Text:=Inttostr(ItemID);
    
EditItemVal.text:=inttostr(sumitem(ItemID));
end;
//......................................
//......................................
//CheckBoxScroll
procedure CheckBoxScroll_Click(SenderTCheckBox);
//Event : OnClick
begin
  
if CheckBoxScroll.Checked
  then begin
    ScrollOID
:=ItemBase[1,ComboBoxScroll.ItemIndex+1];
    
ScrollID:=ItemBase[2,ComboBoxScroll.ItemIndex+1];
    
//проверка
//    EditScrollOID.Text:=Inttostr(ScrollID);
//    EditScrollVal.text:=inttostr(ScrollOID);
    
ComboBoxScroll.Enabled:=false//выключаем
  
end else begin
    ScrollID
:=0;               //отмена
    
ScrollOID:=0;
    
ComboBoxScroll.Enabled:=true;  //включаем
    //Пакет RequestItemList
    
buf:=hstr('0F');
    
SendToServerEx(Name);
  
end;
end;
//......................................
//......................................
//ComboBoxScroll
procedure ComboBoxScroll_Click(SenderTComboBox);
//Event : OnClick
begin
    ScrollOID
:=ItemBase[1,ComboBoxScroll.ItemIndex+1];
    
ScrollID:=ItemBase[2,ComboBoxScroll.ItemIndex+1];
//    ScrollID:=ExtractIDValues(ComboBoxScroll.Items.Strings[ComboBoxScroll.ItemIndex]);
    
EditScrollOID.Text:=Inttostr(ScrollID);
    
EditScrollVal.text:=inttostr(sumitem(ScrollID));
end;
//......................................
//......................................
//ButtonStartEnchant
procedure ButtonStartEnchant_Click(SenderTButton);
//Event : OnClick
begin
  CurEnchLvl
:=0;
  
Edit2.text:=inttostr(CurEnchLvl);
  
msg.Lines.Add('Команда Старт!!!');
  
timer.enabled:=true;
end;
//......................................
//......................................
//ButtonStopEnchant
procedure ButtonStopEnchant_Click(SenderTButton);
//Event : OnClick
begin
  msg
.Lines.Add('Команда Стоп!!!');
  
timer.enabled:=false;
  
ready:=false;
end;
//......................................
//......................................
procedure Edit1_Exit(SenderTEdit);
//Event : OnExit
begin
//  MyHPID:=ExtractIDValues(ComboBoxHPotion.Items.Strings[ComboBoxHPotion.ItemIndex]);
//  EditHPotionVal.Text:=Inttostr(FindItem(MyHPID));
//  EditHPotionOID.text:=inttostr(ItemBase2[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     := 'Enchant by NLObP v.0.7';
    
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    := 90;
    
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       := '65535';
    
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     := 'ItemID';
    
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     := 'Кол-во';
    
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;
    
//......................................
    //......................................
    //CheckBoxItem
    
CheckBoxItem := TCheckBox.Create(Result);
    
CheckBoxItem.Parent := GroupBox2;
    
CheckBoxItem.Left    := 18;
    
CheckBoxItem.Top     := 18;
    
CheckBoxItem.Width   := 66;
    
CheckBoxItem.Height  := 17;
    
CheckBoxItem.Visible := TRUE;
    
CheckBoxItem.Tag     := 0;
    
CheckBoxItem.Enabled  := TRUE;
    
CheckBoxItem.Hint     := 'Поставить галочку если выбрали предмет';
    
CheckBoxItem.ShowHint := TRUE;
    
CheckBoxItem.Caption    := 'Предмет';
    
CheckBoxItem.Font.Name  := 'Tahoma';
    
CheckBoxItem.Font.Size  := 8;
    
CheckBoxItem.Font.Color := clWindowText;
    
CheckBoxItem.Color       := clBtnFace;
    
CheckBoxItem.TabOrder    := 0;
    
CheckBoxItem.TabStop     := TRUE;
    
CheckBoxItem.Checked     := FALSE;
    
CheckBoxItem.AllowGrayed := FALSE;
    
CheckBoxItem.State       := cbUnchecked;
    
CheckBoxItem.OnClick     := @CheckBoxItem_Click;
    
//......................................
    //......................................
    //ComboBoxItem
    
ComboBoxItem := TComboBox.Create(Result);
    
ComboBoxItem.Parent := GroupBox2;
    
ComboBoxItem.Left    := 90;
    
ComboBoxItem.Top     := 16;
    
ComboBoxItem.Width   := 169;
    
ComboBoxItem.Height  := 21;
    
ComboBoxItem.Visible := TRUE;
    
ComboBoxItem.Tag     := 0;
    
ComboBoxItem.Enabled  := TRUE;
    
ComboBoxItem.Hint     := 'Выбери из списка затачиваемый предмет';
    
ComboBoxItem.ShowHint := TRUE;
    
ComboBoxItem.Text       := 'ComboBoxItem';
    
ComboBoxItem.Font.Name  := 'Tahoma';
    
ComboBoxItem.Font.Size  := 8;
    
ComboBoxItem.Font.Color := clWindowText;
    
ComboBoxItem.Color          := clWindow;
    
ComboBoxItem.TabOrder       := 1;
    
ComboBoxItem.TabStop        := TRUE;
    
ComboBoxItem.ItemIndex          := -1;
    
ComboBoxItem.Sorted         := FALSE;
    
ComboBoxItem.ItemHeight     := 13;
    
ComboBoxItem.OnClick     := @ComboBoxItem_Click;
    
//......................................
    //......................................
    //ButtonStartEnchant
    
ButtonStartEnchant := TButton.Create(Result);
    
ButtonStartEnchant.Parent := GroupBox2;
    
ButtonStartEnchant.Left    := 265;
    
ButtonStartEnchant.Top     := 67;
    
ButtonStartEnchant.Width   := 75;
    
ButtonStartEnchant.Height  := 25;
    
ButtonStartEnchant.Visible := TRUE;
    
ButtonStartEnchant.Tag     := 0;
    
ButtonStartEnchant.Enabled  := TRUE;
    
ButtonStartEnchant.Hint     := '';
    
ButtonStartEnchant.ShowHint := FALSE;
    
ButtonStartEnchant.Caption    := 'Start';
    
ButtonStartEnchant.Font.Name  := 'Tahoma';
    
ButtonStartEnchant.Font.Size  := 8;
    
ButtonStartEnchant.Font.Color := clWindowText;
    
ButtonStartEnchant.Font.CharSet := 1;
    
ButtonStartEnchant.TabOrder     := 2;
    
ButtonStartEnchant.TabStop      := TRUE;
    
ButtonStartEnchant.Cancel       := FALSE;
    
ButtonStartEnchant.ModalResult  := 0;
    
ButtonStartEnchant.OnClick     := @ButtonStartEnchant_Click;
    
//......................................
    //......................................
    //ButtonStopEnchant
    
ButtonStopEnchant := TButton.Create(Result);
    
ButtonStopEnchant.Parent := GroupBox2;
    
ButtonStopEnchant.Left    := 341;
    
ButtonStopEnchant.Top     := 67;
    
ButtonStopEnchant.Width   := 75;
    
ButtonStopEnchant.Height  := 25;
    
ButtonStopEnchant.Visible := TRUE;
    
ButtonStopEnchant.Tag     := 0;
    
ButtonStopEnchant.Enabled  := TRUE;
    
ButtonStopEnchant.Hint     := '';
    
ButtonStopEnchant.ShowHint := FALSE;
    
ButtonStopEnchant.Caption    := 'Stop';
    
ButtonStopEnchant.Font.Name  := 'Tahoma';
    
ButtonStopEnchant.Font.Size  := 8;
    
ButtonStopEnchant.Font.Color := clWindowText;
    
ButtonStopEnchant.Font.CharSet := 1;
    
ButtonStopEnchant.TabOrder     := 3;
    
ButtonStopEnchant.TabStop      := TRUE;
    
ButtonStopEnchant.Cancel       := FALSE;
    
ButtonStopEnchant.ModalResult  := 0;
    
ButtonStopEnchant.OnClick     := @ButtonStopEnchant_Click;
    
//......................................
    //......................................
    //CheckBoxScroll
    
CheckBoxScroll := TCheckBox.Create(Result);
    
CheckBoxScroll.Parent := GroupBox2;
    
CheckBoxScroll.Left    := 18;
    
CheckBoxScroll.Top     := 41;
    
CheckBoxScroll.Width   := 66;
    
CheckBoxScroll.Height  := 23;
    
CheckBoxScroll.Visible := TRUE;
    
CheckBoxScroll.Tag     := 0;
    
CheckBoxScroll.Enabled  := TRUE;
    
CheckBoxScroll.Hint     := 'Поставить галочку если выбрали скролл заточки';
    
CheckBoxScroll.ShowHint := TRUE;
    
CheckBoxScroll.Caption    := 'Заточка';
    
CheckBoxScroll.Font.Name  := 'Tahoma';
    
CheckBoxScroll.Font.Size  := 8;
    
CheckBoxScroll.Font.Color := clWindowText;
    
CheckBoxScroll.Color       := clBtnFace;
    
CheckBoxScroll.TabOrder    := 4;
    
CheckBoxScroll.TabStop     := TRUE;
    
CheckBoxScroll.Checked     := FALSE;
    
CheckBoxScroll.AllowGrayed := FALSE;
    
CheckBoxScroll.State       := cbUnchecked;
    
CheckBoxScroll.OnClick     := @CheckBoxScroll_Click;
    
//......................................
    //......................................
    //ComboBoxScroll
    
ComboBoxScroll := TComboBox.Create(Result);
    
ComboBoxScroll.Parent := GroupBox2;
    
ComboBoxScroll.Left    := 90;
    
ComboBoxScroll.Top     := 40;
    
ComboBoxScroll.Width   := 169;
    
ComboBoxScroll.Height  := 21;
    
ComboBoxScroll.Visible := TRUE;
    
ComboBoxScroll.Tag     := 0;
    
ComboBoxScroll.Enabled  := TRUE;
    
ComboBoxScroll.Hint     := 'Выбери из списка скролл заточки';
    
ComboBoxScroll.ShowHint := TRUE;
    
ComboBoxScroll.Text       := 'ComboBoxScroll';
    
ComboBoxScroll.Font.Name  := 'Tahoma';
    
ComboBoxScroll.Font.Size  := 8;
    
ComboBoxScroll.Font.Color := clWindowText;
    
ComboBoxScroll.Color          := clWindow;
    
ComboBoxScroll.TabOrder       := 5;
    
ComboBoxScroll.TabStop        := TRUE;
    
ComboBoxScroll.ItemIndex          := -1;
    
ComboBoxScroll.Sorted         := FALSE;
    
ComboBoxScroll.ItemHeight     := 13;
    
ComboBoxScroll.OnClick     := @ComboBoxScroll_Click;
    
//......................................
    //......................................
    //EditItemVal
    
EditItemVal := TEdit.Create(Result);
    
EditItemVal.Parent := GroupBox2;
    
EditItemVal.Left    := 341;
    
EditItemVal.Top     := 16;
    
EditItemVal.Width   := 72;
    
EditItemVal.Height  := 21;
    
EditItemVal.Visible := TRUE;
    
EditItemVal.Tag     := 0;
    
EditItemVal.Enabled  := TRUE;
    
EditItemVal.Hint     := '';
    
EditItemVal.ShowHint := FALSE;
    
EditItemVal.Text       := '0';
    
EditItemVal.Font.Name  := 'Tahoma';
    
EditItemVal.Font.Size  := 8;
    
EditItemVal.Font.Color := clWindowText;
    
EditItemVal.Color        := clWindow;
    
EditItemVal.TabOrder     := 6;
    
EditItemVal.TabStop      := TRUE;
    
EditItemVal.ReadOnly     := TRUE;
    
EditItemVal.MaxLength    := 0;
    
EditItemVal.AutoSize     := TRUE;
    
//......................................
    //......................................
    //EditScrollVal
    
EditScrollVal := TEdit.Create(Result);
    
EditScrollVal.Parent := GroupBox2;
    
EditScrollVal.Left    := 341;
    
EditScrollVal.Top     := 40;
    
EditScrollVal.Width   := 72;
    
EditScrollVal.Height  := 21;
    
EditScrollVal.Visible := TRUE;
    
EditScrollVal.Tag     := 0;
    
EditScrollVal.Enabled  := TRUE;
    
EditScrollVal.Hint     := '';
    
EditScrollVal.ShowHint := FALSE;
    
EditScrollVal.Text       := '0';
    
EditScrollVal.Font.Name  := 'Tahoma';
    
EditScrollVal.Font.Size  := 8;
    
EditScrollVal.Font.Color := clWindowText;
    
EditScrollVal.Color        := clWindow;
    
EditScrollVal.TabOrder     := 7;
    
EditScrollVal.TabStop      := TRUE;
    
EditScrollVal.ReadOnly     := TRUE;
    
EditScrollVal.MaxLength    := 0;
    
EditScrollVal.AutoSize     := TRUE;
    
//......................................
    //......................................
    //EditScrollOID
    
EditScrollOID := TEdit.Create(Result);
    
EditScrollOID.Parent := GroupBox2;
    
EditScrollOID.Left    := 263;
    
EditScrollOID.Top     := 40;
    
EditScrollOID.Width   := 72;
    
EditScrollOID.Height  := 21;
    
EditScrollOID.Visible := TRUE;
    
EditScrollOID.Tag     := 0;
    
EditScrollOID.Enabled  := TRUE;
    
EditScrollOID.Hint     := '';
    
EditScrollOID.ShowHint := FALSE;
    
EditScrollOID.Text       := '0';
    
EditScrollOID.Font.Name  := 'Tahoma';
    
EditScrollOID.Font.Size  := 8;
    
EditScrollOID.Font.Color := clWindowText;
    
EditScrollOID.Color        := clWindow;
    
EditScrollOID.TabOrder     := 8;
    
EditScrollOID.TabStop      := TRUE;
    
EditScrollOID.ReadOnly     := TRUE;
    
EditScrollOID.MaxLength    := 0;
    
EditScrollOID.AutoSize     := TRUE;
    
//......................................
    //......................................
    //EditItemOID
    
EditItemOID := TEdit.Create(Result);
    
EditItemOID.Parent := GroupBox2;
    
EditItemOID.Left    := 264;
    
EditItemOID.Top     := 16;
    
EditItemOID.Width   := 72;
    
EditItemOID.Height  := 21;
    
EditItemOID.Visible := TRUE;
    
EditItemOID.Tag     := 0;
    
EditItemOID.Enabled  := TRUE;
    
EditItemOID.Hint     := '';
    
EditItemOID.ShowHint := FALSE;
    
EditItemOID.Text       := '0';
    
EditItemOID.Font.Name  := 'Tahoma';
    
EditItemOID.Font.Size  := 8;
    
EditItemOID.Font.Color := clWindowText;
    
EditItemOID.Color        := clWindow;
    
EditItemOID.TabOrder     := 9;
    
EditItemOID.TabStop      := TRUE;
    
EditItemOID.ReadOnly     := TRUE;
    
EditItemOID.MaxLength    := 0;
    
EditItemOID.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('Автоматизация заточки by NLObP!');
  
Result.Show;
end//Create_FormMain
//========================
//========================
procedure Init//Вызывается при включении скрипта
var
  
i:integer;
begin
  FormMain
:=Create_FormMain;
  
//Enchant:=false;
  
CurEnchLvl:=0;
  
timer:=TTimer.Create(nil);
  
timer.OnTimer:=@OnTimer;
  
timer.enabled:=false;
  
timer.interval:=1000//время задержки
  
ready:=false;
  
add:=false;
  
//Пакет RequestItemList
  
buf:=hstr('0F');
  
SendToServerEx(Name);
  
StringList:=TStringList.Create;
  
ItemsName:=TStringList.Create;
  try
    
ItemsName.LoadFromFile('itemsid.ini');
  
except
    msg
.Lines.Add('itemsid.ini не найден!');
    exit;
  
end;
end;
//......................................
//******************************************************************************
procedure Free//Вызывается при выключении скрипта
begin
//  ItemBase:=nil; //нельзя так делать с массивом
  
timer.Free;
  
StringList.Clear;
  
ItemsName.Clear;
  
//достаточно освободить форму
  
Free_FormMain;
end;
//......................................
//******************************************************************************
procedure Say(msg:string);
begin
  buf
:=hstr('4A 00 00 00 00');
  
WriteD(2);
  
WriteS(Name);
  
WriteS(msg);
  
SendToClientEx(Name);
end;
//......................................
//***************************************************************
procedure CreateItemBase//пакет 1B, Создает базу ObjectID по ItemID
//1B=ItemListPacket:w(window)w(ListCount)w(itemType1)h(ObjectID)i(ItemID)d(count)w(itemType2)w(CustType1)w(isEquipped)d(BodyPart)w(EnchantLevel)w(CustType2)d(Augment)d(--)
var
  
ijListCountinteger;
begin
  
for i:=1 to max do begin
    
//очищаем масив
    
ItemBase[1,i]:=0;     //OID
    
ItemBase[2,i]:=0;    //ID
    
ItemBase[3,i]:=0;   //kol-vo
    
ItemBase[4,i]:=0;  //lvl
  
end;
  
j:=4//смещение для ListCount
  
ListCount:=ReadH(j); //количество итемов не должно превышать max!
  //if ListCount>maxitems then msg.Lines.Add('Внимание! Не все вещи влезли в массив. ListCount>Max='+IntToStr(ListCount)+'/'+IntToStr(maxitems));
  
j:=8//смещение для ObjectID
  //Пробегаем по Инвентарю и сохраняем ObjectID соответствующие необходимым ItemID
  
for i:=1 to ListCount do begin
    itemBase
[1,i]:=ReadD(j);    //OID
    
itemBase[2,i]:=ReadD(j);   //ItemID
    
itemBase[3,i]:=ReadD(j);  //кол-во
    
inc(j,10);
    
itemBase[4,i]:=ReadH(j);//EnchantLevel
//    msg.Lines.Add('i='+inttostr(i)+' ItemOID='+IntToStr(ItemBase[1,i])+' ItemID='+IntToStr(ItemBase[2,i])+' ItemKol='+IntToStr(ItemBase[3,i])+' ItemLVL='+IntToStr(ItemBase[4,i]));
    
if interlude then inc(j,12) else inc(j,4);
    
//msg.Lines.Add('j='+inttostr(j));
  
end;
  
//вносим изменения в чекбоксы
  
StringList.Clear;
  try
    for 
i:=1 to ListCount do begin
      
try
        
//StringList.Add(ItemsName[ItemBase[2,i]-1]); //записываем название вещей из инвентаря
        
StringList.Add(ItemsName.Values[IntToStr(ItemBase[2,i])]); //записываем название вещей из инвентаря
      
except;
        
msg.Lines.Add('Пропускаем! Нет ItemID='+inttostr(ItemBase[2,i])+' в itemsid.ini');
      
end
    end
;
  
except;
    
msg.Lines.Add('ошибка в CreateItemBase->StringList.Add()');
    
msg.Lines.Add(inttostr(ItemBase[2,i]));
    exit;
  
end;
  if 
not CheckBoxItem.Checked then begin //наполняем комбобокс
    
with ComboBoxItem do
    
begin
      Items
.Clear;
      
Items.Assign(StringList);
      
ItemIndex:=0;
    
end;
  
end;
  if 
not CheckBoxScroll.Checked then begin //наполняем комбобокс
    
with ComboBoxScroll do
    
begin
      Items
.Clear;
      
Items.Assign(StringList);
      
ItemIndex:=0;
    
end;
  
end;
end;
//......................................
//******************************************************************************
//27=InventoryUpdate:w(count)w(1add2mod3remove)w(itemType1)d(ObjectID)i(ItemId)d(Count)w(itemType2)w(cusType1)w(isEquipped)d(BodyPart)w(EnchantLevel)w(cusType2)-(8)
procedure InventoryUpdate//пакет 27, обновляет базу ObjectID по ItemID
var
  
iiijItemOIDItemIDItemCountListCountUpdTypeItemlvlinteger;
  
add boolean;
begin
  add
:=false;
  
ListCount:=ReadH(2); //количество итемов
  //Пробегаем по Инвентарю и сохраняем пары ObjectID - lvl
  
j:=4//смещение для действия с предметом 1-добавлен 2-изменен 3-удален
  
for ii:=1 to ListCount do begin
    UpdType
:=ReadH(j);
    
//inc(j,2);
    
ReadH(j);               //ItemType1
    
ItemOID:=ReadD(j);     //ObjectID
    
ItemID:=ReadD(j);     //ItemID
    
itemCount:=ReadD(j); //кол-во
    
inc(j,10);
    
Itemlvl:=ReadH(j);
    case 
UpdType of
      
//добавлен
      
1begin
         
for i:=1 to max do begin
           
if (ItemBase[1,i]=0) and (add=falsethen begin
             ItemBase
[1,i]:=ItemOID;
             
ItemBase[2,i]:=ItemID;
             
ItemBase[3,i]:=ItemCount;
             
ItemBase[4,i]:=Itemlvl;
             
msg.Lines.Add('Добавили предмет!');
             
msg.Lines.Add('i='+inttostr(i)+' ItemOID='+IntToStr(ItemBase[1,i])+' ItemID='+IntToStr(ItemBase[2,i])+' ItemKol='+IntToStr(ItemBase[3,i])+' ItemLVL='+IntToStr(ItemBase[4,i]));
             
add:=true;
           
end;
         
end;
      
end;
      
//изменен
      
2begin
         
for i:=1 to max do begin
           
if ItemBase[1,i]=ItemOID then begin
             ItemBase
[3,i]:=ItemCount;
             
ItemBase[4,i]:=Itemlvl;
             
msg.Lines.Add('Изменяем параметры предмета!');
             
msg.Lines.Add('i='+inttostr(i)+' ItemOID='+IntToStr(ItemBase[1,i])+' ItemID='+IntToStr(ItemBase[2,i])+' ItemKol='+IntToStr(ItemBase[3,i])+' ItemLVL='+IntToStr(ItemBase[4,i]));
           
end;
         
end;
      
end;
      
//удален
      
3begin
         
for i:=1 to max do begin
           
if ItemBase[1,i]=ItemOID then begin
             msg
.Lines.Add('Удаляем предмет!');
             
msg.Lines.Add('i='+inttostr(i)+' ItemOID='+IntToStr(ItemBase[1,i])+' ItemID='+IntToStr(ItemBase[2,i])+' ItemKol='+IntToStr(ItemBase[3,i])+' ItemLVL='+IntToStr(ItemBase[4,i]));
             
ItemBase[1,i]:=0;
             
ItemBase[2,i]:=0;
             
ItemBase[3,i]:=0;
             
ItemBase[4,i]:=0;
           
end;
         
end;
      
end;
    
end;
    if 
interlude then inc(j,10) else inc(j,2);
    
//msg.Lines.Add('j='+inttostr(j));
  
end;
end;
//......................................
//******************************************************************************
//находим в инвентаре предмет с ItemID и возвращаем его ObjectID
function GetItem(item:integerlvl:integer) : integer;
var
  
integer;
begin
  
for i:=1 to max do begin
    
//находим подходящий предмет по ItemID
    
if (ItemBase[2,i]=item) and (ItemBase[4,i]=lvlthen begin
      
//если нашли, то возвращаем ObjectID предмета
      
result:=ItemBase[1,i]; // itemOID
      
ItemCount:=ItemBase[3,i];
      
//Itemlvl:=ItemBase[4,i];
      //msg.Lines.Add('<item='+inttostr(item)+' lvl='+inttostr(lvl)+'> i='+inttostr(i)+' ItemOID='+IntToStr(ItemBase[1,i])+' ItemID='+IntToStr(ItemBase[2,i])+' ItemKol='+IntToStr(ItemBase[3,i])+' ItemLVL='+IntToStr(ItemBase[4,i]));
      
exit;
    
end;
  
end;
  
//ничего не нашли
  
result:=0;
end;
//......................................
//******************************************************************************
procedure UseItem(ObjectIDinteger);
begin
  buf
:=#$14;
  
WriteD(ObjectID);
  
WriteD(0);
  
SendToServerEx(Name);
end;
//......................................
//******************************************************************************
function SumItem(Iteminteger):integer;
var
  
suminteger;
begin
  result
:=0;
  
//находим подходящий предмет по ItemID
  
for i:=1 to max do begin
    
if (ItemBase[2,i]=itemthen begin
//      msg.Lines.Add('Нашли предмет ItemOID='+inttostr(ItemBase[1,i])+' ItemID='+inttostr(ItemBase[2,i])+' ItemCol='+inttostr(ItemBase[3,i])+' EnchantLvl='+inttostr(ItemBase[4,i]));
//      msg.Lines.Add('i='+inttostr(i));
      
result:=result+ItemBase[3,i];
      
//inc(result);
    
end;
  
end;
end;
//......................................
//******************************************************************************
procedure RequestEnchantItem(ObjectIDinteger);
begin
  buf
:=#$58;
  
WriteD(ObjectID);
  
SendToServerEx(Name);
  
//*********** использовать чит с петом ************************
{  buf:=#$8B;
  
WriteD(ObjectID);
  
writed(1);
  
SendToServerEx(Name);
}  
//***********
end;
//......................................
{//***************************************************************
function ExtractIDValues(sDatastring): integer;
var
  
sstring;
  
i,jinteger;
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(SenderTObject);
begin
  EditItemVal
.text:=inttostr(sumitem(ItemID));
  
EditScrollVal.text:=inttostr(sumitem(ScrollID));
  if (
CurEnchLvl>=strtoint(Edit1.Text)) then begin
    msg
.Lines.Add('Нечего точить! Прервано!');
    
timer.enabled:=false;
    exit;
  
end;
  if (
sumitem(ItemID)<=1then begin
//  if (sumitem(ItemID)<=0) then begin //если надо точить одну вещь
    
msg.Lines.Add('Прервано!');
    
timer.enabled:=false;
    exit;
  
end;
  
ScrollOID:=GetItem(ScrollID,0);
  if 
ScrollOID=0 then begin
    msg
.Lines.Add('Нет заточки! Прервано!');
    
timer.enabled:=false;
    exit;
  
end;
  
UseItem(ScrollOID);
  
msg.Lines.Add('Задействовали скролл ScrollID='+IntToStr(scrollID)+' ScrollOID='+IntToStr(ScrollOID));
  
ready:=true//готовы затачивать
//    delay(1000);
//    RequestEnchantItem(Item);
//    delay(1000);
    //************************************************
//    msg.Lines.Add('Пробуем улучшить ItemID='+IntToStr(Item));
//  end;
end;
//......................................
//***************************************************************
// Вся торговля здесь!!!
//***************************************************************
{procedure OnTrade1(SenderTObject);
begin
  
case trade of
    
//-------------------------------------------------
    //покупаем у Misc Trader  из массива TradeBuyItem1
    //-------------------------------------------------
    
100begin
      
if ReadyToBuy then exit; //если еще купили предыдущую вещь, то выходим сразу
      //мы у фишермана, покупаем крючки
      
if FishermanOID=0 then begin
        Trade1
.enabled:=false//останавливаем торговлю
        
msg.Lines.Add('Не готовы к торговле, нет OID фишермана! Требуется отбежать подальше и вернуться.');
        exit; 
//выходим
      
end;
      if 
TradeCount=TradeBuyItemCount then begin //проверка на выход из массива
        
trade:=400;
        
msg.Lines.Add('Всё купили!');
        
msg.Lines.Add('Переход к обмену...');
        
TradeCount:=0//начнем сначала массива
      
end else begin
        
if FindItem(TradeBuyItem[TradeCount])<strtoint(EditLure.textthen begin
          TargetAttacker
(FishermanOID); //фишермана в таргет
          
msg.Lines.Add('Готовы купить:'+inttostr(TradeBuyItem[TradeCount]));
          
ReadyToBuy:=true//готовы продавать
          
NeedBuy:=strtoint(EditLure.text)-colvoitm2//докупаем до 50
          
msg.Lines.Add('Требуется докупит крючков:'+inttostr(NeedBuy));
        
end else msg.Lines.Add('Не надо покупать, уже есть:'+inttostr(colvoitm2));
        
Trd:=TradeCount;
        
inc(TradeCount);
        
msg.Lines.Add('TradeCount/TradeBuyItemCount:'+inttostr(TradeCount)+'/'+inttostr(TradeBuyItemCount-1));
      
end;
    
//-------------------------------------------------
    //покупаем у Armor Trader  из массива TradeBuyItem2
    //-------------------------------------------------
    
200begin
      
if ReadyToBuy then exit; //если еще купили предыдущую вещь, то выходим сразу
      //мы у фишермана, покупаем крючки
      
if FishermanOID=0 then begin
        Trade1
.enabled:=false//останавливаем торговлю
        
msg.Lines.Add('Не готовы к торговле, нет OID фишермана! Требуется отбежать подальше и вернуться.');
        exit; 
//выходим
      
end;
      if 
TradeCount=TradeBuyItemCount then begin //проверка на выход из массива
        
trade:=400;
        
msg.Lines.Add('Всё купили!');
        
msg.Lines.Add('Переход к обмену...');
        
TradeCount:=0//начнем сначала массива
      
end else begin
        
if FindItem(TradeBuyItem[TradeCount])<strtoint(EditLure.textthen begin
          TargetAttacker
(FishermanOID); //фишермана в таргет
          
msg.Lines.Add('Готовы купить:'+inttostr(TradeBuyItem[TradeCount]));
          
ReadyToBuy:=true//готовы продавать
          
NeedBuy:=strtoint(EditLure.text)-colvoitm2//докупаем до 50
          
msg.Lines.Add('Требуется докупит крючков:'+inttostr(NeedBuy));
        
end else msg.Lines.Add('Не надо покупать, уже есть:'+inttostr(colvoitm2));
        
Trd:=TradeCount;
        
inc(TradeCount);
        
msg.Lines.Add('TradeCount/TradeBuyItemCount:'+inttostr(TradeCount)+'/'+inttostr(TradeBuyItemCount-1));
      
end;
    
end;
  
end;
end;
}
//......................................
//******************************************************************************
// вызывается при приходе каждого пакета, если скрипт включен
//******************************************************************************
begin
  
//****************************************************************************
  //не обрабатываем пустые пакеты
  
if pck='' then exit;
  
//****************************************************************************
  //покупка состоит из следующих шагов:
  //1. таргет  на продавце, пауза, снова таргет c04=Action, c04=Action
  //2. приходит s0F=NpcHtmlMessage:d(MessageID)s(HTML)d(d)
  //3. шлем выбранный пункт из меню c21=RequestBypassToServer:s(Cmd)
  //4. приходит s11=BuyList:d(Money)h(ListID)w(ListCount)w(ItemType1)h(ObjectID)i(ItemID)d(maxcnt)w(ItemType2)w(h)d(ItemBodyPart)
  //5. FindItem(ID) найдем OID, Count нужной вещи по ID
  //6. шлем c1F=RequestBuyItem:h(ListID)d(BuyCount)i(ItemID)d(Count)
  //****************************************************************************
{  if ReadyToBuy and (FishermanOID<>0then begin
    
if (ConnectName=Name) and FromServer then begin
      
case pck[1of
        
//после того как мы взяли в таргет продавца приходит этот пакет
        //s0F=NpcHtmlMessage:d(MessageID)s(HTML)d(d)
        #$0F: begin
          
msg.Lines.Add('S>Пакет NpcHtmlMessage #$0F');
          if 
ReadD(2)=FishermanOID then begin
            
//шлем запрос выбора пункта - продажа
            //c21=RequestBypassToServer:s(Cmd)
            
delay(1000);
            
RequestByPassToServer(getbuylist);
            
msg.Lines.Add('C>Пакет RequestBypassToServer #$21 (sell)');
          
end;
        
end;
        
//после выбора пункта - продажа, приходит этот пакет
        //s11=BuyList:d(Money)h(ListID)w(ListCount)w(ItemType1)h(ObjectID)i(ItemID)d(maxcnt)w(ItemType2)w(h)d(ItemBodyPart)
        #$11: begin
          
msg.Lines.Add('S>Пакет BuyList #$11');
          
ListID:=ReadD(6); //запоминаем, он все время разный
          
msg.Lines.Add('ListID='+inttostr(ListID));
          
//шлем запрос на продажу
          //1F=RequestBuyItem:h(ListID)d(BuyCount)i(ItemID)d(Count)
          
msg.Lines.Add('C>Пакет RequestBuyItem #$1F');
          
//продадим первый из списка
          
msg.Lines.Add('Item: ID:'+IntToStr(TradeBuyItem[Trd])+' Count:'+IntToStr(NeedBuy));
          
delay(1000);
          
RequestBuyItem(TradeBuyItem[Trd],NeedBuy);
          
ReadyToBuy:=false;
        
end;
      
end;
    
end;
  
end;
}  
//......................................
  //****************************************************************************
  
if FromServer then
  
case pck[1of
     
//......................................
    //Пакет ItemList
    #$1B: CreateItemBase; //создание базы предметов
     //......................................
    //если удалили предметы, стираем в базе предметов пары ObjectID - ItemID
    #$27: InventoryUpdate; //Обновление базы
     //......................................
    //Пакет ChooseInventory
    #$6F: if ready then begin //and (readd(2)=itemid)
      //ищем подходящий предмет для заточки
      
timer.enabled:=false//отключаем пока не найдем предмет для заточки
      
repeat
        ItemOID
:=GetItem(ItemID,CurEnchLvl);
        if 
ItemOID=0 then begin
          inc
(CurEnchLvl);
          
Edit2.text:=inttostr(CurEnchLvl);
        
end;
      
until ItemOID<>0;
      
//************************************************
      
msg.Lines.Add('Пробуем улучшить ItemID='+IntToStr(ItemID)+' ItemOID='+IntToStr(ItemOID));
      
RequestEnchantItem(ItemOID);
      
ready:=false;
      
timer.enabled:=true//пока в тесте отключаем (вкл. после заточки предмета)
    
end;
    
#$81: if readd(2)=0 then begin
          
CurEnchLvl:=0//начнем с начала
    
end;
  
end;
end.
[
CODE][/CODE]
подскажите де в этом скрипте менять МИН ЗНАЧЕНИЕ ТОЧКИ?
просто на серваке точиш пуху приполомке она падает не на 0 а на +3,из за етого прога виснет
спс
[/CODE][/QUOTE][CODE][/CODE
Скриптика побольше не нашлось?
З.Ы. - пост редактируй что бы скрипт был в тегах [ CODE]Text[ /CODE] (пробельчики убери)
________________
Зачем Ла2 себе скачал? Зачем ее установил? Я сон нормальный потерял. Про жизнь реальную забыл.

Последний раз редактировалось H0oL1GaN; 02.02.2010 в 17:36.
  Ответить с цитированием
Старый 16.02.2010, 18:04   #35
 Разведчик
Аватар для Lafisarrr
 
Lafisarrr неизвестен в этих краяхLafisarrr неизвестен в этих краях
Регистрация: 01.11.2009
Сообщений: 36
Популярность: -189
Сказал(а) спасибо: 10
Поблагодарили 22 раз(а) в 8 сообщениях
 
По умолчанию Re: Скрипты для l2phx

Антитаргет
Код:
Const
Name='Lafi';

var
// переменная
ValidatePosition:string;
a:integer; b:boolean;

procedure Init; //Вызывается при включении скрипта
begin
SendMsc('Возьми себя в таргет!');
b:=false;
end;
procedure SendMsc(msc:string);
begin
buf:=#$4A;
WriteD(0);
WriteD(10);
WriteS('');
WriteS(msc);
SendToClientEX(Name);
end;
//защитная часть
begin
begin
if FromClient and (pck[1]=#$04)and (not b) then
begin
a:=ReadD(2);
SendMsc('Запомнен ObjectID = '+inttostr(a));
b:=true;
end;
end;
If FromClient and (pck=hstr('38 2E 00 6F 00 6E 00 00 00 00 00 00 00')) then
begin
Buf:=#$9F;
WriteD(a);
buf:=buf+ hstr('01 00 00 00 56 0D 20 10 02 00 00 00');
SendToServerEX(Name);
end;
end.
Работает сам использую
________________
Помог? тыкай спасибо КТО знает баги или дюы шок ворлда отпишите в личку
  Ответить с цитированием
Старый 21.02.2010, 13:14   #36
 Разведчик
Аватар для kopacb
 
kopacb никому не известный тип
Регистрация: 02.08.2009
Сообщений: 7
Популярность: 10
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
 
По умолчанию Re: Скрипты для l2phx

Цитата:
Сообщение от LafisarrrПосмотреть сообщение
Антитаргет
Код:
Const
Name='Lafi';

var
// переменная
ValidatePosition:string;
a:integer; b:boolean;

procedure Init; //Вызывается при включении скрипта
begin
SendMsc('Возьми себя в таргет!');
b:=false;
end;
procedure SendMsc(msc:string);
begin
buf:=#$4A;
WriteD(0);
WriteD(10);
WriteS('');
WriteS(msc);
SendToClientEX(Name);
end;
//защитная часть
begin
begin
if FromClient and (pck[1]=#$04)and (not b) then
begin
a:=ReadD(2);
SendMsc('Запомнен ObjectID = '+inttostr(a));
b:=true;
end;
end;
If FromClient and (pck=hstr('38 2E 00 6F 00 6E 00 00 00 00 00 00 00')) then
begin
Buf:=#$9F;
WriteD(a);
buf:=buf+ hstr('01 00 00 00 56 0D 20 10 02 00 00 00');
SendToServerEX(Name);
end;
end.
Работает сам использую

Пробовал переделать под ГФ, знающие люди скажите что я упустил:
Код:
Const
Name='xxxx';

var
// переменная
ValidatePosition:string;
a:integer; b:boolean;

procedure Init; //Вызывается при включении скрипта
begin
SendMsc('Возьми себя в таргет!');
b:=false;
end;
procedure SendMsc(msc:string);
begin
buf:=#$4A;
WriteD(0);
WriteD(10);
WriteS('');
WriteS(msc);
SendToClientEX(Name);
end;
//защитная часть
begin
begin
if FromClient and (pck[1]=#$1F)and (not b) then
begin
a:=ReadD(2);
SendMsc('Запомнен ObjectID = '+inttostr(a));
b:=true;
end;
end;
If FromClient and (pck=hstr('49 2E 00 6F 00 6E 00 00 00 00 00 00 00')) then
begin
Buf:=#$A8;
WriteD(a);
buf:=buf+ hstr('01 00 00 00 56 0D 20 10 02 00 00 00');
SendToServerEX(Name);
end;
end.
  Ответить с цитированием
Старый 27.02.2010, 16:23   #37
 Разведчик
Аватар для lelveyn
 
lelveyn никому не известный тип
Регистрация: 12.02.2010
Сообщений: 1
Популярность: 10
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
 
Question Re: Скрипты для l2phx

люди пожалусто объясне что за скрипт название скрипта FakeGM
вот сам скрипт
Код:
//Set Builder
var
  i:integer;

begin
  if FromServer then if pck[2]=#$04 then begin
    i:=22;
    ReadS(i);
    i:=i+328;
    buf:=pck;
    WriteD(1,i);
    pck:=buf;
  end;
end.
{ некоторые ГМ команды:
///l2debugwindow - консолька
///l2debug - показывает сообщения в открытой консоли
///geodata - не пробовал пока... для работы необходимо скопировать папку геодата в папку сустем клиента
///buildzone map=[map_name] такая же ****ь но на одну область
///showborderline - показывает границу обасти
///showsectors - разбивает мир по секторам
///camerawalking mode=on|off - позволяет двигать камеру на ограниченное расстояние без движения перса.
///c_rmode [1-7] - изменяет внешнее отображение мира... очень жестоко ) приминения пока не нашел )
///bighead size=[1-n] - увеличивает размер головы. Видно ессестно только тебе )
///open [map name] - не пробовал
///get [class_name] [attrib_name]
///set [class_name] [attrib_name]
///editdefault class=[class_name]
///stat l2 - общая инфа обо всем... постоянно меняется. полезна.
///stat fps - да здравствует анрил ))) показывает как вы думаете что? ))) конечно же количество кадров в секунду )
}

Последний раз редактировалось GraNIT; 27.02.2010 в 16:26.
  Ответить с цитированием
Старый 01.03.2010, 20:24   #38
Заблокирован
 Старший сержант
Аватар для GraNIT
 
GraNIT излучает ауруGraNIT излучает ауруGraNIT излучает ауруGraNIT излучает ауруGraNIT излучает ауруGraNIT излучает ауру
Регистрация: 27.07.2009
Сообщений: 237
Популярность: 578
Сказал(а) спасибо: 593
Поблагодарили 329 раз(а) в 147 сообщениях
Отправить сообщение для GraNIT с помощью ICQ Отправить сообщение для GraNIT с помощью Skype™
 
По умолчанию Re: Скрипты для l2phx

Аргументация в 2 кнопки
Код:
const
   nik='GraNIT';

var
   WeaponID, LsID, GemID, GemCount: integer;

procedure Init; //Вызывается при включении скрипта
begin

end;

procedure OnTimer01(Sender: TObject);
begin

end;

procedure Free; //Вызывается при выключении скрипта
begin

end;

procedure OnConnect(WithClient: Boolean); //Вызывается при установке соединения
begin

end;

procedure OnDisonnect(WithClient: Boolean); //Вызывается при потере соединения
begin

end;

//основная часть скрипта
//вызывается при приходе каждого пакета если скрипт включен
begin
    if FromClient and (pck[1]=#$D0) then
        begin
           WeaponID:=ReadD(4);
           LsID:=ReadD(8);
           GemID:=ReadD(12);
           GemCount:=ReadD(16);
        end;

//Cancel Augment
    if FromClient and (pck=#$34#$03#$00#$00#$00) then
       begin
          pck:='';
          Buf:=#$D0#$45#$00;
          WriteD(WeaponID);
          SendToServerEx(nik);
          Buf:=#$D0#$46#$00;
          WriteD(WeaponID);
          SendToServerEx(nik);

       end;

//Augment
    if FromClient and (pck=#$34#$02#$00#$00#$00) then
       begin
          pck:='';
          Buf:=#$D0#$44#$00;
          WriteD(WeaponID);
          WriteD(LsID);
          WriteD(GemID);
          WriteD(GemCount);
          SendToServerEx(nik);
       end;
end.
Инструкция:
1. Включили скрипт
2. Вставили ЛС в игре.
3. Второе соц. действие вытаскиевает ЛС.
4. Первое соц. действие вставляет ЛС.


P.S. тестилось на Part 2 :Grace World, Megal2 .

Последний раз редактировалось GraNIT; 02.03.2010 в 00:33.
  Ответить с цитированием
Старый 24.04.2010, 20:52   #39
 Разведчик
Аватар для ALexCrosby
 
ALexCrosby на правильном пути
Регистрация: 08.04.2010
Сообщений: 26
Популярность: 42
Сказал(а) спасибо: 117
Поблагодарили 22 раз(а) в 14 сообщениях
 
По умолчанию Re: Скрипты для l2phx

Цитата:
Сообщение от ISharkIПосмотреть сообщение
Скрипт реально работает, на всех сборках la2base и везде где у бафера есть кнопки heal,cp,mana,Лично проверял.//
Код:
Скрипт на регенерацию Маны,Хп,Цп на сервере *****
//Для активации окна введите в парти чат '.window'
//Перед включением скрипта нужно стоять рядом с бафером!
//Для регенерации хп нужно просто посылать '.heal' в парти чат
//Работает на сервер где есть у бафера регенерация хп мп цп
//Версия 6.0  Final
//Автор Crazy$

var
// переменная
ValidatePosition:string; c:integer; e:integer; n:integer; r:boolean;     
a:integer; b:boolean;  d:integer; f:integer; v:integer;

procedure Init; //Вызывается при включении скрипта
begin
SendMsc('Возьми в таргет бафера и сделай шаг!');
b:=false;
end;
procedure SendMsc(msc:string);
begin
buf:=#$4A;
WriteD(0);
WriteD(10);
WriteS('');
WriteS(msc);
SendToClient;
end;
//защитная часть
begin
begin
if FromClient and (pck[1]=#$04)and (not b) then 
begin
a:=ReadD(2); c:=ReadD(6);
d:=ReadD(10); e:=ReadD(14);
f:=ReadC(18);
SendMsc('Запомнен ObjectID = '+inttostr(a));
b:=true;
end;
end;
begin
if FromClient and (pck[1]=#$48) then 
begin
v:=ReadD(14); n:=ReadD(18);
end;
end;
//запоминание пакета ValidatePosition
if FromClient and (pck[1]=#$48) then ValidatePosition:=pck;
if pck='' then exit;
if fromclient and (pck=#$38#$2E#$00#$77#$00#$69#$00#$6E#$00#$64#$00#$6F#$00#$77#$00#$00#$00#$03#$00#$00#$00) then
begin
buf:=#$04;
WriteD(a);
WriteD(c);
WriteD(d);
WriteD(e);
WriteC(f);
SendToServer;
buf:=#$48;
WriteD(c);
WriteD(d);
WriteD(e);
WriteD(v);
WriteD(n);
SendToServer;
buf:=#$21;
Writes('npc_'+inttostr(a)+'_restore hp 1');
SendToServer;
buf:=#$21;
WriteS('npc_'+inttostr(a)+'_restore mp 1');
SendToServer;
buf:=#$21;
WriteS('npc_'+inttostr(a)+'_restore cp 1');
SendToServer;
buf:=hstr('37 01 00');
SendToServer;
//отсылка пакета ValidatePosition, запомненого ранее
buf:=ValidatePosition; SendToServer;
end;
begin
if FromClient and (pck[1]=#$48) then ValidatePosition:=pck;
if pck='' then exit;
if FromClient and (pck=#$38#$2E#$00#$68#$00#$65#$00#$61#$00#$6C#$00#$00#$00#$03#$00#$00#$00) then 
begin
buf:=#$48;
WriteD(c);
WriteD(d);
WriteD(e);
WriteD(v);
WriteD(n);
SendToServer;
buf:=#$21;
Writes('npc_'+inttostr(a)+'_restore hp 1');
SendToServer;
buf:=#$21;
WriteS('npc_'+inttostr(a)+'_restore mp 1');
SendToServer;
buf:=#$21;
WriteS('npc_'+inttostr(a)+'_restore cp 1');
SendToServer;
//отсылка пакета ValidatePosition, запомненого ранее
buf:=ValidatePosition; SendToServer;
                end;
           end;
end.

У меня на серве у нпц бафера есть функция вылечить и она ресает сразу фулл хп мп сп. Будет ли этот скрипт работать?
  Ответить с цитированием
Старый 24.04.2010, 21:00   #40
Заблокирован
 Старший сержант
Аватар для smertoO
 
smertoO излучает ауруsmertoO излучает ауруsmertoO излучает ауруsmertoO излучает ауруsmertoO излучает ауруsmertoO излучает ауру
Регистрация: 27.05.2009
Сообщений: 199
Популярность: 643
Сказал(а) спасибо: 207
Поблагодарили 267 раз(а) в 126 сообщениях
Отправить сообщение для smertoO с помощью ICQ Отправить сообщение для smertoO с помощью Skype™
 
По умолчанию Re: Скрипты для l2phx

Цитата:
Сообщение от ALexCrosbyПосмотреть сообщение
У меня на серве у нпц бафера есть функция вылечить и она ресает сразу фулл хп мп сп. Будет ли этот скрипт работать?

вощможно, тут не в бафере дело.
  Ответить с цитированием
Старый 29.04.2010, 23:03   #41
 Разведчик
Аватар для Lyn}{
 
Lyn}{ никому не известный тип
Регистрация: 20.04.2010
Сообщений: 2
Популярность: 12
Сказал(а) спасибо: 0
Поблагодарили 1 раз в 1 сообщении
 
По умолчанию Re: Скрипты для l2phx

Бьём без флага и урона
Код:
begin
 if FromClient and ((pck[1]=#$0A) or (pck[1]=#$04)) then //Если атакуем, то:
begin
buf:=pck;
SendToServer;          //Отправил пакет дальше 
delay(100);
buf:=#$73;             //Открыть продажу
SendToServer;  
buf:=#$76;             //Закрыть продажу    
SendToServer;
pck:='';               
end;        
if fromserver and (pck[1]=#$9a) then pck:=''; 
end.
l2phx 3.5.33.154 но работать должно на всех
скрипт мой. C4/IL дальше не проверял. Не работает-фикс
Просто ставим галочку

Последний раз редактировалось Lyn}{; 30.04.2010 в 00:37.
  Ответить с цитированием
Старый 03.05.2010, 20:31   #42
Заблокирован
 Сержант
Аватар для lSiml
 
lSiml скоро будет известенlSiml скоро будет известенlSiml скоро будет известенlSiml скоро будет известенlSiml скоро будет известен
Регистрация: 04.12.2009
Сообщений: 131
Популярность: 466
Сказал(а) спасибо: 144
Поблагодарили 176 раз(а) в 94 сообщениях
Отправить сообщение для lSiml с помощью ICQ
 
По умолчанию Re: Скрипты для l2phx

Augment до получения нужного скила by Vilson

Цитата:
Оба скрипта положить в папку со скриптами, почитать инструкцию вначале скрипта, поменять параметры на свои. Без PacketsT2.script в принципе можно обойтись если вы перенесете вызываемые из него функции в основной скрипт Augment_2.script. Я использую два файла только потому что мне так удобно, этот PacketsT2.script использую во всех своих скриптах что бы не переписывать по сто раз один и тот же код, кроме того при выходе новой версии линейки не надо будет переписывать все скрипты, достаточно будет переписать только PacketsT2.script.

Augment_2.rar
PacketsT2.rar
  Ответить с цитированием
Пользователь сказал cпасибо:
Arsonist (04.05.2010)
Старый 04.05.2010, 10:08   #43
 Разведчик
Аватар для Arsonist
 
Arsonist на правильном пути
Регистрация: 31.05.2009
Сообщений: 12
Популярность: 64
Сказал(а) спасибо: 105
Поблагодарили 27 раз(а) в 6 сообщениях
 
По умолчанию Re: Скрипты для l2phx

Цитата:
Сообщение от lSimlПосмотреть сообщение
Augment до получения нужного скила by Vilson



Вложение 2606
Вложение 2607

А можно этот скрипт переписать под Interlude ?
  Ответить с цитированием
Старый 11.05.2010, 22:12   #44
 Разведчик
Аватар для maamaster
 
maamaster никому не известный тип
Регистрация: 11.05.2010
Сообщений: 1
Популярность: 10
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
 
По умолчанию Re: Скрипты для l2phx

У меня вот такой вопрос есть СВС и БД оф пати скрипт который работает на ХБ, после перехода на Эпилог при выборе дансов появляется скилы не бд и свс. Собственно это шоки как можна переделать скрипт или помогите с новым.
  Ответить с цитированием
Старый 13.05.2010, 19:43   #45
 Разведчик
Аватар для sekaskissa
 
sekaskissa на правильном путиsekaskissa на правильном пути
Регистрация: 13.02.2010
Сообщений: 32
Популярность: 105
Сказал(а) спасибо: 52
Поблагодарили 97 раз(а) в 38 сообщениях
Отправить сообщение для sekaskissa с помощью ICQ Отправить сообщение для sekaskissa с помощью Skype™
 
Smile Re: Скрипты для l2phx

сталкивался со скриптами вставки ЛС на интерлюде. увы но мой phx выдавал ошибки. код значительно не отличается от оригинального. немного поправлена ошибка с hex. Код правил самолично. ибо нигде не нашел рабочего скрипта.
скрипт лежит и у нас. но брал исходники с codex.ru
тестим и радуемся

PHP код:
const
  
Name='RMF'// ник
  
ItemID=6608// пуха
  
LifeID=8762// лайфстон
  
GemsID=2131// гемстон
  
GemsAmount=25//кол-во гемов
  
max=80;  // инвентарь
var
 
LifeBase:array[1..maxof integer;    
 
ColvoLife,ColvoGems,Life,Item,Gems,SocialID,augid:integer;
procedure Init;
var 
i:integer;
begin
 buf
:=hstr('0F');
 
SendToServerEx(Name);
end;
procedure Free;
var 
i:integer;
begin
 
for i:=1 to max do
  
LifeBase[i]:=0;
end;
function 
StrToHex2(packetstring):string;
var
  
i:integer;
  
tmp:byte;
  function 
ByteToHex(bbyte): Char;
  
begin
    
if b<10 then result:=chr(b+$30)
      else 
result:=chr(b+$37);
  
end;
begin
  result
:='';
  for 
i:=1 to length(packet) do begin
    tmp
:=ord(packet[i]) div 16;
    
result:=result+ByteToHex(tmp);
    
tmp:=ord(packet[i]) - tmp*16;
    
result:=result+ByteToHex(tmp)+' ';
  
end;
end;
function 
inttohex(n:integer):string;
var 
i:integer;
    
t:string;
    
a:array[0..15of char;
begin
 a
[0]:='0';
 
a[1]:='1';
 
a[2]:='2';
 
a[3]:='3';
 
a[4]:='4';
 
a[5]:='5';
 
a[6]:='6';
 
a[7]:='7';
 
a[8]:='8';
 
a[9]:='9';
 
a[10]:='A';
 
a[11]:='B';
 
a[12]:='C';
 
a[13]:='D';
 
a[14]:='E';
 
a[15]:='F';
 
result:='';
 
t:='';
 
i:=0;
 while 
n<>do begin
  
if (i mod 2=0)and(i>0then begin
   result
:=result+t+' ';
   
t:='';
  
end;
  
t:=a[n mod 16]+t;
  
n:=n div 16;
  
inc(i);
 
end;
 
result:=result+t;
end;
procedure Say;
var 
i:integer;
    
s:string;
begin
  s
:='<tr><td>LS='+inttostr(ColvoLife)+' (*'+inttostr(GemsAmount)+'='+inttostr(ColvoLife*GemsAmount)+')</td></tr>';
  
s:=s+'<tr><td>Gems='+inttostr(ColvoGems)+' (/'+inttostr(GemsAmount)+'='+inttostr(ColvoGems div GemsAmount)+')</td></tr>';
  
s:=s+'<tr><td>---</td></tr>';
  if 
Item=0 then
   s
:=s+'<tr><td>No Weapon</td></tr>'
  
else if augid>0 then
   s
:=s+'<tr><td>Augmented ('+inttohex(augid)+')</td></tr>'
  
else
   
s:=s+'<tr><td>Not augmented</td></tr>';
  
buf:=hstr('0F 01 00 00 00');
  
WriteS('<html><body><br><table width=100%>'+s+'</table><br><br><br><br><br><br>'+
   
'"Social Yes" - Cancel Augment(if augmented) and Augment(if you have enough gems and LSs)<br>'+
   
'"Social No" - Show this help<br><br>'+
   
'Sometimes client dont get packet InventoryUpdate and you see "Not augment" when weapon is augmented.'+
   
' Simply press [Tab] twice or wear weapon.<br><br>'+
   
'(c) raid aka Mamy</body></html>');
//   '(c) raid aka Mamy<br>'+strtohex(pck)+'</body></html>');
  
WriteD(0);
  
SendToClientEx(Name);
end;
procedure CreateItemBase
var 
i,ss,j,ObjID,ItmID,ListCount,count,aug:integer;
begin
  Item
:=0;
  
ss:=1;
  
j:=4
  
ListCount:=ReadH(j); 
  if 
ListCount>max then ListCount:=max;
  
j:=8
  for 
i:=1 to ListCount do begin
     ObjID
:=ReadD(j);    
     
ItmID:=ReadD(j);    
     
Count:=ReadD(j);
     
j:=j+14;
     
aug:=ReadD(j);
     case 
ItmID of
        LifeID
begin
            LifeBase
[ss]:=ObjID;
            
inc(ss);
        
end;
        
ItemIDbegin
            Item
:=ObjID;
            
augid:=aug;
        
end;
        
GemsIDbegin
            Gems
:=ObjID;
            
ColvoGems:=Count;
        
end;
     
end;
    
j:=j+6;
  
end;
  
ColvoLife:=ss-1;
  
Say;
end;
procedure UpdateItemBase
var 
i,ii,j,ObjID,ItmID,ListCount,Count,UpdType,auginteger;
begin
  ListCount
:=ReadH(2);
  
j:=4;
  for 
i:=1 to ListCount do begin
    UpdType
:=ReadH(j);
    
j:=j+2;
    
ObjID:=ReadD(j);
    
ItmID:=ReadD(j);
    
Count:=ReadD(j);
    
j:=j+14;
    
aug:=ReadD(j);
    case 
UpdType of
      1
:case ItmID of
          ItemID
begin
            Item
:=ObjID;
            
augid:=aug;
          
end;
          
LifeIDbegin
            
for ii:=1 to max do
             if 
LifeBase[ii]=0 then begin
              LifeBase
[ii]:=ObjID;
              
ColvoLife:=ColvoLife+1;
              break;
             
end;
          
end;
        
GemsIDbegin
            Gems
:=ObjID;
            
ColvoGems:=Count;
        
end;
      
end;
      
2:case ItmID of
        ItemID
begin
          Item
:=ObjID;
          
augid:=aug;
        
end;
        
GemsIDbegin
            Gems
:=ObjID;
            
ColvoGems:=Count;
        
end;
      
end;
      
3:case ItmID of
        ItemID
:
          
Item:=0;
        
GemsIDbegin
            Gems
:=ObjID;
            
ColvoGems:=Count;
        
end;
        
LifeIDbegin
          
for ii:=1 to max do
            if 
LifeBase[ii]=ObjID then begin
             LifeBase
[ii]:=0;
             
ColvoLife:=ColvoLife-1;
            
end;
        
end;
      
end;
    
end;
    
j:=j+6;
  
end;
 
Say;
end;
function 
GetNextLifeinteger;
var 
i:integer;
begin
  Result
:=-1;
  for 
i:=1 to max do begin
    
if (LifeBase[i]<>0then begin
      Result
:=LifeBase[i];
      exit;
    
end;
  
end;
end;
procedure Augment;
begin
 buf
:=hstr('D0 29 00');
 
WriteD(Item);
 
SendToServerEx(Name);
 
delay(100);
 
buf:=hstr('D0 2A 00');
 
WriteD(Item);
 
WriteD(Life);
 
SendToServerEx(Name);
 
delay(100);
 
buf:=hstr('D0 2B 00');
 
WriteD(Item);
 
WriteD(Life);
 
WriteD(Gems);
 
WriteD(GemsAmount);
 
SendToServerEx(Name);
 
delay(100);
 
buf:=hstr('D0 2C 00');
 
WriteD(Item);
 
WriteD(Life);
 
WriteD(Gems);
 
WriteD(GemsAmount);
 
SendToServerEx(Name);
end;
procedure DisAugment;
begin
 buf
:=hstr('D0 2D 00');
 
WriteD(Item);
 
SendToServerEx(Name);
 
buf:=hstr('D0 2E 00');
 
WriteD(Item);
 
SendToServerEx(Name);
end;
begin
  
if pck='' then exit;
  if 
FromClient and (ConnectName=Name) and (pck[1]=#$1B) then begin
    
SocialID:=ReadD(2);
   
pck:='';
    case 
SocialID of
      7
begin
 buf
:=hstr('A7 2A A0 00 00 80 84 1E 00 0A 00 00 00 00 00 00 00 00 00 00 00');
 
SendToServerEx(Name);
 
buf:=hstr('A7 29 A0 00 00 40 0D 03 00 FA 00 00 00 00 00 00 00 00 00 00');
 
SendToServerEx(Name);

        exit;
       
end;
      
6begin
       
if augid>0 then begin
        DisAugment
;
        
delay(300);
       
end;
       
Life:=GetNextLife;
       if (
Life=-1)or(ColvoGems<GemsAmount)or(ColvoLife<1then
        
exit;
       
Augment;
       exit;
      
end;
      
5begin
       Say
;
       exit;
      
end;
    
end;
  
end;
  if 
FromServer then
  
case pck[1of
    
#$1B: CreateItemBase; 
    #$27: UpdateItemBase; 
  
end;
end
Управление:
1. социальное действие "да" - вытащить и вставить ЛС
2. социальное действие "нет" - вызов справки.
3. для работы скрипта впишите нужные данные в начале скрипта (читаем примечание после каждой строки)

Примечание. В вашем инвентаре должна быть только одна пушка с таким же ID в которій вы хотите вставить скилл.

не откажусь от благодарности.
З.Ы. скорость вставки ЛС поражает
________________
дедики не продаю!!!

Последний раз редактировалось sekaskissa; 13.05.2010 в 19:50. Причина: добавление информации
  Ответить с цитированием
6 пользователя(ей) сказали cпасибо:
6o6eh (25.11.2014), AnotherTest (24.02.2013), dynastyhurts (22.12.2010), Excellent18rus (13.05.2010), lSancho (27.12.2011), m+Mef14279 (30.01.2011)
Ответ

Метки
l2phx, скрипты

Опции темы

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

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

Быстрый переход

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
[Скрипт] Скрипты для RFRudokop. Vizir Rising Force Online 13 15.07.2009 00:10
[Файл] l2phx.3.4.1.70 ZliLO Скрипты и перехват пакетов 7 05.04.2009 23:25
[Руководство] Нейтральные скрипты maxxx Архив Warcraft 3 0 11.11.2008 21:22
Скрипты для Рудокопа Chopa Архив уязвимостей 1 16.07.2008 17:32

Заявление об ответственности / Список мошенников

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

Пишите нам: [email protected]
Copyright © 2024 vBulletin Solutions, Inc.
Translate: zCarot. Webdesign by DevArt (Fox)
G-gaMe! Team production | Since 2008
Hosted by GShost.net