Jump to content

  •  

Photo

Multiple Quest Board (Tron's Quest Board)


  • Please log in to reply
No replies to this topic

#1 macroblitz

macroblitz

    Member

  • Members
  • PipPip
  • 22 posts

Posted 30 December 2013 - 06:25 PM

//===== 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//============================================================prt_in,42,94,3	script	Rank C Quests	4_BOARD3,{	if(countitem(29001) < 1){		mes "[Rank C Quests]";		mes "Rank C Hunter's Badge is required";		close;		}		else{	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 "Guild Points: ^0000FF10^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 "Guild Points: ^0000FF10^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:";	mes "Total Guild Points: ^FF0000" + guildpoints + "^000000";	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 "Guild Points: ^0000FF1^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 "Guild Points: ^0000FF1^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, 3600;		//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>,...);		AddCollection("I want Clover",99,150,29011,1,1000000,0,0,705,100);		AddCollection("I need Materials",99,150,29011,1,1000000,0,0,914,100);		AddCollection("Colorful Shell",99,150,29011,1,1000000,0,0,1013,100);				//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>,...);		AddHunting("Clean the Sewer",99,150,29011,1,1000000,0,0,1175,100);		AddHunting("Fisherman's Enemy",99,150,29011,1,1000000,0,0,1068,100);		AddHunting("Remove the Weeds",99,150,29011,1,1000000,0,0,1020,100);		AddHunting("I hate Flies",99,150,29011,1,1000000,0,0,1011,100);		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;}}}

so i am requesting how could i make multiple quest board? because when i duplicate the codes it doesn't work


Edited by macroblitz, 30 December 2013 - 06:26 PM.





1 user(s) are reading this topic

0 members, 1 guests, 0 anonymous users


This topic has been visited by 52 user(s)