Форум HeroesWorld-а - Показать сообщение отдельно - NHF - новые герои для Heroes V 3.1
Показать сообщение отдельно
#2773
Старый 11.04.2016, 03:38
  #2773
^
DirtyLiar
 
Аватар для DirtyLiar
📖
Регистрация: 07.04.2016
Сообщения: 103
Регистрация: 07.04.2016
Сообщения: 103
По умолчанию
Re: NHF - новые герои для Heroes V 3.1

Кстати, скрипт перегружен.
Всё можно сделать в один цикл и без скелета:
1. Смотрим количество умертвий в слоте.
2. Если умертвия есть, то сравниваем количество в слоте с общим количеством.
3. Если количество в слоте меньше, чем общее, значит есть ещё умертвия и спокойно забираем умертвий из слота - выдаём баньши в слот.
4. Если иначе, значит в слоте находятся все умертвия (тут два варианта - есть ещё армия или только умертвия). В любом случае забираем умертвий из слота - выдаём баньши в слот и контрольно забираем одно умертвие (если оно добавилось в случае единственного слота).
Конец цикла.

Я не спец по скриптам, но как-то так:

	----------------ДЕЙДРА-------------------
function  error_NHF_Nemor_F ()
	print("error:NHF_Nemor_F");
end;
function  NHF_HERO_F.Nemor ()
errorHook(error_NHF_Nemor_F);
local slot = -1;
local i_count = 0;
local id, count;
local temp_name = NHF_tempName_F("Nemor");
local count_umertvie = GetHeroCreatures("Nemor", CREATURE_WIGHT);
if  count_umertvie > 0 then --Поправлено 0.84
	for i = 0,6 do
		id, count = GetObjectArmySlotCreature(temp_name,i);
		if id == CREATURE_WIGHT then
			if count < count_umertvie then - проверка, все ли умертвия в одном слоте.
				RemoveHeroCreatures("Nemor", CREATURE_WIGHT, count, i);
				AddHeroCreatures("Nemor", CREATURE_BANSHEE , count,i);
			else
				RemoveHeroCreatures("Nemor", CREATURE_WIGHT, count, i);
				AddHeroCreatures("Nemor", CREATURE_BANSHEE , count,i);
				RemoveHeroCreatures("Nemor", CREATURE_WIGHT, 1);
			end;
		end;
	end;
end;
DirtyLiar вне форума
Ответить с цитированием