72 lines
1.7 KiB
Plaintext
72 lines
1.7 KiB
Plaintext
/*
|
|
文件名:GetDamageRate.nut
|
|
路径:Base/CallBack/GetDamageRate.nut
|
|
创建日期:2024-08-09 14:10
|
|
文件用途:获取伤害倍率
|
|
*/
|
|
function L_getCurrentModuleDamageRate(obj) {
|
|
if (!obj)
|
|
return 1.0;
|
|
local rate;
|
|
if (getroottable().rawin("LenheartCurrentModuleDamageRate")) {
|
|
rate = 1.0 + getroottable()["LenheartCurrentModuleDamageRate"];
|
|
} else {
|
|
rate = 1.0;
|
|
}
|
|
|
|
//超时空伤害
|
|
if (getroottable().rawin("LenheartFiendModuleDamageRate")) {
|
|
rate *= getroottable()["LenheartFiendModuleDamageRate"];
|
|
} else {
|
|
rate *= 1.0;
|
|
}
|
|
|
|
//pvf伤害
|
|
local ClientRat = 1.0;
|
|
try {
|
|
ClientRat = getCurrentModuleDamageRate(obj).tofloat();
|
|
} catch (exception) {
|
|
ClientRat = 1.0;
|
|
}
|
|
|
|
//副本伤害控制
|
|
try {
|
|
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;
|
|
} catch (exception) {
|
|
|
|
}
|
|
|
|
//职业伤害控制
|
|
try {
|
|
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();
|
|
}
|
|
}
|
|
|
|
}
|
|
} catch (exception) {
|
|
|
|
}
|
|
|
|
|
|
return (rate * ClientRat);
|
|
} |