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 ++++++++++++++++++++++++++++++++--------------------------- 1 files changed, 162 insertions(+), 136 deletions(-) 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