OK論壇

 找回密碼
 註冊
查看: 2713|回復: 2

道館問題

 關閉 [複製鏈接]
  • TA的每日心情
    擦汗
    2021-2-21 11:25 PM
  • 簽到天數: 63 天

    連續簽到: 1 天

    [LV.6]常住居民II

    發表於 2013-5-18 03:19:34 | 顯示全部樓層 |閱讀模式
    EA
    私服版號: SeAr_1.7.277Big5
    問題內容: 腳本問題
    本帖最後由 塵霄 於 2013-5-18 09:22 PM 編輯

    近期弄了個腳本,但是實際測試後發現無法使用
    能幫我看看 哪裡有問題嗎
    進入道館後
    點NPC 他說會
    您不是開館的人,請叫0來開館


    prontera,152,119,6        script        道館傳送員        734,{        callfunc "ModF_Script";        end;        OnInit:

    //====================================================//
    //--- Script 執行時的相關設定 , 請各伺服器依情況斟酌 ---

    //----- 道館的報名費用 (預設 10000000 Zeny) -----
            set $@ModFZenyC,1000000;

    //----- 隊員的參加費用 (預設 5000000 Zeny) -----
            set $@ModFZenyP,500000;

    //----- 道館的參加人數 (預設 10人) -----
            set $@ModFPlayer,12;

    //----- 道館的等級限制 (預設 99等) ----- [0 = 不限制]
            set $@ModFBaseLv,0;

    //----- 道館的職業限制 (預設 初新者 , 轉生初新者) ----- [提示:請填入正確的職業代碼以免出錯]
            //setarray $@ModFClass[1],0,4001; // < 如果您不想要有職業限制的話請在前面加上"//"即可 >

    //----- 道館的怪物編號 (預設 台灣正式伺服器 MVP 魔物 34 隻) -----
            setarray $@ModFModID[1],1038,1039,1046,1059,1086,1087,1112,1115,1147,1150,
                                 1157,1159,1190,1251,1252,1273,1312,1373,1389,1418,1492,1511,1583,1630,1688,2156;

    //----- 道館的休息關數 -----
            setarray $@ModFGuanRests[1],5;

    //----- 道館的召怪模式 (預設 0) ----- [0 = 打死才召下一隻 , 1 = 一次全部召出]
            set $@ModFSummon,1;

    //----- 道館每關的怪物數量 (預設 10關) ----- [提示:它的尺寸將會決定"道館的總關數"]
            setarray $@ModFGuanMod[1],1,1,1,1,1,1,1,1,1,1,2;

    //----- 道館是否開放商店給挑戰者購買 (預設 1) ----- [0 = 全程開放 , 1 = 休息時間才開放]
            //set $@ModFOpenShop,0;

    //====================================================//
    //--- 道館獎勵員的相關設定 , 請各伺服器依情況斟酌 ---

    //----- 道館獎勵的獎金設定 -----
    //----- 獎勵金額最少能夠取得多少 (預設 100萬 Zeny) (單位:萬元)
            //set $@ModFReMinZeny,80;

    //----- 獎勵金額最多能夠取得多少 (預設 500萬 Zeny) (單位:萬元)
            //set $@ModFReMaxZeny,300;

    //----- 道館獎勵的商城點數設定 -----
    //----- 獎勵商城點數最少能夠取得多少 (預設 10 點)
            //set $@ModFReMinCash,70;

    //----- 獎勵商城點數最多能夠取得多少 (預設 30 點)
            //set $@ModFReMaxCash,150;

    //----- 道館獎勵的獎品設定 -----
    //----- 獎勵獎品能夠取得的物品
            //setarray $@ModFReItemAID[1],12186,607,608,2658,5013,5357,12246,5597;

    //----- 獎勵獎品能夠取得的數量
            //setarray $@ModFReItemNum[1],1,700,400,1,1,1,2,1;
    //====================================================//
    //--- Script 執行時的特殊設定 , 請各伺服器勿亂做更改 ---

            set $@ModFModIDSize,(getarraysize($@ModFModID)-1);
            set $@ModFItemSize,(getarraysize($@ModFReItemAID)-1);
            set $@ModFGuanSize,(getarraysize($@ModFGuanMod)-1);
    }

    //====================================================//
    //--- 道館販賣物品的相關設定 , 請各伺服器依情況斟酌 ---

            //shop        道館商人#0        -1,663:100,501:-1,502:-1,503:-1,504:-1,505:-1,506:-1,525:-1,610:-1,645:-1,656:-1,657:-1,662:-1,715:-1,716:-1,717:-1,1065:-1,1750:-1,1751:-1,1752:-1,1753:-1,13200:-1,13201:-1,13202:-1,13250:-1,13251:-1;

    //====================================================//
    //--- 道館地圖屬性的相關設定 , 請各伺服器依情況斟酌 ---

    //--- < 如果要關閉地圖屬性請在前面加上"//"即可 > ---

    //----- 怪物不會給予經驗值 -----

    06guild_01.gat        mapflag        nomemo        dummy
    06guild_01.gat        mapflag        noteleport        dummy
    06guild_01.gat        mapflag        nosave        SavePoint
    06guild_01.gat        mapflag        nopenalty        dummy
    06guild_01.gat        mapflag        nobranch        dummy
    06guild_01.gat        mapflag        noloot        dummy

    06guild_02.gat        mapflag        nomemo        dummy
    06guild_02.gat        mapflag        noteleport        dummy
    06guild_02.gat        mapflag        nosave        SavePoint
    06guild_02.gat        mapflag        nopenalty        dummy
    06guild_02.gat        mapflag        nobranch        dummy
    06guild_02.gat        mapflag        noloot        dummy

    06guild_03.gat        mapflag        nomemo        dummy
    06guild_03.gat        mapflag        noteleport        dummy
    06guild_03.gat        mapflag        nosave        SavePoint
    06guild_03.gat        mapflag        nopenalty        dummy
    06guild_03.gat        mapflag        nobranch        dummy
    06guild_03.gat        mapflag        noloot        dummy

    06guild_04.gat        mapflag        nomemo        dummy
    06guild_04.gat        mapflag        noteleport        dummy
    06guild_04.gat        mapflag        nosave        SavePoint
    06guild_04.gat        mapflag        nopenalty        dummy
    06guild_04.gat        mapflag        nobranch        dummy
    06guild_04.gat        mapflag        noloot        dummy

    06guild_05.gat        mapflag        nomemo        dummy
    06guild_05.gat        mapflag        noteleport        dummy
    06guild_05.gat        mapflag        nosave        SavePoint
    06guild_05.gat        mapflag        nopenalty        dummy
    06guild_05.gat        mapflag        nobranch        dummy
    06guild_05.gat        mapflag        noloot        dummy

    06guild_06.gat        mapflag        nomemo        dummy
    06guild_06.gat        mapflag        noteleport        dummy
    06guild_06.gat        mapflag        nosave        SavePoint
    06guild_06.gat        mapflag        nopenalty        dummy
    06guild_06.gat        mapflag        nobranch        dummy
    06guild_06.gat        mapflag        noloot        dummy

    06guild_07.gat        mapflag        nomemo        dummy
    06guild_07.gat        mapflag        noteleport        dummy
    06guild_07.gat        mapflag        nosave        SavePoint
    06guild_07.gat        mapflag        nopenalty        dummy
    06guild_07.gat        mapflag        nobranch        dummy
    06guild_07.gat        mapflag        noloot        dummy

    06guild_08.gat        mapflag        nomemo        dummy
    06guild_08.gat        mapflag        noteleport        dummy
    06guild_08.gat        mapflag        nosave        SavePoint
    06guild_08.gat        mapflag        nopenalty        dummy
    06guild_08.gat        mapflag        nobranch        dummy
    06guild_08.gat        mapflag        noloot        dummy



    guild_room.gat        mapflag        nomemo        dummy
    guild_room.gat        mapflag        noteleport        dummy
    guild_room.gat        mapflag        nosave        SavePoint
    guild_room.gat        mapflag        nopenalty        dummy
    guild_room.gat        mapflag        nobranch        dummy



    //====================================================//

    //--- 此行開始到最後的段落 , 請各伺服器勿亂做更改 ---

    function        script        ModF_Script        {

            if ( getcharid(1) == 0 ) {
                    mes "[道館傳送員]";
                    mes "對不起,您沒有加入任何隊伍!";
                    mes "無法參加挑戰賽。";
                    close;
            }
            if ( BaseLevel < $@ModFBaseLv ) {
                    mes "[道館傳送員]";
                    mes "對不起,您的等級不足!";
                    mes "無法參加挑戰賽。";
                    mes " ";
                    mes "等級限制:^FF0000"+$@ModFBaseLv+"^000000 等!";
                    close;
            }
            for ( set .@CheckClass,1; .@CheckClass < (getarraysize($@ModFClass)+1); set .@CheckClass,.@CheckClass+1 ) {
                    if ( class == $@ModFClass[.@CheckClass] ) {
                            mes "[道館傳送員]";
                            mes "對不起,^FF0000"+jobname(class)+"^000000無法參加挑戰賽!";
                            close;
                    }
            }

    //====================================================//

            mes "[道館傳送員]";
            mes "您好,我是道館傳送員。";
            mes "請問有需要什麼服務嗎?";
            next;
            select("我要參加挑戰!");
            for ( set @MnF,1; @MnF <= 5; set @MnF,@MnF+1 ) {
                    if ( getmapusers("06guild_0"+@MnF) == 0 ) {
                            set $@ModFPID[@MnF],0;
                    }
            }
            for ( set @MnF,1; @MnF <= 5; set @MnF,@MnF+1 ) {
                    if ( getcharid(1) == $@ModFPID[@MnF] ){
                            mes "[道館傳送員]";
                            mes "您是 [^FF0000"+getpartyname(getcharid(1))+"^000000] 的隊員吧!";
                            mes "參加前須付^FF0000"+$@ModFZenyP+"^000000的參加費唷!";
                            next;
                            if (select("報名參加挑戰!","不小心點到!")==2) {
                                    mes "[道館傳送員]";
                                    mes "那您以後別在那麼不小心哩!";
                                    close;
                            }
                            if ( $@ModFStart[@MnF] == 1 ) {
                                    mes "[道館傳送員]";
                                    mes "您的隊友已經開始挑戰了,";
                                    mes "請稍後或加入其他隊伍另外報名參加!";
                                    close;
                            }
                            if ( zeny < $@ModFZenyP ) {
                                    mes "[道館傳送員]";
                                    mes "對不起,您沒有足夠的金錢!";
                                    close;
                            }
                            if ( getmapusers("06guild_0"+@MnF) >= $@ModFPlayer ) {
                                    mes "[道館傳送員]";
                                    mes "隊伍 [^FF0000"+getpartyname(getcharid(1))+"^000000] 參加的人數已滿,";
                                    mes "請稍後或加入其他隊伍另外報名參加!";
                                    close;
                            }
                            set zeny,zeny - $@ModFZenyP;
                            warp "06guild_0"+@MnF,49,47;
                            end;
                    }
            }

    //====================================================//

            mes "[道館傳送員]";
            mes "您和您的隊伍要報名參加挑戰賽嗎?";
            mes "參加前須付^FF0000"+$@ModFZenyC+"^000000的報名費唷!";
            next;
            if (select("報名參加挑戰!","不小心點到!")==2) {
                    mes "[道館傳送員]";
                    mes "那您以後別在那麼不小心哩!";
                    close;
            }
            if ( Zeny < $@ModFZenyC ) {
                    mes "[道館傳送員]";
                    mes "對不起,您沒有足夠的金錢!";
                    close;
            }
            for ( set @MnF,1; @MnF <= 5; set @MnF,@MnF+1 ) {
                    if ( getmapusers("06guild_0"+@MnF) == 0 ) {
                            enablenpc "道館裁判#"+@MnF;
                            //enablenpc "道館商人#"+@MnF;
                            killmonsterall "06guild_0"+@MnF;
                            set Zeny,Zeny - $@ModFZenyC;
                            set $@ModFStart[@MnF],0;
                            set $@ModFPID[@MnF],getcharid(1);
                            set $ModFCID[@MnF],getcharid(0);
                            set $@GuanShu[@MnF],1;
                            announce "請 ["+getpartyname($@ModFPID[@MnF])+"] 隊伍的隊員,找 [道館傳送員] !",15;
                            warp "06guild_0"+@MnF,49,47;
                            end;
                    }
            }
            mes "[道館傳送員]";
            mes "所有場地都有隊伍在挑戰中,";
            mes "請您稍後再試,謝謝!";
            close;

    }

    //====================================================//

    06guild_01,50,49,4        script        道館裁判#1        758,{ callfunc "ModF_Referee",1; }
    06guild_02,50,49,4        script        道館裁判#2        758,{ callfunc "ModF_Referee",2; }
    06guild_03,50,49,4        script        道館裁判#3        758,{ callfunc "ModF_Referee",3; }
    06guild_04,50,49,4        script        道館裁判#4        758,{ callfunc "ModF_Referee",4; }
    06guild_05,50,49,4        script        道館裁判#5        758,{ callfunc "ModF_Referee",5; }

    //====================================================//

    function        script        ModF_Referee        {

            set @MnF,getarg(0);
            mes "[道館裁判]";
            if ( $@GuanShu[@MnF] == 0 ) {
                    mes "因伺服器重新讀取腳本,";
                    mes "我將把費用全額退給您!";
                    next;
                    if ( getcharid(0) == $ModFCID[@MnF] ) {
                            set zeny,zeny + $@ModFZenyC;
                    } else {
                            set zeny,zeny + $@ModFZenyP;
                    }
                    warp "SavePoint",0,0;
                    close;
            }
            if ( getcharid(0) == $ModFCID[@MnF] ) {
                    mes "您不是報名參加挑戰賽的人!";
                    close;
            }
            mes "您好,我是道館裁判。";
            mes "請問有需要為您服務嗎?";
            next;
            switch(select("開始挑戰!","不小心點到!",($@GuanShu[@MnF] != 1?"":"放棄挑戰!"))) {
            case 1:
                    if ( getmapusers("06guild_0"+@MnF) >= $@ModFPlayer ) {
                            mes "[道館裁判]";
                            mes "場地人數超過^FF0000"+$@ModFPlayer+"^000000人,禁止開始!";
                            close;
                    }
                    set $@ModFStart[@MnF],1;
                    set $@ModFQuantity[@MnF],$@ModFGuanMod[$@GuanShu[@MnF]];
                    set $@ModFCheck[@MnF],$@ModFQuantity[@MnF];
                    disablenpc "道館裁判#"+@MnF;
                    if ( $@ModFOpenShop ) {
                            disablenpc "道館商人#"+@MnF;
                    }
                    doevent "ModF_Mod::OnSummon_ModF";
                    close;
            case 2:
                    mes "[道館裁判]";
                    mes "那您以後別在那麼不小心哩!";
                    close;
            case 3:
                    mes "[道館裁判]";
                    mes "嗯嗯!好吧我送您出去,";
                    mes "我只會環您費用^FF00001/2^000000的金錢,";
                    mes "您確定您還要離開挑戰賽嗎?";
                    next;
                    if (select("是的!","不了!")==1) {
                            if ( getcharid(0) == $ModFCID[@MnF] ) {
                                    set zeny,zeny + ($@ModFZenyC/2);
                            } else {
                                    set zeny,zeny + ($@ModFZenyP/2);
                            }
                            warp "SavePoint",0,0;
                    }
                    close;
            }
    }

    //====================================================//

    -        script        ModF_Mod        -1,{

    OnSummon_ModF:
            if ( $@ModFSummon ) {
                    for ( set .@SummonNun,1; .@SummonNun < ($@ModFCheck[@MnF]+1); set .@SummonNun,.@SummonNun+1 ) {
                            set $@ModFMod[@MnF],rand(1,$@ModFModIDSize);
                            set $@ModFQuantity[@MnF],$@ModFQuantity[@MnF]-1;
                            monster "06guild_0"+@MnF,50,50,"--ja--",$@ModFModID[$@ModFMod[@MnF]],1,"ModF_Mod::OnKill_ModF";
                            announce "道館裁判 : 魔物 ["+getmonsterinfo($@ModFModID[$@ModFMod[@MnF]],MOB_NAME)+"] 已放出!",1;
                    }
                    announce "道館裁判 : 魔物已全部放出,挑戰開始!(共"+$@ModFCheck[@MnF]+"隻)",1;
            } else {
                    set $@ModFMod[@MnF],rand(1,$@ModFModIDSize);
                    set $@ModFQuantity[@MnF],$@ModFQuantity[@MnF]-1;
                    monster "06guild_0"+@MnF,50,50,"--ja--",$@ModFModID[$@ModFMod[@MnF]],1,"ModF_Mod::OnKill_ModF";
                    announce "道館裁判 : 魔物 ["+getmonsterinfo($@ModFModID[$@ModFMod[@MnF]],MOB_NAME)+"] 已放出,挑戰開始!(剩餘"+$@ModFQuantity[@MnF]+"隻)",1;
            }
            if ( $@GuanShu[@MnF] == $@ModFGuanSize ) {
                     announce "道館裁判 : 最後一關挑戰開始,請繼續努力!",1;
            }
            end;

    OnKill_ModF:
            if ( $@ModFSummon ) {
                    set $@ModFCheck[@MnF],$@ModFCheck[@MnF]-1;
                    if ( $@ModFCheck[@MnF] != 0 ) {
                            end;
                    }
            } else {
                    if ( $@ModFQuantity[@MnF] != 0 ) {
                            addtimer 1000,"ModF_Mod::OnSummon_ModF";
                            end;
                    }
            }
            announce  "道館裁判 : 恭喜第 ["+$@GuanShu[@MnF]+"] 關挑戰成功!",17;
            if ( $@GuanShu[@MnF] == $@ModFGuanSize ) {
                    addtimer 5000,"ModF_Mod::OnWarp_ModF";
                    end;
            }
            for ( set .@CheckRests,1; .@CheckRests < (getarraysize($@ModFGuanRests)+1); set .@CheckRests,.@CheckRests+1 ) {
                    if ( $@GuanShu[@MnF] == $@ModFGuanRests[.@CheckRests] ) {
                            set $@GuanShu[@MnF],$@GuanShu[@MnF] +1;
                             announce "道館裁判 : 休息時間,請準備好在開始挑戰!",17;
                            enablenpc "道館裁判#"+@MnF;
                            //if ( $@ModFOpenShop ) {
                                    //announce "道館裁判 : 地圖 12 點鐘方向設有 [道具商人] 唷!",17;
                                    //enablenpc "道館商人#"+@MnF;
                            }
                            end;
                    }
            }
            //set $@GuanShu[@MnF],$@GuanShu[@MnF] +1;
            //set $@ModFQuantity[@MnF],$@ModFGuanMod[$@GuanShu[@MnF]];
            //set $@ModFCheck[@MnF],$@ModFQuantity[@MnF];
            //addtimer 5000,"ModF_Mod::OnSummon_ModF";
            //end;

    OnWarp_ModF:
            announce "道館裁判 : 恭喜隊伍 ["+getpartyname($@ModFPID[@MnF])+"] ,挑戰道館成功!",15;
            areawarp "06guild_0"+@MnF,0,0,300,300,"guild_room",42,285;
    }

    //====================================================//

    guild_room.gat,30,285,6        script        道場獎品        757,{

            mes "**獎品領取**";
            mes "[^996699 隨機取得獎品 ^000000]";
            mes "[^ff0000 祝您中大獎 ^000000]";
            percentheal 100,100;
            //,20001,20003,20007
            setarray .@i,20001,20002,20003,20006,20007,20016,2647,607,608,12186,984,985;
            setarray .@q,2,2,1,2,2,1,100,200,2,40,40;
            if(getgmlevel() >= 98){
            next;

            mes "[^ff0000 GM模式 ^000000]";
            mes ".@i元素個數 ="+getarraysize(.@i)+"";
            mes ".@q元素個數 ="+getarraysize(.@q)+"";
            for (set .@a,0;.@a<getarraysize(.@i);set .@a,.@a+1)
            mes "^880000"+(.@a+1) +"^000000. [^006600"+ getitemname(.@i[.@a]) +"^000000] ^880000"+.@q[.@a]+"個^000000";
            set .@a,0;
                            }
            next;
            set .@n,rand(0,(getarraysize(.@i)-1));
            getitem .@i[.@n],.@q[.@n];

            warp "SavePoint",0,0;
                    close;
    //====================================
    guild_room.gat,52,284,4        script        道場獎金        757,{


            mes "**獎品領取**";
            mes "[^996699 隨機取得金錢、P點 ^000000]";
            mes "[^ff0000 祝您中大獎 ^000000]";
            percentheal 100,100;
            next;
            set .@zeny,rand(0,48000);
            set .@zeny,(25*.@zeny)+800000;
            set .@cash,rand(10,30);
            set zeny,zeny+.@zeny;
            set #CASHPOINTS,#CASHPOINTS+(.@cash+5);
            dispbottom "Zeny增加 " +.@zeny+ " 。";
            dispbottom "您的 CASH 點數增加 " +.@cash+ " 點,共 " + #CASHPOINTS + " 點。";
            warp "SavePoint",0,0;
                    close;
    }

    fayon,87,141,6        duplicate        道館傳送員        459
    回復

    使用道具 舉報

  • TA的每日心情
    開心
    2023-5-27 04:43 PM
  • 簽到天數: 17 天

    連續簽到: 1 天

    [LV.4]偶爾看看III

    發表於 2013-5-18 08:30:48 | 顯示全部樓層

    這裡改成 !=

           if ( getcharid(0) != $ModFCID[@MnF] ) {
                    mes "您不是報名參加挑戰賽的人!";
                    close;
            }
    回復 支持 反對

    使用道具 舉報

  • TA的每日心情
    擦汗
    2021-2-21 11:25 PM
  • 簽到天數: 63 天

    連續簽到: 1 天

    [LV.6]常住居民II

     樓主| 發表於 2013-5-18 21:23:53 | 顯示全部樓層
    謝謝你哦!!

    我也發現為什麼了!

    感謝你的回答!!
    回復 支持 反對

    使用道具 舉報

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

    本版積分規則

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

    GMT+8, 2025-6-22 03:37 PM , Processed in 0.066799 second(s), 23 queries , Gzip On.

    Powered by Discuz! X3.4

    Copyright © 2001-2020, Tencent Cloud.

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