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}
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)
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)
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}
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)}