Murder Bloque "OnPlayerChat"

  • Initiateur de la discussion
thepsyca

thepsyca

Psychopathe
Messages
2 164
Score réaction
648
Points
365
Bonsoir,

Je fais un addon sur un murder, j'utilise le hook OnPlayerChat pour faire ouvrir un panel, ça fonctionne bien sauf lorsque le joueur se retrouve dans un round.

J'ai essayé avec des prints mais le hook est complètement bloqué par je ne sais quoi.

Si quelqu'un peut m'aider ou me renseigner, merci à vous.

EDIT : Pour les gens qui ne comprennent pas, le premier print ne s'affiche même par lorsque le joueur se trouve dans un round et qu'il est vivant.

Code:
hook.Add("OnPlayerChat", "nlf-suggestion_OnPlayerChat", function(ply, txt) print("one is writing") if ply != LocalPlayer() then return end print("is player") if string.lower( txt ) == "!suggestion" then Os_Sg:OpenDerma() print("open derma") return true end
end)
 
While True

While True

Geek suprême
Messages
445
Score réaction
395
Points
190
T'as certainement un autre hook qui renvoie true (ou false ?) avant l'execution de ton hook.
Pour le retrouver t'as la méthode plus ou moins fiable de te demander quel autre addon pourrait utiliser le chat,
ou alors tu pourrais chercher "OnPlayerChat" dans tous tes addons via grep ou équivalent windows,
ou encore print la liste des hooks pour cet évenement :
Code:
PrintTable( hook.GetTable()["OnPlayerChat"] )
Et trouver quel hook est en cause.
 
  • J'aime
Réactions: thepsyca
  • Initiateur de la discussion
thepsyca

thepsyca

Psychopathe
Messages
2 164
Score réaction
648
Points
365
edouard292 à dit:
Dans ce cas sert toi du hook.Add("PlayerSay") ?
Non, inutile d'envoyer un net pour mon utilisation
 
edouard292

edouard292

Geek suprême
Messages
423
Score réaction
108
Points
150
Oui c'est sur mais bon s'il te faut absolument côté client, je rejoins @While True !
 
  • Initiateur de la discussion
thepsyca

thepsyca

Psychopathe
Messages
2 164
Score réaction
648
Points
365
While True à dit:
T'as certainement un autre hook qui renvoie true (ou false ?) avant l'execution de ton hook.
Pour le retrouver t'as la méthode plus ou moins fiable de te demander quel autre addon pourrait utiliser le chat,
ou alors tu pourrais chercher "OnPlayerChat" dans tous tes addons via grep ou équivalent windows,
ou encore print la liste des hooks pour cet évenement :
Code:
PrintTable( hook.GetTable()["OnPlayerChat"] )
Et trouver quel hook est en cause.
Seul deux hook sont présent :
- RebuildImage
- Ainsi que le mien

RebuildImage est introuvable dans les fichiers murder, le soucis quand à lui provient bien du gamemode murder donc je présume que celui-si ( le hook ) n'est pas en cause.
 
While True

While True

Geek suprême
Messages
445
Score réaction
395
Points
190
thepsyca à dit:
RebuildImage est introuvable dans les fichiers murder, le soucis quand à lui provient bien du gamemode murder donc je présume que celui-si ( le hook ) n'est pas en cause.
Si le gamemode est bien celui là https://github.com/MechanicalMind/murder/ il n'y a pas de hook "RebuildImage" dans le murder, cela vient d'un de tes addons (peut être .gma)

Code:
PrintTable( debug.getinfo(hook.GetTable()["OnPlayerChat"]["RebuildImage "]) )
 
  • Banni
ᒪᑌᑕIᗩᑎ

ᒪᑌᑕIᗩᑎ

Geek suprême
Messages
577
Score réaction
289
Points
120
While True à dit:
Si le gamemode est bien celui là https://github.com/MechanicalMind/murder/ il n'y a pas de hook "RebuildImage" dans le murder, cela vient d'un de tes addons (peut être .gma)

Code:
PrintTable( debug.getinfo(hook.GetTable()["OnPlayerChat"]["RebuildImage "]) )
Tu m'apprend à coder stp
 
  • Initiateur de la discussion
thepsyca

thepsyca

Psychopathe
Messages
2 164
Score réaction
648
Points
365
While True à dit:
Si le gamemode est bien celui là https://github.com/MechanicalMind/murder/ il n'y a pas de hook "RebuildImage" dans le murder, cela vient d'un de tes addons (peut être .gma)

Code:
PrintTable( debug.getinfo(hook.GetTable()["OnPlayerChat"]["RebuildImage "]) )
http://i.prntscr.com/7Z-_GhotQGaCapGjXxqVew.png

Je ne trouve pas le fichier dans /garrysmod/lua/autorun/map.lua
 
  • Banni
ᒪᑌᑕIᗩᑎ

ᒪᑌᑕIᗩᑎ

Geek suprême
Messages
577
Score réaction
289
Points
120
thepsyca à dit:
http://i.prntscr.com/7Z-_GhotQGaCapGjXxqVew.png

Je ne trouve pas le fichier dans /garrysmod/lua/autorun/map.lua
Worshop
 
  • Initiateur de la discussion
thepsyca

thepsyca

Psychopathe
Messages
2 164
Score réaction
648
Points
365
ᒪᑌᑕIᗩᑎ à dit:
Effectivement, après suppression de l'addon qui au passage ne m'était pas utile, le problème reste le même
 
  • Banni
ᒪᑌᑕIᗩᑎ

ᒪᑌᑕIᗩᑎ

Geek suprême
Messages
577
Score réaction
289
Points
120
thepsyca à dit:
Effectivement, après suppression de l'addon qui au passage ne m'était pas utile, le problème reste le même
Retape le printable
 
  • Initiateur de la discussion
thepsyca

thepsyca

Psychopathe
Messages
2 164
Score réaction
648
Points
365
  • Banni
ᒪᑌᑕIᗩᑎ

ᒪᑌᑕIᗩᑎ

Geek suprême
Messages
577
Score réaction
289
Points
120
  • Initiateur de la discussion
thepsyca

thepsyca

Psychopathe
Messages
2 164
Score réaction
648
Points
365
While True

While True

Geek suprême
Messages
445
Score réaction
395
Points
190
C'est moi ou il n'y a pas de chat implémenté sur Murder ? (Les joueurs arrivent-ils à parler entre eux dans le chat ?)
 
  • Initiateur de la discussion
thepsyca

thepsyca

Psychopathe
Messages
2 164
Score réaction
648
Points
365
While True à dit:
C'est moi ou il n'y a pas de chat implémenté sur Murder ? (Les joueurs arrivent-ils à parler entre eux dans le chat ?)
Yes, il y a le chat basique de gmod
 
While True

While True

Geek suprême
Messages
445
Score réaction
395
Points
190
Es-tu certain que ton hook est bien chargé, voilà ce que ca donne avec un murder vanilla :
http://imgur.com/l2zS187
 
  • Initiateur de la discussion
thepsyca

thepsyca

Psychopathe
Messages
2 164
Score réaction
648
Points
365
While True à dit:
Es-tu certain que ton hook est bien chargé, voilà ce que ca donne avec un murder vanilla :
http://imgur.com/l2zS187
oui le script fonctionne bien, sauf quand le joueur se trouve dans un round et qu'il est vivant
 
While True

While True

Geek suprême
Messages
445
Score réaction
395
Points
190
Et ton message est bien envoyé ? Il est bien affiché dans le chat après ?
Il me semble que le seul cas ou OnPlayerChat n'est pas appelé c'est quand le chat.AddText est vide ( string vide envoyée par le serveur )
http://imgur.com/Ontd599
 
  • Initiateur de la discussion
thepsyca

thepsyca

Psychopathe
Messages
2 164
Score réaction
648
Points
365
While True à dit:
Et ton message est bien envoyé ? Il est bien affiché dans le chat après ?
Il me semble que le seul cas ou OnPlayerChat n'est pas appelé c'est quand le chat.AddText est vide ( string vide envoyée par le serveur )
http://imgur.com/Ontd599
Oui le message est bien écrit dans le chat
 
While True

While True

Geek suprême
Messages
445
Score réaction
395
Points
190
J'ai un doute peux tu exécuter ca sur ton serveur ?
lua_run_cl for k,_ in pairs (hook.GetTable()["OnPlayerChat"]) do hook.Remove([[OnPlayerChat]], k) print(k) end
lua_run_cl hook.Add([[OnPlayerChat]], [[test]], function() print("onPlayerChat") end)
say test
 
  • Initiateur de la discussion
thepsyca

thepsyca

Psychopathe
Messages
2 164
Score réaction
648
Points
365
While True à dit:
J'ai un doute peux tu exécuter ca sur ton serveur ?
lua_run_cl for k,_ in pairs (hook.GetTable()["OnPlayerChat"]) do hook.Remove([[OnPlayerChat]], k) print(k) end
lua_run_cl hook.Add([[OnPlayerChat]], [[test]], function() print("onPlayerChat") end)
say test
https://prntscr.com/kd8uuo

:(
 
While True

While True

Geek suprême
Messages
445
Score réaction
395
Points
190
C'est donc bien ce que je pensais, c'est le PlayerSay qui bloque le chat quand le round est lancé : https://github.com/MechanicalMind/m...127b49ac0c848362c/gamemode/sv_player.lua#L506
 
  • J'aime
Réactions: edouard292 et thepsyca
Discord d'entraide
Rejoignz-nous sur Discord