как при старте игры, дать герою случайный скил из небольшого списка. ?
local random_ability_table = {
"random_ability_1",
"random_ability_2",
"random_ability_3",
}
function GiveRandomAbility(hero)
local ability_number = RandomInt(1, #random_ability_table)
hero:AddAbility(random_ability_table[ability_number])
end
local random_ability_table = {
"random_ability_1",
"random_ability_2",
"random_ability_3",
}
function GiveRandomAbility(hero)
hero:AddAbility(random_ability_table[RandomInt(1, #random_ability_table)])
end
Это просто тебе функция, возьми событие при спавне героя и возьми из аргументов события ссылку на героя, а дальше передай в эту функцию.это в addon_game_mode.lua ?
а как указать ссылку на нужного героя? к которому это применяться будет, или это ко всем?
возьми событие при спавне героя и возьми из аргументов события ссылку на героя, а дальше передай в эту функцию.
function GameMode:OnGameInProgress()
function Activate()
GiveRandomAbility(hero)
end
Просто, не делать переход на новую строку, lua скушает ток в путь)Нука-нука, давай, интересно глянуть, а то я не представляю
Если бы эти абилки шли по порядку возрастания id, то еще могу представить, но они ведь так не идут.
function GameMode:OnGameInProgress()
function Activate()
GiveRandomAbility(hero)
end
function OnHeroPicked (event)
local hero = EntIndexToHScript(event.heroindex)
GiveBlinkDagger(hero)
end
function Activate ()
ListenToGameEvent("dota_player_pick_hero", OnHeroPicked, nil)
end
function Activate ()
ListenToGameEvent("dota_player_pick_hero", OnHeroPicked, nil)
end
function OnHeroPicked (event)
local hero = EntIndexToHScript(event.heroindex)
GiveAbility(hero)
end
function GiveAbility (hero)
Тут функция, которая дает герою скилл
end
function Activate ()
ListenToGameEvent("dota_player_pick_hero", OnHeroPicked, nil)
end
function OnHeroPicked (event)
local hero = EntIndexToHScript(event.heroindex)
GiveAbility(hero)
end
function GiveAbility (hero)
GiveRandomAbility(hero)
end
local random_ability_table = {
"dark_seer_surge2",
"furion_teleportation2",
"invoker_sun_strike2",
"legion_commander_duel2",
"meepo_earthbind2",
"templar_assassin_refraction2",
}
function GiveRandomAbility(hero)
hero:AddAbility(random_ability_table[RandomInt(1, #random_ability_table)])
end
random_ability_table = {
"dark_seer_surge2",
"furion_teleportation2",
"invoker_sun_strike2",
"legion_commander_duel2",
"meepo_earthbind2",
"templar_assassin_refraction2"
}
function Activate ()
ListenToGameEvent("dota_player_pick_hero", OnHeroPicked, nil)
end
function OnHeroPicked (event)
local hero = EntIndexToHScript(event.heroindex)
GiveRandomAbility(hero)
end
function GiveRandomAbility(hero)
hero:AddAbility(random_ability_table[RandomInt(1, #random_ability_table)])
end
Отреж голову тому кто это сказал, полный бред. Почитай про области видимости на досуге.Такое дело, я читал что не имеет значения куда ставить функции, а оказалось имеет.