6 控制台变量 - eLecCap1taL/CS2-CFG-Wiki GitHub Wiki
你是否见过彩虹 HUD cfg?🌈
HUD 的颜色由控制台变量控制。在这一章,你会了解关于控制台变量的知识
控制台变量,即 Console variables,又称 convar 或 cvar。下文我们都使用 "cvar" 这个称呼。
cvar 可以存储值,这个值可以是整数、小数、或者文本。游戏有可能会根据 cvar 值的改变有不同的变化。
内置 cvar
CS2 内置了相当多的 cvar。最常见的应该是 sv_cheats
,他是服务器端的一个控制台变量。当它为 1
的时候就启用了作弊,为 0
时关闭作弊。当作弊开启时你就可以通过 noclip
来飞天穿墙,是跑图的常用功能。
相信你一定见过更改 sv_cheats
这个 cvar 的指令,是的,就是 sv_cheats 1
。修改 cvar 的指令就是 cvar名字 值
。
常见的游戏自带 cvar 还有 cl_showpos
,把它设为 1
可以在屏幕上显示角色的坐标、视角角度等信息。
更多常用的游戏内置 cvar:
sensitivity
:鼠标灵敏度m_yaw
:横向鼠标位移比例m_pitch
:纵向鼠标位移比例cl_showfps
:显示帧数cl_hud_color
:hud 颜色fps_max
:帧数上限(不能低于 64)
更多控制台变量可以在 官方控制台指令和变量列表 查看。
游戏自带的 cvar 大多都限制了值的类型和范围。
查看 cvar 值的指令就是 cvar 名字本身。使用 cvar名字
这个指令会输出如下内容:
cvar名字 = 它的值
自定义 cvar
你可以通过 setinfo
指令来创建一个控制台变量,其值的类型是任意的。下面的指令创建了一个名为 hello
的 cvar,值为 114514.1919810
:
setinfo hello 114514.1919810
不能覆盖掉游戏自带的 cvar。但可以覆盖 alias
:
alias A "一些指令……"
setinfo A 0
//成功,自定义 cvar 覆盖掉了 alias
setinfo A 0
alias A "一些指令……"
//失败,自定义 cvar 已经是一个关键字了,无法定义 alias
自定义 cvar 的修改方式和查看方式与内置 cvar 无异:
setinfo hello 114514.1919810
hello
//输出:hello = 114514.1919810
hello 可以是一段文本
hello
//输出:hello = 可以是一段文本
hello "如果文本中包括分号;需要用双引号引起来"
hello
//输出:hello = 如果文本中包括分号;需要用双引号引起来
修改 cvar
cvar名字 值
最直接的方法,内置和自定义 cvar 都适用
incrementvar cvar名字 最小值 最大值 加值
只适用于游戏自带的控制台变量
作用是给一个 cvar 加上一个值
如果加上之后,高于最大值,cvar 变为最小值
如果加上之后,低于最小值,cvar 变为最大值
注意,cvar 的值仍然受它自身预设好的限制影响。例如,灵敏度 sensitivity
不能低于 0.000100
sensitivity 1.000000
//更改鼠标灵敏度为 1.000000
//也可以写 sensitivity 1,都是一样的
incrementvar sensitivity 0 8 1.0
//给灵敏度 +1
sensitivity
//输出:sensitivity = 2.000000
incrementvar sensitivity 0 8 -0.5
//给灵敏度 -0.5
sensitivity
//输出:sensitivity = 1.500000
incrementvar sensitivity 1 3 4.0
//给灵敏度 +4,但是超过了指定的最大值 3,变为给定的最小值 1
sensitivity
//输出:sensitivity = 1.000000
incrementvar sensitivity 0.9 5 -0.5
//给灵敏度 -0.5,但是低于指定的最小值 0.9,变为给定的最大值 5
sensitivity
//输出:sensitivity = 1.000000
multvar cvar名字 最小值 最大值 乘值
只适用于游戏自带的控制台变量
作用是给一个 cvar 乘上一个值
如果加上之后,高于最大值,cvar 变为最大值
如果加上之后,低于最小值,cvar 变为最小值
注意到此处与 incrementvar
的不同
注意,cvar 的值仍然受它自身预设好的限制影响。例如,灵敏度 sensitivity
不能低于 0.000100
sensitivity 1.000000
//更改鼠标灵敏度为 1.000000
//也可以写 sensitivity 1,都是一样的
multvar sensitivity 0 8 2
//给灵敏度 ×2
sensitivity
//输出:sensitivity = 2.000000
multvar sensitivity 0 8 0.75
//给灵敏度 ×0.75
sensitivity
//输出:sensitivity = 1.500000
multvar sensitivity 1 3 4
//给灵敏度 ×4,但是超过了指定的最大值 3,变为给定的最大值 3
sensitivity
//输出:sensitivity = 3.000000
multvar sensitivity 2 5 0.5
//给灵敏度 ×0.5,但是低于指定的最小值 2,变为给定的最小值 2
sensitivity
//输出:sensitivity = 2.000000
此处没有演示乘负数,也是可以的。
toggle cvar名字 值1 值2 值3....
这是一个相当强大的指令,内置 cvar 和自定义 cvar 均可用。
后面可以跟无限个(事实上一行指令的长度存在一个上限,大约300)值,可以是任何类型(整数,小数,文本)
它的工作方式如下:
- 若这个 cvar 原来的值,不是后面的任何一个,将 cvar 更改为第一个值
- 否则,从左往右,找到第一个和 cvar 原来的值相等的值,把 cvar 更改为下一个值。如果找到的是最后一个,则更改为第一个值
//支持自定义 cvar
setinfo a_cvar 0
toggle a_cvar 0 也支持文本 123.123
a_cvar
//输出:a_cvar = 也支持文本
toggle a_cvar 1 2 3 4 5 6 7 //可以写任意多的值
//没有一样的值,变为第一个
a_cvar
//输出 a_cvar = 1
toggle a_cvar 4 3 2 1
//最后一个会循环到第一个
a_cvar
//输出 a_cvar = 4
toggle a_cvar 2 4 3 4 1
//从左往右找第一个 4,因此下一个值是 3 而不是 1
a_cvar
//输出 a_cvar = 3
//利用每次找的是第一个的特性,可以创建一个循环
toggle a_cvar 3 2 1 1
//a_cvar = 2
toggle a_cvar 3 2 1 1
//a_cvar = 1
toggle a_cvar 3 2 1 1
//a_cvar = 1
toggle a_cvar 3 2 1 1
//a_cvar = 1
……
这有什么用啊哥们,说了这么多 😡😡😡
对于初级应用,这些自定义手段确实无关紧要,但在后面的章节,尤其是更高级的应用中,你会开始领略到这些指令的重要性。