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