예제 #1
0
def sendMessage(dynamicId,
                characterId,
                topic,
                content,
                linkData,
                tonickname=None):
    '''发送聊天信息
    @param dynamicId: int 客户端的id
    @param characterId: int 角色的id
    @param topic: int 频道的编号    
    @param content: string 发送的消息内容
    @param linkData: dict list 连接信息内容
    '''

    chater = ChaterManager().getChaterByCharacterId(characterId)
    if not chater:
        return {'result': False, 'message': Lg().g(639)}
    if topic == 7:
        toplayer = ChaterManager().getChaterByCharacterId(characterId)
        if not toplayer:
            return {'result': False, "message": Lg().g(640)}
        else:
            topic = toplayer.baseInfo.id

    targetList = []
    chaterName = chater.getCharacterName()
    profession = chater.getProfession()

    if topic == 1:  #世界频道聊天
        idlist = ChaterManager().getAlldynamicId()
        targetList = idlist
    elif topic == 2:  #当前 相当于同场景
        roomId = chater.getRoomId()
        targetList = ChatRoomManager().getRoomMember(roomId)

    elif topic == 3:  #国
        gid = chater.guildid
        if gid < 1:
            return {'result': False, "message": Lg().g(641)}
        else:
            #            return {'result':False,"message":u"国聊天功能暂未开放,敬请期待"}
            #            idlist = ChaterManager().getAlldynamicId()
            #            targetList=idlist
            #            content=u"国聊天暂未开放"
            plist = GuildManager().getdtidListBygid(gid)
            if plist:
                targetList = list(plist)


#        gid=player.guild.getID()#返回行会id
#        resut=setGuildPlayerDynamicId(gid,targetList) #设置添加targetList,国聊天角色动态id列表,返回是否成功
#        if not resut:
#            return {'result':False,"message":Lg().g(641)}
    result = doGmCommand(characterId, content)
    #    if not result:
    pushChatMessage(topic, characterId, chaterName, profession,
                    dbshieldword.replaceIllegalChar(content), linkData,
                    targetList)
    return {'result': True}
예제 #2
0
def JoinRoom(characterId,roomId,scenename):
    '''
    @param characterId: int character id
    @param roomId: int room id
    '''
    chater = ChaterManager().addChaterByid(characterId)
    if not chater:
        return
    clientId = chater.getDynamicId()
    oldroomId = chater.getRoomId()
    chater.setSceneName(scenename)
    if not oldroomId or clientId < 0:
        return
    if oldroomId :
        ChatRoomManager().leaveRoom(clientId, oldroomId)
    chater.setRoomId(roomId)
    ChatRoomManager().joinRoom(clientId, roomId)
예제 #3
0
def leaveRoom(characterId):
    '''
    @param characterId: int character id
    @param roomId: int room id
    '''
    chater = ChaterManager().getChaterByCharacterId(characterId)
    if not chater:
        return
    clientId = chater.getDynamicId()
    oldroomId = chater.getRoomId()
    if not oldroomId or clientId < 0:
        return
    if oldroomId :
        ChatRoomManager().leaveRoom(clientId, oldroomId)
예제 #4
0
파일: chat.py 프로젝트: chekwind/Soccer
def sendMessage(dynamicId,
                characterId,
                topic,
                content,
                linkData,
                tonickname=None):
    '''发送聊天信息
	@param dynamicId:int 客户端的id
	@param characterId:int 角色的id
	@param topic :int 频道的编号
	@param content:string 发送的消息内容
	@param linkData: dict list 连接信息内容
	'''

    chater = ChaterManager().getChaterByCharacterId(characterId)
    if not chater:
        return {'result': False, 'message': Lg().g(639)}
    if topic == 7:
        toplayer = ChaterManager().getChaterByCharacterId(characterId)
        if not toplayer:
            return {'result': False, "message": Lg().g(640)}
        else:
            topic = toplayer.baseInfo.id

    targetList = []
    chaterName = chater.getCharacterName()

    if topic == 1:  #世界聊天
        idlist = ChaterManager().getAlldynamicId()
        targetList = idlist
    elif topic == 2:  #当前场景
        roomId = chater.getRoomId()
        targetList = ChatRoomManager().getRoomMember(roomId)
    elif topic == 3:  #公会
        gid = chater.guildid
        if gid < 1:
            return {'result': False, "message": Lg().g(641)}
        else:
            plist = GuildManager().getdtidListBygid(gid)
            if plist:
                targetList = list(plist)

    result = doGmCommand(characterId, content)

    pushChatMessage(topic, characterId, chaterName,
                    dbShieldWord.replaceIllegalChar(content), linkData,
                    targetList)
    return {'result': True}
예제 #5
0
파일: chat.py 프로젝트: chekwind/Soccer
def loginToChatServer(dynamicId, characterId, roomId):
    '''登录聊天服务器
	@param dynamicId:int 客户端的id
	@param characterId:int int角色的id
	'''
    chater = ChaterManager().addChaterByid(characterId)
    if chater:
        ChaterManager().updateOnland(characterId, dynamicId)
        chater.setRoomId(roomId)
        ChatRoomManager().joinRoom(dynamicId, roomId)
    gid = chater.guildid  #公会id 没有公会默认0
    dtid = chater.dynamicId
    GuildManager().add(dtid, gid)
    targetList = []
    targetList.append(dynamicId)
    content = Lg().g(638)
    pushChatMessage(5, -1, Lg().g(128), content, [], targetList)
    return {'result': True, 'message': Lg().g(25)}