User:Bkiro/sandbox: Difference between revisions
Jump to navigation
Jump to search
Line 49: | Line 49: | ||
== Check for enemy units alive on the map and declare victory if all are dead == | == Check for enemy units alive on the map and declare victory if all are dead == | ||
=== | === In scripts\vscripts\addon_game_mode.lua === | ||
<source lang="lua"> | |||
function initiate() | |||
g_state=GameRules:State_Get() | |||
if g_state == DOTA_GAMERULES_STATE_GAME_IN_PROGRESS then | |||
GameRules:GetGameModeEntity():SetThink( VictoryAssesment, 32) | |||
end | |||
end | |||
function VictoryAssesment() | |||
local unit = FindUnitsInRadius(DOTA_TEAM_GOODGUYS, | |||
Vector(0, 0, 0), | |||
nil, | |||
FIND_UNITS_EVERYWHERE, | |||
DOTA_UNIT_TARGET_TEAM_ENEMY, | |||
DOTA_UNIT_TARGET_ALL, | |||
DOTA_UNIT_TARGET_FLAG_NONE, | |||
FIND_ANY_ORDER, | |||
false) | |||
if #unit==0 then | |||
GameRules:SetGameWinner(DOTA_TEAM_GOODGUYS) | |||
return nil | |||
end | |||
return 1 | |||
end | |||
= Techniques = | = Techniques = | ||
= Tips = | = Tips = |
Revision as of 12:54, 17 September 2014
Codes
My Codes
Displaying Popup Message When Game Starts
This will Display An ingame Popup Message When The Game Starts ( Pre Game )
In scripts\vscripts\addon_game_mode.lua
-- addon_game_mode.lua
-- First we set up a listener
function Activate()
GameRules.AddonTemplate:InitGameMode()
end
function CAddonTemplateGameMode:InitGameMode()
GameRules:GetGameModeEntity():SetThink( "OnThink", self, "GlobalThink", 2 )
-- This above thinker is irrelevent for this example
ListenToGameEvent("game_rules_state_change",show_message,nil)
-- This will run the function "show_message" whenever the event "game_rules_state_change" occurs.
end
function show_message()
g_state=GameRules:State_Get() -- This Line will assign the game state to the variable g_state
if g_state == DOTA_GAMERULES_STATE_PRE_GAME then
ShowGenericPopup( "#popup_title", "#popup_body", "", "", DOTA_SHOWGENERICPOPUP_TINT_SCREEN )
-- "#popup_title" and "#popup_body" can be edited in resource\addon_english.txt
end
end
In resource\addon_english.txt
"lang"
{
"Language" "English"
"Tokens"
{
"addon_game_name" "name_of_your_addon"
"popup_title" "Title of your popup message"
"popup_body" "What message do you wanna give"
}
}
Check for enemy units alive on the map and declare victory if all are dead
In scripts\vscripts\addon_game_mode.lua
<source lang="lua"> function initiate() g_state=GameRules:State_Get() if g_state == DOTA_GAMERULES_STATE_GAME_IN_PROGRESS then GameRules:GetGameModeEntity():SetThink( VictoryAssesment, 32) end end
function VictoryAssesment() local unit = FindUnitsInRadius(DOTA_TEAM_GOODGUYS,
Vector(0, 0, 0), nil, FIND_UNITS_EVERYWHERE, DOTA_UNIT_TARGET_TEAM_ENEMY, DOTA_UNIT_TARGET_ALL, DOTA_UNIT_TARGET_FLAG_NONE, FIND_ANY_ORDER, false)
if #unit==0 then GameRules:SetGameWinner(DOTA_TEAM_GOODGUYS) return nil end return 1 end