2013-07-30 28 views
0

剛剛爲我的python插件另外一個問題。 下面是代碼:更改python命令來減去值而不是添加在MYSQL中

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數據庫中值。 我也想要一個命令來減去命令中給出的任何值。 所以這個命令是一個給予,我也想要一個。 我的問題是我不知道是什麼改變是減去價值輸入的金額,而不是添加。 希望有人能幫助, 謝謝你們。

+0

注意:我知道「ammount」 – Simon

+0

您可以添加負值嗎? –

回答

0

,而無需修改不實際添加的功能,在註釋中建議由羅布瓦將工作:

ammount = -int(input_data[1]) 

您可以創建一個新的功能,cmd_take,做有,或有更普遍的功能(cmd_transaction?),其採用額外的參數(如給),並有適當的邏輯:

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

在第一種情況下,這將是很好的做法,提取大部分代碼到一個輔助功能,避免重複,但是如果你不知道python並且這只是一次性的事情,那麼cmd_take函數與command_give完全相同,除了那一行之外,它是最簡單的解決方案。

+0

嗯,我認爲它會基本相同,但只是一個不同的輸入類型值。我不知道如何使用運營商等 我真的不知道python btw。 – Simon

+0

沒有比我在答案中寫的'operator'更多的東西了。我添加了一個基於評論的替代方案。 –

+0

好的,但我怎麼才能將它實現到插件中。 是的,我很愚蠢在這當然,爲什麼我來到這裏:) 感謝您的幫助 – Simon