☰
[L4D/L4D2] ThirdPersonShoulder_Detect插件原理分析
2026/9/25 18:40:22 网站建设 项目流程

一、简介

[L4D/L4D2] ThirdPersonShoulder_Detect,作者Lux。它是一个 SourceMod 插件,专门用于检测客户端是否处于thirdpersonshoulder第三人称状态。其链接为:https://forums.alliedmods.net/showthread.php?s=d44e6db4e2db4d345360bb0e08165396&t=298649

二、原理

它的核心是检测客户端的:

c_thirdpersonshoulder

然后给其他 SourceMod 插件提供一个 Forward:

forward void TP_OnThirdPersonChanged(int iClient, bool bIsThirdPerson);

其中:

iClient = 玩家编号 bIsThirdPerson = true → 第三人称 false → 第一人称

三、漏洞

这个插件主要检测的是thirdpersonshoulder,并不等于能够 100% 检测 L4D2 中所有可能导致第三人称的方式。所以可以通过某些方法绕过检测。比如我们可以让c_thirdpersonshoulder为0但仍然是第三人称。c_thirdpersonshoulder是引擎肩视角路径的控制变量,不是所有第三人称渲染状态的唯一开关。我们可以设计一种模式(比如叫Custom camera模式)将“是否绘制本地模型”和“摄像机在哪里”拆开处理:前者由 CInput/玩家状态控制,后者由CViewSetup::origin直接控制。因此它可以在该 ConVar 为 0 时仍然显示第三人称画面。

如下图所示,传统模式(Custom OverrideView)无法绕过该插件的检测,但如果用Custom camera模式就可以:

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询