Aide HUD (Lua)

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

PierreB

Geek suprême
Messages
342
Score réaction
64
Points
130
Bonjour/bonsoir tout le monde,
Je débute en Lua et j'ai un problème avec mon HUD, le voici :

J'aimerais faire un sorte que les munitions ne s'affichent que si le joueur à une arme en main, mais je n'ai rien réussi a trouvé sur ce sujet.
Merci de votre aide,

Cordialement.
 
thepsyca

thepsyca

Psychopathe
Messages
2 164
Score réaction
648
Points
365
Code:
if not XX:GetActiveWeapon() == nil then
end
Essaie ceci
 
  • J'aime
Réactions: PierreB et A!ex
  • Initiateur de la discussion
PierreB

PierreB

Geek suprême
Messages
342
Score réaction
64
Points
130
thepsyca à dit:
Code:
if not XX:GetActiveWeapon() == nil then
end
Essaie ceci
J'ai essayé il n'y a pas d'erreur mais le HUD disparaît, voici le code :
Code:
if ammo != "0 / 0" and if LocalPlayer():GetActiveWeapon() == nil then draw.SimpleText( "| ", "BanterT", ScrW() - 126, ScrH() - 58, Color( 225, 225, 225, 225 ), TEXT_ALIGN_CENTER, TEXT_ALIGN_BOTTOM ) draw.SimpleText((math.max((LocalPlayer():GetActiveWeapon():Clip1()), 0)), "BanterTS", (ScrW() - 185) + 95/2, ScrH() - 100, Color(225, 225, 225), TEXT_ALIGN_RIGHT, TEXT_ALIGN_TOP) draw.SimpleText(LocalPlayer():GetAmmoCount(LocalPlayer():GetActiveWeapon():GetPrimaryAmmoType()), "BanterT", (ScrW() - 175) + 100/2, ScrH() - 93, Color(225, 225, 225), TEXT_ALIGN_LEFT, TEXT_ALIGN_TOP) draw.RoundedBox(7,1435,row8,73,70,Color(80,80,80,120)) end
 
thepsyca

thepsyca

Psychopathe
Messages
2 164
Score réaction
648
Points
365
Code:
if ammo != "0 / 0" or LocalPlayer():GetActiveWeapon() != nil then draw.SimpleText( "| ", "BanterT", ScrW() - 126, ScrH() - 58, Color( 225, 225, 225, 225 ), TEXT_ALIGN_CENTER, TEXT_ALIGN_BOTTOM ) draw.SimpleText((math.max((LocalPlayer():GetActiveWeapon():Clip1()), 0)), "BanterTS", (ScrW() - 185) + 95/2, ScrH() - 100, Color(225, 225, 225), TEXT_ALIGN_RIGHT, TEXT_ALIGN_TOP) draw.SimpleText(LocalPlayer():GetAmmoCount(LocalPlayer():GetActiveWeapon():GetPrimaryAmmoType()), "BanterT", (ScrW() - 175) + 100/2, ScrH() - 93, Color(225, 225, 225), TEXT_ALIGN_LEFT, TEXT_ALIGN_TOP) draw.RoundedBox(7,1435,row8,73,70,Color(80,80,80,120)) end
 
  • Initiateur de la discussion
PierreB

PierreB

Geek suprême
Messages
342
Score réaction
64
Points
130
thepsyca à dit:
Code:
if ammo != "0 / 0" and LocalPlayer():GetActiveWeapon() != nil then draw.SimpleText( "| ", "BanterT", ScrW() - 126, ScrH() - 58, Color( 225, 225, 225, 225 ), TEXT_ALIGN_CENTER, TEXT_ALIGN_BOTTOM ) draw.SimpleText((math.max((LocalPlayer():GetActiveWeapon():Clip1()), 0)), "BanterTS", (ScrW() - 185) + 95/2, ScrH() - 100, Color(225, 225, 225), TEXT_ALIGN_RIGHT, TEXT_ALIGN_TOP) draw.SimpleText(LocalPlayer():GetAmmoCount(LocalPlayer():GetActiveWeapon():GetPrimaryAmmoType()), "BanterT", (ScrW() - 175) + 100/2, ScrH() - 93, Color(225, 225, 225), TEXT_ALIGN_LEFT, TEXT_ALIGN_TOP) draw.RoundedBox(7,1435,row8,73,70,Color(80,80,80,120)) end
Oui effectivement je me suis rendu compte après qu'il ne fallait pas mettre if mais du coup le HUD s'affiche bien cette fois si mais les munitions ne s'affichent pas quand le joueur prend une arme en mains :)
 
thepsyca

thepsyca

Psychopathe
Messages
2 164
Score réaction
648
Points
365
PierreB à dit:
Oui effectivement je me suis rendu compte après qu'il ne fallait pas mettre if mais du coup le HUD s'affiche bien cette fois si mais les munitions ne s'affichent pas quand le joueur prend une arme en mains :)
j'ai edit ( or au lieu de and )
 
  • Initiateur de la discussion
PierreB

PierreB

Geek suprême
Messages
342
Score réaction
64
Points
130
thepsyca à dit:
j'ai edit ( or au lieu de and )
Marche toujours pas^^

EDIT : Au cas ou :
Code:
if ammo != "0 / 0" or LocalPlayer():GetActiveWeapon() != nil then draw.SimpleText( "| ", "BanterT", ScrW() - 126, ScrH() - 58, Color( 225, 225, 225, 225 ), TEXT_ALIGN_CENTER, TEXT_ALIGN_BOTTOM ) draw.SimpleText((math.max((LocalPlayer():GetActiveWeapon():Clip1()), 0)), "BanterTS", (ScrW() - 185) + 95/2, ScrH() - 100, Color(225, 225, 225), TEXT_ALIGN_RIGHT, TEXT_ALIGN_TOP) draw.SimpleText(LocalPlayer():GetAmmoCount(LocalPlayer():GetActiveWeapon():GetPrimaryAmmoType()), "BanterT", (ScrW() - 175) + 100/2, ScrH() - 93, Color(225, 225, 225), TEXT_ALIGN_LEFT, TEXT_ALIGN_TOP) draw.RoundedBox(7,1435,row8,73,70,Color(80,80,80,120)) end
 
Deadman69330

Deadman69330

Psychopathe
Messages
2 289
Score réaction
309
Points
290
Je pense que tu devrais essayer de faire (en gros hein j'ai la flemme de faire le code pcq il est quand même 23h)
Code:
playerweapon = ply:GetActiveWeapon():GetClass()
if playerweapon != "keys" and "pocket" and "autre arme"then
Tu dessine ton HUD
end
 
  • Initiateur de la discussion
PierreB

PierreB

Geek suprême
Messages
342
Score réaction
64
Points
130
Deadman69330 à dit:
Je pense que tu devrais essayer de faire (en gros hein j'ai la flemme de faire le code pcq il est quand même 23h)
Code:
playerweapon = ply:GetActiveWeapon():GetClass()
if playerweapon != "keys" and "pocket" and "autre arme"then
Tu dessine ton HUD
end
Aah oui je vois, merci j’essaierais demain
 
  • J'aime
Réactions: Deadman69330
  • Initiateur de la discussion
PierreB

PierreB

Geek suprême
Messages
342
Score réaction
64
Points
130
@Deadman69330 Du coup je viens de tester, ca ne marche pas :
Code:
local playerweapon = LocalPlayer():GetActiveWeapon()
if playerweapon != "keys" then draw.SimpleText( "| ", "BanterT", ScrW() - 126, ScrH() - 58, Color( 225, 225, 225, 225 ), TEXT_ALIGN_CENTER, TEXT_ALIGN_BOTTOM ) draw.SimpleText((math.max((LocalPlayer():GetActiveWeapon():Clip1()), 0)), "BanterTS", (ScrW() - 185) + 95/2, ScrH() - 100, Color(225, 225, 225), TEXT_ALIGN_RIGHT, TEXT_ALIGN_TOP) draw.SimpleText(LocalPlayer():GetAmmoCount(LocalPlayer():GetActiveWeapon():GetPrimaryAmmoType()), "BanterT", (ScrW() - 175) + 100/2, ScrH() - 93, Color(225, 225, 225), TEXT_ALIGN_LEFT, TEXT_ALIGN_TOP) draw.RoundedBox(7,1435,row8,73,70,Color(80,80,80,120)) end

Je pensais peut-être à regarder si les munitions du joueur ne sont pas égales a 0, dessiner le HUD mais j'ai essayé comme ceci est ca ne marche pas :
Code:
local munintions = LocalPlayer():GetAmmoCount()
if munitions != "0" then draw.SimpleText( "| ", "BanterT", ScrW() - 126, ScrH() - 58, Color( 225, 225, 225, 225 ), TEXT_ALIGN_CENTER, TEXT_ALIGN_BOTTOM ) draw.SimpleText((math.max((LocalPlayer():GetActiveWeapon():Clip1()), 0)), "BanterTS", (ScrW() - 185) + 95/2, ScrH() - 100, Color(225, 225, 225), TEXT_ALIGN_RIGHT, TEXT_ALIGN_TOP) draw.SimpleText(LocalPlayer():GetAmmoCount(LocalPlayer():GetActiveWeapon():GetPrimaryAmmoType()), "BanterT", (ScrW() - 175) + 100/2, ScrH() - 93, Color(225, 225, 225), TEXT_ALIGN_LEFT, TEXT_ALIGN_TOP) draw.RoundedBox(7,1435,row8,73,70,Color(80,80,80,120)) end
 
thepsyca

thepsyca

Psychopathe
Messages
2 164
Score réaction
648
Points
365
Code:
local playerweapon = LocalPlayer():GetActiveWeapon()
if playerweapon != "keys" then draw.SimpleText( "| ", "BanterT", ScrW() - 126, ScrH() - 58, Color( 225, 225, 225, 225 ), TEXT_ALIGN_CENTER, TEXT_ALIGN_BOTTOM ) draw.SimpleText((math.max((playerweapon:Clip1()), 0)), "BanterTS", (ScrW() - 185) + 95/2, ScrH() - 100, Color(225, 225, 225), TEXT_ALIGN_RIGHT, TEXT_ALIGN_TOP) draw.SimpleText(LocalPlayer():GetAmmoCount(playerweapon:GetPrimaryAmmoType()), "BanterT", (ScrW() - 175) + 100/2, ScrH() - 93, Color(225, 225, 225), TEXT_ALIGN_LEFT, TEXT_ALIGN_TOP)
print( LocalPlayer():GetAmmoCount(playerweapon:GetPrimaryAmmoType() ) draw.RoundedBox(7,1435,row8,73,70,Color(80,80,80,120)) end
Normalement le code devrait fonctionner, tu es sur de la position de t'es draw.SimpleText ?
Je t'ai mis un print pour voir si ça te donne bien le nombre de munition
 
  • Initiateur de la discussion
PierreB

PierreB

Geek suprême
Messages
342
Score réaction
64
Points
130
thepsyca à dit:
Code:
local playerweapon = LocalPlayer():GetActiveWeapon()
if playerweapon != "keys" then draw.SimpleText( "| ", "BanterT", ScrW() - 126, ScrH() - 58, Color( 225, 225, 225, 225 ), TEXT_ALIGN_CENTER, TEXT_ALIGN_BOTTOM ) draw.SimpleText((math.max((playerweapon:Clip1()), 0)), "BanterTS", (ScrW() - 185) + 95/2, ScrH() - 100, Color(225, 225, 225), TEXT_ALIGN_RIGHT, TEXT_ALIGN_TOP) draw.SimpleText(LocalPlayer():GetAmmoCount(playerweapon:GetPrimaryAmmoType()), "BanterT", (ScrW() - 175) + 100/2, ScrH() - 93, Color(225, 225, 225), TEXT_ALIGN_LEFT, TEXT_ALIGN_TOP)
print( LocalPlayer():GetAmmoCount(playerweapon:GetPrimaryAmmoType() ) draw.RoundedBox(7,1435,row8,73,70,Color(80,80,80,120)) end
Normalement le code devrait fonctionner, tu es sur de la position de t'es draw.SimpleText ?
Je t'ai mis un print pour voir si ça te donne bien le nombre de munition
Oui j'en suis sur
 
thepsyca

thepsyca

Psychopathe
Messages
2 164
Score réaction
648
Points
365
Je viens de voir que j'ai fais une faute, sinon c'est quoi le soucis ?
Les munitions ne se mettent pas c'est ça ?

Code:
if LocalPlayer():GetActiveWeapon():GetClass() != "keys" then
draw.SimpleText( "| ", "BanterT", ScrW() - 126, ScrH() - 58, Color( 225, 225, 225, 225 ), TEXT_ALIGN_CENTER, TEXT_ALIGN_BOTTOM )
draw.SimpleText((math.max((LocalPlayer():GetActiveWeapon():Clip1()), 0)), "BanterTS", (ScrW() - 185) + 95/2, ScrH() - 100, Color(225, 225, 225), TEXT_ALIGN_RIGHT, TEXT_ALIGN_TOP)
draw.SimpleText(LocalPlayer():GetAmmoCount(LocalPlayer():GetActiveWeapon():GetPrimaryAmmoType()), "BanterT", (ScrW() - 175) + 100/2, ScrH() - 93, Color(225, 225, 225), TEXT_ALIGN_LEFT, TEXT_ALIGN_TOP)
draw.RoundedBox(7,1435,row8,73,70,Color(80,80,80,120))
end
 
  • Initiateur de la discussion
PierreB

PierreB

Geek suprême
Messages
342
Score réaction
64
Points
130
thepsyca à dit:
Je viens de voir que j'ai fais une faute, sinon c'est quoi le soucis ?
Les munitions ne se mettent pas c'est ça ?

Code:
if LocalPlayer():GetActiveWeapon():GetClass() != "keys" then
draw.SimpleText( "| ", "BanterT", ScrW() - 126, ScrH() - 58, Color( 225, 225, 225, 225 ), TEXT_ALIGN_CENTER, TEXT_ALIGN_BOTTOM )
draw.SimpleText((math.max((LocalPlayer():GetActiveWeapon():Clip1()), 0)), "BanterTS", (ScrW() - 185) + 95/2, ScrH() - 100, Color(225, 225, 225), TEXT_ALIGN_RIGHT, TEXT_ALIGN_TOP)
draw.SimpleText(LocalPlayer():GetAmmoCount(LocalPlayer():GetActiveWeapon():GetPrimaryAmmoType()), "BanterT", (ScrW() - 175) + 100/2, ScrH() - 93, Color(225, 225, 225), TEXT_ALIGN_LEFT, TEXT_ALIGN_TOP)
draw.RoundedBox(7,1435,row8,73,70,Color(80,80,80,120))
end
Le soucis c'est que le HUD munitions apparaît en permanence, meme si le joueur n'as pas d'armes en main :)
 
thepsyca

thepsyca

Psychopathe
Messages
2 164
Score réaction
648
Points
365
PierreB à dit:
Le soucis c'est que le HUD munitions apparaît en permanence, meme si le joueur n'as pas d'armes en main :)
Le tient ou celui de base ?
 
  • Initiateur de la discussion
PierreB

PierreB

Geek suprême
Messages
342
Score réaction
64
Points
130
  • Initiateur de la discussion
PierreB

PierreB

Geek suprême
Messages
342
Score réaction
64
Points
130
Up !
 
Darkos_0

Darkos_0

Louison
Messages
108
Score réaction
21
Points
125
Salut Pierre,

J'ai pas le temps se soir de me pencher sur ton problème mais tu m'as l'air vraiment en galère et j'espère pouvoir t'aider en te passant un bout de code de mon hud (seulement un bout on est pas sur un site de leak xD ). Ne me juge pas si j'ai oublié un bout, je suis crevé. En te souhaitant bonne chance pour trouver les infos qu'il te manque.

Darkos.

Code:
 if (AmmoType >= 0) then if (Ammo != -1) then draw.RoundedBox( 0,ScrW()/2 - 75 , ScrH()/2 + 237,150,30,Color( 15,15,15,Fade )) draw.SimpleText("[R] RELOAD", "hudmainthickmed",ScrW()/2 , ScrH()/2 + 250, Color( 255,255,255,FadeIc), TEXT_ALIGN_CENTER, TEXT_ALIGN_CENTER ) local size = 206 local ammopos = 238 local WepName = Wep:GetPrintName() if (WepName != nil) then surface.SetFont("hudmainweapon") local w, _ = surface.GetTextSize(WepName) size = math.max(206, w+2+2+60+10) ammopos = 55 + size - 4 end draw.RoundedBox( 0,ap,ScrH()-120,size,63,Color(15,15,15,225)) surface.SetDrawColor( 55, 55, 55, 40 ) surface.SetMaterial( gradient ) surface.DrawTexturedRect(ap,ScrH()-120,size,63) if Ammo != 0 then surface.SetDrawColor( 155,155,155,70 ) surface.SetMaterial( gradient ) surface.DrawTexturedRectUV( ap,ScrH()-120,(size)* Ammo / Mag ,63,1,0,0,1) end draw.RoundedBox( 0,ap +size-10,ScrH()-120,10,1,light ) draw.RoundedBox( 0,ap +size-1,ScrH()-120,1,10,light ) draw.RoundedBox( 0,ap ,ScrH()-120,10,1,light ) draw.RoundedBox( 0,ap ,ScrH()-120,1,10,light ) draw.RoundedBox( 0,ap ,ScrH()-58,10,1,light ) draw.RoundedBox( 0,ap ,ScrH()-68,1,10,light ) draw.RoundedBox( 0,ap +size-1,ScrH()-68,1,10,light ) draw.RoundedBox( 0,ap +size-10,ScrH()-58,10,1,light ) if (WepName != nil) then draw.SimpleText(WepName, "hudmainweapon", weptextpos + 63, ScrH()-102, white, TEXT_ALIGN_CENTER,0) end local ammo = Ammo; if( string.len( ammo ) < 2 ) then ammo = "0" .. ammo; end local ammosub = LocalPlayer():GetAmmoCount(AmmoType); if( string.len( ammosub ) < 2 ) then ammosub = "0" .. ammosub; end if (Ammo != -1 ) then draw.SimpleText(ammo, "hudmainweaponl", ap + 198, ScrH()-130, white, TEXT_ALIGN_RIGHT,0) draw.SimpleText(LocalPlayer():GetAmmoCount(LocalPlayer():GetActiveWeapon():GetPrimaryAmmoType()), "hudmainweapon", ap + 195, ScrH()-84, Color ( 220,220,220,255) , TEXT_ALIGN_RIGHT,0) else draw.SimpleText(ammosub, "hudmainweaponl", ap + 103, ScrH()-124, white, TEXT_ALIGN_RIGHT,0) end end end
 
RazzMo

RazzMo

Geek suprême
Messages
314
Score réaction
192
Points
120
Je te répond dans la journée c'est claquer comme truc
 
Discord d'entraide
Rejoignz-nous sur Discord