def zudui_4306(dynamicId,request_proto): '''踢出成员''' from app.scense.protoFile.zudui import TiRen4306_pb2 argument=TiRen4306_pb2.TiRenRequest() argument.ParseFromString(request_proto) response=TiRen4306_pb2.TiRenResponse() pid=argument.id #队长角色id cid=argument.roleId #被踢出者角色id rs=TeamFight().TCTeamPlayer(pid, cid) response.message=rs.get('message') response.result=rs.get('result') return response.SerializeToString()
def zudui_4303(player,dynamicId,pid,wz,dwid): '''角色加入到队伍中 @param pid: int 角色id @param player: obj 角色实例 @param wz: int 所选阵法位置 @param dwid: int 队伍id ''' from app.scense.protoFile.zudui import JoinDuiWu4303_pb2 response=JoinDuiWu4303_pb2.JoinDuiWuResponse() player = cPickle.loads(player) result=TeamFight().TeamAddPlayer(player, dwid, wz) response.message=result.get('message') response.result=result.get('result') response.rdwId=result.get('tid') return response.SerializeToString()
def TeamFighting(pid): '''开始多人副本战斗''' from app.scense.core.teamfight.TeamFight import TeamFight from app.scense.applyInterface import teamInstanceDrop if not configure.isteamInstanceTime(17): return teamid=TeamFight().getTeamidByPid(pid) if teamid==0: return{'result':False,'message':Lg().g(260)} teaminfo=TeamFight().getteaminfoByteamid(teamid) if not teaminfo.pid==pid: return{'result':False,'message':Lg().g(261)} if teaminfo.count<2: pushObjectNetInterface.pushOtherMessageByCharacterId(Lg().g(646), [pid]) return{'result':False,'message':Lg().g(262)} PlayerList=teaminfo.players.values()#角色实例列表 typeid=teaminfo.type msgs={}#记录角色获得物品 playeritem={}#记录角色获得物品信息 key:角色id,value:[{'id':5201,'count':2}]物品列表[物品id和物品数量] playerzf=teaminfo.getZfInfo()#角色阵法位置 rs=getInfo(typeid) MosterList=rs.get('MosterList')#怪物实例列表 mosterwz=rs.get('mosterwz')#怪物阵法位置 ItemList=rs.get('ItemList')#物品实例列表 zy=rs.get('zy')#资源id fightinfo=fight_new.DoGroupFight(PlayerList, playerzf, MosterList, mosterwz) if fightinfo.battleResult==1: pklist=teaminfo.players.keys() for pk in pklist: msgs[pk]=u'' ItemList=teamInstanceDrop.getTeamDropListItemidCountByTypeid(typeid) #[{'id':5201,'count':2}] playeritem[pk]=ItemList for item in ItemList: itemTemplateId=item.get('id') iname=dbaccess.all_ItemTemplate[itemTemplateId]['name']#物品名称 msgs[pk]=msgs[pk]+u'%s * %s\n'%(iname,item.get('count')) gm="player.pack.putNewItemsInPackage(%s,%s)"%(itemTemplateId,item.get('count')) # publicnoderemote.callRemote("updateplayerInfo",pk,gm) else:#战斗失败 for pk in teaminfo.players.keys(): msgs[pk]=Lg().g(143) for pk in teaminfo.players.keys(): msg=msgs.get(pk) TeamFight().addfightcount(pk, typeid) pushObjectNetInterface.getzudui_4308(fightinfo, [pk], msg,zy) TeamFight().dismissTeam(teamid)
def cleanTeamfight(): '''每天晚上24点将所有角色的祝福次数设置为0''' TeamFight().ct = {} #每天清0多人副本战斗次数限制 reactor.callLater(3600 * 24, cleanTeamfight)