Ejemplo n.º 1
0
    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()
Ejemplo n.º 2
0
    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)    # 写入数据库
Ejemplo n.º 3
0
    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()
Ejemplo n.º 4
0
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()
Ejemplo n.º 5
0
    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