спасибо вот это как раз
долго лазил по форуму смотрел как сделано в других
скриптах с массивом
НО так как я в школе курил ток травку в коридорах то не понял
нечего
может тема пригодится другим
delphi Код: Код:
var
ItemBase:array[1..100] of integer;// создали массив
objectID:integer;
i: integer;
procedure Init; //Вызывается при включении скрипта
begin
end;
// при приходе пакета
begin
if FromServer and (pck[1]=#$21) and (ReadD(12)= itemID) then begin
// при условии
if условие then
// записать objectID в массив
objectID:=ReadD(8);
for i:=1 to 100 do begin
if (ItemBase[i] == 0) then begin
// как ЗАПИСАТЬ ?
ItemBase[i]:= objectID; // да просто :)
Break; // прерываем дальнейший перебор массива.
end;
end;
end;
end;
мне не надо следить за количеством записаных objectID
и не надо следить за количеством вещей
поэтому как дополнить скрипт
тем что сказал
alexteam
просьба при совете использовать значения из скрипта выше
delphi Код: Код:
Function ObjIdInArray(value:integer):integer;
var
i:integer;
begin
result := 0;
while (i < itemcount) and (itemarray[result] <> value) do inc(result);
end;
delphi Код: Код:
index := ObjIdInArray(value); //лучше поуступать так. избегая повторного запуска цикла.
If index < itemcount then
//значение существует. его к примеру можно удалить вот так
GetItemIdAndMove(index) //индекс мы получили выше
else
//значение не существует, добавляем
additemtoarray(value)