Petite erreur avec une function

  • Initiateur de la discussion
Kiripou

Kiripou

Geek suprême
Messages
171
Score réaction
134
Points
100
Bonjour, si je fais ce post c'est que j'ai un petit problème : j'aimerais "modifié" le nice death screen en méttant au dessus "Vous êtes mort, patientez 90 secondes, il y a ... pompier en ville !"

J'ai utilisé cette function pour répertorié le nombre de pompier du serveur :

Code:
function NombrePompier() local ply = LocalPlayer() local countpompier = 0 if ply:Team() == TEAM_MAYOR then -- Oui c'est Team Mayor mais c'est juste pour testé avec le maire =) countpompier = 0 + 1 return end
end
J'ai déjà testé cette fonction en solo et elle fonctionne,

Et donc sa donne sa sur le text :

"Vous êtes mort, patientez 90 secondes, il y a "..countpompier.." pompier en ville !"

Sauf que une fois in game sa me met une petit érreur :

attempt to concatenate global 'countpompier' (a nil value)

Si quelqu'un pourrait m'aider je lui serais reconnaissant ! :)
 
Dernière édition:
  • J'aime
Réactions: Enivra et kayxy
  • Banni
kayxy

kayxy

Geek suprême
Messages
824
Score réaction
97
Points
160
@slownls
 
AyZenSantos

AyZenSantos

Psychopathe
Messages
3 361
Score réaction
753
Points
300
Et quel est le problème ? ^^ elle marche pas ?

bref
/me fait un rituel pour invoquer les 2 El famoso : @Zaros_Live et @Makss
 
thepsyca

thepsyca

Psychopathe
Messages
2 164
Score réaction
648
Points
365

Code:
 local countpompier = 0
function NombrePompier() if LocalPlayer():Team() == TEAM_MAYOR then countpompier = countpompier + 1 return end
end

Si tu laisse countpompier dans ta fonction il va être set à chaque fois sur "0" je pense
 
  • J'aime
Réactions: AyZenSantos
  • Initiateur de la discussion
Kiripou

Kiripou

Geek suprême
Messages
171
Score réaction
134
Points
100
AyZenSantos à dit:
Et quel est le problème ? ^^ elle marche pas ?

bref
/me fait un rituel pour invoquer les 2 El famoso : @Zaros_Live et @Makss
Non elle ne fonctionne pas ^^
 
  • J'aime
Réactions: Enivra
  • Initiateur de la discussion
Kiripou

Kiripou

Geek suprême
Messages
171
Score réaction
134
Points
100
thepsyca à dit:
Code:
 local countpompier = 0
local function NombrePompier() local ply = LocalPlayer() if ply:Team() == TEAM_MAYOR then countpompier = countpompier + 1 return end
end
Sa ne fonctionne toujours pas :/ Toujours la même érreur qui apparait :

attempt to concatenate global 'countpompier' (a nil value)
 
  • J'aime
Réactions: Enivra
AyZenSantos

AyZenSantos

Psychopathe
Messages
3 361
Score réaction
753
Points
300
thepsyca à dit:
Code:
 local countpompier = 0
local function NombrePompier() local ply = LocalPlayer() if ply:Team() == TEAM_MAYOR then countpompier = countpompier + 1 return end
end
bon bah si sa marche , je t'invoquerai aussi dans mes rituel quand les gens on besoin xD
 
  • J'aime
Réactions: Dahim94
thepsyca

thepsyca

Psychopathe
Messages
2 164
Score réaction
648
Points
365
Kiripou à dit:
Sa ne fonctionne toujours pas :/ Toujours la même érreur qui apparait :

attempt to concatenate global 'countpompier' (a nil value)
essaie de mettre
Code:
 local countpompier = countpompier + 1
Au passage tu peut nous dire qu'elle est la ligne de l'erreur ? enfin à quel countpompier elle correspond
 
  • Initiateur de la discussion
Kiripou

Kiripou

Geek suprême
Messages
171
Score réaction
134
Points
100
thepsyca à dit:
essaie de mettre
Code:
 local countpompier = countpompier + 1
Au passage tu peut nous dire qu'elle est la ligne de l'erreur ? enfin à quel countpompier elle correspond
Toujours la même érreur é_è
 
  • J'aime
Réactions: Enivra
  • Banni
kayxy

kayxy

Geek suprême
Messages
824
Score réaction
97
Points
160
thepsyca à dit:
essaie de mettre
Code:
 local countpompier = countpompier + 1
Au passage tu peut nous dire qu'elle est la ligne de l'erreur ? enfin à quel countpompier elle correspond
Marche pas :(
 
  • Banni
kayxy

kayxy

Geek suprême
Messages
824
Score réaction
97
Points
160
thepsyca à dit:
essaie de mettre
Code:
 local countpompier = countpompier + 1
Au passage tu peut nous dire qu'elle est la ligne de l'erreur ? enfin à quel countpompier elle correspond
[ERROR] addons/customhqdiedmenu/lua/autorun/shared.lua:31: attempt to concatenate global 'countpompier' (a nil value)
1. unknown - addons/customhqdiedmenu/lua/autorun/shared.lua:31
 
thepsyca

thepsyca

Psychopathe
Messages
2 164
Score réaction
648
Points
365
kayxy à dit:
[ERROR] addons/customhqdiedmenu/lua/autorun/shared.lua:31: attempt to concatenate global 'countpompier' (a nil value)
1. unknown - addons/customhqdiedmenu/lua/autorun/shared.lua:31
et ligne 31 y'a lequel countpompier ?:rolleyes:
 
  • Banni
kayxy

kayxy

Geek suprême
Messages
824
Score réaction
97
Points
160
thepsyca à dit:
et ligne 31 y'a lequel countpompier ?:rolleyes:
DM.Config.ServerName = "Vous êtes mort, patientez 90 secondes, il y a "..countpompier.." pompier en ville !" -- you server name
 
thepsyca

thepsyca

Psychopathe
Messages
2 164
Score réaction
648
Points
365
Code:
local countpompier = 0
if LocalPlayer():Team() == TEAM_MAYOR then
countpompier = countpompier + 1
end
go mettre le code avant la ligne 31
Code:
DM.Config.ServerName = "Vous êtes mort, patientez 90 secondes, il y a "..countpompier.." pompier en ville !" -- you server name
PS : au passage la function ne va pas vous donner tous les futur pompier mais seulement si le LocalPlayer est pompier, il vous faut passer par une boucle playergetall
 
ZarosOVH

ZarosOVH

Modérateur
Membre du Staff
Messages
6 527
Score réaction
5 488
Points
1 295
1) déclare une variable local
2) compte le nombre de joueur dans la team voulu et ajoutant + 1 a ta variable pour chaque joueur trouver
3) utilise ta variable dans le texte à afficher
 
  • Banni
kayxy

kayxy

Geek suprême
Messages
824
Score réaction
97
Points
160
thepsyca à dit:
Code:
local countpompier = 0
if LocalPlayer():Team() == TEAM_MAYOR then
countpompier = countpompier + 1
end
go mettre le code avant la ligne 31
Code:
DM.Config.ServerName = "Vous êtes mort, patientez 90 secondes, il y a "..countpompier.." pompier en ville !" -- you server name
PS : au passage la function ne va pas vous donner tous les futur pompier mais seulement si le LocalPlayer est pompier, il vous faut passer par une boucle playergetall
Marche toujours pas :(
 
  • Banni
kayxy

kayxy

Geek suprême
Messages
824
Score réaction
97
Points
160
Zaros_Live à dit:
1) déclare une variable local
2) compte le nombre de joueur dans la team voulu et ajoutant + 1 a ta variable pour chaque joueur trouver
3) utilise ta variable dans le texte à afficher
thepsyca à dit:
Code:
local countpompier = 0
if LocalPlayer():Team() == TEAM_MAYOR then
countpompier = countpompier + 1
end
go mettre le code avant la ligne 31
Code:
DM.Config.ServerName = "Vous êtes mort, patientez 90 secondes, il y a "..countpompier.." pompier en ville !" -- you server name
PS : au passage la function ne va pas vous donner tous les futur pompier mais seulement si le LocalPlayer est pompier, il vous faut passer par une boucle playergetall
Après ses que dans un autorun/shared.lua ses bon sa ?
 
  • Initiateur de la discussion
Kiripou

Kiripou

Geek suprême
Messages
171
Score réaction
134
Points
100
kayxy à dit:
Après ses que dans un autorun/shared.lua ses bon sa ?
Code:
 ---------FUNCTION NOMBRE POMPIER---------- local countpompier = 0 function NombrePompier() for k, v in pairs(player.GetAll()) do if v:Team() == TEAM_MAYOR then countpompier = countpompier + 1 end end end
J'ai mis sa comme code
 
  • J'aime
Réactions: Enivra
ZarosOVH

ZarosOVH

Modérateur
Membre du Staff
Messages
6 527
Score réaction
5 488
Points
1 295
thepsyca à dit:
l vous faut passer par une boucle playergetall
Je me demande si niveau opti il vaut mieux pas utiliser le hook PlayerChangeTeam pour vérifie si un joueur choisit la team en question plutôt que de faire une boucle sur tout les jours à chaque fois qu’un joueur meurt ... @Makss ou @slownls un avis sur lequel est le mieux ?
 
thepsyca

thepsyca

Psychopathe
Messages
2 164
Score réaction
648
Points
365
Code:
 local countpompier = 0 local function NombrePompier() for k, v in pairs(player.GetAll()) do if v:Team() == TEAM_MAYOR then local countpompier = countpompier + 1 end end return countpompier end
DM.Config.ServerName = "Vous êtes mort, patientez 90 secondes, il y a "..NombrePompier().." pompier en ville !" -- you server nam
 
  • Banni
kayxy

kayxy

Geek suprême
Messages
824
Score réaction
97
Points
160
thepsyca à dit:
Code:
 local countpompier = 0 local function NombrePompier() for k, v in pairs(player.GetAll()) do if v:Team() == TEAM_MAYOR then local countpompier = countpompier + 1 end end return countpompier end
DM.Config.ServerName = "Vous êtes mort, patientez 90 secondes, il y a "..NombrePompier().." pompier en ville !" -- you server nam
ok alors sa marche mais en gros sa actualise pas :/
 
  • J'aime
Réactions: Enivra
ZarosOVH

ZarosOVH

Modérateur
Membre du Staff
Messages
6 527
Score réaction
5 488
Points
1 295
thepsyca à dit:
Code:
 local countpompier = 0 local function NombrePompier() for k, v in pairs(player.GetAll()) do if v:Team() == TEAM_MAYOR then local countpompier = countpompier + 1 end end return countpompier end
DM.Config.ServerName = "Vous êtes mort, patientez 90 secondes, il y a "..NombrePompier().." pompier en ville !" -- you server nam
Si tu fais comme ça tu peux déclarer ta Var dans la function pour la remettre à 0 à chaque fois que tu appèlera la function
 
  • J'aime
Réactions: thepsyca
ZarosOVH

ZarosOVH

Modérateur
Membre du Staff
Messages
6 527
Score réaction
5 488
Points
1 295
kayxy à dit:
ok alors sa marche mais en gros sa actualise pas :/
Zaros_Live à dit:
Si tu fais comme ça tu peux déclarer ta Var dans la function pour la remettre à 0 à chaque fois que tu appèlera la function
;)
 
  • Initiateur de la discussion
Kiripou

Kiripou

Geek suprême
Messages
171
Score réaction
134
Points
100
Zaros_Live à dit:
Il faut bien le mettre dans le coté client ? En Dessous du If Client Then
 
  • J'aime
Réactions: Enivra
Makss

Makss

Psychopathe
Messages
830
Score réaction
990
Points
310
Zaros_Live à dit:
il vaut mieux pas utiliser le hook PlayerChangeTeam
Clientside this hook is only called for the LocalPlayer.
Y'a jamais plus d'un pompier sur le serveur c'est étrange 4Head
thepsyca à dit:
DM.Config.ServerName = "Vous êtes mort, patientez 90 secondes, il y a "..NombrePompier().." pompier en ville !" -- you server nam
Elle ne se mets pas à jour automatiquement la variable là
 
  • Initiateur de la discussion
Kiripou

Kiripou

Geek suprême
Messages
171
Score réaction
134
Points
100
Makss à dit:
Y'a jamais plus d'un pompier sur le serveur c'est étrange 4Head

Elle ne se mets pas à jour automatiquement la variable là
Et comment on pourrait la rendre automatique ?
 
  • Banni
kayxy

kayxy

Geek suprême
Messages
824
Score réaction
97
Points
160
xD
 
Feytone

Feytone

Chuck Norris
Messages
4 741
Score réaction
1 301
Points
600
Kiripou à dit:
Et comment on pourrait la rendre automatique ?
Au pire, méthode du kirikou sauvage : un timer qui relance la fonction.
 
  • Initiateur de la discussion
Kiripou

Kiripou

Geek suprême
Messages
171
Score réaction
134
Points
100
Feytone à dit:
Au pire, méthode du kirikou sauvage : un timer qui relance la fonction.
Ah ouais j'y avais pas penser thx x)
 
Feytone

Feytone

Chuck Norris
Messages
4 741
Score réaction
1 301
Points
600
  • Initiateur de la discussion
Kiripou

Kiripou

Geek suprême
Messages
171
Score réaction
134
Points
100
Feytone à dit:
Mais bon bof le principe.
Parcontre je block un peu pour faire les timer, tu pourrais m'aider ? x)
 
  • Initiateur de la discussion
Kiripou

Kiripou

Geek suprême
Messages
171
Score réaction
134
Points
100
Je me permet de faire un petit up sachant que je n'ai pas trouver la solution :)
 
ehtr_sky

ehtr_sky

Geek suprême
Messages
271
Score réaction
87
Points
100
https://wiki.garrysmod.com/page/timer/Create
 
Discord d'entraide
Rejoignz-nous sur Discord