В общем, сделал дамми с глобальной аурой. Сделал предмет, который должен повышать уровень способности этого дамми, что не происходит. Нужна помощь в решении данной проблемы.
Код:
"ve_unit_damage_up"
{
// General
//-------------------------------------------------------------------------------------------------------------
"BaseClass" "ability_datadriven"
"AbilityBehavior" "DOTA_ABILITY_BEHAVIOR_PASSIVE | DOTA_ABILITY_BEHAVIOR_AURA"
"AbilityUnitTargetTeam" "DOTA_UNIT_TARGET_TEAM_FRIENDLY"
"AbilityTextureName" "crystal_maiden_brilliance_aura"
"MaxLevel" "5"
// Special
//-------------------------------------------------------------------------------------------------------------
"AbilitySpecial"
{
"01"
{
"var_type" "FIELD_INTEGER"
"damage" "5 10 20 30"
}
// Extra variables
"02"
{
"var_type" "FIELD_INTEGER"
"global_radius" "9000"
}
}
// Data driven
//-------------------------------------------------------------------------------------------------------------
"Modifiers"
{
"modifier_ve_unit_damage_up"
{
"Passive" "1"
"IsPurgable" "0"
"IsHidden" "1"
"Aura" "modifier_ve_unit_damage_up_mod"
"Aura_Radius" "%global_radius"
"Aura_Teams" "DOTA_UNIT_TARGET_TEAM_FRIENDLY"
"Aura_Types" "DOTA_UNIT_TARGET_HERO | DOTA_UNIT_TARGET_BASIC | DOTA_UNIT_TARGET_CREEP"
"States"
{
"MODIFIER_STATE_UNSELECTABLE" "MODIFIER_STATE_VALUE_ENABLED"
"MODIFIER_STATE_NO_HEALTH_BAR" "MODIFIER_STATE_VALUE_ENABLED"
"MODIFIER_STATE_INVULNERABLE" "MODIFIER_STATE_VALUE_ENABLED"
"MODIFIER_STATE_OUT_OF_GAME" "MODIFIER_STATE_VALUE_ENABLED"
}
"Properties"
{
"MODIFIER_PROPERTY_PREATTACK_BONUS_DAMAGE" "%damage"
}
}
"modifier_ve_unit_damage_up_mod"
{
"Properties"
{
"MODIFIER_PROPERTY_PREATTACK_BONUS_DAMAGE" "%damage"
}
}
}
}
Код:
"item_book_upper_damage"
{
"ID" "1201"
"AbilityBehavior" "DOTA_ABILITY_BEHAVIOR_ITEM | DOTA_ABILITY_BEHAVIOR_NO_TARGET"
"BaseClass" "item_datadriven"
"Model" "models/props_gameplay/red_box.vmdl"
"AbilityTextureName" "crystal_maiden_brilliance_aura"
"ItemCost" "5"
"ItemDroppable" "1"
"ItemSellable" "1"
"ItemKillable" "0"
"ItemShareability" "ITEM_NOT_SHAREABLE"
"ItemDeclarations" "DECLARE_PURCHASES_TO_TEAMMATES | DECLARE_PURCHASES_TO_SPECTATORS | DECLARE_PURCHASES_IN_SPEECH"
"AbilityCooldown" "1" //
"AbilityManaCost" "15"
"Modifiers"
{
"modifier_item_book_upper_damage"
{
"Passive" "1"
"IsHidden" "1"
"OnCreated"
{
"RunScript"
{
"ScriptFile" "ve_unit_upper.lua"
"Function" "ve_damage_script_setlevel"
}
}
}
}
}
Код:
function ve_damage_script_setlevel( keys )
local hCaster = keys.caster
local hUnit = Entities:FindByClassname(nil, "ve_dota_unit_upper")
while not bFound do
if hUnit then
if hUnit:GetTeamNumber() == hCaster:GetTeamNumber() then
local abilka = hUnit:FindAbilityByName("ve_unit_damage_up")
local cLevel = abilka:GetLevel()
abilka:SetLevel(4)
bFound = true
else
hUnit = Entities:FindByClassname(hUnit, "ve_dota_unit_upper")
end
else
bFound = true
end
end
end
Последнее редактирование модератором: