#!/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
|