Jump to content
  • 0

Question

Hi guys! Just wondering how can i remove the timer and make it usable all the time? Thanks in advance! :)

 

// =============================
/* Free for All: http://herc.ws/board/topic/13863-rlast-man-standing-pvp-with-prize/
	----------------------------
	by: Legend
	compatible w/: Hercules
	----------------------------
	special thanks to:
	* Annieruru
	----------------------------
	Description:
	* Free for all event like last man standing
	* Can be activated through command "@ffa"
	* Also can be activated every hour
	* You can set your own number of winners
	* Configurable settings (npc name, maps, minimum level to participate,
	  maximum recognized winners, rewards, restricted jobs.)
	* Significant mapflags were set
*/
// =============================

prontera,156,157,4	script	Request#2	4_CAT_DOWN,{
	doevent "Request#2::OnMenu";
	end;
	
OnActivate: // activated by the GM
	if (agitcheck()) || (agitcheck2()){
		mes .npc$;
		mes "WoE is in progress.";
		close;
	}
	if (.checkffa > 0) {
		mes .npc$;
		mes "Event is in progress.";
		close;
	}
OnMinute00: // activated every hour
	if (agitcheck()) || (agitcheck2()) end;
	if (.checkffa > 0) end;
	.checkffa = 1;
	announce .npc$+": Registration for the event is now open for 3 minutes!",bc_all;
	initnpctimer;
	end;
		OnTimer150000:
			announce .npc$+": 30 seconds left before the registration will be closed.",bc_all;
			end;
			
		OnTimer180000:
			.checkffa = 2;
			if ( .psize <= .maxwin) {
				announce .npc$+": The Event has been cancelled! Not enough participants.",bc_all;
				callsub Reset_evt_stats;
				end;
			}
			announce .npc$+": Registration is now closed!",bc_all;
			end;
			
		OnTimer185000:
			mapannounce .pvpmap$,.npc$+": The Event will occur in a few moments!",bc_blue;
			end;
			
		OnTimer187000:
			mapannounce .pvpmap$,.npc$+": Get ready in 3!",bc_blue;
			end;
			
		OnTimer188000:
			mapannounce .pvpmap$,.npc$+": 2!",bc_blue;
			end;
			
		OnTimer189000:
			mapannounce .pvpmap$,.npc$+": 1!",bc_blue;
			end;
			
		OnTimer190000:
			stopnpctimer;
			mapannounce .pvpmap$,.npc$+": Good luck everyone!",bc_blue;
			setmapflag .pvpmap$, mf_pvp_noguild;
			removemapflag .pvpmap$, mf_noskill;
			pvpon .pvpmap$;
			end;
	
OnMenu:
	mes .npc$;
	mes "Good day "+strcharinfo(0)+"!";
	mes "How may I help you?";
	next;
	switch(select("Information:Join")){
		case 1:
			mes .npc$;
			mes "Minimum Base Level: ^FF0000"+.minblvl+"^000000";
			mes "Restricted Jobs:";
			for( .@z = 0; .@z < .rjsize; .@z++ ) {
				mes ( .@z +1 ) +". ^FF0000"+jobname (.resjob[.@z])+"^000000";
			}
			close;
		case 2:
			if (!.checkffa) {
				mes .npc$;
				mes "Event isn't activated, come back later.";
				close;
			}
			if (.checkffa == 2) {
				mes .npc$;
				mes "Event is in progress, come back later.";
				close;
			}
			if (BaseLevel < .minblvl) {
				mes .npc$;
				mes "You need to";
				mes "have ^FF0000"+.minblvl+"^000000 Base level or more than";
				mes "before you can participate.";
				close;
			}
			for( .@z = 0; .@z < .rjsize; .@z++ ) {
				if (Class == .resjob[.@z] ){
					mes .npc$;
					mes "Your job is restricted to join this event.";
					close;
				}
			}
			sc_end SC_ALL;
			percentheal 100,100;
			warp .pvpmap$,0,0;
			.regaid[.psize] = getcharid(3);
			.psize++;
			end;
	}
	
OnPCDieEvent:
OnPCLogoutEvent:
	if (strcharinfo(3) != .pvpmap$) end;
	while (.regaid != getcharid(3) && .@i < .psize) .@i++;
	deletearray .regaid[.@i],1;
	.psize--;
	if (.psize > .maxwin) end;
	if (.checkffa > 0) {
		announce .npc$+": The Event is now over! We already have our winners!",bc_all;
			for (.@i = 0; .@i < .psize; ++.@i){
				getitem .ritem,.rcount,.regaid[.@i];
			}
	}
	callsub Reset_evt_stats;
	end;
	
Reset_evt_stats:
	removemapflag .pvpmap$, mf_pvp_noguild;
	setmapflag .pvpmap$, mf_noskill;
	pvpoff .pvpmap$;
	.checkffa = 0;
	deletearray .regaid;
	.psize = 0;
	mapwarp .pvpmap$,.extmap$,.extx,.exty,0;
	end;
	
OnInit:
	bindatcmd "ffa",strnpcinfo(3)+"::OnActivate",99,99;
	
// CONFIGURATION
	.npc$ = "[ Free for All ]"; // NPC name
	.pvpmap$ = "pvp_n_1-5"; // Set your FFA Map
	.minblvl = 99; // Set minimum base level who can enter
	.maxwin = 2; // Set the maximum winners
	.ritem = 7227; // Set the item id of the reward
		.rcount = 5; // Set reward amount
	.extmap$ = "prontera"; // Set exit map
		.extx = 150; // Exit map "x" coordinate
		.exty = 150; // Exit map "y" coordinate
	setarray .resjob[0], 0,4001; // This list serves as the restricted jobs
		.rjsize = getarraysize (.resjob); // DO NOT TOUCH THIS
		
// MAPFLAGS
	setmapflag .pvpmap$, mf_noskill;
	pvpoff .pvpmap$;
//---
	setmapflag .pvpmap$, mf_nowarpto;
	setmapflag .pvpmap$, mf_nocommand;
	setmapflag .pvpmap$, mf_nowarp;
	setmapflag .pvpmap$, mf_nosave;
	setmapflag .pvpmap$, mf_noteleport;
	setmapflag .pvpmap$, mf_nomemo;
	setmapflag .pvpmap$, mf_novending;
	setmapflag .pvpmap$, mf_nobranch;
	end;
}

 

Share this post


Link to post
Share on other sites

3 answers to this question

Recommended Posts

  • 0

What do you mean with "make it usable all the time"?

 

Do you want to enable it all time instead every new hour?

Sorry I'm confuse :P

Share this post


Link to post
Share on other sites
  • 0

What do you mean with "make it usable all the time"?

 

Do you want to enable it all time instead every new hour?

 

Sorry I'm confuse :P

 

Yes sir. i want to enable it all the time :D

Share this post


Link to post
Share on other sites
  • 0

Here you are. Haven't been able to test it, as I'm not home, but it should work.

 

// =============================
/* Free for All: http://herc.ws/board/topic/13863-rlast-man-standing-pvp-with-prize/
	----------------------------
	by: Legend
	compatible w/: Hercules
	----------------------------
	special thanks to:
	* Annieruru
	----------------------------
	Description:
	* Free for all event like last man standing
	* Can be activated through command "@ffa"
	* Also can be activated every hour
	* You can set your own number of winners
	* Configurable settings (npc name, maps, minimum level to participate,
	  maximum recognized winners, rewards, restricted jobs.)
	* Significant mapflags were set
*/
// =============================

prontera,156,157,4	script	Request#2	4_CAT_DOWN,{
	doevent "Request#2::OnMenu";
	end;
	
OnActivate: // activated by the GM
	if (agitcheck()) || (agitcheck2()){
		mes .npc$;
		mes "WoE is in progress.";
		close;
	}
	if (.checkffa > 0) {
		mes .npc$;
		mes "Event is in progress.";
		close;
	}

OnTimer150000:
	announce .npc$+": 30 seconds left before the registration will be closed.",bc_all;
	end;
	
OnTimer180000:
	.checkffa = 2;
	if ( .psize <= .maxwin) {
		announce .npc$+": The Event has been cancelled! Not enough participants.",bc_all;
		callsub Reset_evt_stats;
		end;
	}
	announce .npc$+": Registration is now closed!",bc_all;
	end;
	
OnTimer185000:
	mapannounce .pvpmap$,.npc$+": The Event will occur in a few moments!",bc_blue;
	end;
	
OnTimer187000:
	mapannounce .pvpmap$,.npc$+": Get ready in 3!",bc_blue;
	end;
	
OnTimer188000:
	mapannounce .pvpmap$,.npc$+": 2!",bc_blue;
	end;
	
OnTimer189000:
	mapannounce .pvpmap$,.npc$+": 1!",bc_blue;
	end;
	
OnTimer190000:
	stopnpctimer;
	mapannounce .pvpmap$,.npc$+": Good luck everyone!",bc_blue;
	setmapflag .pvpmap$, mf_pvp_noguild;
	removemapflag .pvpmap$, mf_noskill;
	pvpon .pvpmap$;
	end;
	
OnMenu:
	mes .npc$;
	mes "Good day "+strcharinfo(0)+"!";
	mes "How may I help you?";
	next;
	switch(select("Information:Join")){
		case 1:
			mes .npc$;
			mes "Minimum Base Level: ^FF0000"+.minblvl+"^000000";
			mes "Restricted Jobs:";
			for( .@z = 0; .@z < .rjsize; .@z++ ) {
				mes ( .@z +1 ) +". ^FF0000"+jobname (.resjob[.@z])+"^000000";
			}
			close;
		case 2:
			if (.checkffa == 2) {
				mes .npc$;
				mes "Event is in progress, come back later.";
				close;
			}
			if (BaseLevel < .minblvl) {
				mes .npc$;
				mes "You need to";
				mes "have ^FF0000"+.minblvl+"^000000 Base level or more than";
				mes "before you can participate.";
				close;
			}
			for( .@z = 0; .@z < .rjsize; .@z++ ) {
				if (Class == .resjob[.@z] ){
					mes .npc$;
					mes "Your job is restricted to join this event.";
					close;
				}
			}
			
			if(.checkffa == 0)
			{
				if (agitcheck()) || (agitcheck2()) {
					mes .npc$;
					mes "WoE is in progress, come back later.";
					close;
				}
				.checkffa = 1;
				announce .npc$+": Registration for the event is now open for 3 minutes!",bc_all;
				initnpctimer;
			}
			
			sc_end SC_ALL;
			percentheal 100,100;
			warp .pvpmap$,0,0;
			.regaid[.psize] = getcharid(3);
			.psize++;
			end;
	}
	
OnPCDieEvent:
OnPCLogoutEvent:
	if (strcharinfo(3) != .pvpmap$) end;
	while (.regaid != getcharid(3) && .@i < .psize) .@i++;
	deletearray .regaid[.@i],1;
	.psize--;
	if (.psize > .maxwin) end;
	if (.checkffa > 0) {
		announce .npc$+": The Event is now over! We already have our winners!",bc_all;
			for (.@i = 0; .@i < .psize; ++.@i){
				getitem .ritem,.rcount,.regaid[.@i];
			}
	}
	callsub Reset_evt_stats;
	end;
	
Reset_evt_stats:
	removemapflag .pvpmap$, mf_pvp_noguild;
	setmapflag .pvpmap$, mf_noskill;
	pvpoff .pvpmap$;
	.checkffa = 0;
	deletearray .regaid;
	.psize = 0;
	mapwarp .pvpmap$,.extmap$,.extx,.exty,0;
	end;
	
OnInit:
	bindatcmd "ffa",strnpcinfo(3)+"::OnActivate",99,99;
	
// CONFIGURATION
	.npc$ = "[ Free for All ]"; // NPC name
	.pvpmap$ = "pvp_n_1-5"; // Set your FFA Map
	.minblvl = 99; // Set minimum base level who can enter
	.maxwin = 2; // Set the maximum winners
	.ritem = 7227; // Set the item id of the reward
		.rcount = 5; // Set reward amount
	.extmap$ = "prontera"; // Set exit map
		.extx = 150; // Exit map "x" coordinate
		.exty = 150; // Exit map "y" coordinate
	setarray .resjob[0], 0,4001; // This list serves as the restricted jobs
		.rjsize = getarraysize (.resjob); // DO NOT TOUCH THIS
		
// MAPFLAGS
	setmapflag .pvpmap$, mf_noskill;
	pvpoff .pvpmap$;
//---
	setmapflag .pvpmap$, mf_nowarpto;
	setmapflag .pvpmap$, mf_nocommand;
	setmapflag .pvpmap$, mf_nowarp;
	setmapflag .pvpmap$, mf_nosave;
	setmapflag .pvpmap$, mf_noteleport;
	setmapflag .pvpmap$, mf_nomemo;
	setmapflag .pvpmap$, mf_novending;
	setmapflag .pvpmap$, mf_nobranch;
	end;
}

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...
Sign in to follow this  

×
×
  • Create New...

Important Information

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