Jump to content
  • 0
Sign in to follow this  
- Mariel

Custom BG

Question

Hi guys, I'm using Annieruru's custom bg script. I can't make the rewards to items, it always just reward players with one item. How to edit this ?

 

/*	},{		name: "KVM (Level 60~79)" //must match the name in client files		event: "bg_emp::OnStart"		minLevel: 1		maxLevel: 150		reward: { // useless ! should be done by npc scripting			win: 0			loss: 0			draw: 0		}		minPlayers: 4 // minimum amount of players to start		maxPlayers: 5 // maximum amount of players. NOTE: I wonder why they set to 60 when MAX_BG_MEMBERS is only 30 		minTeamPlayers: 2 // try this to test		delay_var: "BG_EMP_Tick" // char variable name that will store the delay for this match		maxDuration: 1 // maximum duration in minutes ... this one also bugged		fillDuration: 20 // time in seconds to wait for more applications when minimum has been reached		pGameDuration: 20 // time to wait for players to confirm their attendence after queueing process has finished	},{*/function	script	rand__	{	.@range = getarg(0);	.@count = getarg(2, 0);	if ( !.@count || .@count > .@range )		.@count = .@range;	else if ( .@count > 128 )		.@count = 128;	while ( .@i < .@count ) {		.@r = .@save = rand( .@i, .@range -1 ) ;		if ( !getd( ".@tmp1_"+ .@i ) ) {			.@r = ( getd(".@tmp1_"+ .@r ) )? getd( ".@tmp2_"+ .@r ) : .@r;			setd ".@tmp2_"+ .@i, .@r;			setd ".@tmp2_"+ .@save , .@i;			setd ".@tmp1_"+ .@save , 1;			set getelementofarray( getarg(1), .@i ), .@r;			if ( .@save < .@count )				set getelementofarray( getarg(1), .@save ), .@i;		}		.@i++;	}	return .@count;}-	script	bg_emp	-1,{OnInit:	.eventlasting = 3; // duration in minutes	setarray .rewardwin, 7227,30, 14002,7, 7829,30; // reward to winning team	setarray .rewardlose, 7227,15, 14002,3, 7829,15; // reward to losing team	setarray .rewarddraw, 7225,20, 14002,5, 7829,20; // reward to both teams when draw	.rewardwinsize = getarraysize( .rewardwin );	.rewardlosesize = getarraysize( .rewardlose );	.rewarddrawsize = getarraysize( .rewarddraw );	end;OnStart://	Note: the server pushed these variables	for ( .@i = 0; .@i < $@bg_member_size; .@i++ ) {		switch ( $@bg_member_type[.@i] ) {		case 0:	announce rid2name( $@bg_member[.@i] ) +" SOLO", 0; break;		case 1:	announce rid2name( $@bg_member[.@i] ) +" from GUILD ["+ getguildname( $@bg_member_group[.@i] ) +"]", 0; break;		case 2:	announce rid2name( $@bg_member[.@i] ) +" from PARTY ["+ getpartyname( $@bg_member_group[.@i] ) +"]", 0; break;		}	}//	that's all I need for the battleground script to work, no need to use their 12 script commands	debugmes "Battleground Queue Start";	.red = createbgid( "guild_vs3", 45,50, strnpcinfo(0)+"::OnRedQuit", strnpcinfo(0)+"::OnRedDead" );	.blue = createbgid( "guild_vs3", 55,50, strnpcinfo(0)+"::OnBlueQuit", strnpcinfo(0)+"::OnBlueDead" );	.teamname$[.red] = "Red";	.teamname$[.blue] = "Blue";	callfunc "rand__", $@bg_member_size, $@rand;	.@modulus = rand(2);	for ( .@i = 0; .@i < $@bg_member_size; .@i++ )		setbgid ( .@i % 2 == .@modulus )? .red : .blue, $@bg_member[ $@rand[.@i] ];	bg_updatescore "guild_vs3", 0,0;	bg_warp .red, "guild_vs3", 45,50;	bg_warp .blue, "guild_vs3", 55,50;	bg_monster .red,"guild_vs3",47,50, "--ja--",1915, strnpcinfo(3)+"::OnRedDown";	bg_monster .blue,"guild_vs3",52,50, "--ja--",1914, strnpcinfo(3)+"::OnBlueDown";	sleep .eventlasting * 60000;	killmonsterall "guild_vs3";	if ( .winside == 1 ) {		mapannounce "guild_vs3", "- Red Team is victorious! -", bc_map;		callsub L_reward, .red,  .rewardwin,  .rewardwinsize;		callsub L_reward, .blue, .rewardlose, .rewardlosesize;	}	else if ( .winside == 2 ) {		mapannounce "guild_vs3", "- Blue Team is victorious! -", bc_map;		callsub L_reward, .blue, .rewardwin, .rewardwinsize;		callsub L_reward, .red, .rewardlose, .rewardlosesize;	}	else {		mapannounce "guild_vs3", "- The match has ended in a draw! -", bc_map;		callsub L_reward, .red,  .rewarddraw, .rewarddrawsize;		callsub L_reward, .blue, .rewarddraw, .rewarddrawsize;	}	sleep 5000;	mapwarp "guild_vs3","welgaia",156,105;	bg_destroy .red;	bg_destroy .blue;	.winside = 0;	sleep 1000;	bg_match_over "KVM (Level 60~79)"; // for some reason this one has to be execute in delay ? otherwise my client crash !	debugmes "Battleground Queue Ends";	end;L_reward:	getbgusers getarg(0);	for ( .@i = 0; .@i < $@arenamembersnum; .@i++ )		for ( .@j = 0; .@j < getarg(2); .@j += 2 )			getitem getelementofarray( getarg(1), .@j ), getelementofarray( getarg(1), .@j +1 ), $@arenamembers[.@i];	return;OnRedDown:  callsub L_EmpDown, .red,  2;OnBlueDown: callsub L_EmpDown, .blue, 1;L_EmpDown:	mapannounce "guild_vs3", strcharinfo(0) +" has destroyed "+ .teamname$[ getarg(0) ] +" Team's Emperium.", bc_map;	.winside = getarg(1);	awake strnpcinfo(0);	end;OnRedDead:OnBlueDead:	debugmes "Battleground Queue "+ strcharinfo(0) +" has dead";	sleep2 1250;	percentheal 100,100;	end;OnRedQuit:	callsub L_Quit, .red, 2;OnBlueQuit:	callsub L_Quit, .blue, 1;L_Quit:	debugmes "Battleground Queue "+ strcharinfo(0) +" quit battleground";	percentheal 100, 100;	bg_leave;	if ( bg_get_data( getarg(0), 0 ) ) end;	mapannounce "guild_vs3", "All "+ .teamname$[ getarg(0) ] +" team members have quit!", bc_map, 0xff3333;	.winside = getarg(1);	awake strnpcinfo(0);	end;}-	script	kdfhksfdsf	-1,{OnPCLogoutEvent:	debugmes strcharinfo(0) +" has logout";	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	noicewallwelgaia,146,115,5	script	Battleground#random	733,{OnInit:	.minplayer2start = 1;      // minimum players to start (ex. if 3vs3, set to 3)	.eventlasting = 20*60;  // event duration before auto-reset (20 minutes * seconds)	setarray .rewarditem[0],   // rewards for the winning team:		7829,20,7227,30; // <item>,<amount>	waitingroom "Battleground PVP", .minplayer2start *2 +1, strnpcinfo(0) +"::OnStart", .minplayer2start *2;	end;OnStart:	if ( getwaitingroomstate(0) < .minplayer2start *2 ) end;	debugmes "Battleground Normal Start";	getmapxy .@map$, .@x, .@y, 1;	warpwaitingpc .@map$, .@x, .@y, .minplayer2start *2;	.red = createbgid( "guild_vs3", 13,50, strnpcinfo(0)+"::OnRedQuit", strnpcinfo(0)+"::OnRedDead" );	.blue = createbgid( "guild_vs3", 86,50, strnpcinfo(0)+"::OnBlueQuit", strnpcinfo(0)+"::OnBlueDead" );	for ( .@i = 0; .@i < $@warpwaitingpcnum; .@i++ )		setbgid ( .@i % 2 )? .red : .blue, $@warpwaitingpc[.@i];	delwaitingroom strnpcinfo(0);	bg_warp .red, "guild_vs3", 13,50;	bg_warp .blue, "guild_vs3", 86,50;	.score[1] = .score[2] = .minplayer2start;	bg_updatescore "guild_vs3", .score[1], .score[2];	sleep .eventlasting * 1000;	if ( .score[1] > .score[2] ) {		mapannounce "guild_vs3", "- Red Team is victorious! -", bc_map;		callsub L_Reward, .red;	}	else if ( .score[1] < .score[2] ) {		mapannounce "guild_vs3", "- Blue Team is victorious! -", bc_map;		callsub L_Reward, .blue;	}	else		mapannounce "guild_vs3", "- The match has ended in a draw! -", bc_map;	mapwarp "guild_vs3","welgaia",156,105;	bg_destroy .red;	bg_destroy .blue;	waitingroom "Battleground PVP", .minplayer2start *2 +1, strnpcinfo(0) +"::OnStart", .minplayer2start *2;	debugmes "Battleground Normal Ends";	end;L_Reward:	getbgusers getarg(0);	for ( .@i = 0; .@i < $@arenamembersnum; .@i++ )		getitem .rewarditem[0], .rewarditem[1], $@arenamembers[.@i];	return;OnRedDead:  callsub L_Dead, 1;OnBlueDead: callsub L_Dead, 2;L_Dead:	debugmes "Battleground Normal "+ strcharinfo(0) +" has dead";	warp "Save", 0,0;	.score[ getarg(0) ]--;	bg_updatescore "guild_vs3", .score[1], .score[2];	bg_leave;	if ( !.score[ getarg(0) ] )		awake strnpcinfo(0);	sleep2 1250;	percentheal 100,100;	end;OnRedQuit:  callsub L_Quit, 1;OnBlueQuit: callsub L_Quit, 2;L_Quit:	debugmes "Battleground Normal "+ strcharinfo(0) +" quit battleground";	.score[ getarg(0) ]--;	bg_updatescore "guild_vs3", .score[1], .score[2];	if ( !.score[ getarg(0) ] )		awake strnpcinfo(0);	percentheal 100, 100;	end;}

 

Share this post


Link to post
Share on other sites

1 answer to this question

Recommended Posts

  • 0

Another bug is that every time the event is on going, the waiting room is not enabled but when you click the npc, it waiting room will pop out making the other players can join. 

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.