Jump to content
  • 0
Sign in to follow this  
hadiesyafiq

[NEED HELP] tr0n's Questboard SETUP GUIDE

Question

I got error when i setup..can someone teach me how to exactly setup this script

here link original https://raw.githubusercontent.com/HerculesWS/Hercules/stable/npc/custom/quests/questboard.txt

here i try to setup 

Quote

//===== Hercules Script ======================================
//= tr0n's Questboard
//===== By: ==================================================
//= tr0n
//===== Current Version: =====================================
//= 1.4.4
//===== Description: =========================================
//= Easily add collection and hunting quests.
//===== Additional Comments: =================================
// 1.0.0 Release
// 1.1.0 Added zeny reward
// 1.2.0 Rewrote checkmob and killcounter
// 1.3.1 Added level restriction
// 1.3.4 Added Reward Item Amount
// 1.4.4 Added Quest delay
//============================================================

prontera,129,215,5    script    Questboard    4_BOARD3,{
    if(c_run==1){
        mes "[^FF7700Questboard^000000]";
        mes "^0000FF"+getd("." + currentquest$ + "_collectionname$")+"^000000";
        mes "--------------------------------";
        for( set .@j, 0; .@j < getarraysize(getd("."+ currentquest$ + "_collectionitem")); set .@j,.@j+2) {
            mes "^FF0000"+getitemname(getd("."+currentquest$+"_collectionitem["+.@j+"]"))+" - "+countitem(getd("."+currentquest$+"_collectionitem["+.@j+"]"))+"/"+getd("."+currentquest$+"_collectionitem["+(.@j+1)+"]")+" ea.^000000";
        }
        mes "--------------------------------";
        mes "[Reward]";
        mes "Item: ^0000FF"+((getd("." +currentquest$+"_collectionprize"))?getitemname(getd("." +currentquest$+"_collectionprize"))+" - "+getd("." +currentquest$+"_collectionamount")+" ea.^000000":"Nothing^000000");
        mes "Zeny: ^0000FF"+getd("." +currentquest$+"_collectionzeny")+"^000000";
        mes "Base EXP: ^0000FF"+getd("." +currentquest$+"_collectionexp["+0+"]")+"^000000";
        mes "Job EXP: ^0000FF"+getd("." +currentquest$+"_collectionexp["+1+"]")+"^000000";
        next;
        if(select("Finish", "Abort") == 2){
            mes "[^FF7700Questboard^000000]";
            mes "Quest aborted.";
            set currentquest$, "";
            set c_run, 0;
            close;
        }
        goto L_checkitems;
    }

    if(h_run==1){
        mes "[^FF7700Questboard^000000]";
        mes "^0000FF"+getd("." + currentquest$ + "_huntingname$")+"^000000";
        mes "--------------------------------";
        for( set .@j, 0; .@j < getarraysize(getd("."+ currentquest$ + "_huntingmob")); set .@j,.@j+2) {
            set .@currentmob, getd("."+currentquest$+"_huntingmob["+(.@j)+"]");
            mes "^FF0000"+strmobinfo(1,getd("."+currentquest$+"_huntingmob["+.@j+"]"))+" - "+getd(currentquest$+"_"+.@currentmob+"_"+(.@j+1)+"_killcount")+"/"+getd("."+currentquest$+"_huntingmob["+(.@j+1)+"]")+" ea.^000000";
        }
        mes "--------------------------------";
        mes "[Reward]";
        mes "Item: ^0000FF"+((getd("." +currentquest$+"_huntingprize"))?getitemname(getd("." +currentquest$+"_huntingprize"))+" - "+getd("." +currentquest$+"_huntingamount")+" ea.^000000":"Nothing^000000");
        mes "Zeny: ^0000FF"+getd("." +currentquest$+"_huntingzeny")+"^000000";
        mes "Base EXP: ^0000FF"+getd("." +currentquest$+"_huntingexp["+0+"]")+"^000000";
        mes "Job EXP: ^0000FF"+getd("." +currentquest$+"_huntingexp["+1+"]")+"^000000";
        next;
        if(select("Finish", "Abort") == 2){
            mes "[^FF7700Questboard^000000]";
            mes "Quest aborted.";
            for(set .@x, 1; .@x < getarraysize(getd("."+currentquest$+"_huntingmob")); set .@x,.@x+2){
                set .@currentmob, getd("."+currentquest$+"_huntingmob["+(.@x-1)+"]");
                setd(currentquest$+"_"+.@currentmob+"_"+.@x+"_killcount", 0);
            }
            set currentquest$, "";
            set h_run, 0;
            close;
        }
        goto L_checkmobs;
    }

L_questmenu:
    mes "[^FF7700Questboard^000000]";
    mes "Select category:";
    next;

    switch(select((.collection)?"Collection Quests":"",
                (.hunting)?"Hunting Quests":"",
                "Exit")) {
    case 1:
        set .@collectmenu$, "";
        for( set .@i,0; .@i < .collectionquestcount; set .@i,.@i+1) {
            if (.@i) set .@collectmenu$,.@collectmenu$+":";
            set .@collectmenu$, .@collectmenu$ + "[" + getd("." +(.@i+1)+"_collectionmin") + " - " + getd("." +(.@i+1)+"_collectionmax") + "] " + getd("." + (.@i+1) + "_collectionname$");
        }
        set .@selection,select(.@collectmenu$);
        if(gettimetick(2) < getd(.@selection + "_collection_delay")){
            set .@time_left, getd(.@selection + "_collection_delay")-gettimetick(2);
            mes "[^FF7700Questboard^000000]";
            if(.@time_left < 60) mes "You have to wait ^0000FF"+.@time_left+" seconds^000000 to do this quest again.";
            if(.@time_left < 3600) mes "You have to wait ^0000FF"+.@time_left/60+" minutes^000000 to do this quest again.";
            mes "You have to wait ^0000FF"+.@time_left/60/60+" hours^000000 to do this quest again.";
            close;
        }
        mes "[^FF7700Questboard^000000]";
        mes "^0000FF"+getd("." + .@selection + "_collectionname$")+"^000000";
        mes "--------------------------------";
        for( set .@j, 0; .@j < getarraysize(getd("."+ .@selection + "_collectionitem")); set .@j,.@j+2) {
            mes "^FF0000"+getitemname(getd("."+.@selection+"_collectionitem["+.@j+"]"))+" - "+getd("."+.@selection+"_collectionitem["+(.@j+1)+"]")+" ea.^000000";
        }
        mes "--------------------------------";
        mes "[Reward]";
        mes "Item: ^0000FF"+((getd("." +.@selection+"_collectionprize"))?getitemname(getd("." +.@selection+"_collectionprize"))+" - "+getd("." +.@selection+"_collectionamount")+" ea.^000000":"Nothing^000000");
        mes "Zeny: ^0000FF"+getd("." +.@selection+"_collectionzeny")+"^000000";
        mes "Base EXP: ^0000FF"+getd("." +.@selection+"_collectionexp["+0+"]")+"^000000";
        mes "Job EXP: ^0000FF"+getd("." +.@selection+"_collectionexp["+1+"]")+"^000000";
        next;
        if(select("Accept", "Decline") == 2){
            close;
        }
        if(BaseLevel >= getd("." +.@selection+"_collectionmin") && BaseLevel <= getd("." +.@selection+"_collectionmax"))
        {
            mes "[^FF7700Questboard^000000]";
            mes "Quest accepted.";
            set c_run, 1;
            set currentquest$, .@selection;
            close;
        }
        else
        {
            mes "[^FF7700Questboard^000000]";
            mes "You don't have the required";
            mes "level to do this quest.";
            close;
        }

    case 2:
        set .@huntmenu$, "";
        for( set .@i,0; .@i < .huntingquestcount; set .@i,.@i+1) {
            if (.@i) set .@huntmenu$,.@huntmenu$+":";
            set .@huntmenu$, .@huntmenu$ + "[" + getd("." +(.@i+1)+"_huntingmin") + " - " + getd("." +(.@i+1)+"_huntingmax") + "] " + getd("." + (.@i+1) + "_huntingname$");
        }
        set .@selection,select(.@huntmenu$);
        if(gettimetick(2) < getd(.@selection + "_hunting_delay")){
            set .@time_left, getd(.@selection + "_hunting_delay")-gettimetick(2);
            mes "[^FF7700Questboard^000000]";
            if(.@time_left < 60) mes "You have to wait ^0000FF"+.@time_left+" seconds^000000 to do this quest again.";
            if(.@time_left < 3600) mes "You have to wait ^0000FF"+.@time_left/60+" minutes^000000 to do this quest again.";
            mes "You have to wait ^0000FF"+.@time_left/60/60+" hours^000000 to do this quest again.";
            close;
        }
        mes "[^FF7700Questboard^000000]";
        mes "^0000FF"+getd("." + .@selection + "_huntingname$")+"^000000";
        mes "--------------------------------";
        for( set .@j, 0; .@j < getarraysize(getd("."+ .@selection + "_huntingmob")); set .@j,.@j+2) {
            mes "^FF0000"+strmobinfo(1,getd("."+.@selection+"_huntingmob["+.@j+"]"))+" - "+getd("."+.@selection+"_huntingmob["+(.@j+1)+"]")+" ea.^000000";
        }
        mes "--------------------------------";
        mes "[Reward]";
        mes "Item: ^0000FF"+((getd("." +.@selection+"_huntingprize"))?getitemname(getd("." +.@selection+"_huntingprize"))+" - "+getd("." +.@selection+"_huntingamount")+" ea.^000000":"Nothing^000000");
        mes "Zeny: ^0000FF"+getd("." +.@selection+"_huntingzeny")+"^000000";
        mes "Base EXP: ^0000FF"+getd("." +.@selection+"_huntingexp["+0+"]")+"^000000";
        mes "Job EXP: ^0000FF"+getd("." +.@selection+"_huntingexp["+1+"]")+"^000000";
        next;
        if(select("Accept", "Decline") == 2){
            close;
        }
        if(BaseLevel >= getd("." +.@selection+"_huntingmin") && BaseLevel <= getd("." +.@selection+"_huntingmax"))
        {
            mes "[^FF7700Questboard^000000]";
            mes "Quest accepted.";
            set h_run, 1;
            set currentquest$, .@selection;
            close;
        }
        else
        {
            mes "[^FF7700Questboard^000000]";
            mes "You don't have the required";
            mes "level to do this quest.";
            close;
        }
    case 3:
        close;
    }

L_checkitems:
    for( set .@k,0; .@k < getarraysize(getd("."+currentquest$+"_collectionitem")); set .@k,.@k+2) {
        if(countitem(getd("."+currentquest$+"_collectionitem["+.@k+"]"))>=getd("."+currentquest$+"_collectionitem["+(.@k+1)+"]")){
            set .@checkitem,.@checkitem+2;
        }
    }
    if(.@checkitem<getarraysize(getd("."+currentquest$+"_collectionitem"))){
        mes "[^FF7700Questboard^000000]";
        mes "You don't have everything.";
        close;
    }
    for( set .@delcount,0; .@delcount < getarraysize(getd("."+currentquest$+"_collectionitem")); set .@delcount,.@delcount+2) {
        delitem getd("."+currentquest$+"_collectionitem["+.@delcount+"]"),getd("."+currentquest$+"_collectionitem["+(.@delcount+1)+"]");
    }
    mes "[^FF7700Questboard^000000]";
    mes "Congratulation! Here is your Reward.";
    if(getd("." +currentquest$+"_collectionprize")!=0) getitem(getd("." +currentquest$+"_collectionprize"),getd("." +currentquest$+"_collectionamount"));
    Zeny += getd("." +currentquest$+"_collectionzeny");
    getexp getd("." +currentquest$+"_collectionexp["+0+"]"),getd("." +currentquest$+"_collectionexp["+1+"]");
    setd(currentquest$ + "_collection_delay"),gettimetick(2)+.quest_delay;
    set currentquest$, "";
    set c_run, 0;
    close;

L_checkmobs:
    set .@goal, (getarraysize(getd("."+currentquest$+"_huntingmob"))/2);
    for(set .@i, 1; .@i < getarraysize(getd("."+currentquest$+"_huntingmob")); set .@i,.@i+2){
        set .@currentmob, getd("."+currentquest$+"_huntingmob["+(.@i-1)+"]");
        if(getd(currentquest$+"_"+.@currentmob+"_"+.@i+"_killcount")==getd("."+currentquest$+"_huntingmob["+.@i+"]")){
            set .@checkmonster, .@checkmonster+1;
            if(.@checkmonster==.@goal){
                goto L_checkmobs2;
            }
            continue;
        }
        goto L_checkmobs2;
    }

L_checkmobs2:
    if(.@checkmonster<.@goal){
        mes "[^FF7700Questboard^000000]";
        mes "You didn't kill everything.";
        close;
    }
    mes "[^FF7700Questboard^000000]";
    mes "Congratulation! Here is your Reward.";
    for(set .@x, 1; .@x < getarraysize(getd("."+currentquest$+"_huntingmob")); set .@x,.@x+2){
        set .@currentmob, getd("."+currentquest$+"_huntingmob["+(.@x-1)+"]");
        setd(currentquest$+"_"+.@currentmob+"_"+.@x+"_killcount", 0);
    }
    if(getd("." +currentquest$+"_huntingprize")!=0) getitem(getd("." +currentquest$+"_huntingprize"),getd("." +currentquest$+"_huntingamount"));
    Zeny += getd("." +currentquest$+"_huntingzeny");
    getexp getd("." +currentquest$+"_huntingexp["+0+"]"),getd("." +currentquest$+"_huntingexp["+1+"]");
    setd(currentquest$ + "_hunting_delay"),gettimetick(2)+.quest_delay;
    set currentquest$, "";
    set h_run, 0;
    close;

OnNPCKillEvent:
    if(h_run!=1) end;
    for(set .@i, 1; .@i < getarraysize(getd("."+currentquest$+"_huntingmob")); set .@i,.@i+2){
        if(killedrid==getd("."+currentquest$+"_huntingmob["+(.@i-1)+"]")){
            set .@currentmob, getd("."+currentquest$+"_huntingmob["+(.@i-1)+"]");
            if(getd(currentquest$+"_"+.@currentmob+"_"+.@i+"_killcount")>=getd("."+currentquest$+"_huntingmob["+.@i+"]")) end;
            setd(currentquest$+"_"+.@currentmob+"_"+.@i+"_killcount", getd(currentquest$+"_"+.@currentmob+"_"+.@i+"_killcount")+1);
            dispbottom getd("."+currentquest$+"_huntingname$")+": ["+strmobinfo(1,.@currentmob)+"] ("+ getd(currentquest$+"_"+.@currentmob+"_"+.@i+"_killcount")+"/"+getd("."+currentquest$+"_huntingmob["+.@i+"]")+")";
            end;
        }
        continue;
    }
    end;

OnInit:
    function AddCollection;
    function AddHunting;

    //Activate/Deactive quest categories here
    set .collection, 1;
    set .hunting, 1;

    //Quest Delay (seconds)
    //24 hours = 86400 seconds
    set .quest_delay, 0;

    //Checks if quests are loaded (prevents out of index)
    if(.questsloaded==1) end;
    set .questsloaded, 1;

    //Add Collection Quests here
    ("Test Collect",1,99,501,10,0,0,0,501,10,...);

    //Add Hunting Quests here
    ("Test Hunting",1,99,501,10,0,0,0,1002,10,...);

    end;

function AddCollection {
    set .collectionquestcount,.collectionquestcount+1;
    setd ("." +.collectionquestcount+"_collectionname$", getarg(0));
    setd ("." +.collectionquestcount+"_collectionmin", getarg(1));
    setd ("." +.collectionquestcount+"_collectionmax", getarg(2));
    setd ("." +.collectionquestcount+"_collectionprize", getarg(3));
    setd ("." +.collectionquestcount+"_collectionamount", getarg(4));
    setd ("." +.collectionquestcount+"_collectionzeny", getarg(5));
    set .@argcount, 6;
    set .@size, getarraysize(getd("."+ .collectionquestcount + "_collectionexp"));
    setd ("." +.collectionquestcount+"_collectionexp["+.@size+"]",getarg(.@argcount));
    setd ("." +.collectionquestcount+"_collectionexp["+(.@size+1)+"]",getarg(.@argcount+1));
    set .@argcount, .@argcount+2;
    while(getarg(.@argcount,-1)!=-1 && getarg(.@argcount+1,-1)!=-1) {
        set .@size, getarraysize(getd("."+ .collectionquestcount + "_collectionitem"));
        setd ("."+.collectionquestcount+"_collectionitem["+.@size+"]",getarg(.@argcount));
        setd ("."+.collectionquestcount+"_collectionitem["+(.@size+1)+"]",getarg(.@argcount+1));
        set .@argcount,.@argcount+2;
    }
    return;
}

function AddHunting {
    set .huntingquestcount,.huntingquestcount+1;
    setd ("." +.huntingquestcount+"_huntingname$", getarg(0));
    setd ("." +.huntingquestcount+"_huntingmin", getarg(1));
    setd ("." +.huntingquestcount+"_huntingmax", getarg(2));
    setd ("." +.huntingquestcount+"_huntingprize", getarg(3));
    setd ("." +.huntingquestcount+"_huntingamount", getarg(4));
    setd ("." +.huntingquestcount+"_huntingzeny", getarg(5));
    set .@size, getarraysize(getd("."+ .huntingquestcount + "_huntingexp"));
    set .@argcount, 6;
    setd ("." +.huntingquestcount+"_huntingexp["+.@size+"]",getarg(.@argcount));
    setd ("." +.huntingquestcount+"_huntingexp["+(.@size+1)+"]",getarg(.@argcount+1));
    set .@argcount, .@argcount+2;
    while(getarg(.@argcount,-1)!=-1 && getarg(.@argcount+1,-1)!=-1) {
        set .@size, getarraysize(getd("."+ .huntingquestcount + "_huntingmob"));
        setd ("."+.huntingquestcount+"_huntingmob["+.@size+"]",getarg(.@argcount));
        setd ("."+.huntingquestcount+"_huntingmob["+(.@size+1)+"]",getarg(.@argcount+1));
        set .@argcount, .@argcount+2;
    }
    return;
}
}

here my error

 

error.png

Share this post


Link to post
Share on other sites

5 answers to this question

Recommended Posts

  • 1

you're using the function wrong. Here 2 examples

AddCollection("<Test Collect>",1,99,501,10,0,0,0,501,10);
AddHunting("<Test Hunting>",1,99,501,10,0,0,0,1002,10);

 

Share this post


Link to post
Share on other sites
  • 0
7 hours ago, Ridley said:

you're using the function wrong. Here 2 examples


AddCollection("<Test Collect>",1,99,501,10,0,0,0,501,10);

AddHunting("<Test Hunting>",1,99,501,10,0,0,0,1002,10);

 

Its work thank you sir

Share this post


Link to post
Share on other sites
  • 0
8 hours ago, Ridley said:

you're using the function wrong. Here 2 examples


AddCollection("<Test Collect>",1,99,501,10,0,0,0,501,10);

AddHunting("<Test Hunting>",1,99,501,10,0,0,0,1002,10);

 

sir but how if i want add more required item like

red potion 10ea

yellow potion 10ea

blue potion 10ea

Share this post


Link to post
Share on other sites
  • 0

It's all explained inside the script

 

//AddCollection("<Quest Name>",<Min Lvl>,<Max Lvl>,<Reward|Item ID>,<Reward|Item Amount>,<Zeny Reward>,<Base EXP>,<Job EXP>,<Item ID>,<Item Amount>,...);

AddCollection("<Test Collect>",1,99,501,10,0,0,0,501,10);

you just add more items at the end

AddCollection("<Test Collect>",1,99,501,10,0,0,0,501,10,502,15,503,20);

 

Share this post


Link to post
Share on other sites
  • 0
35 minutes ago, Ridley said:

It's all explained inside the script

 


//AddCollection("<Quest Name>",<Min Lvl>,<Max Lvl>,<Reward|Item ID>,<Reward|Item Amount>,<Zeny Reward>,<Base EXP>,<Job EXP>,<Item ID>,<Item Amount>,...);

AddCollection("<Test Collect>",1,99,501,10,0,0,0,501,10);

you just add more items at the end


AddCollection("<Test Collect>",1,99,501,10,0,0,0,501,10,502,15,503,20);

 

thank you very much sir

Share this post


Link to post
Share on other sites

Please sign in to comment

You will be able to leave a comment after signing in



Sign In Now
Sign in to follow this  

×
×
  • Create New...

Important Information

By using this site, you agree to our Terms of Use.