186 lines
6.8 KiB
Plaintext
186 lines
6.8 KiB
Plaintext
/*
|
|
文件名: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()));
|
|
} |