Jump to content
  • 0

devil square problem


Quazy

Question


  • Group:  Members
  • Topic Count:  12
  • Topics Per Day:  0.00
  • Content Count:  44
  • Reputation:   0
  • Joined:  11/21/13
  • Last Seen:  

//   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 :P        //
// +  Add a little bit infos for newbie users  //
//      Completely rewrite by ~AnnieRuru~      //
// +  Tested with rAthena 17101                //
// http://rathena.org/board/topic/77632-devil-square/
/////////////////////////////////////////////////

geffen,107,148,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 < 70 || zeny < 20000 ) { // requirement
		mes "[Devil Square Guardian]";
		mes "Minimum base level to enter is 70";
		mes "The registration fee is 20,000z";
		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 - 20000;
	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 OnClock
OnClock0200:
OnClock0400:
OnClock0600:
OnClock0800:
OnClock1000:
OnClock1200:
OnClock1400:
OnClock1539:
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!! 2 Minutes until it starts..!!", bc_all;
	sleep 30000;
	announce "Devil Square will begin in 1 minutes..!!", bc_all;
	sleep 30000;
	announce "Devil Square will begin in 1 minutes..!!", bc_all;
	sleep 30000;
	announce "Devil Square will begin in 1 minutes..!!", bc_all;
	sleep 10000;
	announce "Devil Square will begin in 1 minutes..!!", bc_all;
	sleep 10000;
	announce "Devil Square is STARTED NOW !!", bc_all;
	if ( !.register_num )
		goto L_End;
	.start = 2;
	donpcevent strnpcinfo(0)+"::OnSurvive";
	.round = 1;
	.mob = 27;
	areamonster "ordeal_1-1",183,182,246,244,"[DS] JUGGERNAUT",2399,1,strnpcinfo(0)+"::Ondevildead";
	areamonster "ordeal_1-1",183,182,246,244,"[DS] TOAD",1089,15,strnpcinfo(0)+"::Ondevildead";
	areamonster "ordeal_1-1",183,182,246,244,"[DS] MEW",2393,5,strnpcinfo(0)+"::Ondevildead";
	areamonster "ordeal_1-1",183,182,246,244,"[DS] THANATOS",1708,2,strnpcinfo(0)+"::Ondevildead";
	areamonster "ordeal_1-1",183,182,246,244,"[DS] HIGH WIZARD",1645,1,strnpcinfo(0)+"::Ondevildead";
	areamonster "ordeal_1-1",183,182,246,244,"[DS] SANTA PORING",1062,3,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 == 0 ) {
		announce "Devil Square will enter to 2nd round", bc_map;
		goto Ondevil2;
	}
	end;

Ondevil2:
	.round = 2;
	.mob = 17;
	areamonster "ordeal_1-1",183,182,246,244,"[DS] JUGGERNAUT",2399,1,strnpcinfo(0)+"::Ondevildead2";
	areamonster "ordeal_1-1",183,182,246,244,"[DS] MUTANT DRAGONOID",1262,10,strnpcinfo(0)+"::Ondevildead2";
	areamonster "ordeal_1-1",183,182,246,244,"[DS] SANTA PORING",1062,3,strnpcinfo(0)+"::Ondevildead2";
	areamonster "ordeal_1-1",183,182,246,244,"[DS] VALKYRIE RANDGRIS",1751,1,strnpcinfo(0)+"::Ondevildead2";
	areamonster "ordeal_1-1",183,182,246,244,"[DS] LORD KNIGHT",1646,1,strnpcinfo(0)+"::Ondevildead2";
	areamonster "ordeal_1-1",183,182,246,244,"[DS] HIGH PRIEST",1649,1,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 = 13;
	areamonster "ordeal_1-1",183,182,246,244,"[DS] JUGGERNAUT",2399,1,strnpcinfo(0)+"::Ondevildead3";
	areamonster "ordeal_1-1",183,182,246,244,"[DS] ENTWEIHEN CROTHEN",1957,3,strnpcinfo(0)+"::Ondevildead3";
	areamonster "ordeal_1-1",183,182,246,244,"[DS] BAKONAWA",2409,1,strnpcinfo(0)+"::Ondevildead3";
	areamonster "ordeal_1-1",183,182,246,244,"[DS] ASSASSIN CROSS EREMES",1647,2,strnpcinfo(0)+"::Ondevildead3";
	areamonster "ordeal_1-1",183,182,246,244,"[DS] WHITESMITH HARWORD",1648,1,strnpcinfo(0)+"::Ondevildead3";
	areamonster "ordeal_1-1",183,182,246,244,"[DS] SANTA PORING",1062,5,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 = 15;
	monster "ordeal_1-1",231,250,"Treasure Box",1324,5,strnpcinfo(0)+"::Onboxdead";
	monster "ordeal_1-1",234,247,"Treasure Box",1328,10,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	nowarp
ordeal_1-1	mapflag	nowarpto
ordeal_1-1	mapflag	noteleport
ordeal_1-1	mapflag	nosave	SavePoint
ordeal_1-1	mapflag	nomemo
ordeal_1-1	mapflag	nobranch
ordeal_1-1	mapflag	nopenalty
ordeal_1-1	mapflag	noicewall

 

 

i cant trigger round 2 even if all the monster are killed. 6 players survived please help thanks!

Link to comment
Share on other sites

7 answers to this question

Recommended Posts

  • 0

  • Group:  Members
  • Topic Count:  0
  • Topics Per Day:  0
  • Content Count:  4
  • Reputation:   0
  • Joined:  11/27/16
  • Last Seen:  

esta com qual problema?

Link to comment
Share on other sites

  • 0

  • Group:  Members
  • Topic Count:  12
  • Topics Per Day:  0.00
  • Content Count:  44
  • Reputation:   0
  • Joined:  11/21/13
  • Last Seen:  

On 12/19/2016 at 3:51 PM, HappyMan said:

use this one. 100% working

devilsquare.txt

still cant trigger round 2 :(

i think the problem is the script is not counting the monster left. if they killed monster no announcement 

on how many monster left before the next round 

Edited by Quazy
Link to comment
Share on other sites

  • 0

  • Group:  Members
  • Topic Count:  20
  • Topics Per Day:  0.01
  • Content Count:  191
  • Reputation:   24
  • Joined:  07/19/14
  • Last Seen:  

4 hours ago, Quazy said:

still cant trigger round 2 :(

i think the problem is the script is not counting the monster left. if they killed monster no announcement 

on how many monster left before the next round 

sir im using that event npc and it is 100% working.

Link to comment
Share on other sites

  • 0

  • Group:  Members
  • Topic Count:  12
  • Topics Per Day:  0.00
  • Content Count:  44
  • Reputation:   0
  • Joined:  11/21/13
  • Last Seen:  

18 hours ago, HappyMan said:

sir im using that event npc and it is 100% working.

but not working on me sir i tried to use your original script what i edit is just the npc location and the time so i can test it but the problem is the same. it doesnt count how many monster left to advance to round 2 when the player killed all the monster the npc only keep counting how many players left in the devil square

Link to comment
Share on other sites

  • 0

  • Group:  Developer
  • Topic Count:  48
  • Topics Per Day:  0.01
  • Content Count:  1443
  • Reputation:   337
  • Joined:  10/17/12
  • Last Seen:  

@Quazy what git hash are you using? 

Link to comment
Share on other sites

  • 0

  • Group:  Members
  • Topic Count:  12
  • Topics Per Day:  0.00
  • Content Count:  44
  • Reputation:   0
  • Joined:  11/21/13
  • Last Seen:  

On 12/21/2016 at 4:26 AM, Stolao said:

@Quazy what git hash are you using? 

i download it in github

 

up

Link to comment
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.   Paste as plain text instead

  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.

×
×
  • Create New...