RESOLU Help en lua - getdarkrpvar problème

  • Initiateur de la discussion Championed
  • Date de début
  • Initiateur de la discussion
  • Banni
Championed

Championed

Bambi
Messages
24
Score réaction
1
Points
35
Bonjour, j'ai l'addons mayor voting system, et je voudrais ajouter une condition pour poster sa candidature maire, la condition est la suivante :

Si le localplayer n'est pas niveau 10 ou +, alors il ne peut pas poster sa candid. J'ai l'addons de vrondakis level darkrp system.


Ducoup j'ai fais le code suivant dans le DoClick du bouton (la ou y'a toute les autres condition de l'addons de base) :

if ply:getDarkRPVar('level') < 10 then
VOTING.SendDarkRPNotice(ply, 1, 4, "Vous devez être niveau 10 minimum pour poster votre candidature ✖")
return false end


Mais j'ai l'erreur suivante (qui apparait uniquement quand je suis en dessous du level 10, si je suis + que level 10 tout marche nikel) :

[ERROR] addons/mayor_voting/lua/sv_mayorvoting.lua:105: attempt to compare nil with number
1. unknown - addons/mayor_voting/lua/sv_mayorvoting.lua:105
2. unknown - lua/includes/modules/concommand.lua:54


Je crois que le level ne se charge pas, parce que si je me set level via ulx, la il detecte la var level...

Fin bref help pls
 
Wasied

Wasied

Psychopathe
Messages
911
Score réaction
398
Points
210
Championed à dit:
Bonjour, j'ai l'addons mayor voting system, et je voudrais ajouter une condition pour poster sa candidature maire, la condition est la suivante :

Si le localplayer n'est pas niveau 10 ou +, alors il ne peut pas poster sa candid. J'ai l'addons de vrondakis level darkrp system.


Ducoup j'ai fais le code suivant dans le DoClick du bouton (la ou y'a toute les autres condition de l'addons de base) :

if ply:getDarkRPVar('level') < 10 then
VOTING.SendDarkRPNotice(ply, 1, 4, "Vous devez être niveau 10 minimum pour poster votre candidature ✖")
return false end


Mais j'ai l'erreur suivante (qui apparait uniquement quand je suis en dessous du level 10, si je suis + que level 10 tout marche nikel) :

[ERROR] addons/mayor_voting/lua/sv_mayorvoting.lua:105: attempt to compare nil with number
1. unknown - addons/mayor_voting/lua/sv_mayorvoting.lua:105
2. unknown - lua/includes/modules/concommand.lua:54


Je crois que le level ne se charge pas, parce que si je me set level via ulx, la il detecte la var level...

Fin bref help pls
Salut,

Il suffit de traduire l'erreur : Il ne peut pas comparer nil avec un nombre.
On peut donc, de fil-en-aiguille, comprendre que le ply:getDarkRPVar("level") retourne nil alors qu'il devrait retourner un nombre..

Le problème provient donc du système de niveaux (que je n'ai jamais aimé)..
A ce niveau, je ne sais pas t'aider plus parce que je ne comprend pas son système..

Mais globalement, cela signifie que la DarkRPVar n'existe pas, il faudrait voir comment il la récupère dans son script.

Voilà, espérons que d'autres développeurs s'y connaissent mieux.
 
  • J'aime
Réactions: NoaGamingFR
  • Initiateur de la discussion
  • Banni
Championed

Championed

Bambi
Messages
24
Score réaction
1
Points
35
Wasied à dit:
Salut,

Il suffit de traduire l'erreur : Il ne peut pas comparer nil avec un nombre.
On peut donc, de fil-en-aiguille, comprendre que le ply:getDarkRPVar("level") retourne nil alors qu'il devrait retourner un nombre..

Le problème provient donc du système de niveaux (que je n'ai jamais aimé)..
A ce niveau, je ne sais pas t'aider plus parce que je ne comprend pas son système..

Mais globalement, cela signifie que la DarkRPVar n'existe pas, il faudrait voir comment il la récupère dans son script.

Voilà, espérons que d'autres développeurs s'y connaissent mieux.
yep j'avais compris ça, mais justement j'ai remarquer qu'il faut que je fasse une "intéraction" avec le system de level pour que ensuite le mayorvoting addons comprenne sa valeur
 
Wasied

Wasied

Psychopathe
Messages
911
Score réaction
398
Points
210
Championed à dit:
yep j'avais compris ça, mais justement j'ai remarquer qu'il faut que je fasse une "intéraction" avec le system de level pour que ensuite le mayorvoting addons comprenne sa valeur
Une DarkRPVar tu peux l'utiliser partout normalement, donc tu ne dois pas lier les 2 d'une façon où d'une autre..
Essaye de debug ta DarkRPVar dans différents fichiers pour voir quelle est à la cause du problème
 
  • J'aime
Réactions: Championed
While True

While True

Geek suprême
Messages
445
Score réaction
395
Points
190
Championed à dit:
if ply:getDarkRPVar('level') < 10 then
VOTING.SendDarkRPNotice(ply, 1, 4, "Vous devez être niveau 10 minimum pour poster votre candidature ✖")
return false end


Mais j'ai l'erreur suivante (qui apparait uniquement quand je suis en dessous du level 10, si je suis + que level 10 tout marche nikel) :
Cela voudrait dire que cela renvoie nil jusqu'à ce que ton niveau soit supérieur à 10 ? Pas normal du tout.
Le fait d'utiliser ULX pour te donner un certain niveau force la définition du niveau, donc la DarkRPVar est définie; je suppose que si tu définis ton niveau à 5 avec ULX, il n'y a plus d'erreur Lua, je me trompe ?
Je parie que l'addon (Leveling System) est pas chargé complètement, certainement dû à une erreur Lua au chargement ou runtime...
Le DarkRPVar est censé être initialisé pour chaque joueur lors du InitialSpawn...

Peux-tu vérifier qu'il est bien chargé et qu'il n'y a pas d'erreur Lua au lancement du serveur ? (check le fichier lua_errors_server.txt)

La fonction de check level est correcte PLY:getDarkRPVar('level')
 
  • Initiateur de la discussion
  • Banni
Championed

Championed

Bambi
Messages
24
Score réaction
1
Points
35
While True à dit:
Cela voudrait dire que cela renvoie nil jusqu'à ce que ton niveau soit supérieur à 10 ? Pas normal du tout.
Le fait d'utiliser ULX pour te donner un certain niveau force la définition du niveau, donc la DarkRPVar est définie; je suppose que si tu définis ton niveau à 5 avec ULX, il n'y a plus d'erreur Lua, je me trompe ?
Je parie que l'addon (Leveling System) est pas chargé complètement, certainement dû à une erreur Lua au chargement ou runtime...
Le DarkRPVar est censé être initialisé pour chaque joueur lors du InitialSpawn...

Peux-tu vérifier qu'il est bien chargé et qu'il n'y a pas d'erreur Lua au lancement du serveur ? (check le fichier lua_errors_server.txt)

La fonction de check level est correcte PLY:getDarkRPVar('level')
nop aucune erreur, sinon faire un ptit code que j'add à l'addons maire qui charge le level au spawn
 
  • Initiateur de la discussion
  • Banni
Championed

Championed

Bambi
Messages
24
Score réaction
1
Points
35
UP - Y'a t-il une ame charitable pour me faire un petit code qui charge le level system de vrondakis dès le spawn du joueur FrankerZ?
 
While True

While True

Geek suprême
Messages
445
Score réaction
395
Points
190
Championed à dit:
UP - Y'a t-il une ame charitable pour me faire un petit code qui charge le level system de vrondakis dès le spawn du joueur FrankerZ?
While True à dit:
Le DarkRPVar est censé être initialisé pour chaque joueur lors du InitialSpawn...
Charger l'addon ne changera rien, cela fonctionne quand tu utilises ULX parce que ULX set les DarkRPVar, l'addon ne fonctionne pas, il faut trouver pourquoi.

Il semble que l'addon ne soit pas fonctionnel depuis une update de DarkRP : Can't get this to work at all · Issue #89 · vrondakis/Leveling-System

Peux-tu redémarrer ton serveur et bien vérifier qu'il n'y a pas d'erreur (au lancement du serveur ET à la connexion) ? Ca ressemble à un problème déjà cité : BUG AIDEZ MOI - Garry's Mod - mTxServ
 
Dernière édition:
  • J'aime
Réactions: Championed
  • Initiateur de la discussion
  • Banni
Championed

Championed

Bambi
Messages
24
Score réaction
1
Points
35
Ok j'ai réussi, enfaite fallait juste mettre tout ça entre parenthèse de la sorte :

if ((caller:getDarkRPVar('level') or 0) < 10) then
VOTING.SendDarkRPNotice(caller, 1, 4, "Vous devez être niveau 10 minimum pour poster votre candidature ✖")
return false end
 
While True

While True

Geek suprême
Messages
445
Score réaction
395
Points
190
Championed à dit:
Ok j'ai réussi, enfaite fallait juste mettre tout ça entre parenthèse de la sorte :

if ((caller:getDarkRPVar('level') or 0) < 10) then
VOTING.SendDarkRPNotice(caller, 1, 4, "Vous devez être niveau 10 minimum pour poster votre candidature ✖")
return false end
Ca ne fait que masquer l'erreur, ca ne la corrige pas, ply:getDarkRPVar('level') n'est pas sensé être nil. Tu le remarqueras tôt ou tard :rolleyes:
 
  • J'aime
Réactions: NoaGamingFR
Discord d'entraide
Rejoignz-nous sur Discord