【问题标题】:Randomizing script for HexChat IRC Client, in Python or PerlHexChat IRC 客户端的随机化脚本,在 Python 或 Perl 中
【发布时间】:2015-02-24 11:02:18
【问题描述】:

我有一种预感,这个问题的答案非常简单,但我还是想不通(我可能根本不懂这些语言的事实)。 我需要的是一个可以这样工作的脚本:

  1. 首先,键入 !random 之类的命令和 1-100 范围内的数字(该数字表示成功的概率,以 % 为单位)[例如:!random 78]
  2. 然后,它会 - 根据给定的概率 - 选择您是否成功 [例如,使用 !random 78,结果为“成功”的概率为 78%]
  3. 然后,它会在频道上显示一条公共消息,结果是什么(“成功”或“失败”)

我需要这个用于在线文本 RPG 会话。也对不起我的英语不好。

代码现在的样子:

    __module_name__ = "HexChat Randomiser"
    __module_version__ = "0.1"
    __module_description__ = "A randomiser for HexChat."
      
    import random
    import xchat

def callback(word, world_eol, userdata):
    number = word[1]
    if random_chance(number):
        print ("Success")
    else:
        print ("Failure")


    def random_chance(percent_chance):
        return random.randrange(1, 101) > (100 - percent_chance)


    xchat.hook_command("random", callback, help="/random <number>")

错误:

Traceback (most recent call last):
File "<string>", line 10, in callback
File "<string>", line 17, in random_chance
TypeError: unsupported operand type(s) for -: 'int' and 'str'

【问题讨论】:

    标签: python perl random irc hexchat


    【解决方案1】:

    首先,您可能想查看 PythonPerl hexchat 文档。

    如果您想继续使用 python,我已经编写了一个小脚本来帮助您入门:

    import random
    import xchat
    
    def callback(word, world_eol, userdata):
        number = word[1]
        if random_chance(number):
            print "Success"
        else:
            print "Failure"
    
    
    def random_chance(percent_chance):
        return random.randrange(1, 101) > (100 - int(percent_chance))
           
    
    xchat.hook_command("random", callback, help="/random <number>")
    

    你必须自己让它在 hexchat 中工作。要加载脚本,您必须先将其保存在某个位置,然后调用 load command

    加载

    加载具有给定文件名的脚本。 /load 也可以。

    【讨论】:

    • 非常感谢!我更改了代码中的一些内容,因此它现在可以在 HexChat 中正确加载。不幸的是,当我输入 /random 命令时,会发生错误。我将它粘贴到我原来的帖子中。
    • 你得到的不是数字而是字符串,你需要把它变成一个 int 才能工作。将100 - percent_chance 更改为100 - int(percent_chance)。我什至不确定word[1] 是数字,这就是为什么我说你必须自己做腿部工作。
    • 最后一件事:如何在“成功”和“失败”前一行显示我刚刚使用的命令(例如“/random 65”),以便其他用户知道我实际使用过它而不只是手动输入结果?
    猜你喜欢
    • 2013-11-30
    • 1970-01-01
    • 2010-11-10
    • 2012-09-13
    • 2020-03-31
    • 2011-04-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多