Показать сообщение отдельно
Старый 25.05.2008, 01:50   #1
Пользователь
 
Регистрация: 10.12.2007
Сообщений: 52
Сказал Спасибо: 22
Имеет 16 спасибок в 9 сообщенях
ChiterEPT
По умолчанию Вопросы по синтаксису языка Паскаль!

Ребят у меня вопрос: Мне надо реализовать сборку информации об инвентаре нескольких чаров в одном скрипте и чтобы не писать для каждого чара отдельную процедуру я решил написать одну процедуру с возможностью подстановки разных массивов. Короче процедуру из скрипта бота Локомотива:
delphi Код:
procedure InventoryCreate; var   i,k : integer; begin   for i:=0 to 79 do     if (i<ReadH(4)) then begin       Inventory[i,0]:=ReadH(i*36+6)// itemType1       Inventory[i,1]:=ReadD(i*36+8)// ObjectId       Inventory[i,2]:=ReadD(i*36+12); // ItemID       Inventory[i,3]:=ReadD(i*36+16); // count       Inventory[i,4]:=ReadH(i*36+20); // itemType2       Inventory[i,5]:=ReadH(i*36+22); // CustType1       Inventory[i,6]:=ReadH(i*36+24); // isEquipped       Inventory[i,7]:=ReadD(i*36+26); // BodyPart       Inventory[i,8]:=ReadH(i*36+30); // EnchantLevel       Inventory[i,9]:=ReadH(i*36+32); // CustType2     end else       for k:=0 to 9 do Inventory[i,k]:=0; end;
Переделал так:
delphi Код:
procedure InventoryCreate(array1: array[0..79,0..9] of integer); var   i,k : integer; begin   for i:=0 to 79 do     if (i<ReadH(4)) then begin       array1[i,0]:=ReadH(i*36+6)// itemType1        array1[i,1]:=ReadD(i*36+8)// ObjectId        array1[i,2]:=ReadD(i*36+12); // ItemID        array1[i,3]:=ReadD(i*36+16); // count        array1[i,4]:=ReadH(i*36+20); // itemType2        array1[i,5]:=ReadH(i*36+22); // CustType1        array1[i,6]:=ReadH(i*36+24); // isEquipped        array1[i,7]:=ReadD(i*36+26); // BodyPart        array1[i,8]:=ReadH(i*36+30); // EnchantLevel        array1[i,9]:=ReadH(i*36+32); // CustType2     end else       for k:=0 to 9 do  array1[i,k]:=0; end;
Как вы уже поняли такой подход не сработал... массив который я подставляю в процедуру в качестве аргумента остается забитым нулями. Кто знает что я сделал не так, прошу отпишите. Заранее Спасибо

Добавлено через 3 минуты
Кстати я проделал то же самое с Функцией GetInv (то есть добавил новый аргумент: массив в котором нужно проводить поиск) И все работает. Разницу вижу в том, что в случае с процедурой InventoryCreat в аргумент должна записываться информация, а в функции GetInv происходит считывание информации из аргумента. Думаю дело в этом ... я прав?

Последний раз редактировалось ChiterEPT, 25.05.2008 в 01:51. Причина: Добавлено сообщение
ChiterEPT вне форума   Ответить с цитированием