From bc5f3f1c88d225109fa39a85b209ef13f5fb52a9 Mon Sep 17 00:00:00 2001
From: hxp <ale99527@vip.qq.com>
Date: 星期五, 06 二月 2026 21:28:13 +0800
Subject: [PATCH] 66 【公会】基础主体-服务端(跨服公会所有基本功能支持、跨服砍价支持;修改查看目标公会、查看目标玩家方式;)
---
ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/GameWorldLogic/FBProcess/GameLogic_Dingjunge.py | 27 +++++++++++++++------------
1 files changed, 15 insertions(+), 12 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 02fa2e3..f45f86a 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
@@ -210,18 +210,17 @@
% (highestLineID, passLayerMax, quickStartLayer, todayLineID), playerID)
# 快速过关奖励按历史最大过关层级领取
- awardItemDict = {}
+ awardIpyData = None
ipyDataMgr = IpyGameDataPY.IPY_Data()
for index in range(ipyDataMgr.GetFBDJGQuickCount()):
quickIpyData = ipyDataMgr.GetFBDJGQuickByIndex(index)
needLayer = quickIpyData.GetNeedLayer()
if needLayer > passLayerMax:
break
- quickItemList = quickIpyData.GetQuickAwardList()
- for itemInfo in quickItemList:
- itemID, itemCount = itemInfo[:2]
- awardItemDict[itemID] = awardItemDict.get(itemID, 0) + itemCount
- awardItemList = [[itemID, itemCount] for itemID, itemCount in awardItemDict.items()]
+ awardIpyData = quickIpyData
+ if not awardIpyData:
+ return
+ awardItemList = awardIpyData.GetQuickAwardList()
# 设置起始层关卡
PlayerControl.NomalDictSetProperty(curPlayer, ChConfig.Def_PDict_DJGLineID, todayLineID)
@@ -319,7 +318,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
@@ -345,17 +344,16 @@
def __randSelectEff(curPlayer, randEffCnt=0, isReset=False):
## 随机生成待选择加成效果
- unSelectCnt = curPlayer.NomalDictGetProperty(ChConfig.Def_PDict_DJGUnSelectCnt)
- if unSelectCnt <= 0:
- GameWorld.DebugLog("没有未处理的加成效果次数了")
- return
if not randEffCnt:
randEffCnt = IpyGameDataPY.GetFuncCfg("DingjungeEff", 3)
- effIDList = []
if isReset:
# 重置
for sIndex in range(randEffCnt):
PlayerControl.NomalDictSetProperty(curPlayer, ChConfig.Def_PDict_DJGSelectEffect % sIndex, 0)
+
+ effIDList = []
+ if isReset:
+ pass
else:
for sIndex in range(randEffCnt):
effID = curPlayer.NomalDictGetProperty(ChConfig.Def_PDict_DJGSelectEffect % sIndex)
@@ -366,6 +364,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