OK論壇

 找回密碼
 註冊
查看: 2961|回復: 25

[JA]選項按鈕

 關閉 [複製鏈接]

該用戶從未簽到

發表於 2009-3-22 16:52:09 | 顯示全部樓層 |閱讀模式
本帖最後由 海神夜 於 2009-3-23 11:31 AM 編輯

我想問問喔
menu 的選項按鈕有辦法做出隱藏選項嗎?
就是持有該物品時才會有選項
無該物品時便無隱藏選項

也就是

menu   "aaaaa",A,"bbbbb",B,"ccccc",C,"ddddd",D,"離開",OUT,

有法讓紅色隱藏
一般情情下看不見
除非獲得xxxxx物品才會出現的選項
有辦法這樣作嗎?
回復

使用道具 舉報

  • TA的每日心情

    2013-1-20 02:21 PM
  • 簽到天數: 1 天

    連續簽到: 1 天

    [LV.1]初來乍到

    發表於 2009-3-22 16:58:35 | 顯示全部樓層
    比較麻煩的方法就是設置兩種選項

    第一種
    if( countitem(物品) == 0 )
    menu   "aaaaa",A,"bbbbb",B,"ccccc",C,"離開",OUT,

    第二種
    if( countitem(物品) >= 1 )
    menu   "aaaaa",A,"bbbbb",B,"ccccc",C,"ddddd",D,"離開",OUT,
    回復 支持 反對

    使用道具 舉報

  • TA的每日心情
    慵懶
    2012-6-13 04:41 PM
  • 簽到天數: 9 天

    連續簽到: 0 天

    [LV.3]偶爾看看II

    發表於 2009-3-22 19:08:35 | 顯示全部樓層
    select("aaa:bbb:ccc"+(countitem(物品))?":ddd":"");
    回復 支持 反對

    使用道具 舉報

  • TA的每日心情
    開心
    2019-8-18 04:57 PM
  • 簽到天數: 2148 天

    連續簽到: 1 天

    [LV.Master]伴壇終老

    發表於 2009-3-22 19:34:44 | 顯示全部樓層
    #3
    問 一 下 ' ? ' 的 意 思
    回復 支持 反對

    使用道具 舉報

  • TA的每日心情
    開心
    2021-12-17 05:30 AM
  • 簽到天數: 237 天

    連續簽到: 1 天

    [LV.7]常住居民III

    發表於 2009-3-22 20:19:26 | 顯示全部樓層
    #4
    有點類似if

    if(countitem(物品)){}這種
    回復 支持 反對

    使用道具 舉報

    該用戶從未簽到

     樓主| 發表於 2009-3-22 20:26:09 | 顯示全部樓層
    本帖最後由 海神夜 於 2009-3-22 08:45 PM 編輯

    select("aaa:bbb:ccc"+(countitem(物品))?":ddd":"");

    =   =”我跟這種開關不熟耶
    大多都用menu   "aaaaa",A,"bbbbb",B,"ccccc",C,"ddddd",D,"離開",OUT,
    =  =MENU不能作嗎?

    坦若真的只有select("aaa:bbb:ccc"+(countitem(物品))?":ddd":"");可以作
    那=  =”我底下不就是

    IF(countitem(物品)>1)GOTO XXXX

    然後XXX:
    對話內容............等。這樣?



    題外問:
      判定等級30以上∼等級70以下才能與他對話
      是這樣嗎?
      IF((BASELEVEL>30)||(BASELEVEL>70)) GOTO CCCCCC;

    還是

      IF((BASELEVEL<30)||(BASELEVEL>70)) GOTO CCCCCC;
    這樣?
    因為弄很久都弄不出來
    回復 支持 反對

    使用道具 舉報

    該用戶從未簽到

    發表於 2009-3-22 20:46:53 | 顯示全部樓層
    不是不能做吧...只是用 select("aaa:bbb:ccc"+(countitem(物品))?":ddd":""); 比較簡化
    我也是喜歡用 select 來做
    回復 支持 反對

    使用道具 舉報

  • TA的每日心情
    開心
    2010-9-5 08:41 PM
  • 簽到天數: 1 天

    連續簽到: 0 天

    [LV.1]初來乍到

    發表於 2009-3-22 21:00:11 | 顯示全部樓層
    本帖最後由 yayeshaleio 於 2009-3-22 09:10 PM 編輯
    select("aaa:bbb:ccc"+(countitem(物品))?":ddd":"");

    =   =”我跟這種開關不熟耶
    大多都用menu   "aaaaa",A,"bbbbb",B,"ccccc",C,"ddddd",D,"離開",OUT,
    =  =MENU不能作嗎?

    坦若真的只有sele ...
    海神夜 發表於 2009-3-22 08:26 PM


    記得不管是 menu 還是 select 在選項的顯示部分空字串時,選單中是不會出現該選項的!

    所以也可以利用(<判斷>?"<判斷為是顯示的字串>":"<判斷為否顯示的字串>")在 menu 中製作靈活的選單!

    menu   "aaaaa",A,"bbbbb",B,"ccccc",C,(countitem(<物品ID>) == 0?"":"ddddd"),D,"離開",OUT;

    (紅色為判斷,藍色即判斷為是,綠色即判斷為否)

    當伺服器運行到以上的語法時,會先將 (countitem(<物品ID>) == 0?"":"ddddd") 判斷出來,才完成 menu 的語法!
    (countitem(<物品ID>) == 0?"":"ddddd")
    以上意味著:當玩家身上的指定物品為0時,就返回空字串(""),否則返回ddddd("ddddd")

    還有
    &&
    - 為以及
    ||
    - 為或者
    >
    - 為大於
    <
    - 為小於

    if(基本等級 > 30 || 基本等級 < 70)<指令>
    若將以上的語法翻譯成中文:
    如果 基本等級 大於 30 或者 基本等級 小於 70 則執行 <指令>


    if(基本等級 > 30 && 基本等級 < 70)<指令>
    若將以上的語法翻譯成中文:
    如果 基本等級 大於 30 以及 基本等級 小於 70 則執行 <指令>

    能判斷兩語法的差別嗎?

    評分

    參與人數 1積分 +30 現金 +30 積極性 +30 收起 理由
    pan00017 + 30 + 30 + 30 詳細&gt;&quot;

    查看全部評分

    回復 支持 反對

    使用道具 舉報

    該用戶從未簽到

     樓主| 發表於 2009-3-22 22:20:01 | 顯示全部樓層
    本帖最後由 海神夜 於 2009-3-22 10:28 PM 編輯

    我是能判斷這兩個的差異

    一個次其中一個等級達到即可執行
    一個是基本等級大於30且基本等級小於70才能執行
    可是我怎用都是30等以下也能執行ORZ一直找不出原因

    if ((BaseLevel<30)&&(BaseLevel>=70)) goto NotYet5;                //等級大於30∼等級小於70
    if ((BaseLevel>30)&&(BaseLevel>=70)) goto NotYet5;  //已達到70等

    if ((BaseLevel<30)||(BaseLevel>=70)) goto NotYet5;                //等級大於30∼等級小於70
    if ((BaseLevel>30)||(BaseLevel>=70)) goto NotYet5;  //已達到70等

    =  =這些都不能用
    30等以下還是可以接下任務
    回復 支持 反對

    使用道具 舉報

    該用戶從未簽到

    發表於 2009-3-22 22:43:03 | 顯示全部樓層
    善用{}吧...
    回復 支持 反對

    使用道具 舉報

    該用戶從未簽到

     樓主| 發表於 2009-3-22 23:21:46 | 顯示全部樓層
    =   =你要我括哪裡?
    任務依然可以皆阿
    只是設定30↓無法接任務有問題而已
    if (BaseLevel>=70) goto NotYet5;

    基本上70↓可以接任務
    可是30↓無法皆任務依然還是有問題
    就這樣
    一 一說明就單純善用{}實在不懂要我括哪裡?
    這種回覆感覺和過去的天殺一樣
    回復 支持 反對

    使用道具 舉報

  • TA的每日心情
    開心
    2021-12-17 05:30 AM
  • 簽到天數: 237 天

    連續簽到: 1 天

    [LV.7]常住居民III

    發表於 2009-3-22 23:27:43 | 顯示全部樓層
    你似乎對< . <= . == . >= . >還不是很熟悉
    以數學來說 a<b跟 b>a是相同的
    但((BaseLevel<30)&&(BaseLevel>=70)) 你卻說成  等級大於30∼等級小於70
    似乎不合現實
    回復 支持 反對

    使用道具 舉報

    該用戶從未簽到

     樓主| 發表於 2009-3-22 23:35:36 | 顯示全部樓層
    本帖最後由 海神夜 於 2009-3-22 11:37 PM 編輯

    a<b跟 b>a是相同的=  =這個我是知道拉

    但是=  =? 
    1以上>30以下無法用不是
    (BaseLevel>30)

    30以上<70以下不就是
    (BaseLevel<30)(BaseLevel>70)

    轉成這種就腦殘了
    一         一?這樣有誤????
    要怎樣改???
    回復 支持 反對

    使用道具 舉報

    該用戶從未簽到

    發表於 2009-3-22 23:36:09 | 顯示全部樓層
    if (BaseLevel<30) {mes "你目前等級未達30,無法接此任務"; close; end; }

    這樣還會有錯?
    回復 支持 反對

    使用道具 舉報

    該用戶從未簽到

     樓主| 發表於 2009-3-22 23:38:38 | 顯示全部樓層
    if (BaseLevel
    lendlice0001 發表於 2009-3-22 11:36 PM

    =  =這樣條件就只有一個阿
    我要兩個條件阿
    回復 支持 反對

    使用道具 舉報

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

    本版積分規則

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

    GMT+8, 2024-6-4 05:25 AM , Processed in 0.052029 second(s), 22 queries , Gzip On.

    Powered by Discuz! X3.4

    Copyright © 2001-2020, Tencent Cloud.

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