NLObP, где в скрипте enchant_by_NLObP_09.rar строка отвечающая за распознавание предметов инвентаря? ItemsID.ini обновил под сервер и прописал к нему путь в скрипте, но всего 2 предмета из списка реально есть в инвентаре. Или в чём может быть проблема? Видит правильно первый предмет из списка и ещё пару.
Кусок из ItemList:
Код:
Type:0x11 (ItemList)
Size: 4485+2
Recive time: 14:42:32:831
0002 h ShowWindow: 1 (0x0001)
0004 h ItemCount: 70 (0x0046)
[begin of repeat block 1/70]
0006 h ItemTypeID: 4 (0x0004)
0008 d ObjectID: 1075161562 (0x4015A9DA)
000C d ItemID: Blessed Scroll: Enchant Armor (S) ID:6578 (0x19B2)
0010 d LocationSlot: 50 (0x00000032)
0014 q Amount: 1161
001C h ItemType2: 5 (0x0005)
001E h CustomType1: 0 (0x0000)
0020 h isEquipped: 0 (0x0000)
0022 d BodyPart: 0 (0x00000000)
0026 h EnchantLevel: 0 (0x0000)
0028 h CustType2: 0 (0x0000)
002A d AugmentID: 0
002E d Mana: -1 (0xFFFFFFFF)
0032 h AttackElement: 65534 (0xFFFE)
0034 h AttackElementPower: 0 (0x0000)
0036 h FireDefElementPower: 0 (0x0000)
0038 h WaterDefElementPower: 0 (0x0000)
003A h WindDefElementPower: 0 (0x0000)
003C h EarthDefElementPower: 0 (0x0000)
003E h HolyDefElementPower: 0 (0x0000)
0040 h UnholyDefElementPower: 0 (0x0000)
0042 d RemainingTime: -9999 (0xFFFFD8F1)
[End of repeat block 1/70]
[begin of repeat block 2/70]
0046 h ItemTypeID: 4 (0x0004)
0048 d ObjectID: 1075161561 (0x4015A9D9)
004C d ItemID: Soulshot: S-Grade ID:1467 (0x05BB)
0050 d LocationSlot: 41 (0x00000029)
0054 q Amount: 9800
005C h ItemType2: 5 (0x0005)
005E h CustomType1: 0 (0x0000)
0060 h isEquipped: 0 (0x0000)
0062 d BodyPart: 0 (0x00000000)
0066 h EnchantLevel: 0 (0x0000)
0068 h CustType2: 0 (0x0000)
006A d AugmentID: 0
006E d Mana: -1 (0xFFFFFFFF)
0072 h AttackElement: 65534 (0xFFFE)
0074 h AttackElementPower: 0 (0x0000)
0076 h FireDefElementPower: 0 (0x0000)
0078 h WaterDefElementPower: 0 (0x0000)
007A h WindDefElementPower: 0 (0x0000)
007C h EarthDefElementPower: 0 (0x0000)
007E h HolyDefElementPower: 0 (0x0000)
0080 h UnholyDefElementPower: 0 (0x0000)
0082 d RemainingTime: -9999 (0xFFFFD8F1)
[End of repeat block 2/70]
[begin of repeat block 3/70]
0086 h ItemTypeID: 4 (0x0004)
0088 d ObjectID: 1075161560 (0x4015A9D8)
008C d ItemID: Charm of Courage: S-Grade ID:8520 (0x2148)
0090 d LocationSlot: 42 (0x0000002A)
0094 q Amount: 3
009C h ItemType2: 5 (0x0005)
009E h CustomType1: 0 (0x0000)
00A0 h isEquipped: 0 (0x0000)
00A2 d BodyPart: 0 (0x00000000)
00A6 h EnchantLevel: 0 (0x0000)
00A8 h CustType2: 0 (0x0000)
00AA d AugmentID: 0
00AE d Mana: -1 (0xFFFFFFFF)
00B2 h AttackElement: 65534 (0xFFFE)
00B4 h AttackElementPower: 0 (0x0000)
00B6 h FireDefElementPower: 0 (0x0000)
00B8 h WaterDefElementPower: 0 (0x0000)
00BA h WindDefElementPower: 0 (0x0000)
00BC h EarthDefElementPower: 0 (0x0000)
00BE h HolyDefElementPower: 0 (0x0000)
00C0 h UnholyDefElementPower: 0 (0x0000)
00C2 d RemainingTime: -9999 (0xFFFFD8F1)
[End of repeat block 3/70]
Смещение поменял на 48 тут:
Код:
begin
j:=4; //смещение для ListCount
ListCount:=ReadH(j); //количество итемов не должно превышать max!
for i:=1 to maxitems do
if (i<=ListCount) then begin
BaseItems[i,1]:=ReadH(j); //ItemType1
BaseItems[i,2]:=ReadD(j); //ObjectID
BaseItems[i,3]:=ReadD(j); //ItemID
BaseItems[i,4]:=ReadD(j); //LocationSlot
BaseItems[i,5]:=ReadD(j); //Count
BaseItems[i,6]:=ReadH(j); //ItemType2
BaseItems[i,7]:=ReadH(j); //CustomType1
BaseItems[i,8]:=ReadH(j); //isEquipped
BaseItems[i,9]:=ReadD(j); //BodyPart
BaseItems[i,10]:=ReadH(j); //EnchantLevel
BaseItems[i,11]:=ReadH(j); //CustType2
BaseItems[i,12]:=ReadD(j); //AugmentationID
//debugmsg('OID='+inttostr(BaseItems[i,2])+' ID='+inttostr(BaseItems[i,3]));
inc(j,48);
end else for k:=1 to 12 do BaseItems[i,k]:=0; // забиваем нулями
InventoryUpdate заменил на 46