Форум HeroesWorld-а - Показать сообщение отдельно - Скрипты
Тема: Скрипты
Показать сообщение отдельно
#1156
Старый 18.04.2013, 21:56
  #1156
^
Warrior777
 
Аватар для Warrior777
📖
Регистрация: 15.09.2012
Адрес: Под кроватью
Сообщения: 602
Регистрация: 15.09.2012
Адрес: Под кроватью
Сообщения: 602
По умолчанию
Re: Скрипты

Проблема со скриптом. Скрипт карты (весь):
	SetRegionBlocked("Block1", true, 2);
SetRegionBlocked("Block2", true, 2);
SetObjectiveVisible("killall", nil);

function am()
	while 1 do
		local count = 0
		for i=36,43 do
			count = count + (HasArtefact("Muscip", i) or 0)
		end;
		if count < 8 then
			SetObjectiveState("obj", OBJECTIVE_ACTIVE);
		end;
		sleep(5);
	end;
end;

function killallactive()
	SetObjectiveVisible("killall", true);
	startThread (am);
end;

function winF()
	Win();
end;

function obj()
	local old = 0
	while 1 do
		local count = 0
		for i=36,43 do
			count = count + (HasArtefact("Muscip", i) or 0)
		end
		if count == 8 then
			print("Player 1 has all artifacts")
			SetObjectiveState("obj", OBJECTIVE_COMPLETED)
			QuestionBox(GetMapDataPath().."complete-game.txt", "killallactive", "winF");
			break
		end
		if count ~= old then
			print("Player 1 has "..count.."/8 artifacts")
			SetObjectiveProgress("obj", count)
			old = count
		end
		sleep(5)
	end
end

startThread (obj);

Для теста я снял с героя один из артефактов и передал его другому герою. Задача сбросилась в 0, а консоль высветил ошибку:

(Script) ERROR: Objective "obj" is active, so can only complete or fail it

Что это значит?
__________________
502 Bad Gateway

__________________________________

nginx/0.8.54
502 Bad Gateway

__________________________________

nginx/0.8.54
Warrior777 вне форума
Ответить с цитированием