From 545986a8fdde345b28cf3004be84c6cfe79a3dc1 Mon Sep 17 00:00:00 2001
From: hxp <ale99527@vip.qq.com>
Date: 星期五, 19 四月 2019 11:29:12 +0800
Subject: [PATCH] 6459 【后端】【2.0】缥缈仙域开发单(跨服分区逻辑优化,支持跨服妖王分区状态同步)
---
ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/PlayerSuccess.py | 58 +++++++++++++++++++++++++++++++++++++++++++++++-----------
1 files changed, 47 insertions(+), 11 deletions(-)
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 0597d42..135532a 100644
--- a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/PlayerSuccess.py
+++ b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/PlayerSuccess.py
@@ -42,7 +42,7 @@
import PlayerRune
import Operate_EquipStone
import Operate_EquipWash
-import Operate_EquipSuitCompose
+import PlayerFeastRedPacket
import PlayerDogz
import QuestCommon
import DataRecordPack
@@ -85,7 +85,6 @@
SetSuccFinish(curPlayer, succID, 0)
Sync_SuccTypeIndexAwardRecord(curPlayer, [succID], True) #设置成未领取的在外层同步
- PlayerMagicWeapon.ActiveMagicWeapon(curPlayer, succID)
EventShell.EventRespons_SuccessFinish(curPlayer, succID)
return
@@ -320,7 +319,7 @@
ResetSuccessByType(curPlayer, succType)
for pType, indexList in ChConfig.Pack_EquipPart_CanPlusStar.items():
for i in indexList:
- equipPartStarLV = ChEquip.GetEquipPartStarLV(curPlayer, pType, i)
+ equipPartStarLV = ChEquip.GetEquipPartPlusLV(curPlayer, pType, i)
for pluslv in xrange(1, equipPartStarLV+1):
DoAddSuccessProgress(curPlayer, succType, 1, [pluslv])
@@ -361,8 +360,8 @@
curSkillLV = curSkill.GetSkillLV()
UptateSuccessProgress(curPlayer, succType, curSkillLV, [curSkill.GetSkillTypeID()])
- elif succType == ShareDefine.SuccType_EquipSuit:
- Operate_EquipSuitCompose.DoSuiteSuccess(curPlayer)
+# elif succType == ShareDefine.SuccType_EquipSuit:
+# Operate_EquipSuitCompose.DoSuiteSuccess(curPlayer)
elif succType == ShareDefine.SuccType_FamilyTechLV:
ResetSuccessByType(curPlayer, succType)
techNeedLVDict = IpyGameDataPY.GetFuncEvalCfg('FamilyTechNeedLV', 1, {})
@@ -435,6 +434,29 @@
SetSuccHasGot(curPlayer, succID, False)
resetList.append(succID)
GameWorld.DebugLog(" OnWeek 重置成就类型: succID=%s" % (succID))
+ if resetList:
+ Sync_SuccTypeIndexAwardRecord(curPlayer, resetList, True)
+ Sync_SuccessInfo(curPlayer, resetList, True)
+ return
+
+def DoResetSuccessIDList(curPlayer, resetSuccIDList):
+ ## 重置成就相关数据
+ if not resetSuccIDList:
+ return
+ resetList = []
+ for succID in resetSuccIDList:
+ succData = GetSuccDataMng().GetSuccessData(succID)
+ if not succData:
+ continue
+ succType = succData.succType
+ condition = succData.condition
+ #if not GetSuccFinishValue(curPlayer, succType, condition):
+ # continue
+ SetSuccFinishValue(curPlayer, succType, condition, 0)
+ SetSuccFinish(curPlayer, succID, False)
+ SetSuccHasGot(curPlayer, succID, False)
+ resetList.append(succID)
+ GameWorld.DebugLog(" 重置成就类型: succType=%s,succID=%s" % (succType, succID))
if resetList:
Sync_SuccTypeIndexAwardRecord(curPlayer, resetList, True)
Sync_SuccessInfo(curPlayer, resetList, True)
@@ -539,11 +561,11 @@
itemQuality = curEquip.GetItemQuality()
classLV = ItemCommon.GetItemClassLV(curEquip)
- if equipIndex not in [ShareDefine.retWing,ShareDefine.retGuard,ShareDefine.retHorse]:
+ if equipIndex not in [ShareDefine.retWing,ShareDefine.retGuard1,ShareDefine.retGuard2,ShareDefine.retHorse]:
DoAddSuccessProgress(curPlayer, ShareDefine.SuccType_EquipColorItem, 1, [classLV, itemColor])
- if equipIndex in ChConfig.BaseEquipPlace_Weapon:
+ if equipIndex in ChConfig.EquipPlace_BaseWeapon:
DoAddSuccessProgress(curPlayer, ShareDefine.SuccType_EquipWeapon, 1, [itemColor, itemQuality, classLV])
- elif equipIndex in ChConfig.BaseEquipPlace_Armor:
+ elif equipIndex in ChConfig.EquipPlace_BaseArmor:
DoAddSuccessProgress(curPlayer, ShareDefine.SuccType_EquipArmor, 1, [itemColor, itemQuality, classLV])
elif equipIndex == ShareDefine.retWing:
@@ -559,6 +581,9 @@
def UptateSuccessProgress(curPlayer, successType, newCnt, condition=[]):
if successType not in ShareDefine.SuccessTypeList:
return
+ if successType in ShareDefine.FeastRedPackSuccessTypeList:
+ if not PlayerFeastRedPacket.GetFeastRedPacketState():
+ return
succInfoList = GetSuccDataMng().GetSuccDataByType(successType)
if not succInfoList:
return
@@ -580,6 +605,11 @@
succID = succDataObj.succID
cond = succDataObj.condition
+ if successType in ShareDefine.FeastRedPackSuccessTypeList:
+ todayFeastSuccIDList = PlayerFeastRedPacket.GetTodayFeastSuccIDList()
+ if not todayFeastSuccIDList or succID not in todayFeastSuccIDList:
+ #GameWorld.DebugLog(" 非今日节日红包成就,不增加进度! succID=%s,todayFeastSuccIDList=%s" % (succID, todayFeastSuccIDList))
+ return
isUnDownCheck = successType in ShareDefine.UnDownCheckSuccessTypeList
isContain = successType in ShareDefine.ContainSuccessTypeList
# 已完成的不再检查
@@ -650,7 +680,14 @@
def DoAddSuccessProgress(curPlayer, successType, addCnt, condition=[], delayCalc=True):
#GameWorld.DebugLog("DoAddSuccessProgress type=%s,addCnt=%s,condition=%s"
# % (successType, addCnt, condition), curPlayer.GetPlayerID())
-
+ if GameWorld.IsCrossServer():
+ return
+
+ if successType in ShareDefine.FeastRedPackSuccessTypeList:
+ if not PlayerFeastRedPacket.GetFeastRedPacketState():
+ #GameWorld.DebugLog("非节日红包活动时间,不增加成就!successType=%s" % successType)
+ return
+
playerID = curPlayer.GetID()
if delayCalc and successType not in ShareDefine.NeedResetSuccessTypeList:
if playerID not in PyGameData.g_delaySuccessDict:
@@ -973,8 +1010,7 @@
# 给物品
if isGiveItem:
for itemID, itemCnt in itemDict.items():
- isPutIn = ItemControler.GivePlayerItem(curPlayer, itemID, itemCnt, 1,
- [IPY_GameWorld.rptItem, IPY_GameWorld.rptAnyWhere], True)
+ isPutIn = ItemControler.GivePlayerItem(curPlayer, itemID, itemCnt, 0, [IPY_GameWorld.rptItem, IPY_GameWorld.rptAnyWhere])
#给钱
for moneyType, value in succData.moneyDict.items():
--
Gitblit v1.8.0