From c63ffd10aecb12b2e09dae603cf9a0f824f6482c Mon Sep 17 00:00:00 2001
From: hxp <ale99527@vip.qq.com>
Date: 星期三, 10 十二月 2025 15:46:15 +0800
Subject: [PATCH] 16 卡牌服务端(合成目标物品与材料物品不在同一背包时支持合成;)
---
ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/GameWorldLogic/FBProcess/GameLogic_Tianzi.py | 35 ++++++++++++++++++++++++++---------
1 files changed, 26 insertions(+), 9 deletions(-)
diff --git a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/GameWorldLogic/FBProcess/GameLogic_Tianzi.py b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/GameWorldLogic/FBProcess/GameLogic_Tianzi.py
index f700730..e63e88a 100644
--- a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/GameWorldLogic/FBProcess/GameLogic_Tianzi.py
+++ b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/GameWorldLogic/FBProcess/GameLogic_Tianzi.py
@@ -20,11 +20,13 @@
import GameWorld
import ItemControler
import PlayerControl
+import PlayerSuccess
import PlayerBillboard
import ChPyNetSendPack
import NetPackCommon
import IpyGameDataPY
import ShareDefine
+import PlayerTask
import PlayerMail
import DBDataMgr
import TurnSkill
@@ -83,7 +85,7 @@
return True, funcLineID
-def GetFBNPCInitAttr(curPlayer, turnFight, npcObj):
+def GetFBNPCInitAttr(turnFight, npcObj):
## 获取副本指定NPC初始化属性
bossID = npcObj.GetNPCID()
ipyDataList = IpyGameDataPY.GetIpyGameDataList("Tianzi", bossID)
@@ -91,7 +93,7 @@
return {}
return __getBossAttrDict(ipyDataList[0])
-def OnFBNPCKilledBefore(curPlayer, turnFight, gameObj, killer=None, useSkill=None):
+def OnFBNPCKilledBefore(turnFight, gameObj, killer=None, useSkill=None):
## 副本NPC被击杀前处理,一般用于处理一些不被击杀的副本NPC逻辑
# @return: 可否被正常击杀
@@ -138,21 +140,28 @@
attrDict.update(ipyData.GetOtherAttrDict())
return attrDict
-def OnTurnFightOver(curPlayer, turnFight, mapID, funcLineID, overMsg):
+def OnTurnFightOver(turnFight, mapID, funcLineID, overMsg):
## 回合战斗结束
+ hpNum = turnFight.GetDictByKey("hpNum")
+ batFaction = turnFight.getBatFaction(ChConfig.Def_FactionA)
+ totalHurt = batFaction.getTotalHurt()
+
+ overMsg.update({"hpNum":hpNum, "totalHurt":totalHurt})
+ return
+
+def OnTurnFightAward(curPlayer, guid, mapID, funcLineID, winFaction, statMsg, dateStr, reqData, awardDict):
+ ## 回合战斗结算奖励
if not curPlayer:
return
- #isWin = turnFight.isWin
lineID, bossID = GetTianziTodayInfo(curPlayer)
if lineID != funcLineID:
GameWorld.ErrLog("结算时非今日天子考验! mapID=%s,funcLineID=%s != %s,bossID=%s" % (mapID, funcLineID, lineID, bossID))
return
- hpNum = turnFight.GetDictByKey("hpNum")
- batFaction = turnFight.getBatFaction(ChConfig.Def_FactionA)
- totalHurt = batFaction.getTotalHurt()
+ hpNum = statMsg.get("hpNum", 0)
+ totalHurt = statMsg.get("totalHurt", 0)
historyHurt = curPlayer.NomalDictGetProperty(ChConfig.Def_PDict_TianziHisHurt % bossID)
historyHurtEx = curPlayer.NomalDictGetProperty(ChConfig.Def_PDict_TianziHisHurtEx % bossID)
@@ -181,11 +190,13 @@
#更新榜单
PlayerBillboard.UpdatePlayerBillboard(curPlayer, ShareDefine.Def_BT_Tianzi, todayHurtEx, todayHurt)
- itemList = __getTianziAwardList(todayHurt, bossID)
+ itemList = __getTianziAwardList(totalHurt, bossID)
+ awardDict.update({FBCommon.Over_itemInfo:FBCommon.GetJsonItemList(itemList), "totalHurt":totalHurt, "todayHurtTotal":todayHurtTotal})
+
FBCommon.AddEnterFBCount(curPlayer, mapID)
ItemControler.GivePlayerItemOrMail(curPlayer, itemList, event=["Tianzi", False, {}], isNotifyAward=False)
- overMsg.update({FBCommon.Over_itemInfo:FBCommon.GetJsonItemList(itemList), "totalHurt":totalHurt, "todayHurtTotal":todayHurtTotal})
SyncTianziInfo(curPlayer, lineID, bossID)
+ __onFBTianzi(curPlayer)
return
def __getTianziAwardList(todayHurt, bossID, sweepCnt=1):
@@ -242,8 +253,14 @@
overDict = {FBCommon.Over_itemInfo:FBCommon.GetJsonItemList(itemList), FBCommon.Over_isSweep:1,
"totalHurt":todayHurtTotal, "todayHurtTotal":todayHurtTotal}
FBCommon.NotifyFBOver(curPlayer, mapID, lineID, isPass, overDict)
+ __onFBTianzi(curPlayer)
return True
+def __onFBTianzi(curPlayer):
+ PlayerTask.AddTaskValue(curPlayer, ChConfig.TaskType_FBTianzi)
+ PlayerSuccess.DoAddSuccessProgress(curPlayer, ShareDefine.SuccType_OSAFBTianzi, 1)
+ return
+
def SyncTianziInfo(curPlayer, lineID=None, bossID=None):
if lineID == None:
lineID, bossID = GetTianziTodayInfo(curPlayer)
--
Gitblit v1.8.0