Derma Panel

  • Initiateur de la discussion
deathwolfys

deathwolfys

Chatty
Messages
45
Score réaction
3
Points
65
Bonjour, Bonsoir

J'aimerai crée un NPC avec un Derma panel qui indique les règles de mon serveur !

J'ai déjà le NPC : (cl_init)

Code:
include('shared.lua')
net.Receive( "REGLE", function()
local Frame = vgui.Create( "DFrame" )
Frame:SetTitle( "Regles" )
Frame:SetSize( 300, 300 )
Frame:Center()
Frame:MakePopup()
Frame.Paint = function( self, w, h ) -- 'function Frame:Paint( w, h )' works too Frame.Paint = function ( self, w, h ) - 'function Frame: Paint ( w, h )' fonctionne aussi
draw.RoundedBox( 0, 0, 0, w, h, Color( 231, 76, 60, 150 ) ) -- Draw a red box instead of the frame Draw.RoundedBox ( 0, 0, 0, w, h, Couleur ( 231, 76, 60, 150 ) ) - Dessine une boîte rouge au lieu du cadre
end}
hook.Add("PostDrawOpaqueRenderables", "REGLE", function()
for _, ent in pairs (ents.FindByClass("panel")) do
if ent:GetPos():Distance(LocalPlayer():GetPos()) < 500 then
local Ang = ent:GetAngles()
Ang:RotateAroundAxis( Ang:Forward(), 90)
Ang:RotateAroundAxis( Ang:Right(), -90)
cam.Start3D2D(ent:GetPos()+ent:GetUp()*76, Ang, 0.10)
draw.SimpleTextOutlined( "REGLES", "my_npc", 0, 0, Color(255,255,255,255), TEXT_ALIGN_CENTER, TEXT_ALIGN_CENTER, 0, Color(255,255,255,255) )
cam.End3D2D()
end
end
end)
-- NOUS ALLONS CRÉER UNE FONT UNIQUEMENT POUR LE NPC AFIN DE POUVOIR MODIFIER LA TAILLE DU TEXTE --
surface.CreateFont( "my_npc", { --< Nom que nous allons placer dans le DRAWSIMPLETEXTOUTLINED juste au dessus.
font = "Arial",
extended = true,
size = 50,
weight = 1000
} )

C'est les lignes de codes pour mon NPC et j'aimerai rajouter une fonction pour que lorsque le joueur appuie sur le NPC (déjà fait), un panel s'ouvre (déjà fait) et que l'on puisse lire les règles de mon serveur (Justement je cherche...)
 
Darprix

Darprix

Geek suprême
Messages
248
Score réaction
49
Points
130
deathwolfys à dit:
Bonjour, Bonsoir

J'aimerai crée un NPC avec un Derma panel qui indique les règles de mon serveur !

J'ai déjà le NPC : (cl_init)

Code:
include('shared.lua')
net.Receive( "REGLE", function()
local Frame = vgui.Create( "DFrame" )
Frame:SetTitle( "Regles" )
Frame:SetSize( 300, 300 )
Frame:Center()
Frame:MakePopup()
Frame.Paint = function( self, w, h ) -- 'function Frame:Paint( w, h )' works too Frame.Paint = function ( self, w, h ) - 'function Frame: Paint ( w, h )' fonctionne aussi
draw.RoundedBox( 0, 0, 0, w, h, Color( 231, 76, 60, 150 ) ) -- Draw a red box instead of the frame Draw.RoundedBox ( 0, 0, 0, w, h, Couleur ( 231, 76, 60, 150 ) ) - Dessine une boîte rouge au lieu du cadre
end}
hook.Add("PostDrawOpaqueRenderables", "REGLE", function()
for _, ent in pairs (ents.FindByClass("panel")) do
if ent:GetPos():Distance(LocalPlayer():GetPos()) < 500 then
local Ang = ent:GetAngles()
Ang:RotateAroundAxis( Ang:Forward(), 90)
Ang:RotateAroundAxis( Ang:Right(), -90)
cam.Start3D2D(ent:GetPos()+ent:GetUp()*76, Ang, 0.10)
draw.SimpleTextOutlined( "REGLES", "my_npc", 0, 0, Color(255,255,255,255), TEXT_ALIGN_CENTER, TEXT_ALIGN_CENTER, 0, Color(255,255,255,255) )
cam.End3D2D()
end
end
end)
-- NOUS ALLONS CRÉER UNE FONT UNIQUEMENT POUR LE NPC AFIN DE POUVOIR MODIFIER LA TAILLE DU TEXTE --
surface.CreateFont( "my_npc", { --< Nom que nous allons placer dans le DRAWSIMPLETEXTOUTLINED juste au dessus.
font = "Arial",
extended = true,
size = 50,
weight = 1000
} )

C'est les lignes de codes pour mon NPC et j'aimerai rajouter une fonction pour que lorsque le joueur appuie sur le NPC (déjà fait), un panel s'ouvre (déjà fait) et que l'on puisse lire les règles de mon serveur (Justement je cherche...)
Regarde ça, je crois...
https://wiki.garrysmod.com/page/ENTITY/Use
 
  • Initiateur de la discussion
deathwolfys

deathwolfys

Chatty
Messages
45
Score réaction
3
Points
65
J'ai lis tout sa et je n'ai pas trouver ce que je chercher
 
AyZenSantos

AyZenSantos

Psychopathe
Messages
3 361
Score réaction
753
Points
300
Pour le derma :
https://wiki.garrysmod.com/page/Derma_Basic_Guide

Pour écrire un texte :
https://wiki.garrysmod.com/page/Category:DLabel

pour le texte je sais qu'il y a un autre code plus simple mais je m'en souvient plus
 
Discord d'entraide
Rejoignz-nous sur Discord