From e1fb8828f3e3ade575522e1717322a27e0521daf Mon Sep 17 00:00:00 2001
From: hxp <ale99527@vip.qq.com>
Date: 星期一, 10 十一月 2025 20:09:16 +0800
Subject: [PATCH] 247 【付费内容】特权卡-服务端
---
ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/PlayerControl.py | 34 ++++++++++++++++++++++------------
1 files changed, 22 insertions(+), 12 deletions(-)
diff --git a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/PlayerControl.py b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/PlayerControl.py
index d082054..42003a0 100644
--- a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/PlayerControl.py
+++ b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/PlayerControl.py
@@ -49,7 +49,6 @@
import PlayerCostRebate
import PlayerActLunhuidian
import GY_Query_CrossRealmReg
-import PlayerGoldInvest
import CrossRealmPlayer
import CrossPlayerData
import PlayerActivity
@@ -58,7 +57,7 @@
import PlayerOnline
import PlayerTask
import PlayerMail
-import PlayerLLMJ
+import TurnAttack
import ChPlayer
import GameObj
@@ -2765,10 +2764,7 @@
unXiantaoCntBooty = curPlayer.NomalDictGetProperty(ChConfig.Def_PDict_UnXiantaoCntBooty % itemID)
NomalDictSetProperty(curPlayer, ChConfig.Def_PDict_UnXiantaoCntBooty % itemID, unXiantaoCntBooty + price)
- PlayerLLMJ.AddUseZhanchui(curPlayer, price)
- PlayerPrestigeSys.AddRealmTaskValue(curPlayer, PlayerPrestigeSys.RealmTaskType_UseXiantao, price)
- PlayerTask.AddTaskValue(curPlayer, ChConfig.TaskType_CutTree, price)
- PlayerActivity.AddDailyTaskValue(curPlayer, ChConfig.DailyTask_CutTree, price)
+ TurnAttack.GetMainFightMgr(curPlayer).useZhanchui += price
unitPrice = price if quantity == 1 else int(math.ceil(price * 1.0 / quantity)) # 单价
#reason_name = "Unknown" if not costType else costType
@@ -4144,7 +4140,6 @@
def Sync_ExpRateChange(curPlayer):
totalExpRate = GetPlayerExpRate(curPlayer)
fightExpRate = curPlayer.GetFightExpRate() # 系统及功能累加
- fightExpRate += PlayerGoldInvest.GetAddFightExpRate(curPlayer)
actExpRateInfo = PyGameData.g_operationActionDict.get(ShareDefine.OperationActionName_ExpRate, {})# 多倍经验活动加成
if actExpRateInfo.get(ShareDefine.ActKey_State):
@@ -4304,10 +4299,25 @@
def IsMainLevelPass(curPlayer, lvID):
## 判断玩家是否过关某个主线关卡ID
- # @param lvID: 关卡唯一ID,与策划约定好 = 章节*100+关卡编号
- passChapterID, passLevelNum, _ = GetMainLevelPassInfo(curPlayer)
- passValue = passChapterID * 100 + passLevelNum # 因为pass的记录是带波数的,即当前关卡boss还没过关,所以只有大于该记录值的才算过关
- return passValue > lvID
+ return GetPassMainLevelID(curPlayer) >= lvID
+def GetPassMainLevelID(curPlayer):
+ ## 获取已过关主线关卡ID
+ passChapterID, passLevelNum, _ = GetMainLevelPassInfo(curPlayer) # 当前过关进度包含波,所以需要取上一关的
+ passLVID = 0 # 关卡唯一ID,与策划约定好 = 章节*100+关卡编号
+ if passLevelNum > 1:
+ preLevelNum = passLevelNum - 1
+ passLVID = passChapterID * 100 + preLevelNum
+ GameWorld.DebugLog("非某章节的第1关直接减1即可: passLVID=%s,passChapterID=%s,passLevelNum=%s" % (passLVID, passChapterID, passLevelNum))
+
+ elif passChapterID > 1: # 取上一章节
+ preChapterID = passChapterID - 1
+ levelDataList = IpyGameDataPY.GetIpyGameDataByCondition("MainLevel", {"ChapterID":preChapterID}, True)
+ levelCount = len(levelDataList) if levelDataList else 0
+ if levelCount:
+ passLVID = preChapterID * 100 + levelCount
+ GameWorld.DebugLog("取上一章节作为已过关关卡: passLVID=%s,preChapterID=%s,levelCount=%s,passChapterID=%s,passLevelNum=%s"
+ % (passLVID, preChapterID, levelCount, passChapterID, passLevelNum))
+ return passLVID
## 主线关卡过关进度值 = 章节*10000+关卡编号*100+第x波
def GetMainLevelPassValue(curPlayer): return curPlayer.GetExAttr1()
@@ -4320,7 +4330,7 @@
value = ComMainLevelValue(chapterID, levelNum, wave)
SetMainLevelPassValue(curPlayer, value)
if wave == 0:
- lvID = chapterID * 100 + levelNum
+ lvID = GetPassMainLevelID(curPlayer)
PlayerBillboard.UpdatePlayerBillboard(curPlayer, ShareDefine.Def_BT_MainLevel, lvID)
PlayerTask.UpdTaskValue(curPlayer, ChConfig.TaskType_MainLevel)
PlayerSuccess.UptateSuccessProgress(curPlayer, ShareDefine.SuccType_MainLevel, lvID)
--
Gitblit v1.8.0