From 921b9a471b986fb148b8260d80ca23b9b25d42b4 Mon Sep 17 00:00:00 2001
From: hxp <ale99527@vip.qq.com>
Date: 星期四, 12 一月 2023 17:08:11 +0800
Subject: [PATCH] 9762 【BT8】【后端】藏宝阁 冲突 master
---
ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/GM/Commands/PrintFightPower.py | 86 ------
ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/ShareDefine.py | 5
ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/ChPyNetPack.py | 275 ++++++++++++++++++++++
ServerPython/CoreServerGroup/GameServer/Script/ChPyNetPack.py | 275 ++++++++++++++++++++++
ServerPython/CoreServerGroup/GameServer/Script/ShareDefine.py | 5
ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/PlayerControl.py | 4
ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/ChConfig.py | 52 ++++
7 files changed, 615 insertions(+), 87 deletions(-)
diff --git a/ServerPython/CoreServerGroup/GameServer/Script/ChPyNetPack.py b/ServerPython/CoreServerGroup/GameServer/Script/ChPyNetPack.py
index f27cb3e..4a1280f 100644
--- a/ServerPython/CoreServerGroup/GameServer/Script/ChPyNetPack.py
+++ b/ServerPython/CoreServerGroup/GameServer/Script/ChPyNetPack.py
@@ -17835,6 +17835,162 @@
#------------------------------------------------------
+# B2 16 古宝激活 #tagCMGubaoActivate
+
+class tagCMGubaoActivate(Structure):
+ _pack_ = 1
+ _fields_ = [
+ ("Cmd", c_ubyte),
+ ("SubCmd", c_ubyte),
+ ("GubaoID", c_ushort),
+ ]
+
+ def __init__(self):
+ self.Clear()
+ self.Cmd = 0xB2
+ self.SubCmd = 0x16
+ return
+
+ def ReadData(self, stringData, _pos=0, _len=0):
+ self.Clear()
+ memmove(addressof(self), stringData[_pos:], self.GetLength())
+ return _pos + self.GetLength()
+
+ def Clear(self):
+ self.Cmd = 0xB2
+ self.SubCmd = 0x16
+ self.GubaoID = 0
+ return
+
+ def GetLength(self):
+ return sizeof(tagCMGubaoActivate)
+
+ def GetBuffer(self):
+ return string_at(addressof(self), self.GetLength())
+
+ def OutputString(self):
+ DumpString = '''// B2 16 古宝激活 //tagCMGubaoActivate:
+ Cmd:%s,
+ SubCmd:%s,
+ GubaoID:%d
+ '''\
+ %(
+ self.Cmd,
+ self.SubCmd,
+ self.GubaoID
+ )
+ return DumpString
+
+
+m_NAtagCMGubaoActivate=tagCMGubaoActivate()
+ChNetPackDict[eval("0x%02x%02x"%(m_NAtagCMGubaoActivate.Cmd,m_NAtagCMGubaoActivate.SubCmd))] = m_NAtagCMGubaoActivate
+
+
+#------------------------------------------------------
+# B2 18 古宝升级 #tagCMGubaoLVUp
+
+class tagCMGubaoLVUp(Structure):
+ _pack_ = 1
+ _fields_ = [
+ ("Cmd", c_ubyte),
+ ("SubCmd", c_ubyte),
+ ("GubaoID", c_ushort),
+ ]
+
+ def __init__(self):
+ self.Clear()
+ self.Cmd = 0xB2
+ self.SubCmd = 0x18
+ return
+
+ def ReadData(self, stringData, _pos=0, _len=0):
+ self.Clear()
+ memmove(addressof(self), stringData[_pos:], self.GetLength())
+ return _pos + self.GetLength()
+
+ def Clear(self):
+ self.Cmd = 0xB2
+ self.SubCmd = 0x18
+ self.GubaoID = 0
+ return
+
+ def GetLength(self):
+ return sizeof(tagCMGubaoLVUp)
+
+ def GetBuffer(self):
+ return string_at(addressof(self), self.GetLength())
+
+ def OutputString(self):
+ DumpString = '''// B2 18 古宝升级 //tagCMGubaoLVUp:
+ Cmd:%s,
+ SubCmd:%s,
+ GubaoID:%d
+ '''\
+ %(
+ self.Cmd,
+ self.SubCmd,
+ self.GubaoID
+ )
+ return DumpString
+
+
+m_NAtagCMGubaoLVUp=tagCMGubaoLVUp()
+ChNetPackDict[eval("0x%02x%02x"%(m_NAtagCMGubaoLVUp.Cmd,m_NAtagCMGubaoLVUp.SubCmd))] = m_NAtagCMGubaoLVUp
+
+
+#------------------------------------------------------
+# B2 17 古宝升星 #tagCMGubaoStarUp
+
+class tagCMGubaoStarUp(Structure):
+ _pack_ = 1
+ _fields_ = [
+ ("Cmd", c_ubyte),
+ ("SubCmd", c_ubyte),
+ ("GubaoID", c_ushort),
+ ]
+
+ def __init__(self):
+ self.Clear()
+ self.Cmd = 0xB2
+ self.SubCmd = 0x17
+ return
+
+ def ReadData(self, stringData, _pos=0, _len=0):
+ self.Clear()
+ memmove(addressof(self), stringData[_pos:], self.GetLength())
+ return _pos + self.GetLength()
+
+ def Clear(self):
+ self.Cmd = 0xB2
+ self.SubCmd = 0x17
+ self.GubaoID = 0
+ return
+
+ def GetLength(self):
+ return sizeof(tagCMGubaoStarUp)
+
+ def GetBuffer(self):
+ return string_at(addressof(self), self.GetLength())
+
+ def OutputString(self):
+ DumpString = '''// B2 17 古宝升星 //tagCMGubaoStarUp:
+ Cmd:%s,
+ SubCmd:%s,
+ GubaoID:%d
+ '''\
+ %(
+ self.Cmd,
+ self.SubCmd,
+ self.GubaoID
+ )
+ return DumpString
+
+
+m_NAtagCMGubaoStarUp=tagCMGubaoStarUp()
+ChNetPackDict[eval("0x%02x%02x"%(m_NAtagCMGubaoStarUp.Cmd,m_NAtagCMGubaoStarUp.SubCmd))] = m_NAtagCMGubaoStarUp
+
+
+#------------------------------------------------------
# B2 07 重置加点 #tagCMResetAttrPoint
class tagCMResetAttrPoint(Structure):
@@ -17883,6 +18039,125 @@
#------------------------------------------------------
+# B2 19 神通升级 #tagCMShentongLVUp
+
+class tagCMShentongLVUp(Structure):
+ _pack_ = 1
+ _fields_ = [
+ ("Cmd", c_ubyte),
+ ("SubCmd", c_ubyte),
+ ("ShentongID", c_ubyte),
+ ]
+
+ def __init__(self):
+ self.Clear()
+ self.Cmd = 0xB2
+ self.SubCmd = 0x19
+ return
+
+ def ReadData(self, stringData, _pos=0, _len=0):
+ self.Clear()
+ memmove(addressof(self), stringData[_pos:], self.GetLength())
+ return _pos + self.GetLength()
+
+ def Clear(self):
+ self.Cmd = 0xB2
+ self.SubCmd = 0x19
+ self.ShentongID = 0
+ return
+
+ def GetLength(self):
+ return sizeof(tagCMShentongLVUp)
+
+ def GetBuffer(self):
+ return string_at(addressof(self), self.GetLength())
+
+ def OutputString(self):
+ DumpString = '''// B2 19 神通升级 //tagCMShentongLVUp:
+ Cmd:%s,
+ SubCmd:%s,
+ ShentongID:%d
+ '''\
+ %(
+ self.Cmd,
+ self.SubCmd,
+ self.ShentongID
+ )
+ return DumpString
+
+
+m_NAtagCMShentongLVUp=tagCMShentongLVUp()
+ChNetPackDict[eval("0x%02x%02x"%(m_NAtagCMShentongLVUp.Cmd,m_NAtagCMShentongLVUp.SubCmd))] = m_NAtagCMShentongLVUp
+
+
+#------------------------------------------------------
+# B2 20 神通技能设置 #tagCMShentongSkillSet
+
+class tagCMShentongSkillSet(Structure):
+ Head = tagHead()
+ Count = 0 #(BYTE Count)
+ SkillIDList = list() #(vector<DWORD> SkillIDList)
+ data = None
+
+ def __init__(self):
+ self.Clear()
+ self.Head.Cmd = 0xB2
+ self.Head.SubCmd = 0x20
+ return
+
+ def ReadData(self, _lpData, _pos=0, _Len=0):
+ self.Clear()
+ _pos = self.Head.ReadData(_lpData, _pos)
+ self.Count,_pos = CommFunc.ReadBYTE(_lpData, _pos)
+ for i in range(self.Count):
+ value,_pos=CommFunc.ReadDWORD(_lpData,_pos)
+ self.SkillIDList.append(value)
+ return _pos
+
+ def Clear(self):
+ self.Head = tagHead()
+ self.Head.Clear()
+ self.Head.Cmd = 0xB2
+ self.Head.SubCmd = 0x20
+ self.Count = 0
+ self.SkillIDList = list()
+ return
+
+ def GetLength(self):
+ length = 0
+ length += self.Head.GetLength()
+ length += 1
+ length += 4 * self.Count
+
+ return length
+
+ def GetBuffer(self):
+ data = ''
+ data = CommFunc.WriteString(data, self.Head.GetLength(), self.Head.GetBuffer())
+ data = CommFunc.WriteBYTE(data, self.Count)
+ for i in range(self.Count):
+ data = CommFunc.WriteDWORD(data, self.SkillIDList[i])
+ return data
+
+ def OutputString(self):
+ DumpString = '''
+ Head:%s,
+ Count:%d,
+ SkillIDList:%s
+ '''\
+ %(
+ self.Head.OutputString(),
+ self.Count,
+ "..."
+ )
+ return DumpString
+
+
+m_NAtagCMShentongSkillSet=tagCMShentongSkillSet()
+ChNetPackDict[eval("0x%02x%02x"%(m_NAtagCMShentongSkillSet.Head.Cmd,m_NAtagCMShentongSkillSet.Head.SubCmd))] = m_NAtagCMShentongSkillSet
+
+
+#------------------------------------------------------
#B2 01 脱机挂状态 # tagCMLoginState
class tagCMLoginState(Structure):
diff --git a/ServerPython/CoreServerGroup/GameServer/Script/ShareDefine.py b/ServerPython/CoreServerGroup/GameServer/Script/ShareDefine.py
index b27b4cc..8064653 100644
--- a/ServerPython/CoreServerGroup/GameServer/Script/ShareDefine.py
+++ b/ServerPython/CoreServerGroup/GameServer/Script/ShareDefine.py
@@ -1597,7 +1597,7 @@
)=range(5)
# 战斗力模块类型
-Def_MFPType_Max = 29
+Def_MFPType_Max = 32
ModuleFightPowerTypeList = (
Def_MFPType_Role, # 角色 0
Def_MFPType_Equip, # 装备(装备本身) 1
@@ -1627,6 +1627,9 @@
Def_MFPType_Love, # 情缘 25
Def_MFPType_Charm, # 魅力 26
Def_MFPType_LianTi, # 炼体 27
+Def_MFPType_Enchant, # 附魔 28
+Def_MFPType_Gubao, # 古宝 29
+Def_MFPType_Shentong, # 神通 30
Def_MFPType_Other, # 其他
) = range(Def_MFPType_Max)
diff --git a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/ChConfig.py b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/ChConfig.py
index 2fc42a5..07b6fa0 100644
--- a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/ChConfig.py
+++ b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/ChConfig.py
@@ -4261,6 +4261,13 @@
Def_PDict_LoveRingEatCount = "LoveRingEatCount" # 情戒 - 本星已淬炼道具数
Def_PDict_LoveCoupleIntimacy = "LoveCoupleIntimacy" # 伴侣亲密度
Def_PDict_CharmLV = "CharmLV" # 魅力等级
+
+#古宝
+Def_PDict_GubaoLVInfo = "GubaoLVInfo_%s" # 古宝等级信息,参数(古宝ID),等级*100+星级
+
+#神通
+Def_PDict_ShentongLVInfo = "ShentongLVInfo_%s" # 神通等级信息,参数(神通ID),阶级*100+等级
+Def_PDict_ShentongSkillID = "ShentongSkillID_%s" # 神通出战技能ID,参数(编号)
#-------------------------------------------------------------------------------
#可以从07 41封包购买的背包类型,和对应字典{背包类型:[字典key, 默认格子数]}
@@ -4747,7 +4754,11 @@
Def_CalcAttrFunc_LoveRingCouple, # 情戒仙侣 50
Def_CalcAttrFunc_Charm, # 魅力 51
Def_CalcAttrFunc_LianTi, # 炼体 52
-) = range(53)
+Def_CalcAttrFunc_Enchant, # 附魔 53
+Def_CalcAttrFunc_LingQiEnchant, # 灵器附魔 54
+Def_CalcAttrFunc_Gubao, # 古宝 55
+Def_CalcAttrFunc_Shentong, # 神通 56
+) = range(57)
# 技能功能点列表 - 默认不算战力,不享受百分比加成,技能功能点暂时配置,之后优化技能属性逻辑后可去掉
CalcAttrFuncSkillList = [Def_CalcAttrFunc_HorseSkill, Def_CalcAttrFunc_PetSkill, Def_CalcAttrFunc_DogzBattleSkill]
@@ -4762,6 +4773,9 @@
ShareDefine.Def_MFPType_Star:[Def_CalcAttrFunc_Star],
ShareDefine.Def_MFPType_Plus:[Def_CalcAttrFunc_Plus],
ShareDefine.Def_MFPType_Stone:[Def_CalcAttrFunc_Stone],
+ ShareDefine.Def_MFPType_Enchant:[Def_CalcAttrFunc_Enchant],
+ ShareDefine.Def_MFPType_Gubao:[Def_CalcAttrFunc_Gubao],
+ ShareDefine.Def_MFPType_Shentong:[Def_CalcAttrFunc_Shentong],
ShareDefine.Def_MFPType_LingQi:[Def_CalcAttrFunc_LingQi, Def_CalcAttrFunc_LingQiAttr, Def_CalcAttrFunc_LingQiJingLianAttr, Def_CalcAttrFunc_GuardTarin,
Def_CalcAttrFunc_WingTarin, Def_CalcAttrFunc_PeerlessWeaponTrain, Def_CalcAttrFunc_PeerlessWeapon2Train],
ShareDefine.Def_MFPType_Wash:[Def_CalcAttrFunc_Wash],
@@ -4788,6 +4802,33 @@
ShareDefine.Def_MFPType_Other:[Def_CalcAttrFunc_Success, Def_CalcAttrFunc_FamilyTech, Def_CalcAttrFunc_EquipDecompose],
}
+MFPTypeName = {ShareDefine.Def_MFPType_Role:"角色", ShareDefine.Def_MFPType_LingGen:"灵根", ShareDefine.Def_MFPType_Equip:"装备", ShareDefine.Def_MFPType_Star:"升星",
+ ShareDefine.Def_MFPType_Plus:"强化", ShareDefine.Def_MFPType_Stone:"宝石", ShareDefine.Def_MFPType_Wash:"洗练", ShareDefine.Def_MFPType_LingQi:"灵器",
+ ShareDefine.Def_MFPType_Pet:"灵宠", ShareDefine.Def_MFPType_Horse:"坐骑", ShareDefine.Def_MFPType_Prestige:"境界", ShareDefine.Def_MFPType_GodWeapon:"神兵",
+ ShareDefine.Def_MFPType_Dienstgrad:"称号", ShareDefine.Def_MFPType_Rune:"符印", ShareDefine.Def_MFPType_GatherSoul:"聚魂", ShareDefine.Def_MFPType_StoveYao:"丹药",
+ ShareDefine.Def_MFPType_MagicWeapon1:"人族", ShareDefine.Def_MFPType_MagicWeapon2:"魔族", ShareDefine.Def_MFPType_MagicWeapon3:"仙族", ShareDefine.Def_MFPType_MagicWeapon4:"王者",
+ ShareDefine.Def_MFPType_PetSoul:"宠魂", ShareDefine.Def_MFPType_HorseSoul:"骑魂", ShareDefine.Def_MFPType_FaQi:"法器", ShareDefine.Def_MFPType_Dogz:"神兽",
+ ShareDefine.Def_MFPType_Coat:"时装", ShareDefine.Def_MFPType_Love:"情缘", ShareDefine.Def_MFPType_Charm:"魅力", ShareDefine.Def_MFPType_LianTi:"炼体",
+ ShareDefine.Def_MFPType_Enchant:"附魔", ShareDefine.Def_MFPType_Gubao:"古宝", ShareDefine.Def_MFPType_Shentong:"神通",
+ ShareDefine.Def_MFPType_Other:"其他",
+ }
+
+FuncIndexName = {
+ Def_CalcAttrFunc_RoleBase:"角色基础", Def_CalcAttrFunc_LingGen:"灵根", Def_CalcAttrFunc_LingGenQuailty:"灵根品质", Def_CalcAttrFunc_Equip:"装备",
+ Def_CalcAttrFunc_Star:"升星", Def_CalcAttrFunc_Plus:"强化", Def_CalcAttrFunc_Stone:"宝石", Def_CalcAttrFunc_Wash:"洗练",
+ Def_CalcAttrFunc_LingQi:"灵器", Def_CalcAttrFunc_LingQiAttr:"灵器属性", Def_CalcAttrFunc_LingQiJingLianAttr:"灵器精炼", Def_CalcAttrFunc_Pet:"灵宠",
+ Def_CalcAttrFunc_Horse:"坐骑", Def_CalcAttrFunc_Prestige:"境界", Def_CalcAttrFunc_GodWeapon:"神兵", Def_CalcAttrFunc_Dienstgrad:"称号",
+ Def_CalcAttrFunc_Rune:"符印", Def_CalcAttrFunc_GatherSoul:"聚魂", Def_CalcAttrFunc_Success:"成就", Def_CalcAttrFunc_VIP:"VIP",
+ Def_CalcAttrFunc_Stove:"炼丹炉", Def_CalcAttrFunc_FamilyTech:"心法", Def_CalcAttrFunc_EquipDecompose:"装备分解", Def_CalcAttrFunc_PetSoul:"宠物魂石",
+ Def_CalcAttrFunc_HorseSoul:"坐骑魂石", Def_CalcAttrFunc_HorseSkill:"坐骑技能属性", Def_CalcAttrFunc_PetSkill:"宠物技能属性", Def_CalcAttrFunc_StoveYao:"炼丹炉丹药",
+ Def_CalcAttrFunc_PetSign:"宠物签到", Def_CalcAttrFunc_Dogz:"神兽", Def_CalcAttrFunc_DogzBattleSkill:"神兽技能", Def_CalcAttrFunc_DogzEquip:"神兽装备",
+ Def_CalcAttrFunc_DogzEquipPlus:"神兽强化", Def_CalcAttrFunc_Coat:"时装", Def_CalcAttrFunc_MagicWeapon1:"人族法宝属性",
+ Def_CalcAttrFunc_MagicWeapon2:"魔族法宝属性", Def_CalcAttrFunc_MagicWeapon3:"仙族法宝属性", Def_CalcAttrFunc_MagicWeapon4:"王者法宝属性", Def_CalcAttrFunc_HorseSkin:"坐骑觉醒",
+ Def_CalcAttrFunc_PetSkin:"灵宠觉醒", Def_CalcAttrFunc_HorseTarin:"坐骑培养", Def_CalcAttrFunc_PetTarin:"灵宠培养", Def_CalcAttrFunc_GuardTarin:"守护培养",
+ Def_CalcAttrFunc_WingTarin:"翅膀培养", Def_CalcAttrFunc_PeerlessWeaponTrain:"灭世培养", Def_CalcAttrFunc_PeerlessWeapon2Train:"噬魂培养", Def_CalcAttrFunc_FaQi:"法器",
+ Def_CalcAttrFunc_LoveRing:"情戒基础", Def_CalcAttrFunc_LoveRingCouple:"情戒仙侣", Def_CalcAttrFunc_Charm:"魅力", Def_CalcAttrFunc_LianTi:"炼体",
+ Def_CalcAttrFunc_Enchant:"附魔", Def_CalcAttrFunc_LingQiEnchant:"灵器附魔", Def_CalcAttrFunc_Gubao:"古宝", Def_CalcAttrFunc_Shentong:"神通",
+ }
#-------------------------------------------------------------------------------
(
@@ -5509,9 +5550,11 @@
Def_SkillFuncType_SuiteSkill, #14 套装技能
Def_SkillFuncType_PassiveSkillWithSP, #15 可有专精的被动技能
Def_SkillFuncType_PetOwnerSkill, #16 宠物主人技能
-Def_SkillFuncType_17, #17 称号技能
+Def_SkillFuncType_TitleSkill, #17为称号技能
Def_SkillFuncType_EquipPassiveSkill, #18 装备被动技能
-) = range(19)
+Def_SkillFuncType_LianTiSkill, #19 炼体技能
+Def_SkillFuncType_ShentongSkill, #20 神通技能
+) = range(21)
# 受技能效果完全影响的怪, 对应 Def_BattleRelationType_CommNoBoss
Def_SkillAttack_NPCIsBoss = [ Def_NPCType_Ogre_Normal , #平凡小怪 0 # c++ 定义为普通NPC视野刷新
@@ -5545,6 +5588,9 @@
Def_SkillFuncType_PetOwnerSkill:ShareDefine.Def_MFPType_Pet,
Def_SkillFuncType_GWSkill:ShareDefine.Def_MFPType_Prestige,
Def_SkillFuncType_SuiteSkill:ShareDefine.Def_MFPType_Equip,
+ Def_SkillFuncType_TitleSkill:ShareDefine.Def_MFPType_Dienstgrad,
+ Def_SkillFuncType_LianTiSkill:ShareDefine.Def_MFPType_LianTi,
+ Def_SkillFuncType_ShentongSkill:ShareDefine.Def_MFPType_Shentong,
}
diff --git a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/ChPyNetPack.py b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/ChPyNetPack.py
index f27cb3e..4a1280f 100644
--- a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/ChPyNetPack.py
+++ b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/ChPyNetPack.py
@@ -17835,6 +17835,162 @@
#------------------------------------------------------
+# B2 16 古宝激活 #tagCMGubaoActivate
+
+class tagCMGubaoActivate(Structure):
+ _pack_ = 1
+ _fields_ = [
+ ("Cmd", c_ubyte),
+ ("SubCmd", c_ubyte),
+ ("GubaoID", c_ushort),
+ ]
+
+ def __init__(self):
+ self.Clear()
+ self.Cmd = 0xB2
+ self.SubCmd = 0x16
+ return
+
+ def ReadData(self, stringData, _pos=0, _len=0):
+ self.Clear()
+ memmove(addressof(self), stringData[_pos:], self.GetLength())
+ return _pos + self.GetLength()
+
+ def Clear(self):
+ self.Cmd = 0xB2
+ self.SubCmd = 0x16
+ self.GubaoID = 0
+ return
+
+ def GetLength(self):
+ return sizeof(tagCMGubaoActivate)
+
+ def GetBuffer(self):
+ return string_at(addressof(self), self.GetLength())
+
+ def OutputString(self):
+ DumpString = '''// B2 16 古宝激活 //tagCMGubaoActivate:
+ Cmd:%s,
+ SubCmd:%s,
+ GubaoID:%d
+ '''\
+ %(
+ self.Cmd,
+ self.SubCmd,
+ self.GubaoID
+ )
+ return DumpString
+
+
+m_NAtagCMGubaoActivate=tagCMGubaoActivate()
+ChNetPackDict[eval("0x%02x%02x"%(m_NAtagCMGubaoActivate.Cmd,m_NAtagCMGubaoActivate.SubCmd))] = m_NAtagCMGubaoActivate
+
+
+#------------------------------------------------------
+# B2 18 古宝升级 #tagCMGubaoLVUp
+
+class tagCMGubaoLVUp(Structure):
+ _pack_ = 1
+ _fields_ = [
+ ("Cmd", c_ubyte),
+ ("SubCmd", c_ubyte),
+ ("GubaoID", c_ushort),
+ ]
+
+ def __init__(self):
+ self.Clear()
+ self.Cmd = 0xB2
+ self.SubCmd = 0x18
+ return
+
+ def ReadData(self, stringData, _pos=0, _len=0):
+ self.Clear()
+ memmove(addressof(self), stringData[_pos:], self.GetLength())
+ return _pos + self.GetLength()
+
+ def Clear(self):
+ self.Cmd = 0xB2
+ self.SubCmd = 0x18
+ self.GubaoID = 0
+ return
+
+ def GetLength(self):
+ return sizeof(tagCMGubaoLVUp)
+
+ def GetBuffer(self):
+ return string_at(addressof(self), self.GetLength())
+
+ def OutputString(self):
+ DumpString = '''// B2 18 古宝升级 //tagCMGubaoLVUp:
+ Cmd:%s,
+ SubCmd:%s,
+ GubaoID:%d
+ '''\
+ %(
+ self.Cmd,
+ self.SubCmd,
+ self.GubaoID
+ )
+ return DumpString
+
+
+m_NAtagCMGubaoLVUp=tagCMGubaoLVUp()
+ChNetPackDict[eval("0x%02x%02x"%(m_NAtagCMGubaoLVUp.Cmd,m_NAtagCMGubaoLVUp.SubCmd))] = m_NAtagCMGubaoLVUp
+
+
+#------------------------------------------------------
+# B2 17 古宝升星 #tagCMGubaoStarUp
+
+class tagCMGubaoStarUp(Structure):
+ _pack_ = 1
+ _fields_ = [
+ ("Cmd", c_ubyte),
+ ("SubCmd", c_ubyte),
+ ("GubaoID", c_ushort),
+ ]
+
+ def __init__(self):
+ self.Clear()
+ self.Cmd = 0xB2
+ self.SubCmd = 0x17
+ return
+
+ def ReadData(self, stringData, _pos=0, _len=0):
+ self.Clear()
+ memmove(addressof(self), stringData[_pos:], self.GetLength())
+ return _pos + self.GetLength()
+
+ def Clear(self):
+ self.Cmd = 0xB2
+ self.SubCmd = 0x17
+ self.GubaoID = 0
+ return
+
+ def GetLength(self):
+ return sizeof(tagCMGubaoStarUp)
+
+ def GetBuffer(self):
+ return string_at(addressof(self), self.GetLength())
+
+ def OutputString(self):
+ DumpString = '''// B2 17 古宝升星 //tagCMGubaoStarUp:
+ Cmd:%s,
+ SubCmd:%s,
+ GubaoID:%d
+ '''\
+ %(
+ self.Cmd,
+ self.SubCmd,
+ self.GubaoID
+ )
+ return DumpString
+
+
+m_NAtagCMGubaoStarUp=tagCMGubaoStarUp()
+ChNetPackDict[eval("0x%02x%02x"%(m_NAtagCMGubaoStarUp.Cmd,m_NAtagCMGubaoStarUp.SubCmd))] = m_NAtagCMGubaoStarUp
+
+
+#------------------------------------------------------
# B2 07 重置加点 #tagCMResetAttrPoint
class tagCMResetAttrPoint(Structure):
@@ -17883,6 +18039,125 @@
#------------------------------------------------------
+# B2 19 神通升级 #tagCMShentongLVUp
+
+class tagCMShentongLVUp(Structure):
+ _pack_ = 1
+ _fields_ = [
+ ("Cmd", c_ubyte),
+ ("SubCmd", c_ubyte),
+ ("ShentongID", c_ubyte),
+ ]
+
+ def __init__(self):
+ self.Clear()
+ self.Cmd = 0xB2
+ self.SubCmd = 0x19
+ return
+
+ def ReadData(self, stringData, _pos=0, _len=0):
+ self.Clear()
+ memmove(addressof(self), stringData[_pos:], self.GetLength())
+ return _pos + self.GetLength()
+
+ def Clear(self):
+ self.Cmd = 0xB2
+ self.SubCmd = 0x19
+ self.ShentongID = 0
+ return
+
+ def GetLength(self):
+ return sizeof(tagCMShentongLVUp)
+
+ def GetBuffer(self):
+ return string_at(addressof(self), self.GetLength())
+
+ def OutputString(self):
+ DumpString = '''// B2 19 神通升级 //tagCMShentongLVUp:
+ Cmd:%s,
+ SubCmd:%s,
+ ShentongID:%d
+ '''\
+ %(
+ self.Cmd,
+ self.SubCmd,
+ self.ShentongID
+ )
+ return DumpString
+
+
+m_NAtagCMShentongLVUp=tagCMShentongLVUp()
+ChNetPackDict[eval("0x%02x%02x"%(m_NAtagCMShentongLVUp.Cmd,m_NAtagCMShentongLVUp.SubCmd))] = m_NAtagCMShentongLVUp
+
+
+#------------------------------------------------------
+# B2 20 神通技能设置 #tagCMShentongSkillSet
+
+class tagCMShentongSkillSet(Structure):
+ Head = tagHead()
+ Count = 0 #(BYTE Count)
+ SkillIDList = list() #(vector<DWORD> SkillIDList)
+ data = None
+
+ def __init__(self):
+ self.Clear()
+ self.Head.Cmd = 0xB2
+ self.Head.SubCmd = 0x20
+ return
+
+ def ReadData(self, _lpData, _pos=0, _Len=0):
+ self.Clear()
+ _pos = self.Head.ReadData(_lpData, _pos)
+ self.Count,_pos = CommFunc.ReadBYTE(_lpData, _pos)
+ for i in range(self.Count):
+ value,_pos=CommFunc.ReadDWORD(_lpData,_pos)
+ self.SkillIDList.append(value)
+ return _pos
+
+ def Clear(self):
+ self.Head = tagHead()
+ self.Head.Clear()
+ self.Head.Cmd = 0xB2
+ self.Head.SubCmd = 0x20
+ self.Count = 0
+ self.SkillIDList = list()
+ return
+
+ def GetLength(self):
+ length = 0
+ length += self.Head.GetLength()
+ length += 1
+ length += 4 * self.Count
+
+ return length
+
+ def GetBuffer(self):
+ data = ''
+ data = CommFunc.WriteString(data, self.Head.GetLength(), self.Head.GetBuffer())
+ data = CommFunc.WriteBYTE(data, self.Count)
+ for i in range(self.Count):
+ data = CommFunc.WriteDWORD(data, self.SkillIDList[i])
+ return data
+
+ def OutputString(self):
+ DumpString = '''
+ Head:%s,
+ Count:%d,
+ SkillIDList:%s
+ '''\
+ %(
+ self.Head.OutputString(),
+ self.Count,
+ "..."
+ )
+ return DumpString
+
+
+m_NAtagCMShentongSkillSet=tagCMShentongSkillSet()
+ChNetPackDict[eval("0x%02x%02x"%(m_NAtagCMShentongSkillSet.Head.Cmd,m_NAtagCMShentongSkillSet.Head.SubCmd))] = m_NAtagCMShentongSkillSet
+
+
+#------------------------------------------------------
#B2 01 脱机挂状态 # tagCMLoginState
class tagCMLoginState(Structure):
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 c231e02..2b220f3 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
@@ -17,7 +17,6 @@
import ChConfig
import GameWorld
-import ShareDefine
import PlayerControl
@@ -28,86 +27,9 @@
# @return None
# @remarks 函数详细说明.
def OnExec(curPlayer, msgList):
- mfpTypeName = {ShareDefine.Def_MFPType_Role:"角色",
- ShareDefine.Def_MFPType_LingGen:"灵根",
- ShareDefine.Def_MFPType_Equip:"装备",
- ShareDefine.Def_MFPType_Star:"升星",
- ShareDefine.Def_MFPType_Plus:"强化",
- ShareDefine.Def_MFPType_Stone:"宝石",
- ShareDefine.Def_MFPType_Wash:"洗练",
- ShareDefine.Def_MFPType_LingQi:"灵器",
- ShareDefine.Def_MFPType_Pet:"灵宠",
- ShareDefine.Def_MFPType_Horse:"坐骑",
- ShareDefine.Def_MFPType_Prestige:"境界",
- ShareDefine.Def_MFPType_GodWeapon:"神兵",
- ShareDefine.Def_MFPType_Dienstgrad:"称号",
- ShareDefine.Def_MFPType_Rune:"符印",
- ShareDefine.Def_MFPType_GatherSoul:"聚魂",
- ShareDefine.Def_MFPType_StoveYao:"丹药",
- ShareDefine.Def_MFPType_MagicWeapon1:"人族",
- ShareDefine.Def_MFPType_MagicWeapon2:"魔族",
- ShareDefine.Def_MFPType_MagicWeapon3:"仙族",
- ShareDefine.Def_MFPType_MagicWeapon4:"王者",
- ShareDefine.Def_MFPType_PetSoul:"宠魂",
- ShareDefine.Def_MFPType_HorseSoul:"骑魂",
- ShareDefine.Def_MFPType_FaQi:"法器",
- ShareDefine.Def_MFPType_Dogz:"神兽",
- ShareDefine.Def_MFPType_Coat:"时装",
- ShareDefine.Def_MFPType_Love:"情缘",
- ShareDefine.Def_MFPType_Charm:"魅力",
- ShareDefine.Def_MFPType_LianTi:"炼体",
- ShareDefine.Def_MFPType_Other:"其他",
- }
+ mfpTypeName = ChConfig.MFPTypeName
- funcIndexName = {
- ChConfig.Def_CalcAttrFunc_RoleBase:"角色基础",
- ChConfig.Def_CalcAttrFunc_LingGen:"灵根",
- ChConfig.Def_CalcAttrFunc_LingGenQuailty:"灵根品质",
- ChConfig.Def_CalcAttrFunc_Equip:"装备",
- ChConfig.Def_CalcAttrFunc_Star:"升星",
- ChConfig.Def_CalcAttrFunc_Plus:"强化",
- ChConfig.Def_CalcAttrFunc_Stone:"宝石",
- ChConfig.Def_CalcAttrFunc_Wash:"洗练",
- ChConfig.Def_CalcAttrFunc_LingQi:"灵器",
- ChConfig.Def_CalcAttrFunc_LingQiAttr:"灵器属性",
- ChConfig.Def_CalcAttrFunc_Pet:"灵宠",
- ChConfig.Def_CalcAttrFunc_Horse:"坐骑",
- ChConfig.Def_CalcAttrFunc_Prestige:"境界",
- ChConfig.Def_CalcAttrFunc_GodWeapon:"神兵",
- ChConfig.Def_CalcAttrFunc_Dienstgrad:"称号",
- ChConfig.Def_CalcAttrFunc_Rune:"符印",
- ChConfig.Def_CalcAttrFunc_GatherSoul:"聚魂",
- ChConfig.Def_CalcAttrFunc_Success:"成就",
- ChConfig.Def_CalcAttrFunc_VIP:"VIP",
- ChConfig.Def_CalcAttrFunc_Stove:"炼丹炉",
- ChConfig.Def_CalcAttrFunc_FamilyTech:"心法",
- ChConfig.Def_CalcAttrFunc_EquipDecompose:"装备分解",
- ChConfig.Def_CalcAttrFunc_PetSoul:"宠物魂石",
- ChConfig.Def_CalcAttrFunc_HorseSoul:"坐骑魂石",
- ChConfig.Def_CalcAttrFunc_HorseSkill:"坐骑技能属性",
- ChConfig.Def_CalcAttrFunc_PetSkill:"宠物技能属性",
- ChConfig.Def_CalcAttrFunc_StoveYao:"炼丹炉丹药",
- ChConfig.Def_CalcAttrFunc_PetSign:"宠物签到",
- ChConfig.Def_CalcAttrFunc_Dogz:"神兽",
- ChConfig.Def_CalcAttrFunc_Coat:"时装",
- ChConfig.Def_CalcAttrFunc_MagicWeapon1:"人族法宝属性",
- ChConfig.Def_CalcAttrFunc_MagicWeapon2:"魔族法宝属性",
- ChConfig.Def_CalcAttrFunc_MagicWeapon3:"仙族法宝属性",
- ChConfig.Def_CalcAttrFunc_MagicWeapon4:"王者法宝属性",
- ChConfig.Def_CalcAttrFunc_HorseSkin:"坐骑觉醒",
- ChConfig.Def_CalcAttrFunc_PetSkin:"灵宠觉醒",
- ChConfig.Def_CalcAttrFunc_HorseTarin:"坐骑培养",
- ChConfig.Def_CalcAttrFunc_PetTarin:"灵宠培养",
- ChConfig.Def_CalcAttrFunc_GuardTarin:"守护培养",
- ChConfig.Def_CalcAttrFunc_WingTarin:"翅膀培养",
- ChConfig.Def_CalcAttrFunc_PeerlessWeaponTrain:"灭世培养",
- ChConfig.Def_CalcAttrFunc_PeerlessWeapon2Train:"噬魂培养",
- ChConfig.Def_CalcAttrFunc_FaQi:"法器",
- ChConfig.Def_CalcAttrFunc_LoveRing:"情戒基础",
- ChConfig.Def_CalcAttrFunc_LoveRingCouple:"情戒仙侣",
- ChConfig.Def_CalcAttrFunc_Charm:"魅力",
- ChConfig.Def_CalcAttrFunc_LianTi:"炼体",
- }
+ funcIndexName = ChConfig.FuncIndexName
GameWorld.DebugAnswer(curPlayer, "PrintFightPower 模块类型(可选)")
@@ -119,10 +41,12 @@
GameWorld.DebugAnswer(curPlayer, "--- %s战力(%s): %s" % (mfpTypeName[mfpType], mfpType, fightPower))
for funcIndex in ChConfig.MFPTypeAttrFuncIndexDict[mfpType]:
funcName = funcIndexName.get(funcIndex, "属性(%s)" % funcIndex)
- attrInfo, insidePerAttrDict = PlayerControl.GetCalcAttrListValue(curPlayer, funcIndex)
+ attrInfo, insidePerAttrDict, customAttrDict = PlayerControl.GetCalcAttrListValue(curPlayer, funcIndex)
GameWorld.DebugAnswer(curPlayer, "%s:%s" % (funcName, attrInfo))
if insidePerAttrDict:
GameWorld.DebugAnswer(curPlayer, "%s内部加成:%s" % (funcName, insidePerAttrDict))
+ if customAttrDict:
+ GameWorld.DebugAnswer(curPlayer, "%s自定义属性:%s" % (funcName, customAttrDict))
return
GameWorld.DebugAnswer(curPlayer, "===== 总战力: %s" % PlayerControl.GetFightPower(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 360241c..ce8cef7 100644
--- a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/PlayerControl.py
+++ b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/PlayerControl.py
@@ -97,8 +97,9 @@
import QuestCommon
import PlayerDogz
import PlayerFaQi
-import PlayerCharm
import PlayerLove
+import PlayerGubao
+import PlayerCharm
import ChPlayer
import GMShell
import GameObj
@@ -4529,6 +4530,7 @@
PlayerLove.CalcLoveAttr(curPlayer)
PlayerCharm.CalcCharmAttr(curPlayer)
PlayerLianTi.CalcLianTiAttr(curPlayer)
+ PlayerGubao.CalcGubaoAttr(curPlayer)
self.RefreshAllState(isForce=True)
GameWorld.DebugLog("End ReCalcAllState!!!")
return
diff --git a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/ShareDefine.py b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/ShareDefine.py
index b27b4cc..8064653 100644
--- a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/ShareDefine.py
+++ b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/ShareDefine.py
@@ -1597,7 +1597,7 @@
)=range(5)
# 战斗力模块类型
-Def_MFPType_Max = 29
+Def_MFPType_Max = 32
ModuleFightPowerTypeList = (
Def_MFPType_Role, # 角色 0
Def_MFPType_Equip, # 装备(装备本身) 1
@@ -1627,6 +1627,9 @@
Def_MFPType_Love, # 情缘 25
Def_MFPType_Charm, # 魅力 26
Def_MFPType_LianTi, # 炼体 27
+Def_MFPType_Enchant, # 附魔 28
+Def_MFPType_Gubao, # 古宝 29
+Def_MFPType_Shentong, # 神通 30
Def_MFPType_Other, # 其他
) = range(Def_MFPType_Max)
--
Gitblit v1.8.0