8197 【主干】【后端】莲台合成分解功能(物品可添加的指定技能存储UserData37)
4个文件已修改
37 ■■■■ 已修改文件
ServerPython/CoreServerGroup/GameServer/Script/ShareDefine.py 3 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Event/EventSrc/Operate_ItemCompound.py 17 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Item/UseItem/ItemCommon.py 14 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/ShareDefine.py 3 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ServerPython/CoreServerGroup/GameServer/Script/ShareDefine.py
@@ -1278,7 +1278,8 @@
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亿,目前仅特殊转化物品会用到
ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Event/EventSrc/Operate_ItemCompound.py
@@ -384,8 +384,8 @@
    ## 获取合成莲台碎片个数
    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, {})
@@ -403,8 +403,8 @@
    # 所有合成的莲台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)
            
@@ -762,9 +762,14 @@
    # 莲台属性
    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)
ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Item/UseItem/ItemCommon.py
@@ -141,17 +141,9 @@
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)
ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/ShareDefine.py
@@ -1278,7 +1278,8 @@
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亿,目前仅特殊转化物品会用到