Тема: скрипт
Показать сообщение отдельно
Старый 11.01.2011, 21:17   #36
Местный
 
Регистрация: 04.11.2009
Адрес: Где-то в жопе европы
Сообщений: 316
Сказал Спасибо: 32
Имеет 42 спасибок в 39 сообщенях
wimax пока неопределено
По умолчанию

delphi Код:
Const Name='BloodOfEva'; offset=68; ItemID=7134; var    Timer01: TTimer;    Timer02: TTimer;    Timer03: TTimer;    Timer04: TTimer;    Inventory:array of variant;    v:variant;    i:integer;     procedure Init;    begin    buf:=#$11;    SendToServerEx(Name);    SetLength(Inventory,0);    Timer01:=TTimer.Create(nil); //выделяем памать и т.п.    Timer01.OnTimer:=@OnTimer01; //привязываем процедуру к событию    Timer01.enabled:=false; //начальное положение включен(true)/выключен(false)    Timer01.interval:=2000; //280000 интервал(в милисекундах) как часто таймер срабатывает    Timer02:=TTimer.Create(nil); //выделяем памать и т.п.    Timer02.OnTimer:=@OnTimer02; //привязываем процедуру к событию    Timer02.enabled:=false; //начальное положение включен(true)/выключен(false)    Timer02.interval:=10; //10интервал(в милисекундах) как часто таймер срабатывает    Timer03:=TTimer.Create(nil); //выделяем памать и т.п.    Timer03.OnTimer:=@OnTimer03; //привязываем процедуру к событию    Timer03.enabled:=false; //начальное положение включен(true)/выключен(false)    Timer03.interval:=3000; //310000 интервал(в милисекундах) как часто таймер срабатывает    Timer04:=TTimer.Create(nil); //выделяем памать и т.п.    Timer04.OnTimer:=@OnTimer04; //привязываем процедуру к событию    Timer04.enabled:=false; //начальное положение включен(true)/выключен(false)    Timer04.interval:=6000; //1200000 интервал(в милисекундах) как часто таймер срабатывает  end; procedure Free; begin     Timer01.free;     Timer02.free;        Timer03.free;     Timer04.free;    end; procedure ItemList; var i:integer; v:variant; begin SetLength(Inventory,0); if ReadH(4)<1 then exit; for i:=0 to ReadH(4)-1 do begin v:=[0,1,2]; v[0]:=ReadD(i*offset+6)//0 - OID v[1]:=ReadD(i*offset+10); //1 - ItemID v[2]:=ReadQ(i*offset+18); //2 - Count SetLength(Inventory,length(Inventory)+1); Inventory[length(Inventory)-1]:=v; end; end; procedure InventoryUpdate; var i,j:integer; v:variant; begin if ReadH(2)<1 then exit; for i:=0 to ReadH(2)-1 do begin v:=[0,1,2]; v[0]:=ReadD(i*offset+6); v[1]:=ReadD(i*offset+10); v[2]:=ReadQ(i*offset+18); case ReadH(i*offset+4) of 1: begin SetLength(Inventory,length(Inventory)+1); Inventory[length(Inventory)-1]:=v; end; 2: begin j:=FindItemByParams(v,0); if j=-1 then exit; Inventory[j]:=v; end3: begin j:=FindItemByParams(v,0); if j=-1 then exit; if (j<>length(Inventory)-1) then Inventory[j]:=Inventory[length(Inventory)-1]; SetLength(Inventory,length(Inventory)-1); end; end;    end; end; function FindItemByParams(v:variant;p:byte) : integer; var a:integer; tempv:variant; begin result:=-1; for a:=0 to length(Inventory)-1 do begin tempv:=Inventory[a]; if tempv[p]=v[p] then begin result:=a; exit; end; end; end; function FindItemByItemID(ItemId:integer) : integer; var i:integer; tempv:variant; begin result:=-1; for i:=0 to length(Inventory)-1 do begin tempv:=Inventory[i]; if tempv[1]=ItemID then begin result:=i; exit; end; end; end; procedure OnTimer01(Sender: TObject); begin Timer01.enabled:=False; Timer02.enabled:=Trueend; procedure OnTimer02(Sender: TObject); begin pck:=''; buf:=HStr('C6 BF 07 00 00 01 00 00 00 03 00 00 00'); SendToServerEx(Name); end; procedure OnTimer03(Sender: TObject); begin Timer03.enabled:=False; Timer02.enabled:=Falseend; procedure OnTimer04(Sender: TObject); begin Timer04.enabled:=False; begin pck:=''; buf:=HStr('B3 00 00 00 00'); SendToServerEx(Name); end; end; procedure Use; begin buf:=#$19; WriteD(i); WriteD(0); SendToServerEx(Name); end; procedure Localchek; begin  if (ReadD(2)=924) then Use; end; begin IF FromServer and( pck[1]=#$4A) and (ReadS(12)='CTF: Старт через 5 мин. для уровней 76-85.')begin Timer01.enabled:=True; Timer03.enabled:=True; Timer04.enabled:=True; end; if FromServer and (ConnectName=Name) then case pck[1] of #$11: ItemList; #$21: InventoryUpdate; #$62: Localchek; end; end.
почините кто небуть я не могу уже мозги выносит жесть(((

Последний раз редактировалось wimax, 11.01.2011 в 22:46.
wimax вне форума   Ответить с цитированием