Денежный принтер для игры Garry's mod не останавливает/возобновляет печать

Сервер:

AddCSLuaFile("cl_init.lua")
AddCSLuaFile("shared.lua")

include('shared.lua')

local timerInter = 120

function ENT:Initialize()

   self:SetModel("models/props_c17/consolebox03a.mdl")

   self:PhysicsInit(SOLID_VPHYSICS)

   self:SetMoveType(MOVETYPE_VPHYSICS)

   self:SetSolid(SOLID_VPHYSICS)

   self:SetColor(0, 0, 0 ,255)
   
   self:SetUseType(SIMPLE_USE)

   self.timer = CurTime()

   local phys = self:GetPhysicsObject()

    if (phys:IsValid()) then
       
      phys:Wake()

    end
  

  self:SetPrintEnabled(true) --Принтер ставится во включённое состояние при инициализации

end

function ENT:Use(ply)

  util.AddNetworkString("Used")
  net.Start("Used")
  net.Send(ply)

  net.Receive("Used", function(len, ply)

  local Money = self:GetMoneyAmount()

  self:SetMoneyAmount(0)

  ply:addMoney(Money)
end)
end





function ENT:Think()

  (self:GetPrintEnabled() == false) then --Проходит проверка на состояние принтера, но по итогу он не перестаёт/начинает печать


    if (CurTime() > self.timer + timerInter) then

     self.timer = CurTime()
    
     self:SetMoneyAmount(self:GetMoneyAmount() + 1000)
   
    end

    self:SetProgress(CurTime() - self.timer)
    
  end

end

Клиент:

include('shared.lua')

surface.CreateFont( "MoneyFont", {
    font = "Arial",
    extended = false,
    size = 50,
    weight = 800,
    blursize = 0,
    scanlines = 0,
    antialias = true,
    underline = false,
    italic = false,
    strikeout = false,
    symbol = false,
    rotary = false,
    shadow = false,
    additive = false,
    outline = false,
})

function ENT:Draw()

   self:DrawModel()
   
   local angM = self:GetAngles() 
   local posM = self:GetPos() + (self:GetAngles():Forward() * 10.5) + (self:GetAngles():Right() * 10.6) + (self:GetAngles():Up() * 7.34)

   angM:RotateAroundAxis(self:GetAngles():Forward(), 90)
   angM:RotateAroundAxis(self:GetAngles():Up(), 90)
   
     cam.Start3D2D(posM, angM, 0.1)

      draw.RoundedBox(0, 0, 0, 212, 55, Color(0,0,0,255))

      draw.RoundedBox(0, 1, 1, 210, 53, Color(50,50,50,255))
     
      draw.SimpleText(self:GetMoneyAmount().." $","MoneyFont", 104.5, 28, Color( 100, 255, 100, 255 ), 1, 1)

     cam.End3D2D()

     local angP = self:GetAngles()
     local posP = self:GetPos() + (self:GetAngles():Forward() * 10.8) + (self:GetAngles():Right() * 10.6) + (self:GetAngles():Up() * 1.8)
     
     angP:RotateAroundAxis(self:GetAngles():Forward(), 90)
     angP:RotateAroundAxis(self:GetAngles():Up(), 90)

     cam.Start3D2D(posP, angP, 0.1)

     draw.RoundedBox(2, 0, 0, 212, 15, Color(0,0,0,255))

     draw.RoundedBox(2, 1, 1, 2.1 * (self:GetProgress() / 120 * 100) , 13, Color(0,255,0,255))
         
     cam.End3D2D()


Enty = self

  

end



net.Receive("Used", function(len, ply)   


      local moneyFrame = vgui.Create("DFrame")
      moneyFrame:SetSize(360,200)
      moneyFrame:SetVisible(true)
      moneyFrame:Center()   
      moneyFrame:MakePopup()

      local Label = vgui.Create("DLabel", moneyFrame)
      Label:SetPos(100, 35)
      Label:SetText(" ")
      Label:SetTextColor( Color(255, 232, 0 ))

      local GetMon = vgui.Create("DButton", moneyFrame)
      GetMon:SetPos(130,100)
      GetMon:SetSize(100,35)
      GetMon:SetText("Снять деньги")

    function GetMon:DoClick() -- При нажатии на кнопку "Снять деньги" отправляется сообщение серверу о начислении денег игроку и снятии их со счёта принтера
   
      net.Start("Used")
      net.SendToServer()

    end

    if (Enty:GetPrintEnabled() == true) then -- Идёт проверка включен принтер или нет, если он включен, то будет отображаться кнопка выключения

      local Off = vgui.Create("DButton", moneyFrame)
      Off:SetPos(160,150)
      Off:SetSize(100,35)
      Off:SetText("Отключить принтер") 

      function Off:DoClick() -- При нажатии на эту кнопку принтер должен выключаться

       Enty:SetPrintEnabled(false)

      end

    end

    if (Enty:GetPrintEnabled() == false) then - Идёт проверка выключен принтер или нет, если он выключен, то будет отображаться кнопка включения

     local On = vgui.Create("DButton", moneyFrame)
     On:SetPos(160,150)
     On:SetSize(100,35)
     On:SetText("Включить принтер") -- При нажатии на эту кнопку принтер должен вкоючатся

      function On:DoClick()

      Enty:SetPrintEnabled(true)

      end

    end

  end)

Shared:

ENT.Type = "anim"
ENT.Base = "base_gmodentity"

ENT.PrintName = "Shit Printer"

ENT.Spawnable = true

function ENT:SetupDataTables()

   self:NetworkVar("Int", 0 , "CumAmount")

   self:NetworkVar("Int", 1 , "Progress" )

   self:NetworkVar("Bool", 0 , "PrintEnabled")

   

end


Ответы (0 шт):