试图将钱分配给在其 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 中具有特定字符串的用户的主要内容,如果未能解决你的问题,请参考以下文章

如何将按键分配给在循环中创建的 QPushButton

将字符分配给在 C 中使用 malloc 声明的二维数组时收到警告

当试图将钱转移到银行时,“GenericError”

将事件分配给在运行时动态创建的 VCL 控件 (2)

SteamPOLYGON游戏如何下载

如何将数据框中的值分配给在另一个数据框中创建的十分位数?