Выглядит проще написать на item_lua чем на dd, вот только я на item_lua ещё ни разу не писал, это по сути аналог ability_lua ?
function test(args)
local caster = args.caster
local target = args.target
local ability = args.ability
local projectile = {
EffectName = "particles/units/heroes/hero_mirana/mirana_spell_arrow.vpcf",
vSpawnOrigin = {unit=caster, attach="attach_attack1", offset=Vector(0,0,0)},
fDistance = args.FixedDistance,
fStartRadius = args.StartRadius,
fEndRadius = args.EndRadius,
Source = caster,
vVelocity = caster:GetForwardVector() * args.MoveSpeed,
UnitBehavior = PROJECTILES_DESTROY,
bMultipleHits = false,
bIgnoreSource = true,
WallBehavior = PROJECTILES_NOTHING,
GroundBehavior = PROJECTILES_NOTHING,
fGroundOffset = 80,
nChangeMax = 1,
bRecreateOnChange = true,
bZCheck = false,
bGroundLock = true,
bProvidesVision = true,
iVisionRadius = args.VisionRadius,
UnitTest = function(self, unit) return unit:GetUnitName() ~= "npc_dummy_unit" and unit:GetTeamNumber() ~= caster:GetTeamNumber() or unit:GetUnitName() == "npc_bear" end,
OnUnitHit = function(self, unit)
local totalDamage = args.Damage
local target = unit
local damageTable = {
victim = target,
attacker = caster,
damage = totalDamage,
damage_type = DAMAGE_TYPE_PHYSICAL,
}
ApplyDamage(damageTable)
if unit:GetUnitName() == "npc_dota_hero_omniknight" then
ParticleManager:CreateParticle("particles/units/heroes/hero_bloodseeker/bloodseeker_bloodritual_impact.vpcf", PATTACH_ABSORIGIN_FOLLOW, unit)
end
end
}
Projectiles:CreateProjectile(projectile)
end
"ID" "3002"
"BaseClass" "item_datadriven"
"AbilityTextureName" "testrgerh"
"AbilityBehavior" "DOTA_ABILITY_BEHAVIOR_POINT | DOTA_ABILITY_BEHAVIOR_IGNORE_BACKSWING"
"AbilityUnitTargetTeam" "DOTA_UNIT_TARGET_TEAM_ENEMY"
"AbilityUnitTargetType" "DOTA_UNIT_TARGET_ALL"
"Model" "models/props_gameplay/red_box.vmdl"
"ItemSellable" "0"
"ItemPermanent" "0"
"AbilityCooldown" "3"
"AbilityDamage" "62"
"AbilitySpecial"
{
"01"
{
"var_type" "FIELD_INTEGER"
"start_radius" "30"
}
"02"
{
"var_type" "FIELD_INTEGER"
"end_radius" "40"
}
"03"
{
"var_type" "FIELD_INTEGER"
"range" "2500"
}
"04"
{
"var_type" "FIELD_INTEGER"
"speed" "2000"
}
"05"
{
"var_type" "FIELD_INTEGER"
"vision_radius" "400"
}
}
"OnSpellStart"
{
"RunScript"
{
"ScriptFile" "testeee.lua"
"Function" "test"
"Target" "TARGET"
"MoveSpeed" "%speed"
"FixedDistance" "%range"
"StartRadius" "%start_radius"
"EndRadius" "%end_radius"
"Damage" "%AbilityDamage"
"VisionRadius" "%vision_radius"
}
}