0

我的 python 插件还有另一个问题。这是代码:

def cmd_give(self, data, client=None, cmd=None):
    """ 
    ^3<player> <money> - Give someone however much money you want.
    """
    input = self._adminPlugin.parseUserCmd(data)
    if not data:
        client.message('^7 correct syntax is !give <player> <money>')
        return False
    else:
        if  len([x for x in data if x.isspace()]) < 1:
            client.message('^7 correct syntax is !give <player> <money>')
            return False
        else:
            input_data = data.split(' ',1)
            scname = input_data[0]
            ammount = int(input_data[1])
            sclient = self._adminPlugin.findClientPrompt(scname, client)
            if not sclient: return False
            self.earn_money(sclient, ammount)
    return True

现在这显然将命令中给出的值添加到用户输入到 mysql 中。我还想要一个命令来减去命令中给出的任何值。所以上面的这个命令是一个给予,我也想要一个。我的问题是我不知道改变是减去输入值而不是增加的金额。希望有人能帮忙,谢谢大家。

4

1 回答 1

0

在不修改执行实际添加的函数的情况下,Rob Watts 在评论中的建议将起作用:

ammount = -int(input_data[1])

您可以创建一个新函数 ,cmd_take并在那里执行此操作,或者拥有一个更通用的函数 ( cmd_transaction?),它需要一个额外的参数(例如 give)并具有适当的逻辑:

if not give:
    ammount = -int(input_data[1])

在第一种情况下,最好将大部分代码提取到辅助函数中,以避免重复,但如果您不了解 python,而这只是一次性的事情,那么拥有一个cmd_take完全类似的函数command_give,除了那一行,是最简单的解决方案。

于 2013-07-30T21:57:14.170 回答