OK論壇

 找回密碼
 註冊
查看: 2305|回復: 6

試戴型製作NPC疑問

[複製鏈接]
  • TA的每日心情

    2018-12-16 03:25 PM
  • 簽到天數: 336 天

    連續簽到: 1 天

    [LV.8]以壇為家I

    發表於 2016-3-22 16:23:29 | 顯示全部樓層 |閱讀模式
    EA
    私服版號: EA14934
    問題內容: 腳本問題
    本帖最後由 i780112 於 2016-3-24 11:09 AM 編輯

    是這樣的, 前幾天下載了這個"試戴及製作NPC"

    1. -        shop        quest_shop1        -1,512:100        //生成商店,請無視這行
    2. amatsu,46,127,5,        script        武器製作        441,{ //自行設定位子,外觀
    3.         set @i,0;
    4.         mes "[武器製作]";
    5.         mes "請按照購買物品似的選擇";
    6.         mes "材料足夠後將直接製作";
    7.         mes "材料不足將直接提示材料";
    8.         mes "請^FF0000一次選購一種^000000武器";
    9.         mes "請放心選購^FF3399 查看武器時,不會扣除相應Zeny^000000";
    10.         callshop "quest_shop1",1;
    11.         npcshopattach "quest_shop1";
    12.         end;

    13. OnBuyItem:
    14.         
    15.         if(.BuildQuest) {
    16.                 for(set .e,0; !compare(getarg(.e+1)+"","Zeny"); set .e,.e+2) {}
    17.                 npcshopadditem "quest_shop1",getarg(.e+2),getarg(.e)*compare(getarg(.e+1)+"","SZeny");
    18.                 setarray .Shop[.i],getarg(.e+2);
    19.                 set .i,.i+1;
    20.                 if(.i%20==0){sleep(1);}
    21.                 goto Quest_Setup;
    22.         }
    23.         if(.Shop[@i]!=@bought_nameid) for(set @i,1; 1; set @i,@i+1) if(.Shop[@i]==@bought_nameid) { set .i,@i; callsub Quest_Setup; }
    24.         mes "- 製作 ^FF0000"+getitemname(@bought_nameid)+"^000000";
    25.         mes "- 請準備好下面材料!";
    26.         for(set @i,0; !compare(getarg(@i+1)+"","Zeny"); set @i,@i+2) mes " ^0066CC" + getitemname(getarg(@i)) + "^000000 x " + ((countitem(getarg(@i))>=getarg(@i+1))? "":"") + "" + getarg(@i+1) + " [^009900" + countitem(getarg(@i)) + "^000000/^FF6600" + getarg(@i+1) + "^000000]"+( countitem(getarg(@i))>=getarg(@i+1)?" ( ^D2691E已完成^000000 )":" ( ^999999未完成^000000 )");
    27.         if(getarg(@i)) mes " ^FF1493需要製作費用^000000 " + ((Zeny>=getarg(@i))? "^FF0000":"") + "" + getarg(@i) + "^000000 "+((Zeny>=getarg(@i))? "( ^D2691E已完成^000000 )":"( ^999999金錢不足^000000 )");
    28.         mes "- 在交換條件裡寫著, 我將會給你:^0000FF";
    29.         for(set @i,@i+2; getarg(@i+1,0); set @i,@i+2) mes getarg(@i+1) + " 個 " + getitemname(getarg(@i));
    30.         switch(select("- 1、製作 ^FF0000"+getitemname(@bought_nameid)+"^000000:- 2、結束對話")) {
    31.                 case 1:
    32.                         for(set @i,0; !compare(getarg(@i+1)+"","Zeny"); set @i,@i+2) if(countitem(getarg(@i)) < getarg(@i+1)) {
    33.                                 next;
    34.                                 mes "[武器製作]";
    35.                                 mes "你身上有 ^FF0000" + countitem(getarg(@i)) + "^000000 個 ^FF0000" + getitemname(getarg(@i)) + "^000000,我需要 ^009900" + getarg(@i+1) + "^000000 個";
    36.                                 mes "請補齊 ^FF0000" + (getarg(@i+1)-countitem(getarg(@i))) + "^000000 個 ^FF0000" + getitemname(getarg(@i)) + "^000000 再來找我.";
    37.                                 emotion 53;
    38.                                 close;
    39.                         }
    40.                         if(Zeny < getarg(@i)) {
    41.                                 next;
    42.                                 mes "[武器製作]";
    43.                                 mes "你身上攜帶的金錢不足.";
    44.                                 mes "請補齊 ^FF0000" + (getarg(@i)-Zeny) + "Zeny差額再來找我^000000.";
    45.                                 emotion 53;
    46.                                 close;
    47.                         }
    48.                         for(set @i,0; !compare(getarg(@i+1)+"","Zeny"); set @i,@i+2) delitem getarg(@i),getarg(@i+1);
    49.                         set Zeny,Zeny-getarg(@i);
    50.                         for(set @i,@i+2; getarg(@i+1,0); set @i,@i+2) getitem getarg(@i),getarg(@i+1);
    51.                         specialeffect2 154;
    52.                         emotion 21;
    53.                         if (compare(getarg(@i,0)+"","announce")) announce strcharinfo(0) + " 獲得了 " + getitemname(@bought_nameid) + "!",bc_all;
    54.                         close;
    55.                 case 2:
    56.                         emotion 12;
    57.                         close;
    58.         }
    59. OnInit:
    60.         npcshopitem "quest_shop1",0,0;
    61.         npcshopdelitem "quest_shop1",0,0;
    62.         set .BuildQuest,1;
    63.         set .i,1;
    64. Quest_Setup:
    65.         switch(.i) {
    66.                 default: set .BuildQuest,0; set .e,0; set .i,0; end;
    67.                 case 1: callsub OnBuyItem,7022,1,7023,10,724,5,7002,100,714,1,100000,"SZeny",1237,1,"announce";
    68.                 case 2: callsub OnBuyItem,7018,1,7019,1,7020,1,7021,1,714,1,100000,"SZeny",1138,1,"announce";
    69.                 case 3: callsub OnBuyItem,7017,2,7024,10,1008,3,609,50,714,1,100000,"SZeny",1169,1,"announce";
    70.                 case 4: callsub OnBuyItem,7295,30,969,10,999,50,714,10,100000,"SZeny",1141,1,"announce";
    71.                 case 5: callsub OnBuyItem,7294,30,969,10,999,50,714,10,100000,"SZeny",1526,1,"announce";
    72.            
    73.         }
    74. }
    複製代碼


    因為這個腳本很方便, 可以點NPC直接觀看列表跟製作物品

    現在我遇到了瓶頸

    由於我的東西有很多種類型

    例如:  我要將雙手劍, 單手劍, 鈍器.... 等等分開展示

    但是我又想把他集中在一個NPC內, 然後用標籤分開

    例如

    menu "雙手劍",A,"單手劍",B,"鈍器",C;

    選擇ABC顯示不同的SHOP列表

    但是不管我怎麼試, 都沒辦法讓他在同一個NPC內作用

    卡在Onbuy標籤很久不知道怎麼去解決

    因為一個NPC就只能用一個Onbuy標籤

    也沒辦法用callfunc

    不知道能不能在Onbuy標籤加入判斷(屢改屢敗)

    不知道有沒有高手能夠幫幫忙指點迷津...




    回復

    使用道具 舉報

  • TA的每日心情

    2017-11-30 09:19 AM
  • 簽到天數: 126 天

    連續簽到: 1 天

    [LV.7]常住居民III

    發表於 2016-3-22 17:22:45 | 顯示全部樓層
    ra內建 quest_shop已經有這功能

    要不要先試試?

    https://github.com/rathena/rathe ... ests/quest_shop.txt

    下次貼腳本 請用 [code][/code]
    回復 支持 反對

    使用道具 舉報

  • TA的每日心情

    2018-12-16 03:25 PM
  • 簽到天數: 336 天

    連續簽到: 1 天

    [LV.8]以壇為家I

     樓主| 發表於 2016-3-22 18:49:31 | 顯示全部樓層
    礙於一些問題

    我只能用EA

    沒辦法用RA..
    回復 支持 反對

    使用道具 舉報

  • TA的每日心情

    2018-12-16 03:25 PM
  • 簽到天數: 336 天

    連續簽到: 1 天

    [LV.8]以壇為家I

     樓主| 發表於 2016-3-22 18:49:56 | 顯示全部樓層
    礙於一些問題

    我只能用EA

    沒辦法用RA..
    回復 支持 反對

    使用道具 舉報

  • TA的每日心情
    開心
    2023-12-30 04:16 AM
  • 簽到天數: 1322 天

    連續簽到: 1 天

    [LV.10]以壇為家III

    發表於 2016-3-23 00:03:45 | 顯示全部樓層
    本帖最後由 sinya 於 2016-3-23 12:05 AM 編輯
    i780112 發表於 2016-3-22 06:49 PM
    礙於一些問題

    我只能用EA


    這很簡單創一隻有選單的npc  然後把選單後 加 doevent "npc名稱::On標籤名稱"
    這樣就行了,然後那些標籤就插入每一個npc的開頭
    回復 支持 反對

    使用道具 舉報

  • TA的每日心情
    擦汗
    2018-8-18 01:15 PM
  • 簽到天數: 1517 天

    連續簽到: 1 天

    [LV.Master]伴壇終老

    發表於 2016-3-23 21:48:21 | 顯示全部樓層
    本帖最後由 game1993 於 2016-3-23 09:50 PM 編輯

    新版製作系統V3.1修改成選單
    回復 支持 反對

    使用道具 舉報

  • TA的每日心情

    2018-12-16 03:25 PM
  • 簽到天數: 336 天

    連續簽到: 1 天

    [LV.8]以壇為家I

     樓主| 發表於 2016-3-24 11:09:22 | 顯示全部樓層
    可以了

    謝謝大家的幫忙
    回復 支持 反對

    使用道具 舉報

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

    本版積分規則

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

    GMT+8, 2024-3-29 01:37 PM , Processed in 0.047006 second(s), 21 queries , Gzip On.

    Powered by Discuz! X3.4

    Copyright © 2001-2020, Tencent Cloud.

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