Jump to content
  • 0

Annieruru bg_emp reward for loosing team request


iraciz

Question


  • Group:  Members
  • Topic Count:  140
  • Topics Per Day:  0.03
  • Content Count:  562
  • Reputation:   108
  • Joined:  10/05/12
  • Last Seen:  

Hello guys, could you help me to set rewards for the loosing team,  15 valor badges id 7829, here's the script, its really hard for a noob like me.

//===== rAthena Script =======================================
//= Battleground: Emperium
//===== Description: =========================================
//= A simple battleground script:
//= Destroy the opponent's Emperium to win the match.
//===== Changelogs: ==========================================
//= 1.0 First version, edited. [Euphy] [AnnieRuru]
//= 1.1 Use up to date battleground script commands [AnnieRuru]
//= 1.2 Fix player can be kill multiple times within 250ms time frame [AnnieRuru]
//============================================================

-	script	bg_emp#control	-1,{
OnInit:
	.minplayer2start = 5;      // 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: <item>,<amount>,...
		7829, 30;
	end;
OnStart:
	if ( getwaitingroomstate( 0, .rednpcname$ ) < .minplayer2start || getwaitingroomstate( 0, .bluenpcname$ ) < .minplayer2start )
		end;

	// create Battleground and teams
	.red = waitingroom2bg( "-", 0,0, strnpcinfo(0)+"::OnRedQuit", strnpcinfo(0)+"::OnRedDead", .rednpcname$ );
	.blue = waitingroom2bg( "-", 0,0, strnpcinfo(0)+"::OnBlueQuit", strnpcinfo(0)+"::OnBlueDead", .bluenpcname$ );
	delwaitingroom .rednpcname$;
	delwaitingroom .bluenpcname$;
	setwall "bat_a01", 164,347, 6, 4, 0, "bg_emp_town_red";
	setwall "bat_a01", 154,51, 6, 4, 0, "bg_emp_town_blue";
	bg_warp .red, "bat_a01", 171,346;
	bg_warp .blue, "bat_a01", 162,50;

	// delay before match begins
	sleep 6000;
	mapannounce "bat_a01", "The rules are simple. The first team to break the opponent's Emperium wins!", bc_map;
	sleep 3000;
	for ( .@i = 5; .@i > 0; --.@i ) {
		mapannounce "bat_a01", "["+ .@i +"]", bc_map;
		sleep 1000;
	}
	mapannounce "bat_a01", "Start!", bc_map;

	// spawn Emperiums
	bg_monster .red,"bat_a01",171,346, "--ja--",1915, strnpcinfo(3)+"::OnRedDown";
	bg_monster .blue,"bat_a01",162,50, "--ja--",1914, strnpcinfo(3)+"::OnBlueDown";
	delwall "bg_emp_town_red";
	delwall "bg_emp_town_blue";

	// match duration
	sleep .eventlasting * 1000;

	// end match, destroy Battleground, reset NPCs
	killmonster "bat_a01", strnpcinfo(3)+"::OnRedDown";
	killmonster "bat_a01", strnpcinfo(3)+"::OnBlueDown";
	if ( .winside ) {
		mapannounce "bat_a01", "- "+( (.winside == .red)? "Red" : "Blue" )+" Team is victorious! -", bc_map;
		bg_get_data .winside, 1;
		for ( .@i = 0; .@i < $@arenamemberscount; ++.@i )
			getitem .rewarditem[0], .rewarditem[1], $@arenamembers[.@i];
	} else
		mapannounce "bat_a01", "- The match has ended in a draw! -", bc_map;
	sleep 5000;
	bg_warp .red, "prontera", 155,182;
	bg_warp .blue, "prontera", 158,182;
	bg_destroy .red;
	bg_destroy .blue;
	.winside = 0;
	donpcevent .rednpcname$ +"::OnStart";
	donpcevent .bluenpcname$ +"::OnStart";
	end;

// Emperium destroyed
OnRedDown:  callsub L_EmpDown, "Red", .blue;
OnBlueDown: callsub L_EmpDown, "Blue", .red;
L_EmpDown:
	mapannounce "bat_a01", strcharinfo(0) +" has destroyed "+ getarg(0) +" Team's Emperium.", bc_map;
	.winside = getarg(1);
	awake strnpcinfo(0);
	end;

// "OnDeath" event
OnRedDead:  callsub L_Dead, 157,347;
OnBlueDead: callsub L_Dead, 142,51;
L_Dead:
	warp "bat_a01", getarg(0), getarg(1);
	percentheal 100,100;
	end;

// "OnQuit" event
OnRedQuit:  callsub L_Quit, .red, "Red";
OnBlueQuit: callsub L_Quit, .blue, "Blue";
L_Quit:
	percentheal 100, 100;
	if ( !bg_get_data( getarg(0), 0 ) )
		mapannounce "bat_a01", "All "+ getarg(1) +" team members have quit!", bc_map, 0xff3333;
	end;
}

bat_room,138,136,6	script	Red Team#bg_emp	413,{
	end;
OnInit:
	sleep 1;
	set getvariableofnpc( .rednpcname$, "bg_emp#control" ), strnpcinfo(0);
OnStart:
	waitingroom "Red Team", getvariableofnpc( .minplayer2start, "bg_emp#control" ) +1, "bg_emp#control::OnStart", getvariableofnpc( .minplayer2start, "bg_emp#control" );
	end;
}

bat_room,144,136,4	script	Blue Team#bg_emp	417,{
	end;
OnInit:
	sleep 1;
	set getvariableofnpc( .bluenpcname$, "bg_emp#control" ), strnpcinfo(0);
OnStart:
	waitingroom "Blue Team", getvariableofnpc( .minplayer2start, "bg_emp#control" ) +1, "bg_emp#control::OnStart", getvariableofnpc( .minplayer2start, "bg_emp#control" );
	end;
}

bat_room,141,135,6	script	BG EMP	858,{
mes "BG EMP 5 VS 5";
mes "Premio Equipo Ganador:";
mes "30 <ITEM>Valor Badge<INFO>7828</INFO></ITEM>";
mes "Premio Equipo Perdedor:";
mes "15 <ITEM>Valor Badge<INFO>7828</INFO></ITEM>";
end;
}

bat_a01	mapflag	battleground
bat_a01	mapflag	nosave	SavePoint
bat_a01	mapflag	nowarp
bat_a01	mapflag	nowarpto
bat_a01	mapflag	noteleport
bat_a01	mapflag	nomemo
bat_a01	mapflag	nopenalty
bat_a01	mapflag	nobranch
bat_a01	mapflag	noicewall
bat_a01	mapflag	hidemobhpbar

 

Edited by iraciz
Link to comment
Share on other sites

2 answers to this question

Recommended Posts

  • 1

  • Group:  Members
  • Topic Count:  50
  • Topics Per Day:  0.01
  • Content Count:  1702
  • Reputation:   238
  • Joined:  09/05/12
  • Last Seen:  

//===== rAthena Script =======================================
//= Battleground: Emperium
//===== Description: =========================================
//= A simple battleground script:
//= Destroy the opponent's Emperium to win the match.
//===== Changelogs: ==========================================
//= 1.0 First version, edited. [Euphy] [AnnieRuru]
//= 1.1 Use up to date battleground script commands [AnnieRuru]
//= 1.2 Fix player can be kill multiple times within 250ms time frame [AnnieRuru]
//============================================================

-	script	bg_emp#control	-1,{
OnInit:
	.minplayer2start = 5;      // 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: <item>,<amount>,...
		7829, 30;
	end;
OnStart:
	if ( getwaitingroomstate( 0, .rednpcname$ ) < .minplayer2start || getwaitingroomstate( 0, .bluenpcname$ ) < .minplayer2start )
		end;

	// create Battleground and teams
	.red = waitingroom2bg( "-", 0,0, strnpcinfo(0)+"::OnRedQuit", strnpcinfo(0)+"::OnRedDead", .rednpcname$ );
	.blue = waitingroom2bg( "-", 0,0, strnpcinfo(0)+"::OnBlueQuit", strnpcinfo(0)+"::OnBlueDead", .bluenpcname$ );
	delwaitingroom .rednpcname$;
	delwaitingroom .bluenpcname$;
	setwall "bat_a01", 164,347, 6, 4, 0, "bg_emp_town_red";
	setwall "bat_a01", 154,51, 6, 4, 0, "bg_emp_town_blue";
	bg_warp .red, "bat_a01", 171,346;
	bg_warp .blue, "bat_a01", 162,50;

	// delay before match begins
	sleep 6000;
	mapannounce "bat_a01", "The rules are simple. The first team to break the opponent's Emperium wins!", bc_map;
	sleep 3000;
	for ( .@i = 5; .@i > 0; --.@i ) {
		mapannounce "bat_a01", "["+ .@i +"]", bc_map;
		sleep 1000;
	}
	mapannounce "bat_a01", "Start!", bc_map;

	// spawn Emperiums
	bg_monster .red,"bat_a01",171,346, "--ja--",1915, strnpcinfo(3)+"::OnRedDown";
	bg_monster .blue,"bat_a01",162,50, "--ja--",1914, strnpcinfo(3)+"::OnBlueDown";
	delwall "bg_emp_town_red";
	delwall "bg_emp_town_blue";

	// match duration
	sleep .eventlasting * 1000;

	// end match, destroy Battleground, reset NPCs
	killmonster "bat_a01", strnpcinfo(3)+"::OnRedDown";
	killmonster "bat_a01", strnpcinfo(3)+"::OnBlueDown";
	if ( .winside ) {
		mapannounce "bat_a01", "- "+( (.winside == .red)? "Red" : "Blue" )+" Team is victorious! -", bc_map;
		bg_get_data .winside, 1;
		for ( .@i = 0; .@i < $@arenamemberscount; ++.@i )
			getitem .rewarditem[0], .rewarditem[1], $@arenamembers[.@i];
		bg_get_data .loseside, 1;
		for ( .@i = 0; .@i < $@arenamemberscount; ++.@i )
			getitem 7829, 15, $@arenamembers[.@i];
	} else
		mapannounce "bat_a01", "- The match has ended in a draw! -", bc_map;
	sleep 5000;
	bg_warp .red, "prontera", 155,182;
	bg_warp .blue, "prontera", 158,182;
	bg_destroy .red;
	bg_destroy .blue;
	.winside = 0;
	donpcevent .rednpcname$ +"::OnStart";
	donpcevent .bluenpcname$ +"::OnStart";
	end;

// Emperium destroyed
OnRedDown:  callsub L_EmpDown, "Red", .blue;
OnBlueDown: callsub L_EmpDown, "Blue", .red;
L_EmpDown:
	mapannounce "bat_a01", strcharinfo(0) +" has destroyed "+ getarg(0) +" Team's Emperium.", bc_map;
	.winside = getarg(1);
	.loseside = .winside == .red ? .blue : .red;
	awake strnpcinfo(0);
	end;

// "OnDeath" event
OnRedDead:  callsub L_Dead, 157,347;
OnBlueDead: callsub L_Dead, 142,51;
L_Dead:
	warp "bat_a01", getarg(0), getarg(1);
	percentheal 100,100;
	end;

// "OnQuit" event
OnRedQuit:  callsub L_Quit, .red, "Red";
OnBlueQuit: callsub L_Quit, .blue, "Blue";
L_Quit:
	percentheal 100, 100;
	if ( !bg_get_data( getarg(0), 0 ) )
		mapannounce "bat_a01", "All "+ getarg(1) +" team members have quit!", bc_map, 0xff3333;
	end;
}

bat_room,138,136,6	script	Red Team#bg_emp	413,{
	end;
OnInit:
	sleep 1;
	set getvariableofnpc( .rednpcname$, "bg_emp#control" ), strnpcinfo(0);
OnStart:
	waitingroom "Red Team", getvariableofnpc( .minplayer2start, "bg_emp#control" ) +1, "bg_emp#control::OnStart", getvariableofnpc( .minplayer2start, "bg_emp#control" );
	end;
}

bat_room,144,136,4	script	Blue Team#bg_emp	417,{
	end;
OnInit:
	sleep 1;
	set getvariableofnpc( .bluenpcname$, "bg_emp#control" ), strnpcinfo(0);
OnStart:
	waitingroom "Blue Team", getvariableofnpc( .minplayer2start, "bg_emp#control" ) +1, "bg_emp#control::OnStart", getvariableofnpc( .minplayer2start, "bg_emp#control" );
	end;
}

bat_room,141,135,6	script	BG EMP	858,{
mes "BG EMP 5 VS 5";
mes "Premio Equipo Ganador:";
mes "30 <ITEM>Valor Badge<INFO>7828</INFO></ITEM>";
mes "Premio Equipo Perdedor:";
mes "15 <ITEM>Valor Badge<INFO>7828</INFO></ITEM>";
end;
}

bat_a01	mapflag	battleground
bat_a01	mapflag	nosave	SavePoint
bat_a01	mapflag	nowarp
bat_a01	mapflag	nowarpto
bat_a01	mapflag	noteleport
bat_a01	mapflag	nomemo
bat_a01	mapflag	nopenalty
bat_a01	mapflag	nobranch
bat_a01	mapflag	noicewall
bat_a01	mapflag	hidemobhpbar

 

  • MVP 1
Link to comment
Share on other sites

  • 0

  • Group:  Members
  • Topic Count:  140
  • Topics Per Day:  0.03
  • Content Count:  562
  • Reputation:   108
  • Joined:  10/05/12
  • Last Seen:  

Neat, is working as expected, I'm really thankful @Patskie

1487754681_poringmachines.png.6fc73a08c3c4bb0857eae6cfd7db3401.png

iraciz

Edited by iraciz
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...