addon_game_mode?

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

UZzip

Продвинутый
2 Янв 2016
282
1
Народ, есть гайд по addon_game_mode?
Не доганяю структуры этого файла, в поиске не нашел что-то. А тема то основополагающая...

Хотел апнуть способность "skill_ability_Invulnerability" у героя, автоматом при появлении на карте.
hero:FindAbilityByName("skill_ability_Invulnerability"):SetLevel(1)
И что то не вышло, как прописать?
Код:
function main:OnHeroPicked (event)
  local hero = EntIndexToHScript(event.heroindex)
  main:GiveRandomAbility(hero)
	GameRules:GetGameModeEntity():SetCustomGameForceHero("npc_dota_hero_pudge")
 end

function main:GiveRandomAbility(hero)
  hero:FindAbilityByName("skill_ability_Invulnerability"):SetLevel(1)
end
 
Последнее редактирование модератором:
Попробуй как-то так но хз получится или нет:
Код:
function ZONAlife:OnNPCSpawn(data)

local player = EntIndexToHScript(data.entindex)

if player:IsHero() then			
	local teamNumb = player:GetTeamNumber()
	local ability = player:FindAbilityByName("irden2")
	ability:SetLevel(1)
end

end
 
Последнее редактирование модератором:
Код:
--[[
	Basic Barebones
]]

-- Required files to be visible from anywhere
require( 'timers' )
require( 'barebones' )

GAME_ROUND = 0  -- номер текущего раунда
MAX_ROUNDS = 7  -- номер конечного раунда
ROUND_DURATION = 30 
ROUND_UNITS = 5  -- кол-во юнитов на 1 раунде

--[[if GameMode == nil then
		GameMode = class({})
end]]--






GameRules:SetCustomGameTeamMaxPlayers( DOTA_TEAM_GOODGUYS, 4 ) 
GameRules:SetCustomGameTeamMaxPlayers( DOTA_TEAM_BADGUYS, 0 ) 
--GameRules:SetCustomGameTeamMaxPlayers( DOTA_TEAM_CUSTOM_1, 1 ) 
--GameRules:SetCustomGameTeamMaxPlayers( DOTA_TEAM_CUSTOM_2, 1 ) 

function Precache( context )
	-- NOTE: IT IS RECOMMENDED TO USE A MINIMAL AMOUNT OF LUA PRECACHING, AND A MAXIMAL AMOUNT OF DATADRIVEN PRECACHING.
	-- Precaching guide: [url]https://moddota.com/forums/discussion/119/precache-fixing-and-avoiding-issues[/url]

	--[[
	This function is used to precache resources/units/items/abilities that will be needed
	for sure in your game and that cannot or should not be precached asynchronously or 
	after the game loads.
	See GameMode:PostLoadPrecache() in barebones.lua for more information
	]]

	print("[BAREBONES] Performing pre-load precache")

	-- Particles can be precached individually or by folder
	-- It it likely that precaching a single particle system will precache all of its children, but this may not be guaranteed
	PrecacheResource("particle", "particles/units/heroes/hero_leshrac/leshrac_lightning_bolt.vpcf" , context)
 	PrecacheResource("particle", "particles/econ/courier/courier_golden_roshan/golden_roshan_ambient.vpcf" , context)
 	PrecacheResource("particle", "particles/part_exp_two.vpcf" , context)
	PrecacheResource("particle", "particles/econ/generic/generic_aoe_explosion_sphere_1/generic_aoe_explosion_sphere_1.vpcf", context)
	PrecacheResource("particle_folder", "particles/test_particle", context)

	-- Models can also be precached by folder or individually
	-- PrecacheModel should generally used over PrecacheResource for individual models
	PrecacheResource("model_folder", "particles/heroes/antimage", context)
	PrecacheResource("model", "particles/heroes/viper/viper.vmdl", context)
	PrecacheModel("models/heroes/viper/viper.vmdl", context)

	-- Sounds can precached here like anything else
	PrecacheResource("soundfile", "soundevents/game_sounds_heroes/game_sounds_gyrocopter.vsndevts", context)

	-- Entire items can be precached by name
	-- Abilities can also be precached in this way despite the name
	PrecacheItemByNameSync("example_ability", context)
	PrecacheItemByNameSync("item_example_item", context)

	-- Entire heroes (sound effects/voice/models/particles) can be precached with PrecacheUnitByNameSync
	-- Custom units from npc_units_custom.txt can also have all of their abilities and precache{} blocks precached in this way
	PrecacheUnitByNameSync("npc_dota_hero_ancient_apparition", context)
	PrecacheUnitByNameSync("npc_dota_hero_enigma", context)
	PrecacheUnitByNameSync("example_unit_1", context)
end

-- Create the game mode when we activate


function Activate()
	GameRules.GameMode = GameMode()
	GameRules.GameMode:InitGameMode()
end
 
 function ZONAlife:OnNPCSpawn(data)

local player = EntIndexToHScript(data.entindex)

if player:IsHero() then			
	local teamNumb = player:GetTeamNumber()
	local ability = player:FindAbilityByName("skill_ability_Invulnerability")
	ability:SetLevel(1)
end

end
 
 
function GameMode:OnGameInProgress()
   local point = Entities:FindByName( nil, "spawnerino"):GetAbsOrigin()
   local waypoint = Entities:FindByName( nil, "way1")
   local return_time = 30       -- Таймер между волн
   Timers:CreateTimer(5, function()  -- Таймер от старта карты 
		 GAME_ROUND = GAME_ROUND + 1
		 if GAME_ROUND == MAX_ROUNDS then
      return_time = nil
     end
     Say(nil,"Wave №" .. GAME_ROUND, false)
     for i=1, ROUND_UNITS do
		  local unit = CreateUnitByName( "example_unit_" .. GAME_ROUND, point + RandomVector( RandomFloat( 0, 200 ) ), true, nil, nil, DOTA_TEAM_BADGUYS )
		  unit:SetInitialGoalEntity( waypoint )
     end   
     return return_time
   end)
end

Не робит
 
Последнее редактирование модератором:
"ZONAlife" надо заменить на что-то другое, я делал это не в гейммоде так что хз что тебе написать надо, но скорей всего надо заменить на "GameMode".
 
Последнее редактирование модератором:
Структура файла addon_game_mode.lua:
Функция Activate
Функция Precache
Одна вызывается на старте игры, другая на загрузочном экране. Всё.
 
Плохо искал.

А конкретно у тебя - нет слушателей событий, только обработчики. Добавь слушателей (listeners).
 
MahouShoujo, шо ты так новичков не любишь?(вообще никого не любишь)
 
Походу на форуме новая традиция - до**ись до MahouShoujo даже когда он нормально ответил :D
 
Ну тут действительно докопались без повода, ведь он по сути все про addon game mode сказал и даже никого в лес не послал))

А если не понятен его ответ, то явная дорога изучать программирование дальше.
 
Илья, человек не то имел ввиду, а он просто типо вот что спрашивал, то и бери, эх
 
[quote author=I_GRIN_I link=topic=1506.msg9866#msg9866 date=1497425988]
Илья, человек не то имел ввиду, а он просто типо вот что спрашивал, то и бери, эх
[/quote]
То есть то что автор темы не так сформулировал вопрос его проблема? :D
Да и его ответ полностью отвечает на весь вопрос.
 
Реклама: