• Custom Money Printer Problem
    5 replies, posted
Hi, recently I have gotten into basic LUA scripting and started editing a nice Money printer on garrysmod.org but the problem is they explode way too soon how would I go about fixing this issue here is the LUA script in the init.lua file all help is appreciated thanks! AddCSLuaFile("cl_init.lua") AddCSLuaFile("shared.lua") include("shared.lua") local PrintMore function ENT:Initialize() self:SetModel("models/props_c17/consolebox01a.mdl") self:PhysicsInit(SOLID_VPHYSICS) self:SetMoveType(MOVETYPE_VPHYSICS) self:SetSolid(SOLID_VPHYSICS) self:SetColor(218,165,32,255) local phys = self:GetPhysicsObject() if phys:IsValid() then phys:Wake() end self.sparking = false self.damage = 100 self.IsMoneyPrinter = true timer.Simple(2, PrintMore, self) self:SetNWInt("PrintA",0) end function ENT:OnTakeDamage(dmg) if self.burningup then return end self.damage = (self.damage or 100) - dmg:GetDamage() if self.damage <= 0 then local rnd = math.random(1, 10) if rnd < 6 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.dt.owning_ent, 1, 4, "Your money printer has exploded!") end function ENT:BurstIntoFlames() Notify(self.dt.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() if not self:IsOnFire() then return end 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 PrintMore = function(ent) if ValidEntity(ent) then ent.sparking = true timer.Simple(3, ent.CreateMoneybag, ent) end end function ENT:Use(activator) if(activator:IsPlayer()) then activator:AddMoney(self:GetNWInt("PrintA")); self:SetNWInt("PrintA",0) end end function ENT:CreateMoneybag() if not ValidEntity(self) then return end if self:IsOnFire() then return end local MoneyPos = self:GetPos() local X = 22 local Y = 400 if math.random(1, X) == 3 then self:BurstIntoFlames() end local amount = self:GetNWInt("PrintA") + Y self:SetNWInt("PrintA",amount) self.sparking = false timer.Simple(130, 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
Use lua tags please.
[lua]AddCSLuaFile("cl_init.lua") AddCSLuaFile("shared.lua") include("shared.lua") local PrintMore function ENT:Initialize() self:SetModel("models/props_c17/consolebox01a.mdl") self:PhysicsInit(SOLID_VPHYSICS) self:SetMoveType(MOVETYPE_VPHYSICS) self:SetSolid(SOLID_VPHYSICS) self:SetColor(218,165,32,255) local phys = self:GetPhysicsObject() if phys:IsValid() then phys:Wake() end self.sparking = false self.damage = 100 self.IsMoneyPrinter = true timer.Simple(2, PrintMore, self) self:SetNWInt("PrintA",0) 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.dt.owning_ent, 1, 4, "Your money printer has exploded!") end function ENT:BurstIntoFlames() Notify(self.dt.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() if not self:IsOnFire() then return end 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 PrintMore = function(ent) if ValidEntity(ent) then ent.sparking = true timer.Simple(3, ent.CreateMoneybag, ent) end end function ENT:Use(activator) if(activator:IsPlayer()) then activator:AddMoney(self:GetNWInt("PrintA")); self:SetNWInt("PrintA",0) end end function ENT:CreateMoneybag() if not ValidEntity(self) then return end if self:IsOnFire() then return end local MoneyPos = self:GetPos() local X = 22 local Y = 400 if math.random(1, X) == 3 then self:BurstIntoFlames() end local amount = self:GetNWInt("PrintA") + Y self:SetNWInt("PrintA",amount) self.sparking = false timer.Simple(130, 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] Fix'd. :v:
Read through this function [lua]function ENT:CreateMoneybag()[/lua] This has your answer in it.
[QUOTE=All0utWar;34453535][lua]im not an ass so im going to remove the code for the quote[/lua] Fix'd. :v:[/QUOTE] Yea, I wanted him to do it though so the tabbing wasn't all fucked up, but thanks anyways :V
Alright, I fixed it thanks everyone who wasn't being an ass btw I'm new to the forms.
Sorry, you need to Log In to post a reply to this thread.