From d7f44d8d871a90c818bdb3ffe9a60af875b7100a Mon Sep 17 00:00:00 2001 From: hxp <ale99527@vip.qq.com> Date: 星期二, 30 九月 2025 10:12:23 +0800 Subject: [PATCH] 135 【挑战】战锤秘境-服务端(白骨盈野;副本基础;副本扫荡;广告奖励支持;) --- ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Item/ChItem.py | 108 +++-------------------------------------------------- 1 files changed, 7 insertions(+), 101 deletions(-) diff --git a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Item/ChItem.py b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Item/ChItem.py index 36d166c..3d49a93 100644 --- a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Item/ChItem.py +++ b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Item/ChItem.py @@ -147,7 +147,7 @@ # @param tick 当前时间 # @return None or True # @remarks 函数详细说明. -def __DoPickup(curPlayer, mapItemID, tick, isGuard): +def __DoPickup(curPlayer, mapItemID, tick): playerID = curPlayer.GetPlayerID() mapItemManager = GameWorld.GetMapItemManager() @@ -165,7 +165,7 @@ posX, posY, itemPosX, itemPosY = curPlayer.GetPosX(), curPlayer.GetPosY(), mapItem.GetPosX(), mapItem.GetPosY() pickDist = GameWorld.GetDist(posX, posY, itemPosX, itemPosY) # 守护拾取不验证拾取范围 - if not isGuard and pickDist > curPlayer.GetPickupDist(): + if pickDist > curPlayer.GetPickupDist(): #距离过远, 不能捡起 PlayerControl.NotifyCode(curPlayer, "GeRen_chenxin_805889") GameWorld.Log("当前距离过远, mapItemID=%s,dropItemNPCID=%s,玩家(%d,%d)-物品(%d,%d),pickDist=%s > playerPickupDist=%s" @@ -257,8 +257,8 @@ mapID = GameWorld.GetGameWorld().GetMapID() lineID = 0 if GameWorld.GetMap().GetMapFBType() == IPY_GameWorld.fbtNull else PlayerControl.GetFBFuncLineID(curPlayer) #合并地图的,使用前端lineID,即 FBID - if mapID in [ChConfig.Def_FBMapID_BossHome]: - lineID = curPlayer.GetClientLineID() + #if mapID in [ChConfig.Def_FBMapID_BossHome]: + # lineID = curPlayer.GetClientLineID() NPCCommon.SendGameServerGoodItemRecord(curPlayer, mapID, lineID, dropItemNPCID, curItemID, equipInfo) # 不需要队伍提示 @@ -299,20 +299,6 @@ return #--------------------------------------------------------------------- -#// A3 12 守护拾取物品 #tagCMGuardPickupItem -# -#struct tagCMGuardPickupItem -#{ -# tagHead Head; -# WORD ItemCount; -# WORD MapItemID[ItemCount]; //size = ItemCount -#}; -def OnGuardPickupItem(index, clientData, tick): - curPlayer = GameWorld.GetPlayerManager().GetPlayerByIndex(index) - mapItemIDList = clientData.MapItemID - __DoPickupItem(curPlayer, mapItemIDList, tick, True) - return - ## 玩家拾取物品(封包参数) # @param index 当前玩家索引 # @param tick 当前时间 @@ -323,103 +309,23 @@ #玩家捡起物品 pickPack = IPY_GameWorld.IPY_PickUpItem() mapItemID = pickPack.GetMapItemID() - __DoPickupItem(curPlayer, [mapItemID], tick, False) + __DoPickupItem(curPlayer, [mapItemID], tick) return -def __DoPickupItem(curPlayer, mapItemIDList, tick, isGuard): - # @param isGuard: 是否守护拾取 - - if isGuard and GameWorld.GetMap().GetMapFBType() != IPY_GameWorld.fbtNull: - mapID = curPlayer.GetMapID() - fbIpyData = FBCommon.GetFBIpyData(mapID) - if fbIpyData and not fbIpyData.GetGuardPick(): - GameWorld.Log("该地图守护无法拾取物品! mapID=%s" % mapID, curPlayer.GetPlayerID()) - return - -# #单人副本一键拾取 -# if GameWorld.GetMap().GetMapFBType() == IPY_GameWorld.fbtSingle: -# SingleFBTPickUP(curPlayer, mapItemID, tick) -# return - +def __DoPickupItem(curPlayer, mapItemIDList, tick): if not mapItemIDList: GameWorld.ErrLog("没有指定要拾取的地图物品ID!", curPlayer.GetPlayerID()) return succMapItemIDList = [] # 成功拾取的地图物品 for mapItemID in mapItemIDList: - if __DoPickup(curPlayer, mapItemID, tick, isGuard): + if __DoPickup(curPlayer, mapItemID, tick): succMapItemIDList.append(mapItemID) if succMapItemIDList: GameWorld.Log("成功拾取地图物品, succMapItemIDList=%s" % (succMapItemIDList), curPlayer.GetPlayerID()) - - # 守护拾取的,附加同步守护拾取结果 - if isGuard and succMapItemIDList: - guradPickupSucc = ChPyNetSendPack.tagMCGuradPickupItemSucc() - guradPickupSucc.MapItemID = succMapItemIDList - guradPickupSucc.ItemCount = len(guradPickupSucc.MapItemID) - NetPackCommon.SendFakePack(curPlayer, guradPickupSucc) - -# 玩家拾取结果目前客户端暂时无用,不通知 -# if not __DoPickup(curPlayer, mapItemID, tick): -# curPlayer.Notify_PickupItemResult(mapItemID, 0) -# else: -# curPlayer.Notify_PickupItemResult(mapItemID, 1) return - -###单人副本一键拾取 -## @param curPlayer mapItemID -## @return None -#def SingleFBTPickUP(curPlayer, mapItemID, tick): -# mapItemManager = GameWorld.GetMapItemManager() -# curMapItem = mapItemManager.GetItemByID(mapItemID) -# if curMapItem == None or curMapItem.IsEmpty(): -# return -# -# posX = curPlayer.GetPosX() -# posY = curPlayer.GetPosY() -# itemPosX = curMapItem.GetPosX() -# itemPosY = curMapItem.GetPosY() -# -# pickDist = GameWorld.GetDist(posX, posY, itemPosX, itemPosY) -# -# if pickDist > curPlayer.GetPickupDist(): -# #距离过远, 不能捡起 -# PlayerControl.NotifyCode(curPlayer, "GeRen_chenxin_805889") -# return -# -# mapItemIDList = [curMapItem.GetID()] -# #拾取当前格子周围的物品 -# mapItemManager = GameWorld.GetMapItemManager() -# for index in range(mapItemManager.GetMapItemCount()): -# mapItem = mapItemManager.GetMapItemByIndex(index) -# if not mapItem or mapItem.IsEmpty(): -# continue -# -# mapItemObjID = mapItem.GetID() -# if mapItemObjID in mapItemIDList: -# continue -# -# curItem = mapItem.GetItem() -# # 只一键拾取金钱 -# if curItem.GetType() != ChConfig.Def_ItemType_Money: -# continue -# -# pickDist = GameWorld.GetDist(posX, posY, mapItem.GetPosX(), mapItem.GetPosY()) -# -# if pickDist > curPlayer.GetPickupDist(): -# continue -# -# mapItemIDList.append(mapItemObjID) -# -# for mapItemID in mapItemIDList: -# if not __DoPickup(curPlayer, mapItemID, tick): -# curPlayer.Notify_PickupItemResult(mapItemID, 0) -# else: -# curPlayer.Notify_PickupItemResult(mapItemID, 1) -# -# return #--------------------------------------------------------------------- ## 玩家使用物品 ->自身效果(封包参数) # @param index 当前玩家索引 -- Gitblit v1.8.0