Jelajahi Sumber

* Documented Battleground commands with as much information as I've got.
* Another rather large overhaul of the battlegrounds.
- in bg_common.txt, stripped out several more NPCs, split them off.
- Most of the NPCs in bg_common.txt are now official Aegis versions.
- Completely rewrote Tierra Gorge for the most part, from ground up.
- Moved old Tierra Valley battlegrounds to /custom/battleground.
- Added Tierra scripts, Flavius, and bg_common to scripts_athena.
- Tierra, KvM, and bg_common scripts are now enabled by default.
- To use custom Flavius, you must enable /flavius/flavius_enter.txt
- * TIERRA GORGE AND KVM BOTH REQUIRE TESTING *


git-svn-id: https://svn.code.sf.net/p/rathena/svn/trunk@14373 54d463be-8e91-2dee-dedb-b68131a5f0ec

L0ne_W0lf 14 tahun lalu
induk
melakukan
a9a0d68dca

+ 2 - 0
Changelog-Trunk.txt

@@ -3,6 +3,8 @@ Date	Added
 AS OF SVN REV. 5091, WE ARE NOW USING TRUNK.  ALL UNTESTED BUGFIXES/FEATURES GO INTO TRUNK.
 IF YOU HAVE A WORKING AND TESTED BUGFIX PUT IT INTO STABLE AS WELL AS TRUNK.
 
+2010/08/11
+	* Documented Battleground commands with as much information as I've got. [L0ne_W0lf]
 2010/08/03
 	* Merged quite a bit of the RagexeRE eA Compatibility patch (eA topic 222623) to support the more recent clients. [Skotlex]
 2010/07/27

+ 129 - 2
doc/script_commands.txt

@@ -929,7 +929,7 @@ OnPCBaseLvUpEvent:
 OnPCJobLvUpEvent:
 
 It's pretty obvious when these four special labels will be invoked. For more
-information, see 'npc/sample/PCLoginEvent.txt'
+information, see 'doc/sample/PCLoginEvent.txt'
 
 OnPCDieEvent:
 
@@ -1008,6 +1008,7 @@ From here on, we will have the commands sorted as follow:
 6.- Other commands.
 7.- Instance Commands.
 8.- Quest Log Commands.
+9.- Battleground commands.
 
 =====================
 |1.- Basic commands.|
@@ -2121,6 +2122,7 @@ Type is the kind of associated ID number required:
  1 - Party ID number.
  2 - Guild ID number.
  3 - Account ID number.
+ 4 - Battle ground ID
 
 For most purposes other than printing it, a number is better to have than a name 
 (people do horrifying things to their character names).
@@ -5453,7 +5455,7 @@ In the OnBuyItem, two arrays are set (@bought_nameid and @bought_quantity), whic
 hold information about the name id (item id) sold and the amount sold of it. Same 
 goes for the OnSellItem label, only the variables are named different 
 (@sold_nameid and @sold_quantity). An example on a shop comes with eAthena, and 
-can be found in the npc/sample/npc_dynamic_shop.txt file.
+can be found in the doc/sample/npc_dynamic_shop.txt file.
  
 This example shows how to use the labels and their set variables to create a dynamic shop.
 
@@ -6721,5 +6723,130 @@ color can be:
 
 ----------------------------------------
 
+===========================
+|9.- Battleground commands.|
+===========================
+---------------------------------------
+
+*waitingroom2bg_single("<mapname>",<x>,<y>,"<On Quit Event>","<On Death Event>");
+*waitingroom2bg("<mapname>",<x>,<y>,"<On Quit Event>","<On Death Event>");
+
+<Mapname> and X Y coordinates refer to where the "respawn" base is, where the player group will respawn when they die.
+<On Quit Event> refers to an NPC label that attaches to the character and is run when they relog.
+<On Death Event> refers to an NPC label that attaches to the character and is run when they die. Can be "" for empty.
+
+Unlike the prior command, the latter will attach a GROUP in a waiting room to the battleground.
+
+Example:
+	// Battle Group will be refered to as $@KvM01BG_id1, and when they die, respawn at bat_c01,52,129.
+	set $@KvM01BG_id1, waitingroom2bg("bat_c01",52,129,"KvM01_BG::OnGuillaumeQuit","KvM01_BG::OnGuillaumeDie");
+	end;
+
+----------------------------------------
+
+*bg_team_setxy <Battle Group ID>,<x>,<y>;
+
+Update the respawn point of the given battle group to x, y on the same map. The <Battle Group ID> can be retrieved using getcharid(4)
+
+Example:
+	bg_team_setxy getcharid(4),56,212;
+	mapannounce "bat_a01", "Group [1] has taken the work shop, and will now respawn there.",bc_map,"0xFFCE00";
+	end;
+
+----------------------------------------
+
+*bg_warp <Battle Group>,"<Mapname>",<x>,<y>;
+
+Similar to warp command.
+Place all members of <Battle Group> at <mapname> at x y.
+
+Example:
+	//place the battle group one for Tierra Gorge at starting position.
+	bg_warp $@TierraBG1_id1,"bat_a01",352,342;
+	end;
+
+----------------------------------------
+
+*bg_monster <Battle Group>,"<map name>",<x>,<y>,"<name to show>",<mob id>,"<event label>";
+*bg_monster(<Battle Group>,"<map name>",<x>,<y>,"<name to show>",<mob id>,"<event label>");
+
+Similar to monster script command.
+Spawn a monster with allegiance to the given battle group.
+Does not allow for the summoning of multiple monsters.
+Monsters are similar to that in War of Emperium, in that the specified Battle group is considered friendly.
+
+Example:
+	// It can be used in two different ways.
+	bg_monster $@TierraBG1_id2,"bat_a01",167,50,"Food Depot",1910,"Feed Depot#1::OnMyMobDead";
+	end;
+
+	// Alternatively, you can set an ID for the monster using "set".
+	// This becomes useful when used with the command below.
+	set $@Guardian_3, bg_monster($@TierraBG1_id2,"bat_a01",268,204,"Guardian",1949,"NPCNAME::OnMyMobDead");
+	end;
+
+----------------------------------------
+
+*bg_monster_set_team <GID>,<Battle Group>;
+
+This command will change the allegiance if a monster in a battle ground.
+GID can be set when spawning the monster via the bg_monster command.
+
+Example:
+
+	end;
+
+OnEnable:
+	mapannounce "A guardian has been summoned for Battle Group 2!",bc_map,"0xFFCE00";
+	set $@Guardian, bg_monster($@BG_2,"bat_a01",268,204,"Guardian",1949,"NPCNAME::OnMyMobDead");
+	initnpctimer;
+	end;
+
+OnTimer1000:
+	stopnpctimer;
+	mapannounce "Erm, sorry about that! This monster was meant for Battle Group 1.",bc_map,"0xFFCE00";
+	bg_monster_set_team $@Guardian, $@BG_1;
+	end;
+
+----------------------------------------
+
+*bg_leave;
+
+Removes attached player from their Battle Group.
+
+----------------------------------------
+
+*bg_destroy <Batte Group>;
+
+As the name says, destroys the battle group created for that battle ground.
+
+----------------------------------------
+
+*areapercentheal "<mapname>",<x1>,<y1>,<x2>,<y2>,<hp>,<sp>;
+
+Not exactly limited to battleground use, this will restore HP/SP in a defined area at a percentage.
+
+Example:
+	areapercentheal "bat_a01",52,208,61,217,100,100;
+	end;
+
+----------------------------------------
+
+*bg_get_data(<Battle Group>,<type>);
+
+----------------------------------------
+
+*bg_getareausers
+
+----------------------------------------
+
+*bg_updatescore "<mapname>",<Guillaume Score>,<Croix Score>;
+
+Only usable when the map is defined as type:
+mapflag	<mapname>	battleground	2
+This command will force the update of the displayed scoreboard.
+
+----------------------------------------
+
 Whew.
 That's about all of them.

+ 10 - 0
npc/Changelog.txt

@@ -1,5 +1,15 @@
 Date		Added
 ======
+2010/08/11
+	* Rev. 14369 Another rather large overhaul of the battlegrounds. [L0ne_W0lf]
+	- in bg_common.txt, stripped out several more NPCs, split them off.
+	- Most of the NPCs in bg_common.txt are now official Aegis versions.
+	- Completely rewrote Tierra Gorge for the most part, from ground up.
+	- Moved old Tierra Valley battlegrounds to /custom/battleground.
+	- Added Tierra scripts, Flavius, and bg_common to scripts_athena.
+	- Tierra, KvM, and bg_common scripts are now enabled by default.
+	- To use custom Flavius, you must enable /flavius/flavius_enter.txt
+	- * TIERRA GORGE AND KVM BOTH REQUIRE TESTING *
 2010/07/29
 	* Rev. 14369 A rather large overhaul of the battlegrounds. [L0ne_W0lf]
 	- in bg_common.txt, stripped out KvM npcs, fixed coordinates.

+ 241 - 690
npc/battleground/bg_common.txt

@@ -11,136 +11,264 @@ bat_room	mapflag	nobranch
 bat_room	mapflag	nopenalty
 bat_room	mapflag	noteleport
 
-// BattleGround Warper - Entrance
-// *********************************************************************
-
-payon,189,104,3	script	Maroll Battle Recruiter::BatRecruit	728,{
-	mes "[Maroll Battle Recruiter]";
-	mes "Good day, adventurer.";
-	mes "I'm a knight from a far country called Maroll Kingdom.";
-	next;
-	mes "[Maroll Battle Recruiter]";
-	mes "The two princes of the kingdom are now battling for the throne of Maroll, and are in need of experienced soldiers like you. How would you like to lend your power to one of the princes in the Maroll Kingdom?";
-	next;
-	if( select("Join:Don't Join") == 2 )
-	{
-		mes "[Maroll Battle Recruiter]";
-		mes "I'll always be stationed here for more soldiers. Feel free to come back whenever you're interested.";
-		close;
-	}
-	mes "[Maroll Battle Recruiter]";
-	mes "May the war god bless you.";
-	close2;
-	warp "bat_room",155,150;
-	end;
-}
-
-prontera,123,83,5	duplicate(BatRecruit)	Maroll Battle Recruiter::BatRecruit2	728
-rachel,149,138,5	duplicate(BatRecruit)	Maroll Battle Recruiter::BatRecruit3	728
-moc_ruins,75,162,5	duplicate(BatRecruit)	Maroll Battle Recruiter::BatRecruit4	728
-aldebaran,146,109,5	duplicate(BatRecruit)	Maroll Battle Recruiter::BatRecruit5	728
-lighthalzen,153,86,5	duplicate(BatRecruit)	Maroll Battle Recruiter::BatRecruit6	728
-
-// BattleGround Warper - Exit
-// *********************************************************************
+// Generals
+//============================================================
+bat_room,161,158,3	script	Gen. Guillaume's Aide#01	419,{ end; }
+bat_room,161,160,3	script	Gen. Guillaume's Aide#03	419,{ end; }
 
-bat_room,148,150,4	script	Teleporter#bat	124,{
-	mes "[Teleporter]";
-	mes "Do you wish to leave the battlefield? Use my service to return to town.";
+bat_room,160,141,3	script	Prince Croix	416,{
+	cutin "bat_crua1",2;
+	mes "[Prince Croix]";
+	mes "Wise adventurer, why don't you lend us your power for victory?";
 	next;
-	if( select("Leave:Don't Leave") == 2 )
-	{
-		mes "[Teleporter]";
-		mes "I'll be here whenever you're in need of my service.";
-		close;
+	switch(select("What's the reason for the Battle?:Tell me about General Guillaume")) {
+	case 1:
+		cutin "bat_crua2",2;
+		mes "[Prince Croix]";
+		mes "Maroll's great king, Marcel Marollo VII, is very sick lately.";
+		mes "His Majesty has declared that he will be leaving the future of Maroll to me or the 3rd prince, General Guillaume.";
+		next;
+		mes "[Prince Croix]";
+		mes "General Guillaume may have an advantage in this battle as he is the great general of Maroll, but that doesn't automatically mean he'll win.";
+		mes "I want to win this battle so that I can bring prosperity to the people of Maroll. They've suffered enough from war...";
+		next;
+		switch(select("Yes, I want to join you.:End Conversation")) {
+		case 1:
+			cutin "bat_crua1",2;
+			mes "[Prince Croix]";
+			mes "Thank you so much. I feel like I can win with the help of adventurers like you.";
+			mes "Now, please go downstairs and join your comrades in sharpening their skills to fight the enemy!";
+			break;
+		case 2:
+			mes "[Prince Croix]";
+			mes "For Maroll!";
+			break;
+		}
+		break;
+	case 2:
+		cutin "bat_crua2",2;
+		mes "[Prince Croix]";
+		mes "The 3rd Prince Guillaume is the great general of Maroll.";
+		mes "It's a waste of time to explain to you how great a leader or warlord he is, since he commands the great military power of Maroll.";
+		next;
+		mes "[Prince Croix]";
+		mes "Unfortunately, there's something he and his followers are unaware of:";
+		mes "Do the people of Maroll really want them to spend so much money on military power?";
+		mes "We have suffered enough from wars.";
+		mes "I believe weapons aren't the best way to bring prosperity to a nation.";
+		next;
+		mes "[Prince Croix]";
+		mes "I do not wish to shed blood, but I have no choice but to fight for the possibility of peace and for the sake of my people.";
+		next;
+		switch(select("Yes, I want to join you.:End Conversation")) {
+		case 1:
+			cutin "bat_crua1",2;
+			mes "[Prince Croix]";
+			mes "Thank you so much. I feel like I can win with the help of adventurers like you.";
+			mes "Now, please go downstairs and join your comrades in sharpening their skills to fight the enemy!";
+			break;
+		case 2:
+			mes "[Prince Croix]";
+			mes "For Maroll!";
+			break;
+		}
+		break;
 	}
-
-	set .@spoint$, getsavepoint(0);
-	set .@x, getsavepoint(1);
-	set .@y, getsavepoint(2);
-	mes "[Teleporter]";
-	mes "You will be sent back to " + .@spoint$ + ".";
 	close2;
-	warp .@spoint$, .@x, .@y;
+	cutin "bat_crua1",255;
+	cutin "bat_crua2",255;
 	end;
 }
 
-// Kafra
-// *********************************************************************
-bat_room,148,147,4	script	Kafra Staff::kaf_bat	861,{
-	cutin "kafra_09",2;
-	callfunc "F_Kafra",0,2,1,150,0;
-}
+bat_room,161,140,3	script	Prince Croix's Aide#01	415,{ end; }
+bat_room,161,142,3	script	Prince Croix's Aide#02	415,{ end; }
 
-// General Guillaume
-// *********************************************************************
 bat_room,160,159,3	script	General Guillaume	420,{
 	cutin "bat_kiyom2",2;
 	mes "[General Guillaume]";
 	mes "Hot-blooded adventurer, we need your ability to win this battle.";
 	next;
-	cutin "bat_kiyom1",2;
-	mes "[General Guillaume]";
-	mes "Our great king, Marcel Marollo VII, is very sick lately. His Majesty has declared that he chosen either me or Prince Croix as the next king amongst his 9 sons.";
-	next;
-	mes "[General Guillaume]";
-	mes "Two kings can't share a nation!";
-	mes "Only the one victorious from His Majesty's appointed battle will be enthroned.";
-	next;
-	mes "[General Guillaume]";
-	mes "This is however, not just a battle between us. This battle will determine the future of this country. I pledge on my honor to prove that I'm the one who can protect this Maroll from outside threats.";
-	next;
-	if( select("Yes, I want to join you.:End Conversation") == 2 )
-	{
+	switch(select("What's the reason for the Battle?:Tell me about Prince Croix")) {
+	case 1:
+		cutin "bat_kiyom1",2;
 		mes "[General Guillaume]";
-		mes "I'll be the one who will capture the flag!";
-		close2;
-		cutin "",255;
-		end;
+		mes "Our great king, Marcel Marollo VII, is very sick lately.";
+		mes "His Majesty has declared that he has chosen either me or Prince Croix as the next king amongst his 9 sons.";
+		next;
+		mes "[General Guillaume]";
+		mes "Two kings can't share a nation! Only the one victorious from His Majesty's appointed battle will be enthroned.";
+		next;
+		mes "[General Guillaume]";
+		mes "This is, however, not just a battle between us. This battle will determine the future of this country.";
+		mes "I pledge on my honor to prove that I'm the one who can protect this Maroll from outside threats.";
+		next;
+		switch(select("Yes, I want to join you.:End Conversation")) {
+		case 1:
+			cutin "bat_kiyom2",2;
+			mes "[General Guillaume]";
+			mes "Welcome to my army, comrade.";
+			mes "Your eyes tell me that you're a soldier that I can trust.";
+			next;
+			mes "[General Guillaume]";
+			mes "Now, go upstairs and apply for battle with your comrades.";
+			mes "I'm sure they'll welcome you whole-heartedly!";
+			break;
+		case 2:
+			mes "[General Guillaume]";
+			mes "I'll be the one who will capture the flag!";
+			break;
+		}
+		break;
+	case 2:
+		cutin "bat_kiyom1",2;
+		mes "[General Guillaume]";
+		mes "The 5th Prince Croix is currently titled as the Prime Minister of Maroll.";
+		mes "He thinks all national matters of a nation can be discussed and determined on a desk,";
+		mes "and believes in peaceful co-existence with other countries.";
+		next;
+		mes "[General Guillaume]";
+		mes "He's too ignorant to admit that so-called peace is built on countless lives that are sacrificed in wars while normal citizens and upper classes can live, oblivious to the horrors that allow them to live that way.";
+		next;
+		mes "[General Guillaume]";
+		mes "He's too naive to understand the reality....";
+		mes "I can't leave Maroll to someone like him who lives in a dream!";
+		next;
+		mes "[General Guillaume]";
+		mes "His unrealistic beliefs will drown this country in poverty and make the people weak. If he becomes the king, Maroll will never rest from the onslaughts of other countries.";
+		mes "I want to teach him what makes this small country so powerful and prosperous. It's military power!";
+		next;
+		switch(select("I want to join your army!:End Conversation")) {
+		case 1:
+			cutin "bat_kiyom2",2;
+			mes "[General Guillaume]";
+			mes "Welcome to my army, comrade.";
+			mes "Your eyes tell me that you're a soldier that I can trust.";
+			next;
+			mes "[General Guillaume]";
+			mes "Now, go upstairs and apply for battle from your comrades.";
+			mes "I'm sure they'll welcome you whole-heartedly!";
+			break;
+		case 2:
+			mes "[General Guillaume]";
+			mes "I'll be the one who will capture the flag!";
+			break;
+		}
+		break;
 	}
-	cutin "bat_kiyom2",2;
-	mes "[General Guillaume]";
-	mes "Welcome to my army, comrade.";
-	mes "Your eyes tell me that you're a soldier that I can trust.";
-	set Bat_Team,1;
-	next;
-	mes "[General Guillaume]";
-	mes "Now, go upstairs and apply for battle with your comrades. I'm sure they'll welcome you whole-heartedly!";
 	close2;
-	cutin "",255;
+	cutin "bat_kiyom1",255;
+	cutin "bat_kiyom2",255;
 	end;
 }
 
-// General Croix
-// *********************************************************************
-bat_room,160,140,3	script	Prince Croix	416,{
-	cutin "bat_crua1",2;
-	mes "[Prince Croix]";
-	mes "Wise adventurer, why don't you lend us your power for victory?";
+// Flags
+//============================================================
+//bat_room,140,160,3	script	Guillaume Base#roomflag1	973,{ end; }
+//bat_room,167,160,3	script	Guillaume Base#roomflag2	973,{ end; }
+//bat_room,140,139,3	script	Croix Base#roomflag1	974,{ end; }
+//bat_room,167,139,3	script	Croix Base#roomflag2	974,{ end; }
+
+// BattleGround Warper
+//============================================================
+bat_room,148,150,5	script	Teleporter#Battlefield	124,{
+	mes "[Teleporter]";
+	mes "Do you wish to leave the battlefield? Use my services to return to town.";
 	next;
-	cutin "bat_crua2",2;
-	mes "[Prince Croix]";
-	mes "I do not wish to shed blood, but I have no choice but to fight for the possibility of peace and for the sake of my people.";
+	switch(select("Leave:Don't Leave")) {
+	case 1:
+		mes "[Teleporter]";
+		switch(bat_return) {
+		default:
+		case 1:
+			setarray .@mapname$[0],"Prontera.","prontera";
+			setarray .@xy[0],116,72;
+			break;
+		case 2:
+			setarray .@mapname$[0],"Morroc","moc_ruins";
+			setarray .@xy[0],152,48;
+			break;
+		case 3:
+			setarray .@mapname$[0],"Al De Baran.","aldebaran";
+			setarray .@xy[0],168,112;
+			break;
+		case 4:
+			setarray .@mapname$[0],"Geffen.","geffen";
+			setarray .@xy[0],120,39;
+			break;
+		case 5:
+			setarray .@mapname$[0],"Payon.","payon";
+			setarray .@xy[0],161,58;
+			break;
+		case 6:
+			setarray .@mapname$[0],"Lighthalzen.","lighthalzen";
+			setarray .@xy[0],159,93;
+			break;
+		case 7:
+			setarray .@mapname$[0],"Rachel.","rachel";
+			setarray .@xy[0],115,124;
+			break;
+		}
+		mes "You will be sent back to "+.@mapname$[0]+".";
+		close2;
+		warp .@mapname$[1],.@xy[0],.@xy[1];
+		break;
+	case 2:
+		mes "[Teleporter]";
+		mes "I'll be here whenever you're in need of my services.";
+		close;
+	}
+	end;
+}
+
+-	script	Maroll Battle Recruiter::BatRecruit	728,{
+	mes "[Maroll Battle Recruiter]";
+	mes "Good day, adventurer.";
+	mes "I'm a knight from a far country called Maroll Kingdom.";
 	next;
-	mes "[Prince Croix]";
-	mes "General Guillaume may have an advantage in this battle as he is the great general of Maroll, but that doesn't automatically mean he'll win. I want to win this battle so that I can grant a better future for my people.";
+	mes "[Maroll Battle Recruiter]";
+	mes "The two princes of the kingdom are now battling for the throne of Maroll, and are in need of experienced soldiers like you.";
+	mes "How would you like to lend your power to one of the princes in the Maroll Kingdom?";
 	next;
-	if( select("Yes, I want to join you!:End Conversation") == 2 )
-	{
-		mes "[Prince Croix]";
-		mes "For Maroll!";
+	switch(select("Join:Don't Join")) {
+	case 1:
+		mes "[Maroll Battle Recruiter]";
+		mes "May the war god bless you.";
 		close2;
-		cutin "",255;
-		end;
+		getmapxy(.@mapname$,.@x,.@y,1);
+		if (.@mapname$ == "prontera")
+			set bat_return,1;
+		else if (.@mapname$ == "moc_ruins")
+			set bat_return,2;
+		else if (.@mapname$ == "aldebaran")
+			set bat_return,3;
+		else if (.@mapname$ == "geffen")
+			set bat_return,4;
+		else if (.@mapname$ == "payon")
+			set bat_return,5;
+		else if (.@mapname$ == "lighthalzen")
+			set bat_return,6;
+		else if (.@mapname$ == "rachel")
+			set bat_return,7;
+		else
+			set bat_return,1;
+		warp "bat_room",154,150;
+		break;
+	case 2:
+		mes "[Maroll Battle Recruiter]";
+		mes "I'll always be stationed here for more soldiers. Feel free to come back whenever you're interested.";
+		close;
 	}
-	mes "[Prince Croix]";
-	mes "Thank you so much. I feel like I can win with the help of adventurers like you. Now, please go downstairs and join your comrades in sharpening their skills to fight the enemy!";
-	set Bat_Team,2;
-	close2;
-	cutin "",255;
 	end;
 }
 
+prontera,123,83,3	duplicate(BatRecruit)	Maroll Battle Recruiter::BatRecruit1	728
+moc_ruins,75,162,3	duplicate(BatRecruit)	Maroll Battle Recruiter::BatRecruit2	728
+aldebaran,146,109,3	duplicate(BatRecruit)	Maroll Battle Recruiter::BatRecruit3	728
+geffen,109,66,3	duplicate(BatRecruit)	Maroll Battle Recruiter::BatRecruit4	728
+payon,189,105,3	duplicate(BatRecruit)	Maroll Battle Recruiter::BatRecruit5	728
+lighthalzen,153,86,5	duplicate(BatRecruit)	Maroll Battle Recruiter::BatRecruit6	728
+rachel,149,138,3	duplicate(BatRecruit)	Maroll Battle Recruiter::BatRecruit7	728
+
 // Time calculation Function
 // *********************************************************************
 function	script	Time2Str	{
@@ -177,584 +305,6 @@ function	script	Time2Str	{
 	return .@Time$;
 }
 
-// Guillaume Knight - Tierra Gorge
-// *********************************************************************
-bat_room,127,178,5	script	Guillaume Knight#1	417,{
-	mes "[Guillaume Knight]";
-	mes "Tierra Gorge is a very steep canyon with two forts residing in the north and south ends of the map.";
-	next;
-	mes "[Guillaume Knight]";
-	mes "There is a ration depot for the Guillaume and Croix armies at the 11 and 8 o'clock directions.";
-	next;
-	mes "[Guillaume Knight]";
-	mes "The battle starts at your army's ship, and the goal is to advance and destroy your enemy's rations depot faster than they can destroy yours.";
-	mes "";
-	mes "The army that captures the neutral flag in the center of the battlefield will be rewarded with extra regeneration points, meaning their soldiers will resurrect more than the other side, giving them an advantage.";
-	next;
-	mes "[Guillaume Knight]";
-	mes "Are you ready for battle? Then apply with the recruiter next to me!";
-	close;
-}
-
-// Tierra Officer - Guillaume
-// *********************************************************************
-bat_room,124,178,5	script	Tierra Gorge Officer#1	418,{
-	mes "[Tierra Officer]";
-	if( Bat_Team == 2 )
-	{
-		mes "Get out of here you stinky Croix!";
-		close;
-	}
-
-	if( Bat_Team == 0 )
-	{
-		mes "Please sign up for an army with Prince Croix or General Guillaume!";
-		close;
-	}
-	
-	mes "Hello " + strcharinfo(0) + ", let's show the power of the Guillaume Army to those stinky Croixs!";
-	next;
-	if( select("I want to join your army!:End Conversation") == 2 )
-		close;
-
-	mes "[Tierra Officer]";
-	if( BG_Delay_Tick >= gettimetick(2) )
-	{
-		mes "You are a Deserter!!";
-		mes "Because of running away, you need to wait ^0000FF" + callfunc("Time2Str",BG_Delay_Tick) + "^000000 to join again a BattleGround.";
-		close;
-	}
-
-	if( checkquest(2069,PLAYTIME) == 2 ) erasequest 2069;
-	if( checkquest(2069,PLAYTIME) != -1 )
-	{
-		mes "You have received an indicator showing that you've participated in the Battle at Tierra Gorge. I can't let you participate in any other battles until the indicator goes off.";
-		next;
-		mes "[Tierra Officer]";
-		mes "Stand-by for Tierra Gorge Battle until the time limit passes.";
-		close;
-	}
-	
-	if( BaseLevel < 80 )
-	{
-		mes "I'm very please you want to join our army, but I'm sorry: I can't send a rookie like you to die on the cruel battlefield";
-		close;
-	}
-
-	mes "Good luck!";
-	close2;
-	warp "bat_room",57,223;
-	end;
-}
-
-// Croix Knight - Tierra Gorge
-// *********************************************************************
-bat_room,127,121,1	script	Croix Knight#1	413,{
-	mes "[Croix Knight]";
-	mes "Tierra Gorge is a very steep canyon with two forts residing in the north and south ends of the map.";
-	next;
-	mes "[Croix Knight]";
-	mes "There is a ration depot for the Guillaume and Croix armies at the 11 and 8 o'clock directions.";
-	next;
-	mes "[Croix Knight]";
-	mes "The battle starts at your army's ship, and the goal is to advance and destroy your enemy's rations depot faster than they can destroy yours.";
-	mes "";
-	mes "The army that captures the neutral flag in the center of the battlefield will be rewarded with extra regeneration points, meaning their soldiers will resurrect more than the other side, giving them an advantage.";
-	next;
-	mes "[Croix Knight]";
-	mes "Are you ready for battle? Then apply with the recruiter next to me!";
-	close;
-}
-
-// Tierra Officer - Croix
-// *********************************************************************
-bat_room,125,121,1	script	Tierra Gorge Officer#2	414,{
-	mes "[Tierra Officer]";
-	if( Bat_Team == 1 )
-	{
-		mes "Get out of here you stupid Guillaume!";
-		close;
-	}
-
-	if( Bat_Team == 0 )
-	{
-		mes "Please sign up for an army with Prince Croix or General Guillaume!";
-		close;
-	}
-
-	mes "Hello " + strcharinfo(0) + ", let's show the power of the Croix Army to those stinky Guillaumes!";
-	next;
-	if( select("I want to join your army!:End Conversation") == 2 )
-		close;
-
-	mes "[Tierra Officer]";
-	if( BG_Delay_Tick >= gettimetick(2) )
-	{
-		mes "You are a Deserter!!";
-		mes "Because of running away, you need to wait ^0000FF" + callfunc("Time2Str",BG_Delay_Tick) + "^000000 to join again a BattleGround.";
-		close;
-	}
-
-	if( checkquest(2069,PLAYTIME) == 2 ) erasequest 2069;
-	if( checkquest(2069,PLAYTIME) != -1 )
-	{
-		mes "You have received an indicator showing that you've participated in the Battle at Tierra Gorge. I can't let you participate in any other battles until the indicator goes off.";
-		next;
-		mes "[Tierra Officer]";
-		mes "Stand-by for Tierra Gorge Battle until the time limit passes.";
-		close;
-	}
-
-	if( BaseLevel < 80 )
-	{
-		mes "I'm very please you want to join our army, but I'm sorry: I can't send a rookie like you to die on the cruel battlefield";
-		close;
-	}
-
-	mes "Good luck!";
-	close2;
-	warp "bat_room",57,207;
-	end;
-}
-
-// Guillaume Knight - Tierra
-// *********************************************************************
-bat_room,143,178,5	script	Guillaume Knight#2	417,{
-	mes "[Guillaume Knight]";
-	mes "Tierra Gorge is a very steep canyon with two forts residing in the north and south ends of the map.";
-	next;
-	mes "[Guillaume Knight]";
-	mes "There is a ration depot for the Guillaume and Croix armies at the 11 and 8 o'clock directions.";
-	next;
-	mes "[Guillaume Knight]";
-	mes "The battle starts at your army's ship, and the goal is to advance and destroy your enemy's rations depot faster than they can destroy yours.";
-	mes "";
-	mes "The army that captures the neutral flag in the center of the battlefield will be rewarded with extra regeneration points, meaning their soldiers will resurrect more than the other side, giving them an advantage.";
-	next;
-	mes "[Guillaume Knight]";
-	mes "Are you ready for battle? Then apply with the recruiter next to me!";
-	close;
-}
-
-// Tierra Officer - Guillaume
-// *********************************************************************
-bat_room,140,178,5	script	Tierra Gorge Officer#3	418,{
-	mes "[Tierra Officer]";
-	if( Bat_Team == 2 )
-	{
-		mes "Get out of here you stinky Croix!";
-		close;
-	}
-
-	if( Bat_Team == 0 )
-	{
-		mes "Please sign up for an army with Prince Croix or General Guillaume!";
-		close;
-	}
-	
-	mes "Hello " + strcharinfo(0) + ", let's show the power of the Guillaume Army to those stinky Croixs!";
-	next;
-	if( select("I want to join your army!:End Conversation") == 2 )
-		close;
-
-	mes "[Tierra Officer]";
-	if( BG_Delay_Tick >= gettimetick(2) )
-	{
-		mes "You are a Deserter!!";
-		mes "Because of running away, you need to wait ^0000FF" + callfunc("Time2Str",BG_Delay_Tick) + "^000000 to join again a BattleGround.";
-		close;
-	}
-
-	if( checkquest(2069,PLAYTIME) == 2 ) erasequest 2069;
-	if( checkquest(2069,PLAYTIME) != -1 )
-	{
-		mes "You have received an indicator showing that you've participated in the Battle at Tierra Gorge. I can't let you participate in any other battles until the indicator goes off.";
-		next;
-		mes "[Tierra Officer]";
-		mes "Stand-by for Tierra Gorge Battle until the time limit passes.";
-		close;
-	}
-
-	if( BaseLevel < 80 )
-	{
-		mes "I'm very please you want to join our army, but I'm sorry: I can't send a rookie like you to die on the cruel battlefield";
-		close;
-	}
-
-	mes "Good luck!";
-	close2;
-	warp "bat_room",114,223;
-	end;
-}
-
-// Croix Knight - Tierra
-// *********************************************************************
-bat_room,143,121,1	script	Croix Knight#2	413,{
-	mes "[Croix Knight]";
-	mes "Tierra Gorge is a very steep canyon with two forts residing in the north and south ends of the map.";
-	next;
-	mes "[Croix Knight]";
-	mes "There is a ration depot for the Guillaume and Croix armies at the 11 and 8 o'clock directions.";
-	next;
-	mes "[Croix Knight]";
-	mes "The battle starts at your army's ship, and the goal is to advance and destroy your enemy's rations depot faster than they can destroy yours.";
-	mes "";
-	mes "The army that captures the neutral flag in the center of the battlefield will be rewarded with extra regeneration points, meaning their soldiers will resurrect more than the other side, giving them an advantage.";
-	next;
-	mes "[Croix Knight]";
-	mes "Are you ready for battle? Then apply with the recruiter next to me!";
-	close;
-}
-
-// Tierra Officer - Croix
-// *********************************************************************
-bat_room,140,121,1	script	Tierra Gorge Officer#4	414,{
-	mes "[Tierra Officer]";
-	if( Bat_Team == 1 )
-	{
-		mes "Get out of here you stupid Guillaume!";
-		close;
-	}
-
-	if( Bat_Team == 0 )
-	{
-		mes "Please sign up for an army with Prince Croix or General Guillaume!";
-		close;
-	}
-
-	mes "Hello " + strcharinfo(0) + ", let's show the power of the Croix Army to those stinky Guillaumes!";
-	next;
-	if( select("I want to join your army!:End Conversation") == 2 )
-		close;
-
-	mes "[Tierra Officer]";
-	if( BG_Delay_Tick >= gettimetick(2) )
-	{
-		mes "You are a Deserter!!";
-		mes "Because of running away, you need to wait ^0000FF" + callfunc("Time2Str",BG_Delay_Tick) + "^000000 to join again a BattleGround.";
-		close;
-	}
-
-	if( checkquest(2069,PLAYTIME) == 2 ) erasequest 2069;
-	if( checkquest(2069,PLAYTIME) != -1 )
-	{
-		mes "You have received an indicator showing that you've participated in the Battle at Tierra Gorge. I can't let you participate in any other battles until the indicator goes off.";
-		next;
-		mes "[Tierra Officer]";
-		mes "Stand-by for Tierra Gorge Battle until the time limit passes.";
-		close;
-	}
-
-	if( BaseLevel < 80 )
-	{
-		mes "I'm very please you want to join our army, but I'm sorry: I can't send a rookie like you to die on the cruel battlefield";
-		close;
-	}
-
-	mes "Good luck!";
-	close2;
-	warp "bat_room",114,204;
-	end;
-}
-
-// Guillaune Knight - Flavius
-// *********************************************************************
-bat_room,135,178,5	script	Guillaume Knight#3	417,{
-	mes "[Guillaume Knight]";
-	mes "The objective of the Flavius Battle is to score 2 points before your enemy by destroying their crystal.";
-	next;
-	mes "[Guillaume Knight]";
-	mes "The crystals for both armies are protected by special barricades that cannot be destroyed by direct attacks.";
-	next;
-	mes "[Guillaume Knight]";
-	mes "But they can be removed by destroying the Guardians that protect the enemy army base.";
-	next;
-	mes "[Guillaume Knight]";
-	mes "The crystals are immune to every type of skill; your physical attacks are the only choice for destroying your enemy's crystal.";
-	next;
-	mes "[Guillaume Knight]";
-	mes "Are you ready for battle? Then apply with the recruiter next to me!";
-	close;
-}
-
-// Flavius Officer - Guillaume
-// *********************************************************************
-bat_room,133,178,5	script	Flavius Officer#1	418,{
-	mes "[Flavius Officer]";
-	if( Bat_Team == 2 )
-	{
-		mes "Get out of here you stupid Croix!";
-		close;
-	}
-
-	if( Bat_Team == 0 )
-	{
-		mes "Please sign up for an army with Prince Croix or General Guillaume!";
-		close;
-	}
-
-	mes "Hello " + strcharinfo(0) + ", let's show the power of the Guillaume Army to those stinky Croixs!";
-	next;
-	if( select("I want to join your army!:End Conversation") == 2 )
-		close;
-
-	mes "[Flavius Officer]";
-	if( BG_Delay_Tick >= gettimetick(2) )
-	{
-		mes "You are a Deserter!!";
-		mes "Because of running away, you need to wait ^0000FF" + callfunc("Time2Str",BG_Delay_Tick) + "^000000 to join again a BattleGround.";
-		close;
-	}
-
-	if( checkquest(2070,PLAYTIME) == 2 ) erasequest 2070;
-	if( checkquest(2070,PLAYTIME) != -1 )
-	{
-		mes "You have received an indicator showing that you've participated in the Battle at Flavius. I can't let you participate in any other battles until the indicator goes off.";
-		next;
-		mes "[Flavius Officer]";
-		mes "Stand-by for Flavius Battle until the time limit passes.";
-		close;
-	}
-
-	if( BaseLevel < 80 )
-	{
-		mes "I'm very please you want to join our army, but I'm sorry: I can't send a rookie like you to die on the cruel battlefield";
-		close;
-	}
-
-	mes "Good luck!";
-	close2;
-	warp "bat_room",85,223;
-	end;
-}
-
-// Croix Knight - Flavius
-// *********************************************************************
-bat_room,135,121,1	script	Croix Knight#3	413,{
-	mes "[Croix Knight]";
-	mes "The objective of the Flavius Battle is to score 2 points before your enemy by destroying their crystal.";
-	next;
-	mes "[Croix Knight]";
-	mes "The crystals for both armies are protected by special barricades that cannot be destroyed by direct attacks.";
-	next;
-	mes "[Croix Knight]";
-	mes "But they can be removed by destroying the Guardians that protect the enemy army base.";
-	next;
-	mes "[Croix Knight]";
-	mes "The crystals are immune to every type of skill; your physical attacks are the only choice for destroying your enemy's crystal.";
-	next;
-	mes "[Croix Knight]";
-	mes "Are you ready for battle? Then apply with the recruiter next to me!";
-	close;
-}
-
-// Flavius Officerer - Croix
-// *********************************************************************
-bat_room,133,121,1	script	Flavius Officer#2	414,{
-	mes "[Flavius Officer]";
-	if( Bat_Team == 1 )
-	{
-		mes "Get out of here you stupid Guillaume!";
-		close;
-	}
-
-	if( Bat_Team == 0 )
-	{
-		mes "Please sign up for an army with Prince Croix or General Guillaume!";
-		close;
-	}
-
-	mes "Hello " + strcharinfo(0) + ", let's show the power of the Croix Army to those stinky Guillaumes!";
-	next;
-	if( select("I want to join your army!:End Conversation") == 2 )
-		close;
-
-	mes "[Flavius Officer]";
-	if( BG_Delay_Tick >= gettimetick(2) )
-	{
-		mes "You are a Deserter!!";
-		mes "Because of running away, you need to wait ^0000FF" + callfunc("Time2Str",BG_Delay_Tick) + "^000000 to join again a BattleGround.";
-		close;
-	}
-
-	if( checkquest(2070,PLAYTIME) == 2 ) erasequest 2070;
-	if( checkquest(2070,PLAYTIME) != -1 )
-	{
-		mes "You have received an indicator showing that you've participated in the Battle at Flavius. I can't let you participate in any other battles until the indicator goes off.";
-		next;
-		mes "[Flavius Officer]";
-		mes "Stand-by for Flavius Battle until the time limit passes.";
-		close;
-	}
-
-	if( BaseLevel < 80 )
-	{
-		mes "I'm very please you want to join our army, but I'm sorry: I can't send a rookie like you to die on the cruel battlefield";
-		close;
-	}
-
-	mes "Good luck!";
-	close2;
-	warp "bat_room",85,207;
-	end;
-}
-
-// Guillaune Knight - Flavius
-// *********************************************************************
-bat_room,151,178,5	script	Guillaume Knight#4	417,{
-	mes "[Guillaume Knight]";
-	mes "The objective of the Flavius Battle is to score 2 points before your enemy by destroying their crystal.";
-	next;
-	mes "[Guillaume Knight]";
-	mes "The crystals for both armies are protected by special barricades that cannot be destroyed by direct attacks.";
-	next;
-	mes "[Guillaume Knight]";
-	mes "But they can be removed by destroying the Guardians that protect the enemy army base.";
-	next;
-	mes "[Guillaume Knight]";
-	mes "The crystals are immune to every type of skill; your physical attacks are the only choice for destroying your enemy's crystal.";
-	next;
-	mes "[Guillaume Knight]";
-	mes "Are you ready for battle? Then apply with the recruiter next to me!";
-	close;
-}
-
-// Flavius Officerer - Guillaume
-// *********************************************************************
-bat_room,148,178,5	script	Flavius Officer#3	418,{
-	mes "[Flavius Officer]";
-	if( Bat_Team == 2 )
-	{
-		mes "Get out of here you stupid Croix!";
-		close;
-	}
-
-	if( Bat_Team == 0 )
-	{
-		mes "Please sign up for an army with Prince Croix or General Guillaume!";
-		close;
-	}
-
-	mes "Hello " + strcharinfo(0) + ", let's show the power of the Guillaume Army to those stinky Croixs!";
-	next;
-	if( select("I want to join your army!:End Conversation") == 2 )
-		close;
-
-	mes "[Flavius Officer]";
-	if( BG_Delay_Tick >= gettimetick(2) )
-	{
-		mes "You are a Deserter!!";
-		mes "Because of running away, you need to wait ^0000FF" + callfunc("Time2Str",BG_Delay_Tick) + "^000000 to join again a BattleGround.";
-		close;
-	}
-
-	if( checkquest(2070,PLAYTIME) == 2 ) erasequest 2070;
-	if( checkquest(2070,PLAYTIME) != -1 )
-	{
-		mes "You have received an indicator showing that you've participated in the Battle at Flavius. I can't let you participate in any other battles until the indicator goes off.";
-		next;
-		mes "[Flavius Officer]";
-		mes "Stand-by for Flavius Battle until the time limit passes.";
-		close;
-	}
-
-	if( BaseLevel < 80 )
-	{
-		mes "I'm very please you want to join our army, but I'm sorry: I can't send a rookie like you to die on the cruel battlefield";
-		close;
-	}
-
-	mes "Good luck!";
-	close2;
-	warp "bat_room",141,207;
-	end;
-}
-
-// Croix Knight - Flavius
-// *********************************************************************
-bat_room,151,121,1	script	Croix Knight#4	413,{
-	mes "[Croix Knight]";
-	mes "The objective of the Flavius Battle is to score 2 points before your enemy by destroying their crystal.";
-	next;
-	mes "[Croix Knight]";
-	mes "The crystals for both armies are protected by special barricades that cannot be destroyed by direct attacks.";
-	next;
-	mes "[Croix Knight]";
-	mes "But they can be removed by destroying the Guardians that protect the enemy army base.";
-	next;
-	mes "[Croix Knight]";
-	mes "The crystals are immune to every type of skill; your physical attacks are the only choice for destroying your enemy's crystal.";
-	next;
-	mes "[Croix Knight]";
-	mes "Are you ready for battle? Then apply with the recruiter next to me!";
-	close;
-}
-
-// Flavius Officerer - Croix
-// *********************************************************************
-bat_room,148,121,1	script	Flavius Officer#4	414,{
-	mes "[Flavius Officer]";
-	if( Bat_Team == 1 )
-	{
-		mes "Get out of here you stupid Guillaume!";
-		close;
-	}
-
-	if( Bat_Team == 0 )
-	{
-		mes "Please sign up for an army with Prince Croix or General Guillaume!";
-		close;
-	}
-
-	mes "Hello " + strcharinfo(0) + ", let's show the power of the Croix Army to those stinky Guillaumes!";
-	next;
-	if( select("I want to join your army!:End Conversation") == 2 )
-		close;
-
-	mes "[Flavius Officer]";
-	if( BG_Delay_Tick >= gettimetick(2) )
-	{
-		mes "You are a Deserter!!";
-		mes "Because of running away, you need to wait ^0000FF" + callfunc("Time2Str",BG_Delay_Tick) + "^000000 to join again a BattleGround.";
-		close;
-	}
-
-	if( checkquest(2070,PLAYTIME) == 2 ) erasequest 2070;
-	if( checkquest(2070,PLAYTIME) != -1 )
-	{
-		mes "You have received an indicator showing that you've participated in the Battle at Flavius. I can't let you participate in any other battles until the indicator goes off.";
-		next;
-		mes "[Flavius Officer]";
-		mes "Stand-by for Flavius Battle until the time limit passes.";
-		close;
-	}
-
-	if( BaseLevel < 80 )
-	{
-		mes "I'm very please you want to join our army, but I'm sorry: I can't send a rookie like you to die on the cruel battlefield";
-		close;
-	}
-
-	mes "Good luck!";
-	close2;
-	warp "bat_room",141,227;
-	end;
-}
-
-// Guard Dummy
-// *********************************************************************
-
-bat_room,161,141,3	script	Prince Croix's Aid::bat_aid	415,{ end; }
-bat_room,161,139,3	duplicate(bat_aid)	Prince Croix's Aid::bat_aid2	415
-bat_room,161,160,3	duplicate(bat_aid)	General Guillaume's Aid::bat_aid3	419
-bat_room,161,158,3	duplicate(bat_aid)	General Guillaume's Aid::bat_aid4	419
-
-// Flags
-// *********************************************************************
-
--	script	Guillaume camp#bat	973,{ end; }
--	script	Croix camp#bat	974,{ end; }
-
 // Exit from Registration
 // *********************************************************************
 -	script	warp2bat_room	-1,{
@@ -769,22 +319,16 @@ OnTouch:
 // Flavius bat_b02
 bat_room,57,81,0	duplicate(warp2bat_room)	bat1	45,1,1
 bat_room,57,90,0	duplicate(warp2bat_room)	bat2	45,1,1
-// Free BG
-bat_room,57,220,0	duplicate(warp2bat_room)	bat3	45,1,1
-bat_room,57,211,0	duplicate(warp2bat_room)	bat4	45,1,1
-// Tierra Gorge bat_a02
+// Empty
 bat_room,85,81,0	duplicate(warp2bat_room)	bat5	45,1,1
 bat_room,85,90,0	duplicate(warp2bat_room)	bat6	45,1,1
-// Tierra Gorge bat_a01
+// Empty
 bat_room,85,220,0	duplicate(warp2bat_room)	bat7	45,1,1
 bat_room,85,211,0	duplicate(warp2bat_room)	bat8	45,1,1
 // Free BG
 bat_room,113,81,0	duplicate(warp2bat_room)	bat9	45,1,1
 bat_room,113,90,0	duplicate(warp2bat_room)	bat10	45,1,1
 // Free BG
-bat_room,113,220,0	duplicate(warp2bat_room)	bat11	45,1,1
-bat_room,113,211,0	duplicate(warp2bat_room)	bat12	45,1,1
-// Free BG
 bat_room,141,81,0	duplicate(warp2bat_room)	bat13	45,1,1
 bat_room,141,90,0	duplicate(warp2bat_room)	bat14	45,1,1
 // Free BG
@@ -802,10 +346,17 @@ bat_room,225,90,0	duplicate(warp2bat_room)	bat26	45,1,1
 // Flavius bat_b01
 bat_room,253,81,0	duplicate(warp2bat_room)	bat29	45,1,1
 bat_room,253,90,0	duplicate(warp2bat_room)	bat30	45,1,1
-// Unknown
+// Empty
 bat_room,253,220,0	duplicate(warp2bat_room)	bat31	45,1,1
 bat_room,253,211,0	duplicate(warp2bat_room)	bat32	45,1,1
 
+// Kafra
+// *********************************************************************
+bat_room,148,147,4	script	Kafra Staff::kaf_bat	861,{
+	cutin "kafra_09",2;
+	callfunc "F_Kafra",0,2,1,150,0;
+}
+
 // Badges Repairman
 // *********************************************************************
 

+ 374 - 0
npc/battleground/flavius/flavius_enter.txt

@@ -0,0 +1,374 @@
+//===== eAthena Script ======================================= 
+// BattleGround System - Flavius Entrance NPCs
+//===== By: ================================================== 
+//= L0ne_W0lf
+//===== Current Version: ===================================== 
+//= 1.0
+//===== Compatible With: ===================================== 
+//= eAthena 1.0
+//===== Description: ========================================= 
+//= [AEGIS Conversion]
+//= Flavius Battleground Entrance NPCs
+//===== Additional Comments: ================================= 
+//= 1.0 First Version.
+//============================================================
+
+// Flavius Officer - Guillaume
+//============================================================
+bat_room,133,178,5	script	Flavius Officer#01a	418,{
+	if (checkweight(1201,1) == 0) {
+		mes "- Wait a minute !! -";
+		mes "- Currently you're carrying -";
+		mes "- too many items with you. -";
+		mes "- Please try again -";
+		mes "- after you loose some weight. -";
+		close;
+	}
+	mes "[Guillaume Army Officer]";
+	mes "Let's show the power of the Guillaume Army to those stinky Croixs!";
+	next;
+	switch(select("I want to join your army!:End Conversation")) {
+	case 1:
+		if ((Class == job_Novice) || (BaseClass == Job_Supernovice)) {
+			mes "[Guillaume Army Officer]";
+			mes "I'm very pleased that you want to join us and fight the Croix Army, but I'm sorry: I can't send a rookie like you to die on the cruel battlefield.";
+		}
+		else {
+			if (BaseLevel < 80) {
+				mes "[Guillaume Army Officer]";
+				mes "I'm very pleased that you want to join us and fight the Croix Army, but I'm sorry: I can't send a rookie like you to die on the cruel battlefield.";
+			}
+			else {
+				set .@chk_urtime,checkquest(2070,PLAYTIME);
+				if ((.@chk_urtime == 0)|| (.@chk_urtime == 1)) {
+					mes "[Guillaume Army Officer]";
+					mes "You seem to have just returned from the battlefield.";
+					mes "It's too early for you to go back. Go rest, and leave the enemies to us!";
+				}
+				else {
+					if (.@chk_urtime == 2)
+						erasequest 2070;
+					set .@mapcount2,getmapusers("bat_b01");
+					if (.@mapcount2 > 0) {
+						mes "[Guillaume Army Officer]";
+						mes "I've received a report informing me that an elite corps has been dispatched to the battlefield fighting the Croixs already.";
+						mes "Why don't you go wait for a while? I suggest you sharpen your weapons and prepare your supplies until then.";
+					}
+					else {
+						if ($@FlaviusBG1 > 0) {
+							mes "[Guillaume Army Officer]";
+							mes "An elite corps is already standing by to be dispatched to the battlefield.";
+							mes "Why don't you go wait for a while? I suggest you sharpen your weapons and prepare your supplies until then.";
+						}
+						else {
+							mes "[Guillaume Army Officer]";
+							mes "You definitely seem to be ready for battle!";
+							mes "Go show the Croixs what fear truly means!";
+							mes "Today, our cry of victory shall echo all over the battlefield!";
+							close2;
+							warp "bat_room",85,223;
+							end;
+						}
+					}
+				}
+			}
+		}
+		break;
+	case 2:
+		mes "[Guillaume Army Officer]";
+		mes "Today, we shall be victorious!";
+		break;
+	}
+	close;
+}
+
+bat_room,133,121,1	script	Flavius Officer#01b	414,{
+	if (checkweight(1201,1) == 0) {
+		mes "- Wait a minute !! -";
+		mes "- Currently you're carrying -";
+		mes "- too many items with you. -";
+		mes "- Please try again -";
+		mes "- after you loose some weight. -";
+		close;
+	}
+	mes "[Croix Army Officer]";
+	mes "Let's show the Guillaumes the power of the Croix Army!";
+	next;
+	switch(select("I want to join your army!:End Conversation")) {
+	case 1:
+		if ((Class == job_Novice) || (BaseClass == Job_Supernovice)) {
+			mes "[Croix Army Officer]";
+			mes "I'm very pleased that you want to join us and fight the Guillaume Army, but I'm sorry: I can't send a rookie like you to die on the cruel battlefield.";
+		}
+		else {
+			if (BaseLevel < 80) {
+				mes "[Croix Army Officer]";
+				mes "I'm very pleased that you want to join us and fight the Guillaume Army, but I'm sorry: I can't send a rookie like you to die on the cruel battlefield.";
+			}
+			else {
+				set .@chk_urtime,checkquest(2070,PLAYTIME);
+				if ((.@chk_urtime == 0)|| (.@chk_urtime == 1)) {
+					mes "[Croix Army Officer]";
+					mes "You seem to have just returned from the battlefield.";
+					mes "It's too early for you to go back. Go rest, and leave the enemies to us!";
+				}
+				else {
+					if (.@chk_urtime == 2)
+						erasequest 2070;
+					set .@mapcount2,getmapusers("bat_b01");
+					if (.@mapcount2 > 0) {
+						mes "[Croix Army Officer]";
+						mes "I've received a report informing me that an elite corps has been dispatched to the battlefield fighting the Guillaume already.";
+						mes "Why don't you go wait for a while? I suggest you sharpen your weapons and prepare your supplies until then.";
+					}
+					else {
+						if ($@FlaviusBG1 > 0) {
+							mes "[Croix Army Officer]";
+							mes "An elite corps is already standing by to be dispatched to the battlefield.";
+							mes "Why don't you go wait for a while? I suggest you sharpen your weapons and prepare your supplies until then.";
+						}
+						else {
+							mes "[Croix Army Officer]";
+							mes "You definitely seem to be ready for battle!";
+							mes "Go show the Guillaumes what fear truly means!";
+							mes "Today, our cry of victory shall echo all over the battlefield!";
+							close2;
+							warp "bat_room",85,207;
+							end;
+						}
+					}
+				}
+			}
+		}
+		break;
+	case 2:
+		mes "[Croix Army Officer]";
+		mes "Today, we shall be victorious!";
+		break;
+	}
+	close;
+}
+
+bat_room,135,178,5	script	Guillaume Knight#3	417,{
+	mes "[Guillaume Knight]";
+	mes "The objective of the Flavius Battle is to score 2 points before your enemy by destroying their crystal.";
+	next;
+	mes "[Guillaume Knight]";
+	mes "The crystals for both armies are protected by special barricades that cannot be destroyed by direct attacks.";
+	next;
+	mes "[Guillaume Knight]";
+	mes "But they can be removed by destroying the Guardians that protect the enemy army base.";
+	next;
+	mes "[Guillaume Knight]";
+	mes "The crystals are immune to every type of skill; your physical attacks are the only choice for destroying your enemy's crystal.";
+	next;
+	mes "[Guillaume Knight]";
+	mes "Please remember: when you join a battle, you will be receiving a token which indicates the set duration for which you cannot participate in the same type of battle.";
+	mes "You may check the duration by pressing the Alt+U keys.";
+	next;
+	mes "[Guillaume Knight]";
+	mes "Are you ready for battle? Then apply with the recruiter next to me!";
+	close;
+}
+
+bat_room,151,178,5	script	Guillaume Knight#4	417,{
+	mes "[Guillaume Knight]";
+	mes "The objective of the Flavius Battle is to score 2 points before your enemy by destroying their crystal.";
+	next;
+	mes "[Guillaume Knight]";
+	mes "The crystals for both armies are protected by special barricades that cannot be destroyed by direct attacks.";
+	next;
+	mes "[Guillaume Knight]";
+	mes "But they can be removed by destroying the Guardians that protect the enemy army base.";
+	next;
+	mes "[Guillaume Knight]";
+	mes "The crystals are immune to every type of skill; your physical attacks are the only choice for destroying your enemy's crystal.";
+	next;
+	mes "[Guillaume Knight]";
+	mes "Please remember: when you join a battle, you will be receiving a token which indicates the set duration for which you cannot participate in the same type of battle.";
+	mes "You may check the duration by pressing the Alt+U keys.";
+	next;
+	mes "[Guillaume Knight]";
+	mes "Are you ready for battle? Then apply with the recruiter next to me!";
+	close;
+}
+
+bat_room,135,121,1	script	Croix Knight#3	413,{
+	mes "[Croix Knight]";
+	mes "The objective of the Flavius Battle is to score 2 points before your enemy by destroying their crystal.";
+	next;
+	mes "[Croix Knight]";
+	mes "The crystals for both armies are protected by special barricades that cannot be destroyed by direct attacks.";
+	next;
+	mes "[Croix Knight]";
+	mes "But they can be removed by destroying the Guardians that protect the enemy army base.";
+	next;
+	mes "[Croix Knight]";
+	mes "The crystals are immune to every type of skill; your physical attacks are the only choice for destroying your enemy's crystal.";
+	next;
+	mes "[Croix Knight]";
+	mes "Please remember: when you join a battle, you will be receiving a token which indicates the set duration for which you cannot participate in the same type of battle.";
+	mes "You may check the duration by pressing the Alt+U keys.";
+	next;
+	mes "[Croix Knight]";
+	mes "Are you ready for battle? Then apply with the recruiter next to me!";
+	close;
+}
+
+bat_room,151,121,1	script	Croix Knight#4	413,{
+	mes "[Croix Knight]";
+	mes "The objective of the Flavius Battle is to score 2 points before your enemy by destroying their crystal.";
+	next;
+	mes "[Croix Knight]";
+	mes "The crystals for both armies are protected by special barricades that cannot be destroyed by direct attacks.";
+	next;
+	mes "[Croix Knight]";
+	mes "But they can be removed by destroying the Guardians that protect the enemy army base.";
+	next;
+	mes "[Croix Knight]";
+	mes "The crystals are immune to every type of skill; your physical attacks are the only choice for destroying your enemy's crystal.";
+	next;
+	mes "[Croix Knight]";
+	mes "Please remember: when you join a battle, you will be receiving a token which indicates the set duration for which you cannot participate in the same type of battle.";
+	mes "You may check the duration by pressing the Alt+U keys.";
+	next;
+	mes "[Croix Knight]";
+	mes "Are you ready for battle? Then apply with the recruiter next to me!";
+	close;
+}
+
+// Flavius Officer - Croix
+//============================================================
+bat_room,148,178,5	script	Flavius Officer#02a	418,{
+	if (checkweight(1201,1) == 0) {
+		mes "- Wait a minute !! -";
+		mes "- Currently you're carrying -";
+		mes "- too many items with you. -";
+		mes "- Please try again -";
+		mes "- after you loose some weight. -";
+		close;
+	}
+	mes "[Guillaume Army Officer]";
+	mes "Let's show the power of the Guillaume Army to those stinky Croixs!";
+	next;
+	switch(select("I want to join your army!:End Conversation")) {
+	case 1:
+		if ((Class == job_Novice) || (BaseClass == Job_Supernovice)) {
+			mes "[Guillaume Army Officer]";
+			mes "I'm very pleased that you want to join us and fight the Croix Army, but I'm sorry: I can't send a rookie like you to die on the cruel battlefield.";
+		}
+		else {
+			if (BaseLevel < 80) {
+				mes "[Guillaume Army Officer]";
+				mes "I'm very pleased that you want to join us and fight the Croix Army, but I'm sorry: I can't send a rookie like you to die on the cruel battlefield.";
+			}
+			else {
+				set .@chk_urtime,checkquest(2070,PLAYTIME);
+				if ((.@chk_urtime == 0)|| (.@chk_urtime == 1)) {
+					mes "[Guillaume Army Officer]";
+					mes "You seem to have just returned from the battlefield.";
+					mes "It's too early for you to go back. Go rest, and leave the enemies to us!";
+				}
+				else {
+					if (.@chk_urtime == 2)
+						erasequest 2070;
+					set .@mapcount2,getmapusers("bat_b02");
+					if (.@mapcount2 > 0) {
+						mes "[Guillaume Army Officer]";
+						mes "I've received a report informing me that an elite corps has been dispatched to the battlefield fighting the Croixs already.";
+						mes "Why don't you go wait for a while? I suggest you sharpen your weapons and prepare your supplies until then.";
+					}
+					else {
+						if ($@FlaviusBG2 > 0) {
+							mes "[Guillaume Army Officer]";
+							mes "An elite corps is already standing by to be dispatched to the battlefield.";
+							mes "Why don't you go wait for a while? I suggest you sharpen your weapons and prepare your supplies until then.";
+						}
+						else {
+							mes "[Guillaume Army Officer]";
+							mes "You definitely seem to be ready for battle!";
+							mes "Go show the Croixs what fear truly means!";
+							mes "Today, our cry of victory shall echo all over the battlefield!";
+							close2;
+							warp "bat_room",141,224;
+							end;
+						}
+					}
+				}
+			}
+		}
+		break;
+	case 2:
+		mes "[Guillaume Army Officer]";
+		mes "Today, we shall be victorious!";
+		break;
+	}
+	close;
+}
+
+bat_room,148,121,1	script	Flavius Officer#02b	414,{
+	if (checkweight(1201,1) == 0) {
+		mes "- Wait a minute !! -";
+		mes "- Currently you're carrying -";
+		mes "- too many items with you. -";
+		mes "- Please try again -";
+		mes "- after you loose some weight. -";
+		close;
+	}
+	mes "[Croix Army Officer]";
+	mes "Let's show the power of the Croix Army to those stinky Guillaumes!";
+	next;
+	switch(select("I want to join your army!:End Conversation")) {
+	case 1:
+		if ((Class == job_Novice) || (BaseClass == Job_Supernovice)) {
+			mes "[Croix Army Officer]";
+			mes "I'm very pleased that you want to join us and fight the Guillaume Army, but I'm sorry: I can't send a rookie like you to die on the cruel battlefield.";
+		}
+		else {
+			if (BaseLevel < 80) {
+				mes "[Croix Army Officer]";
+				mes "I'm very pleased that you want to join us and fight the Guillaume Army, but I'm sorry: I can't send a rookie like you to die on the cruel battlefield.";
+			}
+			else {
+				set .@chk_urtime,checkquest(2070,PLAYTIME);
+				if ((.@chk_urtime == 0)|| (.@chk_urtime == 1)) {
+					mes "[Croix Army Officer]";
+					mes "You seem to have just returned from the battlefield.";
+					mes "It's too early for you to go back. Go rest, and leave the enemies to us!";
+				}
+				else {
+					if (.@chk_urtime == 2)
+						erasequest 2070;
+					set .@mapcount2,getmapusers("bat_b02");
+					if (.@mapcount2 > 0) {
+						mes "[Croix Army Officer]";
+						mes "I've received a report informing me that an elite corps has been dispatched to the battlefield fighting the Guillaume already.";
+						mes "Why don't you go wait for a while? I suggest you sharpen your weapons and prepare your supplies until then.";
+					}
+					else {
+						if ($@FlaviusBG2 > 0) {
+							mes "[Croix Army Officer]";
+							mes "An elite corps is already standing by to be dispatched to the battlefield.";
+							mes "Why don't you go wait for a while? I suggest you sharpen your weapons and prepare your supplies until then.";
+						}
+						else {
+							mes "[Croix Army Officer]";
+							mes "You definitely seem to be ready for battle!";
+							mes "Go show the Guillaumes what fear truly means!";
+							mes "Today, our cry of victory shall echo all over the battlefield!";
+							close2;
+							warp "bat_room",141,207;
+							end;
+						}
+					}
+				}
+			}
+		}
+		break;
+	case 2:
+		mes "[Croix Army Officer]";
+		mes "Today, we shall be victorious!";
+		break;
+	}
+	close;
+}

+ 2 - 0
npc/battleground/kvm/kvm01.txt

@@ -387,6 +387,7 @@ bat_c01,51,130,5	script	KVM Officer#KVM01A	419,{
 			close2;
 		}
 		bg_leave;
+		set Bat_Team,0;
 		warp "bat_room",154,150;
 		end;
 	}
@@ -415,6 +416,7 @@ bat_c01,148,53,1	script	KVM Officer#KVM01B	415,{
 			close2;
 		}
 		bg_leave;
+		set Bat_Team,0;
 		warp "bat_room",154,150;
 		end;
 	}

+ 2 - 0
npc/battleground/kvm/kvm02.txt

@@ -384,6 +384,7 @@ bat_c02,51,130,5	script	KVM Officer#KVM02A	419,{
 			close2;
 		}
 		bg_leave;
+		set Bat_Team,0;
 		warp "bat_room",154,150;
 		end;
 	}
@@ -412,6 +413,7 @@ bat_c02,148,53,1	script	KVM Officer#KVM02B	415,{
 			close2;
 		}
 		bg_leave;
+		set Bat_Team,0;
 		warp "bat_room",154,150;
 		end;
 	}

+ 2 - 0
npc/battleground/kvm/kvm03.txt

@@ -386,6 +386,7 @@ bat_c03,51,130,5	script	KVM Officer#KVM03A	419,{
 			close2;
 		}
 		bg_leave;
+		set Bat_Team,0;
 		warp "bat_room",154,150;
 		end;
 	}
@@ -414,6 +415,7 @@ bat_c03,148,53,1	script	KVM Officer#KVM03B	415,{
 			close2;
 		}
 		bg_leave;
+		set Bat_Team,0;
 		warp "bat_room",154,150;
 		end;
 	}

+ 1 - 1
npc/battleground/kvm/kvm_enter.txt

@@ -14,7 +14,7 @@
 //= 1.0 First Version.
 //============================================================
 
-// KvM Officerer - Guillaume
+// KvM Officer - Guillaume
 //============================================================
 bat_room,164,178,5	script	KVM Mercenary Officer#1	418,{
 	set .@permit,checkquest(6026,PLAYTIME);

+ 953 - 0
npc/battleground/tierra/tierra01.txt

@@ -0,0 +1,953 @@
+//===== eAthena Script ======================================= 
+// BattleGround System - Tierra Gorge
+//===== By: ================================================== 
+//= L0ne_W0lf
+//===== Current Version: ===================================== 
+//= 1.0
+//===== Compatible With: ===================================== 
+//= eAthena 1.0
+//===== Description: ========================================= 
+//= [AEGIS Conversion]
+//= Tierra Gorge Battleground.
+//= - Winning Team: 3 badges
+//= - Losing Team: 1 badge
+//===== Additional Comments: ================================= 
+//= 1.0 First Version.
+//============================================================
+
+// Waiting Room NPCs
+//============================================================
+bat_room,57,227,5	script	Lieutenant Kalos	418,{
+	end;
+
+OnInit:
+	waitingroom "Battle Station",10,"start#bat_a01::OnReadyCheck",1;
+	end;
+
+OnEnterBG:
+	set $@TierraBG1_id1, waitingroom2bg("bat_a01",50,374,"start#bat_a01::OnGuillaumeQuit","");
+	end;
+}
+
+bat_room,58,204,1	script	Lieutenant Eyor	414,{
+	end;
+
+OnInit:
+	waitingroom "Battle Station",10,"start#bat_a01::OnReadyCheck",1;
+	end;
+
+OnEnterBG:
+	set $@TierraBG1_id2, waitingroom2bg("bat_a01",42,16,"start#bat_a01::OnCroixQuit","");
+	end;
+}
+
+bat_room,1,151,3	script	#bat_a01_timer	844,{
+	end;
+
+OnEnable:
+	initnpctimer;
+	end;
+
+OnStop:
+	stopnpctimer;
+	end;
+
+OnTimer1000:
+	stopnpctimer;
+	initnpctimer;
+	set .@chk_bat_a01,getmapusers("bat_a01");
+	if (.@chk_bat_a01 < 1) {
+		set $@TierraBG1,0; set $@TierraBG1_Victory, 0;
+		if( $@TierraBG1_id1 ) { bg_destroy $@TierraBG1_id1; set $@TierraBG1_id1, 0; }
+		if( $@TierraBG1_id2 ) { bg_destroy $@TierraBG1_id2; set $@TierraBG1_id2, 0; }
+		donpcevent "start#bat_a01::OnReadyCheck";
+	}
+	end;
+}
+
+bat_a01,352,342,0	script	#bat_a01_quest_a	-1,5,5,{
+	end;
+
+OnTouch:
+	if (checkquest(2069) < 0)
+		setquest 2069;
+	end;
+}
+
+bat_a01,353,52,0	script	#bat_a01_quest_b	-1,5,5,{
+	end;
+
+OnTouch:
+	if (checkquest(2069) < 0)
+		setquest 2069;
+	end;
+}
+
+bat_room,57,220,0	warp	back_bgroom01a	1,1,bat_room,154,150
+bat_room,57,211,0	warp	back_bgroom01b	1,1,bat_room,154,150
+
+// Tierra Gorge Battleground Engine
+//============================================================
+bat_a01,15,15,3	script	start#bat_a01	844,{
+OnInit:
+	mapwarp "bat_a01","bat_room",154,150;
+	end;
+
+OnEnable:
+	donpcevent "OBJ#bat_a01_a::Onkill";
+	donpcevent "OBJ#bat_a01_a::OnEnable";
+	donpcevent "OBJ#bat_a01_b::Onkill";
+	donpcevent "OBJ#bat_a01_b::OnEnable";
+	donpcevent "barricade#bat_a01_a::Onkill";
+	donpcevent "barricade#bat_a01_a::OnEnable";
+	donpcevent "barricade#bat_a01_b::Onkill";
+	donpcevent "barricade#bat_a01_b::OnEnable";
+	donpcevent "OBJ#bat_a01_n::Onkill";
+	donpcevent "OBJ#bat_a01_n::OnEnable";
+	donpcevent "NOBJ_mob#bat_a01_a::Onkill";
+	donpcevent "NOBJ_mob#bat_a01_b::Onkill";
+	donpcevent "Battle Therapist#a01_a::OnEnable";
+	donpcevent "Battle Therapist#a01_b::OnEnable";
+	donpcevent "countdown#bat_a01::OnEnable";
+	disablenpc "Guillaume Blacksmith#a01";
+	disablenpc "Croix Blacksmith#bat_a01";
+	disablenpc "Guillaume Vintenar#a01_a";
+	disablenpc "Croix Vintenar#a01_b";
+	end;
+
+OnGuillaumeQuit:
+OnCroixQuit:
+	bg_leave;
+	end;
+
+OnReadyCheck:
+	if( $@TierraBG1 )
+		end;
+	set .@Guillaume, getwaitingroomstate(0,"Lieutenant Kalos");
+	set .@Croix, getwaitingroomstate(0,"Lieutenant Eyor");
+	if( !.@Guillaume && !.@Croix ) {
+		donpcevent "#bat_a01_timer::OnStop";
+		end;
+	}
+	if( .@Guillaume < 10 || .@Croix < 10 )
+		end;
+	set $@TierraBG1,1;
+	donpcevent "Lieutenant Kalos::OnEnterBG";
+	donpcevent "Lieutenant Eyor::OnEnterBG";
+	donpcevent "start#bat_a01::onEnable";
+	bg_warp $@TierraBG1_id1,"bat_a01",352,342;
+	bg_warp $@TierraBG1_id2,"bat_a01",353,52;
+	initnpctimer;
+	end;
+
+OnTimer10000:
+	stopnpctimer;
+	donpcevent "#bat_a01_timer::OnEnable";
+	end;
+}
+
+bat_a01,15,16,3	script	OBJ#bat_a01_a	844,{
+OnEnable:
+	bg_monster $@TierraBG1_id1,"bat_a01",177,345,"Food Storage",1909,"OBJ#bat_a01_a::OnMyMobDead";
+	end;
+
+Onkill:
+	killmonster "bat_a01","OBJ#bat_a01_a::OnMyMobDead";
+	end;
+
+OnMyMobDead:
+	if (mobcount("bat_a01","OBJ#bat_a01_a::OnMyMobDead") < 1) {
+		donpcevent "Battle Therapist#a01_a::OnStop";
+		donpcevent "Battle Therapist#a01_b::OnStop";
+		set $@TierraBG1_Victory, 2;
+		enablenpc "Guillaume Vintenar#a01_a";
+		enablenpc "Croix Vintenar#a01_b";
+		mapannounce "bat_a01", "Croix Vintenar Swandery: We destroyed Guillaume's Food Storage. We won that! Wow!",bc_map,"0xFFCE00";
+		bg_warp $@TierraBG1_id1,"bat_a01",50,374;
+		bg_warp $@TierraBG1_id2,"bat_a01",42,16;
+	}
+	end;
+}
+
+bat_a01,15,17,3	script	OBJ#bat_a01_b	844,{
+OnEnable:
+	bg_monster $@TierraBG1_id2,"bat_a01",167,50,"Food Depot",1910,"OBJ#bat_a01_b::OnMyMobDead";
+	end;
+
+Onkill:
+	killmonster "bat_a01","OBJ#bat_a01_b::OnMyMobDead";
+	end;
+
+OnMyMobDead:
+	if (mobcount("bat_a01","OBJ#bat_a01_b::OnMyMobDead") < 1) {
+		donpcevent "Battle Therapist#a01_a::OnStop";
+		donpcevent "Battle Therapist#a01_b::OnStop";
+		set $@TierraBG1_Victory, 1;
+		enablenpc "Guillaume Vintenar#a01_a";
+		enablenpc "Croix Vintenar#a01_b";
+		mapannounce "bat_a01", "Guillaume Vintenar Axl Rose : We destroyed Croix's Food Storage. We won that! Wow!",bc_map,"0xFFCE00";
+		bg_warp $@TierraBG1_id1,"bat_a01",50,374;
+		bg_warp $@TierraBG1_id2,"bat_a01",42,16;
+	}
+	end;
+}
+
+bat_a01,15,18,3	script	barricade#bat_a01_a	844,{
+OnEnable:
+	for( set .@i,185; .@i < 202; set .@i,.@i+1 )
+		bg_monster $@TierraBG1_id1,"bat_a01",.@i,266,"Barricade",1906,"barricade#bat_a01_a::OnMyMobDead";
+	setwall "bat_a01",185,266,16,6,1,"bat_a01_c1";
+	end;
+
+Onkill:
+	killmonster "bat_a01","barricade#bat_a01_a::OnMyMobDead";
+	delwall "bat_a01_c1";
+	end;
+
+OnMyMobDead:
+	if (mobcount("bat_a01","barricade#bat_a01_a::OnMyMobDead") < 17) {
+		killmonster "bat_a01","barricade#bat_a01_a::OnMyMobDead";
+		delwall "bat_a01_c1";
+		enablenpc "Guillaume Blacksmith#a01";
+		mapannounce "bat_a01", "Guillaume Vintenar Axl Rose : The Barricade in the valley has been destroyed! Where's the Blacksmith? We need to rebuild the Barricade!",bc_map,"0xFFCE00";
+	}
+	end;
+}
+
+bat_a01,15,19,3	script	barricade#bat_a01_b	844,{
+OnEnable:
+	for( set .@i,169; .@i < 186; set .@i,.@i+1 )
+		bg_monster $@TierraBG1_id2,"bat_a01",.@i,129,"Barricade",1906,"barricade#bat_a01_b::OnMyMobDead";
+	setwall "bat_a01",169,129,16,6,1,"bat_a01_g1";
+	end;
+
+Onkill:
+	killmonster "bat_a01","barricade#bat_a01_b::OnMyMobDead";
+	delwall "bat_a01_g1";
+	end;
+
+OnMyMobDead:
+	if (mobcount("bat_a01","barricade#bat_a01_b::OnMyMobDead") < 17) {
+		killmonster "bat_a01","barricade#bat_a01_b::OnMyMobDead";
+		delwall "bat_a01_g1";
+		enablenpc "Croix Blacksmith#bat_a01";
+		mapannounce "bat_a01", "Croix Vintenar Swandery : The Barricade in the valley has been destroyed! Where's the Blacksmith? We need to rebuild the Barricade!",bc_map,"0xFFCE00";
+	}
+	end;
+}
+
+bat_a01,15,20,3	script	OBJ#bat_a01_n	844,{
+OnEnable:
+	monster "bat_a01",273,203,"Neutrality Flag",1911,1,"OBJ#bat_a01_n::OnMyMobDead";
+	end;
+
+Onkill:
+	killmonster "bat_a01","OBJ#bat_a01_n::OnMyMobDead";
+	end;
+
+OnMyMobDead:
+	if (mobcount("bat_a01","OBJ#bat_a01_n::OnMyMobDead") < 17) {
+		bg_team_setxy getcharid(4),56,212;
+		if (getcharid(4) == $@TierraBG1_id1) {
+			donpcevent "NOBJ_mob#bat_a01_a::OnEnable";
+			mapannounce "bat_a01", "Guillaume captured a Neutrality Flag, so they have an advantage.",bc_map,"0xFFCE00";
+		}
+		else {
+			donpcevent "NOBJ_mob#bat_a01_b::OnEnable";
+			mapannounce "bat_a01", "Croix captured a Neutrality Flag, so they have an advantage.",bc_map,"0xFFCE00";
+		}
+	}
+	end;
+}
+
+bat_a01,15,21,3	script	NOBJ_mob#bat_a01_a	844,{
+OnEnable:
+	donpcevent "NOBJ_mob#bat_a01_b::Onkill";
+	bg_monster $@TierraBG1_id1,"bat_a01",272,204,"Guillaume Camp Guardian",1949,"NOBJ_mob#bat_a01_a::OnMyMobDead";
+	bg_monster $@TierraBG1_id1,"bat_a01",272,213,"Guillaume Camp Guardian",1949,"NOBJ_mob#bat_a01_a::OnMyMobDead";
+	bg_monster $@TierraBG1_id1,"bat_a01",273,197,"Guillaume Camp Guardian",1950,"NOBJ_mob#bat_a01_a::OnMyMobDead";
+	end;
+
+Onkill:
+	killmonster "bat_a01","NOBJ_mob#bat_a01_a::OnMyMobDead";
+	end;
+
+OnMyMobDead:
+	end;
+}
+
+bat_a01,15,22,3	script	NOBJ_mob#bat_a01_b	844,{
+OnEnable:
+	donpcevent "NOBJ_mob#bat_a01_a::Onkill";
+	bg_monster $@TierraBG1_id2,"bat_a01",272,204,"Croix Camp Guardian",1949,"NOBJ_mob#bat_a01_a::OnMyMobDead";
+	bg_monster $@TierraBG1_id2,"bat_a01",272,213,"Croix Camp Guardian",1949,"NOBJ_mob#bat_a01_a::OnMyMobDead";
+	bg_monster $@TierraBG1_id2,"bat_a01",273,197,"Croix Camp Guardian",1950,"NOBJ_mob#bat_a01_a::OnMyMobDead";
+	end;
+
+Onkill:
+	killmonster "bat_a01","NOBJ_mob#bat_a01_b::OnMyMobDead";
+	end;
+
+OnMyMobDead:
+	end;
+}
+
+bat_a01,185,270,1	script	Guillaume Blacksmith#a01	851,{
+	if (getcharid(4) == $@TierraBG1_id1) {
+		mes "[Guillaume Blacksmith]";
+		mes "We are in urgency! The Barricade has been destroyed!";
+		mes "We can repair the Barricade with ^3131FF50 Stones, 3 Sinew of Bear, 500 Metal Fragments, 30 Rough Elunium and 100 Gold.^000000";
+		mes "We have it all except for the 50 Stones!";
+		next;
+		switch(select("Repair.:Leave it.")) {
+		case 1:
+			if (countitem(7049) > 49) {
+				mes "[Guillaume Blacksmith]";
+				mes "You brought enough stones! Let's go and repair.";
+				next;
+				mes "..";
+				next;
+				mes "....";
+				next;
+				mes "......";
+				next;
+				mes "........";
+				next;
+				mes "..........";
+				next;
+				mes "............";
+				next;
+				mes "..............";
+				next;
+				mes "[Guillaume Blacksmith]";
+				mes "Combine Stones and Gold in the proper percentage.";
+				next;
+				mes "[Guillaume Blacksmith]";
+				mes "Combine Stones and Gold in the proper percentage and shape the Barricade.";
+				next;
+				mes "[Guillaume Blacksmith]";
+				mes "Combine Stones and Gold in the proper percentage and shape the Barricade, then add Rough Elunium to make it stronger.";
+				next;
+				mes "[Guillaume Blacksmith]";
+				mes "Combine Stones and Gold in the proper percentage and shape the Barricade, then add Rough Elunium to make it stronger. Now decorate with Metal Fragments.";
+				next;
+				mes "[Guillaume Blacksmith]";
+				mes "Combine Stones and Gold in the proper percentage and shape the Barricade, then add Rough Elunium to make it stronger. Decorate with Metal Fragments, and plait stones with Sinew of Bear!";
+				next;
+				mes "..............";
+				mes "..............";
+				mes "..............";
+				mes "..............";
+				mes "..............";
+				next;
+				specialeffect EF_REPAIRWEAPON;
+				mes "[Guillaume Blacksmith]";
+				mes "Wow! It's done.";
+				mes "We are relieved.";
+				delitem 7049,50; //Stone
+				donpcevent "barricade#bat_a01_a::OnEnable";
+				close2;
+				disablenpc "Guillaume Blacksmith#a01";
+				end;
+			}
+			else {
+				mes "[Guillaume Blacksmith]";
+				mes "You don't have enough Stones!";
+				next;
+				mes "[Guillaume Blacksmith]";
+				mes "^3131FFWe need 50 Stones.^000000";
+				mes "We are busy, so please hurry.";
+				close;
+			}
+		case 2:
+			mes "[Guillaume Blacksmith]";
+			mes "There are enemies coming! Let's evacuate from here!";
+			close;
+		}
+	}
+	else {
+		mes "[Guillaume Blacksmith]";
+		mes "There the enemy is coming!";
+		close;
+	}
+
+OnInit:
+	disablenpc "Guillaume Blacksmith#a01";
+	end;
+}
+
+bat_a01,170,121,5	script	Croix Blacksmith#bat_a01	851,{
+	if (getcharid(4) == $@TierraBG1_id2) {
+		mes "[Croix Blacksmith]";
+		mes "We are in urgency! The Barricade has been destroyed!";
+		mes "We can repair the Barricade with ^3131FF50 Stones, 3 Sinew of Bear, 500 Metal Fragments, 30 Rough Elunium and 100 Gold.^000000";
+		mes "We have it all except for the 50 Stones!";
+		next;
+		switch(select("Repair.:Leave it.")) {
+		case 1:
+			if (countitem(7049) > 49) {
+				mes "[Croix Blacksmith]";
+				mes "You brought enough stones! Let's go and repair.";
+				next;
+				mes "..";
+				next;
+				mes "....";
+				next;
+				mes "......";
+				next;
+				mes "........";
+				next;
+				mes "..........";
+				next;
+				mes "............";
+				next;
+				mes "..............";
+				next;
+				mes "[Croix Blacksmith]";
+				mes "Combine Stones and Gold in the proper percentage.";
+				next;
+				mes "[Croix Blacksmith]";
+				mes "Combine Stones and Gold in the proper percentage and shape the Barricade.";
+				next;
+				mes "[Croix Blacksmith]";
+				mes "Combine Stones and Gold in the proper percentage and shape the Barricade, then add Rough Elunium to make it stronger.";
+				next;
+				mes "[Croix Blacksmith]";
+				mes "Combine Stones and Gold in the proper percentage and shape the Barricade, then add Rough Elunium to make it stronger. Now decorate with Metal Fragments.";
+				next;
+				mes "[Croix Blacksmith]";
+				mes "Combine Stones and Gold in the proper percentage and shape the Barricade, then add Rough Elunium to make it stronger. Decorate with Metal Fragments, and plait stones with Sinew of Bear!";
+				next;
+				mes "..............";
+				mes "..............";
+				mes "..............";
+				mes "..............";
+				mes "..............";
+				next;
+				specialeffect EF_REPAIRWEAPON;
+				mes "[Croix Blacksmith]";
+				mes "Wow! It's done.";
+				mes "We are relieved.";
+				delitem 7049,50; //Stone
+				donpcevent "barricade#bat_a01_b::OnEnable";
+				close2;
+				disablenpc "Croix Blacksmith#bat_a01";
+				end;
+			}
+			else {
+				mes "[Croix Blacksmith]";
+				mes "You don't have enough Stones!";
+				next;
+				mes "[Croix Blacksmith]";
+				mes "^3131FFWe need 50 Stone.^000000";
+				mes "We are busy, so please hurry.";
+				close;
+			}
+		case 2:
+			mes "[Croix Blacksmith]";
+			mes "There are enemies coming! Let's evacuate from here!";
+			close;
+		}
+	}
+	else {
+		mes "[Croix Blacksmith]";
+		mes "There, the enemy is coming!";
+		close;
+	}
+
+OnInit:
+	disablenpc "Croix Blacksmith#bat_a01";
+	end;
+}
+
+bat_a01,53,377,3	script	Battle Therapist#a01_a	95,{
+	specialeffect2 EF_HEAL;
+	mes "[Battle Therapist]";
+	mes "Just close your eyes,";
+	mes "and take a deep breath.";
+	mes "You can be free from pain.";
+	close;
+	end;
+
+OnInit:
+	initnpctimer;
+	end;
+
+OnEnable:
+	stopnpctimer;
+	initnpctimer;
+	enablenpc "Battle Therapist#a01_a";
+	end;
+
+Onstop:
+	disablenpc "bat_a01_rp1_a_warp";
+	disablenpc "Battle Therapist#a01_a";
+	stopnpctimer;
+	end;
+
+OnTimer25000:
+	specialeffect EF_SANCTUARY;
+	enablenpc "bat_a01_rp1_a_warp";
+	end;
+
+OnTimer26000:
+	disablenpc "bat_a01_rp1_a_warp";
+	end;
+
+OnTimer26500:
+	donpcevent "Battle Therapist#a01_a::OnEnable";
+	end;
+}
+
+bat_a01,51,375,0	script	bat_a01_rp1_a_warp	-1,10,10,{
+OnInit:
+	disablenpc "bat_a01_rp1_a_warp";
+	end;
+
+OnTouch_:
+	percentheal 100,100;
+	warp "bat_a01",352,342;
+	end;
+}
+
+bat_a01,45,19,3	script	Battle Therapist#a01_b	95,{
+	specialeffect2 EF_HEAL;
+	mes "[Battle Therapist]";
+	mes "Just close your eyes,";
+	mes "and take a deep breath.";
+	mes "You can be free from pain.";
+	close;
+	end;
+
+OnInit:
+	initnpctimer;
+	end;
+
+OnEnable:
+	stopnpctimer;
+	initnpctimer;
+	enablenpc "Battle Therapist#a01_b";
+	end;
+
+Onstop:
+	disablenpc "bat_a01_rp1_b_warp";
+	disablenpc "Battle Therapist#a01_b";
+	stopnpctimer;
+	end;
+
+OnTimer25000:
+	specialeffect EF_SANCTUARY;
+	enablenpc "bat_a01_rp1_b_warp";
+	end;
+
+OnTimer26000:
+	disablenpc "bat_a01_rp1_b_warp";
+	end;
+
+OnTimer26500:
+	donpcevent "Battle Therapist#a01_b::OnEnable";
+	end;
+}
+
+bat_a01,43,17,0	script	bat_a01_rp1_b_warp	-1,10,10,{
+OnInit:
+	disablenpc "bat_a01_rp1_b_warp";
+	end;
+
+OnTouch:
+	percentheal 100,100;
+	warp "bat_a01",353,52;
+	end;
+}
+
+bat_a01,60,216,3	script	Valley Ghost#bat_a01_n	950,{
+	specialeffect2 EF_HEAL;
+	mes "[Valley Ghost]";
+	mes "Boo...Boo...";
+	close;
+
+OnInit:
+	initnpctimer;
+	end;
+
+OnEnable:
+	stopnpctimer;
+	initnpctimer;
+	end;
+
+OnTimer25000:
+	specialeffect EF_SANCTUARY;
+	enablenpc "bat_a01_rp1_n_warp";
+	end;
+
+OnTimer26000:
+	disablenpc "bat_a01_rp1_n_warp";
+	end;
+
+OnTimer26500:
+	donpcevent "Valley Ghost#bat_a01_n::OnEnable";
+	end;
+}
+
+bat_a01,55,213,0	script	bat_a01_rp1_n_warp	-1,10,10,{
+OnInit:
+	disablenpc "bat_a01_rp1_n_warp";
+	end;
+
+OnTouch:
+	percentheal 100,100;
+	warp "bat_a01",301,209;
+	end;
+}
+
+bat_a01,194,267,0	script	barri_warp_up#bat_a01_a	-1,7,0,{
+OnTouch:
+	if (getcharid(4) == $@TierraBG1_id1)
+		warp "bat_a01",194,261;
+	end;
+}
+
+bat_a01,194,265,0	script	barri_warp_down#bat_a01a	-1,7,0,{
+OnTouch:
+	if (getcharid(4) == $@TierraBG1_id1) 
+		warp "bat_a01",194,270;
+	end;
+}
+
+bat_a01,177,130,0	script	barri_warp_up#bat_a01_b	-1,7,0,{
+OnTouch:
+	if (getcharid(4) == $@TierraBG1_id2)
+		warp "bat_a01",178,125;
+	end;
+}
+
+bat_a01,177,128,0	script	barri_warp_down#bat_a01b	-1,7,0,{
+OnTouch:
+	if (getcharid(4) == $@TierraBG1_id2)
+		warp "bat_a01",178,134;
+	end;
+}
+
+bat_a01,352,342,0	script	A_CODE#bat_a01	-1,5,5,{
+OnTouch:
+	set .@chk_bfquest,checkquest(2069);
+	if ((.@chk_bfquest == 0) || (.@chk_bfquest == 1))
+		setquest 2069;
+	end;
+}
+
+bat_a01,353,52,0	script	B_CODE#bat_a01	-1,5,5,{
+OnTouch:
+	set .@chk_bfquest,checkquest(2069);
+	if ((.@chk_bfquest == 0) || (.@chk_bfquest == 1))
+		setquest 2069;
+	end;
+}
+
+bat_a01,169,227,0	script	underladd#bat_a01_1	45,1,1,{
+OnTouch_:
+	warp "bat_a01",178,228;
+	end;
+}
+
+bat_a01,208,164,0	script	underladd#bat_a01_2	45,1,1,{
+OnTouch_:
+	warp "bat_a01",200,171;
+	end;
+}
+
+bat_a01,171,309,3	script	Guillaume Camp#flag1	973,{ end; }
+bat_a01,149,310,3	script	Guillaume Camp#flag2	973,{ end; }
+bat_a01,119,336,3	script	Guillaume Camp#flag3	973,{ end; }
+bat_a01,118,357,3	script	Guillaume Camp#flag4	973,{ end; }
+bat_a01,150,380,3	script	Guillaume Camp#flag5	973,{ end; }
+bat_a01,173,380,3	script	Guillaume Camp#flag6	973,{ end; }
+bat_a01,210,344,3	script	Guillaume Camp#flag7	973,{ end; }
+bat_a01,350,325,3	script	Guillaume Camp#flag8	973,{ end; }
+bat_a01,358,325,3	script	Guillaume Camp#flag9	973,{ end; }
+
+bat_a01,138,12,3	script	Croix Camp#flag1	974,{ end; }
+bat_a01,108,36,3	script	Croix Camp#flag2	974,{ end; }
+bat_a01,108,63,3	script	Croix Camp#flag3	974,{ end; }
+bat_a01,136,87,3	script	Croix Camp#flag4	974,{ end; }
+bat_a01,167,86,3	script	Croix Camp#flag5	974,{ end; }
+bat_a01,199,49,3	script	Croix Camp#flag6	974,{ end; }
+bat_a01,168,16,3	script	Croix Camp#flag7	974,{ end; }
+bat_a01,357,74,3	script	Croix Camp#flag8	974,{ end; }
+bat_a01,348,74,3	script	Croix Camp#flag9	974,{ end; }
+
+bat_a01,53,377,3	script	Guillaume Vintenar#a01_a	419,{
+	if (getcharid(4) == $@TierraBG1_id1) {
+		if ($@TierraBG1_Victory == 1) {
+			set .@your_medal,countitem(7828);
+			set .@medal_gap, 500 - .@your_medal;
+			if (.@medal_gap > 2) {
+				mes "[Axl Rose]";
+				mes "Blessed Guillaume!";
+				mes "Let's enjoy our glorious victory!";
+				mes ""+strcharinfo(0)+", it's a sign reflecting victory.";
+				close2;
+				getitem 7828,3; //BF_Badge1
+			}
+			else {
+				mes "[Axl Rose]";
+				mes "Blessed Guillaume!";
+				mes "Let's enjoy our glorious victory!";
+				mes ""+strcharinfo(0)+", it's a sign reflecting victory.";
+				close2;
+				getitem 7828,.@medal_gap; //BF_Badge1
+			}
+		}
+		else {
+			set .@your_medal,countitem(7828);
+			set .@medal_gap, 500 - .@your_medal;
+			if (.@medal_gap > 0) {
+				mes "[Axl Rose]";
+				mes "You lost, but you're dedicated to this battle.";
+				mes "This is a reward for your great dedication by Guillaume Marollo!";
+				mes "Just take this defeat as a lesson, and next time you will definitely win.";
+				close2;
+				getitem 7828,1; //BF_Badge1
+			}
+			else {
+				mes "[Axl Rose]";
+				mes "You lost, but you're dedicated to this battle.";
+				mes "This is a reward for your great dedication by Guillaume Marollo!";
+				mes "Just take this defeat as a lesson, and next time you will definitely win.";
+				close2;
+				getitem 7828,.@medal_gap; //BF_Badge1
+			}
+		}
+	}
+	else {
+		if ($@TierraBG1_Victory == 2) {
+			set .@your_medal,countitem(7828);
+			set .@medal_gap, 500 - .@your_medal;
+			if (.@medal_gap > 0) {
+				mes "[Axl Rose]";
+				mes "You lost, but you're dedicated to this battle.";
+				mes "This is a reward for your great dedication by Guillaume Marollo!";
+				mes "Just take this defeat as a lesson, and next time you will definitely win.";
+				close2;
+				getitem 7828,1; //BF_Badge1
+			}
+			else {
+				mes "[Axl Rose]";
+				mes "You lost, but you're dedicated to this battle.";
+				mes "This is a reward for your great dedication by Guillaume Marollo!";
+				mes "Just take this defeat as a lesson, and next time you will definitely win.";
+				close2;
+				getitem 7828,.@medal_gap; //BF_Badge1
+			}
+		}
+		else {
+			set .@your_medal,countitem(7828);
+			set .@medal_gap, 500 - .@your_medal;
+			if (.@medal_gap > 2) {
+				mes "[Axl Rose]";
+				mes "Blessed Guillaume!";
+				mes "Let's enjoy our glorious victory!";
+				mes ""+strcharinfo(0)+", it's a sign reflecting victory.";
+				close2;
+				getitem 7828,3; //BF_Badge1
+			}
+			else {
+				mes "[Axl Rose]";
+				mes "Blessed Guillaume!";
+				mes "Let's enjoy our glorious victory!";
+				mes ""+strcharinfo(0)+", it's a sign of victory.";
+				close2;
+				getitem 7828,.@medal_gap; //BF_Badge1
+			}
+		}
+	}
+	bg_leave;
+	warp "bat_room",154,150;
+	end;
+
+OnInit:
+	disablenpc "Guillaume Vintenar#a01_a";
+	end;
+}
+
+bat_a01,45,19,3	script	Croix Vintenar#a01_b	415,{
+	if (getcharid(4) == $@TierraBG1_id2) {
+		if ($@TierraBG1_Victory == 2) {
+			set .@your_medal,countitem(7828);
+			set .@medal_gap, 500 - .@your_medal;
+			if (.@medal_gap > 2) {
+				mes "[Swandery]";
+				mes "Blessed Croix!";
+				mes "Let's enjoy our glorious victory!";
+				mes ""+strcharinfo(0)+", it's a sign reflecting victory.";
+				close2;
+				getitem 7828,3; //BF_Badge1
+			}
+			else {
+				mes "[Swandery]";
+				mes "Blessed Croix!";
+				mes "Let's enjoy our glorious victory!";
+				mes ""+strcharinfo(0)+", it's a sign reflecting victory.";
+				close2;
+				getitem 7828,.@medal_gap; //BF_Badge1
+			}
+		}
+		else {
+			set .@your_medal,countitem(7828);
+			set .@medal_gap, 500 - .@your_medal;
+			if (.@medal_gap > 0) {
+				mes "[Swandery]";
+				mes "Oh, "+strcharinfo(0)+" Don't be sad.";
+				mes "Even though we didn't win, we did our best.";
+				mes "This is a Royal gift from Croix, and please don't forget this battle. We will win the next one.";
+				close2;
+				getitem 7828,1; //BF_Badge1
+			}
+			else {
+				mes "[Swandery]";
+				mes "Oh, "+strcharinfo(0)+" Don't be sad.";
+				mes "Even though we didn't win, we did our best.";
+				mes "This is a Royal gift from Croix, and please don't forget this battle. We will win the next one.";
+				close2;
+				getitem 7828,.@medal_gap; //BF_Badge1
+			}
+		}
+	}
+	else {
+		if ($@TierraBG1_Victory == 1) {
+			set .@your_medal,countitem(7828);
+			set .@medal_gap, 500 - .@your_medal;
+			if (.@medal_gap > 0) {
+				mes "[Swandery]";
+				mes "Oh, "+strcharinfo(0)+" Don't be sad.";
+				mes "Even though we didn't win, we did our best.";
+				mes "This is a Royal gift from Croix, and please don't forget this battle. We will win the next one.";
+				close2;
+				getitem 7828,1; //BF_Badge1
+			}
+			else {
+				mes "[Swandery]";
+				mes "Oh, "+strcharinfo(0)+" Don't be sad.";
+				mes "Even though we didn't win, we did our best.";
+				mes "This is a Royal gift from Croix, and please don't forget this battle. We will win the next one.";
+				close2;
+				getitem 7828,.@medal_gap; //BF_Badge1
+			}
+		}
+		else {
+			set .@your_medal,countitem(7828);
+			set .@medal_gap, 500 - .@your_medal;
+			if (.@medal_gap > 2) {
+				mes "[Swandery]";
+				mes "Blessed Croix!";
+				mes "Let's enjoy our glorious victory!";
+				mes ""+strcharinfo(0)+", it's a sign reflecting victory.";
+				close2;
+				getitem 7828,3; //BF_Badge1
+			}
+			else {
+				mes "[Swandery]";
+				mes "Blessed Croix!";
+				mes "Let's enjoy our glorious victory!";
+				mes ""+strcharinfo(0)+", it's a sign reflecting victory.";
+				close2;
+				getitem 7828,.@medal_gap; //BF_Badge1
+			}
+		}
+	}
+	bg_leave;
+	warp "bat_room",154,150;
+	end;
+
+OnInit:
+	disablenpc "Croix Vintenar#a01_b";
+	end;
+}
+
+bat_a01,1,5,3	script	countdown#bat_a01	844,{
+OnEnable:
+	initnpctimer;
+	end;
+
+Onstop:
+	stopnpctimer;
+	end;
+
+OnTimer7000:
+	mapannounce "bat_a01", "Guillaume Vintenar Axl Rose : Let's attack to burn down Croix's Food Depot!",bc_map,"0xFF9900";
+	end;
+
+OnTimer8000:
+	mapannounce "bat_a01", "Croix Vintenar Swandery : Master of Valhalla! Let us be gifted with unfailing faith and courage!",bc_map,"0xFF99CC";
+	end;
+
+OnTimer1800000:
+	mapannounce "bat_a01", "Marollo VII : Guillaume Marollo, Croix Marollo! Marollo followers!",bc_map,"0x99CC00";
+	end;
+
+OnTimer1803000:
+	mapannounce "bat_a01", "Marollo VII : Both camps are competitive, so no camp would be destroyed easily. That means the Marollo kingdoms will never be defeated!",bc_map,"0x99CC00";
+	end;
+
+OnTimer1808000:
+	mapannounce "bat_a01", "Marollo VII : I think we'd better terminate the battle, and call it a draw.",bc_map,"0x99CC00";
+	end;
+
+OnTimer1822000:
+	mapannounce "bat_a01", "Marollo VII : Hold your royalty and faith for a moment, and let's settle up the battle of Tierra Gorge.",bc_map,"0x99CC00";
+	end;
+
+OnTimer1825000:
+	mapannounce "bat_a01", "Axl Rose, Swandery : Yes sir.",bc_map,"0x99CC00";
+	end;
+
+OnTimer1830000:
+	mapwarp "bat_a01","bat_room",154,150;
+	donpcevent "countdown#bat_a01::Onstop";
+	end;
+}
+
+/*
+bat_a01,351,75,3	script	Croix Camp Soldier#bat_a01_guide	934,{
+	mes "Loading...";
+	close;
+}
+
+bat_a01,356,326,3	script	Guillaume Camp Soldier#bat_a01_guide	934,{
+	mes "Loading...";
+	close;
+}
+*/
+
+/*
+bat_a01,1,1,3	script	Release all#a01	81,{
+	input .@input,0,2000;
+	if (.@input == 0) {
+		mes "Cancelled.";
+		close;
+	}
+	else if (.@input == 1854) {
+		mes "May I help you?";
+		next;
+		switch(select("Release all.:Cancel.")) {
+		case 1:
+			mes "Bye.";
+			close2;
+			mapwarp "bat_a01","bat_room",154,150;
+			end;
+		case 2:
+			mes "Cancelled.";
+		}
+	}
+}
+*/
+
+bat_a01	mapflag	battleground
+bat_a01	mapflag	nomemo
+bat_a01	mapflag	nosave	SavePoint
+bat_a01	mapflag	noteleport
+bat_a01	mapflag	nowarp
+bat_a01	mapflag	nowarpto
+bat_a01	mapflag	noreturn
+bat_a01	mapflag	nobranch
+bat_a01	mapflag	nopenalty

+ 951 - 0
npc/battleground/tierra/tierra02.txt

@@ -0,0 +1,951 @@
+//===== eAthena Script ======================================= 
+// BattleGround System - Tierra Gorge 2
+//===== By: ================================================== 
+//= L0ne_W0lf
+//===== Current Version: ===================================== 
+//= 1.0
+//===== Compatible With: ===================================== 
+//= eAthena 1.0
+//===== Description: ========================================= 
+//= [AEGIS Conversion]
+//= Second Tierra Gorge Battleground.
+//= - Winning Team: 3 badges
+//= - Losing Team: 1 badge
+//===== Additional Comments: ================================= 
+//= 1.0 First Version.
+//============================================================
+
+// Waiting Room NPCs
+//============================================================
+bat_room,114,227,5	script	Lieutenant Rundel	418,{
+	end;
+
+OnInit:
+	waitingroom "Battle Station",10,"start#bat_a02::OnReadyCheck",1;
+	end;
+
+OnEnterBG:
+	set $@TierraBG2_id1, waitingroom2bg("bat_a02",50,374,"start#bat_a02::OnGuillaumeQuit","");
+	end;
+}
+
+bat_room,114,204,1	script	Lieutenant Guerrit	414,{
+	end;
+
+OnInit:
+	waitingroom "Battle Station",10,"start#bat_a02::OnReadyCheck",1;
+	end;
+
+OnEnterBG:
+	set $@TierraBG2_id2, waitingroom2bg("bat_a02",42,16,"start#bat_a02::OnCroixQuit","");
+	end;
+}
+
+bat_room,1,151,3	script	#bat_a02_timer	844,{
+	end;
+
+OnEnable:
+	initnpctimer;
+	end;
+
+OnStop:
+	stopnpctimer;
+	end;
+
+OnTimer1000:
+	stopnpctimer;
+	initnpctimer;
+	set .@chk_bat_a02,getmapusers("bat_a02");
+	if (.@chk_bat_a02 < 1) {
+		set $@TierraBG2,0; set $@TierraBG2_Victory, 0;
+		if( $@TierraBG2_id1 ) { bg_destroy $@TierraBG2_id1; set $@TierraBG2_id1, 0; }
+		if( $@TierraBG2_id2 ) { bg_destroy $@TierraBG2_id2; set $@TierraBG2_id2, 0; }
+		donpcevent "start#bat_a02::OnReadyCheck";
+	}
+	end;
+}
+
+bat_a02,352,342,0	script	#bat_a02_quest_a	-1,5,5,{
+	end;
+
+OnTouch:
+	if (checkquest(2069) < 0)
+		setquest 2069;
+	end;
+}
+
+bat_a02,353,52,0	script	#bat_a02_quest_b	-1,5,5,{
+	end;
+
+OnTouch:
+	if (checkquest(2069) < 0)
+		setquest 2069;
+	end;
+}
+
+bat_room,113,220,0	warp	back_bgroom02a	1,1,bat_room,154,150
+bat_room,113,211,0	warp	back_bgroom02b	1,1,bat_room,154,150
+
+// Tierra Gorge Battleground Engine
+//============================================================
+bat_a02,15,15,3	script	start#bat_a02	844,{
+OnInit:
+	mapwarp "bat_a02","bat_room",154,150;
+	end;
+
+OnEnable:
+	donpcevent "OBJ#bat_a02_a::Onkill";
+	donpcevent "OBJ#bat_a02_a::OnEnable";
+	donpcevent "OBJ#bat_a02_b::Onkill";
+	donpcevent "OBJ#bat_a02_b::OnEnable";
+	donpcevent "barricade#bat_a02_a::Onkill";
+	donpcevent "barricade#bat_a02_a::OnEnable";
+	donpcevent "barricade#bat_a02_b::Onkill";
+	donpcevent "barricade#bat_a02_b::OnEnable";
+	donpcevent "OBJ#bat_a02_n::Onkill";
+	donpcevent "OBJ#bat_a02_n::OnEnable";
+	donpcevent "NOBJ_mob#bat_a02_a::Onkill";
+	donpcevent "NOBJ_mob#bat_a02_b::Onkill";
+	donpcevent "Battle Therapist#a02_a::OnEnable";
+	donpcevent "Battle Therapist#a02_b::OnEnable";
+	donpcevent "countdown#bat_a02::OnEnable";
+	disablenpc "Guillaume Blacksmith#a02";
+	disablenpc "Croix Blacksmith#bat_a02";
+	disablenpc "Guillaume Vintenar#a02_a";
+	disablenpc "Croix Vintenar#a02_b";
+	end;
+
+OnGuillaumeQuit:
+OnCroixQuit:
+	bg_leave;
+	end;
+
+OnReadyCheck:
+	if( $@TierraBG2 )
+		end;
+	set .@Guillaume, getwaitingroomstate(0,"Lieutenant Rundel");
+	set .@Croix, getwaitingroomstate(0,"Lieutenant Guerrit");
+	if( !.@Guillaume && !.@Croix ) {
+		donpcevent "#bat_a02_timer::OnStop";
+		end;
+	}
+	if( .@Guillaume < 10 || .@Croix < 10 )
+		end;
+	set $@TierraBG2,1;
+	donpcevent "Lieutenant Rundel::OnEnterBG";
+	donpcevent "Lieutenant Guerrit::OnEnterBG";
+	donpcevent "start#bat_a02::onEnable";
+	bg_warp $@TierraBG2_id1,"bat_a02",352,342;
+	bg_warp $@TierraBG2_id2,"bat_a02",353,52;
+	initnpctimer;
+	end;
+
+OnTimer10000:
+	stopnpctimer;
+	donpcevent "#bat_a02_timer::OnEnable";
+	end;
+}
+
+bat_a02,15,16,3	script	OBJ#bat_a02_a	844,{
+OnEnable:
+	bg_monster $@TierraBG2_id1,"bat_a02",177,345,"Food Storage",1909,"OBJ#bat_a02_a::OnMyMobDead";
+	end;
+
+Onkill:
+	killmonster "bat_a02","OBJ#bat_a02_a::OnMyMobDead";
+	end;
+
+OnMyMobDead:
+	if (mobcount("bat_a02","OBJ#bat_a02_a::OnMyMobDead") < 1) {
+		donpcevent "Battle Therapist#a02_a::OnStop";
+		donpcevent "Battle Therapist#a02_b::OnStop";
+		set $@TierraBG2_Victory, 2;
+		enablenpc "Guillaume Vintenar#a02_a";
+		enablenpc "Croix Vintenar#a02_b";
+		mapannounce "bat_a02", "Croix Vintenar Swandery: We destroyed Guillaume's Food Storage. We won that! Wow!",bc_map,"0xFFCE00";
+		bg_warp $@TierraBG2_id1,"bat_a02",50,374;
+		bg_warp $@TierraBG2_id2,"bat_a02",42,16;
+	}
+	end;
+}
+
+bat_a02,15,17,3	script	OBJ#bat_a02_b	844,{
+OnEnable:
+	bg_monster $@TierraBG2_id2,"bat_a02",167,50,"Food Depot",1910,"OBJ#bat_a02_b::OnMyMobDead";
+	end;
+
+Onkill:
+	killmonster "bat_a02","OBJ#bat_a02_b::OnMyMobDead";
+	end;
+
+OnMyMobDead:
+	if (mobcount("bat_a02","OBJ#bat_a02_b::OnMyMobDead") < 1) {
+		donpcevent "Battle Therapist#a02_a::OnStop";
+		donpcevent "Battle Therapist#a02_b::OnStop";
+		set $@TierraBG2_Victory, 1;
+		enablenpc "Guillaume Vintenar#a02_a";
+		enablenpc "Croix Vintenar#a02_b";
+		mapannounce "bat_a02", "Guillaume Vintenar Axl Rose : We destroyed Croix's Food Storage. We won that! Wow!",bc_map,"0xFFCE00";
+		bg_warp $@TierraBG2_id1,"bat_a02",50,374;
+		bg_warp $@TierraBG2_id2,"bat_a02",42,16;
+	}
+	end;
+}
+
+bat_a02,15,18,3	script	barricade#bat_a02_a	844,{
+OnEnable:
+	for( set .@i,185; .@i < 202; set .@i,.@i+1 )
+		bg_monster $@TierraBG2_id1,"bat_a02",.@i,266,"Barricade",1906,"barricade#bat_a02_a::OnMyMobDead";
+	setwall "bat_a02",185,266,16,6,1,"bat_a02_c1";
+	end;
+
+Onkill:
+	killmonster "bat_a02","barricade#bat_a02_a::OnMyMobDead";
+	delwall "bat_a02_c1";
+	end;
+
+OnMyMobDead:
+	if (mobcount("bat_a02","barricade#bat_a02_a::OnMyMobDead") < 17) {
+		killmonster "bat_a02","barricade#bat_a02_a::OnMyMobDead";
+		delwall "bat_a02_c1";
+		enablenpc "Guillaume Blacksmith#a02";
+		mapannounce "bat_a02", "Guillaume Vintenar Axl Rose : The Barricade in the valley has been destroyed! Where's the Blacksmith? We need to rebuild the Barricade!",bc_map,"0xFFCE00";
+	}
+	end;
+}
+
+bat_a02,15,19,3	script	barricade#bat_a02_b	844,{
+OnEnable:
+	for( set .@i,169; .@i < 186; set .@i,.@i+1 )
+		bg_monster $@TierraBG2_id2,"bat_a02",.@i,129,"Barricade",1906,"barricade#bat_a02_b::OnMyMobDead";
+	setwall "bat_a02",169,129,16,6,1,"bat_a02_g1";
+	end;
+
+Onkill:
+	killmonster "bat_a02","barricade#bat_a02_b::OnMyMobDead";
+	delwall "bat_a02_g1";
+	end;
+
+OnMyMobDead:
+	if (mobcount("bat_a02","barricade#bat_a02_b::OnMyMobDead") < 17) {
+		killmonster "bat_a02","barricade#bat_a02_b::OnMyMobDead";
+		delwall "bat_a02_g1";
+		enablenpc "Croix Blacksmith#bat_a02";
+		mapannounce "bat_a02", "Croix Vintenar Swandery : The Barricade in the valley has been destroyed! Where's the Blacksmith? We need to rebuild the Barricade!",bc_map,"0xFFCE00";
+	}
+	end;
+}
+
+bat_a02,15,20,3	script	OBJ#bat_a02_n	844,{
+OnEnable:
+	monster "bat_a02",273,203,"Neutrality Flag",1911,1,"OBJ#bat_a02_n::OnMyMobDead";
+	end;
+
+Onkill:
+	killmonster "bat_a02","OBJ#bat_a02_n::OnMyMobDead";
+	end;
+
+OnMyMobDead:
+	if (mobcount("bat_a02","OBJ#bat_a02_n::OnMyMobDead") < 17) {
+		bg_team_setxy getcharid(4),56,212;
+		if (getcharid(4) == $@TierraBG2_id1) {
+			donpcevent "NOBJ_mob#bat_a02_a::OnEnable";
+			mapannounce "bat_a02", "Guillaume captured a Neutrality Flag, so they have an advantage.",bc_map,"0xFFCE00";
+		}
+		else {
+			donpcevent "NOBJ_mob#bat_a02_b::OnEnable";
+			mapannounce "bat_a02", "Croix captured a Neutrality Flag, so they have an advantage.",bc_map,"0xFFCE00";
+		}
+	}
+	end;
+}
+
+bat_a02,15,21,3	script	NOBJ_mob#bat_a02_a	844,{
+OnEnable:
+	donpcevent "NOBJ_mob#bat_a02_b::Onkill";
+	bg_monster $@TierraBG2_id1,"bat_a02",272,204,"Guillaume Camp Guardian",1949,"NOBJ_mob#bat_a02_a::OnMyMobDead";
+	bg_monster $@TierraBG2_id1,"bat_a02",272,213,"Guillaume Camp Guardian",1949,"NOBJ_mob#bat_a02_a::OnMyMobDead";
+	bg_monster $@TierraBG2_id1,"bat_a02",273,197,"Guillaume Camp Guardian",1950,"NOBJ_mob#bat_a02_a::OnMyMobDead";
+	end;
+
+Onkill:
+	killmonster "bat_a02","NOBJ_mob#bat_a02_a::OnMyMobDead";
+	end;
+
+OnMyMobDead:
+	end;
+}
+
+bat_a02,15,22,3	script	NOBJ_mob#bat_a02_b	844,{
+OnEnable:
+	donpcevent "NOBJ_mob#bat_a02_a::Onkill";
+	bg_monster $@TierraBG2_id2,"bat_a02",272,204,"Croix Camp Guardian",1949,"NOBJ_mob#bat_a02_a::OnMyMobDead";
+	bg_monster $@TierraBG2_id2,"bat_a02",272,213,"Croix Camp Guardian",1949,"NOBJ_mob#bat_a02_a::OnMyMobDead";
+	bg_monster $@TierraBG2_id2,"bat_a02",273,197,"Croix Camp Guardian",1950,"NOBJ_mob#bat_a02_a::OnMyMobDead";
+	end;
+
+Onkill:
+	killmonster "bat_a02","NOBJ_mob#bat_a02_b::OnMyMobDead";
+	end;
+
+OnMyMobDead:
+	end;
+}
+
+bat_a02,185,270,1	script	Guillaume Blacksmith#a02	851,{
+	if (getcharid(4) == $@TierraBG2_id1) {
+		mes "[Guillaume Blacksmith]";
+		mes "We are in urgency! The Barricade has been destroyed!";
+		mes "We can repair the Barricade with ^3131FF50 Stones, 3 Sinew of Bear, 500 Metal Fragments, 30 Rough Elunium and 100 Gold.^000000";
+		mes "We have it all except for the 50 Stones!";
+		next;
+		switch(select("Repair.:Leave it.")) {
+		case 1:
+			if (countitem(7049) > 49) {
+				mes "[Guillaume Blacksmith]";
+				mes "You brought enough stones! Let's go and repair.";
+				next;
+				mes "..";
+				next;
+				mes "....";
+				next;
+				mes "......";
+				next;
+				mes "........";
+				next;
+				mes "..........";
+				next;
+				mes "............";
+				next;
+				mes "..............";
+				next;
+				mes "[Guillaume Blacksmith]";
+				mes "Combine Stones and Gold in the proper percentage.";
+				next;
+				mes "[Guillaume Blacksmith]";
+				mes "Combine Stones and Gold in the proper percentage and shape the Barricade.";
+				next;
+				mes "[Guillaume Blacksmith]";
+				mes "Combine Stones and Gold in the proper percentage and shape the Barricade, then add Rough Elunium to make it stronger.";
+				next;
+				mes "[Guillaume Blacksmith]";
+				mes "Combine Stones and Gold in the proper percentage and shape the Barricade, then add Rough Elunium to make it stronger. Now decorate with Metal Fragments.";
+				next;
+				mes "[Guillaume Blacksmith]";
+				mes "Combine Stones and Gold in the proper percentage and shape the Barricade, then add Rough Elunium to make it stronger. Decorate with Metal Fragments, and plait stones with Sinew of Bear!";
+				next;
+				mes "..............";
+				mes "..............";
+				mes "..............";
+				mes "..............";
+				mes "..............";
+				next;
+				specialeffect EF_REPAIRWEAPON;
+				mes "[Guillaume Blacksmith]";
+				mes "Wow! It's done.";
+				mes "We are relieved.";
+				delitem 7049,50; //Stone
+				donpcevent "barricade#bat_a02_a::OnEnable";
+				close2;
+				disablenpc "Guillaume Blacksmith#a02";
+				end;
+			}
+			else {
+				mes "[Guillaume Blacksmith]";
+				mes "You don't have enough Stones!";
+				next;
+				mes "[Guillaume Blacksmith]";
+				mes "^3131FFWe need 50 Stones.^000000";
+				mes "We are busy, so please hurry.";
+				close;
+			}
+		case 2:
+			mes "[Guillaume Blacksmith]";
+			mes "There are enemies coming! Let's evacuate from here!";
+			close;
+		}
+	}
+	else {
+		mes "[Guillaume Blacksmith]";
+		mes "There the enemy is coming!";
+		close;
+	}
+
+OnInit:
+	disablenpc "Guillaume Blacksmith#a02";
+	end;
+}
+
+bat_a02,170,121,5	script	Croix Blacksmith#bat_a02	851,{
+	if (getcharid(4) == $@TierraBG2_id2) {
+		mes "[Croix Blacksmith]";
+		mes "We are in urgency! The Barricade has been destroyed!";
+		mes "We can repair the Barricade with ^3131FF50 Stones, 3 Sinew of Bear, 500 Metal Fragments, 30 Rough Elunium and 100 Gold.^000000";
+		mes "We have it all except for the 50 Stones!";
+		next;
+		switch(select("Repair.:Leave it.")) {
+		case 1:
+			if (countitem(7049) > 49) {
+				mes "[Croix Blacksmith]";
+				mes "You brought enough stones! Let's go and repair.";
+				next;
+				mes "..";
+				next;
+				mes "....";
+				next;
+				mes "......";
+				next;
+				mes "........";
+				next;
+				mes "..........";
+				next;
+				mes "............";
+				next;
+				mes "..............";
+				next;
+				mes "[Croix Blacksmith]";
+				mes "Combine Stones and Gold in the proper percentage.";
+				next;
+				mes "[Croix Blacksmith]";
+				mes "Combine Stones and Gold in the proper percentage and shape the Barricade.";
+				next;
+				mes "[Croix Blacksmith]";
+				mes "Combine Stones and Gold in the proper percentage and shape the Barricade, then add Rough Elunium to make it stronger.";
+				next;
+				mes "[Croix Blacksmith]";
+				mes "Combine Stones and Gold in the proper percentage and shape the Barricade, then add Rough Elunium to make it stronger. Now decorate with Metal Fragments.";
+				next;
+				mes "[Croix Blacksmith]";
+				mes "Combine Stones and Gold in the proper percentage and shape the Barricade, then add Rough Elunium to make it stronger. Decorate with Metal Fragments, and plait stones with Sinew of Bear!";
+				next;
+				mes "..............";
+				mes "..............";
+				mes "..............";
+				mes "..............";
+				mes "..............";
+				next;
+				specialeffect EF_REPAIRWEAPON;
+				mes "[Croix Blacksmith]";
+				mes "Wow! It's done.";
+				mes "We are relieved.";
+				delitem 7049,50; //Stone
+				donpcevent "barricade#bat_a02_b::OnEnable";
+				close2;
+				disablenpc "Croix Blacksmith#bat_a02";
+				end;
+			}
+			else {
+				mes "[Croix Blacksmith]";
+				mes "You don't have enough Stones!";
+				next;
+				mes "[Croix Blacksmith]";
+				mes "^3131FFWe need 50 Stone.^000000";
+				mes "We are busy, so please hurry.";
+				close;
+			}
+		case 2:
+			mes "[Croix Blacksmith]";
+			mes "There are enemies coming! Let's evacuate from here!";
+			close;
+		}
+	}
+	else {
+		mes "[Croix Blacksmith]";
+		mes "There, the enemy is coming!";
+		close;
+	}
+
+OnInit:
+	disablenpc "Croix Blacksmith#bat_a02";
+	end;
+}
+
+bat_a02,53,377,3	script	Battle Therapist#a02_a	95,{
+	specialeffect2 EF_HEAL;
+	mes "[Battle Therapist]";
+	mes "Just close your eyes,";
+	mes "and take a deep breath.";
+	mes "You can be free from pain.";
+	close;
+	end;
+
+OnInit:
+	initnpctimer;
+	end;
+
+OnEnable:
+	stopnpctimer;
+	initnpctimer;
+	enablenpc "Battle Therapist#a02_a";
+	end;
+
+Onstop:
+	disablenpc "bat_a02_rp1_a_warp";
+	disablenpc "Battle Therapist#a02_a";
+	stopnpctimer;
+	end;
+
+OnTimer25000:
+	specialeffect EF_SANCTUARY;
+	enablenpc "bat_a02_rp1_a_warp";
+	end;
+
+OnTimer26000:
+	disablenpc "bat_a02_rp1_a_warp";
+	end;
+
+OnTimer26500:
+	donpcevent "Battle Therapist#a02_a::OnEnable";
+	end;
+}
+
+bat_a02,51,375,0	script	bat_a02_rp1_a_warp	-1,10,10,{
+OnInit:
+	disablenpc "bat_a02_rp1_a_warp";
+	end;
+
+OnTouch_:
+	percentheal 100,100;
+	warp "bat_a02",352,342;
+	end;
+}
+
+bat_a02,45,19,3	script	Battle Therapist#a02_b	95,{
+	specialeffect2 EF_HEAL;
+	mes "[Battle Therapist]";
+	mes "Just close your eyes,";
+	mes "and take a deep breath.";
+	mes "You can be free from pain.";
+	close;
+	end;
+
+OnInit:
+	initnpctimer;
+	end;
+
+OnEnable:
+	stopnpctimer;
+	initnpctimer;
+	enablenpc "Battle Therapist#a02_b";
+	end;
+
+Onstop:
+	disablenpc "bat_a02_rp1_b_warp";
+	disablenpc "Battle Therapist#a02_b";
+	stopnpctimer;
+	end;
+
+OnTimer25000:
+	specialeffect EF_SANCTUARY;
+	enablenpc "bat_a02_rp1_b_warp";
+	end;
+
+OnTimer26000:
+	disablenpc "bat_a02_rp1_b_warp";
+	end;
+
+OnTimer26500:
+	donpcevent "Battle Therapist#a02_b::OnEnable";
+	end;
+}
+
+bat_a02,43,17,0	script	bat_a02_rp1_b_warp	-1,10,10,{
+OnInit:
+	disablenpc "bat_a02_rp1_b_warp";
+	end;
+
+OnTouch:
+	percentheal 100,100;
+	warp "bat_a02",353,52;
+	end;
+}
+
+bat_a02,60,216,3	script	Valley Ghost#bat_a02_n	950,{
+	specialeffect2 EF_HEAL;
+	mes "[Valley Ghost]";
+	mes "Boo...Boo...";
+	close;
+
+OnInit:
+	initnpctimer;
+	end;
+
+OnEnable:
+	stopnpctimer;
+	initnpctimer;
+	end;
+
+OnTimer25000:
+	specialeffect EF_SANCTUARY;
+	enablenpc "bat_a02_rp1_n_warp";
+	end;
+
+OnTimer26000:
+	disablenpc "bat_a02_rp1_n_warp";
+	end;
+
+OnTimer26500:
+	donpcevent "Valley Ghost#bat_a02_n::OnEnable";
+	end;
+}
+
+bat_a02,55,213,0	script	bat_a02_rp1_n_warp	-1,10,10,{
+OnInit:
+	disablenpc "bat_a02_rp1_n_warp";
+	end;
+
+OnTouch:
+	percentheal 100,100;
+	warp "bat_a02",301,209;
+	end;
+}
+
+bat_a02,194,267,0	script	barri_warp_up#bat_a02_a	-1,7,0,{
+OnTouch:
+	if (getcharid(4) == $@TierraBG2_id1)
+		warp "bat_a02",194,261;
+	end;
+}
+
+bat_a02,194,265,0	script	barri_warp_down#bat_a02a	-1,7,0,{
+OnTouch:
+	if (getcharid(4) == $@TierraBG2_id1) 
+		warp "bat_a02",194,270;
+	end;
+}
+
+bat_a02,177,130,0	script	barri_warp_up#bat_a02_b	-1,7,0,{
+OnTouch:
+	if (getcharid(4) == $@TierraBG2_id2)
+		warp "bat_a02",178,125;
+	end;
+}
+
+bat_a02,177,128,0	script	barri_warp_down#bat_a02b	-1,7,0,{
+OnTouch:
+	if (getcharid(4) == $@TierraBG2_id2)
+		warp "bat_a02",178,134;
+	end;
+}
+
+bat_a02,352,342,0	script	A_CODE#bat_a02	-1,5,5,{
+OnTouch:
+	set .@chk_bfquest,checkquest(2069);
+	if ((.@chk_bfquest == 0) || (.@chk_bfquest == 1))
+		setquest 2069;
+	end;
+}
+
+bat_a02,353,52,0	script	B_CODE#bat_a02	-1,5,5,{
+OnTouch:
+	set .@chk_bfquest,checkquest(2069);
+	if ((.@chk_bfquest == 0) || (.@chk_bfquest == 1))
+		setquest 2069;
+	end;
+}
+
+bat_a02,169,227,0	script	underladd#bat_a02_1	45,1,1,{
+OnTouch_:
+	warp "bat_a02",178,228;
+	end;
+}
+
+bat_a02,208,164,0	script	underladd#bat_a02_2	45,1,1,{
+OnTouch_:
+	warp "bat_a02",200,171;
+	end;
+}
+
+bat_a02,171,309,3	script	Guillaume Camp#flag11	973,{ end; }
+bat_a02,149,310,3	script	Guillaume Camp#flag12	973,{ end; }
+bat_a02,119,336,3	script	Guillaume Camp#flag13	973,{ end; }
+bat_a02,118,357,3	script	Guillaume Camp#flag14	973,{ end; }
+bat_a02,150,380,3	script	Guillaume Camp#flag15	973,{ end; }
+bat_a02,173,380,3	script	Guillaume Camp#flag16	973,{ end; }
+bat_a02,210,344,3	script	Guillaume Camp#flag17	973,{ end; }
+bat_a02,350,325,3	script	Guillaume Camp#flag18	973,{ end; }
+bat_a02,358,325,3	script	Guillaume Camp#flag19	973,{ end; }
+
+bat_a02,138,12,3	script	Croix Camp#flag11	974,{ end; }
+bat_a02,108,36,3	script	Croix Camp#flag12	974,{ end; }
+bat_a02,108,63,3	script	Croix Camp#flag13	974,{ end; }
+bat_a02,136,87,3	script	Croix Camp#flag14	974,{ end; }
+bat_a02,167,86,3	script	Croix Camp#flag15	974,{ end; }
+bat_a02,199,49,3	script	Croix Camp#flag16	974,{ end; }
+bat_a02,168,16,3	script	Croix Camp#flag17	974,{ end; }
+bat_a02,357,74,3	script	Croix Camp#flag18	974,{ end; }
+bat_a02,348,74,3	script	Croix Camp#flag19	974,{ end; }
+
+bat_a02,53,377,3	script	Guillaume Vintenar#a02_a	419,{
+	if (getcharid(4) == $@TierraBG2_id1) {
+		if ($@TierraBG2_Victory == 1) {
+			set .@your_medal,countitem(7828);
+			set .@medal_gap, 500 - .@your_medal;
+			if (.@medal_gap > 2) {
+				mes "[Axl Rose]";
+				mes "Blessed Guillaume!";
+				mes "Let's enjoy our glorious victory!";
+				mes ""+strcharinfo(0)+", it's a sign reflecting victory.";
+				close2;
+				getitem 7828,3; //BF_Badge1
+			}
+			else {
+				mes "[Axl Rose]";
+				mes "Blessed Guillaume!";
+				mes "Let's enjoy our glorious victory!";
+				mes ""+strcharinfo(0)+", it's a sign reflecting victory.";
+				close2;
+				getitem 7828,.@medal_gap; //BF_Badge1
+			}
+		}
+		else {
+			set .@your_medal,countitem(7828);
+			set .@medal_gap, 500 - .@your_medal;
+			if (.@medal_gap > 0) {
+				mes "[Axl Rose]";
+				mes "You lost, but you're dedicated to this battle.";
+				mes "This is a reward for your great dedication by Guillaume Marollo!";
+				mes "Just take this defeat as a lesson, and next time you will definitely win.";
+				close2;
+				getitem 7828,1; //BF_Badge1
+			}
+			else {
+				mes "[Axl Rose]";
+				mes "You lost, but you're dedicated to this battle.";
+				mes "This is a reward for your great dedication by Guillaume Marollo!";
+				mes "Just take this defeat as a lesson, and next time you will definitely win.";
+				close2;
+				getitem 7828,.@medal_gap; //BF_Badge1
+			}
+		}
+	}
+	else {
+		if ($@TierraBG2_Victory == 2) {
+			set .@your_medal,countitem(7828);
+			set .@medal_gap, 500 - .@your_medal;
+			if (.@medal_gap > 0) {
+				mes "[Axl Rose]";
+				mes "You lost, but you're dedicated to this battle.";
+				mes "This is a reward for your great dedication by Guillaume Marollo!";
+				mes "Just take this defeat as a lesson, and next time you will definitely win.";
+				close2;
+				getitem 7828,1; //BF_Badge1
+			}
+			else {
+				mes "[Axl Rose]";
+				mes "You lost, but you're dedicated to this battle.";
+				mes "This is a reward for your great dedication by Guillaume Marollo!";
+				mes "Just take this defeat as a lesson, and next time you will definitely win.";
+				close2;
+				getitem 7828,.@medal_gap; //BF_Badge1
+			}
+		}
+		else {
+			set .@your_medal,countitem(7828);
+			set .@medal_gap, 500 - .@your_medal;
+			if (.@medal_gap > 2) {
+				mes "[Axl Rose]";
+				mes "Blessed Guillaume!";
+				mes "Let's enjoy our glorious victory!";
+				mes ""+strcharinfo(0)+", it's a sign reflecting victory.";
+				close2;
+				getitem 7828,3; //BF_Badge1
+			}
+			else {
+				mes "[Axl Rose]";
+				mes "Blessed Guillaume!";
+				mes "Let's enjoy our glorious victory!";
+				mes ""+strcharinfo(0)+", it's a sign of victory.";
+				close2;
+				getitem 7828,.@medal_gap; //BF_Badge1
+			}
+		}
+	}
+	warp "bat_room",154,150;
+	end;
+
+OnInit:
+	disablenpc "Guillaume Vintenar#a02_a";
+	end;
+}
+
+bat_a02,45,19,3	script	Croix Vintenar#a02_b	415,{
+	if (getcharid(4) == $@TierraBG2_id2) {
+		if ($@TierraBG2_Victory == 2) {
+			set .@your_medal,countitem(7828);
+			set .@medal_gap, 500 - .@your_medal;
+			if (.@medal_gap > 2) {
+				mes "[Swandery]";
+				mes "Blessed Croix!";
+				mes "Let's enjoy our glorious victory!";
+				mes ""+strcharinfo(0)+", it's a sign reflecting victory.";
+				close2;
+				getitem 7828,3; //BF_Badge1
+			}
+			else {
+				mes "[Swandery]";
+				mes "Blessed Croix!";
+				mes "Let's enjoy our glorious victory!";
+				mes ""+strcharinfo(0)+", it's a sign reflecting victory.";
+				close2;
+				getitem 7828,.@medal_gap; //BF_Badge1
+			}
+		}
+		else {
+			set .@your_medal,countitem(7828);
+			set .@medal_gap, 500 - .@your_medal;
+			if (.@medal_gap > 0) {
+				mes "[Swandery]";
+				mes "Oh, "+strcharinfo(0)+" Don't be sad.";
+				mes "Even though we didn't win, we did our best.";
+				mes "This is a Royal gift from Croix, and please don't forget this battle. We will win the next one.";
+				close2;
+				getitem 7828,1; //BF_Badge1
+			}
+			else {
+				mes "[Swandery]";
+				mes "Oh, "+strcharinfo(0)+" Don't be sad.";
+				mes "Even though we didn't win, we did our best.";
+				mes "This is a Royal gift from Croix, and please don't forget this battle. We will win the next one.";
+				close2;
+				getitem 7828,.@medal_gap; //BF_Badge1
+			}
+		}
+	}
+	else {
+		if ($@TierraBG2_Victory == 1) {
+			set .@your_medal,countitem(7828);
+			set .@medal_gap, 500 - .@your_medal;
+			if (.@medal_gap > 0) {
+				mes "[Swandery]";
+				mes "Oh, "+strcharinfo(0)+" Don't be sad.";
+				mes "Even though we didn't win, we did our best.";
+				mes "This is a Royal gift from Croix, and please don't forget this battle. We will win the next one.";
+				close2;
+				getitem 7828,1; //BF_Badge1
+			}
+			else {
+				mes "[Swandery]";
+				mes "Oh, "+strcharinfo(0)+" Don't be sad.";
+				mes "Even though we didn't win, we did our best.";
+				mes "This is a Royal gift from Croix, and please don't forget this battle. We will win the next one.";
+				close2;
+				getitem 7828,.@medal_gap; //BF_Badge1
+			}
+		}
+		else {
+			set .@your_medal,countitem(7828);
+			set .@medal_gap, 500 - .@your_medal;
+			if (.@medal_gap > 2) {
+				mes "[Swandery]";
+				mes "Blessed Croix!";
+				mes "Let's enjoy our glorious victory!";
+				mes ""+strcharinfo(0)+", it's a sign reflecting victory.";
+				close2;
+				getitem 7828,3; //BF_Badge1
+			}
+			else {
+				mes "[Swandery]";
+				mes "Blessed Croix!";
+				mes "Let's enjoy our glorious victory!";
+				mes ""+strcharinfo(0)+", it's a sign reflecting victory.";
+				close2;
+				getitem 7828,.@medal_gap; //BF_Badge1
+			}
+		}
+	}
+	warp "bat_room",154,150;
+	end;
+
+OnInit:
+	disablenpc "Croix Vintenar#a02_b";
+	end;
+}
+
+bat_a02,1,5,3	script	countdown#bat_a02	844,{
+OnEnable:
+	initnpctimer;
+	end;
+
+Onstop:
+	stopnpctimer;
+	end;
+
+OnTimer7000:
+	mapannounce "bat_a02", "Guillaume Vintenar Axl Rose : Let's attack to burn down Croix's Food Depot!",bc_map,"0xFF9900";
+	end;
+
+OnTimer8000:
+	mapannounce "bat_a02", "Croix Vintenar Swandery : Master of Valhalla! Let us be gifted with unfailing faith and courage!",bc_map,"0xFF99CC";
+	end;
+
+OnTimer1800000:
+	mapannounce "bat_a02", "Marollo VII : Guillaume Marollo, Croix Marollo! Marollo followers!",bc_map,"0x99CC00";
+	end;
+
+OnTimer1803000:
+	mapannounce "bat_a02", "Marollo VII : Both camps are competitive, so no camp would be destroyed easily. That means the Marollo kingdoms will never be defeated!",bc_map,"0x99CC00";
+	end;
+
+OnTimer1808000:
+	mapannounce "bat_a02", "Marollo VII : I think we'd better terminate the battle, and call it a draw.",bc_map,"0x99CC00";
+	end;
+
+OnTimer1822000:
+	mapannounce "bat_a02", "Marollo VII : Hold your royalty and faith for a moment, and let's settle up the battle of Tierra Gorge.",bc_map,"0x99CC00";
+	end;
+
+OnTimer1825000:
+	mapannounce "bat_a02", "Axl Rose, Swandery : Yes sir.",bc_map,"0x99CC00";
+	end;
+
+OnTimer1830000:
+	mapwarp "bat_a02","bat_room",154,150;
+	donpcevent "countdown#bat_a02::Onstop";
+	end;
+}
+
+/*
+bat_a02,351,75,3	script	Croix Camp Soldier#bat_a02_guide	934,{
+	mes "Loading...";
+	close;
+}
+
+bat_a02,356,326,3	script	Guillaume Camp Soldier#bat_a02_guide	934,{
+	mes "Loading...";
+	close;
+}
+*/
+
+/*
+bat_a02,1,1,3	script	Release all#a02	81,{
+	input .@input,0,2000;
+	if (.@input == 0) {
+		mes "Cancelled.";
+		close;
+	}
+	else if (.@input == 1854) {
+		mes "May I help you?";
+		next;
+		switch(select("Release all.:Cancel.")) {
+		case 1:
+			mes "Bye.";
+			close2;
+			mapwarp "bat_a02","bat_room",154,150;
+			end;
+		case 2:
+			mes "Cancelled.";
+		}
+	}
+}
+*/
+
+bat_a02	mapflag	battleground
+bat_a02	mapflag	nomemo
+bat_a02	mapflag	nosave	SavePoint
+bat_a02	mapflag	noteleport
+bat_a02	mapflag	nowarp
+bat_a02	mapflag	nowarpto
+bat_a02	mapflag	noreturn
+bat_a02	mapflag	nobranch
+bat_a02	mapflag	nopenalty

+ 382 - 0
npc/battleground/tierra/tierra_enter.txt

@@ -0,0 +1,382 @@
+//===== eAthena Script ======================================= 
+// BattleGround System - Tierra Gorge Entrance NPCs
+//===== By: ================================================== 
+//= L0ne_W0lf
+//===== Current Version: ===================================== 
+//= 1.0
+//===== Compatible With: ===================================== 
+//= eAthena 1.0
+//===== Description: ========================================= 
+//= [AEGIS Conversion]
+//= Tierra Gorge Battleground Entrance NPCs
+//===== Additional Comments: ================================= 
+//= 1.0 First Version.
+//============================================================
+
+// First Tierra Gorge Officers - Guillaume & Croix
+//============================================================
+bat_room,124,178,5	script	Tierra Gorge Officer#01a	418,{
+	if (checkweight(1201,1) == 0) {
+		mes "- Wait a minute !! -";
+		mes "- Currently you're carrying -";
+		mes "- too many items with you. -";
+		mes "- Please try again -";
+		mes "- after you loose some weight. -";
+		close;
+	}
+	mes "[Guillaume Army Officer]";
+	mes "Let's show the power of the Guillaume Army to those stinky Croixs!";
+	next;
+	switch(select("I want to join your army!:End Conversation")) {
+	case 1:
+		if ((Class == job_Novice) || (BaseClass == Job_Supernovice)) {
+			mes "[Guillaume Army Officer]";
+			mes "I'm very pleased that you want to join us and fight the Croix Army, but I'm sorry: I can't send a rookie like you to die on the cruel battlefield.";
+		}
+		else {
+			if (BaseLevel < 80) {
+				mes "[Guillaume Army Officer]";
+				mes "I'm very pleased that you want to join us and fight the Croix Army, but I'm sorry: I can't send a rookie like you to die on the cruel battlefield.";
+			}
+			else {
+				set .@chk_urtime,checkquest(2069,PLAYTIME);
+				if ((.@chk_urtime == 0)|| (.@chk_urtime == 1)) {
+					mes "[Guillaume Army Officer]";
+					mes "You seem to have just returned from the battlefield.";
+					mes "It's too early for you to go back. Go rest, and leave the enemies to us!";
+				}
+				else {
+					if (.@chk_urtime == 2)
+						erasequest 2069;
+					set .@mapcount,getmapusers("bat_a01");
+					if (.@mapcount > 0) {
+						mes "[Guillaume Army Officer]";
+						mes "I've received a report informing me that an elite corps has been dispatched to the battlefield fighting the Croixs already.";
+						mes "Why don't you go wait for a while? I suggest you sharpen your weapons and prepare your supplies until then.";
+					}
+					else {
+						if ($@TierraBG1) {
+							mes "[Guillaume Army Officer]";
+							mes "An elite corps is already standing by to be dispatched to the battlefield.";
+							mes "Why don't you go wait for a while? I suggest you sharpen your weapons and prepare your supplies until then.";
+						}
+						else {
+							mes "[Guillaume Army Officer]";
+							mes "You definitely seem to be ready for battle!";
+							mes "Go show the Croixs what fear truly means!";
+							mes "Today, our cry of victory shall echo all over the battlefield!";
+							close2;
+							warp "bat_room",57,223;
+							end;
+						}
+					}
+				}
+			}
+		}
+		break;
+	case 2:
+		mes "[Guillaume Army Officer]";
+		mes "Today, we shall be victorious!";
+		break;
+	}
+	close;
+}
+
+bat_room,140,178,5	script	Tierra Gorge Officer#02a	418,{
+	if (checkweight(1201,1) == 0) {
+		mes "- Wait a minute !! -";
+		mes "- Currently you're carrying -";
+		mes "- too many items with you. -";
+		mes "- Please try again -";
+		mes "- after you loose some weight. -";
+		close;
+	}
+	mes "[Guillaume Army Officer]";
+	mes "Let's show the power of the Guillaume Army to those stinky Croixs!";
+	next;
+	switch(select("I want to join your army!:End Conversation")) {
+	case 1:
+		if ((Class == job_Novice) || (BaseClass == Job_Supernovice)) {
+			mes "[Guillaume Army Officer]";
+			mes "I'm very pleased that you want to join us and fight the Croix Army, but I'm sorry: I can't send a rookie like you to die on the cruel battlefield.";
+		}
+		else {
+			if (BaseLevel < 80) {
+				mes "[Guillaume Army Officer]";
+				mes "I'm very pleased that you want to join us and fight the Croix Army, but I'm sorry: I can't send a rookie like you to die on the cruel battlefield.";
+			}
+			else {
+				set .@chk_urtime,checkquest(2069,PLAYTIME);
+				if (.@chk_urtime == 1) {
+					mes "[Guillaume Army Officer]";
+					mes "You seem to have just returned from the battlefield.";
+					mes "It's too early for you to go back. Go rest, and leave the enemies to us!";
+				}
+				else {
+					if (.@chk_urtime == 2)
+						erasequest 2069;
+					set .@mapcount,getmapusers("bat_a02");
+					if (.@mapcount > 0) {
+						mes "[Guillaume Army Officer]";
+						mes "I've received a report informing me that an elite corps has been dispatched to the battlefield fighting the Croixs already.";
+						mes "Why don't you go wait for a while? I suggest you sharpen your weapons and prepare your supplies until then.";
+					}
+					else {
+						if ($@TierraBG2) {
+							mes "[Guillaume Army Officer]";
+							mes "An elite corps is already standing by to be dispatched to the battlefield.";
+							mes "Why don't you go wait for a while? I suggest you sharpen your weapons and prepare your supplies until then.";
+						}
+						else {
+							mes "[Guillaume Army Officer]";
+							mes "You definitely seem to be ready for battle!";
+							mes "Go show the Croixs what fear truly means!";
+							mes "Today, our cry of victory shall echo all over the battlefield!";
+							close2;
+							warp "bat_room",114,223;
+							end;
+						}
+					}
+				}
+			}
+		}
+		break;
+	case 2:
+		mes "[Guillaume Army Officer]";
+		mes "Today, we shall be victorious!";
+		break;
+	}
+	close;
+}
+
+bat_room,127,178,5	script	Guillaume Knight#1	417,{
+	mes "[Guillaume Knight]";
+	mes "Tierra Gorge consists of two steep sides placed vertically, and has ration depots for the Guillaume and Croix Armies at the 11 and 7 o'clock directions.";
+	next;
+	mes "[Guillaume Knight]";
+	mes "The battle starts at your army's ship, and the goal is to advance and destroy your enemy's rations depot faster than they can destroy yours.";
+	next;
+	mes "[Guillaume Knight]";
+	mes "The healer of the battlefield will resurrect soldiers once every 25 seconds so that they can rejoin the battle.";
+	mes "The army that captures the neutral flag in the center of the battlefield will be rewarded with extra regeneration points, meaning their soldiers will resurrect more than the other side, giving them an advantage.";
+	next;
+	mes "[Guillaume Knight]";
+	mes "Those two rations depots are connected to each other through short and narrow paths, but the gates are blocked with barricades.";
+	mes "Think and move as quickly as you can. The victory of your army relies on your contribution.";
+	next;
+	mes "[Guillaume Knight]";
+	mes "Please remember: when you join a battle, you will receive a token which indicates the set duration for which you cannot participate in the same type of battle.";
+	mes "You may check the duration by pressing the Alt+U keys.";
+	next;
+	mes "[Guillaume Knight]";
+	mes "Are you ready to battle? Then apply with the recruiter next to me!";
+	close;
+}
+
+bat_room,143,178,5	script	Guillaume Knight#2	417,{
+	mes "[Guillaume Knight]";
+	mes "Tierra Gorge consists of two steep sides placed vertically, and has ration depots for the Guillaume and Croix Armies at the 11 and 7 o'clock directions.";
+	next;
+	mes "[Guillaume Knight]";
+	mes "The battle starts at your army's ship, and the goal is to advance and destroy your enemy's rations depot faster than they can destroy yours.";
+	next;
+	mes "[Guillaume Knight]";
+	mes "The healer of the battlefield will resurrect soldiers once every 25 seconds so that they can rejoin the battle.";
+	mes "The army that captures the neutral flag in the center of the battlefield will be rewarded with extra regeneration points, meaning their soldiers will resurrect more than the other side, giving them an advantage.";
+	next;
+	mes "[Guillaume Knight]";
+	mes "Those two rations depots are connected to each other through short and narrow paths, but the gates are blocked with barricades.";
+	mes "Think and move as quickly as you can. The victory of your army relies on your contribution.";
+	next;
+	mes "[Guillaume Knight]";
+	mes "Please remember: when you join a battle, you will receive a token which indicates the set duration for which you cannot participate in the same type of battle.";
+	mes "You may check the duration by pressing the Alt+U keys.";
+	next;
+	mes "[Guillaume Knight]";
+	mes "Are you ready to battle? Then apply with the recruiter next to me!";
+	close;
+}
+
+bat_room,127,121,1	script	Croix Knight#1	413,{
+	mes "[Croix Knight]";
+	mes "Tierra Gorge consists of two steep sides placed vertically, and has ration depots for the Guillaume and Croix Armies at the 11 and 7 o'clock directions.";
+	next;
+	mes "[Croix Knight]";
+	mes "The battle starts at your army's ship, and the goal is to advance and destroy your enemy's rations depot faster than they can destroy yours.";
+	next;
+	mes "[Croix Knight]";
+	mes "The healer of the battlefield will resurrect soldiers once every 25 seconds so that they can rejoin the battle.";
+	mes "The army that captures the neutral flag in the center of the battlefield will be rewarded with extra regeneration points, meaning their soldiers will resurrect more than the other side, giving them an advantage.";
+	next;
+	mes "[Croix Knight]";
+	mes "Those two rations depots are connected to each other through short and narrow paths, but the gates are blocked with barricades.";
+	mes "Think and move as quickly as you can. The victory of your army relies on your contribution.";
+	next;
+	mes "[Croix Knight]";
+	mes "Please remember: when you join a battle, you will receive a token which indicates the set duration for which you cannot participate in the same type of battle.";
+	mes "You may check the duration by pressing the Alt+U keys.";
+	next;
+	mes "[Croix Knight]";
+	mes "Are you ready to battle? Then apply with the recruiter next to me!";
+	close;
+}
+
+bat_room,143,121,1	script	Croix Knight#2	413,{
+	mes "[Croix Knight]";
+	mes "Tierra Gorge consists of two steep sides placed vertically, and has ration depots for the Guillaume and Croix Armies at the 11 and 7 o'clock directions.";
+	next;
+	mes "[Croix Knight]";
+	mes "The battle starts at your army's ship, and the goal is to advance and destroy your enemy's rations depot faster than they can destroy yours.";
+	next;
+	mes "[Croix Knight]";
+	mes "The healer of the battlefield will resurrect soldiers once every 25 seconds so that they can rejoin the battle.";
+	mes "The army that captures the neutral flag in the center of the battlefield will be rewarded with extra regeneration points, meaning their soldiers will resurrect more than the other side, giving them an advantage.";
+	next;
+	mes "[Croix Knight]";
+	mes "Those two rations depots are connected to each other through short and narrow paths, but the gates are blocked with barricades.";
+	mes "Think and move as quickly as you can. The victory of your army relies on your contribution.";
+	next;
+	mes "[Croix Knight]";
+	mes "Please remember: when you join a battle, you will receive a token which indicates the set duration for which you cannot participate in the same type of battle.";
+	mes "You may check the duration by pressing the Alt+U keys.";
+	next;
+	mes "[Croix Knight]";
+	mes "Are you ready to battle? Then apply with the recruiter next to me!";
+	close;
+}
+
+// Second Tierra Gorge Officers - Guillaume & Croix
+//============================================================
+bat_room,125,121,1	script	Tierra Gorge Officer#01b	414,{
+	if (checkweight(1201,1) == 0) {
+		mes "- Wait a minute !! -";
+		mes "- Currently you're carrying -";
+		mes "- too many items with you. -";
+		mes "- Please try again -";
+		mes "- after you loose some weight. -";
+		close;
+	}
+	mes "[Guillaume Army Officer]";
+	mes "Let's show the power of the Guillaume Army to those stinky Croixs!";
+	next;
+	switch(select("I want to join your army!:End Conversation")) {
+	case 1:
+		if ((Class == job_Novice) || (BaseClass == Job_Supernovice)) {
+			mes "[Guillaume Army Officer]";
+			mes "I'm very pleased that you want to join us and fight the Croix Army, but I'm sorry: I can't send a rookie like you to die on the cruel battlefield.";
+		}
+		else {
+			if (BaseLevel < 80) {
+				mes "[Guillaume Army Officer]";
+				mes "I'm very pleased that you want to join us and fight the Croix Army, but I'm sorry: I can't send a rookie like you to die on the cruel battlefield.";
+			}
+			else {
+				set .@chk_urtime,checkquest(2069,PLAYTIME);
+				if ((.@chk_urtime == 0)|| (.@chk_urtime == 1)) {
+					mes "[Guillaume Army Officer]";
+					mes "You seem to have just returned from the battlefield.";
+					mes "It's too early for you to go back. Go rest, and leave the enemies to us!";
+				}
+				else {
+					if (.@chk_urtime == 2)
+						erasequest 2069;
+					set .@mapcount,getmapusers("bat_a02");
+					if (.@mapcount > 0) {
+						mes "[Croix Army Officer]";
+						mes "I've received a report informing me that an elite corps has been dispatched to the battlefield fighting the Guillaume already.";
+						mes "Why don't you go wait for a while? I suggest you sharpen your weapons and prepare your supplies until then.";
+					}
+					else {
+						if ($@TierraBG1) {
+							mes "[Croix Army Officer]";
+							mes "An elite corps is already standing by to be dispatched to the battlefield.";
+							mes "Why don't you go wait for a while? I suggest you sharpen your weapons and prepare your supplies until then.";
+						}
+						else {
+							mes "[Croix Army Officer]";
+							mes "You definitely seem to be ready for battle!";
+							mes "Go show the Guillaumes what fear truly means!";
+							mes "Today, our cry of victory shall echo all over the battlefield!";
+							close2;
+							warp "bat_room",57,207;
+							end;
+						}
+					}
+				}
+			}
+		}
+		break;
+	case 2:
+		mes "[Guillaume Army Officer]";
+		mes "Today, we shall be victorious!";
+		break;
+	}
+	close;
+}
+
+bat_room,140,121,1	script	Tierra Gorge Officer#02b	414,{
+	if (checkweight(1201,1) == 0) {
+		mes "- Wait a minute !! -";
+		mes "- Currently you're carrying -";
+		mes "- too many items with you. -";
+		mes "- Please try again -";
+		mes "- after you loose some weight. -";
+		close;
+	}
+	mes "[Croix Army Officer]";
+	mes "Let's show the power of the Croix Army to those stinky Guillaumes!";
+	next;
+	switch(select("I want to join your army!:End Conversation")) {
+	case 1:
+		if ((Class == job_Novice) || (BaseClass == Job_Supernovice)) {
+			mes "[Croix Army Officer]";
+			mes "I'm very pleased that you want to join us and fight the Guillaume Army, but I'm sorry: I can't send a rookie like you to die on the cruel battlefield.";
+		}
+		else {
+			if (BaseLevel < 80) {
+				mes "[Croix Army Officer]";
+				mes "I'm very pleased that you want to join us and fight the Guillaume Army, but I'm sorry: I can't send a rookie like you to die on the cruel battlefield.";
+			}
+			else {
+				set .@chk_urtime,checkquest(2069,PLAYTIME);
+				if (.@chk_urtime == 1) {
+					mes "[Croix Army Officer]";
+					mes "You seem to have just returned from the battlefield.";
+					mes "It's too early for you to go back. Go rest, and leave the enemies to us!";
+				}
+				else {
+					if (.@chk_urtime == 2)
+						erasequest 2069;
+					set .@mapcount,getmapusers("bat_a02");
+					if (.@mapcount > 0) {
+						mes "[Croix Army Officer]";
+						mes "I've received a report informing me that an elite corps has been dispatched to the battlefield fighting the Guillaume already.";
+						mes "Why don't you go wait for a while? I suggest you sharpen your weapons and prepare your supplies until then.";
+					}
+					else {
+						if ($@TierraBG2) {
+							mes "[Croix Army Officer]";
+							mes "An elite corps is already standing by to be dispatched to the battlefield.";
+							mes "Why don't you go wait for a while? I suggest you sharpen your weapons and prepare your supplies until then.";
+						}
+						else {
+							mes "[Croix Army Officer]";
+							mes "You definitely seem to be ready for battle!";
+							mes "Go show the Guillaumes what fear truly means!";
+							mes "Today, our cry of victory shall echo all over the battlefield!";
+							close2;
+							warp "bat_room",114,207;
+							end;
+						}
+					}
+				}
+			}
+		}
+		break;
+	case 2:
+		mes "[Croix Army Officer]";
+		mes "Today, we shall be victorious!";
+		break;
+	}
+	close;
+}

+ 0 - 0
npc/battleground/bg_tierra_01.txt → npc/custom/battleground/bg_tierra_01.txt


+ 0 - 0
npc/battleground/bg_tierra_02.txt → npc/custom/battleground/bg_tierra_02.txt


+ 14 - 5
npc/scripts_athena.conf

@@ -320,11 +320,20 @@ npc: npc/other/arena/arena_aco.txt
 npc: npc/other/monster_race.txt
 // --------------------------------------------------------------
 // --------------------- Battle Grounds -------------------------
-//npc: npc/battleground/KVM/kvm_enter.txt
-//npc: npc/battleground/KVM/kvm_item_pay.txt
-//npc: npc/battleground/KVM/kvm01.txt
-//npc: npc/battleground/KVM/kvm02.txt
-//npc: npc/battleground/KVM/kvm03.txt
+// Common NPCs
+npc: npc/battleground/bg_common.txt
+// Tierra Gorge
+npc: npc/battleground/tierra/tierra_enter.txt
+npc: npc/battleground/tierra/tierra01.txt
+npc: npc/battleground/tierra/tierra02.txt
+// Flavius
+//npc: npc/battleground/flavius/flavius_enter.txt
+// Kreiger Von Midgard
+npc: npc/battleground/kvm/kvm_enter.txt
+npc: npc/battleground/kvm/kvm_item_pay.txt
+npc: npc/battleground/kvm/kvm01.txt
+npc: npc/battleground/kvm/kvm02.txt
+npc: npc/battleground/kvm/kvm03.txt
 // --------------------------------------------------------------
 // ------------------------ Instances ---------------------------
 npc: npc/instances/SealedShrine.txt

+ 2 - 3
npc/scripts_custom.conf

@@ -71,9 +71,8 @@
 // BattleGround (please read conf/battle/battleground.conf before
 // uncomment battleground scripts).
 // --------------------------------------------------------------
-//npc: npc/battleground/bg_common.txt
-//npc: npc/battleground/bg_tierra_01.txt
-//npc: npc/battleground/bg_tierra_02.txt
+//npc: npc/custom/battleground/bg_tierra_01.txt
+//npc: npc/custom/battleground/bg_tierra_02.txt
 //npc: npc/battleground/bg_flavius_01.txt
 //npc: npc/battleground/bg_flavius_02.txt