Кастомные параметры

EndBringer

Самый "везучий" кастомкодел
17 Мар 2019
70
16
steamcommunity.com
Привет, я подсяду?
Мастера, подскажите пожалуйста как реализовать систему, при которой у юнита существуют кастомные параметры по типу:
1. Шанс при убийстве крипа выбить предмет
2. Возможно получения бОльшего кол-ва золота
3. Увеличить кол-во урона наносимого способностями, именно способностями, а не "магической атакой"
И т.п. параметры, которые динамически могут изменяться во время игры в зависимости от махинаций игрока
Тех, кого интересует коммерческий вопрос - пожалуйста обращайтесь, есть моя ссылка ВК
Либо же мой дискорд - EndBringer#9973
 

muRLoc

Активный
25 Ноя 2018
83
23
Привет, я подсяду?
Мастера, подскажите пожалуйста как реализовать систему, при которой у юнита существуют кастомные параметры по типу:
1. Шанс при убийстве крипа выбить предмет
2. Возможно получения бОльшего кол-ва золота
3. Увеличить кол-во урона наносимого способностями, именно способностями, а не "магической атакой"
И т.п. параметры, которые динамически могут изменяться во время игры в зависимости от махинаций игрока
Тех, кого интересует коммерческий вопрос - пожалуйста обращайтесь, есть моя ссылка ВК
Либо же мой дискорд - EndBringer#9973
Можно по разному, один из вариантов:
Lua:
function ApplyCustomStats(hHero)
    hHero.stats = {}

    hHero.stats.str = 10
    hHero.stats.agi = 10
    hHero.stats.int = 10

    hHero.stats.physical_damage = 0
    hHero.stats.magic_damage = 0

    hHero.stats.spell_cooldown = 0
    hHero.stats.as = 0

    hHero.stats.crit_chance = 5
    hHero.stats.crit_mult = 140
    hHero.stats.physical_armor = 10
    hHero.stats.magic_armor = 10

    hHero:AddNewModifier(hHero, nil, "modifier_custom_strength", {duration=-1}):SetStackCount(10)
    hHero:AddNewModifier(hHero, nil, "modifier_custom_agility", {duration=-1}):SetStackCount(10)
    hHero:AddNewModifier(hHero, nil, "modifier_custom_intellect", {duration=-1}):SetStackCount(10)

    hHero:AddNewModifier(hHero, nil, "modifier_custom_crit_chance", {duration=-1}):SetStackCount(5)
    hHero:AddNewModifier(hHero, nil, "modifier_custom_crit_mult", {duration=-1}):SetStackCount(140)

    hHero:AddNewModifier(hHero, nil, "modifier_custom_physical_damage", {duration=-1})
    hHero:AddNewModifier(hHero, nil, "modifier_custom_str_health", {duration=-1})

    hHero:AddNewModifier(hHero, nil, "modifier_custom_magic_damage", {duration=-1})
    hHero:AddNewModifier(hHero, nil, "modifier_custom_int_mp_regen", {duration=-1})

    hHero:AddNewModifier(hHero, nil, "modifier_custom_spell_cooldown", {duration=-1})
    hHero:AddNewModifier(hHero, nil, "modifier_custom_attack_speed", {duration=-1})

    hHero:AddNewModifier(hHero, nil, "modifier_custom_physical_armor", {duration=-1}):SetStackCount(10)
    hHero:AddNewModifier(hHero, nil, "modifier_custom_magic_armor", {duration=-1}):SetStackCount(10)

    --hHero:UpdateCustomStats()
end
Сами характеристики записаны в handle героя, модификаторы не обязательны, но решают вопрос с отображением на клиенте.
 
  • Нравится
Реакции: EndBringer

EndBringer

Самый "везучий" кастомкодел
17 Мар 2019
70
16
steamcommunity.com
Можно по разному, один из вариантов:
Lua:
function ApplyCustomStats(hHero)
    hHero.stats = {}

    hHero.stats.str = 10
    hHero.stats.agi = 10
    hHero.stats.int = 10

    hHero.stats.physical_damage = 0
    hHero.stats.magic_damage = 0

    hHero.stats.spell_cooldown = 0
    hHero.stats.as = 0

    hHero.stats.crit_chance = 5
    hHero.stats.crit_mult = 140
    hHero.stats.physical_armor = 10
    hHero.stats.magic_armor = 10

    hHero:AddNewModifier(hHero, nil, "modifier_custom_strength", {duration=-1}):SetStackCount(10)
    hHero:AddNewModifier(hHero, nil, "modifier_custom_agility", {duration=-1}):SetStackCount(10)
    hHero:AddNewModifier(hHero, nil, "modifier_custom_intellect", {duration=-1}):SetStackCount(10)

    hHero:AddNewModifier(hHero, nil, "modifier_custom_crit_chance", {duration=-1}):SetStackCount(5)
    hHero:AddNewModifier(hHero, nil, "modifier_custom_crit_mult", {duration=-1}):SetStackCount(140)

    hHero:AddNewModifier(hHero, nil, "modifier_custom_physical_damage", {duration=-1})
    hHero:AddNewModifier(hHero, nil, "modifier_custom_str_health", {duration=-1})

    hHero:AddNewModifier(hHero, nil, "modifier_custom_magic_damage", {duration=-1})
    hHero:AddNewModifier(hHero, nil, "modifier_custom_int_mp_regen", {duration=-1})

    hHero:AddNewModifier(hHero, nil, "modifier_custom_spell_cooldown", {duration=-1})
    hHero:AddNewModifier(hHero, nil, "modifier_custom_attack_speed", {duration=-1})

    hHero:AddNewModifier(hHero, nil, "modifier_custom_physical_armor", {duration=-1}):SetStackCount(10)
    hHero:AddNewModifier(hHero, nil, "modifier_custom_magic_armor", {duration=-1}):SetStackCount(10)

    --hHero:UpdateCustomStats()
end
Сами характеристики записаны в handle героя, модификаторы не обязательны, но решают вопрос с отображением на клиенте.
Спасибо
 
Реклама: