阵列有两种用法
一种就像1楼说的,分配位置
33个长度的阵列
是因为HL内定最多玩家是32人
玩家 id 分别是 1~32
再加上 id=0 的世界(例如摔伤就是从world给的攻击)
例如说ZP插件里的 bool:g_isbot[33]
如果 id=3 的 player 是 BOT
那么 g_isbot[3]=true
余此类推
另一种是用来储存字串的
read_argv 的功能是,取得某个引数储存到指定字串里
arg[32] 指的是一个可以存31个字元的字元阵列
所以 read_argv 第三个值是31
再来 read_argv 的第一个值
则是指函数本身的引数序号
复制程式
register_clcmd("say","say_cheese")
...
public say_cheese(id)
{
new said[191]
read_args(1, said, 190)
}
你在这个插件执行的时候
按 Y 键说话说出 "Hellow World!"
就会变成 said = "Hellow World!"
一般来说定义长度为 33 的阵列都是用来储存玩家状态用的
像是精验模组的等级,或是ZP模组的'是不是丧尸'等等
而定义成32或191或其他奇怪的数字的多半都是储存字串用的
一般玩家名称或武器名称不会太长就用32就差不多了
其他的就看程式的设计了...