# CreateLinearProjectile
int CreateLinearProjectile(tInfo)
# Class
✔️ Server: ProjectileManager
❌ Client: undefined
# Function Description
创建一个线性投射物,返回投射物ID。参数: Ability, Source, vSpawnOrigin, vVelocity, vAcceleration, fDistance, fStartRadius, fEndRadius, bHasFrontalCone, iUnitTargetTeam, iUnitTargetType, iUnitTargetFlags, bProvidesVision, iVisionTeamNumber, iVisionRadius, bDrawsOnMinimap, bVisibleToEnemies, bIgnoreSource,fExpireTime, fMaxSpeed
# Parameters
Type | Name | Description |
---|---|---|
handle | tInfo | 投射物参数 |
# Example
-- 创建一个月神箭
function mirana_arrow:OnSpellStart()
local hCaster = self:GetCaster()
local vPosition = self:GetCursorPosition()
local iSpeed = 1800
local tInfo =
{
Ability = self, -- 技能
EffectName = "particles/units/heroes/hero_mirana/mirana_spell_arrow.vpcf", -- 投射物特效
vSpawnOrigin = hCaster:GetAttachmentOrigin(hCaster:ScriptLookupAttachment("attach_attack1")), -- 投射物起点
fDistance = 2000, -- 最大距离
fStartRadius = 64, -- 起始半径
fEndRadius = 64, -- 终点半径
Source = hCaster, -- 来源单位
bHasFrontalCone = false, -- 是否有前椎体
bReplaceExisting = false, -- 替换已经存在的投射物
iUnitTargetTeam = DOTA_UNIT_TARGET_TEAM_ENEMY, -- 目标队伍
iUnitTargetFlags = DOTA_UNIT_TARGET_FLAG_NONE, -- 目标标记
iUnitTargetType = DOTA_UNIT_TARGET_HERO + DOTA_UNIT_TARGET_BASIC, -- 目标类型
fExpireTime = GameRules:GetGameTime() + 10.0, -- 销毁时间
bDeleteOnHit = true, -- 击中后是否销毁
vVelocity = (vPosition - hCaster:GetAbsOrigin()):Normalized() * iSpeed, -- 速度
bProvidesVision = true, -- 是否提供视野
iVisionRadius = 1000, -- 视野半径
iVisionTeamNumber = hCaster:GetTeamNumber(), -- 视野队伍
ExtraData =
{
flDamage = 360,
},
}
projectile = ProjectileManager:CreateLinearProjectile(tInfo)
end