111
This commit is contained in:
137
character/GetCurrentModuleDamageRate.nut
Normal file
137
character/GetCurrentModuleDamageRate.nut
Normal file
@@ -0,0 +1,137 @@
|
||||
/*
|
||||
文件名:GetCurrentModuleDamageRate.nut
|
||||
路径:character/GetCurrentModuleDamageRate.nut
|
||||
创建日期:2022-11-12 19:42
|
||||
文件用途:提升伤害
|
||||
*/
|
||||
|
||||
|
||||
|
||||
//获取强化增幅提升率
|
||||
function SetUpgradeRate() {
|
||||
local Rate = [
|
||||
[0, 1.0],
|
||||
[1, 1.02],
|
||||
[2, 1.03],
|
||||
[3, 1.04],
|
||||
[4, 1.05],
|
||||
[5, 1.06],
|
||||
[6, 1.07],
|
||||
[7, 1.08],
|
||||
[8, 1.09],
|
||||
[9, 1.10],
|
||||
[10, 1.10],
|
||||
[11, 1.20],
|
||||
[12, 1.40],
|
||||
[13, 1.60],
|
||||
[14, 2.20],
|
||||
[15, 3.40],
|
||||
];
|
||||
local RootTable = getroottable();
|
||||
local Level = L_sq_GetCharacterAttribute(0x1054, 1);
|
||||
RootTable.rawset("UpgradeRate", Rate[Level][1] - 1.0);
|
||||
}
|
||||
|
||||
//最终伤害
|
||||
function GetOverDamgeRate(obj) {
|
||||
return (obj.sq_GetIntData(169, 1).tofloat() / 100.0);
|
||||
}
|
||||
|
||||
//-------------------------------------------------------------------------------------------------黄字追加伤害
|
||||
function GetYellowAddDamageRate(obj) {
|
||||
local YellowAdd = obj.getVar("YellowAdd");
|
||||
YellowAdd.clear_vector();
|
||||
local YellowAddRate = YellowAdd.getInt(0); //黄字追加伤害初始值
|
||||
|
||||
//----------------------------------------------------------------------------技能栏手搓伤害增加率
|
||||
local SkillSlot = obj.getVar("SkillSlot");
|
||||
local SkillSlotRate = (12 - SkillSlot.getInt(0)) * 5;
|
||||
YellowAdd.setInt(0, SkillSlotRate);
|
||||
//----------------------------------------------------------------------------
|
||||
|
||||
return YellowAddRate;
|
||||
}
|
||||
//-------------------------------------------------------------------------------------------------黄字追加伤害
|
||||
|
||||
|
||||
|
||||
function getCurrentModuleDamageRate(obj) {
|
||||
|
||||
if (!obj)
|
||||
return 1.0;
|
||||
local rate = 10.0;
|
||||
|
||||
local UpgradeRate = getroottable()["UpgradeRate"];
|
||||
rate += (GetYellowAddDamageRate(obj).tofloat() / 100.0); //追加黄字
|
||||
|
||||
//强化增伤 //最终增伤
|
||||
//rate *= 1 + UpgradeRate + GetOverDamgeRate(obj);
|
||||
return rate;
|
||||
}
|
||||
|
||||
if (!getroottable().rawin("DungeonIndex")) DungeonIndex <- [];
|
||||
if (!getroottable().rawin("GrowType")) GrowType <- [];
|
||||
|
||||
|
||||
|
||||
function L_getCurrentModuleDamageRate(obj) {
|
||||
if (!obj)
|
||||
return 1.0;
|
||||
local rate;
|
||||
if (getroottable().rawin("LenheartCurrentModuleDamageRate")) {
|
||||
rate = 1.0 + getroottable()["LenheartCurrentModuleDamageRate"];
|
||||
} else {
|
||||
rate = 1.0;
|
||||
}
|
||||
local AncientAttackHit = obj.getVar("AncientAttackHit");
|
||||
local AncientAttackRate = AncientAttackHit.getInt(10).tofloat() / 1000.0;
|
||||
|
||||
local ClientRat = 1.0;
|
||||
try {
|
||||
ClientRat = getCurrentModuleDamageRate(obj).tofloat();
|
||||
} catch (exception) {
|
||||
ClientRat = 1.0;
|
||||
}
|
||||
|
||||
local stage = sq_GetGlobaludpModuleStage();
|
||||
local dungeon = sq_GetDungeonByStage(stage);
|
||||
local dungeonIndex = sq_GetDuegonIndex(dungeon);
|
||||
local fbsh = 100;
|
||||
|
||||
foreach(id in DungeonIndex) {
|
||||
if (dungeonIndex == id[0]) {
|
||||
fbsh = id[1];
|
||||
}
|
||||
}
|
||||
local nrate = fbsh.tofloat() / 100.0;
|
||||
rate = rate.tofloat() * nrate;
|
||||
|
||||
local LLJob = sq_getJob(obj);
|
||||
local LLGrowT = sq_getGrowType(obj);
|
||||
|
||||
local LLLen = GrowType.len();
|
||||
for (local i = 0; i< 11; ++i) {
|
||||
if (i == LLLen) break;
|
||||
if (LLJob == i) {
|
||||
foreach(GR in GrowType[i]) {
|
||||
if (LLGrowT == GR[0])
|
||||
rate = rate.tofloat() * GR[1].tofloat();
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
return (rate * ClientRat) + AncientAttackRate;
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
function GetMyDamageRateByLenheart(Chunk) {
|
||||
local Jso = Json.Decode(Chunk);
|
||||
local str = Jso.sh;
|
||||
|
||||
local Func = compilestring(str);
|
||||
Func();
|
||||
}
|
||||
Pack_Control.rawset(20058002, GetMyDamageRateByLenheart);
|
||||
Reference in New Issue
Block a user