| | |
| | | return
|
| | |
|
| | | def CalcEquipGS(curItem):
|
| | | ##计算装备评分
|
| | | '''计算装备评分
|
| | | 评分组成:装备基础 + 传奇属性 + 绝版属性
|
| | | '''
|
| | | if not CheckNoteEquipGS(curItem):
|
| | | #GameWorld.DebugLog("不设置装备评分")
|
| | | return 0
|
| | |
| | | break
|
| | | attrDict[effectID] = attrDict.get(effectID, 0) + curEffect.GetEffectValue(0)
|
| | |
|
| | | gsParamIpyData = None
|
| | | classLV = GetItemClassLV(curItem)
|
| | | color = curItem.GetItemColor()
|
| | | itemQuality = curItem.GetItemQuality()
|
| | | gsParamIpyData = IpyGameDataPY.GetIpyGameData("EquipGSParam", classLV, color, itemQuality)
|
| | | # 传奇属性
|
| | | legendAttrIDCnt = curItem.GetUserAttrCount(ShareDefine.Def_IudetLegendAttrID)
|
| | | legendAttrValueCnt = curItem.GetUserAttrCount(ShareDefine.Def_IudetLegendAttrValue)
|
| | | if legendAttrIDCnt and legendAttrIDCnt == legendAttrValueCnt:
|
| | | classLV = GetItemClassLV(curItem)
|
| | | color = curItem.GetItemColor()
|
| | | itemQuality = curItem.GetItemQuality()
|
| | | gsParamIpyData = IpyGameDataPY.GetIpyGameData("EquipGSParam", classLV, color, itemQuality)
|
| | | for i in xrange(legendAttrIDCnt):
|
| | | attrID = curItem.GetUserAttrByIndex(ShareDefine.Def_IudetLegendAttrID, i)
|
| | | attrValue = curItem.GetUserAttrByIndex(ShareDefine.Def_IudetLegendAttrValue, i)
|
| | | attrDict[attrID] = attrDict.get(attrID, 0) + attrValue
|
| | |
|
| | | MinAtk = attrDict.get(ShareDefine.Def_Effect_MinAtk, 0)
|
| | | MaxAtk = attrDict.get(ShareDefine.Def_Effect_MaxAtk, 0)
|
| | | Atk = attrDict.get(ShareDefine.Def_Effect_Atk, 0)
|
| | | MinAtk = attrDict.get(ShareDefine.Def_Effect_MinAtk, 0) + Atk
|
| | | MaxAtk = attrDict.get(ShareDefine.Def_Effect_MaxAtk, 0) + Atk
|
| | | MaxHP = attrDict.get(ShareDefine.Def_Effect_MaxHP, 0)
|
| | | Def = attrDict.get(ShareDefine.Def_Effect_Def, 0)
|
| | | ArmorDefPer = attrDict.get(ShareDefine.Def_Effect_ArmorDefAddPer, 0)
|
| | | IceAtk = attrDict.get(ShareDefine.Def_Effect_IceAtk, 0)
|
| | | IceDef = attrDict.get(ShareDefine.Def_Effect_IceDef, 0)
|
| | |
|
| | | AtkPer = attrDict.get(ShareDefine.Def_Effect_AddAtkByPer, 0) * (1 if not gsParamIpyData else gsParamIpyData.GetAtkPerC())
|
| | | DamagePer = attrDict.get(ShareDefine.Def_Effect_DamagePer, 0) * (1 if not gsParamIpyData else gsParamIpyData.GetDamagePerC())
|
| | |
| | | SuperHitReduce = attrDict.get(ShareDefine.Def_Effect_SuperHitReduce, 0) * (1 if not gsParamIpyData else gsParamIpyData.GetSuperHitReduceC())
|
| | | SkillAtkRate = attrDict.get(ShareDefine.Def_Effect_SkillAtkRate, 0) * (1 if not gsParamIpyData else gsParamIpyData.GetSkillAtkRateC())
|
| | | SpeedPer = attrDict.get(ShareDefine.Def_Effect_SpeedPer, 0) * (1 if not gsParamIpyData else gsParamIpyData.GetSpeedPerC())
|
| | | SkillAtkRateReduce = attrDict.get(ShareDefine.Def_Effect_SkillAtkRateReduce, 0) * (1 if not gsParamIpyData else gsParamIpyData.GetSkillAtkRateReduceC())
|
| | | Hit = attrDict.get(ShareDefine.Def_Effect_Hit, 0) * (1 if not gsParamIpyData else gsParamIpyData.GetHitC())
|
| | | Miss = attrDict.get(ShareDefine.Def_Effect_Miss, 0) * (1 if not gsParamIpyData else gsParamIpyData.GetMissC())
|
| | |
|
| | | # 攻速不默认乘,仅作为参数提供策划使用
|
| | | AtkSpeed = attrDict.get(ShareDefine.Def_Effect_AtkSpeed, 0)
|
| | |
| | | return hasEnough, itemIndexList, findItemIsBind, needCnt
|
| | |
|
| | |
|
| | | def GetPackItemBindStateIndexInfo(curPlayer, itemID):
|
| | | def GetPackItemBindStateIndexInfo(curPlayer, itemID, needCount=0):
|
| | | ''' 获取背包消耗道具绑定及未绑定索引情况
|
| | | @param needCount: 所需个数, 默认绑定优先,当找到已经足够的个数后不再遍历,减少无用遍历
|
| | | @return: 可消耗物品列表[[绑定物品索引], [不绑定物品索引]], 绑定个数, 未绑定个数
|
| | | '''
|
| | | consumeItemIndexList = [[], []] # 可消耗物品列表[[绑定物品索引], [不绑定物品索引]]
|
| | |
| | | if curItem.GetIsBind():
|
| | | consumeItemIndexList[0].append(i)
|
| | | bindCnt += itemCount
|
| | | if needCount > 0 and bindCnt >= needCount:
|
| | | break
|
| | | else:
|
| | | consumeItemIndexList[1].append(i)
|
| | | unBindCnt += itemCount
|
| | |
| | |
|
| | | def GetShopItemPrice(itemID, priceType):
|
| | | ''' 获取商城物品对应价格 '''
|
| | | ipyData = IpyGameDataPY.GetIpyGameDataByCondition("Store", {"ItemID":itemID, "MoneyType":priceType}, isLogNone=False)
|
| | | # 系统固定商店类型: 仙玉(2-常用道具,3-成长变强),绑玉(4-绑玉商城)
|
| | | priceTypeShopTypeDict = {IPY_GameWorld.TYPE_Price_Gold_Money:[2, 3],
|
| | | IPY_GameWorld.TYPE_Price_Gold_Paper:[4],
|
| | | }
|
| | | ipyData = None
|
| | | if priceType in priceTypeShopTypeDict:
|
| | | for shopType in priceTypeShopTypeDict[priceType]:
|
| | | ipyData = IpyGameDataPY.GetIpyGameDataByCondition("Store", {"ShopType":shopType, "ItemID":itemID, "MoneyType":priceType}, isLogNone=False)
|
| | | if ipyData:
|
| | | break
|
| | | else:
|
| | | ipyData = IpyGameDataPY.GetIpyGameDataByCondition("Store", {"ItemID":itemID, "MoneyType":priceType}, isLogNone=False)
|
| | | if not ipyData:
|
| | | return 0
|
| | | return ipyData.GetMoneyNum()
|