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