Aqui vai o comando /bau com sistema de tempo...
Código PHP:
# -*- coding: UTF-8 -*-
#
# Imports
#
import sys
from wolfulus import *
from utils.player import *
from utils.chat import *
from utils.timer import *
from utils.config import *
from utils.native import *
from utils.database import *
import datetime as dt
#
# Command
#
class CommandWarehouse(Command):
def initialize(self):
self.register(config.commands.warehouse, self.command_warehouse)
self.register(config.commands.warehouses, self.command_warehouses)
self.register(config.commands.warehouse_open, self.command_warehouse_open)
self.user = dict()
timer.interval(self.clear_users, 10000)
return
def clear_users(self):
for players in self.user.keys():
if ((dt.datetime.now() - self.user[players]).seconds > 10):
del players
return
def command_warehouse(self, player, arguments):
if not config.commands.warehouse_enabled:
player.message('[Sistema] Desculpe, o comando %s está desabilitado no momento.' % config.commands.warehouse)
return True
if config.commands.warehouse_vip:
if not player.is_vip():
player.message('[Sistema] Desculpe, somente vips podem utilizar o comando %s.' % config.commands.warehouse)
return True
if len(arguments) == 0:
wid = player.get_current_warehouse_id()
if wid is None:
player.message('[Sistema] Erro ao verificar o ID do baú atual.')
else:
player.message('[Sistema] Você está no baú: ' + str(wid))
return True
elif len(arguments) != 1:
player.message('[Sistema] Uso: %s <numero>' % config.commands.warehouse)
return True
if player.get_interface_use() != 0:
player.message('[Sistema] Você não pode trocar de baú no momento.')
return True
if self.user.has_key(player.get_account()):
if ((dt.datetime.now() - self.user[player.get_account()]).seconds <= 10):
player.message('[Sistema] Você precisa esperar 10 segundos para usar o /bau novamente!')
return True
wnumber = int(arguments[0])
if wnumber < 0:
player.message('[Sistema] Número inválido.')
return True
try:
player.set_interface_use(1)
db = database.get('muonline')
cursor = db.cursor()
cursor.execute("{CALL FENRIS_SWITCH_WAREHOUSE ( ?, ? )}", [player.get_account(), wnumber])
row = cursor.fetchone()
Console.debug(str(row[0]))
success = int(row[0])
cursor.close()
if success == 0:
player.message('[Sistema] Erro desconhecido ao trocar seu baú.')
elif success == 1:
self.user[player.get_account()] = dt.datetime.now()
player.message('[Sistema] Baú trocado com successo.')
cursor.commit()
elif success == 2:
count = player.get_extra_warehouse_count()
if count is None:
player.message('[Sistema] Você não possui este baú.')
else:
player.message('[Sistema] Desculpe, mas você só possui %d baú(s).' % (count + 1))
player.message('Você pode adquirir mais baús pelo site.')
else:
player.message('[Sistema] Erro desconhecido ao trocar seu baú.')
player.message('Por favor entre em contato com a administração e')
player.message('informe o código de erro: BAU%d' % success)
Console.error('WAREHOUSE CHANGE: Unknown error %d' % success)
return True
except:
player.message('[Sistema] Erro interno ao trocar seu baú.')
raise
finally:
player.set_interface_use(0)
return True
def command_warehouses(self, player, arguments):
if not config.commands.warehouses_enabled:
player.message('[Sistema] Desculpe, o comando %s está desabilitado no momento.' % config.commands.warehouses)
return True
if len(arguments) != 0:
player.message('[Sistema] Uso: %s' % config.commands.warehouses)
return True
wcount = player.get_extra_warehouse_count()
if wcount is None:
player.message('[Sistema] Erro ao verificar quantidade de baús.')
player.message('[Sistema] Você já abriu seu baú pela primeira vez?')
else:
player.message('[Sistema] Você possui 1 baú padrão + ' + str(wcount) + ' baús adicionais.')
return True
def command_warehouse_open(self, player, arguments):
if not config.commands.warehouse_open_enabled:
player.message('[Sistema] Desculpe, o comando %s está desabilitado no momento.' % config.commands.warehouse_open)
return True
if config.commands.warehouse_open_vip:
if not player.is_vip():
player.message('[Sistema] Desculpe, somente vips podem utilizar o comando %s.' % config.commands.warehouse_open)
return True
if player.get_interface_use():
player.message('[Sistema] Você não pode abrir o baú no momento.')
return True
player.set_interface_use(1)
player.set_interface_type(6)
player.set_interface_state(0)
player.set_target_shop_number(100)
player.set_shop_time(0)
player.set_warehouse_count(0)
gameserver.GDGetWarehouseList(player.get_index(), player.get_address(0x5F))
return True
#
# Initialization
#
commands.register(CommandWarehouse())