If statement Streamlabs Chatbot在if-else上执行响应;“请求”;

If statement Streamlabs Chatbot在if-else上执行响应;“请求”;,if-statement,chatbot,equations,If Statement,Chatbot,Equations,首先,我很抱歉我的英语不好,我来自德国,目前正在学习英语,所以请不要对我苛刻 现在我的问题是,有没有一种方法可以让机器人在一个等式上执行一个响应,结果是正确的/相等的。因此,在类似if-else语句的更新中——在写了下面的原始答案之后,我意识到如果有合适的参数,常规命令将能够处理许多情况,比如$if('expr','true response','false response')。所以我写了一个。你可以在 该参数本身是在Python脚本中实现的,因此您仍然需要将bot设置为使用Python脚本。

首先,我很抱歉我的英语不好,我来自德国,目前正在学习英语,所以请不要对我苛刻

现在我的问题是,有没有一种方法可以让机器人在一个等式上执行一个响应,结果是正确的/相等的。因此,在类似if-else语句的更新中——在写了下面的原始答案之后,我意识到如果有合适的参数,常规命令将能够处理许多情况,比如
$if('expr','true response','false response')
。所以我写了一个。你可以在

该参数本身是在Python脚本中实现的,因此您仍然需要将bot设置为使用Python脚本。但是,如果安装此参数脚本,则可以在常规命令中使用它,而不是使用更多自定义脚本来实现每个命令

请注意,此脚本未获得Streamlabs聊天机器人支持部门的批准(我也不熟悉提交以供批准的程序);我根据麻省理工学院的许可证提供(即“原样”)。它应该可以正常工作,您可以随意查看代码以验证我没有做任何恶意的事情。如果时间允许,我会尽力回答合理的问题


因此,您希望用户发出一个命令,然后bot进行计算;如果一个特定的等式满足,它将发送一个特定的响应,如果该等式不满足,它将发送一个不同的响应(或者只是不发送);是这样吗

我不认为基本命令(即“命令”选项卡)可以做到这一点。您可以通过自定义脚本来完成。您需要的脚本可能不太复杂,但您需要安装Python 2.7.13并编写一些满足Streamlabs聊天机器人脚本要求的Python代码

作为一个非常基本的例子,假设我们想要创建一个“猜猜我的数字”游戏,当有人猜中时,如果猜对了,它会说“正确”

在聊天机器人的
../Services/Scripts
目录中,您将为脚本创建一个子目录(称之为
guess
),并在该文件夹中创建
guess\u streamlabsssystem.py
,如下所示

# chatbot won't load a script that doesn't define these variables
ScriptName = "guess"
Website = None
Description = "number guessing game"
Creator = "madelsberger" # or for a script you write, your name here
Version = "1.0.0"

# global data used by the script
correctNumber = None

# called when your script starts up
def Init():
    global correctNumber
    correctNumber = Parent.GetRandom(1, 11)

# called whenever the chatbot has data - chat messages, whispers, etc. - that
# your script might care about
def Execute(data):
    global correctNumber
    if data.IsChatMessage() and data.GetParam(0).lower() == '!guess':
        try: # avoid problems if a non-numeric guess is given
            if int(data.GetParam(1)) == correctNumber:
                Parent.SendTwitchMessage("@" + data.User
                                             + " guessed correctly!")
                correctNumber = Parent.GetRandom(1, 11)
            else:
                Parent.SendTwitchMessage(data.GetParam(1) + " is not correct")
        except:
            pass

# called frequently to mark the passage of time; if there's some condition
# your bot wants to act on *other* than data from the bot, and if you can
# write code that watches for that condition, it can go here; but beware this
# gets run frequently, so if the check is resource-intensive then you don't
# want to run it on *every* tick
def Tick():
    pass
请注意,在实践中,您可能需要添加冷却控制或权限控制。您的代码可以看到一个名为
Parent
的对象,该对象提供了处理这些事情的方法。您还可能希望触发器命令之类的东西是可配置的;您可以使用UI_Config.json文件进行设置。有关详细信息,请参阅chatbot文档脚本上的错误