• Moneyprinters disable overheating/exploding
    2 replies, posted
Hello, Can someone help me with editing this script so moneyprinters don't overheat and explode randomly, they only have to explode when someone shooting on it. This is now the code: [lua]-- RRPX Money Printer reworked for DarkRP by philxyz AddCSLuaFile("cl_init.lua") AddCSLuaFile("shared.lua") include("shared.lua") function ENT:Initialize() self:SetModel("models/props_c17/consolebox01a.mdl") self:PhysicsInit(SOLID_VPHYSICS) self:SetMoveType(MOVETYPE_VPHYSICS) self:SetSolid(SOLID_VPHYSICS) local phys = self:GetPhysicsObject() if phys:IsValid() then phys:Wake() end self.sparking = false self.damage = 100 self.IsMoneyPrinter = true timer.Simple(30, self.CreateMoneybag, self) end function ENT:OnTakeDamage(dmg) if self.burningup then return end self.damage = self.damage - dmg:GetDamage() if self.damage <= 0 then local rnd = math.random(1, 10) if rnd < 3 then self:BurstIntoFlames() else self:Destruct() self:Remove() end end end function ENT:Destruct() local vPoint = self:GetPos() local effectdata = EffectData() effectdata:SetStart(vPoint) effectdata:SetOrigin(vPoint) effectdata:SetScale(1) util.Effect("Explosion", effectdata) Notify(self:GetNWEntity("owning_ent"), 1, 4, "Your money printer has exploded!") end function ENT:BurstIntoFlames() Notify(self:GetNWEntity("owning_ent"), 1, 4, "Your money printer is overheating!") self.burningup = true local burntime = math.random(8, 18) self:Ignite(burntime, 0) timer.Simple(burntime, self.Fireball, self) end function ENT:Fireball() local dist = math.random(20, 280) -- Explosion radius self:Destruct() for k, v in pairs(ents.FindInSphere(self:GetPos(), dist)) do if not v:IsPlayer() and not v.IsMoneyPrinter then v:Ignite(math.random(5, 22), 0) end end self:Remove() end local function PrintMore(ent) if ValidEntity(ent) then ent.sparking = true timer.Simple(3, ent.CreateMoneybag, ent) end end function ENT:CreateMoneybag() if not ValidEntity(self) then return end if self:IsOnFire() then return end local MoneyPos = self:GetPos() if math.random(1, 22) == 3 then self:BurstIntoFlames() end local moneybag = ents.Create("prop_physics") moneybag:SetModel("models/props/cs_assault/money.mdl") moneybag.ShareGravgun = true moneybag:SetPos(Vector(MoneyPos.x + 15, MoneyPos.y, MoneyPos.z + 15)) moneybag.nodupe = true moneybag:Spawn() moneybag:GetTable().MoneyBag = true local amount = GetGlobalInt("mprintamount") if amount == 0 then amount = 150 end moneybag:GetTable().Amount = amount self.sparking = false timer.Simple(math.random(100, 350), PrintMore, self) end function ENT:Think() if not self.sparking then return end local effectdata = EffectData() effectdata:SetOrigin(self:GetPos()) effectdata:SetMagnitude(1) effectdata:SetScale(1) effectdata:SetRadius(2) util.Effect("Sparks", effectdata) end[/lua]
put your code in [lua] tags and delete the whole [code]function ENT:BurstIntoFlames()[/code]
[QUOTE=mcd1992;16536481]put your code in [lua] tags and delete the whole [code]function ENT:BurstIntoFlames()[/code][/QUOTE] Do that but don't forget to remove references to it, for instance line 73.
Sorry, you need to Log In to post a reply to this thread.