diff options
Diffstat (limited to 'npc/battleground')
-rw-r--r-- | npc/battleground/bg_common.txt | 2516 | ||||
-rw-r--r-- | npc/battleground/bg_flavius_01.txt | 906 | ||||
-rw-r--r-- | npc/battleground/bg_flavius_02.txt | 906 | ||||
-rw-r--r-- | npc/battleground/bg_tierra_01.txt | 976 | ||||
-rw-r--r-- | npc/battleground/bg_tierra_02.txt | 976 |
5 files changed, 3140 insertions, 3140 deletions
diff --git a/npc/battleground/bg_common.txt b/npc/battleground/bg_common.txt index 21eb9520f..fb33570d7 100644 --- a/npc/battleground/bg_common.txt +++ b/npc/battleground/bg_common.txt @@ -1,1258 +1,1258 @@ -// ==============================================================================
-// BattleGround System - Common NPCs
-// ==============================================================================
-
-// MapFlags
-// *********************************************************************
-
-bat_room mapflag nomemo
-bat_room mapflag nowarpto
-bat_room mapflag nobranch
-bat_room mapflag nopenalty
-bat_room mapflag noteleport
-bat_room mapflag nosave SavePoint
-
-// 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. Fell 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
-// *********************************************************************
-
-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.";
- next;
- if( select("Leave:Don't Leave") == 2 )
- {
- mes "[Teleporter]";
- mes "I'll be here whenever you're in need of my service.";
- close;
- }
-
- 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;
- 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;
-}
-
-// 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 )
- {
- mes "[General Guillaume]";
- mes "I'll be the one who will capture the flag!";
- close2;
- cutin "",255;
- end;
- }
- 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;
- 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?";
- 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.";
- 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.";
- next;
- if( select("Yes, I want to join you!:End Conversation") == 2 )
- {
- mes "[Prince Croix]";
- mes "For Maroll!";
- close2;
- cutin "",255;
- end;
- }
- 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;
-}
-
-// Time calculation Function
-// *********************************************************************
-function script Time2Str {
- set .@Time_Left, getarg(0) - gettimetick(2);
-
- set .@Days, .@Time_Left / 86400;
- set .@Time_Left, .@Time_Left - (.@Days * 86400);
- set .@Hours, .@Time_Left / 3600;
- set .@Time_Left, .@Time_Left - (.@Hours * 3600);
- set .@Minutes, .@Time_Left / 60;
- set .@Time_Left, .@Time_Left - (.@Minutes * 60);
-
- set .@Time$, "";
- if( .@Days > 1 )
- set .@Time$, .@Time$ + .@Days + " days, ";
- else if( .@Days > 0 )
- set .@Time$, .@Time$ + .@Days + " day, ";
-
- if( .@Hours > 1 )
- set .@Time$, .@Time$ + .@Hours + " hours, ";
- else if( .@Hours > 0 )
- set .@Time$, .@Time$ + .@Hours + " hour, ";
-
- if( .@Minutes > 1 )
- set .@Time$, .@Time$ + .@Minutes + " minutes, ";
- else if( .@Minutes > 0 )
- set .@Time$, .@Time$ + .@Minutes + " minute, ";
-
- if( .@Time_Left > 1 || .@Time_Left == 0 )
- set .@Time$, .@Time$ + .@Time_Left + " seconds.";
- else if( .@Time_Left == 1 )
- set .@Time$, .@Time$ + .@Time_Left + " second.";
-
- return .@Time$;
-}
-
-// Guillaume Knight - Tierra Valley
-// *********************************************************************
-bat_room,159,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 Officerer - Guillaume
-// *********************************************************************
-bat_room,156,178,5 script Tierra Valley 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( Tierra_BG_Tick >= gettimetick(2) )
- {
- 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.";
- 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,224;
- end;
-}
-
-// Croix Knight - Tierra Valley
-// *********************************************************************
-bat_room,159,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,156,121,1 script Tierra Valley 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( Tierra_BG_Tick >= gettimetick(2) )
- {
- 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.";
- 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,208;
- end;
-}
-
-// Guillaume Knight - Tierra
-// *********************************************************************
-bat_room,175,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,172,178,5 script Tierra Valley 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( Tierra_BG_Tick >= gettimetick(2) )
- {
- 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.";
- 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,94;
- end;
-}
-
-// Croix Knight - Tierra
-// *********************************************************************
-bat_room,175,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,172,121,1 script Tierra Valley 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( Tierra_BG_Tick >= gettimetick(2) )
- {
- 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.";
- 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,77;
- end;
-}
-
-// Guillaune Knight - Flavius
-// *********************************************************************
-bat_room,151,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 Officerer - Guillaume
-// *********************************************************************
-bat_room,148,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( Flavius_BG_Tick >= gettimetick(2) )
- {
- 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.";
- 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",253,94;
- end;
-}
-
-// Croix Knight - Flavius
-// *********************************************************************
-bat_room,151,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,148,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( Flavius_BG_Tick >= gettimetick(2) )
- {
- 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.";
- 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",253,77;
- end;
-}
-
-// Guillaune Knight - Flavius
-// *********************************************************************
-bat_room,167,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,164,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( Flavius_BG_Tick >= gettimetick(2) )
- {
- 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.";
- 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,94;
- end;
-}
-
-// Croix Knight - Flavius
-// *********************************************************************
-bat_room,167,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,164,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( Flavius_BG_Tick >= gettimetick(2) )
- {
- 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.";
- 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,77;
- end;
-}
-
-// Guillaume Knight - KvM
-// *********************************************************************
-bat_room,143,178,5 script Guillaume Knight#5 417,{
- mes "[Guillaume Knight]";
- mes "To win the Battle of Kriger Von Midgard you and your team must kill all the other opponents before all of you die.";
- next;
- mes "[Guillaume Knight]";
- mes "The first team to lose all their soldiers loses.";
- next;
- mes "[Guillaume Knight]";
- mes "Since you cannot come back to battle after you die, taking care on the battlefield is essential.";
- next;
- mes "[Guillaume Knight]";
- mes "Are you ready for battle? Then apply with the recruiter next to me!";
- close;
-}
-
-// KvM Officerer - Guillaume
-// *********************************************************************
-bat_room,140,178,5 script KVM [80-99] Officer#1 418,{
- mes "[KVM 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 "[KVM 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( KvM_BG_Tick >= gettimetick(2) )
- {
- 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.";
- 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.";
- close;
- }
-
- mes "Good luck!";
- close2;
- warp "bat_room",253,224;
- end;
-}
-
-// Croix Knight - KvM
-// *********************************************************************
-bat_room,143,121,1 script Croix Knight#5 413,{
- mes "[Croix Knight]";
- mes "To win the Battle of Kriger Von Midgard you and your team must kill all the other opponents before all of you die.";
- next;
- mes "[Croix Knight]";
- mes "The first team to lose all their soldiers loses.";
- next;
- mes "[Croix Knight]";
- mes "Since you cannot come back to battle after you die, taking care on the battlefield is essential.";
- next;
- mes "[Croix Knight]";
- mes "Are you ready for battle? Then apply with the recruiter next to me!";
- close;
-}
-
-// KvM Officer - Croix
-// *********************************************************************
-bat_room,140,121,1 script KVM [80-99] Officer#2 414,{
- mes "[KVM 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 "[KVM 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( KvM_BG_Tick >= gettimetick(2) )
- {
- 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.";
- 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.";
- close;
- }
-
- mes "Good luck!";
- close2;
- warp "bat_room",253,208;
- end;
-}
-
-// Guillaume Knight - KvM
-// *********************************************************************
-bat_room,135,178,5 script Guillaume Knight#6 417,{
- mes "[Guillaume Knight]";
- mes "To win the Battle of Kriger Von Midgard you and your team must kill all the other opponents before all of you die.";
- next;
- mes "[Guillaume Knight]";
- mes "The first team to lose all their soldiers loses.";
- next;
- mes "[Guillaume Knight]";
- mes "Since you cannot come back to battle after you die, taking care on the battlefield is essential.";
- next;
- mes "[Guillaume Knight]";
- mes "Are you ready for battle? Then apply with the recruiter next to me!";
- close;
-}
-
-// KvM Officerer - Guillaume
-// *********************************************************************
-bat_room,132,178,5 script KVM [60-79] Officer#1 418,{
- mes "[KVM 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 "[KVM 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( KvM_BG_Tick >= gettimetick(2) )
- {
- 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.";
- 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.";
- close;
- }
-
- mes "Good luck!";
- close2;
- warp "bat_room",225,224;
- end;
-}
-
-// Croix Knight - KvM
-// *********************************************************************
-bat_room,135,121,1 script Croix Knight#6 413,{
- mes "[Croix Knight]";
- mes "To win the Battle of Kriger Von Midgard you and your team must kill all the other opponents before all of you die.";
- next;
- mes "[Croix Knight]";
- mes "The first team to lose all their soldiers loses.";
- next;
- mes "[Croix Knight]";
- mes "Since you cannot come back to battle after you die, taking care on the battlefield is essential.";
- next;
- mes "[Croix Knight]";
- mes "Are you ready for battle? Then apply with the recruiter next to me!";
- close;
-}
-
-// KvM Officer - Croix
-// *********************************************************************
-bat_room,132,121,1 script KVM [60-79] Officer#2 414,{
- mes "[KVM 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 "[KVM 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( KvM_BG_Tick >= gettimetick(2) )
- {
- 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.";
- 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.";
- close;
- }
-
- mes "Good luck!";
- close2;
- warp "bat_room",225,208;
- end;
-}
-
-// Guillaume Knight - KvM
-// *********************************************************************
-bat_room,127,178,5 script Guillaume Knight#7 417,{
- mes "[Guillaume Knight]";
- mes "To win the Battle of Kriger Von Midgard you and your team must kill all the other opponents before all of you die.";
- next;
- mes "[Guillaume Knight]";
- mes "The first team to lose all their soldiers loses.";
- next;
- mes "[Guillaume Knight]";
- mes "Since you cannot come back to battle after you die, taking care on the battlefield is essential.";
- next;
- mes "[Guillaume Knight]";
- mes "Are you ready for battle? Then apply with the recruiter next to me!";
- close;
-}
-
-// KvM Officerer - Guillaume
-// *********************************************************************
-bat_room,124,178,5 script KVM [1-59] Officer#1 418,{
- mes "[KVM 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 "[KVM 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( KvM_BG_Tick >= gettimetick(2) )
- {
- 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.";
- 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.";
- close;
- }
-
- mes "Good luck!";
- close2;
- warp "bat_room",197,224;
- end;
-}
-
-// Croix Knight - KvM
-// *********************************************************************
-bat_room,127,121,1 script Croix Knight#7 413,{
- mes "[Croix Knight]";
- mes "To win the Battle of Kriger Von Midgard you and your team must kill all the other opponents before all of you die.";
- next;
- mes "[Croix Knight]";
- mes "The first team to lose all their soldiers loses.";
- next;
- mes "[Croix Knight]";
- mes "Since you cannot come back to battle after you die, taking care on the battlefield is essential.";
- next;
- mes "[Croix Knight]";
- mes "Are you ready for battle? Then apply with the recruiter next to me!";
- close;
-}
-
-// KvM Officer - Croix
-// *********************************************************************
-bat_room,124,121,1 script KVM [1-59] Officer#2 414,{
- mes "[KVM 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 "[KVM 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( KvM_BG_Tick >= gettimetick(2) )
- {
- 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.";
- 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.";
- close;
- }
-
- mes "Good luck!";
- close2;
- warp "bat_room",197,208;
- 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
-// *********************************************************************
-// 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
-// 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
-// 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
-// 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
-// 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
-// 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
-// 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
-// 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
-// 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
-// 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
-// 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
-// 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
-// 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
-// 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
-// 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
-// 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
-
-// Badges Repairman
-// *********************************************************************
-
-bat_room,138,144,5 script Repairman#bg 99,{
- callfunc "repairmain","Repairman";
- end;
-}
-
-// Badges Exchange
-// *********************************************************************
-
-bat_room,160,150,3 script Erundek 109,{
- mes "[Erundek]";
- mes "Welcome, mighty warrior.";
- mes "What can I do for you today ?";
- next;
- switch( select("Check the Catalog","Exchange Bravery Badges","Exchange Valor Badges","Exchange Heroism Badges","Hmm, nothing I guess.") )
- {
- case 1:
- mes "[Erundek]";
- mes "We have many items, so please take a look and purchase deliberately.";
- close2;
- Readbook 11010,1;
- end;
- case 5:
- mes "[Erundek]";
- mes "As you wish.";
- mes "See you later.";
- close;
- case 2: // Bravery Badges
- mes "[Erundek]";
- mes "So you want to exchange ^0000FFBravery Badges^000000 from the Battle of Tierra Valley.";
- mes "What kind of item do you want to exchange?";
- next;
- deletearray .@Item_DB[0],127;
- set .@Badge, 7828;
-
- switch( select("Weapons:Garment:Footgear:Armor:Accessory") )
- {
- case 1: setarray .@Item_DB[0],13036,13411,1425,1632,1634,1543,1924,1978,1574,1824,1183,1380,13305,1279,1739,13108,13172; set .@Value, 100; break;
- case 2: setarray .@Item_DB[0],2538,2539,2540; set .@Value, 50; break;
- case 3: setarray .@Item_DB[0],2435,2436,2437; set .@Value, 50; break;
- case 4: setarray .@Item_DB[0],2376,2377,2378,2379,2380,2381,2382; set .@Value, 80; break;
- case 5: setarray .@Item_DB[0],2720,2721,2722,2723,2724,2725,2733; set .@Value, 500; break;
- }
-
- break;
- case 3: // Valor Badges
- mes "[Erundek]";
- mes "So you want to exchange ^FF0000Valor Badges^000000 from the Battle of Flavius.";
- mes "What kind of item do you want to exchange?";
- next;
- deletearray .@Item_DB[0],127;
- set .@Badge, 7829;
-
- switch( select("Weapons:Garment:Footgear:Armor:Accessory") )
- {
- case 1: setarray .@Item_DB[0],13037,13410,1633,1635,1542,1923,1977,1575,1823,1184,1482,1379,13306,1280,1738,13171,13173,13174; set .@Value, 100; break;
- case 2: setarray .@Item_DB[0],2538,2539,2540; set .@Value, 50; break;
- case 3: setarray .@Item_DB[0],2435,2436,2437; set .@Value, 50; break;
- case 4: setarray .@Item_DB[0],2376,2377,2378,2379,2380,2381,2382; set .@Value, 80; break;
- case 5: setarray .@Item_DB[0],2720,2721,2722,2723,2724,2725,2733; set .@Value, 500; break;
- }
-
- break;
- case 4: // Heroism Badge
- mes "[Erundek]";
- mes "So you want to exchange ^FFA500Heroism Badges^000000 from the Battle of Kriger Von Midgard.";
- mes "This shop is not available at the moment.";
- close;
- }
-
- mes "[Erundek]";
- mes "What item do you want to exchange?";
- mes "If you are not sure, check the catalog.";
- next;
-
- set .@Menu$, "";
- set .@Count, getarraysize(.@Item_DB);
- for( set .@i, 0; .@i < .@Count; set .@i, .@i + 1 )
- set .@Menu$, .@Menu$ + getitemname(.@Item_DB[.@i]) + ":";
-
- set .@Item_ID, .@Item_DB[select(.@Menu$) - 1];
-
- mes "[Erundek]";
- mes "Would you like to exchange ^FF0000" + .@Value + " " + getitemname(.@Badge) + "^000000 for a ^0000FF" + getitemname(.@Item_ID) + "^000000?";
- next;
- mes "Remember, Battleground Reward Items are ^FF0000Character Bound^000000.";
- mes "Are you sure you want this item?";
- next;
-
- if( select("Yes:No") == 2 )
- {
- mes "[Erundek]";
- mes "Do you need more time to check the items?";
- close;
- }
-
- if( countitem(.@Badge) < .@Value )
- {
- mes "[Erundek]";
- mes "I'm sorry, but you don't have enough badges to exchange.";
- close;
- }
-
- delitem .@Badge,.@Value;
- getitem .@Item_ID,1;
- mes "[Erundek]";
- mes "Thank you for exchanging.";
- close;
-}
+// ============================================================================== +// BattleGround System - Common NPCs +// ============================================================================== + +// MapFlags +// ********************************************************************* + +bat_room mapflag nomemo +bat_room mapflag nowarpto +bat_room mapflag nobranch +bat_room mapflag nopenalty +bat_room mapflag noteleport +bat_room mapflag nosave SavePoint + +// 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. Fell 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 +// ********************************************************************* + +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."; + next; + if( select("Leave:Don't Leave") == 2 ) + { + mes "[Teleporter]"; + mes "I'll be here whenever you're in need of my service."; + close; + } + + 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; + 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; +} + +// 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 ) + { + mes "[General Guillaume]"; + mes "I'll be the one who will capture the flag!"; + close2; + cutin "",255; + end; + } + 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; + 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?"; + 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."; + 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."; + next; + if( select("Yes, I want to join you!:End Conversation") == 2 ) + { + mes "[Prince Croix]"; + mes "For Maroll!"; + close2; + cutin "",255; + end; + } + 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; +} + +// Time calculation Function +// ********************************************************************* +function script Time2Str { + set .@Time_Left, getarg(0) - gettimetick(2); + + set .@Days, .@Time_Left / 86400; + set .@Time_Left, .@Time_Left - (.@Days * 86400); + set .@Hours, .@Time_Left / 3600; + set .@Time_Left, .@Time_Left - (.@Hours * 3600); + set .@Minutes, .@Time_Left / 60; + set .@Time_Left, .@Time_Left - (.@Minutes * 60); + + set .@Time$, ""; + if( .@Days > 1 ) + set .@Time$, .@Time$ + .@Days + " days, "; + else if( .@Days > 0 ) + set .@Time$, .@Time$ + .@Days + " day, "; + + if( .@Hours > 1 ) + set .@Time$, .@Time$ + .@Hours + " hours, "; + else if( .@Hours > 0 ) + set .@Time$, .@Time$ + .@Hours + " hour, "; + + if( .@Minutes > 1 ) + set .@Time$, .@Time$ + .@Minutes + " minutes, "; + else if( .@Minutes > 0 ) + set .@Time$, .@Time$ + .@Minutes + " minute, "; + + if( .@Time_Left > 1 || .@Time_Left == 0 ) + set .@Time$, .@Time$ + .@Time_Left + " seconds."; + else if( .@Time_Left == 1 ) + set .@Time$, .@Time$ + .@Time_Left + " second."; + + return .@Time$; +} + +// Guillaume Knight - Tierra Valley +// ********************************************************************* +bat_room,159,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 Officerer - Guillaume +// ********************************************************************* +bat_room,156,178,5 script Tierra Valley 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( Tierra_BG_Tick >= gettimetick(2) ) + { + 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."; + 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,224; + end; +} + +// Croix Knight - Tierra Valley +// ********************************************************************* +bat_room,159,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,156,121,1 script Tierra Valley 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( Tierra_BG_Tick >= gettimetick(2) ) + { + 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."; + 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,208; + end; +} + +// Guillaume Knight - Tierra +// ********************************************************************* +bat_room,175,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,172,178,5 script Tierra Valley 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( Tierra_BG_Tick >= gettimetick(2) ) + { + 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."; + 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,94; + end; +} + +// Croix Knight - Tierra +// ********************************************************************* +bat_room,175,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,172,121,1 script Tierra Valley 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( Tierra_BG_Tick >= gettimetick(2) ) + { + 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."; + 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,77; + end; +} + +// Guillaune Knight - Flavius +// ********************************************************************* +bat_room,151,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 Officerer - Guillaume +// ********************************************************************* +bat_room,148,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( Flavius_BG_Tick >= gettimetick(2) ) + { + 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."; + 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",253,94; + end; +} + +// Croix Knight - Flavius +// ********************************************************************* +bat_room,151,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,148,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( Flavius_BG_Tick >= gettimetick(2) ) + { + 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."; + 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",253,77; + end; +} + +// Guillaune Knight - Flavius +// ********************************************************************* +bat_room,167,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,164,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( Flavius_BG_Tick >= gettimetick(2) ) + { + 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."; + 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,94; + end; +} + +// Croix Knight - Flavius +// ********************************************************************* +bat_room,167,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,164,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( Flavius_BG_Tick >= gettimetick(2) ) + { + 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."; + 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,77; + end; +} + +// Guillaume Knight - KvM +// ********************************************************************* +bat_room,143,178,5 script Guillaume Knight#5 417,{ + mes "[Guillaume Knight]"; + mes "To win the Battle of Kriger Von Midgard you and your team must kill all the other opponents before all of you die."; + next; + mes "[Guillaume Knight]"; + mes "The first team to lose all their soldiers loses."; + next; + mes "[Guillaume Knight]"; + mes "Since you cannot come back to battle after you die, taking care on the battlefield is essential."; + next; + mes "[Guillaume Knight]"; + mes "Are you ready for battle? Then apply with the recruiter next to me!"; + close; +} + +// KvM Officerer - Guillaume +// ********************************************************************* +bat_room,140,178,5 script KVM [80-99] Officer#1 418,{ + mes "[KVM 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 "[KVM 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( KvM_BG_Tick >= gettimetick(2) ) + { + 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."; + 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."; + close; + } + + mes "Good luck!"; + close2; + warp "bat_room",253,224; + end; +} + +// Croix Knight - KvM +// ********************************************************************* +bat_room,143,121,1 script Croix Knight#5 413,{ + mes "[Croix Knight]"; + mes "To win the Battle of Kriger Von Midgard you and your team must kill all the other opponents before all of you die."; + next; + mes "[Croix Knight]"; + mes "The first team to lose all their soldiers loses."; + next; + mes "[Croix Knight]"; + mes "Since you cannot come back to battle after you die, taking care on the battlefield is essential."; + next; + mes "[Croix Knight]"; + mes "Are you ready for battle? Then apply with the recruiter next to me!"; + close; +} + +// KvM Officer - Croix +// ********************************************************************* +bat_room,140,121,1 script KVM [80-99] Officer#2 414,{ + mes "[KVM 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 "[KVM 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( KvM_BG_Tick >= gettimetick(2) ) + { + 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."; + 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."; + close; + } + + mes "Good luck!"; + close2; + warp "bat_room",253,208; + end; +} + +// Guillaume Knight - KvM +// ********************************************************************* +bat_room,135,178,5 script Guillaume Knight#6 417,{ + mes "[Guillaume Knight]"; + mes "To win the Battle of Kriger Von Midgard you and your team must kill all the other opponents before all of you die."; + next; + mes "[Guillaume Knight]"; + mes "The first team to lose all their soldiers loses."; + next; + mes "[Guillaume Knight]"; + mes "Since you cannot come back to battle after you die, taking care on the battlefield is essential."; + next; + mes "[Guillaume Knight]"; + mes "Are you ready for battle? Then apply with the recruiter next to me!"; + close; +} + +// KvM Officerer - Guillaume +// ********************************************************************* +bat_room,132,178,5 script KVM [60-79] Officer#1 418,{ + mes "[KVM 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 "[KVM 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( KvM_BG_Tick >= gettimetick(2) ) + { + 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."; + 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."; + close; + } + + mes "Good luck!"; + close2; + warp "bat_room",225,224; + end; +} + +// Croix Knight - KvM +// ********************************************************************* +bat_room,135,121,1 script Croix Knight#6 413,{ + mes "[Croix Knight]"; + mes "To win the Battle of Kriger Von Midgard you and your team must kill all the other opponents before all of you die."; + next; + mes "[Croix Knight]"; + mes "The first team to lose all their soldiers loses."; + next; + mes "[Croix Knight]"; + mes "Since you cannot come back to battle after you die, taking care on the battlefield is essential."; + next; + mes "[Croix Knight]"; + mes "Are you ready for battle? Then apply with the recruiter next to me!"; + close; +} + +// KvM Officer - Croix +// ********************************************************************* +bat_room,132,121,1 script KVM [60-79] Officer#2 414,{ + mes "[KVM 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 "[KVM 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( KvM_BG_Tick >= gettimetick(2) ) + { + 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."; + 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."; + close; + } + + mes "Good luck!"; + close2; + warp "bat_room",225,208; + end; +} + +// Guillaume Knight - KvM +// ********************************************************************* +bat_room,127,178,5 script Guillaume Knight#7 417,{ + mes "[Guillaume Knight]"; + mes "To win the Battle of Kriger Von Midgard you and your team must kill all the other opponents before all of you die."; + next; + mes "[Guillaume Knight]"; + mes "The first team to lose all their soldiers loses."; + next; + mes "[Guillaume Knight]"; + mes "Since you cannot come back to battle after you die, taking care on the battlefield is essential."; + next; + mes "[Guillaume Knight]"; + mes "Are you ready for battle? Then apply with the recruiter next to me!"; + close; +} + +// KvM Officerer - Guillaume +// ********************************************************************* +bat_room,124,178,5 script KVM [1-59] Officer#1 418,{ + mes "[KVM 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 "[KVM 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( KvM_BG_Tick >= gettimetick(2) ) + { + 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."; + 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."; + close; + } + + mes "Good luck!"; + close2; + warp "bat_room",197,224; + end; +} + +// Croix Knight - KvM +// ********************************************************************* +bat_room,127,121,1 script Croix Knight#7 413,{ + mes "[Croix Knight]"; + mes "To win the Battle of Kriger Von Midgard you and your team must kill all the other opponents before all of you die."; + next; + mes "[Croix Knight]"; + mes "The first team to lose all their soldiers loses."; + next; + mes "[Croix Knight]"; + mes "Since you cannot come back to battle after you die, taking care on the battlefield is essential."; + next; + mes "[Croix Knight]"; + mes "Are you ready for battle? Then apply with the recruiter next to me!"; + close; +} + +// KvM Officer - Croix +// ********************************************************************* +bat_room,124,121,1 script KVM [1-59] Officer#2 414,{ + mes "[KVM 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 "[KVM 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( KvM_BG_Tick >= gettimetick(2) ) + { + 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."; + 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."; + close; + } + + mes "Good luck!"; + close2; + warp "bat_room",197,208; + 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 +// ********************************************************************* +// 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 +// 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 +// 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 +// 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 +// 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 +// 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 +// 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 +// 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 +// 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 +// 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 +// 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 +// 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 +// 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 +// 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 +// 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 +// 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 + +// Badges Repairman +// ********************************************************************* + +bat_room,138,144,5 script Repairman#bg 99,{ + callfunc "repairmain","Repairman"; + end; +} + +// Badges Exchange +// ********************************************************************* + +bat_room,160,150,3 script Erundek 109,{ + mes "[Erundek]"; + mes "Welcome, mighty warrior."; + mes "What can I do for you today ?"; + next; + switch( select("Check the Catalog","Exchange Bravery Badges","Exchange Valor Badges","Exchange Heroism Badges","Hmm, nothing I guess.") ) + { + case 1: + mes "[Erundek]"; + mes "We have many items, so please take a look and purchase deliberately."; + close2; + Readbook 11010,1; + end; + case 5: + mes "[Erundek]"; + mes "As you wish."; + mes "See you later."; + close; + case 2: // Bravery Badges + mes "[Erundek]"; + mes "So you want to exchange ^0000FFBravery Badges^000000 from the Battle of Tierra Valley."; + mes "What kind of item do you want to exchange?"; + next; + deletearray .@Item_DB[0],127; + set .@Badge, 7828; + + switch( select("Weapons:Garment:Footgear:Armor:Accessory") ) + { + case 1: setarray .@Item_DB[0],13036,13411,1425,1632,1634,1543,1924,1978,1574,1824,1183,1380,13305,1279,1739,13108,13172; set .@Value, 100; break; + case 2: setarray .@Item_DB[0],2538,2539,2540; set .@Value, 50; break; + case 3: setarray .@Item_DB[0],2435,2436,2437; set .@Value, 50; break; + case 4: setarray .@Item_DB[0],2376,2377,2378,2379,2380,2381,2382; set .@Value, 80; break; + case 5: setarray .@Item_DB[0],2720,2721,2722,2723,2724,2725,2733; set .@Value, 500; break; + } + + break; + case 3: // Valor Badges + mes "[Erundek]"; + mes "So you want to exchange ^FF0000Valor Badges^000000 from the Battle of Flavius."; + mes "What kind of item do you want to exchange?"; + next; + deletearray .@Item_DB[0],127; + set .@Badge, 7829; + + switch( select("Weapons:Garment:Footgear:Armor:Accessory") ) + { + case 1: setarray .@Item_DB[0],13037,13410,1633,1635,1542,1923,1977,1575,1823,1184,1482,1379,13306,1280,1738,13171,13173,13174; set .@Value, 100; break; + case 2: setarray .@Item_DB[0],2538,2539,2540; set .@Value, 50; break; + case 3: setarray .@Item_DB[0],2435,2436,2437; set .@Value, 50; break; + case 4: setarray .@Item_DB[0],2376,2377,2378,2379,2380,2381,2382; set .@Value, 80; break; + case 5: setarray .@Item_DB[0],2720,2721,2722,2723,2724,2725,2733; set .@Value, 500; break; + } + + break; + case 4: // Heroism Badge + mes "[Erundek]"; + mes "So you want to exchange ^FFA500Heroism Badges^000000 from the Battle of Kriger Von Midgard."; + mes "This shop is not available at the moment."; + close; + } + + mes "[Erundek]"; + mes "What item do you want to exchange?"; + mes "If you are not sure, check the catalog."; + next; + + set .@Menu$, ""; + set .@Count, getarraysize(.@Item_DB); + for( set .@i, 0; .@i < .@Count; set .@i, .@i + 1 ) + set .@Menu$, .@Menu$ + getitemname(.@Item_DB[.@i]) + ":"; + + set .@Item_ID, .@Item_DB[select(.@Menu$) - 1]; + + mes "[Erundek]"; + mes "Would you like to exchange ^FF0000" + .@Value + " " + getitemname(.@Badge) + "^000000 for a ^0000FF" + getitemname(.@Item_ID) + "^000000?"; + next; + mes "Remember, Battleground Reward Items are ^FF0000Character Bound^000000."; + mes "Are you sure you want this item?"; + next; + + if( select("Yes:No") == 2 ) + { + mes "[Erundek]"; + mes "Do you need more time to check the items?"; + close; + } + + if( countitem(.@Badge) < .@Value ) + { + mes "[Erundek]"; + mes "I'm sorry, but you don't have enough badges to exchange."; + close; + } + + delitem .@Badge,.@Value; + getitem .@Item_ID,1; + mes "[Erundek]"; + mes "Thank you for exchanging."; + close; +} diff --git a/npc/battleground/bg_flavius_01.txt b/npc/battleground/bg_flavius_01.txt index dbfea0873..2017fc073 100644 --- a/npc/battleground/bg_flavius_01.txt +++ b/npc/battleground/bg_flavius_01.txt @@ -1,453 +1,453 @@ -// ==============================================================================
-// BattleGround System - Flavius 1
-// ==============================================================================
-
-// Registration NPC's
-// *********************************************************************
-
-bat_room,253,97,4 script Registration::Fl1R_Guillaume 418,{
- end;
-OnInit:
- waitingroom "Battle Station 10 Players",10,"Flavius_BG1::OnGuillaumeJoin",1;
- end;
-OnEnterBG:
- set $@FlaviusBG1_id1, waitingroom2bg("bat_b01",390,10,"Flavius_BG1::OnGuillaumeQuit","");
- end;
-}
-
-bat_room,253,74,0 script Registration::Fl1R_Croix 414,{
- end;
-OnInit:
- waitingroom "Battle Station 10 Players",10,"Flavius_BG1::OnCroixJoin",1;
- end;
-OnEnterBG:
- set $@FlaviusBG1_id2, waitingroom2bg("bat_b01",10,290,"Flavius_BG1::OnCroixQuit","");
- end;
-}
-
-// Battleground Engine
-// *********************************************************************
-
-- script Flavius_BG1 -1,{
- end;
-
-OnInit:
- disablenpc "Guillaume Vintenar#fl1";
- disablenpc "Croix Vintenar#fl1";
- disablenpc "Therapist in battle#fl11";
- disablenpc "Therapist in battle#fl12";
- end;
-
-OnGuillaumeQuit:
-OnCroixQuit:
- set BG_Delay_Tick, gettimetick(2) + 1200;
- end;
-
-OnGuillaumeJoin:
-OnCroixJoin:
- if( $@FlaviusBG1 == 0 )
- donpcevent "Flavius_BG1::OnReadyCheck";
- end;
-
-OnReadyCheck:
- if( $@FlaviusBG1 )
- end;
- set .@Guillaume, getwaitingroomstate(0,"Fl1R_Guillaume");
- set .@Croix, getwaitingroomstate(0,"Fl1R_Croix");
-
- if( .@Guillaume < 10 || .@Croix < 10 )
- {
- mapannounce "bat_room","Battleground -- Flavius [80-99] G: " + .@Guillaume + "/10, C: " + .@Croix + "/10",1,0x006400;
- end;
- }
-
- // BG Variables
- set $@FlaviusBG1, 1;
- set $@FlaviusBG1_Victory, 0;
- set .Guillaume_Score, 0;
- set .Guillaume_Loss, 0;
- set .Croix_Score, 0;
- set .Croix_Loss, 0;
- set .Match, 0;
- // Prepare NPC
- donpcevent "#gfl1_respawn::OnBGStart";
- donpcevent "#cfl1_respawn::OnBGStart";
- enablenpc "Therapist in battle#fl11";
- enablenpc "Therapist in battle#fl12";
- disablenpc "Guillaume Vintenar#fl1";
- disablenpc "Croix Vintenar#fl1";
- // Build and Warp Teams
- donpcevent "Fl1R_Guillaume::OnEnterBG";
- donpcevent "Fl1R_Croix::OnEnterBG";
- announce "Battleground -- Flavius [80-99] has started!",0,0x006400;
- initnpctimer;
- // Start Match!!
-
-OnRoundStart:
- sleep 2000;
- if( $@FlaviusBG1 != 1 ) end;
-
- areapercentheal "bat_b01",382,2,397,17,100,100;
- areapercentheal "bat_b01",2,282,17,297,100,100;
- bg_warp $@FlaviusBG1_id1,"bat_b01",311,224;
- bg_warp $@FlaviusBG1_id2,"bat_b01",87,75;
-
- sleep 2000;
- if( $@FlaviusBG1 != 1 ) end;
-
- set .Match, .Match + 1;
- // Crystal Spawn
- set .Guillaume_Crystal, bg_monster($@FlaviusBG1_id1,"bat_b01",328,150,"Crystal Guillaume",1914,"Flavius_BG1::OnGuillaumeBreak");
- setwall "bat_b01",327,149,2,6,0,"gui_wall1-1";
- setwall "bat_b01",329,149,2,0,0,"gui_wall1-2";
- setwall "bat_b01",329,151,2,2,0,"gui_wall1-3";
- setwall "bat_b01",327,151,2,4,0,"gui_wall1-4";
-
- set .Croix_Crystal, bg_monster($@FlaviusBG1_id2,"bat_b01",62,150,"Crystal Croix",1915,"Flavius_BG1::OnCroixBreak");
- setwall "bat_b01",61,149,2,6,0,"cro_wall1-1";
- setwall "bat_b01",63,149,2,0,0,"cro_wall1-2";
- setwall "bat_b01",63,151,2,2,0,"cro_wall1-3";
- setwall "bat_b01",61,151,2,4,0,"cro_wall1-4";
-
- // Guardian Spawns
- bg_monster $@FlaviusBG1_id1,"bat_b01",328,160,"Guillaume Guardian",1949,"Flavius_BG1::OnGuiGuardian";
- bg_monster $@FlaviusBG1_id1,"bat_b01",328,140,"Guillaume Guardian",1950,"Flavius_BG1::OnGuiGuardian";
- set .Guillaume_Guardian, 2;
- bg_monster $@FlaviusBG1_id2,"bat_b01",62,160,"Croix Guardian",1949,"Flavius_BG1::OnCroGuardian";
- bg_monster $@FlaviusBG1_id2,"bat_b01",61,140,"Croix Guardian",1950,"Flavius_BG1::OnCroGuardian";
- set .Croix_Guardian, 2;
- // Announces
- mapannounce "bat_b01","The Battle of Flavius [ " + .Match + " ] Round has begun!!",1,0x006400;
- end;
-
-OnRoundStop:
- // Remove Monsters
- killmonster "bat_b01","Flavius_BG1::OnGuiGuardian";
- killmonster "bat_b01","Flavius_BG1::OnCroGuardian";
- delwall "gui_wall1-1";
- delwall "gui_wall1-2";
- delwall "gui_wall1-3";
- delwall "gui_wall1-4";
- killmonster "bat_b01","Flavius_BG1::OnGuillaumeBreak";
- delwall "cro_wall1-1";
- delwall "cro_wall1-2";
- delwall "cro_wall1-3";
- delwall "cro_wall1-4";
- killmonster "bat_b01","Flavius_BG1::OnCroixBreak";
- end;
-
-OnGuiGuardian:
- if( set(.Guillaume_Guardian, .Guillaume_Guardian - 1) <= 0 )
- {
- delwall "gui_wall1-1";
- delwall "gui_wall1-2";
- delwall "gui_wall1-3";
- delwall "gui_wall1-4";
- mapannounce "bat_b01","The Guillaume Crystal is vulnerable to attack!",1,0x0000FF;
- }
- end;
-
-OnCroGuardian:
- if( set(.Croix_Guardian, .Croix_Guardian - 1) <= 0 )
- {
- delwall "cro_wall1-1";
- delwall "cro_wall1-2";
- delwall "cro_wall1-3";
- delwall "cro_wall1-4";
- mapannounce "bat_b01","The Croix Crystal is vulnerable to attack!",1,0xFF0000;
- }
- end;
-
-OnGuillaumeBreak:
- donpcevent "Flavius_BG1::OnRoundStop";
- set .Guillaume_Loss, .Guillaume_Loss + 1;
- if( set(.Croix_Score, .Croix_Score + 1) < 2 )
- {
- bg_updatescore "bat_b01",.Guillaume_Score,.Croix_Score;
- mapannounce "bat_b01","The Guillaume Crystal has been destroyed!",1,0x0000FF;
- donpcevent "Flavius_BG1::OnRoundStart";
- }
- else
- {
- bg_updatescore "bat_b01",.Guillaume_Score,.Croix_Score;
- mapannounce "bat_b01","The Croix army has won the Battle of Flavius!",1,0xFF0000;
- set $@FlaviusBG1_Victory, 2;
- donpcevent "Flavius_BG1::OnMatchEnd";
- }
- end;
-
-OnCroixBreak:
- donpcevent "Flavius_BG1::OnRoundStop";
- set .Croix_Loss, .Croix_Loss + 1;
- if( set(.Guillaume_Score, .Guillaume_Score + 1) < 2 )
- {
- bg_updatescore "bat_b01",.Guillaume_Score,.Croix_Score;
- mapannounce "bat_b01","The Croix Crystal has been destroyed!",1,0xFF0000;
- donpcevent "Flavius_BG1::OnRoundStart";
- }
- else
- {
- bg_updatescore "bat_b01",.Guillaume_Score,.Croix_Score;
- mapannounce "bat_b01","The Guillaume army has won the Battle of Flavius!",1,0x0000FF;
- set $@FlaviusBG1_Victory, 1;
- donpcevent "Flavius_BG1::OnMatchEnd";
- }
- end;
-
-OnTimer2400000:
- mapannounce "bat_b01","Battle of Flavius will ends in 5 minutes",1,0x006400;
- end;
-OnTimer2640000:
- mapannounce "bat_b01","Battle of Flavius will ends in 1 minute",1,0x006400;
- end;
-
-OnTimer2700000:
- if( .Croix_Score > .Guillaume_Score )
- {
- mapannounce "bat_b01","The Croix army has won the Battle of Flavius!",1,0xFF0000;
- set $@FlaviusBG1_Victory, 2;
- }
- else if( .Croix_Score < .Guillaume_Score )
- {
- mapannounce "bat_b01","The Guillaume army has won the Battle of Flavius!",1,0x0000FF;
- set $@FlaviusBG1_Victory, 1;
- }
- else
- {
- mapannounce "bat_b01","The Battle of Flavius is over. The time is out, this is a Tie",1,0x006400;
- set $@FlaviusBG1_Victory, 3;
- }
-
-OnMatchEnd:
- set $@FlaviusBG1, 2;
- stopnpctimer;
- donpcevent "#gfl1_respawn::OnBGStop";
- donpcevent "#cfl1_respawn::OnBGStop";
- disablenpc "Therapist in battle#fl11";
- disablenpc "Therapist in battle#fl12";
- enablenpc "Guillaume Vintenar#fl1";
- enablenpc "Croix Vintenar#fl1";
- sleep 2000;
- bg_warp $@FlaviusBG1_id1,"bat_b01",390,10;
- bg_warp $@FlaviusBG1_id2,"bat_b01",10,290;
- sleep 3000;
- mapannounce "bat_b01","Battle of Flavius will close in 1 minute!",1,0x006400;
- initnpctimer;
- end;
-
-OnTimer30000:
- if( $@FlaviusBG1 == 2 )
- mapannounce "bat_b01","Battle of Flavius will close in 30 seconds!",1,0x006400;
- end;
-OnTimer50000:
- if( $@FlaviusBG1 == 2 )
- mapannounce "bat_b01","Battle of Flavius will close in 10 seconds!",1,0x006400;
- end;
-
-OnTimer60000:
- if( $@FlaviusBG1 != 2 )
- end;
-OnReset:
- stopnpctimer;
- donpcevent "Flavius_BG1::OnRoundStop";
- set .Guillaume_Score, 0;
- set .Guillaume_Crystal, 0;
- set .Guillaume_Loss, 0;
- set .Croix_Score, 0;
- set .Croix_Crystal, 0;
- set .Croix_Loss, 0;
- set .Match, 0;
- set $@FlaviusBG1_Victory, 0;
- // NPC's
- disablenpc "Guillaume Vintenar#fl1";
- disablenpc "Croix Vintenar#fl1";
- disablenpc "Therapist in battle#fl11";
- disablenpc "Therapist in battle#fl12";
-
- if( $@FlaviusBG1_id1 ) { bg_destroy $@FlaviusBG1_id1; set $@FlaviusBG1_id1, 0; }
- if( $@FlaviusBG1_id2 ) { bg_destroy $@FlaviusBG1_id2; set $@FlaviusBG1_id2, 0; }
- sleep 1000;
- mapwarp "bat_b01","bat_room",155,150;
- sleep 2000;
- maprespawnguildid "bat_b01",0,3; // Just in case someone else
- sleep 2000;
- bg_updatescore "bat_b01",0,0;
- set $@FlaviusBG1, 0;
- donpcevent "Flavius_BG1::OnReadyCheck";
- end;
-}
-
-// Battleground rewards
-// *********************************************************************
-
-bat_b01,390,13,5 script Guillaume Vintenar#fl1 419,{
- if( $@FlaviusBG1_Victory )
- {
- if( $@FlaviusBG1_Victory == Bat_Team )
- { // Victory
- mes "[Swandery]";
- mes "Blessed Guillaume!!";
- mes "Let's enjoy our glorious victory!";
- mes "" + strcharinfo(0) + ", its a sign reflecting victory";
- close2;
- set .@Reward, 9;
- }
- else
- { //
- 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;
- set .@Reward, 3;
- }
-
- set Flavius_BG_Tick, gettimetick(2) + 300;
- getitem 7829, .@Reward;
- bg_leave;
- warp "bat_room",155,150;
- end;
- }
- end;
-}
-
-bat_b01,10,293,5 script Croix Vintenar#fl1 415,{
- if( $@FlaviusBG1_Victory )
- {
- if( $@FlaviusBG1_Victory == Bat_Team )
- { // Victory
- mes "[Swandery]";
- mes "Blessed Croax!!";
- mes "Let's enjoy our glorious victory!";
- mes "" + strcharinfo(0) + ", its a sign reflecting victory";
- close2;
- set .@Reward, 9;
- }
- 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 can win the next.";
- close2;
- set .@Reward, 3;
- }
-
- set Flavius_BG_Tick, gettimetick(2) + 300;
- getitem 7829, .@Reward;
- bg_leave;
- warp "bat_room",155,150;
- end;
- }
- end;
-}
-
-// Battleground Therapist
-// *********************************************************************
-
-bat_b01,390,13,5 script Therapist in battle#fl12 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_b01,10,293,5 script Therapist in battle#fl11 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 Respawn
-// *********************************************************************
-
-bat_b01,390,10,0 script #gfl1_respawn 139,{
- end;
-
-OnBGStart:
- initnpctimer;
- end;
-
-OnBGStop:
- stopnpctimer;
- end;
-
-OnTimer24000:
- misceffect 83;
- end;
-
-OnTimer25000:
- areapercentheal "bat_b01",382,2,397,17,100,100;
- areawarp "bat_b01",382,2,397,17,"bat_b01",311,224;
- initnpctimer;
- end;
-}
-
-bat_b01,10,290,0 script #cfl1_respawn 139,{
- end;
-
-OnBGStart:
- initnpctimer;
- end;
-
-OnBGStop:
- stopnpctimer;
- end;
-
-OnTimer24000:
- misceffect 83;
- end;
-
-OnTimer25000:
- areapercentheal "bat_b01",2,282,17,297,100,100;
- areawarp "bat_b01",2,282,17,297,"bat_b01",87,75;
- initnpctimer;
- end;
-}
-
-// Flags
-// *********************************************************************
-
-bat_b01,304,231,1 duplicate(Guillaume camp#bat) Guillaume camp#bat1 973
-bat_b01,319,231,1 duplicate(Guillaume camp#bat) Guillaume camp#bat2 973
-bat_b01,304,218,1 duplicate(Guillaume camp#bat) Guillaume camp#bat3 973
-bat_b01,319,218,1 duplicate(Guillaume camp#bat) Guillaume camp#bat4 973
-bat_b01,304,231,1 duplicate(Guillaume camp#bat) Guillaume camp#bat5 973
-bat_b01,304,231,1 duplicate(Guillaume camp#bat) Guillaume camp#bat6 973
-bat_b01,335,142,1 duplicate(Guillaume camp#bat) Guillaume camp#bat7 973
-bat_b01,335,157,1 duplicate(Guillaume camp#bat) Guillaume camp#bat8 973
-bat_b01,390,16,1 duplicate(Guillaume camp#bat) Guillaume camp#bat9 973
-bat_b01,292,163,1 duplicate(Guillaume camp#bat) Guillaume camp#bat19 973
-bat_b01,292,136,1 duplicate(Guillaume camp#bat) Guillaume camp#bat20 973
-bat_b01,241,185,1 duplicate(Guillaume camp#bat) Guillaume camp#bat21 973
-bat_b01,247,179,1 duplicate(Guillaume camp#bat) Guillaume camp#bat22 973
-
-bat_b01,96,81,1 duplicate(Croix camp#bat) Croix camp#bat1 974
-bat_b01,96,68,1 duplicate(Croix camp#bat) Croix camp#bat2 974
-bat_b01,79,81,1 duplicate(Croix camp#bat) Croix camp#bat3 974
-bat_b01,79,68,1 duplicate(Croix camp#bat) Croix camp#bat4 974
-bat_b01,96,81,1 duplicate(Croix camp#bat) Croix camp#bat5 974
-bat_b01,96,81,1 duplicate(Croix camp#bat) Croix camp#bat6 974
-bat_b01,59,164,1 duplicate(Croix camp#bat) Croix camp#bat7 974
-bat_b01,59,137,1 duplicate(Croix camp#bat) Croix camp#bat8 974
-bat_b01,10,296,1 duplicate(Croix camp#bat) Croix camp#bat9 974
-bat_b01,110,162,1 duplicate(Croix camp#bat) Croix camp#bat18 974
-bat_b01,110,137,1 duplicate(Croix camp#bat) Croix camp#bat19 974
-bat_b01,152,120,1 duplicate(Croix camp#bat) Croix camp#bat20 974
-bat_b01,158,114,1 duplicate(Croix camp#bat) Croix camp#bat21 974
-
-// MapFlags
-// *********************************************************************
-
-bat_b01 mapflag battleground 2
-bat_b01 mapflag nomemo
-bat_b01 mapflag nosave SavePoint
-bat_b01 mapflag noteleport
-bat_b01 mapflag nowarp
-bat_b01 mapflag nowarpto
-bat_b01 mapflag noreturn
-bat_b01 mapflag nobranch
-bat_b01 mapflag nopenalty
+// ============================================================================== +// BattleGround System - Flavius 1 +// ============================================================================== + +// Registration NPC's +// ********************************************************************* + +bat_room,253,97,4 script Registration::Fl1R_Guillaume 418,{ + end; +OnInit: + waitingroom "Battle Station 10 Players",10,"Flavius_BG1::OnGuillaumeJoin",1; + end; +OnEnterBG: + set $@FlaviusBG1_id1, waitingroom2bg("bat_b01",390,10,"Flavius_BG1::OnGuillaumeQuit",""); + end; +} + +bat_room,253,74,0 script Registration::Fl1R_Croix 414,{ + end; +OnInit: + waitingroom "Battle Station 10 Players",10,"Flavius_BG1::OnCroixJoin",1; + end; +OnEnterBG: + set $@FlaviusBG1_id2, waitingroom2bg("bat_b01",10,290,"Flavius_BG1::OnCroixQuit",""); + end; +} + +// Battleground Engine +// ********************************************************************* + +- script Flavius_BG1 -1,{ + end; + +OnInit: + disablenpc "Guillaume Vintenar#fl1"; + disablenpc "Croix Vintenar#fl1"; + disablenpc "Therapist in battle#fl11"; + disablenpc "Therapist in battle#fl12"; + end; + +OnGuillaumeQuit: +OnCroixQuit: + set BG_Delay_Tick, gettimetick(2) + 1200; + end; + +OnGuillaumeJoin: +OnCroixJoin: + if( $@FlaviusBG1 == 0 ) + donpcevent "Flavius_BG1::OnReadyCheck"; + end; + +OnReadyCheck: + if( $@FlaviusBG1 ) + end; + set .@Guillaume, getwaitingroomstate(0,"Fl1R_Guillaume"); + set .@Croix, getwaitingroomstate(0,"Fl1R_Croix"); + + if( .@Guillaume < 10 || .@Croix < 10 ) + { + mapannounce "bat_room","Battleground -- Flavius [80-99] G: " + .@Guillaume + "/10, C: " + .@Croix + "/10",1,0x006400; + end; + } + + // BG Variables + set $@FlaviusBG1, 1; + set $@FlaviusBG1_Victory, 0; + set .Guillaume_Score, 0; + set .Guillaume_Loss, 0; + set .Croix_Score, 0; + set .Croix_Loss, 0; + set .Match, 0; + // Prepare NPC + donpcevent "#gfl1_respawn::OnBGStart"; + donpcevent "#cfl1_respawn::OnBGStart"; + enablenpc "Therapist in battle#fl11"; + enablenpc "Therapist in battle#fl12"; + disablenpc "Guillaume Vintenar#fl1"; + disablenpc "Croix Vintenar#fl1"; + // Build and Warp Teams + donpcevent "Fl1R_Guillaume::OnEnterBG"; + donpcevent "Fl1R_Croix::OnEnterBG"; + announce "Battleground -- Flavius [80-99] has started!",0,0x006400; + initnpctimer; + // Start Match!! + +OnRoundStart: + sleep 2000; + if( $@FlaviusBG1 != 1 ) end; + + areapercentheal "bat_b01",382,2,397,17,100,100; + areapercentheal "bat_b01",2,282,17,297,100,100; + bg_warp $@FlaviusBG1_id1,"bat_b01",311,224; + bg_warp $@FlaviusBG1_id2,"bat_b01",87,75; + + sleep 2000; + if( $@FlaviusBG1 != 1 ) end; + + set .Match, .Match + 1; + // Crystal Spawn + set .Guillaume_Crystal, bg_monster($@FlaviusBG1_id1,"bat_b01",328,150,"Crystal Guillaume",1914,"Flavius_BG1::OnGuillaumeBreak"); + setwall "bat_b01",327,149,2,6,0,"gui_wall1-1"; + setwall "bat_b01",329,149,2,0,0,"gui_wall1-2"; + setwall "bat_b01",329,151,2,2,0,"gui_wall1-3"; + setwall "bat_b01",327,151,2,4,0,"gui_wall1-4"; + + set .Croix_Crystal, bg_monster($@FlaviusBG1_id2,"bat_b01",62,150,"Crystal Croix",1915,"Flavius_BG1::OnCroixBreak"); + setwall "bat_b01",61,149,2,6,0,"cro_wall1-1"; + setwall "bat_b01",63,149,2,0,0,"cro_wall1-2"; + setwall "bat_b01",63,151,2,2,0,"cro_wall1-3"; + setwall "bat_b01",61,151,2,4,0,"cro_wall1-4"; + + // Guardian Spawns + bg_monster $@FlaviusBG1_id1,"bat_b01",328,160,"Guillaume Guardian",1949,"Flavius_BG1::OnGuiGuardian"; + bg_monster $@FlaviusBG1_id1,"bat_b01",328,140,"Guillaume Guardian",1950,"Flavius_BG1::OnGuiGuardian"; + set .Guillaume_Guardian, 2; + bg_monster $@FlaviusBG1_id2,"bat_b01",62,160,"Croix Guardian",1949,"Flavius_BG1::OnCroGuardian"; + bg_monster $@FlaviusBG1_id2,"bat_b01",61,140,"Croix Guardian",1950,"Flavius_BG1::OnCroGuardian"; + set .Croix_Guardian, 2; + // Announces + mapannounce "bat_b01","The Battle of Flavius [ " + .Match + " ] Round has begun!!",1,0x006400; + end; + +OnRoundStop: + // Remove Monsters + killmonster "bat_b01","Flavius_BG1::OnGuiGuardian"; + killmonster "bat_b01","Flavius_BG1::OnCroGuardian"; + delwall "gui_wall1-1"; + delwall "gui_wall1-2"; + delwall "gui_wall1-3"; + delwall "gui_wall1-4"; + killmonster "bat_b01","Flavius_BG1::OnGuillaumeBreak"; + delwall "cro_wall1-1"; + delwall "cro_wall1-2"; + delwall "cro_wall1-3"; + delwall "cro_wall1-4"; + killmonster "bat_b01","Flavius_BG1::OnCroixBreak"; + end; + +OnGuiGuardian: + if( set(.Guillaume_Guardian, .Guillaume_Guardian - 1) <= 0 ) + { + delwall "gui_wall1-1"; + delwall "gui_wall1-2"; + delwall "gui_wall1-3"; + delwall "gui_wall1-4"; + mapannounce "bat_b01","The Guillaume Crystal is vulnerable to attack!",1,0x0000FF; + } + end; + +OnCroGuardian: + if( set(.Croix_Guardian, .Croix_Guardian - 1) <= 0 ) + { + delwall "cro_wall1-1"; + delwall "cro_wall1-2"; + delwall "cro_wall1-3"; + delwall "cro_wall1-4"; + mapannounce "bat_b01","The Croix Crystal is vulnerable to attack!",1,0xFF0000; + } + end; + +OnGuillaumeBreak: + donpcevent "Flavius_BG1::OnRoundStop"; + set .Guillaume_Loss, .Guillaume_Loss + 1; + if( set(.Croix_Score, .Croix_Score + 1) < 2 ) + { + bg_updatescore "bat_b01",.Guillaume_Score,.Croix_Score; + mapannounce "bat_b01","The Guillaume Crystal has been destroyed!",1,0x0000FF; + donpcevent "Flavius_BG1::OnRoundStart"; + } + else + { + bg_updatescore "bat_b01",.Guillaume_Score,.Croix_Score; + mapannounce "bat_b01","The Croix army has won the Battle of Flavius!",1,0xFF0000; + set $@FlaviusBG1_Victory, 2; + donpcevent "Flavius_BG1::OnMatchEnd"; + } + end; + +OnCroixBreak: + donpcevent "Flavius_BG1::OnRoundStop"; + set .Croix_Loss, .Croix_Loss + 1; + if( set(.Guillaume_Score, .Guillaume_Score + 1) < 2 ) + { + bg_updatescore "bat_b01",.Guillaume_Score,.Croix_Score; + mapannounce "bat_b01","The Croix Crystal has been destroyed!",1,0xFF0000; + donpcevent "Flavius_BG1::OnRoundStart"; + } + else + { + bg_updatescore "bat_b01",.Guillaume_Score,.Croix_Score; + mapannounce "bat_b01","The Guillaume army has won the Battle of Flavius!",1,0x0000FF; + set $@FlaviusBG1_Victory, 1; + donpcevent "Flavius_BG1::OnMatchEnd"; + } + end; + +OnTimer2400000: + mapannounce "bat_b01","Battle of Flavius will ends in 5 minutes",1,0x006400; + end; +OnTimer2640000: + mapannounce "bat_b01","Battle of Flavius will ends in 1 minute",1,0x006400; + end; + +OnTimer2700000: + if( .Croix_Score > .Guillaume_Score ) + { + mapannounce "bat_b01","The Croix army has won the Battle of Flavius!",1,0xFF0000; + set $@FlaviusBG1_Victory, 2; + } + else if( .Croix_Score < .Guillaume_Score ) + { + mapannounce "bat_b01","The Guillaume army has won the Battle of Flavius!",1,0x0000FF; + set $@FlaviusBG1_Victory, 1; + } + else + { + mapannounce "bat_b01","The Battle of Flavius is over. The time is out, this is a Tie",1,0x006400; + set $@FlaviusBG1_Victory, 3; + } + +OnMatchEnd: + set $@FlaviusBG1, 2; + stopnpctimer; + donpcevent "#gfl1_respawn::OnBGStop"; + donpcevent "#cfl1_respawn::OnBGStop"; + disablenpc "Therapist in battle#fl11"; + disablenpc "Therapist in battle#fl12"; + enablenpc "Guillaume Vintenar#fl1"; + enablenpc "Croix Vintenar#fl1"; + sleep 2000; + bg_warp $@FlaviusBG1_id1,"bat_b01",390,10; + bg_warp $@FlaviusBG1_id2,"bat_b01",10,290; + sleep 3000; + mapannounce "bat_b01","Battle of Flavius will close in 1 minute!",1,0x006400; + initnpctimer; + end; + +OnTimer30000: + if( $@FlaviusBG1 == 2 ) + mapannounce "bat_b01","Battle of Flavius will close in 30 seconds!",1,0x006400; + end; +OnTimer50000: + if( $@FlaviusBG1 == 2 ) + mapannounce "bat_b01","Battle of Flavius will close in 10 seconds!",1,0x006400; + end; + +OnTimer60000: + if( $@FlaviusBG1 != 2 ) + end; +OnReset: + stopnpctimer; + donpcevent "Flavius_BG1::OnRoundStop"; + set .Guillaume_Score, 0; + set .Guillaume_Crystal, 0; + set .Guillaume_Loss, 0; + set .Croix_Score, 0; + set .Croix_Crystal, 0; + set .Croix_Loss, 0; + set .Match, 0; + set $@FlaviusBG1_Victory, 0; + // NPC's + disablenpc "Guillaume Vintenar#fl1"; + disablenpc "Croix Vintenar#fl1"; + disablenpc "Therapist in battle#fl11"; + disablenpc "Therapist in battle#fl12"; + + if( $@FlaviusBG1_id1 ) { bg_destroy $@FlaviusBG1_id1; set $@FlaviusBG1_id1, 0; } + if( $@FlaviusBG1_id2 ) { bg_destroy $@FlaviusBG1_id2; set $@FlaviusBG1_id2, 0; } + sleep 1000; + mapwarp "bat_b01","bat_room",155,150; + sleep 2000; + maprespawnguildid "bat_b01",0,3; // Just in case someone else + sleep 2000; + bg_updatescore "bat_b01",0,0; + set $@FlaviusBG1, 0; + donpcevent "Flavius_BG1::OnReadyCheck"; + end; +} + +// Battleground rewards +// ********************************************************************* + +bat_b01,390,13,5 script Guillaume Vintenar#fl1 419,{ + if( $@FlaviusBG1_Victory ) + { + if( $@FlaviusBG1_Victory == Bat_Team ) + { // Victory + mes "[Swandery]"; + mes "Blessed Guillaume!!"; + mes "Let's enjoy our glorious victory!"; + mes "" + strcharinfo(0) + ", its a sign reflecting victory"; + close2; + set .@Reward, 9; + } + else + { // + 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; + set .@Reward, 3; + } + + set Flavius_BG_Tick, gettimetick(2) + 300; + getitem 7829, .@Reward; + bg_leave; + warp "bat_room",155,150; + end; + } + end; +} + +bat_b01,10,293,5 script Croix Vintenar#fl1 415,{ + if( $@FlaviusBG1_Victory ) + { + if( $@FlaviusBG1_Victory == Bat_Team ) + { // Victory + mes "[Swandery]"; + mes "Blessed Croax!!"; + mes "Let's enjoy our glorious victory!"; + mes "" + strcharinfo(0) + ", its a sign reflecting victory"; + close2; + set .@Reward, 9; + } + 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 can win the next."; + close2; + set .@Reward, 3; + } + + set Flavius_BG_Tick, gettimetick(2) + 300; + getitem 7829, .@Reward; + bg_leave; + warp "bat_room",155,150; + end; + } + end; +} + +// Battleground Therapist +// ********************************************************************* + +bat_b01,390,13,5 script Therapist in battle#fl12 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_b01,10,293,5 script Therapist in battle#fl11 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 Respawn +// ********************************************************************* + +bat_b01,390,10,0 script #gfl1_respawn 139,{ + end; + +OnBGStart: + initnpctimer; + end; + +OnBGStop: + stopnpctimer; + end; + +OnTimer24000: + misceffect 83; + end; + +OnTimer25000: + areapercentheal "bat_b01",382,2,397,17,100,100; + areawarp "bat_b01",382,2,397,17,"bat_b01",311,224; + initnpctimer; + end; +} + +bat_b01,10,290,0 script #cfl1_respawn 139,{ + end; + +OnBGStart: + initnpctimer; + end; + +OnBGStop: + stopnpctimer; + end; + +OnTimer24000: + misceffect 83; + end; + +OnTimer25000: + areapercentheal "bat_b01",2,282,17,297,100,100; + areawarp "bat_b01",2,282,17,297,"bat_b01",87,75; + initnpctimer; + end; +} + +// Flags +// ********************************************************************* + +bat_b01,304,231,1 duplicate(Guillaume camp#bat) Guillaume camp#bat1 973 +bat_b01,319,231,1 duplicate(Guillaume camp#bat) Guillaume camp#bat2 973 +bat_b01,304,218,1 duplicate(Guillaume camp#bat) Guillaume camp#bat3 973 +bat_b01,319,218,1 duplicate(Guillaume camp#bat) Guillaume camp#bat4 973 +bat_b01,304,231,1 duplicate(Guillaume camp#bat) Guillaume camp#bat5 973 +bat_b01,304,231,1 duplicate(Guillaume camp#bat) Guillaume camp#bat6 973 +bat_b01,335,142,1 duplicate(Guillaume camp#bat) Guillaume camp#bat7 973 +bat_b01,335,157,1 duplicate(Guillaume camp#bat) Guillaume camp#bat8 973 +bat_b01,390,16,1 duplicate(Guillaume camp#bat) Guillaume camp#bat9 973 +bat_b01,292,163,1 duplicate(Guillaume camp#bat) Guillaume camp#bat19 973 +bat_b01,292,136,1 duplicate(Guillaume camp#bat) Guillaume camp#bat20 973 +bat_b01,241,185,1 duplicate(Guillaume camp#bat) Guillaume camp#bat21 973 +bat_b01,247,179,1 duplicate(Guillaume camp#bat) Guillaume camp#bat22 973 + +bat_b01,96,81,1 duplicate(Croix camp#bat) Croix camp#bat1 974 +bat_b01,96,68,1 duplicate(Croix camp#bat) Croix camp#bat2 974 +bat_b01,79,81,1 duplicate(Croix camp#bat) Croix camp#bat3 974 +bat_b01,79,68,1 duplicate(Croix camp#bat) Croix camp#bat4 974 +bat_b01,96,81,1 duplicate(Croix camp#bat) Croix camp#bat5 974 +bat_b01,96,81,1 duplicate(Croix camp#bat) Croix camp#bat6 974 +bat_b01,59,164,1 duplicate(Croix camp#bat) Croix camp#bat7 974 +bat_b01,59,137,1 duplicate(Croix camp#bat) Croix camp#bat8 974 +bat_b01,10,296,1 duplicate(Croix camp#bat) Croix camp#bat9 974 +bat_b01,110,162,1 duplicate(Croix camp#bat) Croix camp#bat18 974 +bat_b01,110,137,1 duplicate(Croix camp#bat) Croix camp#bat19 974 +bat_b01,152,120,1 duplicate(Croix camp#bat) Croix camp#bat20 974 +bat_b01,158,114,1 duplicate(Croix camp#bat) Croix camp#bat21 974 + +// MapFlags +// ********************************************************************* + +bat_b01 mapflag battleground 2 +bat_b01 mapflag nomemo +bat_b01 mapflag nosave SavePoint +bat_b01 mapflag noteleport +bat_b01 mapflag nowarp +bat_b01 mapflag nowarpto +bat_b01 mapflag noreturn +bat_b01 mapflag nobranch +bat_b01 mapflag nopenalty diff --git a/npc/battleground/bg_flavius_02.txt b/npc/battleground/bg_flavius_02.txt index 57cb79246..9f8b46c00 100644 --- a/npc/battleground/bg_flavius_02.txt +++ b/npc/battleground/bg_flavius_02.txt @@ -1,453 +1,453 @@ -// ==============================================================================
-// BattleGround System - Flavius 2
-// ==============================================================================
-
-// Registration NPC's
-// *********************************************************************
-
-bat_room,57,97,4 script Registration::Fl2R_Guillaume 418,{
- end;
-OnInit:
- waitingroom "Battle Station 10 Players",10,"Flavius_BG2::OnGuillaumeJoin",1;
- end;
-OnEnterBG:
- set $@FlaviusBG2_id1, waitingroom2bg("bat_b02",390,10,"Flavius_BG2::OnGuillaumeQuit","");
- end;
-}
-
-bat_room,57,74,0 script Registration::Fl2R_Croix 414,{
- end;
-OnInit:
- waitingroom "Battle Station 10 Players",10,"Flavius_BG2::OnCroixJoin",1;
- end;
-OnEnterBG:
- set $@FlaviusBG2_id2, waitingroom2bg("bat_b02",10,290,"Flavius_BG2::OnCroixQuit","");
- end;
-}
-
-// Battleground Engine
-// *********************************************************************
-
-- script Flavius_BG2 -1,{
- end;
-
-OnInit:
- disablenpc "Guillaume Vintenar#fl2";
- disablenpc "Croix Vintenar#fl2";
- disablenpc "Therapist in battle#fl21";
- disablenpc "Therapist in battle#fl22";
- end;
-
-OnGuillaumeQuit:
-OnCroixQuit:
- set BG_Delay_Tick, gettimetick(2) + 1200;
- end;
-
-OnGuillaumeJoin:
-OnCroixJoin:
- if( $@FlaviusBG2 == 0 )
- donpcevent "Flavius_BG2::OnReadyCheck";
- end;
-
-OnReadyCheck:
- if( $@FlaviusBG2 )
- end;
- set .@Guillaume, getwaitingroomstate(0,"Fl2R_Guillaume");
- set .@Croix, getwaitingroomstate(0,"Fl2R_Croix");
-
- if( .@Guillaume < 10 || .@Croix < 10 )
- {
- mapannounce "bat_room","Battleground -- Flavius [80-99] G: " + .@Guillaume + "/10, C: " + .@Croix + "/10",1,0x808000;
- end;
- }
-
- // BG Variables
- set $@FlaviusBG2, 1;
- set $@FlaviusBG2_Victory, 0;
- set .Guillaume_Score, 0;
- set .Guillaume_Loss, 0;
- set .Croix_Score, 0;
- set .Croix_Loss, 0;
- set .Match, 0;
- // Prepare NPC
- donpcevent "#gfl2_respawn::OnBGStart";
- donpcevent "#cfl2_respawn::OnBGStart";
- enablenpc "Therapist in battle#fl21";
- enablenpc "Therapist in battle#fl22";
- disablenpc "Guillaume Vintenar#fl2";
- disablenpc "Croix Vintenar#fl2";
- // Build and Warp Teams
- donpcevent "Fl2R_Guillaume::OnEnterBG";
- donpcevent "Fl2R_Croix::OnEnterBG";
- announce "Battleground -- Flavius [80-99] has started!",0,0x808000;
- initnpctimer;
- // Start Match!!
-
-OnRoundStart:
- sleep 2000;
- if( $@FlaviusBG2 != 1 ) end;
-
- areapercentheal "bat_b02",382,2,397,17,100,100;
- areapercentheal "bat_b02",2,282,17,297,100,100;
- bg_warp $@FlaviusBG2_id1,"bat_b02",311,224;
- bg_warp $@FlaviusBG2_id2,"bat_b02",87,75;
-
- sleep 2000;
- if( $@FlaviusBG2 != 1 ) end;
-
- set .Match, .Match + 1;
- // Crystal Spawn
- set .Guillaume_Crystal, bg_monster($@FlaviusBG2_id1,"bat_b02",328,150,"Crystal Guillaume",1914,"Flavius_BG2::OnGuillaumeBreak");
- setwall "bat_b02",327,149,2,6,0,"gui_wall2-1";
- setwall "bat_b02",329,149,2,0,0,"gui_wall2-2";
- setwall "bat_b02",329,151,2,2,0,"gui_wall2-3";
- setwall "bat_b02",327,151,2,4,0,"gui_wall2-4";
-
- set .Croix_Crystal, bg_monster($@FlaviusBG2_id2,"bat_b02",62,150,"Crystal Croix",1915,"Flavius_BG2::OnCroixBreak");
- setwall "bat_b02",61,149,2,6,0,"cro_wall2-1";
- setwall "bat_b02",63,149,2,0,0,"cro_wall2-2";
- setwall "bat_b02",63,151,2,2,0,"cro_wall2-3";
- setwall "bat_b02",61,151,2,4,0,"cro_wall2-4";
-
- // Guardian Spawns
- bg_monster $@FlaviusBG2_id1,"bat_b02",328,160,"Guillaume Guardian",1949,"Flavius_BG2::OnGuiGuardian";
- bg_monster $@FlaviusBG2_id1,"bat_b02",328,140,"Guillaume Guardian",1950,"Flavius_BG2::OnGuiGuardian";
- set .Guillaume_Guardian, 2;
- bg_monster $@FlaviusBG2_id2,"bat_b02",62,160,"Croix Guardian",1949,"Flavius_BG2::OnCroGuardian";
- bg_monster $@FlaviusBG2_id2,"bat_b02",61,140,"Croix Guardian",1950,"Flavius_BG2::OnCroGuardian";
- set .Croix_Guardian, 2;
- // Announces
- mapannounce "bat_b02","The Battle of Flavius [ " + .Match + " ] Round has begun!!",1,0x808000;
- end;
-
-OnRoundStop:
- // Remove Monsters
- killmonster "bat_b02","Flavius_BG2::OnGuiGuardian";
- killmonster "bat_b02","Flavius_BG2::OnCroGuardian";
- delwall "gui_wall2-1";
- delwall "gui_wall2-2";
- delwall "gui_wall2-3";
- delwall "gui_wall2-4";
- killmonster "bat_b02","Flavius_BG2::OnGuillaumeBreak";
- delwall "cro_wall2-1";
- delwall "cro_wall2-2";
- delwall "cro_wall2-3";
- delwall "cro_wall2-4";
- killmonster "bat_b02","Flavius_BG2::OnCroixBreak";
- end;
-
-OnGuiGuardian:
- if( set(.Guillaume_Guardian, .Guillaume_Guardian - 1) <= 0 )
- {
- delwall "gui_wall2-1";
- delwall "gui_wall2-2";
- delwall "gui_wall2-3";
- delwall "gui_wall2-4";
- mapannounce "bat_b02","The Guillaume Crystal is vulnerable to attack!",1,0x0000FF;
- }
- end;
-
-OnCroGuardian:
- if( set(.Croix_Guardian, .Croix_Guardian - 1) <= 0 )
- {
- delwall "cro_wall2-1";
- delwall "cro_wall2-2";
- delwall "cro_wall2-3";
- delwall "cro_wall2-4";
- mapannounce "bat_b02","The Croix Crystal is vulnerable to attack!",1,0xFF0000;
- }
- end;
-
-OnGuillaumeBreak:
- donpcevent "Flavius_BG2::OnRoundStop";
- set .Guillaume_Loss, .Guillaume_Loss + 1;
- if( set(.Croix_Score, .Croix_Score + 1) < 2 )
- {
- bg_updatescore "bat_b02",.Guillaume_Score,.Croix_Score;
- mapannounce "bat_b02","The Guillaume Crystal has been destroyed!",1,0x0000FF;
- donpcevent "Flavius_BG2::OnRoundStart";
- }
- else
- {
- bg_updatescore "bat_b02",.Guillaume_Score,.Croix_Score;
- mapannounce "bat_b02","The Croix army has won the Battle of Flavius!",1,0xFF0000;
- set $@FlaviusBG2_Victory, 2;
- donpcevent "Flavius_BG2::OnMatchEnd";
- }
- end;
-
-OnCroixBreak:
- donpcevent "Flavius_BG2::OnRoundStop";
- set .Croix_Loss, .Croix_Loss + 1;
- if( set(.Guillaume_Score, .Guillaume_Score + 1) < 2 )
- {
- bg_updatescore "bat_b02",.Guillaume_Score,.Croix_Score;
- mapannounce "bat_b02","The Croix Crystal has been destroyed!",1,0xFF0000;
- donpcevent "Flavius_BG2::OnRoundStart";
- }
- else
- {
- bg_updatescore "bat_b02",.Guillaume_Score,.Croix_Score;
- mapannounce "bat_b02","The Guillaume army has won the Battle of Flavius!",1,0x0000FF;
- set $@FlaviusBG2_Victory, 1;
- donpcevent "Flavius_BG2::OnMatchEnd";
- }
- end;
-
-OnTimer2400000:
- mapannounce "bat_b02","Battle of Flavius will ends in 5 minutes",1,0x808000;
- end;
-OnTimer2640000:
- mapannounce "bat_b02","Battle of Flavius will ends in 1 minute",1,0x808000;
- end;
-
-OnTimer2700000:
- if( .Croix_Score > .Guillaume_Score )
- {
- mapannounce "bat_b02","The Croix army has won the Battle of Flavius!",1,0xFF0000;
- set $@FlaviusBG2_Victory, 2;
- }
- else if( .Croix_Score < .Guillaume_Score )
- {
- mapannounce "bat_b02","The Guillaume army has won the Battle of Flavius!",1,0x0000FF;
- set $@FlaviusBG2_Victory, 1;
- }
- else
- {
- mapannounce "bat_b02","The Battle of Flavius is over. The time is out, this is a Tie",1,0x808000;
- set $@FlaviusBG2_Victory, 3;
- }
-
-OnMatchEnd:
- set $@FlaviusBG2, 2;
- stopnpctimer;
- donpcevent "#gfl2_respawn::OnBGStop";
- donpcevent "#cfl2_respawn::OnBGStop";
- disablenpc "Therapist in battle#fl21";
- disablenpc "Therapist in battle#fl22";
- enablenpc "Guillaume Vintenar#fl2";
- enablenpc "Croix Vintenar#fl2";
- sleep 2000;
- bg_warp $@FlaviusBG2_id1,"bat_b02",390,10;
- bg_warp $@FlaviusBG2_id2,"bat_b02",10,290;
- sleep 3000;
- mapannounce "bat_b02","Battle of Flavius will close in 1 minute!",1,0x808000;
- initnpctimer;
- end;
-
-OnTimer30000:
- if( $@FlaviusBG2 == 2 )
- mapannounce "bat_b02","Battle of Flavius will close in 30 seconds!",1,0x808000;
- end;
-OnTimer50000:
- if( $@FlaviusBG2 == 2 )
- mapannounce "bat_b02","Battle of Flavius will close in 10 seconds!",1,0x808000;
- end;
-
-OnTimer60000:
- if( $@FlaviusBG2 != 2 )
- end;
-OnReset:
- stopnpctimer;
- donpcevent "Flavius_BG2::OnRoundStop";
- set .Guillaume_Score, 0;
- set .Guillaume_Crystal, 0;
- set .Guillaume_Loss, 0;
- set .Croix_Score, 0;
- set .Croix_Crystal, 0;
- set .Croix_Loss, 0;
- set .Match, 0;
- set $@FlaviusBG2_Victory, 0;
- // NPC's
- disablenpc "Guillaume Vintenar#fl2";
- disablenpc "Croix Vintenar#fl2";
- disablenpc "Therapist in battle#fl21";
- disablenpc "Therapist in battle#fl22";
-
- if( $@FlaviusBG2_id1 ) { bg_destroy $@FlaviusBG2_id1; set $@FlaviusBG2_id1, 0; }
- if( $@FlaviusBG2_id2 ) { bg_destroy $@FlaviusBG2_id2; set $@FlaviusBG2_id2, 0; }
- sleep 1000;
- mapwarp "bat_b02","bat_room",155,150;
- sleep 2000;
- maprespawnguildid "bat_b02",0,3; // Just in case someone else
- sleep 2000;
- bg_updatescore "bat_b02",0,0;
- set $@FlaviusBG2, 0;
- donpcevent "Flavius_BG2::OnReadyCheck";
- end;
-}
-
-// Battleground rewards
-// *********************************************************************
-
-bat_b02,390,13,5 script Guillaume Vintenar#fl2 419,{
- if( $@FlaviusBG2_Victory )
- {
- if( $@FlaviusBG2_Victory == Bat_Team )
- { // Victory
- mes "[Swandery]";
- mes "Blessed Guillaume!!";
- mes "Let's enjoy our glorious victory!";
- mes "" + strcharinfo(0) + ", its a sign reflecting victory";
- close2;
- set .@Reward, 9;
- }
- else
- { //
- 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;
- set .@Reward, 3;
- }
-
- set Flavius_BG_Tick, gettimetick(2) + 300;
- getitem 7829, .@Reward;
- bg_leave;
- warp "bat_room",155,150;
- end;
- }
- end;
-}
-
-bat_b02,10,293,5 script Croix Vintenar#fl2 415,{
- if( $@FlaviusBG2_Victory )
- {
- if( $@FlaviusBG2_Victory == Bat_Team )
- { // Victory
- mes "[Swandery]";
- mes "Blessed Croax!!";
- mes "Let's enjoy our glorious victory!";
- mes "" + strcharinfo(0) + ", its a sign reflecting victory";
- close2;
- set .@Reward, 9;
- }
- 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 can win the next.";
- close2;
- set .@Reward, 3;
- }
-
- set Flavius_BG_Tick, gettimetick(2) + 300;
- getitem 7829, .@Reward;
- bg_leave;
- warp "bat_room",155,150;
- end;
- }
- end;
-}
-
-// Battleground Therapist
-// *********************************************************************
-
-bat_b02,390,13,5 script Therapist in battle#fl22 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_b02,10,293,5 script Therapist in battle#fl21 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 Respawn
-// *********************************************************************
-
-bat_b02,390,10,0 script #gfl2_respawn 139,{
- end;
-
-OnBGStart:
- initnpctimer;
- end;
-
-OnBGStop:
- stopnpctimer;
- end;
-
-OnTimer24000:
- misceffect 83;
- end;
-
-OnTimer25000:
- areapercentheal "bat_b02",382,2,397,17,100,100;
- areawarp "bat_b02",382,2,397,17,"bat_b02",311,224;
- initnpctimer;
- end;
-}
-
-bat_b02,10,290,0 script #cfl2_respawn 139,{
- end;
-
-OnBGStart:
- initnpctimer;
- end;
-
-OnBGStop:
- stopnpctimer;
- end;
-
-OnTimer24000:
- misceffect 83;
- end;
-
-OnTimer25000:
- areapercentheal "bat_b02",2,282,17,297,100,100;
- areawarp "bat_b02",2,282,17,297,"bat_b02",87,75;
- initnpctimer;
- end;
-}
-
-// Flags
-// *********************************************************************
-
-bat_b02,304,231,1 duplicate(Guillaume camp#bat) Guillaume camp#bat32 973
-bat_b02,319,231,1 duplicate(Guillaume camp#bat) Guillaume camp#bat33 973
-bat_b02,304,218,1 duplicate(Guillaume camp#bat) Guillaume camp#bat34 973
-bat_b02,319,218,1 duplicate(Guillaume camp#bat) Guillaume camp#bat35 973
-bat_b02,304,231,1 duplicate(Guillaume camp#bat) Guillaume camp#bat36 973
-bat_b02,304,231,1 duplicate(Guillaume camp#bat) Guillaume camp#bat37 973
-bat_b02,335,142,1 duplicate(Guillaume camp#bat) Guillaume camp#bat38 973
-bat_b02,335,157,1 duplicate(Guillaume camp#bat) Guillaume camp#bat39 973
-bat_b02,390,16,1 duplicate(Guillaume camp#bat) Guillaume camp#bat40 973
-bat_b02,292,163,1 duplicate(Guillaume camp#bat) Guillaume camp#bat41 973
-bat_b02,292,136,1 duplicate(Guillaume camp#bat) Guillaume camp#bat42 973
-bat_b02,241,185,1 duplicate(Guillaume camp#bat) Guillaume camp#bat43 973
-bat_b02,247,179,1 duplicate(Guillaume camp#bat) Guillaume camp#bat44 973
-
-bat_b02,96,81,1 duplicate(Croix camp#bat) Croix camp#bat30 974
-bat_b02,96,68,1 duplicate(Croix camp#bat) Croix camp#bat31 974
-bat_b02,79,81,1 duplicate(Croix camp#bat) Croix camp#bat32 974
-bat_b02,79,68,1 duplicate(Croix camp#bat) Croix camp#bat33 974
-bat_b02,96,81,1 duplicate(Croix camp#bat) Croix camp#bat34 974
-bat_b02,96,81,1 duplicate(Croix camp#bat) Croix camp#bat35 974
-bat_b02,59,164,1 duplicate(Croix camp#bat) Croix camp#bat36 974
-bat_b02,59,137,1 duplicate(Croix camp#bat) Croix camp#bat37 974
-bat_b02,10,296,1 duplicate(Croix camp#bat) Croix camp#bat38 974
-bat_b02,110,162,1 duplicate(Croix camp#bat) Croix camp#bat39 974
-bat_b02,110,137,1 duplicate(Croix camp#bat) Croix camp#bat40 974
-bat_b02,152,120,1 duplicate(Croix camp#bat) Croix camp#bat41 974
-bat_b02,158,114,1 duplicate(Croix camp#bat) Croix camp#bat42 974
-
-// MapFlags
-// *********************************************************************
-
-bat_b02 mapflag battleground
-bat_b02 mapflag nomemo
-bat_b02 mapflag nosave SavePoint
-bat_b02 mapflag noteleport
-bat_b02 mapflag nowarp
-bat_b02 mapflag nowarpto
-bat_b02 mapflag noreturn
-bat_b02 mapflag nobranch
-bat_b02 mapflag nopenalty
+// ============================================================================== +// BattleGround System - Flavius 2 +// ============================================================================== + +// Registration NPC's +// ********************************************************************* + +bat_room,57,97,4 script Registration::Fl2R_Guillaume 418,{ + end; +OnInit: + waitingroom "Battle Station 10 Players",10,"Flavius_BG2::OnGuillaumeJoin",1; + end; +OnEnterBG: + set $@FlaviusBG2_id1, waitingroom2bg("bat_b02",390,10,"Flavius_BG2::OnGuillaumeQuit",""); + end; +} + +bat_room,57,74,0 script Registration::Fl2R_Croix 414,{ + end; +OnInit: + waitingroom "Battle Station 10 Players",10,"Flavius_BG2::OnCroixJoin",1; + end; +OnEnterBG: + set $@FlaviusBG2_id2, waitingroom2bg("bat_b02",10,290,"Flavius_BG2::OnCroixQuit",""); + end; +} + +// Battleground Engine +// ********************************************************************* + +- script Flavius_BG2 -1,{ + end; + +OnInit: + disablenpc "Guillaume Vintenar#fl2"; + disablenpc "Croix Vintenar#fl2"; + disablenpc "Therapist in battle#fl21"; + disablenpc "Therapist in battle#fl22"; + end; + +OnGuillaumeQuit: +OnCroixQuit: + set BG_Delay_Tick, gettimetick(2) + 1200; + end; + +OnGuillaumeJoin: +OnCroixJoin: + if( $@FlaviusBG2 == 0 ) + donpcevent "Flavius_BG2::OnReadyCheck"; + end; + +OnReadyCheck: + if( $@FlaviusBG2 ) + end; + set .@Guillaume, getwaitingroomstate(0,"Fl2R_Guillaume"); + set .@Croix, getwaitingroomstate(0,"Fl2R_Croix"); + + if( .@Guillaume < 10 || .@Croix < 10 ) + { + mapannounce "bat_room","Battleground -- Flavius [80-99] G: " + .@Guillaume + "/10, C: " + .@Croix + "/10",1,0x808000; + end; + } + + // BG Variables + set $@FlaviusBG2, 1; + set $@FlaviusBG2_Victory, 0; + set .Guillaume_Score, 0; + set .Guillaume_Loss, 0; + set .Croix_Score, 0; + set .Croix_Loss, 0; + set .Match, 0; + // Prepare NPC + donpcevent "#gfl2_respawn::OnBGStart"; + donpcevent "#cfl2_respawn::OnBGStart"; + enablenpc "Therapist in battle#fl21"; + enablenpc "Therapist in battle#fl22"; + disablenpc "Guillaume Vintenar#fl2"; + disablenpc "Croix Vintenar#fl2"; + // Build and Warp Teams + donpcevent "Fl2R_Guillaume::OnEnterBG"; + donpcevent "Fl2R_Croix::OnEnterBG"; + announce "Battleground -- Flavius [80-99] has started!",0,0x808000; + initnpctimer; + // Start Match!! + +OnRoundStart: + sleep 2000; + if( $@FlaviusBG2 != 1 ) end; + + areapercentheal "bat_b02",382,2,397,17,100,100; + areapercentheal "bat_b02",2,282,17,297,100,100; + bg_warp $@FlaviusBG2_id1,"bat_b02",311,224; + bg_warp $@FlaviusBG2_id2,"bat_b02",87,75; + + sleep 2000; + if( $@FlaviusBG2 != 1 ) end; + + set .Match, .Match + 1; + // Crystal Spawn + set .Guillaume_Crystal, bg_monster($@FlaviusBG2_id1,"bat_b02",328,150,"Crystal Guillaume",1914,"Flavius_BG2::OnGuillaumeBreak"); + setwall "bat_b02",327,149,2,6,0,"gui_wall2-1"; + setwall "bat_b02",329,149,2,0,0,"gui_wall2-2"; + setwall "bat_b02",329,151,2,2,0,"gui_wall2-3"; + setwall "bat_b02",327,151,2,4,0,"gui_wall2-4"; + + set .Croix_Crystal, bg_monster($@FlaviusBG2_id2,"bat_b02",62,150,"Crystal Croix",1915,"Flavius_BG2::OnCroixBreak"); + setwall "bat_b02",61,149,2,6,0,"cro_wall2-1"; + setwall "bat_b02",63,149,2,0,0,"cro_wall2-2"; + setwall "bat_b02",63,151,2,2,0,"cro_wall2-3"; + setwall "bat_b02",61,151,2,4,0,"cro_wall2-4"; + + // Guardian Spawns + bg_monster $@FlaviusBG2_id1,"bat_b02",328,160,"Guillaume Guardian",1949,"Flavius_BG2::OnGuiGuardian"; + bg_monster $@FlaviusBG2_id1,"bat_b02",328,140,"Guillaume Guardian",1950,"Flavius_BG2::OnGuiGuardian"; + set .Guillaume_Guardian, 2; + bg_monster $@FlaviusBG2_id2,"bat_b02",62,160,"Croix Guardian",1949,"Flavius_BG2::OnCroGuardian"; + bg_monster $@FlaviusBG2_id2,"bat_b02",61,140,"Croix Guardian",1950,"Flavius_BG2::OnCroGuardian"; + set .Croix_Guardian, 2; + // Announces + mapannounce "bat_b02","The Battle of Flavius [ " + .Match + " ] Round has begun!!",1,0x808000; + end; + +OnRoundStop: + // Remove Monsters + killmonster "bat_b02","Flavius_BG2::OnGuiGuardian"; + killmonster "bat_b02","Flavius_BG2::OnCroGuardian"; + delwall "gui_wall2-1"; + delwall "gui_wall2-2"; + delwall "gui_wall2-3"; + delwall "gui_wall2-4"; + killmonster "bat_b02","Flavius_BG2::OnGuillaumeBreak"; + delwall "cro_wall2-1"; + delwall "cro_wall2-2"; + delwall "cro_wall2-3"; + delwall "cro_wall2-4"; + killmonster "bat_b02","Flavius_BG2::OnCroixBreak"; + end; + +OnGuiGuardian: + if( set(.Guillaume_Guardian, .Guillaume_Guardian - 1) <= 0 ) + { + delwall "gui_wall2-1"; + delwall "gui_wall2-2"; + delwall "gui_wall2-3"; + delwall "gui_wall2-4"; + mapannounce "bat_b02","The Guillaume Crystal is vulnerable to attack!",1,0x0000FF; + } + end; + +OnCroGuardian: + if( set(.Croix_Guardian, .Croix_Guardian - 1) <= 0 ) + { + delwall "cro_wall2-1"; + delwall "cro_wall2-2"; + delwall "cro_wall2-3"; + delwall "cro_wall2-4"; + mapannounce "bat_b02","The Croix Crystal is vulnerable to attack!",1,0xFF0000; + } + end; + +OnGuillaumeBreak: + donpcevent "Flavius_BG2::OnRoundStop"; + set .Guillaume_Loss, .Guillaume_Loss + 1; + if( set(.Croix_Score, .Croix_Score + 1) < 2 ) + { + bg_updatescore "bat_b02",.Guillaume_Score,.Croix_Score; + mapannounce "bat_b02","The Guillaume Crystal has been destroyed!",1,0x0000FF; + donpcevent "Flavius_BG2::OnRoundStart"; + } + else + { + bg_updatescore "bat_b02",.Guillaume_Score,.Croix_Score; + mapannounce "bat_b02","The Croix army has won the Battle of Flavius!",1,0xFF0000; + set $@FlaviusBG2_Victory, 2; + donpcevent "Flavius_BG2::OnMatchEnd"; + } + end; + +OnCroixBreak: + donpcevent "Flavius_BG2::OnRoundStop"; + set .Croix_Loss, .Croix_Loss + 1; + if( set(.Guillaume_Score, .Guillaume_Score + 1) < 2 ) + { + bg_updatescore "bat_b02",.Guillaume_Score,.Croix_Score; + mapannounce "bat_b02","The Croix Crystal has been destroyed!",1,0xFF0000; + donpcevent "Flavius_BG2::OnRoundStart"; + } + else + { + bg_updatescore "bat_b02",.Guillaume_Score,.Croix_Score; + mapannounce "bat_b02","The Guillaume army has won the Battle of Flavius!",1,0x0000FF; + set $@FlaviusBG2_Victory, 1; + donpcevent "Flavius_BG2::OnMatchEnd"; + } + end; + +OnTimer2400000: + mapannounce "bat_b02","Battle of Flavius will ends in 5 minutes",1,0x808000; + end; +OnTimer2640000: + mapannounce "bat_b02","Battle of Flavius will ends in 1 minute",1,0x808000; + end; + +OnTimer2700000: + if( .Croix_Score > .Guillaume_Score ) + { + mapannounce "bat_b02","The Croix army has won the Battle of Flavius!",1,0xFF0000; + set $@FlaviusBG2_Victory, 2; + } + else if( .Croix_Score < .Guillaume_Score ) + { + mapannounce "bat_b02","The Guillaume army has won the Battle of Flavius!",1,0x0000FF; + set $@FlaviusBG2_Victory, 1; + } + else + { + mapannounce "bat_b02","The Battle of Flavius is over. The time is out, this is a Tie",1,0x808000; + set $@FlaviusBG2_Victory, 3; + } + +OnMatchEnd: + set $@FlaviusBG2, 2; + stopnpctimer; + donpcevent "#gfl2_respawn::OnBGStop"; + donpcevent "#cfl2_respawn::OnBGStop"; + disablenpc "Therapist in battle#fl21"; + disablenpc "Therapist in battle#fl22"; + enablenpc "Guillaume Vintenar#fl2"; + enablenpc "Croix Vintenar#fl2"; + sleep 2000; + bg_warp $@FlaviusBG2_id1,"bat_b02",390,10; + bg_warp $@FlaviusBG2_id2,"bat_b02",10,290; + sleep 3000; + mapannounce "bat_b02","Battle of Flavius will close in 1 minute!",1,0x808000; + initnpctimer; + end; + +OnTimer30000: + if( $@FlaviusBG2 == 2 ) + mapannounce "bat_b02","Battle of Flavius will close in 30 seconds!",1,0x808000; + end; +OnTimer50000: + if( $@FlaviusBG2 == 2 ) + mapannounce "bat_b02","Battle of Flavius will close in 10 seconds!",1,0x808000; + end; + +OnTimer60000: + if( $@FlaviusBG2 != 2 ) + end; +OnReset: + stopnpctimer; + donpcevent "Flavius_BG2::OnRoundStop"; + set .Guillaume_Score, 0; + set .Guillaume_Crystal, 0; + set .Guillaume_Loss, 0; + set .Croix_Score, 0; + set .Croix_Crystal, 0; + set .Croix_Loss, 0; + set .Match, 0; + set $@FlaviusBG2_Victory, 0; + // NPC's + disablenpc "Guillaume Vintenar#fl2"; + disablenpc "Croix Vintenar#fl2"; + disablenpc "Therapist in battle#fl21"; + disablenpc "Therapist in battle#fl22"; + + if( $@FlaviusBG2_id1 ) { bg_destroy $@FlaviusBG2_id1; set $@FlaviusBG2_id1, 0; } + if( $@FlaviusBG2_id2 ) { bg_destroy $@FlaviusBG2_id2; set $@FlaviusBG2_id2, 0; } + sleep 1000; + mapwarp "bat_b02","bat_room",155,150; + sleep 2000; + maprespawnguildid "bat_b02",0,3; // Just in case someone else + sleep 2000; + bg_updatescore "bat_b02",0,0; + set $@FlaviusBG2, 0; + donpcevent "Flavius_BG2::OnReadyCheck"; + end; +} + +// Battleground rewards +// ********************************************************************* + +bat_b02,390,13,5 script Guillaume Vintenar#fl2 419,{ + if( $@FlaviusBG2_Victory ) + { + if( $@FlaviusBG2_Victory == Bat_Team ) + { // Victory + mes "[Swandery]"; + mes "Blessed Guillaume!!"; + mes "Let's enjoy our glorious victory!"; + mes "" + strcharinfo(0) + ", its a sign reflecting victory"; + close2; + set .@Reward, 9; + } + else + { // + 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; + set .@Reward, 3; + } + + set Flavius_BG_Tick, gettimetick(2) + 300; + getitem 7829, .@Reward; + bg_leave; + warp "bat_room",155,150; + end; + } + end; +} + +bat_b02,10,293,5 script Croix Vintenar#fl2 415,{ + if( $@FlaviusBG2_Victory ) + { + if( $@FlaviusBG2_Victory == Bat_Team ) + { // Victory + mes "[Swandery]"; + mes "Blessed Croax!!"; + mes "Let's enjoy our glorious victory!"; + mes "" + strcharinfo(0) + ", its a sign reflecting victory"; + close2; + set .@Reward, 9; + } + 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 can win the next."; + close2; + set .@Reward, 3; + } + + set Flavius_BG_Tick, gettimetick(2) + 300; + getitem 7829, .@Reward; + bg_leave; + warp "bat_room",155,150; + end; + } + end; +} + +// Battleground Therapist +// ********************************************************************* + +bat_b02,390,13,5 script Therapist in battle#fl22 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_b02,10,293,5 script Therapist in battle#fl21 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 Respawn +// ********************************************************************* + +bat_b02,390,10,0 script #gfl2_respawn 139,{ + end; + +OnBGStart: + initnpctimer; + end; + +OnBGStop: + stopnpctimer; + end; + +OnTimer24000: + misceffect 83; + end; + +OnTimer25000: + areapercentheal "bat_b02",382,2,397,17,100,100; + areawarp "bat_b02",382,2,397,17,"bat_b02",311,224; + initnpctimer; + end; +} + +bat_b02,10,290,0 script #cfl2_respawn 139,{ + end; + +OnBGStart: + initnpctimer; + end; + +OnBGStop: + stopnpctimer; + end; + +OnTimer24000: + misceffect 83; + end; + +OnTimer25000: + areapercentheal "bat_b02",2,282,17,297,100,100; + areawarp "bat_b02",2,282,17,297,"bat_b02",87,75; + initnpctimer; + end; +} + +// Flags +// ********************************************************************* + +bat_b02,304,231,1 duplicate(Guillaume camp#bat) Guillaume camp#bat32 973 +bat_b02,319,231,1 duplicate(Guillaume camp#bat) Guillaume camp#bat33 973 +bat_b02,304,218,1 duplicate(Guillaume camp#bat) Guillaume camp#bat34 973 +bat_b02,319,218,1 duplicate(Guillaume camp#bat) Guillaume camp#bat35 973 +bat_b02,304,231,1 duplicate(Guillaume camp#bat) Guillaume camp#bat36 973 +bat_b02,304,231,1 duplicate(Guillaume camp#bat) Guillaume camp#bat37 973 +bat_b02,335,142,1 duplicate(Guillaume camp#bat) Guillaume camp#bat38 973 +bat_b02,335,157,1 duplicate(Guillaume camp#bat) Guillaume camp#bat39 973 +bat_b02,390,16,1 duplicate(Guillaume camp#bat) Guillaume camp#bat40 973 +bat_b02,292,163,1 duplicate(Guillaume camp#bat) Guillaume camp#bat41 973 +bat_b02,292,136,1 duplicate(Guillaume camp#bat) Guillaume camp#bat42 973 +bat_b02,241,185,1 duplicate(Guillaume camp#bat) Guillaume camp#bat43 973 +bat_b02,247,179,1 duplicate(Guillaume camp#bat) Guillaume camp#bat44 973 + +bat_b02,96,81,1 duplicate(Croix camp#bat) Croix camp#bat30 974 +bat_b02,96,68,1 duplicate(Croix camp#bat) Croix camp#bat31 974 +bat_b02,79,81,1 duplicate(Croix camp#bat) Croix camp#bat32 974 +bat_b02,79,68,1 duplicate(Croix camp#bat) Croix camp#bat33 974 +bat_b02,96,81,1 duplicate(Croix camp#bat) Croix camp#bat34 974 +bat_b02,96,81,1 duplicate(Croix camp#bat) Croix camp#bat35 974 +bat_b02,59,164,1 duplicate(Croix camp#bat) Croix camp#bat36 974 +bat_b02,59,137,1 duplicate(Croix camp#bat) Croix camp#bat37 974 +bat_b02,10,296,1 duplicate(Croix camp#bat) Croix camp#bat38 974 +bat_b02,110,162,1 duplicate(Croix camp#bat) Croix camp#bat39 974 +bat_b02,110,137,1 duplicate(Croix camp#bat) Croix camp#bat40 974 +bat_b02,152,120,1 duplicate(Croix camp#bat) Croix camp#bat41 974 +bat_b02,158,114,1 duplicate(Croix camp#bat) Croix camp#bat42 974 + +// MapFlags +// ********************************************************************* + +bat_b02 mapflag battleground +bat_b02 mapflag nomemo +bat_b02 mapflag nosave SavePoint +bat_b02 mapflag noteleport +bat_b02 mapflag nowarp +bat_b02 mapflag nowarpto +bat_b02 mapflag noreturn +bat_b02 mapflag nobranch +bat_b02 mapflag nopenalty diff --git a/npc/battleground/bg_tierra_01.txt b/npc/battleground/bg_tierra_01.txt index ed1e65120..9d04512e6 100644 --- a/npc/battleground/bg_tierra_01.txt +++ b/npc/battleground/bg_tierra_01.txt @@ -1,488 +1,488 @@ -// ==============================================================================
-// BattleGround System - Tierra Valley 1
-// ==============================================================================
-
-// Registration NPC's
-// *********************************************************************
-
-bat_room,85,227,4 script Registration::TV1R_Guillaume 418,{
- end;
-OnInit:
- waitingroom "Battle Station 10 Players",10,"Tierra_BG1::OnGuillaumeJoin",1;
- end;
-OnEnterBG:
- set $@TierraBG1_id1, waitingroom2bg("bat_a01",50,374,"Tierra_BG1::OnGuillaumeQuit","");
- end;
-}
-
-bat_room,85,204,0 script Registration::TV1R_Croix 414,{
- end;
-OnInit:
- waitingroom "Battle Station 10 Players",10,"Tierra_BG1::OnCroixJoin",1;
- end;
-OnEnterBG:
- set $@TierraBG1_id2, waitingroom2bg("bat_a01",42,16,"Tierra_BG1::OnCroixQuit","");
- end;
-}
-
-// Battleground Engine
-// *********************************************************************
-
-- script Tierra_BG1 -1,{
- end;
-
-OnInit:
- disablenpc "Croix Vintenar#tv1";
- disablenpc "Guillaume Vintenar#tv1";
- disablenpc "Therapist in battle#tv11";
- disablenpc "Therapist in battle#tv12";
- end;
-
-OnGuillaumeQuit:
-OnCroixQuit:
- set BG_Delay_Tick, gettimetick(2) + 1200;
- end;
-
-OnGuillaumeJoin:
-OnCroixJoin:
- if( $@TierraBG1 == 0 )
- donpcevent "Tierra_BG1::OnReadyCheck";
- end;
-
-OnReadyCheck:
- if( $@TierraBG1 )
- end;
- set .@Guillaume, getwaitingroomstate(0,"TV1R_Guillaume");
- set .@Croix, getwaitingroomstate(0,"TV1R_Croix");
-
- if( .@Guillaume < 10 || .@Croix < 10 )
- {
- mapannounce "bat_room","Battleground -- Tierra Valley [80-99] G: " + .@Guillaume + "/10, C: " + .@Croix + "/10",1,0xFFA500;
- end;
- }
-
- set $@TierraBG1, 1;
- donpcevent "TV1R_Croix::OnEnterBG";
- donpcevent "TV1R_Guillaume::OnEnterBG";
- donpcevent "Guillaume_TV1B::OnBuild";
- donpcevent "Croix_TV1B::OnBuild";
- bg_monster $@TierraBG1_id1,"bat_a01",176,345,"Food Depot",1909,"Tierra_BG1::OnGuillaumeBreak";
- bg_monster $@TierraBG1_id2,"bat_a01",167,50,"Food Storage",1910,"Tierra_BG1::OnCroixBreak";
- bg_monster 0,"bat_a01",273,204,"Neutrality Flag",1911,"Tierra_BG1::OnNeutralBreak";
-
- set .Neutral_Base, 0;
- set $@TierraBG1_Victory, 0;
-
- set .Guardian_1, 0;
- set .Guardian_2, 0;
- set .Guardian_3, 0;
-
- enablenpc "Therapist in battle#tv11";
- enablenpc "Therapist in battle#tv12";
- disablenpc "Croix Vintenar#tv1";
- disablenpc "Guillaume Vintenar#tv1";
- // Respawner
- donpcevent "#gtv1_respawn::OnBGStart";
- donpcevent "#ctv1_respawn::OnBGStart";
- donpcevent "#ntv1_respawn::OnBGStart";
- // Warp Teams
- announce "Battleground -- Tierra Valley [80-99] has started!",0,0xFFA500;
- bg_warp $@TierraBG1_id1,"bat_a01",353,344;
- bg_warp $@TierraBG1_id2,"bat_a01",353,52;
- // Final Messages
- sleep 6000;
- mapannounce "bat_a01","Guillaume Vintenar Axl Rose : Let's attack to burn down Croix's food storage",1,0x0000FF;
- sleep 2000;
- mapannounce "bat_a01","Croix Vintenar Swandery : Master of Valhalla! Let us be gifted with unfailing faith and courage",1,0xFF0000;
-
- initnpctimer;
- end;
-
-OnNeutralBreak:
- if( getcharid(4) == $@TierraBG1_id1 )
- {
- mapannounce "bat_a01","Guillaume obtained a neurality banner, so they have an advantage.",1,0x0000FF;
- bg_team_setxy $@TierraBG1_id2,42,16;
- areawarp "bat_a01",52,208,61,217,"bat_a01",42,16;
- }
- else if( getcharid(4) == $@TierraBG1_id2 )
- {
- mapannounce "bat_a01","Croix obtained a neutrality banner, so they have an advantage.",1,0xFF0000;
- bg_team_setxy $@TierraBG1_id1,50,374;
- areawarp "bat_a01",52,208,61,217,"bat_a01",50,374;
- }
- else end;
-
- set .Neutral_Base, getcharid(4);
- bg_team_setxy .Neutral_Base,56,212;
-
- if( .Guardian_1 == 0 )
- set .Guardian_1, bg_monster(.Neutral_Base,"bat_a01",280,233,"Guardian",1949,"Tierra_BG1::OnGuardian1");
- else
- bg_monster_set_team .Guardian_1, .Neutral_Base;
-
- if( .Guardian_2 == 0 )
- set .Guardian_2, bg_monster(.Neutral_Base,"bat_a01",287,203,"Guardian",1950,"Tierra_BG1::OnGuardian2");
- else
- bg_monster_set_team .Guardian_2, .Neutral_Base;
-
- if( .Guardian_3 == 0 )
- set .Guardian_3, bg_monster(.Neutral_Base,"bat_a01",268,204,"Guardian",1949,"Tierra_BG1::OnGuardian3");
- else
- bg_monster_set_team .Guardian_3, .Neutral_Base;
-
- sleep 10000;
- if( $@TierraBG1 != 1 ) end;
-
- if( .Neutral_Base == $@TierraBG1_id1 )
- bg_monster .Neutral_Base,"bat_a01",273,204,"Guillaume Flag",1912,"Tierra_BG1::OnNeutralBreak";
- else if( .Neutral_Base == $@TierraBG1_id2 )
- bg_monster .Neutral_Base,"bat_a01",273,204,"Croix Flag",1913,"Tierra_BG1::OnNeutralBreak";
- end;
-
-OnGuardian1: set .Guardian_1, 0; end;
-OnGuardian2: set .Guardian_2, 0; end;
-OnGuardian3: set .Guardian_3, 0; end;
-
-OnGuillaumeBreak:
- set $@TierraBG1_Victory, 2;
- mapannounce "bat_a01","Croix Vintenar Swandery: We destroyed Guillaume's food storehause. We won that! Wow!",1,0xFF0000;
- donpcevent "Tierra_BG1::OnStop";
- end;
-
-OnCroixBreak:
- set $@TierraBG1_Victory, 1;
- mapannounce "bat_a01","Guillaume Vintenar Axl Rose: We destroyed Croix's food storehause. We won that! Wow!",1,0x0000FF;
- donpcevent "Tierra_BG1::OnStop";
- end;
-
-OnTimer2400000:
- mapannounce "bat_a01","Battle of Tierra Gorge will ends in 5 minutes",1,0xFFA500;
- end;
-OnTimer2640000:
- mapannounce "bat_a01","Battle of Tierra Gorge will ends in 1 minute",1,0xFFA500;
- end;
-
-OnTimer2700000:
- set $@TierraBG1_Victory, 3; // Draw Game
- mapannounce "bat_a01","Battle of Tierra Gorge is over. The time is out, this is a Tie",1,0xFFA500;
- donpcevent "Tierra_BG1::OnStop";
- end;
-
-OnStop:
- set $@TierraBG1, 2;
- disablenpc "Therapist in battle#tv11";
- disablenpc "Therapist in battle#tv12";
- donpcevent "#gtv1_respawn::OnBGStop";
- donpcevent "#ctv1_respawn::OnBGStop";
- donpcevent "#ntv1_respawn::OnBGStop";
- enablenpc "Croix Vintenar#tv1";
- enablenpc "Guillaume Vintenar#tv1";
- killmonster "bat_a01","Tierra_BG1::OnGuillaumeBreak";
- killmonster "bat_a01","Tierra_BG1::OnCroixBreak";
- killmonster "bat_a01","Tierra_BG1::OnNeutralBreak";
- killmonster "bat_a01","Tierra_BG1::OnGuardian1";
- killmonster "bat_a01","Tierra_BG1::OnGuardian2";
- killmonster "bat_a01","Tierra_BG1::OnGuardian3";
- stopnpctimer;
- sleep 3000;
- bg_warp $@TierraBG1_id1,"bat_a01",50,374;
- bg_warp $@TierraBG1_id2,"bat_a01",42,16;
- sleep 3000;
- mapannounce "bat_a01","Battle of Tierra Gorge will close in 1 minute!",1,0xFFA500;
- initnpctimer;
- end;
-
-OnTimer30000:
- if( $@TierraBG1 == 2 )
- mapannounce "bat_a01","Battle of Tierra Valley will close in 30 seconds!",1,0xFFA500;
- end;
-OnTimer50000:
- if( $@TierraBG1 == 2 )
- mapannounce "bat_a01","Battle of Tierra Valley will close in 10 seconds!",1,0xFFA500;
- end;
-
-OnTimer60000:
- if( $@TierraBG1 != 2 )
- end;
-OnReset:
- stopnpctimer;
- set .Neutral_Base, 0;
- disablenpc "Croix Vintenar#tv1";
- disablenpc "Guillaume Vintenar#tv1";
- disablenpc "Therapist in battle#tv11";
- disablenpc "Therapist in battle#tv12";
- donpcevent "#gtv1_respawn::OnBGStop";
- donpcevent "#ctv1_respawn::OnBGStop";
- donpcevent "#ntv1_respawn::OnBGStop";
-
- killmonster "bat_a01","Tierra_BG1::OnGuillaumeBreak";
- killmonster "bat_a01","Tierra_BG1::OnCroixBreak";
- killmonster "bat_a01","Tierra_BG1::OnNeutralBreak";
- killmonster "bat_a01","Tierra_BG1::OnGuardian1";
- killmonster "bat_a01","Tierra_BG1::OnGuardian2";
- killmonster "bat_a01","Tierra_BG1::OnGuardian3";
- donpcevent "Guillaume_TV1B::OnDestroy";
- donpcevent "Croix_TV1B::OnDestroy";
-
- 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; }
- sleep 1000;
- mapwarp "bat_a01","bat_room",155,150;
- sleep 2000;
- maprespawnguildid "bat_a01",0,3; // Just in case someone else
- sleep 2000;
- set $@TierraBG1, 0;
- donpcevent "Tierra_BG1::OnReadyCheck"; // Maybe a game is ready to start
- end;
-}
-
-// MapFlags
-// *********************************************************************
-
-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
-
-// Other Flags
-// *********************************************************************
-
-bat_a01,148,85,1 duplicate(Croix camp#bat) Croix camp#bat10 974
-bat_a01,155,85,1 duplicate(Croix camp#bat) Croix camp#bat11 974
-bat_a01,357,75,1 duplicate(Croix camp#bat) Croix camp#bat12 974
-bat_a01,348,74,1 duplicate(Croix camp#bat) Croix camp#bat13 974
-bat_a01,199,49,1 duplicate(Croix camp#bat) Croix camp#bat14 974
-bat_a01,168,16,1 duplicate(Croix camp#bat) Croix camp#bat15 974
-bat_a01,138,12,1 duplicate(Croix camp#bat) Croix camp#bat16 974
-bat_a01,108,35,1 duplicate(Croix camp#bat) Croix camp#bat17 974
-bat_a01,164,308,1 duplicate(Guillaume camp#bat) Guillaume camp#bat10 973
-bat_a01,157,308,1 duplicate(Guillaume camp#bat) Guillaume camp#bat11 973
-bat_a01,359,327,1 duplicate(Guillaume camp#bat) Guillaume camp#bat12 973
-bat_a01,350,326,1 duplicate(Guillaume camp#bat) Guillaume camp#bat13 973
-bat_a01,209,344,1 duplicate(Guillaume camp#bat) Guillaume camp#bat14 973
-bat_a01,173,380,1 duplicate(Guillaume camp#bat) Guillaume camp#bat15 973
-bat_a01,150,380,1 duplicate(Guillaume camp#bat) Guillaume camp#bat16 973
-bat_a01,118,357,1 duplicate(Guillaume camp#bat) Guillaume camp#bat17 973
-bat_a01,119,336,1 duplicate(Guillaume camp#bat) Guillaume camp#bat18 973
-
-// Barricades
-// *********************************************************************
-
-- script Guillaume_TV1B -1,{
- end;
-
-OnBuild:
- for( set .@i, 0; .@i < 16; set .@i, .@i + 1 )
- bg_monster 0,"bat_a01",170+.@i,130,"Barricade",1906,"Guillaume_TV1B::OnWall";
-
- setwall "bat_a01",170,130,16,6,1,"bat_a01_g1";
- set .MyMobCount,16;
- end;
-
-OnDestroy:
- killmonster "bat_a01","Guillaume_TV1B::OnWall";
- delwall "bat_a01_g1";
- set .MyMobCount,0;
- end;
-
-OnWall:
- if( set(.MyMobCount,.MyMobCount - 1) < 1 )
- {
- delwall "bat_a01_g1";
- mapannounce "bat_a01","South Gate : The Gate has been Destroy!!",1,0xFFA500;
- }
- end;
-}
-
-- script Croix_TV1B -1,{
- end;
-
-OnBuild:
- for( set .@i, 0; .@i < 16; set .@i, .@i + 1 )
- bg_monster 0,"bat_a01",186+.@i,266,"Barricade",1906,"Croix_TV1B::OnWall";
-
- setwall "bat_a01",186,266,16,6,1,"bat_a01_c1";
- set .MyMobCount,16;
- end;
-
-OnDestroy:
- killmonster "bat_a01","Croix_TV1B::OnWall";
- delwall "bat_a01_c1";
- set .MyMobCount,0;
- end;
-
-OnWall:
- if( set(.MyMobCount,.MyMobCount - 1) < 1 )
- {
- delwall "bat_a01_c1";
- mapannounce "bat_a01","North Gate : A Gate has been Destroy!!",1,0xFFA500;
- }
- end;
-}
-
-// Battleground rewards
-// *********************************************************************
-
-bat_a01,45,19,3 script Croix Vintenar#tv1 415,{
- if( $@TierraBG1_Victory )
- {
- if( $@TierraBG1_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;
- }
-
- set Tierra_BG_Tick, gettimetick(2) + 300;
- getitem 7828, .@Reward;
- bg_leave;
- warp "bat_room",155,150;
- end;
- }
- end;
-}
-
-bat_a01,53,377,3 script Guillaume Vintenar#tv1 419,{
- if( $@TierraBG1_Victory )
- {
- if( $@TierraBG1_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;
- }
-
- set Tierra_BG_Tick, gettimetick(2) + 300;
- getitem 7828, .@Reward;
- bg_leave;
- warp "bat_room",155,150;
- end;
- }
- end;
-}
-
-// Battleground Therapist
-// *********************************************************************
-
-bat_a01,60,216,3 script Ghost#tv13 950,{
- mes "[Ghost in valley]";
- mes "Boo...Boo...";
- specialeffect2 312;
- close;
-}
-
-bat_a01,53,377,3 script Therapist in battle#tv12 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_a01,45,18,3 script Therapist in battle#tv11 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 Respawn
-// *********************************************************************
-
-bat_a01,57,213,0 script #ntv1_respawn 139,{
- end;
-
-OnBGStart:
- initnpctimer;
- end;
-
-OnBGStop:
- stopnpctimer;
- end;
-
-OnTimer19000:
- misceffect 83;
- end;
-
-OnTimer20000:
- areapercentheal "bat_a01",52,208,61,217,100,100;
- areawarp "bat_a01",52,208,61,217,"bat_a01",301,208;
- initnpctimer;
- end;
-}
-
-bat_a01,50,374,0 script #gtv1_respawn 139,{
- end;
-
-OnBGStart:
- initnpctimer;
- end;
-
-OnBGStop:
- stopnpctimer;
- end;
-
-OnTimer24000:
- misceffect 83;
- end;
-
-OnTimer25000:
- areapercentheal "bat_a01",46,370,54,378,100,100;
- areawarp "bat_a01",46,370,54,378,"bat_a01",354,340;
- initnpctimer;
- end;
-}
-
-bat_a01,42,16,0 script #ctv1_respawn 139,{
- end;
-
-OnBGStart:
- initnpctimer;
- end;
-
-OnBGStop:
- stopnpctimer;
- end;
-
-OnTimer24000:
- misceffect 83;
- end;
-
-OnTimer25000:
- areapercentheal "bat_a01",38,12,47,21,100,100;
- areawarp "bat_a01",38,12,47,21,"bat_a01",354,57;
- initnpctimer;
- end;
-}
+// ============================================================================== +// BattleGround System - Tierra Valley 1 +// ============================================================================== + +// Registration NPC's +// ********************************************************************* + +bat_room,85,227,4 script Registration::TV1R_Guillaume 418,{ + end; +OnInit: + waitingroom "Battle Station 10 Players",10,"Tierra_BG1::OnGuillaumeJoin",1; + end; +OnEnterBG: + set $@TierraBG1_id1, waitingroom2bg("bat_a01",50,374,"Tierra_BG1::OnGuillaumeQuit",""); + end; +} + +bat_room,85,204,0 script Registration::TV1R_Croix 414,{ + end; +OnInit: + waitingroom "Battle Station 10 Players",10,"Tierra_BG1::OnCroixJoin",1; + end; +OnEnterBG: + set $@TierraBG1_id2, waitingroom2bg("bat_a01",42,16,"Tierra_BG1::OnCroixQuit",""); + end; +} + +// Battleground Engine +// ********************************************************************* + +- script Tierra_BG1 -1,{ + end; + +OnInit: + disablenpc "Croix Vintenar#tv1"; + disablenpc "Guillaume Vintenar#tv1"; + disablenpc "Therapist in battle#tv11"; + disablenpc "Therapist in battle#tv12"; + end; + +OnGuillaumeQuit: +OnCroixQuit: + set BG_Delay_Tick, gettimetick(2) + 1200; + end; + +OnGuillaumeJoin: +OnCroixJoin: + if( $@TierraBG1 == 0 ) + donpcevent "Tierra_BG1::OnReadyCheck"; + end; + +OnReadyCheck: + if( $@TierraBG1 ) + end; + set .@Guillaume, getwaitingroomstate(0,"TV1R_Guillaume"); + set .@Croix, getwaitingroomstate(0,"TV1R_Croix"); + + if( .@Guillaume < 10 || .@Croix < 10 ) + { + mapannounce "bat_room","Battleground -- Tierra Valley [80-99] G: " + .@Guillaume + "/10, C: " + .@Croix + "/10",1,0xFFA500; + end; + } + + set $@TierraBG1, 1; + donpcevent "TV1R_Croix::OnEnterBG"; + donpcevent "TV1R_Guillaume::OnEnterBG"; + donpcevent "Guillaume_TV1B::OnBuild"; + donpcevent "Croix_TV1B::OnBuild"; + bg_monster $@TierraBG1_id1,"bat_a01",176,345,"Food Depot",1909,"Tierra_BG1::OnGuillaumeBreak"; + bg_monster $@TierraBG1_id2,"bat_a01",167,50,"Food Storage",1910,"Tierra_BG1::OnCroixBreak"; + bg_monster 0,"bat_a01",273,204,"Neutrality Flag",1911,"Tierra_BG1::OnNeutralBreak"; + + set .Neutral_Base, 0; + set $@TierraBG1_Victory, 0; + + set .Guardian_1, 0; + set .Guardian_2, 0; + set .Guardian_3, 0; + + enablenpc "Therapist in battle#tv11"; + enablenpc "Therapist in battle#tv12"; + disablenpc "Croix Vintenar#tv1"; + disablenpc "Guillaume Vintenar#tv1"; + // Respawner + donpcevent "#gtv1_respawn::OnBGStart"; + donpcevent "#ctv1_respawn::OnBGStart"; + donpcevent "#ntv1_respawn::OnBGStart"; + // Warp Teams + announce "Battleground -- Tierra Valley [80-99] has started!",0,0xFFA500; + bg_warp $@TierraBG1_id1,"bat_a01",353,344; + bg_warp $@TierraBG1_id2,"bat_a01",353,52; + // Final Messages + sleep 6000; + mapannounce "bat_a01","Guillaume Vintenar Axl Rose : Let's attack to burn down Croix's food storage",1,0x0000FF; + sleep 2000; + mapannounce "bat_a01","Croix Vintenar Swandery : Master of Valhalla! Let us be gifted with unfailing faith and courage",1,0xFF0000; + + initnpctimer; + end; + +OnNeutralBreak: + if( getcharid(4) == $@TierraBG1_id1 ) + { + mapannounce "bat_a01","Guillaume obtained a neurality banner, so they have an advantage.",1,0x0000FF; + bg_team_setxy $@TierraBG1_id2,42,16; + areawarp "bat_a01",52,208,61,217,"bat_a01",42,16; + } + else if( getcharid(4) == $@TierraBG1_id2 ) + { + mapannounce "bat_a01","Croix obtained a neutrality banner, so they have an advantage.",1,0xFF0000; + bg_team_setxy $@TierraBG1_id1,50,374; + areawarp "bat_a01",52,208,61,217,"bat_a01",50,374; + } + else end; + + set .Neutral_Base, getcharid(4); + bg_team_setxy .Neutral_Base,56,212; + + if( .Guardian_1 == 0 ) + set .Guardian_1, bg_monster(.Neutral_Base,"bat_a01",280,233,"Guardian",1949,"Tierra_BG1::OnGuardian1"); + else + bg_monster_set_team .Guardian_1, .Neutral_Base; + + if( .Guardian_2 == 0 ) + set .Guardian_2, bg_monster(.Neutral_Base,"bat_a01",287,203,"Guardian",1950,"Tierra_BG1::OnGuardian2"); + else + bg_monster_set_team .Guardian_2, .Neutral_Base; + + if( .Guardian_3 == 0 ) + set .Guardian_3, bg_monster(.Neutral_Base,"bat_a01",268,204,"Guardian",1949,"Tierra_BG1::OnGuardian3"); + else + bg_monster_set_team .Guardian_3, .Neutral_Base; + + sleep 10000; + if( $@TierraBG1 != 1 ) end; + + if( .Neutral_Base == $@TierraBG1_id1 ) + bg_monster .Neutral_Base,"bat_a01",273,204,"Guillaume Flag",1912,"Tierra_BG1::OnNeutralBreak"; + else if( .Neutral_Base == $@TierraBG1_id2 ) + bg_monster .Neutral_Base,"bat_a01",273,204,"Croix Flag",1913,"Tierra_BG1::OnNeutralBreak"; + end; + +OnGuardian1: set .Guardian_1, 0; end; +OnGuardian2: set .Guardian_2, 0; end; +OnGuardian3: set .Guardian_3, 0; end; + +OnGuillaumeBreak: + set $@TierraBG1_Victory, 2; + mapannounce "bat_a01","Croix Vintenar Swandery: We destroyed Guillaume's food storehause. We won that! Wow!",1,0xFF0000; + donpcevent "Tierra_BG1::OnStop"; + end; + +OnCroixBreak: + set $@TierraBG1_Victory, 1; + mapannounce "bat_a01","Guillaume Vintenar Axl Rose: We destroyed Croix's food storehause. We won that! Wow!",1,0x0000FF; + donpcevent "Tierra_BG1::OnStop"; + end; + +OnTimer2400000: + mapannounce "bat_a01","Battle of Tierra Gorge will ends in 5 minutes",1,0xFFA500; + end; +OnTimer2640000: + mapannounce "bat_a01","Battle of Tierra Gorge will ends in 1 minute",1,0xFFA500; + end; + +OnTimer2700000: + set $@TierraBG1_Victory, 3; // Draw Game + mapannounce "bat_a01","Battle of Tierra Gorge is over. The time is out, this is a Tie",1,0xFFA500; + donpcevent "Tierra_BG1::OnStop"; + end; + +OnStop: + set $@TierraBG1, 2; + disablenpc "Therapist in battle#tv11"; + disablenpc "Therapist in battle#tv12"; + donpcevent "#gtv1_respawn::OnBGStop"; + donpcevent "#ctv1_respawn::OnBGStop"; + donpcevent "#ntv1_respawn::OnBGStop"; + enablenpc "Croix Vintenar#tv1"; + enablenpc "Guillaume Vintenar#tv1"; + killmonster "bat_a01","Tierra_BG1::OnGuillaumeBreak"; + killmonster "bat_a01","Tierra_BG1::OnCroixBreak"; + killmonster "bat_a01","Tierra_BG1::OnNeutralBreak"; + killmonster "bat_a01","Tierra_BG1::OnGuardian1"; + killmonster "bat_a01","Tierra_BG1::OnGuardian2"; + killmonster "bat_a01","Tierra_BG1::OnGuardian3"; + stopnpctimer; + sleep 3000; + bg_warp $@TierraBG1_id1,"bat_a01",50,374; + bg_warp $@TierraBG1_id2,"bat_a01",42,16; + sleep 3000; + mapannounce "bat_a01","Battle of Tierra Gorge will close in 1 minute!",1,0xFFA500; + initnpctimer; + end; + +OnTimer30000: + if( $@TierraBG1 == 2 ) + mapannounce "bat_a01","Battle of Tierra Valley will close in 30 seconds!",1,0xFFA500; + end; +OnTimer50000: + if( $@TierraBG1 == 2 ) + mapannounce "bat_a01","Battle of Tierra Valley will close in 10 seconds!",1,0xFFA500; + end; + +OnTimer60000: + if( $@TierraBG1 != 2 ) + end; +OnReset: + stopnpctimer; + set .Neutral_Base, 0; + disablenpc "Croix Vintenar#tv1"; + disablenpc "Guillaume Vintenar#tv1"; + disablenpc "Therapist in battle#tv11"; + disablenpc "Therapist in battle#tv12"; + donpcevent "#gtv1_respawn::OnBGStop"; + donpcevent "#ctv1_respawn::OnBGStop"; + donpcevent "#ntv1_respawn::OnBGStop"; + + killmonster "bat_a01","Tierra_BG1::OnGuillaumeBreak"; + killmonster "bat_a01","Tierra_BG1::OnCroixBreak"; + killmonster "bat_a01","Tierra_BG1::OnNeutralBreak"; + killmonster "bat_a01","Tierra_BG1::OnGuardian1"; + killmonster "bat_a01","Tierra_BG1::OnGuardian2"; + killmonster "bat_a01","Tierra_BG1::OnGuardian3"; + donpcevent "Guillaume_TV1B::OnDestroy"; + donpcevent "Croix_TV1B::OnDestroy"; + + 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; } + sleep 1000; + mapwarp "bat_a01","bat_room",155,150; + sleep 2000; + maprespawnguildid "bat_a01",0,3; // Just in case someone else + sleep 2000; + set $@TierraBG1, 0; + donpcevent "Tierra_BG1::OnReadyCheck"; // Maybe a game is ready to start + end; +} + +// MapFlags +// ********************************************************************* + +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 + +// Other Flags +// ********************************************************************* + +bat_a01,148,85,1 duplicate(Croix camp#bat) Croix camp#bat10 974 +bat_a01,155,85,1 duplicate(Croix camp#bat) Croix camp#bat11 974 +bat_a01,357,75,1 duplicate(Croix camp#bat) Croix camp#bat12 974 +bat_a01,348,74,1 duplicate(Croix camp#bat) Croix camp#bat13 974 +bat_a01,199,49,1 duplicate(Croix camp#bat) Croix camp#bat14 974 +bat_a01,168,16,1 duplicate(Croix camp#bat) Croix camp#bat15 974 +bat_a01,138,12,1 duplicate(Croix camp#bat) Croix camp#bat16 974 +bat_a01,108,35,1 duplicate(Croix camp#bat) Croix camp#bat17 974 +bat_a01,164,308,1 duplicate(Guillaume camp#bat) Guillaume camp#bat10 973 +bat_a01,157,308,1 duplicate(Guillaume camp#bat) Guillaume camp#bat11 973 +bat_a01,359,327,1 duplicate(Guillaume camp#bat) Guillaume camp#bat12 973 +bat_a01,350,326,1 duplicate(Guillaume camp#bat) Guillaume camp#bat13 973 +bat_a01,209,344,1 duplicate(Guillaume camp#bat) Guillaume camp#bat14 973 +bat_a01,173,380,1 duplicate(Guillaume camp#bat) Guillaume camp#bat15 973 +bat_a01,150,380,1 duplicate(Guillaume camp#bat) Guillaume camp#bat16 973 +bat_a01,118,357,1 duplicate(Guillaume camp#bat) Guillaume camp#bat17 973 +bat_a01,119,336,1 duplicate(Guillaume camp#bat) Guillaume camp#bat18 973 + +// Barricades +// ********************************************************************* + +- script Guillaume_TV1B -1,{ + end; + +OnBuild: + for( set .@i, 0; .@i < 16; set .@i, .@i + 1 ) + bg_monster 0,"bat_a01",170+.@i,130,"Barricade",1906,"Guillaume_TV1B::OnWall"; + + setwall "bat_a01",170,130,16,6,1,"bat_a01_g1"; + set .MyMobCount,16; + end; + +OnDestroy: + killmonster "bat_a01","Guillaume_TV1B::OnWall"; + delwall "bat_a01_g1"; + set .MyMobCount,0; + end; + +OnWall: + if( set(.MyMobCount,.MyMobCount - 1) < 1 ) + { + delwall "bat_a01_g1"; + mapannounce "bat_a01","South Gate : The Gate has been Destroy!!",1,0xFFA500; + } + end; +} + +- script Croix_TV1B -1,{ + end; + +OnBuild: + for( set .@i, 0; .@i < 16; set .@i, .@i + 1 ) + bg_monster 0,"bat_a01",186+.@i,266,"Barricade",1906,"Croix_TV1B::OnWall"; + + setwall "bat_a01",186,266,16,6,1,"bat_a01_c1"; + set .MyMobCount,16; + end; + +OnDestroy: + killmonster "bat_a01","Croix_TV1B::OnWall"; + delwall "bat_a01_c1"; + set .MyMobCount,0; + end; + +OnWall: + if( set(.MyMobCount,.MyMobCount - 1) < 1 ) + { + delwall "bat_a01_c1"; + mapannounce "bat_a01","North Gate : A Gate has been Destroy!!",1,0xFFA500; + } + end; +} + +// Battleground rewards +// ********************************************************************* + +bat_a01,45,19,3 script Croix Vintenar#tv1 415,{ + if( $@TierraBG1_Victory ) + { + if( $@TierraBG1_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; + } + + set Tierra_BG_Tick, gettimetick(2) + 300; + getitem 7828, .@Reward; + bg_leave; + warp "bat_room",155,150; + end; + } + end; +} + +bat_a01,53,377,3 script Guillaume Vintenar#tv1 419,{ + if( $@TierraBG1_Victory ) + { + if( $@TierraBG1_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; + } + + set Tierra_BG_Tick, gettimetick(2) + 300; + getitem 7828, .@Reward; + bg_leave; + warp "bat_room",155,150; + end; + } + end; +} + +// Battleground Therapist +// ********************************************************************* + +bat_a01,60,216,3 script Ghost#tv13 950,{ + mes "[Ghost in valley]"; + mes "Boo...Boo..."; + specialeffect2 312; + close; +} + +bat_a01,53,377,3 script Therapist in battle#tv12 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_a01,45,18,3 script Therapist in battle#tv11 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 Respawn +// ********************************************************************* + +bat_a01,57,213,0 script #ntv1_respawn 139,{ + end; + +OnBGStart: + initnpctimer; + end; + +OnBGStop: + stopnpctimer; + end; + +OnTimer19000: + misceffect 83; + end; + +OnTimer20000: + areapercentheal "bat_a01",52,208,61,217,100,100; + areawarp "bat_a01",52,208,61,217,"bat_a01",301,208; + initnpctimer; + end; +} + +bat_a01,50,374,0 script #gtv1_respawn 139,{ + end; + +OnBGStart: + initnpctimer; + end; + +OnBGStop: + stopnpctimer; + end; + +OnTimer24000: + misceffect 83; + end; + +OnTimer25000: + areapercentheal "bat_a01",46,370,54,378,100,100; + areawarp "bat_a01",46,370,54,378,"bat_a01",354,340; + initnpctimer; + end; +} + +bat_a01,42,16,0 script #ctv1_respawn 139,{ + end; + +OnBGStart: + initnpctimer; + end; + +OnBGStop: + stopnpctimer; + end; + +OnTimer24000: + misceffect 83; + end; + +OnTimer25000: + areapercentheal "bat_a01",38,12,47,21,100,100; + areawarp "bat_a01",38,12,47,21,"bat_a01",354,57; + initnpctimer; + end; +} diff --git a/npc/battleground/bg_tierra_02.txt b/npc/battleground/bg_tierra_02.txt index a69f65e2b..9cc78a4cc 100644 --- a/npc/battleground/bg_tierra_02.txt +++ b/npc/battleground/bg_tierra_02.txt @@ -1,488 +1,488 @@ -// ==============================================================================
-// BattleGround System - Tierra Valley 2
-// ==============================================================================
-
-// Registration NPC's
-// *********************************************************************
-
-bat_room,85,97,4 script Registration::TV2R_Guillaume 418,{
- end;
-OnInit:
- waitingroom "Battle Station 10 Players",10,"Tierra_BG2::OnGuillaumeJoin",1;
- end;
-OnEnterBG:
- set $@TierraBG2_id1, waitingroom2bg("bat_a02",50,374,"Tierra_BG2::OnGuillaumeQuit","");
- end;
-}
-
-bat_room,85,74,0 script Registration::TV2R_Croix 414,{
- end;
-OnInit:
- waitingroom "Battle Station 10 Players",10,"Tierra_BG2::OnCroixJoin",1;
- end;
-OnEnterBG:
- set $@TierraBG2_id2, waitingroom2bg("bat_a02",42,16,"Tierra_BG2::OnCroixQuit","");
- end;
-}
-
-// Battleground Engine
-// *********************************************************************
-
-- script Tierra_BG2 -1,{
- end;
-
-OnInit:
- disablenpc "Croix Vintenar#tv2";
- disablenpc "Guillaume Vintenar#tv2";
- disablenpc "Therapist in battle#tv21";
- disablenpc "Therapist in battle#tv22";
- end;
-
-OnGuillaumeQuit:
-OnCroixQuit:
- set BG_Delay_Tick, gettimetick(2) + 1200;
- end;
-
-OnGuillaumeJoin:
-OnCroixJoin:
- if( $@TierraBG2 == 0 )
- donpcevent "Tierra_BG2::OnReadyCheck";
- end;
-
-OnReadyCheck:
- if( $@TierraBG2 )
- end;
- set .@Guillaume, getwaitingroomstate(0,"TV2R_Guillaume");
- set .@Croix, getwaitingroomstate(0,"TV2R_Croix");
-
- if( .@Guillaume < 10 || .@Croix < 10 )
- {
- mapannounce "bat_room","Battleground -- Tierra Valley [80-99] G: " + .@Guillaume + "/10, C: " + .@Croix + "/10",1,0xF4A460;
- end;
- }
-
- set $@TierraBG2, 1;
- donpcevent "TV2R_Croix::OnEnterBG";
- donpcevent "TV2R_Guillaume::OnEnterBG";
- donpcevent "Guillaume_TV2B::OnBuild";
- donpcevent "Croix_TV2B::OnBuild";
- bg_monster $@TierraBG2_id1,"bat_a02",176,345,"Food Depot",1909,"Tierra_BG2::OnGuillaumeBreak";
- bg_monster $@TierraBG2_id2,"bat_a02",167,50,"Food Storage",1910,"Tierra_BG2::OnCroixBreak";
- bg_monster 0,"bat_a02",273,204,"Neutrality Flag",1911,"Tierra_BG2::OnNeutralBreak";
-
- set .Neutral_Base, 0;
- set $@TierraBG2_Victory, 0;
-
- set .Guardian_1, 0;
- set .Guardian_2, 0;
- set .Guardian_3, 0;
-
- enablenpc "Therapist in battle#tv21";
- enablenpc "Therapist in battle#tv22";
- disablenpc "Croix Vintenar#tv2";
- disablenpc "Guillaume Vintenar#tv2";
- // Respawner
- donpcevent "#gtv2_respawn::OnBGStart";
- donpcevent "#ctv2_respawn::OnBGStart";
- donpcevent "#ntv2_respawn::OnBGStart";
- // Warp Teams
- announce "Battleground -- Tierra Valley [80-99] has started!",0,0xF4A460;
- bg_warp $@TierraBG2_id1,"bat_a02",353,344;
- bg_warp $@TierraBG2_id2,"bat_a02",353,52;
- // Final Messages
- sleep 6000;
- mapannounce "bat_a02","Guillaume Vintenar Axl Rose : Let's attack to burn down Croix's food storage",1,0x0000FF;
- sleep 2000;
- mapannounce "bat_a02","Croix Vintenar Swandery : Master of Valhalla! Let us be gifted with unfailing faith and courage",1,0xFF0000;
-
- initnpctimer;
- end;
-
-OnNeutralBreak:
- if( getcharid(4) == $@TierraBG2_id1 )
- {
- mapannounce "bat_a02","Guillaume obtained a neurality banner, so they have an advantage.",1,0x0000FF;
- bg_team_setxy $@TierraBG2_id2,42,16;
- areawarp "bat_a02",52,208,61,217,"bat_a02",42,16;
- }
- else if( getcharid(4) == $@TierraBG2_id2 )
- {
- mapannounce "bat_a02","Croix obtained a neutrality banner, so they have an advantage.",1,0xFF0000;
- bg_team_setxy $@TierraBG2_id1,50,374;
- areawarp "bat_a02",52,208,61,217,"bat_a02",50,374;
- }
- else end;
-
- set .Neutral_Base, getcharid(4);
- bg_team_setxy .Neutral_Base,56,212;
-
- if( .Guardian_1 == 0 )
- set .Guardian_1, bg_monster(.Neutral_Base,"bat_a02",280,233,"Guardian",1949,"Tierra_BG2::OnGuardian1");
- else
- bg_monster_set_team .Guardian_1, .Neutral_Base;
-
- if( .Guardian_2 == 0 )
- set .Guardian_2, bg_monster(.Neutral_Base,"bat_a02",287,203,"Guardian",1950,"Tierra_BG2::OnGuardian2");
- else
- bg_monster_set_team .Guardian_2, .Neutral_Base;
-
- if( .Guardian_3 == 0 )
- set .Guardian_3, bg_monster(.Neutral_Base,"bat_a02",268,204,"Guardian",1949,"Tierra_BG2::OnGuardian3");
- else
- bg_monster_set_team .Guardian_3, .Neutral_Base;
-
- sleep 10000;
- if( $@TierraBG2 != 1 ) end;
-
- if( .Neutral_Base == $@TierraBG2_id1 )
- bg_monster .Neutral_Base,"bat_a02",273,204,"Guillaume Flag",1912,"Tierra_BG2::OnNeutralBreak";
- else if( .Neutral_Base == $@TierraBG2_id2 )
- bg_monster .Neutral_Base,"bat_a02",273,204,"Croix Flag",1913,"Tierra_BG2::OnNeutralBreak";
- end;
-
-OnGuardian1: set .Guardian_1, 0; end;
-OnGuardian2: set .Guardian_2, 0; end;
-OnGuardian3: set .Guardian_3, 0; end;
-
-OnGuillaumeBreak:
- set $@TierraBG2_Victory, 2;
- mapannounce "bat_a02","Croix Vintenar Swandery: We destroyed Guillaume's food storehause. We won that! Wow!",1,0xFF0000;
- donpcevent "Tierra_BG2::OnStop";
- end;
-
-OnCroixBreak:
- set $@TierraBG2_Victory, 1;
- mapannounce "bat_a02","Guillaume Vintenar Axl Rose: We destroyed Croix's food storehause. We won that! Wow!",1,0x0000FF;
- donpcevent "Tierra_BG2::OnStop";
- end;
-
-OnTimer2400000:
- mapannounce "bat_a02","Battle of Tierra Gorge will ends in 5 minutes",1,0xF4A460;
- end;
-OnTimer2640000:
- mapannounce "bat_a02","Battle of Tierra Gorge will ends in 1 minute",1,0xF4A460;
- end;
-
-OnTimer2700000:
- set $@TierraBG2_Victory, 3; // Draw Game
- mapannounce "bat_a02","Battle of Tierra Gorge is over. The time is out, this is a Tie",1,0xF4A460;
- donpcevent "Tierra_BG2::OnStop";
- end;
-
-OnStop:
- set $@TierraBG2, 2;
- disablenpc "Therapist in battle#tv21";
- disablenpc "Therapist in battle#tv22";
- donpcevent "#gtv2_respawn::OnBGStop";
- donpcevent "#ctv2_respawn::OnBGStop";
- donpcevent "#ntv2_respawn::OnBGStop";
- enablenpc "Croix Vintenar#tv2";
- enablenpc "Guillaume Vintenar#tv2";
- killmonster "bat_a02","Tierra_BG2::OnGuillaumeBreak";
- killmonster "bat_a02","Tierra_BG2::OnCroixBreak";
- killmonster "bat_a02","Tierra_BG2::OnNeutralBreak";
- killmonster "bat_a02","Tierra_BG2::OnGuardian1";
- killmonster "bat_a02","Tierra_BG2::OnGuardian2";
- killmonster "bat_a02","Tierra_BG2::OnGuardian3";
- stopnpctimer;
- sleep 3000;
- bg_warp $@TierraBG2_id1,"bat_a02",50,374;
- bg_warp $@TierraBG2_id2,"bat_a02",42,16;
- sleep 3000;
- mapannounce "bat_a02","Battle of Tierra Gorge will close in 1 minute!",1,0xF4A460;
- initnpctimer;
- end;
-
-OnTimer30000:
- if( $@TierraBG2 == 2 )
- mapannounce "bat_a02","Battle of Tierra Valley will close in 30 seconds!",1,0xF4A460;
- end;
-OnTimer50000:
- if( $@TierraBG2 == 2 )
- mapannounce "bat_a02","Battle of Tierra Valley will close in 10 seconds!",1,0xF4A460;
- end;
-
-OnTimer60000:
- if( $@TierraBG2 != 2 )
- end;
-OnReset:
- stopnpctimer;
- set .Neutral_Base, 0;
- disablenpc "Croix Vintenar#tv2";
- disablenpc "Guillaume Vintenar#tv2";
- disablenpc "Therapist in battle#tv21";
- disablenpc "Therapist in battle#tv22";
- donpcevent "#gtv2_respawn::OnBGStop";
- donpcevent "#gtv2_respawn::OnBGStop";
- donpcevent "#ctv2_respawn::OnBGStop";
-
- killmonster "bat_a02","Tierra_BG2::OnGuillaumeBreak";
- killmonster "bat_a02","Tierra_BG2::OnCroixBreak";
- killmonster "bat_a02","Tierra_BG2::OnNeutralBreak";
- killmonster "bat_a02","Tierra_BG2::OnGuardian1";
- killmonster "bat_a02","Tierra_BG2::OnGuardian2";
- killmonster "bat_a02","Tierra_BG2::OnGuardian3";
- donpcevent "Guillaume_TV2B::OnDestroy";
- donpcevent "Croix_TV2B::OnDestroy";
-
- 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; }
- sleep 1000;
- mapwarp "bat_a02","bat_room",155,150;
- sleep 2000;
- maprespawnguildid "bat_a02",0,3; // Just in case someone else
- sleep 2000;
- set $@TierraBG2, 0;
- donpcevent "Tierra_BG2::OnReadyCheck"; // Maybe a game is ready to start
- end;
-}
-
-// MapFlags
-// *********************************************************************
-
-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
-
-// Other Flags
-// *********************************************************************
-
-bat_a02,148,85,1 duplicate(Croix camp#bat) Croix camp#bat22 974
-bat_a02,155,85,1 duplicate(Croix camp#bat) Croix camp#bat23 974
-bat_a02,357,75,1 duplicate(Croix camp#bat) Croix camp#bat24 974
-bat_a02,348,74,1 duplicate(Croix camp#bat) Croix camp#bat25 974
-bat_a02,199,49,1 duplicate(Croix camp#bat) Croix camp#bat26 974
-bat_a02,168,16,1 duplicate(Croix camp#bat) Croix camp#bat27 974
-bat_a02,138,12,1 duplicate(Croix camp#bat) Croix camp#bat28 974
-bat_a02,108,35,1 duplicate(Croix camp#bat) Croix camp#bat29 974
-bat_a02,164,308,1 duplicate(Guillaume camp#bat) Guillaume camp#bat23 973
-bat_a02,157,308,1 duplicate(Guillaume camp#bat) Guillaume camp#bat24 973
-bat_a02,359,327,1 duplicate(Guillaume camp#bat) Guillaume camp#bat25 973
-bat_a02,350,326,1 duplicate(Guillaume camp#bat) Guillaume camp#bat26 973
-bat_a02,209,344,1 duplicate(Guillaume camp#bat) Guillaume camp#bat27 973
-bat_a02,173,380,1 duplicate(Guillaume camp#bat) Guillaume camp#bat28 973
-bat_a02,150,380,1 duplicate(Guillaume camp#bat) Guillaume camp#bat29 973
-bat_a02,118,357,1 duplicate(Guillaume camp#bat) Guillaume camp#bat30 973
-bat_a02,119,336,1 duplicate(Guillaume camp#bat) Guillaume camp#bat31 973
-
-// Barricades
-// *********************************************************************
-
-- script Guillaume_TV2B -1,{
- end;
-
-OnBuild:
- for( set .@i, 0; .@i < 16; set .@i, .@i + 1 )
- bg_monster 0,"bat_a02",170+.@i,130,"Barricade",1906,"Guillaume_TV2B::OnWall";
-
- setwall "bat_a02",170,130,16,6,1,"bat_a02_g1";
- set .MyMobCount,16;
- end;
-
-OnDestroy:
- killmonster "bat_a02","Guillaume_TV2B::OnWall";
- delwall "bat_a02_g1";
- set .MyMobCount,0;
- end;
-
-OnWall:
- if( set(.MyMobCount,.MyMobCount - 1) < 1 )
- {
- delwall "bat_a02_g1";
- mapannounce "bat_a02","South Gate : The Gate has been Destroy!!",1,0xF4A460;
- }
- end;
-}
-
-- script Croix_TV2B -1,{
- end;
-
-OnBuild:
- for( set .@i, 0; .@i < 16; set .@i, .@i + 1 )
- bg_monster 0,"bat_a02",186+.@i,266,"Barricade",1906,"Croix_TV2B::OnWall";
-
- setwall "bat_a02",186,266,16,6,1,"bat_a02_c1";
- set .MyMobCount,16;
- end;
-
-OnDestroy:
- killmonster "bat_a02","Croix_TV2B::OnWall";
- delwall "bat_a02_c1";
- set .MyMobCount,0;
- end;
-
-OnWall:
- if( set(.MyMobCount,.MyMobCount - 1) < 1 )
- {
- delwall "bat_a02_c1";
- mapannounce "bat_a02","North Gate : A Gate has been Destroy!!",1,0xF4A460;
- }
- end;
-}
-
-// Battleground rewards
-// *********************************************************************
-
-bat_a02,45,19,3 script Croix Vintenar#tv2 415,{
- if( $@TierraBG2_Victory )
- {
- if( $@TierraBG2_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;
- }
-
- set Tierra_BG_Tick, gettimetick(2) + 300;
- getitem 7828, .@Reward;
- bg_leave;
- warp "bat_room",155,150;
- end;
- }
- end;
-}
-
-bat_a02,53,377,3 script Guillaume Vintenar#tv2 419,{
- if( $@TierraBG2_Victory )
- {
- if( $@TierraBG2_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;
- }
-
- set Tierra_BG_Tick, gettimetick(2) + 300;
- getitem 7828, .@Reward;
- bg_leave;
- warp "bat_room",155,150;
- end;
- }
- end;
-}
-
-// Battleground Therapist
-// *********************************************************************
-
-bat_a02,60,216,3 script Ghost#tv23 950,{
- mes "[Ghost in valley]";
- mes "Boo...Boo...";
- specialeffect2 312;
- close;
-}
-
-bat_a02,53,377,3 script Therapist in battle#tv22 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_a02,45,18,3 script Therapist in battle#tv21 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 Respawn
-// *********************************************************************
-
-bat_a02,57,213,0 script #ntv2_respawn 139,{
- end;
-
-OnBGStart:
- initnpctimer;
- end;
-
-OnBGStop:
- stopnpctimer;
- end;
-
-OnTimer19000:
- misceffect 83;
- end;
-
-OnTimer20000:
- areapercentheal "bat_a02",52,208,61,217,100,100;
- areawarp "bat_a02",52,208,61,217,"bat_a02",301,208;
- initnpctimer;
- end;
-}
-
-bat_a02,50,374,0 script #gtv2_respawn 139,{
- end;
-
-OnBGStart:
- initnpctimer;
- end;
-
-OnBGStop:
- stopnpctimer;
- end;
-
-OnTimer24000:
- misceffect 83;
- end;
-
-OnTimer25000:
- areapercentheal "bat_a02",46,370,54,378,100,100;
- areawarp "bat_a02",46,370,54,378,"bat_a02",354,340;
- initnpctimer;
- end;
-}
-
-bat_a02,42,16,0 script #ctv2_respawn 139,{
- end;
-
-OnBGStart:
- initnpctimer;
- end;
-
-OnBGStop:
- stopnpctimer;
- end;
-
-OnTimer24000:
- misceffect 83;
- end;
-
-OnTimer25000:
- areapercentheal "bat_a02",38,12,47,21,100,100;
- areawarp "bat_a02",38,12,47,21,"bat_a02",354,57;
- initnpctimer;
- end;
-}
+// ============================================================================== +// BattleGround System - Tierra Valley 2 +// ============================================================================== + +// Registration NPC's +// ********************************************************************* + +bat_room,85,97,4 script Registration::TV2R_Guillaume 418,{ + end; +OnInit: + waitingroom "Battle Station 10 Players",10,"Tierra_BG2::OnGuillaumeJoin",1; + end; +OnEnterBG: + set $@TierraBG2_id1, waitingroom2bg("bat_a02",50,374,"Tierra_BG2::OnGuillaumeQuit",""); + end; +} + +bat_room,85,74,0 script Registration::TV2R_Croix 414,{ + end; +OnInit: + waitingroom "Battle Station 10 Players",10,"Tierra_BG2::OnCroixJoin",1; + end; +OnEnterBG: + set $@TierraBG2_id2, waitingroom2bg("bat_a02",42,16,"Tierra_BG2::OnCroixQuit",""); + end; +} + +// Battleground Engine +// ********************************************************************* + +- script Tierra_BG2 -1,{ + end; + +OnInit: + disablenpc "Croix Vintenar#tv2"; + disablenpc "Guillaume Vintenar#tv2"; + disablenpc "Therapist in battle#tv21"; + disablenpc "Therapist in battle#tv22"; + end; + +OnGuillaumeQuit: +OnCroixQuit: + set BG_Delay_Tick, gettimetick(2) + 1200; + end; + +OnGuillaumeJoin: +OnCroixJoin: + if( $@TierraBG2 == 0 ) + donpcevent "Tierra_BG2::OnReadyCheck"; + end; + +OnReadyCheck: + if( $@TierraBG2 ) + end; + set .@Guillaume, getwaitingroomstate(0,"TV2R_Guillaume"); + set .@Croix, getwaitingroomstate(0,"TV2R_Croix"); + + if( .@Guillaume < 10 || .@Croix < 10 ) + { + mapannounce "bat_room","Battleground -- Tierra Valley [80-99] G: " + .@Guillaume + "/10, C: " + .@Croix + "/10",1,0xF4A460; + end; + } + + set $@TierraBG2, 1; + donpcevent "TV2R_Croix::OnEnterBG"; + donpcevent "TV2R_Guillaume::OnEnterBG"; + donpcevent "Guillaume_TV2B::OnBuild"; + donpcevent "Croix_TV2B::OnBuild"; + bg_monster $@TierraBG2_id1,"bat_a02",176,345,"Food Depot",1909,"Tierra_BG2::OnGuillaumeBreak"; + bg_monster $@TierraBG2_id2,"bat_a02",167,50,"Food Storage",1910,"Tierra_BG2::OnCroixBreak"; + bg_monster 0,"bat_a02",273,204,"Neutrality Flag",1911,"Tierra_BG2::OnNeutralBreak"; + + set .Neutral_Base, 0; + set $@TierraBG2_Victory, 0; + + set .Guardian_1, 0; + set .Guardian_2, 0; + set .Guardian_3, 0; + + enablenpc "Therapist in battle#tv21"; + enablenpc "Therapist in battle#tv22"; + disablenpc "Croix Vintenar#tv2"; + disablenpc "Guillaume Vintenar#tv2"; + // Respawner + donpcevent "#gtv2_respawn::OnBGStart"; + donpcevent "#ctv2_respawn::OnBGStart"; + donpcevent "#ntv2_respawn::OnBGStart"; + // Warp Teams + announce "Battleground -- Tierra Valley [80-99] has started!",0,0xF4A460; + bg_warp $@TierraBG2_id1,"bat_a02",353,344; + bg_warp $@TierraBG2_id2,"bat_a02",353,52; + // Final Messages + sleep 6000; + mapannounce "bat_a02","Guillaume Vintenar Axl Rose : Let's attack to burn down Croix's food storage",1,0x0000FF; + sleep 2000; + mapannounce "bat_a02","Croix Vintenar Swandery : Master of Valhalla! Let us be gifted with unfailing faith and courage",1,0xFF0000; + + initnpctimer; + end; + +OnNeutralBreak: + if( getcharid(4) == $@TierraBG2_id1 ) + { + mapannounce "bat_a02","Guillaume obtained a neurality banner, so they have an advantage.",1,0x0000FF; + bg_team_setxy $@TierraBG2_id2,42,16; + areawarp "bat_a02",52,208,61,217,"bat_a02",42,16; + } + else if( getcharid(4) == $@TierraBG2_id2 ) + { + mapannounce "bat_a02","Croix obtained a neutrality banner, so they have an advantage.",1,0xFF0000; + bg_team_setxy $@TierraBG2_id1,50,374; + areawarp "bat_a02",52,208,61,217,"bat_a02",50,374; + } + else end; + + set .Neutral_Base, getcharid(4); + bg_team_setxy .Neutral_Base,56,212; + + if( .Guardian_1 == 0 ) + set .Guardian_1, bg_monster(.Neutral_Base,"bat_a02",280,233,"Guardian",1949,"Tierra_BG2::OnGuardian1"); + else + bg_monster_set_team .Guardian_1, .Neutral_Base; + + if( .Guardian_2 == 0 ) + set .Guardian_2, bg_monster(.Neutral_Base,"bat_a02",287,203,"Guardian",1950,"Tierra_BG2::OnGuardian2"); + else + bg_monster_set_team .Guardian_2, .Neutral_Base; + + if( .Guardian_3 == 0 ) + set .Guardian_3, bg_monster(.Neutral_Base,"bat_a02",268,204,"Guardian",1949,"Tierra_BG2::OnGuardian3"); + else + bg_monster_set_team .Guardian_3, .Neutral_Base; + + sleep 10000; + if( $@TierraBG2 != 1 ) end; + + if( .Neutral_Base == $@TierraBG2_id1 ) + bg_monster .Neutral_Base,"bat_a02",273,204,"Guillaume Flag",1912,"Tierra_BG2::OnNeutralBreak"; + else if( .Neutral_Base == $@TierraBG2_id2 ) + bg_monster .Neutral_Base,"bat_a02",273,204,"Croix Flag",1913,"Tierra_BG2::OnNeutralBreak"; + end; + +OnGuardian1: set .Guardian_1, 0; end; +OnGuardian2: set .Guardian_2, 0; end; +OnGuardian3: set .Guardian_3, 0; end; + +OnGuillaumeBreak: + set $@TierraBG2_Victory, 2; + mapannounce "bat_a02","Croix Vintenar Swandery: We destroyed Guillaume's food storehause. We won that! Wow!",1,0xFF0000; + donpcevent "Tierra_BG2::OnStop"; + end; + +OnCroixBreak: + set $@TierraBG2_Victory, 1; + mapannounce "bat_a02","Guillaume Vintenar Axl Rose: We destroyed Croix's food storehause. We won that! Wow!",1,0x0000FF; + donpcevent "Tierra_BG2::OnStop"; + end; + +OnTimer2400000: + mapannounce "bat_a02","Battle of Tierra Gorge will ends in 5 minutes",1,0xF4A460; + end; +OnTimer2640000: + mapannounce "bat_a02","Battle of Tierra Gorge will ends in 1 minute",1,0xF4A460; + end; + +OnTimer2700000: + set $@TierraBG2_Victory, 3; // Draw Game + mapannounce "bat_a02","Battle of Tierra Gorge is over. The time is out, this is a Tie",1,0xF4A460; + donpcevent "Tierra_BG2::OnStop"; + end; + +OnStop: + set $@TierraBG2, 2; + disablenpc "Therapist in battle#tv21"; + disablenpc "Therapist in battle#tv22"; + donpcevent "#gtv2_respawn::OnBGStop"; + donpcevent "#ctv2_respawn::OnBGStop"; + donpcevent "#ntv2_respawn::OnBGStop"; + enablenpc "Croix Vintenar#tv2"; + enablenpc "Guillaume Vintenar#tv2"; + killmonster "bat_a02","Tierra_BG2::OnGuillaumeBreak"; + killmonster "bat_a02","Tierra_BG2::OnCroixBreak"; + killmonster "bat_a02","Tierra_BG2::OnNeutralBreak"; + killmonster "bat_a02","Tierra_BG2::OnGuardian1"; + killmonster "bat_a02","Tierra_BG2::OnGuardian2"; + killmonster "bat_a02","Tierra_BG2::OnGuardian3"; + stopnpctimer; + sleep 3000; + bg_warp $@TierraBG2_id1,"bat_a02",50,374; + bg_warp $@TierraBG2_id2,"bat_a02",42,16; + sleep 3000; + mapannounce "bat_a02","Battle of Tierra Gorge will close in 1 minute!",1,0xF4A460; + initnpctimer; + end; + +OnTimer30000: + if( $@TierraBG2 == 2 ) + mapannounce "bat_a02","Battle of Tierra Valley will close in 30 seconds!",1,0xF4A460; + end; +OnTimer50000: + if( $@TierraBG2 == 2 ) + mapannounce "bat_a02","Battle of Tierra Valley will close in 10 seconds!",1,0xF4A460; + end; + +OnTimer60000: + if( $@TierraBG2 != 2 ) + end; +OnReset: + stopnpctimer; + set .Neutral_Base, 0; + disablenpc "Croix Vintenar#tv2"; + disablenpc "Guillaume Vintenar#tv2"; + disablenpc "Therapist in battle#tv21"; + disablenpc "Therapist in battle#tv22"; + donpcevent "#gtv2_respawn::OnBGStop"; + donpcevent "#gtv2_respawn::OnBGStop"; + donpcevent "#ctv2_respawn::OnBGStop"; + + killmonster "bat_a02","Tierra_BG2::OnGuillaumeBreak"; + killmonster "bat_a02","Tierra_BG2::OnCroixBreak"; + killmonster "bat_a02","Tierra_BG2::OnNeutralBreak"; + killmonster "bat_a02","Tierra_BG2::OnGuardian1"; + killmonster "bat_a02","Tierra_BG2::OnGuardian2"; + killmonster "bat_a02","Tierra_BG2::OnGuardian3"; + donpcevent "Guillaume_TV2B::OnDestroy"; + donpcevent "Croix_TV2B::OnDestroy"; + + 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; } + sleep 1000; + mapwarp "bat_a02","bat_room",155,150; + sleep 2000; + maprespawnguildid "bat_a02",0,3; // Just in case someone else + sleep 2000; + set $@TierraBG2, 0; + donpcevent "Tierra_BG2::OnReadyCheck"; // Maybe a game is ready to start + end; +} + +// MapFlags +// ********************************************************************* + +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 + +// Other Flags +// ********************************************************************* + +bat_a02,148,85,1 duplicate(Croix camp#bat) Croix camp#bat22 974 +bat_a02,155,85,1 duplicate(Croix camp#bat) Croix camp#bat23 974 +bat_a02,357,75,1 duplicate(Croix camp#bat) Croix camp#bat24 974 +bat_a02,348,74,1 duplicate(Croix camp#bat) Croix camp#bat25 974 +bat_a02,199,49,1 duplicate(Croix camp#bat) Croix camp#bat26 974 +bat_a02,168,16,1 duplicate(Croix camp#bat) Croix camp#bat27 974 +bat_a02,138,12,1 duplicate(Croix camp#bat) Croix camp#bat28 974 +bat_a02,108,35,1 duplicate(Croix camp#bat) Croix camp#bat29 974 +bat_a02,164,308,1 duplicate(Guillaume camp#bat) Guillaume camp#bat23 973 +bat_a02,157,308,1 duplicate(Guillaume camp#bat) Guillaume camp#bat24 973 +bat_a02,359,327,1 duplicate(Guillaume camp#bat) Guillaume camp#bat25 973 +bat_a02,350,326,1 duplicate(Guillaume camp#bat) Guillaume camp#bat26 973 +bat_a02,209,344,1 duplicate(Guillaume camp#bat) Guillaume camp#bat27 973 +bat_a02,173,380,1 duplicate(Guillaume camp#bat) Guillaume camp#bat28 973 +bat_a02,150,380,1 duplicate(Guillaume camp#bat) Guillaume camp#bat29 973 +bat_a02,118,357,1 duplicate(Guillaume camp#bat) Guillaume camp#bat30 973 +bat_a02,119,336,1 duplicate(Guillaume camp#bat) Guillaume camp#bat31 973 + +// Barricades +// ********************************************************************* + +- script Guillaume_TV2B -1,{ + end; + +OnBuild: + for( set .@i, 0; .@i < 16; set .@i, .@i + 1 ) + bg_monster 0,"bat_a02",170+.@i,130,"Barricade",1906,"Guillaume_TV2B::OnWall"; + + setwall "bat_a02",170,130,16,6,1,"bat_a02_g1"; + set .MyMobCount,16; + end; + +OnDestroy: + killmonster "bat_a02","Guillaume_TV2B::OnWall"; + delwall "bat_a02_g1"; + set .MyMobCount,0; + end; + +OnWall: + if( set(.MyMobCount,.MyMobCount - 1) < 1 ) + { + delwall "bat_a02_g1"; + mapannounce "bat_a02","South Gate : The Gate has been Destroy!!",1,0xF4A460; + } + end; +} + +- script Croix_TV2B -1,{ + end; + +OnBuild: + for( set .@i, 0; .@i < 16; set .@i, .@i + 1 ) + bg_monster 0,"bat_a02",186+.@i,266,"Barricade",1906,"Croix_TV2B::OnWall"; + + setwall "bat_a02",186,266,16,6,1,"bat_a02_c1"; + set .MyMobCount,16; + end; + +OnDestroy: + killmonster "bat_a02","Croix_TV2B::OnWall"; + delwall "bat_a02_c1"; + set .MyMobCount,0; + end; + +OnWall: + if( set(.MyMobCount,.MyMobCount - 1) < 1 ) + { + delwall "bat_a02_c1"; + mapannounce "bat_a02","North Gate : A Gate has been Destroy!!",1,0xF4A460; + } + end; +} + +// Battleground rewards +// ********************************************************************* + +bat_a02,45,19,3 script Croix Vintenar#tv2 415,{ + if( $@TierraBG2_Victory ) + { + if( $@TierraBG2_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; + } + + set Tierra_BG_Tick, gettimetick(2) + 300; + getitem 7828, .@Reward; + bg_leave; + warp "bat_room",155,150; + end; + } + end; +} + +bat_a02,53,377,3 script Guillaume Vintenar#tv2 419,{ + if( $@TierraBG2_Victory ) + { + if( $@TierraBG2_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; + } + + set Tierra_BG_Tick, gettimetick(2) + 300; + getitem 7828, .@Reward; + bg_leave; + warp "bat_room",155,150; + end; + } + end; +} + +// Battleground Therapist +// ********************************************************************* + +bat_a02,60,216,3 script Ghost#tv23 950,{ + mes "[Ghost in valley]"; + mes "Boo...Boo..."; + specialeffect2 312; + close; +} + +bat_a02,53,377,3 script Therapist in battle#tv22 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_a02,45,18,3 script Therapist in battle#tv21 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 Respawn +// ********************************************************************* + +bat_a02,57,213,0 script #ntv2_respawn 139,{ + end; + +OnBGStart: + initnpctimer; + end; + +OnBGStop: + stopnpctimer; + end; + +OnTimer19000: + misceffect 83; + end; + +OnTimer20000: + areapercentheal "bat_a02",52,208,61,217,100,100; + areawarp "bat_a02",52,208,61,217,"bat_a02",301,208; + initnpctimer; + end; +} + +bat_a02,50,374,0 script #gtv2_respawn 139,{ + end; + +OnBGStart: + initnpctimer; + end; + +OnBGStop: + stopnpctimer; + end; + +OnTimer24000: + misceffect 83; + end; + +OnTimer25000: + areapercentheal "bat_a02",46,370,54,378,100,100; + areawarp "bat_a02",46,370,54,378,"bat_a02",354,340; + initnpctimer; + end; +} + +bat_a02,42,16,0 script #ctv2_respawn 139,{ + end; + +OnBGStart: + initnpctimer; + end; + +OnBGStop: + stopnpctimer; + end; + +OnTimer24000: + misceffect 83; + end; + +OnTimer25000: + areapercentheal "bat_a02",38,12,47,21,100,100; + areawarp "bat_a02",38,12,47,21,"bat_a02",354,57; + initnpctimer; + end; +} |