I made my own money printers recently and they work great, Except for one major issue that i need help solving and im certain its most likely just a few lines of code to fix. You can spawn in the cap of my printers but when you destroy them it still says you have too many to buy more and i need to fix this seeming as my server is going dedicated soon. Any help would be great- Binary
Heres the code for one of my printers
[SUB][/SUB]
-- RRPX Money Printer reworked for DarkRP by philxyz
AddCSLuaFile("cl_init.lua")
AddCSLuaFile("shared.lua")
include("shared.lua")
ENT.SeizeReward = 1250
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(Color(0,255,237,255))
local phys = self:GetPhysicsObject()
phys:Wake()
self.sparking = false
self.damage = 250
self.IsMoneyPrinter = true
timer.Simple(1, function() PrintMore(self) end)
self:SetNWInt("MoneyInP",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 < 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)
end
function ENT:BurstIntoFlames()
self.burningup = true
local burntime = math.random(8, 18)
self:Ignite(burntime, 0)
timer.Simple(burntime, function() self:Fireball() end)
end
function ENT:Fireball()
if not self:IsOnFire() then self.burningup = false 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:IsWeapon() and v:GetClass() ~= "predicted_viewmodel" and not v.IsMoneyPrinter then
v:Ignite(math.random(5, 22), 0)
elseif v:IsPlayer() then
local distance = v:GetPos():Distance(self:GetPos())
v:TakeDamage(distance / dist * 100, self, self)
end
end
self:Remove()
end
PrintMore = function(ent)
if not IsValid(ent) then return end
ent.sparking = true
timer.Simple(3, function()
if not IsValid(ent) then return end
ent:CreateMoneybag()
end)
end
function ENT:Use(activator)
if(activator:IsPlayer()) and self:GetNWInt("MoneyInP") >= 1 then
activator:AddMoney(self:GetNWInt("MoneyInP"));
GAMEMODE:Notify(activator, 1, 4, "You have collected $"..self:GetNWInt("MoneyInP").." From an Isotope Printer.")
self:SetNWInt("MoneyInP",0)
end
end
function ENT:CreateMoneybag()
if not IsValid(self) or self:IsOnFire() then return end
local MoneyPos = self:GetPos()
if math.random(1000, 6000) == 3 then self:BurstIntoFlames() end
local PrintMoney = 7
local amount = self:GetNWInt("MoneyInP") + PrintMoney
self:SetNWInt("MoneyInP",amount)
--DarkRPCreateMoneyBag(Vector(MoneyPos.x + 15, MoneyPos.y, MoneyPos.z + 15), PrintMoney)
self.sparking = false
timer.Simple(1, function() PrintMore(self) end)
end
function ENT:Think()
if self:WaterLevel() > 0 then
self:Destruct()
self:Remove()
return
end
if not self.sparking then return end
local effectdata = EffectData()
effectdata:SetOrigin(self:GetPos())
effectdata:SetMagnitude(1)
effectdata:SetScale(1)
effectdata:SetRadius(2)
end
Michael Melchiondo
Sorry, you need to Log In to post a reply to this thread.