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

Цитата:
Сообщение от ERASE Посмотреть сообщение
пытался разобраться в куске кода из скрипта на заточку
Ещё раз посмотри в нём внимательно процедуры:
delphi Код:
var   BaseItems:  array[1..maxitems, 1..12] of integer//все предметы в инвентаре //.............................................................................. procedure ItemList; {Создаем базу Items} var   i, j, k: integer;   ListCount: integer; 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       inc(j,40);     end else for k:=1 to 12 do BaseItems[i,k]:=0; // забиваем нулями end; //.............................................................................. procedure InventoryUpdate; var   i, ii, j, k, ListCount, UpdType : integer;   ItemType1, ObjectID, ItemID, LocationSlot, Count, ItemType2, CustomType1,   isEquipped, BodyPart, EnchantLevel, CustType2, AugmentationID :integer;   additem : boolean; begin   additem:=true;   ListCount:=ReadH(2); //количество итемов   j:=4; //смещение для действия с предметом 1-добавлен 2-изменен 3-удален   for i:=1 to ListCount do begin     UpdType:=ReadH(j);     ItemType1:=ReadH(j);     ObjectID:=ReadD(j);     ItemID:=ReadD(j);     LocationSlot:=ReadD(j);     Count:=ReadD(j);     ItemType2:=ReadH(j);     CustomType1:=ReadH(j);     isEquipped:=ReadH(j);     BodyPart:=ReadD(j);     EnchantLevel:=ReadH(j);     CustType2:=ReadH(j);     AugmentationID:=ReadD(j);     case UpdType of       1: k:=0;         //добавлен новый предмет       2: k:=ObjectID; //изменен предмет в инвентаре       3: begin       //удален         for ii:=1 to maxitems do           if (BaseItems[ii,2]=ObjectID) then begin             for k:=1 to 12 do BaseItems[ii,k]:=0;             break;           end;       end;     end;     for ii:=1 to maxitems do begin       if (BaseItems[ii,2]=k) then begin         BaseItems[ii,1]:=ItemType1;         BaseItems[ii,3]:=ItemID;         BaseItems[ii,4]:=LocationSlot;         BaseItems[ii,5]:=Count;         BaseItems[ii,6]:=ItemType2;         BaseItems[ii,7]:=CustomType1;         BaseItems[ii,8]:=isEquipped;         BaseItems[ii,9]:=BodyPart;         BaseItems[ii,10]:=EnchantLevel;         BaseItems[ii,11]:=CustType2;         BaseItems[ii,12]:=AugmentationID;         break;       end;     end;     inc(j,38);   end; end; //..............................................................................  

А если надо из базы найти что-то, то смотри функцию
delphi Код:
//.............................................................................. function GetItem(ID, FieldIn, FieldOut : integer): integer; {GetInv(что ищем, № поля где ищем, № поля что возвращать) где:   ID - искомый код;   FieldIn - по какому полю ищем;   FieldOut - какое поле возвращаем; 1=ItemType1; 2=ObjectID;3=ItemID;4=LocationSlot;5=Count;6=ItemType2;7=CustomType1; 8=isEquipped;9=BodyPart;10=EnchantLevel;11=CustType2;12=AugmentationID; ex1: GetInv(6408,2,1) - вернет ObjectID свадебного платья, если онное лежит в                         инвентаре, иначе вернет -1 ex2: GetInv(6408,2,8) - вернет уровень заточки первого попавшегося в инвентаре                         свадебного платья, если свадебного платья нет, то вернет -1 } var   i: integer; begin   for i:=1 to maxitems do     if (BaseItems[i,FieldIn]=ID) then begin       Result:=BaseItems[i,FieldOut];       exit;     end;   Result:=-1; end; //..............................................................................  
__________________
| Для самых ленивый | Телепаты в отпуске |Мы работаем над этим |
Не умеешь - учись, не хочешь учиться - плати © Суровый Закон Жизни



Последний раз редактировалось NLObP, 27.01.2009 в 22:11.
NLObP вне форума   Ответить с цитированием
За это сообщение NLObP нажился 3 спасибками от: