From 033a680f4c973fbac074a95152c6d313d4a71091 Mon Sep 17 00:00:00 2001
From: hxp <ale99527@vip.qq.com>
Date: 星期三, 12 六月 2019 17:12:39 +0800
Subject: [PATCH] 7220 【后端】【2.0】灵器开发1.0版(增加灵器属性表,灵器战力由评分计算,评分由基础属性+灵器属性组成,原翅膀模块改为灵器模块)
---
ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/GM/Commands/PrintFightPower.py | 4
ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Item/ChEquip.py | 107 ++++++++------------------
ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Item/UseItem/ItemCommon.py | 13 ++-
ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/ShareDefine.py | 2
ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/IpyGameDataPY.py | 26 ++++++
PySysDB/PySysDBPY.h | 12 ++
ServerPython/CoreServerGroup/GameServer/Script/ShareDefine.py | 2
ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/PlayerControl.py | 8 -
ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/ChConfig.py | 9 +-
ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/PlayerWing.py | 38 ---------
10 files changed, 94 insertions(+), 127 deletions(-)
diff --git a/PySysDB/PySysDBPY.h b/PySysDB/PySysDBPY.h
index 634bf0f..db5930b 100644
--- a/PySysDB/PySysDBPY.h
+++ b/PySysDB/PySysDBPY.h
@@ -10,7 +10,7 @@
list Skills; //被动技能
};
-//灵根表 #tagDienstgrad
+//灵根表 #tagRolePoint
struct tagRolePoint
{
@@ -21,6 +21,16 @@
list PointQualityIntervalList; //点数品质进阶属性点区间列表
};
+//灵器属性表 #tagLingQiAttr
+
+struct tagLingQiAttr
+{
+ BYTE _ItemID; //属性ID
+ list LingQiAttrID; //灵器属性ID
+ list LingQiAttrValue; //灵器属性数值
+ DWORD LingQiAttrScore; //灵器属性评分
+};
+
//境界表 #tagRealm
struct tagRealm
diff --git a/ServerPython/CoreServerGroup/GameServer/Script/ShareDefine.py b/ServerPython/CoreServerGroup/GameServer/Script/ShareDefine.py
index 810b9f2..f2c2d12 100644
--- a/ServerPython/CoreServerGroup/GameServer/Script/ShareDefine.py
+++ b/ServerPython/CoreServerGroup/GameServer/Script/ShareDefine.py
@@ -1344,7 +1344,7 @@
Def_MFPType_Plus, # 强化 2
Def_MFPType_Stone, # 宝石 3
Def_MFPType_LingGen, # 灵根 4
-Def_MFPType_Wing, # 翅膀 5
+Def_MFPType_LingQi, # 灵器 5
Def_MFPType_Wash, # 洗练 6
Def_MFPType_Pet, # 灵宠 7
Def_MFPType_Horse, # 坐骑 8
diff --git a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/ChConfig.py b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/ChConfig.py
index f12cf73..6e0eaad 100644
--- a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/ChConfig.py
+++ b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/ChConfig.py
@@ -4344,7 +4344,7 @@
Def_CalcAttrFunc_Plus, # 装备位强化 5
Def_CalcAttrFunc_Stone, # 装备宝石 6
Def_CalcAttrFunc_Wash, # 洗练 7
-Def_CalcAttrFunc_Wing, # 翅膀 8
+Def_CalcAttrFunc_Wing, # 翅膀 - 废弃 8
Def_CalcAttrFunc_Pet, # 灵宠 9
Def_CalcAttrFunc_Horse, # 坐骑 10
Def_CalcAttrFunc_Prestige, # 境界 11
@@ -4374,12 +4374,13 @@
Def_CalcAttrFunc_MagicWeapon4, # 王者法宝 35
Def_CalcAttrFunc_Coat, # 时装 36
Def_CalcAttrFunc_LingQi, # 灵器 37
-) = range(38)
+Def_CalcAttrFunc_LingQiAttr, # 灵器属性 38
+) = range(39)
# 技能功能点列表 - 默认不算战力,不享受百分比加成,技能功能点暂时配置,之后优化技能属性逻辑后可去掉
CalcAttrFuncSkillList = [Def_CalcAttrFunc_HorseSkill, Def_CalcAttrFunc_PetSkill, Def_CalcAttrFunc_DogzBattleSkill]
# 不计算战力的功能点列表 - 由其他方式计算的战力的功能点,如装备用评分计算
-CalcAttrFuncNoFightPowerList = [Def_CalcAttrFunc_Equip, Def_CalcAttrFunc_DogzEquip]
+CalcAttrFuncNoFightPowerList = [Def_CalcAttrFunc_Equip, Def_CalcAttrFunc_DogzEquip, Def_CalcAttrFunc_LingQiAttr]
#战斗力分组类型对应功能点属性分类索引列表,并不是一一对应的,有些战斗力类型可由多个功能点组成
#***注意***: 以下功能点需包含上面定义的所有功能点,不然会导致有些属性无法加上
@@ -4389,7 +4390,7 @@
ShareDefine.Def_MFPType_Star:[Def_CalcAttrFunc_Star],
ShareDefine.Def_MFPType_Plus:[Def_CalcAttrFunc_Plus],
ShareDefine.Def_MFPType_Stone:[Def_CalcAttrFunc_Stone],
- ShareDefine.Def_MFPType_Wing:[Def_CalcAttrFunc_Wing, Def_CalcAttrFunc_LingQi],
+ ShareDefine.Def_MFPType_LingQi:[Def_CalcAttrFunc_LingQi, Def_CalcAttrFunc_LingQiAttr],
ShareDefine.Def_MFPType_Wash:[Def_CalcAttrFunc_Wash],
ShareDefine.Def_MFPType_Pet:[Def_CalcAttrFunc_Pet, Def_CalcAttrFunc_PetSign, Def_CalcAttrFunc_PetSkill],
ShareDefine.Def_MFPType_PetSoul:[Def_CalcAttrFunc_PetSoul],
diff --git a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/GM/Commands/PrintFightPower.py b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/GM/Commands/PrintFightPower.py
index 0011390..2f1f1bd 100644
--- a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/GM/Commands/PrintFightPower.py
+++ b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/GM/Commands/PrintFightPower.py
@@ -35,7 +35,7 @@
ShareDefine.Def_MFPType_Plus:"强化",
ShareDefine.Def_MFPType_Stone:"宝石",
ShareDefine.Def_MFPType_Wash:"洗练",
- ShareDefine.Def_MFPType_Wing:"翅膀",
+ ShareDefine.Def_MFPType_LingQi:"灵器",
ShareDefine.Def_MFPType_Pet:"灵宠",
ShareDefine.Def_MFPType_Horse:"坐骑",
ShareDefine.Def_MFPType_Prestige:"境界",
@@ -64,8 +64,8 @@
ChConfig.Def_CalcAttrFunc_Plus:"强化",
ChConfig.Def_CalcAttrFunc_Stone:"宝石",
ChConfig.Def_CalcAttrFunc_Wash:"洗练",
- ChConfig.Def_CalcAttrFunc_Wing:"翅膀",
ChConfig.Def_CalcAttrFunc_LingQi:"灵器",
+ ChConfig.Def_CalcAttrFunc_LingQiAttr:"灵器属性",
ChConfig.Def_CalcAttrFunc_Pet:"灵宠",
ChConfig.Def_CalcAttrFunc_Horse:"坐骑",
ChConfig.Def_CalcAttrFunc_Prestige:"境界",
diff --git a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/IpyGameDataPY.py b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/IpyGameDataPY.py
index 915a280..a2216c5 100644
--- a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/IpyGameDataPY.py
+++ b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/IpyGameDataPY.py
@@ -49,6 +49,13 @@
("list", "PointQualityIntervalList", 0),
),
+ "LingQiAttr":(
+ ("BYTE", "ItemID", 1),
+ ("list", "LingQiAttrID", 0),
+ ("list", "LingQiAttrValue", 0),
+ ("DWORD", "LingQiAttrScore", 0),
+ ),
+
"Realm":(
("WORD", "Lv", 1),
("DWORD", "NeedLV", 0),
@@ -1504,6 +1511,21 @@
def GetFightPowerPerPoint(self): return self.FightPowerPerPoint # 每点附加战斗力
def GetPointQualityAttrDict(self): return self.PointQualityAttrDict # 点数品质进阶增加属性, {职业:{属性ID:[阶段属性,..],..},..}
def GetPointQualityIntervalList(self): return self.PointQualityIntervalList # 点数品质进阶属性点区间列表
+
+# 灵器属性表
+class IPY_LingQiAttr():
+
+ def __init__(self):
+ self.ItemID = 0
+ self.LingQiAttrID = []
+ self.LingQiAttrValue = []
+ self.LingQiAttrScore = 0
+ return
+
+ def GetItemID(self): return self.ItemID # 属性ID
+ def GetLingQiAttrID(self): return self.LingQiAttrID # 灵器属性ID
+ def GetLingQiAttrValue(self): return self.LingQiAttrValue # 灵器属性数值
+ def GetLingQiAttrScore(self): return self.LingQiAttrScore # 灵器属性评分
# 境界表
class IPY_Realm():
@@ -4516,6 +4538,8 @@
self.ipyDienstgradLen = len(self.ipyDienstgradCache)
self.ipyRolePointCache = self.__LoadFileData("RolePoint", IPY_RolePoint)
self.ipyRolePointLen = len(self.ipyRolePointCache)
+ self.ipyLingQiAttrCache = self.__LoadFileData("LingQiAttr", IPY_LingQiAttr)
+ self.ipyLingQiAttrLen = len(self.ipyLingQiAttrCache)
self.ipyRealmCache = self.__LoadFileData("Realm", IPY_Realm)
self.ipyRealmLen = len(self.ipyRealmCache)
self.ipyGodWeaponCache = self.__LoadFileData("GodWeapon", IPY_GodWeapon)
@@ -4980,6 +5004,8 @@
def GetDienstgradByIndex(self, index): return self.ipyDienstgradCache[index]
def GetRolePointCount(self): return self.ipyRolePointLen
def GetRolePointByIndex(self, index): return self.ipyRolePointCache[index]
+ def GetLingQiAttrCount(self): return self.ipyLingQiAttrLen
+ def GetLingQiAttrByIndex(self, index): return self.ipyLingQiAttrCache[index]
def GetRealmCount(self): return self.ipyRealmLen
def GetRealmByIndex(self, index): return self.ipyRealmCache[index]
def GetGodWeaponCount(self): return self.ipyGodWeaponLen
diff --git a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Item/ChEquip.py b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Item/ChEquip.py
index 1b90e7e..1e2f19f 100644
--- a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Item/ChEquip.py
+++ b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Item/ChEquip.py
@@ -579,13 +579,13 @@
classLV = 0 # 灵器阶默认为0
allAttrList = [{} for _ in range(4)]
+ lingQiAttrList = [{} for _ in range(4)]
equipPack = curPlayer.GetItemManager().GetPack(IPY_GameWorld.rptEquip)
+ equipScoreTotal = 0
+ lv = curPlayer.GetLV()
+ OutOfPrintAttrFormatDict = IpyGameDataPY.GetFuncEvalCfg("OutOfPrintValue", 2, {})
for equipPlace in ChConfig.EquipPlace_LingQi:
-
- if equipPlace == ShareDefine.retWing:
- PlayerWing.CalcWingAttr(curPlayer)
- continue
ipyData = IpyGameDataPY.GetIpyGameData('EquipPlaceIndexMap', classLV, equipPlace)
if not ipyData:
@@ -600,16 +600,44 @@
# 过期
continue
+ equipScoreTotal += ItemCommon.GetEquipGearScore(curEquip)
+
+ itemID = curEquip.GetItemTypeID()
#基础属性效果
for effIndex in xrange(curEquip.GetEffectCount()):
curEff = curEquip.GetEffectByIndex(effIndex)
effID = curEff.GetEffectID()
if effID == 0:
break
- PlayerControl.CalcAttrDict_Type(effID, curEff.GetEffectValue(0), allAttrList)
+ PlayerControl.CalcAttrDict_Type(effID, curEff.GetEffectValue(0), lingQiAttrList)
- #GameWorld.DebugLog("灵器属性: %s" % allAttrList)
+ #灵器属性
+ lingQiIpyData = IpyGameDataPY.GetIpyGameDataNotLog("LingQiAttr", itemID)
+ if lingQiIpyData:
+ lingQiAttrIDList = lingQiIpyData.GetLingQiAttrID()
+ lingQiAttrValueList = lingQiIpyData.GetLingQiAttrValue()
+ for lqIndex, lqAttrID in enumerate(lingQiAttrIDList):
+ if str(lqAttrID) in OutOfPrintAttrFormatDict:
+ attrFormat = OutOfPrintAttrFormatDict[str(lqAttrID)]
+ maxOOPValue = lingQiAttrValueList[lqIndex]
+ lqAttrValue = eval(FormulaControl.GetCompileFormula("OutOfPrintAttrFormat_%s" % lqAttrID, attrFormat))
+ else:
+ lqAttrValue = lingQiAttrValueList[lqIndex]
+
+ PlayerControl.CalcAttrDict_Type(lqAttrID, lqAttrValue, lingQiAttrList)
+
+ #灵器各部位其他属性
+ if equipPlace == ShareDefine.retWing:
+ PlayerWing.CalcWingAttrEx(curPlayer, curEquip, allAttrList)
+
+ lqFightPowerEx = eval(IpyGameDataPY.GetFuncCompileCfg("FightpowerFormula", 2))
+ curPlayer.SetDict(ChConfig.Def_PlayerKey_MFPEx % ShareDefine.Def_MFPType_LingQi, lqFightPowerEx)
+
+ #GameWorld.DebugLog("灵器属性1: %s" % allAttrList)
+ #GameWorld.DebugLog("灵器属性2: %s" % lingQiAttrList)
+ #GameWorld.DebugLog("灵器评分战力: equipScoreTotal=%s, %s" % (equipScoreTotal, lqFightPowerEx))
PlayerControl.SetCalcAttrListValue(curPlayer, ChConfig.Def_CalcAttrFunc_LingQi, allAttrList)
+ PlayerControl.SetCalcAttrListValue(curPlayer, ChConfig.Def_CalcAttrFunc_LingQiAttr, lingQiAttrList)
return
def __CalcEquips_Effect(curPlayer, classLV):
@@ -752,9 +780,6 @@
PlayerControl.CalcAttrDict_Type(legendAttrID, legendAttrValue, allAttrListEquip)
#GameWorld.DebugLog(" 传奇属性: ID=%s +%s" % (legendAttrID, legendAttrValue))
__CalcFuncAddEquipAttrPer(equipPlace, legendAttrID, legendAttrValue, equip_addEquipBaseAttrPerList)
-
- #绝世属性 - 暂不考虑
- #CalcAttr_OutOfPrintAttr(curPlayer, curEquip, allAttrListOutOfPrintEquip)
#物品强化属性
__CalcAttr_ItemPlus(curPlayer, curEquip, packType, equipIndex, allAttrListPlus, plus_addEquipBaseAttrPerList)
@@ -791,8 +816,6 @@
#__CalcFuncAddEquipAttrValue(allEquipBaseAttrDict, baseEquipBaseAttrDict, equipBaseAttrDict, stone_addEquipBaseAttrPerList, insideAttrDictStone, "Stone")
#__CalcFuncAddEquipAttrValue(allEquipBaseAttrDict, baseEquipBaseAttrDict, equipBaseAttrDict, wash_addEquipBaseAttrPerList, insideAttrDictWash, "Wash")
- #保存计算值
- #PlayerControl.SetCalcAttrListValue(curPlayer, ChConfig.Def_CalcAttrFunc_EquipOutOfPrint, allAttrListOutOfPrintEquip)
#计算装备基础属性附加战力 (目前组成: 评分战力 + ...)
equipFightPowerEx = eval(IpyGameDataPY.GetFuncCompileCfg("FightpowerFormula", 2))
@@ -941,68 +964,6 @@
PlayerControl.CalcAttrDict_Type(attrID, value, allAttrListEquip)
#legendAttrDict[attrID] = legendAttrDict.get(attrID, 0) + value
- return
-
-
-# 装备绝版属性,随等级变化需在升级再处理
-def CalcAttr_OutOfPrintAttr(curPlayer, curEquip, allAttrListOutOfPrintEquip):
- ## 计算绝版属性
-
- # 绝版属性ID列表
- OutOfPrintAttrIDList = [curEquip.GetUserAttrByIndex(ShareDefine.Def_IudetOutOfPrintAttrID, i) \
- for i in range(curEquip.GetUserAttrCount(ShareDefine.Def_IudetOutOfPrintAttrID))]
- # 绝版属性值列表
- OutOfPrintAttrValueList = [curEquip.GetUserAttrByIndex(ShareDefine.Def_IudetOutOfPrintAttrValue, i) \
- for i in range(curEquip.GetUserAttrCount(ShareDefine.Def_IudetOutOfPrintAttrValue))]
- if not OutOfPrintAttrIDList or len(OutOfPrintAttrIDList) != len(OutOfPrintAttrValueList):
- return
-
- lv = curPlayer.GetLV()
- OutOfPrintAttrFormatDict = IpyGameDataPY.GetFuncEvalCfg("OutOfPrintValue", 2, {})
- for i, attrID in enumerate(OutOfPrintAttrIDList):
- if str(attrID) not in OutOfPrintAttrFormatDict:
- continue
- attrFormat = OutOfPrintAttrFormatDict[str(attrID)]
- maxOOPValue = OutOfPrintAttrValueList[i]
- value = eval(FormulaControl.GetCompileFormula("OutOfPrintAttrFormat_%s" % attrID, attrFormat))
- GameWorld.DebugLog("加绝版属性: %s +%s" % (attrID, value))
- PlayerControl.CalcAttrDict_Type(attrID, value, allAttrListOutOfPrintEquip)
-
- return
-
-
-## 计算装备对基本属性的改变
-# @return None
-def CalcEquips_OutOfPrint(curPlayer):
- # 境界装备改版,先屏蔽,之后再处理
- return
- allAttrListOutOfPrintEquip = [{} for _ in range(4)] # 绝版装备属性 需在等级变化独立计算
-
- packType = IPY_GameWorld.rptEquip
- playerEquip = curPlayer.GetItemManager().GetPack(packType)
-
- #玩家当前可装备的装备类型
- for equipIndex in xrange(playerEquip.GetCount()):
- if equipIndex not in ShareDefine.RoleEquipType :
- continue
-
- # 翅膀属性在翅膀功能单独刷新
- if equipIndex == ShareDefine.retWing:
- continue
-
- curEquip = playerEquip.GetAt(equipIndex)
- if curEquip.IsEmpty():
- continue
-
- if not ItemCommon.CheckItemCanUseByExpireTime(curEquip):
- # 过期
- continue
-
- #绝世属性
- CalcAttr_OutOfPrintAttr(curPlayer, curEquip, allAttrListOutOfPrintEquip)
-
- #保存计算值
- PlayerControl.SetCalcAttrListValue(curPlayer, ChConfig.Def_CalcAttrFunc_EquipOutOfPrint, allAttrListOutOfPrintEquip)
return
def __CalcAttr_ItemPlus(curPlayer, curEquip, packType, equipIndex, allAttrList, plus_addEquipBaseAttrPerList):
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 65694bb..aeceafb 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
@@ -392,18 +392,19 @@
break
attrDict[effectID] = attrDict.get(effectID, 0) + curEffect.GetEffectValue(0)
- skillGS = 0
+ gsValueEx = 0
skillGSDict = IpyGameDataPY.GetFuncCfg("EquipGSFormula", 4)
for i in xrange(curItem.GetAddSkillCount()):
addSkillID = curItem.GetAddSkill(i)
if not addSkillID:
break
- skillGS += skillGSDict.get(str(addSkillID), 0)
+ gsValueEx += skillGSDict.get(str(addSkillID), 0)
+ itemID = curItem.GetItemTypeID()
classLV = GetItemClassLV(curItem)
color = curItem.GetItemColor()
isSuit = 1 if curItem.GetSuiteID() > 0 else 0
- gsParamIpyData = IpyGameDataPY.GetIpyGameData("EquipGSParam", classLV, color, isSuit)
+ gsParamIpyData = IpyGameDataPY.GetIpyGameDataNotLog("EquipGSParam", classLV, color, isSuit)
# 传奇属性
legendAttrIDCnt = curItem.GetUserAttrCount(ShareDefine.Def_IudetLegendAttrID)
legendAttrValueCnt = curItem.GetUserAttrCount(ShareDefine.Def_IudetLegendAttrValue)
@@ -413,6 +414,10 @@
attrValue = curItem.GetUserAttrByIndex(ShareDefine.Def_IudetLegendAttrValue, i)
attrDict[attrID] = attrDict.get(attrID, 0) + attrValue
+ lingQiIpyData = IpyGameDataPY.GetIpyGameDataNotLog("LingQiAttr", itemID)
+ if lingQiIpyData:
+ gsValueEx += lingQiIpyData.GetLingQiAttrScore()
+
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
@@ -489,7 +494,7 @@
value = eval(FormulaControl.GetCompileFormula("EquipGSFormula3", IpyGameDataPY.GetFuncCfg("EquipGSFormula", 3)))
else:
value = eval(FormulaControl.GetCompileFormula("EquipGSFormula", IpyGameDataPY.GetFuncCfg("EquipGSFormula")))
- value += skillGS
+ value += gsValueEx
return value
def GetZhuXianEquipTotalGS(curPlayer):
diff --git a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/PlayerControl.py b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/PlayerControl.py
index 9f78673..d33b761 100644
--- a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/PlayerControl.py
+++ b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/PlayerControl.py
@@ -4057,7 +4057,7 @@
PlayerGreatMaster.Sync_GreatMasterFreeSkillPoint(curPlayer)
# 升级需要执行的游戏功能处理
GameFuncComm.DoFuncOpenLogic(curPlayer)
- #ChEquip.CalcEquips_OutOfPrint(curPlayer) # 缓存绝版属性
+ ChEquip.RefreshPlayerLingQiEquipAttr(curPlayer) # 灵器属性会随等级成长
if aftLV%10 == 0:
# 控制下刷新次数
PlayerPet.CalcPetItemAddPlayerAttr(curPlayer) # 宠物有随等级变化的技能
@@ -4247,7 +4247,6 @@
ChEquip.RefreshPlayerEquipAttribute(curPlayer)
ChEquip.RefreshPlayerLingQiEquipAttr(curPlayer)
#SkillShell.RefreshPlayerBuffOnAttrAddEffect(curPlayer)
- #PlayerWing.CalcWingAttr(curPlayer) # 翅膀暂时算在灵器里面
PlayerHorse.CalcHorseAttrEx(curPlayer)
PlayerPrestigeSys.CalcOfficialRankAttr(curPlayer)
PlayerGodWeapon.CalcGodWeaponAttr(curPlayer)
@@ -4464,7 +4463,6 @@
ChConfig.TYPE_Calc_StoneBasePer:funcAttrInfoList[ChConfig.Def_CalcAttrFunc_Stone],
ChConfig.TYPE_Calc_RealmBasePer:funcAttrInfoList[ChConfig.Def_CalcAttrFunc_Prestige],
ChConfig.TYPE_Calc_HorseAtkPer:funcAttrInfoList[ChConfig.Def_CalcAttrFunc_Horse],
- ChConfig.TYPE_Calc_WingHPPer:funcAttrInfoList[ChConfig.Def_CalcAttrFunc_Wing],
}
# 3.2 统计各功能之间非线性属性交叉影响累加
funcCrossAttrPerInfoDict = {} # 百分比交叉影响所提升的属性值 {功能属性编号:{提升的属性类型:数值, ...}, ...}
@@ -4500,7 +4498,7 @@
# 3.3 统计所有功能固定属性影响累加
allFixAttrDict = {} # 固定属性层级总属性基值
for funcIndex, funcAttrList in enumerate(funcAttrInfoList):
- # 技能模块不算计入功能固定属性、不计战力
+ # 技能模块不计入功能固定属性、不计战力
if funcIndex in ChConfig.CalcAttrFuncSkillList:
continue
AddAttrDictValue(allFixAttrDict, funcAttrList[ChConfig.CalcAttr_Battle])
@@ -4532,7 +4530,7 @@
mfpAttrExDict = {}
for funcIndex in attrFuncIndexList:
if funcIndex in ChConfig.CalcAttrFuncSkillList:
- # 技能模块不算计入功能固定属性、不计战力
+ # 技能模块不计入功能固定属性、不计战力
continue
funcAttrList = funcAttrInfoList[funcIndex]
funcInsidePerAttrDict = funcInsidePerAttrList[funcIndex] # 功能点内部百分比加成属性
diff --git a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/PlayerWing.py b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/PlayerWing.py
index cc27958..ef916c3 100644
--- a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/PlayerWing.py
+++ b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/PlayerWing.py
@@ -84,7 +84,7 @@
GameWorld.DebugLog("没有精炼值")
return
WingProgressUP(curWing, totalPoint, materialItemDict, curPlayer)
- CalcWingAttr(curPlayer)
+ ChEquip.RefreshPlayerLingQiEquipAttr(curPlayer)
PlayerControl.PlayerControl(curPlayer).RefreshPlayerAttrState()
PlayerSuccess.DoAddSuccessProgress(curPlayer, ShareDefine.SuccType_WingRefine, 1)
return
@@ -278,36 +278,7 @@
# @param curPlayer 玩家
# @param allAttrList 属性列表
# @return None
-def CalcWingAttr(curPlayer):
-
- classLV = 0
- equipPlace = ShareDefine.retWing
- allAttrList = [{} for _ in range(4)]
-
- curWing = None
- equipPack = curPlayer.GetItemManager().GetPack(IPY_GameWorld.rptEquip)
- ipyData = IpyGameDataPY.GetIpyGameData('EquipPlaceIndexMap', classLV, equipPlace)
- if ipyData:
- curWing = equipPack.GetAt(ipyData.GetGridIndex())
-
- if not ItemCommon.CheckItemCanUse(curWing):
- #GameWorld.DebugLog("没有穿戴翅膀!")
- PlayerControl.SetCalcAttrListValue(curPlayer, ChConfig.Def_CalcAttrFunc_Wing, allAttrList)
- return
-
- if not ItemCommon.CheckItemCanUseByExpireTime(curWing):
- # 过期
- PlayerControl.SetCalcAttrListValue(curPlayer, ChConfig.Def_CalcAttrFunc_Wing, allAttrList)
- return False
-
- # 物品表固定效果属性
- for effIndex in xrange(curWing.GetEffectCount()):
- curEff = curWing.GetEffectByIndex(effIndex)
- effID = curEff.GetEffectID()
- if effID == 0:
- continue
- PlayerControl.CalcAttrDict_Type(effID, curEff.GetEffectValue(0), allAttrList)
- #GameWorld.DebugLog("翅膀固定属性: %s" % allAttrList)
+def CalcWingAttrEx(curPlayer, curWing, allAttrList):
# 精炼属性
wingAttrIpyData = GetWingRefineAttrData(curWing.GetItemTypeID())
@@ -321,11 +292,6 @@
for effID, value in fujiaValueDict.items():
PlayerControl.CalcAttrDict_Type(effID, int(value * rate), allAttrList)
#GameWorld.DebugLog(" 精炼属性: %s" % allAttrList)
-
- # 传奇属性
- ChEquip.CalcAttr_LegendAttr(curPlayer, curWing, allAttrList)
- #GameWorld.DebugLog(" 传奇属性: %s" % allAttrList)
- PlayerControl.SetCalcAttrListValue(curPlayer, ChConfig.Def_CalcAttrFunc_Wing, allAttrList)
return
diff --git a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/ShareDefine.py b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/ShareDefine.py
index 810b9f2..f2c2d12 100644
--- a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/ShareDefine.py
+++ b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/ShareDefine.py
@@ -1344,7 +1344,7 @@
Def_MFPType_Plus, # 强化 2
Def_MFPType_Stone, # 宝石 3
Def_MFPType_LingGen, # 灵根 4
-Def_MFPType_Wing, # 翅膀 5
+Def_MFPType_LingQi, # 灵器 5
Def_MFPType_Wash, # 洗练 6
Def_MFPType_Pet, # 灵宠 7
Def_MFPType_Horse, # 坐骑 8
--
Gitblit v1.8.0