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