| #!/usr/bin/python  | 
| # -*- coding: GBK -*-  | 
| #-------------------------------------------------------------------------------  | 
| #  | 
| #-------------------------------------------------------------------------------  | 
| #  | 
| ##@package GM.Commands.SetEquipPartPlusLV  | 
| #  | 
| # @todo:ÉèÖÃ×°±¸²¿Î»¹«¹²Ç¿»¯µÈ¼¶  | 
| # @author hxp  | 
| # @date 2015-12-15  | 
| # @version 1.0  | 
| #  | 
| # ÏêϸÃèÊö: ÉèÖÃ×°±¸²¿Î»¹«¹²Ç¿»¯µÈ¼¶  | 
| #  | 
| #---------------------------------------------------------------------  | 
| """Version = 2015-12-15 17:00"""  | 
| #---------------------------------------------------------------------  | 
| import Operate_EquipPlus  | 
| import IPY_GameWorld  | 
| import ChConfig  | 
| import ChEquip  | 
| import GameWorld  | 
| import ItemCommon  | 
| import IpyGameDataPY  | 
| #---------------------------------------------------------------------  | 
| #Â߼ʵÏÖ  | 
| ## GMÃüÁîÖ´ÐÐÈë¿Ú  | 
| #  @param curPlayer µ±Ç°Íæ¼Ò  | 
| #  @param cmdList ²ÎÊýÁбí [packType, index, starLV]  | 
| #  @return None  | 
| #  @remarks º¯ÊýÏêϸ˵Ã÷.  | 
| def OnExec(curPlayer, cmdList):  | 
|     if not cmdList:  | 
|         __GMHelpAnswer(curPlayer)  | 
|         return  | 
|     packType = IPY_GameWorld.rptEquip  | 
|     curPack = curPlayer.GetItemManager().GetPack(packType)  | 
|     if len(cmdList) == 2:  | 
|         setStarLV = cmdList[1]  | 
|         classLV = cmdList[0]  | 
|         for equipPlace in ChConfig.Pack_EquipPart_CanPlusStar.get(packType, []):  | 
|             ipyData = IpyGameDataPY.GetIpyGameData('EquipPlaceIndexMap', classLV, equipPlace)  | 
|             if not ipyData:  | 
|                 continue  | 
|             gridIndex = ipyData.GetGridIndex()  | 
|             curEquip = curPack.GetAt(gridIndex)  | 
|             ChEquip.SetEquipPartPlusLV(curPlayer, packType, gridIndex, curEquip, setStarLV)  | 
|             ChEquip.SetEquipPartProficiency(curPlayer, packType, gridIndex, 0)  | 
|             ChEquip.SetEquipPartPlusEvolveLV(curPlayer, packType, gridIndex, 0)  | 
|             Operate_EquipPlus.DoLogic_OnEquipPartStarLVChange(curPlayer, packType, classLV)  | 
|         ChEquip.NotifyEquipPartPlusLV(curPlayer)  | 
|         GameWorld.DebugAnswer(curPlayer, "ÉèÖÃ%s½×ËùÓв¿Î»Ç¿»¯µÈ¼¶Îª: %s" % (classLV, setStarLV))  | 
|         return  | 
|       | 
|     if len(cmdList) != 3:  | 
|         __GMHelpAnswer(curPlayer, "²ÎÊý´íÎó£¡")  | 
|         return  | 
|       | 
|     classLV, equipPlace, starLV = cmdList  | 
|     if packType not in ChConfig.Pack_EquipPart_CanPlusStar:  | 
|         __GMHelpAnswer(curPlayer, "packType²»´æÔÚ£¡")  | 
|         return  | 
|       | 
|     if equipPlace not in ChConfig.Pack_EquipPart_CanPlusStar[packType]:  | 
|         __GMHelpAnswer(curPlayer, "indexË÷Òý²»´æÔÚ£¡")  | 
|         return  | 
|     ipyData = IpyGameDataPY.GetIpyGameData('EquipPlaceIndexMap', classLV, equipPlace)  | 
|     if not ipyData:  | 
|         return  | 
|     gridIndex = ipyData.GetGridIndex()  | 
|     curEquip = curPack.GetAt(gridIndex)  | 
|     if not ItemCommon.CheckItemCanUse(curEquip):  | 
|         return  | 
|     maxStarLV = ItemCommon.GetItemMaxPlusLV(curPlayer, gridIndex, curEquip)  | 
|     starLV = min(starLV, maxStarLV)  | 
|     ChEquip.SetEquipPartPlusLV(curPlayer, packType, gridIndex, curEquip, starLV)  | 
|     ChEquip.SetEquipPartProficiency(curPlayer, packType, gridIndex, 0)  | 
|     Operate_EquipPlus.DoLogic_OnEquipPartStarLVChange(curPlayer, packType, classLV)  | 
|     return  | 
|   | 
|   | 
| def __GMHelpAnswer(curPlayer, errorMsg=""):  | 
|     if errorMsg:  | 
|         GameWorld.DebugAnswer(curPlayer, "%s" % errorMsg)  | 
|       | 
|     packTypeStrDict = {  | 
|                        IPY_GameWorld.rptEquip:"×°±¸±³°ü",  | 
|                        IPY_GameWorld.rptHorseEquip:"×øÆï×°±¸±³°ü",  | 
|                        }  | 
|       | 
| #===============================================================================  | 
| #    indexStrDict = {  | 
| #                    "%s_%s" % (IPY_GameWorld.rptEquip, IPY_GameWorld.retMask):"Í·¿ø",  | 
| #                    "%s_%s" % (IPY_GameWorld.rptEquip, IPY_GameWorld.retClothes):"Ò·þ",  | 
| #                    "%s_%s" % (IPY_GameWorld.rptEquip, IPY_GameWorld.retArm):"»¤ÊÖ",  | 
| #                    "%s_%s" % (IPY_GameWorld.rptEquip, IPY_GameWorld.retTrousers):"¿ã×Ó",  | 
| #                    "%s_%s" % (IPY_GameWorld.rptEquip, IPY_GameWorld.retShoes):"Ь×Ó",  | 
| #                    "%s_%s" % (IPY_GameWorld.rptEquip, IPY_GameWorld.retNeck):"ÏîÁ´",  | 
| #                    "%s_%s" % (IPY_GameWorld.rptEquip, IPY_GameWorld.retRingLeft):"×ó½äÖ¸",  | 
| #                    "%s_%s" % (IPY_GameWorld.rptEquip, IPY_GameWorld.retRingRight):"ÓÒ½äÖ¸",  | 
| #                    "%s_%s" % (IPY_GameWorld.rptEquip, ShareDefine.retWeapon):"ÓÒÊÖÎäÆ÷",  | 
| #                    "%s_%s" % (IPY_GameWorld.rptEquip, ShareDefine.retWeapon2):"×óÊÖÎäÆ÷",  | 
| #                    "%s_%s" % (IPY_GameWorld.rptEquip, IPY_GameWorld.retAmulet):"»¤·û",  | 
| #                    "%s_%s" % (IPY_GameWorld.rptEquip, IPY_GameWorld.retBelt):"Ñü´ø",  | 
| #   | 
| #                    }  | 
| #===============================================================================  | 
|       | 
|     #===========================================================================  | 
|     # GameWorld.DebugAnswer(curPlayer, "SetEquipPartPlusLV ²ÎÊý[packType, index, starLV]")  | 
|     # for pType, indexList in ChConfig.Pack_EquipPart_CanPlusStar.items():  | 
|     #    GameWorld.DebugAnswer(curPlayer, "    packType=%s(%s)ʱ" % (pType, packTypeStrDict.get(pType, "")))  | 
|     #    indexStr = "index="  | 
|     #    for i in indexList:  | 
|     #        indexStr += "%s(%s)," % (i, indexStrDict.get("%s_%s" % (pType, i), ""))  | 
|     #    GameWorld.DebugAnswer(curPlayer, "        %s" % indexStr)  | 
|     #      | 
|     # GameWorld.DebugAnswer(curPlayer, "    SetEquipPartPlusLV Ç¿»¯µÈ¼¶ ¿ÉÖØÖÃËùÓв¿Î»Îª¶ÔÓ¦µÄÇ¿»¯µÈ¼¶")  | 
|     # GameWorld.DebugAnswer(curPlayer, "------------------------------")  | 
|     #===========================================================================  | 
|     return  |