陣列有兩種用法
一種就像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就差不多了
其他的就看程式的設計了...