Garry's Mod Wiki

Revision Difference

Player:AnimRestartGesture#547975

<function name="AnimRestartGesture" parent="Player" type="classfunc"> <description> Restart a gesture on a player, within a gesture slot. <warning>This is not automatically networked. This function has to be called on the client to be seen by said client.</warning> </description> <realm>Shared</realm> <args> <arg name="slot" type="number">Gesture slot using <page>Enums/GESTURE_SLOT</page></arg> <arg name="activity" type="number">The activity ( see <page>Enums/ACT</page> ) or sequence that should be played</arg> <arg name="autokill" type="boolean" default="false">Whether the animation should be automatically stopped. true = stops the animation, false = the animation keeps playing/looping</arg> </args> </function> <example> <description>Defines part of a SWEP with pistol whipping functionality by using a pistol hold type and AnimRestartGesture for the melee attack animation.</description> <code> function SWEP:Initialize() self:SetHoldType("pistol") end function SWEP:PrimaryAttack() -- Weapon attack delay self:SetNextPrimaryFire(CurTime()+0.5) -- Get entity in front of us local tr = util.TraceLine(util.GetPlayerTrace(self.Owner)) local tr = util.TraceLine(util.GetPlayerTrace(self:GetOwner())) local ent = tr.Entity -- If there's an enemy under 50 units in front of us if(IsValid(ent) && self.Owner:GetShootPos():Distance(tr.HitPos) < 50) then if(IsValid(ent) && self:GetOwner():GetShootPos():Distance(tr.HitPos) < 50) then -- Play the melee attack animation self.Owner:AnimRestartGesture(GESTURE_SLOT_ATTACK_AND_RELOAD, ACT_HL2MP_GESTURE_RANGE_ATTACK_MELEE, true) self:GetOwner():AnimRestartGesture(GESTURE_SLOT_ATTACK_AND_RELOAD, ACT_HL2MP_GESTURE_RANGE_ATTACK_MELEE, true) -- Create damage info (server-side) if SERVER then local dmg = DamageInfo() dmg:SetDamage(math.random(5, 10)) dmg:SetAttacker(self.Owner) dmg:SetAttacker(self:GetOwner()) dmg:SetInflictor(self) dmg:SetDamageForce(self.Owner:GetAimVector()*300) dmg:SetDamageForce(self:GetOwner():GetAimVector()*300) dmg:SetDamagePosition(tr.HitPos) dmg:SetDamageType(DMG_CLUB) -- Apply damage to enemy ent:TakeDamageInfo(dmg) end -- Play impact sound ent:EmitSound("physics/flesh/flesh_impact_bullet"..math.random(1, 5)..".wav") -- Make viewmodel pistol whip effect self.Owner:ViewPunch(Angle(0, 45, 0)) self:GetOwner():ViewPunch(Angle(0, 45, 0)) else -- Typical pistol shot code goes here -- Some can be found in 'weapon_base/shared.lua' end end </code> </example>