游戏版本 | 0.8 |
---|---|
技能 | 单位目标 |
影响 | 敌方单位 |
伤害类型 | 无 |
无视技能免疫 | 是 |
能否驱散 | 无法驱散 |
技能描述 | 来自苍白之巢的唯一继承人仙德尔莎,立誓要向敌人进行复仇。对敌方单位目标使用,使其在接下来的21秒内加深受到来自复仇之魂的伤害。 |
阿哈利姆神杖升级 | 无 |
汪汪神杖升级 | 无 |
冷却时间 | 36 |
魔法消耗 | 75/100/125 |
技能效果词条 | 伤害加深:10/20/30 持续时间:21 |
其他词条 | 加深受到来自复仇之魂和天怒法师的伤害。 拉比克的25级天赋“50%窃取技能增强”对该技能加深的伤害无效。 弹道速度:1800 |
npc_abilities_custom.txt |
---|
//========== // Vengeful Spirit 复仇之魂 大招 //========== "vengeful_spirit_ultimate_2018" { // General //---------- "BaseClass" "ability_lua" "AbilityType" "DOTA_ABILITY_TYPE_ULTIMATE" "AbilityBehavior" "DOTA_ABILITY_BEHAVIOR_UNIT_TARGET" "ScriptFile" "abilities/custom/vengeful_spirit_ultimate_2018" "AbilityTextureName" "custom/abilities/vengeful_spirit/vengeful_spirit_ultimate_2018" "AbilityUnitDamageType" "DAMAGE_TYPE_MAGICAL" "SpellImmunityType" "SPELL_IMMUNITY_ENEMIES_YES" "SpellDispellableType" "SPELL_DISPELLABLE_NO" "FightRecapLevel" "1" "AbilityUnitTargetType" "DOTA_UNIT_TARGET_HERO | DOTA_UNIT_TARGET_BASIC" "AbilityUnitTargetFlags" "DOTA_UNIT_TARGET_FLAG_MAGIC_IMMUNE_ENEMIES" "AbilityUnitTargetTeam" "DOTA_UNIT_TARGET_TEAM_ENEMY" // Casting //---------- "AbilityCastRange" "700 950 1200" "AbilityCastPoint" "0.5 0.3 0.1" // Time //---------- "AbilityCooldown" "36" // Cost //---------- "AbilityManaCost" "75 100 125" // Special //---------- "AbilitySpecial" { "01" { "var_type" "FIELD_INTEGER" "damage_amplification_pct" "10 20 30" } "02" { "var_type" "FIELD_FLOAT" "duration" "21" } "03" { "var_type" "FIELD_INTEGER" "projectile_speed" "1800" } } } |
vscripts/abilities/custom/vengeful_spirit_ultimate_2018.lua |
---|
-- Project Name: Siltbreaker Hard Mode -- Author: BroFrank -- SteamAccountID: 144490770 vengeful_spirit_ultimate_2018 = class({}) LinkLuaModifier( "vengeful_spirit_ultimate_2018_modifier", "abilities/custom/vengeful_spirit_ultimate_2018_modifier", LUA_MODIFIER_MOTION_NONE ) -------------------------------------------------------------------------------- function vengeful_spirit_ultimate_2018:GetCastAnimation() return ACT_DOTA_CAST_ABILITY_4 end -------------------------------------------------------------------------------- function vengeful_spirit_ultimate_2018:OnSpellStart() if IsServer() then EmitSoundOn( "Hero_VengefulSpirit.WaveOfTerror", self:GetCaster() ) self.projectile_speed = self:GetSpecialValueFor( "projectile_speed" ) local vPos = nil if self:GetCursorTarget() then vPos = self:GetCursorTarget():GetOrigin() else vPos = self:GetCursorPosition() end local info = { Target = self:GetCursorTarget(), Source = self:GetCaster(), Ability = self, EffectName = "particles/new_custom/heroes/vs_ultimate_2018.vpcf", iMoveSpeed = self.projectile_speed, vSourceLoc = self:GetCaster():GetOrigin(), bDodgeable = false, bProvidesVision = false, } ProjectileManager:CreateTrackingProjectile( info ) end end -------------------------------------------------------------------------------- function vengeful_spirit_ultimate_2018:OnProjectileHit( hTarget, vLocation ) if IsServer() then self.duration = self:GetSpecialValueFor( "duration" ) if hTarget ~= nil and ( not hTarget:IsMagicImmune() ) and ( not hTarget:IsInvulnerable() ) then hTarget:AddNewModifier( self:GetCaster(), self, "vengeful_spirit_ultimate_2018_modifier", { duration = self.duration } ) end EmitSoundOn( "Hero_VengefulSpirit.NetherSwap", self:GetCaster() ) return true end end |
vscripts/abilities/custom/vengeful_spirit_ultimate_2018_modifier.lua |
---|
vengeful_spirit_ultimate_2018_modifier = class({}) ---------------------------------------- function vengeful_spirit_ultimate_2018_modifier:IsHidden() return false end ----------------------------------------------------------------------------------------- function vengeful_spirit_ultimate_2018_modifier:IsPurgable() return false end ----------------------------------------------------------------------------------------- function vengeful_spirit_ultimate_2018_modifier:IsDebuff() return true end -------------------------------------------------------------------------------- function vengeful_spirit_ultimate_2018_modifier:GetPriority() return MODIFIER_PRIORITY_ULTRA end ----------------------------------------------------------------------------------------- function vengeful_spirit_ultimate_2018_modifier:OnCreated( kv ) end ----------------------------------------------------------------------------------------- function vengeful_spirit_ultimate_2018_modifier:DeclareFunctions() local funcs = { MODIFIER_EVENT_ON_TAKEDAMAGE, } return funcs end ----------------------------------------------------------------------------------------- function vengeful_spirit_ultimate_2018_modifier:OnTakeDamage(params) if self:GetAbility() == nil or params.inflictor == self:GetAbility() then return 0 end if params.original_damage ~= nil and params.unit == self:GetParent() and params.original_damage > 0 then if params.attacker:GetUnitName() == "npc_dota_hero_vengefulspirit" or params.attacker:GetUnitName() == "npc_dota_hero_skywrath_mage" or (self:GetCaster()~=nil and params.attacker == self:GetCaster()) then local newdamage = params.original_damage * self:GetAbility():GetSpecialValueFor("damage_amplification_pct") / 100 local damageInfo = { victim = params.unit, attacker = params.attacker, damage = newdamage, damage_type = params.damage_type, ability = self:GetAbility(), } ApplyDamage(damageInfo) EmitSoundOn( "Hero_VengefulSpirit.MagicMissileImpact", params.unit ) ParticleManager:CreateParticle( "particles/new_custom/heroes/vs_ultimate_2018_target.vpcf", PATTACH_ABSORIGIN_FOLLOW, params.unit ) end end end |