Показать сообщение отдельно
Старый 08.02.2010, 17:39   #627
Пользователь
 
Регистрация: 03.09.2009
Сообщений: 63
Сказал Спасибо: 19
Имеет 5 спасибок в 3 сообщенях
tiranosaur пока неопределено
По умолчанию

delphi Код:
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 CurrentInvRazmer do if (Inventory[i,up]=obj) then    begin     Result:=Inventory[i,down];     exit;    end;   Result:=-1; end; procedure UseItemObjID(ItemObjID:integer);       //Использовать предмет с заданным ItemID  begin   buf:=#$19;   WriteD(ItemObjID);   WriteD(0);   SendToServerEx(NickName);;  end; procedure UserInfo;            // обновление донных о себе  var   i:word;  begin   MyID:=ReadD(18);   MyX:=ReadD(2);   MyY:=ReadD(6);   MyZ:=ReadD(10);   i:=22;   ReadS(i);   i:=i+48;   MyMaxHP:=ReadD(i);   MyHP:=ReadD(i);   MyMaxMP:=ReadD(i);        // чисто информативно   MyMP:=ReadD(i);  end; procedure StatusUpdate;       // обновление данных о себе  var   i:integer;  begin   for i:=0 to ReadD(6)-1 do    case pck[i*8+10] of     #$09: MyHP:=ReadD(i*8+14);     #$0A: MyMaxHP:=ReadD(i*8+14);     #$0B: MyMP:=ReadD(i*8+14);     #$0C: MyMaxMP:=ReadD(i*8+14);    end;   if MyMaxHP > 0 then HPlevelProcent:= Round((MyMaxHP/100)*HPlevelProcent);  end; procedure DrinkBottle;          // пьем бутылки и следим за их количеством  begin   if (HPBottleCount > 0) and (HPBottleObjID > 0)then    begin     UseItemObjID(HPBottleObjID);     UseItemID(HPBottleID);     dec (HPBottleCount);    end;  end; begin                   // Далее обработка входящих пакетов  if pck = '' then exit;  if (ConnectName = NickName) and FromServer then   case pck[1] of    #$32: if ReadS(22) = NickName then UserInfo;    #$18: if MyID=ReadD(2) then     //   StatusUpdate:h(ObjectID)d(Attributes)            begin             StatusUpdate;             if (MyHP > 0) and (MyHP < HPlevelProcent) then if Wait(time1, DrinkDelay) then DrinkBottle;     // пьем бутылки с интервалом в 19 сек             if (MyHP > 0) and (MyHP > HPlevelProcent) then time1:=1;            end;     #$11: begin            InventoryCreate;  // Инвентарь            if HPBottleID <> 0 then             begin              HPBottleObjID:= getinv(HPBottleID, 2,1);              HPBottleCount:= getinv(HPBottleID, 2,3);             end;             end;                #$21: begin            InventoryUpdate;            if HPBottleID <> 0 then             begin              HPBottleObjID:= getinv(HPBottleID, 2,1);              HPBottleCount:= getinv(HPBottleID, 2,3);             end;                        end;  end;    end.

//nlobp: заключайте код в теги [ HIGHLIGHT = "delphi" ][ / HIGHLIGHT ] (самая правая решетка, параметр delphi)

Последний раз редактировалось NLObP, 09.02.2010 в 00:34.
tiranosaur вне форума   Ответить с цитированием