/* 文件名:Ptst_Func.nut 路径:Plugins/Ptst/Ptst_Func.nut 创建日期:2023-07-08 15:47 文件用途: */ function AddTalismanIntData(obj, SkillId, Idx, Value) { local Root = getroottable(); local RootTab; if (!Root.rawin("LenheartTalismanSkillManager")) { local T = {}; Root.rawset("LenheartTalismanSkillManager", T); } RootTab = Root["LenheartTalismanSkillManager"]; local objAddress = L_Sq_GetObjectAddress(obj); local SkillAddress = L_Sq_GetSkillAddress(SkillId); local Key = "LJ" + objAddress + "SkillAddress" + SkillAddress + "Idx" + Idx; if (RootTab.rawin(Key)) { local basedata = RootTab[Key]; basedata += Value; RootTab.rawset(Key, basedata); } else RootTab.rawset(Key, Value); } function AddTalismanLevelData(obj, SkillId, Idx, Value) { local Root = getroottable(); local RootTab; if (!Root.rawin("LenheartTalismanSkillManager")) { local T = {}; Root.rawset("LenheartTalismanSkillManager", T); } RootTab = Root["LenheartTalismanSkillManager"]; local objAddress = L_Sq_GetObjectAddress(obj); local SkillAddress = L_Sq_GetSkillAddress(SkillId); local Key = "EX_LJ" + "SkillAddress" + SkillAddress + "Idx" + Idx; if (RootTab.rawin(Key)) { local basedata = RootTab[Key]; basedata += Value; RootTab.rawset(Key, basedata); } else RootTab.rawset(Key, Value); } function AddTalismanSkillCoolTime(obj, SkillId, Value) { local Root = getroottable(); local RootTab; if (!Root.rawin("LenheartTalismanSkillManager")) { local T = {}; Root.rawset("LenheartTalismanSkillManager", T); } RootTab = Root["LenheartTalismanSkillManager"]; local objAddress = L_Sq_GetObjectAddress(obj); local SkillAddress = L_Sq_GetSkillAddress(SkillId); local Key = "CT_LJ" + "SkillAddress" + SkillAddress; if (RootTab.rawin(Key)) { local basedata = RootTab[Key]; basedata += Value; RootTab.rawset(Key, basedata); } else RootTab.rawset(Key, Value); } function ClearTalismanData() { local Root = getroottable(); if (Root.rawin("LenheartTalismanSkillManager")) { Root.rawdelete("LenheartTalismanSkillManager"); } } //获取原始静态数据 function GetTalismanBaseIntData(obj, SkillId, Idx) { local Root = getroottable(); local RootTab; if (!Root.rawin("LenheartTalismanSkillManager")) { local T = {}; Root.rawset("LenheartTalismanSkillManager", T); } RootTab = Root["LenheartTalismanSkillManager"]; local objAddress = L_Sq_GetObjectAddress(obj); local SkillAddress = L_Sq_GetSkillAddress(SkillId); local Key = "LJ" + objAddress + "SkillAddress" + SkillAddress + "Idx" + Idx; if (RootTab.rawin(Key)) { local basedata = RootTab[Key]; return obj.sq_GetIntData(SkillId, Idx) - basedata; } else return obj.sq_GetIntData(SkillId, Idx); } //获取原始静态数据 function GetTalismanBaseLevelData(obj, SkillId, Idx) { local Root = getroottable(); local RootTab; if (!Root.rawin("LenheartTalismanSkillManager")) { local T = {}; Root.rawset("LenheartTalismanSkillManager", T); } RootTab = Root["LenheartTalismanSkillManager"]; local objAddress = L_Sq_GetObjectAddress(obj); local SkillAddress = L_Sq_GetSkillAddress(SkillId); local Key = "EX_LJ" + "SkillAddress" + SkillAddress + "Idx" + Idx; if (RootTab.rawin(Key)) { local basedata = RootTab[Key]; return obj.sq_GetLevelData(SkillId, Idx, sq_GetSkillLevel(obj, SkillId)) - basedata; } else return obj.sq_GetLevelData(SkillId, Idx, sq_GetSkillLevel(obj, SkillId)); } //获取原始冷却时间 function GetTalismanBaseCoolTime(obj, SkillId) { local Root = getroottable(); local RootTab; if (!Root.rawin("LenheartTalismanSkillManager")) { local T = {}; Root.rawset("LenheartTalismanSkillManager", T); } RootTab = Root["LenheartTalismanSkillManager"]; local objAddress = L_Sq_GetObjectAddress(obj); local SkillAddress = L_Sq_GetSkillAddress(SkillId); local Key = "CT_LJ" + "SkillAddress" + SkillAddress; if (RootTab.rawin(Key)) { local basedata = RootTab[Key]; return sq_GetSkill(obj,SkillId).getCoolTime(obj, -1) - basedata; } else return sq_GetSkill(obj,SkillId).getCoolTime(obj, -1); } //光芒圣痕拔刀奥义 function LenheartTalisman_100401044(obj) { //准备动作时间 AddTalismanIntData(obj, 9, 0, -((GetTalismanBaseIntData(obj, 9, 0) * 0.3).tointeger())); //拔刀伤害 AddTalismanLevelData(obj, 9, 0, ((GetTalismanBaseLevelData(obj, 9, 0) * 0.28).tointeger())); } //光芒圣痕:无形剑舞 function LenheartTalisman_100401046(obj) { //攻击范围 AddTalismanIntData(obj, 73, 13, -((GetTalismanBaseIntData(obj, 73, 13) * 0.25).tointeger())); AddTalismanIntData(obj, 73, 14, -((GetTalismanBaseIntData(obj, 73, 14) * 0.25).tointeger())); //多段攻击次数 AddTalismanIntData(obj, 73, 1, 8); AddTalismanIntData(obj, 73, 2, 8); AddTalismanIntData(obj, 73, 3, 8); AddTalismanIntData(obj, 73, 4, 8); AddTalismanIntData(obj, 73, 5, 8); AddTalismanIntData(obj, 73, 6, 8); AddTalismanIntData(obj, 73, 7, 8); AddTalismanIntData(obj, 73, 8, 8); AddTalismanIntData(obj, 73, 11, 8); AddTalismanIntData(obj, 73, 12, 8); } //光芒圣痕:猛龙过江 function LenheartTalisman_100401045(obj) { //多段攻击次数上限 AddTalismanIntData(obj, 72, 1, 5); //攻击力 AddTalismanLevelData(obj, 72, 0, -((GetTalismanBaseLevelData(obj, 72, 0) * 0.57).tointeger())); AddTalismanLevelData(obj, 72, 1, -((GetTalismanBaseLevelData(obj, 72, 1) * 0.57).tointeger())); } //光芒圣痕:流星审判 function LenheartTalisman_100401047(obj) { //流星剑间隔 AddTalismanLevelData(obj, 235, 7, -((GetTalismanBaseLevelData(obj, 235, 7) * 0.2).tointeger())); //流星剑数量 AddTalismanLevelData(obj, 235, 6, 9); } //光芒圣痕:一合残像 function LenheartTalisman_100401049(obj) { //爆炸攻击力 AddTalismanLevelData(obj, 234, 2, ((GetTalismanBaseLevelData(obj, 234, 2) * 0.21).tointeger())); } //光芒圣痕:破空一刀 function LenheartTalisman_100401048(obj) { //准备动作时间 AddTalismanLevelData(obj, 97, 2, -((GetTalismanBaseLevelData(obj, 97, 2) * 0.4).tointeger())); AddTalismanSkillCoolTime(obj,97,-((GetTalismanBaseCoolTime(obj,97) * 0.1).tointeger())); } //光芒圣痕:最后一斩 function LenheartTalisman_100401050(obj) { //攻击力 AddTalismanLevelData(obj, 236, 1, -((GetTalismanBaseLevelData(obj, 236, 1) * 0.13).tointeger())); AddTalismanLevelData(obj, 236, 2, -((GetTalismanBaseLevelData(obj, 236, 2) * 0.13).tointeger())); AddTalismanLevelData(obj, 236, 4, -((GetTalismanBaseLevelData(obj, 236, 4) * 0.13).tointeger())); }