addon_game_mode?

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
 
Последнее редактирование модератором:

I_Explorer

Друзья CG
30 Июл 2016
318
16
Проект
Жизнь в тюрьме
Попробуй как-то так но хз получится или нет:
Код:
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
 
Последнее редактирование модератором:

UZzip

Продвинутый
2 Янв 2016
282
1
Код:
--[[
	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

Не робит
 
Последнее редактирование модератором:

I_Explorer

Друзья CG
30 Июл 2016
318
16
Проект
Жизнь в тюрьме
"ZONAlife" надо заменить на что-то другое, я делал это не в гейммоде так что хз что тебе написать надо, но скорей всего надо заменить на "GameMode".
 
Последнее редактирование модератором:

MahouShoujo

Продвинутый
3 Ноя 2016
251
23
Структура файла addon_game_mode.lua:
Функция Activate
Функция Precache
Одна вызывается на старте игры, другая на загрузочном экране. Всё.
 

Илья

Друзья CG
25 Сен 2015
2,348
41
Плохо искал.

А конкретно у тебя - нет слушателей событий, только обработчики. Добавь слушателей (listeners).
 

I_GRIN_I

Друзья CG
15 Мар 2016
1,335
105
MahouShoujo, шо ты так новичков не любишь?(вообще никого не любишь)
 

CryDeS

Друзья CG
14 Июл 2015
1,210
11
Походу на форуме новая традиция - до**ись до MahouShoujo даже когда он нормально ответил :D
 

Илья

Друзья CG
25 Сен 2015
2,348
41
Ну тут действительно докопались без повода, ведь он по сути все про addon game mode сказал и даже никого в лес не послал))

А если не понятен его ответ, то явная дорога изучать программирование дальше.
 

I_GRIN_I

Друзья CG
15 Мар 2016
1,335
105
Илья, человек не то имел ввиду, а он просто типо вот что спрашивал, то и бери, эх
 

CryDeS

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