DyrmanЕсть ли функция, которая возвращает массив всех одетых(используемых в данный момент) и неодетых(лежащих в сумке героя) артефактов?
Нет, но её нетрудно сделать.
function GetAllArtefacts(hero)
local array = {};
for artefact = 1, 96 do
if HasArtefact(hero, artefact, 1) then
array[artefact] = 2;
elseif HasArtefact(hero, artefact, 0) then
array[artefact] = 1;
else
array[artefact] = 0;
end;
end;
return array;
end;
Например, эта функция вернёт массив, где индекс = номеру артефакта, а значение = 0, 1, 2 соответственно: нет, есть, одет.
function GetAllArtefacts(hero)
local array = {[0] = {}, [1] = {}};
for artefact = 1, 96 do
if HasArtefact(hero, artefact, 1) then
array[1][length(array[1]) + 1] = artefact;
elseif HasArtefact(hero, artefact, 0) then
array[0][length(array[0]) + 1] = artefact;
end;
end;
return array;
end;
А такая вернёт массив, в котором array[0] - массив неодетых артефактов, а array[1] - массив одетых.
Правда, в обоих случаях если есть ≥2 артефактов одного вида, то обе функции скажут, что они одеты.