Bladeren bron

- Added quest log stuff to battleground npcs.
- Added Kreiger Von Midgard battlegrounds.

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

zephyrus 15 jaren geleden
bovenliggende
commit
43fee513d6

+ 173 - 94
npc/battleground/bg_common.txt

@@ -197,7 +197,7 @@ bat_room,159,178,5	script	Guillaume Knight#1	417,{
 	close;
 }
 
-// Tierra Officerer - Guillaume
+// Tierra Officer - Guillaume
 // *********************************************************************
 bat_room,156,178,5	script	Tierra Valley Officer#1	418,{
 	mes "[Tierra Officer]";
@@ -225,12 +225,17 @@ bat_room,156,178,5	script	Tierra Valley Officer#1	418,{
 		mes "Because of running away, you need to wait ^0000FF" + callfunc("Time2Str",BG_Delay_Tick) + "^000000 to join again a BattleGround.";
 		close;
 	}
-	if( Tierra_BG_Tick >= gettimetick(2) )
+
+	if( checkquest(2069,PLAYTIME) == 2 ) erasequest 2069;
+	if( checkquest(2069,PLAYTIME) != -1 )
 	{
-		mes "Sorry, you can't join the battle right now.";
-		mes "You need to wait ^0000FF" + callfunc("Time2Str",Tierra_BG_Tick) + "^000000 to join again Tierra Valley.";
+		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";
@@ -290,12 +295,17 @@ bat_room,156,121,1	script	Tierra Valley Officer#2	414,{
 		mes "Because of running away, you need to wait ^0000FF" + callfunc("Time2Str",BG_Delay_Tick) + "^000000 to join again a BattleGround.";
 		close;
 	}
-	if( Tierra_BG_Tick >= gettimetick(2) )
+
+	if( checkquest(2069,PLAYTIME) == 2 ) erasequest 2069;
+	if( checkquest(2069,PLAYTIME) != -1 )
 	{
-		mes "Sorry, you can't join the battle right now.";
-		mes "You need to wait ^0000FF" + callfunc("Time2Str",Tierra_BG_Tick) + "^000000 to join again Tierra Valley.";
+		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";
@@ -310,7 +320,7 @@ bat_room,156,121,1	script	Tierra Valley Officer#2	414,{
 
 // Guillaume Knight - Tierra
 // *********************************************************************
-bat_room,175,178,5	script	Guillaume Knight#2	417,{
+bat_room,167,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;
@@ -329,7 +339,7 @@ bat_room,175,178,5	script	Guillaume Knight#2	417,{
 
 // Tierra Officer - Guillaume
 // *********************************************************************
-bat_room,172,178,5	script	Tierra Valley Officer#3	418,{
+bat_room,164,178,5	script	Tierra Valley Officer#3	418,{
 	mes "[Tierra Officer]";
 	if( Bat_Team == 2 )
 	{
@@ -355,12 +365,17 @@ bat_room,172,178,5	script	Tierra Valley Officer#3	418,{
 		mes "Because of running away, you need to wait ^0000FF" + callfunc("Time2Str",BG_Delay_Tick) + "^000000 to join again a BattleGround.";
 		close;
 	}
-	if( Tierra_BG_Tick >= gettimetick(2) )
+
+	if( checkquest(2069,PLAYTIME) == 2 ) erasequest 2069;
+	if( checkquest(2069,PLAYTIME) != -1 )
 	{
-		mes "Sorry, you can't join the battle right now.";
-		mes "You need to wait ^0000FF" + callfunc("Time2Str",Tierra_BG_Tick) + "^000000 to join again Tierra Valley.";
+		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";
@@ -369,13 +384,13 @@ bat_room,172,178,5	script	Tierra Valley Officer#3	418,{
 
 	mes "Good luck!";
 	close2;
-	warp "bat_room",85,94;
+	warp "bat_room",57,94;
 	end;
 }
 
 // Croix Knight - Tierra
 // *********************************************************************
-bat_room,175,121,1	script	Croix Knight#2	413,{
+bat_room,167,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;
@@ -394,7 +409,7 @@ bat_room,175,121,1	script	Croix Knight#2	413,{
 
 // Tierra Officer - Croix
 // *********************************************************************
-bat_room,172,121,1	script	Tierra Valley Officer#4	414,{
+bat_room,164,121,1	script	Tierra Valley Officer#4	414,{
 	mes "[Tierra Officer]";
 	if( Bat_Team == 1 )
 	{
@@ -420,12 +435,17 @@ bat_room,172,121,1	script	Tierra Valley Officer#4	414,{
 		mes "Because of running away, you need to wait ^0000FF" + callfunc("Time2Str",BG_Delay_Tick) + "^000000 to join again a BattleGround.";
 		close;
 	}
-	if( Tierra_BG_Tick >= gettimetick(2) )
+
+	if( checkquest(2069,PLAYTIME) == 2 ) erasequest 2069;
+	if( checkquest(2069,PLAYTIME) != -1 )
 	{
-		mes "Sorry, you can't join the battle right now.";
-		mes "You need to wait ^0000FF" + callfunc("Time2Str",Tierra_BG_Tick) + "^000000 to join again Tierra Valley.";
+		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";
@@ -434,13 +454,13 @@ bat_room,172,121,1	script	Tierra Valley Officer#4	414,{
 
 	mes "Good luck!";
 	close2;
-	warp "bat_room",85,77;
+	warp "bat_room",57,77;
 	end;
 }
 
 // Guillaune Knight - Flavius
 // *********************************************************************
-bat_room,151,178,5	script	Guillaume Knight#3	417,{
+bat_room,175,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;
@@ -458,9 +478,9 @@ bat_room,151,178,5	script	Guillaume Knight#3	417,{
 	close;
 }
 
-// Flavius Officerer - Guillaume
+// Flavius Officer - Guillaume
 // *********************************************************************
-bat_room,148,178,5	script	Flavius Officer#1	418,{
+bat_room,172,178,5	script	Flavius Officer#1	418,{
 	mes "[Flavius Officer]";
 	if( Bat_Team == 2 )
 	{
@@ -486,12 +506,17 @@ bat_room,148,178,5	script	Flavius Officer#1	418,{
 		mes "Because of running away, you need to wait ^0000FF" + callfunc("Time2Str",BG_Delay_Tick) + "^000000 to join again a BattleGround.";
 		close;
 	}
-	if( Flavius_BG_Tick >= gettimetick(2) )
+
+	if( checkquest(2070,PLAYTIME) == 2 ) erasequest 2070;
+	if( checkquest(2070,PLAYTIME) != -1 )
 	{
-		mes "Sorry, you can't join the battle right now.";
-		mes "You need to wait ^0000FF" + callfunc("Time2Str",Flavius_BG_Tick) + "^000000 to join again Flavius.";
+		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";
@@ -500,13 +525,13 @@ bat_room,148,178,5	script	Flavius Officer#1	418,{
 
 	mes "Good luck!";
 	close2;
-	warp "bat_room",253,94;
+	warp "bat_room",85,94;
 	end;
 }
 
 // Croix Knight - Flavius
 // *********************************************************************
-bat_room,151,121,1	script	Croix Knight#3	413,{
+bat_room,175,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;
@@ -526,7 +551,7 @@ bat_room,151,121,1	script	Croix Knight#3	413,{
 
 // Flavius Officerer - Croix
 // *********************************************************************
-bat_room,148,121,1	script	Flavius Officer#2	414,{
+bat_room,172,121,1	script	Flavius Officer#2	414,{
 	mes "[Flavius Officer]";
 	if( Bat_Team == 1 )
 	{
@@ -552,12 +577,17 @@ bat_room,148,121,1	script	Flavius Officer#2	414,{
 		mes "Because of running away, you need to wait ^0000FF" + callfunc("Time2Str",BG_Delay_Tick) + "^000000 to join again a BattleGround.";
 		close;
 	}
-	if( Flavius_BG_Tick >= gettimetick(2) )
+
+	if( checkquest(2070,PLAYTIME) == 2 ) erasequest 2070;
+	if( checkquest(2070,PLAYTIME) != -1 )
 	{
-		mes "Sorry, you can't join the battle right now.";
-		mes "You need to wait ^0000FF" + callfunc("Time2Str",Flavius_BG_Tick) + "^000000 to join again Flavius.";
+		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";
@@ -566,13 +596,13 @@ bat_room,148,121,1	script	Flavius Officer#2	414,{
 
 	mes "Good luck!";
 	close2;
-	warp "bat_room",253,77;
+	warp "bat_room",85,77;
 	end;
 }
 
 // Guillaune Knight - Flavius
 // *********************************************************************
-bat_room,167,178,5	script	Guillaume Knight#4	417,{
+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;
@@ -592,7 +622,7 @@ bat_room,167,178,5	script	Guillaume Knight#4	417,{
 
 // Flavius Officerer - Guillaume
 // *********************************************************************
-bat_room,164,178,5	script	Flavius Officer#3	418,{
+bat_room,148,178,5	script	Flavius Officer#3	418,{
 	mes "[Flavius Officer]";
 	if( Bat_Team == 2 )
 	{
@@ -618,12 +648,17 @@ bat_room,164,178,5	script	Flavius Officer#3	418,{
 		mes "Because of running away, you need to wait ^0000FF" + callfunc("Time2Str",BG_Delay_Tick) + "^000000 to join again a BattleGround.";
 		close;
 	}
-	if( Flavius_BG_Tick >= gettimetick(2) )
+
+	if( checkquest(2070,PLAYTIME) == 2 ) erasequest 2070;
+	if( checkquest(2070,PLAYTIME) != -1 )
 	{
-		mes "Sorry, you can't join the battle right now.";
-		mes "You need to wait ^0000FF" + callfunc("Time2Str",Flavius_BG_Tick) + "^000000 to join again Flavius.";
+		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";
@@ -632,13 +667,13 @@ bat_room,164,178,5	script	Flavius Officer#3	418,{
 
 	mes "Good luck!";
 	close2;
-	warp "bat_room",57,94;
+	warp "bat_room",253,94;
 	end;
 }
 
 // Croix Knight - Flavius
 // *********************************************************************
-bat_room,167,121,1	script	Croix Knight#4	413,{
+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;
@@ -658,7 +693,7 @@ bat_room,167,121,1	script	Croix Knight#4	413,{
 
 // Flavius Officerer - Croix
 // *********************************************************************
-bat_room,164,121,1	script	Flavius Officer#4	414,{
+bat_room,148,121,1	script	Flavius Officer#4	414,{
 	mes "[Flavius Officer]";
 	if( Bat_Team == 1 )
 	{
@@ -684,12 +719,17 @@ bat_room,164,121,1	script	Flavius Officer#4	414,{
 		mes "Because of running away, you need to wait ^0000FF" + callfunc("Time2Str",BG_Delay_Tick) + "^000000 to join again a BattleGround.";
 		close;
 	}
-	if( Flavius_BG_Tick >= gettimetick(2) )
+
+	if( checkquest(2070,PLAYTIME) == 2 ) erasequest 2070;
+	if( checkquest(2070,PLAYTIME) != -1 )
 	{
-		mes "Sorry, you can't join the battle right now.";
-		mes "You need to wait ^0000FF" + callfunc("Time2Str",Flavius_BG_Tick) + "^000000 to join again Flavius.";
+		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";
@@ -698,7 +738,7 @@ bat_room,164,121,1	script	Flavius Officer#4	414,{
 
 	mes "Good luck!";
 	close2;
-	warp "bat_room",57,77;
+	warp "bat_room",253,77;
 	end;
 }
 
@@ -747,12 +787,17 @@ bat_room,140,178,5	script	KVM [80-99] Officer#1	418,{
 		mes "Because of running away, you need to wait ^0000FF" + callfunc("Time2Str",BG_Delay_Tick) + "^000000 to join again a BattleGround.";
 		close;
 	}
-	if( KvM_BG_Tick >= gettimetick(2) )
+
+	if( checkquest(6025,PLAYTIME) == 2 ) erasequest 6025;
+	if( checkquest(6025,PLAYTIME) != -1 )
 	{
-		mes "Sorry, you can't join the battle right now.";
-		mes "You need to wait ^0000FF" + callfunc("Time2Str",KvM_BG_Tick) + "^000000 to join KvM.";
+		mes "You have received an indicator showing that you've participated in the Battle at KvM. I can't let you participate in any other battles until the indicator goes off.";
+		next;
+		mes "[KVM Officer]";
+		mes "Stand-by for KvM 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: This arena is for players with baselevel from 80 to 99.";
@@ -810,12 +855,17 @@ bat_room,140,121,1	script	KVM [80-99] Officer#2	414,{
 		mes "Because of running away, you need to wait ^0000FF" + callfunc("Time2Str",BG_Delay_Tick) + "^000000 to join again a BattleGround.";
 		close;
 	}
-	if( KvM_BG_Tick >= gettimetick(2) )
+
+	if( checkquest(6025,PLAYTIME) == 2 ) erasequest 6025;
+	if( checkquest(6025,PLAYTIME) != -1 )
 	{
-		mes "Sorry, you can't join the battle right now.";
-		mes "You need to wait ^0000FF" + callfunc("Time2Str",KvM_BG_Tick) + "^000000 to join KvM.";
+		mes "You have received an indicator showing that you've participated in the Battle at KvM. I can't let you participate in any other battles until the indicator goes off.";
+		next;
+		mes "[KVM Officer]";
+		mes "Stand-by for KvM 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: This arena is for players with baselevel from 80 to 99.";
@@ -873,12 +923,17 @@ bat_room,132,178,5	script	KVM [60-79] Officer#1	418,{
 		mes "Because of running away, you need to wait ^0000FF" + callfunc("Time2Str",BG_Delay_Tick) + "^000000 to join again a BattleGround.";
 		close;
 	}
-	if( KvM_BG_Tick >= gettimetick(2) )
+
+	if( checkquest(6025,PLAYTIME) == 2 ) erasequest 6025;
+	if( checkquest(6025,PLAYTIME) != -1 )
 	{
-		mes "Sorry, you can't join the battle right now.";
-		mes "You need to wait ^0000FF" + callfunc("Time2Str",KvM_BG_Tick) + "^000000 to join KvM.";
+		mes "You have received an indicator showing that you've participated in the Battle at KvM. I can't let you participate in any other battles until the indicator goes off.";
+		next;
+		mes "[KVM Officer]";
+		mes "Stand-by for KvM Battle until the time limit passes.";
 		close;
 	}
+
 	if( BaseLevel < 60 || BaseLevel > 79 )
 	{
 		mes "I'm very please you want to join our army, but I'm sorry: This arena is for players with baselevel from 60 to 79.";
@@ -936,12 +991,17 @@ bat_room,132,121,1	script	KVM [60-79] Officer#2	414,{
 		mes "Because of running away, you need to wait ^0000FF" + callfunc("Time2Str",BG_Delay_Tick) + "^000000 to join again a BattleGround.";
 		close;
 	}
-	if( KvM_BG_Tick >= gettimetick(2) )
+
+	if( checkquest(6025,PLAYTIME) == 2 ) erasequest 6025;
+	if( checkquest(6025,PLAYTIME) != -1 )
 	{
-		mes "Sorry, you can't join the battle right now.";
-		mes "You need to wait ^0000FF" + callfunc("Time2Str",KvM_BG_Tick) + "^000000 to join KvM.";
+		mes "You have received an indicator showing that you've participated in the Battle at KvM. I can't let you participate in any other battles until the indicator goes off.";
+		next;
+		mes "[KVM Officer]";
+		mes "Stand-by for KvM Battle until the time limit passes.";
 		close;
 	}
+
 	if( BaseLevel < 60 || BaseLevel > 79 )
 	{
 		mes "I'm very please you want to join our army, but I'm sorry: This arena is for players with baselevel from 60 to 79.";
@@ -999,12 +1059,17 @@ bat_room,124,178,5	script	KVM [1-59] Officer#1	418,{
 		mes "Because of running away, you need to wait ^0000FF" + callfunc("Time2Str",BG_Delay_Tick) + "^000000 to join again a BattleGround.";
 		close;
 	}
-	if( KvM_BG_Tick >= gettimetick(2) )
+
+	if( checkquest(6025,PLAYTIME) == 2 ) erasequest 6025;
+	if( checkquest(6025,PLAYTIME) != -1 )
 	{
-		mes "Sorry, you can't join the battle right now.";
-		mes "You need to wait ^0000FF" + callfunc("Time2Str",KvM_BG_Tick) + "^000000 to join KvM.";
+		mes "You have received an indicator showing that you've participated in the Battle at KvM. I can't let you participate in any other battles until the indicator goes off.";
+		next;
+		mes "[KVM Officer]";
+		mes "Stand-by for KvM Battle until the time limit passes.";
 		close;
 	}
+
 	if( BaseLevel > 59 )
 	{
 		mes "I'm very please you want to join our army, but I'm sorry: This arena is for players with baselevel from 1 to 59.";
@@ -1062,12 +1127,17 @@ bat_room,124,121,1	script	KVM [1-59] Officer#2	414,{
 		mes "Because of running away, you need to wait ^0000FF" + callfunc("Time2Str",BG_Delay_Tick) + "^000000 to join again a BattleGround.";
 		close;
 	}
-	if( KvM_BG_Tick >= gettimetick(2) )
+
+	if( checkquest(6025,PLAYTIME) == 2 ) erasequest 6025;
+	if( checkquest(6025,PLAYTIME) != -1 )
 	{
-		mes "Sorry, you can't join the battle right now.";
-		mes "You need to wait ^0000FF" + callfunc("Time2Str",KvM_BG_Tick) + "^000000 to join KvM.";
+		mes "You have received an indicator showing that you've participated in the Battle at KvM. I can't let you participate in any other battles until the indicator goes off.";
+		next;
+		mes "[KVM Officer]";
+		mes "Stand-by for KvM Battle until the time limit passes.";
 		close;
 	}
+
 	if( BaseLevel > 59 )
 	{
 		mes "I'm very please you want to join our army, but I'm sorry: This arena is for players with baselevel from 1 to 59.";
@@ -1096,54 +1166,63 @@ bat_room,161,158,3	duplicate(bat_aid)	General Guillaume's Aid::bat_aid4	419
 
 // Exit from Registration
 // *********************************************************************
+-	script	warp2bat_room	-1,{
+	end;
+
+OnTouch:
+	set BG_Delay_Tick, gettimetick(2) + 30;
+	warp "bat_room",154,149;
+	end;
+}
+
 // Flavius bat_b02
-bat_room,57,81,0	warp	bat1	2,2,bat_room,154,149
-bat_room,57,90,0	warp	bat2	2,2,bat_room,154,149
+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	warp	bat3	2,2,bat_room,154,149
-bat_room,57,211,0	warp	bat4	2,2,bat_room,154,149
+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 Valley bat_a02
-bat_room,85,81,0	warp	bat5	2,2,bat_room,154,149
-bat_room,85,90,0	warp	bat6	2,2,bat_room,154,149
+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 Valley bat_a01
-bat_room,85,220,0	warp	bat7	2,2,bat_room,154,149
-bat_room,85,211,0	warp	bat8	2,2,bat_room,154,149
+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	warp	bat9	2,2,bat_room,154,149
-bat_room,113,90,0	warp	bat10	2,2,bat_room,154,149
+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	warp	bat11	2,2,bat_room,154,149
-bat_room,113,211,0	warp	bat12	2,2,bat_room,154,149
+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	warp	bat13	2,2,bat_room,154,149
-bat_room,141,90,0	warp	bat14	2,2,bat_room,154,149
+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
-bat_room,141,220,0	warp	bat15	2,2,bat_room,154,149
-bat_room,141,211,0	warp	bat16	2,2,bat_room,154,149
+bat_room,141,220,0	duplicate(warp2bat_room)	bat15	45,1,1
+bat_room,141,211,0	duplicate(warp2bat_room)	bat16	45,1,1
 // Free BG
-bat_room,169,81,0	warp	bat17	2,2,bat_room,154,149
-bat_room,169,90,0	warp	bat18	2,2,bat_room,154,149
+bat_room,169,81,0	duplicate(warp2bat_room)	bat17	45,1,1
+bat_room,169,90,0	duplicate(warp2bat_room)	bat18	45,1,1
 // Free BG
-bat_room,169,220,0	warp	bat19	2,2,bat_room,154,149
-bat_room,169,211,0	warp	bat20	2,2,bat_room,154,149
+bat_room,169,220,0	duplicate(warp2bat_room)	bat19	45,1,1
+bat_room,169,211,0	duplicate(warp2bat_room)	bat20	45,1,1
 // Free BG
-bat_room,197,81,0	warp	bat21	2,2,bat_room,154,149
-bat_room,197,90,0	warp	bat22	2,2,bat_room,154,149
+bat_room,197,81,0	duplicate(warp2bat_room)	bat21	45,1,1
+bat_room,197,90,0	duplicate(warp2bat_room)	bat22	45,1,1
 // KvM bat_c03
-bat_room,197,220,0	warp	bat23	2,2,bat_room,154,149
-bat_room,197,211,0	warp	bat24	2,2,bat_room,154,149
+bat_room,197,220,0	duplicate(warp2bat_room)	bat23	45,1,1
+bat_room,197,211,0	duplicate(warp2bat_room)	bat24	45,1,1
 // Free BG
-bat_room,225,81,0	warp	bat25	2,2,bat_room,154,149
-bat_room,225,90,0	warp	bat26	2,2,bat_room,154,149
+bat_room,225,81,0	duplicate(warp2bat_room)	bat25	45,1,1
+bat_room,225,90,0	duplicate(warp2bat_room)	bat26	45,1,1
 // KvM bat_c02
-bat_room,225,220,0	warp	bat27	2,2,bat_room,154,149
-bat_room,225,211,0	warp	bat28	2,2,bat_room,154,149
+bat_room,225,220,0	duplicate(warp2bat_room)	bat27	45,1,1
+bat_room,225,211,0	duplicate(warp2bat_room)	bat28	45,1,1
 // Flavius bat_b01
-bat_room,253,81,0	warp	bat29	2,2,bat_room,154,149
-bat_room,253,90,0	warp	bat30	2,2,bat_room,154,149
+bat_room,253,81,0	duplicate(warp2bat_room)	bat29	45,1,1
+bat_room,253,90,0	duplicate(warp2bat_room)	bat30	45,1,1
 // KvM bat_c01
-bat_room,253,220,0	warp	bat31	2,2,bat_room,154,149
-bat_room,253,211,0	warp	bat32	2,2,bat_room,154,149
+bat_room,253,220,0	duplicate(warp2bat_room)	bat31	45,1,1
+bat_room,253,211,0	duplicate(warp2bat_room)	bat32	45,1,1
 
 // Badges Repairman
 // *********************************************************************

+ 2 - 2
npc/battleground/bg_flavius_01.txt

@@ -302,7 +302,7 @@ bat_b01,390,13,5	script	Guillaume Vintenar#fl1	419,{
 			set .@Reward, 3;
 		}
 
-		set Flavius_BG_Tick, gettimetick(2) + 300;
+		setquest 2070;
 		getitem 7829, .@Reward;
 		bg_leave;
 		warp "bat_room",155,150;
@@ -333,7 +333,7 @@ bat_b01,10,293,5	script	Croix Vintenar#fl1	415,{
 			set .@Reward, 3;
 		}
 
-		set Flavius_BG_Tick, gettimetick(2) + 300;
+		setquest 2070;
 		getitem 7829, .@Reward;
 		bg_leave;
 		warp "bat_room",155,150;

+ 2 - 2
npc/battleground/bg_flavius_02.txt

@@ -302,7 +302,7 @@ bat_b02,390,13,5	script	Guillaume Vintenar#fl2	419,{
 			set .@Reward, 3;
 		}
 
-		set Flavius_BG_Tick, gettimetick(2) + 300;
+		setquest 2070;
 		getitem 7829, .@Reward;
 		bg_leave;
 		warp "bat_room",155,150;
@@ -333,7 +333,7 @@ bat_b02,10,293,5	script	Croix Vintenar#fl2	415,{
 			set .@Reward, 3;
 		}
 
-		set Flavius_BG_Tick, gettimetick(2) + 300;
+		setquest 2070;
 		getitem 7829, .@Reward;
 		bg_leave;
 		warp "bat_room",155,150;

+ 391 - 0
npc/battleground/bg_kvm01.txt

@@ -0,0 +1,391 @@
+// ==============================================================================
+// BattleGround System - KvM 80~99
+// ==============================================================================
+
+// Registration NPC's
+// *********************************************************************
+
+bat_room,253,227,4	script	Registration::KvM01R_Guillaume	418,{ // KvM Guillaume
+	end;
+
+OnInit:
+	waitingroom "Battle Station 5 Players",5,"KvM01_BG::OnGuillaumeJoin",1;
+	end;
+	
+OnEnterBG:
+	set $@KvM01BG_id1, waitingroom2bg("bat_c01",53,128,"KvM01_BG::OnGuillaumeQuit","KvM01_BG::OnGuillaumeDie");
+	end;
+}
+
+bat_room,253,204,0	script	Registration::KvM01R_Croix	414,{ // KvM Croix
+	end;
+
+OnInit:
+	waitingroom "Battle Station 5 Players",5,"KvM01_BG::OnCroixJoin",1;
+	end;
+
+OnEnterBG:
+	set $@KvM01BG_id2, waitingroom2bg("bat_c01",146,55,"KvM01_BG::OnCroixQuit","KvM01_BG::OnCroixDie");
+	end;
+}
+
+// Light Effects
+// *********************************************************************
+
+bat_c01,54,123,0	script	#bat_c01a	111,{
+	end;
+
+OnKvM01LightA: misceffect 54; end;
+OnKvM01LightB: misceffect 55; end;
+OnKvM01LightC: misceffect 56; end;
+}
+
+bat_c01,56,125,0	duplicate(#bat_c01a)	#bat_c01b	111
+bat_c01,58,127,0	duplicate(#bat_c01a)	#bat_c01c	111
+bat_c01,141,56,0	duplicate(#bat_c01a)	#bat_c01d	111
+bat_c01,143,58,0	duplicate(#bat_c01a)	#bat_c01e	111
+bat_c01,145,60,0	duplicate(#bat_c01a)	#bat_c01f	111
+
+// Battleground Engine
+// *********************************************************************
+
+-	script	KvM01_BG	-1,{
+	end;
+
+OnInit:
+	setwall "bat_c01",54,122,6,7,0,"batc01wall_a";
+	setwall "bat_c01",55,122,5,7,0,"batc01wall_b";
+	setwall "bat_c01",140,56,6,7,0,"batc01wall_c";
+	setwall "bat_c01",140,57,5,7,0,"batc01wall_d";
+	disablenpc "TherapistKvM01a";
+	disablenpc "TherapistKvM01b";
+	disablenpc "VintenarKvM01a";
+	disablenpc "VintenarKvM01b";
+	end;
+
+OnGuillaumeJoin:
+OnCroixJoin:
+	donpcevent "KvM01_BG::OnReadyCheck";
+	end;
+
+OnGuillaumeQuit:
+	set BG_Delay_Tick, gettimetick(2) + 1200;
+OnGuillaumeDie:
+	if( $@KvM01BG == 2 )
+	{
+		set .Guillaume_Count, .Guillaume_Count - 1;
+		set .Croix_Score, .Croix_Score + 1;
+		bg_updatescore "bat_c01",.Guillaume_Score,.Croix_Score;
+		if( .Guillaume_Count < 1 ) donpcevent "KvM01_BG::OnCroixWin";
+	}
+	end;
+
+OnCroixQuit:
+	set BG_Delay_Tick, gettimetick(2) + 1200;
+OnCroixDie:
+	if( $@KvM01BG == 2 )
+	{
+		set .Croix_Count, .Croix_Count - 1;
+		set .Guillaume_Score, .Guillaume_Score + 1;
+		bg_updatescore "bat_c01",.Guillaume_Score,.Croix_Score;
+		if( .Croix_Count < 1 ) donpcevent "KvM01_BG::OnGuillaumeWin";
+	}
+	end;
+
+OnReadyCheck:
+	if( $@KvM01BG )
+		end;
+	set .@Guillaume, getwaitingroomstate(0,"KvM01R_Guillaume");
+	set .@Croix, getwaitingroomstate(0,"KvM01R_Croix");
+
+	if( .@Guillaume < 5 || .@Croix < 5 )
+	{
+		if( .@Guillaume > 3 && .@Croix > 3 && !agitcheck() && $@KvM_Flood < gettimetick(2) )
+		{
+			announce "Battleground -- Kreiger Von Midgard [80-99] G: " + .@Guillaume + "/5, C: " + .@Croix + "/5",0,0x696969;
+			set $@KvM_Flood, gettimetick(2) + 15;
+		}
+		else
+			mapannounce "bat_room","Battleground -- Kreiger Von Midgard [80-99] G: " + .@Guillaume + "/5, C: " + .@Croix + "/5",1,0x696969;
+		end;
+	}
+
+	set $@KvM01BG, 1; // Starting
+	donpcevent "KvM01R_Croix::OnEnterBG";
+	donpcevent "KvM01R_Guillaume::OnEnterBG";
+	donpcevent "KvM01_BG::OnStart";
+	end;
+
+OnStart:
+	announce "Battleground -- Kreiger Von Midgard [80-99] has started!",0,0x696969;
+	enablenpc "TherapistKvM01a";
+	enablenpc "TherapistKvM01b";
+	disablenpc "VintenarKvM01a";
+	disablenpc "VintenarKvM01b";
+	set $@KvM01BG_Victory, 0;
+	sleep 2000;
+	// Warp Teams
+	bg_warp $@KvM01BG_id1,"bat_c01",53,128;
+	bg_warp $@KvM01BG_id2,"bat_c01",146,55;
+	// ScoreBoard
+	set .Guillaume_Score, 0;
+	set .Croix_Score, 0;
+	initnpctimer;
+	end;
+
+OnTimer5000:
+	areapercentheal "bat_c01",50,123,58,131,100,100;
+	areapercentheal "bat_c01",141,52,149,60,100,100;
+	mapannounce "bat_c01","The Battle will start in 25 seconds!!",1,0x696969;
+	end;
+
+OnTimer26000:
+	mapannounce "bat_c01","The Battle will start in 4 seconds!!",1,0x696969;
+	end;
+
+OnTimer27000:
+	donpcevent "::OnKvM01LightA";
+	end;
+
+OnTimer28000:
+	donpcevent "::OnKvM01LightB";
+	end;
+	
+OnTimer29000:
+	donpcevent "::OnKvM01LightC";
+	end;
+
+OnTimer30000:
+	// Team Members
+	set .Guillaume_Count, bg_get_data($@KvM01BG_id1, 0);
+	set .Croix_Count, bg_get_data($@KvM01BG_id2, 0);
+	if( .Guillaume_Count < 5 || .Croix_Count < 5 )
+	{
+		set $@KvM01BG_Victory, 3;
+		set $@KvM01BG, 3;
+		mapannounce "bat_c01","There are not enough players to start the battle",1,0x696969;
+		stopnpctimer;
+		sleep 2000;
+		donpcevent "KvM01_BG::OnStop";
+		end;
+	}
+
+	set $@KvM01BG, 2; // Playing
+	areapercentheal "bat_c01",50,123,58,131,100,100;
+	bg_warp $@KvM01BG_id1,"bat_c01",62,119;
+	areapercentheal "bat_c01",141,52,149,60,100,100;
+	bg_warp $@KvM01BG_id2,"bat_c01",137,64;
+	end;
+
+OnTimer32000:
+	mapannounce "bat_c01","The Battle of Kreiger Von Midgard has begun!!",1,0x696969;
+	end;
+
+OnTimer300000:
+	mapannounce "bat_c01","The Battle will ends in 30 seconds!!",1,0x696969;
+	end;
+
+OnTimer330000:
+	if( .Croix_Count > .Guillaume_Count )
+		donpcevent "KvM01_BG::OnCroixWin";
+	else if( .Croix_Count < .Guillaume_Count )
+		donpcevent "KvM01_BG::OnGuillaumeWin";
+	else
+	{ // Draw Game
+		set $@KvM01BG, 3;
+		set $@KvM01BG_Victory, 3;
+
+		stopnpctimer;
+		sleep 2000;
+		mapannounce "bat_c01","The time is out! This is a Tie...",1,0x696969;
+		donpcevent "KvM01_BG::OnStop";
+	}
+	end;
+
+OnGuillaumeWin:
+	set $@KvM01BG, 3;
+	set $@KvM01BG_Victory, 1;
+	
+	stopnpctimer;
+	sleep 2000;
+	mapannounce "bat_c01","The Guillaume Army has won the Battle of Kreiger Von Midgard",1,0x0000FF;
+	donpcevent "KvM01_BG::OnStop";
+	end;
+
+OnCroixWin:
+	set $@KvM01BG, 3;
+	set $@KvM01BG_Victory, 2;
+
+	stopnpctimer;
+	sleep 2000;
+	mapannounce "bat_c01","The Croix Army has won the Battle of Kreiger Von Midgard",1,0xFF0000;
+	donpcevent "KvM01_BG::OnStop";
+	end;
+
+OnStop:
+	disablenpc "TherapistKvM01a";
+	disablenpc "TherapistKvM01b";
+	enablenpc "VintenarKvM01a";
+	enablenpc "VintenarKvM01b";
+	// Warp Teams
+	bg_warp $@KvM01BG_id1,"bat_c01",53,128;
+	bg_warp $@KvM01BG_id2,"bat_c01",146,55;
+	donpcevent "KvM01_BG_Out::OnBegin";
+	end;
+
+OnReset:
+	stopnpctimer;
+	stopnpctimer "KvM01_BG_Out";
+	set .Croix_Count, 0;
+	set .Guillaume_Count, 0;
+	set .Croix_Score, 0;
+	set .Guillaume_Score, 0;
+	set $@KvM01BG_Victory, 0;
+	if( $@KvM01BG_id1 ) { bg_destroy $@KvM01BG_id1; set $@KvM01BG_id1, 0; }
+	if( $@KvM01BG_id2 ) { bg_destroy $@KvM01BG_id2; set $@KvM01BG_id2, 0; }
+	disablenpc "TherapistKvM01a";
+	disablenpc "TherapistKvM01b";
+	disablenpc "VintenarKvM01a";
+	disablenpc "VintenarKvM01b";
+	sleep 1000;
+	mapwarp "bat_c01","bat_room",155,150;
+	sleep 2000;
+	maprespawnguildid "bat_c01",0,3; // Just in case someone else
+	bg_updatescore "bat_c01",0,0;
+	sleep 2000;
+	set $@KvM01BG, 0;
+	donpcevent "KvM01_BG::OnReadyCheck"; // Maybe a game is ready to start
+	end;
+}
+
+-	script	KvM01_BG_Out	-1,{
+	end;
+
+OnBegin:
+	initnpctimer;
+	end;
+
+OnTimer3000:
+	mapannounce "bat_c01","Battle of Kreiger Von Midgard will close in 1 minute!",1,0x696969;
+	end;
+OnTimer30000:
+	mapannounce "bat_c01","Battle of Kreiger Von Midgard will close in 30 seconds!",1,0x696969;
+	end;
+OnTimer50000:
+	mapannounce "bat_c01","Battle of Kreiger Von Midgard will close in 10 seconds!",1,0x696969;
+	end;
+OnTimer60000:
+	donpcevent "KvM01_BG::OnReset";
+	end;
+}
+
+// Battleground Therapist
+// *********************************************************************
+
+bat_c01,51,130,5	script	Therapist in battle::TherapistKvM01a	95,{
+	mes "[Therapist in battle]";
+	mes "Just close your eyes, and take a deep breathe.";
+	mes "You can be free from pain.";
+	specialeffect2 312;
+	close;
+}
+
+bat_c01,148,53,1	script	Therapist in battle::TherapistKvM01b	95,{
+	mes "[Therapist in battle]";
+	mes "Just close your eyes, and take a deep breathe.";
+	mes "You can be free from pain.";
+	specialeffect2 312;
+	close;
+}
+
+// Battleground rewards
+// *********************************************************************
+
+bat_c01,51,130,5	script	Guillaume Vintenar::VintenarKvM01a	419,{
+	if( $@KvM01BG_Victory )
+	{
+		if( $@KvM01BG_Victory == 3 )
+		{
+			setquest 6025;
+			bg_leave;
+			warp "bat_room",155,150;
+			end;
+		}
+		else if( $@KvM01BG_Victory == Bat_Team )
+		{ // Victory
+			set .@Reward, 5;
+			mes "[Swandery]";
+			mes "Blessed Guillaume!!";
+			mes "Let's enjoy our glorious victory!";
+			mes "" + strcharinfo(0) + ", its a sign reflecting victory";
+			close2;
+		}
+		else
+		{ // 
+			set .@Reward, 1;
+			mes "[Swandery]";
+			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 a lesson, and later you would definitely learn.";
+			close2;
+		}
+
+		setquest 6025;
+		getitem 7773, .@Reward;
+		bg_leave;
+		warp "bat_room",155,150;
+		end;
+	}
+	end;
+}
+
+bat_c01,148,53,1	script	Croix Vintenar::VintenarKvM01b	415,{
+	if( $@KvM01BG_Victory )
+	{
+		if( $@KvM01BG_Victory == 3 )
+		{
+			setquest 6025;
+			bg_leave;
+			warp "bat_room",155,150;
+			end;
+		}
+		else if( $@KvM01BG_Victory == Bat_Team )
+		{ // Victory
+			set .@Reward, 5;
+			mes "[Swandery]";
+			mes "Blessed Croax!!";
+			mes "Let's enjoy our glorious victory!";
+			mes "" + strcharinfo(0) + ", its a sign reflecting victory";
+			close2;
+		}
+		else
+		{ // 
+			set .@Reward, 1;
+			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 can win the next.";
+			close2;
+		}
+
+		setquest 6025;
+		getitem 7773, .@Reward;
+		bg_leave;
+		warp "bat_room",155,150;
+		end;
+	}
+	end;
+}
+
+// MapFlags
+// *********************************************************************
+
+bat_c01	mapflag	battleground	2
+bat_c01	mapflag	nomemo
+bat_c01	mapflag	nosave	SavePoint
+bat_c01	mapflag	noteleport
+bat_c01	mapflag	nowarp
+bat_c01	mapflag	nowarpto
+bat_c01	mapflag	noreturn
+bat_c01	mapflag	nobranch
+bat_c01	mapflag	nopenalty

+ 391 - 0
npc/battleground/bg_kvm02.txt

@@ -0,0 +1,391 @@
+// ==============================================================================
+// BattleGround System - KvM 60~79
+// ==============================================================================
+
+// Registration NPC's
+// *********************************************************************
+
+bat_room,225,227,4	script	Registration::KvM02R_Guillaume	418,{ // KvM Guillaume
+	end;
+
+OnInit:
+	waitingroom "Battle Station 5 Players",5,"KvM02_BG::OnGuillaumeJoin",1;
+	end;
+	
+OnEnterBG:
+	set $@KvM02BG_id1, waitingroom2bg("bat_c02",53,128,"KvM02_BG::OnGuillaumeQuit","KvM02_BG::OnGuillaumeDie");
+	end;
+}
+
+bat_room,225,204,0	script	Registration::KvM02R_Croix	414,{ // KvM Croix
+	end;
+
+OnInit:
+	waitingroom "Battle Station 5 Players",5,"KvM02_BG::OnCroixJoin",1;
+	end;
+
+OnEnterBG:
+	set $@KvM02BG_id2, waitingroom2bg("bat_c02",146,55,"KvM02_BG::OnCroixQuit","KvM02_BG::OnCroixDie");
+	end;
+}
+
+// Light Effects
+// *********************************************************************
+
+bat_c02,54,123,0	script	#bat_c02a	111,{
+	end;
+
+OnKvM02LightA: misceffect 54; end;
+OnKvM02LightB: misceffect 55; end;
+OnKvM02LightC: misceffect 56; end;
+}
+
+bat_c02,56,125,0	duplicate(#bat_c02a)	#bat_c02b	111
+bat_c02,58,127,0	duplicate(#bat_c02a)	#bat_c02c	111
+bat_c02,141,56,0	duplicate(#bat_c02a)	#bat_c02d	111
+bat_c02,143,58,0	duplicate(#bat_c02a)	#bat_c02e	111
+bat_c02,145,60,0	duplicate(#bat_c02a)	#bat_c02f	111
+
+// Battleground Engine
+// *********************************************************************
+
+-	script	KvM02_BG	-1,{
+	end;
+
+OnInit:
+	setwall "bat_c02",54,122,6,7,0,"batc02wall_a";
+	setwall "bat_c02",55,122,5,7,0,"batc02wall_b";
+	setwall "bat_c02",140,56,6,7,0,"batc02wall_c";
+	setwall "bat_c02",140,57,5,7,0,"batc02wall_d";
+	disablenpc "TherapistKvM02a";
+	disablenpc "TherapistKvM02b";
+	disablenpc "VintenarKvM02a";
+	disablenpc "VintenarKvM02b";
+	end;
+
+OnGuillaumeJoin:
+OnCroixJoin:
+	donpcevent "KvM02_BG::OnReadyCheck";
+	end;
+
+OnGuillaumeQuit:
+	set BG_Delay_Tick, gettimetick(2) + 1200;
+OnGuillaumeDie:
+	if( $@KvM02BG == 2 )
+	{
+		set .Guillaume_Count, .Guillaume_Count - 1;
+		set .Croix_Score, .Croix_Score + 1;
+		bg_updatescore "bat_c02",.Guillaume_Score,.Croix_Score;
+		if( .Guillaume_Count < 1 ) donpcevent "KvM02_BG::OnCroixWin";
+	}
+	end;
+
+OnCroixQuit:
+	set BG_Delay_Tick, gettimetick(2) + 1200;
+OnCroixDie:
+	if( $@KvM02BG == 2 )
+	{
+		set .Croix_Count, .Croix_Count - 1;
+		set .Guillaume_Score, .Guillaume_Score + 1;
+		bg_updatescore "bat_c02",.Guillaume_Score,.Croix_Score;
+		if( .Croix_Count < 1 ) donpcevent "KvM02_BG::OnGuillaumeWin";
+	}
+	end;
+
+OnReadyCheck:
+	if( $@KvM02BG )
+		end;
+	set .@Guillaume, getwaitingroomstate(0,"KvM02R_Guillaume");
+	set .@Croix, getwaitingroomstate(0,"KvM02R_Croix");
+
+	if( .@Guillaume < 5 || .@Croix < 5 )
+	{
+		if( .@Guillaume > 3 && .@Croix > 3 && !agitcheck() && $@KvM_Flood < gettimetick(2) )
+		{
+			announce "Battleground -- Kreiger Von Midgard [60-79] G: " + .@Guillaume + "/5, C: " + .@Croix + "/5",0,0x808080;
+			set $@KvM_Flood, gettimetick(2) + 15;
+		}
+		else
+			mapannounce "bat_room","Battleground -- Kreiger Von Midgard [60-79] G: " + .@Guillaume + "/5, C: " + .@Croix + "/5",1,0x808080;
+		end;
+	}
+
+	set $@KvM02BG, 1; // Starting
+	donpcevent "KvM02R_Croix::OnEnterBG";
+	donpcevent "KvM02R_Guillaume::OnEnterBG";
+	donpcevent "KvM02_BG::OnStart";
+	end;
+
+OnStart:
+	announce "Battleground -- Kreiger Von Midgard [60-79] has started!",0,0x808080;
+	enablenpc "TherapistKvM02a";
+	enablenpc "TherapistKvM02b";
+	disablenpc "VintenarKvM02a";
+	disablenpc "VintenarKvM02b";
+	set $@KvM02BG_Victory, 0;
+	sleep 2000;
+	// Warp Teams
+	bg_warp $@KvM02BG_id1,"bat_c02",53,128;
+	bg_warp $@KvM02BG_id2,"bat_c02",146,55;
+	// ScoreBoard
+	set .Guillaume_Score, 0;
+	set .Croix_Score, 0;
+	initnpctimer;
+	end;
+
+OnTimer5000:
+	areapercentheal "bat_c02",50,123,58,131,100,100;
+	areapercentheal "bat_c02",141,52,149,60,100,100;
+	mapannounce "bat_c02","The Battle will start in 25 seconds!!",1,0x808080;
+	end;
+
+OnTimer26000:
+	mapannounce "bat_c02","The Battle will start in 4 seconds!!",1,0x808080;
+	end;
+
+OnTimer27000:
+	donpcevent "::OnKvM02LightA";
+	end;
+
+OnTimer28000:
+	donpcevent "::OnKvM02LightB";
+	end;
+	
+OnTimer29000:
+	donpcevent "::OnKvM02LightC";
+	end;
+
+OnTimer30000:
+	// Team Members
+	set .Guillaume_Count, bg_get_data($@KvM02BG_id1, 0);
+	set .Croix_Count, bg_get_data($@KvM02BG_id2, 0);
+	if( .Guillaume_Count < 5 || .Croix_Count < 5 )
+	{
+		set $@KvM02BG_Victory, 3;
+		set $@KvM02BG, 3;
+		mapannounce "bat_c02","There are not enough players to start the battle",1,0x808080;
+		stopnpctimer;
+		sleep 2000;
+		donpcevent "KvM02_BG::OnStop";
+		end;
+	}
+
+	set $@KvM02BG, 2; // Playing
+	areapercentheal "bat_c02",50,123,58,131,100,100;
+	bg_warp $@KvM02BG_id1,"bat_c02",62,119;
+	areapercentheal "bat_c02",141,52,149,60,100,100;
+	bg_warp $@KvM02BG_id2,"bat_c02",137,64;
+	end;
+
+OnTimer32000:
+	mapannounce "bat_c02","The Battle of Kreiger Von Midgard has begun!!",1,0x808080;
+	end;
+
+OnTimer300000:
+	mapannounce "bat_c02","The Battle will ends in 30 seconds!!",1,0x808080;
+	end;
+
+OnTimer330000:
+	if( .Croix_Count > .Guillaume_Count )
+		donpcevent "KvM02_BG::OnCroixWin";
+	else if( .Croix_Count < .Guillaume_Count )
+		donpcevent "KvM02_BG::OnGuillaumeWin";
+	else
+	{ // Draw Game
+		set $@KvM02BG, 3;
+		set $@KvM02BG_Victory, 3;
+
+		stopnpctimer;
+		sleep 2000;
+		mapannounce "bat_c02","The time is out! This is a Tie...",1,0x808080;
+		donpcevent "KvM02_BG::OnStop";
+	}
+	end;
+
+OnGuillaumeWin:
+	set $@KvM02BG, 3;
+	set $@KvM02BG_Victory, 1;
+	
+	stopnpctimer;
+	sleep 2000;
+	mapannounce "bat_c02","The Guillaume Army has won the Battle of Kreiger Von Midgard",1,0x0000FF;
+	donpcevent "KvM02_BG::OnStop";
+	end;
+
+OnCroixWin:
+	set $@KvM02BG, 3;
+	set $@KvM02BG_Victory, 2;
+
+	stopnpctimer;
+	sleep 2000;
+	mapannounce "bat_c02","The Croix Army has won the Battle of Kreiger Von Midgard",1,0xFF0000;
+	donpcevent "KvM02_BG::OnStop";
+	end;
+
+OnStop:
+	disablenpc "TherapistKvM02a";
+	disablenpc "TherapistKvM02b";
+	enablenpc "VintenarKvM02a";
+	enablenpc "VintenarKvM02b";
+	// Warp Teams
+	bg_warp $@KvM02BG_id1,"bat_c02",53,128;
+	bg_warp $@KvM02BG_id2,"bat_c02",146,55;
+	donpcevent "KvM02_BG_Out::OnBegin";
+	end;
+
+OnReset:
+	stopnpctimer;
+	stopnpctimer "KvM02_BG_Out";
+	set .Croix_Count, 0;
+	set .Guillaume_Count, 0;
+	set .Croix_Score, 0;
+	set .Guillaume_Score, 0;
+	set $@KvM02BG_Victory, 0;
+	if( $@KvM02BG_id1 ) { bg_destroy $@KvM02BG_id1; set $@KvM02BG_id1, 0; }
+	if( $@KvM02BG_id2 ) { bg_destroy $@KvM02BG_id2; set $@KvM02BG_id2, 0; }
+	disablenpc "TherapistKvM02a";
+	disablenpc "TherapistKvM02b";
+	disablenpc "VintenarKvM02a";
+	disablenpc "VintenarKvM02b";
+	sleep 1000;
+	mapwarp "bat_c02","bat_room",155,150;
+	sleep 2000;
+	maprespawnguildid "bat_c02",0,3; // Just in case someone else
+	bg_updatescore "bat_c02",0,0;
+	sleep 2000;
+	set $@KvM02BG, 0;
+	donpcevent "KvM02_BG::OnReadyCheck"; // Maybe a game is ready to start
+	end;
+}
+
+-	script	KvM02_BG_Out	-1,{
+	end;
+
+OnBegin:
+	initnpctimer;
+	end;
+
+OnTimer3000:
+	mapannounce "bat_c02","Battle of Kreiger Von Midgard will close in 1 minute!",1,0x808080;
+	end;
+OnTimer30000:
+	mapannounce "bat_c02","Battle of Kreiger Von Midgard will close in 30 seconds!",1,0x808080;
+	end;
+OnTimer50000:
+	mapannounce "bat_c02","Battle of Kreiger Von Midgard will close in 10 seconds!",1,0x808080;
+	end;
+OnTimer60000:
+	donpcevent "KvM02_BG::OnReset";
+	end;
+}
+
+// Battleground Therapist
+// *********************************************************************
+
+bat_c02,51,130,5	script	Therapist in battle::TherapistKvM02a	95,{
+	mes "[Therapist in battle]";
+	mes "Just close your eyes, and take a deep breathe.";
+	mes "You can be free from pain.";
+	specialeffect2 312;
+	close;
+}
+
+bat_c02,148,53,1	script	Therapist in battle::TherapistKvM02b	95,{
+	mes "[Therapist in battle]";
+	mes "Just close your eyes, and take a deep breathe.";
+	mes "You can be free from pain.";
+	specialeffect2 312;
+	close;
+}
+
+// Battleground rewards
+// *********************************************************************
+
+bat_c02,51,130,5	script	Guillaume Vintenar::VintenarKvM02a	419,{
+	if( $@KvM02BG_Victory )
+	{
+		if( $@KvM02BG_Victory == 3 )
+		{
+			setquest 6025;
+			bg_leave;
+			warp "bat_room",155,150;
+			end;
+		}
+		else if( $@KvM02BG_Victory == Bat_Team )
+		{ // Victory
+			set .@Reward, 3;
+			mes "[Swandery]";
+			mes "Blessed Guillaume!!";
+			mes "Let's enjoy our glorious victory!";
+			mes "" + strcharinfo(0) + ", its a sign reflecting victory";
+			close2;
+		}
+		else
+		{ // 
+			set .@Reward, 1;
+			mes "[Swandery]";
+			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 a lesson, and later you would definitely learn.";
+			close2;
+		}
+
+		setquest 6025;
+		getitem 7773, .@Reward;
+		bg_leave;
+		warp "bat_room",155,150;
+		end;
+	}
+	end;
+}
+
+bat_c02,148,53,1	script	Croix Vintenar::VintenarKvM02b	415,{
+	if( $@KvM02BG_Victory )
+	{
+		if( $@KvM02BG_Victory == 3 )
+		{
+			setquest 6025;
+			bg_leave;
+			warp "bat_room",155,150;
+			end;
+		}
+		else if( $@KvM02BG_Victory == Bat_Team )
+		{ // Victory
+			set .@Reward, 3;
+			mes "[Swandery]";
+			mes "Blessed Croax!!";
+			mes "Let's enjoy our glorious victory!";
+			mes "" + strcharinfo(0) + ", its a sign reflecting victory";
+			close2;
+		}
+		else
+		{ // 
+			set .@Reward, 1;
+			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 can win the next.";
+			close2;
+		}
+
+		setquest 6025;
+		getitem 7773, .@Reward;
+		bg_leave;
+		warp "bat_room",155,150;
+		end;
+	}
+	end;
+}
+
+// MapFlags
+// *********************************************************************
+
+bat_c02	mapflag	battleground	2
+bat_c02	mapflag	nomemo
+bat_c02	mapflag	nosave	SavePoint
+bat_c02	mapflag	noteleport
+bat_c02	mapflag	nowarp
+bat_c02	mapflag	nowarpto
+bat_c02	mapflag	noreturn
+bat_c02	mapflag	nobranch
+bat_c02	mapflag	nopenalty

+ 391 - 0
npc/battleground/bg_kvm03.txt

@@ -0,0 +1,391 @@
+// ==============================================================================
+// BattleGround System - KvM 1~59
+// ==============================================================================
+
+// Registration NPC's
+// *********************************************************************
+
+bat_room,197,227,4	script	Registration::KvM03R_Guillaume	418,{ // KvM Guillaume
+	end;
+
+OnInit:
+	waitingroom "Battle Station 5 Players",5,"KvM03_BG::OnGuillaumeJoin",1;
+	end;
+	
+OnEnterBG:
+	set $@KvM03BG_id1, waitingroom2bg("bat_c03",53,128,"KvM03_BG::OnGuillaumeQuit","KvM03_BG::OnGuillaumeDie");
+	end;
+}
+
+bat_room,197,204,0	script	Registration::KvM03R_Croix	414,{ // KvM Croix
+	end;
+
+OnInit:
+	waitingroom "Battle Station 5 Players",5,"KvM03_BG::OnCroixJoin",1;
+	end;
+
+OnEnterBG:
+	set $@KvM03BG_id2, waitingroom2bg("bat_c03",146,55,"KvM03_BG::OnCroixQuit","KvM03_BG::OnCroixDie");
+	end;
+}
+
+// Light Effects
+// *********************************************************************
+
+bat_c03,54,123,0	script	#bat_c03a	111,{
+	end;
+
+OnKvM03LightA: misceffect 54; end;
+OnKvM03LightB: misceffect 55; end;
+OnKvM03LightC: misceffect 56; end;
+}
+
+bat_c03,56,125,0	duplicate(#bat_c03a)	#bat_c03b	111
+bat_c03,58,127,0	duplicate(#bat_c03a)	#bat_c03c	111
+bat_c03,141,56,0	duplicate(#bat_c03a)	#bat_c03d	111
+bat_c03,143,58,0	duplicate(#bat_c03a)	#bat_c03e	111
+bat_c03,145,60,0	duplicate(#bat_c03a)	#bat_c03f	111
+
+// Battleground Engine
+// *********************************************************************
+
+-	script	KvM03_BG	-1,{
+	end;
+
+OnInit:
+	setwall "bat_c03",54,122,6,7,0,"batc03wall_a";
+	setwall "bat_c03",55,122,5,7,0,"batc03wall_b";
+	setwall "bat_c03",140,56,6,7,0,"batc03wall_c";
+	setwall "bat_c03",140,57,5,7,0,"batc03wall_d";
+	disablenpc "TherapistKvM03a";
+	disablenpc "TherapistKvM03b";
+	disablenpc "VintenarKvM03a";
+	disablenpc "VintenarKvM03b";
+	end;
+
+OnGuillaumeJoin:
+OnCroixJoin:
+	donpcevent "KvM03_BG::OnReadyCheck";
+	end;
+
+OnGuillaumeQuit:
+	set BG_Delay_Tick, gettimetick(2) + 1200;
+OnGuillaumeDie:
+	if( $@KvM03BG == 2 )
+	{
+		set .Guillaume_Count, .Guillaume_Count - 1;
+		set .Croix_Score, .Croix_Score + 1;
+		bg_updatescore "bat_c03",.Guillaume_Score,.Croix_Score;
+		if( .Guillaume_Count < 1 ) donpcevent "KvM03_BG::OnCroixWin";
+	}
+	end;
+
+OnCroixQuit:
+	set BG_Delay_Tick, gettimetick(2) + 1200;
+OnCroixDie:
+	if( $@KvM03BG == 2 )
+	{
+		set .Croix_Count, .Croix_Count - 1;
+		set .Guillaume_Score, .Guillaume_Score + 1;
+		bg_updatescore "bat_c03",.Guillaume_Score,.Croix_Score;
+		if( .Croix_Count < 1 ) donpcevent "KvM03_BG::OnGuillaumeWin";
+	}
+	end;
+
+OnReadyCheck:
+	if( $@KvM03BG )
+		end;
+	set .@Guillaume, getwaitingroomstate(0,"KvM03R_Guillaume");
+	set .@Croix, getwaitingroomstate(0,"KvM03R_Croix");
+
+	if( .@Guillaume < 5 || .@Croix < 5 )
+	{
+		if( .@Guillaume > 3 && .@Croix > 3 && !agitcheck() && $@KvM_Flood < gettimetick(2) )
+		{
+			announce "Battleground -- Kreiger Von Midgard [1-59] G: " + .@Guillaume + "/5, C: " + .@Croix + "/5",0,0xC0C0C0;
+			set $@KvM_Flood, gettimetick(2) + 15;
+		}
+		else
+			mapannounce "bat_room","Battleground -- Kreiger Von Midgard [1-59] G: " + .@Guillaume + "/5, C: " + .@Croix + "/5",1,0xC0C0C0;
+		end;
+	}
+
+	set $@KvM03BG, 1; // Starting
+	donpcevent "KvM03R_Croix::OnEnterBG";
+	donpcevent "KvM03R_Guillaume::OnEnterBG";
+	donpcevent "KvM03_BG::OnStart";
+	end;
+
+OnStart:
+	announce "Battleground -- Kreiger Von Midgard [1-59] has started!",0,0xC0C0C0;
+	enablenpc "TherapistKvM03a";
+	enablenpc "TherapistKvM03b";
+	disablenpc "VintenarKvM03a";
+	disablenpc "VintenarKvM03b";
+	set $@KvM03BG_Victory, 0;
+	sleep 2000;
+	// Warp Teams
+	bg_warp $@KvM03BG_id1,"bat_c03",53,128;
+	bg_warp $@KvM03BG_id2,"bat_c03",146,55;
+	// ScoreBoard
+	set .Guillaume_Score, 0;
+	set .Croix_Score, 0;
+	initnpctimer;
+	end;
+
+OnTimer5000:
+	areapercentheal "bat_c03",50,123,58,131,100,100;
+	areapercentheal "bat_c03",141,52,149,60,100,100;
+	mapannounce "bat_c03","The Battle will start in 25 seconds!!",1,0xC0C0C0;
+	end;
+
+OnTimer26000:
+	mapannounce "bat_c03","The Battle will start in 4 seconds!!",1,0xC0C0C0;
+	end;
+
+OnTimer27000:
+	donpcevent "::OnKvM03LightA";
+	end;
+
+OnTimer28000:
+	donpcevent "::OnKvM03LightB";
+	end;
+	
+OnTimer29000:
+	donpcevent "::OnKvM03LightC";
+	end;
+
+OnTimer30000:
+	// Team Members
+	set .Guillaume_Count, bg_get_data($@KvM03BG_id1, 0);
+	set .Croix_Count, bg_get_data($@KvM03BG_id2, 0);
+	if( .Guillaume_Count < 5 || .Croix_Count < 5 )
+	{
+		set $@KvM03BG_Victory, 3;
+		set $@KvM03BG, 3;
+		mapannounce "bat_c03","There are not enough players to start the battle",1,0xC0C0C0;
+		stopnpctimer;
+		sleep 2000;
+		donpcevent "KvM03_BG::OnStop";
+		end;
+	}
+
+	set $@KvM03BG, 2; // Playing
+	areapercentheal "bat_c03",50,123,58,131,100,100;
+	bg_warp $@KvM03BG_id1,"bat_c03",62,119;
+	areapercentheal "bat_c03",141,52,149,60,100,100;
+	bg_warp $@KvM03BG_id2,"bat_c03",137,64;
+	end;
+
+OnTimer32000:
+	mapannounce "bat_c03","The Battle of Kreiger Von Midgard has begun!!",1,0xC0C0C0;
+	end;
+
+OnTimer300000:
+	mapannounce "bat_c03","The Battle will ends in 30 seconds!!",1,0xC0C0C0;
+	end;
+
+OnTimer330000:
+	if( .Croix_Count > .Guillaume_Count )
+		donpcevent "KvM03_BG::OnCroixWin";
+	else if( .Croix_Count < .Guillaume_Count )
+		donpcevent "KvM03_BG::OnGuillaumeWin";
+	else
+	{ // Draw Game
+		set $@KvM03BG, 3;
+		set $@KvM03BG_Victory, 3;
+
+		stopnpctimer;
+		sleep 2000;
+		mapannounce "bat_c03","The time is out! This is a Tie...",1,0xC0C0C0;
+		donpcevent "KvM03_BG::OnStop";
+	}
+	end;
+
+OnGuillaumeWin:
+	set $@KvM03BG, 3;
+	set $@KvM03BG_Victory, 1;
+	
+	stopnpctimer;
+	sleep 2000;
+	mapannounce "bat_c03","The Guillaume Army has won the Battle of Kreiger Von Midgard",1,0x0000FF;
+	donpcevent "KvM03_BG::OnStop";
+	end;
+
+OnCroixWin:
+	set $@KvM03BG, 3;
+	set $@KvM03BG_Victory, 2;
+
+	stopnpctimer;
+	sleep 2000;
+	mapannounce "bat_c03","The Croix Army has won the Battle of Kreiger Von Midgard",1,0xFF0000;
+	donpcevent "KvM03_BG::OnStop";
+	end;
+
+OnStop:
+	disablenpc "TherapistKvM03a";
+	disablenpc "TherapistKvM03b";
+	enablenpc "VintenarKvM03a";
+	enablenpc "VintenarKvM03b";
+	// Warp Teams
+	bg_warp $@KvM03BG_id1,"bat_c03",53,128;
+	bg_warp $@KvM03BG_id2,"bat_c03",146,55;
+	donpcevent "KvM03_BG_Out::OnBegin";
+	end;
+
+OnReset:
+	stopnpctimer;
+	stopnpctimer "KvM03_BG_Out";
+	set .Croix_Count, 0;
+	set .Guillaume_Count, 0;
+	set .Croix_Score, 0;
+	set .Guillaume_Score, 0;
+	set $@KvM03BG_Victory, 0;
+	if( $@KvM03BG_id1 ) { bg_destroy $@KvM03BG_id1; set $@KvM03BG_id1, 0; }
+	if( $@KvM03BG_id2 ) { bg_destroy $@KvM03BG_id2; set $@KvM03BG_id2, 0; }
+	disablenpc "TherapistKvM03a";
+	disablenpc "TherapistKvM03b";
+	disablenpc "VintenarKvM03a";
+	disablenpc "VintenarKvM03b";
+	sleep 1000;
+	mapwarp "bat_c03","bat_room",155,150;
+	sleep 2000;
+	maprespawnguildid "bat_c03",0,3; // Just in case someone else
+	bg_updatescore "bat_c03",0,0;
+	sleep 2000;
+	set $@KvM03BG, 0;
+	donpcevent "KvM03_BG::OnReadyCheck"; // Maybe a game is ready to start
+	end;
+}
+
+-	script	KvM03_BG_Out	-1,{
+	end;
+
+OnBegin:
+	initnpctimer;
+	end;
+
+OnTimer3000:
+	mapannounce "bat_c03","Battle of Kreiger Von Midgard will close in 1 minute!",1,0xC0C0C0;
+	end;
+OnTimer30000:
+	mapannounce "bat_c03","Battle of Kreiger Von Midgard will close in 30 seconds!",1,0xC0C0C0;
+	end;
+OnTimer50000:
+	mapannounce "bat_c03","Battle of Kreiger Von Midgard will close in 10 seconds!",1,0xC0C0C0;
+	end;
+OnTimer60000:
+	donpcevent "KvM03_BG::OnReset";
+	end;
+}
+
+// Battleground Therapist
+// *********************************************************************
+
+bat_c03,51,130,5	script	Therapist in battle::TherapistKvM03a	95,{
+	mes "[Therapist in battle]";
+	mes "Just close your eyes, and take a deep breathe.";
+	mes "You can be free from pain.";
+	specialeffect2 312;
+	close;
+}
+
+bat_c03,148,53,1	script	Therapist in battle::TherapistKvM03b	95,{
+	mes "[Therapist in battle]";
+	mes "Just close your eyes, and take a deep breathe.";
+	mes "You can be free from pain.";
+	specialeffect2 312;
+	close;
+}
+
+// Battleground rewards
+// *********************************************************************
+
+bat_c03,51,130,5	script	Guillaume Vintenar::VintenarKvM03a	419,{
+	if( $@KvM03BG_Victory )
+	{
+		if( $@KvM03BG_Victory == 3 )
+		{
+			setquest 6025;
+			bg_leave;
+			warp "bat_room",155,150;
+			end;
+		}
+		else if( $@KvM03BG_Victory == Bat_Team )
+		{ // Victory
+			set .@Reward, 1;
+			mes "[Swandery]";
+			mes "Blessed Guillaume!!";
+			mes "Let's enjoy our glorious victory!";
+			mes "" + strcharinfo(0) + ", its a sign reflecting victory";
+			close2;
+		}
+		else
+		{ // 
+			set .@Reward, 0;
+			mes "[Swandery]";
+			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 a lesson, and later you would definitely learn.";
+			close2;
+		}
+
+		setquest 6025;
+		getitem 7773, .@Reward;
+		bg_leave;
+		warp "bat_room",155,150;
+		end;
+	}
+	end;
+}
+
+bat_c03,148,53,1	script	Croix Vintenar::VintenarKvM03b	415,{
+	if( $@KvM03BG_Victory )
+	{
+		if( $@KvM03BG_Victory == 3 )
+		{
+			setquest 6025;
+			bg_leave;
+			warp "bat_room",155,150;
+			end;
+		}
+		else if( $@KvM03BG_Victory == Bat_Team )
+		{ // Victory
+			set .@Reward, 1;
+			mes "[Swandery]";
+			mes "Blessed Croax!!";
+			mes "Let's enjoy our glorious victory!";
+			mes "" + strcharinfo(0) + ", its a sign reflecting victory";
+			close2;
+		}
+		else
+		{ // 
+			set .@Reward, 0;
+			mes "[Swandery]";
+			mes "Oh, " + strcharinfo(0) + ". Don't be sad.";
+			mes "Even though we didn't win, we did our best.";
+			mes "Please don't forget this battle. We can win the next.";
+			close2;
+		}
+
+		setquest 6025;
+		getitem 7773, .@Reward;
+		bg_leave;
+		warp "bat_room",155,150;
+		end;
+	}
+	end;
+}
+
+// MapFlags
+// *********************************************************************
+
+bat_c03	mapflag	battleground	2
+bat_c03	mapflag	nomemo
+bat_c03	mapflag	nosave	SavePoint
+bat_c03	mapflag	noteleport
+bat_c03	mapflag	nowarp
+bat_c03	mapflag	nowarpto
+bat_c03	mapflag	noreturn
+bat_c03	mapflag	nobranch
+bat_c03	mapflag	nopenalty

+ 2 - 2
npc/battleground/bg_tierra_01.txt

@@ -352,7 +352,7 @@ bat_a01,45,19,3	script	Croix Vintenar#tv1	415,{
 			close2;
 		}
 
-		set Tierra_BG_Tick, gettimetick(2) + 300;
+		setquest 2069;
 		getitem 7828, .@Reward;
 		bg_leave;
 		warp "bat_room",155,150;
@@ -383,7 +383,7 @@ bat_a01,53,377,3	script	Guillaume Vintenar#tv1	419,{
 			close2;
 		}
 
-		set Tierra_BG_Tick, gettimetick(2) + 300;
+		setquest 2069;
 		getitem 7828, .@Reward;
 		bg_leave;
 		warp "bat_room",155,150;

+ 2 - 2
npc/battleground/bg_tierra_02.txt

@@ -352,7 +352,7 @@ bat_a02,45,19,3	script	Croix Vintenar#tv2	415,{
 			close2;
 		}
 
-		set Tierra_BG_Tick, gettimetick(2) + 300;
+		setquest 2069;
 		getitem 7828, .@Reward;
 		bg_leave;
 		warp "bat_room",155,150;
@@ -383,7 +383,7 @@ bat_a02,53,377,3	script	Guillaume Vintenar#tv2	419,{
 			close2;
 		}
 
-		set Tierra_BG_Tick, gettimetick(2) + 300;
+		setquest 2069;
 		getitem 7828, .@Reward;
 		bg_leave;
 		warp "bat_room",155,150;