User:Bkiro/sandbox: Difference between revisions
Jump to navigation
Jump to search
Line 51: | Line 51: | ||
=== In scripts\vscripts\addon_game_mode.lua === | === In scripts\vscripts\addon_game_mode.lua === | ||
<source lang="lua"> | <source lang="lua"> | ||
function Activate() | |||
GameRules.AddonTemplate = CAddonTemplateGameMode() | |||
GameRules.AddonTemplate:InitGameMode() | |||
end | |||
function CAddonTemplateGameMode:InitGameMode() | |||
GameRules:GetGameModeEntity():SetThink( "OnThink", self, "GlobalThink", 2 ) | |||
ListenToGameEvent("game_rules_state_change",initiate,nil) -- setting up the listener | |||
GameRules:SetPreGameTime( 10.0 ) | |||
GameRules:SetGoldTickTime( 10.0 ) | |||
end | |||
function initiate() | function initiate() | ||
g_state=GameRules:State_Get() | g_state=GameRules:State_Get() | ||
if g_state == DOTA_GAMERULES_STATE_GAME_IN_PROGRESS then | if g_state == DOTA_GAMERULES_STATE_GAME_IN_PROGRESS then | ||
GameRules:GetGameModeEntity():SetThink( VictoryAssesment, 32) | GameRules:GetGameModeEntity():SetThink( VictoryAssesment, 32) --[[ because only neutral creeps are there in my game mode and the spawn after 30 secs. so just to be on the safe side, it will noy check for units until they spawn]] | ||
end | end | ||
end | end | ||
Line 75: | Line 86: | ||
end | end | ||
</source> | </source> | ||
= Techniques = | = Techniques = | ||
== Finding Units == | == Finding Units == |
Revision as of 13:02, 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
function Activate()
GameRules.AddonTemplate = CAddonTemplateGameMode()
GameRules.AddonTemplate:InitGameMode()
end
function CAddonTemplateGameMode:InitGameMode()
GameRules:GetGameModeEntity():SetThink( "OnThink", self, "GlobalThink", 2 )
ListenToGameEvent("game_rules_state_change",initiate,nil) -- setting up the listener
GameRules:SetPreGameTime( 10.0 )
GameRules:SetGoldTickTime( 10.0 )
end
function initiate()
g_state=GameRules:State_Get()
if g_state == DOTA_GAMERULES_STATE_GAME_IN_PROGRESS then
GameRules:GetGameModeEntity():SetThink( VictoryAssesment, 32) --[[ because only neutral creeps are there in my game mode and the spawn after 30 secs. so just to be on the safe side, it will noy check for units until they spawn]]
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