feat(ObjectConvert): 添加攻击信息相关伤害率和暴击率操作函数
添加多个函数用于获取和设置攻击信息的不同伤害率(对人、建筑、怪物)和暴击率,以及获取伤害反应值。这些函数通过内存操作实现,为战斗系统提供更精细的控制能力。
This commit is contained in:
parent
be0725b52a
commit
9c6f49d2ea
|
|
@ -175,3 +175,86 @@ function sq_SetCurrentAttackInfoChangeStatus(attackInfo, Data1, Data2, Data3)
|
|||
B.seek(0);
|
||||
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;
|
||||
}
|
||||
Loading…
Reference in New Issue