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()));
 | |
| } |