From ecfe8b45ee59dcc926fec0ece5a4b6b2b583121d Mon Sep 17 00:00:00 2001
From: hxp <ale99527@vip.qq.com>
Date: 星期二, 15 一月 2019 23:35:03 +0800
Subject: [PATCH] 5722 【后端】【1.5】跨服BOSS开发(跨服聊天名字默认使用跨服名字格式)
---
ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Skill/SkillShell.py | 38 +++++++++++++++++++++++++++++++++++++-
1 files changed, 37 insertions(+), 1 deletions(-)
diff --git a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Skill/SkillShell.py b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Skill/SkillShell.py
index c504d6d..af21d9c 100644
--- a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Skill/SkillShell.py
+++ b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Skill/SkillShell.py
@@ -247,7 +247,8 @@
#还在冷却时间内无法释放
if SkillCommon.RefreshSkillRemainTime(playerSkill, tick) != 0:
PlayerControl.NotifyCode(curPlayer, "UseSkillCDLimit")
- AttackFailNotify(curPlayer, curSkill, ChConfig.SkillFail_CD)
+ #AttackFailNotify(curPlayer, curSkill, ChConfig.SkillFail_CD)
+ playerSkill.Sync_Skill()
return False
#5:检查玩家的魔法值是否够用这个技能
@@ -347,6 +348,13 @@
# @return 返回值真, 检查通过
# @remarks 自定义函数, NPC使用有对象技能
def NPCUseSkillTag(curNPC, curTag, curSkill, tick):
+ skillTag = GetSkillAffectTag(curSkill)
+ if skillTag == ChConfig.Def_UseSkillTag_AppointNPC:
+ # 指定释放的NPCID 和 Def_UseSkillTag_AppointNPC 搭配使用
+ curTag = GetAppointNPCBySkillEffect(curSkill)
+ if not curTag:
+ return False
+
if not NPCCanUseSkillTag(curNPC, curTag, curSkill, tick):
return False
@@ -363,6 +371,29 @@
curNPC.SetDict(ChConfig.Def_NPC_Dict_AtkMovePosY, 0)
return result
+
+# 指定释放的NPCID 和 Def_UseSkillTag_AppointNPC 搭配使用
+def GetAppointNPCBySkillEffect(curSkill):
+ npcID = 0
+ effectID = ChConfig.Def_Skill_Effect_AppointNPC
+ for i in xrange(0, curSkill.GetEffectCount()):
+ curEffect = curSkill.GetEffect(i)
+ curEffectID = curEffect.GetEffectID()
+
+ if not curEffectID:
+ #策划有可能中途删除,不用return
+ continue
+
+ #不是需要的效果
+ if curEffectID != effectID:
+ continue
+
+ npcID = curEffect.GetEffectValue(0)
+ break
+
+ if not npcID:
+ return None
+ return GameWorld.FindNPCByNPCID(npcID)
# 计算NPC技能位移坐标,预警和非预警都可以用
@@ -511,6 +542,9 @@
# @return 返回值真, 检查通过
def NPCCanUseSkillTag(curNPC, curTag, curSkill, tick):
skillTag = GetSkillAffectTag(curSkill)
+ if skillTag == ChConfig.Def_UseSkillTag_AppointNPC:
+ return True
+
#---对象判定---
if IsToPetOwnerSkill(curNPC, skillTag):
return True
@@ -854,6 +888,7 @@
Def_Attack_DelayTick = 5000
# tick 误差过大则过滤
if abs(clientTick - tick) > Def_Attack_DelayTick:
+ curPlayer.Sync_ClientTick()
GameWorld.DebugLog("tick 误差过大则过滤 > 5000")
return False
@@ -1030,6 +1065,7 @@
def AttackFailNotify(curPlayer, curSkill, reason=0):
sendPack = ChPyNetSendPack.tagMCAttackFail()
sendPack.SkillID = curSkill.GetSkillID()
+ sendPack.Reason = reason
NetPackCommon.SendFakePack(curPlayer, sendPack)
#--------------------------玩家使用技能
#===============================================================================
--
Gitblit v1.8.0