feat(ObjectConvert): 添加攻击信息相关伤害率和暴击率操作函数

添加多个函数用于获取和设置攻击信息的不同伤害率(对人、建筑、怪物)和暴击率,以及获取伤害反应值。这些函数通过内存操作实现,为战斗系统提供更精细的控制能力。
This commit is contained in:
Lenheart 2026-03-15 01:59:20 +08:00
parent be0725b52a
commit 9c6f49d2ea
1 changed files with 83 additions and 0 deletions

View File

@ -174,4 +174,87 @@ function sq_SetCurrentAttackInfoChangeStatus(attackInfo, Data1, Data2, Data3)
B.writen(Data3, 'i'); B.writen(Data3, 'i');
B.seek(0); B.seek(0);
MemoryTool.EncodeMemoryData(AtkC + 0x234, B.readn('i')); MemoryTool.EncodeMemoryData(AtkC + 0x234, B.readn('i'));
}
function sq_GetCurrentAttackInfoHumanDamageRate(attackInfo)
{
local AtkC = L_sq_P2I(attackInfo["__ot"][28259608]);
local Res = MemoryTool.DecodeMemoryData(AtkC + 0x294);
local B = blob();
B.writen(Res, 'i');
B.seek(0);
return B.readn('f');
}
function sq_SetCurrentAttackInfoHumanDamageRate(attackInfo, rate)
{
local AtkC = L_sq_P2I(attackInfo["__ot"][28259608]);
local B = blob();
B.writen(rate, 'f');
B.seek(0);
MemoryTool.EncodeMemoryData(AtkC + 0x294, B.readn('i'));
}
function sq_GetCurrentAttackInfoFortDamageRate(attackInfo)
{
local AtkC = L_sq_P2I(attackInfo["__ot"][28259608]);
local Res = MemoryTool.DecodeMemoryData(AtkC + 0x2A0);
local B = blob();
B.writen(Res, 'i');
B.seek(0);
return B.readn('f');
}
function sq_SetCurrentAttackInfoFortDamageRate(attackInfo, rate)
{
local AtkC = L_sq_P2I(attackInfo["__ot"][28259608]);
local B = blob();
B.writen(rate, 'f');
B.seek(0);
MemoryTool.EncodeMemoryData(AtkC + 0x2A0, B.readn('i'));
}
function sq_GetCurrentAttackInfoMonsterDamageRate(attackInfo)
{
local AtkC = L_sq_P2I(attackInfo["__ot"][28259608]);
local Res = MemoryTool.DecodeMemoryData(AtkC + 0x2AC);
local B = blob();
B.writen(Res, 'i');
B.seek(0);
return B.readn('f');
}
function sq_SetCurrentAttackInfoMonsterDamageRate(attackInfo, rate)
{
local AtkC = L_sq_P2I(attackInfo["__ot"][28259608]);
local B = blob();
B.writen(rate, 'f');
B.seek(0);
MemoryTool.EncodeMemoryData(AtkC + 0x2AC, B.readn('i'));
}
function sq_GetCurrentAttackInfoCriticalRate(attackInfo)
{
local AtkC = L_sq_P2I(attackInfo["__ot"][28259608]);
local Res = MemoryTool.DecodeMemoryData(AtkC + 0x68);
local B = blob();
B.writen(Res, 'i');
B.seek(0);
return B.readn('f');
}
function sq_SetCurrentAttackInfoCriticalRate(attackInfo, rate)
{
local AtkC = L_sq_P2I(attackInfo["__ot"][28259608]);
local B = blob();
B.writen(rate, 'f');
B.seek(0);
MemoryTool.EncodeMemoryData(AtkC + 0x68, B.readn('i'));
}
function sq_GetCurrentAttackInfoDamageReaction(attackInfo)
{
local AtkC = L_sq_P2I(attackInfo["__ot"][28259608]);
local Res = MemoryTool.DecodeMemoryData(AtkC + 0x4C);
return Res;
} }