| #!/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 : "Éñͨ¼¼ÄÜ",  | 
|                 }  | 
|       | 
|     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 ÖïÏɼ¼ÄÜ  | 
| #===============================================================================  |