Counter-Strike 2

Counter-Strike 2

Not enough ratings
如何在CSGO内利用命令让C4秒炸
By M o n o ❀ #



很简单

Main Command

mp_c4timer 2147483648














废话环节,可以不看



至于数值为什么必须是大于或等于2147483648才行?为什么2147483647就做不到秒炸?

要了解这个原理 就必须首先要知道32位整数的范围

Int32类型的最大值是2147483647
占4个字节
其取值范围为 -2147483648~2147483647

那为什么超出这个取值范围时,游戏中c4将会秒炸?

之后将延伸到内存溢出
我们用简单的字节来说明一下

Byte的有效取值范围为 -256~255
当赋予它的值没有超过255之前,均可视为有效数值
但是当赋予他的值超过了最大有效数值时,即可视为255+1,这就导致了内存溢出,会使数值溢出回0

还是不懂?
用二进制来说明下
1个字节内含有8个比特
将8个bit全部列出来设置为0 如下

00000000

当将所有的0都设置为1时,这个二进制表示的数值即为 255

11111111

当你尝试再在255上+1 结果如下


11111111 +1 ------------ 11111110 ------------ 11111100 ------------ 11111000 ------------ 11110000 ------------ 11100000 ------------ 11000000 ------------ 10000000 ------------ 00000000 ------------ 1 00000000

因为1个字节中只有8个bit
但是256需要用第9位bit来表示 但是实际上并不存在第9位bit

所以在1个字节中 所有超过最大有效数值的数字,均被视为0

Int32中也是如此
它的最大值即为2147483647
并没有办法表示2147483648
它将2147483648这个数值视为了0
所以当c4计时器被设置为此数值时,设置c4将会立即爆炸
(凑字数强行说明原理
   
Award
Favorite
Favorited
Unfavorite
Image
Pixiv ID:67175719
1 Comments
M o n o ❀ #  [author] Aug 12, 2019 @ 12:14pm 
mp_plant_c4_anywhere 1; mp_anyone_can_pickup_c4 1; mp_c4timer 2147483648; give weapon_c4; say happy_birthday!