getd / setd 搭配 array 之用法
本帖最後由 f003002 於 2013-5-29 11:02 AM 編輯先看這篇教學 http://goo.gl/9OimE
getd和setd用在array中很方便
以下是個簡單的例子setarray $@monster1,1087,1112,1115,1150,1157,1159,1190;
setarray $@monster2,1685,1785,2068,1708,1990,1039,1115;
setarray $@monster3,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" )
getd、setd可以把變數寫成string的形式
到這裡應該沒問題了吧,就是取得變數$@monster中的值
這種很多層的洋蔥code是不太好閱讀的,引號括號太多、
但就是方便使用,如果要用,註解寫清楚一點,造福自己也造福別人
有問題歡迎提出
謝謝大家
寫的好詳細喔
拆開來讀好像比較好理解耶!!!
fanny 發出教學了 {:soso_e179:} 幫你支持一下
不拆解的話應該很多人會認為這是 "天書"
頁:
[1]