#!/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  
 | 
  
 |