From 4c6786e17ef724a0dfdfeca8cf4a36bc4a7b9898 Mon Sep 17 00:00:00 2001
From: hxp <ale99527@vip.qq.com>
Date: 星期五, 15 二月 2019 15:17:26 +0800
Subject: [PATCH] 6211 【后端】【1.6】合服任务单(合服邮件、重置首充双倍、重置商店购买次数、设置合服命令SetMixServer)
---
ServerPython/CoreServerGroup/GameServer/Script/Player/PlayerFamily.py | 37 +++++++++
/dev/null | 34 --------
ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Event/EventSrc/FunctionNPCCommon.py | 28 +++++--
ServerPython/CoreServerGroup/GameServer/Script/GameWorldLogic/GameWorldProcess.py | 10 +
ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/ShareDefine.py | 1
ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/ChPlayer.py | 46 +++++++++-
ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/PlayerCoin.py | 22 +++-
ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/PlayerBillboard.py | 19 ----
ServerPython/CoreServerGroup/GameServer/Script/GM/Commands/SetMixServer.py | 19 +++-
ServerPython/CoreServerGroup/GameServer/Script/ShareDefine.py | 1
ServerPython/CoreServerGroup/GameServer/Script/Player/PlayerDBGSEvent.py | 3
ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/ChConfig.py | 3
12 files changed, 138 insertions(+), 85 deletions(-)
diff --git a/ServerPython/CoreServerGroup/GameServer/Script/GM/Commands/SetMixServer.py b/ServerPython/CoreServerGroup/GameServer/Script/GM/Commands/SetMixServer.py
index 3bba077..bed0a52 100644
--- a/ServerPython/CoreServerGroup/GameServer/Script/GM/Commands/SetMixServer.py
+++ b/ServerPython/CoreServerGroup/GameServer/Script/GM/Commands/SetMixServer.py
@@ -16,11 +16,12 @@
# 详细描述: 设置合服
#
#--------------------------------------------------------------------
-"""Version = 2014-12-03 18:30"""
-
+#"""Version = 2014-12-03 18:30"""
+#--------------------------------------------------------------------
import GameWorld
import PlayerDBGSEvent
import PlayerEventCounter
+import GameWorldProcess
import ShareDefine
import GMCommon
#---------------------------------------------------------------------
@@ -40,17 +41,25 @@
PlayerDBGSEvent.SetDBGSTrig_ByKey(PlayerDBGSEvent.Def_IsMixServer, 1 if isMix else 0)
PlayerDBGSEvent.SetDBGSTrig_ByKey(PlayerDBGSEvent.Def_MixServerDay, 0)
PlayerDBGSEvent.SetDBGSTrig_ByKey(PlayerDBGSEvent.Def_IsMixServerInitOK, 0)
- openDay = PlayerDBGSEvent.GetDBGSTrig_ByKey(PlayerDBGSEvent.Def_ServerDay)
- if openDay <= 14:
- PlayerDBGSEvent.SetDBGSTrig_ByKey(PlayerDBGSEvent.Def_ServerDay, 15)
+ if isMix:
+ openDay = PlayerDBGSEvent.GetDBGSTrig_ByKey(PlayerDBGSEvent.Def_ServerDay)
+ if openDay <= 14:
+ openDay = 15
+ openDay += 1
+ PlayerDBGSEvent.SetDBGSTrig_ByKey(PlayerDBGSEvent.Def_ServerDay, openDay) # 为了变更合服时的开服天标记,这里每次默认加1
+ GameWorldProcess.__DoMixServerInit()
openDay = PlayerDBGSEvent.GetDBGSTrig_ByKey(PlayerDBGSEvent.Def_ServerDay)
isMixServer = PlayerDBGSEvent.GetDBGSTrig_ByKey(PlayerDBGSEvent.Def_IsMixServer)
mixServerDay = PlayerDBGSEvent.GetDBGSTrig_ByKey(PlayerDBGSEvent.Def_MixServerDay)
+ lastMixServerDay = PlayerDBGSEvent.GetDBGSTrig_ByKey(PlayerDBGSEvent.Def_LastMixServerDay)
+ lastMixServerWorldLV = PlayerDBGSEvent.GetDBGSTrig_ByKey(PlayerDBGSEvent.Def_LastMixServerWorldLV)
GameWorld.SendMapServerMsgEx(ShareDefine.Def_Notify_WorldKey_ServerDay, openDay)
GameWorld.SendMapServerMsgEx(ShareDefine.Def_Notify_WorldKey_IsMixServer, isMixServer)
GameWorld.SendMapServerMsgEx(ShareDefine.Def_Notify_WorldKey_MixServerDay, mixServerDay)
+ GameWorld.SendMapServerMsgEx(ShareDefine.Def_Notify_WorldKey_LastMixServerDay, lastMixServerDay)
+ GameWorld.SendMapServerMsgEx(ShareDefine.Def_Notify_WorldKey_LastMixServerWorldLV, lastMixServerWorldLV)
# 刷新一次活动
tick = GameWorld.GetGameWorld().GetTick()
diff --git a/ServerPython/CoreServerGroup/GameServer/Script/GameWorldLogic/GameWorldProcess.py b/ServerPython/CoreServerGroup/GameServer/Script/GameWorldLogic/GameWorldProcess.py
index 1825715..0aff318 100644
--- a/ServerPython/CoreServerGroup/GameServer/Script/GameWorldLogic/GameWorldProcess.py
+++ b/ServerPython/CoreServerGroup/GameServer/Script/GameWorldLogic/GameWorldProcess.py
@@ -1382,9 +1382,11 @@
# 合服天
mixServerDay = PlayerDBGSEvent.GetDBGSTrig_ByKey(PlayerDBGSEvent.Def_MixServerDay)
GameWorld.SendMapServerMsgEx(ShareDefine.Def_Notify_WorldKey_MixServerDay, mixServerDay)
- # 上次合服时的开服天数
+ # 上次合服时的开服天数、世界等级
lastMixServerDay = PlayerDBGSEvent.GetDBGSTrig_ByKey(PlayerDBGSEvent.Def_LastMixServerDay)
GameWorld.SendMapServerMsgEx(ShareDefine.Def_Notify_WorldKey_LastMixServerDay, lastMixServerDay)
+ lastMixServerWorldLV = PlayerDBGSEvent.GetDBGSTrig_ByKey(PlayerDBGSEvent.Def_LastMixServerWorldLV)
+ GameWorld.SendMapServerMsgEx(ShareDefine.Def_Notify_WorldKey_LastMixServerWorldLV, lastMixServerWorldLV)
# 通知战盟相关活动开启状态
fadState = PlayerDBGSEvent.GetDBGSTrig_ByKey(ShareDefine.Def_Notify_WorldKey_FamilyActivityDayState)
@@ -1458,10 +1460,12 @@
# 设置合服首次启动加载成功
PlayerDBGSEvent.SetDBGSTrig_ByKey(PlayerDBGSEvent.Def_IsMixServerInitOK, 1)
- # 设置本次合服时的开服天数
+ # 设置本次合服时的开服天数、世界等级
serverDay = PlayerDBGSEvent.GetDBGSTrig_ByKey(PlayerDBGSEvent.Def_ServerDay)
PlayerDBGSEvent.SetDBGSTrig_ByKey(PlayerDBGSEvent.Def_LastMixServerDay, serverDay)
- GameWorld.Log(" 合服首次启动加载成功!")
+ worldLV = PlayerDBGSEvent.GetDBGSTrig_ByKey(ShareDefine.Def_Notify_WorldKey_WorldAverageLv)
+ PlayerDBGSEvent.SetDBGSTrig_ByKey(PlayerDBGSEvent.Def_LastMixServerWorldLV, worldLV)
+ GameWorld.Log(" 合服首次启动加载成功! serverDay=%s,worldLV=%s" % (serverDay, worldLV))
return
def __DelOutofdayRecData(universalRecMgr):
diff --git a/ServerPython/CoreServerGroup/GameServer/Script/Player/PlayerDBGSEvent.py b/ServerPython/CoreServerGroup/GameServer/Script/Player/PlayerDBGSEvent.py
index 7e15394..08fdb5b 100644
--- a/ServerPython/CoreServerGroup/GameServer/Script/Player/PlayerDBGSEvent.py
+++ b/ServerPython/CoreServerGroup/GameServer/Script/Player/PlayerDBGSEvent.py
@@ -80,6 +80,9 @@
#上次合服时的开服天数
Def_LastMixServerDay = 'LastMixServerDay'
+#上次合服时的世界等级
+Def_LastMixServerWorldLV = 'LastMixServerWorldLV'
+
#首次开服时间,注意不要用该日期做开服天相关的功能逻辑,如果要用开服天,请用 Def_ServerDay
''' 原因:
因为目前开服天的逻辑大部分是用 Def_ServerDay,当出现服务器宕机超过24小时时,就会导致 Def_ServerDay 与 Def_InitOpenServerTime 不对应
diff --git a/ServerPython/CoreServerGroup/GameServer/Script/Player/PlayerFamily.py b/ServerPython/CoreServerGroup/GameServer/Script/Player/PlayerFamily.py
index 2e2a332..3894633 100644
--- a/ServerPython/CoreServerGroup/GameServer/Script/Player/PlayerFamily.py
+++ b/ServerPython/CoreServerGroup/GameServer/Script/Player/PlayerFamily.py
@@ -83,6 +83,9 @@
def GetCurWeekMissionMoney(curFamily): return curFamily.GetExtra2()
def SetCurWeekMissionMoney(curFamily, value): return curFamily.SetExtra2(min(value, ChConfig.Def_UpperLimit_DWord))
+# 仙盟上次处理的合服天
+def GetFamilyMixServerDay(curFamily): return curFamily.GetExtra1()
+def SetFamilyMixServerDay(curFamily, value): return curFamily.SetExtra1(value)
## ------------------ 成员 ----------------------
def GetMemberFightPower(curMember): return curMember.GetExattr3()
def SetMemberFightPower(curMember, fightPower): return curMember.SetExattr3(fightPower)
@@ -235,6 +238,9 @@
curFamily.SetLV(1)
curFamily.SetAcceptJoin(ShareDefine.FamilyAcceptJoin_Agree) #设置收人方式为直接通过申请
PyDataManager.GetFamilyStoreItemManager().DelFamilyStoreItemAll(curFamily.GetID())
+
+ #新创建的仙盟默认设置已处理过合服
+ SetFamilyMixServerDay(curFamily, PlayerDBGSEvent.GetDBGSTrig_ByKey(PlayerDBGSEvent.Def_LastMixServerDay))
#-设置家族成员属性
DoPlayerJionFamily(curFamily, curPlayer, IPY_GameServer.fmlLeader)
@@ -1926,6 +1932,37 @@
PlayerRefresh(curPlayer, tick)
GameWorldFamilyWar.OnPlayerLogin(curFamily, curPlayer)
+
+ # 盟主上线处理
+ if curMember.GetFamilyLV() == IPY_GameServer.fmlLeader:
+ OnFamilyLeaderLogin(curPlayer, curFamily)
+ return
+
+def OnFamilyLeaderLogin(curPlayer, curFamily):
+ ## 盟主登录处理
+ __DoFamilyMixServerLogicOnLeaderLogin(curPlayer, curFamily)
+ return
+
+def __DoFamilyMixServerLogicOnLeaderLogin(curPlayer, curFamily):
+ ## 合服仙盟盟主登录处理
+
+ isMixServer = PlayerDBGSEvent.GetDBGSTrig_ByKey(PlayerDBGSEvent.Def_IsMixServer)
+ if not isMixServer:
+ return
+ lastMixServerDay = PlayerDBGSEvent.GetDBGSTrig_ByKey(PlayerDBGSEvent.Def_LastMixServerDay)
+ familyID = curFamily.GetID()
+ familyMixServerDay = GetFamilyMixServerDay(curFamily)
+ if familyMixServerDay == lastMixServerDay:
+ GameWorld.DebugLog("已经处理过仙盟盟主合服登录逻辑! lastMixServerDay=%s" % (lastMixServerDay), familyID)
+ return
+ SetFamilyMixServerDay(curFamily, lastMixServerDay)
+ GameWorld.Log("处理合服仙盟盟主登录! lastMixServerDay=%s" % (lastMixServerDay), familyID)
+
+ mailItemList = IpyGameDataPY.GetFuncEvalCfg("MixServerMail", 4)
+ playerID = curPlayer.GetPlayerID()
+ detailDict = {}
+ GameWorld.Log(" 发送合服盟主专属补偿邮件! familyID=%s,mailItemList=%s" % (familyID, mailItemList), playerID)
+ PlayerCompensation.SendMailByKey("MixServer2", [playerID], mailItemList, detail=detailDict)
return
#---------------------------------------------------------------------
## 玩家下线家族刷新逻辑
diff --git a/ServerPython/CoreServerGroup/GameServer/Script/ShareDefine.py b/ServerPython/CoreServerGroup/GameServer/Script/ShareDefine.py
index 194ae5e..5e81214 100644
--- a/ServerPython/CoreServerGroup/GameServer/Script/ShareDefine.py
+++ b/ServerPython/CoreServerGroup/GameServer/Script/ShareDefine.py
@@ -132,6 +132,7 @@
Def_Notify_WorldKey_IsMixServer = 'IsMixServer' # 是否合服服务器
Def_Notify_WorldKey_MixServerDay = 'MixServerDay' # 合服天数
Def_Notify_WorldKey_LastMixServerDay = 'LastMixServerDay' # 上次合服时的开服天数
+Def_Notify_WorldKey_LastMixServerWorldLV = 'LastMixServerWorldLV' # 上次合服时的世界等级
Def_Notify_WorldKey_OnDayEx = 'OnDayEx' # 特殊时间点凌晨X点过天
Def_Notify_WorldKey_OnWeekEx = 'OnWeekEx' # 特殊时间点凌晨X点过周
Def_Notify_WorldKey_OnMonthEx = 'OnMonthEx' # 特殊时间点凌晨X点过月
diff --git a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/ChConfig.py b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/ChConfig.py
index 7a4a4d5..63ba817 100644
--- a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/ChConfig.py
+++ b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/ChConfig.py
@@ -3537,8 +3537,7 @@
Def_PDict_LoginClientType = "LoginClientType" # 客户端登录类型
-Def_PDict_MSFirstLogin_UpdBillboard = "MSFirstLogin_UpdBillboard" # 合服首登同步排行榜信息
-Def_PDict_MixLoginDay = "MixLoginDay" # 合服首登处理标记
+Def_PDict_MixLoginDay = "MixLoginDay" # 合服首登处理标记天
Def_PDict_ExcActionItemCnt = "ExcI_%s_%s" # 活动兑换物品已兑换次数,参数(活动key,兑换物品对应次数编号标识)
diff --git a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Event/EventSrc/FunctionNPCCommon.py b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Event/EventSrc/FunctionNPCCommon.py
index 24e6d1c..8b756d8 100644
--- a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Event/EventSrc/FunctionNPCCommon.py
+++ b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Event/EventSrc/FunctionNPCCommon.py
@@ -216,18 +216,29 @@
elif onEventType == ShareDefine.Def_OnEventTypeEx:
refreshType = [4]
openServerDay = GameWorld.GetGameWorld().GetGameWorldDictByKey(ShareDefine.Def_Notify_WorldKey_ServerDay)
- if openServerDay % 3 == 0:
- refreshType = [4,7]
+ isMixServer = GameWorld.GetGameWorld().GetGameWorldDictByKey(ShareDefine.Def_Notify_WorldKey_IsMixServer)
+ if isMixServer:
+ mixServerDay = GameWorld.GetGameWorld().GetGameWorldDictByKey(ShareDefine.Def_Notify_WorldKey_MixServerDay)
+ if mixServerDay % 3 == 0:
+ refreshType.append(7)
+ elif openServerDay % 3 == 0:
+ refreshType.append(7)
else:
return
- __ResetShopItemBuyCount(curPlayer, refreshType)
+ ResetShopItemBuyCount(curPlayer, refreshType)
return
##商店物品OnWeek
# @param curPlayer 玩家实例
# @return
def ShopItemOnWeek(curPlayer, onEventType):
- __ResetShopItemBuyCount(curPlayer, [onEventType])
+ if onEventType == ShareDefine.Def_OnEventType:
+ refreshType = [1]
+ elif onEventType == ShareDefine.Def_OnEventTypeEx:
+ refreshType = [2]
+ else:
+ return
+ ResetShopItemBuyCount(curPlayer, refreshType)
return
##商店物品OnMonth
@@ -240,16 +251,17 @@
refreshType = 6
else:
return
- __ResetShopItemBuyCount(curPlayer, [refreshType])
+ ResetShopItemBuyCount(curPlayer, [refreshType])
return
def ShopItemOnCrossPKSeasonChange(curPlayer):
## 按跨服PK赛季重置
refreshType = 8
- __ResetShopItemBuyCount(curPlayer, [refreshType])
+ ResetShopItemBuyCount(curPlayer, [refreshType])
return
-def __ResetShopItemBuyCount(curPlayer, onEventTypeList):
+def ResetShopItemBuyCount(curPlayer, onEventTypeList=[]):
+ #@param onEventTypeList: 需要重置的类型列表,为空时重置所有类型
#重置商店物品购买次数 1:周一0点刷新 2:周一5点刷新 3:每日0点刷新 4:每日5点刷新 5每月0点 6每月5点 7每3天5点 8每赛季
syncIndexList = []
ipyDataMgr = IpyGameDataPY.IPY_Data()
@@ -257,7 +269,7 @@
shopItem = ipyDataMgr.GetStoreByIndex(i)
if not shopItem.GetLimitCnt():
continue
- if shopItem.GetRefreshType() not in onEventTypeList:
+ if onEventTypeList and shopItem.GetRefreshType() not in onEventTypeList:
continue
dayBuyCntKey = ChConfig.Def_PDict_ShopItemDayBuyCnt % shopItem.GetID()
curDayBuyCnt = curPlayer.NomalDictGetProperty(dayBuyCntKey)
diff --git a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/GM/Commands/ClearMixServerAward.py b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/GM/Commands/ClearMixServerAward.py
deleted file mode 100644
index 4cb1feb..0000000
--- a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/GM/Commands/ClearMixServerAward.py
+++ /dev/null
@@ -1,34 +0,0 @@
-#!/usr/bin/python
-# -*- coding: GBK -*-
-#
-#
-##@package ClearMixServerAward.py
-#
-# @todo:清除合服奖励
-#
-# @author ljd
-# @date 2014-12-01 16:30
-# @version 1.2
-# @note:
-#
-# @change: "2014-12-03 14:30" hxp 增加重置合服活动数据
-# @change: "2014-12-09 17:00" hxp 增加重置合服首登同步排行榜记录
-#
-#------------------------------------------------------------------------------
-#"""Version = 2014-12-09 17:00"""
-#------------------------------------------------------------------------------
-
-import PlayerControl
-import ChConfig
-#---------------------------------------------------------------------
-
-## 执行逻辑
-# @param curPlayer 当前玩家
-# @param cmdList 参数
-# @return None
-# @remarks 函数详细说明.
-def OnExec(curPlayer, cmdList):
-
- # 重置首登同步排行榜记录
- PlayerControl.NomalDictSetProperty(curPlayer, ChConfig.Def_PDict_MSFirstLogin_UpdBillboard, 0)
- return
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 6e04eb4..8a0fa4a 100644
--- a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/ChPlayer.py
+++ b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/ChPlayer.py
@@ -816,23 +816,55 @@
if not isMixServer:
return
- lastMixServerDayKey = ShareDefine.Def_Notify_WorldKey_LastMixServerDay
- lastMixServerDay = GameWorld.GetGameWorld().GetGameWorldDictByKey(lastMixServerDayKey)
- GameWorld.DebugLog("合服首登处理lastMixServerDay=%s" % lastMixServerDay, curPlayer.GetPlayerID())
+ playerID = curPlayer.GetPlayerID()
+ lastMixServerDay = GameWorld.GetGameWorld().GetGameWorldDictByKey(ShareDefine.Def_Notify_WorldKey_LastMixServerDay)
playerDay = curPlayer.NomalDictGetProperty(ChConfig.Def_PDict_MixLoginDay)
if playerDay == lastMixServerDay:
- GameWorld.DebugLog("本次合服已经登录过.")
+ GameWorld.DebugLog("本次合服已经登录过. lastMixServerDay=%s" % (lastMixServerDay), playerID)
return
-
+ mixServerWorldLV = GameWorld.GetGameWorld().GetGameWorldDictByKey(ShareDefine.Def_Notify_WorldKey_LastMixServerWorldLV) # 合服时的世界等级
+ GameWorld.Log("玩家合服首登处理! lastMixServerDay=%s,mixServerWorldLV=%s" % (lastMixServerDay, mixServerWorldLV), playerID)
PlayerControl.NomalDictSetProperty(curPlayer, ChConfig.Def_PDict_MixLoginDay, lastMixServerDay)
+ # 重置首充双倍
+ PlayerCoin.DoResetCTGCount(curPlayer, "MixServer")
+
+ # 重置商店购买次数
+ FunctionNPCCommon.ResetShopItemBuyCount(curPlayer)
+
+ # 合服邮件,盟主专属邮件在GameServer处理
+ mailItemList = IpyGameDataPY.GetFuncEvalCfg("MixServerMail", 1)
+ worldLVMailItemList = IpyGameDataPY.GetFuncEvalCfg("MixServerMail", 2)
+ mailMoneyList = IpyGameDataPY.GetFuncEvalCfg("MixServerMail", 3)
+ goldPaper, silver = mailMoneyList
+ worldLVItemList = []
+ for itemID, itemCount, isBind in worldLVMailItemList:
+ itemData = GameWorld.GetGameData().GetItemByTypeID(itemID)
+ if not itemData:
+ continue
+ curEff = itemData.GetEffectByIndex(0)
+ curEffID = curEff.GetEffectID()
+ if curEffID != ChConfig.Def_Effect_ItemAddLV:
+ continue
+ lvLimit = curEff.GetEffectValue(1)
+ if not lvLimit:
+ continue
+ if lvLimit <= mixServerWorldLV:
+ worldLVItemList = [[itemID, itemCount, isBind]]
+ else:
+ break
+ detailDict = {"MixServerWorldLV":mixServerWorldLV, "LastMixServerDay":lastMixServerDay}
+ addItemList = mailItemList + worldLVItemList
+ PlayerControl.SendMailByKey("MixServer1", [playerID], addItemList, goldPaper=goldPaper, silver=silver, detail=detailDict)
+ GameWorld.Log(" 发送合服补偿邮件: addItemList=%s" % (addItemList), playerID)
+
# 同步排行榜
- PlayerBillboard.UpdBillboardOnMixServerFirstLogin(curPlayer, lastMixServerDay)
+ PlayerBillboard.UpdatePlayerBillboardOnLeaveServer(curPlayer, isAll=True)
# 重置玩家改名次数
- UpdatePlayerName.ResetChangeNameCnt(curPlayer)
+ #UpdatePlayerName.ResetChangeNameCnt(curPlayer)
return
#---------------------------------------------------------------------
diff --git a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/PlayerBillboard.py b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/PlayerBillboard.py
index 98d6bdc..ec5c0d4 100644
--- a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/PlayerBillboard.py
+++ b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/PlayerBillboard.py
@@ -204,25 +204,6 @@
UpdatePlayerBillboardOnLeaveServer(curPlayer) #排行榜已实时更新,故上线不再同步
return
-##合服首次上线强制更新一次排行榜
-# @param curPlayer 玩家实例
-# @param lastMixServerDay 合服时的开服天
-# @return
-def UpdBillboardOnMixServerFirstLogin(curPlayer, lastMixServerDay):
-
- updBillboardDay = curPlayer.NomalDictGetProperty(ChConfig.Def_PDict_MSFirstLogin_UpdBillboard)
-
- if lastMixServerDay == updBillboardDay:
- GameWorld.DebugLog("合服首登同步排行榜已处理过!lastMixServerDay=%s,updBillboardDay=%s"
- % (lastMixServerDay, updBillboardDay))
- return
-
- GameWorld.DebugLog("合服首登同步排行榜...")
- UpdatePlayerBillboardOnLeaveServer(curPlayer)
- PlayerControl.NomalDictSetProperty(curPlayer, ChConfig.Def_PDict_MSFirstLogin_UpdBillboard, lastMixServerDay)
- GameWorld.DebugLog(" 合服首登同步排行榜OK!!!")
- return
-
## 更新当前镖车信息
# @param playerID: 玩家ID
# @param playerName: 玩家名字
diff --git a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/PlayerCoin.py b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/PlayerCoin.py
index c0c7493..7d1e6b6 100644
--- a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/PlayerCoin.py
+++ b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/PlayerCoin.py
@@ -61,11 +61,11 @@
def GetCoinRate(): return IpyGameDataPY.GetFuncCfg("PayRMB")
def OnLogin(curPlayer):
- DoResetCTGCount(curPlayer)
- Sync_CoinToGoldCountInfo(curPlayer)
+ if not DoResetCTGCountByTime(curPlayer):
+ Sync_CoinToGoldCountInfo(curPlayer)
return
-def DoResetCTGCount(curPlayer):
+def DoResetCTGCountByTime(curPlayer):
# 重置充值次数
ctgResetTimeYMD = IpyGameDataPY.GetFuncCfg("CTG", 1)
if not ctgResetTimeYMD:
@@ -74,7 +74,7 @@
GameWorld.ErrLog("充值重置时间配置必须是数值格式,不能包含符号!")
return
curTime = int(time.time())
- playerID = curPlayer.GetPlayerID()
+ #playerID = curPlayer.GetPlayerID()
resetTime = GameWorld.ChangeTimeStrToNum(str(ctgResetTimeYMD), "%Y%m%d")
if curTime < resetTime:
#GameWorld.DebugLog("还未到达充值充值次数时间!curTime=%s < resetTime=%s" % (curTime, resetTime), playerID)
@@ -85,6 +85,13 @@
return
PlayerControl.NomalDictSetProperty(curPlayer, ChConfig.Def_PDict_CTGCountResetTime, resetTime)
+ DoResetCTGCount(curPlayer, ctgResetTimeYMD)
+ return True
+
+def DoResetCTGCount(curPlayer, resetEvent):
+ # 重置充值次数
+
+ playerID = curPlayer.GetPlayerID()
ipyDataMgr = IpyGameDataPY.IPY_Data()
for i in xrange(ipyDataMgr.GetCTGCount()):
ipyData = ipyDataMgr.GetCTGByIndex(i)
@@ -95,11 +102,12 @@
continue
PlayerControl.NomalDictSetProperty(curPlayer, ChConfig.Def_PDict_CTGGoodsBuyCount % recordID, 0)
PlayerControl.NomalDictSetProperty(curPlayer, ChConfig.Def_PDict_TodayCTGCount % recordID, 0)
- drDict = {"PlayerID":curPlayer.GetPlayerID(),"AccID":curPlayer.GetAccID(), "ResetTimeYMD":ctgResetTimeYMD,
+ drDict = {"PlayerID":curPlayer.GetPlayerID(),"AccID":curPlayer.GetAccID(), "ResetEvent":resetEvent,
"totalBuyCount":totalBuyCount, "todayBuyCount":todayBuyCount, "recordID":recordID}
DataRecordPack.SendEventPack("ResetCTGCount", drDict, curPlayer)
- GameWorld.Log("重置充值次数: ResetTimeYMD=%s,recordID=%s,totalBuyCount=%s,todayBuyCount=%s"
- % (ctgResetTimeYMD, recordID, totalBuyCount, todayBuyCount), playerID)
+ GameWorld.Log("重置充值次数: resetEvent=%s,recordID=%s,totalBuyCount=%s,todayBuyCount=%s"
+ % (resetEvent, recordID, totalBuyCount, todayBuyCount), playerID)
+ Sync_CoinToGoldCountInfo(curPlayer)
return
diff --git a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/ShareDefine.py b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/ShareDefine.py
index 194ae5e..5e81214 100644
--- a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/ShareDefine.py
+++ b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/ShareDefine.py
@@ -132,6 +132,7 @@
Def_Notify_WorldKey_IsMixServer = 'IsMixServer' # 是否合服服务器
Def_Notify_WorldKey_MixServerDay = 'MixServerDay' # 合服天数
Def_Notify_WorldKey_LastMixServerDay = 'LastMixServerDay' # 上次合服时的开服天数
+Def_Notify_WorldKey_LastMixServerWorldLV = 'LastMixServerWorldLV' # 上次合服时的世界等级
Def_Notify_WorldKey_OnDayEx = 'OnDayEx' # 特殊时间点凌晨X点过天
Def_Notify_WorldKey_OnWeekEx = 'OnWeekEx' # 特殊时间点凌晨X点过周
Def_Notify_WorldKey_OnMonthEx = 'OnMonthEx' # 特殊时间点凌晨X点过月
--
Gitblit v1.8.0