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);
|
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;
|
||||||
|
}
|
||||||
Loading…
Reference in New Issue