Mad cows Mad Charge weapon problem with respawn doors.

have Mad Charge
and the doors didnt respawn…
Sorry about my bad english.
I have Darkrp 2.4.3
weapon_mad_charge
Shared.lua



// Variables that are used on both client and server

SWEP.Base 				= "weapon_mad_base"

SWEP.ViewModelFlip		= false
SWEP.ViewModel			= "models/weapons/v_slam.mdl"
SWEP.WorldModel			= "models/weapons/w_slam.mdl"
SWEP.HoldType				= "slam"
SWEP.Spawnable			= true
SWEP.AdminSpawnable		= false

SWEP.Primary.Sound		= Sound("")
SWEP.Primary.Recoil		= 0
SWEP.Primary.Damage		= 0
SWEP.Primary.NumShots		= 1
SWEP.Primary.Cone			= 0.075
SWEP.Primary.Delay 		= 5

SWEP.Primary.ClipSize		= -1					// Size of a clip
SWEP.Primary.DefaultClip	= 1					// Default number of bullets in a clip
SWEP.Primary.Automatic		= false				// Automatic/Semi Auto
SWEP.Primary.Ammo			= "Thumper"

SWEP.Secondary.ClipSize		= -1					// Size of a clip
SWEP.Secondary.DefaultClip	= -1					// Default number of bullets in a clip
SWEP.Secondary.Automatic	= false				// Automatic/Semi Auto
SWEP.Secondary.Ammo		= "none"

SWEP.ShellEffect			= "none"				// "effect_mad_shell_pistol" or "effect_mad_shell_rifle" or "effect_mad_shell_shotgun"
SWEP.ShellDelay			= 0

SWEP.Pistol				= true
SWEP.Rifle				= false
SWEP.Shotgun			= false
SWEP.Sniper				= false

SWEP.RunArmOffset 		= Vector (-0.5928, 0, 6.3399)
SWEP.RunArmAngle 			= Vector (-19.4462, -2.5193, 0)

/*---------------------------------------------------------
   Name: SWEP:Precache()
   Desc: Use this function to precache stuff.
---------------------------------------------------------*/
function SWEP:Precache()

	util.PrecacheSound("weapons/c4/c4_disarm.wav")
	util.PrecacheSound("weapons/c4/c4_explode1.wav")
	util.PrecacheSound("weapons/c4/c4_click.wav")
	util.PrecacheSound("weapons/c4/c4_plant.wav")
	util.PrecacheSound("weapons/c4/c4_beep1.wav")
end

/*---------------------------------------------------------
   Name: SWEP:PrimaryAttack()
   Desc: +attack1 has been pressed.
---------------------------------------------------------*/
function SWEP:PrimaryAttack()

	// Holst/Deploy your fucking weapon
	if (not self.Owner:IsNPC() and self.Owner:KeyDown(IN_USE)) then
		bHolsted = !self.Weapon:GetDTBool(0)
		self:SetHolsted(bHolsted)

		self.Weapon:SetNextPrimaryFire(CurTime() + 0.3)
		self.Weapon:SetNextSecondaryFire(CurTime() + 0.3)

		self:SetIronsights(false)

		return
	end

/*
	if self.Weapon:GetNWBool("Planted") then
		self.Weapon:SendWeaponAnim(ACT_SLAM_DETONATOR_DETONATE)

		self.Weapon:EmitSound("Streetwar.d3_c17_10b_mine_mode")

		for k, ent in pairs(ents.GetAll()) do  
			if ent:GetClass() == "ent_mad_charge" and ent.Owner == self.Owner then
				timer.Simple(1, function() ent:Explosion() ent:Remove() end)
				self.Weapon:SendWeaponAnim(ACT_SLAM_DETONATOR_DETONATE)
			end
		end

		self.Weapon:SetNextPrimaryFire(CurTime() + 2)
		self.Weapon:SetNextSecondaryFire(CurTime() + 2)

		self.Weapon:SetNWBool("Planted", false)

		timer.Simple(0.5, function()
			self.Weapon:SendWeaponAnim(ACT_SLAM_DETONATOR_HOLSTER)
		end)

		timer.Simple(1, function()
			if self.Owner:GetAmmoCount(self.Primary.Ammo) > 0 then
				self:Deploy()
			else
				self.Weapon:Remove()
				self.Owner:ConCommand("lastinv")
			end
		end)

		return
	end
*/

	if (not self:CanPrimaryAttack()) then return end

	local tr = {}
	tr.start = self.Owner:GetShootPos()
	tr.endpos = self.Owner:GetShootPos() + 100 * self.Owner:GetAimVector()
	tr.filter = {self.Owner}
	local trace = util.TraceLine(tr)

	self.Weapon:SetNextPrimaryFire(CurTime() + 0.5)
	self.Weapon:SetNextSecondaryFire(CurTime() + 0.5)

	if not trace.Hit or trace.Entity:GetClass() ~= "prop_door_rotating" or trace.HitWorld then
		if (SERVER) then
			self.Owner:PrintMessage(HUD_PRINTTALK, "Explosive charge can only be installed on doors!")
		end 

		return 
	end

	self.Weapon:SetNextPrimaryFire(CurTime() + self.Primary.Delay)
	self.Weapon:SetNextSecondaryFire(CurTime() + self.Primary.Delay)

	self.Weapon:SendWeaponAnim(ACT_SLAM_TRIPMINE_ATTACH)

	timer.Simple(0.5, function()
		if (not self.Owner:Alive() or self.Weapon:GetOwner():GetActiveWeapon():GetClass() ~= "weapon_mad_charge" or not IsFirstTimePredicted()) then return end

		self.Weapon:SendWeaponAnim(ACT_SLAM_TRIPMINE_ATTACH2)

		local tr = {}
		tr.start = self.Owner:GetShootPos()
		tr.endpos = self.Owner:GetShootPos() + 100 * self.Owner:GetAimVector()
		tr.filter = {self.Owner}
		local trace = util.TraceLine(tr)

		if not trace.Hit or trace.Entity:GetClass() ~= "prop_door_rotating" or trace.HitWorld then
			timer.Simple(0.6, function()
				if self.Owner:GetAmmoCount(self.Primary.Ammo) > 0 then
					self:Deploy()
				else
					self.Weapon:Remove()
					self.Owner:ConCommand("lastinv")
				end
			end)

			return 
		end

		self.Owner:SetAnimation(PLAYER_ATTACK1)
		self:TakePrimaryAmmo(1)

		if (CLIENT) then return end
	
		Charge = ents.Create("ent_mad_charge")
		Charge:SetPos(trace.HitPos + trace.HitNormal)

		trace.HitNormal.z = -trace.HitNormal.z

		Charge:SetAngles(trace.HitNormal:Angle() - Angle(270, 180, 180))

		Charge.Owner = self.Owner
		Charge:Spawn()

		if trace.Entity and trace.Entity:IsValid() and trace.Entity:GetClass() == "prop_door_rotating" then
			if not trace.Entity:IsNPC() and not trace.Entity:IsPlayer() and trace.Entity:GetPhysicsObject():IsValid() then
				constraint.Weld(Charge, trace.Entity)
			end
		else
			Charge:SetMoveType(MOVETYPE_NONE)
		end

		timer.Simple(0.6, function()
			if (not self.Owner:Alive() or self.Weapon:GetOwner():GetActiveWeapon():GetClass() ~= "weapon_mad_charge") or not IsFirstTimePredicted() then return end
//			self.Weapon:SetNWBool("Planted", true)
			self:Deploy()
		end)
	end)
end
/*---------------------------------------------------------
   Name: SWEP:SecondaryAttack()
   Desc: +attack2 has been pressed.
---------------------------------------------------------*/
function SWEP:SecondaryAttack()
end

/*---------------------------------------------------------
   Name: SWEP:CanPrimaryAttack()
   Desc: Helper function for checking for no ammo.
---------------------------------------------------------*/
function SWEP:CanPrimaryAttack()

	if (self.Owner:GetAmmoCount(self.Primary.Ammo) <= 0) or (self.Owner:WaterLevel() > 2) then
		self.Weapon:SetNextPrimaryFire(CurTime() + 0.5)
		return false
	end

	if (not self.Owner:IsNPC()) and (self.Owner:KeyDown(IN_SPEED)) then
		self.Weapon:SetNextPrimaryFire(CurTime() + 0.5)
		return false
	end

	return true
end

/*---------------------------------------------------------
   Name: SWEP:Deploy()
   Desc: Whip it out.
---------------------------------------------------------*/
function SWEP:Deploy()

//	if self.Weapon:GetNWBool("Planted") then
//		self.Weapon:SendWeaponAnim(ACT_SLAM_DETONATOR_DRAW)
//	else
		self.Weapon:SendWeaponAnim(ACT_SLAM_TRIPMINE_DRAW)
//	end

	self.Weapon:SetNextPrimaryFire(CurTime() + self.DeployDelay)
	self.Weapon:SetNextSecondaryFire(CurTime() + self.DeployDelay)
	self.ActionDelay = (CurTime() + self.DeployDelay)

	return true
end

/*---------------------------------------------------------
   Name: SWEP:Holster()
---------------------------------------------------------*/
function SWEP:Holster()

	if (CLIENT) and self.Ghost:IsValid() then
		self.Ghost:SetColor(255, 255, 255, 0)
	end

	return true
end

/*---------------------------------------------------------
   Name: SWEP:OnRemove()
   Desc: Called just before entity is deleted.
---------------------------------------------------------*/
function SWEP:OnRemove()

	if (CLIENT) and self.Ghost:IsValid() then
		self.Ghost:SetColor(255, 255, 255, 0)
	end

	return true
end


cl_init.lua



include('shared.lua')

SWEP.PrintName			= "EXPLOSIVE CHARGE"				// 'Nice' Weapon name (Shown on HUD)	
SWEP.Slot				= 4							// Slot in the weapon selection menu
SWEP.SlotPos			= 1							// Position in the slot

SWEP.Ghost 				= NULL

// Override this in your SWEP to set the icon in the weapon selection
if (file.Exists("materials/weapons/weapon_mad_charge.vmt","GAME")) then
	SWEP.WepSelectIcon	= surface.GetTextureID("weapons/weapon_mad_charge")
end

/*---------------------------------------------------------
   Name: SWEP:Think()
   Desc: Called every frame.
---------------------------------------------------------*/
function SWEP:Think()

	if self.Owner ~= LocalPlayer() then return end
	if SERVER then
	if not self.Ghost:IsValid() then
		//self.Ghost = ents.Create("prop_physics")
	//	self.Ghost:SetModel("models/weapons/w_slam.mdl")
		//self.Ghost:SetOwner(self.Owner)
	end
	end
	
	if not self.Ghost:IsValid() then return end
	
	local tr ord operator">= {}
	tr.start = self.Owner:GetShootPos()
	tr.endpos ord operator">= self.Owner:GetShootPos() + 100 * self.Owner:GetAimVector()
	tr.filter = {self.Ghost, self.Owner}
	local trace = util.TraceLine(tr)	
	
	if trace.Hit and trace.Entity:GetClass() == "prop_door_rotating" and not self.Weapon:GetNWBool("Planted") then
		self.Ghost:SetPos(trace.HitPos + trace.HitNormal)
		trace.HitNormal.z = -trace.HitNormal.z
		self.Ghost:SetAngles(trace.HitNormal:Angle() - Angle(270, 180, 180))

		self.Ghost:SetColor(255, 255, 255, 100)
	else
		self.Ghost:SetColor(255, 255, 255, 0)
	end
end


init.lua



AddCSLuaFile("cl_init.lua")
AddCSLuaFile("shared.lua")

include("shared.lua")


An error would be helpful.

Also, try added MsgN(“Message Here”) to it in key places and see what is being run and what isn’t.

No error…
The doors dont respawn.

When I was working on adding the door blasting back into my Mad Cow derived SWeps it would give an error when the door respawn timer went off.

As I said, try putting print statements into it at various places and it will tell you what is being run and what isn’t. If none of them are being called, the function is not being called at all in the first place.

This is the picture without any lua error…
http://img585.imageshack.us/img585/218/tg89.png

You’re missing what I’ve told you twice now. Put print statements into your code and see what is being run.

i allready fixed the charge and everything c:

(the charge alone)
the error is actually in the ent_mad_Charge