Урок Урок для новичка Lua: (Щит Антимага)

DDSuper

Друзья CG
31 Май 2019
405
57
Всем привет. Хочу поделится с вами тем что я научился, и сегодня будем, смотреть, как создать щит антимага
Первое перейдите к scripts/npc_abilites_custom.txt
И к примеру вставьте это:

Код:
"antimage_spell_shield_lua"
    {
        // Ability Technical Aspect
        // Где находятся наши луа скрипты    : scripts/vscripts
        // Здесь абилки : scripts/vscripts/lua_abilities/antimag/antimage_spell_shield_lua.lua
        // Ну а здесь просто иконки    : resource/flash3/images/spellicons
        //-------------------------------------------------------------------------------------------------------------
        "BaseClass"                        "ability_lua"
        "ScriptFile"                    "lua_abilities/antimag/antimage_spell_shield_lua"
        "AbilityTextureName"            "antimage_spell_shield_lua"
        "FightRecapLevel"                "1"     
        "MaxLevel"                        "4"
        "AbilityType"                    "DOTA_ABILITY_TYPE_BASIC"
        "AbilityBehavior"                "DOTA_ABILITY_BEHAVIOR_PASSIVE"
        "AbilitySpecial"
        {
            "01"
            {
                "var_type"                "FIELD_INTEGER"
                "bonus_resist_pct"        "20 30 40 50"
            }
        }
    }
}
Да да, все нужно или может пойти что-то не так
Ну и создаем как-бы луа
Значит создали да?
Теперь, откройте его.
Сперва напишите в нему
Код:
antimage_spell_shield_lua = class({})
Если это пассивная, тогда пишем(ну звичайно это и есть пассивная) --

Код:
antimage_spell_shield_lua = class({})
LinkLuaModifier( "modifier_spell_shield_lua","lua_abilities/antimag/modifier_spell_shield_lua",LUA_MODIFIER_MOTION_NONE ) -- 1. Название модификатора 2.Где росположен модификатор. Росположен там и где луа скилл 3. ХЗ()

function antimage_spell_shield_lua:GetIntrinsicModifierName() -- Так как это пассивка. Просто пишем это
    return "modifier_spell_shield_lua"
end
Тогда, создайте луа модифаер для абилки
Открываем и пишем:

Код:
modifier_spell_shield_lua = class({})
------------------------------------------------------------------
function modifier_spell_shield_lua:OnCreated( kv )
    self.resist = self:GetAbility():GetSpecialValueFor("bonus_resist_ptc") -- OBSOLETE, self.resist это почти тоже самое что и локал
end
------------------------------------------------------------------
function modifier_spell_shield_lua:OnRefresh( kv )
    self.resist = self:GetAbility():GetSpecialValueFor("bonus_resist_ptc") -- OBSOLETE, AGAIN!
end
------------------------------------------------------------------ Теперь, сладкое модификаторы
function modifier_spell_shield_lua:DeclareFunction()
    local pizdec = { -- Замените этот мат на кое-что харошое
        MODIFIER_PROPERTY_MAGICAL_RESISTANCE_BONUS,
}
    return pizdec
end
------------------------------------------------------------------
function modifier_spell_shield_lua:GetModifierMagicalResistanceBonus( params )
    return self.resist -- Это же ваша переменная !
end
И все гайд взят на основе этого:
Да это мой Patreon: https://www.patreon.com/ddsupercustomgame
 
Последнее редактирование:
  • Нравится
Реакции: vulkantsk и -ExotiC-

DDSuper

Друзья CG
31 Май 2019
405
57
Сори, с остальным(про отражение скиллов) я не знаю
(Луа, понятно лучше больше возможностей чем в DataDriven AI)
 
Последнее редактирование:
Реклама: