#!/usr/bin/python # -*- coding: GBK -*- #------------------------------------------------------------------------------- # ##@package GM.Commands.PrintNPCInfo # # @todo:ÏÔʾNPCÊôÐÔÐÅÏ¢ # @author hxp # @date 2017-03-25 # @version 1.0 # # ÏêϸÃèÊö: ÏÔʾNPCÊôÐÔÐÅÏ¢ # #------------------------------------------------------------------------------- #"""Version = 2017-03-25 11:00""" #------------------------------------------------------------------------------- import IPY_GameWorld import GameWorld import GameObj import NPCCommon import SkillCommon import PrintBuff import GMCommon import FamilyRobBoss import ShareDefine import ChConfig import random #--------------------------------------------------------------------- ##²é¿´µãÑ¡µÄNPC³ðºÞÁбí # @param curPlayer Íæ¼ÒʵÀý # @param cmdList GMÃüÁî²ÎÊýÁбí # @return ·µ»ØÖµÎÞÒâÒå # @remarks GMÃüÁî def OnExec(curPlayer, cmdList): #---»ñµÃµãÑ¡µÄNPC--- if not cmdList: GameWorld.DebugAnswer(curPlayer, "¸ñʽPrintNPCInfo objID") return objID = cmdList[0] isRefresh = cmdList[1] if len(cmdList) > 1 else 0 curNPC = GameWorld.GetObj(objID, IPY_GameWorld.gotNPC) if not curNPC: GameWorld.DebugAnswer(curPlayer, "objID(%s) ´íÎó ÕÒ²»µ½¶ÔÓ¦NPC" % objID) return if isRefresh: NPCCommon.NPCControl(curNPC).RefreshNPCAttrState() npcID = curNPC.GetNPCID() GameWorld.DebugAnswer(curPlayer, "-----------------------%s" % random.randint(0, 100)) GameWorld.DebugAnswer(curPlayer, "ObjID: %s, NPCID: %s, %s, Type: %s" % (curNPC.GetID(), npcID, curNPC.GetName(), curNPC.GetType())) if FamilyRobBoss.IsHorsePetRobBoss(npcID): strengthenPlayerCnt = GameWorld.GetGameWorld().GetGameWorldDictByKey(ShareDefine.Def_Notify_WorldKey_HorsePetRobBossPlayerCount) GameWorld.DebugAnswer(curPlayer, "±íµÈ¼¶: %s, ³É³¤µÈ¼¶: %s, ²ÎÓëÈËÊý: %s" % (curNPC.GetLV(), curNPC.GetCurLV(), strengthenPlayerCnt)) else: GameWorld.DebugAnswer(curPlayer, "±íµÈ¼¶: %s, ³É³¤µÈ¼¶: %s" % (curNPC.GetLV(), curNPC.GetCurLV())) GameWorld.DebugAnswer(curPlayer, "ÉúÃü: %s / %s" % (GameObj.GetHP(curNPC), GameObj.GetMaxHP(curNPC))) GameWorld.DebugAnswer(curPlayer, "¹¥»÷: %s ~ %s" % (curNPC.GetMinAtk(), curNPC.GetMaxAtk())) GameWorld.DebugAnswer(curPlayer, "·ÀÓù: %s" % (curNPC.GetDef())) GameWorld.DebugAnswer(curPlayer, "ÃüÖÐ: %s, ÉÁ±Ü: %s" % (curNPC.GetHit(), curNPC.GetMiss())) GameWorld.DebugAnswer(curPlayer, "ÕæÊµÉ˺¦: %s, ÕæÊµµÖÓù: %s" % (curNPC.GetIceAtk(), curNPC.GetIceDef())) GameWorld.DebugAnswer(curPlayer, "¹Ì¶¨É˺¦: %s" % (NPCCommon.GetFinalHurt(curNPC))) GameWorld.DebugAnswer(curPlayer, "ËÙ¶È: %s" % (curNPC.GetSpeed())) GameWorld.DebugAnswer(curPlayer, "Õ½Á¦: %s" % (NPCCommon.GetSuppressFightPower(curNPC))) PrintNPCBuff(curPlayer, curNPC) return def PrintNPCBuff(curPlayer, curNPC): for buffType in range(IPY_GameWorld.bfBuff, IPY_GameWorld.btBufMax): if buffType in ChConfig.Def_BuffType_OnlyPlayer: continue PrintBuffState(curPlayer, curNPC, buffType) return def PrintBuffState(curPlayer, tagObj, buffType): buffTuple = SkillCommon.GetBuffManagerByBuffType(tagObj, buffType) if buffTuple == (): return buffState = buffTuple[0] if not buffState.GetBuffCount(): return GameWorld.DebugAnswer(curPlayer, "---------" + GMCommon.BuffNameList[buffType]) for i in range(0, buffState.GetBuffCount()): curBuff = buffState.GetBuff(i) curSkill = curBuff.GetSkill() if curSkill.GetSkillID() == 0: continue name = curSkill.GetSkillName() remainTime = curBuff.GetRemainTime() / 1000 remainTimeStr = PrintBuff.__GetRemainTimeStr(remainTime) GameWorld.DebugAnswer(curPlayer, "%s,ID=%s,TypeID=%s,%s" % (name, curSkill.GetSkillID(), curSkill.GetSkillTypeID(), remainTimeStr)) effectStr = "" for j in range(0, curSkill.GetEffectCount()): curEffect = curSkill.GetEffect(j) effectID = curEffect.GetEffectID() if effectID == 0: continue effectStr += "¼¼ÄÜЧ¹û%s ID = %s" % (j, effectID) GameWorld.DebugAnswer(curPlayer, effectStr) return