From 8495b01a0c80894ce04f04b9e37c96479aedcefc Mon Sep 17 00:00:00 2001
From: hxp <ale99527@vip.qq.com>
Date: 星期五, 22 九月 2023 16:49:15 +0800
Subject: [PATCH] 9931 【BT0.1】【主干】境界修改(修仙之路)
---
ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/GM/Commands/ActivityPlace.py | 1
ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/GameWorldLogic/BossHurtMng.py | 1
ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/PlayerActivity.py | 5 +
ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/ChPyNetSendPack.py | 38 +++++++--
ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/IpyGameDataPY.py | 26 ++++++
ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/ChPlayer.py | 3
ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/NPC/NPCCommon.py | 7 +
PySysDB/PySysDBPY.h | 10 ++
ServerPython/CoreServerGroup/GameServer/Script/ChPyNetSendPack.py | 38 +++++++--
ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/PlayerPrestigeSys.py | 66 ++++++++++++++++
ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/ChConfig.py | 7 +
ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/GameWorldLogic/FBProcess/FBCommon.py | 8 +
12 files changed, 186 insertions(+), 24 deletions(-)
diff --git a/PySysDB/PySysDBPY.h b/PySysDB/PySysDBPY.h
index 0e14ba2..6b3fade 100644
--- a/PySysDB/PySysDBPY.h
+++ b/PySysDB/PySysDBPY.h
@@ -49,6 +49,16 @@
list LVAttrValueList; //每级额外属性值(非累积)
};
+//境界修仙之路
+
+struct tagRealmXXZL
+{
+ WORD _TaskID; //任务ID
+ BYTE TaskType; //任务类型
+ DWORD NeedValue; //所需任务值
+ list AwardItemList; //奖励物品列表 [[物品ID,个数,是否拍品], ...]
+};
+
//境界表 #tagRealm
struct tagRealm
diff --git a/ServerPython/CoreServerGroup/GameServer/Script/ChPyNetSendPack.py b/ServerPython/CoreServerGroup/GameServer/Script/ChPyNetSendPack.py
index d99cced..3c7a029 100644
--- a/ServerPython/CoreServerGroup/GameServer/Script/ChPyNetSendPack.py
+++ b/ServerPython/CoreServerGroup/GameServer/Script/ChPyNetSendPack.py
@@ -18174,6 +18174,7 @@
("KillCnt", c_int), #击杀次数
("ItemAddCnt", c_int), #物品增加次数
("BuyCnt", c_ubyte), #购买次数
+ ("KillCntTotal", c_int), #击杀次数 - 累计
]
def __init__(self):
@@ -18190,6 +18191,7 @@
self.KillCnt = 0
self.ItemAddCnt = 0
self.BuyCnt = 0
+ self.KillCntTotal = 0
return
def GetLength(self):
@@ -18203,13 +18205,15 @@
BossType:%d,
KillCnt:%d,
ItemAddCnt:%d,
- BuyCnt:%d
+ BuyCnt:%d,
+ KillCntTotal:%d
'''\
%(
self.BossType,
self.KillCnt,
self.ItemAddCnt,
- self.BuyCnt
+ self.BuyCnt,
+ self.KillCntTotal
)
return DumpString
@@ -22692,6 +22696,7 @@
ItemAddCnt = 0 #(WORD ItemAddCnt)//物品增加次数
PassGradeCnt = 0 #(BYTE PassGradeCnt)//星级值对应个数, 每个key存9个lineID
PassGrade = list() #(vector<DWORD> PassGrade)//副本线路对应星级值列表
+ EnterCntTotal = 0 #(DWORD EnterCntTotal)//累计进入次数
data = None
def __init__(self):
@@ -22708,6 +22713,7 @@
for i in range(self.PassGradeCnt):
value,_pos=CommFunc.ReadDWORD(_lpData,_pos)
self.PassGrade.append(value)
+ self.EnterCntTotal,_pos = CommFunc.ReadDWORD(_lpData, _pos)
return _pos
def Clear(self):
@@ -22717,6 +22723,7 @@
self.ItemAddCnt = 0
self.PassGradeCnt = 0
self.PassGrade = list()
+ self.EnterCntTotal = 0
return
def GetLength(self):
@@ -22727,6 +22734,7 @@
length += 2
length += 1
length += 4 * self.PassGradeCnt
+ length += 4
return length
@@ -22739,6 +22747,7 @@
data = CommFunc.WriteBYTE(data, self.PassGradeCnt)
for i in range(self.PassGradeCnt):
data = CommFunc.WriteDWORD(data, self.PassGrade[i])
+ data = CommFunc.WriteDWORD(data, self.EnterCntTotal)
return data
def OutputString(self):
@@ -22748,7 +22757,8 @@
RecoverCnt:%d,
ItemAddCnt:%d,
PassGradeCnt:%d,
- PassGrade:%s
+ PassGrade:%s,
+ EnterCntTotal:%d
'''\
%(
self.FBID,
@@ -22756,7 +22766,8 @@
self.RecoverCnt,
self.ItemAddCnt,
self.PassGradeCnt,
- "..."
+ "...",
+ self.EnterCntTotal
)
return DumpString
@@ -24616,6 +24627,7 @@
("Cmd", c_ubyte),
("SubCmd", c_ubyte),
("IsPass", c_ubyte), #是否通关副本
+ ("XXZLAwardState", c_int), #修仙之路领奖状态;按二进制位存储每个任务ID是否已领取
]
def __init__(self):
@@ -24633,6 +24645,7 @@
self.Cmd = 0xA3
self.SubCmd = 0x11
self.IsPass = 0
+ self.XXZLAwardState = 0
return
def GetLength(self):
@@ -24645,12 +24658,14 @@
DumpString = '''// A3 11 通知玩家境界信息 //tagMCSyncRealmInfo:
Cmd:%s,
SubCmd:%s,
- IsPass:%d
+ IsPass:%d,
+ XXZLAwardState:%d
'''\
%(
self.Cmd,
self.SubCmd,
- self.IsPass
+ self.IsPass,
+ self.XXZLAwardState
)
return DumpString
@@ -41094,6 +41109,7 @@
TodayExpPoint = 0 #(DWORD TodayExpPoint)
YestordayExp = 0 #(DWORD YestordayExp)
YestordayExpPoint = 0 #(DWORD YestordayExpPoint)
+ TotalCount = 0 #(DWORD TotalCount)// 累计活跃放置次数
data = None
def __init__(self):
@@ -41114,6 +41130,7 @@
self.TodayExpPoint,_pos = CommFunc.ReadDWORD(_lpData, _pos)
self.YestordayExp,_pos = CommFunc.ReadDWORD(_lpData, _pos)
self.YestordayExpPoint,_pos = CommFunc.ReadDWORD(_lpData, _pos)
+ self.TotalCount,_pos = CommFunc.ReadDWORD(_lpData, _pos)
return _pos
def Clear(self):
@@ -41130,6 +41147,7 @@
self.TodayExpPoint = 0
self.YestordayExp = 0
self.YestordayExpPoint = 0
+ self.TotalCount = 0
return
def GetLength(self):
@@ -41140,6 +41158,7 @@
length += 1
length += 1
length += len(self.RewardInfo)
+ length += 4
length += 4
length += 4
length += 4
@@ -41159,6 +41178,7 @@
data = CommFunc.WriteDWORD(data, self.TodayExpPoint)
data = CommFunc.WriteDWORD(data, self.YestordayExp)
data = CommFunc.WriteDWORD(data, self.YestordayExpPoint)
+ data = CommFunc.WriteDWORD(data, self.TotalCount)
return data
def OutputString(self):
@@ -41172,7 +41192,8 @@
TodayExp:%d,
TodayExpPoint:%d,
YestordayExp:%d,
- YestordayExpPoint:%d
+ YestordayExpPoint:%d,
+ TotalCount:%d
'''\
%(
self.Head.OutputString(),
@@ -41184,7 +41205,8 @@
self.TodayExp,
self.TodayExpPoint,
self.YestordayExp,
- self.YestordayExpPoint
+ self.YestordayExpPoint,
+ self.TotalCount
)
return DumpString
diff --git a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/ChConfig.py b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/ChConfig.py
index 1c6a178..a34cb9b 100644
--- a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/ChConfig.py
+++ b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/ChConfig.py
@@ -3495,6 +3495,7 @@
Def_Player_Dict_ReqFBMissionType = "ReqFBMissionType" # 请求进入副本的任务类型
Def_Player_Dict_PlayerFBStar_MapId = "FBStar_%s_%s" # 副本星级星级信息, 参数为[mapID, key编号], 按位存储每个lineID对应的星级
Def_Player_Dict_CustomMapStep = "CustomMapStep_%s_%s" # 前端自定义场景阶段, 参数(mapID, lineID),对应 CustomMapStep_Fight ...
+Def_Player_Dict_EnterFbCntTotal = "EnterFbCntTotal_%s" # 进入副本总累计次数, 参数为副本ID
Def_Player_Dict_EnterFbCntDay = "EnterFbCntDay_%s" # 今日进入副本次数, 参数为副本ID
Def_Player_Dict_BuyFbCntDay = "BuyFbCntDay_%s" # 今日购买副本进入次数, 参数为副本ID
Def_Player_Dict_RecoverFbCnt = "RecoverFbCnt_%s" # 今日找回的副本次数, 参数为副本ID
@@ -4058,6 +4059,7 @@
Def_PDict_Activity_ExtraRealmPoint = "Activity_ExtraRealmPoint" # 多倍活动额外获得的修行点
# 活跃放置
+Def_PDict_ActivityCountTotal = "ActivityCountTotal" # 累计活跃放置修炼次数
Def_PDict_ActivityCanCostTotalPoint = "ActivityCanCostTotalPoint" # 当前总活跃值(可消耗)
Def_PDict_ActivityPlaceStartTime = "ActivityPlaceStartTime" # 活跃放置开始time值
Def_PDict_ActivityPlaceRemainCount = "ActivityPlaceRemainCount" # 活跃放置剩余进行次数
@@ -4152,6 +4154,7 @@
Def_PDict_AutoFightSetting = "AFSetting_%s_%s"
# 世界boss
+Def_PDict_Boss_KillCntTotal = "Boss_KillCntTotal_%s" # 已杀boss总次数<%s-索引>
Def_PDict_WorldBoss_HurtCnt = "WorldBoss_HurtCnt" # 当日已摸世界boss次数
Def_PDict_Boss_KillCnt = "Boss_KillCnt_%s" # 当日已杀世界boss次数<%s-索引>
Def_PDict_Boss_KillCntItemAddCnt = "Boss_KillCntItemAddCnt_%s" # 物品增加的当日可杀世界boss次数<%s-索引>
@@ -4171,6 +4174,7 @@
Def_PDict_FeastRedPacketCanGrabCnt = "FeastRedPacketCanGrabCnt" # 节日红包可抢次数
#境界
+Def_PDict_RealmXXZLAward = "RealmXXZLAward" #境界修仙之路领奖状态;按二进制位存储每个任务ID是否已领取
Def_PDict_RealmFBIsOpen = "RealmFBIsOpen" #渡劫副本是否开启 0未开启 1已开启 2可升级境界
Def_PDict_RealmFBAttrAdd = "RealmFBAttrAdd_%s" #渡劫副本属性加成 参数属性ID
Def_PDict_RealmExp = "RealmExp" #境界修为池总经验
@@ -5728,7 +5732,8 @@
Def_RewardType_SuccessScore, #成就积分奖励 59
Def_RewardType_BuyOne, #买一送多活动免费奖励 60
Def_RewardType_CustomAward, #自定义奖励 61
-)= range(62)
+Def_RewardType_RealmXXZL, #境界修仙之路奖励 62
+)= range(63)
#boss复活相关活动定义
diff --git a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/ChPyNetSendPack.py b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/ChPyNetSendPack.py
index d99cced..3c7a029 100644
--- a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/ChPyNetSendPack.py
+++ b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/ChPyNetSendPack.py
@@ -18174,6 +18174,7 @@
("KillCnt", c_int), #击杀次数
("ItemAddCnt", c_int), #物品增加次数
("BuyCnt", c_ubyte), #购买次数
+ ("KillCntTotal", c_int), #击杀次数 - 累计
]
def __init__(self):
@@ -18190,6 +18191,7 @@
self.KillCnt = 0
self.ItemAddCnt = 0
self.BuyCnt = 0
+ self.KillCntTotal = 0
return
def GetLength(self):
@@ -18203,13 +18205,15 @@
BossType:%d,
KillCnt:%d,
ItemAddCnt:%d,
- BuyCnt:%d
+ BuyCnt:%d,
+ KillCntTotal:%d
'''\
%(
self.BossType,
self.KillCnt,
self.ItemAddCnt,
- self.BuyCnt
+ self.BuyCnt,
+ self.KillCntTotal
)
return DumpString
@@ -22692,6 +22696,7 @@
ItemAddCnt = 0 #(WORD ItemAddCnt)//物品增加次数
PassGradeCnt = 0 #(BYTE PassGradeCnt)//星级值对应个数, 每个key存9个lineID
PassGrade = list() #(vector<DWORD> PassGrade)//副本线路对应星级值列表
+ EnterCntTotal = 0 #(DWORD EnterCntTotal)//累计进入次数
data = None
def __init__(self):
@@ -22708,6 +22713,7 @@
for i in range(self.PassGradeCnt):
value,_pos=CommFunc.ReadDWORD(_lpData,_pos)
self.PassGrade.append(value)
+ self.EnterCntTotal,_pos = CommFunc.ReadDWORD(_lpData, _pos)
return _pos
def Clear(self):
@@ -22717,6 +22723,7 @@
self.ItemAddCnt = 0
self.PassGradeCnt = 0
self.PassGrade = list()
+ self.EnterCntTotal = 0
return
def GetLength(self):
@@ -22727,6 +22734,7 @@
length += 2
length += 1
length += 4 * self.PassGradeCnt
+ length += 4
return length
@@ -22739,6 +22747,7 @@
data = CommFunc.WriteBYTE(data, self.PassGradeCnt)
for i in range(self.PassGradeCnt):
data = CommFunc.WriteDWORD(data, self.PassGrade[i])
+ data = CommFunc.WriteDWORD(data, self.EnterCntTotal)
return data
def OutputString(self):
@@ -22748,7 +22757,8 @@
RecoverCnt:%d,
ItemAddCnt:%d,
PassGradeCnt:%d,
- PassGrade:%s
+ PassGrade:%s,
+ EnterCntTotal:%d
'''\
%(
self.FBID,
@@ -22756,7 +22766,8 @@
self.RecoverCnt,
self.ItemAddCnt,
self.PassGradeCnt,
- "..."
+ "...",
+ self.EnterCntTotal
)
return DumpString
@@ -24616,6 +24627,7 @@
("Cmd", c_ubyte),
("SubCmd", c_ubyte),
("IsPass", c_ubyte), #是否通关副本
+ ("XXZLAwardState", c_int), #修仙之路领奖状态;按二进制位存储每个任务ID是否已领取
]
def __init__(self):
@@ -24633,6 +24645,7 @@
self.Cmd = 0xA3
self.SubCmd = 0x11
self.IsPass = 0
+ self.XXZLAwardState = 0
return
def GetLength(self):
@@ -24645,12 +24658,14 @@
DumpString = '''// A3 11 通知玩家境界信息 //tagMCSyncRealmInfo:
Cmd:%s,
SubCmd:%s,
- IsPass:%d
+ IsPass:%d,
+ XXZLAwardState:%d
'''\
%(
self.Cmd,
self.SubCmd,
- self.IsPass
+ self.IsPass,
+ self.XXZLAwardState
)
return DumpString
@@ -41094,6 +41109,7 @@
TodayExpPoint = 0 #(DWORD TodayExpPoint)
YestordayExp = 0 #(DWORD YestordayExp)
YestordayExpPoint = 0 #(DWORD YestordayExpPoint)
+ TotalCount = 0 #(DWORD TotalCount)// 累计活跃放置次数
data = None
def __init__(self):
@@ -41114,6 +41130,7 @@
self.TodayExpPoint,_pos = CommFunc.ReadDWORD(_lpData, _pos)
self.YestordayExp,_pos = CommFunc.ReadDWORD(_lpData, _pos)
self.YestordayExpPoint,_pos = CommFunc.ReadDWORD(_lpData, _pos)
+ self.TotalCount,_pos = CommFunc.ReadDWORD(_lpData, _pos)
return _pos
def Clear(self):
@@ -41130,6 +41147,7 @@
self.TodayExpPoint = 0
self.YestordayExp = 0
self.YestordayExpPoint = 0
+ self.TotalCount = 0
return
def GetLength(self):
@@ -41140,6 +41158,7 @@
length += 1
length += 1
length += len(self.RewardInfo)
+ length += 4
length += 4
length += 4
length += 4
@@ -41159,6 +41178,7 @@
data = CommFunc.WriteDWORD(data, self.TodayExpPoint)
data = CommFunc.WriteDWORD(data, self.YestordayExp)
data = CommFunc.WriteDWORD(data, self.YestordayExpPoint)
+ data = CommFunc.WriteDWORD(data, self.TotalCount)
return data
def OutputString(self):
@@ -41172,7 +41192,8 @@
TodayExp:%d,
TodayExpPoint:%d,
YestordayExp:%d,
- YestordayExpPoint:%d
+ YestordayExpPoint:%d,
+ TotalCount:%d
'''\
%(
self.Head.OutputString(),
@@ -41184,7 +41205,8 @@
self.TodayExp,
self.TodayExpPoint,
self.YestordayExp,
- self.YestordayExpPoint
+ self.YestordayExpPoint,
+ self.TotalCount
)
return DumpString
diff --git a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/GM/Commands/ActivityPlace.py b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/GM/Commands/ActivityPlace.py
index ab64ac9..4117d43 100644
--- a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/GM/Commands/ActivityPlace.py
+++ b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/GM/Commands/ActivityPlace.py
@@ -43,6 +43,7 @@
PlayerControl.NomalDictSetProperty(curPlayer, ChConfig.Def_PDict_ActivityPlaceTodayExpPoint, 0)
PlayerControl.NomalDictSetProperty(curPlayer, ChConfig.Def_PDict_ActivityPlaceYestorDayExp, 0)
PlayerControl.NomalDictSetProperty(curPlayer, ChConfig.Def_PDict_ActivityPlaceYestorDayExpPoint, 0)
+ PlayerControl.NomalDictSetProperty(curPlayer, ChConfig.Def_PDict_ActivityCountTotal, 0)
rewardItemCount = curPlayer.NomalDictGetProperty(ChConfig.Def_PDict_ActivityPlaceRewardItem)
for i in xrange(rewardItemCount):
diff --git a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/GameWorldLogic/BossHurtMng.py b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/GameWorldLogic/BossHurtMng.py
index 1996d44..fa96457 100644
--- a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/GameWorldLogic/BossHurtMng.py
+++ b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/GameWorldLogic/BossHurtMng.py
@@ -552,6 +552,7 @@
infoPack.KillCnt = killCnt
infoPack.ItemAddCnt = itemAddCnt
infoPack.BuyCnt = hasBuyCnt
+ infoPack.KillCntTotal = curPlayer.NomalDictGetProperty(ChConfig.Def_PDict_Boss_KillCntTotal % index, 0)
packdata.KillCntInfoList.append(infoPack)
packdata.Cnt = len(packdata.KillCntInfoList)
diff --git a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/GameWorldLogic/FBProcess/FBCommon.py b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/GameWorldLogic/FBProcess/FBCommon.py
index 4c289c7..f4dc653 100644
--- a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/GameWorldLogic/FBProcess/FBCommon.py
+++ b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/GameWorldLogic/FBProcess/FBCommon.py
@@ -1667,8 +1667,11 @@
PlayerActivity.OnEnterFBActivity(curPlayer, fbID, updCnt, addCountEx)
PlayerSuccess.AddEnterFBSuccess(curPlayer, fbID, addCountEx)
updValue = updCnt
- GameWorld.DebugLog(" AddEnterFBCount fbID=%s, addCount=%s, lineBit=%s, enterCnt=%s,updValue=%s"
- % (fbID, addCount, lineBit, enterCnt, updValue), curPlayer.GetPlayerID())
+ enterCntTotalKey = ChConfig.Def_Player_Dict_EnterFbCntTotal % fbID
+ enterCntTotal = min(curPlayer.NomalDictGetProperty(enterCntTotalKey) + addCount, ChConfig.Def_UpperLimit_DWord)
+ PlayerControl.NomalDictSetProperty(curPlayer, enterCntTotalKey, enterCntTotal)
+ GameWorld.DebugLog(" AddEnterFBCount fbID=%s, addCount=%s, lineBit=%s, enterCnt=%s,updValue=%s,enterCntTotal=%s"
+ % (fbID, addCount, lineBit, enterCnt, updValue, enterCntTotal), curPlayer.GetPlayerID())
Sync_FBPlayerFBInfoData(curPlayer, fbID)
OnFBCountChangeEffectRecoverCount(curPlayer, fbID)
return True
@@ -2419,6 +2422,7 @@
mapInfo.Clear()
mapInfo.FBID = mID
mapInfo.EnterCnt = curPlayer.NomalDictGetProperty(ChConfig.Def_Player_Dict_EnterFbCntDay % mID)
+ mapInfo.EnterCntTotal = curPlayer.NomalDictGetProperty(ChConfig.Def_Player_Dict_EnterFbCntTotal % mID)
mapInfo.RecoverCnt = curPlayer.NomalDictGetProperty(ChConfig.Def_Player_Dict_RecoverFbCnt % mID)
mapInfo.ItemAddCnt = curPlayer.NomalDictGetProperty(ChConfig.Def_Player_Dict_ItemAddFbCnt % mID)
diff --git a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/IpyGameDataPY.py b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/IpyGameDataPY.py
index b290b63..cc1ecb7 100644
--- a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/IpyGameDataPY.py
+++ b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/IpyGameDataPY.py
@@ -71,6 +71,13 @@
("list", "LVAttrValueList", 0),
),
+ "RealmXXZL":(
+ ("WORD", "TaskID", 1),
+ ("BYTE", "TaskType", 0),
+ ("DWORD", "NeedValue", 0),
+ ("list", "AwardItemList", 0),
+ ),
+
"Realm":(
("WORD", "Lv", 1),
("BYTE", "LvLarge", 0),
@@ -2201,6 +2208,21 @@
def GetEatItemAttrValueList(self): return self.EatItemAttrValueList # 每X个培养丹增加属性值=EatCntEverytime
def GetLVAttrTypeList(self): return self.LVAttrTypeList # 每级额外属性类(非累积)
def GetLVAttrValueList(self): return self.LVAttrValueList # 每级额外属性值(非累积)
+
+# 境界修仙之路
+class IPY_RealmXXZL():
+
+ def __init__(self):
+ self.TaskID = 0
+ self.TaskType = 0
+ self.NeedValue = 0
+ self.AwardItemList = []
+ return
+
+ def GetTaskID(self): return self.TaskID # 任务ID
+ def GetTaskType(self): return self.TaskType # 任务类型
+ def GetNeedValue(self): return self.NeedValue # 所需任务值
+ def GetAwardItemList(self): return self.AwardItemList # 奖励物品列表 [[物品ID,个数,是否拍品], ...]
# 境界表
class IPY_Realm():
@@ -6540,6 +6562,8 @@
self.ipyLingQiAttrLen = len(self.ipyLingQiAttrCache)
self.ipyLingQiTrainCache = self.__LoadFileData("LingQiTrain", IPY_LingQiTrain)
self.ipyLingQiTrainLen = len(self.ipyLingQiTrainCache)
+ self.ipyRealmXXZLCache = self.__LoadFileData("RealmXXZL", IPY_RealmXXZL)
+ self.ipyRealmXXZLLen = len(self.ipyRealmXXZLCache)
self.ipyRealmCache = self.__LoadFileData("Realm", IPY_Realm)
self.ipyRealmLen = len(self.ipyRealmCache)
self.ipyLianTiCache = self.__LoadFileData("LianTi", IPY_LianTi)
@@ -7138,6 +7162,8 @@
def GetLingQiAttrByIndex(self, index): return self.ipyLingQiAttrCache[index]
def GetLingQiTrainCount(self): return self.ipyLingQiTrainLen
def GetLingQiTrainByIndex(self, index): return self.ipyLingQiTrainCache[index]
+ def GetRealmXXZLCount(self): return self.ipyRealmXXZLLen
+ def GetRealmXXZLByIndex(self, index): return self.ipyRealmXXZLCache[index]
def GetRealmCount(self): return self.ipyRealmLen
def GetRealmByIndex(self, index): return self.ipyRealmCache[index]
def GetLianTiCount(self): return self.ipyLianTiLen
diff --git a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/NPC/NPCCommon.py b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/NPC/NPCCommon.py
index 7f87b74..734b682 100644
--- a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/NPC/NPCCommon.py
+++ b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/NPC/NPCCommon.py
@@ -2465,14 +2465,17 @@
killBossCntLimitDict = IpyGameDataPY.GetFuncCfg('KillBossCntLimit', 1)
limitIndex = GameWorld.GetDictValueByKey(killBossCntLimitDict, npcID)
if limitIndex != None:
+ totalKey = ChConfig.Def_PDict_Boss_KillCntTotal % limitIndex
+ totalCnt = min(curPlayer.NomalDictGetProperty(totalKey, 0) + 1, ChConfig.Def_UpperLimit_DWord)
+ PlayerControl.NomalDictSetProperty(curPlayer, totalKey, totalCnt)
#今日杀怪次数+1
key = ChConfig.Def_PDict_Boss_KillCnt % limitIndex
newCnt = curPlayer.NomalDictGetProperty(key, 0) + 1
PlayerControl.NomalDictSetProperty(curPlayer, key, newCnt)
BossHurtMng.NotifyAttackBossCnt(curPlayer, limitIndex)
- GameWorld.DebugLog("今日杀怪次数 playerID=%s, newCnt=%s" % (curPlayer.GetPlayerID(), newCnt))
+ GameWorld.DebugLog("更新击杀Boss次数: index=%s, todayCnt=%s, totalCnt=%s" % (limitIndex, newCnt, totalCnt), curPlayer.GetPlayerID())
- dataDict = {"objID":npcID, "bossID":npcID, "touchCnt":newCnt,
+ dataDict = {"objID":npcID, "bossID":npcID, "touchCnt":newCnt, "totalCnt":totalCnt,
"AccID":curPlayer.GetAccID(), "PlayerID":curPlayer.GetPlayerID()}
DataRecordPack.SendEventPack("AddKillBossCnt", dataDict, curPlayer)
PlayerSuccess.DoAddSuccessProgress(curPlayer, ShareDefine.SuccType_FeastRedPack_KillBoss, 1, [limitIndex])
diff --git a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/ChPlayer.py b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/ChPlayer.py
index 2e242b0..4237157 100644
--- a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/ChPlayer.py
+++ b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/ChPlayer.py
@@ -5680,6 +5680,9 @@
#自定义奖励
elif rewardType == ChConfig.Def_RewardType_CustomAward:
PlayerCustomAward.OnGetCustomAward(curPlayer, dataEx)
+ #境界修仙之路奖励
+ elif rewardType == ChConfig.Def_RewardType_RealmXXZL:
+ PlayerPrestigeSys.GetXXZLAward(curPlayer, dataEx)
#玩法前瞻奖励
elif rewardType == ChConfig.Def_RewardType_GameNotice:
OnGiveAwardByClient(curPlayer, rewardType, ChConfig.Def_PDict_GameNoticeAwardState, IpyGameDataPY.GetFuncEvalCfg("GameNoticeReward", 1))
diff --git a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/PlayerActivity.py b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/PlayerActivity.py
index 0a3213e..fb40cbf 100644
--- a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/PlayerActivity.py
+++ b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/PlayerActivity.py
@@ -956,8 +956,10 @@
PlayerControl.NomalDictSetProperty(curPlayer, ChConfig.Def_PDict_ActivityPlaceRewardItemCount % i, 0)
PlayerControl.NomalDictSetProperty(curPlayer, ChConfig.Def_PDict_ActivityPlaceRewardItem, 0)
PlayerControl.NomalDictSetProperty(curPlayer, ChConfig.Def_PDict_ActivityPlaceRewardCount, 0)
+ totalCount = min(curPlayer.NomalDictGetProperty(ChConfig.Def_PDict_ActivityCountTotal) + rewardCount, ChConfig.Def_UpperLimit_DWord)
+ PlayerControl.NomalDictSetProperty(curPlayer, ChConfig.Def_PDict_ActivityCountTotal, totalCount)
- GameWorld.DebugLog("领取活跃放置奖励: rewardCount=%s,rewardItemCount=%s,rewardItemList=%s" % (rewardCount, rewardItemCount, rewardItemList))
+ GameWorld.DebugLog("领取活跃放置奖励: totalCount=%s,rewardCount=%s,rewardItemCount=%s,rewardItemList=%s" % (totalCount, rewardCount, rewardItemCount, rewardItemList))
ItemControler.GivePlayerItemOrMail(curPlayer, rewardItemList)
EventShell.EventRespons_ActivityPlace(curPlayer, "getreward")
@@ -986,6 +988,7 @@
placeInfo.TodayExpPoint = curPlayer.NomalDictGetProperty(ChConfig.Def_PDict_ActivityPlaceTodayExpPoint)
placeInfo.YestordayExp = curPlayer.NomalDictGetProperty(ChConfig.Def_PDict_ActivityPlaceYestorDayExp)
placeInfo.YestordayExpPoint = curPlayer.NomalDictGetProperty(ChConfig.Def_PDict_ActivityPlaceYestorDayExpPoint)
+ placeInfo.TotalCount = curPlayer.NomalDictGetProperty(ChConfig.Def_PDict_ActivityCountTotal)
NetPackCommon.SendFakePack(curPlayer, placeInfo)
return
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 d346b08..38b98be 100644
--- a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/PlayerPrestigeSys.py
+++ b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/PlayerPrestigeSys.py
@@ -64,14 +64,76 @@
#};
def OpenRealmFB(index, clientData, tick):
return
+
+def GetXXZLAward(curPlayer, taskID):
+ ## 领取修仙之路奖励
+ awardState = curPlayer.NomalDictGetProperty(ChConfig.Def_PDict_RealmXXZLAward)
+ if awardState&pow(2, taskID):
+ GameWorld.DebugLog("已领取过境界修仙之路该奖励, taskID=%s" % taskID, curPlayer.GetPlayerID())
+ return
+ ipyData = IpyGameDataPY.GetIpyGameData("RealmXXZL", taskID)
+ if not ipyData:
+ return
+ taskType = ipyData.GetTaskType()
+ needValue = ipyData.GetNeedValue()
+ curValue= 0
+
+ #1. 得到 XXX法宝, 所需值为法宝ID
+ if taskType == 1:
+ magicWeaponID = needValue
+ if curPlayer.NomalDictGetProperty(ChConfig.Def_PDict_MagicWeaponLV % magicWeaponID) >= 1:
+ curValue = needValue
+
+ #2. 通关天星塔X层
+ elif taskType == 2:
+ curValue = curPlayer.NomalDictGetProperty(ChConfig.Def_Player_Dict_SkyTowerFloor)
+
+ #3. 击杀世界BOSSX只
+ elif taskType == 3:
+ curValue = curPlayer.NomalDictGetProperty(ChConfig.Def_PDict_Boss_KillCntTotal % ShareDefine.Def_Boss_Func_World)
+
+ #4. 活跃修炼X次
+ elif taskType == 4:
+ curValue = curPlayer.NomalDictGetProperty(ChConfig.Def_PDict_ActivityCountTotal)
+
+ #5. 击杀个人BOSS:xxx,所需之为个人boss表对应线路id
+ elif taskType == 5:
+ mapID = ChConfig.Def_FBMapID_PersonalBoss
+ lineID = needValue
+ if GameWorld.GetDictValueByBit(curPlayer, ChConfig.Def_Player_Dict_PlayerFBStar_MapId, lineID, False, [mapID]):
+ curValue = needValue
+
+ #6. 通关宗门试炼x次
+ elif taskType == 6:
+ curValue = curPlayer.NomalDictGetProperty(ChConfig.Def_Player_Dict_EnterFbCntTotal % ChConfig.Def_FBMapID_MunekadoTrial)
+
+ #7. 获得X点灵根点
+ elif taskType == 7:
+ curValue = PlayerControl.GetTotalLingGenPoint(curPlayer)
+
+ if curValue < needValue:
+ GameWorld.DebugLog("境界修仙之路当前任务所需值不满足,无法领奖, taskID=%s,taskType=%s,curValue=%s < %s"
+ % (taskID, taskType, curValue, needValue), curPlayer.GetPlayerID())
+ return
+
+ awardItemList = ipyData.GetAwardItemList()
+ if not ItemCommon.GiveAwardItem(curPlayer, awardItemList):
+ return
+
+ updAwardState = awardState|pow(2, taskID)
+ PlayerControl.NomalDictSetProperty(curPlayer, ChConfig.Def_PDict_RealmXXZLAward, updAwardState)
+ GameWorld.DebugLog("领取境界修仙之路奖励, awardID=%s,updAwardState=%s" % (taskID, updAwardState), curPlayer.GetPlayerID())
+ SyncRealmFBState(curPlayer)
+ return
def SyncRealmFBState(curPlayer):
#通知客户端渡劫副本是否开启
- if not GameFuncComm.GetFuncCanUse(curPlayer, ShareDefine.GameFuncID_Official):
- return
+ #if not GameFuncComm.GetFuncCanUse(curPlayer, ShareDefine.GameFuncID_Official):
+ # return
sendPack = ChPyNetSendPack.tagMCSyncRealmInfo()
sendPack.IsPass = curPlayer.NomalDictGetProperty(ChConfig.Def_PDict_RealmFBIsOpen)
+ sendPack.XXZLAwardState = curPlayer.NomalDictGetProperty(ChConfig.Def_PDict_RealmXXZLAward)
NetPackCommon.SendFakePack(curPlayer, sendPack)
return
--
Gitblit v1.8.0