引用 | 編輯
JrC
2012-05-27 23:49 |
樓主
▼ |
||
x6
很久都沒教大家一些AMXX知識了而今次主要教一些比較實用的知識 可以用在其他程式語言 c++ c 等等 今天要教大家的是 2D Array , 迴圈(For Loop),Boolean 2D Array: 大家有時看見sma中含有 new xx[200] new xx[33] 等等 這都是1D Array 而2D Array就是 new [33][200] new [2][64] 這些就是2D Array 相信以上都能夠用肉眼分別 看看以下的圖(用小畫家能夠方便我= =) 相信大家都看見1, 2, 3, 4吧 然後1,2,3,4各自有64 new xxx[4][64] 這xxx就是上圖的東西了 簡單來說 xxx[4][64] 就是有 4個64空間 就等於 new x[64] new xx[64] new xxx[64] new xxxx[64] 打個比喻 有4個同學有儲物櫃 當然很公平 , 4個同學各自的儲物櫃只能夠放滿64個物件 如果不明白 是很正常的, 因為我都花了很多時間才明白= = 例子: 我想取得id的金錢, IP, 名字 new information[3][100] get_user_name(id, information[0], 99) get_user_ip(id, information[1], 99, 1) format(information[2], 99, "%d", cs_get_user_money(id)) 這樣就能夠使用1個Array取得3個資料 迴圈(For Loop): 大家都有可以見過以下的東西吧 for(new i = 1; i <= get_maxplayers(); i++) for(new i = 0;i < get_maxplayers(); i++) 那可能新手有1個問題 這個是什麼= =?? 這個就是迴圈 通常在沒有對象的Function出現 register_event("HLTV", "event_round_start", "a", "1=0", "2=0") register_logevent("logevent_round_start", 2, "1=Round_Start") register_logevent("logevent_round_end", 2, "1=Round_End") 等等都是沒有對象的Function 再說一說原理 for(new i = 0; i <= get_maxplayers() ; i++) 在迴圈開始時 i 的數值是 0 然後 中間的是 如果 i是小於或者等於 伺服器總人數(多是32) 最後 i 就會 + 1 然後 i 的數值 = 1; i 又是小於和等於32 i又+ 1了 到最後 當i 是32 時 i 都是小於或等於32 i 變成33了 當i變成33時 33 已經大過32 i不會再+ 這就運行了32次 進階: AMXX和C / C++類似語言都會設立 Break Continue 這兩個功能 這兩個功能和它表面的意思一樣 Break = 破壞迴圈, 不再循環 Continue = 繼續循環 例子: for(new i = 0; i < get_maxplayers();i++) if(!is_user_connected(i)) break; 如果他未進入伺服器 破壞迴圈 for(new i = 0; i < get_maxplayers();i++) if(is_user_connected(i)) continue; 如果他進入了伺服器 繼續迴圈 有人可能會問 1 <=32 for(new i = get_maxplayers(); i >= 1;i--) 這樣行嗎? 答案: 你可以試試= = Boolean: 在sma / C/C++類似語言都會看見 True / False 很容易使用 首先 new bool:xx[33] 就能設立 xx是一個boolean if(cs_get_user_team(id) == CS_TEAM_T) xx[id] = true else if(cs_get_user_team(id) == CS_TEAM_CT) xx[id] = false 如果玩家是T xx[id] 就是 true 如果玩家是CT xx[id] = false if(xx[id]) 這句解如果xx[id]是True if(!xx[id]) 這句解如果xx[id]是False 註: 當Boolean是True時 電腦會將Boolean讀取的數值為1 當Boolean是False時 電腦會將Boolean讀取的數值為0 教學完滿結束 x7
|
引用 | 編輯
ccw111
2012-05-30 12:38 |
4樓
▲ ▼ |
good
x個同學有x個格子的比喻和2D array很貼切,我也想不出其他比喻了 明白了之後要用3D array儲存字串應該就不會是難事了( 不過聽人說,Pawn最多只能定義到3D的array ) x0 |
引用 | 編輯
zhouqiao654
2012-10-13 23:54 |
9樓
▲ ▼ |
学过C语言的知道这是数组,呵呵
x0 |
引用 | 編輯
qwe5939421
2013-01-06 11:13 |
10樓
▲ ▼ |
明白了之後要用3D array儲存字串應該就不會是難事了
x0 |
引用 | 編輯
li951739257
2013-02-08 15:13 |
12樓
▲ ▼ |
好像有學過這樣的
x0 |
引用 | 編輯
qq1285977648
2013-02-12 10:54 |
13樓
▲ ▼ |
哎!威望不够!
新创用户 x0 |
引用 | 編輯
Marchillus
2013-02-17 17:13 |
14樓
▲ ▼ |
Array空間用來存數據是很好用的....
x0 |
引用 | 編輯
qiaoqiao520
2013-05-23 10:51 |
15樓
▲ ▼ |
这篇很实用,不过对新手压力很大,不过要想进阶这个是必须学的.......
x0 |
引用 | 編輯
marcolao168
2014-01-05 20:20 |
19樓
▲ ▼ |
謝謝教學, 我還以為你之後也不再出了
感動, 花花 x0 |
引用 | 編輯
iamboss123
2014-01-05 20:25 |
20樓
▲ ▼ |
沒看懂 感覺好難的
可能是我能力不夠 但是還是得支持一下樓主的 x0 |