From ea6dff19b5877d55473d445788e1a2ff5789f6b9 Mon Sep 17 00:00:00 2001
From: hxp <ale99527@vip.qq.com>
Date: 星期二, 17 三月 2026 10:01:57 +0800
Subject: [PATCH] 526 【挑战】PVP群英榜-后端(战斗日志Value1增加存储ServerID;群英榜单10的UserData增加Json格式存储FightPower;)
---
ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/GameWorldLogic/FBProcess/GameLogic_Dingjunge.py | 24 ++++++++++++++++++------
1 files changed, 18 insertions(+), 6 deletions(-)
diff --git a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/GameWorldLogic/FBProcess/GameLogic_Dingjunge.py b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/GameWorldLogic/FBProcess/GameLogic_Dingjunge.py
index 99f11e5..a5d190e 100644
--- a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/GameWorldLogic/FBProcess/GameLogic_Dingjunge.py
+++ b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/GameWorldLogic/FBProcess/GameLogic_Dingjunge.py
@@ -25,7 +25,10 @@
import IpyGameDataPY
import NetPackCommon
import PlayerOnline
+import PlayerHJG
import ChConfig
+
+import math
# 自动选择排序优先级索引
(
@@ -220,7 +223,7 @@
awardIpyData = quickIpyData
if not awardIpyData:
return
- awardItemList = awardIpyData.GetQuickAwardList()
+ quickAwardList = awardIpyData.GetQuickAwardList()
# 设置起始层关卡
PlayerControl.NomalDictSetProperty(curPlayer, ChConfig.Def_PDict_DJGLineID, todayLineID)
@@ -229,6 +232,14 @@
GivePassLayerEff(curPlayer, addEffCnt)
SyncDingjungeInfo(curPlayer)
+ awardItemList = []
+ isBind = ItemControler.GetIsBindValue(srcSign=ChConfig.ItemSrcSign_TitleEff)
+ djgPer = PlayerHJG.GetTitleEffInfo(curPlayer, PlayerHJG.TitleEff_DingjungeQuickPer)[0]
+ for itemID, itemCount in quickAwardList:
+ awardItemList.append([itemID, itemCount])
+ if djgPer:
+ itemCountEx = int(math.ceil(itemCount * djgPer / 100.0))
+ awardItemList.append([itemID, itemCountEx, isBind])
ItemControler.GivePlayerItemOrMail(curPlayer, awardItemList, event=["Dingjunge", False, {}])
return
@@ -318,7 +329,7 @@
GameWorld.DebugLog("执行一键选择加成效果: unSelectCnt=%s,effHoleCnt=%s,selectSetAttrIDList=%s" % (unSelectCnt, effHoleCnt, selectSetAttrIDList))
randEffCnt = IpyGameDataPY.GetFuncCfg("DingjungeEff", 3)
- for _ in range(unSelectCnt):
+ for _ in range(unSelectCnt + 1): # 多执行一次+1是因为可能存在未选择的视为1次,内层有验证剩余未选择数,所以多执行一次没关系
effIDList = __randSelectEff(curPlayer, randEffCnt)
if not effIDList:
break
@@ -351,10 +362,6 @@
for sIndex in range(randEffCnt):
PlayerControl.NomalDictSetProperty(curPlayer, ChConfig.Def_PDict_DJGSelectEffect % sIndex, 0)
- unSelectCnt = curPlayer.NomalDictGetProperty(ChConfig.Def_PDict_DJGUnSelectCnt)
- if unSelectCnt <= 0:
- GameWorld.DebugLog("没有未处理的加成效果次数了")
- return
effIDList = []
if isReset:
pass
@@ -368,6 +375,11 @@
#GameWorld.DebugLog("已存在未选择的加成效果等选择后再生成: effIDList=%s,unSelectCnt=%s" % (effIDList, unSelectCnt))
return effIDList
+ unSelectCnt = curPlayer.NomalDictGetProperty(ChConfig.Def_PDict_DJGUnSelectCnt)
+ if unSelectCnt <= 0:
+ GameWorld.DebugLog("没有未处理的加成效果次数了")
+ return []
+
fullLVEffIDList = [] # 已满级的效果ID列表
effMaxLV = IpyGameDataPY.GetFuncCfg("DingjungeEff", 2)
for eIndex in range(len(IpyGameDataPY.GetFuncEvalCfg("DingjungeEff", 1))):
--
Gitblit v1.8.0