Résolu Comment mettre une icone "license d'arme" dans un hud

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

SkyWarZzeur

Geek
Messages
31
Score réaction
7
Points
95
Bonjour à tous les amis :)

Alors voilà, j'ai récemment acheté un script HUD sur gmodstore, il est très bien mais je me suis rendu compte qu'il manquait une icone indiquant si la personne possède une licence d'arme ou non, j'ai essayé tant bien que mal de le faire par moi même en cherchant un peu partout, mais rien à faire, je n'y arrive pas.
Si une personne qui s'y connait un peu en lua à la possibilité de m'aider dans cette tache, je lui en serai très reconnaissant!
alors voilà tout d'abord à quoi ressemble l'hud: Screenshot_2.png
le rectangle rouge indique l'endroit ou je voudrais que ce trouve l'icone (j'ai fait un grand rectangle car je vais surement ajouter aussi une icone pour savoir si oui ou non on est recherché par la police quand mon premier problème sera résolu)

Voici le code qui permet de faire ce HUD:

Code hud:
local function ChifumasDrawAvatar() Chifumas.AvatarImage = vgui.Create("ChifumasCircleAvatar") Chifumas.AvatarImage:ParentToHUD() Chifumas.AvatarImage:SetSize(64, 64) Chifumas.AvatarImage:SetPos(16, ScrH() - 80) Chifumas.AvatarImage:SetPlayer(LocalPlayer(), 64) Chifumas.AvatarImage:SetMaskSize(64 / 2)
end
hook.Add("InitPostEntity", "ChifumasDrawAvatar", ChifumasDrawAvatar)
local function ChifumasDrawLeftElement() draw.RoundedBox(40, 8, Scrh - 88, 300, 80, Color01) local PlayerName = LocalPlayer():Nick() draw.SimpleText(PlayerName, "ChifumasRoboto20b", 88, Scrh - 80, Color03) local PlayerJob = LocalPlayer():getDarkRPVar("job") draw.SimpleText(PlayerJob, "ChifumasRoboto20r", 88, Scrh - 58, Color04) local PlayerMoney = DarkRP.formatMoney(LocalPlayer():getDarkRPVar("money")) local PlayerSalary = DarkRP.formatMoney(LocalPlayer():getDarkRPVar("salary")) draw.SimpleText(PlayerMoney .. " (+" .. PlayerSalary .. ")", "ChifumasRoboto20r", 88, Scrh - 36, Color05)
end
Pour information, j'avais ajouté ceci dans le code:
Code License:
local GunLicense() = localplayer:getDarkRPVar("HasGunlicense") surface.SetMaterial(Icon01) surface.SetDrawColor(255, 255, 255, 255) surface.DrawTexturedRect(88, Scrh - 58, 16, 16)
mais sans succés, merci d'avance pour votre aide!
 
  • Banni
Xepher

Xepher

Bambi
Messages
26
Score réaction
0
Points
35
SkyWarZzeur à dit:
Bonjour à tous les amis :)

Alors voilà, j'ai récemment acheté un script HUD sur gmodstore, il est très bien mais je me suis rendu compte qu'il manquait une icone indiquant si la personne possède une licence d'arme ou non, j'ai essayé tant bien que mal de le faire par moi même en cherchant un peu partout, mais rien à faire, je n'y arrive pas.
Si une personne qui s'y connait un peu en lua à la possibilité de m'aider dans cette tache, je lui en serai très reconnaissant!
alors voilà tout d'abord à quoi ressemble l'hud: Regarde la pièce jointe 16062
le rectangle rouge indique l'endroit ou je voudrais que ce trouve l'icone (j'ai fait un grand rectangle car je vais surement ajouter aussi une icone pour savoir si oui ou non on est recherché par la police quand mon premier problème sera résolu)

Voici le code qui permet de faire ce HUD:

Code hud:
local function ChifumasDrawAvatar() Chifumas.AvatarImage = vgui.Create("ChifumasCircleAvatar") Chifumas.AvatarImage:ParentToHUD() Chifumas.AvatarImage:SetSize(64, 64) Chifumas.AvatarImage:SetPos(16, ScrH() - 80) Chifumas.AvatarImage:SetPlayer(LocalPlayer(), 64) Chifumas.AvatarImage:SetMaskSize(64 / 2)
end
hook.Add("InitPostEntity", "ChifumasDrawAvatar", ChifumasDrawAvatar)
local function ChifumasDrawLeftElement() draw.RoundedBox(40, 8, Scrh - 88, 300, 80, Color01) local PlayerName = LocalPlayer():Nick() draw.SimpleText(PlayerName, "ChifumasRoboto20b", 88, Scrh - 80, Color03) local PlayerJob = LocalPlayer():getDarkRPVar("job") draw.SimpleText(PlayerJob, "ChifumasRoboto20r", 88, Scrh - 58, Color04) local PlayerMoney = DarkRP.formatMoney(LocalPlayer():getDarkRPVar("money")) local PlayerSalary = DarkRP.formatMoney(LocalPlayer():getDarkRPVar("salary")) draw.SimpleText(PlayerMoney .. " (+" .. PlayerSalary .. ")", "ChifumasRoboto20r", 88, Scrh - 36, Color05)
end
Pour information, j'avais ajouté ceci dans le code:
Code License:
local GunLicense() = localplayer:getDarkRPVar("HasGunlicense") surface.SetMaterial(Icon01) surface.SetDrawColor(255, 255, 255, 255) surface.DrawTexturedRect(88, Scrh - 58, 16, 16)
mais sans succés, merci d'avance pour votre aide!
j'ai ce HUD et cette erreur est du au faite que tu l'a en leak, je l'est acheter j'ai 0 erreur
 
  • Initiateur de la discussion
SkyWarZzeur

SkyWarZzeur

Geek
Messages
31
Score réaction
7
Points
95
Xepher à dit:
j'ai ce HUD et cette erreur est du au faite que tu l'a en leak, je l'est acheter j'ai 0 erreur
Salut, tu n'as pas lu ma discussion :c
 
Sinyx

Sinyx

Geek
Messages
16
Score réaction
8
Points
90
Xepher à dit:
j'ai ce HUD et cette erreur est du au faite que tu l'a en leak, je l'est acheter j'ai 0 erreur
Avant d'avancer ce genre de chose soit sûr de ce que tu dis.

Xepher à dit:
je m'en bat littéralement les couilles
Bravo la maturité.

Alors pour en revenir au topic, tu déclares une variable qui récupère une variable de DarkRP très bien cependant localplayer n'est pas défini ou sinon tu le montres pas qu'il l'est donc utilise plutôt LocalPlayer() comme vu ci-dessus. Ensuite il va falloir vérifier si le joueur dispose de la licence, une condition suffira. Puis, tu pourras insérer le draw de l'image cependant on voit nul part dans ton code que la variable Icon01 est définie je présume donc qu'elle ne l'est pas. Il suffira de la définir ou non (si tu rajoutes directement en argument de la fonction SetMaterial()). Et enfin, tu auras juste à jouer sur la position x et y du DrawTexturedRect() afin de le mettre là où bon te le semble.

Cela donne ça en gros :

Code:
local hasGunLicense = LocalPlayer():getDarkRPVar("HasGunlicense")
local imgGunLicense = Material("Chemin à ton image")
if hasGunLicense then surface.SetDrawColor(255, 255, 255, 255) surface.SetMaterial(imgGunLicense) surface.DrawTexturedRect(88, Scrh - 58, 16, 16)
end
Sachant que les deux premiers paramètres de la fonction DrawTexturedRect() sont les coordonnées de l'image soit x et y. Les deux derniers sont la longueur et la hauteur de l'image
 
Dernière édition:
  • J'aime
Réactions: SkyWarZzeur
  • Initiateur de la discussion
SkyWarZzeur

SkyWarZzeur

Geek
Messages
31
Score réaction
7
Points
95
Sinyx à dit:
Avant d'avancer ce genre de chose soit sûr de ce que tu dis.


Bravo la maturité.

Alors pour en revenir au topic, tu déclares une variable qui récupère une variable de DarkRP très bien cependant localplayer n'est pas défini ou sinon tu le montres pas qu'il l'est donc utilise plutôt LocalPlayer() comme vu ci-dessus. Ensuite il va falloir vérifier si le joueur dispose de la licence, une condition suffira. Puis, tu pourras insérer le draw de l'image cependant on voit nul part dans ton code que la variable Icon01 est définie je présume donc qu'elle ne l'est pas. Il suffira de la définir ou non (si tu rajoutes directement en argument de la fonction SetMaterial()). Et enfin, tu auras juste à jouer sur la position x et y du DrawTexturedRect() afin de le mettre là où bon te le semble.

Cela donne ça en gros :

Code:
local hasGunLicense = LocalPlayer():getDarkRPVar("HasGunlicense")
local imgGunLicense = Material("Chemin à ton image")
if hasGunLicence then surface.SetDrawColor(255, 255, 255, 255) surface.SetMaterial(Icon01) surface.DrawTexturedRect(88, Scrh - 58, 16, 16)
end
Sachant que les deux premiers paramètres de la fonction DrawTexturedRect() sont les coordonnées de l'image soit x et y. Les deux derniers sont la longueur et la hauteur de l'image
Salut, merci de ta réponse, dans le code j'ai donc essayé d'ajouter ceci:

codeGunLicense:
 local hasGunLicense = LocalPlayer():getDarkRPVar("HasGunlicense") local imgGunLicense = Material("icon16/page_white_text.png") if hasGunLicence then surface.SetDrawColor(255, 255, 255, 255) surface.SetMaterial(imgGunLicense) surface.DrawTexturedRect(0, 0, 16, 16) end
Mais malheureusement cela n'affiche rien quand je possède une License d'arme et je ne vois pas d'où provient mon erreur.
j'ai remarqué que le hud affiche la License d'arme au dessus de la tête d'un joueur avec ce code:
code HasGunlicense hud:
if ply:getDarkRPVar("HasGunlicense") then
ChifumasDrawIcon(Pos.x - 8, Pos.y - 16, 16, 16, Color(255, 255, 255, 255), Material("icon16/page_white_text.png"))
end
je ne sais pas si je dois l'utiliser pour que cela fonctionne.
merci d'avance :)
 
Sinyx

Sinyx

Geek
Messages
16
Score réaction
8
Points
90
SkyWarZzeur à dit:
Salut, merci de ta réponse, dans le code j'ai donc essayé d'ajouter ceci:

codeGunLicense:
 local hasGunLicense = LocalPlayer():getDarkRPVar("HasGunlicense") local imgGunLicense = Material("icon16/page_white_text.png") if hasGunLicence then surface.SetDrawColor(255, 255, 255, 255) surface.SetMaterial(imgGunLicense) surface.DrawTexturedRect(0, 0, 16, 16) end
Mais malheureusement cela n'affiche rien quand je possède une License d'arme et je ne vois pas d'où provient mon erreur.
j'ai remarqué que le hud affiche la License d'arme au dessus de la tête d'un joueur avec ce code:
code HasGunlicense hud:
if ply:getDarkRPVar("HasGunlicense") then
ChifumasDrawIcon(Pos.x - 8, Pos.y - 16, 16, 16, Color(255, 255, 255, 255), Material("icon16/page_white_text.png"))
end
je ne sais pas si je dois l'utiliser pour que cela fonctionne.
merci d'avance :)
Tu t'es trompé dans la condition c'est pas hasGunLicence mais hasGunLicense
 
  • J'aime
Réactions: SkyWarZzeur
Sinyx

Sinyx

Geek
Messages
16
Score réaction
8
Points
90
SkyWarZzeur à dit:
Salut, merci de ta réponse, dans le code j'ai donc essayé d'ajouter ceci:

codeGunLicense:
 local hasGunLicense = LocalPlayer():getDarkRPVar("HasGunlicense") local imgGunLicense = Material("icon16/page_white_text.png") if hasGunLicence then surface.SetDrawColor(255, 255, 255, 255) surface.SetMaterial(imgGunLicense) surface.DrawTexturedRect(0, 0, 16, 16) end
Mais malheureusement cela n'affiche rien quand je possède une License d'arme et je ne vois pas d'où provient mon erreur.
j'ai remarqué que le hud affiche la License d'arme au dessus de la tête d'un joueur avec ce code:
code HasGunlicense hud:
if ply:getDarkRPVar("HasGunlicense") then
ChifumasDrawIcon(Pos.x - 8, Pos.y - 16, 16, 16, Color(255, 255, 255, 255), Material("icon16/page_white_text.png"))
end
je ne sais pas si je dois l'utiliser pour que cela fonctionne.
merci d'avance :)
D'ailleurs tu l'as mis en position 0 0 soit en haut à gauche de ton écran ^^ (dans le DrawTexturedRect())
 
  • J'aime
Réactions: SkyWarZzeur
  • Initiateur de la discussion
SkyWarZzeur

SkyWarZzeur

Geek
Messages
31
Score réaction
7
Points
95
Sinyx à dit:
Tu t'es trompé dans la condition c'est pas hasGunLicence mais hasGunLicense
d'accord, je vais modifier ça, merci ^^

Sinyx à dit:
D'ailleurs tu l'as mis en position 0 0 soit en haut à gauche de ton écran ^^ (dans le DrawTexturedRect())
oui je sais c'est juste pour voir si l’affichage marche correctement ^^
 
  • Initiateur de la discussion
SkyWarZzeur

SkyWarZzeur

Geek
Messages
31
Score réaction
7
Points
95
Merci beaucoup, j'ai réussi!
ça fait plaisir de pourvoir compter sur certaines personnes pour nous aider, merci!
je vais pouvoir continuer à le faire de mon côté normalement, bonne soirée! :)
 
  • J'aime
Réactions: Sinyx
Discord d'entraide
Rejoignz-nous sur Discord