From 509d4cb7a3843b37d46073ef717b58f75fb67fa6 Mon Sep 17 00:00:00 2001
From: hxp <ale99527@vip.qq.com>
Date: 星期五, 09 八月 2019 16:41:23 +0800
Subject: [PATCH] 8197 【主干】【后端】莲台合成分解功能(物品可添加的指定技能存储UserData37)
---
ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Item/UseItem/ItemCommon.py | 14 +++-----------
ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/ShareDefine.py | 3 ++-
ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Event/EventSrc/Operate_ItemCompound.py | 17 +++++++++++------
ServerPython/CoreServerGroup/GameServer/Script/ShareDefine.py | 3 ++-
4 files changed, 18 insertions(+), 19 deletions(-)
diff --git a/ServerPython/CoreServerGroup/GameServer/Script/ShareDefine.py b/ServerPython/CoreServerGroup/GameServer/Script/ShareDefine.py
index 54f26cf..c038414 100644
--- a/ServerPython/CoreServerGroup/GameServer/Script/ShareDefine.py
+++ b/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亿,目前仅特殊转化物品会用到
diff --git a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Event/EventSrc/Operate_ItemCompound.py b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Event/EventSrc/Operate_ItemCompound.py
index b71feb3..2eb2541 100644
--- a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Event/EventSrc/Operate_ItemCompound.py
+++ b/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)
diff --git a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Item/UseItem/ItemCommon.py b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Item/UseItem/ItemCommon.py
index d8bf528..696719e 100644
--- a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Item/UseItem/ItemCommon.py
+++ b/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)
diff --git a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/ShareDefine.py b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/ShareDefine.py
index 54f26cf..c038414 100644
--- a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/ShareDefine.py
+++ b/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亿,目前仅特殊转化物品会用到
--
Gitblit v1.8.0