- 20 Дек 2016
- 892
- 170
Не отображается бонус модификатора.
Не отображается бонус к скорости на панельке со статами, придаваемый модификатором, хотя сам модификатор работает, и бонус к скорости в самой игре тоже дается (Что я проверяю в OnHeroSpawn). Способность, добавляющая модификатор дается герою на спавне.
Бонусный радиус каста.
Этот же модификатор должен добавлять бонусный радиус каста, но он этого не делает даже фактически. В списке API функций константа MODIFIER_PROPERTY_CAST_RANGE_BONUS не имеет значения, что, видимо, намекает на то, что этот модифиер вообще не работает. Каким образом можно изменить радиусы кастов героев с помощью способности?
Кусок из addon_game_mode:
способность в КВ:
Способность на луа:
Модификатор:
Не отображается бонус к скорости на панельке со статами, придаваемый модификатором, хотя сам модификатор работает, и бонус к скорости в самой игре тоже дается (Что я проверяю в OnHeroSpawn). Способность, добавляющая модификатор дается герою на спавне.
Бонусный радиус каста.
Этот же модификатор должен добавлять бонусный радиус каста, но он этого не делает даже фактически. В списке API функций константа MODIFIER_PROPERTY_CAST_RANGE_BONUS не имеет значения, что, видимо, намекает на то, что этот модифиер вообще не работает. Каким образом можно изменить радиусы кастов героев с помощью способности?
Кусок из addon_game_mode:
Код:
function CAddonTemplateGameMode:InitGameMode()
print( "Template addon is loaded." )
GameRules:GetGameModeEntity():SetThink( "OnThink", self, "GlobalThink", 2 )
ListenToGameEvent( "dota_player_killed", Dynamic_Wrap( CAddonTemplateGameMode, 'OnHeroKilled' ), self )
ListenToGameEvent( "npc_spawned", Dynamic_Wrap( CAddonTemplateGameMode, 'OnHeroSpawn' ), self )
end
function CAddonTemplateGameMode:OnHeroSpawn( keys )
local spawned_hero = EntIndexToHScript( keys.entindex )
print( spawned_hero:GetMoveSpeedModifier(290) )
if spawned_hero:IsRealHero() and spawned_hero:FindAbilityByName( "stats_bonus_fix" ) == nil then
Say( nil, "1", false )
spawned_hero:AddAbility( "stats_bonus_fix" )
spawned_hero:FindAbilityByName( "stats_bonus_fix" ):SetLevel(1)
end
end
способность в КВ:
Код:
"stats_bonus_fix"
{
"BaseClass" "ability_lua"
"ScriptFile" "stats_bonus_fix"
"MaxLevel" "1"
"AbilityBehavior" "DOTA_ABILITY_BEHAVIOR_HIDDEN"
}
Способность на луа:
Код:
stats_bonus_fix = class({})
LinkLuaModifier( "modifier_stats_bonus_fix", LUA_MODIFIER_MOTION_NONE )
function stats_bonus_fix:GetIntrinsicModifierName()
return "modifier_stats_bonus_fix"
end
Модификатор:
Код:
modifier_stats_bonus_fix = class({})
function modifier_stats_bonus_fix:IsHidden()
return false
end
function modifier_stats_bonus_fix:IsDebuff()
return false
end
function modifier_stats_bonus_fix:DeclareFunctions()
local funcs = {
MODIFIER_PROPERTY_MANA_BONUS,
MODIFIER_PROPERTY_MANA_REGEN_PERCENTAGE,
MODIFIER_PROPERTY_MOVESPEED_MAX,
MODIFIER_PROPERTY_CAST_RANGE_BONUS,
MODIFIER_PROPERTY_MOVESPEED_BONUS_CONSTANT,
}
return funcs
end
function modifier_stats_bonus_fix:GetModifierManaBonus( params )
return -( self:GetCaster():GetIntellect() * 12 )
end
function modifier_stats_bonus_fix:GetModifierPercentageManaRegen( params )
return -100
end
function modifier_stats_bonus_fix:GetModifierMoveSpeed_Max( params )
return 1000
end
function modifier_stats_bonus_fix:GetModifierCastRangeBonus( params )
return self:GetCaster():GetIntellect() * 2
end
function modifier_stats_bonus_fix:GetModifierMoveSpeedBonus_Constant( params )
return self:GetCaster():GetIntellect()
end
Последнее редактирование модератором: