def post(self): bodyData = self.request.body dictData = MessageTools.decode(bodyData) udid = dictData['udid'] name = dictData['name'] cdkey = dictData.get('cdkey', '') returnData = MessData() player = None open_activate = True # 账户验证 name = name.strip() contains = name.find(';') >= 0 or name.find(' ') > 0 or len(name) == 0 charCount = len(name) max_length = gloabalBase.getValue('MAX_LENGTH_OF_NAME') max_length = int(max_length) # 长度验证 if contains or charCount > max_length: returnData = MessData(ErrorCode.name_illegal) # 非法字符验证 elif illegalWordManager.ContainIllegalWord(name): returnData = MessData(ErrorCode.name_illegal) # 是否已被使用验证 elif not playerDataManager.isSign(udid): if playerDataManager.isNameUsed(name): returnData = MessData(ErrorCode.name_used) else: playerDataManager.createAccount(udid,name) player = playerDataManager.loginUseUidd(udid) player.connect_id = playerDataManager.create_connect_id(player.player_id) # 重新生成连接ID player.revial = 1 returnData.data = player player.server_date_time = GameTools.getDateTimeNowString() # 通过 else: player = playerDataManager.loginUseUidd(udid) player.server_date_time = GameTools.getDateTimeNowString() player.connect_id = playerDataManager.create_connect_id(player.player_id) # 重新生成连接ID returnData.data = player player.calculateOfflineResource() message = MessageTools.encode(returnData,False) if player != None: # 重置离线奖励 player.offlineCash = 0 # 使用cdkey if open_activate is True: cdkey_obj.is_use = True cdkey_obj.usedtime = datetime.datetime.now() cdkey_obj.use_udid = udid cdkey_obj.save() self.write(message) self.finish()
def _process(self, data): if data['udid'] is False or data['price'] is False: self.write({'result':-1, 'msg':'params error'}) self.finish() return playerID = self.getPlayeridByudid(data['udid']) if playerID == -1: self.write({'result':-1, 'msg':'udid does not existd'}) self.finish() return player = playerDataManager.getPlayerByPlayerid(playerID) if player == None: # 玩家信息未在内存中从数据库读取 player = playerDataManager.loginUseUidd(data['udid']) got_rmb_num = int(data['price']) # 使用RMB数量 got_gems_num = got_rmb_num*10 # 添加钻石数量 got_gems_num = int(got_gems_num) got_rmb_num = int(got_rmb_num) player.addResource(ResourceType.gems,got_gems_num) # 添加资源 # 更新玩家充值总数 player.recharge_total_num += got_rmb_num self.write({'result':1, 'msg':got_gems_num}) self.finish() if player != None: playerDataManager.checkNeedSave2DB(player.player_id) # 写入数据库
def post(self): bodyData = self.request.body dictData = MessageTools.decode(bodyData) udid = dictData['udid'] returnData = None player = None playerID = self.getPlayeridByudid(udid) # 使用udid从数据库读取玩家ID if playerID == -1: returnData = MessData(ErrorCode.have_not_sign) # 玩家未注册 else: returnData = MessData() player = playerDataManager.getPlayerByPlayerid(playerID) # 登录成功,使用playerid获取玩家信息 if player == None: # 玩家信息未在内存中从数据库读取 player = playerDataManager.loginUseUidd(udid) player.connect_id = playerDataManager.create_connect_id(player.player_id) # 重新生成连接ID returnData.data = player player.server_date_time = GameTools.getDateTimeNowString() else: player.connect_id = playerDataManager.create_connect_id(player.player_id) # 重新生成连接ID returnData.data = player player.server_date_time = GameTools.getDateTimeNowString() if player != None: player.calculateOfflineResource() # 结算离线奖励 message = MessageTools.encode(returnData,False) if player != None: # 重置离线奖励 player.offlineCash = 0 self.write(message) self.finish()
def reset_player_login_gifts_status(): player = playerDataManager.loginUseUidd('3a8ec7756bb03c49c97c9ad1a92a6e8f06922799') player.recharge_get_gifts_status['1'] = 0 player.recharge_get_gifts_status['2'] = 0 player.recharge_get_gifts_status['3'] = 0 player.saveData2DB()
for i in range(2): udid += random.choice('abcdefghkmnpqrstuvwxyz') for i in range(6): udid += random.choice('0123456789') name = '' for i in range(2): name += random.choice(namelist) if random.choice([True, False]): if random.choice([True, False]): name += '.' name += random.choice('ABCDEFGHIJKLMOPQRSTUVWXYZ') if not playerDataManager.isSign(udid): if playerDataManager.isNameUsed(name): continue else: playerDataManager.createAccount(udid,name) player = playerDataManager.loginUseUidd(udid) player.server_date_time = GameTools.getDateTimeNowString() player.cash = 10000000 player.skillUpgrade(0,static.pvp_level_limit) player.saveData2DB() rankManager.addRank(player.player_id) else: continue count -= 1