hello everyone i would like to ask what is the problem in this script every time i kill "one monster" it counts 8 momster" in killing quest can somebody detect the problem? thanks in advance more power rathena .
heres the script :
//===== rAthena Script =======================================
//= tr0n's Questboard
//===== By: ==================================================
//= tr0n
//===== Current Version: =====================================
//= 1.6.6
//===== Description: =========================================
//= Easily add collection and hunting quests.
//===== Changelogs: ==========================================
// 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
// 1.5.4 Added repeatable Quests
// 1.6.4 Added party support
// 1.6.5 Bug fixes for party support
// 1.6.6 Bug fixes for delay time does not appear [mazvi]
//============================================================
prontera,146,98,5 script Quest Manager 732,{
if(c_run==true){
mes "[^FF7700Questboard^000000]";
mes "^0000FF"+getd("." + currentquest$ + "_collectionname$")+"^000000";
mes "--------------------------------";
set [email protected], getarraysize(getd("."+ currentquest$ + "_collectionitem"));
for( set [email protected], 0; [email protected] < [email protected]; set [email protected],[email protected]+2){
mes "^FF0000"+getitemname(getd("."+currentquest$+"_collectionitem["[email protected]+"]"))+" - "+countitem(getd("."+currentquest$+"_collectionitem["[email protected]+"]"))+"/"+getd("."+currentquest$+"_collectionitem["+([email protected]+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, false;
close;
}
goto L_checkitems;
}
if(h_run==true){
mes "[^FF7700Questboard^000000]";
mes "^0000FF"+getd("." + currentquest$ + "_huntingname$")+"^000000";
mes "--------------------------------";
set [email protected], getarraysize(getd("."+ currentquest$ + "_huntingmob"));
for( set [email protected], 0; [email protected] < [email protected]; set [email protected],[email protected]+2){
set [email protected], getd("."+currentquest$+"_huntingmob["+([email protected])+"]");
mes "^FF0000"+strmobinfo(1,getd("."+currentquest$+"_huntingmob["[email protected]+"]"))+" - "+getd(currentquest$+"_"[email protected]+"_"+([email protected]+1)+"_killcount")+"/"+getd("."+currentquest$+"_huntingmob["+([email protected]+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 [email protected], 1; [email protected] < [email protected]; set [email protected],[email protected]+2){
set [email protected], getd("."+currentquest$+"_huntingmob["+([email protected])+"]");
setd(currentquest$+"_"[email protected]+"_"[email protected]+"_killcount", 0);
}
set currentquest$, "";
set h_run, false;
close;
}
goto L_checkmobs;
}
mes "[^FF7700Questboard^000000]";
mes "Select category:";
next;
switch(select((.collection)?"Collection Quests":"",
(.hunting)?"Hunting Quests":"",
"Exit")) {
case 1:
set [email protected]$, "";
for( set [email protected],0; [email protected] < .collectionquestcount; set [email protected],[email protected]+1){
if ([email protected]) set [email protected]$,[email protected]$+":";
set [email protected]$, [email protected]$ + "[" + getd("." +([email protected]+1)+"_collectionmin") + " - " + getd("." +([email protected]+1)+"_collectionmax") + "] " + getd("." + ([email protected]+1) + "_collectionname$");
}
set [email protected],select([email protected]$);
if(.quest_repeat == true){
if(gettimetick(2) < getd([email protected] + "_collection_delay")){
mes "[^FF7700Questboard^000000]";
mes "You have to wait ^0000FF"+Time2Str(getd([email protected] + "_collection_delay"))+"^000000 to do this quest again.";
close;
}
}
else{
if(getd([email protected] + "_collection_repeat") == true){
mes "[^FF7700Questboard^000000]";
mes "You already did this quest.";
mes "Please choose another one.";
close;
}
}
mes "[^FF7700Questboard^000000]";
mes "^0000FF"+getd("." + [email protected] + "_collectionname$")+"^000000";
mes "--------------------------------";
set [email protected], getarraysize(getd("."+ [email protected] + "_collectionitem"));
for( set [email protected], 0; [email protected] < [email protected]; set [email protected],[email protected]+2){
mes "^FF0000"+getitemname(getd("."[email protected]+"_collectionitem["[email protected]+"]"))+" - "+getd("."[email protected]+"_collectionitem["+([email protected]+1)+"]")+" ea.^000000";
}
mes "--------------------------------";
mes "[Reward]";
mes "Item: ^0000FF"+((getd("." [email protected]+"_collectionprize"))?getitemname(getd("." [email protected]+"_collectionprize"))+" - "+getd("." [email protected]+"_collectionamount")+" ea.^000000":"Nothing^000000");
mes "Zeny: ^0000FF"+getd("." [email protected]+"_collectionzeny")+"^000000";
mes "Base EXP: ^0000FF"+getd("." [email protected]+"_collectionexp["+0+"]")+"^000000";
mes "Job EXP: ^0000FF"+getd("." [email protected]+"_collectionexp["+1+"]")+"^000000";
next;
if(select("Accept:Decline") == 2){
close;
}
if(BaseLevel >= getd("." [email protected]+"_collectionmin") && BaseLevel <= getd("." [email protected]+"_collectionmax")){
mes "[^FF7700Questboard^000000]";
mes "Quest accepted.";
set c_run, true;
set currentquest$, [email protected];
close;
}
else{
mes "[^FF7700Questboard^000000]";
mes "You don't have the required";
mes "level to do this quest.";
close;
}
case 2:
set [email protected]$, "";
for( set [email protected],0; [email protected] < .huntingquestcount; set [email protected],[email protected]+1){
if ([email protected]) set [email protected]$,[email protected]$+":";
set [email protected]$, [email protected]$ + "[" + getd("." +([email protected]+1)+"_huntingmin") + " - " + getd("." +([email protected]+1)+"_huntingmax") + "] " + getd("." + ([email protected]+1) + "_huntingname$");
}
set [email protected],select([email protected]$);
if(.quest_repeat == true){
if(gettimetick(2) < getd([email protected] + "_hunting_delay")){
mes "[^FF7700Questboard^000000]";
mes "You have to wait ^0000FF"+Time2Str(getd([email protected] + "_hunting_delay"))+"^000000 to do this quest again.";
close;
}
}
else{
if(getd([email protected] + "_hunting_repeat") == true){
mes "[^FF7700Questboard^000000]";
mes "You already did this quest.";
mes "Please choose another one.";
close;
}
}
mes "[^FF7700Questboard^000000]";
mes "^0000FF"+getd("." + [email protected] + "_huntingname$")+"^000000";
mes "--------------------------------";
set [email protected], getarraysize(getd("."+ [email protected] + "_huntingmob"));
for( set [email protected], 0; [email protected] < [email protected]; set [email protected],[email protected]+2){
mes "^FF0000"+strmobinfo(1,getd("."[email protected]+"_huntingmob["[email protected]+"]"))+" - "+getd("."[email protected]+"_huntingmob["+([email protected]+1)+"]")+" ea.^000000";
}
mes "--------------------------------";
mes "[Reward]";
mes "Item: ^0000FF"+((getd("." [email protected]+"_huntingprize"))?getitemname(getd("." [email protected]+"_huntingprize"))+" - "+getd("." [email protected]+"_huntingamount")+" ea.^000000":"Nothing^000000");
mes "Zeny: ^0000FF"+getd("." [email protected]+"_huntingzeny")+"^000000";
mes "Base EXP: ^0000FF"+getd("." [email protected]+"_huntingexp["+0+"]")+"^000000";
mes "Job EXP: ^0000FF"+getd("." [email protected]+"_huntingexp["+1+"]")+"^000000";
next;
if(select("Accept:Decline") == 2){
close;
}
if(BaseLevel >= getd("." [email protected]+"_huntingmin") && BaseLevel <= getd("." [email protected]+"_huntingmax")){
mes "[^FF7700Questboard^000000]";
mes "Quest accepted.";
set h_run, true;
set currentquest$, [email protected];
close;
}
else{
mes "[^FF7700Questboard^000000]";
mes "You don't have the required";
mes "level to do this quest.";
close;
}
case 3:
close;
}
L_checkitems:
set [email protected], getarraysize(getd("."+currentquest$+"_collectionitem"));
for( set [email protected],0; [email protected] < [email protected]; set [email protected],[email protected]+2){
if(countitem(getd("."+currentquest$+"_collectionitem["[email protected]+"]"))>=getd("."+currentquest$+"_collectionitem["+([email protected]+1)+"]")){
set [email protected],[email protected]+2;
}
}
if([email protected]<[email protected]){
mes "[^FF7700Questboard^000000]";
mes "You don't have everything.";
close;
}
for( set [email protected],0; [email protected] < [email protected]; set [email protected],[email protected]+2){
delitem getd("."+currentquest$+"_collectionitem["[email protected]+"]"),getd("."+currentquest$+"_collectionitem["+([email protected]+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;
setd(currentquest$ + "_collection_repeat"),true;
set currentquest$, "";
set c_run, false;
close;
L_checkmobs:
set [email protected], getarraysize(getd("."+currentquest$+"_huntingmob"));
set [email protected], [email protected]/2;
for(set [email protected], 1; [email protected] < [email protected]; set [email protected],[email protected]+2){
set [email protected], getd("."+currentquest$+"_huntingmob["+([email protected])+"]");
if(getd(currentquest$+"_"[email protected]+"_"[email protected]+"_killcount")==getd("."+currentquest$+"_huntingmob["[email protected]+"]")){
set [email protected], [email protected]+1;
if([email protected][email protected]){
goto L_checkmobs2;
}
continue;
}
goto L_checkmobs2;
}
L_checkmobs2:
if([email protected]<[email protected]){
mes "[^FF7700Questboard^000000]";
mes "You didn't kill everything.";
close;
}
mes "[^FF7700Questboard^000000]";
mes "Congratulation! Here is your Reward.";
set [email protected], getarraysize(getd("."+currentquest$+"_huntingmob"));
for(set [email protected], 1; [email protected] < [email protected]; set [email protected],[email protected]+2){
set [email protected], getd("."+currentquest$+"_huntingmob["+([email protected])+"]");
setd(currentquest$+"_"[email protected]+"_"[email protected]+"_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;
setd(currentquest$ + "_hunting_repeat"),true;
set currentquest$, "";
set h_run, false;
close;
OnNPCKillEvent:
if(h_run!=true) end;
set [email protected], getarraysize(getd("."+currentquest$+"_huntingmob"));
for(set [email protected], 1; [email protected] < [email protected]; set [email protected],[email protected]+2){
if(killedrid==getd("."+currentquest$+"_huntingmob["+([email protected])+"]")){
set [email protected], getd("."+currentquest$+"_huntingmob["+([email protected])+"]");
if(getd(currentquest$+"_"[email protected]+"_"[email protected]+"_killcount")<getd("."+currentquest$+"_huntingmob["[email protected]+"]")){
setd(currentquest$+"_"[email protected]+"_"[email protected]+"_killcount", getd(currentquest$+"_"[email protected]+"_"[email protected]+"_killcount")+1);
dispbottom getd("."+currentquest$+"_huntingname$")+": ["+strmobinfo(1,[email protected])+"] ("+ getd(currentquest$+"_"[email protected]+"_"[email protected]+"_killcount")+"/"+getd("."+currentquest$+"_huntingmob["[email protected]+"]")+")";
}
if(getcharid(1) != 0 && .party_support == true){
getmapxy([email protected]$,[email protected],[email protected]);
set [email protected], getcharid(3);
set [email protected]$, currentquest$;
getpartymember getcharid(1),1;
getpartymember getcharid(1),2;
for(set [email protected], 0; [email protected] < [email protected]; [email protected]++){
if(isloggedin([email protected][[email protected]], [email protected][[email protected]])){
if(h_run==true && [email protected][[email protected]] != [email protected] && [email protected]$ == getvar(currentquest$, [email protected][[email protected]]) && readparam(HP, [email protected][[email protected]]) > 0){
getmapxy([email protected]$,[email protected],[email protected],BL_PC,rid2name([email protected][[email protected]]));
if([email protected]$ == [email protected]$ && distance([email protected],[email protected],[email protected],[email protected]) < .party_range){
set [email protected]_amt,getvar(getd([email protected]$+"_"[email protected]+"_"[email protected]+"_killcount"), [email protected]cid[[email protected]]);
set [email protected]_goal,getd("."[email protected]$+"_huntingmob["[email protected]+"]");
if([email protected]_amt<[email protected]_goal)
{
setd([email protected]$+"_"[email protected]+"_"[email protected]+"_killcount", [email protected]_amt+1, [email protected][[email protected]]);
dispbottom getd("."[email protected]$+"_huntingname$")+": ["+strmobinfo(1,[email protected])+"] ("+([email protected]_amt+1)+"/"[email protected]_goal+")", 0xB6FF00, [email protected][[email protected]];
}
}
}
}
}
}
break;
}
}
end;
OnInit:
waitingroom " Quest Manager ",0;
function AddCollection;
function AddHunting;
//Activate/Deactivate quest categories (true/1 - activated, false/0 - deactivated)
set .collection, true;
set .hunting, true;
//Quest Delay (seconds)
//24 hours = 86400 seconds
set .quest_delay, 43200;
//Activate/Deactivate repeatable quests (true/1 - activated, false/0 - deactivated)
set .quest_repeat, true;
//Activate/Deactivate party support (true/1 - activated, false/0 - deactivated)
set .party_support, true;
//Max range for party support (+- x & y coordinations)
set .party_range, 25;
//Checks if quests are loaded (prevents out of index)
if(.questsloaded==true) end;
set .questsloaded, true;
//Add Collection Quests here (You can add as many required items as you want)
//AddCollection("<QuestName>",<MinLvl>,<MaxLvl>,<Reward|ItemID>,<Reward|ItemAmount>,<ZenyReward>,<BaseEXP>,<JobEXP>,<ItemID>,<ItemAmount>,...);
AddCollection "Resin & Mushroom Spore",1,98,12987,2,0,300000,300000,907,100,921,100;
AddCollection "Bill of Bird & Desert Wolf Claw",1,98,12987,2,0,300000,300000,925,100,920,100;
AddCollection "Anolian Skin & Brigan",1,98,12987,2,0,300000,300000,7003,100,7054,100;
//Add Hunting Quests here (You can add as many required mobs as you want)
//AddHunting("<QuestName>",<MinLvl>,<MaxLvl>,<Reward|ItemID>,<Reward|ItemAmount>,<ZenyReward>,<BaseEXP>,<JobEXP>,<MonsterID>,<MonsterAmount>,...);
AddHunting "Prontera Hunting",1,98,6174,1,0,300000,300000,1051,20,1608,20,1053,20,1020,20,1118,20;
AddHunting "Payon Hunting",1,98,6174,1,0,300000,300000,1013,20,1025,20,1277,20,1110,20,1116,20;
AddHunting "Morocc Hunting",1,98,6174,1,0,300000,300000,1005,20,1097,20,1165,20,1111,20,1040,20;
AddHunting "Alberta Hunting",1,98,6174,1,0,300000,300000,1070,20,1066,20,1068,20,1144,20,1067,20;
AddHunting "Izlude Hunting",1,98,6174,1,0,300000,300000,1019,20,1106,20,1095,20,1050,20,1047,20;
AddHunting "Geffen Hunting",1,98,6174,1,0,300000,300000,1008,20,1018,20,1133,20,1128,20,1077,20;
AddHunting "Alde Baran Hunting",1,98,6174,1,0,300000,300000,1114,20,1215,20,1199,30;
AddHunting "Juno Hunting",1,98,6174,2,0,600000,600000,8237,20,1372,30,1378,20;
AddHunting "Comodo Hunting",1,98,6174,2,0,600000,600000,1166,20,1317,20,1064,10;
AddHunting "Lutie Hunting",1,98,6174,2,0,600000,600000,1246,20,1242,20,1243,10;
AddHunting "Ayothaya Hunting",1,98,6174,2,0,600000,600000,1494,20,1499,20,1586,10;
AddHunting "Amatsu Hunting",1,98,6174,2,0,600000,600000,1400,20,1406,20,1404,10;
AddHunting "Kunlun Hunting",1,98,6174,2,0,600000,600000,1417,20,1410,20,1415,10;
AddHunting "Lou Yang Hunting",1,98,6174,2,0,600000,600000,1517,20,1381,20,1512,10;
AddHunting "Umbala Hunting",1,98,6174,2,0,600000,600000,1498,20,1495,20,1497,10;
AddHunting "Niflheim Hunting",1,98,6174,2,0,600000,600000,1506,20,1503,20,1504,10,1505,10,1507,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 [email protected], 6;
set [email protected], getarraysize(getd("."+ .collectionquestcount + "_collectionexp"));
setd ("." +.collectionquestcount+"_collectionexp["[email protected]+"]",getarg([email protected]));
setd ("." +.collectionquestcount+"_collectionexp["+([email protected]+1)+"]",getarg([email protected]+1));
set [email protected], [email protected]+2;
set [email protected], getarraysize(getd("."+ .collectionquestcount + "_collectionitem"));
while(getarg([email protected],-1)!=-1 && getarg([email protected]+1,-1)!=-1){
setd ("."+.collectionquestcount+"_collectionitem["[email protected]+"]",getarg([email protected]));
setd ("."+.collectionquestcount+"_collectionitem["+([email protected]+1)+"]",getarg([email protected]+1));
set [email protected],[email protected]+2;
set [email protected], [email protected]+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 [email protected], getarraysize(getd("."+ .huntingquestcount + "_huntingexp"));
set [email protected], 6;
setd ("." +.huntingquestcount+"_huntingexp["[email protected]+"]",getarg([email protected]));
setd ("." +.huntingquestcount+"_huntingexp["+([email protected]+1)+"]",getarg([email protected]+1));
set [email protected], [email protected]+2;
set [email protected], getarraysize(getd("."+ .huntingquestcount + "_huntingmob"));
while(getarg([email protected],-1)!=-1 && getarg([email protected]+1,-1)!=-1){
setd ("."+.huntingquestcount+"_huntingmob["[email protected]+"]",getarg([email protected]));
setd ("."+.huntingquestcount+"_huntingmob["+([email protected]+1)+"]",getarg([email protected]+1));
set [email protected], [email protected]+2;
set [email protected], [email protected]+2;
}
return;
}
}
alberta,33,240,6 duplicate(Quest Manager) Quest Manager#alb 732
aldebaran,135,121,6 duplicate(Quest Manager) Quest Managerr#ald 732
geffen,115,72,6 duplicate(Quest Manager) Quest Manager#gef 732
morocc,164,102,4 duplicate(Quest Manager) Quest Manager#mor 732
payon,190,104,4 duplicate(Quest Manager) Quest Manager#pay 732
izlude,134,96,4 duplicate(Quest Manager) Quest Manager#izl 732
yuno,141,187,6 duplicate(Quest Manager) Quest Manager#yun 732
hello everyone i would like to ask what is the problem in this script every time i kill "one monster" it counts 8 momster" in killing quest can somebody detect the problem? thanks in advance more power rathena .
heres the script :
Edited by Haruka MayumiPlease Code Box
Link to comment
Share on other sites