From 9d0b6e92a4cdb313f5b5c451715cc1dfcb227177 Mon Sep 17 00:00:00 2001 From: hxp <ale99527@vip.qq.com> Date: 星期四, 06 六月 2024 11:18:00 +0800 Subject: [PATCH] 10130 【后端】福地争夺资源功能(增加摇人功能、支持自己驱赶;优化刷福地物品相关GM命令;) --- ServerPython/CoreServerGroup/GameServer/Script/GameWorldLogic/GameWorldMineArea.py | 53 +++++++++++++++++++++++++++++++++-------------------- 1 files changed, 33 insertions(+), 20 deletions(-) diff --git a/ServerPython/CoreServerGroup/GameServer/Script/GameWorldLogic/GameWorldMineArea.py b/ServerPython/CoreServerGroup/GameServer/Script/GameWorldLogic/GameWorldMineArea.py index d89f323..2cef9d1 100644 --- a/ServerPython/CoreServerGroup/GameServer/Script/GameWorldLogic/GameWorldMineArea.py +++ b/ServerPython/CoreServerGroup/GameServer/Script/GameWorldLogic/GameWorldMineArea.py @@ -790,22 +790,22 @@ def OnTurnFightRequest(curPlayer, mapID, funcLineID, tagPlayerID, valueList): - # 摇人帮助请求 - if funcLineID == 0: + # 摇人帮助请求、自己驱赶请求 + if funcLineID == 0 or funcLineID == 1: return __OnMineHelpRequest(curPlayer, mapID, funcLineID, tagPlayerID, valueList) return def OnTurnFightOver(curPlayer, mapID, funcLineID, tagPlayerID, valueList, fightRet, awardItemList): - # 摇人帮助结果 - if funcLineID == 0: + # 摇人帮助结果、自己驱赶结果 + if funcLineID == 0 or funcLineID == 1: return __OnMineHelpOver(curPlayer, mapID, funcLineID, tagPlayerID, valueList, fightRet, awardItemList) return def __OnMineHelpRequest(curPlayer, mapID, funcLineID, tagPlayerID, valueList): - # 摇人帮助请求 + # 摇人帮助请求、自己驱赶请求 playerID = curPlayer.GetPlayerID() if not valueList or len(valueList) < 2: GameWorld.DebugLog("没有指定valueList!", playerID) @@ -813,10 +813,15 @@ areaPlayerID = valueList[0] itemIndex = valueList[1] - if playerID == areaPlayerID: - GameWorld.DebugLog("不能帮助自己!", playerID) - return - + if funcLineID == 0: + if playerID == areaPlayerID: + GameWorld.DebugLog("不能帮助自己! areaPlayerID=%s" % areaPlayerID, playerID) + return + elif funcLineID == 1: + if playerID != areaPlayerID: + GameWorld.DebugLog("不是自己的福地,无法自己驱赶! areaPlayerID=%s" % areaPlayerID, playerID) + return + mineItemMgr = PyDataManager.GetDBPyMineAreaItemManager() mineItemData = mineItemMgr.GetMineItem(areaPlayerID, itemIndex) mineID = mineItemData.MineID @@ -841,7 +846,7 @@ return True def __OnMineHelpOver(curPlayer, mapID, funcLineID, tagPlayerID, valueList, fightRet, awardItemList): - # 摇人帮助结果 + # 摇人帮助结果、自己驱赶结果 playerID = curPlayer.GetPlayerID() helpPlayerName = curPlayer.GetName() @@ -863,17 +868,25 @@ if robPlayerID and robPlayerID == tagPlayerID: __DoCancelPull(tagPlayerID, areaPlayerID, itemIndex) - robCacheDict = PlayerViewCache.GetCachePropDataDict(PlayerViewCache.FindViewCache(tagPlayerID)) - robPlayerName = robCacheDict.get("Name", "") + # 帮助的发奖 + if funcLineID == 0: + robCacheDict = PlayerViewCache.GetCachePropDataDict(PlayerViewCache.FindViewCache(tagPlayerID)) + robPlayerName = robCacheDict.get("Name", "") + + areaCacheDict = PlayerViewCache.GetCachePropDataDict(PlayerViewCache.FindViewCache(areaPlayerID)) + areaPlayerName = areaCacheDict.get("Name", "") + + # 邮件发放奖励 + PlayerCompensation.SendMailByKey("MineHelpAward", [playerID], awardItemList, [areaPlayerName, robPlayerName]) + + # 通知福地玩家 + PlayerCompensation.SendMailByKey("MineHelpReqOK", [areaPlayerID], [], [helpPlayerName, robPlayerName]) + + # 自己驱赶的 + elif funcLineID == 1: + # 自己驱赶的,不用再通知地图,直接return + return - areaCacheDict = PlayerViewCache.GetCachePropDataDict(PlayerViewCache.FindViewCache(areaPlayerID)) - areaPlayerName = areaCacheDict.get("Name", "") - - # 邮件发放奖励 - PlayerCompensation.SendMailByKey("MineHelpAward", [playerID], awardItemList, [areaPlayerName, robPlayerName]) - - # 通知福地玩家 - PlayerCompensation.SendMailByKey("MineHelpReqOK", [areaPlayerID], [], [helpPlayerName, robPlayerName]) return True def MapServer_MineArea(curPlayer, msgList): -- Gitblit v1.8.0