From 8a5cd920235eefda418bba0e949ba522cab72a4c Mon Sep 17 00:00:00 2001
From: hxp <ale99527@vip.qq.com>
Date: 星期四, 11 八月 2022 16:18:29 +0800
Subject: [PATCH] 9685 【后台】开服时间整合(清档完毕后入库存档)
---
ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Event/EventSrc/Operate_EquipPlus.py | 85 ++++++++++++++++++++++++++++++++++--------
1 files changed, 69 insertions(+), 16 deletions(-)
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 8be890e..5a888a9 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
@@ -35,6 +35,8 @@
import EventShell
import ChPyNetSendPack
import NetPackCommon
+import PlayerWeekParty
+import PlayerActGarbageSorting
#-------------------------------------------------------------------------------------------
#===============================================================================
@@ -85,11 +87,20 @@
return
curPartPlusLV = ChEquip.GetEquipPartPlusLV(curPlayer, packType, index)
+ classLV = ItemCommon.GetItemClassLV(curEquip)
+ plusMaxIpyData = IpyGameDataPY.GetIpyGameData("ItemPlusMax", findType, classLV)
+ if not plusMaxIpyData:
+ return
+ plusLVMax = plusMaxIpyData.GetPlusLVMax()
+ if curPartPlusLV >= plusLVMax:
+ #GameWorld.DebugLog("强化达到本阶最大等级,无法强化! classLV=%s,plusLVMax=%s,curPartPlusLV=%s" % (classLV, plusLVMax, curPartPlusLV))
+ return
plusIpyData = IpyGameDataPY.GetIpyGameData("ItemPlus", findType, curPartPlusLV)
if not plusIpyData:
return
costSilver = plusIpyData.GetCostCount()
- if not costSilver:
+ costItemInfo = plusIpyData.GetCostItemInfo()
+ if not costSilver and not costItemInfo:
#GameWorld.DebugLog("已到强化最大等级! curPartPlusLV=%s" % curPartPlusLV, playerID)
return
@@ -104,23 +115,47 @@
% (curPartPlusLV, maxPlusLV, curEvolveLV), playerID)
return
- if not PlayerControl.PayMoney(curPlayer, IPY_GameWorld.TYPE_Price_Silver_Money, costSilver, isNotify=False):
+ if costSilver and not PlayerControl.HaveMoney(curPlayer, IPY_GameWorld.TYPE_Price_Silver_Money, costSilver):
+ GameWorld.DebugLog("铜钱不足,无法强化! costSilver=%s" % costSilver)
return
- totalExp = plusIpyData.GetTotalExp()
- curExp = ChEquip.GetEquipPartProficiency(curPlayer, packType, index) + plusIpyData.GetAddExp()
+ costItemID, costItemCount = 0, 0
+ if costItemInfo:
+ costItemID, costItemCount = costItemInfo
+ itemPack = curPlayer.GetItemManager().GetPack(IPY_GameWorld.rptItem)
+ hasEnough, itemIndexList = ItemCommon.GetItem_FromPack_ByID(costItemID, itemPack, costItemCount)
+ if not hasEnough:
+ GameWorld.DebugLog("材料不足,无法强化! costItemID=%s, costItemCount=%s" % (costItemID, costItemCount))
+ return
+
+ if costSilver:
+ PlayerControl.PayMoney(curPlayer, IPY_GameWorld.TYPE_Price_Silver_Money, costSilver, isNotify=False)
- if curExp >= totalExp:
- #升级
+ if costItemID:
+ ItemCommon.ReduceItem(curPlayer, itemPack, itemIndexList, costItemCount, True, ChConfig.ItemDel_EquipPlus)
+
+ isLVUp = False
+ curExp = 0
+ addExp = plusIpyData.GetAddExp()
+ totalExp = plusIpyData.GetTotalExp()
+ if addExp and totalExp:
+ curExp = ChEquip.GetEquipPartProficiency(curPlayer, packType, index) + addExp
+ if curExp >= totalExp:
+ curExp = curExp - totalExp
+ isLVUp = True
+ else:
+ isLVUp = True
+
+ if isLVUp:
curPartPlusLV += 1
- curExp = curExp - totalExp
__EquipMayaPlusChange(curPlayer, packType, curEquip, index, curPartPlusLV)
- DataRecordPack.DR_UpStarLVSuccess(curPlayer, curExp, curPartPlusLV)
+ #DataRecordPack.DR_UpStarLVSuccess(curPlayer, curExp, curPartPlusLV)
ChEquip.SetEquipPartProficiency(curPlayer, packType, index, curExp)
ChEquip.NotifyEquipPartPlusLV(curPlayer, packType, index)
PlayerActivity.AddDailyActionFinishCnt(curPlayer, ShareDefine.DailyActionID_EquipPlus)
PlayerActLogin.AddLoginAwardActionCnt(curPlayer, ChConfig.Def_LoginAct_EquipPlus, 1)
+ PlayerWeekParty.AddWeekPartyActionCnt(curPlayer, ChConfig.Def_WPAct_Plus, 1)
return
def __EquipMayaPlusChange(curPlayer, packType, curEquip, index, updPlusLV):
@@ -137,16 +172,34 @@
PlayerControl.WorldNotify(0, "StrengthenCongratulation", msgParamList)
classLV = ItemCommon.GetItemClassLV(curEquip)
- # 成就
- #PlayerSuccess.DoAddSuccessProgress(curPlayer, ShareDefine.SuccType_EquipPlusLV, 1, [updPlusLV])
DoLogic_OnEquipPartStarLVChange(curPlayer, packType, classLV)
- # 增加强化成就
- PlayerSuccess.DoAddSuccessProgress(curPlayer, ShareDefine.SuccType_EquipPlus, 1)
+ # 强化成就
+ __UpdateEquipPlusSuccess(curPlayer, classLV)
EventShell.EventRespons_EquipPlus(curPlayer, classLV, updPlusLV)
-
+
# 开服活动数据
- OpenServerCampaign.UpdOpenServerCampaignRecordData(curPlayer, ShareDefine.Def_Campaign_Type_PlusLV, ChEquip.GetTotalPlusLV(curPlayer))
+ #OpenServerCampaign.UpdOpenServerCampaignRecordData(curPlayer, ShareDefine.Def_Campaign_Type_Plus, ChEquip.GetTotalPlusLV(curPlayer))
+ return
+
+def __UpdateEquipPlusSuccess(curPlayer, classLV):
+ ipyDataList = IpyGameDataPY.GetIpyGameDataByCondition('EquipPlaceIndexMap', {'ClassLV':classLV}, True)
+ if not ipyDataList:
+ return
+
+ packType = IPY_GameWorld.rptEquip
+ plusLVCountDict = {}
+ for ipyData in ipyDataList:
+ index = ipyData.GetGridIndex()
+ plusLV = ChEquip.GetEquipPartPlusLV(curPlayer, packType, index)
+ if not plusLV:
+ continue
+ conditionKey = (classLV, plusLV)
+ plusLVCountDict[conditionKey] = plusLVCountDict.get(conditionKey, 0) + 1
+
+ #GameWorld.DebugLog("强化成就数据: classLV=%s,plusLVCountDict=%s" % (classLV, plusLVCountDict))
+ PlayerSuccess.UpdateSuccessProgressByConditions(curPlayer, ShareDefine.SuccType_EquipPlus, plusLVCountDict)
+ PlayerActGarbageSorting.AddActGarbageTaskProgress(curPlayer, ChConfig.Def_GarbageTask_EquipPlus)
return
def DoLogic_OnEquipPartStarLVChange(curPlayer, packType, classLV):
@@ -198,7 +251,7 @@
return
delItemDict[tuple(indexList)] = itemCnt
for itemIndexList, delCnt in delItemDict.items():
- ItemCommon.ReduceItem(curPlayer, itemPack, itemIndexList, delCnt, True, ChConfig.ItemDel_EquipPlusEvolve)
+ ItemCommon.ReduceItem(curPlayer, itemPack, itemIndexList, delCnt, True, ChConfig.ItemDel_EquipPlus)
ChEquip.SetEquipPartPlusEvolveLV(curPlayer, packType, equipPackindex, nextEvolveLV)
DoLogic_OnEquipPartStarLVChange(curPlayer, packType, ItemCommon.GetItemClassLV(curEquip))
@@ -250,7 +303,7 @@
PlayerControl.NomalDictSetProperty(curPlayer, ChConfig.Def_PDict_EquipPartMasterPlusLV % classLV, actMasterPlusLV)
SyncEquipMasterPlusLVInfo(curPlayer, classLV)
-
+ ChEquip.ChangeEquipEffectByPlusMaster(curPlayer, classLV)
#刷新所有属性
DoLogic_OnEquipPartStarLVChange(curPlayer, packType, classLV)
return
--
Gitblit v1.8.0