Показать сообщение отдельно
Старый 13.12.2008, 23:51   #16
Рыцарь
 
Аватар для NLObP
 
Регистрация: 25.02.2008
Адрес: г.Волгоград
Сообщений: 2,009
Сказал Спасибо: 1,285
Имеет 1,458 спасибок в 793 сообщенях
NLObP пока неопределено
По умолчанию

Для РУОФФ попробуйте правленный скрипт из первого сообщения
delphi Код:
const Name='lLelee';       // свой ник MaxEnchLvl=5; var Inventory: array[0..79,0..9] of integer;       timer1: TTimer; count:integer; //- счетчик procedure Init; //вызывается при включении скрипта var   i :integer; begin   count:=1;   timer1:=TTimer.Create(nil);   timer1.OnTimer:=@OnTimer1;   timer1.enabled:=false;   timer1.interval:=1000; end; procedure InventoryCreate; var   i,k: integer; begin   for i:=0 to 79 do     if (i<ReadH(4)) then begin           Inventory[i,1]:=ReadD(i*76+8)// ObjectId           Inventory[i,2]:=ReadD(i*76+12); // ItemID           Inventory[i,3]:=ReadD(i*76+20); // count           Inventory[i,4]:=ReadH(i*76+24); // itemType2           Inventory[i,5]:=ReadH(i*76+26); // CustType1           Inventory[i,6]:=ReadH(i*76+28); // isEquipped           Inventory[i,7]:=ReadD(i*76+30); // BodyPart           Inventory[i,8]:=ReadH(i*76+34); // EnchantLevel           Inventory[i,9]:=ReadH(i*76+36); // CustType2     end else       for k:=0 to 9 do Inventory[i,k]:=0; // забиваем нулями end; procedure InventoryUpdate; var   i,j,k: integer; begin   for j:=0 to (ReadH(2)-1) do begin     case pck[j*78+4] of //1add2mod3remove       #$01: k:=0; // add item, запишет на пустую ячейку       #$02: k:=ReadD(j*78+8); // mod item       #$03: begin // remove item, обнулит ячейки удаленного предмета               k:=ReadD(j*78+8);               for i:=0 to 79 do                 if (Inventory[i,0]=k) then begin                   for k:=0 to 9 do Inventory[i,k]:=0;                   exit;                 end;             end;       end;       for i:=0 to 79 do         if (Inventory[i,1]=k) then begin           Inventory[i,0]:=ReadH(j*78+6)// itemType1           Inventory[i,1]:=ReadD(j*78+8)// ObjectId           Inventory[i,2]:=ReadD(j*78+12); // ItemID           Inventory[i,3]:=ReadD(j*78+20); // count           Inventory[i,4]:=ReadH(j*78+24); // itemType2           Inventory[i,5]:=ReadH(j*78+26); // CustType1           Inventory[i,6]:=ReadH(j*78+28); // isEquipped           Inventory[i,7]:=ReadD(j*78+30); // BodyPart           Inventory[i,8]:=ReadH(j*78+34); // EnchantLevel           Inventory[i,9]:=ReadH(j*78+36); // CustType2           break;         end;       end; end; function GetInv(obj,up,down:integer): integer; // up и down не проверяются var // 0-itemType1, 1-ObjectId, 2-ItemID, 3-count, 4-itemType2, 5-CustType1, 6-isEquipped, 7-BodyPart, 8-EnchantLevel, 9-CustType2   i: integer; begin   for i:=0 to 79 do     if (Inventory[i,up]=obj) then begin       Result:=Inventory[i,down];     end;   Result:=-1; end; procedure Free; //вызывается при выключении скрипта begin   timer1.Free; end; procedure Say(msg:string); begin    buf:=hstr('4A 00 00 00 00');    WriteD(2);    WriteS(Name);    WriteS(msg);    SendToClientEx(Name); end; procedure OnTimer1(Sender: TObject); begin   if count=1 then   begin     buf:=hstr('19 2A 42 30 10 00 00 00 00');     count:=2;   end else begin     buf:=hstr('D0 4F 00 AC F4 30 10');     count:=1;   end;   SendToServerEx(Name); end; begin   //****************************************************************************   //не обрабатываем пустые пакеты   if pck='' then exit;   //****************************************************************************   if FromServer then case pck[1] of     #$11: InventoryCreate;     #$21: InventoryUpdate;   end;     // 0-itemType1, 1-ObjectId, 2-ItemID, 3-count, 4-itemType2, 5-CustType1, 6-isEquipped, 7-BodyPart, 8-EnchantLevel, 9-CustType2   if GetInv(271643820,1,8)=MaxEnchLvl    then  // использовала object id   begin     Say('Заточилось!!!');         timer1.enabled:=false;   end;   //****************************************************************************   //чоц дейтсвие "да" для начало спама пакетов   if FromClient and (ConnectName=Name) and (pck=HStr('34 06 00 00 00')) then begin         Say('Старт!!!');         timer1.enabled:=true;       end; // соц действие "нет" для  отключения спама       if FromClient and (ConnectName=Name) and (pck=HStr('34 05 00 00 00')) then begin         Say('Стоп!!!');         timer1.enabled:=false;       end; end.

В packetst1.ini замените 11 и 21 пакет от сервера на вот эти:
Код:
11=ItemList:h(ShowWindow)h(ListSize:Loop.01.0022)h(ItemType1)d(ObjectID)d(ItemID:Get.Func01)d(LocationSlot)d(Count)h(ItemType2)h(CustomType1)h(isEquipped)d(BodyPart)h(EnchantLevel)h(CustType2)d(AugmentationID)d(Mana)d(AttackAttrElement)d(AttackAttrElementVal)d(DefAttrFire)d(DefAttrWater)d(DefAttrWind)d(DefAttrEarth)d(DefAttrHoly)d(DefAttrUnholy)d(?)
Код:
21=InventoryUpdate:h(Count:Loop.1.0023)h(1add2mod3remove)h(ItemType1)d(ObjectID)d(ItemID:Get.Func01)d(Location)d(Count)h(ItemType2)h(CustomType1)h(isEquipped)d(BodyPart)h(EnchantLevel)h(CustType2)d(AugmentationBonus)d(Mana)d(AttackAttrElement)d(AttackAttrElementVal)d(DefAttrFire)d(DefAttrWater)d(DefAttrWind)d(DefAttrEarth)d(DefAttrHoly)d(DefAttrUnholy)d(?)
__________________
| Для самых ленивый | Телепаты в отпуске |Мы работаем над этим |
Не умеешь - учись, не хочешь учиться - плати © Суровый Закон Жизни


NLObP вне форума   Ответить с цитированием