From 42f1ae76751b709e75d90d87959829c6c59de3a3 Mon Sep 17 00:00:00 2001
From: hxp <ale99527@vip.qq.com>
Date: 星期日, 09 十月 2022 18:50:26 +0800
Subject: [PATCH] 9455 【越南】【后端】通天令(主干 冲突)

---
 ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/ChPyNetPack.py              |  208 ++++++++++++++++++++++++++
 ServerPython/CoreServerGroup/GameServer/Script/ChPyNetPack.py                                   |  208 ++++++++++++++++++++++++++
 ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/PlayerControl.py     |    2 
 ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/PlayerPrestigeSys.py |    2 
 ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/ChConfig.py                 |   36 ++++
 5 files changed, 453 insertions(+), 3 deletions(-)

diff --git a/ServerPython/CoreServerGroup/GameServer/Script/ChPyNetPack.py b/ServerPython/CoreServerGroup/GameServer/Script/ChPyNetPack.py
index 9e0ca5d..adb01bd 100644
--- a/ServerPython/CoreServerGroup/GameServer/Script/ChPyNetPack.py
+++ b/ServerPython/CoreServerGroup/GameServer/Script/ChPyNetPack.py
@@ -9922,6 +9922,54 @@
 
 
 #------------------------------------------------------
+# A5 46 购买通天令 #tagCMBuyTongTianLing
+
+class  tagCMBuyTongTianLing(Structure):
+    _pack_ = 1
+    _fields_ = [
+                  ("Cmd", c_ubyte),
+                  ("SubCmd", c_ubyte),
+                  ]
+
+    def __init__(self):
+        self.Clear()
+        self.Cmd = 0xA5
+        self.SubCmd = 0x46
+        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 = 0xA5
+        self.SubCmd = 0x46
+        return
+
+    def GetLength(self):
+        return sizeof(tagCMBuyTongTianLing)
+
+    def GetBuffer(self):
+        return string_at(addressof(self), self.GetLength())
+
+    def OutputString(self):
+        DumpString = '''// A5 46 购买通天令 //tagCMBuyTongTianLing:
+                                Cmd:%s,
+                                SubCmd:%s
+                                '''\
+                                %(
+                                self.Cmd,
+                                self.SubCmd
+                                )
+        return DumpString
+
+
+m_NAtagCMBuyTongTianLing=tagCMBuyTongTianLing()
+ChNetPackDict[eval("0x%02x%02x"%(m_NAtagCMBuyTongTianLing.Cmd,m_NAtagCMBuyTongTianLing.SubCmd))] = m_NAtagCMBuyTongTianLing
+
+
+#------------------------------------------------------
 #A5 3B 请求领取补偿#tagCMRequestCompensation
 
 class  tagCMRequestCompensation(Structure):
@@ -10956,6 +11004,58 @@
 
 
 #------------------------------------------------------
+# A5 45 兑换通天令等级经验积分点 #tagCMExchangeTongTianLVPoint
+
+class  tagCMExchangeTongTianLVPoint(Structure):
+    _pack_ = 1
+    _fields_ = [
+                  ("Cmd", c_ubyte),
+                  ("SubCmd", c_ubyte),
+                  ("ExchangePoint", c_int),    # 兑换点数
+                  ]
+
+    def __init__(self):
+        self.Clear()
+        self.Cmd = 0xA5
+        self.SubCmd = 0x45
+        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 = 0xA5
+        self.SubCmd = 0x45
+        self.ExchangePoint = 0
+        return
+
+    def GetLength(self):
+        return sizeof(tagCMExchangeTongTianLVPoint)
+
+    def GetBuffer(self):
+        return string_at(addressof(self), self.GetLength())
+
+    def OutputString(self):
+        DumpString = '''// A5 45 兑换通天令等级经验积分点 //tagCMExchangeTongTianLVPoint:
+                                Cmd:%s,
+                                SubCmd:%s,
+                                ExchangePoint:%d
+                                '''\
+                                %(
+                                self.Cmd,
+                                self.SubCmd,
+                                self.ExchangePoint
+                                )
+        return DumpString
+
+
+m_NAtagCMExchangeTongTianLVPoint=tagCMExchangeTongTianLVPoint()
+ChNetPackDict[eval("0x%02x%02x"%(m_NAtagCMExchangeTongTianLVPoint.Cmd,m_NAtagCMExchangeTongTianLVPoint.SubCmd))] = m_NAtagCMExchangeTongTianLVPoint
+
+
+#------------------------------------------------------
 # A5 32 法器升级 #tagCMFaQiLVUp
 
 class  tagCMFaQiLVUp(Structure):
@@ -11394,6 +11494,114 @@
 
 
 #------------------------------------------------------
+# A5 44 通天令领取等级奖励 #tagCMGetTongTianLVAward
+
+class  tagCMGetTongTianLVAward(Structure):
+    _pack_ = 1
+    _fields_ = [
+                  ("Cmd", c_ubyte),
+                  ("SubCmd", c_ubyte),
+                  ("TTLV", c_ubyte),    # 领取对应等级奖励,发255为一键领取所有等级奖励,包含仙品奖励
+                  ("IsXian", c_ubyte),    # 是否领取仙品奖励,仅指定等级奖励有效
+                  ]
+
+    def __init__(self):
+        self.Clear()
+        self.Cmd = 0xA5
+        self.SubCmd = 0x44
+        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 = 0xA5
+        self.SubCmd = 0x44
+        self.TTLV = 0
+        self.IsXian = 0
+        return
+
+    def GetLength(self):
+        return sizeof(tagCMGetTongTianLVAward)
+
+    def GetBuffer(self):
+        return string_at(addressof(self), self.GetLength())
+
+    def OutputString(self):
+        DumpString = '''// A5 44 通天令领取等级奖励 //tagCMGetTongTianLVAward:
+                                Cmd:%s,
+                                SubCmd:%s,
+                                TTLV:%d,
+                                IsXian:%d
+                                '''\
+                                %(
+                                self.Cmd,
+                                self.SubCmd,
+                                self.TTLV,
+                                self.IsXian
+                                )
+        return DumpString
+
+
+m_NAtagCMGetTongTianLVAward=tagCMGetTongTianLVAward()
+ChNetPackDict[eval("0x%02x%02x"%(m_NAtagCMGetTongTianLVAward.Cmd,m_NAtagCMGetTongTianLVAward.SubCmd))] = m_NAtagCMGetTongTianLVAward
+
+
+#------------------------------------------------------
+# A5 43 通天令领取任务奖励 #tagCMGetTongTianTaskAward
+
+class  tagCMGetTongTianTaskAward(Structure):
+    _pack_ = 1
+    _fields_ = [
+                  ("Cmd", c_ubyte),
+                  ("SubCmd", c_ubyte),
+                  ("TaskID", c_ubyte),    # 任务ID
+                  ]
+
+    def __init__(self):
+        self.Clear()
+        self.Cmd = 0xA5
+        self.SubCmd = 0x43
+        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 = 0xA5
+        self.SubCmd = 0x43
+        self.TaskID = 0
+        return
+
+    def GetLength(self):
+        return sizeof(tagCMGetTongTianTaskAward)
+
+    def GetBuffer(self):
+        return string_at(addressof(self), self.GetLength())
+
+    def OutputString(self):
+        DumpString = '''// A5 43 通天令领取任务奖励 //tagCMGetTongTianTaskAward:
+                                Cmd:%s,
+                                SubCmd:%s,
+                                TaskID:%d
+                                '''\
+                                %(
+                                self.Cmd,
+                                self.SubCmd,
+                                self.TaskID
+                                )
+        return DumpString
+
+
+m_NAtagCMGetTongTianTaskAward=tagCMGetTongTianTaskAward()
+ChNetPackDict[eval("0x%02x%02x"%(m_NAtagCMGetTongTianTaskAward.Cmd,m_NAtagCMGetTongTianTaskAward.SubCmd))] = m_NAtagCMGetTongTianTaskAward
+
+
+#------------------------------------------------------
 # A5 56 神兵激活 #tagCMGodWeaponActivate
 
 class  tagCMGodWeaponActivate(Structure):
diff --git a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/ChConfig.py b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/ChConfig.py
index eff6309..02104df 100644
--- a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/ChConfig.py
+++ b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/ChConfig.py
@@ -4064,6 +4064,14 @@
 Def_PDict_Success_CheckVersion = "Succ_CheckVersion" #老玩家某些功能成就检查版本
 Def_PDict_Success_PassportAward = "Succ_PassportAward_%s" #成就通行证领奖状态,参数(key编号),按索引位存储0-未领,1-已领
 
+# 通天令
+Def_PDict_TTL_LVInfo = "TTL_LVInfo" # 当前通天令等级激活信息 = 等级*10+是否已购买通天令
+Def_PDict_TTL_LVPoint = "TTL_LVPoint" # 当前通天令等级已获得积分点
+Def_PDict_TTL_CommAwardRecord = "TTL_CommAwardRecord_%s" # 通天令等级常规领奖记录,参数(key编号),按等级索引位存储0-未领,1-已领
+Def_PDict_TTL_XianAwardRecord = "TTL_XianAwardRecord_%s" # 通天令等级仙品领奖记录,参数(key编号),按等级索引位存储0-未领,1-已领
+Def_PDict_TTL_TaskValue = "TTL_TaskValue_%s_%s" # 通天任务当前进度值,参数(任务类型,是否每日重置)
+Def_PDict_TTL_TaskAwardRecord = "TTL_TaskAwardRecord_%s" # 通天任务领奖记录,参数(key编号),按索引位存储0-未领,1-已领
+
 # 大师 Def_PDictType_GreatMaster
 Def_PDict_Master_Exp = "Master_Exp" # 当前大师经验
 Def_PDict_Master_ExpPoint = "Master_ExpPoint" # 当前大师经验点
@@ -4963,11 +4971,11 @@
 Def_Cost_ActivityPlace, #活跃放置 50
 Def_Cost_FaQi, # 法器
 Def_Cost_Love, # 情缘
-Def_Cost_CrossBattlefield, # 跨服战场
-Def_Cost_LianTi, # 炼体
 Def_Cost_BuyOrderInfo, # 购买充值商品
 Def_Cost_ActGodGift, # 天帝礼包活动
-Def_Cost_TongTianLing, # 通天令
+Def_Cost_TongTianLing, # 通天令 55
+Def_Cost_CrossBattlefield, # 跨服战场
+Def_Cost_LianTi, # 炼体
 #-----------以下为暂时没用的,先不删除,如有新增消费点则放在这些之前------------
 Def_Cost_RefreshArrestTask, # 刷新悬赏任务
 Def_Cost_OffLineExp, # 兑换离线经验
@@ -5806,3 +5814,25 @@
 
 # CTG ID 定义
 Def_CTGID_SuccessPassport = 117 # 成就通行证
+
+# 通天令任务类型定义
+TTLTaskTypeList = (
+TTLTaskType_Activity, # 获取日常活跃度x 1
+TTLTaskType_Plus, # 强化x次 2
+TTLTaskType_Star, # 升星x次 3
+TTLTaskType_Wash, # 洗练x次 4
+TTLTaskType_LoveFB, # 参与情缘副本x次 5
+TTLTaskType_LVUp, # 等级提升x级 6
+TTLTaskType_RealmUp, # 境界提升x阶 7
+TTLTaskType_WorldBoss, # 击杀世界boss x次 8
+TTLTaskType_Sign, # 签到x次 9
+TTLTaskType_Dice, # 天机骰子挑战x次 10
+TTLTaskType_CrossPK, # 跨服PK参与x次 11
+TTLTaskType_ChuanGong, # 仙盟传功x次 12
+TTLTaskType_SWRH, # 守卫人皇参与x次 13
+TTLTaskType_ElderBattlefield, # 上古战场参与x次 14
+TTLTaskType_HorsePetBoss, # 灵宠争夺参与x次 15
+TTLTaskType_FamilyBoss, # 仙盟boss参与x次 16
+TTLTaskType_FamilyPartyAnswerRight, # 仙盟答题答对x次 17
+TTLTaskType_CrossBoss, # 跨服boss击杀x次 18
+) = range(1, 1 + 18)
diff --git a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/ChPyNetPack.py b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/ChPyNetPack.py
index 9e0ca5d..adb01bd 100644
--- a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/ChPyNetPack.py
+++ b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/ChPyNetPack.py
@@ -9922,6 +9922,54 @@
 
 
 #------------------------------------------------------
+# A5 46 购买通天令 #tagCMBuyTongTianLing
+
+class  tagCMBuyTongTianLing(Structure):
+    _pack_ = 1
+    _fields_ = [
+                  ("Cmd", c_ubyte),
+                  ("SubCmd", c_ubyte),
+                  ]
+
+    def __init__(self):
+        self.Clear()
+        self.Cmd = 0xA5
+        self.SubCmd = 0x46
+        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 = 0xA5
+        self.SubCmd = 0x46
+        return
+
+    def GetLength(self):
+        return sizeof(tagCMBuyTongTianLing)
+
+    def GetBuffer(self):
+        return string_at(addressof(self), self.GetLength())
+
+    def OutputString(self):
+        DumpString = '''// A5 46 购买通天令 //tagCMBuyTongTianLing:
+                                Cmd:%s,
+                                SubCmd:%s
+                                '''\
+                                %(
+                                self.Cmd,
+                                self.SubCmd
+                                )
+        return DumpString
+
+
+m_NAtagCMBuyTongTianLing=tagCMBuyTongTianLing()
+ChNetPackDict[eval("0x%02x%02x"%(m_NAtagCMBuyTongTianLing.Cmd,m_NAtagCMBuyTongTianLing.SubCmd))] = m_NAtagCMBuyTongTianLing
+
+
+#------------------------------------------------------
 #A5 3B 请求领取补偿#tagCMRequestCompensation
 
 class  tagCMRequestCompensation(Structure):
@@ -10956,6 +11004,58 @@
 
 
 #------------------------------------------------------
+# A5 45 兑换通天令等级经验积分点 #tagCMExchangeTongTianLVPoint
+
+class  tagCMExchangeTongTianLVPoint(Structure):
+    _pack_ = 1
+    _fields_ = [
+                  ("Cmd", c_ubyte),
+                  ("SubCmd", c_ubyte),
+                  ("ExchangePoint", c_int),    # 兑换点数
+                  ]
+
+    def __init__(self):
+        self.Clear()
+        self.Cmd = 0xA5
+        self.SubCmd = 0x45
+        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 = 0xA5
+        self.SubCmd = 0x45
+        self.ExchangePoint = 0
+        return
+
+    def GetLength(self):
+        return sizeof(tagCMExchangeTongTianLVPoint)
+
+    def GetBuffer(self):
+        return string_at(addressof(self), self.GetLength())
+
+    def OutputString(self):
+        DumpString = '''// A5 45 兑换通天令等级经验积分点 //tagCMExchangeTongTianLVPoint:
+                                Cmd:%s,
+                                SubCmd:%s,
+                                ExchangePoint:%d
+                                '''\
+                                %(
+                                self.Cmd,
+                                self.SubCmd,
+                                self.ExchangePoint
+                                )
+        return DumpString
+
+
+m_NAtagCMExchangeTongTianLVPoint=tagCMExchangeTongTianLVPoint()
+ChNetPackDict[eval("0x%02x%02x"%(m_NAtagCMExchangeTongTianLVPoint.Cmd,m_NAtagCMExchangeTongTianLVPoint.SubCmd))] = m_NAtagCMExchangeTongTianLVPoint
+
+
+#------------------------------------------------------
 # A5 32 法器升级 #tagCMFaQiLVUp
 
 class  tagCMFaQiLVUp(Structure):
@@ -11394,6 +11494,114 @@
 
 
 #------------------------------------------------------
+# A5 44 通天令领取等级奖励 #tagCMGetTongTianLVAward
+
+class  tagCMGetTongTianLVAward(Structure):
+    _pack_ = 1
+    _fields_ = [
+                  ("Cmd", c_ubyte),
+                  ("SubCmd", c_ubyte),
+                  ("TTLV", c_ubyte),    # 领取对应等级奖励,发255为一键领取所有等级奖励,包含仙品奖励
+                  ("IsXian", c_ubyte),    # 是否领取仙品奖励,仅指定等级奖励有效
+                  ]
+
+    def __init__(self):
+        self.Clear()
+        self.Cmd = 0xA5
+        self.SubCmd = 0x44
+        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 = 0xA5
+        self.SubCmd = 0x44
+        self.TTLV = 0
+        self.IsXian = 0
+        return
+
+    def GetLength(self):
+        return sizeof(tagCMGetTongTianLVAward)
+
+    def GetBuffer(self):
+        return string_at(addressof(self), self.GetLength())
+
+    def OutputString(self):
+        DumpString = '''// A5 44 通天令领取等级奖励 //tagCMGetTongTianLVAward:
+                                Cmd:%s,
+                                SubCmd:%s,
+                                TTLV:%d,
+                                IsXian:%d
+                                '''\
+                                %(
+                                self.Cmd,
+                                self.SubCmd,
+                                self.TTLV,
+                                self.IsXian
+                                )
+        return DumpString
+
+
+m_NAtagCMGetTongTianLVAward=tagCMGetTongTianLVAward()
+ChNetPackDict[eval("0x%02x%02x"%(m_NAtagCMGetTongTianLVAward.Cmd,m_NAtagCMGetTongTianLVAward.SubCmd))] = m_NAtagCMGetTongTianLVAward
+
+
+#------------------------------------------------------
+# A5 43 通天令领取任务奖励 #tagCMGetTongTianTaskAward
+
+class  tagCMGetTongTianTaskAward(Structure):
+    _pack_ = 1
+    _fields_ = [
+                  ("Cmd", c_ubyte),
+                  ("SubCmd", c_ubyte),
+                  ("TaskID", c_ubyte),    # 任务ID
+                  ]
+
+    def __init__(self):
+        self.Clear()
+        self.Cmd = 0xA5
+        self.SubCmd = 0x43
+        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 = 0xA5
+        self.SubCmd = 0x43
+        self.TaskID = 0
+        return
+
+    def GetLength(self):
+        return sizeof(tagCMGetTongTianTaskAward)
+
+    def GetBuffer(self):
+        return string_at(addressof(self), self.GetLength())
+
+    def OutputString(self):
+        DumpString = '''// A5 43 通天令领取任务奖励 //tagCMGetTongTianTaskAward:
+                                Cmd:%s,
+                                SubCmd:%s,
+                                TaskID:%d
+                                '''\
+                                %(
+                                self.Cmd,
+                                self.SubCmd,
+                                self.TaskID
+                                )
+        return DumpString
+
+
+m_NAtagCMGetTongTianTaskAward=tagCMGetTongTianTaskAward()
+ChNetPackDict[eval("0x%02x%02x"%(m_NAtagCMGetTongTianTaskAward.Cmd,m_NAtagCMGetTongTianTaskAward.SubCmd))] = m_NAtagCMGetTongTianTaskAward
+
+
+#------------------------------------------------------
 # A5 56 神兵激活 #tagCMGodWeaponActivate
 
 class  tagCMGodWeaponActivate(Structure):
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 4cd255e..3bad7b0 100644
--- a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/PlayerControl.py
+++ b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/PlayerControl.py
@@ -82,6 +82,7 @@
 import PlayerCostRebate
 import PlayerActGarbageSorting
 import GY_Query_CrossRealmReg
+import PlayerTongTianLing
 import PlayerCrossRealmPK
 import FunctionNPCCommon
 import IPY_PlayerDefine
@@ -4246,6 +4247,7 @@
             
             EventShell.EventResponse_LVUp(curPlayer)  # 升级触发事件
             
+            PlayerTongTianLing.AddTongTianTaskValue(curPlayer, ChConfig.TTLTaskType_LVUp, 1)
             #---是否继续循环---
             curTotalExp = curTotalExp - lvUpNeedExp
             
diff --git a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/PlayerPrestigeSys.py b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/PlayerPrestigeSys.py
index d42170a..d346b08 100644
--- a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/PlayerPrestigeSys.py
+++ b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/PlayerPrestigeSys.py
@@ -28,6 +28,7 @@
 import PlayerSuccess
 import ChEquip
 import PlayerBillboard
+import PlayerTongTianLing
 import PassiveBuffEffMng
 import EventShell
 import DataRecordPack
@@ -223,6 +224,7 @@
     NotifyRealmExpInfo(curPlayer)
     #境界提升成就
     PlayerSuccess.UptateSuccessProgress(curPlayer, ShareDefine.SuccType_RealmlvUp, nextRealmLv)
+    PlayerTongTianLing.AddTongTianTaskValue(curPlayer, ChConfig.TTLTaskType_RealmUp, 1)
     #更新排行榜
     PlayerBillboard.UpdateRealmBillboard(curPlayer)
     # 记录开服活动

--
Gitblit v1.8.0