Таймер завершения игры

  • Автор темы Автор темы Papich
  • Дата начала Дата начала

Papich

Пользователь
30 Июл 2016
14
0
Этот код почему-то не работает. Не понимаю из-за чего. Нет никакой ошибки, просто проходит 60 сек, но игра не заканчивается. В чём проблема?
Код:
function main:Time()
ListenToGameEvent('game_rules_state_change', Dynamic_Wrap(main, 'OnGameRulesStateChange'), self)
end

function main:OnGameRulesStateChange(keys)
  local newState = GameRules:State_Get()
  if newState == DOTA_GAMERULES_STATE_GAME_IN_PROGRESS then
    main:Timer()
  end
end


function main:Timer()
Timers:CreateTimer(60, function()
GameRules:SetGameWinner(DOTA_TEAM_GOODGUYS)
end)

end
 
main:Time() вот это вот вообще вызывается где-то?
 
ZLOY,
Теперь вызывается, но теперь вот такая ошибка появилась:
[ W VScript ]: Script Runtime Error: scripts\vscripts\main.lua:69: attempt to index global 'Timers' (a nil value)
[ W VScript ]: stack traceback:
[ W VScript ]: scripts\vscripts\main.lua:69: in function 'Timer'
[ W VScript ]: scripts\vscripts\main.lua:63: in function <scripts\vscripts\main.lua:60>
 
Последнее редактирование модератором:
Библиотека таймеров от BMD у тебя не подключена.
 
Распишите, где я тут обосрался и почему этот быдлокод не хочет работать?
Код:
function main:Timer()
	if numberOfPlayers >= 5 then
		Timers:CreateTimer(1800, function()
		GameRules:SetGameWinner(DOTA_TEAM_GOODGUYS)
	end)
	elseif numberOfPlayers == 4 then
		Timers:CreateTimer(1500, function()
		GameRules:SetGameWinner(DOTA_TEAM_GOODGUYS)
	end)
	elseif numberOfPlayers == 3 then
		Timers:CreateTimer(1200, function()
		GameRules:SetGameWinner(DOTA_TEAM_GOODGUYS)
	end)
	elseif numberOfPlayers == 2 then
		Timers:CreateTimer(900, function()
		GameRules:SetGameWinner(DOTA_TEAM_GOODGUYS)
	end)
	else
		Timers:CreateTimer(600, function()
		GameRules:SetGameWinner(DOTA_TEAM_GOODGUYS)
	end)
	end
end
 
Последнее редактирование модератором:
Что консоль пишет и что за переменная такая numberOfPlayers?
 
Илья, Посмотрел код овертроу. А число игроков нужно как-то по другому получать?
 
Реклама: