CustomGames.ru - Dota 2 пользовательские игры

Новые классы атаки и брони.

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн DevilDez

  • 13
  • Мощь: 0
Мне нужно сделать пару новых классов атаки и брони. Типо одно бьет по одному больнее, а по другому слабее, и для каждого класса по разному. Я пытался сделать это через фильтр урона, но там только тип атаки передается, как класс атаки и класс брони узнать у цели и атакующего?

Оффлайн Adam Smith

  • Друзья CG
  • 476
  • Мощь: 6
  • жрять жри его
Re: Новые классы атаки и брони.
« Ответ #1 : 29-12-2016, 17:31:21 »
Мне нужно сделать пару новых классов атаки и брони. Типо одно бьет по одному больнее, а по другому слабее, и для каждого класса по разному. Я пытался сделать это через фильтр урона, но там только тип атаки передается, как класс атаки и класс брони узнать у цели и атакующего?
Код
function GameMode:GetCompositeDamage(damage, target)
    local magical_damage = damage/2
    local physical_damage = damage/2
    local armor = target:GetPhysicalArmorValue()
    local magical_armor = target:GetMagicalArmorValue()/100

    local mult = (1 - (0.06 * armor)) / (1 + (0.06 * armor))

    local phys_damage_comp = physical_damage*mult

    local mag_damage = magical_damage*(1 - magical_armor)

    return magical_damage + phys_damage_comp
end

Код
if ftable.entindex_inflictor_const then
            local ability = EntIndexToHScript(ftable.entindex_inflictor_const)
            if ability:GetName() == "joker_land_mines" or ability:GetName() == "joker_remote_mines" then
                local new_damage = GameMode:GetCompositeDamage(ftable.damage, victim)
                ftable.damage = new_damage
            end
        end
By PG.Freeman

Оффлайн ZLOY

  • Супермодератор
  • 452
  • Мощь: 6
Re: Новые классы атаки и брони.
« Ответ #2 : 29-12-2016, 17:53:48 »
Пример из DotaCraft
Методы GetAttackType, GetArmorType и GetAttackFactorAgainstTarget где-то в соседних файлах лежат.
« Последнее редактирование: 29-12-2016, 17:55:28 от ZLOY »