Показать сообщение отдельно
Старый 26.04.2015, 15:08   #682
Новичок
 
Регистрация: 30.01.2011
Сообщений: 25
Сказал Спасибо: 28
Имеет 0 спасибок в 0 сообщенях
lodek пока неопределено
По умолчанию

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
Миниатюры
Нажмите на изображение для увеличения
Название: Безымянный.png
Просмотров: 49
Размер:	21.1 Кб
ID:	2945  

Последний раз редактировалось lodek, 26.04.2015 в 17:23.
lodek вне форума   Ответить с цитированием