Форум HeroesWorld-а - Показать сообщение отдельно - Скрипты
Тема: Скрипты
Показать сообщение отдельно
#767
Старый 01.11.2012, 15:38
  #767
^
RedHeavenHero
 
Аватар для RedHeavenHero
📖
Регистрация: 10.02.2012
Сообщения: 2380
Выставка наград
Регистрация: 10.02.2012
Сообщения: 2380
Выставка наград
По умолчанию
Re: Скрипты

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 артефактов одного вида, то обе функции скажут, что они одеты.
__________________
Карты для Героев Меча и Магии 5
Одиночные: Завеса срывается, Посол, Последний рывок, Эхо Пустоты
Кампания: Империя Единорога

Существа NCF
Орден Порядка: 1
Нейтралы: 1 2 3 4
Карты для Героев Меча и Магии 5
Одиночные: Завеса срывается, Посол, Последний рывок, Эхо Пустоты
Кампания: Империя Единорога

Существа NCF
Орден Порядка: 1
Нейтралы: 1 2 3 4
RedHeavenHero вне форума
Ответить с цитированием