Remettre un texte quand le timer est fini

  • Initiateur de la discussion EglyKozz
  • Date de début
  • Initiateur de la discussion
EglyKozz

EglyKozz

Psychopathe
Messages
1 627
Score réaction
359
Points
310
Bujur, je fait un petit addon qui nécessite un timer visible (@Diablos26 HeyGuys) Et donc voilà tout est bien mis ect ...
Mais je veux que quand une certaine valeur est false alors sa arrête le timer et sa remet un texte, j'ai essayé plusieurs choses le "mieux" actuelle est celui là :
Code:
 if self:GetNWBool("isBaking") == true then draw.SimpleText(math.Round(var),"CaviarDreams55",250,150,Color( 255, 255, 255 ) ) else draw.SimpleText("Rien ne cuit !", "CaviarDreams55",150,150,Color( 255, 255, 255 ) ) end
Mais le problème étant que quand le timer pour cuir est fini (5 sec) le timer reste au lieux de remettre le texte "Rien ne cuit !" le timer continue
Et j'aimerais aussi faire que le timer reprenne depuis le début quand isBaking est mit sur "true"

Voilà j'espère qu'il y assez d'éléments pour m'aider BibleThump

Merci BloodTrail
 
  • Initiateur de la discussion
EglyKozz

EglyKozz

Psychopathe
Messages
1 627
Score réaction
359
Points
310
NON je ne ferais pas 1 vue JAMAAIISS
 
anthonin lahterman

anthonin lahterman

Geek suprême
Messages
589
Score réaction
124
Points
150
Si j'ai bien compris, tu veux que sa affiche le draw.simpletexy("rien ne cuit?") a la fin su timer?
Je te conseil de faire ceci (je ne sais pas si c'est posible)
Simpletext:setdisable(true)
Timer.create(uniquename, 13, 0 function simpletext:setdisable(false))
Je ne connais pas le code par coeur mais sa doit y ressembler, de toute facon tu a compri, tu le disable et a la fin du timer tu le enable.
 
  • Initiateur de la discussion
EglyKozz

EglyKozz

Psychopathe
Messages
1 627
Score réaction
359
Points
310
anthonin lahterman à dit:
Si j'ai bien compris, tu veux que sa affiche le draw.simpletexy("rien ne cuit?") a la fin su timer?
Je te conseil de faire ceci (je ne sais pas si c'est posible)
Simpletext:setdisable(true)
Timer.create(uniquename, 13, 0 function simpletext:setdisable(false))
Je ne connais pas le code par coeur mais sa doit y ressembler, de toute facon tu a compri, tu le disable et a la fin du timer tu le enable.
Il y a une fonction pour stopper les timers, mais qui n'a pas aboutit au résultat que je voulais
Et non, c'est plutôt quand l'entité entre en contact avec une autre, sa commencer le timer, sinon sa marque le texte :)
 
anthonin lahterman

anthonin lahterman

Geek suprême
Messages
589
Score réaction
124
Points
150
Je ne m'y connais pas trop, mais essaye de faire un ENT:Touch() et tu met ton code et ton timer dans cette fonction
 
  • Initiateur de la discussion
EglyKozz

EglyKozz

Psychopathe
Messages
1 627
Score réaction
359
Points
310
anthonin lahterman à dit:
Je ne m'y connais pas trop, mais essaye de faire un ENT:Touch() et tu met ton code et ton timer dans cette fonction
Nn tkt j'ai déjà le timer le texte ect ..., c'est juste qu'il faut que je fasse détecter l'ordinateur de quand une valeur booléen est true = ... et quand false = ...

Un condition je sais mais je n'y arrive pas (j'ai essayé le SetNWBool()/GetNWBool(), je pense que c'est la solution mais j'arrive pas à bien le mettre en place ^^
 
anthonin lahterman

anthonin lahterman

Geek suprême
Messages
589
Score réaction
124
Points
150
EglyKozz à dit:
Nn tkt j'ai déjà le timer le texte ect ..., c'est juste qu'il faut que je fasse détecter l'ordinateur de quand une valeur booléen est true = ... et quand false = ...

Un condition je sais mais je n'y arrive pas (j'ai essayé le SetNWBool()/GetNWBool(), je pense que c'est la solution mais j'arrive pas à bien le mettre en place ^^
Sa devient trop compliquer pour moi, je suis encore en apprentissage >-<
 
aurelienchailloux

aurelienchailloux

Geek suprême
Messages
314
Score réaction
76
Points
130
Je sais pas si sa va te servir mais en gros jais un timer et lorsque le temps s’arrête le message revient ( Coté init )


if (self:GetNWInt('recep') >= ATILA_RECEP) && (self:GetNWInt('plato') >= ATILA_PLATO) then <----------- Si l'entité "Recep" et l'entité "Plato " alors
self:SetNWInt('timer', CurTime() + ATILA_TIMER_BDD) <------------ 1er condition : le timer
self:SetNWInt('recep', self:GetNWInt("recep")-self:GetNWInt("need_recep")) <------------- 2er condition : je remplis ma machine
self:SetNWInt('plato', self:GetNWInt("plato")-self:GetNWInt("need_plato"))
self.CanUse = false
self.sound = CreateSound(self, Sound("ambient/machines/power_transformer_loop_2.wav")) <----------- je crée une musique
self.sound:SetSoundLevel(100) <----------- Volume
self.sound:playEx(1, 100)
timer.Simple(ATILA_TIMER_BDD, function() <----------- Timer en position marche
self.CanUse = true <---------- Fin du timer je spawn l'entité + arrêt du sons ( plus bas ) avec arrêt du timer
local ent = ents.Create( "atila_circuitavanced" ) <----------- Entité Crée
if ( !IsValid( ent ) ) then return end
ent:SetPos( self:GetPos()+Vector(80,0,0) ) <----------- Vecteur de position de l'objet crée
ent:Spawn()
self.sound:Stop()
end)
end

Et coté client un draw tout simple :
function ENT:Draw()
self:DrawModel()

local Pos = self:GetPos()
local Ang = self:GetAngles()

local owner = self:Getowning_ent()
owner = (IsValid(owner) and owner:Nick()) or DarkRP.getPhrase("unknown")

local TIMER;
if (self:GetNWInt('timer') < CurTime()) then
TIMER = 0
else
TIMER = (self:GetNWInt('timer')-CurTime())
end

surface.SetFont("PrinterHUDATILA")
local text = "En Stock:"
local text2 = "Plateau D'energie: "..self:GetNWInt("plato")
local text3 = "Donnees informatiques: "..self:GetNWInt("recep")
local TextWidth = surface.GetTextSize(text)
local TextWidth2 = surface.GetTextSize(text2)
local TextWidth3 = surface.GetTextSize(text3)
local text4 = "Besoins:"
local text5 = "Plateau D'energie: "..self:GetNWInt("need_plato")
local text6 = "Donnees informatiques: "..self:GetNWInt("need_recep")
local TextWidth4 = surface.GetTextSize(text4)
local TextWidth5 = surface.GetTextSize(text5)
local TextWidth6 = surface.GetTextSize(text6)

Ang:RotateAroundAxis(Ang:Up(), 90)
Ang:RotateAroundAxis(Ang:Forward(), 90)
local TextAng = Ang
local width = self:GetNWInt('width')

local color
if (TIMER > 0) then
color = {150, 50}
else
color = {0 ,150}
end

if LocalPlayer():GetPos():Distance(self:GetPos()) < self:GetNWInt("distance") then
cam.Start3D2D(Pos+Ang:Right()*-100+Ang:Up()*13+Ang:Forward()*-15, Ang, 0.1)
draw.SimpleTextOutlined( "Base De Donnees", "hudbdd", 26, 0, Color(101,145,233,355), 0, 0, 1, Color(0,0,0,150) )
cam.End3D2D()

cam.Start3D2D(Pos+Ang:Right()*-80+Ang:Up()*13+Ang:Forward()*-5, Ang, 0.08)
draw.RoundedBox( 0, -6, -5, width, 47, Color(0,255,0,color[1]) )
draw.RoundedBox( 0, -5, -4, TextWidth3+30, 45, Color(0,0,0,color[2]) )
draw.SimpleTextOutlined( "Temps: "..string.ToMinutesSeconds(TIMER), "hudbddtimer", 0, 0, Color(255,255,255,255), 0, 0, 1, Color(0,0,0,150) )
cam.End3D2D()

cam.Start3D2D(Pos+Ang:Right()*-60+Ang:Up()*15+Ang:Forward()*-23, Ang, 0.09)
draw.RoundedBox( 0, -5, -19, TextWidth3+9, 115, Color(0,0,0,150) )
draw.SimpleTextOutlined( text, "PrinterHUDATILA", 40, -14, Color(255,255,255,255), 0, 0, 1, Color(0,0,0) )
draw.SimpleTextOutlined( text2, "PrinterHUDATILA", 0, 24, Color(255,255,255,255), 0, 0, 1, Color(0,0,0) )
draw.SimpleTextOutlined( text3, "PrinterHUDATILA", 0, 60, Color(255,255,255,255), 0, 0, 1, Color(0,0,0) )
cam.End3D2D()

cam.Start3D2D(Pos+Ang:Right()*-40+Ang:Up()*15+Ang:Forward()*-23, Ang, 0.09)
draw.RoundedBox( 0, -5, -19, TextWidth6+9, 115, Color(0,0,0,150) )
draw.SimpleTextOutlined( text4, "PrinterHUDATILA", TextWidth4*0.5, -14, Color(30,183,25,118), 0, 0, 1, Color(0,0,0) )
draw.SimpleTextOutlined( text5, "PrinterHUDATILA", 0, 24, Color(255,255,255,255), 0, 0, 1, Color(0,0,0) )
draw.SimpleTextOutlined( text6, "PrinterHUDATILA", 0, 60, Color(255,255,255,255), 0, 0, 1, Color(0,0,0) )
cam.End3D2D()
end
end


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

surface.CreateFont("hudbddtimer", {
font = "impact",
size = 50,
weight = 600,
blursize = 0,
scanlines = 0,
antialias = true,
underline = true,
italic = false,
strikeout = true,
symbol = false,
rotary = false,
shadow = true,
additive = true,
outline = false,
})
 
Z3k4

Z3k4

Helpeur Divin
Messages
4 495
Score réaction
1 513
Points
580
Ou alors tu rajoute une condition qui si :
Le timer existe affiche le message "Quelque chose est entrain de cuir"
Si le timer n'existe pas "Rien ne cuit"
La condition ça serait :
if timer.Exists("nom de ton timer") then

else

end
 
  • Initiateur de la discussion
EglyKozz

EglyKozz

Psychopathe
Messages
1 627
Score réaction
359
Points
310
Z3k4 à dit:
Ou alors tu rajoute une condition qui si :
Le timer existe affiche le message "Quelque chose est entrain de cuir"
Si le timer n'existe pas "Rien ne cuit"
La condition ça serait :
if timer.Exists("nom de ton timer") then

else

end
Ok merci j'y avais pas penser je vais essayer :)
 
  • Initiateur de la discussion
EglyKozz

EglyKozz

Psychopathe
Messages
1 627
Score réaction
359
Points
310
Z3k4 à dit:
Ou alors tu rajoute une condition qui si :
Le timer existe affiche le message "Quelque chose est entrain de cuir"
Si le timer n'existe pas "Rien ne cuit"
La condition ça serait :
if timer.Exists("nom de ton timer") then

else

end
Enfaîte le problème et que le timer est tout le temps actif :'(
 
Z3k4

Z3k4

Helpeur Divin
Messages
4 495
Score réaction
1 513
Points
580
EglyKozz à dit:
Enfaîte le problème et que le timer est tout le temps actif :'(
Bah soit :
Tu le crée tous le temps
T'as créer un timer qui n'expire pas
Montre la partie ou le timer est créer ^^
 
  • Initiateur de la discussion
EglyKozz

EglyKozz

Psychopathe
Messages
1 627
Score réaction
359
Points
310
Z3k4 à dit:
Bah soit :
Tu le crée tous le temps
T'as créer un timer qui n'expire pas
Montre la partie ou le timer est créer ^^
Code:
include("shared.lua")
surface.CreateFont( "CaviarDreams25", { font = "Caviar Dreams", size = 35, weight = 500, antialias = true } )
surface.CreateFont( "CaviarDreams55", { font = "Caviar Dreams", size = 55, weight = 500, antialias = true } )
local var, block5sec = 0, 0
local stopTimer = timer.Remove("TimerCook")
timer.Create("TimerCook",var, block5sec,function(ent) if var <= 0 then var, block5sec = Ncs_Config.Config_CookingTime, CurTime() end if block5sec + 1 > CurTime() then return end var = var - 1 block5sec = CurTime()
end)
function ENT:Draw() -- 3d2d je pense pas que sa interesse
 
Discord d'entraide
Rejoignz-nous sur Discord