Показать сообщение отдельно
Старый 19.01.2010, 06:41   #321
Новичок
 
Регистрация: 16.01.2010
Сообщений: 8
Сказал Спасибо: 0
Имеет 0 спасибок в 0 сообщенях
IceFloe пока неопределено
По умолчанию

PHP код:
procedure ItemList;
{
Создаем базу Items}
//11=ItemList:h(ShowWindow)h(ListSize:Loop.01.0021)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)
var
  
ijkinteger;
  
ListCountinteger;
begin
  j
:=4//смещение для ListCount
  
ListCount:=ReadH(j); //количество итемов не должно превышать max!
  
for i:=1 to maxitems do
    if (
i<=ListCountthen 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,40);
    
end else for k:=1 to 12 do BaseItems[i,k]:=0// забиваем нулями
  //вносим изменения в чекбоксы
  
StringList.Clear;
  try
    for 
i:=1 to ListCount do begin
      
try
        
//StringList.Add(ItemsName[ItemBase[2,i]-1]); //записываем название вещей из инвентаря
        
StringList.Add(ItemsName.Values[IntToStr(BaseItems[i,3])]); //записываем название вещей из инвентаря
      
except;
        
//msg.Lines.Add('Пропускаем! Нет ItemID='+inttostr(BaseItems[i,3])+' в itemsid.ini');
      
end
    end
;
  
except;
    
//msg.Lines.Add('ошибка в CreateItemBase->StringList.Add()');
    //msg.Lines.Add(inttostr(BaseItems[i,3]));
    
exit;
  
end;
  if 
not CheckBoxItem.Checked then begin //наполняем комбобокс
    
with ComboBoxItem do
    
begin
      Items
.Clear;
      
Items.Assign(StringList);
      
ItemIndex:=0;
    
end;
  
end;
  if 
not CheckBoxScroll.Checked then begin //наполняем комбобокс
    
with ComboBoxScroll do
    
begin
      Items
.Clear;
      
Items.Assign(StringList);
      
ItemIndex:=0;
    
end;
  
end;
end
Теперь понято, вот кусок из моего скрипта. Предложенный Вами кусок не работает, выделяет красным строку "for i:=1 to max do begin". Теперь дляменя остается загадкой как подогнать эту часть к моему покету "ItemLiist" (см.выше). На сечет инвенторя: при запуске там нет ни чего, но после заточки ручками пишет (Автоматизация заточки by NLObP для Грации!
Улучшили ItemID=0 ItemOID=0 ItemEnchLvl=0) и после появляется в строке выбора следующее: Забытый клинок 2 шт (на самом деле 20шт), Ивовый посох (незнаю что это и в сумке это нет), потом идут 4 пустые строки, опять непонятный итем и т.д. посщитал все строки(пустые и непонятные), по количеству совпадает с количеством итемов в инвентаре.
И еще вопрос://установить константу в зависимости от типа игры (С4 или Интерлюд)
interlude=true; //Interlude - true, C4 - false. Что писать? Уменя ведь Грация Финал.
IceFloe вне форума   Ответить с цитированием