From 367fd9c77f82b2c7960dc9281c270e550d3ecbb0 Mon Sep 17 00:00:00 2001
From: hxp <ale99527@vip.qq.com>
Date: 星期五, 30 一月 2026 15:23:37 +0800
Subject: [PATCH] 438 【方案】方案预设-服务端(修复当前流派子方案切换时如切武将方案,定军阁进攻武将不会刷新的bug;)
---
ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/GameWorldLogic/FBProcess/GameLogic_MainLevel.py | 14 +++++++++-----
1 files changed, 9 insertions(+), 5 deletions(-)
diff --git a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/GameWorldLogic/FBProcess/GameLogic_MainLevel.py b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/GameWorldLogic/FBProcess/GameLogic_MainLevel.py
index 5487c94..256b80d 100644
--- a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/GameWorldLogic/FBProcess/GameLogic_MainLevel.py
+++ b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/GameWorldLogic/FBProcess/GameLogic_MainLevel.py
@@ -257,6 +257,7 @@
appointDropCntMax = max(dropAppointEquipDict) if dropAppointEquipDict else 0
lastSureOutNeed = ipyData.GetLastSureOutNeed() # 最后一档保底必出
+ lastColorCnt = IpyGameDataPY.GetFuncCfg("ItemRecordEquip", 1) # 有产出的最后几个品质需要记录
for index in range(dropEquipCnt):
bossType = bossTypeList[index % len(bossTypeList)]
@@ -264,7 +265,10 @@
continue
colorRateList = bossTypeDropRateDict.get(bossType, [])
lastColorEquipLucky = curPlayer.NomalDictGetProperty(ChConfig.Def_PDict_LastColorEquipLucky)
- GameWorld.DebugLog("lastColorEquipLucky=%s/%s,bossType=%s,colorRateList=%s,totalRate=%s" % (lastColorEquipLucky, lastSureOutNeed, bossType, colorRateList, totalRate), playerID)
+ lastColor = colorRateList[-1][1]
+ needRecordColorMin = lastColor - lastColorCnt + 1
+ GameWorld.DebugLog("lastColorEquipLucky=%s/%s,bossType=%s,lastColor=%s,colorRateList=%s,totalRate=%s"
+ % (lastColorEquipLucky, lastSureOutNeed, bossType, lastColor, colorRateList, totalRate), playerID)
setAttrDict = None
appointDropEquipCnt = curPlayer.NomalDictGetProperty(ChConfig.Def_PDict_AppointDropEquipCnt) + 1
@@ -280,7 +284,6 @@
setAttrDict[ShareDefine.Def_CItemKey_AppointID] = appointID
GameWorld.DebugLog("定制掉落第%s次: equipID=%s,setAttrDict=%s" % (appointDropEquipCnt, randEquipID, setAttrDict))
else:
- lastColor = colorRateList[-1][1]
if lastSureOutNeed and lastColorEquipLucky >= lastSureOutNeed:
itemColor = lastColor
GameWorld.DebugLog("保底必出最后一档品质: %s,lastColorEquipLucky=%s/%s" % (itemColor, lastColorEquipLucky, lastSureOutNeed))
@@ -300,7 +303,8 @@
continue
curItem.SetIsBind(1) # 为1时代表是掉落
#GameWorld.DebugLog("掉落装备: randEquipID=%s,%s" % (randEquipID, curItem.GetGUID()), playerID)
- if not ItemControler.DoLogic_PutItemInPack(curPlayer, curItem, packIndexList=[IPY_GameWorld.rptIdentify]):
+ isForceDR = curItem.GetItemColor() >= needRecordColorMin # 记录流向
+ if not ItemControler.DoLogic_PutItemInPack(curPlayer, curItem, event=["MainDrop", isForceDR, {}], packIndexList=[IPY_GameWorld.rptIdentify]):
continue
PlayerControl.NomalDictSetProperty(curPlayer, ChConfig.Def_PDict_LastColorEquipLucky, lastColorEquipLucky)
@@ -329,7 +333,7 @@
atkObj = None
batFactionA = turnFight.getBatFaction(ChConfig.Def_FactionA)
batLineup = batFactionA.getBatlineup(1)
- for objID in batLineup.posObjIDDict.values():
+ for objID in batLineup.getBatHeroObjIDList():
atkObj = batObjMgr.getBatObj(objID)
if atkObj.IsAlive():
break
@@ -345,7 +349,7 @@
killObjList = []
batFactionB = turnFight.getBatFaction(ChConfig.Def_FactionB)
batLineup = batFactionB.getBatlineup(1)
- for objID in batLineup.posObjIDDict.values():
+ for objID in batLineup.getBatHeroObjIDList():
tagObj = batObjMgr.getBatObj(objID)
if tagObj.IsAlive():
killObjList.append(tagObj)
--
Gitblit v1.8.0