hxp
2020-01-11 ece7760d17592dfcadef52e47848836b13cf3f47
ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/GM/Commands/SummonNPC.py
@@ -16,45 +16,44 @@
import ChConfig
import GameWorld
import NPCCommon
import ShareDefine
#
#逻辑实现
## 在身边刷召唤NPC <NPCID> [数量] 默认数量:1
#  @param curPlayer 当前玩家
#  @param list 参数列表 [tagID, NPCCount]
#  @param paramList 参数列表 [tagID, NPCCount]
#  @return None
#  @remarks 函数详细说明.
def OnExec(curPlayer, list):
#===============================================================================
#    #检测当前玩家是否有权限
#    #if
#    #第一阶段不处理
#===============================================================================
def OnExec(curPlayer, paramList):
    #输入命令格式错误
    if len(list)<1 or len(list)>2:
    if not paramList:
        GameWorld.DebugAnswer(curPlayer, "SummonNPC npcID 个数")
        GameWorld.DebugAnswer(curPlayer, "SummonNPC npcID 个数  血量")
        return
    #NPC对象ID
    tagID=list[0]
    npcID = paramList[0]
    npcCount = max(paramList[1] if len(paramList) > 1 else 1, 1)
    npcData = GameWorld.GetGameData().FindNPCDataByID(npcID)
    
    if not GameWorld.GetGameData().FindNPCDataByID(tagID):
    if not npcData:
        return
    
    #NPC刷新数量
    if len(list)==1:
        #默认数量1
        NPCCount=1
    else:
        #GM输入的数量
        NPCCount=list[1]
    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 i in range(0,NPCCount):
    for _ in range(npcCount):
        #在玩家周围选择一个无玩家的点
        resultPos=GameMap.GetEmptyPlaceInArea(curPlayer.GetPosX(),curPlayer.GetPosY(),6)
        resultPos = GameMap.GetEmptyPlaceInArea(curPlayer.GetPosX(), curPlayer.GetPosY(), 6)
        #生成NPC
        summonNPC = curPlayer.SummonNewNPC()
        summonNPC.SetNPCTypeID(tagID)
        summonNPC.SetNPCTypeID(npcID)
        summonNPC.SetAIType(200)
        summonNPC.GetNPCAngry().Init(ChConfig.Def_SummonNPC_Angry_Count)
        #初始化
@@ -63,6 +62,7 @@
        
        #玩家召唤兽列表添加召唤兽,召唤兽添加主人
        summonNPC.Reborn(resultPos.GetPosX(), resultPos.GetPosY())
    return