试图将钱分配给在其 Steam 名称 Glua 中具有特定字符串的用户
Posted
技术标签:
【中文标题】试图将钱分配给在其 Steam 名称 Glua 中具有特定字符串的用户【英文标题】:Attempting to assign money to a user with a certain string in their steam name Glua 【发布时间】:2017-09-06 16:54:53 【问题描述】:我正在制作一个基于奖励的系统,因为我在 Steam 名称中有一个用户名,到目前为止我已经做到了
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
我在控制台中收到“没有工作”的“其他”消息,并且计时器似乎没有工作。我在这里做错了什么。感谢您的反馈!
【问题讨论】:
【参考方案1】:根据string.find("SERVERNAME", ply:SteamName())
判断,您试图在"SERVERNAME"
字符串中查找SteamName
值,这很可能一直失败,除非您的Steam 名称恰好是SERVERNAME
的子字符串。您可能正在考虑获取SERVERNAME
环境变量的值,为此您需要使用os.getenv("SERVERNAME")
,因此string.find(os.getenv("SERVERNAME") or "", ply:SteamName())
之类的可能效果更好(您需要or ""
,因为os.getenv
可能会在以下情况下返回nil
SERVERNAME 未设置,string.find
将在传递给它的nil
上引发错误。
【讨论】:
应该是someTable.SERVERNAME
我试过了,还是不行。我收到错误attempt to call field 'getenv'
这意味着os
表没有getenv
字段(因为您可能在沙盒环境中运行)。您是否按照 Egor 的建议在 SERVERNAME
之前错过了一些表格?
我将如何实现someTable.SERVERNAME
如果string.find(os.getenv(someTable.SERVERNAME) or "", ply:SteamName()) then
会是这样的
不,Egor 和我认为您可能将 SERVERNAME 作为其中一个表中的字段。您要在哪里检查ply:SteamName()
?你认为SERVERNAME
的价值来自哪里?以上是关于试图将钱分配给在其 Steam 名称 Glua 中具有特定字符串的用户的主要内容,如果未能解决你的问题,请参考以下文章