8197 【主干】【后端】莲台合成分解功能(物品可添加的指定技能存储UserData37)
| | |
| | | Def_IudetWingMaterialItemCount = 29 # 翅膀精炼材料个数列表
|
| | | Def_IudetDogzEquipPlus = 31 # 神兽装备强化信息列表 [强化等级, 累计总熟练度]
|
| | | Def_IudetItemDecompound = 33 # 拆解返还物品列表 [装备ID,材料1ID,个数,是否绑定,材料2ID,个数,是否绑定,...]
|
| | | Def_IudetAddSkillItemID = 35 # 可添加的技能物品ID列表 [itemID, itemID, ...], 这里记物品ID防止物品ID对应技能修改后导致需要处理已经生成的物品问题
|
| | | Def_IudetLiantaiItemID = 35 # 合成该莲台的所有莲台ID [itemID, itemID, ...]
|
| | | Def_IudetAddSkillID = 37 # 可添加的技能ID列表 [skillID, skillID, ...]
|
| | |
|
| | | Def_IudetItemColor = 16 # 物品颜色,如果该值没有就取物品
|
| | | Def_IudetItemCount = 18 # 物品个数,支持20亿,目前仅特殊转化物品会用到
|
| | |
| | | ## 获取合成莲台碎片个数
|
| | | decCountTotal = 0
|
| | | decItemIDList = [curItem.GetItemTypeID()]
|
| | | for i in xrange(curItem.GetUserAttrCount(ShareDefine.Def_IudetAddSkillItemID)):
|
| | | itemID = curItem.GetUserAttrByIndex(ShareDefine.Def_IudetAddSkillItemID, i)
|
| | | for i in xrange(curItem.GetUserAttrCount(ShareDefine.Def_IudetLiantaiItemID)):
|
| | | itemID = curItem.GetUserAttrByIndex(ShareDefine.Def_IudetLiantaiItemID, i)
|
| | | if itemID not in decItemIDList:
|
| | | decItemIDList.append(itemID)
|
| | | liantaiDecomposeIDCountDict = IpyGameDataPY.GetFuncEvalCfg("ComposeLiantai", 3, {})
|
| | |
| | | # 所有合成的莲台ID
|
| | | if curItemID not in liantaiComposeAllItemIDList:
|
| | | liantaiComposeAllItemIDList.append(curItemID)
|
| | | for i in xrange(curItem.GetUserAttrCount(ShareDefine.Def_IudetAddSkillItemID)):
|
| | | itemID = curItem.GetUserAttrByIndex(ShareDefine.Def_IudetAddSkillItemID, i)
|
| | | for i in xrange(curItem.GetUserAttrCount(ShareDefine.Def_IudetLiantaiItemID)):
|
| | | itemID = curItem.GetUserAttrByIndex(ShareDefine.Def_IudetLiantaiItemID, i)
|
| | | if itemID not in liantaiComposeAllItemIDList:
|
| | | liantaiComposeAllItemIDList.append(itemID)
|
| | |
|
| | |
| | | # 莲台属性
|
| | | if liantaiInfo:
|
| | | if liantaiComposeAllItemIDList:
|
| | | curSingleItem.ClearUserAttr(ShareDefine.Def_IudetAddSkillItemID)
|
| | | curSingleItem.ClearUserAttr(ShareDefine.Def_IudetLiantaiItemID)
|
| | | for liantaiItemID in liantaiComposeAllItemIDList:
|
| | | curSingleItem.AddUserAttr(ShareDefine.Def_IudetAddSkillItemID, liantaiItemID)
|
| | | curSingleItem.AddUserAttr(ShareDefine.Def_IudetLiantaiItemID, liantaiItemID)
|
| | | |
| | | if liantaiComposeSkillIDList:
|
| | | curSingleItem.ClearUserAttr(ShareDefine.Def_IudetAddSkillID)
|
| | | for skillID in liantaiComposeSkillIDList:
|
| | | curSingleItem.AddUserAttr(ShareDefine.Def_IudetAddSkillID, skillID)
|
| | |
|
| | | if liantaiLegendAttrList:
|
| | | curSingleItem.ClearUserAttr(ShareDefine.Def_IudetLegendAttrID)
|
| | |
| | | def GetItemSkillIDList(curItem):
|
| | | ## 获取物品可添加的技能ID列表
|
| | | addSkillIDList = []
|
| | | gameData = GameWorld.GetGameData()
|
| | | for i in xrange(curItem.GetUserAttrCount(ShareDefine.Def_IudetAddSkillItemID)):
|
| | | itemID = curItem.GetUserAttrByIndex(ShareDefine.Def_IudetAddSkillItemID, i)
|
| | | itemData = gameData.GetItemByTypeID(itemID)
|
| | | if not itemData:
|
| | | continue
|
| | | for i in xrange(itemData.GetAddSkillCount()):
|
| | | skillID = itemData.GetAddSkill(i)
|
| | | if skillID == 0:
|
| | | break
|
| | | addSkillIDList.append(skillID)
|
| | | for i in xrange(curItem.GetUserAttrCount(ShareDefine.Def_IudetAddSkillID)):
|
| | | skillID = curItem.GetUserAttrByIndex(ShareDefine.Def_IudetAddSkillID, i)
|
| | | addSkillIDList.append(skillID)
|
| | | if not addSkillIDList:
|
| | | for i in xrange(curItem.GetAddSkillCount()):
|
| | | skillID = curItem.GetAddSkill(i)
|
| | |
| | | Def_IudetWingMaterialItemCount = 29 # 翅膀精炼材料个数列表
|
| | | Def_IudetDogzEquipPlus = 31 # 神兽装备强化信息列表 [强化等级, 累计总熟练度]
|
| | | Def_IudetItemDecompound = 33 # 拆解返还物品列表 [装备ID,材料1ID,个数,是否绑定,材料2ID,个数,是否绑定,...]
|
| | | Def_IudetAddSkillItemID = 35 # 可添加的技能物品ID列表 [itemID, itemID, ...], 这里记物品ID防止物品ID对应技能修改后导致需要处理已经生成的物品问题
|
| | | Def_IudetLiantaiItemID = 35 # 合成该莲台的所有莲台ID [itemID, itemID, ...]
|
| | | Def_IudetAddSkillID = 37 # 可添加的技能ID列表 [skillID, skillID, ...]
|
| | |
|
| | | Def_IudetItemColor = 16 # 物品颜色,如果该值没有就取物品
|
| | | Def_IudetItemCount = 18 # 物品个数,支持20亿,目前仅特殊转化物品会用到
|