OK論壇

 找回密碼
 註冊
查看: 1737|回復: 9

JA 小任務型腳本疑問

 關閉 [複製鏈接]
  • TA的每日心情
    開心
    2013-11-11 02:13 AM
  • 簽到天數: 14 天

    連續簽到: 1 天

    [LV.3]偶爾看看II

    發表於 2009-3-30 22:29:41 | 顯示全部樓層 |閱讀模式
    JA
    私服版號: JA
    問題內容: 腳本問題
    本帖最後由 mygirl30229 於 2009-3-31 06:16 PM 編輯

    最近開始要幫私服加些任務NPC所以開始練習..

    可是每個寫出來的npc問題都一樣  通常我是請玩家去xx道具n個

    然後回來找npc  可是npc 都不會判別..玩家身上是否道具已經蒐集齊全..

    就是..還是對話內容還是跟第1次對話相同...

    其中1個npc內容如下  這個算是比較簡略版的 所以貼這個!!


    pay_fild04.gat,21,170,5   script   愛莎    877,{

    if (gh==1) goto nm1;
    if (yy==1 && countitem(9001) > 1 ) goto tt1;
    if (ee==1) goto gg1;


    mes "[愛莎]";
    mes "你好啊,旅人~";
    mes "我是愛莎,你怎麼會經過這裡";
    mes "你也是來抓波利的嗎?";
    set gh,1;
    next;
    menu "不是的,我是來這打寶賺錢的",L1,"是啊,波利真的好可愛~!",L2;


    nm1:
    mes "[愛莎]";
    mes "你好啊,旅人~";
    mes "我們又見面啦!";
    mes "你也是來抓波利的嗎?";
    menu "不是的,我是來這打寶賺錢的",L1,"是啊,波利真的好可愛~!",L2;


    L1:
    mes "[愛莎]";
    mes "...,打寶賺錢?";
    mes "怎麼這樣,波利們這麼可愛";
    mes "為什麼你要打他啊..!?";
    mes "你的行為,真是太令人討厭了ˋˊ";
    close;


    L2:
    mes "[愛莎]";
    mes "是嗎?";
    mes "你也跟我一樣喜歡波利啊?";
    mes "真想抓一隻回家呢...";
    next;
    menu "那就抓啊!",P1,"無聊..妳嫌著沒事做喔?",P2;


    P1:
    mes "[愛莎]";
    mes "我也很想抓啊!!";
    mes "可是我就是抓不到!";
    mes "青蘋果也只下3個";
    mes "再不成功..就沒機會了..";
    next;
    menu "讓我來幫幫你吧",q1,"我想~!我也抓不到ˊˋ",q2;


    q1:
    mes "[愛莎]";
    mes "真的嗎?";
    mes "那就萬事拜託樓^^!";
    mes "假如你抓到了~我會很感謝你的!!";
    mes "這3個是波利們最愛的青蘋果!!";
    mes "交給你嘍~~!!加油~~";
    set yy,1;
    getitem 619,3;
    close;


    q2:
    mes "[愛莎]";
    mes "我想也是";
    mes "抓寵物本來就不是件簡單的事";
    close;


    P2:
    mes "[愛莎]";
    mes "你走開辣";
    mes "講話這麼兇";
    mes "我又沒有得罪你";
    mes "豬頭!!";
    close;


    tt1:
    mes "[愛莎]";
    mes "哇!";
    mes "你真的抓到啦~~!!";
    mes "太好了,真的非常的謝謝你^^";
    set ee,1;
    set zeny,zeny+100000;
    set BaseExp,BaseExp+5000;
    set JobExp,JobExp+3200;
    close;


    gg1:
    mes "[愛莎]";
    mes "上次真的非常的謝謝你^^!";
    mes "波利真的好可愛";
    close;


    }
    回復

    使用道具 舉報

  • TA的每日心情
    慵懶
    2012-10-4 02:22 AM
  • 簽到天數: 177 天

    連續簽到: 5 天

    [LV.7]常住居民III

    發表於 2009-3-30 23:28:27 | 顯示全部樓層
    countitem(9001) > 1
    這個不是判定了嗎?
    回復 支持 反對

    使用道具 舉報

  • TA的每日心情
    開心
    2013-11-11 02:13 AM
  • 簽到天數: 14 天

    連續簽到: 1 天

    [LV.3]偶爾看看II

     樓主| 發表於 2009-3-30 23:35:52 | 顯示全部樓層
    本帖最後由 mygirl30229 於 2009-3-30 11:36 PM 編輯

    我覺得很奇妙,,,沒道理啊...  我開下去測就是不行

    其他腳本問題幾乎都跟這個腳本一樣= ="

    好奇妙啊..

    這個腳本真的沒寫錯嗎??

    我對自己寫的腳本都抱著很大的懷疑
    ↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓
         真的沒問題嗎

    回復 支持 反對

    使用道具 舉報

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

    連續簽到: 1 天

    [LV.7]常住居民III

    發表於 2009-3-31 00:57:21 | 顯示全部樓層
    #3
    判斷須更嚴謹

    想清楚判斷什麼

    善用 ||  &&
    回復 支持 反對

    使用道具 舉報

    該用戶從未簽到

    發表於 2009-3-31 01:59:51 | 顯示全部樓層
    你有幾個問題...也算是 bug

    1.你的 第一個判斷式是 if (gh==1) goto nm1;
     只要你 nm1==1 ,你後面的兩個判斷式永遠不會執行,所以你不能把這個判斷式放在最上面第一個判斷!

    2.邏輯閘,使用的是 || 或者 &&
     你的第二個判斷式是 yy==1 & countitem(9001) > 1
     化為簡式:A & B
     解釋為:A 與 B 做位元邏輯and
     我知道不好懂,所以簡單說就是:你在判斷式裡,通常會使用 || 或者 && ,極少數會使用 & 或者 |

    3.只要照個你的判斷式來跑,青蘋果 會被無限拿。
     因為第一個判斷式的關係,nm1==1 就跳到 nm1 標籤→選第二項 跳到 L2 標籤→選第一項 跳到 P1 標籤→選第一項 跳到 q1 標籤→得到 3 個 青蘋果
     一直重複上面動作,青蘋果就可以無限拿了!(這就算 bug 了吧)

    4.你的腳本裡 set zeny,zeny+100000;
     我記得需要寫成:set Zeny,Zeny+100000;
     因為 Zeny 是常數,印象中有分大小寫


    題外話:
    set BaseExp,BaseExp+5000;
    set JobExp,JobExp+3200;
    以上兩行寫成這樣就好:getexp 5000,3200;
    回復 支持 反對

    使用道具 舉報

  • TA的每日心情
    開心
    2013-11-11 02:13 AM
  • 簽到天數: 14 天

    連續簽到: 1 天

    [LV.3]偶爾看看II

     樓主| 發表於 2009-3-31 06:11:58 | 顯示全部樓層
    你有幾個問題...也算是 bug

    1.你的 第一個判斷式是 if (gh==1) goto nm1;
     只要你 nm1==1 ,你後面的兩個判斷式永遠不會執行,所以你不能把這個判斷式放在最上面第一個判斷!

    2.邏輯閘,使用的是 || 或者 && ...
    lendlice0001 發表於 2009-3-31 01:59 AM


    回樓上2位大大

    大大您說的其實我都懂,只是..請問您說的問題1我該如何解決呢..這我還是不會

    而您的問題2事實上我是打 2個& 是因為我貼上論壇時他強制簡化為1個&我也不知道位什麼

    第3點,我懂懂您再說們麼,..應該是 問題1解決解決了吧!?

    最後4點感謝阪大交我如何簡化腳本..  我看的教學語法都比較..  沒有  這麼簡化吧..摸所中..
    回復 支持 反對

    使用道具 舉報

  • TA的每日心情
    開心
    2013-11-11 02:13 AM
  • 簽到天數: 14 天

    連續簽到: 1 天

    [LV.3]偶爾看看II

     樓主| 發表於 2009-3-31 06:25:34 | 顯示全部樓層
    6# mygirl30229

    另外在補充一下..我是不想讓玩家
    第1次跟這個NPC對話的第1視窗
    和後面的第2次 或 第N次 都一樣 所以才加入這個的

    if (gh==1) goto nm1;


    mes "[愛莎]";
    mes "你好啊,旅人~";
    mes "我是愛莎,你怎麼會經過這裡";
    mes "你也是來抓波利的嗎?";
    set gh,1;
    next;
    menu "不是的,我是來這打寶賺錢的",L1,"是啊,波利真的好可愛~!",L2;



    nm1:
    mes "[愛莎]";
    mes "你好啊,旅人~";
    mes "我們又見面啦!";
    mes "你也是來抓波利的嗎?";
    menu "不是的,我是來這打寶賺錢的",L1,"是啊,波利真的好可愛~!",L2;
    回復 支持 反對

    使用道具 舉報

  • TA的每日心情
    開心
    2012-8-14 07:29 AM
  • 簽到天數: 7 天

    連續簽到: 1 天

    [LV.3]偶爾看看II

    發表於 2009-3-31 10:04:30 | 顯示全部樓層
    可以set 不同變數吧 set gh2 if (gh> 1)跳轉
    回復 支持 反對

    使用道具 舉報

    該用戶從未簽到

    發表於 2009-3-31 11:45:30 | 顯示全部樓層
    #6
    if (ee==1) goto gg1;
    if (yy==1 && countitem(9001) > 1 ) goto tt1;
    if (gh==1) goto nm1;

    判斷式換位置就好了呀

    你的 變數ee 、yy 都是對話後期出現的變數,就該放到比較前面去呀

    原因是:如果你沒有對話到後面,以我現在排序來說,前面兩行都不會執行呀
    回復 支持 反對

    使用道具 舉報

  • TA的每日心情
    開心
    2013-11-11 02:13 AM
  • 簽到天數: 14 天

    連續簽到: 1 天

    [LV.3]偶爾看看II

     樓主| 發表於 2009-3-31 18:16:20 | 顯示全部樓層
    我懂了...所以說! if 也是有順序之分的

    我就是不知道這點才會一直錯...

    謝謝大大教我~ 非常感謝^^!
    回復 支持 反對

    使用道具 舉報

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

    本版積分規則

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

    GMT+8, 2024-5-22 01:54 PM , Processed in 0.072742 second(s), 21 queries , Gzip On.

    Powered by Discuz! X3.4

    Copyright © 2001-2020, Tencent Cloud.

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