select 会阻塞,直到条件分支中的某个可以继续执行,这时就会执行那个条件分支。当多个都准备好的时候,会随机选择一个。
复制代码代码如下:
package main
import "fmt"
func fibonacci(c, quit chan int) {
x, y := 1, 1
for {
select {
case c <- x:
x, y = y, x + y
case <-quit:
fmt.Println("quit")
return
}
}
}
func main() {
c := make(chan int)
quit := make(chan int)
go func() {
for i := 0i <10i++ {
fmt.Println(<-c)
}
quit <- 0
}()
fibonacci(c, quit)
}
默认选择
当 select 中的其他条件分支都没有准备好的时候,default 分支会被执行。
为了非阻塞的发送或者接收,可使用 default 分支:
select {
case i := <-c:
// use i
default:
// receiving from c would block
}
复制代码代码如下:
package main
import (
"fmt"
"time"
)
func main() {
tick := time.Tick(1e8)
boom := time.After(5e8)
for {
select {
case <-tick:
fmt.Println("tick.")
case <-boom:
fmt.Println("BOOM!")
return
default:
fmt.Println(".")
time.Sleep(5e7)
}
}
}
有很多很多
基本指令:
cl_showfps 0/1 关闭/显示当前fps值
net_graph 0/1 关闭/显示当前fps、ping值、loss、choke、tick
--fps越高游戏越流畅,只与机器配置有关,与网络/服务器无关
--ping越低游戏延迟越低,只与自身网络以及服务器有关
--loss指游戏数据输入,值越高越接受不到外界的信息,敌人脚步声、枪声等,有时甚至无法看见烟雾弹
--choke指游戏数据输出,值越高你的步伐越有可能走2步退1步,好像后面有人拉着你,严重的切枪也切不出来,丢手雷丢不出去,开枪有枪声但子弹却没减少
--tick分为64和128,128的弹道要好一点,tick值由当前服务器决定
(使用VPN选个好节点,能有效缓解匹配/ESEAping、loss、choke太高的问题)
fps_max 100 限制最高fps刷新率为每秒100帧
(能有效降低电脑负担,但配置好的机器推荐设置为300或者更高。如果机器配置差但fps_max设得很高,有可能造成鼠标丢帧,得不偿失)
sensitivity 1 鼠标灵敏度为1
zoom_sensitivity_ratio_mouse 1.2 狙击开镜后的灵敏度为1.2
cl_righthand 0/1 左/右手持枪
disconnect 退出正在连接中的服务器
retry 重连最近一次进过的服务器
exit/quit 退出游戏
服务器常用指令:
mp_restartgame 1 1秒后刷新游戏
mp_autoteambalance 0/1 是否打开自动平衡
mp_maxmoney 16000 最高金钱16000
mp_roundtime 60 死亡竞赛的回合时间60分钟
mp_roundtime_defuse 60 休闲/竞技模式每局时间60分钟
mp_maxrounds 30 休闲/竞技模式最大局数设为30局
mp_startmoney 16000 出生金钱为16000
mp_buytime 15 开局购买时间15秒
mp_buy_anywhere 1 在任意地点都能购买武器
mp_freezetime 0 每局出生原地冻结时间0秒
mp_friendlyfire 0/1 关闭/开启友军伤害
mp_limitteams 2 双方人数差异最多为2人
maxplayers 16 地图最大玩家数(包括机器人)
mp_c4timer 45 C4引爆时间45秒
map de_inferno 切换地图为de_inferno(炼狱小镇)
maps 列出该服务器所有地图
mp_display_kill_assists 0/1 关闭/开启助攻显示
mp_overtime_enable 0/1 是否允许打加时赛
mp_randomspawn 0/1 是否基地为出生点
mp_teammates_are_enemies 0/1 死斗模式/死亡模式
mp_respawn_on_death_t 0/1
mp_respawn_on_death_ct 0/1
sv_password 123 设置服务器密码为123
exec gamemode_模式 切换游戏模式
有关准星设置的指令:
cl_crosshaircolor 颜色(0红1绿2黄3蓝4青5紫)
cl_crosshairsize 4 准星长短
cl_crosshairthinkness 1 准星粗细(1最细)
cl_crosshairalpha 999 准星透明度(越低越透明)
cl_crosshairdot 0/1 准星中间不加/加个点
cl_crosshairstyle 0~5 准星类型(默认、经典静态、经典、经典动态、经典静态、cs1.6版准星)
有关电脑玩家bot的指令:
bot_add 随机增加一个bot
bot_add_ct 增加一名CT
bot_add_t 增加一名T
bot_kick 踢出所有电脑
bot_kill 处死所有电脑
bot_stop 1 bot原地站着不动
bot_freeze 1 冻结所有bot
bot_place 将一个bot放置在此
bot_dont_shoot 1 bot停止射击(但bot被闪会乱开枪)
bot_knives_only bot只能用刀
bot_pistols_only bot只能用手枪
bot_snipers_only bot只能用各种狙
bot_all_weapons bot能用所有武器
bot_difficulty bot难度,数值越高越难
有关个人训练/团队跑图的指令:
sv_cheats 0/1 关闭/开启作弊功能(以下功能只有在sv_cheats为1时才能使用)
bind MOUSE3 “noclip” 绑定“滚轮按钮”为“飞行模式”的快捷键
sv_infiniteammo 0/1 弹药及投掷物有限/无限
sv_grenade_trajectory 0/1 关闭/显示投掷物飞行轨迹
sv_showimpacts 0/1 关闭/显示被击中者hitbox的状态
give weapon_hegrenade 获取一枚手雷
give weapon_flashbang 获取一枚闪光震撼弹
give weapon_smokegrenade 获取一枚烟雾弹
录制POV(个人主视角):
record + 文件名 开始录制
stop 停止录制
playdemo + 文件名 播放POV/demo
观看demo比赛的快捷键
shift+f2 启用demo控制台
x 打开/关闭x光
按住alt 观看投掷物飞行轨迹