From cc2207557c22a88475e28f6a05a416c0fa97e527 Mon Sep 17 00:00:00 2001 From: hxp <ale99527@vip.qq.com> Date: 星期一, 25 八月 2025 18:53:15 +0800 Subject: [PATCH] 1111 删除不需要内容; --- /dev/null | 374 ----------------------------------------------------- ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/PlayerControl.py | 7 - ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/ChConfig.py | 35 ----- 3 files changed, 0 insertions(+), 416 deletions(-) diff --git a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/ChConfig.py b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/ChConfig.py index 7c24f06..dbb4529 100644 --- a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/ChConfig.py +++ b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/ChConfig.py @@ -2109,43 +2109,8 @@ #副本ID转换 Def_FB_MapID = { 'MainLevel':[Def_FBMapID_Main, Def_FBMapID_MainBoss], # 主线关卡 - 'FamilyWar':[Def_FBMapID_FamilyWar], # 仙盟联赛 - 'FamilyInvade':[Def_FBMapID_FamilyInvade], # 守卫人皇 - 'FamilyBoss':[Def_FBMapID_FamilyBossMap], # 战盟boss - 'TrialTower':[Def_FBMapID_TrialTower], # 试炼之塔 - 'ClearDevil':[Def_FBMapID_ClearDevil], # 除魔卫道 - 'MagicWeapon':[Def_FBMapID_MagicWeapon], # 法宝副本 - 'DuJie':[Def_FBMapID_DuJie], #渡劫 - 'KirinHome':[Def_FBMapID_KirinHome], #麒麟之府 - 'BZZD':[Def_FBMapID_BZZD], # 百战之地(仙界秘境) - 'GodArea':[Def_FBMapID_GodArea],#古神禁地 - 'PersonalBoss':[Def_FBMapID_PersonalBoss],#个人BOSS - 'FamilyParty':[Def_FBMapID_FamilyParty],#仙盟宴会 - 'MunekadoTrial':[Def_FBMapID_MunekadoTrial],#宗门试炼 - 'ChaosDemon':[Def_FBMapID_ChaosDemon], #混乱妖域 - 'KillDevil':[Def_FBMapID_KillDevil], #讨伐妖魔 - 'QueenRelics':[Def_FBMapID_QueenRelics], #娲皇遗迹 - 'ElderBattlefield':[Def_FBMapID_ElderBattlefield], #上古战场 - 'Guard':[Def_FBMapID_Guard], #守护副本 - 'SealDemon':[Def_FBMapID_SealDemon, Def_FBMapID_SealDemonEx], #封魔坛 - 'XMZZ':[Def_FBMapID_XMZZ], #仙魔之争 - #'ArenaBattle':[Def_FBMapID_ArenaBattle],#竞技场战斗 - #'CrossRealmPK':[Def_FBMapID_CrossRealmPK], #跨服竞技场 - #'CrossChampionship':[Def_FBMapID_CrossChampionship], #跨服排位 - 'CrossDemonKing':[Def_FBMapID_DemonKing, Def_FBMapID_CrossDemonKing], #妖王 - 'CrossGrassland':[Def_FBMapID_CrossGrasslandLing, Def_FBMapID_CrossGrasslandXian], #草园 - 'GatherSoul':[Def_FBMapID_GatherSoul],#聚魂副本 - 'ZhuXianBoss':[Def_FBMapID_ZhuXianBoss],#诛仙BOSS - 'SkyTower':[Def_FBMapID_SkyTower],#天星塔 - 'RealmTower':[Def_FBMapID_RealmTower],#境界塔 - 'AllFamilyBoss':[Def_FBMapID_AllFamilyBoss],#多仙盟BOSS - 'HorsePetBoss':[Def_FBMapID_HorsePetBoss],#骑宠BOSS - 'FairyTreasure':[Def_FBMapID_FairyTreasure],#缥缈宝藏 - 'Love':[Def_FBMapID_Love],#情缘副本 - 'CrossBattlefield':[Def_FBMapID_CrossBattlefield], #跨服战场 'CrossFamilyFlagwar':[Def_FBMapID_CrossFamilyFlagwar], #跨服仙盟夺旗战/逐鹿万界 'MineArea':[Def_TFMapID_MineArea], #福地 - 'MirrorBattle':MirrorBattleMapIDList, #镜像切磋 } #特殊副本ID, 由系统分配, 进入时候不验证IsMapCopyFull diff --git a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/GameWorldLogic/FBProcess/GameLogic_CrossDemonKing.py b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/GameWorldLogic/FBProcess/GameLogic_CrossDemonKing.py deleted file mode 100644 index c650ce8..0000000 --- a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/GameWorldLogic/FBProcess/GameLogic_CrossDemonKing.py +++ /dev/null @@ -1,374 +0,0 @@ -#!/usr/bin/python -# -*- coding: GBK -*- -#------------------------------------------------------------------------------- -# -##@package GameWorldLogic.FBProcess.GameLogic_CrossDemonKing -# -# @todo:本服、跨服妖王 -# @author hxp -# @date 2019-04-13 -# @version 1.0 -# -# 详细描述: 本服、跨服妖王 -# -#------------------------------------------------------------------------------- -#"""Version = 2019-04-13 11:00""" -#------------------------------------------------------------------------------- - -import FBCommon -import GameWorld -import ItemCommon -import IPY_GameWorld -import IpyGameDataPY -import PlayerFairyDomain -import GameWorldProcess -import PlayerControl -import ShareDefine -import PyGameData -import NPCCommon -import ChConfig -import ChItem -import ItemControler - -FBDict_IsOver = 'FBDict_IsOver' #是否已结算, 结算时的tick -FBDict_IsPlayerOver = 'IsPlayerOver_%s' #玩家是否已经结算掉落的,参数playerID - -g_ownerInfo = {} # 归属者信息 {funcLineID:[ownerID, ownerName], } - -## 是否需要做进入副本通用检查条件逻辑,默认需要检查 -def OnNeedCheckCanEnterFBComm(curPlayer, mapID, lineID): - curState = PlayerFairyDomain.GetFairyDomainFBEventState(curPlayer, mapID, lineID) - return curState != PlayerFairyDomain.FDEventState_Visiting - -## 是否能够通过活动查询进入 -def OnEnterFBEvent(curPlayer, mapID, lineID, tick): - curState = PlayerFairyDomain.GetFairyDomainFBEventState(curPlayer, mapID, lineID) - return curState in [PlayerFairyDomain.FDEventState_CanVisit, PlayerFairyDomain.FDEventState_Visiting] - -## 进入跨服副本注册数据前逻辑 -## @return: 是否可以注册前往跨服副本,次函数中可以写一些扣除消耗逻辑等 -def OnRegEnterCrossFB(curPlayer, mapID, lineID): - curState = PlayerFairyDomain.GetFairyDomainFBEventState(curPlayer, mapID, lineID) - if curState == PlayerFairyDomain.FDEventState_CanVisit: - return PlayerFairyDomain.SetFairyDomainFBEventState(curPlayer, mapID, lineID, PlayerFairyDomain.FDEventState_Visiting) - - if curState == PlayerFairyDomain.FDEventState_Visiting: - return True - - return False - -def GetCurFBLineBOSSID(mapID=-1, lineID=-1): - #该分线刷的BOSSID - if mapID == -1: - mapID = ChConfig.Def_FBMapID_CrossDemonKing if GameWorld.IsCrossServer() else ChConfig.Def_FBMapID_DemonKing - if lineID == -1: - lineID = GetCurFBFuncLineID() - if mapID == -1 or lineID == -1: - return 0 - ipyData = IpyGameDataPY.GetIpyGameDataByCondition("FairyDomain", {"MapID":mapID, "LineID":lineID}) - if not ipyData: - return 0 - bossID = ipyData.GetBossID() - return bossID - -def GetCurFBFuncLineID(): - ## 获取本线路功能线路ID - if GameWorld.IsCrossServer(): - return FBCommon.GetCrossDynamicLineMapFuncLineID() - return GameWorld.GetGameWorld().GetPropertyID() - 1 - -def GetCurFBLineZoneID(): - ## 获取本线路所属跨服分区 - if GameWorld.IsCrossServer(): - return FBCommon.GetCrossDynamicLineMapZoneID() - return 0 - -## 进副本 -def DoEnterFB(curPlayer, tick): - playerID = curPlayer.GetPlayerID() - zoneID = GetCurFBLineZoneID() - funcLineID = GetCurFBFuncLineID() - bossID = GetCurFBLineBOSSID(lineID=funcLineID) - GameWorld.Log("DoEnterFB zoneID=%s,funcLineID=%s,bossID=%s" % (zoneID, funcLineID, bossID), playerID) - PyGameData.g_fbPickUpItemDict.pop(playerID, 0) - if not GameWorld.IsCrossServer(): - PlayerFairyDomain.SetFairyDomainFBEventState(curPlayer, ChConfig.Def_FBMapID_DemonKing, funcLineID, PlayerFairyDomain.FDEventState_Visiting) - - gameFB = GameWorld.GetGameFB() - ## 副本已经结束,但是没有结算掉落的玩家直接通知结束 - if gameFB.GetGameFBDictByKey(FBDict_IsOver) and not gameFB.GetGameFBDictByKey(FBDict_IsPlayerOver % playerID): - __NotifyFBOver(curPlayer, 0) - return - -## 副本总逻辑计时器 -def OnProcess(tick): - gameFB = GameWorld.GetGameFB() - overTick = gameFB.GetGameFBDictByKey(FBDict_IsOver) - if overTick and tick - overTick >= ChConfig.Def_FBPickupItemTime: - GameWorld.Log("强制踢出玩家关闭副本: overTick=%s,tick=%s" % (overTick, tick)) - FBCommon.DoLogic_FBKickAllPlayer() - return - - return - -## 关闭副本 -def OnCloseFB(tick): - global g_ownerInfo - funcLineID = GetCurFBFuncLineID() - g_ownerInfo.pop(funcLineID, None) - GameWorld.GetGameWorld().SetPropertyID(0) - return - -## 玩家退出副本 -def DoExitFB(curPlayer, tick): - gameFB = GameWorld.GetGameFB() - overTick = gameFB.GetGameFBDictByKey(FBDict_IsOver) - gameWorld = GameWorld.GetGameWorld() - #最后一人退出副本则关闭地图 - if overTick and gameWorld.GetMapCopyPlayerManager().GetPlayerCount() == 1: - GameWorldProcess.CloseFB(tick) - - return - -##玩家主动离开副本. -def DoPlayerLeaveFB(curPlayer, tick): - - gameWorld = GameWorld.GetGameWorld() - #最后一人退出副本则关闭地图 - if gameWorld.GetMapCopyPlayerManager().GetPlayerCount() == 1: - GameWorldProcess.CloseFB(tick) - - return - -## 是否副本复活 -def OnPlayerReborn(): - return True - -## 获得副本帮助信息 -def DoFBHelp(curPlayer, tick): - return - -def DoFB_Npc_KillNPC(attacker, curNPC, tick): - __FBNPCOnKilled(curNPC, tick) - return -def DoFB_Player_KillNPC(curPlayer, curNPC, tick): - __FBNPCOnKilled(curNPC, tick) - return - -## 执行副本杀怪逻辑 -def __FBNPCOnKilled(curNPC, tick): - global g_ownerInfo - - bossID = curNPC.GetNPCID() - funcLineID = GetCurFBFuncLineID() - if bossID != GetCurFBLineBOSSID(lineID=funcLineID): - return - - zoneID = GetCurFBLineZoneID() - gameFB = GameWorld.GetGameFB() - gameFB.SetGameFBDict(FBDict_IsOver, tick) - - ownerType = curNPC.GetDictByKey(ChConfig.Def_NPC_Dict_LastDropOwnerType) - ownerID = curNPC.GetDictByKey(ChConfig.Def_NPC_Dict_LastDropOwnerID) if ownerType == ChConfig.Def_NPCHurtTypePlayer else 0 - - isCrossServer = GameWorld.IsCrossServer() - mapID = ChConfig.Def_FBMapID_CrossDemonKing if isCrossServer else ChConfig.Def_FBMapID_DemonKing - GameWorld.Log("击杀妖王: zoneID=%s,mapID=%s,funcLineID=%s,ownerID=%s,bossID=%s" % (zoneID, mapID, funcLineID, ownerID, bossID)) - ipyData = IpyGameDataPY.GetIpyGameDataByCondition("FairyDomain", {"MapID":mapID, "LineID":funcLineID}) - if not ipyData: - return - eventID = ipyData.GetID() - ownerName = "" - dropPosX, dropPosY = curNPC.GetPosX(), curNPC.GetPosY() - - serverGroupIDList = [] - msgInfo = {} - playerManager = GameWorld.GetMapCopyPlayerManager() - for index in xrange(playerManager.GetPlayerCount()): - curPlayer = playerManager.GetPlayerByIndex(index) - if not curPlayer: - continue - playerID = curPlayer.GetPlayerID() - gameFB.SetGameFBDict(FBDict_IsPlayerOver % playerID, 1) - isOwner = playerID == ownerID - if isOwner: - ownerName = curPlayer.GetPlayerName() - giveItemList = __GetDemonKingPrizeItemList(curPlayer, mapID, funcLineID, eventID, isOwner) - GameWorld.Log("玩家奖励: %s" % giveItemList, playerID) - ChItem.DoMapDropItem(curPlayer, giveItemList, bossID, dropPosX, dropPosY, isOnlySelfSee=True, isDropDisperse=True) - #curPlayer.Sync_TimeTick(ChConfig.tttPickupItem, 0, ChConfig.Def_FBPickupItemTime, True) - if not isCrossServer: - PlayerFairyDomain.SetFairyDomainFBEventState(curPlayer, mapID, funcLineID, PlayerFairyDomain.FDEventState_Visited) - else: - serverGroupID = PlayerControl.GetPlayerServerGroupID(curPlayer) - if serverGroupID not in serverGroupIDList: - serverGroupIDList.append(serverGroupID) - msgInfo[playerID] = [serverGroupID, mapID, funcLineID] - - g_ownerInfo[funcLineID] = [ownerID, ownerName] - - if msgInfo: - GameWorld.SendMsgToClientServer(ShareDefine.CrossServerMsg_FBEnd, msgInfo, serverGroupIDList) - - return - -## 结束跨服副本 -def OnEndCrossFB(curPlayer, mapID, lineID, exData): - PlayerFairyDomain.SetFairyDomainFBEventState(curPlayer, mapID, lineID, PlayerFairyDomain.FDEventState_Visited) - return - -def OnPickUpItem(curPlayer, curItem, tick): - mapItemType = curItem.GetType() - if mapItemType == ChConfig.Def_ItemType_Money: - return - playerID = curPlayer.GetID() - isEquip = ItemCommon.CheckItemIsEquip(curItem) - jsonItem = ItemCommon.GetJsonItem(curItem) - if playerID in PyGameData.g_fbPickUpItemDict: - if isEquip or jsonItem.get("IsAuctionItem"): - PyGameData.g_fbPickUpItemDict[playerID].append(jsonItem) - else: - isIn = False - for itemInfo in PyGameData.g_fbPickUpItemDict[playerID]: - if itemInfo["ItemID"] == jsonItem["ItemID"] and itemInfo.get("IsAuctionItem") == jsonItem.get("IsAuctionItem"): - itemInfo["Count"] = itemInfo.get("Count", 1) + jsonItem.get("Count", 1) - isIn = True - break - if not isIn: - PyGameData.g_fbPickUpItemDict[playerID].append(jsonItem) - else: - PyGameData.g_fbPickUpItemDict[playerID] = [jsonItem] - - playerItemCount = 0 - mapItemManager = GameWorld.GetMapItemManager() - for index in xrange(mapItemManager.GetMapItemCount()): - mapItem = mapItemManager.GetMapItemByIndex(index) - if not mapItem or mapItem.IsEmpty(): - continue - - # 还有属于自己的东西没捡不通知结束 - if mapItem.GetOwnerID() == curPlayer.GetPlayerID(): - playerItemCount += 1 - - isItemAllPickUp = (playerItemCount <= 1) - if not isItemAllPickUp: - return - - __NotifyFBOver(curPlayer, 1) - return - -def __NotifyFBOver(curPlayer, isPass): - global g_ownerInfo - playerID = curPlayer.GetPlayerID() - mapID = ChConfig.Def_FBMapID_CrossDemonKing if GameWorld.IsCrossServer() else ChConfig.Def_FBMapID_DemonKing - funcLineID = GetCurFBFuncLineID() - leaveTick = FBCommon.GetFBLineStepTime(mapID, funcLineID) * 1000 - ownerID, ownerName = g_ownerInfo.get(funcLineID, [0, ""]) - jsonItemList = PyGameData.g_fbPickUpItemDict.pop(playerID, []) - overDict = {FBCommon.Over_ownerID:ownerID, FBCommon.Over_ownerName:ownerName, FBCommon.Over_itemInfo:jsonItemList} - FBCommon.NotifyFBOver(curPlayer, mapID, funcLineID, isPass, overDict) - curPlayer.Sync_TimeTick(IPY_GameWorld.tttLeaveMap, 0, leaveTick, True) - return - -## 客户端进入自定义场景 -def OnEnterCustomScene(curPlayer, mapID, lineID): - PlayerFairyDomain.SetFairyDomainFBEventState(curPlayer, mapID, lineID, PlayerFairyDomain.FDEventState_Visiting) - return - -## 自定义场景副本击杀NPC -def DoCustomScene_Player_KillNPC(curPlayer, curNPC, mapID, lineID): - - bossID = curNPC.GetNPCID() - funcLineID = lineID - curBossID = GetCurFBLineBOSSID(lineID=funcLineID) - curState = PlayerFairyDomain.GetFairyDomainFBEventState(curPlayer, mapID, lineID) - GameWorld.DebugLog("自定义场景击杀NPC: mapID=%s,lineID=%s,bossID=%s,curBossID=%s,eventState=%s" - % (mapID, lineID, bossID, curBossID, curState)) - if bossID != curBossID: - return - - playerID = curPlayer.GetPlayerID() - ipyData = IpyGameDataPY.GetIpyGameDataByCondition("FairyDomain", {"MapID":mapID, "LineID":funcLineID}) - if not ipyData: - return - eventID = ipyData.GetID() - eventFBType = ipyData.GetEventFBType() - if eventFBType != PlayerFairyDomain.FDEventFBType_Client: - GameWorld.DebugLog(" 非前端本,不能掉落!", playerID) - return - if curState != PlayerFairyDomain.FDEventState_Visiting: - GameWorld.DebugLog(" 非寻访中,不能掉落!", playerID) - return - PlayerFairyDomain.SetFairyDomainFBEventState(curPlayer, mapID, funcLineID, PlayerFairyDomain.FDEventState_Visited) - PlayerControl.SetCustomMap(curPlayer, 0, 0) - - isOwner = True - giveItemList = __GetDemonKingPrizeItemList(curPlayer, mapID, funcLineID, eventID, isOwner) - NPCCommon.DoGiveItemByVirtualDrop(curPlayer, giveItemList, bossID) - - isPass = 1 - overDict = {FBCommon.Over_ownerID:playerID, FBCommon.Over_ownerName:curPlayer.GetPlayerName(), - FBCommon.Over_itemInfo:FBCommon.GetJsonItemList(giveItemList)} - FBCommon.NotifyFBOver(curPlayer, mapID, lineID, isPass, overDict) - return - -def __GetDemonKingPrizeItemList(curPlayer, mapID, lineID, eventID, isOwner): - giveItemList = PlayerFairyDomain.GetFairyAppointAward(curPlayer, eventID) - if giveItemList: - return giveItemList - - # 没有定制奖励则取常规奖励 - # [[归属者随机次数, 非归属随机次数, [[权重,[物品ID,个数,是否拍品]], ...]], ...] - - giveItemList = [] - awardList = FBCommon.GetFBLineReward(mapID, lineID) - for awardInfo in awardList: - ownerCount, otherCount, itemWeightList = awardInfo - if isOwner: - if not ownerCount: - continue - randCount = ownerCount - else: - if not otherCount: - continue - randCount = otherCount - realWeightList = ItemCommon.GetWeightItemListByAlchemyDiffLV(curPlayer, itemWeightList, 1) - if not realWeightList: - continue - - for _ in xrange(randCount): - itemInfo = GameWorld.GetResultByWeightList(realWeightList) - itemID, itemCount, isAuctionItem = itemInfo - if not itemID: - continue - giveItemList.append([itemID, itemCount, isAuctionItem]) - - return giveItemList - -## 可否扫荡 -def OnPlayerFBSweepAsk(curPlayer, mapID, lineID, sweepCnt, isFinish, dataEx): - curState = PlayerFairyDomain.GetFairyDomainFBEventState(curPlayer, mapID, lineID) - if curState not in [PlayerFairyDomain.FDEventState_CanVisit, PlayerFairyDomain.FDEventState_Visiting]: - GameWorld.DebugLog("缥缈无法扫荡! 不存在该事件或无法进入! mapID=%s,lineID=%s,curState=%s" % (mapID, lineID, curState)) - return False - return True - -## 扫荡结果 -def OnPlayerFBSweepResult(curPlayer, mapID, lineID, sweepCnt, isFinish, dataEx): - playerID = curPlayer.GetPlayerID() - ipyData = IpyGameDataPY.GetIpyGameDataByCondition("FairyDomain", {"MapID":mapID, "LineID":lineID}) - if not ipyData: - return - eventID = ipyData.GetID() - PlayerFairyDomain.SetFairyDomainFBEventState(curPlayer, mapID, lineID, PlayerFairyDomain.FDEventState_Visited) - - isOwner = True - giveItemList = __GetDemonKingPrizeItemList(curPlayer, mapID, lineID, eventID, isOwner) - ItemControler.GivePlayerItemOrMail(curPlayer, giveItemList) - - isPass = 1 - overDict = {FBCommon.Over_ownerID:playerID, FBCommon.Over_ownerName:curPlayer.GetPlayerName(), - FBCommon.Over_itemInfo:FBCommon.GetJsonItemList(giveItemList), FBCommon.Over_isSweep:1} - FBCommon.NotifyFBOver(curPlayer, mapID, lineID, isPass, overDict) - return - diff --git a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/PlayerControl.py b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/PlayerControl.py index ea3ffb9..b8b6056 100644 --- a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/PlayerControl.py +++ b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/PlayerControl.py @@ -49,7 +49,6 @@ import PyGameData import PlayerFeastTravel import PlayerActTurntable -import GameLogic_CrossDemonKing import PlayerCostRebate import PlayerActLunhuidian import PlayerActGarbageSorting @@ -1385,12 +1384,6 @@ # 需要动态分布线路的地图,发送到跨服服务器进行分配 if mapID in ChConfig.Def_CrossDynamicLineMap: extendInfo = {} - if mapID == ChConfig.Def_FBMapID_CrossDemonKing: - bossID = GameLogic_CrossDemonKing.GetCurFBLineBOSSID(mapID, lineID) - if not bossID: - return - extendInfo["BossID"] = bossID - msgDict = {"PlayerID":curPlayer.GetPlayerID(), "MapID":mapID, "FuncLineID":lineID, "LV":curPlayer.GetLV()} if extendInfo: msgDict.update(extendInfo) -- Gitblit v1.8.0