Условия победы

  • Автор темы Автор темы UZzip
  • Дата начала Дата начала
вот как и говорил 20 - 20 и победа того кто первый набрал
 
[quote author=Илья link=topic=731.msg2958#msg2958 date=1455455074]
У тебя так написано?

Код:
if (PlayerResource:GetTeamKills(DOTA_TEAM_BADGUYS) + 1 ) > 19 then
  GameRules:SetGameWinner(DOTA_TEAM_BADGUYS)
elseif (PlayerResource:GetTeamKills(DOTA_TEAM_GOODGUYS) +1) > 19 then
  GameRules:SetGameWinner(DOTA_TEAM_GOODGUYS)
end

Если да, то и так не может быть 20х20
[/quote]
так что может...
 
Последнее редактирование модератором:
Так как сначала один игрок дошел до 20, а победа при 21. А потом другой игрок убил 20 раз. И в результате счёт 20 - 20

Победа не может быть в моем коде при 21 убийстве. Ограничение на 20 убийств. Но ты был прав, что там есть "ошибка" в алгоритме:

Если темные и светлые имеют по 19 убийств, и убивают светлые, то победу зачтут темным, ибо приоритет идет сначала на них:
Код:
if (PlayerResource:GetTeamKills(DOTA_TEAM_BADGUYS) + 1 ) > 19 then

Поэтому надо смотреть, кто убивает и делать приоритет на его команду:


Код:
local killedPlayer = PlayerResource:GetPlayer(data.PlayerID)	
local number = killedPlayer:GetTeamNumber()
local name = GetTeamName(number)
	
if name == "#DOTA_BadGuys" then
	if (PlayerResource:GetTeamKills(DOTA_TEAM_BADGUYS) + 1 ) > 19 then
  		GameRules:SetGameWinner(DOTA_TEAM_BADGUYS)
	end
end

if name == "#DOTA_GoodGuys" then
	if (PlayerResource:GetTeamKills(DOTA_TEAM_GOODGUYS) + 1 ) > 19 then
  		GameRules:SetGameWinner(DOTA_TEAM_GOODGUYS)
	end	
end
 
Последнее редактирование модератором:
Илья, ты не понял)))
При счёте 20-19 если убьёт тот кто имеет счёт 20 то всё норм - со счётом 21-19 будет победа.
Но когда при счёте 20-19 убьёт тот у кого счёт 19 получится победа первой тимы со счётом 20-20. Что крайне не логично, когда победа им присвоилась после убийства их же.
 
Понятно, все из той же ошибки вытекает. Я тебе написал, как надо подправить.
 
Дома попробую ещё раз) Спасибо что всегда помогаешь, карму апнул)
 
Реклама: