Beispiel #1
0
def NetConnLost_2(dynamicId):
    '''loginout'''
    player = PlayersManager().getPlayerBydynamicId(dynamicId)
    if not player:
        return True
    try:
        tag = player.baseInfo.getInstancetag()  #副本动态Id
        InstanceManager().dropInstanceById(tag)  #如果角色下线的时候在副本中,就清空副本
        player.afk.stopMeditation()  #在线挂机结算
        player.updatePlayerDBInfo()
        #        player.qhtime.dbupdate()#记录角色强化冷却时间
        player.nobility.dbupdate()  #记录爵位限制信息
        player.petShop.dbupdate()  #记录宠物商店信息
        #        publicnoderemote.callRemote('dropPCharacter',player.baseInfo.id)
        PlayersManager().dropPlayer(player)
        state = player.baseInfo.getState()
        if state == 0:
            sceneId = player.baseInfo.getTown()
            scene = MapManager().getMapId(sceneId)
            scene.dropPlayer(player.baseInfo.id)
            if player.baseInfo.getState() == 0:
                scene.dropPlayer(player.baseInfo.id)
                for petId, pet in player.pet._pets.items():
                    if pet.getFlowFlag():
                        scene.dropPet(petId)
    except Exception as ex:
        log.err(ex)
    finally:
        return True
Beispiel #2
0
def NetConnLost_2(dynamicId):
    '''loginout'''
    player = PlayersManager().getPlayerBydynamicId(dynamicId)
    if not player:
        return True
    try:
        tag=player.baseInfo.getInstancetag() #副本动态Id
        InstanceManager().dropInstanceById(tag)#如果角色下线的时候在副本中,就清空副本
        player.afk.stopMeditation()#在线挂机结算
        player.updatePlayerDBInfo()
#        player.qhtime.dbupdate()#记录角色强化冷却时间
        player.nobility.dbupdate()#记录爵位限制信息
        player.petShop.dbupdate()#记录宠物商店信息
#        publicnoderemote.callRemote('dropPCharacter',player.baseInfo.id)
        PlayersManager().dropPlayer(player)
        state = player.baseInfo.getState()
        if state == 0:
            sceneId = player.baseInfo.getTown()
            scene = MapManager().getMapId(sceneId)
            scene.dropPlayer(player.baseInfo.id)
            if player.baseInfo.getState()==0:
                scene.dropPlayer(player.baseInfo.id)
                for petId,pet in player.pet._pets.items():
                    if pet.getFlowFlag():
                        scene.dropPet(petId)
    except Exception as ex:
        log.err(ex) 
    finally:
        return True
Beispiel #3
0
def DropCharacterInNode_612(dynamicId,characterId):
    '''移除角色在当前场景(副本)服务中的实例
    '''
    player = PlayersManager().getPlayerByID(characterId)
    if not player:
        return False
    if player.baseInfo.getState()==0:
        placeId = player.baseInfo.getTown()
        scene = MapManager().getMapId(placeId)
        scene.dropPlayer(characterId)
        for petId in player.matrix._matrixSetting.values():
            if petId>0:
                scene.dropPet(petId)
    player.stopAllTimer()
    PlayersManager().dropPlayerByID(characterId)
    return True
Beispiel #4
0
def ModifyPetStatus(dynamicId, characterId, petId):
    '''更新宠物的携带状态'''
    from app.scense.core.map.MapManager import MapManager
    player = PlayersManager().getPlayerByID(characterId)
    if not player:
        return {'result': False, 'message': Lg().g(18)}
    result = player.pet.updateShow(petId)
    msg = result.get('message', '')
    if result.get('result'):
        if result.get('data'):
            if player.baseInfo.getState() == 0:  #如果角色在场景中
                sceneId = player.baseInfo.getTown()
                scene = MapManager().getMapId(sceneId)
                scene.dropPet(petId)
    if msg:
        pushOtherMessage(905, msg, [dynamicId])
    return result
Beispiel #5
0
def ModifyPetStatus(dynamicId, characterId, petId):
    """更新宠物的携带状态"""
    from app.scense.core.map.MapManager import MapManager

    player = PlayersManager().getPlayerByID(characterId)
    if not player:
        return {"result": False, "message": Lg().g(18)}
    result = player.pet.updateShow(petId)
    msg = result.get("message", "")
    if result.get("result"):
        if result.get("data"):
            if player.baseInfo.getState() == 0:  # 如果角色在场景中
                sceneId = player.baseInfo.getTown()
                scene = MapManager().getMapId(sceneId)
                scene.dropPet(petId)
    if msg:
        pushOtherMessage(905, msg, [dynamicId])
    return result