[Hook]

  • Initiateur de la discussion
OneSidious

OneSidious

Geek suprême
Messages
145
Score réaction
24
Points
140
Bonjour j'ai un job où quand il spawn, un material se set sur lui (Mon IA), voici le code qui se trouve dans le métier:

PlayerLoadout = function(ply)
ply:SetMaterial("models/wireframe")
end,
})

Ceci marche mais le problème c'est que une fois que l'on change de job, le materiel reste, alors j'aimerai faire en sorte que le materiel se reset quand on change de job, on m'a dis de faire un "Hook" mais je ne trouve pas !

Merci à vous
 
While True

While True

Geek suprême
Messages
445
Score réaction
395
Points
190
Enregistrer/Ajouter un hook, un crochet, est le fait de lier une fonction à un évènement, lors de cet évènement, la fonction sera exécutée.

Ici, tu veux que le joueur redevienne 'normal' une fois qu'il apparait (spawn).

Code:
-- La fonction à appeler
local function spawn( ply ) ply:SetMaterial("")
end
-- Ajout du hook
-- PlayerSpawn = évènement
-- "set_default_material" = string identifiant unique (au choix)
-- spawn = référence à la fonction créée plus haut
hook.Add( "PlayerSpawn", "set_default_material", spawn )
En principe PlayerLoadout est appelé juste après, à chaque spawn, le material appliqué au joueur sera réinitialisé, puis réappliqué par PlayerLoadout.
Pour faire cela plus proprement, il faudrait éviter PlayerLoadout et PlayerSpawn, et passer par des fonctions appelées (uniquement) au changement de job par exemple.

Références : http://wiki.garrysmod.com/page/GM/PlayerSpawn, https://wiki.garrysmod.com/page/Entity/SetMaterial
 
Discord d'entraide
Rejoignz-nous sur Discord