From f724b8e55ee83824c3231bd955785b839f88be63 Mon Sep 17 00:00:00 2001
From: hxp <ale99527@vip.qq.com>
Date: 星期四, 16 一月 2020 16:28:50 +0800
Subject: [PATCH] 8369 境界修改(法宝被动技能改为激活即生效,不需要再设置)
---
ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Skill/PassiveBuffEffMng.py | 298 +++++++++++++++++++++++++++----------------------
ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/ChPlayer.py | 2
ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Skill/GameSkills/SkillCommon.py | 7
ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/PlayerPrestigeSys.py | 6
4 files changed, 172 insertions(+), 141 deletions(-)
diff --git a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/ChPlayer.py b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/ChPlayer.py
index 500144f..3ea4c99 100644
--- a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/ChPlayer.py
+++ b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/ChPlayer.py
@@ -650,7 +650,7 @@
# 商店物品购买次数登录通知
FunctionNPCCommon.ShopItemOnLogin(curPlayer)
# 通知设置的被动功法
- PassiveBuffEffMng.OnLoginGFPassive(curPlayer)
+ #PassiveBuffEffMng.OnLoginGFPassive(curPlayer)
#我要太极
PlayerDiceEx.DiceExOnLogin(curPlayer)
# 剧情任务完成状态
diff --git a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/PlayerPrestigeSys.py b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/PlayerPrestigeSys.py
index 3f73b84..d42170a 100644
--- a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/PlayerPrestigeSys.py
+++ b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/PlayerPrestigeSys.py
@@ -28,6 +28,7 @@
import PlayerSuccess
import ChEquip
import PlayerBillboard
+import PassiveBuffEffMng
import EventShell
import DataRecordPack
import SkillCommon
@@ -205,8 +206,9 @@
else:
PlayerControl.WorldNotify(0, 'RealmUpSuccess', [curPlayer.GetName(), curPlayer.GetID(), nextRealmLv])
- SkillCommon.GivePlayerSkillByJobSkill(curPlayer, nextRealmIpyData.GetLearnSkillIDInfo())
-
+ if SkillCommon.GivePlayerSkillByJobSkill(curPlayer, nextRealmIpyData.GetLearnSkillIDInfo()):
+ PassiveBuffEffMng.GetPassiveEffManager().RegistPassiveEffSet(curPlayer)
+
addFreePoint = nextRealmIpyData.GetAddFreePoint()
if addFreePoint:
updFreePoint = curPlayer.GetFreePoint() + addFreePoint
diff --git a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Skill/GameSkills/SkillCommon.py b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Skill/GameSkills/SkillCommon.py
index e283f46..2a9084b 100644
--- a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Skill/GameSkills/SkillCommon.py
+++ b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Skill/GameSkills/SkillCommon.py
@@ -208,6 +208,7 @@
if not jobSkillList:
return
+ isLearnNew = False
skillManager = curPlayer.GetSkillManager()
playerControl = PlayerControl.PlayerControl(curPlayer)
GameWorld.DebugLog("给玩家技能: %s" % jobSkillList)
@@ -224,6 +225,7 @@
#GameWorld.DebugLog("已经有该技能!skillID=%s" % skillID)
continue
+ isLearnNew = True
skillLV = skillData.GetSkillLV()
skillTypeID = skillData.GetSkillTypeID()
beforeFightPower = 0
@@ -242,8 +244,9 @@
playerControl.RefreshSkillFightPowerEx(skillID, beforeFightPower, isRefreshState=False)
- playerControl.RefreshPlayerAttrState()
- return
+ if isLearnNew:
+ playerControl.RefreshPlayerAttrState()
+ return isLearnNew
## 玩家登录检查学习技能(上线)
# @param curPlayer 当前玩家
diff --git a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Skill/PassiveBuffEffMng.py b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Skill/PassiveBuffEffMng.py
index 5960074..59a371e 100644
--- a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Skill/PassiveBuffEffMng.py
+++ b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Skill/PassiveBuffEffMng.py
@@ -68,73 +68,75 @@
# };
#===============================================================================
def OnPassiveSet(index, clientData, tick):
- curPlayer = GameWorld.GetPlayerManager().GetPlayerByIndex(index)
- findSkill = None
- if clientData.SkillID != 0:
- findSkill = curPlayer.GetSkillManager().FindSkillBySkillID(clientData.SkillID)
- if not findSkill:
- return
-
- if findSkill.GetFuncType() != ChConfig.Def_SkillFuncType_FbPassiveSkill:
- return
-
- holeCnt = IpyGameDataPY.GetFuncCfg('PassSkillEquipLimit', 2)
- if clientData.Index >= holeCnt:
- # 超出孔数
- return
-
- pageCnt = IpyGameDataPY.GetFuncCfg('PassSkillEquipLimit', 3)
- if clientData.Page >= pageCnt:
- # 超出页数
- return
-
- tmpDict = IpyGameDataPY.GetFuncEvalCfg('PassSkillEquipLimit', 1)
- # 剩余VIP时间
- #haveVipTime = PlayerVip.GetCurVIPTime(curPlayer)
- strIndex = str(clientData.Index)
- if strIndex in tmpDict:
- # 判断条件
- for key, value in tmpDict[strIndex].items():
- if key == "level" and curPlayer.GetLV() < value:
- return
- if key == "vipLv":
- if curPlayer.GetVIPLv() < value:# or haveVipTime <=0:
- return
- if key == "MountLv":
- if PlayerHorse.GetHorseSumLV(curPlayer) < value:
- return
-
-
- # 多加一种任务判断
- if key == "OpenSkillSlots":
- # 主线任务完成时会设置标志可进地图标志
- mission_1 = QuestCommon.GetCommonMission(curPlayer)
- if not mission_1:
- return
-
- if (pow(2, int(strIndex)) & mission_1.GetProperty("OpenSkillSlots")) == 0:
- return
-
- PlayerControl.NomalDictSetProperty(curPlayer,
- ChConfig.Def_PDict_GFPassiveIndex%(clientData.Page, clientData.Index),
- clientData.SkillID,
- ChConfig.Def_PDictType_GFPassive)
-
- # 通知客户端设置成功
- sendPack = ChPyNetSendPack.tagMCPassiveSetAnswer()
- sendPack.Page = clientData.Page
- sendPack.Index = clientData.Index
- sendPack.SkillID = clientData.SkillID
- NetPackCommon.SendFakePack(curPlayer, sendPack)
-
- # 刷被动效果和属性
- page = curPlayer.NomalDictGetProperty(ChConfig.Def_PDict_GFPassivePage, 0, ChConfig.Def_PDictType_GFPassive)
- if clientData.Page == page:
- GetPassiveEffManager().RegistPassiveEffSet(curPlayer, True)
- PlayerControl.PlayerControl(curPlayer).RefreshPlayerAttrState()
-
- EventShell.EventRespons_PassiveSet(curPlayer)
+ #改为都生效,不需要设置
return
+# curPlayer = GameWorld.GetPlayerManager().GetPlayerByIndex(index)
+# findSkill = None
+# if clientData.SkillID != 0:
+# findSkill = curPlayer.GetSkillManager().FindSkillBySkillID(clientData.SkillID)
+# if not findSkill:
+# return
+#
+# if findSkill.GetFuncType() != ChConfig.Def_SkillFuncType_FbPassiveSkill:
+# return
+#
+# holeCnt = IpyGameDataPY.GetFuncCfg('PassSkillEquipLimit', 2)
+# if clientData.Index >= holeCnt:
+# # 超出孔数
+# return
+#
+# pageCnt = IpyGameDataPY.GetFuncCfg('PassSkillEquipLimit', 3)
+# if clientData.Page >= pageCnt:
+# # 超出页数
+# return
+#
+# tmpDict = IpyGameDataPY.GetFuncEvalCfg('PassSkillEquipLimit', 1)
+# # 剩余VIP时间
+# #haveVipTime = PlayerVip.GetCurVIPTime(curPlayer)
+# strIndex = str(clientData.Index)
+# if strIndex in tmpDict:
+# # 判断条件
+# for key, value in tmpDict[strIndex].items():
+# if key == "level" and curPlayer.GetLV() < value:
+# return
+# if key == "vipLv":
+# if curPlayer.GetVIPLv() < value:# or haveVipTime <=0:
+# return
+# if key == "MountLv":
+# if PlayerHorse.GetHorseSumLV(curPlayer) < value:
+# return
+#
+#
+# # 多加一种任务判断
+# if key == "OpenSkillSlots":
+# # 主线任务完成时会设置标志可进地图标志
+# mission_1 = QuestCommon.GetCommonMission(curPlayer)
+# if not mission_1:
+# return
+#
+# if (pow(2, int(strIndex)) & mission_1.GetProperty("OpenSkillSlots")) == 0:
+# return
+#
+# PlayerControl.NomalDictSetProperty(curPlayer,
+# ChConfig.Def_PDict_GFPassiveIndex%(clientData.Page, clientData.Index),
+# clientData.SkillID,
+# ChConfig.Def_PDictType_GFPassive)
+#
+# # 通知客户端设置成功
+# sendPack = ChPyNetSendPack.tagMCPassiveSetAnswer()
+# sendPack.Page = clientData.Page
+# sendPack.Index = clientData.Index
+# sendPack.SkillID = clientData.SkillID
+# NetPackCommon.SendFakePack(curPlayer, sendPack)
+#
+# # 刷被动效果和属性
+# page = curPlayer.NomalDictGetProperty(ChConfig.Def_PDict_GFPassivePage, 0, ChConfig.Def_PDictType_GFPassive)
+# if clientData.Page == page:
+# GetPassiveEffManager().RegistPassiveEffSet(curPlayer, True)
+# PlayerControl.PlayerControl(curPlayer).RefreshPlayerAttrState()
+#
+# EventShell.EventRespons_PassiveSet(curPlayer)
+# return
#===============================================================================
@@ -148,40 +150,44 @@
#===============================================================================
def OnPassivePage(index, clientData, tick):
- curPlayer = GameWorld.GetPlayerManager().GetPlayerByIndex(index)
- pageCnt = IpyGameDataPY.GetFuncCfg('PassSkillEquipLimit', 3)
- if clientData.Page >= pageCnt:
- # 超出页数
- return
-
-
- PlayerControl.NomalDictSetProperty(curPlayer,
- ChConfig.Def_PDict_GFPassivePage,
- clientData.Page,
- ChConfig.Def_PDictType_GFPassive)
-
- # 通知客户端设置成功
- sendPack = ChPyNetSendPack.tagMCPassivePage()
- sendPack.Page = clientData.Page
- NetPackCommon.SendFakePack(curPlayer, sendPack)
-
- # 刷被动效果和属性
- GetPassiveEffManager().RegistPassiveEffSet(curPlayer, True)
- PlayerControl.PlayerControl(curPlayer).RefreshPlayerAttrState()
+ #改为都生效,不需要设置
return
+# curPlayer = GameWorld.GetPlayerManager().GetPlayerByIndex(index)
+# pageCnt = IpyGameDataPY.GetFuncCfg('PassSkillEquipLimit', 3)
+# if clientData.Page >= pageCnt:
+# # 超出页数
+# return
+#
+#
+# PlayerControl.NomalDictSetProperty(curPlayer,
+# ChConfig.Def_PDict_GFPassivePage,
+# clientData.Page,
+# ChConfig.Def_PDictType_GFPassive)
+#
+# # 通知客户端设置成功
+# sendPack = ChPyNetSendPack.tagMCPassivePage()
+# sendPack.Page = clientData.Page
+# NetPackCommon.SendFakePack(curPlayer, sendPack)
+#
+# # 刷被动效果和属性
+# GetPassiveEffManager().RegistPassiveEffSet(curPlayer, True)
+# PlayerControl.PlayerControl(curPlayer).RefreshPlayerAttrState()
+# return
# 检查是否当前正在使用的被动技能
def FindUsePassiveSkills(curPlayer):
- page = curPlayer.NomalDictGetProperty(ChConfig.Def_PDict_GFPassivePage, 0, ChConfig.Def_PDictType_GFPassive)
- holeCnt = IpyGameDataPY.GetFuncCfg('PassSkillEquipLimit', 2)
skills = []
- for i in xrange(holeCnt):
- findSkillID = curPlayer.NomalDictGetProperty(ChConfig.Def_PDict_GFPassiveIndex%(page, i), 0,
- ChConfig.Def_PDictType_GFPassive)
- if findSkillID == 0:
+ skillManager = curPlayer.GetSkillManager()
+ for i in xrange(skillManager.GetSkillCount()):
+ curSkill = skillManager.GetSkillByIndex(i)
+ if not curSkill:
continue
+ if curSkill.GetFuncType() != ChConfig.Def_SkillFuncType_FbPassiveSkill:
+ continue
+
+ findSkillID = curSkill.GetSkillID()
passiveEff = GetPassiveEffManager().GetPassiveEff(curPlayer)
if passiveEff:
findSkillID = passiveEff.ChangeSkillTypeID(findSkillID)
@@ -190,53 +196,73 @@
return skills
+#改为都生效,不需要设置
+# page = curPlayer.NomalDictGetProperty(ChConfig.Def_PDict_GFPassivePage, 0, ChConfig.Def_PDictType_GFPassive)
+# holeCnt = IpyGameDataPY.GetFuncCfg('PassSkillEquipLimit', 2)
+# skills = []
+# for i in xrange(holeCnt):
+# findSkillID = curPlayer.NomalDictGetProperty(ChConfig.Def_PDict_GFPassiveIndex%(page, i), 0,
+# ChConfig.Def_PDictType_GFPassive)
+# if findSkillID == 0:
+# continue
+#
+# passiveEff = GetPassiveEffManager().GetPassiveEff(curPlayer)
+# if passiveEff:
+# findSkillID = passiveEff.ChangeSkillTypeID(findSkillID)
+#
+# skills.append(findSkillID)
+#
+# return skills
+
# 登录通知,并过滤过期VIP孔
def OnLoginGFPassive(curPlayer):
- # ---通知每页数据---
- holeCnt = IpyGameDataPY.GetFuncCfg('PassSkillEquipLimit', 2)
- pageCnt = IpyGameDataPY.GetFuncCfg('PassSkillEquipLimit', 3)
-
- sendPack = ChPyNetSendPack.tagMCPassiveSet()
- sendPack.PageCnt = pageCnt
- sendPack.PassiveSkills = []
-
-
- #tmpDict = IpyGameDataPY.GetFuncEvalCfg('PassSkillEquipLimit', 1)
-
- # 剩余VIP时间
- #haveVipTime = PlayerVip.GetCurVIPTime(curPlayer)
-
- for i in xrange(pageCnt):
- skills = ChPyNetSendPack.tagMCPassiveSkills()
- skills.Count = holeCnt
- skills.SkillIDList = []
- for j in xrange(holeCnt):
-
- #===================================================================
- # # 判断VIP过期的情况
- # for key, value in tmpDict.get(j, {}).items():
- # if key == "vipLv":
- # if curPlayer.GetVIPLv() < value or haveVipTime <=0:
- # PlayerControl.NomalDictSetProperty(curPlayer,
- # ChConfig.Def_PDict_GFPassiveIndex%(i, j),
- # 0,
- # ChConfig.Def_PDictType_GFPassive)
- #===================================================================
-
- skillID = curPlayer.NomalDictGetProperty(ChConfig.Def_PDict_GFPassiveIndex%(i, j), 0,
- ChConfig.Def_PDictType_GFPassive)
- skills.SkillIDList.append(skillID)
-
- sendPack.PassiveSkills.append(skills)
-
- NetPackCommon.SendFakePack(curPlayer, sendPack)
-
- # ---通知激活页---
- page = curPlayer.NomalDictGetProperty(ChConfig.Def_PDict_GFPassivePage, 0, ChConfig.Def_PDictType_GFPassive)
- sendPack = ChPyNetSendPack.tagMCPassivePage()
- sendPack.Page = page
- NetPackCommon.SendFakePack(curPlayer, sendPack)
+ #改为都生效,不需要设置
return
+# # ---通知每页数据---
+# holeCnt = IpyGameDataPY.GetFuncCfg('PassSkillEquipLimit', 2)
+# pageCnt = IpyGameDataPY.GetFuncCfg('PassSkillEquipLimit', 3)
+#
+# sendPack = ChPyNetSendPack.tagMCPassiveSet()
+# sendPack.PageCnt = pageCnt
+# sendPack.PassiveSkills = []
+#
+#
+# #tmpDict = IpyGameDataPY.GetFuncEvalCfg('PassSkillEquipLimit', 1)
+#
+# # 剩余VIP时间
+# #haveVipTime = PlayerVip.GetCurVIPTime(curPlayer)
+#
+# for i in xrange(pageCnt):
+# skills = ChPyNetSendPack.tagMCPassiveSkills()
+# skills.Count = holeCnt
+# skills.SkillIDList = []
+# for j in xrange(holeCnt):
+#
+# #===================================================================
+# # # 判断VIP过期的情况
+# # for key, value in tmpDict.get(j, {}).items():
+# # if key == "vipLv":
+# # if curPlayer.GetVIPLv() < value or haveVipTime <=0:
+# # PlayerControl.NomalDictSetProperty(curPlayer,
+# # ChConfig.Def_PDict_GFPassiveIndex%(i, j),
+# # 0,
+# # ChConfig.Def_PDictType_GFPassive)
+# #===================================================================
+#
+# skillID = curPlayer.NomalDictGetProperty(ChConfig.Def_PDict_GFPassiveIndex%(i, j), 0,
+# ChConfig.Def_PDictType_GFPassive)
+# skills.SkillIDList.append(skillID)
+#
+# sendPack.PassiveSkills.append(skills)
+#
+# NetPackCommon.SendFakePack(curPlayer, sendPack)
+#
+# # ---通知激活页---
+# page = curPlayer.NomalDictGetProperty(ChConfig.Def_PDict_GFPassivePage, 0, ChConfig.Def_PDictType_GFPassive)
+# sendPack = ChPyNetSendPack.tagMCPassivePage()
+# sendPack.Page = page
+# NetPackCommon.SendFakePack(curPlayer, sendPack)
+# return
# 切换地图
def OnLoadMapGFPassive(curPlayer):
--
Gitblit v1.8.0