2013-07-30 3 views
0

У меня есть плагин, который запускается в python для моего игрового сервера. У меня есть вопрос о получении «Ошибка при обработке команды» в этой части:Получение небольшой ошибки с командой

def cmd_cost(self, data, client=None, cmd=None): 
""" 
^3<command> - Tells you the cost of the specified command. 
"""   
input = self._adminPlugin.parseUserCmd(data) 
weapon_cost = self._command_cost_dict.get('weapon',0) 
item_cost = self._command_cost_dict.get('item',0) 
if not data: 
    client.message('^7 correct syntax is !cost [command]') 
    return False 
else: 
    if len([x for x in data if x.isspace()]) > 0: 
     client.message('^7 correct syntax is !cost [command]') 
     return False 
    else: 
     input_data = data.split(' ',1) 
     command_name = input_data[0] 
     if command_name in ['autobuy','buy']: 
      client.message('^7Weapon cost: ^2$%s ^7Item cost: ^2$%s' % (weapon_cost, item_cost)) 

     if command_name not in self._command_cost_dict and not 'autobuy''buy': 
      client.message('^7 This command needn\'t money or this command doesn\'t exist!') 
      return False 
     command_cost = self._command_cost_dict[command_name] 
     if command_cost == 0: 
      return False 
     client.message('^7 Command %s needs ^2$%s' % (command_name, command_cost)) 
return True 

Это происходит, когда они просят стоимость [...], и это не в списке!. Он должен сказать: «этой команде не нужны деньги или эта команда не существует», но вместо этого она дает ошибку. Надеюсь, кто-то может помочь с этим. Спасибо.

+0

в этой строке 'not 'autobuy''buy'' всегда оценивается как false –

+0

Will-hart, это должен быть ответ, а не комментарий, поскольку он однозначно отвечает на вопрос. –

+1

@Apero - см. Ниже :) –

ответ

1

в этой строке not 'autobuy''buy' всегда оценивает false.

Чтобы исправить это, вы могли бы изменить обижая линию от:

if command_name not in self._command_cost_dict and not 'autobuy''buy': 

к:

elif command_name not in self._command_cost_dict: 

Это будет выполняться, только если команда не autobuy или buy.

+0

Ну, так как я не могу проголосовать, большое спасибо. Работали как шарм :) – Simon

+0

Вы также можете нажать «отметить» рядом с участком голосования, чтобы отметить это как правильный ответ :) Рад, что это помогло –

Смежные вопросы