#!/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]  
 | 
  
 | 
  
 |