def whenDie(self, objAttack): if objAttack.getType() == Base.PLAYER: try: #增加仇人 if objAttack.uid not in self.friendCtrl.getEnemy(): DbService.getFriendService().addEnemy( self.uid, objAttack.uid, 0) self.friendCtrl.addEnemy(objAttack) from handler import FriendHandler opstype = MsgDef.FriendOpsClientCmd.ADD_ENEMY self.sendMsg( MsgDef.ServerCmd.FRIEHND_MSG, FriendHandler.processFriendPlayerMsgRet( opstype, objAttack.uid, objAttack.name, objAttack.job, objAttack.gender, objAttack.level, True)) except: ffext.error('whenDie error %s' % (self.name)) pksinVal = 100 if objAttack.guildCtrl.GuildRankWarWhenKillOther(self): #行会排名战 pksinVal = 0 if objAttack.guildCtrl.GuildWarWhenKillOther(self): #行会战进行中 pksinVal = 0 if pksinVal > 0: objAttack.pkSinValue += pksinVal #更新pk罪恶值 objAttack.broadcast( MsgDef.ServerCmd.PK_SIN_UPDATE_OPS, MsgDef.PkSinUpdateRet(0, objAttack.pkSinValue, objAttack.uid) ) #objAttack.sendMsg(MsgDef.ServerCmd.PK_SIN_UPDATE_OPS, MsgDef.PkSinUpdateRet(0, objAttack.pkSinValue)) self.processDrop() if self.mapObj and self.mapObj.copyMapHandler: #try: self.mapObj.copyMapHandler.handleObjDie(self.mapObj, self) #except: #ffext.error('mapObj.copyMapHandler.handleObjDie failed mapname=%s player=%s'%(self.mapObj.mapname, self.name)) self.handleReborn() return
def processFriendListOps(session, msg): friendUid = msg.uid opstype = msg.opstype friendSession = ffext.getSessionMgr().findByUid(friendUid) uid = session.player.uid #用户申请添加别人为好友的语句 if opstype == MsgDef.FriendOpsClientCmd.INVITE_ADD_LISTFRIEND: #如果好友不在线,提示用户,好友不在线,不能添加(此处由客户端判断,理论上是有用户面对面才可以添加好友) if None == friendSession: session.sendMsg( MsgDef.ServerCmd.ERROR_MSG, processErrorMsgRet(opstype, MsgDef.ClientCmd.FRIENDLIST_OPS, '对方不在线,无法添加')) return #判断是否已经为好友(此处由客户端判断,已经为好友的不能再次添加) if None != session.player.friendCtrl.getFriendByUid(friendUid): session.sendMsg( MsgDef.ServerCmd.ERROR_MSG, processErrorMsgRet(opstype, MsgDef.ClientCmd.FRIENDLIST_OPS, '双方已是好友,无法再次添加')) return #判断是否发送过好友申请如未发送,则在对方临时好友列表中添加个人信息 # if None == friendSession.player.friendCtrl.getFriendTempByUid(uid): # #将用户信息添加至好友的临时好友表中 # friendSession.player.friendCtrl.addFriendTemp(session.player) #将好友邀请发送给对方客户端 friendSession.sendMsg( MsgDef.ServerCmd.FRIEHND_MSG, processFriendPlayerMsgRet(opstype, uid, session.player.name, session.player.job, session.player.gender, session.player.level, True)) return #用户确认添加别人为好友的语句 if opstype == MsgDef.FriendOpsClientCmd.VERIFY_ADD_LISTFRIEND: #判断是否在临时好友列表中 # if None == session.player.friendCtrl.getFriendTempByUid(friendUid): # session.sendMsg(MsgDef.ServerCmd.ERROR_MSG, processErrorMsgRet(opstype, MsgDef.ClientCmd.FRIENDLIST_OPS, '不在待验证好友列表中,无法进行确认')) # return. if None == friendSession: session.sendMsg( MsgDef.ServerCmd.ERROR_MSG, processErrorMsgRet(opstype, MsgDef.ClientCmd.FRIENDLIST_OPS, '对方不在线,无法确认添加好友')) return #将好友关系写入数据库 DbService.getFriendService().addFriend(uid, friendUid) session.player.friendCtrl.addFriend(friendSession.player) session.sendMsg( MsgDef.ServerCmd.FRIEHND_MSG, processFriendPlayerMsgRet(opstype, friendUid, friendSession.player.name, friendSession.player.job, friendSession.player.gender, friendSession.player.level, True)) if None != friendSession: friendSession.player.friendCtrl.addFriend(session.player) friendSession.sendMsg( MsgDef.ServerCmd.FRIEHND_MSG, processFriendPlayerMsgRet(opstype, uid, session.player.name, session.player.job, session.player.gender, session.player.level, True)) return #用户拒绝添加别人为好友的语句 if opstype == MsgDef.FriendOpsClientCmd.REFUSE_ADD_LISTFRIEND: #判断是否在临时好友列表中 # if None == session.player.friendCtrl.getFriendTempByUid(friendUid): # session.sendMsg(MsgDef.ServerCmd.ERROR_MSG, processErrorMsgRet(opstype, MsgDef.ClientCmd.FRIENDLIST_OPS, '不在待验证好友列表中,无法进行拒绝')) # return #忽略好友申请成功,将成功信息反馈给客户端 session.sendMsg( MsgDef.ServerCmd.FRIEHND_MSG, processFriendPlayerMsgRet(opstype, friendUid, '', 0, 0, 0, True)) if None != friendSession: friendSession.sendMsg( MsgDef.ServerCmd.FRIEHND_MSG, processFriendPlayerMsgRet(opstype, uid, session.player.name, session.player.job, session.player.gender, session.player.level, True)) return #用户删除好友的语句 if opstype == MsgDef.FriendOpsClientCmd.DEL_LISTFRIEND: #判断是否为好友 # if None == session.player.friendCtrl.getFriendByUid(friendUid): # session.sendMsg(MsgDef.ServerCmd.ERROR_MSG, processErrorMsgRet(opstype, MsgDef.ClientCmd.FRIENDLIST_OPS, '不是好友,无法进行删除')) # return #从数据库中将好友关系删除 DbService.getFriendService().delFriend(uid, friendUid) session.player.friendCtrl.delFriend(friendUid) session.sendMsg( MsgDef.ServerCmd.FRIEHND_MSG, processFriendPlayerMsgRet(opstype, friendUid, '', 0, 0, 0, True)) #数据库操作成功,给用户返回删除好友正常的信息 if None != friendSession: #如果好友在线,则将好友删除信息反馈给好友 friendSession.player.friendCtrl.delFriend(uid) friendSession.sendMsg( MsgDef.ServerCmd.FRIEHND_MSG, processFriendPlayerMsgRet(opstype, uid, '', 0, 0, 0, True)) return #将ID加入仇人列表中 #将ID加入仇人列表中 if opstype == MsgDef.FriendOpsClientCmd.ADD_ENEMY: #如果对方不在线,提示用户,对方不在线,不能添加 if None == friendSession: session.sendMsg( MsgDef.ServerCmd.ERROR_MSG, processErrorMsgRet(opstype, MsgDef.ClientCmd.FRIENDLIST_OPS, '对方不在线,无法添加')) return if checkUserEnemy(session, friendUid): session.sendMsg( MsgDef.ServerCmd.ERROR_MSG, processErrorMsgRet(opstype, MsgDef.ClientCmd.FRIENDLIST_OPS, '对方已在您的仇人列表中')) return #将好友关系写入数据库 DbService.getFriendService().addEnemy(uid, friendUid, 0) session.player.friendCtrl.addEnemy(friendSession.player) session.sendMsg( MsgDef.ServerCmd.FRIEHND_MSG, processFriendPlayerMsgRet(opstype, friendUid, friendSession.player.name, friendSession.player.job, friendSession.player.gender, friendSession.player.level, True)) return #将ID从仇人列表中删除 if opstype == MsgDef.FriendOpsClientCmd.DEL_ENEMY: if not checkUserEnemy(session, friendUid): session.sendMsg( MsgDef.ServerCmd.ERROR_MSG, processErrorMsgRet(opstype, MsgDef.ClientCmd.FRIENDLIST_OPS, '对方不在您的仇人列表中')) return #将好友关系写入数据库 DbService.getFriendService().delEnemy(uid, friendUid, 0) session.player.friendCtrl.delEnemyByUid(friendUid) session.sendMsg( MsgDef.ServerCmd.FRIEHND_MSG, processFriendPlayerMsgRet(opstype, friendUid, '', 0, 0, 0, True)) return #将ID加入屏蔽列表中 if opstype == MsgDef.FriendOpsClientCmd.ADD_SHIELD: #如果对方不在线,提示用户,对方不在线,不能添加 if None == friendSession: session.sendMsg( MsgDef.ServerCmd.ERROR_MSG, processErrorMsgRet(opstype, MsgDef.ClientCmd.FRIENDLIST_OPS, '对方不在线,无法添加')) return if checkUserShieldPerson(session, friendUid): session.sendMsg( MsgDef.ServerCmd.ERROR_MSG, processErrorMsgRet(opstype, MsgDef.ClientCmd.FRIENDLIST_OPS, '对方已在您的屏蔽列表中')) return #将好友关系写入数据库 DbService.getFriendService().addEnemy(uid, friendUid, 1) session.player.friendCtrl.addShieldPerson(friendSession.player) session.sendMsg( MsgDef.ServerCmd.FRIEHND_MSG, processFriendPlayerMsgRet(opstype, friendUid, friendSession.player.name, friendSession.player.job, friendSession.player.gender, friendSession.player.level, True)) return #将ID从仇人列表中删除 if opstype == MsgDef.FriendOpsClientCmd.DEL_SHIELD: if not checkUserShieldPerson(session, friendUid): session.sendMsg( MsgDef.ServerCmd.ERROR_MSG, processErrorMsgRet(opstype, MsgDef.ClientCmd.FRIENDLIST_OPS, '对方不在您的屏蔽列表中')) return #将好友关系写入数据库 DbService.getFriendService().delEnemy(uid, friendUid, 1) session.player.friendCtrl.deShieldPersonByUid(friendUid) session.sendMsg( MsgDef.ServerCmd.FRIEHND_MSG, processFriendPlayerMsgRet(opstype, friendUid, '', 0, 0, 0, True)) return