Jump to content
  • 0

Battle Ground Requesting to Modify


Radian

Question


  • Group:  Members
  • Topic Count:  162
  • Topics Per Day:  0.04
  • Content Count:  1546
  • Reputation:   192
  • Joined:  07/23/14
  • Last Seen:  

Can i request from someone that can modified this Battle Ground System of AnnieRuRu?

 

What i am requesting is i wanna add a Battle Ground Ladder. ( Top 5 Battle Ground Ladder )

 

and a system that will allow anyone to join while the system is running and minimum player to start with is 5 vs 5.

 

this is the script that i am using. thanks!

-	script	bg_pvp_round#control	-1,{
OnInit:
	.minplayer2start = 1; // minimum player to start
	.winningscore = 2; // how many rounds to win
	.eventlasting = 20*60; // event last 20 minutes or the system abort itself
	setarray .rewardwin, 501,10, 502,5, 503,3; // reward to winning team
	setarray .rewardlose, 501,5, 502,3, 503,1; // reward to losing team

	.rewardwinsize = getarraysize( .rewardwin );
	.rewardlosesize = getarraysize( .rewardlose );
	end;
OnStart:
	if ( getwaitingroomstate( 0, .rednpcname$ ) < .minplayer2start || getwaitingroomstate( 0, .bluenpcname$ ) < .minplayer2start ) {
		announce "[ Battle Ground DeathMatch System ]  Blue Team : "+ getwaitingroomstate( 0, .bluenpcname$ ) + "/" + .minplayer2start + ". Red Team : "+ getwaitingroomstate( 0, .rednpcname$ ) + "/" + .minplayer2start,bc_all,0x00CED1;
		end;
	}
	announce "[ Battle Ground DeathMatch System ]  Battleground has started", bc_all, 0x00CED1;
	.red = waitingroom2bg( "bat_b01", 61,150, strnpcinfo(0)+"::OnRedQuit", strnpcinfo(0)+"::OnRedDead", .rednpcname$ );
	copyarray .team1aid, $@arenamembers, $@arenamembersnum;
	.team1count = .minplayer2start;
	.blue = waitingroom2bg( "bat_b01", 327,150, strnpcinfo(0)+"::OnBlueQuit", strnpcinfo(0)+"::OnBlueDead", .bluenpcname$ );
	copyarray .team2aid, $@arenamembers, $@arenamembersnum;
	.team2count = .minplayer2start;
	.life[1] = .life[2] = .minplayer2start;
	delwaitingroom .rednpcname$;
	delwaitingroom .bluenpcname$;
	disablenpc .rednpcname$;
	disablenpc .bluenpcname$;
	callsub L_setwall;
	bg_updatescore "bat_b01", 0, 0;
	bg_warp .red, "bat_b01", 61,150;
	bg_warp .blue, "bat_b01", 327,150;
	sleep 4000 * !.skip;
	mapannounce "bat_b01", "Kill all opponent team to gain 1 point, score "+ .winningscore +" points to win !", 0;
	sleep 2000 * !.skip;
	while (1) {
		for ( .@i = 5; .@i > 0; .@i-- ) {
			mapannounce "bat_b01", "["+ .@i +"]", 0;
			sleep 1000 * !.skip;
		}
		if ( .score[1] == .winningscore -1 && .score[2] == .winningscore -1 )
			mapannounce "bat_b01", "Final Round start!", 0;
		else
			mapannounce "bat_b01", "Round "+ .round++ +" start!", 0;
		callsub L_delwall;
		.life[1] = .team1count;
		.life[2] = .team2count;
		sleep .eventlasting * 1000 * !.skip;
		bg_updatescore "bat_b01", .score[1], .score[2];
		if ( .score[1] == .winningscore || .score[2] == .winningscore || !.winside ) break;
		sleep 5000 * !.skip;
		callsub L_make_player_move;
		bg_warp .red, "bat_b01", 61,150;
		bg_warp .blue, "bat_b01", 327,150;
		callsub L_setwall;
		sleep 1000 * !.skip;
		.winside = 0;
	}
	if ( .winside ) {
		mapannounce "bat_b01", " "+ ( ( .winside == 1 )? "Red" : "Blue" ) +" side wins !", 0;
		callsub L_reward, .winside, .rewardwin, .rewardwinsize;
		callsub L_reward, ( .winside == 1 )? 2:1, .rewardlose, .rewardlosesize;
	} else
		mapannounce "bat_b01", "Time Out. Aborting the match.", 0;
	sleep 5000;
	callsub L_make_player_move;
	bg_warp .red, "prontera", 155,182;
	bg_warp .blue, "prontera", 158,182;
	bg_destroy .red;
	bg_destroy .blue;
	callsub L_delwall;
	deletearray .team1aid;
	deletearray .team2aid;
	.round = .winside = .skip = .score[1] = .score[2] = .team1count = .team2count = .life[1] = .life[2] = 0;
	enablenpc .rednpcname$;
	enablenpc .bluenpcname$;
	donpcevent .rednpcname$ +"::OnStart";
	donpcevent .bluenpcname$ +"::OnStart";
	end;
L_reward:
	.@size = getarraysize( getd(".team"+ getarg(0) +"aid") );
	for ( .@i = 0; .@i < .@size; .@i++ )
		for ( .@j = 0; .@j < getarg(2); .@j += 2 )
			getitem getelementofarray( getarg(1), .@j ), getelementofarray( getarg(1), .@j +1 ), getd(".team"+ getarg(0) +"aid["+ .@i +"]" );
	return;
L_setwall:
	setwall "bat_b01", 58,153, 6, 6, 0, "bg_pvp_round_red_1";
	setwall "bat_b01", 64,153, 6, 4, 0, "bg_pvp_round_red_2";
	setwall "bat_b01", 64,147, 6, 2, 0, "bg_pvp_round_red_3";
	setwall "bat_b01", 58,147, 6, 0, 0, "bg_pvp_round_red_4";
	setwall "bat_b01", 324,153, 6, 6, 0, "bg_pvp_round_blue_1";
	setwall "bat_b01", 330,153, 6, 4, 0, "bg_pvp_round_blue_2";
	setwall "bat_b01", 330,147, 6, 2, 0, "bg_pvp_round_blue_3";
	setwall "bat_b01", 324,147, 6, 0, 0, "bg_pvp_round_blue_4";
	return;
L_delwall:
	delwall "bg_pvp_round_red_1";
	delwall "bg_pvp_round_red_2";
	delwall "bg_pvp_round_red_3";
	delwall "bg_pvp_round_red_4";
	delwall "bg_pvp_round_blue_1";
	delwall "bg_pvp_round_blue_2";
	delwall "bg_pvp_round_blue_3";
	delwall "bg_pvp_round_blue_4";
	return;
L_make_player_move:
	for ( .@j = 1; .@j <= 2; .@j++ ) {
		for ( .@i = 0; .@i < getd(".team"+ .@j +"count"); .@i++ ) {
			attachrid getd(".team"+ .@j +"aid["+ .@i +"]" );
			setoption 0x40, 0;
			pcblockmove getcharid(3), 0;
		}
	}
	return;
OnRedQuit: callsub L_quit, 1, "Red", 2, "Blue";
OnBlueQuit: callsub L_quit, 2, "Blue", 1, "Red";
L_quit:
	percentheal 100, 100;
	setoption 0x40, 0;
	pcblockmove getcharid(3), 0;
	while ( getd( ".team"+ getarg(0) +"aid["+ .@i +"]" ) != getcharid(3) && .@i < getd(".team"+ getarg(0) +"count") ) .@i++;
	deletearray getd( ".team"+ getarg(0) +"aid["+ .@i +"]" ), 1;
	setd ".team"+ getarg(0) +"count", getd(".team"+ getarg(0) +"count") -1;
	.life[ getarg(0) ]--;
	if ( !getd(".team"+ getarg(0) +"count") ) {
		mapannounce "bat_b01", "All "+ getarg(1) +" team members has Quit !", 0, 0xff3333; // purposely use different color
		.score[ getarg(2) ] = .winningscore;
		.winside = getarg(2);
		.skip = 1;
		awake strnpcinfo(0);
	}
	else if ( !.life[ getarg(0) ] ) {
		.winside = getarg(2);
		mapannounce "bat_b01", " "+ getarg(3) +" team has defeated the opponent team, "+ getarg(3) +" team score a point !", 0;
		.score[ getarg(2) ]++;
		awake strnpcinfo(0);
	}
	end;
OnRedDead: callsub L_dead, 1, 2, "Blue";
OnBlueDead: callsub L_dead, 2, 1, "Red";
L_dead:
	.life[ getarg(0) ]--;
	if ( !.life[ getarg(0) ] ) {
		.winside = getarg(1);
		mapannounce "bat_b01", " "+ getarg(2) +" team has defeated the opponent team, "+ getarg(2) +" team score a point !", 0;
		.score[ getarg(1) ]++;
		awake strnpcinfo(0);
	}
	sleep2 1250;
	percentheal 100,100;
	setoption 0x40, 1;
	pcblockmove getcharid(3), 1;
	end;
}

prontera,155,182,5	script	Red side#bg_pvp_r	100,{
	end;
OnInit:
	sleep 1;
	set getvariableofnpc( .rednpcname$, "bg_pvp_round#control" ), strnpcinfo(0);
OnStart:
	waitingroom "Red side", getvariableofnpc( .minplayer2start, "bg_pvp_round#control" ) +1, "bg_pvp_round#control::OnStart", 1;
	end;
}

prontera,158,182,5	script	Blue side#bg_pvp_r	100,{
	end;
OnInit:
	sleep 1;
	set getvariableofnpc( .bluenpcname$, "bg_pvp_round#control" ), strnpcinfo(0);
OnStart:
	waitingroom "Blue side", getvariableofnpc( .minplayer2start, "bg_pvp_round#control" ) +1, "bg_pvp_round#control::OnStart", 1;
	end;
}

bat_b01	mapflag	battleground	2
bat_b01	mapflag	nosave	SavePoint
bat_b01	mapflag	nowarp
bat_b01	mapflag	nowarpto
bat_b01	mapflag	noteleport
bat_b01	mapflag	nomemo
bat_b01	mapflag	nopenalty
bat_b01	mapflag	nobranch
bat_b01	mapflag	noicewall
Edited by Ginji
Link to comment
Share on other sites

13 answers to this question

Recommended Posts


  • Group:  Members
  • Topic Count:  18
  • Topics Per Day:  0.00
  • Content Count:  2044
  • Reputation:   682
  • Joined:  10/09/12
  • Last Seen:  

What i am requesting is i wanna add a Battle Ground Ladder. ( Top 5 Battle Ground Ladder )

so you mean you just want a ladder script that shows top 5 killer for killing other players in bat_b01 map ?

 

and a system that will allow anyone to join while the system is running and minimum player to start with is 5 vs 5.

I thought this system allows everyone to join ?

when a round is over, those 2 register npc will show up, click on the chat room to join

minimum player to start

.minplayer2start = 1; // minimum player to start
change to 5, will becomes 5vs5
Link to comment
Share on other sites


  • Group:  Members
  • Topic Count:  162
  • Topics Per Day:  0.04
  • Content Count:  1546
  • Reputation:   192
  • Joined:  07/23/14
  • Last Seen:  

 

 

so you mean you just want a ladder script that shows top 5 killer for killing other players in bat_b01 map ?

 

Yes, only on the BG map.

 

 

 

I thought this system allows everyone to join ?

when a round is over, those 2 register npc will show up, click on the chat room to join

 

no, sorry i mean when BG starts other players can join the Battle Ground even though its already started. but the minimum players must be 5 vs 5.

Edited by Ginji
Link to comment
Share on other sites


  • Group:  Members
  • Topic Count:  18
  • Topics Per Day:  0.00
  • Content Count:  2044
  • Reputation:   682
  • Joined:  10/09/12
  • Last Seen:  

its possible to do this but based on my past experience, when a team is certainly going to lose

all the player in the losing team will logout and then join the winning team, taking the most benefit of the reward

if you played counter-strike you should know this

players just want to enjoy winning the game and don't want to be in the losing team

Link to comment
Share on other sites


  • Group:  Members
  • Topic Count:  162
  • Topics Per Day:  0.04
  • Content Count:  1546
  • Reputation:   192
  • Joined:  07/23/14
  • Last Seen:  

its possible to do this but based on my past experience, when a team is certainly going to lose

all the player in the losing team will logout and then join the winning team, taking the most benefit of the reward

if you played counter-strike you should know this

players just want to enjoy winning the game and don't want to be in the losing team

 

I see, i was also thinking about that too :3 im sorry ill just stick to the same setup but is it possible to add a Ladder of it?

Link to comment
Share on other sites


  • Group:  Members
  • Topic Count:  18
  • Topics Per Day:  0.00
  • Content Count:  2044
  • Reputation:   682
  • Joined:  10/09/12
  • Last Seen:  

[paste=1w0niwopbpdt]

not that hard to write

man ... its been months since I last use a rathena test server to write a script, all the while using hercules

and just debugging this script alone with the extensive use of @reloadscript, my clean rathena test server can crashed 3 times

I don't recall my hercules test server can crash so many times in 1 single day

Edited by AnnieRuru
Link to comment
Share on other sites


  • Group:  Members
  • Topic Count:  162
  • Topics Per Day:  0.04
  • Content Count:  1546
  • Reputation:   192
  • Joined:  07/23/14
  • Last Seen:  

[paste=1w0niwopbpdt]

not that hard to write

man ... its been months since I last use a rathena test server to write a script, all the while using hercules

and just debugging this script alone with the extensive use of @reloadscript, my clean rathena test server can crashed 3 times

I don't recall my hercules test server can crash so many times in 1 single day

 

Thanks Annie :) will it be possible to put anti AFK? on the script? some of the my server is using dual clients. haha sorry for asking too much :(

Link to comment
Share on other sites


  • Group:  Members
  • Topic Count:  18
  • Topics Per Day:  0.00
  • Content Count:  2044
  • Reputation:   682
  • Joined:  10/09/12
  • Last Seen:  

so sick of hearing this same request again and again

http://hercules.ws/board/topic/7209-map-change/?p=43843

  • Upvote 1
Link to comment
Share on other sites


  • Group:  Members
  • Topic Count:  162
  • Topics Per Day:  0.04
  • Content Count:  1546
  • Reputation:   192
  • Joined:  07/23/14
  • Last Seen:  

so sick of hearing this same request again and again

http://hercules.ws/board/topic/7209-map-change/?p=43843

 

thank you so much for the time you spend. on my request  :)

Link to comment
Share on other sites


  • Group:  Members
  • Topic Count:  162
  • Topics Per Day:  0.04
  • Content Count:  1546
  • Reputation:   192
  • Joined:  07/23/14
  • Last Seen:  

Is it possible that each team will automatically create a temporary Party and Guild? so i can change the BG into a GvG mapflag.

 

 

and the players telling me that there should be another room for BG. bat_b02 can be used for another BG room.  

 

for example first match 5 vs 5 will warp on bat_b01 then second match will warp on bat_b02?

Edited by Ginji
Link to comment
Share on other sites


  • Group:  Members
  • Topic Count:  162
  • Topics Per Day:  0.04
  • Content Count:  1546
  • Reputation:   192
  • Joined:  07/23/14
  • Last Seen:  

@up

Link to comment
Share on other sites


  • Group:  Members
  • Topic Count:  162
  • Topics Per Day:  0.04
  • Content Count:  1546
  • Reputation:   192
  • Joined:  07/23/14
  • Last Seen:  

@bump?

Link to comment
Share on other sites


  • Group:  Forum Moderator
  • Topic Count:  93
  • Topics Per Day:  0.02
  • Content Count:  10018
  • Reputation:   2369
  • Joined:  10/28/11
  • Last Seen:  

Is it possible that each team will automatically create a temporary Party and Guild? so i can change the BG into a GvG mapflag.

 

and the players telling me that there should be another room for BG. bat_b02 can be used for another BG room.

 

for example first match 5 vs 5 will warp on bat_b01 then second match will warp on bat_b02?

why would you need another Party and Guild for that ?? the Battleground is already pretty much like combination for both Party and Guild.

Link to comment
Share on other sites


  • Group:  Members
  • Topic Count:  162
  • Topics Per Day:  0.04
  • Content Count:  1546
  • Reputation:   192
  • Joined:  07/23/14
  • Last Seen:  

 

Is it possible that each team will automatically create a temporary Party and Guild? so i can change the BG into a GvG mapflag.

 

and the players telling me that there should be another room for BG. bat_b02 can be used for another BG room.

 

for example first match 5 vs 5 will warp on bat_b01 then second match will warp on bat_b02?

 

why would you need another Party and Guild for that ?? the Battleground is already pretty much like combination for both Party and Guild.

 

 

im sorry i didn't know that. in that case how can i make 2 battle ground in 1 NPC?

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...