View difference between Paste ID: dYHcAh3z and
SHOW:
|
|
- or go back to the newest paste.
1 | - | |
1 | + | -- RRPX Money Printer by philxyz edited by Ninjarudo |
2 | AddCSLuaFile("cl_init.lua") | |
3 | AddCSLuaFile("shared.lua") | |
4 | include("shared.lua") | |
5 | ||
6 | local printAmount = CreateConVar( "DARKRP_GOLDEN_PRINTER_AMOUNT", 1000, FCVAR_NOTIFY ) | |
7 | local printAmount = CreateConVar( "DARKRP_GOLDEN_PRINTER_AMOUNT", 1000, FCVAR_NOTIFY ) | |
8 | ||
9 | function ENT:Initialize() | |
10 | self:SetModel("models/props_lab/reciever01a.mdl") | |
11 | self:SetColor(100,100,0, 255) | |
12 | self:SetNWInt("Vaulted", 0 ) | |
13 | self:PhysicsInit(SOLID_VPHYSICS) | |
14 | self:SetMoveType(MOVETYPE_VPHYSICS) | |
15 | self:SetSolid(SOLID_VPHYSICS) | |
16 | local phys = self:GetPhysicsObject() | |
17 | if phys:IsValid() then phys:Wake() end | |
18 | self.sparking = false | |
19 | self.damage = 200 | |
20 | self.IsMoneyPrinter = true | |
21 | timer.Simple(5, self.CreateMoneybag, self) | |
22 | end | |
23 | ||
24 | function ENT:Use(activator,caller) | |
25 | local amount = self:GetNWInt("Vaulted") or 0 | |
26 | if amount > 0 then | |
27 | Notify(activator, 0, 4, "You have recieved " .. CUR ..( amount or 0 ) .. "!") | |
28 | if activator != self.dt.owning_ent then | |
29 | Notify(self.dt.owning_ent, 1, 4, "Your Golden Money Printer has been cleaned out!") | |
30 | end | |
31 | activator:AddMoney(amount or 0) | |
32 | self:SetNWInt("Vaulted", 0) | |
33 | end | |
34 | end | |
35 | ||
36 | function ENT:OnTakeDamage(dmg) | |
37 | if self.burningup then return end | |
38 | ||
39 | self.damage = self.damage - dmg:GetDamage() | |
40 | if self.damage <= 0 then | |
41 | local rnd = math.random(1, 10) | |
42 | if rnd < 3 then | |
43 | self:BurstIntoFlames() | |
44 | else | |
45 | self:Destruct() | |
46 | self:Remove() | |
47 | end | |
48 | end | |
49 | end | |
50 | ||
51 | function ENT:Destruct() | |
52 | local vPoint = self:GetPos() | |
53 | local effectdata = EffectData() | |
54 | effectdata:SetStart(vPoint) | |
55 | effectdata:SetOrigin(vPoint) | |
56 | effectdata:SetScale(1) | |
57 | util.Effect("Explosion", effectdata) | |
58 | Notify(self.dt.owning_ent, 1, 4, "Your Golden Money Printer has exploded!") | |
59 | end | |
60 | ||
61 | function ENT:Fireball() | |
62 | if not self:IsOnFire() then return end | |
63 | local dist = math.random(30, 300) -- Explosion radius | |
64 | self:Destruct() | |
65 | for k, v in pairs(ents.FindInSphere(self:GetPos(), dist)) do | |
66 | if not v:IsPlayer() and not v.IsMoneyPrinter then v:Ignite(math.random(5, 22), 0) end | |
67 | end | |
68 | self:Remove() | |
69 | end | |
70 | ||
71 | local function PrintMore(ent) | |
72 | if ValidEntity(ent) then | |
73 | ent.sparking = true | |
74 | timer.Simple(1, ent.CreateMoneybag, ent) | |
75 | end | |
76 | end | |
77 | ||
78 | function ENT:CreateMoneybag() | |
79 | if not ValidEntity(self) then return end | |
80 | if self:IsOnFire() then return end | |
81 | ||
82 | -- if math.random(1, 22) == 3 then self:BurstIntoFlames() end | |
83 | ||
84 | if printAmount == 0 then | |
85 | printAmount = 1000 | |
86 | end | |
87 | ||
88 | -- self.dt.amount = self.dt.amount + amount | |
89 | self:SetNWInt("Vaulted", self:GetNWInt("Vaulted") + printAmount) | |
90 | ||
91 | self.sparking = false | |
92 | -- timer.Simple(math.random(100, 150), PrintMore, self) | |
93 | timer.Simple( 10, PrintMore, self) | |
94 | end | |
95 | ||
96 | function ENT:Think() | |
97 | if not self.sparking then return end | |
98 | ||
99 | local effectdata = EffectData() | |
100 | effectdata:SetOrigin(self:GetPos()) | |
101 | effectdata:SetMagnitude(1) | |
102 | effectdata:SetScale(1) | |
103 | effectdata:SetRadius(2) | |
104 | util.Effect("Sparks", effectdata) | |
105 | end |