unction OnCustomRandomFirstAbilityItemUsed(keys)
local caster = keys.caster
local playerID = caster:GetPlayerID()
local hero = PlayerResource:GetSelectedHeroEntity(playerID)
local customAbilities = {"antimage_blink", "antimage_spell_shield", "antimage_counterspell", "antimage_mana_break", "antimage_mana_void", "axe_berserkers_call", "axe_battle_hunger", "axe_counter_helix", "axe_culling_blade", "bane_enfeeble", "bane_brain_sap", "bane_fiends_grip", "bane_nightmare", "bane_nightmare_end",
"bloodseeker_bloodrage","bloodseeker_blood_bath", "bloodseeker_thirst"}
local randomAbilityName = customAbilities[RandomInt(1, #customAbilities)]
-- Проверка на дублирование абилити
if not hero:HasAbility(randomAbilityName) then
local firstAbility = hero:GetAbilityByIndex(0) -- Получаем абилити из первого слота
if firstAbility then
hero:RemoveAbility(firstAbility:GetAbilityName()) -- Удаляем абилити из первого слота
caster:RemoveItem(keys.ability) -- Удаляем предмет из инвентаря
end
hero:AddAbility(randomAbilityName) -- Добавляем новую абилити
local randomAbility = hero:FindAbilityByName(randomAbilityName)
if randomAbility then
randomAbility:SetLevel(1)
end
end
end
Кто подскажет что не так? При использовании предмета к которому привязал скрипт игра вылетает.
local caster = keys.caster
local playerID = caster:GetPlayerID()
local hero = PlayerResource:GetSelectedHeroEntity(playerID)
local customAbilities = {"antimage_blink", "antimage_spell_shield", "antimage_counterspell", "antimage_mana_break", "antimage_mana_void", "axe_berserkers_call", "axe_battle_hunger", "axe_counter_helix", "axe_culling_blade", "bane_enfeeble", "bane_brain_sap", "bane_fiends_grip", "bane_nightmare", "bane_nightmare_end",
"bloodseeker_bloodrage","bloodseeker_blood_bath", "bloodseeker_thirst"}
local randomAbilityName = customAbilities[RandomInt(1, #customAbilities)]
-- Проверка на дублирование абилити
if not hero:HasAbility(randomAbilityName) then
local firstAbility = hero:GetAbilityByIndex(0) -- Получаем абилити из первого слота
if firstAbility then
hero:RemoveAbility(firstAbility:GetAbilityName()) -- Удаляем абилити из первого слота
caster:RemoveItem(keys.ability) -- Удаляем предмет из инвентаря
end
hero:AddAbility(randomAbilityName) -- Добавляем новую абилити
local randomAbility = hero:FindAbilityByName(randomAbilityName)
if randomAbility then
randomAbility:SetLevel(1)
end
end
end
Кто подскажет что не так? При использовании предмета к которому привязал скрипт игра вылетает.