diff options
Diffstat (limited to 'examples/rule_packs/basic_roller.py')
| -rw-r--r-- | examples/rule_packs/basic_roller.py | 49 |
1 files changed, 0 insertions, 49 deletions
diff --git a/examples/rule_packs/basic_roller.py b/examples/rule_packs/basic_roller.py deleted file mode 100644 index b12607cb..00000000 --- a/examples/rule_packs/basic_roller.py +++ /dev/null @@ -1,49 +0,0 @@ -import random -import re - - -def get_help(): - """返回此规则包的帮助信息""" - return """ ---- 基础掷骰 (Basic Roller) --- -.r <表达式> : 执行一个掷骰表达式。 - 示例: .r 2d6 - .r d100+10 - .r 1d20-2 -""" - - -def handle_command(command): - """处理基础掷骰指令""" - # 我们规定基础指令以 .r 开头 - if not command.lower().startswith(".r "): - return None # 不是我的指令,我不处理 - - expression = command[3:].strip() # 获取 .r 后面的内容 - - # 清理表达式中的空格 - expression = expression.lower().replace(" ", "") - - # 正则表达式来匹配 XdY+/-Z - match = re.match(r"(\d*)d(\d+)([+-]\d+)?", expression) - if not match: - return f"基础掷骰格式错误: {expression}" - - num_dice_str, num_sides_str, modifier_str = match.groups() - - num_dice = int(num_dice_str) if num_dice_str else 1 - num_sides = int(num_sides_str) - modifier = int(modifier_str) if modifier_str else 0 - - if num_dice <= 0 or num_sides <= 0: - return "骰子数量和面数必须大于0。" - - rolls = [random.randint(1, num_sides) for _ in range(num_dice)] - base_total = sum(rolls) - final_total = base_total + modifier - - roll_details = f"({'+'.join(map(str, rolls))})" - if modifier != 0: - return f"掷骰: {expression} -> {final_total} [{roll_details}{modifier:+}]" - else: - return f"掷骰: {expression} -> {final_total} {roll_details}" |
