#!/usr/bin/python # -*- coding: GBK -*- #------------------------------------------------------------------------------- # #------------------------------------------------------------------------------- # ##@package GM.Commands.SetNPCHP # # @todo:ÉèÖÃÆÁÄ»ÖÜΧNPCѪÁ¿ # @author hxp # @date 2015-3-22 # @version 1.0 # # ÏêϸÃèÊö: ÉèÖÃÆÁÄ»ÖÜΧNPCѪÁ¿ # #--------------------------------------------------------------------- #"""Version = 2015-03-22 23:00""" #--------------------------------------------------------------------- import IpyGameDataPY import IPY_GameWorld import GameWorld import ChConfig import GameObj #--------------------------------------------------------------------- #Âß¼­ÊµÏÖ ## GMÃüÁîÖ´ÐÐÈë¿Ú # @param curPlayer µ±Ç°Íæ¼Ò # @param msgList ²ÎÊýÁбí # @return None # @remarks º¯ÊýÏêϸ˵Ã÷. def OnExec(curPlayer, msgList): if len(msgList) != 2: GameWorld.DebugAnswer(curPlayer, "SetNPCHP NPCID HP") return npcID, setHP = msgList setHP = max(1, setHP) curNPC = GameWorld.GetObj(npcID, IPY_GameWorld.gotNPC) if curNPC: __GMSetNPCHP(curPlayer, curNPC, setHP) return gameMap = GameWorld.GetMap() for i in range(curPlayer.GetPosX() - ChConfig.Def_Screen_Area, curPlayer.GetPosX() + ChConfig.Def_Screen_Area): for j in range(curPlayer.GetPosY() - ChConfig.Def_Screen_Area, curPlayer.GetPosY() + ChConfig.Def_Screen_Area): tempObj = gameMap.GetPosObj(i, j) if not tempObj: continue for k in range(0, tempObj.GetObjCount()): curObj = tempObj.GetObjByIndex(k) if curObj == None: continue if curObj.GetGameObjType() != IPY_GameWorld.gotNPC: continue curNPC = GameWorld.GetObj(curObj.GetID(), IPY_GameWorld.gotNPC) if curNPC.GetCurAction() == IPY_GameWorld.laNPCDie: continue #²»É±¹¦ÄÜNPC if curNPC.GetType() == IPY_GameWorld.ntFunctionNPC: continue if curNPC.GetNPCID() != npcID: continue __GMSetNPCHP(curPlayer, curNPC, setHP) return def __GMSetNPCHP(curPlayer, curNPC, setHP): npcID = curNPC.GetNPCID() isByTime = True if IpyGameDataPY.GetIpyGameDataNotLog("NPCTimeLostHP", npcID) else False GameObj.SetHP(curNPC, setHP, isByTime=isByTime) curNPC.Notify_HP() GameWorld.DebugAnswer(curPlayer, "SetNPCHP ID=%s(%s),HP=%s" % (curNPC.GetID(), curNPC.GetNPCID(), setHP)) return