From 167357e8425d0dc12f41ed5fdfd4d95f2c2a5aaf Mon Sep 17 00:00:00 2001 From: hxp <ale99527@vip.qq.com> Date: 星期四, 29 五月 2025 19:19:20 +0800 Subject: [PATCH] 16 卡牌服务端(删除旧版xml任务、镖车等不需要内容) --- ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/NPC/NPCCommon.py | 157 --------------------------------------------------- 1 files changed, 2 insertions(+), 155 deletions(-) diff --git a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/NPC/NPCCommon.py b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/NPC/NPCCommon.py index afd4852..806394e 100644 --- a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/NPC/NPCCommon.py +++ b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/NPC/NPCCommon.py @@ -20,7 +20,6 @@ import PlayerControl import GameMap import ChConfig -import EventShell import SkillShell import BuffSkill import BaseAttack @@ -2383,7 +2382,6 @@ "AccID":curPlayer.GetAccID(), "PlayerID":curPlayer.GetPlayerID()} DataRecordPack.SendEventPack("AddKillBossCnt", dataDict, curPlayer) PlayerSuccess.DoAddSuccessProgress(curPlayer, ShareDefine.SuccType_FeastRedPack_KillBoss, 1, [limitIndex]) - EventShell.EventRespons_KillBoss(curPlayer, limitIndex) PlayerState.SetBossStateExit(curPlayer) if isCrossServer: @@ -2741,10 +2739,6 @@ GameWorld.Log("curNPC = %s 查找对象, 获得对象实例失败" % (curNPC.GetNPCID())) return False - #守卫攻击镖车,仇恨特殊处理 - if self.__GuaedAttackTruck(seeObjDetail , tick): - return True - #小怪不可行进通道就当作看不见 if not AttackCommon.CanAttackByPath(curNPC, seeObjDetail): #GameWorld.DebugLog("有障碍 看见也不加仇恨") @@ -2764,37 +2758,6 @@ #GameWorld.Log("%s添加仇恨%s成功"%(curNPC.GetName(), seeObjDetail.GetName())) return True - #--------------------------------------------------------------------- - ##守卫攻击镖车,特殊处理 - # @param self 类实例 - # @param seeObj 视野中的对象 - # @param tick 时间戳 - # @return 返回值真, 可以添加这个对象 - # @remarks 守卫攻击镖车,特殊处理 - def __GuaedAttackTruck(self, seeObj, tick) : - curNPC = self.__Instance - - if curNPC.GetType() != IPY_GameWorld.ntGuard: - return - - if seeObj.GetGameObjType() != IPY_GameWorld.gotNPC or \ - seeObj.GetGameNPCObjType() != IPY_GameWorld.gnotTruck : - return - - #如果是远程的守卫,不考虑攻击距离,追击 - #不可移动的固定守卫,超出攻击距离,返回 - if curNPC.GetSpeed() == 0 and not BaseAttack.GetCanAttack(curNPC, seeObj, None, tick): - return - - relation = BaseAttack.GetTagRelation(curNPC, seeObj, None, tick)[0] - - if relation != ChConfig.Type_Relation_Enemy : - return - - return True - - - def GetIsBossView(self): # 主动视野情况,GetIsBoss 0 1 4 为普通NPC视野(有视野范围配置,但去除视野刷新),其他为BOSS类视野有刷新 curNPC = self.__Instance @@ -3755,48 +3718,6 @@ curNPC.SetDict(ChConfig.Def_NPC_Dict_HPPerLogicMark, hpPerLogicMark) return - - ## 给附近玩家加功勋 - # @param self 类实例 - # @param addPrestigeFormat 加功勋公式 - # @param matrix 范围大小 - # @return - def __GiveNearbyPlayerPrestige(self, addPrestigeFormat, matrix=ChConfig.Def_Matrix_Three): -# if addPrestigeFormat == '': -# return -# curNPC = self.__Instance -# npcPosX = curNPC.GetPosX() -# npcPosY = curNPC.GetPosY() -# npcLV = curNPC.GetLV() -# gameMap = GameWorld.GetMap() -# -# for curPos in matrix: -# -# #检查有没有对象在这一点上 -# mapObj = gameMap.GetPosObj(npcPosX + curPos[0], npcPosY + curPos[1]) -# -# if not mapObj: -# continue -# -# #遍历当前点对象 -# for i in range(0, mapObj.GetObjCount()): -# -# curObj = mapObj.GetObjByIndex(i) -# curObjType = curObj.GetGameObjType() -# -# #不是玩家,跳过 -# if curObjType != IPY_GameWorld.gotPlayer: -# continue -# -# curTag = GameWorld.GetObj(curObj.GetID(), curObjType) -# if not curTag: -# continue -# playerLV = curTag.GetLV() -# addPrestige = eval(addPrestigeFormat) -# PlayerPrestigeSys.AddPrestigeOffcialLV(curTag, addPrestige, ChConfig.Def_AddPrestige_NPC) - - return - #--------------------------------------------------------------------- ## NPC死的时候, 检查自己是否需要重生. 0: tick后仍然死亡 1: tick后可以重生 # @param self 类实例 @@ -4039,11 +3960,6 @@ curNPC = self.__Instance npcID = curNPC.GetNPCID() #######################特殊NPC的处理 - #===================================================================================================== - # if curNPC.GetGameNPCObjType() == IPY_GameWorld.gnotTruck: - # #如果是骠车死亡, 调用骠车死亡逻辑 - # PlayerTruck.DoTruckDestroy(curNPC) - #===================================================================================================== #boss伤血排行榜击杀逻辑 #BossHurtMng.BossOnKilled(curNPC) @@ -4077,14 +3993,7 @@ # #PlayerControl.WorldNotify(0, "Old_andyshao_861048", [curNPC.GetNPCID()]) # if mapID == ChConfig.Def_MapID_DouHunTan: # NPCCustomRefresh.DoRefreshNeutralBoss(npcID) - # - # # 周围玩家加威望 - # npcKilledAddPrestigeDict = ReadChConfig.GetEvalChConfig('NPCKilledAddPrestige') - # if npcID in npcKilledAddPrestigeDict: - # addPrestigeFormat = npcKilledAddPrestigeDict[npcID] - # self.__GiveNearbyPlayerPrestige(addPrestigeFormat, ChConfig.Def_Matrix_Six) - #=========================================================================================== - + #清空NPC的仇恨 curNPC.GetNPCAngry().Clear() return @@ -4332,10 +4241,6 @@ curNPC_GameNPCObjType = curNPC.GetGameNPCObjType() #---特殊死亡逻辑--- - #镖车不能通知死亡 - if curNPC_GameNPCObjType == IPY_GameWorld.gnotTruck: - return - #宠物死亡调用独立接口 if curNPC_GameNPCObjType == IPY_GameWorld.gnotPet: PetControl.SetPetDead(curNPC) @@ -4350,52 +4255,7 @@ #调用底层 -> 通知客户端死亡 SetDeadEx(curNPC) return - #--------------------------------------------------------------------- - ## 召唤兽死亡,替换仇恨 - # @param self 类实例 - # @return 返回值无意义 - # @remarks 召唤兽死亡,替换仇恨 - #=========================================================================== - # def __NPCReplaceAngry(self): - # curNPC = self.__Instance - # #仅处理宠物和召唤兽 - # if curNPC.GetGameNPCObjType() not in [IPY_GameWorld.gnotSummon, IPY_GameWorld.gnotPet]: - # return - # - # if curNPC.GetType() not in [IPY_GameWorld.ntSummon, IPY_GameWorld.ntElf, - # IPY_GameWorld.ntTrap, IPY_GameWorld.ntTruck, - # IPY_GameWorld.ntFairy]: - # return - # - # summonOwner = GetSummonNPCOwner(IPY_GameWorld.gotPlayer, curNPC) - # - # if summonOwner == None: - # summonOwner = GetSummonNPCOwner(IPY_GameWorld.gotNPC, curNPC) - # - # #异常错误 - # if summonOwner == None: - # #GameWorld.Log("替换仇恨,查找召唤兽主人失败 curNPC = %s"%(curNPC.GetNPCID())) - # return - # - # #仇恨NPC列表 - # angryNPCList = list() - # for index in range(curNPC.GetAngryNPCCount()): - # angryNPC = curNPC.GetAngryNPCByIndex(index) - # #已经死亡 - # if GameObj.GetHP(angryNPC) <= 0: - # continue - # - # angryNPCList.append(angryNPC) - # - # #在ReplaceNPCAngryFromOldToNew的时候, 会删除仇恨, - # #改变 summonNPC.GetAngryNPCCount() 的长度, 所以必须先构建列表, - # #在替换仇恨 - # for angryListNPC in angryNPCList: - # #替换仇恨 - # ReplaceNPCAngryFromOldToNew(angryListNPC, curNPC, summonOwner) - # - # return - #=========================================================================== + #--------------------------------------------------------------------- ## NPC非战斗中回血 # @param self 类实例 @@ -5044,19 +4904,6 @@ return npcID = curNPC.GetNPCID() #GameWorld.DebugLog("__MissionOnKillNPC isFeel=%s" % (isFeel), curPlayer.GetPlayerID()) - killBossCntLimitDict = IpyGameDataPY.GetFuncCfg('KillBossCntLimit', 1) - limitIndex = GameWorld.GetDictValueByKey(killBossCntLimitDict, npcID) - isWorldBoos = limitIndex == ShareDefine.Def_Boss_Func_World - if isFeel: - #击杀NPC触发摸怪任务事件 - EventShell.EventRespons_OnKillByFeel(curPlayer, curNPC) - if isWorldBoos: - EventShell.EventRespons_KillWorldBossByFeel(curPlayer) - else: - #普通NPC击杀触发 - EventShell.EventRespons_OnKillById(curPlayer, curNPC) - if isWorldBoos: - EventShell.EventRespons_KillWorldBoss(curPlayer) #击杀特定NPC成就 PlayerSuccess.DoAddSuccessProgress(curPlayer, ShareDefine.SuccType_KillSpecificNPC, 1, [npcID]) return -- Gitblit v1.8.0