Faire apparaître une entité sur un véhicule quand on appuie sur une touche

  • Initiateur de la discussion Membre supprimé 148402
  • Date de début
  • Initiateur de la discussion
M

Membre supprimé 148402

Anonyme
Bonjour, j'aimerais bien pour un addon de glaces faire en sorte que quand on est dans un certain véhicule et qu'on appuie sur une touche (par exemple: f) ça fasse apparaitre une entité (panneau de glaces) sur le véhicule à une position précise. C'est faisable?
 
xLomble77

xLomble77

Psychopathe
Messages
2 191
Score réaction
348
Points
290
Tout est possible ^_^ suffit de savoir comment en suite.
 
  • Initiateur de la discussion
M

Membre supprimé 148402

Anonyme
Ca c'est bien vu :D
 
  • Initiateur de la discussion
M

Membre supprimé 148402

Anonyme
UP Je sais que ça fait longtemps mais j'ai cherché et j'ai pas trouvé
 
Strax_

Strax_

Geek suprême
Messages
324
Score réaction
89
Points
140
NIRAXX_ à dit:
UP Je sais que ça fait longtemps mais j'ai cherché et j'ai pas trouvé
Hello !

De tête je vois ce que tu peux utiliser mais pour ce qui est de la « formulation », ça sera un peu plus complexe (pour un débutant comme moi). Tu peux déjà te dire que tu vas commencer par faire un panel qui affiche sur le véhicule: donc je ne vois que le 3D2D qui peut faire ça, après il te suffit de mettre des boutons qui enclencheront le give,... Pour le coup, je ne m’y connais absolument pas niveau optimisation donc ça sera un peu compliqué de t’offrir le choix le plus pertinent.

Sinon tu as le discord de GCA (Game Creators Area) qui regroupe tout un tas de développeurs dans divers langages / domaines. Tu pourras donc réitérer ta demande là bas !


- En espérant t’avoir aider. [Strax]
 
wowowow

wowowow

Bambi
Messages
28
Score réaction
12
Points
30
Vraiment rien de très compliqué. Code écrit de tête non testé:
Potentiellement à corriger, on peux faire beaucoup mieux niveau opti également
Code:
-- Côté serveur
function createSign(veh, model, position, angle) local Sign = ents.Create("prop_dynamic") if not Sign or not veh then return end Sign:SetModel(model) Sign:SetParent(veh) Sign:SetLocalPos(position or Vector(0,0,0)) Sign:SetLocalAngles(angle or Angle(0,0,0)) Sign:SetCollisionGroup(COLLISION_GROUP_WORLD) Sign:Spawn()
end
--This hook is predicted. This means that in singleplayer, it will not be called in the Client realm.
hook.Add("KeyPress", "Vehicle.Sign.KeyPress", function(ply,key) if not IsEntity(ply) or not IsValid(ply:GetVehicle()) then return end -- Changer la touche ici https://wiki.facepunch.com/gmod/Enums/IN if (key == IN_WALK) then createSign(ply:GetVehicle(), "Met ton modèle ici", Vector(0,0,0), Angle(0,0,0)) end
end)
 
  • Initiateur de la discussion
M

Membre supprimé 148402

Anonyme
Merci je teste et je te dis quoi
 
  • Initiateur de la discussion
M

Membre supprimé 148402

Anonyme
wowowow à dit:
createSign(ply:GetVehicle(), "Met ton modèle ici", Vector(0,0,0), Angle(0,0,0))
Je mets quoi dans "Mets ton modèle ici"? Le nom de la Voiture?
 
  • Initiateur de la discussion
M

Membre supprimé 148402

Anonyme
Merci, ça fonctionne mais le problème c'est que en gros, je fais clic droit, le panneau s'affiche mais si je refais clic droit quand il est affiché, il ne disparait pas. Comment je pourrait faire
 
wowowow

wowowow

Bambi
Messages
28
Score réaction
12
Points
30
Tu note l'entité dans une valeur plus global, tu regarde si elle existe: oui alors je supprime, non alors je crée,
Si je reprends mon code ça donne plutôt quelque chose de comme ça, (Toujours pas testé, toujours de tête)
Code:
-- Côté serveur
local Sign
function createSign(veh, model, position, angle) Sign = ents.Create("prop_dynamic") if not Sign or not veh then return end Sign:SetModel(model) Sign:SetParent(veh) Sign:SetLocalPos(position or Vector(0,0,0)) Sign:SetLocalAngles(angle or Angle(0,0,0)) Sign:SetCollisionGroup(COLLISION_GROUP_WORLD) Sign:Spawn()
end
--This hook is predicted. This means that in singleplayer, it will not be called in the Client realm.
hook.Add("KeyPress", "Vehicle.Sign.KeyPress", function(ply,key) if not IsEntity(ply) or not IsValid(ply:GetVehicle()) then return end -- Changer la touche ici https://wiki.facepunch.com/gmod/Enums/IN if (key == IN_WALK) then if IsEntity(Sign) then Sign:Remove() else createSign(ply:GetVehicle(), "Met ton modèle ici", Vector(0,0,0), Angle(0,0,0)) end end
end)
 
Discord d'entraide
Rejoignz-nous sur Discord