Advertisement
sethxi

derp?

Mar 29th, 2013
111
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Lua 2.95 KB | None | 0 0
  1. -- RRPX Money Printer reworked for DarkRP by philxyz
  2. AddCSLuaFile("cl_init.lua")
  3. AddCSLuaFile("shared.lua")
  4. include("shared.lua")
  5.  
  6. ENT.SeizeReward = 950
  7.  
  8. local PrintMore
  9. function ENT:Initialize()
  10.     self:SetModel("models/nater/weedplant_pot_growing7.mdl")
  11.     self:PhysicsInit(SOLID_VPHYSICS)
  12.     self:SetMoveType(MOVETYPE_VPHYSICS)
  13.     self:SetSolid(SOLID_VPHYSICS)
  14.     local phys = self:GetPhysicsObject()
  15.     phys:Wake()
  16.  
  17.     self.sparking = false
  18.     self.damage = 100
  19.     self.IsMoneyPrinter = true
  20.     timer.Simple(math.random(100, 350), function() PrintMore(self) end)
  21. end
  22.  
  23. function ENT:OnTakeDamage(dmg)
  24.     if self.burningup then return end
  25.  
  26.     self.damage = (self.damage or 100) - dmg:GetDamage()
  27.     if self.damage <= 0 then
  28.         local rnd = math.random(1, 10)
  29.         if rnd < 3 then
  30.             self:BurstIntoFlames()
  31.         else
  32.             self:Destruct()
  33.             self:Remove()
  34.         end
  35.     end
  36. end
  37.  
  38. function ENT:Destruct()
  39.     local vPoint = self:GetPos()
  40.     local effectdata = EffectData()
  41.     effectdata:SetStart(vPoint)
  42.     effectdata:SetOrigin(vPoint)
  43.     effectdata:SetScale(1)
  44.     util.Effect("Explosion", effectdata)
  45.     GAMEMODE:Notify(self:Getowning_ent(), 1, 4, "Your weed plant has died!")
  46. end
  47.  
  48. function ENT:BurstIntoFlames()
  49.     GAMEMODE:Notify(self:Getowning_ent(), 0, 4, "Your weed plant is dying!")
  50.     self.burningup = true
  51.     local burntime = math.random(8, 18)
  52.     self:Ignite(burntime, 0)
  53.     timer.Simple(burntime, function() self:Fireball() end)
  54. end
  55.  
  56. function ENT:Fireball()
  57.     if not self:IsOnFire() then self.burningup = false return end
  58.     local dist = math.random(20, 280) -- Explosion radius
  59.     self:Destruct()
  60.     for k, v in pairs(ents.FindInSphere(self:GetPos(), dist)) do
  61.         if not v:IsPlayer() and not v:IsWeapon() and v:GetClass() ~= "predicted_viewmodel" and not v.IsMoneyPrinter then
  62.             v:Ignite(math.random(5, 22), 0)
  63.         elseif v:IsPlayer() then
  64.             local distance = v:GetPos():Distance(self:GetPos())
  65.             v:TakeDamage(distance / dist * 100, self, self)
  66.         end
  67.     end
  68.     self:Remove()
  69. end
  70.  
  71. PrintMore = function(ent)
  72.     if not IsValid(ent) then return end
  73.  
  74.     ent.sparking = true
  75.     timer.Simple(3, function()
  76.         if not IsValid(ent) then return end
  77.         ent:CreateMoneybag()
  78.     end)
  79. end
  80.  
  81. function ENT:CreateMoneybag()
  82.     if not IsValid(self) or self:IsOnFire() then return end
  83.  
  84.     local MoneyPos = self:GetPos()
  85.  
  86.     if math.random(1, 22) == 3 then self:BurstIntoFlames() end
  87.  
  88.     local weed=ents.Create("durgz_weed")
  89.     weed:SetPos(Vector(MoneyPos.x + 15, MoneyPos.y, MoneyPos.z + 15))
  90.     weed:Spawn()
  91.     --DarkRPCreateMoneyBag(Vector(MoneyPos.x + 15, MoneyPos.y, MoneyPos.z + 15), amount)
  92.     self.sparking = false
  93.     --timer.Simple(math.random(100, 350), function() PrintMore(self) end)
  94. end
  95.  
  96. function ENT:Think()
  97.  
  98.     if self:WaterLevel() > 0 then
  99.         self:Destruct()
  100.         self:Remove()
  101.         return
  102.     end
  103.  
  104.     if not self.sparking then return end
  105.  
  106.     local effectdata = EffectData()
  107.     effectdata:SetOrigin(self:GetPos())
  108.     effectdata:SetMagnitude(1)
  109.     effectdata:SetScale(1)
  110.     effectdata:SetRadius(2)
  111.     util.Effect("Sparks", effectdata)
  112. end
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement