Zhyk.Ru Forums
  #31
Старый 29.12.2009, 22:23
TAMBIK
 Разведчик
 
Аватар для TAMBIK
 

Регистрация: 08.11.2009
Сообщений: 28
Сказал(а) спасибо: 7
Поблагодарили 24 раз(а) в 15 сообщениях
TAMBIK Скоро будет известен
По умолчанию 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.
TAMBIK вне форума   Ответить с цитированием

  #32
Старый 06.01.2010, 08:41
ISharkI
Почетный Пользователь
 Сержант
 
Аватар для ISharkI
 

Регистрация: 29.10.2009
Адрес: Мой адрес не дом и не улица, мой адрес Советский союз.
Сообщений: 138
Сказал(а) спасибо: 27
Поблагодарили 217 раз(а) в 73 сообщениях
ISharkI Ну просто перецISharkI Ну просто перецISharkI Ну просто перецISharkI Ну просто перецISharkI Ну просто перецISharkI Ну просто перец

Награды Пользователя

Отправить сообщение для 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
__________________
Страус вовсе не прячет голову в песок-он показывает нам задницу.
ТыКАй СПАСИБО..Спасибо.
Я Полюбил РЕП и походу полюбил его очень.


Продам Евенты под Interlude : Хаус Евент , Казино Евент ( все рабочие , без багов )Писать в ЛС или в ICQ
ISharkI вне форума   Ответить с цитированием
  #33
Старый 10.01.2010, 11:51
siiion1
eBanned
 Разведчик
 
Аватар для siiion1
 

Регистрация: 10.12.2009
Сообщений: 7
Сказал(а) спасибо: 3
Поблагодарили 11 раз(а) в 9 сообщениях
siiion1 На правильном пути
По умолчанию 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 в 11:58..
siiion1 вне форума   Ответить с цитированием
  #34
Старый 02.02.2010, 16:32
H0oL1GaN
 Разведчик
 
Аватар для H0oL1GaN
 

Регистрация: 11.08.2009
Адрес: Ukraine
Сообщений: 42
Сказал(а) спасибо: 19
Поблагодарили 44 раз(а) в 17 сообщениях
H0oL1GaN Скоро будет известен
Отправить сообщение для 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 в 16:36..
H0oL1GaN вне форума   Ответить с цитированием
  #35
Старый 16.02.2010, 17:04
Lafisarrr
 Пехотинец
 
Аватар для Lafisarrr
 

Регистрация: 01.11.2009
Сообщений: 45
Сказал(а) спасибо: 10
Поблагодарили 21 раз(а) в 8 сообщениях
Lafisarrr Неизвестен в этих краяхLafisarrr Неизвестен в этих краях
По умолчанию 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.
Работает сам использую
__________________
Помог? тыкай спасибо КТО знает баги или дюы шок ворлда отпишите в личку
Lafisarrr вне форума   Ответить с цитированием
  #36
Старый 21.02.2010, 12:14
kopacb
 Разведчик
 
Аватар для kopacb
 

Регистрация: 02.08.2009
Сообщений: 8
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
kopacb На правильном пути
По умолчанию 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.
kopacb вне форума   Ответить с цитированием
  #37
Старый 27.02.2010, 15:23
lelveyn
 Разведчик
 
Аватар для lelveyn
 

Регистрация: 12.02.2010
Адрес: чайник
Сообщений: 1
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
lelveyn На правильном пути
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 в 15:26..
lelveyn вне форума   Ответить с цитированием
  #38
Старый 01.03.2010, 19:24
GraNIT
-= Чит-Воин =-
 Капитан
 
Аватар для GraNIT
 

Регистрация: 27.07.2009
Адрес: Earth
Сообщений: 256
Сказал(а) спасибо: 594
Поблагодарили 326 раз(а) в 148 сообщениях
GraNIT Его имя у всех на слухуGraNIT Его имя у всех на слухуGraNIT Его имя у всех на слухуGraNIT Его имя у всех на слухуGraNIT Его имя у всех на слухуGraNIT Его имя у всех на слуху

Награды Пользователя

Отправить сообщение для 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 .
__________________
zhyk.ru inside me
Раздаю инвайты на www.lockerz.com ( халявные призы с США) писать в РМ.

Последний раз редактировалось GraNIT; 01.03.2010 в 23:33..
GraNIT вне форума   Ответить с цитированием
  #39
Старый 24.04.2010, 19:52
ALexCrosby
 Разведчик
 
Аватар для ALexCrosby
 

Регистрация: 08.04.2010
Сообщений: 15
Сказал(а) спасибо: 50
Поблагодарили 6 раз(а) в 3 сообщениях
ALexCrosby На правильном пути
По умолчанию 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.
У меня на серве у нпц бафера есть функция вылечить и она ресает сразу фулл хп мп сп. Будет ли этот скрипт работать?
ALexCrosby на форуме   Ответить с цитированием
  #40
Старый 24.04.2010, 20:00
smertoO
eBanned
 Старший сержант
 
Аватар для smertoO
 

Регистрация: 27.05.2009
Адрес: Hell
Сообщений: 229
Сказал(а) спасибо: 209
Поблагодарили 264 раз(а) в 128 сообщениях
smertoO Его имя у всех на слухуsmertoO Его имя у всех на слухуsmertoO Его имя у всех на слухуsmertoO Его имя у всех на слухуsmertoO Его имя у всех на слухуsmertoO Его имя у всех на слуху

Награды Пользователя

Отправить сообщение для smertoO с помощью ICQ Отправить сообщение для smertoO с помощью Skype™
По умолчанию Re: Скрипты для l2phx

Цитата:
Сообщение от ALexCrosby Посмотреть сообщение
У меня на серве у нпц бафера есть функция вылечить и она ресает сразу фулл хп мп сп. Будет ли этот скрипт работать?
вощможно, тут не в бафере дело.
smertoO вне форума   Ответить с цитированием
  #41
Старый 29.04.2010, 22:03
Lyn}{
 Разведчик
 
Аватар для Lyn}{
 

Регистрация: 20.04.2010
Сообщений: 6
Сказал(а) спасибо: 0
Поблагодарили 1 раз в 1 сообщении
Lyn}{ На правильном пути
По умолчанию 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}{; 29.04.2010 в 23:37..
Lyn}{ вне форума   Ответить с цитированием
  #42
Старый 03.05.2010, 19:31
lSiml
 Пехотинец
 
Аватар для lSiml
 

Регистрация: 04.12.2009
Сообщений: 65
Сказал(а) спасибо: 53
Поблагодарили 59 раз(а) в 38 сообщениях
lSiml Какая-то аура вокругlSiml Какая-то аура вокруг
Отправить сообщение для lSiml с помощью ICQ
По умолчанию Re: Скрипты для l2phx

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

Цитата:
Оба скрипта положить в папку со скриптами, почитать инструкцию вначале скрипта, поменять параметры на свои. Без PacketsT2.script в принципе можно обойтись если вы перенесете вызываемые из него функции в основной скрипт Augment_2.script. Я использую два файла только потому что мне так удобно, этот PacketsT2.script использую во всех своих скриптах что бы не переписывать по сто раз один и тот же код, кроме того при выходе новой версии линейки не надо будет переписывать все скрипты, достаточно будет переписать только PacketsT2.script.
[Ссылки могут видеть только зарегистрированные пользователи. ]
[Ссылки могут видеть только зарегистрированные пользователи. ]
__________________
учись благодарить, нажми спасибо.
lSiml вне форума   Ответить с цитированием
Пользователь сказал cпасибо:
Arsonist (04.05.2010)
  #43
Старый 04.05.2010, 09:08
Arsonist
 Разведчик
 
Аватар для Arsonist
 

Регистрация: 31.05.2009
Сообщений: 13
Сказал(а) спасибо: 94
Поблагодарили 24 раз(а) в 5 сообщениях
Arsonist Скоро будет известен
По умолчанию Re: Скрипты для l2phx

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



[Ссылки могут видеть только зарегистрированные пользователи. ]
[Ссылки могут видеть только зарегистрированные пользователи. ]
А можно этот скрипт переписать под Interlude ?
Arsonist вне форума   Ответить с цитированием
  #44
Старый 11.05.2010, 21:12
maamaster
 Разведчик
 
Аватар для maamaster
 

Регистрация: 11.05.2010
Сообщений: 1
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
maamaster На правильном пути
По умолчанию Re: Скрипты для l2phx

У меня вот такой вопрос есть СВС и БД оф пати скрипт который работает на ХБ, после перехода на Эпилог при выборе дансов появляется скилы не бд и свс. Собственно это шоки как можна переделать скрипт или помогите с новым.
maamaster вне форума   Ответить с цитированием
  #45
Старый 13.05.2010, 18:43
sekaskissa
 Разведчик
 
Аватар для sekaskissa
 

Регистрация: 13.02.2010
Сообщений: 17
Сказал(а) спасибо: 33
Поблагодарили 12 раз(а) в 6 сообщениях
sekaskissa На правильном пути
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 в которій вы хотите вставить скилл.

не откажусь от благодарности.
З.Ы. скорость вставки ЛС поражает
__________________
The big bang teory

Последний раз редактировалось sekaskissa; 13.05.2010 в 18:50.. Причина: добавление информации
sekaskissa вне форума   Ответить с цитированием
Пользователь сказал cпасибо:
Excellent18rus (13.05.2010)
Ответ

Закладки

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

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

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

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

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

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



Заявление об ответственности
Часовой пояс GMT +4, время: 04:02.
Powered by vBulletin
Copyright © 2010 vBulletin Solutions, Inc.
Перевод: zCarot. Webdesign by vbdesigns.de
G-gaMe! Team production