#!/usr/bin/python  
 | 
# -*- coding: GBK -*-  
 | 
#  
 | 
##@package  
 | 
#  
 | 
# @todo: Êä³öÍæ¼Ò¼¼ÄÜ  
 | 
#  
 | 
# @author: Alee  
 | 
# @date 2019-5-9 ÏÂÎç02:54:09  
 | 
# @version 1.0  
 | 
#  
 | 
# @note:   
 | 
#  
 | 
#---------------------------------------------------------------------  
 | 
import GameWorld  
 | 
import PassiveBuffEffMng  
 | 
import PlayerPet  
 | 
import IpyGameDataPY  
 | 
import SkillCommon  
 | 
  
 | 
## GMÃüÁîÖ´ÐÐÈë¿Ú  
 | 
#  @param curPlayer µ±Ç°Íæ¼Ò  
 | 
#  @param list ²ÎÊýÁбí [npcID]  
 | 
#  @return None  
 | 
#  @remarks º¯ÊýÏêϸ˵Ã÷.  
 | 
def OnExec(curPlayer, cmdList):  
 | 
    GameWorld.DebugAnswer(curPlayer, "----¿ªÊ¼´òÓ¡Íæ¼Ò¼¼ÄÜ, ´ø²ÎÊý1Êä³ö±»¶¯¼¼ÄÜ")  
 | 
    GameWorld.DebugAnswer(curPlayer, "PrintSkill ÊÇ·ñÏÔʾ¼¼ÄÜÃû")  
 | 
    skillDict = {}  
 | 
      
 | 
    showSkillName = cmdList[0] if len(cmdList) > 0 else 0  
 | 
    skillManager = curPlayer.GetSkillManager()  
 | 
    for i in range(0 , skillManager.GetSkillCount()):  
 | 
        curSkill = skillManager.GetSkillByIndex(i)  
 | 
        if not curSkill:  
 | 
            continue  
 | 
          
 | 
        funcType = curSkill.GetFuncType()  
 | 
        if funcType not in skillDict:  
 | 
            skillDict[funcType] = {}  
 | 
        skillInfo = skillDict[funcType]  
 | 
        skillInfo[curSkill.GetSkillID()] = curSkill.GetSkillName()  
 | 
          
 | 
    showDict = {  
 | 
                0 : "ËæÒâ",  
 | 
                1 : "ÈË×å·¨±¦",  
 | 
                2 : "ħ×å·¨±¦",  
 | 
                3 : "·¨±¦×¨¾«",  
 | 
                4 : "Ì츳",  
 | 
                5 : "×øÆï¼¼ÄÜ",  
 | 
                6 : "Áé³è¼¼ÄÜ",  
 | 
                7 : "ÈË×å·¨±¦",  
 | 
                8 : "ÆÕ¹¥",  
 | 
                9 : "ÎÞ",  
 | 
                10 : "ͨÓ÷¹ö",  
 | 
                11 : "NPC¾³½ç",  
 | 
                12 : "ÉñÊÞ¼¼ÄÜ",  
 | 
                13 : "ÖïÏɼ¼ÄÜ",  
 | 
                14 : "Ì××°¼¼ÄÜ",  
 | 
                15 : "¿ÉÓÐר¾«µÄ±»¶¯¼¼ÄÜ",  
 | 
                16 : "Áé³èÖ÷È˼¼ÄÜ",  
 | 
                17 : "³ÆºÅ¼¼ÄÜ",  
 | 
                18 : "×°±¸±»¶¯¼¼ÄÜ",  
 | 
                19 : "Á¶Ìå¼¼ÄÜ",  
 | 
                20 : "Éñͨ¼¼ÄÜ",  
 | 
                21 : "¾«¹Ö¼¼ÄÜ",  
 | 
                22 : "¾Û»ê¼¼ÄÜ",  
 | 
                }  
 | 
      
 | 
    for funcType, skillInfo in skillDict.items():  
 | 
        skillIDList = skillInfo.keys()  
 | 
        skillIDList.sort()  
 | 
        GameWorld.DebugAnswer(curPlayer, "%s : %s" % (showDict.get(funcType, funcType), skillIDList))  
 | 
        if showSkillName:  
 | 
            for skillID in skillIDList:  
 | 
                GameWorld.DebugAnswer(curPlayer, "    %s : %s" % (skillID, skillInfo[skillID]))  
 | 
                  
 | 
    ## ´òÓ¡¼¼ÄÜÔö¼õÉËÐÅÏ¢  
 | 
    plusSkillTypeIDList = []  
 | 
    skillPlusAttrIDDict = IpyGameDataPY.GetFuncEvalCfg("SkillPlusAttrID", 2, {})  
 | 
    for skillTypeIDList in skillPlusAttrIDDict.values():  
 | 
        for skillTypeID in skillTypeIDList:  
 | 
            if skillTypeID in plusSkillTypeIDList:  
 | 
                continue  
 | 
            skillData = GameWorld.GetGameData().GetSkillBySkillID(skillTypeID)  
 | 
            if not SkillCommon.CheckSkillJob(curPlayer, skillData):  
 | 
                continue  
 | 
            plusSkillTypeIDList.append(skillTypeID)  
 | 
            addPer = SkillCommon.GetSkillAddPerByID(curPlayer, skillTypeID)  
 | 
            reducePer = SkillCommon.GetSkillReducePerByID(curPlayer, skillTypeID)  
 | 
            if addPer or reducePer:  
 | 
                GameWorld.DebugAnswer(curPlayer, "%s ÔöÉË+%s ¼õÉË+%s" % (skillData.GetSkillName(), addPer, reducePer))  
 | 
                  
 | 
    if not cmdList:  
 | 
        return  
 | 
      
 | 
    passiveEff = PassiveBuffEffMng.GetPassiveEffManager().GetPassiveEff(curPlayer)  
 | 
    if not passiveEff:  
 | 
        return  
 | 
      
 | 
    GameWorld.DebugAnswer(curPlayer, "---------Êä³ö±»¶¯Ð§¹û")  
 | 
      
 | 
    GameWorld.DebugAnswer(curPlayer, "±»¶¯Ð§¹û £º%s" % passiveEff.AffectSkillDict)  
 | 
      
 | 
    GameWorld.DebugAnswer(curPlayer, "Ñ¡Öеı»¶¯¼¼ÄÜЧ¹û £º%s" % passiveEff.AffectPassiveSkillSetDict)  
 | 
      
 | 
    GameWorld.DebugAnswer(curPlayer, "±»¶¯BUFFЧ¹û £º%s" % passiveEff.AffectBuffDict)  
 | 
      
 | 
    GameWorld.DebugAnswer(curPlayer, "ÉñÊÞ±»¶¯Ð§¹û £º%s" % passiveEff.AffectDogzSkillDict)  
 | 
      
 | 
      
 | 
      
 | 
    fightPet = curPlayer.GetPetMgr().GetFightPet()  
 | 
    if fightPet:  
 | 
        GameWorld.DebugAnswer(curPlayer, "³öÕ½³èÎï¼¼ÄÜ%s-%s" % PlayerPet.GetPetLearnSkill(curPlayer))  
 | 
        passiveEff = PassiveBuffEffMng.GetPassiveEffManager().GetPassiveEff(fightPet)  
 | 
        if not passiveEff:  
 | 
            return  
 | 
        GameWorld.DebugAnswer(curPlayer, "³èÎï±»¶¯Ð§¹û £º%s" % passiveEff.AffectSkillDict)  
 | 
          
 | 
        GameWorld.DebugAnswer(curPlayer, "³èÎï±»¶¯BUFFЧ¹û £º%s" % passiveEff.AffectBuffDict)  
 | 
          
 | 
#===============================================================================  
 | 
# (Def_SkillFuncType_Common, #0ΪͨÓü¼ÄÜ  
 | 
# Def_SkillFuncType_FbSkill, #1Ϊ·¨±¦¹¦ÄÜ»ñµÃµÄÖ÷¶¯¼¼ÄÜ  
 | 
# Def_SkillFuncType_FbPassiveSkill, #2Ϊ·¨±¦¹¦ÄÜ»ñµÃµÄ±»¶¯¼¼ÄÜ  
 | 
# Def_SkillFuncType_FbSPSkill, #3Ϊ·¨±¦¹¦ÄÜ»ñµÃµÄSP¼¼ÄÜ  
 | 
# Def_SkillFuncType_GiftSkill, #4ΪÌ츳¼¼ÄÜ  
 | 
# Def_SkillFuncType_HorseSkill, #5Îª×øÆï¼¼ÄÜ  
 | 
# Def_SkillFuncType_PetSkill, #6Ϊ³èÎï¼¼ÄÜ  
 | 
# Def_SkillFuncType_GWSkill,  #7ΪÉñ±ø¼¼ÄÜ  
 | 
# Def_SkillFuncType_NormalAttack,  #8ΪÆÕ¹¥  
 | 
# Def_SkillFuncType_SP15,  #9ΪSP15¼¶ ·þÎñ¶ËδÓõ½  
 | 
# Def_SkillFuncType_SkillRoll,  #10Ϊ·¹ö    ·þÎñ¶ËδÓõ½  
 | 
# Def_SkillFuncType_RealmSuppress,  #11Ϊ¾³½çÑ¹ÖÆ Ä¿Ç°ÊÇNPCÔÚÓà  
 | 
# Def_SkillFuncType_Dogz,     #12 ÉñÊÞ¼¼ÄÜ  
 | 
# Def_SkillFuncType_ZhuXian,     #13 ÖïÏɼ¼ÄÜ  
 | 
#===============================================================================  
 |