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