Melee Weapons Ejecting Bullets?

I’ve been working on some new weapons for Garry’s Mod, and have a few melee weapons in them. But in thirdperson, the melee weapons eject bullets, why so?
I have never had this happen, and noticed it recently. I would supply the code if I knew what to give.
Any ideas? :v:

It’d be within your weapon-base or weapon code.

Show us your PrimaryAttack function, along with ShootEffects / ShootBullet or other functions which are called by PrimaryAttack.

Chances are you’re either using a base with it in there; or with your melee weapon you’re calling it in PrimaryAttack or a function called by it.

Primary Attack



function SWEP:PrimaryAttack()
	
	local CritMath = math.random(0,4)
	
	if CritMath == 3 then
	self.Weapon:SetNWBool("Critical", true)
	end

	if self.Weapon:GetNWBool("Critical") then
	self.Weapon:SendWeaponAnim(ACT_VM_SWINGHARD)
	self.Weapon:EmitSound("Weapon_Wrench.MissCrit")
	else
	self.Weapon:SendWeaponAnim(ACT_VM_HITCENTER)
	self.Weapon:EmitSound("Weapon_Wrench.Miss")
	end
	self.Owner:SetAnimation(PLAYER_ATTACK1)
	self.DoMelee = CurTime() + 0.2
	self.Weapon:SetNextPrimaryFire(CurTime() + self.Primary.Delay)
	self.Idle = CurTime() + self.Owner:GetViewModel():SequenceDuration()

	if ((game.SinglePlayer() and SERVER) or CLIENT) then
		self.Weapon:SetNetworkedFloat("LastShootTime", CurTime())
	end
end


And for Swep:Melee



function SWEP:Melee()

	self.DoMelee = nil
	local tr = {}
	tr.start = self.Owner:GetShootPos()
	tr.endpos = self.Owner:GetShootPos() + ( self.Owner:GetAimVector() * 80 )
	tr.filter = self.Owner
	tr.mask = MASK_SHOT
	local trace = util.TraceLine( tr )

	if ( trace.Hit ) then
			bullet = {}
			bullet.Num    = 1
			bullet.Src    = self.Owner:GetShootPos()
			bullet.Dir    = self.Owner:GetAimVector()
			bullet.Spread = Vector(0, 0, 0)
			bullet.Tracer = 0
			bullet.Force  = 1
			if self.Weapon:GetNWBool("Critical") then
			bullet.Damage = 90
			trace.Entity:EmitSound("TFPlayer.CritHit")
			else
			bullet.Damage = math.random(29,34)
			end
			if trace.Entity:IsPlayer() or string.find(trace.Entity:GetClass(),"npc") or string.find(trace.Entity:GetClass(),"prop_ragdoll") then
			self.Weapon:EmitSound("Weapon_Wrench.HitFlesh")
			else
			self.Weapon:EmitSound("Weapon_Wrench.HitWorld")
			end
			self.Owner:FireBullets(bullet) 
	end
			self.Weapon:SetNWBool("Critical", false)
end


And yes, I am using a base, thanks for the reply.

Which weapon base are you using, what game-mode? Nothing stands out to me from that really except a core function: FireBullets…

You can actually replace the bullet system with a different system for handling melee as it may be causing the headache. Try commenting out that line, remove the weapons from your person, respawn them ( if you auto-refresh ) and try again. If no shells are coming out, I’d recommend looking into

PLAYER:TakeDamageInfo( ) – you can create a new DamageInfo( ) and setup the attacker = self.Owner, inflictor = self, Min/Max Damage, Damage Type ( probably DAMAGE_BLUNT ), etc…

Based on his uploads I’d wager he’s just using good ol’ weapon_base… not sure what could cause shell ejections like this, but I highly doubt FireBullet is the culprit. Are you using SCK, Errol? And very important, what is the worldmodel of your SWEP?

[editline]7th March 2014[/editline]

Although TakeDamage/TakeDamageInfo are much better than bullets, that’s for sure.