From 5ad2bd52bfbdf91a93ecf3a6c98c5e578edabb2b Mon Sep 17 00:00:00 2001
From: hxp <ale99527@vip.qq.com>
Date: 星期二, 26 三月 2019 17:18:50 +0800
Subject: [PATCH] 6373 【后端】【2.0】删除无用功能代码、封包、配置(页游天梯)
---
ServerPython/CoreServerGroup/GameServer/Script/Player/PlayerBillboard.py | 1
ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script.ini | 13
ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/ChPyNetPack.py | 196 ------
ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/ChPyNetSendPack.py | 124 ---
ServerPython/CoreServerGroup/GameServer/Script/ChPyNetPack.py | 196 ------
ServerPython/CoreServerGroup/GameServer/Script/ChPyNetSendPack.py | 124 ---
ServerPython/CoreServerGroup/GameServer/Script/ChMapToGamePyPack.py | 426 -------------
ServerPython/CoreServerGroup/GameServer/Script/GameWorld.py | 8
ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Event/EventSrc/QuestRunner.py | 14
ServerPython/CoreServerGroup/GameServer/Script/Player/PlayerViewCache.py | 7
ServerPython/CoreServerGroup/GameServer/Script/ChConfig.py | 4
ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/ChPlayer.py | 3
ServerPython/CoreServerGroup/GameServer/GameServerScript.ini | 16
ServerPython/CoreServerGroup/GameServer/Script/ShareDefine.py | 11
ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/PlayerControl.py | 36 -
ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/ShareDefine.py | 11
ServerPython/CoreServerGroup/GameServer/Script/Player/PlayerQuery.py | 8
ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/GameServerPyPack.ini | 13
ServerPython/CoreServerGroup/GameServer/Script/Player/ChPlayer.py | 9
ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/ChGameToMapPyPack.py | 78 --
ServerPython/CoreServerGroup/GameServer/Script/ChGameToMapPyPack.py | 78 --
/dev/null | 47 -
ServerPython/CoreServerGroup/GameServer/Script/GM/Commands/ClearOpenServerDay.py | 5
ServerPython/CoreServerGroup/GameServer/MapServerPyPack.ini | 12
ServerPython/CoreServerGroup/GameServer/Script/GameWorldLogic/GameWorldProcess.py | 5
ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/PyNetPack.ini | 24
ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/PlayerCostVIP.py | 2
ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/ChMapToGamePyPack.py | 426 -------------
ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/ChConfig.py | 16
29 files changed, 10 insertions(+), 1,903 deletions(-)
diff --git a/ServerPython/CoreServerGroup/GameServer/GameServerScript.ini b/ServerPython/CoreServerGroup/GameServer/GameServerScript.ini
index 131895e..ee6356a 100644
--- a/ServerPython/CoreServerGroup/GameServer/GameServerScript.ini
+++ b/ServerPython/CoreServerGroup/GameServer/GameServerScript.ini
@@ -354,22 +354,6 @@
PacketCallFunc_2=OnQueryBourseItemOnSale
-
-;天梯竞技场
-[HighLadder]
-ScriptName = Player\HighLadder.py
-Writer = xmnathan
-Releaser = xmnathan
-RegType = 0
-RegisterPackCount = 2
-
-PacketCMD_1=0x1A
-PacketSubCMD_1=0x11
-PacketCallFunc_1=OnHightLadderTopPlayerQuery
-
-PacketCMD_2=0x1A
-PacketSubCMD_2=0x12
-PacketCallFunc_2=OnHightLadderCanFightPlayerQuery
;----------------------------------------------
;世界服务器Py解析Client包
;----------------------------------------------
\ No newline at end of file
diff --git a/ServerPython/CoreServerGroup/GameServer/MapServerPyPack.ini b/ServerPython/CoreServerGroup/GameServer/MapServerPyPack.ini
index e8b42dd..4aec7a9 100644
--- a/ServerPython/CoreServerGroup/GameServer/MapServerPyPack.ini
+++ b/ServerPython/CoreServerGroup/GameServer/MapServerPyPack.ini
@@ -30,18 +30,6 @@
PacketSubCMD_5=0x05
PacketCallFunc_5=OnMGPlayerRecaptureBourseItem
-;天梯竞技场
-[HighLadder]
-ScriptName = Player\HighLadder.py
-Writer = xmnathan
-Releaser = xmnathan
-RegType = 0
-RegisterPackCount = 1
-
-PacketCMD_1=0x03
-PacketSubCMD_1=0x02
-PacketCallFunc_1=OnMGHighLadderChallenge
-
;GM补偿
[Compensation]
ScriptName = Player\PlayerCompensation
diff --git a/ServerPython/CoreServerGroup/GameServer/Script/ChConfig.py b/ServerPython/CoreServerGroup/GameServer/Script/ChConfig.py
index bceddb1..6aac95c 100644
--- a/ServerPython/CoreServerGroup/GameServer/Script/ChConfig.py
+++ b/ServerPython/CoreServerGroup/GameServer/Script/ChConfig.py
@@ -586,8 +586,6 @@
ShareDefine.Def_BT_NewFCCostGold : 5, #消费排行榜(仙界盛典)
ShareDefine.Def_BT_FBHelpBattle : 100, #助战次数榜
ShareDefine.Def_BT_ZhuXianTower : 100, #诛仙塔榜
- ShareDefine.Def_BT_HighLadder : 1000, #玩家天梯竞技场排行
- ShareDefine.Def_BT_HighLadder_Yester : 1000, #玩家天梯竞技场昨日排行
}
#排行榜保存类型(和BillboardType匹配), 默认保存, 如果不保存,可配置进去
@@ -811,7 +809,7 @@
Def_GiveMoney_Warehouse, # 仓库
Def_GiveMoney_SellPackItem, # 出售背包物品
Def_GiveMoney_CollectNPC, # 采集NPC
-Def_GiveMoney_HighLadder, # 天梯竞技场 20
+Def_GiveMoney_20,
Def_GiveMoney_StallItem, # 摆摊
Def_GiveMoney_Trade, # 交易
Def_GiveMoney_Truck, # 运镖
diff --git a/ServerPython/CoreServerGroup/GameServer/Script/ChGameToMapPyPack.py b/ServerPython/CoreServerGroup/GameServer/Script/ChGameToMapPyPack.py
index 2b3a2db..2f08604 100644
--- a/ServerPython/CoreServerGroup/GameServer/Script/ChGameToMapPyPack.py
+++ b/ServerPython/CoreServerGroup/GameServer/Script/ChGameToMapPyPack.py
@@ -610,84 +610,6 @@
#------------------------------------------------------
-#03 01 天梯竞技场玩家挑战结果同步#tagGMHighLadderChallengeReuslt
-
-class tagGMHighLadderChallengeReuslt(Structure):
- Head = tagHead()
- PlayerID = 0 #(DWORD PlayerID)//玩家ID
- Result = 0 #(BYTE Result)//结果
- PlusInfoSize = 0 #(WORD PlusInfoSize)
- PlusInfo = "" #(String PlusInfo)//附带信息
- data = None
-
- def __init__(self):
- self.Clear()
- self.Head.Cmd = 0x03
- self.Head.SubCmd = 0x01
- return
-
- def ReadData(self, _lpData, _pos=0, _Len=0):
- self.Clear()
- _pos = self.Head.ReadData(_lpData, _pos)
- self.PlayerID,_pos = CommFunc.ReadDWORD(_lpData, _pos)
- self.Result,_pos = CommFunc.ReadBYTE(_lpData, _pos)
- self.PlusInfoSize,_pos = CommFunc.ReadWORD(_lpData, _pos)
- self.PlusInfo,_pos = CommFunc.ReadString(_lpData, _pos,self.PlusInfoSize)
- return _pos
-
- def Clear(self):
- self.Head = tagHead()
- self.Head.Clear()
- self.Head.Cmd = 0x03
- self.Head.SubCmd = 0x01
- self.PlayerID = 0
- self.Result = 0
- self.PlusInfoSize = 0
- self.PlusInfo = ""
- return
-
- def GetLength(self):
- length = 0
- length += self.Head.GetLength()
- length += 4
- length += 1
- length += 2
- length += len(self.PlusInfo)
-
- return length
-
- def GetBuffer(self):
- data = ''
- data = CommFunc.WriteString(data, self.Head.GetLength(), self.Head.GetBuffer())
- data = CommFunc.WriteDWORD(data, self.PlayerID)
- data = CommFunc.WriteBYTE(data, self.Result)
- data = CommFunc.WriteWORD(data, self.PlusInfoSize)
- data = CommFunc.WriteString(data, self.PlusInfoSize, self.PlusInfo)
- return data
-
- def OutputString(self):
- DumpString = '''
- Head:%s,
- PlayerID:%d,
- Result:%d,
- PlusInfoSize:%d,
- PlusInfo:%s
- '''\
- %(
- self.Head.OutputString(),
- self.PlayerID,
- self.Result,
- self.PlusInfoSize,
- self.PlusInfo
- )
- return DumpString
-
-
-m_NAtagGMHighLadderChallengeReuslt=tagGMHighLadderChallengeReuslt()
-ChNetPackDict[eval("0x%02x%02x"%(m_NAtagGMHighLadderChallengeReuslt.Head.Cmd,m_NAtagGMHighLadderChallengeReuslt.Head.SubCmd))] = m_NAtagGMHighLadderChallengeReuslt
-
-
-#------------------------------------------------------
#02 01 查询玩家是否可以添加交易所物品结果#tagGMCheckAddPlayerBourseItemResult
class tagGMCheckAddPlayerBourseItemResult(Structure):
diff --git a/ServerPython/CoreServerGroup/GameServer/Script/ChMapToGamePyPack.py b/ServerPython/CoreServerGroup/GameServer/Script/ChMapToGamePyPack.py
index 741718a..a228069 100644
--- a/ServerPython/CoreServerGroup/GameServer/Script/ChMapToGamePyPack.py
+++ b/ServerPython/CoreServerGroup/GameServer/Script/ChMapToGamePyPack.py
@@ -672,7 +672,6 @@
PlusDataSize = 0 #(DWORD PlusDataSize)
PlusData = "" #(String PlusData)//扩展记录
IsLogouting = 0 #(BYTE IsLogouting)//本次是否为下线同步
- OffTime = 0 #(DWORD OffTime)// 下线时间戳
data = None
def __init__(self):
@@ -693,7 +692,6 @@
self.PlusDataSize,_pos = CommFunc.ReadDWORD(_lpData, _pos)
self.PlusData,_pos = CommFunc.ReadString(_lpData, _pos,self.PlusDataSize)
self.IsLogouting,_pos = CommFunc.ReadBYTE(_lpData, _pos)
- self.OffTime,_pos = CommFunc.ReadDWORD(_lpData, _pos)
return _pos
def Clear(self):
@@ -710,7 +708,6 @@
self.PlusDataSize = 0
self.PlusData = ""
self.IsLogouting = 0
- self.OffTime = 0
return
def GetLength(self):
@@ -725,7 +722,6 @@
length += 4
length += len(self.PlusData)
length += 1
- length += 4
return length
@@ -741,7 +737,6 @@
data = CommFunc.WriteDWORD(data, self.PlusDataSize)
data = CommFunc.WriteString(data, self.PlusDataSize, self.PlusData)
data = CommFunc.WriteBYTE(data, self.IsLogouting)
- data = CommFunc.WriteDWORD(data, self.OffTime)
return data
def OutputString(self):
@@ -755,8 +750,7 @@
ItemData:%s,
PlusDataSize:%d,
PlusData:%s,
- IsLogouting:%d,
- OffTime:%d
+ IsLogouting:%d
'''\
%(
self.Head.OutputString(),
@@ -768,8 +762,7 @@
self.ItemData,
self.PlusDataSize,
self.PlusData,
- self.IsLogouting,
- self.OffTime
+ self.IsLogouting
)
return DumpString
@@ -844,421 +837,6 @@
m_NAtagMGAddFamilyDetail=tagMGAddFamilyDetail()
ChNetPackDict[eval("0x%02x%02x"%(m_NAtagMGAddFamilyDetail.Cmd,m_NAtagMGAddFamilyDetail.SubCmd))] = m_NAtagMGAddFamilyDetail
-
-
-#------------------------------------------------------
-#03 02 天梯竞技场玩家发起挑战#tagMGHighLadderChallenge
-
-class tagHightLadderItemInfo(Structure):
- ItemTypeID = 0 #(DWORD ItemTypeID)//物品ID
- ItemPlaceType = 0 #(BYTE ItemPlaceType)//物品位置的背包类型
- ItemPlaceIndex = 0 #(BYTE ItemPlaceIndex)//物品所在的索引
- Count = 0 #(WORD Count)//单组数量
- ItemStarLV = 0 #(BYTE ItemStarLV)//装备星级
- IdentifyPar = 0 #(BYTE IdentifyPar)//鉴定参数
- CurDurg = 0 #(DWORD CurDurg)//当前耐久
- MaxDurg = 0 #(DWORD MaxDurg)//最大耐久
- CanPlaceStoneCount = 0 #(BYTE CanPlaceStoneCount)//可镶嵌宝石数0表示不可以镶嵌宝石
- ItemProperty = 0 #(BYTE ItemProperty)//装备五行
- SoulProperty = 0 #(WORD SoulProperty)//灵魂属性属性
- Maker = 0 #(DWORD Maker)//制作者ID
- MakerName = "" #(char MakerName[33])//制造者名字
- Stone1 = 0 #(DWORD Stone1)//镶嵌宝石1
- Stone2 = 0 #(DWORD Stone2)//镶嵌宝石
- Stone3 = 0 #(DWORD Stone3)//镶嵌宝石
- Stone4 = 0 #(DWORD Stone4)//镶嵌宝石
- Stone5 = 0 #(DWORD Stone5)//镶嵌宝石
- Stone6 = 0 #(DWORD Stone6)//镶嵌宝石
- Stone7 = 0 #(DWORD Stone7)//镶嵌宝石
- Stone8 = 0 #(DWORD Stone8)//镶嵌宝石
- Stone9 = 0 #(DWORD Stone9)//镶嵌宝石
- IsRenZhu = 0 #(BYTE IsRenZhu)//是否认主
- EquipDefenseValue = 0 #(DWORD EquipDefenseValue)//用于记录装备的防御值
- EquipMinAtkValue = 0 #(DWORD EquipMinAtkValue)//用于记录装备的最小伤害值
- EquipMaxAtkValue = 0 #(DWORD EquipMaxAtkValue)//用于记录装备的最大伤害值
- UserDataLen = 0 #(DWORD UserDataLen)
- UserData = "" #(String UserData)//自定义数据
- FitLV = 0 #(BYTE FitLV)//物品契合等级
- Proficiency = 0 #(DWORD Proficiency)//熟练度
- IsSuite = 0 #(BYTE IsSuite)//是否已经套装化
- BaseHP = 0 #(DWORD BaseHP)// HP基础值
- BaseMagicDef = 0 #(DWORD BaseMagicDef)//内防基础值
- MaxAddSkillCnt = 0 #(BYTE MaxAddSkillCnt)// 最大附魔次数
- PetID = 0 #(DWORD PetID)//装备该装备的宠物ID,为0则未装备
- EquipMagicDefValue = 0 #(DWORD EquipMagicDefValue)//装备内防值
- EquipMinMagicAtkValue = 0 #(DWORD EquipMinMagicAtkValue)//装备最小内攻
- EquipMaxMagicAtkValue = 0 #(DWORD EquipMaxMagicAtkValue)//装备最大内攻
- data = None
-
- def __init__(self):
- self.Clear()
- return
-
- def ReadData(self, _lpData, _pos=0, _Len=0):
- self.Clear()
- self.ItemTypeID,_pos = CommFunc.ReadDWORD(_lpData, _pos)
- self.ItemPlaceType,_pos = CommFunc.ReadBYTE(_lpData, _pos)
- self.ItemPlaceIndex,_pos = CommFunc.ReadBYTE(_lpData, _pos)
- self.Count,_pos = CommFunc.ReadWORD(_lpData, _pos)
- self.ItemStarLV,_pos = CommFunc.ReadBYTE(_lpData, _pos)
- self.IdentifyPar,_pos = CommFunc.ReadBYTE(_lpData, _pos)
- self.CurDurg,_pos = CommFunc.ReadDWORD(_lpData, _pos)
- self.MaxDurg,_pos = CommFunc.ReadDWORD(_lpData, _pos)
- self.CanPlaceStoneCount,_pos = CommFunc.ReadBYTE(_lpData, _pos)
- self.ItemProperty,_pos = CommFunc.ReadBYTE(_lpData, _pos)
- self.SoulProperty,_pos = CommFunc.ReadWORD(_lpData, _pos)
- self.Maker,_pos = CommFunc.ReadDWORD(_lpData, _pos)
- self.MakerName,_pos = CommFunc.ReadString(_lpData, _pos,33)
- self.Stone1,_pos = CommFunc.ReadDWORD(_lpData, _pos)
- self.Stone2,_pos = CommFunc.ReadDWORD(_lpData, _pos)
- self.Stone3,_pos = CommFunc.ReadDWORD(_lpData, _pos)
- self.Stone4,_pos = CommFunc.ReadDWORD(_lpData, _pos)
- self.Stone5,_pos = CommFunc.ReadDWORD(_lpData, _pos)
- self.Stone6,_pos = CommFunc.ReadDWORD(_lpData, _pos)
- self.Stone7,_pos = CommFunc.ReadDWORD(_lpData, _pos)
- self.Stone8,_pos = CommFunc.ReadDWORD(_lpData, _pos)
- self.Stone9,_pos = CommFunc.ReadDWORD(_lpData, _pos)
- self.IsRenZhu,_pos = CommFunc.ReadBYTE(_lpData, _pos)
- self.EquipDefenseValue,_pos = CommFunc.ReadDWORD(_lpData, _pos)
- self.EquipMinAtkValue,_pos = CommFunc.ReadDWORD(_lpData, _pos)
- self.EquipMaxAtkValue,_pos = CommFunc.ReadDWORD(_lpData, _pos)
- self.UserDataLen,_pos = CommFunc.ReadDWORD(_lpData, _pos)
- self.UserData,_pos = CommFunc.ReadString(_lpData, _pos,self.UserDataLen)
- self.FitLV,_pos = CommFunc.ReadBYTE(_lpData, _pos)
- self.Proficiency,_pos = CommFunc.ReadDWORD(_lpData, _pos)
- self.IsSuite,_pos = CommFunc.ReadBYTE(_lpData, _pos)
- self.BaseHP,_pos = CommFunc.ReadDWORD(_lpData, _pos)
- self.BaseMagicDef,_pos = CommFunc.ReadDWORD(_lpData, _pos)
- self.MaxAddSkillCnt,_pos = CommFunc.ReadBYTE(_lpData, _pos)
- self.PetID,_pos = CommFunc.ReadDWORD(_lpData, _pos)
- self.EquipMagicDefValue,_pos = CommFunc.ReadDWORD(_lpData, _pos)
- self.EquipMinMagicAtkValue,_pos = CommFunc.ReadDWORD(_lpData, _pos)
- self.EquipMaxMagicAtkValue,_pos = CommFunc.ReadDWORD(_lpData, _pos)
- return _pos
-
- def Clear(self):
- self.ItemTypeID = 0
- self.ItemPlaceType = 0
- self.ItemPlaceIndex = 0
- self.Count = 0
- self.ItemStarLV = 0
- self.IdentifyPar = 0
- self.CurDurg = 0
- self.MaxDurg = 0
- self.CanPlaceStoneCount = 0
- self.ItemProperty = 0
- self.SoulProperty = 0
- self.Maker = 0
- self.MakerName = ""
- self.Stone1 = 0
- self.Stone2 = 0
- self.Stone3 = 0
- self.Stone4 = 0
- self.Stone5 = 0
- self.Stone6 = 0
- self.Stone7 = 0
- self.Stone8 = 0
- self.Stone9 = 0
- self.IsRenZhu = 0
- self.EquipDefenseValue = 0
- self.EquipMinAtkValue = 0
- self.EquipMaxAtkValue = 0
- self.UserDataLen = 0
- self.UserData = ""
- self.FitLV = 0
- self.Proficiency = 0
- self.IsSuite = 0
- self.BaseHP = 0
- self.BaseMagicDef = 0
- self.MaxAddSkillCnt = 0
- self.PetID = 0
- self.EquipMagicDefValue = 0
- self.EquipMinMagicAtkValue = 0
- self.EquipMaxMagicAtkValue = 0
- return
-
- def GetLength(self):
- length = 0
- length += 4
- length += 1
- length += 1
- length += 2
- length += 1
- length += 1
- length += 4
- length += 4
- length += 1
- length += 1
- length += 2
- length += 4
- length += 33
- length += 4
- length += 4
- length += 4
- length += 4
- length += 4
- length += 4
- length += 4
- length += 4
- length += 4
- length += 1
- length += 4
- length += 4
- length += 4
- length += 4
- length += len(self.UserData)
- length += 1
- length += 4
- length += 1
- length += 4
- length += 4
- length += 1
- length += 4
- length += 4
- length += 4
- length += 4
-
- return length
-
- def GetBuffer(self):
- data = ''
- data = CommFunc.WriteDWORD(data, self.ItemTypeID)
- data = CommFunc.WriteBYTE(data, self.ItemPlaceType)
- data = CommFunc.WriteBYTE(data, self.ItemPlaceIndex)
- data = CommFunc.WriteWORD(data, self.Count)
- data = CommFunc.WriteBYTE(data, self.ItemStarLV)
- data = CommFunc.WriteBYTE(data, self.IdentifyPar)
- data = CommFunc.WriteDWORD(data, self.CurDurg)
- data = CommFunc.WriteDWORD(data, self.MaxDurg)
- data = CommFunc.WriteBYTE(data, self.CanPlaceStoneCount)
- data = CommFunc.WriteBYTE(data, self.ItemProperty)
- data = CommFunc.WriteWORD(data, self.SoulProperty)
- data = CommFunc.WriteDWORD(data, self.Maker)
- data = CommFunc.WriteString(data, 33, self.MakerName)
- data = CommFunc.WriteDWORD(data, self.Stone1)
- data = CommFunc.WriteDWORD(data, self.Stone2)
- data = CommFunc.WriteDWORD(data, self.Stone3)
- data = CommFunc.WriteDWORD(data, self.Stone4)
- data = CommFunc.WriteDWORD(data, self.Stone5)
- data = CommFunc.WriteDWORD(data, self.Stone6)
- data = CommFunc.WriteDWORD(data, self.Stone7)
- data = CommFunc.WriteDWORD(data, self.Stone8)
- data = CommFunc.WriteDWORD(data, self.Stone9)
- data = CommFunc.WriteBYTE(data, self.IsRenZhu)
- data = CommFunc.WriteDWORD(data, self.EquipDefenseValue)
- data = CommFunc.WriteDWORD(data, self.EquipMinAtkValue)
- data = CommFunc.WriteDWORD(data, self.EquipMaxAtkValue)
- data = CommFunc.WriteDWORD(data, self.UserDataLen)
- data = CommFunc.WriteString(data, self.UserDataLen, self.UserData)
- data = CommFunc.WriteBYTE(data, self.FitLV)
- data = CommFunc.WriteDWORD(data, self.Proficiency)
- data = CommFunc.WriteBYTE(data, self.IsSuite)
- data = CommFunc.WriteDWORD(data, self.BaseHP)
- data = CommFunc.WriteDWORD(data, self.BaseMagicDef)
- data = CommFunc.WriteBYTE(data, self.MaxAddSkillCnt)
- data = CommFunc.WriteDWORD(data, self.PetID)
- data = CommFunc.WriteDWORD(data, self.EquipMagicDefValue)
- data = CommFunc.WriteDWORD(data, self.EquipMinMagicAtkValue)
- data = CommFunc.WriteDWORD(data, self.EquipMaxMagicAtkValue)
- return data
-
- def OutputString(self):
- DumpString = '''
- ItemTypeID:%d,
- ItemPlaceType:%d,
- ItemPlaceIndex:%d,
- Count:%d,
- ItemStarLV:%d,
- IdentifyPar:%d,
- CurDurg:%d,
- MaxDurg:%d,
- CanPlaceStoneCount:%d,
- ItemProperty:%d,
- SoulProperty:%d,
- Maker:%d,
- MakerName:%s,
- Stone1:%d,
- Stone2:%d,
- Stone3:%d,
- Stone4:%d,
- Stone5:%d,
- Stone6:%d,
- Stone7:%d,
- Stone8:%d,
- Stone9:%d,
- IsRenZhu:%d,
- EquipDefenseValue:%d,
- EquipMinAtkValue:%d,
- EquipMaxAtkValue:%d,
- UserDataLen:%d,
- UserData:%s,
- FitLV:%d,
- Proficiency:%d,
- IsSuite:%d,
- BaseHP:%d,
- BaseMagicDef:%d,
- MaxAddSkillCnt:%d,
- PetID:%d,
- EquipMagicDefValue:%d,
- EquipMinMagicAtkValue:%d,
- EquipMaxMagicAtkValue:%d
- '''\
- %(
- self.ItemTypeID,
- self.ItemPlaceType,
- self.ItemPlaceIndex,
- self.Count,
- self.ItemStarLV,
- self.IdentifyPar,
- self.CurDurg,
- self.MaxDurg,
- self.CanPlaceStoneCount,
- self.ItemProperty,
- self.SoulProperty,
- self.Maker,
- self.MakerName,
- self.Stone1,
- self.Stone2,
- self.Stone3,
- self.Stone4,
- self.Stone5,
- self.Stone6,
- self.Stone7,
- self.Stone8,
- self.Stone9,
- self.IsRenZhu,
- self.EquipDefenseValue,
- self.EquipMinAtkValue,
- self.EquipMaxAtkValue,
- self.UserDataLen,
- self.UserData,
- self.FitLV,
- self.Proficiency,
- self.IsSuite,
- self.BaseHP,
- self.BaseMagicDef,
- self.MaxAddSkillCnt,
- self.PetID,
- self.EquipMagicDefValue,
- self.EquipMinMagicAtkValue,
- self.EquipMaxMagicAtkValue
- )
- return DumpString
-
-
-class tagMGHighLadderChallenge(Structure):
- Head = tagHead()
- PlayerID = 0 #(DWORD PlayerID)//玩家ID
- PlayerName = "" #(char PlayerName[33])
- PlayerLV = 0 #(WORD PlayerLV)
- FightPower = 0 #(DWORD FightPower)
- FightPropertyDataLen = 0 #(DWORD FightPropertyDataLen)
- FightPropertyData = "" #(String FightPropertyData)//Python自定义数据
- EquipCount = 0 #(BYTE EquipCount)
- EquipList = list() #(vector<tagHightLadderItemInfo> EquipList)//装备信息列表
- VSOrder = 0 #(WORD VSOrder)//要挑战的排位
- data = None
-
- def __init__(self):
- self.Clear()
- self.Head.Cmd = 0x03
- self.Head.SubCmd = 0x02
- return
-
- def ReadData(self, _lpData, _pos=0, _Len=0):
- self.Clear()
- _pos = self.Head.ReadData(_lpData, _pos)
- self.PlayerID,_pos = CommFunc.ReadDWORD(_lpData, _pos)
- self.PlayerName,_pos = CommFunc.ReadString(_lpData, _pos,33)
- self.PlayerLV,_pos = CommFunc.ReadWORD(_lpData, _pos)
- self.FightPower,_pos = CommFunc.ReadDWORD(_lpData, _pos)
- self.FightPropertyDataLen,_pos = CommFunc.ReadDWORD(_lpData, _pos)
- self.FightPropertyData,_pos = CommFunc.ReadString(_lpData, _pos,self.FightPropertyDataLen)
- self.EquipCount,_pos = CommFunc.ReadBYTE(_lpData, _pos)
- for i in range(self.EquipCount):
- temEquipList = tagHightLadderItemInfo()
- _pos = temEquipList.ReadData(_lpData, _pos)
- self.EquipList.append(temEquipList)
- self.VSOrder,_pos = CommFunc.ReadWORD(_lpData, _pos)
- return _pos
-
- def Clear(self):
- self.Head = tagHead()
- self.Head.Clear()
- self.Head.Cmd = 0x03
- self.Head.SubCmd = 0x02
- self.PlayerID = 0
- self.PlayerName = ""
- self.PlayerLV = 0
- self.FightPower = 0
- self.FightPropertyDataLen = 0
- self.FightPropertyData = ""
- self.EquipCount = 0
- self.EquipList = list()
- self.VSOrder = 0
- return
-
- def GetLength(self):
- length = 0
- length += self.Head.GetLength()
- length += 4
- length += 33
- length += 2
- length += 4
- length += 4
- length += len(self.FightPropertyData)
- length += 1
- for i in range(self.EquipCount):
- length += self.EquipList[i].GetLength()
- length += 2
-
- return length
-
- def GetBuffer(self):
- data = ''
- data = CommFunc.WriteString(data, self.Head.GetLength(), self.Head.GetBuffer())
- data = CommFunc.WriteDWORD(data, self.PlayerID)
- data = CommFunc.WriteString(data, 33, self.PlayerName)
- data = CommFunc.WriteWORD(data, self.PlayerLV)
- data = CommFunc.WriteDWORD(data, self.FightPower)
- data = CommFunc.WriteDWORD(data, self.FightPropertyDataLen)
- data = CommFunc.WriteString(data, self.FightPropertyDataLen, self.FightPropertyData)
- data = CommFunc.WriteBYTE(data, self.EquipCount)
- for i in range(self.EquipCount):
- data = CommFunc.WriteString(data, self.EquipList[i].GetLength(), self.EquipList[i].GetBuffer())
- data = CommFunc.WriteWORD(data, self.VSOrder)
- return data
-
- def OutputString(self):
- DumpString = '''
- Head:%s,
- PlayerID:%d,
- PlayerName:%s,
- PlayerLV:%d,
- FightPower:%d,
- FightPropertyDataLen:%d,
- FightPropertyData:%s,
- EquipCount:%d,
- EquipList:%s,
- VSOrder:%d
- '''\
- %(
- self.Head.OutputString(),
- self.PlayerID,
- self.PlayerName,
- self.PlayerLV,
- self.FightPower,
- self.FightPropertyDataLen,
- self.FightPropertyData,
- self.EquipCount,
- "...",
- self.VSOrder
- )
- return DumpString
-
-
-m_NAtagMGHighLadderChallenge=tagMGHighLadderChallenge()
-ChNetPackDict[eval("0x%02x%02x"%(m_NAtagMGHighLadderChallenge.Head.Cmd,m_NAtagMGHighLadderChallenge.Head.SubCmd))] = m_NAtagMGHighLadderChallenge
#------------------------------------------------------
diff --git a/ServerPython/CoreServerGroup/GameServer/Script/ChPyNetPack.py b/ServerPython/CoreServerGroup/GameServer/Script/ChPyNetPack.py
index d98f0e4..1886fdd 100644
--- a/ServerPython/CoreServerGroup/GameServer/Script/ChPyNetPack.py
+++ b/ServerPython/CoreServerGroup/GameServer/Script/ChPyNetPack.py
@@ -8274,106 +8274,6 @@
#------------------------------------------------------
-#A5 36 天梯清除挑战CD#tagCMHighLadderClearCD
-
-class tagCMHighLadderClearCD(Structure):
- _pack_ = 1
- _fields_ = [
- ("Cmd", c_ubyte),
- ("SubCmd", c_ubyte),
- ]
-
- def __init__(self):
- self.Clear()
- self.Cmd = 0xA5
- self.SubCmd = 0x36
- 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 = 0x36
- return
-
- def GetLength(self):
- return sizeof(tagCMHighLadderClearCD)
-
- def GetBuffer(self):
- return string_at(addressof(self), self.GetLength())
-
- def OutputString(self):
- DumpString = '''//A5 36 天梯清除挑战CD//tagCMHighLadderClearCD:
- Cmd:%s,
- SubCmd:%s
- '''\
- %(
- self.Cmd,
- self.SubCmd
- )
- return DumpString
-
-
-m_NAtagCMHighLadderClearCD=tagCMHighLadderClearCD()
-ChNetPackDict[eval("0x%02x%02x"%(m_NAtagCMHighLadderClearCD.Cmd,m_NAtagCMHighLadderClearCD.SubCmd))] = m_NAtagCMHighLadderClearCD
-
-
-#------------------------------------------------------
-#A5 35 查询天梯竞技场奖励#tagCMQueryHighLadderReward
-
-class tagCMQueryHighLadderReward(Structure):
- _pack_ = 1
- _fields_ = [
- ("Cmd", c_ubyte),
- ("SubCmd", c_ubyte),
- ("Type", c_ubyte), #0,查询 1,领取
- ]
-
- def __init__(self):
- self.Clear()
- self.Cmd = 0xA5
- self.SubCmd = 0x35
- 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 = 0x35
- self.Type = 0
- return
-
- def GetLength(self):
- return sizeof(tagCMQueryHighLadderReward)
-
- def GetBuffer(self):
- return string_at(addressof(self), self.GetLength())
-
- def OutputString(self):
- DumpString = '''//A5 35 查询天梯竞技场奖励//tagCMQueryHighLadderReward:
- Cmd:%s,
- SubCmd:%s,
- Type:%d
- '''\
- %(
- self.Cmd,
- self.SubCmd,
- self.Type
- )
- return DumpString
-
-
-m_NAtagCMQueryHighLadderReward=tagCMQueryHighLadderReward()
-ChNetPackDict[eval("0x%02x%02x"%(m_NAtagCMQueryHighLadderReward.Cmd,m_NAtagCMQueryHighLadderReward.SubCmd))] = m_NAtagCMQueryHighLadderReward
-
-
-#------------------------------------------------------
#A5 3B 请求领取补偿#tagCMRequestCompensation
class tagCMRequestCompensation(Structure):
@@ -9939,54 +9839,6 @@
#------------------------------------------------------
-#A5 37 天梯增加挑战次数#tagCMHighLadderAddCount
-
-class tagCMHighLadderAddCount(Structure):
- _pack_ = 1
- _fields_ = [
- ("Cmd", c_ubyte),
- ("SubCmd", c_ubyte),
- ]
-
- def __init__(self):
- self.Clear()
- self.Cmd = 0xA5
- self.SubCmd = 0x37
- 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 = 0x37
- return
-
- def GetLength(self):
- return sizeof(tagCMHighLadderAddCount)
-
- def GetBuffer(self):
- return string_at(addressof(self), self.GetLength())
-
- def OutputString(self):
- DumpString = '''//A5 37 天梯增加挑战次数//tagCMHighLadderAddCount:
- Cmd:%s,
- SubCmd:%s
- '''\
- %(
- self.Cmd,
- self.SubCmd
- )
- return DumpString
-
-
-m_NAtagCMHighLadderAddCount=tagCMHighLadderAddCount()
-ChNetPackDict[eval("0x%02x%02x"%(m_NAtagCMHighLadderAddCount.Cmd,m_NAtagCMHighLadderAddCount.SubCmd))] = m_NAtagCMHighLadderAddCount
-
-
-#------------------------------------------------------
# A5 27 坐骑提升 #tagCMHorseUp
class tagCMHorseUp(Structure):
@@ -10482,54 +10334,6 @@
m_NAtagCMPrayElixir=tagCMPrayElixir()
ChNetPackDict[eval("0x%02x%02x"%(m_NAtagCMPrayElixir.Cmd,m_NAtagCMPrayElixir.SubCmd))] = m_NAtagCMPrayElixir
-
-
-#------------------------------------------------------
-#A5 34 查询天梯竞技场状态#tagCMQueryHighLadderState
-
-class tagCMQueryHighLadderState(Structure):
- _pack_ = 1
- _fields_ = [
- ("Cmd", c_ubyte),
- ("SubCmd", c_ubyte),
- ]
-
- def __init__(self):
- self.Clear()
- self.Cmd = 0xA5
- self.SubCmd = 0x34
- 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 = 0x34
- return
-
- def GetLength(self):
- return sizeof(tagCMQueryHighLadderState)
-
- def GetBuffer(self):
- return string_at(addressof(self), self.GetLength())
-
- def OutputString(self):
- DumpString = '''//A5 34 查询天梯竞技场状态//tagCMQueryHighLadderState:
- Cmd:%s,
- SubCmd:%s
- '''\
- %(
- self.Cmd,
- self.SubCmd
- )
- return DumpString
-
-
-m_NAtagCMQueryHighLadderState=tagCMQueryHighLadderState()
-ChNetPackDict[eval("0x%02x%02x"%(m_NAtagCMQueryHighLadderState.Cmd,m_NAtagCMQueryHighLadderState.SubCmd))] = m_NAtagCMQueryHighLadderState
#------------------------------------------------------
diff --git a/ServerPython/CoreServerGroup/GameServer/Script/ChPyNetSendPack.py b/ServerPython/CoreServerGroup/GameServer/Script/ChPyNetSendPack.py
index dd7ae88..1e30bb9 100644
--- a/ServerPython/CoreServerGroup/GameServer/Script/ChPyNetSendPack.py
+++ b/ServerPython/CoreServerGroup/GameServer/Script/ChPyNetSendPack.py
@@ -3371,62 +3371,6 @@
#------------------------------------------------------
-#A9 05 天梯竞技场每日奖励信息#tagGCHighLadderRewardInfo
-
-class tagGCHighLadderRewardInfo(Structure):
- _pack_ = 1
- _fields_ = [
- ("Cmd", c_ubyte),
- ("SubCmd", c_ubyte),
- ("hadGot", c_ubyte), #是否已领取
- ("Order", c_ushort), #奖励排名
- ]
-
- def __init__(self):
- self.Clear()
- self.Cmd = 0xA9
- self.SubCmd = 0x05
- 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 = 0xA9
- self.SubCmd = 0x05
- self.hadGot = 0
- self.Order = 0
- return
-
- def GetLength(self):
- return sizeof(tagGCHighLadderRewardInfo)
-
- def GetBuffer(self):
- return string_at(addressof(self), self.GetLength())
-
- def OutputString(self):
- DumpString = '''//A9 05 天梯竞技场每日奖励信息//tagGCHighLadderRewardInfo:
- Cmd:%s,
- SubCmd:%s,
- hadGot:%d,
- Order:%d
- '''\
- %(
- self.Cmd,
- self.SubCmd,
- self.hadGot,
- self.Order
- )
- return DumpString
-
-
-m_NAtagGCHighLadderRewardInfo=tagGCHighLadderRewardInfo()
-ChNetPackDict[eval("0x%02x%02x"%(m_NAtagGCHighLadderRewardInfo.Cmd,m_NAtagGCHighLadderRewardInfo.SubCmd))] = m_NAtagGCHighLadderRewardInfo
-
-
-#------------------------------------------------------
#A9 03 开服活动奖励数量刷新#tagGCOpenServerCampaignAwardCount
class tagGCOpenServerCampaignAwardCount(Structure):
@@ -18178,74 +18122,6 @@
m_NAtagMCFamilyRedPacketGoldLimit=tagMCFamilyRedPacketGoldLimit()
ChNetPackDict[eval("0x%02x%02x"%(m_NAtagMCFamilyRedPacketGoldLimit.Cmd,m_NAtagMCFamilyRedPacketGoldLimit.SubCmd))] = m_NAtagMCFamilyRedPacketGoldLimit
-
-
-#------------------------------------------------------
-#A5 34 天梯竞技场状态#tagMCHighLadderState
-
-class tagMCHighLadderState(Structure):
- _pack_ = 1
- _fields_ = [
- ("Cmd", c_ubyte),
- ("SubCmd", c_ubyte),
- ("Count", c_ubyte), #已挑战次数
- ("MaxCount", c_ubyte), #最大次数
- ("CDTime", c_int), #累计冷却时间
- ("IsRelCD", c_ubyte), #是否正在真实冷却状态
- ("Currency", c_int), #积分
- ]
-
- def __init__(self):
- self.Clear()
- self.Cmd = 0xA5
- self.SubCmd = 0x34
- 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 = 0x34
- self.Count = 0
- self.MaxCount = 0
- self.CDTime = 0
- self.IsRelCD = 0
- self.Currency = 0
- return
-
- def GetLength(self):
- return sizeof(tagMCHighLadderState)
-
- def GetBuffer(self):
- return string_at(addressof(self), self.GetLength())
-
- def OutputString(self):
- DumpString = '''//A5 34 天梯竞技场状态//tagMCHighLadderState:
- Cmd:%s,
- SubCmd:%s,
- Count:%d,
- MaxCount:%d,
- CDTime:%d,
- IsRelCD:%d,
- Currency:%d
- '''\
- %(
- self.Cmd,
- self.SubCmd,
- self.Count,
- self.MaxCount,
- self.CDTime,
- self.IsRelCD,
- self.Currency
- )
- return DumpString
-
-
-m_NAtagMCHighLadderState=tagMCHighLadderState()
-ChNetPackDict[eval("0x%02x%02x"%(m_NAtagMCHighLadderState.Cmd,m_NAtagMCHighLadderState.SubCmd))] = m_NAtagMCHighLadderState
#------------------------------------------------------
diff --git a/ServerPython/CoreServerGroup/GameServer/Script/GM/Commands/ClearOpenServerDay.py b/ServerPython/CoreServerGroup/GameServer/Script/GM/Commands/ClearOpenServerDay.py
index 56b3847..c7e35b6 100644
--- a/ServerPython/CoreServerGroup/GameServer/Script/GM/Commands/ClearOpenServerDay.py
+++ b/ServerPython/CoreServerGroup/GameServer/Script/GM/Commands/ClearOpenServerDay.py
@@ -68,11 +68,6 @@
# 清除开服活动相关排行榜
for oscBillboardType in ShareDefine.Def_Campaign_Billboard_Dict.values():
PlayerBillboard.ClearBillboardByIndex(oscBillboardType)
-
- # 清除竞技场数据
-# GameWorld.GetHightLadderMgr().ClearAllPlayer()
-# HighLadder.Sync_HightLadderCanFightPlayer(curPlayer, curPlayer.GetPlayerID())
-# curPlayer.Sync_HightLadderTopPlayer(3)
# 清除Rec
delRecTypeList = []
diff --git a/ServerPython/CoreServerGroup/GameServer/Script/GameWorld.py b/ServerPython/CoreServerGroup/GameServer/Script/GameWorld.py
index fde64b6..34e6938 100644
--- a/ServerPython/CoreServerGroup/GameServer/Script/GameWorld.py
+++ b/ServerPython/CoreServerGroup/GameServer/Script/GameWorld.py
@@ -303,14 +303,6 @@
global GameWorldData
return GameWorldData.GetBourseManager()
-## 竞技场管理器
-# @param
-# @return HightLadderMgr
-# @remarks 函数详细说明.
-def GetHightLadderMgr():
- global GameWorldData
- return GameWorldData.GetHighLadderManager()
-
## GM工具补偿管理器
# @param
# @return HightLadderMgr
diff --git a/ServerPython/CoreServerGroup/GameServer/Script/GameWorldLogic/GameWorldProcess.py b/ServerPython/CoreServerGroup/GameServer/Script/GameWorldLogic/GameWorldProcess.py
index 811d666..e2e204c 100644
--- a/ServerPython/CoreServerGroup/GameServer/Script/GameWorldLogic/GameWorldProcess.py
+++ b/ServerPython/CoreServerGroup/GameServer/Script/GameWorldLogic/GameWorldProcess.py
@@ -85,7 +85,6 @@
import PlayerGeTui
#import PlayerManorWar
import GameWorldBoss
-#import HighLadder
import PlayerCompensation
import ReadChConfig
import EventReport
@@ -118,8 +117,6 @@
GameWorld.Log("GameServer -> OnHour!")
PlayerEventCounter.DoLogic_GameServer_OnHour(tick)
GameWorld.GetGameWorld().OnHour(curTimeStr)
- #每小时更新天梯
- #HighLadder.OnHour()
#设置存取数据库Key
__SetWorldKey_SavePlayer(curTimeStr)
#每小时清空宝物掉落
@@ -137,8 +134,6 @@
# @remarks 函数详细说明.
def OnDay(curTimeStr, tick):
GameWorld.Log("GameServer -> OnDay!")
- #天梯竞技场,放在排行榜更新之前处理
- #HighLadder.OnDay()
#排行榜拷贝昨日榜单
PlayerBillboard.CopyBillboardOnDay()
#开服活动,放在排行榜拷贝昨日榜更新后处理
diff --git a/ServerPython/CoreServerGroup/GameServer/Script/Player/ChPlayer.py b/ServerPython/CoreServerGroup/GameServer/Script/Player/ChPlayer.py
index 65927fc..7bc2557 100644
--- a/ServerPython/CoreServerGroup/GameServer/Script/Player/ChPlayer.py
+++ b/ServerPython/CoreServerGroup/GameServer/Script/Player/ChPlayer.py
@@ -222,9 +222,6 @@
if checkMark not in ShareDefine.BillboardTypeList:
continue
- if checkMark in [ShareDefine.Def_BT_HighLadder]:
- continue
-
billboard = GameWorld.GetBillboard().FindBillboard(checkMark)
if not billboard:
continue
@@ -243,11 +240,7 @@
objBillboard = billboard.At(index)
if curPlayer.GetID() == objBillboard.GetID():
msgMark = notifyDict[order]
- break
-# # 竞技场
-# elif checkMark == "HighLadder":
-# highLadderOrder = HighLadder.GetPlayerOrder(curPlayer.GetID()) + 1
-# msgMark = notifyDict.get(highLadderOrder, "")
+ break
# 有可以广播的,马上广播,退出,不再检查
if msgMark:
diff --git a/ServerPython/CoreServerGroup/GameServer/Script/Player/HighLadder.py b/ServerPython/CoreServerGroup/GameServer/Script/Player/HighLadder.py
deleted file mode 100644
index 0275ec1..0000000
--- a/ServerPython/CoreServerGroup/GameServer/Script/Player/HighLadder.py
+++ /dev/null
@@ -1,553 +0,0 @@
-#!/usr/bin/python
-# -*- coding: GBK -*-
-#
-#
-##@package HighLadder.py
-#
-# @todo:天梯竞技场GameServer
-#
-# @author xmnathan
-# @date 2010-01-01 10:00
-# @version 2.4
-# @note:
-# @change: "2014-08-08 10:30" xmnathan 天梯竞技场
-# @change: "2014-08-11 17:30" xmnathan 天梯竞技场默认可挑战排位列表
-# @change: "2014-08-11 18:30" xmnathan 天梯竞技场增加挑战前几名成功系统提示
-# @change: "2014-08-18 16:30" xmnathan 天梯竞技场增加挑战时排名变更系统提示
-# @change: "2014-08-19 14:30" xmnathan 天梯竞技场挑战列表随机选取
-# @change: "2014-08-21 09:39" xmnathan 天梯竞技场 排行榜ID ID2必须都存同一个值,封包发的是ID2
-# @change: "2014-09-09 16:40" xmnathan 天梯竞技场可挑战列表添加改成名次
-# @change: "2014-11-10 10:30" xmnathan PlayerBillboard统一拷贝排行榜昨日榜
-# @change: "2014-12-22 20:30" xmnathan 竞技场每日排行奖励查询防范
-# @change: "2015-01-14 20:30" hxp 增加根据挑战次数一定几率给物品
-# @change: "2015-07-13 10:30" ljd 排行榜加玩家平台参数Name2,平台信息取值
-# @change: "2016-10-27 16:00" hxp 获取可挑战名次列表逻辑优化
-# @change: "2016-11-07 21:40" xdh 预防报错
-# @change: "2016-12-13 21:00" xdh 增加JJC一次性排名奖励
-#------------------------------------------------------------------------------
-#"""Version = 2016-12-13 21:00"""
-#------------------------------------------------------------------------------
-
-import GameWorld
-import ShareDefine
-import IPY_GameServer
-import ReadChConfig
-import ChGameToMapPyPack
-import NetPackCommon
-import PlayerControl
-import PlayerBillboard
-import ChPyNetSendPack
-import random
-
-(
-Def_TopPlayer_Count, # 查看天梯顶级玩家列表的位数
-Def_StartOrder, # 天梯玩家默认起始位置(索引从0起)
-Def_CanFightCount, # 可挑战玩家显示个数
-Def_HighOrderAtleastCnt, # 可挑战的玩家至少需包含多少名自身排名后的玩家
-Def_MinOrder, # 天梯玩家进榜最低名次
-Def_Rec_Count, # 对战记录条数
-Def_CanFightOrderList, # 可直接挑战的排名
-) = range(7)
-
-def GetHighLadderCfg(index):
- hladderCfg = ReadChConfig.GetEvalChConfig("HighLadderDef")
- if index < 0 or index >= len(hladderCfg):
- return 0
- return hladderCfg[index]
-
-##//1A 11 天梯竞技场查询顶级玩家列表#tagCHightLadderTopPlayerQuery
-#struct tagCHightLadderTopPlayerQuery
-#{
-# tagHead Head;
-#};
-# @param index, tick
-# @return None
-def OnHightLadderTopPlayerQuery(index, tick):
- curPlayer = GameWorld.GetPlayerManager().GetPlayerByIndex(index)
- if not curPlayer:
- return
- curPlayer.Sync_HightLadderTopPlayer(GetHighLadderCfg(Def_TopPlayer_Count))
- return
-
-
-##//1A 12 天梯竞技场查询当前位置可挑战玩家列表#tagCHightLadderCanFightPlayerQuery
-#struct tagCHightLadderCanFightPlayerQuery
-#{
-# tagHead Head;
-# DWORD PlayerID;
-#};
-# @param index, tick
-# @return None
-def OnHightLadderCanFightPlayerQuery(index, tick):
- curPlayer = GameWorld.GetPlayerManager().GetPlayerByIndex(index)
- if not curPlayer:
- return
- recvPack = IPY_GameServer.IPY_CHightLadderCanFightPlayerQuery()
-
- PlayerID = recvPack.GetPlayerID()
- Sync_HightLadderCanFightPlayer(curPlayer, PlayerID)
- curPlayer.Sync_HighLadderPlayerVsRec()
- return
-##通知 天梯竞技场查询当前位置可挑战玩家列表
-# @param curPlayer, PlayerID
-# @return
-def Sync_HightLadderCanFightPlayer(curPlayer, PlayerID):
-
- myOrder = GetPlayerOrder(PlayerID)
- curPlayer.Begin_AddHightLadderCanFightPlayer(myOrder)
- #添加可对战玩家 ……
- highOrderList, lowOrderList = GetCanFightOrder(myOrder)
- highAtleastCnt = GetHighLadderCfg(Def_HighOrderAtleastCnt)
- canFightCnt = GetHighLadderCfg(Def_CanFightCount)
- randomList = []
- if highAtleastCnt:
- if highOrderList:
- randomList = random.sample(highOrderList, min(len(highOrderList), highAtleastCnt)) # 至少需包含的
- for order in randomList:
- highOrderList.remove(order) # 先把已选出来的移除,后面个数不够时还需要从中选择
-
- GameWorld.DebugLog("至少需包含的: highAtleastCnt=%s, randomList=%s, highOrderList=%s"
- % (highAtleastCnt, randomList, highOrderList))
-
- if lowOrderList:
- randomList += random.sample(lowOrderList, min(len(lowOrderList), max(0, canFightCnt - len(randomList)))) # 还需添加的
- GameWorld.DebugLog("随机添加lowOrderList: randomList=%s" % randomList)
-
- # 如果还不够
- if len(randomList) < canFightCnt:
- if highOrderList:
- randomList += random.sample(highOrderList, canFightCnt - len(randomList)) # 还需添加的
- GameWorld.DebugLog("还不够则添加之前的highOrderList: randomList=%s" % randomList)
-
- randomList.sort()
- GameWorld.DebugLog("最终随机挑战列表: myOrder=%s,randomList=%s" % (myOrder, randomList))
- for orderIndex in randomList:
- curPlayer.Add_HightLadderCanFightPlayer(orderIndex)
- curPlayer.Sync_HightLadderCanFightPlayer()
- return
-
-## 获取玩家当前名次
-# @param PlayerID
-# @return myOrder
-def GetPlayerOrder(PlayerID):
- myPlayerData = GameWorld.GetHightLadderMgr().FindPlayerData(PlayerID)
- myOrder = GetHighLadderCfg(Def_StartOrder)
- if myPlayerData:
- myOrder = myPlayerData.GetOrder()
- return myOrder
-
-## 根据规则获取可挑战排名列表
-# @param myOrder
-# @return None
-def GetCanFightOrder(myOrder):
- '''
- @todo: 根据玩家排名获取可挑战的玩家排名列表
- @param myOrder: 玩家名次
- @return: 可挑战的较高排名玩家列表, 可挑战的较低排名玩家列表
- @note:
- 名次越高实力越差, 第一名的名次为0
- '''
- HightLadderCanFightDict = ReadChConfig.GetEvalChConfig("HighLadderCanFight")
- #获取可挑战范围
- orderRange = GameWorld.GetDictValueByRangeKey(HightLadderCanFightDict, myOrder, [-10, 10])
- highOrder = max(0, min(myOrder - orderRange[0], GetHighLadderCfg(Def_MinOrder)))
- lowOrder = max(0, myOrder - orderRange[1])
-
- highOrderList = range(myOrder + 1, highOrder + 1)
- lowOrderList = range(lowOrder, myOrder)
-
- GameWorld.DebugLog("可挑战列表: myOrder=%s, highOrderList=%s, lowOrderList=%s"
- % (myOrder, highOrderList, lowOrderList))
- return highOrderList, lowOrderList
-
-##//03 02 天梯竞技场玩家发起挑战#tagMGHighLadderChallenge
-# @param routeIndex, mapID, curPackData, tick
-# @return None
-def OnMGHighLadderChallenge(routeIndex, mapID, curPackData, tick):
- GameWorld.DebugLog("HighLadder### OnMGHighLadderChallenge in")
- myPlayerID = curPackData.PlayerID
- curPlayer = GameWorld.GetPlayerManager().FindPlayerByID(myPlayerID)
- myOrder = GetPlayerOrder(myPlayerID)
- GameWorld.DebugLog("HighLadder### OnMGHighLadderChallenge in myOrder %s VSOrder %s"%(myOrder, curPackData.VSOrder))
- highOrderList, lowOrderList = GetCanFightOrder(myOrder)
- canFightOrderList = highOrderList + lowOrderList
- #校验 玩家能否挑战该排位 根据自身排位算出来的可挑战列表 默认配置的可挑战列表
- if(curPackData.VSOrder not in canFightOrderList) and (curPackData.VSOrder not in GetHighLadderCfg(Def_CanFightOrderList)):
- #您的位置已变更,请重新选择挑战的玩家
- Sync_HightLadderCanFightPlayer(curPlayer, myPlayerID)
- PlayerControl.NotifyCode(curPlayer, "Arena_liubo_807125")
- GameWorld.DebugLog("HighLadder### OnMGHighLadderChallenge canFightOrderList %s"%canFightOrderList)
- GameWorld.DebugLog("HighLadder### OnMGHighLadderChallenge out order err")
- return
- #战斗属性
- curFightPropertyDict = eval(curPackData.FightPropertyData)
- curFightPropertyDict["FightPower"] = curPackData.FightPower
- curVsFightPropertyDict = GetFightPropertyDictByOrder(curPackData.VSOrder)
-
- hadFightCnt = curFightPropertyDict["HadFightCnt"]
- awardItemList = __GetFightCntAwardItemList(hadFightCnt)
- GameWorld.DebugLog("OnMGHighLadderChallenge hadFightCnt=%s,awardItemList=%s"
- % (hadFightCnt, str(awardItemList)))
- historyMaxOrder = curFightPropertyDict["HistoryMaxOrder"]#历史最高排名默认1开始,0代表未记录过
- result = DoFight(curFightPropertyDict, curVsFightPropertyDict)
- #先通知对战结果
- curVsHightLadderPlayer = GameWorld.GetHightLadderMgr().FindPlayerDataByOrder(curPackData.VSOrder)
- curVsPlayerID = 0
- curVsPlayerName = ""
- # 附加信息
- PlusInfoDict = {}
- PlusInfoDict["Order"] = myOrder
- PlusInfoDict["VSOrder"] = curPackData.VSOrder
- PlusInfoDict["AwardItemList"] = awardItemList
- myNewOrder = min(myOrder, curPackData.VSOrder) if result else myOrder
- if historyMaxOrder == 0:
- upOrder = GetHighLadderCfg(Def_StartOrder) - myNewOrder
- else:
- upOrder = max(0, historyMaxOrder - 1 - myNewOrder) # 提升的排名
-
- newMaxOrder = (historyMaxOrder - upOrder) if historyMaxOrder else (myNewOrder + 1)
- PlusInfoDict["HistoryMaxOrder"] = newMaxOrder
- PlusInfoDict["upOrder"] = upOrder
- strPlusInfoDict = str(PlusInfoDict)
-
- if curVsHightLadderPlayer:
- curVsPlayerID = curVsHightLadderPlayer.GetPlayerID()
- curVsPlayerName = curVsHightLadderPlayer.GetPlayerName();
- curPlayer.Sync_HightLadderVSPlayerInfo(curVsPlayerID, result, strPlusInfoDict, len(strPlusInfoDict))
-
- GameWorld.DebugLog("HighLadder### OnMGHighLadderChallenge Send tagGMHighLadderChallengeReuslt")
- #发包到地图服务器给奖励
- sendPack = ChGameToMapPyPack.tagGMHighLadderChallengeReuslt()
- sendPack.PlayerID = myPlayerID
- sendPack.Result = result
- sendPack.PlusInfo = strPlusInfoDict
- sendPack.PlusInfoSize = len(strPlusInfoDict)
- NetPackCommon.SendPyPackToMapServer(routeIndex, mapID, sendPack)
- GameWorld.DebugLog("HighLadder### OnMGHighLadderChallenge Send tagGMHighLadderChallengeReuslt OK")
-
- #添加对战记录缓存
- GameWorld.GetHightLadderMgr().AddPlayerVsRec(myPlayerID, curVsPlayerID, curVsPlayerName, \
- myOrder, curPackData.VSOrder, 0, result)
- myRec = GameWorld.GetHightLadderMgr().GetPlayerVsRec(myPlayerID)
- #删除多余出来的条数
- DelUselessRec(myRec)
-
- curPlayer.Sync_HighLadderPlayerVsRec()
-
- if curVsPlayerID:#被挑战玩家也要记录 结果需要反过来 以被挑战者角度看
- GameWorld.GetHightLadderMgr().AddPlayerVsRec(curVsPlayerID, myPlayerID, curPackData.PlayerName, \
- curPackData.VSOrder, myOrder, 1, not result)
- vsRec = GameWorld.GetHightLadderMgr().GetPlayerVsRec(curVsPlayerID)
- DelUselessRec(vsRec)
-
- VsPlayer = GameWorld.GetPlayerManager().FindPlayerByID(curVsPlayerID)
- if VsPlayer:
- VsPlayer.Sync_HighLadderPlayerVsRec()
-
- GameWorld.DebugLog("HighLadder### OnMGHighLadderChallenge AddPlayerVsRec OK")
-
- #再同步数据
- if result: #获胜,需要替换位置,更新数据
- newOrder = curPackData.VSOrder
- WinMsgDict = ReadChConfig.GetEvalChConfig("HighLadderWinMsg")
- winMsg = WinMsgDict.get(newOrder, "")
- if myOrder > GetHighLadderCfg(Def_MinOrder): #排名之外进入排名
- GameWorld.GetHightLadderMgr().DelPlayerDataByOrder(newOrder)
- GameWorld.GetHightLadderMgr().AddPlayerData(myPlayerID, newOrder)
- if winMsg != "":
- PlayerControl.WorldNotify(0, winMsg, [curPlayer.GetName(), "%s"%(newOrder+1)])
- else:
- if curVsPlayerID: #交换玩家位置
- if newOrder < myOrder:
- GameWorld.GetHightLadderMgr().ExchangePlayerOrder(myPlayerID, curVsPlayerID)
- if winMsg != "":
- PlayerControl.WorldNotify(0, winMsg, [curPlayer.GetName(), "%s"%(newOrder+1)])
- else: #占据NPC位置
- if newOrder < myOrder:
- GameWorld.GetHightLadderMgr().AddPlayerData(myPlayerID, newOrder)
- if winMsg != "":
- PlayerControl.WorldNotify(0, winMsg, [curPlayer.GetName(), "%s"%(newOrder+1)])
- #更新玩家数据
- UpdataHightLadderPlayer(myPlayerID, curPackData)
- else:
- #失败,更新自身战斗属性,其余不变
- if myOrder > GetHighLadderCfg(Def_MinOrder): #排名之外未获胜不能进入进入排名
- GameWorld.DebugLog("HighLadder### OnMGHighLadderChallenge out Result 0")
- return
- #更新玩家数据
- UpdataHightLadderPlayer(myPlayerID, curPackData)
- GameWorld.DebugLog("HighLadder### OnMGHighLadderChallenge out Result %s"%result)
-
- return
-
-
-## 删除多余条数
-# @param
-# @return None
-def DelUselessRec(myRec):
- if not myRec:
- return
-
- delcnt = max(myRec.RecCount() - GetHighLadderCfg(Def_Rec_Count), 0)
- for i in range(delcnt):
- myRec.DelRec(0)
-
- return
-
-
-##根据挑战次数获取奖励物品
-# @param playerFightCnt 玩家已挑战次数
-# @return None
-def __GetFightCntAwardItemList(playerFightCnt):
- fightCntAwardDict = ReadChConfig.GetEvalChConfig("HighLadderFightCntAward")
- fightCntList = fightCntAwardDict.keys()
- fightCntList.sort()
-
- for fCnt in fightCntList:
-
- if playerFightCnt <= fCnt:
- happenRate, awardItemList = fightCntAwardDict[fCnt]
- if GameWorld.CanHappen(happenRate):
- return awardItemList
-
- return []
-
- return []
-
-##更新玩家数据
-# @param curPlayerID, infoPack
-# @return None
-def UpdataHightLadderPlayer(curPlayerID, infoPack):
- curHightLadderPlayer = GameWorld.GetHightLadderMgr().FindPlayerData(curPlayerID)
- #更新玩家数据
- curHightLadderPlayer.SetPlayerName(infoPack.PlayerName)
- curHightLadderPlayer.SetPlayerLV(infoPack.PlayerLV)
- curHightLadderPlayer.SetFightPower(infoPack.FightPower)
- curHightLadderPlayer.SetFightPropertyData(infoPack.FightPropertyData, infoPack.FightPropertyDataLen)
-
- #更新玩家装备数据
- curHightLadderPlayer.ClearPlayerEquipt()
- GameWorld.DebugLog("HighLadder### UpdataHightLadderPlayer EquipCount %s"%infoPack.EquipCount)
- for i in xrange(infoPack.EquipCount):
- curEquipInfo = infoPack.EquipList[i]
- curEquipData = IPY_GameServer.IpyHighLadderPlayerItem()
- curEquipData.ItemID = curEquipInfo.ItemTypeID
- curEquipData.ItemPlaceType = curEquipInfo.ItemPlaceType
- curEquipData.ItemPlaceIndex = curEquipInfo.ItemPlaceIndex
- curEquipData.Count = curEquipInfo.Count
- curEquipData.ItemStarLV = curEquipInfo.ItemStarLV
- curEquipData.IdentifyPar = curEquipInfo.IdentifyPar
- curEquipData.CurDurg = curEquipInfo.CurDurg
- curEquipData.MaxDurg = curEquipInfo.MaxDurg
- curEquipData.CanPlaceStoneCount = curEquipInfo.CanPlaceStoneCount
- curEquipData.ItemProperty = curEquipInfo.ItemProperty
- curEquipData.SoulProperty = curEquipInfo.SoulProperty
- curEquipData.Maker = curEquipInfo.Maker
- curEquipData.MakerName = curEquipInfo.MakerName
- curEquipData.Stone1 = curEquipInfo.Stone1
- curEquipData.Stone2 = curEquipInfo.Stone2
- curEquipData.Stone3 = curEquipInfo.Stone3
- curEquipData.Stone4 = curEquipInfo.Stone4
- curEquipData.Stone5 = curEquipInfo.Stone5
- curEquipData.Stone6 = curEquipInfo.Stone6
- curEquipData.Stone7 = curEquipInfo.Stone7
- curEquipData.Stone8 = curEquipInfo.Stone8
- curEquipData.Stone9 = curEquipInfo.Stone9
-# curEquipData.IsRenZhu = curEquipInfo.IsRenZhu
- curEquipData.EquipDefenseValue = curEquipInfo.EquipDefenseValue
- curEquipData.EquipMinAtkValue = curEquipInfo.EquipMinAtkValue
- curEquipData.EquipMaxAtkValue = curEquipInfo.EquipMaxAtkValue
- curEquipData.UserData = curEquipInfo.UserData
- curEquipData.FitLV = curEquipInfo.FitLV
- curEquipData.Proficiency = curEquipInfo.Proficiency
- curEquipData.IsSuite = curEquipInfo.IsSuite
- curEquipData.BaseHP = curEquipInfo.BaseHP
- curEquipData.BaseMagicDef = curEquipInfo.BaseMagicDef
- curEquipData.MaxAddSkillCnt = curEquipInfo.MaxAddSkillCnt
-# curEquipData.PetID = curEquipInfo.PetID
- curEquipData.EquipMagicDefValue = curEquipInfo.EquipMagicDefValue
- curEquipData.EquipMinMagicAtkValue = curEquipInfo.EquipMinMagicAtkValue
- curEquipData.EquipMaxMagicAtkValue = curEquipInfo.EquipMaxMagicAtkValue
- curHightLadderPlayer.AddEquipIpyData(curEquipData)
-
- #curHightLadderPlayer.DumpEquipData()
-
- return
-
-##获取指定玩家的战斗属性
-# @param orderIndex
-# @return None
-def GetFightPropertyDictByOrder(orderIndex):
- curVsFightPropertyDict = {}
- curVsPlayer = GameWorld.GetHightLadderMgr().FindPlayerDataByOrder(orderIndex)
- if not curVsPlayer:
- curVsFightPropertyDict = GetNPCFightPropertyByOrder(orderIndex)
- else:
- curVsFightPropertyDict = eval(curVsPlayer.GetFightPropertyData())
- curVsFightPropertyDict["FightPower"] = curVsPlayer.GetFightPower()
- return curVsFightPropertyDict
-
-##获取指定排位NPC的战斗属性
-# @param order
-# @return None
-def GetNPCFightPropertyByOrder(order):
- HighLadderNPCPropertyDict = ReadChConfig.GetEvalChConfig("HighLadderNPCProperty")
- curPropertyDict = {}
- curPropertyDict["Atk"] = eval(HighLadderNPCPropertyDict["Atk"])
- curPropertyDict["Def"] = eval(HighLadderNPCPropertyDict["Def"])
- curPropertyDict["MaxHP"] = eval(HighLadderNPCPropertyDict["MaxHP"])
- curPropertyDict["Hit"] = eval(HighLadderNPCPropertyDict["Hit"])
- curPropertyDict["Miss"] = eval(HighLadderNPCPropertyDict["Miss"])
- curPropertyDict["AtkSpeed"] = eval(HighLadderNPCPropertyDict["AtkSpeed"])
- curPropertyDict["GreatHitRate"] = eval(HighLadderNPCPropertyDict["GreatHitRate"])
- curPropertyDict["GreatHit"] = eval(HighLadderNPCPropertyDict["GreatHitRate"])
- curPropertyDict["LuckyHitRate"] = eval(HighLadderNPCPropertyDict["LuckyHitRate"])
- curPropertyDict["LuckyHit"] = eval(HighLadderNPCPropertyDict["LuckyHit"])
- curPropertyDict["SuperHitRate"] = eval(HighLadderNPCPropertyDict["SuperHitRate"])
- curPropertyDict["SuperHit"] = eval(HighLadderNPCPropertyDict["SuperHit"])
- curPropertyDict["IgnoreDefRate"] = eval(HighLadderNPCPropertyDict["IgnoreDefRate"])
- curPropertyDict["DamageReduceRate"] = eval(HighLadderNPCPropertyDict["DamageReduceRate"])
- curPropertyDict["FightPower"] = eval(HighLadderNPCPropertyDict["FightPower"])
- return curPropertyDict
-
-##执行对战 获取结果
-# @param curFightPropertyDict, curVsFightPropertyDict
-# @return None
-def DoFight(curFightPropertyDict, curVsFightPropertyDict):
- #战斗公式计算
- HighLadderFightFormula = ReadChConfig.GetChConfig("HighLadderFightFormula")
-
- Atk = curFightPropertyDict["Atk"]
- Def = curFightPropertyDict["Def"]
- MaxHP = curFightPropertyDict["MaxHP"]
- Hit = curFightPropertyDict["Hit"]
- Miss = curFightPropertyDict["Miss"]
- AtkSpeed = curFightPropertyDict["AtkSpeed"]
- GreatHitRate = curFightPropertyDict["GreatHitRate"]
- GreatHit = curFightPropertyDict["GreatHit"]
- LuckyHitRate = curFightPropertyDict["LuckyHitRate"]
- LuckyHit = curFightPropertyDict["LuckyHit"]
- SuperHitRate = curFightPropertyDict["SuperHitRate"]
- SuperHit = curFightPropertyDict["SuperHit"]
- IgnoreDefRate = curFightPropertyDict["IgnoreDefRate"]
- DamageReduceRate = curFightPropertyDict["DamageReduceRate"]
- FightPower = curFightPropertyDict["FightPower"]
- RandomRate = random.randint(0, 10000)
-
- VS_Atk = curVsFightPropertyDict["Atk"]
- VS_Def = curVsFightPropertyDict["Def"]
- VS_MaxHP = curVsFightPropertyDict["MaxHP"]
- VS_Hit = curVsFightPropertyDict["Hit"]
- VS_Miss = curVsFightPropertyDict["Miss"]
- VS_AtkSpeed = curVsFightPropertyDict["AtkSpeed"]
- VS_GreatHitRate = curVsFightPropertyDict["GreatHitRate"]
- VS_GreatHit = curVsFightPropertyDict["GreatHit"]
- VS_LuckyHitRate = curVsFightPropertyDict["LuckyHitRate"]
- VS_LuckyHit = curVsFightPropertyDict["LuckyHit"]
- VS_SuperHitRate = curVsFightPropertyDict["SuperHitRate"]
- VS_SuperHit = curVsFightPropertyDict["SuperHit"]
- VS_IgnoreDefRate = curVsFightPropertyDict["IgnoreDefRate"]
- VS_DamageReduceRate = curVsFightPropertyDict["DamageReduceRate"]
- VS_FightPower = curVsFightPropertyDict["FightPower"]
- VS_RandomRate = random.randint(0, 10000)
- return bool(eval(HighLadderFightFormula))
-
-###FightPropertyData附带属性
-# 玩家职业
-# 攻击
-# 防御
-# 生命
-# 命中
-# 闪避
-# 攻速
-# 卓越一击 倍率
-# 幸运一击 倍率
-# 暴击 倍率
-# 无视防御
-###
-
-## 过天处理
-# @param None
-# @return None
-def OnDay():
- #更新排行榜
- RefreshBillboard()
-# #更新竞技场昨日排行榜
-# PlayerBillboard.CopyBillboard(ShareDefine.Def_BT_HighLadder_Yester, ShareDefine.Def_BT_HighLadder)
- return
-
-## 每小时处理
-# @param None
-# @return None
-def OnHour():
- #更新排行榜
- RefreshBillboard()
- return
-
-## 刷新排行榜
-# @param None
-# @return None
-def RefreshBillboard():
- billboardType = ShareDefine.Def_BT_HighLadder
- PlayerBillboard.ClearBillboardByIndex(billboardType)
- billboardMgr = GameWorld.GetBillboard()
- billBoard = billboardMgr.FindBillboard(billboardType)
- highLadderMgr = GameWorld.GetHightLadderMgr()
- minOrder = GetHighLadderCfg(Def_MinOrder)
- for Order in xrange(minOrder):
- playerData = highLadderMgr.FindPlayerDataByOrder(Order)
- if not playerData:
- #playerID = Order + 1 #玩家ID是从10000,开始小于10000的都不是玩家,只是占位NPC
- continue
- playerID = playerData.GetPlayerID()
- billBoardData = billBoard.AddToBillboard(playerID)
- billBoardData.SetType(billboardType)
- #附属类型
- billBoardData.SetID(playerID)
- billBoardData.SetID2(playerID)
- billBoardData.SetName1(playerData.GetPlayerName())
- curFightPropertyDict = eval(playerData.GetFightPropertyData())
- billBoardData.SetName2(str(curFightPropertyDict.get("OperateInfo", 0)))
- #SetValue1存储空间为Word
- billBoardData.SetValue1(Order + 1) #用于显示的排名 需要+1
- #SetValue2存储空间为DWord
- billBoardData.SetValue2(playerData.GetFightPower())
- #比较用的值
- billBoardData.SetCmpValue(max(0, minOrder - Order + 1))
- billBoard.Sort()
- return
-
-
-## 地图查询奖励
-# @param curPlayer, msgList
-# @return None
-def MapServer_HighLadderReward(curPlayer, msgList):
- PlayerID = msgList[0]
- queryType = msgList[1] #0 查询 1 领取
- hadGot = msgList[2] #是否已经领取
- billboardMgr = GameWorld.GetBillboard()
- billBoardYester = billboardMgr.FindBillboard(ShareDefine.Def_BT_HighLadder_Yester)
- highLadderMgr = GameWorld.GetHightLadderMgr()
-
- order = GetPlayerOrder(PlayerID) #玩家当前排名
-
- if billBoardYester:#如果有昨日排行,则取昨日排行
- billBoardData = billBoardYester.FindByID(PlayerID)
- if billBoardData:
- order = billBoardData.GetValue1() - 1#用于排序,把显示用的排名值 -1
- else:
- order = GetHighLadderCfg(Def_StartOrder)
-
- if queryType == 0:#查询 直接通知玩家
-
- sendPack = ChPyNetSendPack.tagGCHighLadderRewardInfo()
- sendPack.hadGot = hadGot
- sendPack.Order = order
- if curPlayer:
- NetPackCommon.SendFakePack(curPlayer, sendPack)
- return False, "%s"%[PlayerID, hadGot, order]
- else: #领奖 需要通知到地图
- return True, "%s"%[PlayerID, hadGot, order]
-
-
-
diff --git a/ServerPython/CoreServerGroup/GameServer/Script/Player/PlayerBillboard.py b/ServerPython/CoreServerGroup/GameServer/Script/Player/PlayerBillboard.py
index 4758ca5..6423041 100644
--- a/ServerPython/CoreServerGroup/GameServer/Script/Player/PlayerBillboard.py
+++ b/ServerPython/CoreServerGroup/GameServer/Script/Player/PlayerBillboard.py
@@ -40,7 +40,6 @@
#需要每天拷贝昨日榜单的排行榜类型字典
Def_NeedCopyYesterday_Dict = {
#昨日榜(拷贝) #今日榜(源数据)
- ShareDefine.Def_BT_HighLadder_Yester : ShareDefine.Def_BT_HighLadder,
}
def NoteOssBillboardInfoByDay():
diff --git a/ServerPython/CoreServerGroup/GameServer/Script/Player/PlayerQuery.py b/ServerPython/CoreServerGroup/GameServer/Script/Player/PlayerQuery.py
index 6690bda..b14980a 100644
--- a/ServerPython/CoreServerGroup/GameServer/Script/Player/PlayerQuery.py
+++ b/ServerPython/CoreServerGroup/GameServer/Script/Player/PlayerQuery.py
@@ -925,14 +925,6 @@
# if not curPlayer:
# return
# resultName = '%s' % PlayerFamilyStore.DoMapServerFamilyStore(curPlayer, eval(resultName), tick)
-
- # 玩家天梯奖励
- if callName == "HighLadderReward":
- curPlayer = GameWorld.GetPlayerManager().FindPlayerByID(srcPlayerID)
- import HighLadder
- needResult, resultName = HighLadder.MapServer_HighLadderReward(curPlayer, eval(resultName))
- if not needResult:
- return
srcPlayer = GameWorld.GetPlayerManager().FindPlayerByID(srcPlayerID)
diff --git a/ServerPython/CoreServerGroup/GameServer/Script/Player/PlayerViewCache.py b/ServerPython/CoreServerGroup/GameServer/Script/Player/PlayerViewCache.py
index 959c0e7..484ff38 100644
--- a/ServerPython/CoreServerGroup/GameServer/Script/Player/PlayerViewCache.py
+++ b/ServerPython/CoreServerGroup/GameServer/Script/Player/PlayerViewCache.py
@@ -159,13 +159,6 @@
# if curBillboard.FindByID(PlayerID):
# return True
#
-# #校验玩家竞技场是否进入排名
-# hightLadderMgr = GameWorld.GetHightLadderMgr()
-# hightLadderData = hightLadderMgr.FindPlayerData(PlayerID)
-# if hightLadderData:
-# if hightLadderData.GetOrder() < HighLadderLimitOrder:
-# return True
-#
# curPlayer = GameWorld.GetPlayerManager().FindPlayerByID(PlayerID)
# if curPlayer:
# # 非普通成员需保存
diff --git a/ServerPython/CoreServerGroup/GameServer/Script/ShareDefine.py b/ServerPython/CoreServerGroup/GameServer/Script/ShareDefine.py
index 16fc860..46d0bae 100644
--- a/ServerPython/CoreServerGroup/GameServer/Script/ShareDefine.py
+++ b/ServerPython/CoreServerGroup/GameServer/Script/ShareDefine.py
@@ -639,11 +639,8 @@
Def_BT_ZhuXianTower, #诛仙塔榜
Def_BT_NewFCCostGold, #消费排行榜(新仙界盛典)
- Def_BT_HighLadder, #天梯竞技场排行
- Def_BT_HighLadder_Yester, #天梯竞技场昨日排行
-
Def_BT_Max, #排行榜最大类型
-) = range(0, 26 + 2)
+) = range(0, 24 + 2)
#职业对应战力排行榜类型
JobFightPowerBillboardDict = {
@@ -875,14 +872,8 @@
#以下是旧的金钱类型
TYPE_Price_Magic_Integral = 101 # 魔方寻宝积分
-TYPE_Price_HighLadder_Currency = 102 # 天梯竞技场积分
-TYPE_Price_HighLadder_Signet = 103 # 物品兑换(圣光晶石)
TYPE_Price_GongXun = 105 # 功勋点
TYPE_Price_ArrestPoint = 110 # 悬赏积分
-
-# 物品兑换
-TYPE_Price_ItemExchangeList = [TYPE_Price_HighLadder_Signet,
- ]
# 自定义积分及通知字典 {货币类型:通知客户端刷新类型, ...} , 如果不通知的话刷新类型则配置 None
TYPE_Price_CurrencyDict = {
diff --git a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/GameServerPyPack.ini b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/GameServerPyPack.ini
index d8cdf01..31a69f4 100644
--- a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/GameServerPyPack.ini
+++ b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/GameServerPyPack.ini
@@ -30,19 +30,6 @@
PacketSubCMD_4=0x04
PacketCallFunc_4=OnGMGivePlayerBourseGains
-;天梯竞技场
-[HighLadder]
-ScriptName = Player\HighLadderTube.py
-Writer = xmnathan
-Releaser = xmnathan
-RegType = 0
-RegisterPackCount = 1
-
-PacketCMD_1=0x03
-PacketSubCMD_1=0x01
-PacketCallFunc_1=OnGMHighLadderChallengeReuslt
-
-
;GM补偿
[Compensation]
ScriptName = Player\PlayerCompensationTube
diff --git a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/PyNetPack.ini b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/PyNetPack.ini
index 89b3e58..c660910 100644
--- a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/PyNetPack.ini
+++ b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/PyNetPack.ini
@@ -616,30 +616,6 @@
PacketSubCMD_1=0x22
PacketCallFunc_1=UpdatePlayerName
-;天梯竞技场
-[HighLadder]
-ScriptName = Player\HighLadderTube
-Writer = xmnathan
-Releaser = xmnathan
-RegType = 0
-RegisterPackCount = 4
-
-PacketCMD_1=0xA5
-PacketSubCMD_1=0x34
-PacketCallFunc_1=OnQueryHighLadderState
-
-PacketCMD_2=0xA5
-PacketSubCMD_2=0x35
-PacketCallFunc_2=OnQueryHighLadderReward
-
-PacketCMD_3=0xA5
-PacketSubCMD_3=0x36
-PacketCallFunc_3=OnHighLadderClearCD
-
-PacketCMD_4=0xA5
-PacketSubCMD_4=0x37
-PacketCallFunc_4=OnHighLadderAddCount
-
;投资理财
[GoldInvest]
diff --git a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script.ini b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script.ini
index e41bdee..b6a252c 100644
--- a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script.ini
+++ b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script.ini
@@ -1293,19 +1293,6 @@
PacketCallFunc_1=OnPlayerRecaptureBourseItem
-
-;天梯竞技场
-[HighLadder]
-ScriptName = Player\HighLadderTube.py
-Writer = xmnathan
-Releaser = xmnathan
-RegType = 0
-RegisterPackCount = 1
-
-PacketCMD_1=0x1A
-PacketSubCMD_1=0x13
-PacketCallFunc_1=OnHightLadderChallenge
-
;任务
[QuestLogic]
ScriptName = Event\QuestLogic.py
diff --git a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/ChConfig.py b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/ChConfig.py
index f08f5e4..e3b5839 100644
--- a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/ChConfig.py
+++ b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/ChConfig.py
@@ -3484,15 +3484,6 @@
Def_PDict_MysticalShopGoods = "MysticalShopGoods_%s" # 神秘商店商品ID,索引
Def_PDict_MysticalShopRefreshCnt = "MysticalShopRefreshCnt" # 神秘商店已手动刷新次数
Def_PDict_MysticalShopLVRefreshCnt = "MysticalShopLVRefreshCnt" # 神秘商店等级段刷新次数
-Def_PDict_HighLadderFightCnt = "HighLadderFightCnt" #天梯每日挑战次数记录
-Def_PDict_HighLadderAddCnt = "HighLadderAddCnt" #天梯已购买次数
-Def_PDict_HighLadder_Currency = "HighLadderCurrency" #天梯积分
-Def_PDict_HighLadder_DayRewardGot = "HighLadderDayRewardGot" #天梯每日奖励是否已领取
-Def_PDict_HighLadder_CDTime = "HighLadderCDTime" #天梯冷却时间
-Def_PDict_HighLadder_CDBeginTime = "HighLadderCDBeginTime" #天梯冷却时间计时起点
-Def_PDict_HighLadder_IsRelCD = "HighLadderIsRelCD" #天梯是否进入真正挑战冷却
-Def_PDict_HighLadder_WinningStreak = "HighLadderWinningStreak" #天梯连胜场次
-Def_PDict_HighLadder_HistoryMaxOrder = "HighLadderMaxOrder" #天梯历史最高排名
Def_PDict_FestivalLoginState = "FestivalLoginState_%s" # 节日登陆奖励状态_%s表示节日类型<按登陆天从低位起0-未领1-可领2-已领>
Def_PDict_Currency = "PlayerCurrency_%s" # 自定义货币类型, 参数[自定义货币类型]
Def_PDict_TJGSet = "TJGSet" # 脱机挂系统设定
@@ -4633,7 +4624,6 @@
Def_Cost_FinishTruck, # 完成镖车
Def_Cost_RefreshTimeShop, # 刷新神秘商店
Def_Cost_OpenNoble, # 开通贵族
-Def_Cost_HighLadder, # 天梯竞技场
Def_Cost_Reincarnation, # 转生
Def_Cost_BuyStallItem, # 购买摆摊物品
Def_Cost_Warehouse, # 仓库
@@ -4642,7 +4632,7 @@
Def_Cost_Trade, # 交易
Def_Cost_Rename, # 改名
Def_Cost_SkillLvUp, # 技能升级
-) = range(2000, 2000 + 60)
+) = range(2000, 2000 + 59)
Def_Cost_Reason_SonKey = "reason_name_son" # 消费点原因子类说明key
@@ -4692,7 +4682,6 @@
Def_Cost_BourseBuy:"BourseBuy",
Def_Cost_BourseCharge:"BourseCharge",
Def_Cost_EquipWash:"EquipWash",
-Def_Cost_HighLadder:"HighLadder",
Def_Cost_UseItem:"UseItem",
Def_Cost_AddSignDay:"AddSignDay",
Def_Cost_FBSweep:"FBSweep",
@@ -4755,7 +4744,7 @@
Def_GiveMoney_Warehouse, # 仓库
Def_GiveMoney_SellPackItem, # 出售背包物品
Def_GiveMoney_CollectNPC, # 采集NPC
-Def_GiveMoney_HighLadder, # 天梯竞技场 20
+Def_GiveMoney_20,
Def_GiveMoney_StallItem, # 摆摊
Def_GiveMoney_Trade, # 交易
Def_GiveMoney_Truck, # 运镖
@@ -4790,7 +4779,6 @@
Def_GiveMoney_Warehouse:"Warehouse",
Def_GiveMoney_SellPackItem:"SellPackItem",
Def_GiveMoney_CollectNPC:"CollectNPC",
-Def_GiveMoney_HighLadder:"HighLadder",
Def_GiveMoney_StallItem:"StallItem",
Def_GiveMoney_Trade:"Trade",
Def_GiveMoney_Truck:"Truck",
diff --git a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/ChGameToMapPyPack.py b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/ChGameToMapPyPack.py
index 2b3a2db..2f08604 100644
--- a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/ChGameToMapPyPack.py
+++ b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/ChGameToMapPyPack.py
@@ -610,84 +610,6 @@
#------------------------------------------------------
-#03 01 天梯竞技场玩家挑战结果同步#tagGMHighLadderChallengeReuslt
-
-class tagGMHighLadderChallengeReuslt(Structure):
- Head = tagHead()
- PlayerID = 0 #(DWORD PlayerID)//玩家ID
- Result = 0 #(BYTE Result)//结果
- PlusInfoSize = 0 #(WORD PlusInfoSize)
- PlusInfo = "" #(String PlusInfo)//附带信息
- data = None
-
- def __init__(self):
- self.Clear()
- self.Head.Cmd = 0x03
- self.Head.SubCmd = 0x01
- return
-
- def ReadData(self, _lpData, _pos=0, _Len=0):
- self.Clear()
- _pos = self.Head.ReadData(_lpData, _pos)
- self.PlayerID,_pos = CommFunc.ReadDWORD(_lpData, _pos)
- self.Result,_pos = CommFunc.ReadBYTE(_lpData, _pos)
- self.PlusInfoSize,_pos = CommFunc.ReadWORD(_lpData, _pos)
- self.PlusInfo,_pos = CommFunc.ReadString(_lpData, _pos,self.PlusInfoSize)
- return _pos
-
- def Clear(self):
- self.Head = tagHead()
- self.Head.Clear()
- self.Head.Cmd = 0x03
- self.Head.SubCmd = 0x01
- self.PlayerID = 0
- self.Result = 0
- self.PlusInfoSize = 0
- self.PlusInfo = ""
- return
-
- def GetLength(self):
- length = 0
- length += self.Head.GetLength()
- length += 4
- length += 1
- length += 2
- length += len(self.PlusInfo)
-
- return length
-
- def GetBuffer(self):
- data = ''
- data = CommFunc.WriteString(data, self.Head.GetLength(), self.Head.GetBuffer())
- data = CommFunc.WriteDWORD(data, self.PlayerID)
- data = CommFunc.WriteBYTE(data, self.Result)
- data = CommFunc.WriteWORD(data, self.PlusInfoSize)
- data = CommFunc.WriteString(data, self.PlusInfoSize, self.PlusInfo)
- return data
-
- def OutputString(self):
- DumpString = '''
- Head:%s,
- PlayerID:%d,
- Result:%d,
- PlusInfoSize:%d,
- PlusInfo:%s
- '''\
- %(
- self.Head.OutputString(),
- self.PlayerID,
- self.Result,
- self.PlusInfoSize,
- self.PlusInfo
- )
- return DumpString
-
-
-m_NAtagGMHighLadderChallengeReuslt=tagGMHighLadderChallengeReuslt()
-ChNetPackDict[eval("0x%02x%02x"%(m_NAtagGMHighLadderChallengeReuslt.Head.Cmd,m_NAtagGMHighLadderChallengeReuslt.Head.SubCmd))] = m_NAtagGMHighLadderChallengeReuslt
-
-
-#------------------------------------------------------
#02 01 查询玩家是否可以添加交易所物品结果#tagGMCheckAddPlayerBourseItemResult
class tagGMCheckAddPlayerBourseItemResult(Structure):
diff --git a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/ChMapToGamePyPack.py b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/ChMapToGamePyPack.py
index 741718a..a228069 100644
--- a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/ChMapToGamePyPack.py
+++ b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/ChMapToGamePyPack.py
@@ -672,7 +672,6 @@
PlusDataSize = 0 #(DWORD PlusDataSize)
PlusData = "" #(String PlusData)//扩展记录
IsLogouting = 0 #(BYTE IsLogouting)//本次是否为下线同步
- OffTime = 0 #(DWORD OffTime)// 下线时间戳
data = None
def __init__(self):
@@ -693,7 +692,6 @@
self.PlusDataSize,_pos = CommFunc.ReadDWORD(_lpData, _pos)
self.PlusData,_pos = CommFunc.ReadString(_lpData, _pos,self.PlusDataSize)
self.IsLogouting,_pos = CommFunc.ReadBYTE(_lpData, _pos)
- self.OffTime,_pos = CommFunc.ReadDWORD(_lpData, _pos)
return _pos
def Clear(self):
@@ -710,7 +708,6 @@
self.PlusDataSize = 0
self.PlusData = ""
self.IsLogouting = 0
- self.OffTime = 0
return
def GetLength(self):
@@ -725,7 +722,6 @@
length += 4
length += len(self.PlusData)
length += 1
- length += 4
return length
@@ -741,7 +737,6 @@
data = CommFunc.WriteDWORD(data, self.PlusDataSize)
data = CommFunc.WriteString(data, self.PlusDataSize, self.PlusData)
data = CommFunc.WriteBYTE(data, self.IsLogouting)
- data = CommFunc.WriteDWORD(data, self.OffTime)
return data
def OutputString(self):
@@ -755,8 +750,7 @@
ItemData:%s,
PlusDataSize:%d,
PlusData:%s,
- IsLogouting:%d,
- OffTime:%d
+ IsLogouting:%d
'''\
%(
self.Head.OutputString(),
@@ -768,8 +762,7 @@
self.ItemData,
self.PlusDataSize,
self.PlusData,
- self.IsLogouting,
- self.OffTime
+ self.IsLogouting
)
return DumpString
@@ -844,421 +837,6 @@
m_NAtagMGAddFamilyDetail=tagMGAddFamilyDetail()
ChNetPackDict[eval("0x%02x%02x"%(m_NAtagMGAddFamilyDetail.Cmd,m_NAtagMGAddFamilyDetail.SubCmd))] = m_NAtagMGAddFamilyDetail
-
-
-#------------------------------------------------------
-#03 02 天梯竞技场玩家发起挑战#tagMGHighLadderChallenge
-
-class tagHightLadderItemInfo(Structure):
- ItemTypeID = 0 #(DWORD ItemTypeID)//物品ID
- ItemPlaceType = 0 #(BYTE ItemPlaceType)//物品位置的背包类型
- ItemPlaceIndex = 0 #(BYTE ItemPlaceIndex)//物品所在的索引
- Count = 0 #(WORD Count)//单组数量
- ItemStarLV = 0 #(BYTE ItemStarLV)//装备星级
- IdentifyPar = 0 #(BYTE IdentifyPar)//鉴定参数
- CurDurg = 0 #(DWORD CurDurg)//当前耐久
- MaxDurg = 0 #(DWORD MaxDurg)//最大耐久
- CanPlaceStoneCount = 0 #(BYTE CanPlaceStoneCount)//可镶嵌宝石数0表示不可以镶嵌宝石
- ItemProperty = 0 #(BYTE ItemProperty)//装备五行
- SoulProperty = 0 #(WORD SoulProperty)//灵魂属性属性
- Maker = 0 #(DWORD Maker)//制作者ID
- MakerName = "" #(char MakerName[33])//制造者名字
- Stone1 = 0 #(DWORD Stone1)//镶嵌宝石1
- Stone2 = 0 #(DWORD Stone2)//镶嵌宝石
- Stone3 = 0 #(DWORD Stone3)//镶嵌宝石
- Stone4 = 0 #(DWORD Stone4)//镶嵌宝石
- Stone5 = 0 #(DWORD Stone5)//镶嵌宝石
- Stone6 = 0 #(DWORD Stone6)//镶嵌宝石
- Stone7 = 0 #(DWORD Stone7)//镶嵌宝石
- Stone8 = 0 #(DWORD Stone8)//镶嵌宝石
- Stone9 = 0 #(DWORD Stone9)//镶嵌宝石
- IsRenZhu = 0 #(BYTE IsRenZhu)//是否认主
- EquipDefenseValue = 0 #(DWORD EquipDefenseValue)//用于记录装备的防御值
- EquipMinAtkValue = 0 #(DWORD EquipMinAtkValue)//用于记录装备的最小伤害值
- EquipMaxAtkValue = 0 #(DWORD EquipMaxAtkValue)//用于记录装备的最大伤害值
- UserDataLen = 0 #(DWORD UserDataLen)
- UserData = "" #(String UserData)//自定义数据
- FitLV = 0 #(BYTE FitLV)//物品契合等级
- Proficiency = 0 #(DWORD Proficiency)//熟练度
- IsSuite = 0 #(BYTE IsSuite)//是否已经套装化
- BaseHP = 0 #(DWORD BaseHP)// HP基础值
- BaseMagicDef = 0 #(DWORD BaseMagicDef)//内防基础值
- MaxAddSkillCnt = 0 #(BYTE MaxAddSkillCnt)// 最大附魔次数
- PetID = 0 #(DWORD PetID)//装备该装备的宠物ID,为0则未装备
- EquipMagicDefValue = 0 #(DWORD EquipMagicDefValue)//装备内防值
- EquipMinMagicAtkValue = 0 #(DWORD EquipMinMagicAtkValue)//装备最小内攻
- EquipMaxMagicAtkValue = 0 #(DWORD EquipMaxMagicAtkValue)//装备最大内攻
- data = None
-
- def __init__(self):
- self.Clear()
- return
-
- def ReadData(self, _lpData, _pos=0, _Len=0):
- self.Clear()
- self.ItemTypeID,_pos = CommFunc.ReadDWORD(_lpData, _pos)
- self.ItemPlaceType,_pos = CommFunc.ReadBYTE(_lpData, _pos)
- self.ItemPlaceIndex,_pos = CommFunc.ReadBYTE(_lpData, _pos)
- self.Count,_pos = CommFunc.ReadWORD(_lpData, _pos)
- self.ItemStarLV,_pos = CommFunc.ReadBYTE(_lpData, _pos)
- self.IdentifyPar,_pos = CommFunc.ReadBYTE(_lpData, _pos)
- self.CurDurg,_pos = CommFunc.ReadDWORD(_lpData, _pos)
- self.MaxDurg,_pos = CommFunc.ReadDWORD(_lpData, _pos)
- self.CanPlaceStoneCount,_pos = CommFunc.ReadBYTE(_lpData, _pos)
- self.ItemProperty,_pos = CommFunc.ReadBYTE(_lpData, _pos)
- self.SoulProperty,_pos = CommFunc.ReadWORD(_lpData, _pos)
- self.Maker,_pos = CommFunc.ReadDWORD(_lpData, _pos)
- self.MakerName,_pos = CommFunc.ReadString(_lpData, _pos,33)
- self.Stone1,_pos = CommFunc.ReadDWORD(_lpData, _pos)
- self.Stone2,_pos = CommFunc.ReadDWORD(_lpData, _pos)
- self.Stone3,_pos = CommFunc.ReadDWORD(_lpData, _pos)
- self.Stone4,_pos = CommFunc.ReadDWORD(_lpData, _pos)
- self.Stone5,_pos = CommFunc.ReadDWORD(_lpData, _pos)
- self.Stone6,_pos = CommFunc.ReadDWORD(_lpData, _pos)
- self.Stone7,_pos = CommFunc.ReadDWORD(_lpData, _pos)
- self.Stone8,_pos = CommFunc.ReadDWORD(_lpData, _pos)
- self.Stone9,_pos = CommFunc.ReadDWORD(_lpData, _pos)
- self.IsRenZhu,_pos = CommFunc.ReadBYTE(_lpData, _pos)
- self.EquipDefenseValue,_pos = CommFunc.ReadDWORD(_lpData, _pos)
- self.EquipMinAtkValue,_pos = CommFunc.ReadDWORD(_lpData, _pos)
- self.EquipMaxAtkValue,_pos = CommFunc.ReadDWORD(_lpData, _pos)
- self.UserDataLen,_pos = CommFunc.ReadDWORD(_lpData, _pos)
- self.UserData,_pos = CommFunc.ReadString(_lpData, _pos,self.UserDataLen)
- self.FitLV,_pos = CommFunc.ReadBYTE(_lpData, _pos)
- self.Proficiency,_pos = CommFunc.ReadDWORD(_lpData, _pos)
- self.IsSuite,_pos = CommFunc.ReadBYTE(_lpData, _pos)
- self.BaseHP,_pos = CommFunc.ReadDWORD(_lpData, _pos)
- self.BaseMagicDef,_pos = CommFunc.ReadDWORD(_lpData, _pos)
- self.MaxAddSkillCnt,_pos = CommFunc.ReadBYTE(_lpData, _pos)
- self.PetID,_pos = CommFunc.ReadDWORD(_lpData, _pos)
- self.EquipMagicDefValue,_pos = CommFunc.ReadDWORD(_lpData, _pos)
- self.EquipMinMagicAtkValue,_pos = CommFunc.ReadDWORD(_lpData, _pos)
- self.EquipMaxMagicAtkValue,_pos = CommFunc.ReadDWORD(_lpData, _pos)
- return _pos
-
- def Clear(self):
- self.ItemTypeID = 0
- self.ItemPlaceType = 0
- self.ItemPlaceIndex = 0
- self.Count = 0
- self.ItemStarLV = 0
- self.IdentifyPar = 0
- self.CurDurg = 0
- self.MaxDurg = 0
- self.CanPlaceStoneCount = 0
- self.ItemProperty = 0
- self.SoulProperty = 0
- self.Maker = 0
- self.MakerName = ""
- self.Stone1 = 0
- self.Stone2 = 0
- self.Stone3 = 0
- self.Stone4 = 0
- self.Stone5 = 0
- self.Stone6 = 0
- self.Stone7 = 0
- self.Stone8 = 0
- self.Stone9 = 0
- self.IsRenZhu = 0
- self.EquipDefenseValue = 0
- self.EquipMinAtkValue = 0
- self.EquipMaxAtkValue = 0
- self.UserDataLen = 0
- self.UserData = ""
- self.FitLV = 0
- self.Proficiency = 0
- self.IsSuite = 0
- self.BaseHP = 0
- self.BaseMagicDef = 0
- self.MaxAddSkillCnt = 0
- self.PetID = 0
- self.EquipMagicDefValue = 0
- self.EquipMinMagicAtkValue = 0
- self.EquipMaxMagicAtkValue = 0
- return
-
- def GetLength(self):
- length = 0
- length += 4
- length += 1
- length += 1
- length += 2
- length += 1
- length += 1
- length += 4
- length += 4
- length += 1
- length += 1
- length += 2
- length += 4
- length += 33
- length += 4
- length += 4
- length += 4
- length += 4
- length += 4
- length += 4
- length += 4
- length += 4
- length += 4
- length += 1
- length += 4
- length += 4
- length += 4
- length += 4
- length += len(self.UserData)
- length += 1
- length += 4
- length += 1
- length += 4
- length += 4
- length += 1
- length += 4
- length += 4
- length += 4
- length += 4
-
- return length
-
- def GetBuffer(self):
- data = ''
- data = CommFunc.WriteDWORD(data, self.ItemTypeID)
- data = CommFunc.WriteBYTE(data, self.ItemPlaceType)
- data = CommFunc.WriteBYTE(data, self.ItemPlaceIndex)
- data = CommFunc.WriteWORD(data, self.Count)
- data = CommFunc.WriteBYTE(data, self.ItemStarLV)
- data = CommFunc.WriteBYTE(data, self.IdentifyPar)
- data = CommFunc.WriteDWORD(data, self.CurDurg)
- data = CommFunc.WriteDWORD(data, self.MaxDurg)
- data = CommFunc.WriteBYTE(data, self.CanPlaceStoneCount)
- data = CommFunc.WriteBYTE(data, self.ItemProperty)
- data = CommFunc.WriteWORD(data, self.SoulProperty)
- data = CommFunc.WriteDWORD(data, self.Maker)
- data = CommFunc.WriteString(data, 33, self.MakerName)
- data = CommFunc.WriteDWORD(data, self.Stone1)
- data = CommFunc.WriteDWORD(data, self.Stone2)
- data = CommFunc.WriteDWORD(data, self.Stone3)
- data = CommFunc.WriteDWORD(data, self.Stone4)
- data = CommFunc.WriteDWORD(data, self.Stone5)
- data = CommFunc.WriteDWORD(data, self.Stone6)
- data = CommFunc.WriteDWORD(data, self.Stone7)
- data = CommFunc.WriteDWORD(data, self.Stone8)
- data = CommFunc.WriteDWORD(data, self.Stone9)
- data = CommFunc.WriteBYTE(data, self.IsRenZhu)
- data = CommFunc.WriteDWORD(data, self.EquipDefenseValue)
- data = CommFunc.WriteDWORD(data, self.EquipMinAtkValue)
- data = CommFunc.WriteDWORD(data, self.EquipMaxAtkValue)
- data = CommFunc.WriteDWORD(data, self.UserDataLen)
- data = CommFunc.WriteString(data, self.UserDataLen, self.UserData)
- data = CommFunc.WriteBYTE(data, self.FitLV)
- data = CommFunc.WriteDWORD(data, self.Proficiency)
- data = CommFunc.WriteBYTE(data, self.IsSuite)
- data = CommFunc.WriteDWORD(data, self.BaseHP)
- data = CommFunc.WriteDWORD(data, self.BaseMagicDef)
- data = CommFunc.WriteBYTE(data, self.MaxAddSkillCnt)
- data = CommFunc.WriteDWORD(data, self.PetID)
- data = CommFunc.WriteDWORD(data, self.EquipMagicDefValue)
- data = CommFunc.WriteDWORD(data, self.EquipMinMagicAtkValue)
- data = CommFunc.WriteDWORD(data, self.EquipMaxMagicAtkValue)
- return data
-
- def OutputString(self):
- DumpString = '''
- ItemTypeID:%d,
- ItemPlaceType:%d,
- ItemPlaceIndex:%d,
- Count:%d,
- ItemStarLV:%d,
- IdentifyPar:%d,
- CurDurg:%d,
- MaxDurg:%d,
- CanPlaceStoneCount:%d,
- ItemProperty:%d,
- SoulProperty:%d,
- Maker:%d,
- MakerName:%s,
- Stone1:%d,
- Stone2:%d,
- Stone3:%d,
- Stone4:%d,
- Stone5:%d,
- Stone6:%d,
- Stone7:%d,
- Stone8:%d,
- Stone9:%d,
- IsRenZhu:%d,
- EquipDefenseValue:%d,
- EquipMinAtkValue:%d,
- EquipMaxAtkValue:%d,
- UserDataLen:%d,
- UserData:%s,
- FitLV:%d,
- Proficiency:%d,
- IsSuite:%d,
- BaseHP:%d,
- BaseMagicDef:%d,
- MaxAddSkillCnt:%d,
- PetID:%d,
- EquipMagicDefValue:%d,
- EquipMinMagicAtkValue:%d,
- EquipMaxMagicAtkValue:%d
- '''\
- %(
- self.ItemTypeID,
- self.ItemPlaceType,
- self.ItemPlaceIndex,
- self.Count,
- self.ItemStarLV,
- self.IdentifyPar,
- self.CurDurg,
- self.MaxDurg,
- self.CanPlaceStoneCount,
- self.ItemProperty,
- self.SoulProperty,
- self.Maker,
- self.MakerName,
- self.Stone1,
- self.Stone2,
- self.Stone3,
- self.Stone4,
- self.Stone5,
- self.Stone6,
- self.Stone7,
- self.Stone8,
- self.Stone9,
- self.IsRenZhu,
- self.EquipDefenseValue,
- self.EquipMinAtkValue,
- self.EquipMaxAtkValue,
- self.UserDataLen,
- self.UserData,
- self.FitLV,
- self.Proficiency,
- self.IsSuite,
- self.BaseHP,
- self.BaseMagicDef,
- self.MaxAddSkillCnt,
- self.PetID,
- self.EquipMagicDefValue,
- self.EquipMinMagicAtkValue,
- self.EquipMaxMagicAtkValue
- )
- return DumpString
-
-
-class tagMGHighLadderChallenge(Structure):
- Head = tagHead()
- PlayerID = 0 #(DWORD PlayerID)//玩家ID
- PlayerName = "" #(char PlayerName[33])
- PlayerLV = 0 #(WORD PlayerLV)
- FightPower = 0 #(DWORD FightPower)
- FightPropertyDataLen = 0 #(DWORD FightPropertyDataLen)
- FightPropertyData = "" #(String FightPropertyData)//Python自定义数据
- EquipCount = 0 #(BYTE EquipCount)
- EquipList = list() #(vector<tagHightLadderItemInfo> EquipList)//装备信息列表
- VSOrder = 0 #(WORD VSOrder)//要挑战的排位
- data = None
-
- def __init__(self):
- self.Clear()
- self.Head.Cmd = 0x03
- self.Head.SubCmd = 0x02
- return
-
- def ReadData(self, _lpData, _pos=0, _Len=0):
- self.Clear()
- _pos = self.Head.ReadData(_lpData, _pos)
- self.PlayerID,_pos = CommFunc.ReadDWORD(_lpData, _pos)
- self.PlayerName,_pos = CommFunc.ReadString(_lpData, _pos,33)
- self.PlayerLV,_pos = CommFunc.ReadWORD(_lpData, _pos)
- self.FightPower,_pos = CommFunc.ReadDWORD(_lpData, _pos)
- self.FightPropertyDataLen,_pos = CommFunc.ReadDWORD(_lpData, _pos)
- self.FightPropertyData,_pos = CommFunc.ReadString(_lpData, _pos,self.FightPropertyDataLen)
- self.EquipCount,_pos = CommFunc.ReadBYTE(_lpData, _pos)
- for i in range(self.EquipCount):
- temEquipList = tagHightLadderItemInfo()
- _pos = temEquipList.ReadData(_lpData, _pos)
- self.EquipList.append(temEquipList)
- self.VSOrder,_pos = CommFunc.ReadWORD(_lpData, _pos)
- return _pos
-
- def Clear(self):
- self.Head = tagHead()
- self.Head.Clear()
- self.Head.Cmd = 0x03
- self.Head.SubCmd = 0x02
- self.PlayerID = 0
- self.PlayerName = ""
- self.PlayerLV = 0
- self.FightPower = 0
- self.FightPropertyDataLen = 0
- self.FightPropertyData = ""
- self.EquipCount = 0
- self.EquipList = list()
- self.VSOrder = 0
- return
-
- def GetLength(self):
- length = 0
- length += self.Head.GetLength()
- length += 4
- length += 33
- length += 2
- length += 4
- length += 4
- length += len(self.FightPropertyData)
- length += 1
- for i in range(self.EquipCount):
- length += self.EquipList[i].GetLength()
- length += 2
-
- return length
-
- def GetBuffer(self):
- data = ''
- data = CommFunc.WriteString(data, self.Head.GetLength(), self.Head.GetBuffer())
- data = CommFunc.WriteDWORD(data, self.PlayerID)
- data = CommFunc.WriteString(data, 33, self.PlayerName)
- data = CommFunc.WriteWORD(data, self.PlayerLV)
- data = CommFunc.WriteDWORD(data, self.FightPower)
- data = CommFunc.WriteDWORD(data, self.FightPropertyDataLen)
- data = CommFunc.WriteString(data, self.FightPropertyDataLen, self.FightPropertyData)
- data = CommFunc.WriteBYTE(data, self.EquipCount)
- for i in range(self.EquipCount):
- data = CommFunc.WriteString(data, self.EquipList[i].GetLength(), self.EquipList[i].GetBuffer())
- data = CommFunc.WriteWORD(data, self.VSOrder)
- return data
-
- def OutputString(self):
- DumpString = '''
- Head:%s,
- PlayerID:%d,
- PlayerName:%s,
- PlayerLV:%d,
- FightPower:%d,
- FightPropertyDataLen:%d,
- FightPropertyData:%s,
- EquipCount:%d,
- EquipList:%s,
- VSOrder:%d
- '''\
- %(
- self.Head.OutputString(),
- self.PlayerID,
- self.PlayerName,
- self.PlayerLV,
- self.FightPower,
- self.FightPropertyDataLen,
- self.FightPropertyData,
- self.EquipCount,
- "...",
- self.VSOrder
- )
- return DumpString
-
-
-m_NAtagMGHighLadderChallenge=tagMGHighLadderChallenge()
-ChNetPackDict[eval("0x%02x%02x"%(m_NAtagMGHighLadderChallenge.Head.Cmd,m_NAtagMGHighLadderChallenge.Head.SubCmd))] = m_NAtagMGHighLadderChallenge
#------------------------------------------------------
diff --git a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/ChPyNetPack.py b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/ChPyNetPack.py
index d98f0e4..1886fdd 100644
--- a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/ChPyNetPack.py
+++ b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/ChPyNetPack.py
@@ -8274,106 +8274,6 @@
#------------------------------------------------------
-#A5 36 天梯清除挑战CD#tagCMHighLadderClearCD
-
-class tagCMHighLadderClearCD(Structure):
- _pack_ = 1
- _fields_ = [
- ("Cmd", c_ubyte),
- ("SubCmd", c_ubyte),
- ]
-
- def __init__(self):
- self.Clear()
- self.Cmd = 0xA5
- self.SubCmd = 0x36
- 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 = 0x36
- return
-
- def GetLength(self):
- return sizeof(tagCMHighLadderClearCD)
-
- def GetBuffer(self):
- return string_at(addressof(self), self.GetLength())
-
- def OutputString(self):
- DumpString = '''//A5 36 天梯清除挑战CD//tagCMHighLadderClearCD:
- Cmd:%s,
- SubCmd:%s
- '''\
- %(
- self.Cmd,
- self.SubCmd
- )
- return DumpString
-
-
-m_NAtagCMHighLadderClearCD=tagCMHighLadderClearCD()
-ChNetPackDict[eval("0x%02x%02x"%(m_NAtagCMHighLadderClearCD.Cmd,m_NAtagCMHighLadderClearCD.SubCmd))] = m_NAtagCMHighLadderClearCD
-
-
-#------------------------------------------------------
-#A5 35 查询天梯竞技场奖励#tagCMQueryHighLadderReward
-
-class tagCMQueryHighLadderReward(Structure):
- _pack_ = 1
- _fields_ = [
- ("Cmd", c_ubyte),
- ("SubCmd", c_ubyte),
- ("Type", c_ubyte), #0,查询 1,领取
- ]
-
- def __init__(self):
- self.Clear()
- self.Cmd = 0xA5
- self.SubCmd = 0x35
- 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 = 0x35
- self.Type = 0
- return
-
- def GetLength(self):
- return sizeof(tagCMQueryHighLadderReward)
-
- def GetBuffer(self):
- return string_at(addressof(self), self.GetLength())
-
- def OutputString(self):
- DumpString = '''//A5 35 查询天梯竞技场奖励//tagCMQueryHighLadderReward:
- Cmd:%s,
- SubCmd:%s,
- Type:%d
- '''\
- %(
- self.Cmd,
- self.SubCmd,
- self.Type
- )
- return DumpString
-
-
-m_NAtagCMQueryHighLadderReward=tagCMQueryHighLadderReward()
-ChNetPackDict[eval("0x%02x%02x"%(m_NAtagCMQueryHighLadderReward.Cmd,m_NAtagCMQueryHighLadderReward.SubCmd))] = m_NAtagCMQueryHighLadderReward
-
-
-#------------------------------------------------------
#A5 3B 请求领取补偿#tagCMRequestCompensation
class tagCMRequestCompensation(Structure):
@@ -9939,54 +9839,6 @@
#------------------------------------------------------
-#A5 37 天梯增加挑战次数#tagCMHighLadderAddCount
-
-class tagCMHighLadderAddCount(Structure):
- _pack_ = 1
- _fields_ = [
- ("Cmd", c_ubyte),
- ("SubCmd", c_ubyte),
- ]
-
- def __init__(self):
- self.Clear()
- self.Cmd = 0xA5
- self.SubCmd = 0x37
- 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 = 0x37
- return
-
- def GetLength(self):
- return sizeof(tagCMHighLadderAddCount)
-
- def GetBuffer(self):
- return string_at(addressof(self), self.GetLength())
-
- def OutputString(self):
- DumpString = '''//A5 37 天梯增加挑战次数//tagCMHighLadderAddCount:
- Cmd:%s,
- SubCmd:%s
- '''\
- %(
- self.Cmd,
- self.SubCmd
- )
- return DumpString
-
-
-m_NAtagCMHighLadderAddCount=tagCMHighLadderAddCount()
-ChNetPackDict[eval("0x%02x%02x"%(m_NAtagCMHighLadderAddCount.Cmd,m_NAtagCMHighLadderAddCount.SubCmd))] = m_NAtagCMHighLadderAddCount
-
-
-#------------------------------------------------------
# A5 27 坐骑提升 #tagCMHorseUp
class tagCMHorseUp(Structure):
@@ -10482,54 +10334,6 @@
m_NAtagCMPrayElixir=tagCMPrayElixir()
ChNetPackDict[eval("0x%02x%02x"%(m_NAtagCMPrayElixir.Cmd,m_NAtagCMPrayElixir.SubCmd))] = m_NAtagCMPrayElixir
-
-
-#------------------------------------------------------
-#A5 34 查询天梯竞技场状态#tagCMQueryHighLadderState
-
-class tagCMQueryHighLadderState(Structure):
- _pack_ = 1
- _fields_ = [
- ("Cmd", c_ubyte),
- ("SubCmd", c_ubyte),
- ]
-
- def __init__(self):
- self.Clear()
- self.Cmd = 0xA5
- self.SubCmd = 0x34
- 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 = 0x34
- return
-
- def GetLength(self):
- return sizeof(tagCMQueryHighLadderState)
-
- def GetBuffer(self):
- return string_at(addressof(self), self.GetLength())
-
- def OutputString(self):
- DumpString = '''//A5 34 查询天梯竞技场状态//tagCMQueryHighLadderState:
- Cmd:%s,
- SubCmd:%s
- '''\
- %(
- self.Cmd,
- self.SubCmd
- )
- return DumpString
-
-
-m_NAtagCMQueryHighLadderState=tagCMQueryHighLadderState()
-ChNetPackDict[eval("0x%02x%02x"%(m_NAtagCMQueryHighLadderState.Cmd,m_NAtagCMQueryHighLadderState.SubCmd))] = m_NAtagCMQueryHighLadderState
#------------------------------------------------------
diff --git a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/ChPyNetSendPack.py b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/ChPyNetSendPack.py
index dd7ae88..1e30bb9 100644
--- a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/ChPyNetSendPack.py
+++ b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/ChPyNetSendPack.py
@@ -3371,62 +3371,6 @@
#------------------------------------------------------
-#A9 05 天梯竞技场每日奖励信息#tagGCHighLadderRewardInfo
-
-class tagGCHighLadderRewardInfo(Structure):
- _pack_ = 1
- _fields_ = [
- ("Cmd", c_ubyte),
- ("SubCmd", c_ubyte),
- ("hadGot", c_ubyte), #是否已领取
- ("Order", c_ushort), #奖励排名
- ]
-
- def __init__(self):
- self.Clear()
- self.Cmd = 0xA9
- self.SubCmd = 0x05
- 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 = 0xA9
- self.SubCmd = 0x05
- self.hadGot = 0
- self.Order = 0
- return
-
- def GetLength(self):
- return sizeof(tagGCHighLadderRewardInfo)
-
- def GetBuffer(self):
- return string_at(addressof(self), self.GetLength())
-
- def OutputString(self):
- DumpString = '''//A9 05 天梯竞技场每日奖励信息//tagGCHighLadderRewardInfo:
- Cmd:%s,
- SubCmd:%s,
- hadGot:%d,
- Order:%d
- '''\
- %(
- self.Cmd,
- self.SubCmd,
- self.hadGot,
- self.Order
- )
- return DumpString
-
-
-m_NAtagGCHighLadderRewardInfo=tagGCHighLadderRewardInfo()
-ChNetPackDict[eval("0x%02x%02x"%(m_NAtagGCHighLadderRewardInfo.Cmd,m_NAtagGCHighLadderRewardInfo.SubCmd))] = m_NAtagGCHighLadderRewardInfo
-
-
-#------------------------------------------------------
#A9 03 开服活动奖励数量刷新#tagGCOpenServerCampaignAwardCount
class tagGCOpenServerCampaignAwardCount(Structure):
@@ -18178,74 +18122,6 @@
m_NAtagMCFamilyRedPacketGoldLimit=tagMCFamilyRedPacketGoldLimit()
ChNetPackDict[eval("0x%02x%02x"%(m_NAtagMCFamilyRedPacketGoldLimit.Cmd,m_NAtagMCFamilyRedPacketGoldLimit.SubCmd))] = m_NAtagMCFamilyRedPacketGoldLimit
-
-
-#------------------------------------------------------
-#A5 34 天梯竞技场状态#tagMCHighLadderState
-
-class tagMCHighLadderState(Structure):
- _pack_ = 1
- _fields_ = [
- ("Cmd", c_ubyte),
- ("SubCmd", c_ubyte),
- ("Count", c_ubyte), #已挑战次数
- ("MaxCount", c_ubyte), #最大次数
- ("CDTime", c_int), #累计冷却时间
- ("IsRelCD", c_ubyte), #是否正在真实冷却状态
- ("Currency", c_int), #积分
- ]
-
- def __init__(self):
- self.Clear()
- self.Cmd = 0xA5
- self.SubCmd = 0x34
- 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 = 0x34
- self.Count = 0
- self.MaxCount = 0
- self.CDTime = 0
- self.IsRelCD = 0
- self.Currency = 0
- return
-
- def GetLength(self):
- return sizeof(tagMCHighLadderState)
-
- def GetBuffer(self):
- return string_at(addressof(self), self.GetLength())
-
- def OutputString(self):
- DumpString = '''//A5 34 天梯竞技场状态//tagMCHighLadderState:
- Cmd:%s,
- SubCmd:%s,
- Count:%d,
- MaxCount:%d,
- CDTime:%d,
- IsRelCD:%d,
- Currency:%d
- '''\
- %(
- self.Cmd,
- self.SubCmd,
- self.Count,
- self.MaxCount,
- self.CDTime,
- self.IsRelCD,
- self.Currency
- )
- return DumpString
-
-
-m_NAtagMCHighLadderState=tagMCHighLadderState()
-ChNetPackDict[eval("0x%02x%02x"%(m_NAtagMCHighLadderState.Cmd,m_NAtagMCHighLadderState.SubCmd))] = m_NAtagMCHighLadderState
#------------------------------------------------------
diff --git a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Event/EventSrc/QuestRunner.py b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Event/EventSrc/QuestRunner.py
index a06f659..4dbf2eb 100644
--- a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Event/EventSrc/QuestRunner.py
+++ b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Event/EventSrc/QuestRunner.py
@@ -2592,20 +2592,6 @@
return petPack.GetCount() > 0
return PlayerPet.GetPetDataItemByNPCID(curPlayer, checkPetID) != None
-##竞技场是否达到多少名
-# @param curPlayer 玩家实例
-# @param curMission 任务实例
-# @param curConditionNode 节点信息
-# @return 返回值, 是否判断成功
-# @remarks <Check_Jjcorder type="类型" value="值"/>
-def ConditionType_Check_Jjcorder(curPlayer, curMission, curConditionNode):
- conditionValue = GameWorld.ToIntDef(curConditionNode.GetAttribute("value"), 0)
- conditionType = curConditionNode.GetAttribute("type")
- maxOrder = curPlayer.NomalDictGetProperty(ChConfig.Def_PDict_HighLadder_HistoryMaxOrder, 0,
- ChConfig.Def_PDictType_Default)
-
- return QuestRunnerValue.GetEval(conditionType, maxOrder, conditionValue)
-
#---------------------------------------------------------------------
##执行 扣除玩家镖车押金
# @param curPlayer 玩家实例
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 7968a40..2d2d3e2 100644
--- a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/ChPlayer.py
+++ b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/ChPlayer.py
@@ -643,9 +643,6 @@
# # 副本进入时间
FBCommon.FBOnLogin(curPlayer)
#
-# #天梯竞技场
-# HighLadderTube.OnLogin(curPlayer)
-#
# #世界等级
PlayerWorldAverageLv.OnLogin(curPlayer)
#
diff --git a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/HighLadderTube.py b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/HighLadderTube.py
deleted file mode 100644
index 2a07332..0000000
--- a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/HighLadderTube.py
+++ /dev/null
@@ -1,573 +0,0 @@
-#!/usr/bin/python
-# -*- coding: GBK -*-
-#
-#
-##@package HighLadderTube.py
-#
-# @todo:天梯竞技场MapServer
-#
-# @author xmnathan
-# @date 2010-01-01 10:00
-# @version 3.2
-# @note:
-# @change: "2014-08-05 18:00" xmnathan 天梯竞技场
-# @change: "2014-08-07 11:30" xmnathan 每日奖励支持领取 积分 经验 魔魂 金币;增加购买次数上限
-# @change: "2014-08-07 16:30" xmnathan 修改冷却时间计算:每次挑战增加冷却时间,时间达到一定值时需要冷却时间为0才能挑战
-# @change: "2014-08-08 10:00" hxp 增加参加竞技场任务事件触发
-# @change: "2014-08-08 17:30" xmnathan 增加魔魂允许溢出
-# @change: "2014-08-12 10:50" xmnathan 增加连胜广播
-# @change: "2014-10-30 21:51" Alee 服务器的tick是开机后从0算起的,要用现实时间戳
-# @change: "2014-11-12 16:30" hxp 增加胜利成就
-# @change: "2014-11-13 16:30" xmnathan 过天增加一次奖励查询 以通知客户端刷新
-# @change: "2014-12-08 17:00" hxp 增加钻石消费流向
-# @change: "2015-01-14 20:30" hxp 增加根据挑战次数一定几率给物品
-# @change: "2015-01-29 21:52" xmnathan 竞技场保存数据增加玩家转生等级、次数
-# @change: "2015-02-10 22:30" hxp 增加钻石消耗类型事件汇报
-# @change: "2015-02-26 11:40" xmnathan 竞技场保存数据增加玩家大师等级
-# @change: "2015-03-19 16:50" ljd 贵族加成
-# @change: "2015-04-16 17:50" ljd 导入math用于开配置
-# @change: "2015-07-10 15:40" xdh 竞技场保存数据增加玩家运营商信息
-# @change: "2015-07-28 11:10" ljd 贵族加成 还原
-# @change: "2015-07-29 11:30" ljd 消费VIP增加次数
-# @change: "2015-08-24 11:00" xdh 增加JJC连续击杀成就
-# @change: "2016-01-26 15:00" hxp PY表支持重读
-# @change: "2016-12-13 21:00" xdh 增加JJC一次性排名奖励
-#---------------------------------------------------------------------
-"""Version = 2016-12-13 21:00"""
-#---------------------------------------------------------------------
-
-import IPY_GameWorld
-import GameWorld
-import ChConfig
-import ReadChConfig
-import ShareDefine
-import ChPyNetSendPack
-import NetPackCommon
-import PlayerControl
-import ItemCommon
-import ItemControler
-import DataRecordPack
-import ChMapToGamePyPack
-import PyMapTable
-import PlayerActivity
-import PlayerSuccess
-import EventShell
-import PlayerCostVIP
-
-import time
-import math
-
-# 定义物品类型
-(
-Def_ItemType_CommonItem, # 一般物品
-Def_ItemType_AppointItem, # 特殊定制物品
-) = range(2)
-
-##//1A 13 天梯竞技场挑战玩家#tagCHightLadderChallenge
-#struct tagCHightLadderChallenge
-#{
-# tagHead Head;
-# DWORD VSOrder; //要挑战的排位
-#};
-## 天梯竞技场挑战玩家
-# @param index, tick
-# @return None
-def OnHightLadderChallenge(index, tick):
- GameWorld.DebugLog('HightLadder### OnHightLadderChallenge in')
- curPlayer = GameWorld.GetPlayerManager().GetPlayerByIndex(index)
- if not curPlayer:
- return
- clientPack = IPY_GameWorld.IPY_CHightLadderChallenge()
-
- HighLadderPriceDict = ReadChConfig.GetEvalChConfig("HighLadderPrice")
- needPay = 0
- buyCount = False
- Count = 0
- #校验次数
- #已挑战次数
- hadFightCnt = curPlayer.NomalDictGetProperty(ChConfig.Def_PDict_HighLadderFightCnt, 0,
- ChConfig.Def_PDictType_Default)
- #购买次数
- AddCnt = curPlayer.NomalDictGetProperty(ChConfig.Def_PDict_HighLadderAddCnt, 0,
- ChConfig.Def_PDictType_Default)
- #每日默认次数
- vipAddNum = PlayerCostVIP.GetArenaNum(curPlayer)
- HighLadderFightCntDict = ReadChConfig.GetEvalChConfig("HighLadderFightCnt")
- FightCntPerDay = HighLadderFightCntDict["FightCnt"] + vipAddNum
- CanAddCntPerDay = HighLadderFightCntDict["CanAddCnt"]
- if hadFightCnt >= (FightCntPerDay + AddCnt): #每日默认次数 + 已购买次数
- Count = AddCnt + 1
- if Count > CanAddCntPerDay:
- GameWorld.DebugLog('HightLadder### OnHightLadderChallenge AddCnt %s max %s' % (AddCnt, CanAddCntPerDay))
- return
- AddCountPrice = eval(HighLadderPriceDict["AddCount"])
- GameWorld.DebugLog('HightLadder### OnHightLadderChallenge hadFightCnt %s max %s' % (hadFightCnt, FightCntPerDay))
- needPay += AddCountPrice
- buyCount = True
-
- #校验挑战CD
- CDTime = GetCDTime(curPlayer)
- isRelCDTime = IsRelCDTime(curPlayer, tick)
- if isRelCDTime:
- ClearCDPrice = eval(HighLadderPriceDict["ClearCD"])
- needPay += ClearCDPrice
-
- #钻石购买价格
- if needPay:
- infoDict = {"CDTime":CDTime, "IsRelCDTime":isRelCDTime, "IsBuyCount":buyCount, "Count":Count,
- ChConfig.Def_Cost_Reason_SonKey:"CDAndCount"}
- if not PlayerControl.PayMoney(curPlayer, IPY_GameWorld.TYPE_Price_Gold_Money, needPay,
- ChConfig.Def_Cost_HighLadder, infoDict):
- return
- #清CD
- if isRelCDTime:
- ClearCDTime(curPlayer);
- #购买次数
- if buyCount:
- PlayerControl.NomalDictSetProperty(curPlayer, ChConfig.Def_PDict_HighLadderAddCnt, AddCnt + 1,
- ChConfig.Def_PDictType_Default)
-
- SendHighLadderState(curPlayer, tick)
-
- #发送相关数据
- sendPack = ChMapToGamePyPack.tagMGHighLadderChallenge()
- sendPack.PlayerID = curPlayer.GetPlayerID()
- sendPack.PlayerName = curPlayer.GetPlayerName()
- sendPack.PlayerLV = curPlayer.GetLV()
- sendPack.FightPower = curPlayer.GetFightPower()
- sendPack.VSOrder = clientPack.GetVSOrder()
- GameWorld.DebugLog('HightLadder### OnHightLadderChallenge VSOrder %s' % sendPack.VSOrder)
- #附带数据
- curFightPropertyDict = {}
- curFightPropertyDict["Job"] = curPlayer.GetJob()
- curFightPropertyDict["LVEx"] = curPlayer.GetLVEx()
- curFightPropertyDict["LV2"] = curPlayer.GetLV2()
- curFightPropertyDict["ReincarnationLv"] = curPlayer.GetReincarnationLv()
- curFightPropertyDict["OperateInfo"] = curPlayer.GetOperateInfo()
- #战斗属性
- curFightPropertyDict["Atk"] = curPlayer.GetMaxAtk()
- curFightPropertyDict["Def"] = curPlayer.GetDef()
- curFightPropertyDict["MaxHP"] = curPlayer.GetMaxHP()
- curFightPropertyDict["Hit"] = curPlayer.GetHit()
- curFightPropertyDict["Miss"] = curPlayer.GetMiss()
- curFightPropertyDict["AtkSpeed"] = curPlayer.GetBattleValEx1()
- curFightPropertyDict["GreatHitRate"] = curPlayer.GetGreatHitRate()
- curFightPropertyDict["GreatHit"] = curPlayer.GetGreatHitVal()
- curFightPropertyDict["LuckyHitRate"] = curPlayer.GetLuckyHitRate()
- curFightPropertyDict["LuckyHit"] = curPlayer.GetLuckyHitVal()
- curFightPropertyDict["SuperHitRate"] = curPlayer.GetSuperHitRate()
- curFightPropertyDict["SuperHit"] = curPlayer.GetSuperHit()
- curFightPropertyDict["IgnoreDefRate"] = curPlayer.GetIgnoreDefRate()
- curFightPropertyDict["DamageReduceRate"] = curPlayer.GetDamageReduceRate()
- hadFightCnt = curPlayer.NomalDictGetProperty(ChConfig.Def_PDict_HighLadderFightCnt, 0,
- ChConfig.Def_PDictType_Default)
- curFightPropertyDict["HadFightCnt"] = hadFightCnt
- historyMaxOrder = curPlayer.NomalDictGetProperty(ChConfig.Def_PDict_HighLadder_HistoryMaxOrder, 0,
- ChConfig.Def_PDictType_Default)
- curFightPropertyDict["HistoryMaxOrder"] = historyMaxOrder
- sendPack.FightPropertyData = str(curFightPropertyDict)
- sendPack.FightPropertyDataLen = len(sendPack.FightPropertyData)
- #装备数据
- equipPack = curPlayer.GetItemManager().GetPack(IPY_GameWorld.rptEquip)
- for index in xrange(ShareDefine.retMax):
- curEquip = equipPack.GetAt(index)
- if curEquip.IsEmpty():
- continue
- curEquipData = ChMapToGamePyPack.tagHightLadderItemInfo()
- curEquipData.ItemTypeID = curEquip.GetItemTypeID()
- curEquipData.ItemPlaceType = curEquip.GetItemPlaceType()
- curEquipData.ItemPlaceIndex = curEquip.GetItemPlaceIndex()
- curEquipData.Count = curEquip.GetCount()
- curEquipData.Maker = curEquip.GetGearScore()
- curEquipData.UserData = curEquip.GetUserData()
- curEquipData.UserDataLen = len(curEquipData.UserData)
-
- curEquipData.IsSuite = curEquip.GetIsSuite()
-
- sendPack.EquipList.append(curEquipData)
- sendPack.EquipCount = len(sendPack.EquipList)
- GameWorld.DebugLog('HightLadder### OnHightLadderChallenge out')
- NetPackCommon.SendPyPackToGameServer(sendPack)
- return
-
-##//03 01 天梯竞技场玩家挑战结果同步#tagGMHighLadderChallengeReuslt
-# @param curPackData, tick
-# @return None
-def OnGMHighLadderChallengeReuslt(curPackData, tick):
- GameWorld.DebugLog('HightLadder### OnGMHighLadderChallengeReuslt in')
- curPlayer = GameWorld.GetPlayerManager().FindPlayerByID(curPackData.PlayerID)
- if not curPlayer:
- return
- # 活跃度
- #PlayerActivity.AddActivityFinishCnt(curPlayer, ShareDefine.ActivityNum_HighLadderArena)
-
- #记录冷却时间
- AddCDTimePer(curPlayer, tick)
-
- #记录挑战次数
- hadFightCnt = curPlayer.NomalDictGetProperty(ChConfig.Def_PDict_HighLadderFightCnt, 0,
- ChConfig.Def_PDictType_Default)
- PlayerControl.NomalDictSetProperty(curPlayer, ChConfig.Def_PDict_HighLadderFightCnt, hadFightCnt + 1,
- ChConfig.Def_PDictType_Default)
- #记录连胜次数
- if curPackData.Result > 0:
- EventShell.EventRespons_ArenaEvent(curPlayer, "on_win")
-
- WinningStreakCnt = curPlayer.NomalDictGetProperty(ChConfig.Def_PDict_HighLadder_WinningStreak, 0,
- ChConfig.Def_PDictType_Default)
- WinningStreakCnt += 1
- PlayerControl.NomalDictSetProperty(curPlayer, ChConfig.Def_PDict_HighLadder_WinningStreak, WinningStreakCnt,
- ChConfig.Def_PDictType_Default)
-
- WinningStreakMsgDict = ReadChConfig.GetEvalChConfig("HighLadderWinningStreakMsg")
- winMsg = WinningStreakMsgDict.get(WinningStreakCnt, "")
- if winMsg:
- PlayerControl.WorldNotify(0, winMsg, [curPlayer.GetPlayerName(), "%s" % WinningStreakCnt])
-
- # 胜利成就
- #PlayerSuccess.DoAddSuccessProgress(curPlayer, ShareDefine.SuccType_HighLadderWin, 1)
- # 连续胜利成就
- #successType = ShareDefine.SuccType_JJCWin
- #PlayerSuccess.UptateSuccessProgress(curPlayer, successType, WinningStreakCnt)
-
- else:
- PlayerControl.NomalDictSetProperty(curPlayer, ChConfig.Def_PDict_HighLadder_WinningStreak, 0,
- ChConfig.Def_PDictType_Default)
-
-
-
- #计算奖励 参数
- PlusInfoDict = eval(curPackData.PlusInfo)
- upOrder = PlusInfoDict["upOrder"]
- order = PlusInfoDict["Order"]
- vsorder = PlusInfoDict["VSOrder"]
- awardItemList = PlusInfoDict["AwardItemList"]
- newMaxOrder = PlusInfoDict["HistoryMaxOrder"]
- GameWorld.DebugLog("OnGMHighLadderChallengeReuslt awardItemList=%s" % str(awardItemList))
- reLV = curPlayer.GetLV()
- reExp = 0
- reMoney = 0
- result = curPackData.Result
-
- historyMaxOrder = curPlayer.NomalDictGetProperty(ChConfig.Def_PDict_HighLadder_HistoryMaxOrder, 0,
- ChConfig.Def_PDictType_Default)
-
- GameWorld.DebugLog(' JJC历史最高排名更新 oldhistoryMaxOrder=%s,newMaxOrder=%s,upOrder=%s' % (historyMaxOrder, newMaxOrder, upOrder))
- PlayerControl.NomalDictSetProperty(curPlayer, ChConfig.Def_PDict_HighLadder_HistoryMaxOrder, newMaxOrder,
- ChConfig.Def_PDictType_Default)
-
- # 触发任务事件
- EventShell.EventRespons_ArenaEvent(curPlayer, "on_join")
-
- #计算奖励
- HighLadderRewardDict = ReadChConfig.GetEvalChConfig("HighLadderReward")
- curHighLadderPoint = eval(HighLadderRewardDict["HighLadderPoint"])
- curExp = eval(HighLadderRewardDict["Exp"])
- curMoney = eval(HighLadderRewardDict["Money"])
- curGoldPaper = eval(HighLadderRewardDict["GoldPaper"])
- #积分
- PlayerControl.AddHighLadderCurrency(curPlayer, curHighLadderPoint, False, False)
-
- #经验
- playerControl = PlayerControl.PlayerControl(curPlayer)
- playerControl.AddExp(curExp, isSysHint=False)
- #金币
- addDataDict = {ChConfig.Def_Give_Reason_SonKey:"Challenge"}
- PlayerControl.GiveMoney(curPlayer, IPY_GameWorld.TYPE_Price_Silver_Money, curMoney,
- ChConfig.Def_GiveMoney_HighLadder, addDataDict, False)
- #绑定钻石
- PlayerControl.GiveMoney(curPlayer, IPY_GameWorld.TYPE_Price_Gold_Paper, curGoldPaper,
- ChConfig.Def_GiveMoney_HighLadder, addDataDict, False)
- GameWorld.DebugLog('HightLadder### OnGMHighLadderChallengeReuslt out')
- if awardItemList:
- for itemID, itemCnt, isBind in awardItemList:
- ItemControler.GivePlayerItem(curPlayer, itemID, itemCnt, 0,
- [IPY_GameWorld.rptItem, IPY_GameWorld.rptAnyWhere])
-
- SendHighLadderState(curPlayer, tick)
- return
-
-
-
-##获取竞技场挑战冷却时间
-# @param curPlayer
-# @return None
-def GetCDTime(curPlayer):
-# HighLadderCDTimeDict = ReadChConfig.GetEvalChConfig("HighLadderCDTime")
-# CDTime = HighLadderCDTimeDict["CDTime"]
-# AddCDPer = HighLadderCDTimeDict["AddCDPer"]
- #服务器的tick是开机后从0算起的,要用现实时间戳,节省字典的做法为上线的时候减去CD时间
- tick = int(time.time())
-
- totalCD = curPlayer.NomalDictGetProperty(ChConfig.Def_PDict_HighLadder_CDTime, 0,
- ChConfig.Def_PDictType_Default)
- lastTick = curPlayer.NomalDictGetProperty(ChConfig.Def_PDict_HighLadder_CDBeginTime, 0,
- ChConfig.Def_PDictType_Default)
-
- totalCD = max(0, totalCD - max((tick - lastTick), 0) * 1000)
-
- #更新CD时间 更新CD起始时间
- PlayerControl.NomalDictSetProperty(curPlayer, ChConfig.Def_PDict_HighLadder_CDTime, totalCD,
- ChConfig.Def_PDictType_Default)
- PlayerControl.NomalDictSetProperty(curPlayer, ChConfig.Def_PDict_HighLadder_CDBeginTime, tick,
- ChConfig.Def_PDictType_Default)
- if totalCD == 0:
- #重置CD时间
- ClearCDTime(curPlayer)
- return totalCD
-
-## 固定增加一次CD时间
-# @param curPlayer, tick
-# @return None
-def AddCDTimePer(curPlayer, tick):
- HighLadderCDTimeDict = ReadChConfig.GetEvalChConfig("HighLadderCDTime")
- CDTime = HighLadderCDTimeDict["CDTime"]
- AddCDPer = HighLadderCDTimeDict["AddCDPer"]
-
- totalCD = GetCDTime(curPlayer)
- totalCD = totalCD + AddCDPer
-
- #服务器的tick是开机后从0算起的,要用现实时间戳,节省字典的做法为上线的时候减去CD时间
- tick = int(time.time())
- PlayerControl.NomalDictSetProperty(curPlayer, ChConfig.Def_PDict_HighLadder_CDBeginTime, tick,
- ChConfig.Def_PDictType_Default)
- #更新CD时间
- PlayerControl.NomalDictSetProperty(curPlayer, ChConfig.Def_PDict_HighLadder_CDTime, totalCD,
- ChConfig.Def_PDictType_Default)
- if totalCD > CDTime:#超过可累计CD,进入真正冷却状态
- PlayerControl.NomalDictSetProperty(curPlayer, ChConfig.Def_PDict_HighLadder_IsRelCD, 1,
- ChConfig.Def_PDictType_Default)
- return
-
-## 清除CD时间
-# @param curPlayer, tick
-# @return None
-def ClearCDTime(curPlayer):
- #更新CD时间
- PlayerControl.NomalDictSetProperty(curPlayer, ChConfig.Def_PDict_HighLadder_CDTime, 0,
- ChConfig.Def_PDictType_Default)
- PlayerControl.NomalDictSetProperty(curPlayer, ChConfig.Def_PDict_HighLadder_CDBeginTime, 0,
- ChConfig.Def_PDictType_Default)
- PlayerControl.NomalDictSetProperty(curPlayer, ChConfig.Def_PDict_HighLadder_IsRelCD, 0,
- ChConfig.Def_PDictType_Default)
-## 是否在真实冷却状态
-# @param curPlayer, tick
-# @return None
-def IsRelCDTime(curPlayer, tick):
- GetCDTime(curPlayer)
- return curPlayer.NomalDictGetProperty(ChConfig.Def_PDict_HighLadder_IsRelCD, 0,
- ChConfig.Def_PDictType_Default)
-
-##//A5 36 天梯清除挑战CD#tagCMHighLadderClearCD
-# @param index, clientPack, tick
-# @return None
-def OnHighLadderClearCD(index, clientPack, tick):
- curPlayer = GameWorld.GetPlayerManager().GetPlayerByIndex(index)
- HighLadderPriceDict = ReadChConfig.GetEvalChConfig("HighLadderPrice")
- #校验挑战CD
- CDTime = GetCDTime(curPlayer)
- if CDTime > 0:
- ClearCDPrice = eval(HighLadderPriceDict["ClearCD"])
- if not PlayerControl.PayMoney(curPlayer, IPY_GameWorld.TYPE_Price_Gold_Money, ClearCDPrice,
- ChConfig.Def_Cost_HighLadder, {"CDTime":CDTime, ChConfig.Def_Cost_Reason_SonKey:"CD"}):
- return
-
- ClearCDTime(curPlayer)
- SendHighLadderState(curPlayer, tick)
- return
-
-##//A5 37 天梯增加挑战次数#tagCMHighLadderAddCount
-# @param index, clientPack, tick
-# @return None
-def OnHighLadderAddCount(index, clientPack, tick):
- curPlayer = GameWorld.GetPlayerManager().GetPlayerByIndex(index)
- HighLadderFightCntDict = ReadChConfig.GetEvalChConfig("HighLadderFightCnt")
- FightCntPerDay = HighLadderFightCntDict["FightCnt"]
- CanAddCntPerDay = HighLadderFightCntDict["CanAddCnt"]
- #购买次数
- AddCnt = curPlayer.NomalDictGetProperty(ChConfig.Def_PDict_HighLadderAddCnt, 0,
- ChConfig.Def_PDictType_Default)
- Count = AddCnt + 1
- if Count > CanAddCntPerDay:
- GameWorld.DebugLog('HightLadder### OnHighLadderAddCount AddCnt %s max %s' % (AddCnt, CanAddCntPerDay))
- return
- HighLadderPriceDict = ReadChConfig.GetEvalChConfig("HighLadderPrice")
- AddCountPrice = eval(HighLadderPriceDict["AddCount"])
- if not PlayerControl.PayMoney(curPlayer, IPY_GameWorld.TYPE_Price_Gold_Money, AddCountPrice,
- ChConfig.Def_Cost_HighLadder, {"Count":Count, ChConfig.Def_Cost_Reason_SonKey:"Count"}):
- return
-
- PlayerControl.NomalDictSetProperty(curPlayer, ChConfig.Def_PDict_HighLadderAddCnt, AddCnt + 1,
- ChConfig.Def_PDictType_Default)
- SendHighLadderState(curPlayer, tick)
- return
-
-
-
-
-##//A5 34 查询天梯竞技场状态#tagCMQueryHighLadderState
-# @param index, clientPack, tick
-# @return None
-def OnQueryHighLadderState(index, clientPack, tick):
-
- curPlayer = GameWorld.GetPlayerManager().GetPlayerByIndex(index)
-
- SendHighLadderState(curPlayer, tick)
-
-## 刷新天梯竞技场状态
-# @param curPlayer
-# @return None
-def SendHighLadderState(curPlayer, tick):
- hadFightCnt = curPlayer.NomalDictGetProperty(ChConfig.Def_PDict_HighLadderFightCnt, 0,
- ChConfig.Def_PDictType_Default)
- AddCnt = curPlayer.NomalDictGetProperty(ChConfig.Def_PDict_HighLadderAddCnt, 0,
- ChConfig.Def_PDictType_Default)
- vipAddNum = PlayerCostVIP.GetArenaNum(curPlayer)
- HighLadderFightCntDict = ReadChConfig.GetEvalChConfig("HighLadderFightCnt")
- FightCntPerDay = HighLadderFightCntDict["FightCnt"] + vipAddNum
- curCurrency = curPlayer.NomalDictGetProperty(ChConfig.Def_PDict_HighLadder_Currency, 0,
- ChConfig.Def_PDictType_Default)
-
- sendPack = ChPyNetSendPack.tagMCHighLadderState()
- sendPack.Count = hadFightCnt
- sendPack.MaxCount = FightCntPerDay + AddCnt
- sendPack.CDTime = GetCDTime(curPlayer)
- sendPack.IsRelCD = IsRelCDTime(curPlayer, tick)
- sendPack.Currency = curCurrency
- NetPackCommon.SendFakePack(curPlayer, sendPack)
- return
-
-
-## 天梯每日逻辑
-# @param curPlayer
-# @return None
-def OnDay(curPlayer):
- #清除每日挑战天梯次数记录
- PlayerControl.NomalDictSetProperty(curPlayer, ChConfig.Def_PDict_HighLadderFightCnt, 0, ChConfig.Def_PDictType_Default)
- #清除昨日已购买次数
- PlayerControl.NomalDictSetProperty(curPlayer, ChConfig.Def_PDict_HighLadderAddCnt, 0, ChConfig.Def_PDictType_Default)
- #清除昨日领奖记录
- PlayerControl.NomalDictSetProperty(curPlayer, ChConfig.Def_PDict_HighLadder_DayRewardGot, 0, ChConfig.Def_PDictType_Default)
- #清除CD
- ClearCDTime(curPlayer)
- tick = GameWorld.GetGameWorld().GetTick()
- #刷新天梯竞技场状态
- SendHighLadderState(curPlayer, tick)
- #通知GameServer查询一次奖励情况
- sendMsg = '%s' % ([curPlayer.GetID(), 0, 0])
- GameWorld.GetPlayerManager().GameServer_QueryPlayerResult(curPlayer.GetID(), 0, 0, 'HighLadderReward',
- sendMsg, len(sendMsg))
- return
-
-## //A5 35 查询天梯竞技场奖励#tagCMQueryHighLadderReward
-# @param index, clientPack, tick
-# @return None
-def OnQueryHighLadderReward(index, clientPack, tick):
- curPlayer = GameWorld.GetPlayerManager().GetPlayerByIndex(index)
- hadGot = curPlayer.NomalDictGetProperty(ChConfig.Def_PDict_HighLadder_DayRewardGot, 0, ChConfig.Def_PDictType_Default)
- if clientPack.Type == 1 and hadGot:
- #领奖,已领取的直接返回客户端
- return
-
- #通知GameServer查询或领取奖励
- sendMsg = '%s' % ([curPlayer.GetID(), clientPack.Type, hadGot])
- GameWorld.GetPlayerManager().GameServer_QueryPlayerResult(curPlayer.GetID(), 0, 0, 'HighLadderReward',
- sendMsg, len(sendMsg))
-## GameServer查询天梯竞技场奖励领取结果
-# @param curPlayer,order
-# @return None
-def GameServer_GetHighLadderRewardResult(curPlayer, order):
- hadGot = curPlayer.NomalDictGetProperty(ChConfig.Def_PDict_HighLadder_DayRewardGot, 0, ChConfig.Def_PDictType_Default)
- if hadGot:
- return
- #根据奖励类型给予奖励
- result = GiveHighLadderReward(curPlayer, order)
- if result:
- #记录已领取
- PlayerControl.NomalDictSetProperty(curPlayer, ChConfig.Def_PDict_HighLadder_DayRewardGot, 1, ChConfig.Def_PDictType_Default)
- hadGot = curPlayer.NomalDictGetProperty(ChConfig.Def_PDict_HighLadder_DayRewardGot, 0, ChConfig.Def_PDictType_Default)
- #通知客户端更新奖励领取状态
- sendPack = ChPyNetSendPack.tagGCHighLadderRewardInfo()
- sendPack.hadGot = hadGot
- sendPack.Order = order
- NetPackCommon.SendFakePack(curPlayer, sendPack)
- return
-
-## 根据奖励类型给予奖励
-# @param curPlayer,order
-# @return None
-def GiveHighLadderReward(curPlayer, order):
- HighLadderDayRewardDict = ReadChConfig.GetEvalChConfig("HighLadderDayReward")
- playerJob = curPlayer.GetJob()
- curJobReward = None
- for key in HighLadderDayRewardDict.keys():
- minOrder, maxOrder = key
- if order >= minOrder and order <= maxOrder:
- curRewardDict = HighLadderDayRewardDict.get(key, {})
- if curRewardDict == {}:
- GameWorld.DebugLog('HightLadder### GiveHighLadderReward order=%s no Reward' % order)
- return False
- curJobReward = curRewardDict.get(playerJob, None)
- if curJobReward == None:
- GameWorld.DebugLog('HightLadder### GiveHighLadderReward order=%s job = %s no Reward' % (\
- order, playerJob))
- return False
- break
- if curJobReward == None:
- return False
- #积分,金币,经验,魔魂,奖励占背包格子数,[[是否定制表,ID, 数量, 是否绑定],[下一个奖励,...,...,...],...]
- rewardCurrency, rewardMoney, rewardExp, rewardMohun, needSpace, rewardList = curJobReward
- packSpaceCnt = max((ItemControler.GetItemPackSpace(curPlayer, IPY_GameWorld.rptItem)), \
- ItemControler.GetItemPackSpace(curPlayer, IPY_GameWorld.rptAnyWhere))
-
- if needSpace > packSpaceCnt:
- #背包空间已满
- PlayerControl.NotifyCode(curPlayer, "GeRen_chenxin_998371")
- return False
- #积分
- PlayerControl.AddHighLadderCurrency(curPlayer, rewardCurrency)
- #经验
- playerControl = PlayerControl.PlayerControl(curPlayer)
- playerControl.AddExp(rewardExp, isSysHint=True)
- #金币
- addDataDict = {ChConfig.Def_Give_Reason_SonKey:"Reward"}
- PlayerControl.GiveMoney(curPlayer, IPY_GameWorld.TYPE_Price_Silver_Money, rewardMoney, ChConfig.Def_GiveMoney_HighLadder, addDataDict)
- #魔魂
- PlayerControl.PlayerAddZhenQi(curPlayer, rewardMohun, True, True, "HighLadder")
-
- for index in xrange(len(rewardList)):
- itemType, itemID, itemCount, isBind = rewardList[index]
- #给予物品
- # 一般物品
- if itemType == Def_ItemType_CommonItem:
- if not ItemControler.GivePlayerItem(curPlayer, itemID, itemCount, 0, [IPY_GameWorld.rptItem, IPY_GameWorld.rptAnyWhere]):
- continue
- #PlayerControl.NotifyCode(curPlayer, "ObtainRes01", [itemID, itemCount])
- # 特殊定制物品
- elif itemType == Def_ItemType_AppointItem:
- itemData = PyMapTable.GetPyMapTable("AppointItemList").GetRecord("ItemIndex", str(itemID))
- if not itemData:
- GameWorld.ErrLog("GiveHighLadderReward()itemType=%s,ItemIndex=%s not data" % (itemType, itemID))
- continue
- if len(itemData) != 1:
- GameWorld.ErrLog("GiveHighLadderReward()itemType=%s,ItemIndex=%s,recordCount=%s !=1 error" % \
- (itemType, itemID, len(itemData)))
- continue
-
- itemDictData = itemData[0]
- itemDictData['IsBind'] = str(isBind)
- ItemControler.GivePlayerEquip(curPlayer, itemDictData)
- #PlayerControl.NotifyCode(curPlayer, "ObtainRes01", [int(itemDictData['ItemID']), itemCount])
- return True
-
-## 玩家登录通知
-# @param curPlayer
-# @return None
-def OnLogin(curPlayer):
- tick = GameWorld.GetGameWorld().GetTick()
- SendHighLadderState(curPlayer, tick)
- return
-
-
-
-
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 b31bbb2..af702be 100644
--- a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/PlayerControl.py
+++ b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/PlayerControl.py
@@ -57,7 +57,6 @@
import PlayerWorldAverageLv
import GameLogic_ManorWar
import PlayerActivity
-import HighLadderTube
import FBCommon
import PlayerViewCacheTube
import PassiveBuffEffMng
@@ -6585,41 +6584,6 @@
#---功能层防御值----
def GetFuncDef(curPlayer): return curPlayer.GetDictByKey(ChConfig.Def_PlayerKey_CopyFuncAttr % (ChConfig.TYPE_Calc_AttrDEF - 1))
def SetFuncDef(curPlayer, value): curPlayer.SetDict(ChConfig.Def_PlayerKey_CopyFuncAttr % (ChConfig.TYPE_Calc_AttrDEF - 1), value)
-
-
-## 增加天梯竞技场积分
-# @param curPlayer 玩家实例
-# @return
-def AddHighLadderCurrency(curPlayer, addCount, isSysMsg=True, isRefresh=True):
- curCurrency = curPlayer.NomalDictGetProperty(ChConfig.Def_PDict_HighLadder_Currency)
- curCurrency += addCount
- NomalDictSetProperty(curPlayer, ChConfig.Def_PDict_HighLadder_Currency, curCurrency)
-
- if isSysMsg:
- #通知客户端得到金钱
- NotifyCode(curPlayer, "GetMoney", [ShareDefine.TYPE_Price_HighLadder_Currency, addCount])
- if isRefresh:
- tick = GameWorld.GetGameWorld().GetTick()
- HighLadderTube.SendHighLadderState(curPlayer, tick)
- return
-
-
-## 用天梯竞技场积分付费
-# @param curPlayer 玩家实例
-# @return
-def PayHighLadderCurrency(curPlayer, payCount, isSysMsg=True, isRefresh=True):
- curCurrency = curPlayer.NomalDictGetProperty(ChConfig.Def_PDict_HighLadder_Currency)
- if (curCurrency < payCount) or (payCount < 0):
- return False, curCurrency, curCurrency
- updCurrency = max(0, curCurrency - payCount)
- NomalDictSetProperty(curPlayer, ChConfig.Def_PDict_HighLadder_Currency, updCurrency)
- if isSysMsg:
- #通知客户端失去点数
- NotifyCode(curPlayer, "LostMoney", [ShareDefine.TYPE_Price_HighLadder_Currency, payCount])
- if isRefresh:
- tick = GameWorld.GetGameWorld().GetTick()
- HighLadderTube.SendHighLadderState(curPlayer, tick)
- return True, curCurrency, updCurrency
## 计算功能背包物品属性
# @param curPlayer 当前玩家
diff --git a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/PlayerCostVIP.py b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/PlayerCostVIP.py
index ee75fe6..5ed2f99 100644
--- a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/PlayerCostVIP.py
+++ b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/PlayerCostVIP.py
@@ -40,7 +40,6 @@
import BuffSkill
import EventShell
-import HighLadderTube
import Operate_PlayerBuyZhenQi
@@ -356,7 +355,6 @@
# @param tick
# @return None
def __NtfChangeInfo(curPlayer, tick):
- HighLadderTube.SendHighLadderState(curPlayer, tick)
Operate_PlayerBuyZhenQi.Sync_NotifyDataChange(curPlayer)
return
diff --git a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/RemoteQuery/GY_Query_HighLadderReward.py b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/RemoteQuery/GY_Query_HighLadderReward.py
deleted file mode 100644
index fed128d..0000000
--- a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/RemoteQuery/GY_Query_HighLadderReward.py
+++ /dev/null
@@ -1,47 +0,0 @@
-#!/usr/bin/python
-# -*- coding: GBK -*-
-#
-#
-##@package GY_Query_HighLadderReward.py
-#
-# @todo:记录邀请进入天梯竞技房间信息
-#
-# @author xmnathan
-# @date 2014-08-05 15:30
-# @version 1.0
-# @note:
-#
-#------------------------------------------------------------------------------
-"""Version = 2014-08-05 15:30"""
-#------------------------------------------------------------------------------
-# 导入
-import GameWorld
-import ChConfig
-import HighLadderTube
-#------------------------------------------------------------------------------
-## 请求逻辑
-# @param query_Type 请求类型
-# @param query_ID 请求的玩家ID
-# @param packCMDList 发包命令 []
-# @param tick 当前时间
-# @return "True" or "False" or ""
-# @remarks 函数详细说明.
-def DoLogic(query_Type, query_ID, packCMDList, tick):
- return
-
-#---------------------------------------------------------------------
-## 执行结果
-# @param curPlayer 发出请求的玩家
-# @param callFunName 功能名称
-# @param funcResult 查询的结果
-# @param tick 当前时间
-# @return None
-# @remarks 函数详细说明.
-def DoResult(curPlayer, callFunName, funcResult, tick):
- resultList = eval(funcResult)
- PlayerID = resultList[0]
- hadGot = resultList[1]
- order = resultList[2]
-
- HighLadderTube.GameServer_GetHighLadderRewardResult(curPlayer, order)
- return
\ No newline at end of file
diff --git a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/ShareDefine.py b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/ShareDefine.py
index 16fc860..46d0bae 100644
--- a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/ShareDefine.py
+++ b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/ShareDefine.py
@@ -639,11 +639,8 @@
Def_BT_ZhuXianTower, #诛仙塔榜
Def_BT_NewFCCostGold, #消费排行榜(新仙界盛典)
- Def_BT_HighLadder, #天梯竞技场排行
- Def_BT_HighLadder_Yester, #天梯竞技场昨日排行
-
Def_BT_Max, #排行榜最大类型
-) = range(0, 26 + 2)
+) = range(0, 24 + 2)
#职业对应战力排行榜类型
JobFightPowerBillboardDict = {
@@ -875,14 +872,8 @@
#以下是旧的金钱类型
TYPE_Price_Magic_Integral = 101 # 魔方寻宝积分
-TYPE_Price_HighLadder_Currency = 102 # 天梯竞技场积分
-TYPE_Price_HighLadder_Signet = 103 # 物品兑换(圣光晶石)
TYPE_Price_GongXun = 105 # 功勋点
TYPE_Price_ArrestPoint = 110 # 悬赏积分
-
-# 物品兑换
-TYPE_Price_ItemExchangeList = [TYPE_Price_HighLadder_Signet,
- ]
# 自定义积分及通知字典 {货币类型:通知客户端刷新类型, ...} , 如果不通知的话刷新类型则配置 None
TYPE_Price_CurrencyDict = {
--
Gitblit v1.8.0