| #!/usr/bin/python  | 
| # -*- coding: GBK -*-  | 
| #-------------------------------------------------------------------------------  | 
| #  | 
| ##@package GM.Commands.SetWingJL  | 
| #  | 
| # @todo:ÉèÖóá°ò¾«Á¶  | 
| # @author hxp  | 
| # @date 2018-04-03  | 
| # @version 1.0  | 
| #  | 
| # ÏêϸÃèÊö: ÉèÖóá°ò¾«Á¶  | 
| #  | 
| #-------------------------------------------------------------------------------  | 
| #"""Version = 2018-04-03 20:00"""  | 
| #-------------------------------------------------------------------------------  | 
|   | 
| import GameWorld  | 
| import ShareDefine  | 
| import IPY_GameWorld  | 
| import ItemCommon  | 
| import IpyGameDataPY  | 
| import PlayerWing  | 
| #---------------------------------------------------------------------  | 
| #È«¾Ö±äÁ¿  | 
| #---------------------------------------------------------------------  | 
|   | 
| #---------------------------------------------------------------------  | 
| #Â߼ʵÏÖ  | 
| ## ÉèÖü¼Äܵȼ¶  | 
| #  @param curPlayer µ±Ç°Íæ¼Ò  | 
| #  @param dataList ²ÎÊýÁÐ±í  | 
| #  @return None  | 
| #  @remarks º¯ÊýÏêϸ˵Ã÷.  | 
| def OnExec(curPlayer, dataList):  | 
|     if not dataList:  | 
|         GameWorld.DebugAnswer(curPlayer, "SetWingJL ¾«Á¶Öµ ¿ÉÑ¡[ÌØÊâ²ÄÁÏID ¸öÊý ÌØÊâ²ÄÁÏID ¸öÊý]")  | 
|         return  | 
|       | 
|     equipPack = curPlayer.GetItemManager().GetPack(IPY_GameWorld.rptEquip)  | 
|     curWing = equipPack.GetAt(ShareDefine.retWing)  | 
|     if not ItemCommon.CheckItemCanUse(curWing):  | 
|         GameWorld.DebugAnswer(curPlayer, "ûÓд©´÷³á°ò!ÎÞ·¨ÉèÖÃ!")  | 
|         return  | 
|       | 
|     wingClassLV = curWing.GetLV()  | 
|     exp = dataList[0]  | 
|     materialDict = {}  | 
|     paramLen = len(dataList)  | 
|     if paramLen > 1:  | 
|         curWing.ClearUserAttr(ShareDefine.Def_IudetWingMaterialItemID)  | 
|         curWing.ClearUserAttr(ShareDefine.Def_IudetWingMaterialItemCount)  | 
|         for i in range(1, paramLen, 2):  | 
|             if i + 1 >= paramLen:  | 
|                 break  | 
|               | 
|             materialItemID = dataList[i]  | 
|             materialCount = dataList[i + 1]  | 
|             materialDict[materialItemID] = materialCount  | 
|             materialExp = GetWingMaterialItemExp(materialItemID, wingClassLV) * materialCount  | 
|             exp += materialExp  | 
|               | 
|             curWing.AddUserAttr(ShareDefine.Def_IudetWingMaterialItemID, materialItemID)  | 
|             curWing.AddUserAttr(ShareDefine.Def_IudetWingMaterialItemCount, materialCount)  | 
|               | 
|     curWing.SetUserAttr(ShareDefine.Def_IudetWingProgressValue, exp)  | 
|     PlayerWing.UpdWingColor(curPlayer, curWing, 0, exp)  | 
|     GameWorld.DebugAnswer(curPlayer, "¾«Á¶:%s,%s" % (exp, materialDict))  | 
|     return  | 
|   | 
| def GetWingMaterialItemExp(materialItemID, wingClassLV):  | 
|     wingAttrIpyData = IpyGameDataPY.GetIpyGameData("WingRefineExp", materialItemID)  | 
|     if wingAttrIpyData == None:  | 
|         return 0  | 
|     expDict = wingAttrIpyData.GetExpMaterial()  | 
|     if not expDict:  | 
|         return 0  | 
|     if wingClassLV not in expDict:  | 
|         return 0  | 
|     return expDict[wingClassLV]  | 
|   | 
|   |