LUA:Custom Money Printer
From GMod Wiki
Contents |
OK. Here i will show you how to create a new money printer, but only by copying and pasting to make it easy for you.
A program that would be useful to you is notepad++ you Can Download it Here.
Starting Off
In DarkRP/Gamemodes/Entities/Entities create a folder called something_moneyprinter (you may rename it to whatever you want it to be).
Create 3 lua files: cl_init.lua init.lua shared.lua
init.lua
In init copy and paste this code into it:
-- RRPX Money Printer by philxyz edited by Ninjarudo 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 = 200 self.IsMoneyPrinter = true timer.Simple(5, 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.dt.owning_ent, 1, 4, "Your Golden Money Printer has exploded!") end function ENT:Fireball() if not self:IsOnFire() then return end local dist = math.random(30, 300) -- 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(1, 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() local amount = 1000 if amount == 0 then amount = 1000 end DarkRPCreateMoneyBag(Vector(MoneyPos.x + 15, MoneyPos.y, MoneyPos.z + 15), amount) self.sparking = false timer.Simple(math.random(100, 150), 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
cl_init.lua
In cl_init copy and paste this code into it:
include("shared.lua") function ENT:Draw() self:DrawModel() local Pos = self:GetPos() local Ang = self:GetAngles() local owner = self.dt.owning_ent owner = (ValidEntity(owner) and owner:Nick()) or "unknown" surface.SetFont("HUDNumber6") local TextWidth = surface.GetTextSize("Golden Money printer") local TextWidth2 = surface.GetTextSize(owner) Ang:RotateAroundAxis(Ang:Up(), 90) cam.Start3D2D(Pos + Ang:Up() * 11.5, Ang, 0.11) draw.WordBox(2, -TextWidth*0.5, -30, "Golden Money printer", "HUDNumber6", Color(140, 0, 0, 100), Color(255,255,255,255)) draw.WordBox(2, -TextWidth2*0.5, 18, owner, "HUDNumber6", Color(140, 0, 0, 100), Color(255,255,255,255)) cam.End3D2D() end
In shared copy and paste this code into it:
ENT.Type = "anim" ENT.Base = "base_gmodentity" ENT.PrintName = "InsertNameHere" ENT.Author = "" ENT.Spawnable = false ENT.AdminSpawnable = false function ENT:SetupDataTables() self:DTVar("Int",0,"price") self:DTVar("Entity",1,"owning_ent") end