OK論壇

 找回密碼
 註冊
查看: 1761|回復: 10

請教關於NPC選項的問題

 關閉 [複製鏈接]

該用戶從未簽到

發表於 2009-7-15 20:32:21 | 顯示全部樓層 |閱讀模式
本帖最後由 csh780729 於 2009-7-18 11:38 PM 編輯

next;
switch (select("醫師髮箍:羽毛帽:話劇面具:草帽")) {
case 1:
  if(countitem(2275) == 0 || countitem(998) < 50 || countitem(733) == 0 || Zeny < 3500) break;
  delitem 2275,1; //頭巾
  delitem 998,50; //鐵
  delitem 733,1; //受損的鑽石
  set Zeny,Zeny - 3500;
  mes "[猜謎商人]";
  mes "嗯嗯 ! 你 .. 有醫師執照嗎 ?! 不過呢,如果你擁有像怪醫黑傑克那樣的醫術的話,沒有執照應該也無所謂啦..";
  mes "嗯,應該沒什麼太大的問題。那,拿去,這個給你。";
  getitem 2273,1; //醫師髮箍
  close;



以上是某官方NPC腳本的其中一段
在case1的最後,以close結尾

請問,怎樣使case1最後可以回到select ??  而不是用close。
回復

使用道具 舉報

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

    連續簽到: 1 天

    [LV.7]常住居民III

    發表於 2009-7-15 20:36:19 | 顯示全部樓層
    goto
    回復 支持 反對

    使用道具 舉報

    該用戶從未簽到

     樓主| 發表於 2009-7-15 20:39:51 | 顯示全部樓層
    goto
    pan00017 發表於 2009-7-15 08:36 PM


    這樣的話...要GOTO去哪裡呢= =?

    除了GOTO沒有另外的寫法嗎...
    回復 支持 反對

    使用道具 舉報

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

    連續簽到: 1 天

    [LV.Master]伴壇終老

    發表於 2009-7-15 20:42:11 | 顯示全部樓層
    A123:
    switch (select("醫師髮箍:羽毛帽:話劇面具:草帽")) {
    case 1:
    ....
    goto A123;
    回復 支持 反對

    使用道具 舉報

    該用戶從未簽到

     樓主| 發表於 2009-7-15 20:47:59 | 顯示全部樓層
    本帖最後由 csh780729 於 2009-7-15 08:52 PM 編輯

    哈哈

    我還以為可以像程式語言那樣...
    select會有loop可以用


    如果只有GOTO
    這樣的話感覺跟menu差不多而已 ...?
    回復 支持 反對

    使用道具 舉報

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

    連續簽到: 1 天

    [LV.Master]伴壇終老

    發表於 2009-7-16 00:59:41 | 顯示全部樓層
    #5
    你 可 用 C++ 的 邏 輯 來 使 用 看 看
    回復 支持 反對

    使用道具 舉報

  • TA的每日心情
    慵懶
    2020-7-2 07:05 PM
  • 簽到天數: 71 天

    連續簽到: 1 天

    [LV.6]常住居民II

    發表於 2009-7-16 01:26:16 | 顯示全部樓層
    在前面設置一個標籤
    再用goto到那個標籤
    回復 支持 反對

    使用道具 舉報

    該用戶從未簽到

     樓主| 發表於 2009-7-16 02:34:30 | 顯示全部樓層


    我想找除了GOTO的方法

    應該 ...  算是比較正常的用法= =
    GOTO大法要等到無計可施才能用



    我在想  既然有select那樣應該就有其他用法...
    不然用menu不就好了...
    回復 支持 反對

    使用道具 舉報

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

    連續簽到: 0 天

    [LV.1]初來乍到

    發表於 2009-7-16 17:11:23 | 顯示全部樓層
    1.         while(1) {
    2.                 switch(select(......)) {
    3.                 case 1:
    4.                         ......
    5.                         break;
    6.                 case2:
    7.                         ......
    8.                 }
    9.         }
    複製代碼
    回復 支持 反對

    使用道具 舉報

    該用戶從未簽到

    發表於 2009-7-16 17:54:49 | 顯示全部樓層
    用goto還要設定額外的標籤
    不建議使用goto
    而且這種寫法太過於老式+繁瑣+容易出錯誤

    用break就可以了
    回復 支持 反對

    使用道具 舉報

    該用戶從未簽到

    發表於 2009-7-16 19:05:43 | 顯示全部樓層
    #10
    有些人只會用 goto 嘛
    出不出錯見仁見智...腳本內容大的話
    我一般是不會使用 goto
    腳本大的話 槽狀式的 switch 感覺是比較格式化的方式 比較不會亂
    回復 支持 反對

    使用道具 舉報

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

    本版積分規則

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

    GMT+8, 2024-5-21 02:11 PM , Processed in 0.052254 second(s), 20 queries , Gzip On.

    Powered by Discuz! X3.4

    Copyright © 2001-2020, Tencent Cloud.

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