原作者:samyyc
Signature:
{
"CSmokeGrenadeProjectile_SmokeDetonate": {
"signatures": {
"library": "server",
"windows": "48 89 5C 24 08 57 48 83 EC 50 48 8B F9 E8 ? ? ? ? 48 8D 9F 80 0B 00 00",
"linux": "55 48 89 E5 41 54 49 89 FC 53 48 83 EC 10 E8 ? ? ? ? F3 0F 10 00"
}
}
}
使用方法:
private MemoryFunctionWithReturn<nint, nint> CSmokeGrenadeProjectile_SmokeDetonate = new(GameData.GetSignature("CSmokeGrenadeProjectile_SmokeDetonate"));
// detonate once its throwed
RegisterListener<Listeners.OnEntityCreated>((entity) =>
{
if (entity.DesignerName == "smokegrenade_projectile")
{
Server.NextFrame(() =>
{
CSmokeGrenadeProjectile_SmokeDetonate.Invoke(entity.Handle);
});
}
});
如何找到这个函数?
在 Windows server.dll中找到Think_Detonate字符串,找到为 CSmokeGrenadeProjectile 注册 think detonate 函数的代码,你应该在它附近找到 ThinkDetonate 函数,这个函数在浮点检查(速度)逻辑下面被调用。
参考: