#!/usr/bin/python
|
# -*- coding: GBK -*-
|
|
##@package SummonNPC
|
# ÔÚÉí±ßË¢NPC <NPCID> [ÊýÁ¿] ĬÈÏÊýÁ¿:1
|
#
|
# @author Mark
|
# @date 2010-4-23
|
# @version 1.0
|
#
|
# ÐÞ¸Äʱ¼ä ÐÞ¸ÄÈË ÐÞ¸ÄÄÚÈÝ
|
# VER = "2010-05-12 18:30" zhengyang Ìí¼Ó×¢ÊÍ
|
#
|
# Ä£¿éÏêϸ˵Ã÷
|
import GameMap
|
import ChConfig
|
import GameWorld
|
import NPCCommon
|
|
#
|
#Â߼ʵÏÖ
|
## ÔÚÉí±ßË¢ÕÙ»½NPC <NPCID> [ÊýÁ¿] ĬÈÏÊýÁ¿:1
|
# @param curPlayer µ±Ç°Íæ¼Ò
|
# @param list ²ÎÊýÁбí [tagID, NPCCount]
|
# @return None
|
# @remarks º¯ÊýÏêϸ˵Ã÷.
|
def OnExec(curPlayer, list):
|
#===============================================================================
|
# #¼ì²âµ±Ç°Íæ¼ÒÊÇ·ñÓÐȨÏÞ
|
# #if
|
# #µÚÒ»½×¶Î²»´¦Àí
|
#===============================================================================
|
|
#ÊäÈëÃüÁî¸ñʽ´íÎó
|
if len(list)<1 or len(list)>2:
|
return
|
#NPC¶ÔÏóID
|
tagID=list[0]
|
|
if not GameWorld.GetGameData().FindNPCDataByID(tagID):
|
return
|
|
|
#NPCË¢ÐÂÊýÁ¿
|
if len(list)==1:
|
#ĬÈÏÊýÁ¿1
|
NPCCount=1
|
else:
|
#GMÊäÈëµÄÊýÁ¿
|
NPCCount=list[1]
|
|
for i in range(0,NPCCount):
|
#ÔÚÍæ¼ÒÖÜΧѡÔñÒ»¸öÎÞÍæ¼ÒµÄµã
|
resultPos=GameMap.GetEmptyPlaceInArea(curPlayer.GetPosX(),curPlayer.GetPosY(),6)
|
#Éú³ÉNPC
|
summonNPC = curPlayer.SummonNewNPC()
|
summonNPC.SetNPCTypeID(tagID)
|
summonNPC.SetAIType(200)
|
summonNPC.GetNPCAngry().Init(ChConfig.Def_SummonNPC_Angry_Count)
|
#³õʼ»¯
|
NPCCommon.InitNPC(summonNPC)
|
summonNPC.SetOwner(curPlayer)
|
|
#Íæ¼ÒÕÙ»½ÊÞÁбíÌí¼ÓÕÙ»½ÊÞ,ÕÙ»½ÊÞÌí¼ÓÖ÷ÈË
|
summonNPC.Reborn(resultPos.GetPosX(), resultPos.GetPosY())
|
|
|
|
|
|