5151 發表於 2014-11-12 00:59:28

寶箱劇惡 不知道為什不能使用 哪位大大能幫忙我嘛

本帖最後由 5151 於 2014-11-12 01:01 AM 編輯

//===== Hercules Script ======================================
//= Buwaya Cave
//===== By: ==================================================
//= Euphy
//===== Current Version: =====================================
//= 1.0
//===== Description: =========================================
//=
//= Defeat Buwaya in his cave.
//= Part of the "Secret in the Woods" quest.
//===== Additional Comments: =================================
//= 1.0 First version.
//============================================================

1@ma_c        mapflag        src4instance
//============================================================
/*

        腳本來源 : Hercules SVN
        腳本修改 : Claymoreaki
        腳本名稱 : 寶箱巨鱷
        完成日期 : 20140809
        更新記錄 :

                  2014-08-08
                  •加入 冷卻顯示
                  •加入 預設架構
                  •修改 部分 判斷變數
                  •修改 部分 判斷語法
                  •修改 部分 顯示文字
                  •排版 部分 顯示文字
                  •修改 部分語法 讓流程較順暢
                  •備註 完成副本時 入口 會有傳送點 可直接傳出去

                   2014-08-09
                  •修改 部分語法
                  •修正 通過副本時 地圖怪物 直接全部死亡


                   2014-08-15
                  •修改 部分原本冷卻
                  •修改 部分原本判斷


                  •備註 正式版本 Ver002 (參照官方預設 會傳送到寶箱巨鱷房間)
                  •備註 原本是每30秒左右 會傳送寶箱巨鱷房間 我改成 每5分鐘左右 傳送         (可自由調整)   搜索OnTimer300000: 由小而大 往下調整 共四個 OnTimer

                  •備註 相關語法 在右手邊 我是直接在後面多一個0 所以是30秒 變5分鐘              ===========>>   1@ma_c,97,74,0        script        #box_call        HIDDEN_WARP_NPC,50,50,{
                  •備註 下面這條是 傳送到寶箱鱷魚的房間 若不想傳送到房間內 可直接打上//      ===========>>   //warp instance_mapname("1@ma_c"),33,112;//萬惡的傳送 寶箱巨鱷的房間

                  •此版本是直接無視 quest_db 冷卻設置 變成直接在 腳本上判斷 冷卻時間



                  •使用注意說明
                  •下面限制變數 有中文說明
                  •預設是秒數的 60秒 = 1分鐘   300秒 = 5分鐘   3600秒 = 1小時


*/
//------------------------------------------------------------------

-        script        test_bcConfig        -1,{
OnInit:
set $@cgsyyqqbc,21600;                        //固定 冷卻時間暫定21600秒(6小時)
set $@cgsbc,7200;                        //固定 任務時間預設   7200秒(2小時)
set $@bcend,180;                        //固定 進場時間預設    180秒(3分鐘)
set $@lvxbc,140;                        //限制 基本等級預設    140級
set $@pabc,1;                                //限制 至少人數預設      2位測試時 我先改1位
        end;
}

//ma_fild02,312,317,5        script        守衛#buwaya_cave        4_MAL_SOLDIER,{   <<==== 原本的地圖和座標 我是暫時改成中央 方便測試

prontera,150,183,5        script        守衛#buwaya_cave        4_MAL_SOLDIER,{

                mes "^0000FF[寶箱巨鱷副本說明]^000000";
                mes "基本等級 : ^FF0000LV "+$@lvxbc+" ^000000 以上";
                mes "組隊人數 : ^FF0000"+$@pabc+"個隊員 ^000000以上";
                mes "任務時間 : ^FF0000"+($@cgsbc)/3600+"小時內 ^000000完成";
                mes "進場時間 : ^FF0000"+($@bcend)/60+"分鐘內 ^000000進入";
                mes "冷卻時間 : ^FF0000"+($@cgsyyqqbc)/3600+"個小時^000000 固定";
                next;
                mes "^0000FF[寶箱巨鱷副本說明]^000000";
                mes "如果進場後 ^FF0000任務失敗^000000";
                mes "如果進場後 ^FF0000中途離開^000000";
                mes "如果進場後 ^FF0000中途離隊^000000";
                mes "如果進場後 ^FF0000中途斷線^000000";
                mes "如果進場後 ^FF0000任務完成^000000";
                mes "會直接進行 ^FF0000副本冷卻^000000";
                next;


                if ((timesbc-gettimetick(1)) <= 0) goto ggyy3;
                if ((timesbc-gettimetick(1)) > 0) goto ggyy2;
                goto ggyy3;



ggyy2:
                mes "[守衛]";
                mes "^FF0000寶箱巨鱷副本 冷卻中^000000";
                mes "^7100DC寶箱巨鱷副本 冷卻時間^000000 : ^FF0000"+($@cgsyyqqbc)/3600+"^000000 小時";
                mes "^0000FF寶箱巨鱷副本 冷卻剩餘^000000 :";
                mes "^FF0000"+(timesbc-gettimetick(1))/3600%24+"^000000 小時 ^FF0000"+(timesbc-gettimetick(1))/60%60+"^000000 分 ^FF0000"+(timesbc-gettimetick(1))%60%60+"^000000 秒";
                close;
ggyy3:






if (checkweight(1201,1) == 0) {
                mes "你帶太多東西囉";
                mes "請整理身上不要的道具";
                close;
        }

        if (MaxWeight - Weight < 10000) {
                mes "你超重囉";
                mes "請整理身上不要的道具";
                close;
        }


if (BaseLevel < $@lvxbc) {
                mes "[守衛]";
                mes "為了你的生命安全著想,";
                mes "請先等到Lv^FF0000"+$@lvxbc+"^000000後再來挑戰吧";
                close;
        }


        /*
        --- 前置任務 --- 若需要 請把 / * 和 * / 刪除
        if (malaya_bakona1 < 7 && malaya_bakona2 < 15) {
                mes "[守衛]";
                mes "我們要去討伐寶箱巨鱷";
                mes "可惜目前的我們沒有能力";
                close;
        }
        */


        set .@party_id,getcharid(1);
        set .@p_name$,getpartyname(.@party_id);
       

        if (!.@party_id) {
                mes "[守衛]";
                mes "請加入隊伍再來挑戰副本";
                mes "至少要 ^FF0000"+$@pabc+" 個人^000000 以上的隊伍";
                close;
        }

        if (!instance_check_party(.@party_id,$@pabc)) {        //限制 $@pabc 人以上
                mes "[守衛]";
                mes "你的隊伍成員呢?";
                mes "至少要 ^FF0000"+$@pabc+" 個人^000000 以上的隊伍";
                close;
        }
       
       
                mes "[守衛]";
                mes "這個地方很危險。請回去吧!";
                mes "沒事不要在這附近徘徊,很危險的。";
                next;
                while(1) {
                        switch(select("副本說明:申請副本:進入副本:取消對話")) {
                        case 1:
                                mes "[守衛]";
                                mes "基本等級 : ^FF0000LV "+$@lvxbc+" ^000000 以上";
                                mes "組隊人數 : ^FF0000"+$@pabc+"個隊員 ^000000以上";
                                mes "任務時間 : ^FF0000"+($@cgsbc)/3600+"小時內 ^000000完成";
                                mes "進場時間 : ^FF0000"+($@bcend)/60+"分鐘內 ^000000進入";
                                mes "冷卻時間 : ^FF0000"+($@cgsyyqqbc)/3600+"個小時^000000 固定";
                                next;
                                mes "[守衛]";
                                mes "如果進場後 ^FF0000任務失敗^000000";
                                mes "如果進場後 ^FF0000中途離開^000000";
                                mes "如果進場後 ^FF0000中途離隊^000000";
                                mes "如果進場後 ^FF0000中途斷線^000000";
                                mes "如果進場後 ^FF0000任務完成^000000";
                                mes "會直接進行 ^FF0000副本冷卻^000000";
                                next;
                                break;
                               
                case 2:

                if (getcharid(0) != getpartyleader(.@party_id,2)) {
                mes "[守衛]";
                mes "^0000FF只有隊長 可以 申請副本^000000";
                mes "^FF0000其他隊員 無法 申請副本^000000";
                close;
        }


                       

                                set .@md_name$,"寶箱巨鱷";
                                set .@instance,instance_create(.@md_name$,.@party_id);
                                if (.@instance < 0) {
                                        mes "[守衛]";
                                        mes "^7100DC一個隊伍 最多只能 進行 一個副本^000000";
                                        mes "^0000FF你的隊伍 已經申請 ^FF0000"+.@md_name$+" 副本^000000";
                                        close;
                                }
                                if (instance_attachmap("1@ma_c",.@instance) == "") {
                                        mes "[守衛]";
                                        mes "^0000ff"+.@md_name$+"^000000 - 申請副本失敗";
                                        mes "^FF0000如果無法 申請副本 請重新 創立隊伍^000000";
                                        instance_destroy(.@instance);
                                        close;
                                }




                                set .@bakubc_time, checkquest(4229,PLAYTIME);       
                                if (.@bakubc_time != -1) {
                                if (checkquest(4229) != -1) erasequest 4229;
                                if (checkquest(4229) == -1) setquest 4229;
                                } else {
                                setquest 4229;
                                }

                       

                                instance_set_timeout $@cgsbc,$@bcend,.@instance;
                                instance_init(.@instance);
                                mes "[守衛]";
                                mes "^7100DC寶箱巨鱷 副本任務^000000";
                                mes "^0000FF申請副本 順利成功^000000";
                                mes "隊伍準備好 想要挑戰的話 再找我";
                                close;
                                break;


        case 3:

                                if( has_instance("1@ma_c") == "" ) {
                                mes "[守衛]";
                                mes "^7100DC寶箱巨鱷 副本任務^000000";
                                mes "^FF0000尚未申請 無法進行^000000";
                                mes "^0000FF申請之後 在來找我^000000";
                                close;

                                } else {
                                set .@bakubc_time, checkquest(4229,PLAYTIME);       
                                if (.@bakubc_time != -1) {
                                if (checkquest(4229) != -1) erasequest 4229;
                                if (checkquest(4229) == -1) setquest 4229;
                                } else {
                                setquest 4229;
                                }

                       
                                mapannounce "prontera","隊伍: "+getpartyname(.@party_id)+" 的 勇者: "+strcharinfo(0)+" 開始挑戰 "+.@md_name$+" 副本",bc_map,"0x00ff99"; //FW_NORMAL 12 0 0
                                set timesbc,gettimetick(1)+$@cgsyyqqbc;
                                warp "1@ma_c",64,51;
                                end;
                        }

               



                        case 4:
                                mes "[守衛]";
                                mes "那就等你考慮好 再來找我";
                                close;
                                break;
}                       
        }
                }








1@ma_c,33,112,0        script        #damage        HIDDEN_WARP_NPC,7,7,{
        end;
OnInstanceInit:
        initnpctimer;
        disablenpc instance_npcname("#damage");
        end;
OnTimer1000:
        enablenpc instance_npcname("#damage");
        specialeffect EF_POISONHIT;
        end;
OnTimer2000:
        stopnpctimer;
        initnpctimer;
        disablenpc instance_npcname("#damage");
        end;
OnTouch:
        percentheal -10,-10;
        sc_start SC_BLOODING,60000,0;
        sc_start SC_POISON,60000,0;
        end;
}

1@ma_c,29,110,5        script        被綁架的村民#1        4_F_BARYO_OLD,{
        mes "[被綁架的村民]";
        mes "寶箱巨鱷到處綁架人";
        mes "很多人都被抓來這邊";
        next;
        mes "[被綁架的村民]";
        mes "你可以幫助我 離開這裡嗎?";
        switch(select("可以:取消")) {
        case 1:
                next;
                mes "[被綁架的村民]";
                mes "謝謝你們 真的是好人";
                mes "那我就先 離開這裡了";
                donpcevent instance_npcname("#box_mob_call")+"::OnEnable";
                close2;
                disablenpc instance_npcname("被綁架的村民#1");
                end;
        case 2:
                next;
                mes "[被綁架的村民]";
                mes "為什麼不幫助我呢 ..";
                close;
        }
        end;
OnInstanceInit:
        disablenpc instance_npcname("被綁架的村民#1");
        end;
OnEnable:
        enablenpc instance_npcname("被綁架的村民#1");
        donpcevent instance_npcname("#box_mob_call")+"::OnDisable";
        end;
}

1@ma_c,36,110,5        script        被綁架的村民#2        4_M_BARYO_OLD,{
        mes "[被綁架的村民]";
        mes "我知道寶箱巨鱷的弱點....";
        next;
        switch(select("告訴我:你真的知道?")) {
        case 1:
                mes "[被綁架的村民]";
                mes "寶箱巨鱷 其實有一個弱點 ...";
                mes "你有沒有看到 我背後的牆壁";
                mes "如果你攻擊那裏 寶箱巨鱷會感到疼痛";
                mes "然後會把你吐了出去... 就可以討伐了";
                next;
                mes "[被綁架的村民]";
                mes "就在我們身後的牆壁上";
                mes "趕快攻擊寶箱巨鱷的弱點";
                disablenpc instance_npcname("被綁架的村民#2");
                close;
        case 2:
                mes "[被綁架的村民]";
                mes "什麼!?";
                mes "你不相信我?";
                mes "只因為我被困在這邊?";
                close;
        }
        end;
OnInstanceInit:
        disablenpc instance_npcname("被綁架的村民#2");
        end;
OnEnable:
        enablenpc instance_npcname("被綁架的村民#2");
        end;
}

1@ma_c,3,3,0        script        #box_mob_call        HIDDEN_WARP_NPC,1,1,{
        end;
OnInstanceInit:
        setcell instance_mapname("1@ma_c"),30,118,35,118,cell_shootable,1; //custom
        disablenpc instance_npcname("#box_mob_call");
        end;
OnEnable:
        enablenpc instance_npcname("#box_mob_call");
        set .@label$, instance_npcname("#box_mob_call")+"::OnMyMobDead";
        set .@map$, instance_mapname("1@ma_c");
        monster .@map$,30,118,"寶箱巨鱷的弱點",2333,1,.@label$;
        monster .@map$,35,118,"寶箱巨鱷的弱點",2333,1,.@label$;
        end;
OnDisable:
        killmonster instance_mapname("1@ma_c"),instance_npcname("#box_mob_call")+"::OnMyMobDead";
        disablenpc instance_npcname("#box_mob_call");
        end;
OnMyMobDead:
        if (mobcount(instance_mapname("1@ma_c"),instance_npcname("#box_mob_call")+"::OnMyMobDead") < 1)
                donpcevent instance_npcname("#box_out")+"::OnEnable";
        end;
}

1@ma_c,38,118,0        script        #box_out        WARPNPC,2,2,{
OnInstanceInit:
OnDisable:
        disablenpc instance_npcname("#box_out");
        end;
OnEnable:
        enablenpc instance_npcname("#box_out");
        end;
OnTouch:
        set .@x, rand(1,20) + 97;
        set .@y, rand(1,20) + 74;
        warp instance_mapname("1@ma_c"),.@x,.@y;
        end;
}

1@ma_c,97,74,0        script        #box_call        HIDDEN_WARP_NPC,50,50,{
        end;
OnInstanceInit:
        disablenpc instance_npcname("#box_call");
        initnpctimer;
        end;
OnTimer300000:
        mapannounce instance_mapname("1@ma_c"),"寶箱巨鱷:我會把你放進 我的寶箱裡面",bc_map,"0x00ff99"; //FW_NORMAL 12 0 0
        // Should execute OnTimer33000, but client doesn't render the effect fast enough.
        for(set .@i,1; .@i<=9; set .@i,.@i+1)
                donpcevent instance_npcname("#yunobi"+.@i)+"::OnEnable";
        end;
OnTimer330000:
        donpcevent instance_npcname("#box_out")+"::OnDisable";
        donpcevent instance_npcname("#box_mob_call")+"::OnDisable";
        donpcevent instance_npcname("被綁架的村民#1")+"::OnEnable";
        donpcevent instance_npcname("被綁架的村民#2")+"::OnEnable";
        end;
OnTimer340000:
        enablenpc instance_npcname("#box_call");
        end;
OnTimer350000:
        stopnpctimer;
        initnpctimer;
        disablenpc instance_npcname("#box_call");
        end;
OnTouch:
        specialeffect2 EF_GUIDEDATTACK;
        warp instance_mapname("1@ma_c"),33,112;//萬惡的傳送 寶箱巨鱷的房間
        end;
OnDisable:
        stopnpctimer;
        disablenpc instance_npcname("#box_call");
        end;
}

1@ma_c,97,74,0        script        #yunobi1        HIDDEN_WARP_NPC,{
        end;
OnInstanceInit:
        hideonnpc instance_npcname(strnpcinfo(0));
        end;
OnEnable:
        specialeffect EF_MAPPILLAR2;
        end;
}
1@ma_c,97,94,0        duplicate(#yunobi1)        #yunobi2        HIDDEN_WARP_NPC
1@ma_c,117,94,0        duplicate(#yunobi1)        #yunobi3        HIDDEN_WARP_NPC
1@ma_c,117,74,0        duplicate(#yunobi1)        #yunobi4        HIDDEN_WARP_NPC
1@ma_c,117,54,0        duplicate(#yunobi1)        #yunobi5        HIDDEN_WARP_NPC
1@ma_c,97,54,0        duplicate(#yunobi1)        #yunobi6        HIDDEN_WARP_NPC
1@ma_c,77,54,0        duplicate(#yunobi1)        #yunobi7        HIDDEN_WARP_NPC
1@ma_c,77,74,0        duplicate(#yunobi1)        #yunobi8        HIDDEN_WARP_NPC
1@ma_c,77,94,0        duplicate(#yunobi1)        #yunobi9        HIDDEN_WARP_NPC

1@ma_c,1,1,0        script        #bunshin        HIDDEN_WARP_NPC,{
        end;
OnInstanceInit:
        initnpctimer;
        end;
OnTimer58000:
        mapannounce instance_mapname("1@ma_c"),"寶箱巨鱷:實在忍無可忍了,我們就走著瞧!",bc_map,"0x00ff99"; //FW_NORMAL 12 0 0
        end;
OnTimer61000:
        mapannounce instance_mapname("1@ma_c"),"寶箱巨鱷:這是 ... ",bc_map,"0x00ff99"; //FW_NORMAL 12 0 0
        end;
OnTimer62000:
        mapannounce instance_mapname("1@ma_c"),"寶箱巨鱷:這是 ... 我的!",bc_map,"0x00ff99"; //FW_NORMAL 12 0 0
        end;
OnTimer63000:
        mapannounce instance_mapname("1@ma_c"),"寶箱巨鱷:這是 ... 我的 ... 必殺的",bc_map,"0x00ff99"; //FW_NORMAL 12 0 0
        end;
OnTimer64000:
        mapannounce instance_mapname("1@ma_c"),"寶箱巨鱷:這是 ... 我的 ... 必殺的! 分身術!!!",bc_map,"0x00ff99"; //FW_NORMAL 12 0 0
        end;
OnTimer65000:
        set .@label$, instance_npcname("#bunshin")+"::OnMyMobDead";
        set .@map$, instance_mapname("1@ma_c");
        areamonster .@map$,112,89,122,99,"寶箱巨鱷的分身",2332,1,.@label$;
        areamonster .@map$,112,49,122,59,"寶箱巨鱷的分身",2332,1,.@label$;
        areamonster .@map$,72,49,82,59,"寶箱巨鱷的分身",2332,1,.@label$;
        areamonster .@map$,72,89,82,99,"寶箱巨鱷的分身",2332,1,.@label$;
        end;
OnTimer66000:
        mapannounce instance_mapname("1@ma_c"),"寶箱巨鱷:你害怕了嗎?",bc_map,"0x00ff99"; //FW_NORMAL 12 0 0
        end;
OnTimer105000:
        killmonster instance_mapname("1@ma_c"),instance_npcname("#bunshin")+"::OnMyMobDead";
        stopnpctimer;
        initnpctimer;
        end;
OnMyMobDead:
        if (mobcount(instance_mapname("1@ma_c"),instance_npcname("#bunshin")+"::OnMyMobDead") < 1) {
                stopnpctimer;
                initnpctimer;
        }
        end;
OnDisable:
        stopnpctimer;
        killmonster instance_mapname("1@ma_c"),instance_npcname("#bunshin")+"::OnMyMobDead";
        disablenpc instance_npcname("#bunshin");
        end;
}

1@ma_c,2,2,0        script        #buwaya_con        HIDDEN_WARP_NPC,{
        end;
OnInstanceInit:
        areamonster instance_mapname("1@ma_c"),90,67,104,81,"寶箱巨鱷",2319,1,instance_npcname("#buwaya_con")+"::OnMyMobDead";
        end;
OnMyMobDead:
        set .@map$, instance_mapname("1@ma_c");
        if (mobcount(.@map$,instance_npcname("#buwaya_con")+"::OnMyMobDead") < 1) {
                donpcevent instance_npcname("#box_call")+"::OnDisable";
                donpcevent instance_npcname("#bunshin")+"::OnDisable";
                donpcevent instance_npcname("#exit_mob")+"::OnDisable";
                donpcevent instance_npcname("#cave_out")+"::OnEnable";
                erasequest 4229;
                set cooltimebc,gettimetick(1)+$@bcxdgg;
                announce "[寶箱巨鱷副本] "+ getpartyleader(getcharid(1)) +" 帶領的隊伍 ["+ strcharinfo(1) +"] 已經通過了副本",0;
                announce "[副本任務提示] 由於完成任務 剛進來的入口 現在已有 出口的傳送點了",0;
                killmonster instance_mapname("1@ma_c"),instance_npcname("#exit_mob")+"::OnMyMobDead";




        }
        end;
}

1@ma_c,3,3,0        script        #exit_mob        HIDDEN_WARP_NPC,{
        end;
OnInstanceInit:
        initnpctimer;
        end;
OnTimer20000:
        set .@label$, instance_npcname("#exit_mob")+"::OnMyMobDead";
        set .@map$, instance_mapname("1@ma_c");
        if (mobcount(.@map$,.@label$) < 60)
                set .@amount,10;
        else
                set .@amount,1;
        areamonster .@map$,43,58,47,60,"寶箱巨鱷的海草",2331,.@amount,.@label$;
        areamonster .@map$,43,58,47,60,"寶箱巨鱷的蛋",2329,.@amount,.@label$;
        areamonster .@map$,73,81,93,101,"寶箱巨鱷的海草",2331,.@amount,.@label$;
        areamonster .@map$,110,97,116,103,"寶箱巨鱷的海草",2331,.@amount,.@label$;
        areamonster .@map$,59,63,63,67,"寶箱巨鱷的海草",2331,.@amount,.@label$;
        areamonster .@map$,73,55,77,59,"寶箱巨鱷的海草",2331,.@amount,.@label$;
        areamonster .@map$,103,69,107,73,"寶箱巨鱷的海草",2331,.@amount,.@label$;
        areamonster .@map$,108,45,122,63,"寶箱巨鱷的海草",2331,.@amount,.@label$;
        areamonster .@map$,73,81,93,101,"寶箱巨鱷的蛋",2329,.@amount,.@label$;
        areamonster .@map$,110,97,116,103,"寶箱巨鱷的蛋",2329,.@amount,.@label$;
        areamonster .@map$,59,63,63,67,"寶箱巨鱷的蛋",2329,.@amount,.@label$;
        areamonster .@map$,73,55,77,59,"寶箱巨鱷的蛋",2329,.@amount,.@label$;
        areamonster .@map$,103,69,107,73,"寶箱巨鱷的蛋",2329,.@amount,.@label$;
        areamonster .@map$,108,45,122,63,"寶箱巨鱷的蛋",2329,.@amount,.@label$;
        areamonster .@map$,103,65,107,73,"寶箱巨鱷的海草",2331,.@amount,.@label$;
        areamonster .@map$,108,43,122,63,"寶箱巨鱷的小兵",2330,.@amount,.@label$;
        stopnpctimer;
        initnpctimer;
        end;
OnDisable:
        stopnpctimer;
        killmonster instance_mapname("1@ma_c"),instance_npcname("#exit_mob")+"::OnMyMobDead";
        disablenpc instance_npcname("#exit_mob");
        end;
OnMyMobDead:
        end;
}

1@ma_c,28,57,0        script        #cave_out        WARPNPC,2,2,{
OnInstanceInit:
        disablenpc instance_npcname("#cave_out");
        end;
OnEnable:
        enablenpc instance_npcname("#cave_out");
        end;
OnTouch:
        set cooltimebc,gettimetick(1)+$@bcxdgg;
        warp "prontera",153,150;
        end;
}

sinya 發表於 2014-11-19 15:06:42

簡單來講 這是牛頭不對馬嘴 的組合,不用看了 跟本不能跑
頁: [1]
查看完整版本: 寶箱劇惡 不知道為什不能使用 哪位大大能幫忙我嘛