#!/usr/bin/python
|
# -*- coding: GBK -*-
|
|
##@package PrintBuff
|
# Êä³öÍæ¼ÒÉíÉϵÄbuff
|
#
|
# @author mark
|
# @date 2010-4-23
|
# @version 1.4
|
#
|
# ÐÞ¸Äʱ¼ä ÐÞ¸ÄÈË ÐÞ¸ÄÄÚÈÝ
|
# @change: "2010-05-12 18:30" zhengyang Ìí¼Ó×¢ÊÍ
|
# @change: "2010-06-07 17:33" adaws GMÃüÁîPrintBuffÔö¼Ó±»¶¯¼¼ÄÜbuff
|
# @change: "2010-12-07 12:00" Alee ´òÓ¡ÐÐΪBUFF
|
# @change: "2010-12-31 17:00" Alee Ìí¼Ó¹ÜÀíÆ÷¸ü¸Ä
|
#
|
# Ä£¿éÏêϸ˵Ã÷
|
# ½Ó¿ÚС֪ʶ£ºFindNPCByID »ñµÃ»¹ÊǸ¸ÀàµÄNPCʵÀý£¬Òª¾ßÌåת»»Îª¾ßÌåµÄNPCʵÀý£¬²Å¿ÉÒÔÓ¦ÓÃÏàÓ¦½Ó¿Ú
|
|
"""Version = 2010-12-31 17:00"""
|
|
|
import IPY_GameWorld
|
import GMCommon
|
import GameWorld
|
import SkillCommon
|
|
## ´òÓ¡buffState
|
# @param curPlayer µ±Ç°Íæ¼Ò
|
# @param buffState ÊÇbuffµÄ¼¯ºÏ£¬¶øÒ»¸öObjÓÖ¾ßÓÐn¸öBuffState
|
# @return None
|
# @remarks º¯ÊýÏêϸ˵Ã÷.
|
def PrintBuffState(curPlayer, tagObj, buffType):
|
GameWorld.DebugAnswer(curPlayer, "---------" + GMCommon.BuffNameList[buffType])
|
buffTuple = SkillCommon.GetBuffManagerByBuffType(tagObj, buffType)
|
|
if buffTuple == ():
|
return
|
buffState = buffTuple[0]
|
|
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 = __GetRemainTimeStr(remainTime)
|
GameWorld.DebugAnswer(curPlayer, "%s,ID=%s,TypeID=%s,%s,Layer=%s"
|
% (name, curSkill.GetSkillID(), curSkill.GetSkillTypeID(), remainTimeStr, curBuff.GetLayer()))
|
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
|
|
def __GetRemainTimeStr(remainTime):
|
day = 3600 * 24
|
days = remainTime / day
|
remainTime -= (days * day)
|
hours = remainTime / 3600
|
remainTime -= (hours * 3600)
|
minutes = remainTime / 60
|
seconds = remainTime % 60
|
remainTimeStr = ""
|
if days:
|
remainTimeStr = "%sÌì" % (days)
|
if hours:
|
remainTimeStr = "%s%sʱ" % (remainTimeStr, hours)
|
if minutes:
|
remainTimeStr = "%s%s·Ö" % (remainTimeStr, minutes)
|
if seconds:
|
remainTimeStr = "%s%sÃë" % (remainTimeStr, seconds)
|
return remainTimeStr
|
|
## GMÃüÁîÖ´ÐÐÈë¿Ú
|
# @param curPlayer µ±Ç°Íæ¼Ò
|
# @param list ²ÎÊýÁбí [npcID]
|
# @return None
|
# @remarks º¯ÊýÏêϸ˵Ã÷.
|
def OnExec(curPlayer, cmdList):
|
GameWorld.DebugAnswer(curPlayer, "¿ªÊ¼´òÓ¡buffÁбí,ÈçÎÞ´òÓ¡,¼ÈÎÞBuff")
|
curTagPlayer = None
|
|
if len(cmdList) == 0 or cmdList[0] == 0:
|
curTagPlayer = curPlayer
|
else:
|
curTagPlayer = GameWorld.GetPlayerManager().FindPlayerByID(cmdList[0])
|
|
if curTagPlayer != None:
|
GameWorld.DebugAnswer(curPlayer, "Íæ¼ÒÐÅÏ¢£º%s" % (curTagPlayer.GetID()))
|
if len(cmdList) > 1:
|
buffTypeStr = ""
|
for i, buffName in enumerate(GMCommon.BuffNameList):
|
buffTypeStr += "%s:%s," % (i, buffName)
|
GameWorld.DebugAnswer(curPlayer, "%s" % buffTypeStr)
|
buffType = cmdList[1]
|
PrintBuffState(curPlayer, curTagPlayer, buffType)
|
return
|
for buffType in range(IPY_GameWorld.bfBuff, IPY_GameWorld.btBufMax):
|
PrintBuffState(curPlayer, curTagPlayer, buffType)
|
return
|
|
#Êä³öNPCBuff
|
curNPC = GameWorld.GetNPCManager().FindNPCByID(cmdList[0])
|
|
if curNPC == None:
|
GameWorld.DebugAnswer(curPlayer, "error²ÎÊý£º²»ÊÇNPCID Ò²²»ÊÇÍæ¼ÒID")
|
return
|
|
curNPC = GameWorld.GetObjDetail(curNPC)
|
GameWorld.DebugAnswer(curPlayer, "NPCÐÅÏ¢ %s %s" % (curNPC.GetName(), curNPC.GetID()))
|
|
for buffType in GMCommon.GetNPCBuffTypeList(curNPC):
|
PrintBuffState(curPlayer, curNPC, buffType)
|