From 01420d87cbfb1abc21023abccea970011e9b4fb0 Mon Sep 17 00:00:00 2001
From: hxp <ale99527@vip.qq.com>
Date: 星期四, 15 八月 2024 15:34:50 +0800
Subject: [PATCH] 10202 【越南】【香港】【主干】【砍树】聚魂(优化聚魂重置到不需要公共材料的等级;)
---
ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/PlayerGatherTheSoul.py | 20 ++++++++++++++------
1 files changed, 14 insertions(+), 6 deletions(-)
diff --git a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/PlayerGatherTheSoul.py b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/PlayerGatherTheSoul.py
index f030502..a137966 100644
--- a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/PlayerGatherTheSoul.py
+++ b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/PlayerGatherTheSoul.py
@@ -192,18 +192,26 @@
if not PlayerControl.HaveMoney(curPlayer, costMoneyType, costMoneyValue):
return
- # 重置保留激活的1级,从2级开始返还所有
+ resetLV = soulLV
pieceTotal = 0
soulValueTotal = 0
- for resetLV in range(2, 1 + soulLV):
- resetIpyData = IpyGameDataPY.GetIpyGameData("GatherTheSoulLV", soulID, resetLV)
+ for sLV in range(2, 1 + soulLV)[::-1]:
+ resetIpyData = IpyGameDataPY.GetIpyGameData("GatherTheSoulLV", soulID, sLV)
if not resetIpyData:
continue
+ resetLV = sLV
+ soulValue = resetIpyData.GetNeedSoulValue()
+ if not soulValue:
+ # 重置到不需要公共材料的等级
+ break
pieceTotal += resetIpyData.GetNeedPiece()
- soulValueTotal += resetIpyData.GetNeedSoulValue()
+ soulValueTotal += soulValue
- GameWorld.DebugLog("重置聚魂: soulID=%s,soulLV=%s,pieceTotal=%s,soulValueTotal=%s" % (soulID, soulLV, pieceTotal, soulValueTotal))
- PlayerControl.NomalDictSetProperty(curPlayer, ChConfig.Def_PDict_GatherTheSoulLV % soulID, 1) # 重置到1级
+ if resetLV >= soulLV:
+ return
+
+ GameWorld.DebugLog("重置聚魂: soulID=%s,soulLV=%s,resetLV=%s,pieceTotal=%s,soulValueTotal=%s" % (soulID, soulLV, resetLV, pieceTotal, soulValueTotal))
+ PlayerControl.NomalDictSetProperty(curPlayer, ChConfig.Def_PDict_GatherTheSoulLV % soulID, resetLV)
if costMoneyType and costMoneyValue:
PlayerControl.PayMoney(curPlayer, costMoneyType, costMoneyValue, "GatherTheSoulReset", {"soulID":soulID})
ItemControler.GivePlayerItem(curPlayer, pieceItemID, pieceTotal, False, event=["GatherTheSoulReset", False, {"soulID":soulID}])
--
Gitblit v1.8.0