| #!/usr/bin/python  | 
| # -*- coding: GBK -*-  | 
| #---------------------------------------------------------------------  | 
| ##@package SetMission  | 
| # ÉèÖÃÓµÓÐÈÎÎñ  | 
| #  | 
| # @author PanWei  | 
| # @date 2010-5-7ÉÏÎç11:23:33  | 
| # @version 1.0  | 
| #  | 
| # VER = "2010-05-21 17:30" zhengyang Ìí¼Ó×¢ÊÍ  | 
| #Ä£¿éÏêϸ˵Ã÷.  | 
| #---------------------------------------------------------------------  | 
| import EventShell  | 
| import QuestCommon  | 
| import GameWorld  | 
| #---------------------------------------------------------------------  | 
| ##Ìí¼ÓÈÎÎñ   | 
| # @param curPlayer Íæ¼ÒʵÀý  | 
| # @param playerList ²ÎÊýÁÐ±í  | 
| # @return ·µ»ØÖµÎÞÒâÒå  | 
| # @remarks Ìí¼ÓÈÎÎñ  <ÈÎÎñID> <ÈÎÎñ״̬> <״̬×Öµä(¿ÉÑ¡)>  | 
| def OnExec(curPlayer, paramList):  | 
|     if len(paramList) < 2:  | 
|         GameWorld.DebugAnswer(curPlayer, "SetMission ÈÎÎñID ×´Ì¬ ¿ÉÑ¡(²½Öè Íæ¼ÒID)")  | 
|         return  | 
|       | 
|     missionID = paramList[0]  | 
|     state = paramList[1]  | 
|     descriptionIndex = paramList[2] if len(paramList) > 2 else None  | 
|     tagPlayerID = paramList[3] if len(paramList) > 3 else 0  | 
|     if tagPlayerID:  | 
|         playerManager = GameWorld.GetMapCopyPlayerManager()  | 
|         findPlayer = playerManager.FindPlayerByID(tagPlayerID)  | 
|     else:  | 
|         findPlayer = curPlayer  | 
|           | 
|     if not findPlayer:  | 
|         GameWorld.DebugAnswer(curPlayer, "ÕÒ²»µ½Ä¿±êÍæ¼Ò,tagPlayerID=%s" % tagPlayerID)  | 
|         return  | 
|       | 
|     #»ñµÃÁбíÖÐÈÎÎñID  | 
|     mission = findPlayer.FindMission(missionID)  | 
|     #Íæ¼ÒÎÞ´ËÈÎÎñ  | 
|     if mission == None :  | 
|         #Ìí¼Ó´ËÈÎÎñ  | 
|         mission = QuestCommon.AddNewMission(findPlayer, missionID)  | 
|           | 
|     #ÉèÖÃÈÎÎñ״̬  | 
|     QuestCommon.SetPlayerMissionState(findPlayer, mission, state)  | 
|       | 
|     if descriptionIndex != None:  | 
|         mission.SetDescriptionIndex(descriptionIndex)  | 
|           | 
|     EventShell.NotifyOneMission(findPlayer, mission)  | 
|       | 
|     GameWorld.DebugAnswer(curPlayer, "ÉèÖÃÈÎÎñ³É¹¦ID=%d,״̬=%s,ÃèÊö=%d" % (mission.GetMissionID(), mission.GetState(), mission.GetDescriptionIndex()))  | 
|     return  | 
|   |