fix:2519【优化】坐骑、灵宠、神兵的信息提示优化
| | |
| | | list AttrType; //属性类型
|
| | | list AttrNum; //属性值
|
| | | DWORD SkillID; //激活技能ID
|
| | | char SysMark; //系统提示
|
| | | };
|
| | |
|
| | | //功能配置表格 #tagFuncConfig
|
| | |
| | | {
|
| | | DWORD _ID; //灵兽NPCID
|
| | | BYTE Quality; //品质
|
| | | char UnlockSys; //解锁广播提示
|
| | | DWORD UnLockNeedItemID; //解锁灵兽物品ID
|
| | | BYTE UnLockNeedItemCnt; //解锁所需物品数量
|
| | | DWORD DecomposeExp; //分解单个解锁物品可获得升阶经验
|
| | |
| | | WORD UseNeedRank; //多少阶可切换外观
|
| | | list SkillID; //灵兽技能ID
|
| | | list SkillUnLock; //灵兽技能解锁需要阶数
|
| | | list SkillUnLockSys; //灵兽技能解锁提示
|
| | | DWORD InitFightPower; //初始战力
|
| | | };
|
| | |
|
| | |
| | | BYTE UseNeedRank; //多少阶可切换外观
|
| | | BYTE Quality; //坐骑品质
|
| | | DWORD InitFightPower; //初始战力
|
| | | char UnlockSys; //解锁广播提示
|
| | | };
|
| | |
|
| | |
|
| | |
| | | list AttrType; //激活加成属性类型
|
| | | list AttrValue; //激活加成属性值
|
| | | list SkillID; //可获得的技能ID
|
| | | char SysMark; //广播提示
|
| | | };
|
| | |
|
| | | //玩家等级表
|
| | |
| | | ("list", "AttrType", 0),
|
| | | ("list", "AttrNum", 0),
|
| | | ("DWORD", "SkillID", 0),
|
| | | ("char", "SysMark", 0),
|
| | | ),
|
| | |
|
| | | "FuncConfig":(
|
| | |
| | | "PetInfo":(
|
| | | ("DWORD", "ID", 1),
|
| | | ("BYTE", "Quality", 0),
|
| | | ("char", "UnlockSys", 0),
|
| | | ("DWORD", "UnLockNeedItemID", 0),
|
| | | ("BYTE", "UnLockNeedItemCnt", 0),
|
| | | ("DWORD", "DecomposeExp", 0),
|
| | |
| | | ("WORD", "UseNeedRank", 0),
|
| | | ("list", "SkillID", 0),
|
| | | ("list", "SkillUnLock", 0),
|
| | | ("list", "SkillUnLockSys", 0),
|
| | | ("DWORD", "InitFightPower", 0),
|
| | | ),
|
| | |
|
| | |
| | | ("BYTE", "UseNeedRank", 0),
|
| | | ("BYTE", "Quality", 0),
|
| | | ("DWORD", "InitFightPower", 0),
|
| | | ("char", "UnlockSys", 0),
|
| | | ),
|
| | |
|
| | | "HorseUp":(
|
| | |
| | | ("list", "AttrType", 0),
|
| | | ("list", "AttrValue", 0),
|
| | | ("list", "SkillID", 0),
|
| | | ("char", "SysMark", 0),
|
| | | ),
|
| | |
|
| | | "PlayerLV":(
|
| | |
| | | self.Exp = 0
|
| | | self.AttrType = []
|
| | | self.AttrNum = []
|
| | | self.SkillID = 0 |
| | | self.SkillID = 0
|
| | | self.SysMark = "" |
| | | return |
| | | |
| | | def GetType(self): return self.Type # 神兵类型
|
| | |
| | | def GetExp(self): return self.Exp
|
| | | def GetAttrType(self): return self.AttrType # 属性类型
|
| | | def GetAttrNum(self): return self.AttrNum # 属性值
|
| | | def GetSkillID(self): return self.SkillID # 激活技能ID |
| | | def GetSkillID(self): return self.SkillID # 激活技能ID
|
| | | def GetSysMark(self): return self.SysMark # 系统提示 |
| | | |
| | | # 功能配置表格 |
| | | class IPY_FuncConfig(): |
| | |
| | | def __init__(self): |
| | | self.ID = 0
|
| | | self.Quality = 0
|
| | | self.UnlockSys = ""
|
| | | self.UnLockNeedItemID = 0
|
| | | self.UnLockNeedItemCnt = 0
|
| | | self.DecomposeExp = 0
|
| | |
| | | self.UseNeedRank = 0
|
| | | self.SkillID = []
|
| | | self.SkillUnLock = []
|
| | | self.SkillUnLockSys = []
|
| | | self.InitFightPower = 0 |
| | | return |
| | | |
| | | def GetID(self): return self.ID # 灵兽NPCID
|
| | | def GetQuality(self): return self.Quality # 品质
|
| | | def GetUnlockSys(self): return self.UnlockSys # 解锁广播提示
|
| | | def GetUnLockNeedItemID(self): return self.UnLockNeedItemID # 解锁灵兽物品ID
|
| | | def GetUnLockNeedItemCnt(self): return self.UnLockNeedItemCnt # 解锁所需物品数量
|
| | | def GetDecomposeExp(self): return self.DecomposeExp # 分解单个解锁物品可获得升阶经验
|
| | |
| | | def GetUseNeedRank(self): return self.UseNeedRank # 多少阶可切换外观
|
| | | def GetSkillID(self): return self.SkillID # 灵兽技能ID
|
| | | def GetSkillUnLock(self): return self.SkillUnLock # 灵兽技能解锁需要阶数
|
| | | def GetSkillUnLockSys(self): return self.SkillUnLockSys # 灵兽技能解锁提示
|
| | | def GetInitFightPower(self): return self.InitFightPower # 初始战力 |
| | | |
| | | # 装备分解属性表 |
| | |
| | | self.MaxLV = 0
|
| | | self.UseNeedRank = 0
|
| | | self.Quality = 0
|
| | | self.InitFightPower = 0 |
| | | self.InitFightPower = 0
|
| | | self.UnlockSys = "" |
| | | return |
| | | |
| | | def GetHorseID(self): return self.HorseID # 坐骑编号ID
|
| | |
| | | def GetMaxLV(self): return self.MaxLV # 坐骑最高等级
|
| | | def GetUseNeedRank(self): return self.UseNeedRank # 多少阶可切换外观
|
| | | def GetQuality(self): return self.Quality # 坐骑品质
|
| | | def GetInitFightPower(self): return self.InitFightPower # 初始战力 |
| | | def GetInitFightPower(self): return self.InitFightPower # 初始战力
|
| | | def GetUnlockSys(self): return self.UnlockSys # 解锁广播提示 |
| | | |
| | | # 坐骑升级表 |
| | | class IPY_HorseUp(): |
| | |
| | | self.NeedExp = 0
|
| | | self.AttrType = []
|
| | | self.AttrValue = []
|
| | | self.SkillID = [] |
| | | self.SkillID = []
|
| | | self.SysMark = "" |
| | | return |
| | | |
| | | def GetHorseID(self): return self.HorseID # 坐骑编号ID
|
| | |
| | | def GetNeedExp(self): return self.NeedExp # 升级所需经验
|
| | | def GetAttrType(self): return self.AttrType # 激活加成属性类型
|
| | | def GetAttrValue(self): return self.AttrValue # 激活加成属性值
|
| | | def GetSkillID(self): return self.SkillID # 可获得的技能ID |
| | | def GetSkillID(self): return self.SkillID # 可获得的技能ID
|
| | | def GetSysMark(self): return self.SysMark # 广播提示 |
| | | |
| | | # 玩家等级表 |
| | | class IPY_PlayerLV(): |
| | |
| | | curExp = curExp - totalExp
|
| | | attrLV += 1
|
| | | isLVUP = True
|
| | | GodWeaponLVUP(curPlayer, godWeaponData)
|
| | | GodWeaponLVUP(curPlayer, godWeaponData, attrLV)
|
| | |
|
| | | totalExp = godWeaponData.GetExp()
|
| | | if totalExp == 0:
|
| | |
| | | PlayerSuccess.UptateSuccessProgress(curPlayer, ShareDefine.SuccType_GodWeapon, attrLV, [weaponType])
|
| | | if beforeAttrLV == 0:
|
| | | # 解封通知
|
| | | PlayerControl.WorldNotify(0, 'GetGodWeapon', [curPlayer.GetName(), weaponType])
|
| | | sysMark = IpyGameDataPY.GetFuncEvalCfg('GodWeaponSys', 1, {}).get(weaponType, 'GetGodWeapon')
|
| | | PlayerControl.WorldNotify(0, sysMark, [curPlayer.GetName(), weaponType])
|
| | |
|
| | | #{1:[100,200,300,400],2:[100,200,300,400],3:[100,200,300,400]}
|
| | | notifyDict = IpyGameDataPY.GetFuncEvalCfg('GodLv', 1, {})
|
| | |
| | | return
|
| | |
|
| | | #神兵升级触发其他功能:技能
|
| | | def GodWeaponLVUP(curPlayer, godWeaponData):
|
| | | def GodWeaponLVUP(curPlayer, godWeaponData, attrLV):
|
| | | skillID = godWeaponData.GetSkillID()
|
| | | |
| | | if skillID:
|
| | | __GiveGodWeaponSkill(curPlayer, skillID)
|
| | | if __GiveGodWeaponSkill(curPlayer, skillID):
|
| | | sysMark = godWeaponData.GetSysMark()
|
| | | if sysMark:
|
| | | PlayerControl.WorldNotify(0, sysMark, [curPlayer.GetName(), attrLV, skillID])
|
| | |
|
| | |
|
| | |
|
| | |
| | | # BuffSkill.DoAddBuff(curPlayer, buffType, skillData, GameWorld.GetGameWorld().GetTick(), [], curPlayer)
|
| | | PassiveBuffEffMng.GetPassiveEffManager().RegistPassiveEff(curPlayer, skillResId)
|
| | | PlayerControl.PlayerControl(curPlayer).RefreshSkillFightPowerEx(skillResId, 0)
|
| | | return
|
| | | return True
|
| | |
|
| | |
| | |
|
| | | skillIDList = upIpyData.GetSkillID()
|
| | | if skillIDList:
|
| | | sysMark = upIpyData.GetSysMark() or 'MountUpLv'
|
| | | for skillID in skillIDList:
|
| | | __GiveSkill(curPlayer, skillID, tick)
|
| | | PlayerControl.WorldNotify(0, 'MountUpLv', [playerName, horseID, updClassLV, skillID])
|
| | | PlayerControl.WorldNotify(0, sysMark, [playerName, horseID, updClassLV, skillID])
|
| | | if not skillIDList and updClassLV == maxLV:
|
| | | PlayerControl.WorldNotify(0, 'MountUpLvMax', [playerName, horseID])
|
| | |
|
| | |
| | |
|
| | | # 刷属性,更新排行榜
|
| | | RefreshHorseAttr(curPlayer)
|
| | | PlayerControl.WorldNotify(0, 'GetMount', [curPlayer.GetName(), ipyData.GetItemID()])
|
| | | sysMark = ipyData.GetUnlockSys() or 'GetMount'
|
| | | PlayerControl.WorldNotify(0, sysMark, [curPlayer.GetName(), ipyData.GetItemID()])
|
| | | #
|
| | | # HorseSkinNotifyDict = ReadChConfig.GetEvalChConfig("HorseSkinNotify")
|
| | | # if horseSkinID in HorseSkinNotifyDict:
|
| | |
| | | ItemCommon.ReduceItem(curPlayer, itemPack, itemList, needItemCnt, False, ChConfig.ItemDel_Pet)
|
| | |
|
| | | EventShell.EventRespons_OnActivatePet(curPlayer, petNPCID)
|
| | | PlayerControl.WorldNotify(0, 'GetPet', [curPlayer.GetName(), petNPCID])
|
| | | sysMark = ipyData.GetUnlockSys() or 'GetPet'
|
| | | PlayerControl.WorldNotify(0, sysMark, [curPlayer.GetName(), petNPCID])
|
| | | rolePet = curPlayer.GetPetMgr().GetFightPet()
|
| | | if not rolePet:
|
| | | petItemIndex = GetPetDataItemIndexByNPCID(curPlayer, petNPCID)
|
| | |
| | | petIpyData = GetPetIpydata(petNPCID)
|
| | | petSkillList = petIpyData.GetSkillID()
|
| | | petSkillUnLockList = petIpyData.GetSkillUnLock()
|
| | | sysMarkList = petIpyData.GetSkillUnLockSys()
|
| | | learnSkillList = []
|
| | | for i, skillid in enumerate(petSkillList):
|
| | | limitPetClassLV = petSkillUnLockList[i] # 学习此技能所需宠物阶级
|
| | |
| | | #被动技能不学
|
| | | learnSkillList.append(skillid)
|
| | | #广播
|
| | | PlayerControl.WorldNotify(0, 'PetUpLv', [playerName, petNPCID, limitPetClassLV, skillid])
|
| | | sysMark = sysMarkList[i] if i < len(sysMarkList) else 'PetUpLv'
|
| | | PlayerControl.WorldNotify(0, sysMark, [playerName, petNPCID, limitPetClassLV, skillid])
|
| | |
|
| | | if not learnSkillList and updClassLV + 1 == maxClassLV:
|
| | | PlayerControl.WorldNotify(0, 'PetUpLvMax', [playerName, petNPCID])
|