Ulysses

General => Developers Corner => Topic started by: Lalala on January 04, 2013, 08:22:58 PM

Title: How to make motd stay up for certain times??
Post by: Lalala on January 04, 2013, 08:22:58 PM
I know how to create accept and decline buttons
I can't figure this out would love for someone to post the code I would need soon.
Thanks
Title: Re: How to make motd stay up for certain times??
Post by: krooks on January 04, 2013, 09:35:14 PM
I'm not a lua coder by any means, but I ran across this bit of code in the sui scoreboard:

Code: [Select]
timer.Simple( 1.5, function()
--your code
)

Maybe it can help?
Title: Re: How to make motd stay up for certain times??
Post by: nathan736 on January 07, 2013, 09:26:00 AM
to do this you would need to create  a timer based accept button  that gets disabled when crated and starts a timer that reinables it but make sure any code that needs what is ran in the timer to be done first is in the function of the timer as well or it won't work
ps: i don't know gui lua code so take this with a  bag of salt
Title: Re: How to make motd stay up for certain times??
Post by: MrPresident on January 07, 2013, 03:03:29 PM
Here's how I do it. I don't use the built in ULX MOTD though. This would take some modification to the base ULX code to make this work with their MOTD.

Code: [Select]
/*--------------------------------
---------------TOS----------------
--------------------------------*/
local PANEL = {}

function PANEL:Init()
    self:SetPos((ScrW() / 2) - 400, 30)
    self:SetSize(800, 650)
    self:SetVisible(false)


self.time = SGS.tostime
self.nextthink = CurTime() + 1
self.bdisabled = true

self:DrawFrame()


end

function PANEL:Paint( w, h )

draw.RoundedBoxEx( 16, 0, 0, self:GetWide(), self:GetTall(), Color(80, 80, 80, 150), true, true, true, true )

end

function PANEL:DrawFrame()
HTMLPanel = vgui.Create("DPanel", self)
HTMLPanel:SetPos(8,64)
HTMLPanel:SetSize(782, 500)


HTMLTest = vgui.Create("HTML", HTMLPanel)
HTMLTest:SetPos(0,0)
HTMLTest:Dock( FILL )
HTMLTest:OpenURL("http://www.g4p.org/Stranded/TOS/")

TOSbutton = vgui.Create( "DButton", self )
TOSbutton:SetSize( 120, 40 )
TOSbutton:SetPos( 8, 572 )
TOSbutton:SetText( "Wait: " .. self.time )
TOSbutton:SetDisabled( true )
TOSbutton.DoClick = function( TOSbutton )
if TOSbutton:GetDisabled() then return end
SGS.accepttos = true
RunConsoleCommand("sgs_refreshmodelpanel")
RunConsoleCommand("sgs_tosaccept")
self:Remove()
end

TOSbutton2 = vgui.Create( "DButton", self )
TOSbutton2:SetSize( 120, 40 )
TOSbutton2:SetPos( 136, 572 )
TOSbutton2:SetText( "I DON'T ACCEPT" )
TOSbutton2.DoClick = function( TOSbutton2 )
RunConsoleCommand("disconnect")
end


end


function PANEL:Think()
if CurTime() < self.nextthink then return end
if self.bdisabled then
if self.time > 0 then
self.time = self.time - 1
TOSbutton:SetText( "Wait: " .. self.time )
TOSbutton:SetDisabled( true )
else
TOSbutton:SetText( "I ACCEPT" )
TOSbutton:SetDisabled( false )
self.bdisabled = false
end
end
self.nextthink = CurTime() + 1
end

vgui.Register("sgs_tospanel", PANEL, "Panel")