【CS2 代码赏析】 烟雾弹出手后立刻爆开(Detonate Smoke) 开发者相关

我不当学长 管理员组 2月前 310

原作者: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 函数,这个函数在浮点检查(速度)逻辑下面被调用。

参考:


CSGO插件分享-申明 1、本网站名称:CSGO插件分享-中文站  网址:https://bbs.csgocn.net
2、本站的宗旨在于为CSGO玩家提供一个插件分享的中文资源平台,多数插件来源于SourceMod论坛,并配以中文介绍和安装教程。
3、欢迎有能力的朋友共享有趣的CSGO插件资源。
4、本站资源大多为百度网盘,如发现链接失效,可以点: 这里进行反馈,我们会第一时间更新。
最新回复 (0)
返回