#!/usr/bin/python # -*- coding: GBK -*- ##@package SummonNPC # ÔÚÉí±ßË¢NPC [ÊýÁ¿] ĬÈÏÊýÁ¿: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 import ShareDefine # #Âß¼­ÊµÏÖ ## ÔÚÉí±ßË¢ÕÙ»½NPC [ÊýÁ¿] ĬÈÏÊýÁ¿:1 # @param curPlayer µ±Ç°Íæ¼Ò # @param paramList ²ÎÊýÁбí [tagID, NPCCount] # @return None # @remarks º¯ÊýÏêϸ˵Ã÷. def OnExec(curPlayer, paramList): #ÊäÈëÃüÁî¸ñʽ´íÎó if not paramList: GameWorld.DebugAnswer(curPlayer, "SummonNPC npcID ¸öÊý") GameWorld.DebugAnswer(curPlayer, "SummonNPC npcID ¸öÊý ѪÁ¿") return #NPC¶ÔÏóID npcID = paramList[0] npcCount = max(paramList[1] if len(paramList) > 1 else 1, 1) npcData = GameWorld.GetGameData().FindNPCDataByID(npcID) if not npcData: return npcType = npcData.GetType() if npcType in [ChConfig.ntPriWoodPilePVE, ChConfig.ntPriWoodPilePVP]: setHP = paramList[2] if len(paramList) > 2 else 0 hp = setHP % ShareDefine.Def_PerPointValue hpEx = setHP / ShareDefine.Def_PerPointValue NPCCommon.SummonPriWoodPile(curPlayer, npcID, npcCount, hp, hpEx) return for _ in range(npcCount): #ÔÚÍæ¼ÒÖÜΧѡÔñÒ»¸öÎÞÍæ¼ÒµÄµã resultPos = GameMap.GetEmptyPlaceInArea(curPlayer.GetPosX(), curPlayer.GetPosY(), 6) #Éú³ÉNPC summonNPC = curPlayer.SummonNewNPC() summonNPC.SetNPCTypeID(npcID) summonNPC.SetAIType(200) summonNPC.GetNPCAngry().Init(ChConfig.Def_SummonNPC_Angry_Count) #³õʼ»¯ NPCCommon.InitNPC(summonNPC) summonNPC.SetOwner(curPlayer) #Íæ¼ÒÕÙ»½ÊÞÁбíÌí¼ÓÕÙ»½ÊÞ,ÕÙ»½ÊÞÌí¼ÓÖ÷ÈË summonNPC.Reborn(resultPos.GetPosX(), resultPos.GetPosY()) return