- 30 Июн 2017
- 4
- 0
Привет, как сделать чтобы юзал скилл и тебя превращало в кого-то, будь это машина, волк... Неважно.
beast_shapeshift = class({})
LinkLuaModifier( "modifier_beast_shapeshift", "abilities/beast_shapeshift.lua", LUA_MODIFIER_MOTION_NONE )
LinkLuaModifier( "modifier_beast_shapeshift_passive", "abilities/beast_shapeshift.lua", LUA_MODIFIER_MOTION_NONE )
function beast_shapeshift:GetIntrinsicModifierName ()
return "modifier_beast_shapeshift_passive"
end
function beast_shapeshift:OnSpellStart()
local duration = self:GetSpecialValueFor( "duration" )
self:GetCaster():AddNewModifier( self:GetCaster(), self, "modifier_stunned", {duration = self:GetSpecialValueFor("transformation_time")} )
Timers:CreateTimer(self:GetSpecialValueFor("transformation_time"), function()
self:GetCaster():AddNewModifier( self:GetCaster(), self, "modifier_beast_shapeshift", { duration = duration } )
end)
local nFXIndex = ParticleManager:CreateParticle( "particles/units/heroes/hero_sven/sven_spell_gods_strength.vpcf", PATTACH_ABSORIGIN_FOLLOW, self:GetCaster() )
ParticleManager:SetParticleControlEnt( nFXIndex, 1, self:GetCaster(), PATTACH_ABSORIGIN_FOLLOW, nil, self:GetCaster():GetOrigin(), true )
ParticleManager:ReleaseParticleIndex( nFXIndex )
EmitSoundOn( "Hero_Lycan.Shapeshift.Cast", self:GetCaster() )
self:GetCaster():StartGesture( ACT_DOTA_OVERRIDE_ABILITY_4 );
end
if modifier_beast_shapeshift == nil then modifier_beast_shapeshift = class({}) end
function modifier_beast_shapeshift:IsBuff()
return true
end
function modifier_beast_shapeshift:IsPurgable()
return false
end
function modifier_beast_shapeshift:DeclareFunctions ()
local funcs = {
MODIFIER_PROPERTY_MODEL_CHANGE,
MODIFIER_PROPERTY_MODEL_SCALE,
MODIFIER_PROPERTY_MOVESPEED_ABSOLUTE,
MODIFIER_PROPERTY_MOVESPEED_LIMIT,
MODIFIER_PROPERTY_MOVESPEED_MAX
}
return funcs
end
function modifier_beast_shapeshift:GetModifierModelChange(params)
return "models/creeps/nian/nian_creep.vmdl"
end
function modifier_beast_shapeshift:GetModifierModelScale(params)
return -0.4
end
function modifier_beast_shapeshift:GetModifierMoveSpeed_Absolute(params)
return self:GetAbility():GetSpecialValueFor("speed")
end
function modifier_beast_shapeshift:GetModifierMoveSpeed_Limit(params)
return self:GetAbility():GetSpecialValueFor("speed")
end
function modifier_beast_shapeshift:GetModifierMoveSpeed_Max(params)
return self:GetAbility():GetSpecialValueFor("speed")
end
if modifier_beast_shapeshift_passive == nil then modifier_beast_shapeshift_passive = class({}) end
function modifier_beast_shapeshift_passive:IsBuff()
return true
end
function modifier_beast_shapeshift_passive:IsPurgable()
return false
end
function modifier_beast_shapeshift_passive:IsHidden()
return true
end
function modifier_beast_shapeshift_passive:DeclareFunctions ()
local funcs = {
MODIFIER_PROPERTY_INCOMING_DAMAGE_PERCENTAGE,
}
return funcs
end
function modifier_beast_shapeshift_passive:GetModifierIncomingDamage_Percentage(params)
return self:GetAbility():GetSpecialValueFor("damage_reduction")
end
function beast_shapeshift:GetAbilityTextureName() return self.BaseClass.GetAbilityTextureName(self) end