diff options
Diffstat (limited to 'npc/custom/quests/questboard.txt')
-rw-r--r-- | npc/custom/quests/questboard.txt | 648 |
1 files changed, 324 insertions, 324 deletions
diff --git a/npc/custom/quests/questboard.txt b/npc/custom/quests/questboard.txt index 56357601a..cccbea7ee 100644 --- a/npc/custom/quests/questboard.txt +++ b/npc/custom/quests/questboard.txt @@ -1,324 +1,324 @@ -//===== rAthena Script =======================================
-//= tr0n's Questboard
-//===== By: ==================================================
-//= tr0n
-//===== Current Version: =====================================
-//= 1.4.4
-//===== Compatible With: =====================================
-//= rAthena SVN
-//===== 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 857,{
-
- 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"));
- set Zeny,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"));
- set Zeny, 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
- //AddCollection("<Quest Name>",<Min Lvl>,<Max Lvl>,<Reward|Item ID>,<Reward|Item Amount>,<Zeny Reward>,<Base EXP>,<Job EXP>,<Item ID>,<Item Amount>,...);
-
-
- //Add Hunting Quests here
- //AddHunting("<Quest Name>",<Min Lvl>,<Max Lvl>,<Reward|Item ID>,<Reward|Item Amount>,<Zeny Reward>,<Base EXP>,<Job EXP>,<Monster ID>,<Monster Amount>,...);
-
- 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;
-}
-}
\ No newline at end of file +//===== rAthena Script ======================================= +//= tr0n's Questboard +//===== By: ================================================== +//= tr0n +//===== Current Version: ===================================== +//= 1.4.4 +//===== Compatible With: ===================================== +//= rAthena SVN +//===== 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 857,{ + + 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")); + set Zeny,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")); + set Zeny, 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 + //AddCollection("<Quest Name>",<Min Lvl>,<Max Lvl>,<Reward|Item ID>,<Reward|Item Amount>,<Zeny Reward>,<Base EXP>,<Job EXP>,<Item ID>,<Item Amount>,...); + + + //Add Hunting Quests here + //AddHunting("<Quest Name>",<Min Lvl>,<Max Lvl>,<Reward|Item ID>,<Reward|Item Amount>,<Zeny Reward>,<Base EXP>,<Job EXP>,<Monster ID>,<Monster Amount>,...); + + 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; +} +} |