#!/usr/bin/python # -*- coding: GBK -*- #------------------------------------------------------------------------------- # ##@package GM.Commands.MissionXML # # @todo:ÈÎÎñ½Ó¿Ú²âÊÔ # @author hxp # @date 2017-12-23 # @version 1.0 # # ÏêϸÃèÊö: ÈÎÎñ½Ó¿Ú²âÊÔ, ²âÊÔXMLÎļþ·¾¶: ZoneServerGroup\map1_8G\MapServer\MapServerData\QUESTDATATest.xml # #------------------------------------------------------------------------------- #"""Version = 2017-12-23 18:00""" #------------------------------------------------------------------------------- import QuestRunner import IPY_GameWorld import GameWorld import ChConfig import time ## GMÃüÁîÖ´ÐÐÈë¿Ú # @param curPlayer µ±Ç°Íæ¼Ò # @param playerList ²ÎÊýÁбí [ missionID] # @return None # @remarks º¯ÊýÏêϸ˵Ã÷. def OnExec(curPlayer, playerList): curMission = curPlayer.FindMission(1) if curMission == None: GameWorld.DebugAnswer(curPlayer, "ÈÎÎñ1²»´æÔÚ£¡ÎÞ·¨²âÊÔ£¡") return testXMLPath = ChConfig.GetAppPath() + "QUESTDATATest.xml" testXML = open(testXMLPath, 'r') testXMLContent = testXML.read() testXML.close() # ¼ÓÉÏʱ¼ä°æ±¾£¬È·±£Ã¿´ÎÔËÐÐÖØÐ¼ÓÔØ²âÊÔÎļþ xmlLoader = IPY_GameWorld.IPY_XMLLoader() isOK = xmlLoader.LoadFromXML("MissionXMLTest%d" % (int(time.time())), testXMLContent) if not isOK: GameWorld.DebugAnswer(curPlayer, "XMLÎļþ¸ñʽ´íÎó£¡%s" % (testXMLPath)) return nodeList = xmlLoader.GetNodeList() __DoAction(curPlayer, curMission, nodeList) return def __DoAction(curPlayer, curMission, nodeList): for i in xrange(nodeList.GetCount()): node = nodeList.Get(i) childCount = node.GetChildCount() if childCount: __DoAction(curPlayer, curMission, node.ChildNodes()) continue xmlMsg = node.GetXML() if xmlMsg.startswith("