From 8ad500e682b83c0b78c3f527c66fad529c0db5fd Mon Sep 17 00:00:00 2001
From: hxp <ale99527@vip.qq.com>
Date: 星期四, 28 八月 2025 10:43:15 +0800
Subject: [PATCH] 102 【主界面】官职晋升-服务端(初始官职改为0)
---
ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/GameWorldLogic/FBProcess/GameLogic_MainLevel.py | 27 +++++++++++++++++++++------
1 files changed, 21 insertions(+), 6 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 a40cae8..fba8115 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
@@ -25,6 +25,7 @@
import IPY_GameWorld
import NetPackCommon
import ItemCommon
+import PlayerTask
import NPCCommon
import ChEquip
import ObjPool
@@ -91,7 +92,8 @@
def __doMainDrop(curPlayer):
# 装备掉落
- __doDropEquip(curPlayer)
+ if __doDropEquip(curPlayer) == -1:
+ return
playerID = curPlayer.GetPlayerID()
DailyBootyUpperList = []
@@ -102,10 +104,16 @@
GameWorld.DebugLog("可掉落战利品上限: chapterID=%s, %s" % (chapterID, DailyBootyUpperList), playerID)
+ # 战利品掉落默认不堆叠,故最多只能掉落剩余空格子个数的物品
+ spaceCount = ItemCommon.GetItemPackSpace(curPlayer, IPY_GameWorld.rptIdentify)
+
# 其他战利品掉落
bootyDropNeedDict = IpyGameDataPY.GetFuncEvalCfg("MainBootyDrop", 1, {})
bootyDropCntDict = IpyGameDataPY.GetFuncEvalCfg("MainBootyDrop", 2, {})
for itemID, dropUpper in DailyBootyUpperList:
+ if spaceCount <= 0:
+ GameWorld.DebugLog("掉落背包已满!", playerID)
+ break
if dropUpper <= 0:
continue
todyDropCnt = curPlayer.NomalDictGetProperty(ChConfig.Def_PDict_BootyDropToday % itemID)
@@ -137,7 +145,8 @@
if dropCntTotal <= 0:
continue
- GameWorld.DebugLog("掉落战利品! itemID=%s,unXiantaoCntBooty=%s,次数=%s,dropCntTotal=%s" % (itemID, unXiantaoCntBooty, dropBootyCnt, dropCntTotal), playerID)
+ GameWorld.DebugLog("掉落战利品! itemID=%s,unXiantaoCntBooty=%s,次数=%s,dropCntTotal=%s,spaceCount=%s"
+ % (itemID, unXiantaoCntBooty, dropBootyCnt, dropCntTotal, spaceCount), playerID)
curItem = ItemControler.GetOutPutItemObj(itemID, dropCntTotal, False, curPlayer=curPlayer)
if curItem == None:
continue
@@ -147,23 +156,24 @@
unXiantaoCntBooty = unXiantaoCntBooty % dropOneNeed
PlayerControl.NomalDictSetProperty(curPlayer, ChConfig.Def_PDict_UnXiantaoCntBooty % itemID, unXiantaoCntBooty)
SetBootyDropToday(curPlayer, itemID, todyDropCnt + dropCntTotal)
+ spaceCount -= 1
return
def __doDropEquip(curPlayer):
## 主线掉落装备
+ playerID = curPlayer.GetPlayerID()
unXiantaoCntEquip = curPlayer.NomalDictGetProperty(ChConfig.Def_PDict_UnXiantaoCntEquip)
dropOneNeed = IpyGameDataPY.GetFuncCfg("MainEquipDrop", 1) # 每消耗X个战锤掉落一件装备
dropEquipCnt = unXiantaoCntEquip / dropOneNeed
if dropEquipCnt <= 0:
- GameWorld.DebugLog("主线暂不能掉落! unXiantaoCntEquip=%s,dropOneNeed=%s,dropEquipCnt=%s" % (unXiantaoCntEquip, dropOneNeed, dropEquipCnt))
+ GameWorld.DebugLog("主线暂不能掉落! unXiantaoCntEquip=%s,dropOneNeed=%s,dropEquipCnt=%s" % (unXiantaoCntEquip, dropOneNeed, dropEquipCnt), playerID)
return
dropEquipCnt = ItemCommon.GetItemPackSpace(curPlayer, IPY_GameWorld.rptIdentify, dropEquipCnt)
if not dropEquipCnt:
- GameWorld.DebugLog("掉落鉴定背包没有空间!")
- return
+ GameWorld.DebugLog("掉落背包已满!", playerID)
+ return -1
- playerID = curPlayer.GetPlayerID()
treeLV = curPlayer.NomalDictGetProperty(ChConfig.Def_PDict_TreeLV)
ipyData = IpyGameDataPY.GetIpyGameData("TreeLV", treeLV)
if not ipyData:
@@ -298,6 +308,8 @@
# 刷属性
ChEquip.RefreshRoleEquipAttr(curPlayer)
+
+ PlayerTask.UpdTaskValue(curPlayer, ChConfig.TaskType_EquipColor)
return
def __doDecomposeMainEquip(curPlayer, itemIndexList):
@@ -311,6 +323,7 @@
moneyTotal = 0
+ decomposeCnt = 0
decomposeIndexList = []
for itemIndex in itemIndexList:
if itemIndex < 0 or itemIndex >= IdentifyPack.GetCount():
@@ -341,11 +354,13 @@
ItemCommon.DelItem(curPlayer, curEquip, curEquip.GetCount(), True, ChConfig.ItemDel_EquipDecompose)
decomposeIndexList.append(itemIndex)
+ decomposeCnt += 1
if not moneyTotal:
return
PlayerControl.GiveMoney(curPlayer, moneyType, moneyTotal, "DecomposeMainEquip", isSysHint=False)
+ PlayerTask.AddTaskValue(curPlayer, ChConfig.TaskType_EquipDecompose, decomposeCnt)
return
def __doPickupMainItem(curPlayer, itemIndexList):
--
Gitblit v1.8.0