Jump to content
  • 0
Hadeszeus

Devil Square Support

Question

This script was re-write by AnnieRuru @ http://rathena.org/board/topic/77632-devil-square/

I'm trying to make it work in Hercules.

 

When the Round start there's now mobs on the map and keep announcing "2 players is still at Devil Square."

 

//   Made:By Kirlein (Tyirial Script Concept)  //// Devil Square based off the mmorpg Muonline  //// Have Fun and feel free to leave suggestions ////          Leave This intacted                //// +   Translated by Stillhard aka Dewa        //// +  Add times for 24 hours of play         //// +  Add a little bit infos for newbie users  ////      Completely rewrite by ~AnnieRuru~      //// +  Tested with rAthena 17101                //// http://rathena.org/board/topic/77632-devil-square//////////////////////////////////////////////////prontera,156,185,5	script	Devil Square	100,{	mes "[Devil Square Guardian]";	mes "Welcome to the entrance door to ^FF0000Devil Square^000000";	mes "If you failed or die, the door will be closed and you have to wait until it start to open again";	next;	if ( select ( "Enter", "Info", "Cancel " ) == 3 ) {		mes "[Devil Square Guardian]";		mes "See ya";		close;	}	else if ( @menu == 2 ) { // Info		mes "[Devil Square Guardian]";		mes "There are 3 level monster you'll encounter";		mes "Each level the enemies will grow stronger";		mes "If you succeded to win all 3 level monster, you'll get the opportunity to open 10 Treasure Box with items, equips, and rare cards inside!!";		close;	}	else if ( .start != 1 ) { // time		mes "[Devil Square Guardian]";		mes "Devil Square is now closed";		mes "It'll be open again at:";		mes "00:00 , 02:00 , 04:00 , 06:00"; // display your time here		mes "08:00 , 10:00 , 12:00 , 14:00";		mes "16:00 , 18:00 , 20:00 , 22:00";		close;	}	else if ( BaseLevel < 150 || Zeny < 1000 ) { // requirement		mes "[Devil Square Guardian]";		mes "Minimum base level to enter is 150";		mes "The registration fee is 1000z";		close;	}	else if ( .register_num >= .register_limit ) { // room FULL		mes "[Devil Square Guardian]";		mes "I'm sorry but the Devil Square is FULL";		mes "Maximum users to enter is "+ .register_limit +" players";		close;	}	zeny = zeny - 1000;	announce strcharinfo(0)+" has entered the Devil Square", bc_npc;	percentheal 100,100;	warp "ordeal_1-1",183,182;	.register_aid[ .register_num ] = getcharid(3);	.register_num++;	end;OnInit:	.register_limit = 10; // maximum amount of players can play in this event	.ann_survive = 30000; // the rate at which announce the players that still survive in devil square, in mili-seconds	bindatcmd "devilsquare", strnpcinfo(0)+"::Onatcmd", 99,100;	end;Onatcmd:	if ( compare( .@atcmd_parameters$, "on" ) || compare( .@atcmd_parameters$, "start" ) ) {		if ( .start )			dispbottom "Devil Square Event already started.";		else			goto L_Start;	}	else if ( compare( .@atcmd_parameters$, "off" ) || compare( .@atcmd_parameters$, "end" ) ) {		if ( !.start )			dispbottom "Devil Square Event not yet start.";		else			goto L_End;	}	else if ( !.start ) {		dispbottom "Devil Square Event is currently not running.";		dispbottom "Use "+ .@atcmd_command$ +" on | start to start the event.";		dispbottom "Use "+ .@atcmd_command$ +" off | end to end this event";	}	else if ( .start == 1 )		dispbottom "Devil Square Event is currently accepting participations.";	else		dispbottom "Devil Square Event is currently running. Currently on Round "+ .round +" with "+ .mob +" mobs left.";	end;L_Start:OnClock0000: // yeah I know about OnMinute ... it just that more people knows better using OnClockOnClock0200:OnClock0400:OnClock0600:OnClock0800:OnClock1000:OnClock1200:OnClock1400:OnClock1600:OnClock1800:OnClock2000:OnClock2200:	if ( .start ) end;	.start = 1;	disablenpc "Exit#DS";	mapannounce "ordeal_1-1","Devil Square is now closed", bc_map;	getmapxy .@map$, .@x, .@y, 1;	mapwarp "ordeal_1-1", .@map$, .@x, .@y;	killmonsterall "ordeal_1-1";	announce "Devil Square is OPENED NOW!! 5 Minutes until it starts..!!", bc_all;	sleep 60000;	announce "Devil Square will begin in 4 minutes..!!", bc_all;	sleep 60000;	announce "Devil Square will begin in 3 minutes..!!", bc_all;	sleep 60000;	announce "Devil Square will begin in 2 minutes..!!", bc_all;	sleep 60000;	announce "Devil Square will begin in 1 minutes..!!", bc_all;	sleep 60000;	announce "Devil Square is STARTED NOW !!", bc_all;	if ( !.register_num )		goto L_End;	.start = 2;	donpcevent strnpcinfo(0)+"::OnSurvive";	.round = 1;	.mob = 75;	areamonster "ordeal_1-1",183,182,246,244,"[DS] SOLDIER SKELETON",1028,10,strnpcinfo(0)+"::Ondevildead";	areamonster "ordeal_1-1",183,182,246,244,"[DS] ORC ARCHER",1189,15,strnpcinfo(0)+"::Ondevildead";	areamonster "ordeal_1-1",183,182,246,244,"[DS] SANDMAN",1165,10,strnpcinfo(0)+"::Ondevildead";	areamonster "ordeal_1-1",183,182,246,244,"[DS] ARCHER SKELETON",1016,15,strnpcinfo(0)+"::Ondevildead";	areamonster "ordeal_1-1",183,182,246,244,"[DS] MINOROUS",1149,15,strnpcinfo(0)+"::Ondevildead";	areamonster "ordeal_1-1",183,182,246,244,"[DS] REQUIEM",1164,10,strnpcinfo(0)+"::Ondevildead";	end;Ondevildead:	.mob--;	if ( .mob == 25 || .mob == 5 )		announce "Devil Square : "+ .mob +" mobs to enter the 2nd round", bc_map;	else if ( !.mob ) {		announce "Devil Square will enter to 2nd round", bc_map;		goto Ondevil2;	}	end;Ondevil2:	.round = 2;	.mob = 70;	areamonster "ordeal_1-1",183,182,246,244,"[DS] GARGOYLE",1253,15,strnpcinfo(0)+"::Ondevildead2";	areamonster "ordeal_1-1",183,182,246,244,"[DS] ALARM",1193,10,strnpcinfo(0)+"::Ondevildead2";	areamonster "ordeal_1-1",183,182,246,244,"[DS] HIGH ORC",1213,10,strnpcinfo(0)+"::Ondevildead2";	areamonster "ordeal_1-1",183,182,246,244,"[DS] INJUSTICE",1257,10,strnpcinfo(0)+"::Ondevildead2";	areamonster "ordeal_1-1",183,182,246,244,"[DS] MIMIC",1191,15,strnpcinfo(0)+"::Ondevildead2";	areamonster "ordeal_1-1",183,182,246,244,"[DS] WRAITH",1192,10,strnpcinfo(0)+"::Ondevildead2";	end;Ondevildead2:	.mob--;	if ( .mob == 25 || .mob == 5 )		announce "Devil Square : "+ .mob +" mobs left to enter the 3rd round", bc_map;	else if ( !.mob ) {		announce "Devil Square will enter to 3rd round", bc_map;		goto Ondevil3;	}	end;Ondevil3:	.round = 3;	.mob = 58;	areamonster "ordeal_1-1",183,182,246,244,"[DS] ANOLIAN",1206,15,strnpcinfo(0)+"::Ondevildead3";	areamonster "ordeal_1-1",183,182,246,244,"[DS] WANDERER",1208,15,strnpcinfo(0)+"::Ondevildead3";	areamonster "ordeal_1-1",183,182,246,244,"[DS] DEVIRUCHI",1109,10,strnpcinfo(0)+"::Ondevildead3";	areamonster "ordeal_1-1",183,182,246,244,"[DS] JOKER",1131,15,strnpcinfo(0)+"::Ondevildead3";	areamonster "ordeal_1-1",183,182,246,244,"[DS] MOONLIGHT",1150,2,strnpcinfo(0)+"::Ondevildead3";	areamonster "ordeal_1-1",183,182,246,244,"[DS] DARK ILLUSION",1302,1,strnpcinfo(0)+"::Ondevildead3";	end;Ondevildead3:	.mob--;	if ( .mob == 25 || .mob == 5 )		announce "Devil Square : "+ .mob +" mobs left to VICTORY", bc_map;	else if ( !.mob ) {		announce "Devil Square : CONGRATULATION - 10 Treasure Boxs will be yours now", bc_map;		goto Ondevil4;	}	end;Ondevil4:	.round = 4;	.mob = 10;	monster "ordeal_1-1",231,250,"Treasure Box",1324,1,strnpcinfo(0)+"::Onboxdead";	monster "ordeal_1-1",234,247,"Treasure Box",1328,1,strnpcinfo(0)+"::Onboxdead";	monster "ordeal_1-1",237,244,"Treasure Box",1332,1,strnpcinfo(0)+"::Onboxdead";	monster "ordeal_1-1",240,241,"Treasure Box",1336,1,strnpcinfo(0)+"::Onboxdead";	monster "ordeal_1-1",243,238,"Treasure Box",1340,1,strnpcinfo(0)+"::Onboxdead";	monster "ordeal_1-1",246,235,"Treasure Box",1344,1,strnpcinfo(0)+"::Onboxdead";	monster "ordeal_1-1",249,232,"Treasure Box",1348,1,strnpcinfo(0)+"::Onboxdead";	monster "ordeal_1-1",252,229,"Treasure Box",1352,1,strnpcinfo(0)+"::Onboxdead";	monster "ordeal_1-1",249,241,"Treasure Box",1356,1,strnpcinfo(0)+"::Onboxdead";	monster "ordeal_1-1",240,249,"Treasure Box",1360,1,strnpcinfo(0)+"::Onboxdead";	end;Onboxdead:	.mob--;	announce "Devil Square : "+ strcharinfo(0) +" has opened the treasure box at Devil Square", bc_all;	if ( !.mob )		goto L_End;	end;L_End:	killmonsterall "ordeal_1-1";	enablenpc "Exit#DS";	deletearray .register_aid;	.start = .round = .mob = .register_num = 0;	end;OnPCDieEvent:OnPCLogoutEvent:	if ( .start && strcharinfo(3) == "ordeal_1-1" ) {		while ( .register_aid[.@i] != getcharid(3) && .@i < .register_num ) .@i++;		deletearray .register_aid[.@i], 1;		.register_num--;		if ( !.register_num ) {			announce "All players failed to survive at Devil Square", bc_all;			killmonsterall "ordeal_1-1";			goto L_End;		}	}	end;OnSurvive:	while ( .start == 2 ) {		mapannounce "ordeal_1-1", .register_num +" players is still survive at Devil Square", bc_map;		sleep .ann_survive;	}	end;}ordeal_1-1,246,245,7	script	Exit#DS	51,{	mes "[Exit]";	mes "See ya";	next;	warp "SavePoint", 0,0 ;	close;}ordeal_1-1	mapflag	nowarpordeal_1-1	mapflag	nowarptoordeal_1-1	mapflag	noteleportordeal_1-1	mapflag	nosave	SavePointordeal_1-1	mapflag	nomemoordeal_1-1	mapflag	nobranchordeal_1-1	mapflag	nopenaltyordeal_1-1	mapflag	noicewall

@Annie can you make this script compatible in Hercules.

 

Thanks

Edited by Hadeszeus

Share this post


Link to post
Share on other sites

2 answers to this question

Recommended Posts

  • 0

This script was re-write by AnnieRuru @ http://rathena.org/board/topic/77632-devil-square/

I'm trying to make it work in Hercules.

 

When the Round start there's now mobs on the map and keep announcing "2 players is still at Devil Square."

 

//   Made:By Kirlein (Tyirial Script Concept)  //// Devil Square based off the mmorpg Muonline  //// Have Fun and feel free to leave suggestions ////          Leave This intacted                //// +   Translated by Stillhard aka Dewa        //// +  Add times for 24 hours of play         //// +  Add a little bit infos for newbie users  ////      Completely rewrite by ~AnnieRuru~      //// +  Tested with rAthena 17101                //// http://rathena.org/board/topic/77632-devil-square//////////////////////////////////////////////////prontera,156,185,5	script	Devil Square	100,{	mes "[Devil Square Guardian]";	mes "Welcome to the entrance door to ^FF0000Devil Square^000000";	mes "If you failed or die, the door will be closed and you have to wait until it start to open again";	next;	if ( select ( "Enter", "Info", "Cancel " ) == 3 ) {		mes "[Devil Square Guardian]";		mes "See ya";		close;	}	else if ( @menu == 2 ) { // Info		mes "[Devil Square Guardian]";		mes "There are 3 level monster you'll encounter";		mes "Each level the enemies will grow stronger";		mes "If you succeded to win all 3 level monster, you'll get the opportunity to open 10 Treasure Box with items, equips, and rare cards inside!!";		close;	}	else if ( .start != 1 ) { // time		mes "[Devil Square Guardian]";		mes "Devil Square is now closed";		mes "It'll be open again at:";		mes "00:00 , 02:00 , 04:00 , 06:00"; // display your time here		mes "08:00 , 10:00 , 12:00 , 14:00";		mes "16:00 , 18:00 , 20:00 , 22:00";		close;	}	else if ( BaseLevel < 150 || Zeny < 1000 ) { // requirement		mes "[Devil Square Guardian]";		mes "Minimum base level to enter is 150";		mes "The registration fee is 1000z";		close;	}	else if ( .register_num >= .register_limit ) { // room FULL		mes "[Devil Square Guardian]";		mes "I'm sorry but the Devil Square is FULL";		mes "Maximum users to enter is "+ .register_limit +" players";		close;	}	zeny = zeny - 1000;	announce strcharinfo(0)+" has entered the Devil Square", bc_npc;	percentheal 100,100;	warp "ordeal_1-1",183,182;	.register_aid[ .register_num ] = getcharid(3);	.register_num++;	end;OnInit:	.register_limit = 10; // maximum amount of players can play in this event	.ann_survive = 30000; // the rate at which announce the players that still survive in devil square, in mili-seconds	bindatcmd "devilsquare", strnpcinfo(0)+"::Onatcmd", 99,100;	end;Onatcmd:	if ( compare( .@atcmd_parameters$, "on" ) || compare( .@atcmd_parameters$, "start" ) ) {		if ( .start )			dispbottom "Devil Square Event already started.";		else			goto L_Start;	}	else if ( compare( .@atcmd_parameters$, "off" ) || compare( .@atcmd_parameters$, "end" ) ) {		if ( !.start )			dispbottom "Devil Square Event not yet start.";		else			goto L_End;	}	else if ( !.start ) {		dispbottom "Devil Square Event is currently not running.";		dispbottom "Use "+ .@atcmd_command$ +" on | start to start the event.";		dispbottom "Use "+ .@atcmd_command$ +" off | end to end this event";	}	else if ( .start == 1 )		dispbottom "Devil Square Event is currently accepting participations.";	else		dispbottom "Devil Square Event is currently running. Currently on Round "+ .round +" with "+ .mob +" mobs left.";	end;L_Start:OnClock0000: // yeah I know about OnMinute ... it just that more people knows better using OnClockOnClock0200:OnClock0400:OnClock0600:OnClock0800:OnClock1000:OnClock1200:OnClock1400:OnClock1600:OnClock1800:OnClock2000:OnClock2200:	if ( .start ) end;	.start = 1;	disablenpc "Exit#DS";	mapannounce "ordeal_1-1","Devil Square is now closed", bc_map;	getmapxy .@map$, .@x, .@y, 1;	mapwarp "ordeal_1-1", .@map$, .@x, .@y;	killmonsterall "ordeal_1-1";	announce "Devil Square is OPENED NOW!! 5 Minutes until it starts..!!", bc_all;	sleep 60000;	announce "Devil Square will begin in 4 minutes..!!", bc_all;	sleep 60000;	announce "Devil Square will begin in 3 minutes..!!", bc_all;	sleep 60000;	announce "Devil Square will begin in 2 minutes..!!", bc_all;	sleep 60000;	announce "Devil Square will begin in 1 minutes..!!", bc_all;	sleep 60000;	announce "Devil Square is STARTED NOW !!", bc_all;	if ( !.register_num )		goto L_End;	.start = 2;	donpcevent strnpcinfo(0)+"::OnSurvive";	.round = 1;	.mob = 75;	areamonster "ordeal_1-1",183,182,246,244,"[DS] SOLDIER SKELETON",1028,10,strnpcinfo(0)+"::Ondevildead";	areamonster "ordeal_1-1",183,182,246,244,"[DS] ORC ARCHER",1189,15,strnpcinfo(0)+"::Ondevildead";	areamonster "ordeal_1-1",183,182,246,244,"[DS] SANDMAN",1165,10,strnpcinfo(0)+"::Ondevildead";	areamonster "ordeal_1-1",183,182,246,244,"[DS] ARCHER SKELETON",1016,15,strnpcinfo(0)+"::Ondevildead";	areamonster "ordeal_1-1",183,182,246,244,"[DS] MINOROUS",1149,15,strnpcinfo(0)+"::Ondevildead";	areamonster "ordeal_1-1",183,182,246,244,"[DS] REQUIEM",1164,10,strnpcinfo(0)+"::Ondevildead";	end;Ondevildead:	.mob--;	if ( .mob == 25 || .mob == 5 )		announce "Devil Square : "+ .mob +" mobs to enter the 2nd round", bc_map;	else if ( !.mob ) {		announce "Devil Square will enter to 2nd round", bc_map;		goto Ondevil2;	}	end;Ondevil2:	.round = 2;	.mob = 70;	areamonster "ordeal_1-1",183,182,246,244,"[DS] GARGOYLE",1253,15,strnpcinfo(0)+"::Ondevildead2";	areamonster "ordeal_1-1",183,182,246,244,"[DS] ALARM",1193,10,strnpcinfo(0)+"::Ondevildead2";	areamonster "ordeal_1-1",183,182,246,244,"[DS] HIGH ORC",1213,10,strnpcinfo(0)+"::Ondevildead2";	areamonster "ordeal_1-1",183,182,246,244,"[DS] INJUSTICE",1257,10,strnpcinfo(0)+"::Ondevildead2";	areamonster "ordeal_1-1",183,182,246,244,"[DS] MIMIC",1191,15,strnpcinfo(0)+"::Ondevildead2";	areamonster "ordeal_1-1",183,182,246,244,"[DS] WRAITH",1192,10,strnpcinfo(0)+"::Ondevildead2";	end;Ondevildead2:	.mob--;	if ( .mob == 25 || .mob == 5 )		announce "Devil Square : "+ .mob +" mobs left to enter the 3rd round", bc_map;	else if ( !.mob ) {		announce "Devil Square will enter to 3rd round", bc_map;		goto Ondevil3;	}	end;Ondevil3:	.round = 3;	.mob = 58;	areamonster "ordeal_1-1",183,182,246,244,"[DS] ANOLIAN",1206,15,strnpcinfo(0)+"::Ondevildead3";	areamonster "ordeal_1-1",183,182,246,244,"[DS] WANDERER",1208,15,strnpcinfo(0)+"::Ondevildead3";	areamonster "ordeal_1-1",183,182,246,244,"[DS] DEVIRUCHI",1109,10,strnpcinfo(0)+"::Ondevildead3";	areamonster "ordeal_1-1",183,182,246,244,"[DS] JOKER",1131,15,strnpcinfo(0)+"::Ondevildead3";	areamonster "ordeal_1-1",183,182,246,244,"[DS] MOONLIGHT",1150,2,strnpcinfo(0)+"::Ondevildead3";	areamonster "ordeal_1-1",183,182,246,244,"[DS] DARK ILLUSION",1302,1,strnpcinfo(0)+"::Ondevildead3";	end;Ondevildead3:	.mob--;	if ( .mob == 25 || .mob == 5 )		announce "Devil Square : "+ .mob +" mobs left to VICTORY", bc_map;	else if ( !.mob ) {		announce "Devil Square : CONGRATULATION - 10 Treasure Boxs will be yours now", bc_map;		goto Ondevil4;	}	end;Ondevil4:	.round = 4;	.mob = 10;	monster "ordeal_1-1",231,250,"Treasure Box",1324,1,strnpcinfo(0)+"::Onboxdead";	monster "ordeal_1-1",234,247,"Treasure Box",1328,1,strnpcinfo(0)+"::Onboxdead";	monster "ordeal_1-1",237,244,"Treasure Box",1332,1,strnpcinfo(0)+"::Onboxdead";	monster "ordeal_1-1",240,241,"Treasure Box",1336,1,strnpcinfo(0)+"::Onboxdead";	monster "ordeal_1-1",243,238,"Treasure Box",1340,1,strnpcinfo(0)+"::Onboxdead";	monster "ordeal_1-1",246,235,"Treasure Box",1344,1,strnpcinfo(0)+"::Onboxdead";	monster "ordeal_1-1",249,232,"Treasure Box",1348,1,strnpcinfo(0)+"::Onboxdead";	monster "ordeal_1-1",252,229,"Treasure Box",1352,1,strnpcinfo(0)+"::Onboxdead";	monster "ordeal_1-1",249,241,"Treasure Box",1356,1,strnpcinfo(0)+"::Onboxdead";	monster "ordeal_1-1",240,249,"Treasure Box",1360,1,strnpcinfo(0)+"::Onboxdead";	end;Onboxdead:	.mob--;	announce "Devil Square : "+ strcharinfo(0) +" has opened the treasure box at Devil Square", bc_all;	if ( !.mob )		goto L_End;	end;L_End:	killmonsterall "ordeal_1-1";	enablenpc "Exit#DS";	deletearray .register_aid;	.start = .round = .mob = .register_num = 0;	end;OnPCDieEvent:OnPCLogoutEvent:	if ( .start && strcharinfo(3) == "ordeal_1-1" ) {		while ( .register_aid[.@i] != getcharid(3) && .@i < .register_num ) .@i++;		deletearray .register_aid[.@i], 1;		.register_num--;		if ( !.register_num ) {			announce "All players failed to survive at Devil Square", bc_all;			killmonsterall "ordeal_1-1";			goto L_End;		}	}	end;OnSurvive:	while ( .start == 2 ) {		mapannounce "ordeal_1-1", .register_num +" players is still survive at Devil Square", bc_map;		sleep .ann_survive;	}	end;}ordeal_1-1,246,245,7	script	Exit#DS	51,{	mes "[Exit]";	mes "See ya";	next;	warp "SavePoint", 0,0 ;	close;}ordeal_1-1	mapflag	nowarpordeal_1-1	mapflag	nowarptoordeal_1-1	mapflag	noteleportordeal_1-1	mapflag	nosave	SavePointordeal_1-1	mapflag	nomemoordeal_1-1	mapflag	nobranchordeal_1-1	mapflag	nopenaltyordeal_1-1	mapflag	noicewall

@Annie can you make this script compatible in Hercules.

 

Thanks

you can try this

 

//===== rAthena Script =======================================//= Devil Square//===== By: ==================================================//= Kirlein, Stillhard (translation), AnnieRuru (rewrite)//===== Current Version: =====================================//= 1.0//===== Compatible With: =====================================//= rAthena Project//===== Description: =========================================//= Devil Square, based on the event in MU Online.//= Defeat three waves of monsters for treasure.//===== Additional Comments: =================================//= 1.0 First version, edited. [Euphy]//============================================================prontera,156,185,5	script	Devil Square Guardian#1	406,{	set .@gm_level, 99; // GM level required to start/stop the event	mes "[Devil Square Guardian]";	mes "This is the entrance to ^FF0000Devil Square^000000.";	mes "If you fail or die, the door will close and you must wait until the event starts again to re-enter.";	next;	switch(select("Enter.:Information.:" + ((getgmlevel() >= .@gm_level) ? "GM Menu." : "") + ":Cancel.")) {	case 1:		if (.start != 1) { // registration period			mes "[Devil Square Guardian]";			mes "Devil Square is now closed.";			mes "It will open at these times:";			mes "00:00 , 02:00 , 04:00 , 06:00"; // display your times here			mes "08:00 , 10:00 , 12:00 , 14:00";			mes "16:00 , 18:00 , 20:00 , 22:00";			close;		}		if (BaseLevel < 70 || Zeny < 20000) { // requirements			mes "[Devil Square Guardian]";			mes "You do not meet the requirements to enter Devil Square.";			mes " ";			mes "Requirements:";			mes " - Base Level 70";			mes " - Registration fee 20,000z";			close;		}		Zeny -= 20000;		announce strcharinfo(0)+" has entered Devil Square.", bc_npc;		percentheal 100,100;		warp "ordeal_1-1",183,182;		close;	case 2:		mes "[Devil Square Guardian]";		mes "Inside, you will encounter 3 waves of monsters. The monsters will grow stronger with each wave.";		next;		mes "[Devil Square Guardian]";		mes "If you defeat all the enemies, you will be given the opportunity to open 10 Treasure Chests with items, equipment, and rare cards inside!";		close;	case 3:		mes "[Devil Square Guardian]";		switch (.start) { // event states			case 0: mes "Devil Square has not yet started."; break;			case 1: mes "Devil Square is currently accepting participants."; break;			case 2: mes "Devil Square Event is currently running on Round "+ .round +" with "+ .mob +" monsters remaining."; break;		}		next;		switch(select("Start event.:Stop event.:Cancel.")) {		case 1:			mes "[Devil Square Guardian]";			if (.start)				mes "Devil Square has already started.";			else {				mes "Starting Devil Square...";				donpcevent strnpcinfo(0)+"::OnStartEvent";			}			close;		case 2:			mes "[Devil Square Guardian]";			if (!.start)				mes "Devil Square has not yet started.";			else {				mes "Stopping Devil Square...";				donpcevent strnpcinfo(0)+"::OnStopEvent";			}			close;		case 3:			break;		}		break;	case 4:		break;	}	mes "[Devil Square Guardian]";	mes "Farewell.";	close;OnStartEvent:OnClock0000:OnClock0200:OnClock0400:OnClock0600:OnClock0800:OnClock1000:OnClock1200:OnClock1400:OnClock1600:OnClock1800:OnClock2000:OnClock2200:	.start = 1;	disablenpc "ord11-12"; //from npc/warps/pvp.txt	disablenpc "Devil Square Guardian#2";	mapannounce "ordeal_1-1","Devil Square is now closed.", bc_map;	getmapxy .@map$, .@x, .@y, 1;	mapwarp "ordeal_1-1", .@map$, .@x, .@y;	killmonsterall "ordeal_1-1";	announce "Devil Square is OPEN. The event will begin in 5 minutes.", bc_all;	sleep 60000;	announce "Devil Square will begin in 4 minutes.", bc_all;	sleep 60000;	announce "Devil Square will begin in 3 minutes.", bc_all;	sleep 60000;	announce "Devil Square will begin in 2 minutes.", bc_all;	sleep 60000;	announce "Devil Square will begin in 1 minute.", bc_all;	sleep 60000;	announce "Devil Square has STARTED!", bc_all;	if ( !getmapusers("ordeal_1-1") )		goto OnStopEvent;	.start = 2;	.round = 1;	.mob = 75;	areamonster "ordeal_1-1",183,182,246,244,"[DS] SOLDIER SKELETON",1028,10,strnpcinfo(0)+"::OnDevilDead";	areamonster "ordeal_1-1",183,182,246,244,"[DS] ORC ARCHER",1189,15,strnpcinfo(0)+"::OnDevilDead";	areamonster "ordeal_1-1",183,182,246,244,"[DS] SANDMAN",1165,10,strnpcinfo(0)+"::OnDevilDead";	areamonster "ordeal_1-1",183,182,246,244,"[DS] ARCHER SKELETON",1016,15,strnpcinfo(0)+"::OnDevilDead";	areamonster "ordeal_1-1",183,182,246,244,"[DS] MINOROUS",1149,15,strnpcinfo(0)+"::OnDevilDead";	areamonster "ordeal_1-1",183,182,246,244,"[DS] REQUIEM",1164,10,strnpcinfo(0)+"::OnDevilDead";	end;OnDevilDead:	.mob--;	if ( .mob == 25 || .mob == 5 )		announce "Devil Square : "+ .mob +" monsters remaining in round 1.", bc_map;	else if ( .mob <= 0 ) {		announce "Devil Square is entering round 2...", bc_map;		goto OnDevil2;	}	end;OnDevil2:	.round = 2;	.mob = 70;	areamonster "ordeal_1-1",183,182,246,244,"[DS] GARGOYLE",1253,15,strnpcinfo(0)+"::OnDevilDead2";	areamonster "ordeal_1-1",183,182,246,244,"[DS] ALARM",1193,10,strnpcinfo(0)+"::OnDevilDead2";	areamonster "ordeal_1-1",183,182,246,244,"[DS] HIGH ORC",1213,10,strnpcinfo(0)+"::OnDevilDead2";	areamonster "ordeal_1-1",183,182,246,244,"[DS] INJUSTICE",1257,10,strnpcinfo(0)+"::OnDevilDead2";	areamonster "ordeal_1-1",183,182,246,244,"[DS] MIMIC",1191,15,strnpcinfo(0)+"::OnDevilDead2";	areamonster "ordeal_1-1",183,182,246,244,"[DS] WRAITH",1192,10,strnpcinfo(0)+"::OnDevilDead2";	end;OnDevilDead2:	.mob--;	if ( .mob == 25 || .mob == 5 )		announce "Devil Square : "+ .mob +" monsters remaining in round 2.", bc_map;	else if ( .mob <= 0 ) {		announce "Devil Square is entering round 3...", bc_map;		goto OnDevil3;	}	end;OnDevil3:	.round = 3;	.mob = 58;	areamonster "ordeal_1-1",183,182,246,244,"[DS] ANOLIAN",1206,15,strnpcinfo(0)+"::OnDevilDead3";	areamonster "ordeal_1-1",183,182,246,244,"[DS] WANDERER",1208,15,strnpcinfo(0)+"::OnDevilDead3";	areamonster "ordeal_1-1",183,182,246,244,"[DS] DEVIRUCHI",1109,10,strnpcinfo(0)+"::OnDevilDead3";	areamonster "ordeal_1-1",183,182,246,244,"[DS] JOKER",1131,15,strnpcinfo(0)+"::OnDevilDead3";	areamonster "ordeal_1-1",183,182,246,244,"[DS] MOONLIGHT",1150,2,strnpcinfo(0)+"::OnDevilDead3";	areamonster "ordeal_1-1",183,182,246,244,"[DS] DARK ILLUSION",1302,1,strnpcinfo(0)+"::OnDevilDead3";	end;OnDevilDead3:	.mob--;	if ( .mob == 25 || .mob == 5 )		announce "Devil Square : "+ .mob +" monsters remaining in the final round.", bc_map;	else if ( .mob <= 0 ) {		announce "Devil Square : CONGRATULATIONS. These 10 Treasure Chests are yours.", bc_map;		goto OnDevil4;	}	end;OnDevil4:	.round = 4;	.mob = 10;	monster "ordeal_1-1",231,250,"Treasure Chest",1324,1,strnpcinfo(0)+"::OnTreasureDead";	monster "ordeal_1-1",234,247,"Treasure Chest",1328,1,strnpcinfo(0)+"::OnTreasureDead";	monster "ordeal_1-1",237,244,"Treasure Chest",1332,1,strnpcinfo(0)+"::OnTreasureDead";	monster "ordeal_1-1",240,241,"Treasure Chest",1336,1,strnpcinfo(0)+"::OnTreasureDead";	monster "ordeal_1-1",243,238,"Treasure Chest",1340,1,strnpcinfo(0)+"::OnTreasureDead";	monster "ordeal_1-1",246,235,"Treasure Chest",1344,1,strnpcinfo(0)+"::OnTreasureDead";	monster "ordeal_1-1",249,232,"Treasure Chest",1348,1,strnpcinfo(0)+"::OnTreasureDead";	monster "ordeal_1-1",252,229,"Treasure Chest",1352,1,strnpcinfo(0)+"::OnTreasureDead";	monster "ordeal_1-1",249,241,"Treasure Chest",1356,1,strnpcinfo(0)+"::OnTreasureDead";	monster "ordeal_1-1",240,249,"Treasure Chest",1360,1,strnpcinfo(0)+"::OnTreasureDead";	end;OnTreasureDead:	.mob--;	announce "Devil Square : "+ strcharinfo(0) +" has opened the Treasure Chest at Devil Square.", bc_all;	if ( .mob <= 0 )		goto OnStopEvent;	end;OnStopEvent:	killmonsterall "ordeal_1-1";	enablenpc "ord11-12"; //from npc/warps/pvp.txt	enablenpc "Devil Square Guardian#2";	.start = .round = .mob = 0;	end;}ordeal_1-1,246,245,7	script	Devil Square Guardian#2	406,{	mes "[Exit]";	mes "Farewell.";	close2;	warp "SavePoint",0,0;	end;}ordeal_1-1	mapflag	nowarpordeal_1-1	mapflag	nowarptoordeal_1-1	mapflag	noteleportordeal_1-1	mapflag	monster_noteleportordeal_1-1	mapflag	nosave	SavePointordeal_1-1	mapflag	nomemoordeal_1-1	mapflag	nobranchordeal_1-1	mapflag	nopenaltyordeal_1-1	mapflag	noicewall

https://raw.github.com/rathena/rathena/master/npc/custom/events/devil_square.txt

Share this post


Link to post
Share on other sites

Please sign in to comment

You will be able to leave a comment after signing in



Sign In Now

×
×
  • Create New...

Important Information

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