Ejemplo n.º 1
0
 def run(self):
     self.request.include.logger.info(u"兵力不足10000")
     '''
     # 请求征兵操作
     url = "http://s%d.as.yaowan.com/root/mainCity!preDraught.action?%d" %(self.serverid,int(time.time()*1000))
     reqinfo = self.request.request(url)
     res = zlib.decompress(reqinfo.read())
     print 'preDraught res:',res
     '''
     
     '''
     补充兵力
     '''
     url = "http://s%d.as.yaowan.com/root/mainCity!draught.action?%d" %(self.serverid,int(time.time()*1000))
     data = {"forceNum":10000}
     reqinfo = self.request.request(url,data)
     res = zlib.decompress(reqinfo.read())
     if res:
         res = res[res.find("<?xml"):]
         infoXML = etree.XML(res)
         updateinfo = PlayerUpdateInfo()
         for child in infoXML.getchildren():
             if child.tag=="playerupdateinfo":
                 food = child.find("food").text
                 forces = child.find("forces").text
                 kfzonestate = child.find("kfzonestate").text
                 updateinfo.food = food
                 updateinfo.forces = forces
                 updateinfo.kfzonestate =kfzonestate
                 if updateinfo.forces:
                     self.request.include.logger.info(u"补充10000兵力成功")
                 else:
                     self.request.include.logger.info(u"补充10000兵力失败")
Ejemplo n.º 2
0
 def getPreFoodBandC(self):
     url = "http://s%d.as.yaowan.com/root/mainCity!preFoodBandC.action?%d" %(self.serverid,int(time.time()*1000))
     reqinfo = self.request.request(url)
     res = zlib.decompress(reqinfo.read())
     #print 'preFoodBandC res:',res
     if res:
         if res.find("<?xml")<0:
             self.request.include.logger.warning(u"获取粮食买卖信息失败,重新请求...")
             time.sleep(2)
             return self.getPreFoodBandC()
         res = res[res.find("<?xml"):]
         infoXML = etree.XML(res)
         foodbandc = FoodBandC()
         for child in infoXML.getchildren():
             if child.tag=="state":
                 foodbandc.state = child.text
             if child.tag=="buyprice":
                 foodbandc.buyprice = float(child.text)
             if child.tag=="price":
                 foodbandc.price = float(child.text)
             if child.tag=="isup":
                 foodbandc.isup = bool(child.text)
             if child.tag=="bsmax":
                 foodbandc.bsmax = int(child.text)
             if child.tag=="crutrade":
                 foodbandc.crutrade = int(child.text)
             if child.tag=="maxtrade":
                 foodbandc.maxtrade = int(child.text)
             if child.tag=="playerupdateinfo":
                 updateinfo = PlayerUpdateInfo()
                 updateinfo.food = child.findtext("food")
                 updateinfo.kfzonestate = child.findtext("kfzonestate")
                 foodbandc.playerupdateinfo = updateinfo        
         return foodbandc
     return None
Ejemplo n.º 3
0
 def getRefineInfo(self):
     url = "http://s%d.as.yaowan.com/root/refine!getRefineInfo.action?%d" %(self.serverid,int(time.time()*1000))
     reqinfo = self.request.request(url)
     res = zlib.decompress(reqinfo.read())
     if res:
         if res.find("<?xml")<0:
             self.request.include.logger.warning(u"获取精炼信息失败,重新请求...")
             time.sleep(2)
             return self.getRefineInfo()
         res = res[res.find("<?xml"):]
         print 'refine res:',res
         infoXML = etree.XML(res)
         refineInfo = RefineInfo()
         refinergrouplist = []
         refinerlist = []
         for child in infoXML.getchildren():
             if child.tag=="state":
                 refineInfo.state = child.text
             if child.tag=="refinenum":
                 refineInfo.refinenum = int(child.text)
             if child.tag=="maxrefinenum":
                 refineInfo.maxrefinenum = child.text
             if child.tag=="surplursleft":
                 refineInfo.surplursleft = child.text
             if child.tag=="copper":
                 refineInfo.copper = child.text
             if child.tag=="percost":
                 refineInfo.percost = child.text
             if child.tag=="allcost":
                 refineInfo.allcost = child.text
             if child.tag=="refinergroup":
                 refinergroup        = RefinerGroup()
                 refinergroup.time   = int(child.findtext("time"))
                 refinergroup.id     = child.findtext("id")
                 refinergroup.cdflag = int(child.findtext("cdflag"))
                 refinergrouplist.append(refinergroup)
             if child.tag=="refiner":
                 refiner = Refiner()
                 refiner.id    = child.findtext("id")
                 refiner.color = child.findtext("color")
                 refiner.name  = child.findtext("name")
                 refiner.stone = child.findtext("stone")
                 refiner.order = child.findtext("order")
                 refiner.desc  = child.findtext("desc")
                 refinerlist.append(refiner)
             if child.tag=="playerupdateinfo":
                 updateinfo = PlayerUpdateInfo()
                 updateinfo.kfzonestate = child.findtext("kfzonestate")
                 refineInfo.playerupdateinfo = updateinfo
         refineInfo.refinergrouplist = refinergrouplist
         refineInfo.refinerList = refinerlist
         return refineInfo
     return None
Ejemplo n.º 4
0
 def marketConfirm(self, playerMerchant):
     if (int(playerMerchant.merchandise.limitlv) < self.config._defaultConfig.get("trade-limitlv")) or (
         int(playerMerchant.merchandise.attribute) < self.config._defaultConfig.get("trade-attribute")
     ):
         # 卖出货物
         data = {"tradeSN": playerMerchant.tradesn}
         url = "http://s%d.as.yaowan.com/root/market!confirm.action?%d" % (self.serverid, long(time.time() * 1000))
         reqinfo = self.request.request(url, data, jsonFormat=False)
         res = zlib.decompress(reqinfo.read())
         res = res[res.find("<?xml") :]
         if not res:
             print "卖出货物%s失败" % (playerMerchant.merchandise.merchandisename)
             return None
         results = etree.XML(res)
         childli = results.getchildren()
         # 返回结果对象
         marketresult = MarketResult()
         for child in childli:
             if child.tag == "state":
                 state = child.text
                 if int(state) != 1:
                     print "卖出货物%s失败" % (playerMerchant.merchandise.merchandisename)
                     return None
                 marketresult.state = state
             if child.tag == "usesize":  # 使用大小
                 usesize = child.text
                 marketresult.usesize = usesize
             if child.tag == "cost":
                 cost = child.text
                 marketresult.cost = cost
             if child.tag == "playerupdateinfo":
                 copper = child.find("copper").text
                 updateinfo = PlayerUpdateInfo()
                 updateinfo.copper = copper
                 marketresult.playerupdateinfo = updateinfo
         msg = "卖出货物%s成功,获得%d钱币" % (playerMerchant.merchandise.merchandisename, int(cost))
         print msg
         return marketresult
     else:
         msg = "货物%s属性或级别大于配置参数,没有卖出" % (playerMerchant.merchandise.merchandisename)
         print msg
         return None
Ejemplo n.º 5
0
 def getTrainGeneralInfo(self):
     url = "http://s%d.as.yaowan.com/root/general!getTrainGeneralInfo.action?%d" %(self.serverid,int(time.time()*1000))
     reqinfo = self.request.request(url)
     res = zlib.decompress(reqinfo.read())
     if res:
         if res.find("<?xml")<0:
             self.request.include.logger.warning(u"获取武将训练信息失败,重新请求...")
             time.sleep(2)
             return self.getTrainGeneralInfo()
         res = res[res.find("<?xml"):]
         infoXML = etree.XML(res)
         generalinfo = GeneralInfo()
         generallist    = []
         timemodellist  = []
         trainmodellist = []
         for child in infoXML.getchildren():
             if child.tag=="state":
                 generalinfo.state = child.text
             if child.tag=="general":
                 general = General()
                 general.generalid    = child.findtext("generalid")
                 general.generallevel = int(child.findtext("generallevel"))
                 general.trainflag    = child.findtext("trainflag")
                 general.generalexp   = int(child.findtext("generalexp"))
                 general.autogrow     = int(child.findtext("autogrow"))
                 general.nextlevelexp = child.findtext("nextlevelexp")
                 general.generalname  = child.findtext("generalname")
                 general.pic          = child.findtext("pic")
                 general.shiftlv      = int(child.findtext("shiftlv"))
                 general.trainmodel   = child.findtext("trainmodel")
                 general.exppermin    = child.findtext("exppermin")
                 general.jyungong     = child.findtext("jyungong")
                 general.jyungongexp  = child.findtext("jyungongexp")
                 generallist.append(general)
             if child.tag=="timemodel":
                 timemodel = TimeModel()
                 timemodel.time = child.findtext("time")
                 timemodel.cost = child.findtext("cost")
                 timemodellist.append(timemodel)
             if child.tag=="trainmodel":
                 trainmodel = TrainModel()
                 trainmodel.times = child.findtext("times")
                 trainmodel.name  = child.findtext("name")
                 trainmodel.cost  = child.findtext("cost")
                 trainmodellist.append(trainmodel)
             if child.tag=="currentnum":
                 generalinfo.currentnum = child.text
             if child.tag=="maxnum":
                 generalinfo.maxnum = child.text
             if child.tag=="cost":
                 generalinfo.cost = child.text
             if child.tag=="cd":
                 generalinfo.cd = int(child.text)
             if child.tag=="cdflag":
                 generalinfo.cdflag = int(child.text)
             if child.tag=="goldguide":
                 generalinfo.goldguide = child.text
             if child.tag=="tfnum":
                 generalinfo.tfnum = child.text
             if child.tag=="generaldto":
                 generaldto = GeneraldTo()
                 generaldto.generalid           = child.findtext("generalid")
                 generaldto.generalname         = child.findtext("generalname")
                 generaldto.leader              = child.findtext("leader")
                 generaldto.forces              = child.findtext("forces")
                 generaldto.intelligence        = child.findtext("intelligence")
                 generaldto.enchantleader       = child.findtext("enchantleader")
                 generaldto.enchantforces       = child.findtext("enchantforces")
                 generaldto.enchantintelligence = child.findtext("enchantintelligence")
                 generaldto.skillname           = child.findtext("skillname")
                 generaldto.skillintro          = child.findtext("skillintro")
                 generaldto.solidernum          = child.findtext("solidernum")
                 generaldto.maxsolidernum       = child.findtext("maxsolidernum")
                 generaldto.generalexp          = child.findtext("generalexp")
                 generaldto.generallevel        = child.findtext("generallevel")
                 generaldto.intro               = child.findtext("intro")
                 generaldto.nextlevelexp        = child.findtext("nextlevelexp")
                 generaldto.troopid             = child.findtext("troopid")
                 generaldto.trooptype           = child.findtext("trooptype")
                 generaldto.trooplevel          = child.findtext("trooplevel")
                 generaldto.troopstagename      = child.findtext("troopstagtename")
                 generaldto.trooptypename       = child.findtext("trooptypename")
                 generaldto.troopname           = child.findtext("troopname")
                 generaldto.troopintro          = child.findtext("troopintro")
                 generaldto.pic                 = child.findtext("pic")
                 generaldto.online              = child.findtext("online")
                 generaldto.trainflag           = child.findtext("trainflag")
                 generalinfo.generaldto = generaldto
             if child.tag=="trainers":                    
                 trainers = Trainers()
                 trainerlist = []
                 for cchild in child.getchildren():
                     if cchild.tag=="wuhun":
                         trainers.wuhun = int(cchild.text)
                     if cchild.tag=="totalcost":
                         trainers.totalcost = child.text
                     if cchild.tag=="totalgoldcost":
                         trainers.totalgoldcost = child.text
                     if cchild.tag=="gold":
                         trainers.gold = child.text
                     if cchild.tag=="trainer":
                         trainer = Trainer()
                         trainer.trainerid   = cchild.findtext("trainerid")
                         trainer.name        = cchild.findtext("name")
                         trainer.whnum       = int(cchild.findtext("whnum"))
                         trainer.basictimes  = cchild.findtext("basistimes")
                         trainer.times       = int(cchild.findtext("times"))
                         trainer.lvlimit     = cchild.findtext("lvlimit")
                         trainer.effectintro = cchild.findtext("effectintro")
                         trainer.intro       = cchild.findtext("intro")
                         trainer.pic         = cchild.findtext("pic")
                         trainerlist.append(trainer)
                     trainers.trainerlist = trainerlist
                 generalinfo.trainers = trainers
             if child.tag=="playerupdateinfo":
                 updateinfo = PlayerUpdateInfo()
                 updateinfo.traincurrentnum = child.findtext("traincurrentnum")
                 updateinfo.maxtrainnum = child.findtext("maxtrainnum")
                 updateinfo.kfzonestate = child.findtext("kfzonestate")                    
                 generalinfo.playerupdateinfo = updateinfo
         generalinfo.generallist = generallist
         generalinfo.timemodellist  = timemodellist
         generalinfo.trainmodelist = trainmodellist
         return generalinfo
     return None
Ejemplo n.º 6
0
    def resolveMerXML(self, content):
        res = content[content.find("<?xml") :]
        if not res:
            return None
        results = etree.XML(res)
        childli = results.getchildren()
        playerMerchant = PlayerMerchant()
        merchantlist = []
        for child in childli:
            # 委派结果
            if child.tag == "merchandise":
                merchandiseid = child.find("merchandiseid").text
                merchandisename = unicode(child.find("merchandisename").text).encode("utf-8")
                merchandiselv = child.find("merchandiselv").text
                merchandisequality = child.find("merchandisequality").text
                limitlv = child.find("limitlv").text
                pic = child.find("pic").text
                equiptype = child.find("equiptype").text
                attribute = child.find("attribute").text
                hp = child.find("hp").text
                cost = child.find("cost").text
                stagename = child.find("stagename").text
                merchandise = Merchandise(
                    merchandiseid,
                    merchandisename,
                    merchandiselv,
                    merchandisequality,
                    limitlv,
                    pic,
                    equiptype,
                    attribute,
                    hp,
                    cost,
                    stagename,
                )
                playerMerchant.merchandise = merchandise

            if child.tag == "merchant":
                merchantid = child.find("merchantid").text
                merchantname = unicode(child.find("merchantname").text).encode("utf-8")
                merchantintro = child.find("merchantintro").text
                cost = child.find("cost").text
                nextcharge = child.find("nextcharge").text
                merchant = Merchant(merchantid, merchantname, merchantintro, cost, nextcharge)
                merchantlist.append(merchant)
            if child.tag == "playerupdateinfo":
                # print 'trade playerupdateinfo:',child.getchildren()
                if child.find("copper"):
                    copper = child.find("copper").text
                    updateinfo = PlayerUpdateInfo()
                    updateinfo.copper = copper
                    playerMerchant.playerupdateinfo = updateinfo
            if child.tag == "state":
                state = child.text
                playerMerchant.state = state
            if child.tag == "cd":
                cd = child.text
                playerMerchant.cd = cd
            if child.tag == "cdflag":
                cdflag = child.text
                playerMerchant.cdflag = cdflag
            if child.tag == "free":
                free = child.text
                playerMerchant.free = free
            if child.tag == "gold":
                gold = child.text
                playerMerchant.gold = gold
            if child.tag == "tradesn":
                tradesn = child.text
                playerMerchant.tradesn = tradesn
            if child.tag == "message":
                message = unicode(child.text).encode("utf-8")
                playerMerchant.message = message
        playerMerchant.merchantlist = merchantlist
        return playerMerchant
Ejemplo n.º 7
0
 def getSecretary(self):
     url = "http://s%d.as.yaowan.com/root/secretary.action?%d" %(self.serverid,int(time.time()*1000))
     reqinfo = self.request.request(url)
     res = zlib.decompress(reqinfo.read())
     #print 'secreatary res:',res
     if res:
         if res.find("<?xml")<0:
             self.request.include.logger.warning(u"获取秘书信息失败,重新请求...")
             time.sleep(2)
             return self.getSecretary()
         res = res[res.find("<?xml"):]
         #print 'secr res xml:',res
         infoXML = etree.XML(res)
         secretary = Secretary()
         for child in infoXML.getchildren():
             if child.tag=="state":
                 secretary.state = child.text
             if child.tag=="liid":
                 secretary.liid = child.text
             if child.tag=="lin":
                 secretary.lin = int(child.text)
             if child.tag=="ss":
                 secretary.ss = int(child.text)
             if child.tag=="fp":
                 secretary.fp = child.text
             if child.tag=="name":
                 secretary.name = child.text
             if child.tag=="lv":
                 secretary.lv = child.text
             if child.tag=="pic":
                 secretary.pic = child.text
             if child.tag=="fun":
                 secretary.fun = child.text
             if child.tag=="tasknum":
                 secretary.tasknum = child.text
             if child.tag=="maxtokennum":
                 secretary.maxtokennum = child.text
             if child.tag=="cd":
                 secretary.cd = child.text
             if child.tag=="tokennum":
                 secretary.tokennum = child.text
             if child.tag=="makenum":
                 secretary.makenum = child.text
             if child.tag=="freer":
                 secretary.freer = child.text
             if child.tag=="task":
                 tasklist = []
                 for cchild in child.getchildren():
                     task = Task()
                     if cchild.tag=="tid":
                         task.tid = cchild.text
                     if cchild.tag=="tname":
                         task.tname = cchild.text
                     if cchild.tag=="tstate":
                         task.tstaet = cchild.text
                     if cchild.tag=="cd":
                         task.cd = cchild.text
                     if cchild.tag=="num":
                         task.num = cchild.text
                     if cchild.tag=="name":
                         task.name = cchild.text
                     tasklist.append(task)
                 secretary.tasklist = tasklist
             if child.tag=="playerupdateinfo":
                 updateinfo = PlayerUpdateInfo()
                 updateinfo.kfzonestate = child.findtext("kfzonestate")
                 secretary.playerupdateinfo = updateinfo
         return secretary
     return None