【CS2】CS2TraceRay 目光追踪判定器 游戏性拓展 通用内容

我不当学长 管理员组 1月前 260

插件介绍:

此插件是一个开发者库,提供类似判定玩家目光所及之处的物体类型,距离等功能

效果图:

使用范例:CS2TraceRay/CS2TraceRayExample/CS2TraceRayExample.cs at main · schwarper/CS2TraceRay

private static float GetGroundDistance(CCSPlayerController player)
{
    if (player.PlayerPawn.Value is not { } playerPawn ||
        playerPawn.GroundEntity.IsValid is true ||
        playerPawn.AbsOrigin is not { } absOrigin)
        return 0.0f;

    CGameTrace _trace = TraceRay.TraceShape(absOrigin, new QAngle(90, 0, 0), TraceMask.MaskAll, Contents.Sky, 0);
    return _trace.Distance;
}

private static CCSPlayerController? GetPlayer(CCSPlayerController player)
{
    if (player.PlayerPawn.Value is not { } playerPawn)
        return null;

    Vector eyePos = GetEyePosition(player);
    QAngle eyeAngles = playerPawn.EyeAngles;
    CGameTrace _trace = TraceRay.TraceShape(eyePos, eyeAngles, TraceMask.MaskShot, Contents.Player, player);

    return _trace.HitPlayer(out CCSPlayerController? target) && target != null ? target : null;
}

private static CBasePlayerWeapon? GetWeapon(CCSPlayerController player)
{
    if (player.PlayerPawn.Value is not { } playerPawn)
        return null;

    Vector eyePos = GetEyePosition(player);
    QAngle eyeAngles = playerPawn.EyeAngles;
    CGameTrace _trace = TraceRay.TraceShape(eyePos, eyeAngles, TraceMask.MaskShot, Contents.CarriedWeapon, player);

    return _trace.HitWeapon(out CBasePlayerWeapon? weapon) && weapon != null ? weapon : null;
}

参考:

上传的附件:

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