From c75ed6ee971145d2ebab03b6c1c5bb3bfada0400 Mon Sep 17 00:00:00 2001
From: xdh <xiefantasy@qq.com>
Date: 星期二, 21 五月 2019 11:14:18 +0800
Subject: [PATCH] 6883 【2.0】【后端】灵根激活界面优化
---
ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Skill/SkillShell.py | 40 +++++++++++++++++++++++++---------------
ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/ChPyNetPack.py | 8 ++++++--
ServerPython/CoreServerGroup/GameServer/Script/ChPyNetPack.py | 8 ++++++--
3 files changed, 37 insertions(+), 19 deletions(-)
diff --git a/ServerPython/CoreServerGroup/GameServer/Script/ChPyNetPack.py b/ServerPython/CoreServerGroup/GameServer/Script/ChPyNetPack.py
index 6181b13..ddcc43e 100644
--- a/ServerPython/CoreServerGroup/GameServer/Script/ChPyNetPack.py
+++ b/ServerPython/CoreServerGroup/GameServer/Script/ChPyNetPack.py
@@ -11065,6 +11065,7 @@
("Cmd", c_ubyte),
("SubCmd", c_ubyte),
("SkillTypeID", c_int), # 专精技能ID
+ ("DoType", c_ubyte), # 0-激活 1-使用
]
def __init__(self):
@@ -11082,6 +11083,7 @@
self.Cmd = 0xA5
self.SubCmd = 0x16
self.SkillTypeID = 0
+ self.DoType = 0
return
def GetLength(self):
@@ -11094,12 +11096,14 @@
DumpString = '''// A5 16 选择技能五行专精 //tagCMSelectSkillElement:
Cmd:%s,
SubCmd:%s,
- SkillTypeID:%d
+ SkillTypeID:%d,
+ DoType:%d
'''\
%(
self.Cmd,
self.SubCmd,
- self.SkillTypeID
+ self.SkillTypeID,
+ self.DoType
)
return DumpString
diff --git a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/ChPyNetPack.py b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/ChPyNetPack.py
index 6181b13..ddcc43e 100644
--- a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/ChPyNetPack.py
+++ b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/ChPyNetPack.py
@@ -11065,6 +11065,7 @@
("Cmd", c_ubyte),
("SubCmd", c_ubyte),
("SkillTypeID", c_int), # 专精技能ID
+ ("DoType", c_ubyte), # 0-激活 1-使用
]
def __init__(self):
@@ -11082,6 +11083,7 @@
self.Cmd = 0xA5
self.SubCmd = 0x16
self.SkillTypeID = 0
+ self.DoType = 0
return
def GetLength(self):
@@ -11094,12 +11096,14 @@
DumpString = '''// A5 16 选择技能五行专精 //tagCMSelectSkillElement:
Cmd:%s,
SubCmd:%s,
- SkillTypeID:%d
+ SkillTypeID:%d,
+ DoType:%d
'''\
%(
self.Cmd,
self.SubCmd,
- self.SkillTypeID
+ self.SkillTypeID,
+ self.DoType
)
return DumpString
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 e28c623..d5d041e 100644
--- a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Skill/SkillShell.py
+++ b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Skill/SkillShell.py
@@ -2071,6 +2071,7 @@
#{
# tagHead Head;
# DWORD SkillTypeID; // 专精技能ID
+# BYTE DoType; // 0-激活升级 1-使用
#};
def OnSelectSkillElement(index, clientData, tick):
curPlayer = GameWorld.GetPlayerManager().GetPlayerByIndex(index)
@@ -2088,26 +2089,36 @@
if not mainSkill:
GameWorld.DebugLog('主技能未学习,无法选专精mainSkillID=%s'%mainSkillID)
return
+ doType = clientData.DoType
curElementSkillID = curPlayer.NomalDictGetProperty(ChConfig.Def_PDict_SkillElementID % mainSkillID)
activeSkillLV = curPlayer.NomalDictGetProperty(ChConfig.Def_PDict_SkillElementLV % selectSkillID)
- #先判断是否可升级
- updSelectSkillLV = activeSkillLV
- nextSkill = GameWorld.GetGameData().FindSkillByType(selectSkillID, activeSkillLV + 1)
- if nextSkill:
- if CheckLearnSkillNeedAttr(curPlayer, nextSkill):
- updSelectSkillLV = activeSkillLV + 1
- skillElementType = GetSkillElementType(nextSkill)
isChangeSkill = False #是否变更生效的技能
- if updSelectSkillLV != activeSkillLV:
+ updSelectSkillLV = activeSkillLV
+ #先判断是否可升级
+ if doType is 0:
+ nextSkill = GameWorld.GetGameData().FindSkillByType(selectSkillID, activeSkillLV + 1)
+ if not nextSkill:
+ return
+
+ if not CheckLearnSkillNeedAttr(curPlayer, nextSkill):
+ return
+ updSelectSkillLV = activeSkillLV + 1
+ skillElementType = GetSkillElementType(nextSkill)
+
#可升级则激活升一级
EventShell.EventRespons_ElementSkill(curPlayer, mainSkillID, skillElementType, updSelectSkillLV)
PlayerControl.NomalDictSetProperty(curPlayer, ChConfig.Def_PDict_SkillElementLV % selectSkillID, updSelectSkillLV)
- if curElementSkillID == selectSkillID:
+ if not curElementSkillID or curElementSkillID == selectSkillID:
#正在使用的专精技能,则立即生效
isChangeSkill = True
- elif selectSkillID != curElementSkillID:
+ else: # 使用
+ if not activeSkillLV:
+ #未激活不能使用
+ return
+ if selectSkillID == curElementSkillID:
+ return
isChangeSkill = True
-
+
if isChangeSkill:
#更换专精
if not RefreshElementSkill(curPlayer, selectSkillID)[1]:
@@ -2115,10 +2126,9 @@
return
PlayerControl.NomalDictSetProperty(curPlayer, ChConfig.Def_PDict_SkillElementID % mainSkillID, selectSkillID)
- if curElementSkillID:
- if curElementSkillID != selectSkillID:
- #原技能删除
- skillManager.DeleteSkillBySkillTypeID(curElementSkillID)
+ if curElementSkillID and curElementSkillID != selectSkillID:
+ #原技能删除
+ skillManager.DeleteSkillBySkillTypeID(curElementSkillID)
# 重刷被动技能
--
Gitblit v1.8.0