From 71685e76b8f23242fd3e5ec2a1c934579efafb96 Mon Sep 17 00:00:00 2001
From: hxp <ale99527@vip.qq.com>
Date: 星期二, 16 十二月 2025 10:03:25 +0800
Subject: [PATCH] 129 【战斗】战斗系统-服务端(何太后全部技能;)
---
ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/GameWorldLogic/FBProcess/FBCommon.py | 20 ++++++++++++--------
1 files changed, 12 insertions(+), 8 deletions(-)
diff --git a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/GameWorldLogic/FBProcess/FBCommon.py b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/GameWorldLogic/FBProcess/FBCommon.py
index 4834940..48e7665 100644
--- a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/GameWorldLogic/FBProcess/FBCommon.py
+++ b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/GameWorldLogic/FBProcess/FBCommon.py
@@ -18,7 +18,9 @@
import ItemCommon
import NPCCommon
import ReadChConfig
+import PlayerActivity
import ChPyNetSendPack
+import DataRecordPack
import NetPackCommon
import IpyGameDataPY
import ShareDefine
@@ -27,7 +29,6 @@
import FBLogic
import ChConfig
import PlayerGoldInvest
-import ObjPool
import random
import json
@@ -169,6 +170,7 @@
PlayerControl.NomalDictSetProperty(curPlayer, ChConfig.Def_Player_Dict_FBPassLineID % mapID, funcLineID)
if isNotify:
Sync_FBPlayerFBInfoData(curPlayer, mapID)
+ DataRecordPack.DR_FBPass(curPlayer, mapID, funcLineID)
return
def CheckCanEnterFBComm(curPlayer, mapID, lineID, fbIpyData, fbLineIpyData, reqEnterCnt=1, isNotify=True, isTeamAsk=False):
@@ -1531,7 +1533,7 @@
def AddEnterFBCount(curPlayer, fbID, addCount=1, lineBit=-1, isFree=False):
## 增加玩家进入副本次数
## @param isFree: 是否免费进入的,免费的不增加实际进入次数,但需要触发进入次数额外处理,如活跃、成就等
- #addCountEx = addCount
+ addCountEx = addCount
addCount = 0 if isFree else addCount
fbID = GetRecordMapID(fbID)
enterCntKey = ChConfig.Def_Player_Dict_FbEnterCnt % fbID
@@ -1543,12 +1545,13 @@
PlayerControl.NomalDictSetProperty(curPlayer, enterCntKey, updValue)
else:
maxCnt = GetEnterFBMaxCnt(curPlayer, fbID)
- if enterCnt >= maxCnt:
+ if not isFree and enterCnt >= maxCnt:
return False
updCnt = min(maxCnt, enterCnt + addCount)
addCount = updCnt-enterCnt
PlayerControl.NomalDictSetProperty(curPlayer, enterCntKey, updCnt)
+ PlayerActivity.AddDailyTaskValue(curPlayer, ChConfig.DailyTask_FBFinish, addCountEx, [fbID])
updValue = updCnt
GameWorld.DebugLog(" AddEnterFBCount fbID=%s, addCount=%s, lineBit=%s, enterCnt=%s,updValue=%s"
% (fbID, addCount, lineBit, enterCnt, updValue), curPlayer.GetPlayerID())
@@ -1617,9 +1620,10 @@
if not costType or not payMoneyList:
GameWorld.DebugLog("没有配置购买副本次数消耗货币数! mapID=%s,costType=%s,payMoneyList=%s" % (mapID, costType, payMoneyList))
return
- costMoney = payMoneyList[hasBuyCnt] if len(payMoneyList) > hasBuyCnt else payMoneyList[-1]
- if not PlayerControl.PayMoney(curPlayer, costType, costMoney, ChConfig.Def_Cost_BuyFBCnt, {"MapID":mapID}):
- return
+ if not PlayerGoldInvest.IsFBCntBuyFree(curPlayer, mapID):
+ costMoney = payMoneyList[hasBuyCnt] if len(payMoneyList) > hasBuyCnt else payMoneyList[-1]
+ if not PlayerControl.PayMoney(curPlayer, costType, costMoney, ChConfig.Def_Cost_BuyFBCnt, {"MapID":mapID}):
+ return
PlayerControl.NomalDictSetProperty(curPlayer, ChConfig.Def_Player_Dict_FBBuyCnt % mapID, hasBuyCnt + 1)
Sync_FBPlayerFBInfoData(curPlayer, mapID)
return
@@ -1686,11 +1690,11 @@
return
mapIDList = [mapIDInfo] if type(mapIDInfo) == int else mapIDInfo
- clientPack = ObjPool.GetPoolMgr().acquire(ChPyNetSendPack.tagSCFBInfoList)
+ clientPack = ChPyNetSendPack.tagSCFBInfoList()
clientPack.FBDataList = []
for mapID in mapIDList:
- fbInfo = ObjPool.GetPoolMgr().acquire(ChPyNetSendPack.tagSCFBInfo)
+ fbInfo = ChPyNetSendPack.tagSCFBInfo()
fbInfo.MapID = mapID
fbInfo.EnterCnt = curPlayer.NomalDictGetProperty(ChConfig.Def_Player_Dict_FbEnterCnt % mapID)
fbInfo.ADAddCnt = curPlayer.NomalDictGetProperty(ChConfig.Def_Player_Dict_FBADCnt % mapID)
--
Gitblit v1.8.0