def rc_guildDonate(self, id, num): guildId = self.player.guild.GetGuildId() if not guildId: return 0, errcode.EC_NO_GUILD rpc_guild = get_rpc_guild(guildId) if not rpc_guild: return 0, errcode.EC_NOT_FOUND_GUILD itemRes = Game.res_mgr.res_item.get(id) if not itemRes: return 0, errcode.EC_NORES dCost = {id: num} # 扣道具 respBag = self.player.bag.costItem(dCost, constant.ITEM_COST_GUILD_DONATE, wLog=True) if not respBag.get("rs", 0): return 0, errcode.EC_GUILD_DONATE_NOT_ENOUGH iAddExp = int(itemRes.arg1) * num exp, level = rpc_guild.addExp(iAddExp) # 打包返回信息 dUpdate = self.player.packRespBag(respBag) resp = { "allUpdate": dUpdate, "exp": exp, "level": level, } return 1, resp
def getSceneTaskInfo(self): taskList = [] if not self.guildId: return taskList from game.mgr.guild import get_rpc_guild rpc_guild = get_rpc_guild(self.guildId) if not rpc_guild: return taskList guildLv = rpc_guild.GetLevel() for type, resList in Game.res_mgr.res_type_guildTask.items(): info = self.GetSceneTaskInfo(type) if not info: for res in resList: if res.minLv <= guildLv <= res.maxLv: info = { "taskId": res.id, "num": 0, "status": 0, "refeNum": 0 } break if info: self.SetSceneTaskInfo(type, info) if info: taskList.append(info) return taskList
def rc_getGuildSxReward(self, id): sxBarRes = Game.res_mgr.res_guildSxBar.get(id) if not sxBarRes: return 0, errcode.EC_NORES getList = self.player.guild.GetTodaySXGetList() if id in getList: return 0, errcode.EC_GUILD_TODAY_HAS_SX guildId = self.player.guild.GetGuildId() if not guildId: return 0, errcode.EC_NO_GUILD rpc_guild = get_rpc_guild(guildId) if not rpc_guild: return 0, errcode.EC_NOT_FOUND_GUILD sxInfo = rpc_guild.GetSxInfo() sxBar = sxInfo.get("sxBar", 0) if sxBar < sxBarRes.num: return 0, errcode.EC_GUILD_SX_REWARD_NOT_ENOUGH # 上香奖励 respBag = self.player.bag.add(sxBarRes.reward, constant.ITEM_ADD_GUILD_SX_REWARD, wLog=True) getList.append(id) self.player.guild.SetTodaySXGetList(getList) # 打包返回信息 dUpdate = self.player.packRespBag(respBag) resp = { "getList": getList, "allUpdate": dUpdate, } return 1, resp
def rc_gongchengGiveup(self,cityid): from game.mgr.room import get_rpc_gongcheng rpc_gongcheng = get_rpc_gongcheng() if not rpc_gongcheng: return 0, errcode.EC_GETD_RPC_ROOM_FAIL rrv = rpc_gongcheng.gongchengGiveup(self.player.id,cityid) if not rrv: return 0, errcode.EC_GONGCHENG_ERR if rrv["err"]!=0: return 0, rrv["err"] guildId = self.player.guild.GetGuildId() if not guildId: return 0, errcode.EC_NO_GUILD rpc_guild = get_rpc_guild(guildId) if not rpc_guild: return 0, errcode.EC_NOT_FOUND_GUILD rpc_guild.GiveupCity() dUpdate = {} dUpdate["guildInfo"] = self.player.guild.to_init_data() resp = { "allUpdate": dUpdate, } return 1,resp
def rc_guildFreeExRef(self): guildId = self.player.guild.GetGuildId() if not guildId: return 0, errcode.EC_NO_GUILD rpc_guild = get_rpc_guild(guildId) if not rpc_guild: return 0, errcode.EC_NOT_FOUND_GUILD iGuildLv = rpc_guild.GetLevel() guildlvRes = Game.res_mgr.res_guildlv.get(iGuildLv) if not guildlvRes: return 0, errcode.EC_NORES now = int(time.time()) if now < self.player.guild.refTime: return 0, errcode.EC_GUILD_EX_FREE_REF_TIME_ERR self.player.guild.reSetRefTime() exList = [] for i in range(4): exId = utility.Choice(guildlvRes.exchange) exList.append((exId, 0)) self.player.guild.SetExList(exList) # 打包返回信息 dUpdate = {} dUpdate["guildInfo"] = { "scene": { "refTime": self.player.guild.refTime, "exList": self.player.guild.to_exchange_data() } } resp = { "allUpdate": dUpdate, } return 1, resp
def getGuildName(self): guildName = '' from game.mgr.guild import get_rpc_guild rpc_guild = get_rpc_guild(self.guildId) if rpc_guild: guildName = rpc_guild.getName() return guildName
def Add_BgCoin(self, num): if not self.guildId: return from game.mgr.guild import get_rpc_guild rpc_guild = get_rpc_guild(self.guildId) if not rpc_guild: return rpc_guild.Add_BgCoin(self.owner.id, num)
def rc_revengeHusongCar(self,id): yabiaoDoubleTime = Game.res_mgr.res_common.get("yabiaoDoubleTime") if not yabiaoDoubleTime: return 0, errcode.EC_NORES if str(id) not in self.player.yabiao.history: return 0, errcode.EC_REVENGEHUSONG_NOIN if self.player.yabiao.history[str(id)]["type"]!=0: return 0, errcode.EC_REVENGEHUSONG_NOTYPE res = Game.res_mgr.res_yabiao.get(self.player.yabiao.history[str(id)]["data"]["data"]["quality"]) if not res: return 0, errcode.EC_NORES from game.mgr.logicgame import LogicGame proxy = get_proxy_by_addr(self.player.yabiao.history[str(id)]["data"]["addr"], LogicGame._rpc_name_) if not proxy: return 0, errcode.EC_GETD_LOGIC_PROXY_ERR fdata = self.player.GetFightData() bhname = "" from game.mgr.guild import get_rpc_guild rpc_guild = get_rpc_guild(self.player.guild.GetGuildId()) if rpc_guild: bhname = rpc_guild.getName() historydata={"id":self.player.id,"endtime":0,"name":self.player.name,"data":{"quality":self.player.yabiao.history[str(id)]["data"]["data"]["quality"],"power":self.player.base.fa,"bhname":bhname,"sex":self.player.base.GetSex()}} resp = proxy.revengeHusongCar(self.player.id,{"id":self.player.yabiao.history[str(id)]["data"]["id"]},fdata,historydata) if not resp: return 0, errcode.EC_CALL_LOGIC_PROXY_ERR self.player.yabiao.modfiyHistoryFinish(id) respBag = {} fightResult = resp["fightLog"]["result"].get("win", 0) if fightResult: mul=1 currHour = gtime.current_hour() if currHour in yabiaoDoubleTime.arrayint1: mul=2 reward = {} for kk, vv in res.rob.items(): reward[kk]=vv*mul respBag = self.player.bag.add(reward, constant.ITEM_ADD_REVREWARD, wLog=True) dUpdate = self.player.packRespBag(respBag) dUpdate["jiebiao"] = self.player.yabiao.to_init_data() resp["allUpdate"] = dUpdate return 1, resp
def rc_getEnterGuild(self): guildId = self.player.guild.GetGuildId() if not guildId: return 0, errcode.EC_NO_GUILD rpc_guild = get_rpc_guild(guildId) if not rpc_guild: return 0, errcode.EC_NOT_FOUND_GUILD resp = rpc_guild.getApplyData() return 1, resp
def rc_gongchengGetData(self): from game.mgr.room import get_rpc_gongcheng rpc_gongcheng = get_rpc_gongcheng() if not rpc_gongcheng: return 0, errcode.EC_GETD_RPC_ROOM_FAIL self.player.gongcheng.enter() data = self.player.getGongchengInfo() import app rrv = rpc_gongcheng.hello(5,self.player.id,config.serverNo,app.addr,self.player.name,data,0,0) if not rrv: return 0, errcode.EC_CALL_RPC_ROOM_FAIL rrv = rpc_gongcheng.getByServerNo(5,config.serverNo) if not rrv: return 0, errcode.EC_CALL_RPC_ROOM_FAIL ghid=self.player.guild.GetGuildId() ghname = "" ghcolor = 0 ghlv = 0 guildRpc = get_rpc_guild(ghid) if guildRpc: ghname = guildRpc.getName() ghcolor = guildRpc.getColor() ghlv = guildRpc.GetLevel() if ghid==0: return 0, errcode.EC_NO_GUILD fdata=self.player.GetFightData() pdata=self.player.GetAllPetData() rrv3=rpc_gongcheng.gongchengFightData(self.player.id,fdata,pdata,ghid,ghname,ghcolor,ghlv,self.player.gongcheng.serverNo) if not rrv3: return 0, errcode.EC_CALL_RPC_ROOM_FAIL if rrv3["err"]!=0: return 0, rrv3["err"] rrv2=rpc_gongcheng.gongchengGetAllTeam(self.player.id) if not rrv2: return 0, errcode.EC_CALL_RPC_ROOM_FAIL if rrv2["err"]!=0: return 0, rrv2["err"] # a=bytearray(os.urandom(100*1024)) # rrv["common"]["xxyy"]=a # retval={"list":rrv["v"],"common":rrv["common"],"team":rrv2["team"],"myteam":rrv2["myteam"]} retval={"list":[],"common":rrv["common"],"team":rrv2["team"],"myteam":rrv2["myteam"]} # 同步攻城任务数据 self.player.gongcheng.rsyncRpcGongchengTaskData() return 1,retval
def to_init_data(self): if self.guildId: if not self.refTime or int(time.time()) >= self.refTime: self.reSetRefTime() self.init_exchange_data() init_data = {} init_data["guildId"] = self.guildId init_data["sx"] = { "getList": self.GetTodaySXGetList(), "finish": self.GetTodaySXFinish(), } actTaskList = [] # actTaskList.extend(self.owner.task.to_GuildActTasks_data()) # actTaskList.extend(self.owner.task.to_GuildActRewardTasks_data()) init_data["act"] = { "actLv": self.actLv, "actExp": self.actExp, "todayAct": self.GetTodayAct(), "getList": self.GetTodayActGetList(), "actTaskList": actTaskList, #帮会活跃任务列表 去任务模块拿 } refNumRes = Game.res_mgr.res_common.get("guildRefNum") if refNumRes: exRefNum = refNumRes.i - self.GetTodayExRefNum() else: exRefNum = refNumRes.i init_data["scene"] = { "exList": self.to_exchange_data(), "exRefNum": exRefNum, "refTime": self.refTime, "taskList": self.getSceneTaskInfo(), #场景任务 } skills = [] for pos, lv in self.skills.items(): skills.append({"pos": pos, "lv": lv}) init_data["skill"] = skills init_data["barr"] = { "helpNum": self.GetTodayHelpNum(), "fightNum": self.GetTodayFightNum(), "firstKill": self.firstKill, } from game.mgr.guild import get_rpc_guild rpc_guild = get_rpc_guild(self.guildId) if rpc_guild: _init_data = rpc_guild.to_init_data(self.owner.id) init_data["sx"]["sxBar"] = _init_data.pop("sxBar") init_data["sx"]["sxNum"] = _init_data.pop("sxNum") init_data.update(_init_data) return init_data
def rc_exitGuild(self): guildId = self.player.guild.GetGuildId() if not guildId: return 0, errcode.EC_NO_GUILD rpc_guild = get_rpc_guild(guildId) if not rpc_guild: return 0, errcode.EC_NOT_FOUND_GUILD rs, err = rpc_guild.exitGuild(self.player.id) if not rs: return rs, err self.player.guild.SetGuildId(0) # 打包返回信息 return 1, None
def rc_getGuildSxList(self): guildId = self.player.guild.GetGuildId() if not guildId: return 0, errcode.EC_NO_GUILD rpc_guild = get_rpc_guild(guildId) if not rpc_guild: return 0, errcode.EC_NOT_FOUND_GUILD sxList = rpc_guild.getSxList() # 打包返回信息 resp = { "sxList": sxList, } return 1, resp
def rc_getGuildMember(self): guildId = self.player.guild.GetGuildId() if not guildId: return 0, errcode.EC_NO_GUILD rpc_guild = get_rpc_guild(guildId) if not rpc_guild: return 0, errcode.EC_NOT_FOUND_GUILD roleList = rpc_guild.getMembers() # 打包返回信息 resp = { "roleList": roleList, } return 1, resp
def AddGuildExp(who, add): add = int(add) guildId = who.guild.GetGuildId() if not guildId: return from game.mgr.guild import get_rpc_guild rpc_guild = get_rpc_guild(guildId) if not rpc_guild: return exp, level = rpc_guild.addExp(add) resp = { "exp": exp, "level": level, } spawn(who.call, "guildDonate", resp, noresult=True)
def rc_fixGuildNotice(self, notice): guildId = self.player.guild.GetGuildId() if not guildId: return 0, errcode.EC_NO_GUILD rpc_guild = get_rpc_guild(guildId) if not rpc_guild: return 0, errcode.EC_NOT_FOUND_GUILD rs, err = rpc_guild.fixNotice(self.player.id, notice) if not rs: return rs, err # 打包返回信息 resp = { "notice": notice, } return 1, resp
def rc_fixEnterGuild(self, autoEnter, autoFa): guildId = self.player.guild.GetGuildId() if not guildId: return 0, errcode.EC_NO_GUILD rpc_guild = get_rpc_guild(guildId) if not rpc_guild: return 0, errcode.EC_NOT_FOUND_GUILD rs, err = rpc_guild.fixAutoEnter(self.player.id, autoEnter, autoFa) if not rs: return rs, err # 打包返回信息 resp = { "autoEnter": autoEnter, "autoFa": autoFa, } return 1, resp
def rc_guildChangeColor(self, color): guildId = self.player.guild.GetGuildId() if not guildId: return 0, errcode.EC_NO_GUILD rpc_guild = get_rpc_guild(guildId) if not rpc_guild: return 0, errcode.EC_NOT_FOUND_GUILD rs, err = rpc_guild.changeColor(self.player.id, color) if not rs: return rs, err # 打包返回信息 resp = { "color": color, } return 1, resp
def rc_enterGuild(self, guildId, type): if self.player.guild.GetGuildId(): return 0, errcode.EC_GUILD_HAS_JOIN rpc_guild = get_rpc_guild(guildId) if not rpc_guild: return 0, errcode.EC_NOT_FOUND_GUILD playerInfo = self.player.guild.to_guild_update() rs, err = rpc_guild.enterGuild(type, playerInfo) if not rs: return rs, err # 打包返回信息 resp = { "guildId": guildId, "type": type, } return 1, resp
def rc_guildSx(self, id): sxRes = Game.res_mgr.res_guildSx.get(id) if not sxRes: return 0, errcode.EC_NORES if self.player.guild.GetTodaySXFinish(): return 0, errcode.EC_GUILD_TODAY_HAS_SX guildId = self.player.guild.GetGuildId() if not guildId: return 0, errcode.EC_NO_GUILD rpc_guild = get_rpc_guild(guildId) if not rpc_guild: return 0, errcode.EC_NOT_FOUND_GUILD # 扣道具 respBag = self.player.bag.costItem(sxRes.cost, constant.ITEM_COST_GUILD_SX, wLog=True) if not respBag.get("rs", 0): return 0, errcode.EC_GUILD_SX_NOT_ENOUGH rs, data = rpc_guild.guildSx(self.player.id, id) if not rs: # 返回扣除的材料 self.player.bag.add(sxRes.cost, constant.ITEM_ADD_GUILD_SX_FAIL, wLog=True) return rs, data sxBar, sxNum = data self.player.guild.SetTodaySXFinish(1) #上香奖励 respBag1 = self.player.bag.add(sxRes.reward, constant.ITEM_ADD_GUILD_SX, wLog=True) respBag = self.player.mergeRespBag(respBag, respBag1) # 统计次数 shangxiangNum = self.player.guild.GetShangxiangNum() shangxiangNum += 1 self.player.guild.SetShangxiangNum(shangxiangNum) #抛事件 self.player.safe_pub(msg_define.MSG_GUILD_SX) # 打包返回信息 dUpdate = self.player.packRespBag(respBag) resp = { "sxBar": sxBar, "sxNum": sxNum, "finish": 1, "allUpdate": dUpdate, } return 1, resp
def rc_gongchengWar(self,city): from game.mgr.room import get_rpc_gongcheng rpc_gongcheng = get_rpc_gongcheng() if not rpc_gongcheng: return 0, errcode.EC_GETD_RPC_ROOM_FAIL rrv = rpc_gongcheng.gongchengWar(self.player.id,city) if not rrv: return 0, errcode.EC_GONGCHENG_ERR if rrv["err"]!=0: return 0, rrv["err"] guildId = self.player.guild.GetGuildId() if not guildId: return 0, errcode.EC_NO_GUILD rpc_guild = get_rpc_guild(guildId) if not rpc_guild: return 0, errcode.EC_NOT_FOUND_GUILD from game.mgr.player import get_rpc_player nowtime=time.time() members = rpc_guild.getMembers() for one in members: rid = one.get("rid", 0) if not rid: continue # isRobot = one.get("isRobot", 1) # if isRobot: # continue rpc_player = get_rpc_player(rid) if not rpc_player: continue rpc_player.gongchengNotiyGuild(city,True,nowtime) rpc_guild.WarCity() dUpdate = {} dUpdate["guildInfo"] = self.player.guild.to_init_data() resp = { "allUpdate": dUpdate, } return 1,resp
def rc_getGuildRecord(self): guildId = self.player.guild.GetGuildId() if not guildId: return 0, errcode.EC_NO_GUILD rpc_guild = get_rpc_guild(guildId) if not rpc_guild: return 0, errcode.EC_NOT_FOUND_GUILD logs = rpc_guild.getLogs() recordList = [] for one in logs: iTime, args, type = one recordList.append({"type": type, "time": iTime, "args": args}) # 打包返回信息 resp = { "recordList": recordList, } return 1, resp
def rc_guildOper(self, rid, type): guildId = self.player.guild.GetGuildId() if not guildId: return 0, errcode.EC_NO_GUILD rpc_guild = get_rpc_guild(guildId) if not rpc_guild: return 0, errcode.EC_NOT_FOUND_GUILD rs, data = rpc_guild.guildOper(self.player.id, rid, type) if not rs: return rs, data # 打包返回信息 resp = { "rid": rid, "type": type, "num": data, } return 1, resp
def rc_guildExRef(self): guildId = self.player.guild.GetGuildId() if not guildId: return 0, errcode.EC_NO_GUILD rpc_guild = get_rpc_guild(guildId) if not rpc_guild: return 0, errcode.EC_NOT_FOUND_GUILD iGuildLv = rpc_guild.GetLevel() guildlvRes = Game.res_mgr.res_guildlv.get(iGuildLv) if not guildlvRes: return 0, errcode.EC_NORES guildRefCostRes = Game.res_mgr.res_common.get( "guildRefCost") # 帮会兑换刷新消耗 guildRefNumRes = Game.res_mgr.res_common.get( "guildRefNum") # 帮会兑换每日可刷新次数 if not guildRefCostRes or not guildRefNumRes: return 0, errcode.EC_NORES iTodayNum = self.player.guild.GetTodayExRefNum() if iTodayNum >= guildRefNumRes.i: return 0, errcode.EC_GUILD_EXCHANGE_REFESH_MAX # 扣道具 respBag = self.player.bag.costItem( guildRefCostRes.arrayint2, constant.ITEM_COST_GUILD_EXCHANGE_REFE, wLog=True) if not respBag.get("rs", 0): return 0, errcode.EC_GUILD_EXCHANGE_REFE_NOT_ENOUGH iTodayNum += 1 self.player.guild.SetTodayExRefNum(iTodayNum) exList = [] for i in range(4): exId = utility.Choice(guildlvRes.exchange) exList.append((exId, 0)) self.player.guild.SetExList(exList) # 打包返回信息 dUpdate = self.player.packRespBag(respBag) dUpdate["guildInfo"] = { "scene": { "exRefNum": guildRefNumRes.i - iTodayNum, "exList": self.player.guild.to_exchange_data() } } resp = { "allUpdate": dUpdate, } return 1, resp
def rc_guildChangeName(self, name): guildId = self.player.guild.GetGuildId() if not guildId: return 0, errcode.EC_NO_GUILD rpc_guild = get_rpc_guild(guildId) if not rpc_guild: return 0, errcode.EC_NOT_FOUND_GUILD d = Game.store.query_loads(Guild.DATA_CLS.TABLE_NAME, dict(name=name)) if d: return 0, errcode.EC_GUILD_NAME_REPET rs, err = rpc_guild.changeName(self.player.id, name) if not rs: return rs, err # 打包返回信息 resp = { "name": name, } return 1, resp
def rc_enterGuildScene(self): guildId = self.player.guild.GetGuildId() if not guildId: return 0, errcode.EC_NO_GUILD rpc_guild = get_rpc_guild(guildId) if not rpc_guild: return 0, errcode.EC_NOT_FOUND_GUILD roleList = [] pids = rpc_guild.enterGuildScene() from game.mgr.player import get_rpc_player for pid in pids: rpc_player = get_rpc_player(pid) info = rpc_player.GetFightData() roleList.append(info) resp = { "roleList": roleList, } return 1, resp
def init_exchange_data(self): if not self.guildId: return from game.mgr.guild import get_rpc_guild rpc_guild = get_rpc_guild(self.guildId) if not rpc_guild: return iGuildLv = rpc_guild.GetLevel() guildlvRes = Game.res_mgr.res_guildlv.get(iGuildLv) if not guildlvRes: return exList = [] if guildlvRes.exchange: for i in range(4): exId = utility.Choice(guildlvRes.exchange) exList.append((exId, 0)) self.SetExList(exList)
def rc_guildSkillUp(self): guildId = self.player.guild.GetGuildId() if not guildId: return 0, errcode.EC_NO_GUILD rpc_guild = get_rpc_guild(guildId) if not rpc_guild: return 0, errcode.EC_NOT_FOUND_GUILD iGuildLv = rpc_guild.GetLevel() guildlvRes = Game.res_mgr.res_guildlv.get(iGuildLv) if not guildlvRes: return 0, errcode.EC_NORES minPos = 0 minLv = 0 for pos in constant.ALL_GUILD_SKILL: if not minPos: minPos = pos minLv = self.player.guild.GetSkillLv(pos) else: if self.player.guild.GetSkillLv(pos) < minLv: minPos = pos minLv = self.player.guild.GetSkillLv(pos) if minLv >= guildlvRes.skillMax: return 0, errcode.EC_GUILD_SKILL_UP_LIMIT key = (minPos, minLv) guildSkillRes = Game.res_mgr.res_poslv_guildSkill.get(key) if not guildSkillRes: return 0, errcode.EC_NORES nextKey = (minPos, minLv + 1) nextRes = Game.res_mgr.res_poslv_guildSkill.get(nextKey) if not nextRes: return 0, errcode.EC_NORES # 扣道具 respBag = self.player.bag.costItem(guildSkillRes.cost, constant.ITEM_COST_GUILD_SKULL_UP, wLog=True) if not respBag.get("rs", 0): return 0, errcode.EC_GUILD_SKILL_UP_NOT_ENOUGH #修改等级 self.player.guild.SetSkillLv(minPos, minLv + 1) resp_attr = [] # 删除旧属性 self.player.attr.delAttr(guildSkillRes.attr, constant.FIGHTABILITY_TYPE_18) resp_attr.extend(list(guildSkillRes.attr.keys())) # 添加新属性 self.player.attr.addAttr(nextRes.attr, constant.FIGHTABILITY_TYPE_18) resp_attr.extend(list(nextRes.attr.keys())) # 战力重算 self.player.attr.RecalFightAbility() #统计次数 skillUpNum = self.player.guild.GetSkillUpNum() self.player.guild.SetSkillUpNum(skillUpNum + 1) # 抛事件 self.player.safe_pub(msg_define.MSG_GUILD_SKILL_UPGRADE) # 打包返回信息 dUpdate = self.player.packRespBag(respBag, fa=self.player.base.fa, roleAttr=set(resp_attr)) dUpdate["guildInfo"] = {"skill": self.player.guild.to_skill_data()} resp = { "allUpdate": dUpdate, } return 1, resp
def rc_guildBarrChallenge(self, id, teamId): guildId = self.player.guild.GetGuildId() if not guildId: return 0, errcode.EC_NO_GUILD resGuidlBarr = Game.res_mgr.res_guildBarr.get(id) if not resGuidlBarr: return 0, errcode.EC_NORES barrRes = Game.res_mgr.res_barrier.get(resGuidlBarr.barrId) if not barrRes: return 0, errcode.EC_NORES rpc_guild = get_rpc_guild(guildId) if not rpc_guild: return 0, errcode.EC_NOT_FOUND_GUILD iGuildLv = rpc_guild.GetLevel() if iGuildLv < resGuidlBarr.lv: return 0, errcode.EC_GUILD_BARR_LIMIT members = Game.rpc_team_mgr.GetTeamInfo(teamId) if not members: return 0, errcode.EC_TEAM_ERROR from game.mgr.player import get_rpc_player players = [(None, 1), (None, 1)] index = 0 names = [] for one in members: pid = one.get("rid", 0) if not pid: continue names.append(one.get("name", "")) if pid == self.player.id: if not one.get("main", 0): return 0, errcode.EC_TEAM_NOT_MAIN else: continue rpc_player = get_rpc_player(pid) if not rpc_player: continue players[index] = (rpc_player, one.get("isRobot", 1)) index += 1 fightobj = Game.fight_mgr.createFight(constant.FIGHT_TYPE_140) rs = fightobj.init_by_barrId(resGuidlBarr.barrId, player1=self.player, player2=players[0][0], player3=players[1][0]) if not rs: return 0, errcode.EC_INIT_BARR_FAIL fightLog = fightobj.doFight() self.player.sendGuildBarrChallengeNotice(id, fightLog, self.player.id) pps = [] if players[0][0]: pps.extend(players[0][0].GetPetIDs()) if players[1][0]: pps.extend(players[1][0].GetPetIDs()) self.player.PostPartnerPets(pps, constant.FIGHT_TYPE_140) if players[0][0] and not players[0][1]: pps = self.player.GetPetIDs() if players[1][0]: pps.extend(players[1][0].GetPetIDs()) players[0][0].PostPartnerPets(pps, constant.FIGHT_TYPE_140) if players[1][0] and not players[1][1]: pps = self.player.GetPetIDs() pps.extend(players[0][0].GetPetIDs()) players[1][0].PostPartnerPets(pps, constant.FIGHT_TYPE_140) # 机器人不推送 for playerData in players: if playerData[1]: continue playerData[0].sendGuildBarrChallengeNotice(id, fightLog, self.player.id, _no_result=True) # 解散队伍 Game.rpc_team_mgr.DeleteTeam(teamId) # 抛事件 self.player.safe_pub(msg_define.MSG_GUILD_BARR) return 1, None
def rc_openGuildUI(self, guildId): rpc_guild = get_rpc_guild(guildId) if not rpc_guild: return 0, errcode.EC_NOT_FOUND_GUILD resp = rpc_guild.to_openUI_dict() return 1, resp