Круговой сплеш в 7.00

  • Автор темы Автор темы Zet
  • Дата начала Дата начала

Zet

Новичок
29 Июн 2015
5
0
Перестал работать сплеш. В 7.00 его изменили на конусообразный.
Как сделать его снова круглым? Есть идеи?
Мой старый код:
Код:
function SplashDamage(keys)
	local caster = keys.caster
	local keydamage = caster:GetAverageTrueAttackDamage(target)
	local radius = keys.radius
	local target = keys.target

	local targets = FindUnitsInRadius(caster:GetTeam(), target:GetAbsOrigin(), nil, radius, DOTA_UNIT_TARGET_TEAM_ENEMY, DOTA_UNIT_TARGET_HERO + DOTA_UNIT_TARGET_CREEP, DOTA_UNIT_TARGET_FLAG_FOW_VISIBLE, FIND_CLOSEST, false)

	for i = 1, #targets do
		if targets[i] ~= target then --avoid dealing twice the damage
			local damageTable = {
				victim = targets[i],
				attacker = caster,
				damage = keydamage,
				damage_type = DAMAGE_TYPE_PHYSICAL,
			}
			ApplyDamage(damageTable)
		end
	end
end
 
Всмысле снова сделать круглым? Твой код итак наносит урон по кругу. Ты не используешь команды вроде DoCleaveAttack, что были изменены под конус.
 
Урон от сплэша не уменьшается от значения брони, поэтому нужно добавить DOTA_DAMAGE_FLAG_IGNORES_PHYSICAL_ARMOR
 
Дело в том что необходимо было что бы снаряд от вышки бил по радиусу окружности, а сейчас он бьет по конусообразному расстоянию от вышки.
 
Приложенный тобою код ищет юнитов в радиусе от точки и наносит им урон
 
Приложенный тобою код ищет юнитов в радиусе от точки и наносит им урон
Но по какой-то причине не наносит урон соседним юнитам которые под воздействием magic_immunity.
"magic_immunity"
{
// General
//-------------------------------------------------------------------------------------------------------------
"BaseClass" "ability_datadriven"
"MaxLevel" "1"
"AbilityTextureName" "neutral_spell_immunity"
"AbilityBehavior" "DOTA_ABILITY_BEHAVIOR_PASSIVE"

"Modifiers"
{
"magic_immune"
{
"Passive" "1"

"States"
{
"MODIFIER_STATE_MAGIC_IMMUNE" "MODIFIER_STATE_VALUE_ENABLED"
}
}
}

}
"tower_siege"
{
"BaseClass" "ability_datadriven"
"AbilityBehavior" "DOTA_ABILITY_BEHAVIOR_PASSIVE"
"SpellImmunityType" "SPELL_IMMUNITY_ENEMIES_YES"
"AbilityTextureName" "sven_great_cleave"
"MaxLevel" "1"

"AbilitySpecial"
{
"01"
{
"var_type" "FIELD_INTEGER"
"radius" "850"
}
}

"Modifiers"
{
"Orb_modifier"
{
"Passive" "1"
"IsHidden" "1"
"Orb"
{
"Priority" "DOTA_ORB_PRIORITY_ABILITY"
"ProjectileName" "particles/units/heroes/hero_sven/sven_spell_storm_bolt.vpcf"
"CastAttack" "1"
}
"OnAttackLanded"
{
"RunScript"
{
"ScriptFile" "towers/splashdamage.lua"
"Function" "SplashDamage"
"radius" "%radius"
"Target" "TARGET"
}
}
}
}
}
 
Последнее редактирование модератором:
DOTA_UNIT_TARGET_FLAG_MAGIC_IMMUNE_ENEMIES
 
Но по какой-то причине не наносит урон соседним юнитам которые под воздействием magic_immunity.
Ну так флага соответствующего не хватает.
Код:
DOTA_UNIT_TARGET_FLAG_MAGIC_IMMUNE_ENEMIES
 
Последнее редактирование модератором:
[quote author=CryDeS link=topic=1219.msg7344#msg7344 date=1483904557]
Ну так флага соответствующего не хватает.
Код:
DOTA_UNIT_TARGET_FLAG_MAGIC_IMMUNE_ENEMIES
[/quote]
Верно, спасибо.
 
Реклама: