コード例 #1
0
 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
コード例 #2
0
ファイル: playerGuild.py プロジェクト: hw233/gsdld_pokemon2
 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
コード例 #3
0
 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
コード例 #4
0
    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
コード例 #5
0
 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
コード例 #6
0
ファイル: playerGuild.py プロジェクト: hw233/gsdld_pokemon2
    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
コード例 #7
0
ファイル: playerGuild.py プロジェクト: hw233/gsdld_pokemon2
 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)
コード例 #8
0
    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
コード例 #9
0
 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
コード例 #10
0
    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
コード例 #11
0
ファイル: playerGuild.py プロジェクト: hw233/gsdld_pokemon2
    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
コード例 #12
0
 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
コード例 #13
0
 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
コード例 #14
0
 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
コード例 #15
0
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)
コード例 #16
0
 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
コード例 #17
0
 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
コード例 #18
0
    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
コード例 #19
0
 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
コード例 #20
0
 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
コード例 #21
0
    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
コード例 #22
0
 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
コード例 #23
0
 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
コード例 #24
0
 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
コード例 #25
0
 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
コード例 #26
0
 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
コード例 #27
0
ファイル: playerGuild.py プロジェクト: hw233/gsdld_pokemon2
    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)
コード例 #28
0
    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
コード例 #29
0
    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
コード例 #30
0
 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