Форум HeroesWorld-а - Показать сообщение отдельно - NHF - новые герои для Heroes V 3.1
Показать сообщение отдельно
#171
Старый 24.09.2012, 18:36
  #171
^
RedHeavenHero
 
Аватар для RedHeavenHero
📖
Регистрация: 10.02.2012
Сообщения: 2378
Выставка наград
Регистрация: 10.02.2012
Сообщения: 2378
Выставка наград
По умолчанию
Re: NHF - тестирование,предложения по реализации и идеям

DyrmanНу тут тем более ничего сложного.
	Города = массив городовF;
xyzГерой = координаты герояF;
ИскомыйГород = nil;
МинРасстояние = 999;
От i, город in города
Расстояние = (xyzГород F xyzГерой) ;
Если Расстояние < МинРасстояние то
МинРасстояние = Расстояние
ИскомыйГород = Город
Конец
Конец
Вот весь код, осталось лишь перевести с Олбанского.
Этот вариант лучше. А то я поехал из Москвы в Питер через Кейптаун.
Вероятно, я не очень хорошо знаю олбанский, но перевод на луанский должен оказаться сносным.
	function FindClosestEnemyTown()
	local towns = GetObjectNamesByType('TOWN');
	if IsHeroAlive('Avran') then
		if GetHeroTown('Avran') then
			return nil;
		end;
	else
		return nil;
	end;
	local hx, hy, hz = GetObjectPosition('Avran');
	local dist = {};
	for i, town in towns do
		local tx, ty, tz = GetObjectPosition(town);
		if tz == hz then
			local s = sqrt((tx - hx) * (tx - hx) + (ty - hy) * (ty - hy));
			dist[town] = s;
		end;
	end;
	local targetTown = min(dist);
	if GetObjectOwner(targetTown) == GetObjectOwner('Avran') then
		return nil;
	else
		return targetTown;
	end;
end;
__________________
Карты для Героев Меча и Магии 5
Одиночные: Завеса срывается, Посол, Последний рывок, Эхо Пустоты
Кампания: Империя Единорога

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

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