Ejemplo n.º 1
0
def terminateLobbyOperation(dynamicId,characterId,operaType):
    '''
          中断大厅操作
    @param operaType: 操作类型:1、训练   2、卖艺
    '''
    player = PlayersManager().getPlayerByID(characterId)
    if player is None:
        return {'result':False,'message':Lg().g(18)}

    level = player.level.getLevel()
    lobbyRecord = dbaccess.getPlayerLobbyRecord(characterId)
    if lobbyRecord[2] == None or lobbyRecord[3] == None:
        return {'result':False, 'message':u'您的大厅操作记录不正确'}
    now = datetime.datetime.now()
    duration = int(((lobbyRecord[3] - now).seconds) / 3600)
    bonus = 0
    exp = player.level.getExp()
    if operaType == 1:
        if lobbyRecord[4] == 1:#双倍奖励
            bonus = int(math.pow((level + 1) * 33, 1.15) * duration * 2)
        else:
            bonus = int(math.pow((level + 1) * 33, 1.15) * duration)
            exp += bonus
        dbaccess.updatePlayerInfo(characterId, {'status':1, 'exp':exp})
        player.level.setExp(exp)
        player.level.updateLevel()
        player.baseInfo.setStatus(1)
    else:
        pass
    
    return {'result':True, 'data':{'bonus':bonus, 'level':player.level.getLevel()}}



    
Ejemplo n.º 2
0
def doWhenLobbyOperateFinsihed(attrs, player):
    '''当大厅操作时间结束时'''
    now = datetime.datetime.now()
    lobbyRecord = dbaccess.getPlayerLobbyRecord(player.baseInfo.id)
    finishTime = lobbyRecord[3]
    if (not finishTime) or (finishTime > now):
        return
    dbaccess.updatePlayerInfo(player.baseInfo.id, attrs)
    #    pushMessage(str(player.baseInfo.id), 'finish')
    player.baseInfo.setStatus(1)
    player.finance.setCoin(attrs['coin'])
    player.level.setExp(attrs['exp'])
    player.level.updateLevel()
Ejemplo n.º 3
0
def doWhenLobbyOperateFinsihed(attrs, player):
    '''当大厅操作时间结束时'''
    now = datetime.datetime.now()
    lobbyRecord = dbaccess.getPlayerLobbyRecord(player.baseInfo.id)
    finishTime = lobbyRecord[3]
    if (not finishTime) or (finishTime > now):
        return
    dbaccess.updatePlayerInfo(player.baseInfo.id, attrs)
#    pushMessage(str(player.baseInfo.id), 'finish')
    player.baseInfo.setStatus(1)
    player.finance.setCoin(attrs['coin'])
    player.level.setExp(attrs['exp'])
    player.level.updateLevel()
Ejemplo n.º 4
0
def terminateLobbyOperation(dynamicId, characterId, operaType):
    '''
          中断大厅操作
    @param operaType: 操作类型:1、训练   2、卖艺
    '''
    player = PlayersManager().getPlayerByID(characterId)
    if player is None:
        return {'result': False, 'message': Lg().g(18)}

    level = player.level.getLevel()
    lobbyRecord = dbaccess.getPlayerLobbyRecord(characterId)
    if lobbyRecord[2] == None or lobbyRecord[3] == None:
        return {'result': False, 'message': u'您的大厅操作记录不正确'}
    now = datetime.datetime.now()
    duration = int(((lobbyRecord[3] - now).seconds) / 3600)
    bonus = 0
    exp = player.level.getExp()
    if operaType == 1:
        if lobbyRecord[4] == 1:  #双倍奖励
            bonus = int(math.pow((level + 1) * 33, 1.15) * duration * 2)
        else:
            bonus = int(math.pow((level + 1) * 33, 1.15) * duration)
            exp += bonus
        dbaccess.updatePlayerInfo(characterId, {'status': 1, 'exp': exp})
        player.level.setExp(exp)
        player.level.updateLevel()
        player.baseInfo.setStatus(1)
    else:
        pass

    return {
        'result': True,
        'data': {
            'bonus': bonus,
            'level': player.level.getLevel()
        }
    }