Jump to content
  • 0
Takizuki

Hunting Mission Add Additional feature

Question

hi, i have this script for Hunting Mission it will ask you to take a mission that need to kill a list of monsters once done it will give you a points and zeny as reward.

 

can anyone add additional feature that if the player reach 5 points she/he can use the Warp menu and they will be warp to an area like turbo_room

 

here's the script ( i disabled some of the features like mission shop)

 

//===== Hercules Script ======================================//= Hunting Mission//===== By: ==================================================//= Euphy//===== Current Version: =====================================//= 1.4a//===== Description: =========================================//= Random Hunting Mission.//= Rewards are based on quest difficulty.//===== Additional Comments: =================================//= 1.0 Initial script.//= 1.1 Small improvements and fixes.//= 1.2 Added party support and replaced blacklists with an//=     SQL query, both thanks to AnnieRuru.//= 1.3 Re-added a blacklist adapted for the SQL query.//= 1.3a Added mission reset options.//= 1.4 Fix ranking table using new SQL database [ossi0110]//= 1.4a Fix a bug when a character has deleted, that account//=     can't do mission. [AnnieRuru]//============================================================prontera,150,187,5	script	Bounty Hunter	404,{function Chk; function Cm;	mes "[Bounty Hunter]";	mes "Hello, "+strcharinfo(0)+"!";	if (!#Mission_Delay) {		next;		mes "[Bounty Hunter]";		mes "I can't find any records...";		mes "You must be new here!";		emotion e_omg;		next;		callsub Mission_Info;		emotion e_go;		set #Mission_Delay,1;		close;	}	mes rand(2)?"Working hard, as always...":"Not slacking, I hope...";	mes "Is there anything I can help";	mes "you with?";	mes " ";	mes "^777777~ You've completed ^0055FF"+Mission_Total+"^777777 mission"+((Mission_Total == 1)?"":"s")+". ~^000000";	next;	switch(select(((!Mission0)?" ~ New Mission::":": ~ Mission Status: ~ Abandon Mission")+": ~ Information: ~ View Top Hunters: ~ ^777777Cancel^000000")) {	case 1:		mes "[Bounty Hunter]";		if ( query_sql( "SELECT 1 FROM `char_reg_num_db` WHERE `key` = 'Mission0' AND `char_id` IN ( SELECT `char_id` FROM `char` WHERE `account_id` = "+ getcharid(3) +" )", .@dummy ) && #Mission_Count ) {			mes "You've started a mission";			mes "on another character.";			close;		}		if (#Mission_Delay > gettimetick(2) && .Delay) {			set .@i, #Mission_Delay-gettimetick(2);			if (.@i > 3600) set .@j$, (.@i/3600)+" hour"+(((.@i/3600) == 1)?"":"s");			else if (.@i > 60) set .@j$, (.@i/60)+" minute"+(((.@i/60) == 1)?"":"s");			else set .@j$, (.@i)+" second"+((.@i == 1)?"":"s");			mes "I'm afraid you'll have to wait "+.@j$+" before taking another mission.";			close;		}		mes "You must hunt:";		query_sql("SELECT ID FROM `mob_db` WHERE left(Sprite, 4) != 'meta' AND left(Sprite, 2) != 'E_' AND ~Mode & 32 AND EXP > 0 AND MVP1id = 0 AND DropCardid > 4000 AND DropCardid < 5000 AND ID < 2000 AND instr('"+.Blacklist$+"',ID) = 0 ORDER BY rand() LIMIT "+.Quests, .@mob);		for (set .@i,0; .@i<.Quests; set .@i,.@i+1) {			setd "Mission"+.@i, .@mob[.@i];			setd "Mission"+.@i +"_",0;		}		set #Mission_Count, rand(.Count[0],.Count[1]);		callsub Mission_Status;		next;		mes "[Bounty Hunter]";		mes "Report back when";		mes "you've finished.";		mes "Good luck!";		close;	case 2:		mes "[Bounty Hunter]";		mes "Mission status:";		callsub Mission_Status;		close;	case 3:		mes "[Bounty Hunter]";		mes "Do you really want to";		mes "abandon your mission?";		if (.Reset < 0 && .Delay)			mes "Your delay time will not be reset.";		else if (.Reset > 0)			mes "It will cost "+Cm(.Reset)+" Zeny.";		next;		switch(select(" ~ Abandon...: ~ ^777777Cancel^000000")) {		case 1:			if (.Reset > 0) {				if (Zeny < .Reset) {					mes "[Bounty Hunter]";					mes "You don't have enough";					mes "Zeny to drop this mission.";					emotion e_sry;					close;				}				Zeny -= .Reset;				emotion e_cash;			}			mes "[Bounty Hunter]";			mes "Alright, I've dropped";			mes "your current mission.";			specialeffect2 EF_STORMKICK4;			for(set .@i,0; .@i<.Quests; set .@i,.@i+1) {				setd "Mission"+.@i,0;				setd "Mission"+.@i+"_",0;			}			set #Mission_Count,0;			if (.Reset < 0 && .Delay) set #Mission_Delay, gettimetick(2)+(.Delay*3600);			close;		case 2:			mes "[Bounty Hunter]";			mes "I knew you were kidding!";			mes "Keep up the good work.";			emotion e_heh;			close;		}	case 4:		callsub Mission_Info;		close;	case 5:		mes "[Bounty Hunter]";		mes "The top hunters are:";		query_sql("SELECT char_id AS id, (SELECT `name` FROM `char` WHERE char_id = id),`value` FROM `char_reg_num_db` WHERE `key` = 'Mission_Total' ORDER BY `value` DESC LIMIT 5",.@id,.@name$,.@val);		for(set .@i,0; .@i<5; set .@i,.@i+1)			mes "  [Rank "+(.@i+1)+"]  "+((.@name$[.@i] == "")?"^777777none":"^0055FF"+.@name$[.@i]+"^000000 : ^FF0000"+.@val[.@i]+" pt.")+"^000000";		close;	case 7:		mes "[Bounty Hunter]";		mes "Nothing? Okay...";		emotion e_hmm;		close;	}//OnClock1218:OnMinute30:	npctalk "Hi, want to have 5m & +10 Rental items? you can have it just do a Bounty Mission and reach 10pts and be the Top 1 Bounty Hunter come talk to me.";	close;Mission_Status:	set @f,0;	deletearray .@j[0], getarraysize(.@j);	for(set .@i,0; .@i<.Quests; set .@i,.@i+1) {		set .@j[.@i], getd("Mission"+.@i);		set .@j[.Quests], .@j[.Quests]+strmobinfo(3,.@j[.@i]);		set .@j[.Quests+1], .@j[.Quests+1]+(strmobinfo(6,.@j[.@i])/(getbattleflag("base_exp_rate")/100)*.Modifier[0]);		set .@j[.Quests+2], .@j[.Quests+2]+(strmobinfo(7,.@j[.@i])/(getbattleflag("job_exp_rate")/100)*.Modifier[1]);		mes " > "+Chk(getd("Mission"+.@i+"_"),#Mission_Count)+strmobinfo(1,.@j[.@i])+" ("+getd("Mission"+.@i+"_")+"/"+#Mission_Count+")^000000";	}	// Reward formulas:	set .@Mission_Points, 3+(.@j[.Quests]/.Quests/6);	set .@Base_Exp, #Mission_Count*.@j[.Quests+1]/5;	set .@Job_Exp, #Mission_Count*.@j[.Quests+2]/5;	set .@zeny, #Mission_Count*.Quests*.@j[.@i]*.Modifier[2];	next;	mes "[Bounty Hunter]";	mes "Mission rewards:";	//mes " > Mission Points: ^0055FF"+.@Mission_Points+"^000000";	//mes " > Base Experience: ^0055FF"+Cm(.@Base_Exp)+"^000000";	//mes " > Job Experience: ^0055FF"+Cm(.@Job_Exp)+"^000000";	mes " > Zeny: ^0055FF"+Cm(.@zeny)+"^000000";	if (@f) { set @f,0; return; }	next;	mes "[Bounty Hunter]";	mes "Oh, you're done!";	mes "Good work.";	mes "Here's your reward.";	emotion e_no1;	specialeffect2 EF_ANGEL;	specialeffect2 EF_TRUESIGHT;	set #Mission_Points, #Mission_Points+.@Mission_Points;	set BaseExp, BaseExp+.@Base_Exp;	set JobExp, JobExp+.@Job_Exp;	Zeny += .@zeny;	for(set .@i,0; .@i<.Quests; set .@i,.@i+1) {		setd "Mission"+.@i,0;		setd "Mission"+.@i+"_",0;	}	set #Mission_Count,0;	if (.Delay) set #Mission_Delay, gettimetick(2)+(.Delay*3600);	set Mission_Total, Mission_Total+1;	if (Mission_Total == 1) query_sql("INSERT INTO `char_reg_num_db` (`char_id`,`key`,`index`,`value`) VALUES ("+getcharid(0)+",'Mission_Total','0',1)");	else query_sql("UPDATE `char_reg_num_db` SET `value` = "+Mission_Total+" WHERE `char_id` = "+getcharid(0)+" AND `key` = 'Mission_Total'");	close;Mission_Info:	mes "[Bounty Hunter]";	mes "If you so choose, I can assign";	mes "you a random hunting quest.";	mes "Some are easier than others, but";	mes "the rewards increase with difficulty.";	next;	mes "[Bounty Hunter]";	mes "Missions points are shared";	mes "amongst all your characters.";	if (.Delay) mes "Delay time is, too.";	mes "You can't take missions on";	mes "multiple characters at once.";	next;	mes "[Bounty Hunter]";	mes "You can start a quest";	if (.Delay) mes "every "+((.Delay == 1)?"hour.":.Delay+" hours.");	else mes "whenever you want.";	mes "That's everything~";	return;function Chk {	if (getarg(0) < getarg(1)) { set @f,1; return "^FF0000"; }	else return "^00FF00"; }function Cm {	set .@str$, getarg(0);	for(set .@i,getstrlen(.@str$)-3; .@i>0; set .@i,.@i-3)		set .@str$, insertchar(.@str$,",",.@i);	return .@str$; }OnBuyItem:	set @cost,0;	for(set .@i,0; .@i<getarraysize(@bought_nameid); set .@i,.@i+1)		for(set .@j,0; .@j<getarraysize(.Shop); set .@j,.@j+2)			if (@bought_nameid[.@i] == .Shop[.@j]) {				set @cost, @cost+(.Shop[.@j+1]*@bought_quantity[.@i]);				break;			}	mes "[Bounty Hunter]";	if (@cost > #Mission_Points) mes "You don't have enough Mission Points.";	else {		for(set .@i,0; .@i<getarraysize(@bought_nameid); set .@i,.@i+1) {			getitem @bought_nameid[.@i], @bought_quantity[.@i];			dispbottom "Purchased "+@bought_quantity[.@i]+"x "+getitemname(@bought_nameid[.@i])+".";		}		set #Mission_Points, #Mission_Points-@cost;		mes "Deal completed.";		emotion e_cash;	}	set @cost,0;	deletearray @bought_nameid[0], getarraysize(@bought_nameid);	deletearray @bought_quantity[0], getarraysize(@bought_quantity);	close;OnNPCKillEvent:	if (!getcharid(1) || !.Party) {		if (!#Mission_Count || !Mission0) end;		for (set .@i, 0; .@i<.Quests; set .@i,.@i+1) {			if (strmobinfo(1,killedrid) == strmobinfo(1,getd("Mission"+.@i))) {				if (getd("Mission"+.@i+"_") < #Mission_Count) {					dispbottom "[Hunting Mission] Killed "+(set(getd("Mission"+.@i+"_"),getd("Mission"+.@i+"_")+1))+" of "+#Mission_Count+" "+strmobinfo(1,killedrid)+".";					end;				}			}		}	} else if (.Party) {		set .@mob, killedrid;		getmapxy(.@map1$,.@x1,.@y1,0);		getpartymember getcharid(1),1;		getpartymember getcharid(1),2;		for(set .@i,0; .@i<$@partymembercount; set .@i,.@i+1) {			if (isloggedin($@partymemberaid[.@i], $@partymembercid[.@i])) {				attachrid $@partymemberaid[.@i];				if (#Mission_Count && Mission0 && Hp > 0) {					getmapxy(.@map2$,.@x2,.@y2,0);					if ((.@map1$ == .@map2$ || .Party == 1) && (distance(.@x1,.@y1,.@x2,.@y2) <= 30 || .Party < 3)) {						for(set .@j,0; .@j<.Quests; set .@j,.@j+1) {							if (strmobinfo(1,.@mob) == strmobinfo(1,getd("Mission"+.@j))) {								if (getd("Mission"+.@j+"_") < #Mission_Count) {									dispbottom "[Hunting Mission] Killed "+(set(getd("Mission"+.@j+"_"),getd("Mission"+.@j+"_")+1))+" of "+#Mission_Count+" "+strmobinfo(1,.@mob)+".";									break;								}							}						}					}				}			}		}	}	end;OnInit:	set .Delay,0;		// Quest delay, in hours (0 to disable).	set .Quests,4;		// Number of subquests per mission (increases rewards).	set .Party,3;		// Party options: 0 (exclude party kills), 1 (include party kills), 2 (same map only), 3 (screen area only)	set .Reset,-1;		// Reset options: -1 (abandoning mission sets delay time), 0 (no delay time), [Zeny] (cost to abandon mission, no delay time)	setarray .Count[0],	// Min and max monsters per subquest (increases rewards).		60,100;	setarray .Modifier[0],	// Multipliers for Base Exp, Job Exp, and Zeny rewards.		getbattleflag("base_exp_rate")/5,getbattleflag("job_exp_rate")/5,3;	setarray .Shop[0],	// Reward items: <ID>,<point cost> (about 10~20 points per hunt).		12210,20,13889,5,13890,5,16396,80,16394,80,6241,20,6240,20,12350,3,12032,3,12114,5,12115,5,12116,5,12117,5,14587,5,14527,10,14581,20,1084,10;	set .Blacklist$,	// Blacklisted mob IDs.		"1062,1088,1183,1186,1200,1212,1220,1221,1234,1235,"+		"1244,1245,1250,1268,1290,1293,1294,1296,1298,1299,"+		"1300,1301,1303,1304,1305,1306,1308,1309,1311,1313,"+		"1515,1588,1618,1676,1677,1678,1679,1796,1797,1974,"+		"1975,1976,1977,1978,1979";	npcshopdelitem "mission_shop",512;	for(set .@i,0; .@i<getarraysize(.Shop); set .@i,.@i+2)		npcshopadditem "mission_shop", .Shop[.@i], .Shop[.@i+1];	end;}-	shop	mission_shop	-1,512:-1

 

Share this post


Link to post
Share on other sites

4 answers to this question

Recommended Posts

  • 0

Hi,

 

these should do what you asked for, if I understood well what you're expecting for.

I didn't try the code (I'm at work right now), but it's nothing really complicated, so...

 

//===== Hercules Script ======================================//= Hunting Mission//===== By: ==================================================//= Euphy//===== Current Version: =====================================//= 1.4a//===== Description: =========================================//= Random Hunting Mission.//= Rewards are based on quest difficulty.//===== Additional Comments: =================================//= 1.0 Initial script.//= 1.1 Small improvements and fixes.//= 1.2 Added party support and replaced blacklists with an//=     SQL query, both thanks to AnnieRuru.//= 1.3 Re-added a blacklist adapted for the SQL query.//= 1.3a Added mission reset options.//= 1.4 Fix ranking table using new SQL database [ossi0110]//= 1.4a Fix a bug when a character has deleted, that account//=     can't do mission. [AnnieRuru]//============================================================prontera,150,187,5	script	Bounty Hunter	404,{function Chk; function Cm;	mes "[Bounty Hunter]";	mes "Hello, "+strcharinfo(0)+"!";	if (!#Mission_Delay) {		next;		mes "[Bounty Hunter]";		mes "I can't find any records...";		mes "You must be new here!";		emotion e_omg;		next;		callsub Mission_Info;		emotion e_go;		set #Mission_Delay,1;		close;	}	mes rand(2)?"Working hard, as always...":"Not slacking, I hope...";	mes "Is there anything I can help";	mes "you with?";	mes " ";	mes "^777777~ You've completed ^0055FF"+Mission_Total+"^777777 mission"+((Mission_Total == 1)?"":"s")+". ~^000000";	next;	switch(select(((!Mission0)?" ~ New Mission::":": ~ Mission Status: ~ Abandon Mission")+": ~ Information: ~ View Top Hunters:"+((#Mission_Count >= 5)?" ~ Warp":"")+"  ~ ^777777Cancel^000000")) {	case 1:		mes "[Bounty Hunter]";		if ( query_sql( "SELECT 1 FROM `char_reg_num_db` WHERE `key` = 'Mission0' AND `char_id` IN ( SELECT `char_id` FROM `char` WHERE `account_id` = "+ getcharid(3) +" )", .@dummy ) && #Mission_Count ) {			mes "You've started a mission";			mes "on another character.";			close;		}		if (#Mission_Delay > gettimetick(2) && .Delay) {			set .@i, #Mission_Delay-gettimetick(2);			if (.@i > 3600) set .@j$, (.@i/3600)+" hour"+(((.@i/3600) == 1)?"":"s");			else if (.@i > 60) set .@j$, (.@i/60)+" minute"+(((.@i/60) == 1)?"":"s");			else set .@j$, (.@i)+" second"+((.@i == 1)?"":"s");			mes "I'm afraid you'll have to wait "+.@j$+" before taking another mission.";			close;		}		mes "You must hunt:";		query_sql("SELECT ID FROM `mob_db` WHERE left(Sprite, 4) != 'meta' AND left(Sprite, 2) != 'E_' AND ~Mode & 32 AND EXP > 0 AND MVP1id = 0 AND DropCardid > 4000 AND DropCardid < 5000 AND ID < 2000 AND instr('"+.Blacklist$+"',ID) = 0 ORDER BY rand() LIMIT "+.Quests, .@mob);		for (set .@i,0; .@i<.Quests; set .@i,.@i+1) {			setd "Mission"+.@i, .@mob[.@i];			setd "Mission"+.@i +"_",0;		}		set #Mission_Count, rand(.Count[0],.Count[1]);		callsub Mission_Status;		next;		mes "[Bounty Hunter]";		mes "Report back when";		mes "you've finished.";		mes "Good luck!";		close;	case 2:		mes "[Bounty Hunter]";		mes "Mission status:";		callsub Mission_Status;		close;	case 3:		mes "[Bounty Hunter]";		mes "Do you really want to";		mes "abandon your mission?";		if (.Reset < 0 && .Delay)			mes "Your delay time will not be reset.";		else if (.Reset > 0)			mes "It will cost "+Cm(.Reset)+" Zeny.";		next;		switch(select(" ~ Abandon...: ~ ^777777Cancel^000000")) {		case 1:			if (.Reset > 0) {				if (Zeny < .Reset) {					mes "[Bounty Hunter]";					mes "You don't have enough";					mes "Zeny to drop this mission.";					emotion e_sry;					close;				}				Zeny -= .Reset;				emotion e_cash;			}			mes "[Bounty Hunter]";			mes "Alright, I've dropped";			mes "your current mission.";			specialeffect2 EF_STORMKICK4;			for(set .@i,0; .@i<.Quests; set .@i,.@i+1) {				setd "Mission"+.@i,0;				setd "Mission"+.@i+"_",0;			}			set #Mission_Count,0;			if (.Reset < 0 && .Delay) set #Mission_Delay, gettimetick(2)+(.Delay*3600);			close;		case 2:			mes "[Bounty Hunter]";			mes "I knew you were kidding!";			mes "Keep up the good work.";			emotion e_heh;			close;		}	case 4:		callsub Mission_Info;		close;	case 5:		mes "[Bounty Hunter]";		mes "The top hunters are:";		query_sql("SELECT char_id AS id, (SELECT `name` FROM `char` WHERE char_id = id),`value` FROM `char_reg_num_db` WHERE `key` = 'Mission_Total' ORDER BY `value` DESC LIMIT 5",.@id,.@name$,.@val);		for(set .@i,0; .@i<5; set .@i,.@i+1)			mes "  [Rank "+(.@i+1)+"]  "+((.@name$[.@i] == "")?"^777777none":"^0055FF"+.@name$[.@i]+"^000000 : ^FF0000"+.@val[.@i]+" pt.")+"^000000";		close;	case 6:		//Warp routine		close;	case 7:		mes "[Bounty Hunter]";		mes "Nothing? Okay...";		emotion e_hmm;		close;	}//OnClock1218:OnMinute30:	npctalk "Hi, want to have 5m & +10 Rental items? you can have it just do a Bounty Mission and reach 10pts and be the Top 1 Bounty Hunter come talk to me.";	close;Mission_Status:	set @f,0;	deletearray .@j[0], getarraysize(.@j);	for(set .@i,0; .@i<.Quests; set .@i,.@i+1) {		set .@j[.@i], getd("Mission"+.@i);		set .@j[.Quests], .@j[.Quests]+strmobinfo(3,.@j[.@i]);		set .@j[.Quests+1], .@j[.Quests+1]+(strmobinfo(6,.@j[.@i])/(getbattleflag("base_exp_rate")/100)*.Modifier[0]);		set .@j[.Quests+2], .@j[.Quests+2]+(strmobinfo(7,.@j[.@i])/(getbattleflag("job_exp_rate")/100)*.Modifier[1]);		mes " > "+Chk(getd("Mission"+.@i+"_"),#Mission_Count)+strmobinfo(1,.@j[.@i])+" ("+getd("Mission"+.@i+"_")+"/"+#Mission_Count+")^000000";	}	// Reward formulas:	set .@Mission_Points, 3+(.@j[.Quests]/.Quests/6);	set .@Base_Exp, #Mission_Count*.@j[.Quests+1]/5;	set .@Job_Exp, #Mission_Count*.@j[.Quests+2]/5;	set .@zeny, #Mission_Count*.Quests*.@j[.@i]*.Modifier[2];	next;	mes "[Bounty Hunter]";	mes "Mission rewards:";	//mes " > Mission Points: ^0055FF"+.@Mission_Points+"^000000";	//mes " > Base Experience: ^0055FF"+Cm(.@Base_Exp)+"^000000";	//mes " > Job Experience: ^0055FF"+Cm(.@Job_Exp)+"^000000";	mes " > Zeny: ^0055FF"+Cm(.@zeny)+"^000000";	if (@f) { set @f,0; return; }	next;	mes "[Bounty Hunter]";	mes "Oh, you're done!";	mes "Good work.";	mes "Here's your reward.";	emotion e_no1;	specialeffect2 EF_ANGEL;	specialeffect2 EF_TRUESIGHT;	set #Mission_Points, #Mission_Points+.@Mission_Points;	set BaseExp, BaseExp+.@Base_Exp;	set JobExp, JobExp+.@Job_Exp;	Zeny += .@zeny;	for(set .@i,0; .@i<.Quests; set .@i,.@i+1) {		setd "Mission"+.@i,0;		setd "Mission"+.@i+"_",0;	}	set #Mission_Count,0;	if (.Delay) set #Mission_Delay, gettimetick(2)+(.Delay*3600);	set Mission_Total, Mission_Total+1;	if (Mission_Total == 1) query_sql("INSERT INTO `char_reg_num_db` (`char_id`,`key`,`index`,`value`) VALUES ("+getcharid(0)+",'Mission_Total','0',1)");	else query_sql("UPDATE `char_reg_num_db` SET `value` = "+Mission_Total+" WHERE `char_id` = "+getcharid(0)+" AND `key` = 'Mission_Total'");	close;Mission_Info:	mes "[Bounty Hunter]";	mes "If you so choose, I can assign";	mes "you a random hunting quest.";	mes "Some are easier than others, but";	mes "the rewards increase with difficulty.";	next;	mes "[Bounty Hunter]";	mes "Missions points are shared";	mes "amongst all your characters.";	if (.Delay) mes "Delay time is, too.";	mes "You can't take missions on";	mes "multiple characters at once.";	next;	mes "[Bounty Hunter]";	mes "You can start a quest";	if (.Delay) mes "every "+((.Delay == 1)?"hour.":.Delay+" hours.");	else mes "whenever you want.";	mes "That's everything~";	return;function Chk {	if (getarg(0) < getarg(1)) { set @f,1; return "^FF0000"; }	else return "^00FF00"; }function Cm {	set .@str$, getarg(0);	for(set .@i,getstrlen(.@str$)-3; .@i>0; set .@i,.@i-3)		set .@str$, insertchar(.@str$,",",.@i);	return .@str$; }OnBuyItem:	set @cost,0;	for(set .@i,0; .@i<getarraysize(@bought_nameid); set .@i,.@i+1)		for(set .@j,0; .@j<getarraysize(.Shop); set .@j,.@j+2)			if (@bought_nameid[.@i] == .Shop[.@j]) {				set @cost, @cost+(.Shop[.@j+1]*@bought_quantity[.@i]);				break;			}	mes "[Bounty Hunter]";	if (@cost > #Mission_Points) mes "You don't have enough Mission Points.";	else {		for(set .@i,0; .@i<getarraysize(@bought_nameid); set .@i,.@i+1) {			getitem @bought_nameid[.@i], @bought_quantity[.@i];			dispbottom "Purchased "+@bought_quantity[.@i]+"x "+getitemname(@bought_nameid[.@i])+".";		}		set #Mission_Points, #Mission_Points-@cost;		mes "Deal completed.";		emotion e_cash;	}	set @cost,0;	deletearray @bought_nameid[0], getarraysize(@bought_nameid);	deletearray @bought_quantity[0], getarraysize(@bought_quantity);	close;OnNPCKillEvent:	if (!getcharid(1) || !.Party) {		if (!#Mission_Count || !Mission0) end;		for (set .@i, 0; .@i<.Quests; set .@i,.@i+1) {			if (strmobinfo(1,killedrid) == strmobinfo(1,getd("Mission"+.@i))) {				if (getd("Mission"+.@i+"_") < #Mission_Count) {					dispbottom "[Hunting Mission] Killed "+(set(getd("Mission"+.@i+"_"),getd("Mission"+.@i+"_")+1))+" of "+#Mission_Count+" "+strmobinfo(1,killedrid)+".";					end;				}			}		}	} else if (.Party) {		set .@mob, killedrid;		getmapxy(.@map1$,.@x1,.@y1,0);		getpartymember getcharid(1),1;		getpartymember getcharid(1),2;		for(set .@i,0; .@i<$@partymembercount; set .@i,.@i+1) {			if (isloggedin($@partymemberaid[.@i], $@partymembercid[.@i])) {				attachrid $@partymemberaid[.@i];				if (#Mission_Count && Mission0 && Hp > 0) {					getmapxy(.@map2$,.@x2,.@y2,0);					if ((.@map1$ == .@map2$ || .Party == 1) && (distance(.@x1,.@y1,.@x2,.@y2) <= 30 || .Party < 3)) {						for(set .@j,0; .@j<.Quests; set .@j,.@j+1) {							if (strmobinfo(1,.@mob) == strmobinfo(1,getd("Mission"+.@j))) {								if (getd("Mission"+.@j+"_") < #Mission_Count) {									dispbottom "[Hunting Mission] Killed "+(set(getd("Mission"+.@j+"_"),getd("Mission"+.@j+"_")+1))+" of "+#Mission_Count+" "+strmobinfo(1,.@mob)+".";									break;								}							}						}					}				}			}		}	}	end;OnInit:	set .Delay,0;		// Quest delay, in hours (0 to disable).	set .Quests,4;		// Number of subquests per mission (increases rewards).	set .Party,3;		// Party options: 0 (exclude party kills), 1 (include party kills), 2 (same map only), 3 (screen area only)	set .Reset,-1;		// Reset options: -1 (abandoning mission sets delay time), 0 (no delay time), [Zeny] (cost to abandon mission, no delay time)	setarray .Count[0],	// Min and max monsters per subquest (increases rewards).		60,100;	setarray .Modifier[0],	// Multipliers for Base Exp, Job Exp, and Zeny rewards.		getbattleflag("base_exp_rate")/5,getbattleflag("job_exp_rate")/5,3;	setarray .Shop[0],	// Reward items: <ID>,<point cost> (about 10~20 points per hunt).		12210,20,13889,5,13890,5,16396,80,16394,80,6241,20,6240,20,12350,3,12032,3,12114,5,12115,5,12116,5,12117,5,14587,5,14527,10,14581,20,1084,10;	set .Blacklist$,	// Blacklisted mob IDs.		"1062,1088,1183,1186,1200,1212,1220,1221,1234,1235,"+		"1244,1245,1250,1268,1290,1293,1294,1296,1298,1299,"+		"1300,1301,1303,1304,1305,1306,1308,1309,1311,1313,"+		"1515,1588,1618,1676,1677,1678,1679,1796,1797,1974,"+		"1975,1976,1977,1978,1979";	npcshopdelitem "mission_shop",512;	for(set .@i,0; .@i<getarraysize(.Shop); set .@i,.@i+2)		npcshopadditem "mission_shop", .Shop[.@i], .Shop[.@i+1];	end;}-	shop	mission_shop	-1,512:-1

Share this post


Link to post
Share on other sites
  • 0

hmmm tried it but even the character dont have points they can still use the warps... but thanks anyways atleast i have an idea on what to do on this one :)

Share this post


Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Answer this question...

×   Pasted as rich text.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Loading...

×
×
  • Create New...

Important Information

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