Ejemplo n.º 1
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.º 2
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