From 2b5a21336ea0a987cf21052b688442dce40b6bf5 Mon Sep 17 00:00:00 2001
From: xdh <xiefantasy@qq.com>
Date: 星期二, 23 十月 2018 10:52:06 +0800
Subject: [PATCH] 4280 【主干】【1.1.0】【后端】开服触发成就类型
---
ServerPython/CoreServerGroup/GameServer/Script/GameWorldLogic/GameWorldProcess.py | 6 ++
ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/ShareDefine.py | 4 +-
ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/DataRecordPack.py | 13 ++++++
ServerPython/CoreServerGroup/GameServer/Script/ChConfig.py | 2 +
ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/PlayerSuccess.py | 86 +++++++++++++++++++++---------------------
ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Event/EventSrc/Operate_EquipPlus.py | 2
ServerPython/CoreServerGroup/GameServer/Script/ShareDefine.py | 4 +-
7 files changed, 68 insertions(+), 49 deletions(-)
diff --git a/ServerPython/CoreServerGroup/GameServer/Script/ChConfig.py b/ServerPython/CoreServerGroup/GameServer/Script/ChConfig.py
index 0ab8b0f..0ba5739 100644
--- a/ServerPython/CoreServerGroup/GameServer/Script/ChConfig.py
+++ b/ServerPython/CoreServerGroup/GameServer/Script/ChConfig.py
@@ -371,6 +371,8 @@
Def_WorldKey_BossIsGeTui = "BossGeTui%s" #当前复活通知
Def_WorldKey_OperationActionState = "OperationActState_%s" #运营活动状态,参数为运营活动名
Def_WorldKey_BossRebornNeedPoint = "BossRebornNeedPoint" #boss复活需要总点数
+Def_WorldKey_BossIsAlive = 'BossIsAlive_%s' #boss是否活着
+Def_WorldKey_IsGameWorldInit = 'IsGameWorldInit' #GameWold是否初始化完成
#---------------------------------------------------------------------
#个人时间间隔
TYPE_Player_Tick_Requestkey = 0 # 玩家请求处理间隔
diff --git a/ServerPython/CoreServerGroup/GameServer/Script/GameWorldLogic/GameWorldProcess.py b/ServerPython/CoreServerGroup/GameServer/Script/GameWorldLogic/GameWorldProcess.py
index f4d004e..179d334 100644
--- a/ServerPython/CoreServerGroup/GameServer/Script/GameWorldLogic/GameWorldProcess.py
+++ b/ServerPython/CoreServerGroup/GameServer/Script/GameWorldLogic/GameWorldProcess.py
@@ -1207,7 +1207,7 @@
# @remarks 先请求排行榜信息,然后SetTickTypeCount,设置需要保存的时间种类
def InitGameWorld(tick):
#标记GameWorld初始化完成
- GameWorld.GetGameWorld().SetDict(ChConfig.Def_WorldKey_IsGameWorldInit, 1)
+ GameWorld.GetGameWorld().SetDict(ChConfig.Def_WorldKey_IsGameWorldInit, int(time.time()))
#初始化游戏时钟
GameWorld.GetGameWorld().SetTickTypeCount(ChConfig.TYPE_Tick_Count)
#初始话开服时间、星期几
@@ -1216,6 +1216,7 @@
if initOpenServerTime <= 0 or openServerWeekday <= 0:
#记录首次开发时间(现实时间戳)
PlayerDBGSEvent.SetInitOpenServerTime(initOpenServerTime if initOpenServerTime else int(time.time()))
+
#初始化家族数量
GameWorld.GetFamilyManager().SetFamilyUpperLimitCount(ChConfig.Def_Family_MaxCnt)
#排序元宝交易平台
@@ -1388,6 +1389,9 @@
# 通知战盟相关活动开启状态
fadState = PlayerDBGSEvent.GetDBGSTrig_ByKey(ShareDefine.Def_Notify_WorldKey_FamilyActivityDayState)
GameWorld.SendMapServerMsgEx(ShareDefine.Def_Notify_WorldKey_FamilyActivityDayState, fadState)
+ # 通知开启服务器时间
+ initGameWorldTime = GameWorld.GetGameWorld().GetDictByKey(ChConfig.Def_WorldKey_IsGameWorldInit)
+ GameWorld.SendMapServerMsgEx(ShareDefine.Def_Notify_WorldKey_InitGameWorldTime, initGameWorldTime)
# 通知世界boss奖励信息
GameWorldBoss.OnMapServerInitOK()
diff --git a/ServerPython/CoreServerGroup/GameServer/Script/ShareDefine.py b/ServerPython/CoreServerGroup/GameServer/Script/ShareDefine.py
index f1a7dce..a4130f2 100644
--- a/ServerPython/CoreServerGroup/GameServer/Script/ShareDefine.py
+++ b/ServerPython/CoreServerGroup/GameServer/Script/ShareDefine.py
@@ -143,7 +143,7 @@
Def_Notify_WorldKey_ReloadJpegCaptcha = 'ReloadJpegCaptcha' # 重读tex图形验证码
Def_Notify_WorldKey_GameServerScriptReloadVersion = 'GameServerScriptReloadVersion' # GameServer 脚本重读版本标记
Def_Notify_WorldKey_MapServerScriptReloadVersion = 'MapServerScriptReloadVersion' # MapServer 脚本重读版本标记
-
+Def_Notify_WorldKey_InitGameWorldTime = "InitGameWorldTime" #启动服务器时间
Def_Notify_WorldKey_OperationActionInfo = "OperationActionInfo_%s" # 运营活动信息,参数为运营活动名
Def_Notify_WorldKey_DailyActionState = "DailyActionState_%s" # 日常活动状态,参数为日常活动ID
Def_Notify_WorldKey_FBEnterTimeLimiitMapID = "FBEnterTimeLimiitMapID" # 进入副本有时间限制的地图ID列表
@@ -1506,7 +1506,7 @@
SuccType_XXX24 , # 废弃24
SuccType_XXX25, # 废弃25
SuccType_EquipPlus, # 强化x次成就26
-SuccType_EquipPlusLV, # x件装备强化等级达到x级27
+SuccType_EquipPlusLV, # x件装备强化等级达到x级27 (已废弃)
SuccType_KillWorldBoss, # 击杀世界bossx次成就(有伤害就算)28
SuccType_XXX29, # 废弃29
SuccType_PassWagicWeapon, # 通关法宝副本30
diff --git a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/DataRecordPack.py b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/DataRecordPack.py
index 503836b..ef70914 100644
--- a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/DataRecordPack.py
+++ b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/DataRecordPack.py
@@ -1568,4 +1568,17 @@
'AccID':curPlayer.GetAccID(), 'mwID':mwID, 'mwLV':mwLV}
#发送封包
SendEventPack("MagicWeaponActive", dataDict, curPlayer)
+ return
+
+## 玩家上线成就检查
+# @param tagObjType: 攻击方类型
+# @param tagObj: 攻击方ID
+# @param mapID: 死亡玩家所在地图ID
+# @return
+def DR_CheckOldPlayerSuccess(curPlayer):
+ dataDict = {'PlayerID':curPlayer.GetPlayerID(), "PlayerName":curPlayer.GetPlayerName(),
+ 'AccID':curPlayer.GetAccID()}
+
+ #发送封包
+ SendEventPack("CheckOldPlayerSuccess", dataDict, curPlayer)
return
\ No newline at end of file
diff --git a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Event/EventSrc/Operate_EquipPlus.py b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Event/EventSrc/Operate_EquipPlus.py
index ce36fbd..c439d51 100644
--- a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Event/EventSrc/Operate_EquipPlus.py
+++ b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Event/EventSrc/Operate_EquipPlus.py
@@ -162,7 +162,7 @@
PlayerControl.WorldNotify(0, "StrengthenCongratulation", msgParamList)
# 成就
- PlayerSuccess.DoAddSuccessProgress(curPlayer, ShareDefine.SuccType_EquipPlusLV, 1, [updPlusLV])
+ #PlayerSuccess.DoAddSuccessProgress(curPlayer, ShareDefine.SuccType_EquipPlusLV, 1, [updPlusLV])
diff --git a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/PlayerSuccess.py b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/PlayerSuccess.py
index c6ed964..484338f 100644
--- a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/PlayerSuccess.py
+++ b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/PlayerSuccess.py
@@ -44,6 +44,7 @@
import Operate_EquipSuitCompose
import PlayerDogz
import QuestCommon
+import DataRecordPack
## 获取成就字典信息值
@@ -237,52 +238,50 @@
# @param None
# @return
def __CheckOldPlayerSuccess(curPlayer):
- ''' 成就版本更新老玩家检查
- 正式上线后,成就的修改或者增加,一般是增加新成就,则需要对老玩家成就版本进行校正,检查成就完成情况
- 成就版本号递增
+ ''' 成就版本更新老玩家检查 每次启动服务后 玩家第一次上线检查成就完成情况
'''
- Versions = 2 #版本号,往上增加
-
+ #Versions = 2 #版本号,往上增加
+ initGameWorldTime = GameWorld.GetGameWorld().GetGameWorldDictByKey(ShareDefine.Def_Notify_WorldKey_InitGameWorldTime)
# 上线需要检查老玩家成就完成情况类型{成就类型:维护版本号, ...}
- NeedCheckSuccTypeDict = {
- ShareDefine.SuccType_GetMagicWeapon:2,
- ShareDefine.SuccType_PassRuneTower:2,
- ShareDefine.SuccType_GodWeapon:2,
- ShareDefine.SuccType_HorseAllLV:2,
- ShareDefine.SuccType_EquipPlusLV:2,
- ShareDefine.SuccType_EquipColorItem:2,
- ShareDefine.SuccType_EquipArmor:2,
- ShareDefine.SuccType_EquipWeapon:2,
- ShareDefine.SuccType_InlayRune:2,
- ShareDefine.SuccType_RuneLvUp:2,
- ShareDefine.SuccType_RealmlvUp:2,
- ShareDefine.SuccType_PetClassLV:2,
- ShareDefine.SuccType_InlayStone1:2,
- ShareDefine.SuccType_InlayStone2:2,
- ShareDefine.SuccType_XJMJGetExp:2,
- ShareDefine.SuccType_EquipWashLV1:2,
- ShareDefine.SuccType_EquipWashLV2:2,
- ShareDefine.SuccType_EquipWashLV3:2,
- ShareDefine.SuccType_EquipWing:2,
- ShareDefine.SuccType_MWSkillUp:2,
- ShareDefine.SuccType_EquipSuit:2,
- ShareDefine.SuccType_FamilyTechLV:2,
- ShareDefine.SuccType_AlchemyLV:2,
- ShareDefine.SuccType_VIPLV:2,
- ShareDefine.SuccType_StoneTotalLV:2,
- ShareDefine.SuccType_XBXZ:2,
- ShareDefine.SuccType_DogzBattle:2,
- ShareDefine.SuccType_DogzEquipPlus:2,
- ShareDefine.SuccType_MainTaskNode:2,
- }
+ NeedCheckSuccTypeList = [
+ ShareDefine.SuccType_GetMagicWeapon,
+ ShareDefine.SuccType_PassRuneTower,
+ ShareDefine.SuccType_GodWeapon,
+ ShareDefine.SuccType_HorseAllLV,
+ #ShareDefine.SuccType_EquipPlusLV,
+ ShareDefine.SuccType_EquipColorItem,
+ ShareDefine.SuccType_EquipArmor,
+ ShareDefine.SuccType_EquipWeapon,
+ ShareDefine.SuccType_InlayRune,
+ ShareDefine.SuccType_RuneLvUp,
+ ShareDefine.SuccType_RealmlvUp,
+ ShareDefine.SuccType_PetClassLV,
+ ShareDefine.SuccType_InlayStone1,
+ ShareDefine.SuccType_InlayStone2,
+ ShareDefine.SuccType_XJMJGetExp,
+ ShareDefine.SuccType_EquipWashLV1,
+ ShareDefine.SuccType_EquipWashLV2,
+ ShareDefine.SuccType_EquipWashLV3,
+ ShareDefine.SuccType_EquipWing,
+ ShareDefine.SuccType_MWSkillUp,
+ ShareDefine.SuccType_EquipSuit,
+ ShareDefine.SuccType_FamilyTechLV,
+ ShareDefine.SuccType_AlchemyLV,
+ ShareDefine.SuccType_VIPLV,
+ ShareDefine.SuccType_StoneTotalLV,
+ ShareDefine.SuccType_XBXZ,
+ ShareDefine.SuccType_DogzBattle,
+ ShareDefine.SuccType_DogzEquipPlus,
+ ShareDefine.SuccType_MainTaskNode,
+ ]
curCheckVersion = GetPDictValue(curPlayer, ChConfig.Def_PDict_Success_CheckVersion)
+ if curCheckVersion == initGameWorldTime:
+ GameWorld.DebugLog(' 本次开启服务器处理过成就检查,不再处理 ', curPlayer.GetID())
+ return
GameWorld.DebugLog("更新老玩家上线检查成就curCheckVersion=%s" % (curCheckVersion))
ipyDataMgr = IpyGameDataPY.IPY_Data()
- for succType, version in NeedCheckSuccTypeDict.items():
-
- if curCheckVersion >= version:
- continue
+ for succType in NeedCheckSuccTypeList:
if succType == ShareDefine.SuccType_GetMagicWeapon:
for i in xrange(ipyDataMgr.GetTreasureCount()):
@@ -388,9 +387,10 @@
missionID = succData.condition[0]
if QuestCommon.GetHadFinishMainMission(curPlayer, missionID):
DoAddSuccessProgress(curPlayer, succType, 1, [missionID])
-
- SetPDictValue(curPlayer, ChConfig.Def_PDict_Success_CheckVersion, Versions)
- GameWorld.DebugLog("更新老玩家上线检查成就updCheckVersions=%s" % (Versions))
+
+ DataRecordPack.DR_CheckOldPlayerSuccess(curPlayer)
+ SetPDictValue(curPlayer, ChConfig.Def_PDict_Success_CheckVersion, initGameWorldTime)
+ GameWorld.DebugLog("更新老玩家上线检查成就updCheckVersions=%s" % (initGameWorldTime), curPlayer.GetID())
return
## 成就OnWeek
diff --git a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/ShareDefine.py b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/ShareDefine.py
index f1a7dce..a4130f2 100644
--- a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/ShareDefine.py
+++ b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/ShareDefine.py
@@ -143,7 +143,7 @@
Def_Notify_WorldKey_ReloadJpegCaptcha = 'ReloadJpegCaptcha' # 重读tex图形验证码
Def_Notify_WorldKey_GameServerScriptReloadVersion = 'GameServerScriptReloadVersion' # GameServer 脚本重读版本标记
Def_Notify_WorldKey_MapServerScriptReloadVersion = 'MapServerScriptReloadVersion' # MapServer 脚本重读版本标记
-
+Def_Notify_WorldKey_InitGameWorldTime = "InitGameWorldTime" #启动服务器时间
Def_Notify_WorldKey_OperationActionInfo = "OperationActionInfo_%s" # 运营活动信息,参数为运营活动名
Def_Notify_WorldKey_DailyActionState = "DailyActionState_%s" # 日常活动状态,参数为日常活动ID
Def_Notify_WorldKey_FBEnterTimeLimiitMapID = "FBEnterTimeLimiitMapID" # 进入副本有时间限制的地图ID列表
@@ -1506,7 +1506,7 @@
SuccType_XXX24 , # 废弃24
SuccType_XXX25, # 废弃25
SuccType_EquipPlus, # 强化x次成就26
-SuccType_EquipPlusLV, # x件装备强化等级达到x级27
+SuccType_EquipPlusLV, # x件装备强化等级达到x级27 (已废弃)
SuccType_KillWorldBoss, # 击杀世界bossx次成就(有伤害就算)28
SuccType_XXX29, # 废弃29
SuccType_PassWagicWeapon, # 通关法宝副本30
--
Gitblit v1.8.0