| | |
| | | # };
|
| | | #===============================================================================
|
| | | 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
|
| | |
|
| | |
|
| | | #===============================================================================
|
| | |
| | | #===============================================================================
|
| | |
|
| | | 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)
|
| | |
| | |
|
| | | 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):
|