【CS2 代码赏析】针对切武器动作(OnWeaponSwitch)的钩子函数 开发者相关

我不当学长 管理员组 21天前 144

原作者:oylsister (Oylsister)

public override void Load(bool hotReload)
{
    MemoryFunctionWithReturn<CPlayer_WeaponServices, CBasePlayerWeapon, int, bool> CPlayer_WeaponServices_SwitchWeapon = new("55 48 89 E5 41 57 41 56 41 89 D6 41 55 41 54 49 89 F4");

    CPlayer_WeaponServices_SwitchWeapon.Hook((hook) =>
    {
        var client = hook.GetParam<CPlayer_WeaponServices>(0);
        var weapon = hook.GetParam<CBasePlayerWeapon>(1);

        Server.PrintToChatAll($"{client.Pawn.Value.Controller.Value?.PlayerName} try switch to {weapon.DesignerName}.");

        if (blocked)
        {
            Server.PrintToChatAll($"{client.Pawn.Value.Controller.Value?.PlayerName} got blocked switch");
            hook.SetReturn(false);
            return HookResult.Handled;
        }

        return HookResult.Continue;
    }, HookMode.Pre);
}

针对此signature的寻找过程视频:Youtube  Sigscan Weapon_Swtich for CS2


CSGO插件分享-申明 1、本网站名称:CSGO插件分享-中文站  网址:https://bbs.csgocn.net
2、本站的宗旨在于为CSGO玩家提供一个插件分享的中文资源平台,多数插件来源于SourceMod论坛,并配以中文介绍和安装教程。
3、欢迎有能力的朋友共享有趣的CSGO插件资源。
4、本站资源大多为百度网盘,如发现链接失效,可以点: 这里进行反馈,我们会第一时间更新。
最新回复 (3)
  • csgohihack 一级用户组@Ta 23小时前 0
    引用 2
    请问特征码55  48  89  E5  41  57  41  56  41  89  D6  41  55  41  54  49  89  F4是哪个模块的?client.dll没有搜到
  • csgohihack 一级用户组@Ta 23小时前 0
    引用 3
    还有你这个特征码是从gamedata.json获取的还是自己逆向获取的
  • 我不当学长 楼主 管理员组@Ta 12小时前 0
    引用 4
    csgohihack 请问特征码55 48 89 E5 41 57 41 56 41 89 D6 41 55 41 54 49 89 F4是哪个模块的?client.dll没有搜到
    libserver.so,看帖子底下链接
返回