UID317719
帖子
精華
主題
積分14503
現金
積極性
威望
違規
熱心
推廣次數
閱讀權限85
註冊時間2012-11-12
在線時間 小時
最後登錄1970-1-1
TA的每日心情 | 開心 2015-3-16 06:27 AM |
---|
簽到天數: 421 天 連續簽到: 1 天 [LV.9]以壇為家II
|
本帖最後由 f003002 於 2013-5-29 11:02 AM 編輯
先看這篇教學 http://goo.gl/9OimE
getd和setd用在array中很方便
以下是個簡單的例子- setarray $@monster1[0],1087,1112,1115,1150,1157,1159,1190;
- setarray $@monster2[0],1685,1785,2068,1708,1990,1039,1115;
- setarray $@monster3[0],1115,1650,1649,1648,1112,1646,1874;
- set .@level,2;
- //從 $@monster2[]中隨機抽出一數值,若數值等於1115,則判斷式成立
- if(getd("$@monster"+.@level+"["+rand(getarraysize(getd("$@monster"+.@level)))+"]")==1115)
- ..........
複製代碼 有點複雜嗎,帶你一步步拆解,由於要標記顏色,所以我把code貼到引用中
Step 1,程式碼說..如果紅色這段等於1115,則判斷式成立,但紅色這段是什麼意思呢,我們來拆解吧 if(getd("$@monster"+.@level+"["+rand(getarraysize(getd("$@monster"+.@level)))+"]")==1115)
Step 2,括弧一層層的就像洋蔥皮,我們要先看洋蔥的核心,就是下面紅色的部分 getd("$@monster"+.@level+"["+rand(getarraysize(getd("$@monster"+.@level)))+"]")
getd("$@monster"+.@level+"["+rand(getarraysize( getd("$@monster"+"2") ))+"]")
getd("$@monster"+.@level+"["+rand(getarraysize( getd("$@monster2") ))+"]")
getd("$@monster"+.@level+"["+rand(getarraysize( $@monster2 ))+"]")
看出來了嗎,這四行是一樣的
Step3,我們知道 getarraysize($@monster2) 等於7,化簡一下 getd("$@monster"+.@level+"["+rand(7)+"]")
getd("$@monster"+ "2" +"["+rand(7)+"]")
getd( "$@monster2[" +rand(7)+"]")
Step4,假設rand(7)的結果是 5 getd( "$@monster2[" +"5"+"]")
getd( "$@monster2[5]" )
getd、setd可以把變數寫成string的形式
到這裡應該沒問題了吧,就是取得變數$@monster[5]中的值
這種很多層的洋蔥code是不太好閱讀的,引號括號太多、
但就是方便使用,如果要用,註解寫清楚一點,造福自己也造福別人
有問題歡迎提出
謝謝大家
|
|