HexChat IRC 客户端的随机化脚本,在 Python 或 Perl 中

Randomizing script for HexChat IRC Client, in Python or Perl

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

  1. 首先,您键入 !random 之类的命令和 1-100 范围内的一个数字(该数字表示成功的概率,单位为 %)[像这样:!random 78]
  2. 然后,它会 - 基于给定的概率 - 选择你是否成功 [例如,使用 !random 78,结果为 "Success"] [=25= 的概率为 78% ]
  3. 然后,它会在频道上显示一条 public 消息,结果是什么("Success" 或 "Failure")

我需要这个用于在线文本 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'

首先,您可能需要查看 hexchat 的 Python or Perl 文档。

如果您想继续 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

Load a script with given filename. /load will also work.