8369 境界修改(升级境界可学习技能或增加灵根点)
| | |
| | | DWORD BuffID; //给全服在线玩家增加buff
|
| | | DWORD ExpRate; //修为池经验速率
|
| | | DWORD ExpLimit; //修为池经验上限
|
| | | list LearnSkillIDInfo; //学习技能ID信息 [职业1技能ID,职业2技能ID, ...]
|
| | | BYTE AddFreePoint; //增加自由属性点
|
| | | };
|
| | |
|
| | | //神兵表 #tagGodWeapon
|
| | |
| | | ("DWORD", "BuffID", 0),
|
| | | ("DWORD", "ExpRate", 0),
|
| | | ("DWORD", "ExpLimit", 0),
|
| | | ("list", "LearnSkillIDInfo", 0),
|
| | | ("BYTE", "AddFreePoint", 0),
|
| | | ),
|
| | |
|
| | | "GodWeapon":(
|
| | |
| | | self.BuffID = 0
|
| | | self.ExpRate = 0
|
| | | self.ExpLimit = 0 |
| | | self.LearnSkillIDInfo = []
|
| | | self.AddFreePoint = 0 |
| | | return |
| | | |
| | | def GetLv(self): return self.Lv # 境界等级
|
| | |
| | | def GetBuffID(self): return self.BuffID # 给全服在线玩家增加buff
|
| | | def GetExpRate(self): return self.ExpRate # 修为池经验速率
|
| | | def GetExpLimit(self): return self.ExpLimit # 修为池经验上限 |
| | | def GetLearnSkillIDInfo(self): return self.LearnSkillIDInfo # 学习技能ID信息 [职业1技能ID,职业2技能ID, ...]
|
| | | def GetAddFreePoint(self): return self.AddFreePoint # 增加自由属性点 |
| | | |
| | | # 神兵表 |
| | | class IPY_GodWeapon(): |
| | |
| | | import PlayerBillboard
|
| | | import EventShell
|
| | | import DataRecordPack
|
| | | import SkillCommon
|
| | |
|
| | | import time
|
| | | #------------------------------------------------------------------------------
|
| | |
| | | else:
|
| | | PlayerControl.WorldNotify(0, 'RealmUpSuccess', [curPlayer.GetName(), curPlayer.GetID(), nextRealmLv])
|
| | |
|
| | | SkillCommon.GivePlayerSkillByJobSkillList(curPlayer, nextRealmIpyData.GetLearnSkillIDInfo())
|
| | | |
| | | addFreePoint = nextRealmIpyData.GetAddFreePoint()
|
| | | if addFreePoint:
|
| | | updFreePoint = curPlayer.GetFreePoint() + addFreePoint
|
| | | curPlayer.SetFreePoint(updFreePoint)
|
| | | GameWorld.DebugLog(" addFreePoint=%s,updFreePoint=%s" % (addFreePoint, updFreePoint))
|
| | | |
| | | RefreshOfficialAttr(curPlayer)
|
| | | GameFuncComm.DoFuncOpenLogic(curPlayer)
|
| | | SyncRealmFBState(curPlayer)
|
| | |
| | |
|
| | | return
|
| | |
|
| | | def GivePlayerSkillByJobSkillList(curPlayer, jobSkillList):
|
| | | ## 根据职业技能ID列表给玩家技能
|
| | | |
| | | if not jobSkillList:
|
| | | return
|
| | | |
| | | skillLV = 1
|
| | | giveSkill = None
|
| | | for skillID in jobSkillList:
|
| | | skillData = GameWorld.GetGameData().FindSkillByType(skillID, skillLV)
|
| | | if skillData == None:
|
| | | continue
|
| | | if not CheckSkillJob(curPlayer, skillData):
|
| | | continue
|
| | | if not SkillShell.CheckLearnSkillCondition(curPlayer, skillData):
|
| | | continue
|
| | | giveSkill = skillData
|
| | | break
|
| | | |
| | | if not giveSkill:
|
| | | GameWorld.ErrLog("找不到可以给的技能!jobSkillList=%s" % str(jobSkillList))
|
| | | return
|
| | | |
| | | skillTypeID = giveSkill.GetSkillTypeID()
|
| | | skillManager = curPlayer.GetSkillManager()
|
| | | if skillManager.FindSkillBySkillTypeID(skillTypeID):
|
| | | #GameWorld.DebugLog("已经有该技能!")
|
| | | return
|
| | | skillManager.LVUpSkillBySkillTypeID(skillTypeID)
|
| | | GameWorld.DebugLog(" 给玩家技能: skillTypeID=%s" % (skillTypeID), curPlayer.GetID())
|
| | | |
| | | if isPassiveSkill(giveSkill):
|
| | | PassiveBuffEffMng.GetPassiveEffManager().RegistPassiveEff(curPlayer, skillTypeID)
|
| | | |
| | | DataRecordPack.DR_LearnORUPSkill(curPlayer, skillTypeID, skillLV)
|
| | | PlayerControl.PlayerControl(curPlayer).RefreshSkillFightPowerEx(skillTypeID, 0)
|
| | | return
|
| | |
|
| | | ## 玩家登录检查学习技能(上线)
|
| | | # @param curPlayer 当前玩家
|
| | | # @return None
|