Решено Повышение уровня способности при убийстве определённого юнита

Den13337

Новичок
13 Сен 2023
7
0
Помогите написать код, который при убийстве определённого юнита, повышал уровень способности.
Есть начало, не могу никак понять как сделать дальше
Lua:
function CAddonTemplateGameMode:PlayerDied(data)

    local killer = EntIndexToHScript(data.entindex_attacker)
    local killed = EntIndexToHScript(data.entindex_killed)

    if killed:GetUnitName() == "npc_sphere" then
        
    end
end
 

iia3uk666

Друзья CG
18 Дек 2021
411
70
Проект
Ушел с CG
Я так полагаю это код после слушателя entity_killed ты получил убитого в переменную и убийцу , так же проверил что убитый npc_sphare

Теперь тебе надо
Lua:
if killed:GetUnitName() == "npc_sphere" then
       
          -- Повышение выбранной способности у игрока найдем ее у убийцы
                local ability = killer:FindAbilityByName("ability_name")
-- Если у убийцы есть такая абилка то получаем ее текущий уровень и делаем +1

                if ability then
                    ability:SetLevel(ability:GetLevel() + 1)
             end
   end
 
  • Нравится
Реакции: Den13337

iia3uk666

Друзья CG
18 Дек 2021
411
70
Проект
Ушел с CG
Это если хочешь массивом сделать
Lua:
-- Массив способностей
                local abilities = {
                    "ability_name_1",
                    "ability_name_2",
                    "ability_name_3"
      }          
-- Повышение первой доступной способности у игрока
for _, abilityName in ipairs(abilities) do
                    local ability = killer:FindAbilityByName(abilityName)
                    if ability then
                       ability:SetLevel(ability:GetLevel() + 1)
                        break
                    end
 
  • Нравится
Реакции: vulkantsk и Den13337
Реклама: