Jump to content
  • 0
Sign in to follow this  
Helena

bg_warp warps last person twice to a different map?

Question

Hello dear community,

 

Can anyone please help me?

 

I'm using annie's custom BG script, it works well but for some weird reason the last person that dies is being warped twice. First to prontera (as they should) but afterwards it gets warped back to its savepoint. Does anyone know why? I have no where a line that says warp "SavePoint",0,0;

 

I don't really care if he gets sent back to his savepoint but if that is the case, I want everyone to send back to their savepoint, but something like mapwarp "guild_vs3","SavePoint",0,0; does not work, is there another way i can achieve this? Or is there a way (in the source?) were I can stop the last player that dies in bg from being forced to first warp back to its savepoint?

 

This is the script, gracias. :)

 

 

-	script	custom_bg#control	-1,{OnInit:	set .minplayer2start, 7; // minimum player to start ... please do not set to 1	setarray .rewarditem,		22001, 200, // reward to the winning team		22001, 50; // reward to the losing team	set .startingscore, 30; // score at start	set .eventlasting, 20*60; // event last 20 minutes or the system abort itself	set .red_cloth, 1; // color value from red clothing	set .blue_cloth, 2; // color value from blue clothing	set .grey_cloth, 3; // color value from grey clothing	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;	}	.red = waitingroom2bg( "guild_vs3", 13,50, strnpcinfo(0)+"::OnredQuit", strnpcinfo(0)+"::OnredDead", .rednpcname$ );	copyarray .team1aid, $@arenamembers, $@arenamembersnum;	.team1count = .minplayer2start;	.blue = waitingroom2bg( "guild_vs3", 86,50, strnpcinfo(0)+"::OnblueQuit", strnpcinfo(0)+"::OnblueDead", .bluenpcname$ );	copyarray .team2aid, $@arenamembers, $@arenamembersnum;	.team2count = .minplayer2start;	delwaitingroom .rednpcname$;	delwaitingroom .bluenpcname$;	bg_warp .red, "guild_vs3", 13,50;	bg_warp .blue, "guild_vs3", 86,50;	.score[1] = .score[2] =.startingscore;	bg_updatescore "guild_vs3", .score[1], .score[2];	callsub L_setleader, 1;	callsub L_setleader, 2;	for ( .@i = 0; .@i < .minplayer2start; .@i++ ) {		attachrid .team1aid[.@i];		@clotes_color = getlook( look_clothes_color );		setlook look_clothes_color, ( .leader_aid[1] == getcharid(3) )? .grey_cloth : .red_cloth;	}	for ( .@i = 0; .@i < .minplayer2start; .@i++ ) {		attachrid .team2aid[.@i];		@clotes_color = getlook( look_clothes_color );		setlook look_clothes_color, ( .leader_aid[2] == getcharid(3) )? .grey_cloth : .blue_cloth;	}	sleep .eventlasting * 1000;	if ( .score[1] > .score[2] ) {		mapannounce "guild_vs3", "red side wins !", 0;		callsub L_reward, 1, 0;		callsub L_reward, 2, 2;	}	else if ( .score[1] < .score[2] ) {		mapannounce "guild_vs3", "blue side wins !", 0;		callsub L_reward, 2, 0;		callsub L_reward, 1, 2;	}	else {		mapannounce "guild_vs3", "Draw !", 0;		callsub L_reward, 1, 2;		callsub L_reward, 2, 2;	}	bg_warp .red, "prontera",152,178;	bg_warp .blue, "prontera",154,178;	bg_destroy .red;	bg_destroy .blue;	donpcevent .rednpcname$ +"::OnStart";	donpcevent .bluenpcname$ +"::OnStart";	.leader_aid[1] = .leader_aid[2] = 0;	for ( .@i = 0; .@i < .team1count; .@i++ ) {		attachrid .team1aid[.@i];		setlook look_clothes_color, @clotes_color;		@clotes_color = 0;	}	for ( .@i = 0; .@i < .team2count; .@i++ ) {		attachrid .team2aid[.@i];		setlook look_clothes_color, @clotes_color;		@clotes_color = 0;	}	end;L_reward:	for ( .@i = 0; .@i < getd(".team"+ getarg(0) +"count"); .@i++ )		getitem .rewarditem[ getarg(1) ], .rewarditem[ getarg(1) +1 ], getd(".team"+ getarg(0) +"aid["+ .@i +"]" );	return;OnredDead: callsub L_dead, 1;OnblueDead: callsub L_dead, 2;L_dead:	if ( .leader_aid[ getarg(0) ] != getcharid(3) )		.score[ getarg(0) ]--;	else {		callsub L_setleader, getarg(0);		.score[ getarg(0) ] -= 2;	}	bg_updatescore "guild_vs3", .score[1], .score[2];	if ( .score[ getarg(0) ] <= 0 )		awake strnpcinfo(0);	sleep2 1250;	percentheal 100,100;	end;OnredQuit: callsub L_quit, 1, .red;OnblueQuit: callsub L_quit, 2, .blue;L_quit:	percentheal 100, 100;	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;	if ( .leader_aid[ getarg(0) ] == getcharid(3) )		callsub L_setleader, getarg(0);	setlook look_clothes_color, @clotes_color;	@clotes_color = 0;	if ( bg_get_data( getarg(1), 0 ) > 1 ) end;	.score[ getarg(0) ] = 0;	awake strnpcinfo(0);	end;L_setleader:	while ( ( .@tmp = getd( ".team"+ getarg(0) +"aid["+ rand( getd(".team"+ getarg(0) +"count") ) +"]" ) ) == playerattached() );	.leader_aid[ getarg(0) ] = .@tmp;	.@origin = playerattached();	attachrid .leader_aid[ getarg(0) ];	addtimer 1, strnpcinfo(0) +"::Onteam"+ getarg(0) +"leader";	attachrid .@origin;	return;Onteam1leader: callsub L_lead, 1, 548;Onteam2leader: callsub L_lead, 2, 549;L_lead:	while ( .leader_aid[ getarg(0) ] == getcharid(3) ) {		specialeffect2 getarg(1);		sleep2 1000;	}	end;}turbo_room,106,117,3	script	Red Team	733,{	end;OnInit:	sleep 50;	set getvariableofnpc( .rednpcname$, "custom_bg#control" ), strnpcinfo(0);OnStart:	waitingroom "Red Team", getvariableofnpc( .minplayer2start, "custom_bg#control" ) +1, "custom_bg#control::OnStart", 1;	end;}turbo_room,93,117,5	script	Blue Team	734,{	end;OnInit:	sleep 50;	set getvariableofnpc( .bluenpcname$, "custom_bg#control" ), strnpcinfo(0);OnStart:	waitingroom "Blue Team", getvariableofnpc( .minplayer2start, "custom_bg#control" ) +1, "custom_bg#control::OnStart", 1;	end;}guild_vs3	mapflag	battleground	2guild_vs3	mapflag	nosave	SavePointguild_vs3	mapflag	nowarpguild_vs3	mapflag	nowarptoguild_vs3	mapflag	noteleportguild_vs3	mapflag	nomemoguild_vs3	mapflag	nopenaltyguild_vs3	mapflag	nobranchguild_vs3	mapflag	noicewall

Share this post


Link to post
Share on other sites

1 answer to this question

Recommended Posts

  • 0

@@Helena,

 

1st thing 1st

change look_clothes_color into LOOK_CLOTHES_COLOR

it is a constant name

my old bad habit from rathena that their script engine doesn't care about capital letters

 

 

2nd, I tested this script

if the last person died, they should be remained as corpse on the floor at prontera

    bg_warp .red, "prontera",152,178;    bg_warp .blue, "prontera",154,178;
I can't reproduce your ... after 5 seconds they still warp to savepoint

and maybe you should change this line to your turbo_room

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.