OK論壇

 找回密碼
 註冊
查看: 2645|回復: 2

[函數] getd / setd 搭配 array 之用法

[複製鏈接]
  • TA的每日心情
    開心
    2015-3-16 06:27 AM
  • 簽到天數: 421 天

    連續簽到: 1 天

    [LV.9]以壇為家II

    發表於 2013-5-29 09:04:33 | 顯示全部樓層 |閱讀模式
    本帖最後由 f003002 於 2013-5-29 11:02 AM 編輯

    先看這篇教學 http://goo.gl/9OimE

    getd和setd用在array中很方便
    以下是個簡單的例子
    1. setarray $@monster1[0],1087,1112,1115,1150,1157,1159,1190;
    2. setarray $@monster2[0],1685,1785,2068,1708,1990,1039,1115;
    3. setarray $@monster3[0],1115,1650,1649,1648,1112,1646,1874;

    4. set .@level,2;

    5. //從 $@monster2[]中隨機抽出一數值,若數值等於1115,則判斷式成立
    6. if(getd("$@monster"+.@level+"["+rand(getarraysize(getd("$@monster"+.@level)))+"]")==1115)
    7. ..........
    複製代碼
    有點複雜嗎,帶你一步步拆解,由於要標記顏色,所以我把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是不太好閱讀的,引號括號太多、
    但就是方便使用,如果要用,註解寫清楚一點,造福自己也造福別人

    有問題歡迎提出
    謝謝大家
    回復

    使用道具 舉報

  • TA的每日心情
    擦汗
    2017-9-18 09:52 PM
  • 簽到天數: 771 天

    連續簽到: 2 天

    [LV.10]以壇為家III

    發表於 2013-5-29 12:43:29 | 顯示全部樓層
    寫的好詳細喔
    拆開來讀好像比較好理解耶!!!
    回復 支持 反對

    使用道具 舉報

  • TA的每日心情
    慵懶
    2022-4-25 10:53 AM
  • 簽到天數: 532 天

    連續簽到: 1 天

    [LV.9]以壇為家II

    發表於 2013-5-30 11:41:04 | 顯示全部樓層
    fanny 發出教學了 {:soso_e179:} 幫你支持一下
    不拆解的話應該很多人會認為這是 "天書"
    回復 支持 反對

    使用道具 舉報

    您需要登錄後才可以回帖 登錄 | 註冊

    本版積分規則

    Archiver|手機版|小黑屋|OK討論區

    GMT+8, 2024-3-29 06:55 PM , Processed in 0.067470 second(s), 19 queries , Gzip On.

    Powered by Discuz! X3.4

    Copyright © 2001-2020, Tencent Cloud.

    快速回復 返回頂部 返回列表