2017-09-06 1 views
1

Je fais un système de récompense pour avoir un nom d'utilisateur dans un nom de vapeur et j'ai jusqu'ici jusqu'à présentToute tentative d'affectation de l'argent à un utilisateur avec une certaine chaîne dans leur nom de vapeur Glua

local XPTimer = 0 

local XPTimer = CurTime() + 10 

if(XPTimer <= CurTime()) then 
    if string.find("SERVERNAME", ply:SteamName()) then 
      starwarsrp.ply:AddMoney(500) 
          starwarsrp.notify(ply, 3, 4, "You were awarded £500 for being part of SERVERNAME team!") 

     end 
    else 
     Msg("didnt work") 
end 
XPTimer = CurTime() + 10 

Je reçois le message "else" dans la console "ne fonctionne pas" et la minuterie ne semble pas fonctionner. Y at-il une chose que je fais mal ici. J'apprécie les commentaires!

Répondre

0

A en juger par string.find("SERVERNAME", ply:SteamName()), vous essayez de trouver SteamName valeur dans la chaîne "SERVERNAME", qui est susceptible d'échouer tout le temps, à moins que votre nom de vapeur se trouve être une sous-chaîne de SERVERNAME. Vous étiez probablement penser à obtenir la valeur de SERVERNAME variable d'environnement et pour cela, vous devez utiliser os.getenv("SERVERNAME"), donc quelque chose comme string.find(os.getenv("SERVERNAME") or "", ply:SteamName()) peut mieux fonctionner (vous avez besoin or "" que os.getenv peut retourner nil quand SERVERNAME n'est pas réglé et string.find jetterez une erreur sur la nil passé à lui).

+0

Probablement, c'est 'someTable.SERVERNAME' –

+0

J'ai essayé cela et il ne fonctionne toujours pas. Je reçois l'erreur 'try to call field 'getenv'' – Owen

+0

Cela signifie que la table' os' n'a pas de champ 'getenv' (car vous êtes probablement en train de tourner dans un environnement sandbox). Est-ce qu'il vous manque une table avant 'SERVERNAME' comme Egor l'a suggéré? –