From 26958aff1b844a743a805b4f9075bee800b72a46 Mon Sep 17 00:00:00 2001
From: hxp <ale99527@vip.qq.com>
Date: 星期二, 04 十一月 2025 14:35:37 +0800
Subject: [PATCH] 332 【主界面】座骑系统-服务端
---
ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Attack/AttackLogic/AttackCommon.py | 138 ++++++---------------------------------------
1 files changed, 20 insertions(+), 118 deletions(-)
diff --git a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Attack/AttackLogic/AttackCommon.py b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Attack/AttackLogic/AttackCommon.py
index 4f4bdcb..ece7992 100644
--- a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Attack/AttackLogic/AttackCommon.py
+++ b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Attack/AttackLogic/AttackCommon.py
@@ -45,15 +45,10 @@
import GameObj
import BuffSkill
import PlayerState
-import MirrorAttack
import ChPyNetSendPack
-import NPCHurtManager
import NetPackCommon
-import FamilyRobBoss
import FBCommon
import ChNPC
-import BossHurtMng
-import NPCHurtMgr
import ChNetSendPack
import TurnAttack
@@ -438,28 +433,6 @@
#NPC读表取
return attack.GetHurtType()
-def GetAtkDistType(curObj):
- ## 获取是近战还是远程,默认近战
- if curObj.GetGameObjType() != IPY_GameWorld.gotNPC:
- return ChConfig.AtkDistType_Short
-
- playerID = curObj.GetDictByKey(ChConfig.Def_Obj_Dict_LineupPlayerID)
- if not playerID:
- return ChConfig.AtkDistType_Short
-
- heroID = curObj.GetDictByKey(ChConfig.Def_Obj_Dict_HeroID)
- if heroID:
- heroIpyData = IpyGameDataPY.GetIpyGameData("Hero", heroID)
- if heroIpyData:
- return heroIpyData.GetAtkDistType()
-
- npcID = curObj.GetNPCID()
- npcDataEx = NPCCommon.GetNPCDataEx(npcID)
- if npcDataEx:
- return npcDataEx.GetAtkDistType()
-
- return ChConfig.AtkDistType_Short
-
#--------------------------------------------------------------------------
## 设置玩家进入战斗状态
# @param defender 当前玩家(被攻击了)
@@ -638,19 +611,11 @@
curObjType = curObj.GetGameObjType()
if curObjType == IPY_GameWorld.gotPlayer:
- #BossHurtMng.BossAddPlayerInHurtList(curObj, curTagObj, hurtHP)
- FamilyRobBoss.OnPlayerHurtFamilyOwnerBoss(curObj, curTagObj, hurtHP)
if curTagObj.GetGameObjType() == IPY_GameWorld.gotNPC:
FBLogic.DoFB_Player_HurtNPC(curObj, curTagObj, hurtHP)
if GameObj.GetHP(curTagObj) == 0:
curTagObj.SetDict(ChConfig.Def_PlayerKey_LastHurt, curObj.GetPlayerID())
- if NPCHurtManager.AddHurtValue(curObj, curTagObj, hurtHP, isBounce):
- return
-
- if NPCHurtMgr.AddHurtValue(curObj, curTagObj, hurtHP, isBounce):
- return
-
curTeam = curObj.GetTeam()
if curTeam == None:
#无队伍,添加个人伤害
@@ -716,10 +681,6 @@
#if not CheckAttackNPCByCnt(attacker, defender):
# return False
- #击杀次数判断
- if not NPCHurtManager.IsAssistPlayer(attacker.GetPlayerID(), defender) and not CheckKillNPCByCnt(attacker, defender):
- return False
-
#仙盟归属NPC判断
if not CheckCanAttackFamilyOwnerNPC(attacker, defender):
return False
@@ -730,10 +691,6 @@
#if not CheckAttackNPCByCnt(defender, attacker, False):
# return False
- #击杀次数判断
- if not CheckKillNPCByCnt(defender, attacker, False) and not NPCHurtManager.IsAssistPlayer(defender.GetPlayerID(), attacker):
- return False
-
#仙盟归属NPC判断
if not CheckCanAttackFamilyOwnerNPC(defender, attacker, False):
return False
@@ -741,11 +698,11 @@
# NPC打NPC
elif atkObjType == IPY_GameWorld.gotNPC and defObjType == IPY_GameWorld.gotNPC:
if PetControl.IsPet(attacker) or attacker.GetGameNPCObjType()== IPY_GameWorld.gnotSummon:
- #击杀次数判断
- if not CheckKillNPCByCnt(attacker, defender, False):
- ownerPlayer = GetAttackPlayer(attacker)[0]
- if ownerPlayer and not NPCHurtManager.IsAssistPlayer(ownerPlayer.GetPlayerID(), defender):
- return False
+ ##击杀次数判断
+ #if not CheckKillNPCByCnt(attacker, defender, False):
+ # ownerPlayer = GetAttackPlayer(attacker)[0]
+ # if ownerPlayer and not NPCHurtManager.IsAssistPlayer(ownerPlayer.GetPlayerID(), defender):
+ # return False
#仙盟归属NPC判断
if not CheckCanAttackFamilyOwnerNPC(attacker, defender, False):
@@ -858,28 +815,15 @@
if not GameFuncComm.GetFuncCanUse(atkPlayer, funcID):
PlayerControl.NotifyCode(atkPlayer, funcSysMark)
return
- canKillCnt = BossHurtMng.GetCanKillBossCnt(atkPlayer, index)[0]
-
- if canKillCnt <= 0:
- #if BossHurtMng.GetPlayerBossHurt(atkPlayer, defender):
- # GameWorld.DebugLog("攻击过该boss可继续攻击")
- # return True
- #次数不足
- # 实际攻击者类型None则需要提示玩家
- if npcObjType is None:
- if isNotify:
- sysMark = IpyGameDataPY.GetFuncEvalCfg('KillBossCntLimit', 3, {}).get(index, '')
- PlayerControl.NotifyCode(atkPlayer, sysMark)
- return False
-
- npcDataEx = NPCCommon.GetNPCDataEx(npcID)
- if npcDataEx and npcDataEx.GetFightPowerLackAtkLimit():
- if npcDataEx.GetSuppressFightPower() > PlayerControl.GetFightPower(atkPlayer):
- if isNotify:
- PlayerControl.NotifyCode(atkPlayer, "BossFightPowerHint")
- #GameWorld.DebugLog("战力不足,无法攻击boss! npcID=%s,SuppressFightPower=%s > playerFightPower=%s"
- # % (npcID, npcDataEx.GetSuppressFightPower(), PlayerControl.GetFightPower(atkPlayer)))
- return False
+
+ #npcDataEx = NPCCommon.GetNPCDataPy(npcID)
+ #if npcDataEx and npcDataEx.GetFightPowerLackAtkLimit():
+ # if npcDataEx.GetSuppressFightPower() > PlayerControl.GetFightPower(atkPlayer):
+ # if isNotify:
+ # PlayerControl.NotifyCode(atkPlayer, "BossFightPowerHint")
+ # #GameWorld.DebugLog("战力不足,无法攻击boss! npcID=%s,SuppressFightPower=%s > playerFightPower=%s"
+ # # % (npcID, npcDataEx.GetSuppressFightPower(), PlayerControl.GetFightPower(atkPlayer)))
+ # return False
return True
@@ -906,9 +850,6 @@
hasAttackCnt = atkPlayer.NomalDictGetProperty(ChConfig.Def_PDict_WorldBoss_HurtCnt, 0)
if hasAttackCnt >= limitCnt:
- #if BossHurtMng.GetPlayerBossHurt(atkPlayer, defender):
- # GameWorld.DebugLog("攻击过该boss可继续攻击")
- # return True
#次数不足
# 实际攻击者类型None则需要提示玩家
if npcObjType is None:
@@ -1544,25 +1485,6 @@
# 攻击时防守方神兵护盾的处理
def CalcAtkProDef(atkObj, defObj, hurtValue, curSkill, tick):
return hurtValue
-# if defObj.GetGameObjType() != IPY_GameWorld.gotPlayer:
-# return hurtValue
-#
-# if not CheckIsPlayerOnwer(atkObj):
-# return hurtValue
-#
-# curProDef = PlayerControl.GetProDef(defObj)
-# if not curProDef:
-# return hurtValue
-#
-# absortValue = min(PlayerControl.GetProDefAbsorb(defObj)*hurtValue/ChConfig.Def_MaxRateValue, curProDef)
-#
-# PlayerControl.SetProDef(defObj, curProDef - absortValue)
-#
-# # 被动技能触发
-# defObj.SetDict(ChConfig.Def_PlayerKey_GodWeaponBeforeProDef, curProDef)
-# PassiveBuffEffMng.OnPassiveSkillTrigger(defObj, atkObj, None, ChConfig.TriggerType_ProDefValue, tick)
-# return hurtValue - absortValue
-
# 设置玩家一次主动型攻击中的第一个防御者
def SetFirstDefender(attacker, defObj, curSkill):
@@ -2150,9 +2072,6 @@
aBurnValue = atkwargs.get('burnValue', 0)
aBurnPer = atkwargs.get('burnPer', 0)
hurtFormulaKey = atkwargs.get('hurtFormulaKey', None)
- #if hurtFormulaKey == "Burn":
- # pass
- #else:
hurtValue = eval(IpyGameDataPY.GetFuncCompileCfg("DOTFormula", 1))
elif not curSkill:
hurtValue = eval(IpyGameDataPY.GetFuncCompileCfg("HurtFormula", 3))
@@ -2239,8 +2158,6 @@
atkObj.SetDict(ChConfig.Def_PlayerKey_LastHurtNPCObjID, defObj.GetID())
else:
defObj.SetDict(ChConfig.Def_PlayerKey_LastAttackerObjID, atkObj.GetID())
-
- TurnAttack.AddTurnObjHurtValue(atkObj, defObj, resultHurtType.HurtType, resultHurtType.RealHurtHP, resultHurtType.LostHP, curSkill)
#if resultHurtType.RealHurtHP:
# PassiveBuffEffMng.OnPassiveSkillTrigger(defObj, atkObj, None, ChConfig.TriggerType_BeHurt, tick)
@@ -2335,9 +2252,9 @@
# GameWorld.DebugLog("不能攻击,不反弹")
# return
#杀怪次数判断
- if not CheckKillNPCByCnt(defObj, atkObj, False) and not NPCHurtManager.IsAssistPlayer(defObj.GetPlayerID(), atkObj):
- #GameWorld.DebugLog("不能攻击,不反弹")
- return
+ #if not CheckKillNPCByCnt(defObj, atkObj, False) and not NPCHurtManager.IsAssistPlayer(defObj.GetPlayerID(), atkObj):
+ # #GameWorld.DebugLog("不能攻击,不反弹")
+ # return
#没有反弹退出
defObj_DamageBackRate = defObj.GetDamageBackRate()
@@ -2549,17 +2466,6 @@
'''
#关系有3层,无-友好-敌人
- #镜像PK下,无视PK区域、PK模式等,仅验证双方是否同一阵营
- curBattleID = curPlayer.GetDictByKey(ChConfig.Def_PlayerKey_MirrorBattleID)
- tagBattleID = tagPlayer.GetDictByKey(ChConfig.Def_PlayerKey_MirrorBattleID)
- if curBattleID and curBattleID == tagBattleID:
- battle = MirrorAttack.GetMirrorBattleByID(curBattleID)
- if battle.batState != ChConfig.Def_MirrorBatState_Fight:
- return ChConfig.Type_Relation_None, ChConfig.Def_PASysMessage_None
- if curPlayer.GetFaction() != tagPlayer.GetFaction():
- return ChConfig.Type_Relation_Enemy , ChConfig.Def_PASysMessage_None
- return ChConfig.Type_Relation_Friend, ChConfig.Def_PASysMessage_None
-
#判断是否可释放(增/减)技能或普攻
if CheckPlayersRelationInFB_IsNone(curPlayer, tagPlayer):
return ChConfig.Type_Relation_None, ChConfig.Def_PASysMessage_None
@@ -2627,10 +2533,6 @@
elif curPlayerAttackMode == IPY_GameWorld.amAll:
pass
- # 协助关系不可攻击
- if NPCHurtManager.IsAssistRelation(curPlayer, tagPlayer):
- return ChConfig.Type_Relation_Friend, ChConfig.Def_PASysMessage_NotAttackTeam
-
# 以下为所属区域的一些特殊处理
#普通区
if curPlayerAreaType == IPY_GameWorld.gatNormal:
@@ -2708,8 +2610,8 @@
if GameObj.GetHP(curObjDetel) > 0:
return
- if TurnAttack.SetTurnObjKilled(curObjDetel, atkObj):
- return
+ #if TurnAttack.SetTurnObjKilled(curObjDetel, atkObj):
+ # return
#---玩家处理---
if curObjDetel.GetGameObjType() == IPY_GameWorld.gotPlayer:
@@ -2787,7 +2689,7 @@
srcID, srcType = 0, 0
if srcObj:
srcID, srcType = srcObj.GetID(), srcObj.GetGameObjType()
- turnFight = TurnAttack.GetTurnFightMgr().getNPCTurnFight(curObj.GetID())
+ turnFight = TurnAttack.GetTurnFightMgr().getTurnFight(curObj.GetTFGUID())
if turnFight:
clientPack = ChNetSendPack.tagObjPropertyRefreshView()
clientPack.ObjID = curObj.GetID()
--
Gitblit v1.8.0