From b1ca3ed2ab319fa5a81e24cad92fa2c9801e8806 Mon Sep 17 00:00:00 2001 From: L0ne_W0lf Date: Wed, 11 Aug 2010 18:17:26 +0000 Subject: * Documented Battleground commands with as much information as I've got. * Another rather large overhaul of the battlegrounds. - in bg_common.txt, stripped out several more NPCs, split them off. - Most of the NPCs in bg_common.txt are now official Aegis versions. - Completely rewrote Tierra Gorge for the most part, from ground up. - Moved old Tierra Valley battlegrounds to /custom/battleground. - Added Tierra scripts, Flavius, and bg_common to scripts_athena. - Tierra, KvM, and bg_common scripts are now enabled by default. - To use custom Flavius, you must enable /flavius/flavius_enter.txt - * TIERRA GORGE AND KVM BOTH REQUIRE TESTING * git-svn-id: https://rathena.svn.sourceforge.net/svnroot/rathena/trunk@14373 54d463be-8e91-2dee-dedb-b68131a5f0ec --- npc/Changelog.txt | 10 + npc/battleground/bg_common.txt | 931 ++++++++-------------------- npc/battleground/bg_tierra_01.txt | 488 --------------- npc/battleground/bg_tierra_02.txt | 488 --------------- npc/battleground/flavius/flavius_enter.txt | 374 +++++++++++ npc/battleground/kvm/kvm01.txt | 2 + npc/battleground/kvm/kvm02.txt | 2 + npc/battleground/kvm/kvm03.txt | 2 + npc/battleground/kvm/kvm_enter.txt | 2 +- npc/battleground/tierra/tierra01.txt | 953 +++++++++++++++++++++++++++++ npc/battleground/tierra/tierra02.txt | 951 ++++++++++++++++++++++++++++ npc/battleground/tierra/tierra_enter.txt | 382 ++++++++++++ npc/custom/battleground/bg_tierra_01.txt | 488 +++++++++++++++ npc/custom/battleground/bg_tierra_02.txt | 488 +++++++++++++++ npc/scripts_athena.conf | 19 +- npc/scripts_custom.conf | 5 +- 16 files changed, 3910 insertions(+), 1675 deletions(-) delete mode 100644 npc/battleground/bg_tierra_01.txt delete mode 100644 npc/battleground/bg_tierra_02.txt create mode 100644 npc/battleground/flavius/flavius_enter.txt create mode 100644 npc/battleground/tierra/tierra01.txt create mode 100644 npc/battleground/tierra/tierra02.txt create mode 100644 npc/battleground/tierra/tierra_enter.txt create mode 100644 npc/custom/battleground/bg_tierra_01.txt create mode 100644 npc/custom/battleground/bg_tierra_02.txt (limited to 'npc') diff --git a/npc/Changelog.txt b/npc/Changelog.txt index b8b441b74..d6cc8a1ec 100644 --- a/npc/Changelog.txt +++ b/npc/Changelog.txt @@ -1,5 +1,15 @@ Date Added ====== +2010/08/11 + * Rev. 14369 Another rather large overhaul of the battlegrounds. [L0ne_W0lf] + - in bg_common.txt, stripped out several more NPCs, split them off. + - Most of the NPCs in bg_common.txt are now official Aegis versions. + - Completely rewrote Tierra Gorge for the most part, from ground up. + - Moved old Tierra Valley battlegrounds to /custom/battleground. + - Added Tierra scripts, Flavius, and bg_common to scripts_athena. + - Tierra, KvM, and bg_common scripts are now enabled by default. + - To use custom Flavius, you must enable /flavius/flavius_enter.txt + - * TIERRA GORGE AND KVM BOTH REQUIRE TESTING * 2010/07/29 * Rev. 14369 A rather large overhaul of the battlegrounds. [L0ne_W0lf] - in bg_common.txt, stripped out KvM npcs, fixed coordinates. diff --git a/npc/battleground/bg_common.txt b/npc/battleground/bg_common.txt index 3c6ce01a6..df3dbaf41 100644 --- a/npc/battleground/bg_common.txt +++ b/npc/battleground/bg_common.txt @@ -11,136 +11,264 @@ bat_room mapflag nobranch bat_room mapflag nopenalty bat_room mapflag noteleport -// BattleGround Warper - Entrance -// ********************************************************************* - -payon,189,104,3 script Maroll Battle Recruiter::BatRecruit 728,{ - mes "[Maroll Battle Recruiter]"; - mes "Good day, adventurer."; - mes "I'm a knight from a far country called Maroll Kingdom."; - next; - mes "[Maroll Battle Recruiter]"; - mes "The two princes of the kingdom are now battling for the throne of Maroll, and are in need of experienced soldiers like you. How would you like to lend your power to one of the princes in the Maroll Kingdom?"; - next; - if( select("Join:Don't Join") == 2 ) - { - mes "[Maroll Battle Recruiter]"; - mes "I'll always be stationed here for more soldiers. Feel free to come back whenever you're interested."; - close; - } - mes "[Maroll Battle Recruiter]"; - mes "May the war god bless you."; - close2; - warp "bat_room",155,150; - end; -} - -prontera,123,83,5 duplicate(BatRecruit) Maroll Battle Recruiter::BatRecruit2 728 -rachel,149,138,5 duplicate(BatRecruit) Maroll Battle Recruiter::BatRecruit3 728 -moc_ruins,75,162,5 duplicate(BatRecruit) Maroll Battle Recruiter::BatRecruit4 728 -aldebaran,146,109,5 duplicate(BatRecruit) Maroll Battle Recruiter::BatRecruit5 728 -lighthalzen,153,86,5 duplicate(BatRecruit) Maroll Battle Recruiter::BatRecruit6 728 - -// BattleGround Warper - Exit -// ********************************************************************* +// Generals +//============================================================ +bat_room,161,158,3 script Gen. Guillaume's Aide#01 419,{ end; } +bat_room,161,160,3 script Gen. Guillaume's Aide#03 419,{ end; } -bat_room,148,150,4 script Teleporter#bat 124,{ - mes "[Teleporter]"; - mes "Do you wish to leave the battlefield? Use my service to return to town."; +bat_room,160,141,3 script Prince Croix 416,{ + cutin "bat_crua1",2; + mes "[Prince Croix]"; + mes "Wise adventurer, why don't you lend us your power for victory?"; next; - if( select("Leave:Don't Leave") == 2 ) - { - mes "[Teleporter]"; - mes "I'll be here whenever you're in need of my service."; - close; + switch(select("What's the reason for the Battle?:Tell me about General Guillaume")) { + case 1: + cutin "bat_crua2",2; + mes "[Prince Croix]"; + mes "Maroll's great king, Marcel Marollo VII, is very sick lately."; + mes "His Majesty has declared that he will be leaving the future of Maroll to me or the 3rd prince, General Guillaume."; + next; + mes "[Prince Croix]"; + mes "General Guillaume may have an advantage in this battle as he is the great general of Maroll, but that doesn't automatically mean he'll win."; + mes "I want to win this battle so that I can bring prosperity to the people of Maroll. They've suffered enough from war..."; + next; + switch(select("Yes, I want to join you.:End Conversation")) { + case 1: + cutin "bat_crua1",2; + mes "[Prince Croix]"; + mes "Thank you so much. I feel like I can win with the help of adventurers like you."; + mes "Now, please go downstairs and join your comrades in sharpening their skills to fight the enemy!"; + break; + case 2: + mes "[Prince Croix]"; + mes "For Maroll!"; + break; + } + break; + case 2: + cutin "bat_crua2",2; + mes "[Prince Croix]"; + mes "The 3rd Prince Guillaume is the great general of Maroll."; + mes "It's a waste of time to explain to you how great a leader or warlord he is, since he commands the great military power of Maroll."; + next; + mes "[Prince Croix]"; + mes "Unfortunately, there's something he and his followers are unaware of:"; + mes "Do the people of Maroll really want them to spend so much money on military power?"; + mes "We have suffered enough from wars."; + mes "I believe weapons aren't the best way to bring prosperity to a nation."; + next; + mes "[Prince Croix]"; + mes "I do not wish to shed blood, but I have no choice but to fight for the possibility of peace and for the sake of my people."; + next; + switch(select("Yes, I want to join you.:End Conversation")) { + case 1: + cutin "bat_crua1",2; + mes "[Prince Croix]"; + mes "Thank you so much. I feel like I can win with the help of adventurers like you."; + mes "Now, please go downstairs and join your comrades in sharpening their skills to fight the enemy!"; + break; + case 2: + mes "[Prince Croix]"; + mes "For Maroll!"; + break; + } + break; } - - set .@spoint$, getsavepoint(0); - set .@x, getsavepoint(1); - set .@y, getsavepoint(2); - mes "[Teleporter]"; - mes "You will be sent back to " + .@spoint$ + "."; close2; - warp .@spoint$, .@x, .@y; + cutin "bat_crua1",255; + cutin "bat_crua2",255; end; } -// Kafra -// ********************************************************************* -bat_room,148,147,4 script Kafra Staff::kaf_bat 861,{ - cutin "kafra_09",2; - callfunc "F_Kafra",0,2,1,150,0; -} +bat_room,161,140,3 script Prince Croix's Aide#01 415,{ end; } +bat_room,161,142,3 script Prince Croix's Aide#02 415,{ end; } -// General Guillaume -// ********************************************************************* bat_room,160,159,3 script General Guillaume 420,{ cutin "bat_kiyom2",2; mes "[General Guillaume]"; mes "Hot-blooded adventurer, we need your ability to win this battle."; next; - cutin "bat_kiyom1",2; - mes "[General Guillaume]"; - mes "Our great king, Marcel Marollo VII, is very sick lately. His Majesty has declared that he chosen either me or Prince Croix as the next king amongst his 9 sons."; - next; - mes "[General Guillaume]"; - mes "Two kings can't share a nation!"; - mes "Only the one victorious from His Majesty's appointed battle will be enthroned."; - next; - mes "[General Guillaume]"; - mes "This is however, not just a battle between us. This battle will determine the future of this country. I pledge on my honor to prove that I'm the one who can protect this Maroll from outside threats."; - next; - if( select("Yes, I want to join you.:End Conversation") == 2 ) - { + switch(select("What's the reason for the Battle?:Tell me about Prince Croix")) { + case 1: + cutin "bat_kiyom1",2; mes "[General Guillaume]"; - mes "I'll be the one who will capture the flag!"; - close2; - cutin "",255; - end; + mes "Our great king, Marcel Marollo VII, is very sick lately."; + mes "His Majesty has declared that he has chosen either me or Prince Croix as the next king amongst his 9 sons."; + next; + mes "[General Guillaume]"; + mes "Two kings can't share a nation! Only the one victorious from His Majesty's appointed battle will be enthroned."; + next; + mes "[General Guillaume]"; + mes "This is, however, not just a battle between us. This battle will determine the future of this country."; + mes "I pledge on my honor to prove that I'm the one who can protect this Maroll from outside threats."; + next; + switch(select("Yes, I want to join you.:End Conversation")) { + case 1: + cutin "bat_kiyom2",2; + mes "[General Guillaume]"; + mes "Welcome to my army, comrade."; + mes "Your eyes tell me that you're a soldier that I can trust."; + next; + mes "[General Guillaume]"; + mes "Now, go upstairs and apply for battle with your comrades."; + mes "I'm sure they'll welcome you whole-heartedly!"; + break; + case 2: + mes "[General Guillaume]"; + mes "I'll be the one who will capture the flag!"; + break; + } + break; + case 2: + cutin "bat_kiyom1",2; + mes "[General Guillaume]"; + mes "The 5th Prince Croix is currently titled as the Prime Minister of Maroll."; + mes "He thinks all national matters of a nation can be discussed and determined on a desk,"; + mes "and believes in peaceful co-existence with other countries."; + next; + mes "[General Guillaume]"; + mes "He's too ignorant to admit that so-called peace is built on countless lives that are sacrificed in wars while normal citizens and upper classes can live, oblivious to the horrors that allow them to live that way."; + next; + mes "[General Guillaume]"; + mes "He's too naive to understand the reality...."; + mes "I can't leave Maroll to someone like him who lives in a dream!"; + next; + mes "[General Guillaume]"; + mes "His unrealistic beliefs will drown this country in poverty and make the people weak. If he becomes the king, Maroll will never rest from the onslaughts of other countries."; + mes "I want to teach him what makes this small country so powerful and prosperous. It's military power!"; + next; + switch(select("I want to join your army!:End Conversation")) { + case 1: + cutin "bat_kiyom2",2; + mes "[General Guillaume]"; + mes "Welcome to my army, comrade."; + mes "Your eyes tell me that you're a soldier that I can trust."; + next; + mes "[General Guillaume]"; + mes "Now, go upstairs and apply for battle from your comrades."; + mes "I'm sure they'll welcome you whole-heartedly!"; + break; + case 2: + mes "[General Guillaume]"; + mes "I'll be the one who will capture the flag!"; + break; + } + break; } - cutin "bat_kiyom2",2; - mes "[General Guillaume]"; - mes "Welcome to my army, comrade."; - mes "Your eyes tell me that you're a soldier that I can trust."; - set Bat_Team,1; - next; - mes "[General Guillaume]"; - mes "Now, go upstairs and apply for battle with your comrades. I'm sure they'll welcome you whole-heartedly!"; close2; - cutin "",255; + cutin "bat_kiyom1",255; + cutin "bat_kiyom2",255; end; } -// General Croix -// ********************************************************************* -bat_room,160,140,3 script Prince Croix 416,{ - cutin "bat_crua1",2; - mes "[Prince Croix]"; - mes "Wise adventurer, why don't you lend us your power for victory?"; +// Flags +//============================================================ +//bat_room,140,160,3 script Guillaume Base#roomflag1 973,{ end; } +//bat_room,167,160,3 script Guillaume Base#roomflag2 973,{ end; } +//bat_room,140,139,3 script Croix Base#roomflag1 974,{ end; } +//bat_room,167,139,3 script Croix Base#roomflag2 974,{ end; } + +// BattleGround Warper +//============================================================ +bat_room,148,150,5 script Teleporter#Battlefield 124,{ + mes "[Teleporter]"; + mes "Do you wish to leave the battlefield? Use my services to return to town."; next; - cutin "bat_crua2",2; - mes "[Prince Croix]"; - mes "I do not wish to shed blood, but I have no choice but to fight for the possibility of peace and for the sake of my people."; + switch(select("Leave:Don't Leave")) { + case 1: + mes "[Teleporter]"; + switch(bat_return) { + default: + case 1: + setarray .@mapname$[0],"Prontera.","prontera"; + setarray .@xy[0],116,72; + break; + case 2: + setarray .@mapname$[0],"Morroc","moc_ruins"; + setarray .@xy[0],152,48; + break; + case 3: + setarray .@mapname$[0],"Al De Baran.","aldebaran"; + setarray .@xy[0],168,112; + break; + case 4: + setarray .@mapname$[0],"Geffen.","geffen"; + setarray .@xy[0],120,39; + break; + case 5: + setarray .@mapname$[0],"Payon.","payon"; + setarray .@xy[0],161,58; + break; + case 6: + setarray .@mapname$[0],"Lighthalzen.","lighthalzen"; + setarray .@xy[0],159,93; + break; + case 7: + setarray .@mapname$[0],"Rachel.","rachel"; + setarray .@xy[0],115,124; + break; + } + mes "You will be sent back to "+.@mapname$[0]+"."; + close2; + warp .@mapname$[1],.@xy[0],.@xy[1]; + break; + case 2: + mes "[Teleporter]"; + mes "I'll be here whenever you're in need of my services."; + close; + } + end; +} + +- script Maroll Battle Recruiter::BatRecruit 728,{ + mes "[Maroll Battle Recruiter]"; + mes "Good day, adventurer."; + mes "I'm a knight from a far country called Maroll Kingdom."; next; - mes "[Prince Croix]"; - mes "General Guillaume may have an advantage in this battle as he is the great general of Maroll, but that doesn't automatically mean he'll win. I want to win this battle so that I can grant a better future for my people."; + mes "[Maroll Battle Recruiter]"; + mes "The two princes of the kingdom are now battling for the throne of Maroll, and are in need of experienced soldiers like you."; + mes "How would you like to lend your power to one of the princes in the Maroll Kingdom?"; next; - if( select("Yes, I want to join you!:End Conversation") == 2 ) - { - mes "[Prince Croix]"; - mes "For Maroll!"; + switch(select("Join:Don't Join")) { + case 1: + mes "[Maroll Battle Recruiter]"; + mes "May the war god bless you."; close2; - cutin "",255; - end; + getmapxy(.@mapname$,.@x,.@y,1); + if (.@mapname$ == "prontera") + set bat_return,1; + else if (.@mapname$ == "moc_ruins") + set bat_return,2; + else if (.@mapname$ == "aldebaran") + set bat_return,3; + else if (.@mapname$ == "geffen") + set bat_return,4; + else if (.@mapname$ == "payon") + set bat_return,5; + else if (.@mapname$ == "lighthalzen") + set bat_return,6; + else if (.@mapname$ == "rachel") + set bat_return,7; + else + set bat_return,1; + warp "bat_room",154,150; + break; + case 2: + mes "[Maroll Battle Recruiter]"; + mes "I'll always be stationed here for more soldiers. Feel free to come back whenever you're interested."; + close; } - mes "[Prince Croix]"; - mes "Thank you so much. I feel like I can win with the help of adventurers like you. Now, please go downstairs and join your comrades in sharpening their skills to fight the enemy!"; - set Bat_Team,2; - close2; - cutin "",255; end; } +prontera,123,83,3 duplicate(BatRecruit) Maroll Battle Recruiter::BatRecruit1 728 +moc_ruins,75,162,3 duplicate(BatRecruit) Maroll Battle Recruiter::BatRecruit2 728 +aldebaran,146,109,3 duplicate(BatRecruit) Maroll Battle Recruiter::BatRecruit3 728 +geffen,109,66,3 duplicate(BatRecruit) Maroll Battle Recruiter::BatRecruit4 728 +payon,189,105,3 duplicate(BatRecruit) Maroll Battle Recruiter::BatRecruit5 728 +lighthalzen,153,86,5 duplicate(BatRecruit) Maroll Battle Recruiter::BatRecruit6 728 +rachel,149,138,3 duplicate(BatRecruit) Maroll Battle Recruiter::BatRecruit7 728 + // Time calculation Function // ********************************************************************* function script Time2Str { @@ -177,584 +305,6 @@ function script Time2Str { return .@Time$; } -// Guillaume Knight - Tierra Gorge -// ********************************************************************* -bat_room,127,178,5 script Guillaume Knight#1 417,{ - mes "[Guillaume Knight]"; - mes "Tierra Gorge is a very steep canyon with two forts residing in the north and south ends of the map."; - next; - mes "[Guillaume Knight]"; - mes "There is a ration depot for the Guillaume and Croix armies at the 11 and 8 o'clock directions."; - next; - mes "[Guillaume Knight]"; - mes "The battle starts at your army's ship, and the goal is to advance and destroy your enemy's rations depot faster than they can destroy yours."; - mes ""; - mes "The army that captures the neutral flag in the center of the battlefield will be rewarded with extra regeneration points, meaning their soldiers will resurrect more than the other side, giving them an advantage."; - next; - mes "[Guillaume Knight]"; - mes "Are you ready for battle? Then apply with the recruiter next to me!"; - close; -} - -// Tierra Officer - Guillaume -// ********************************************************************* -bat_room,124,178,5 script Tierra Gorge Officer#1 418,{ - mes "[Tierra Officer]"; - if( Bat_Team == 2 ) - { - mes "Get out of here you stinky Croix!"; - close; - } - - if( Bat_Team == 0 ) - { - mes "Please sign up for an army with Prince Croix or General Guillaume!"; - close; - } - - mes "Hello " + strcharinfo(0) + ", let's show the power of the Guillaume Army to those stinky Croixs!"; - next; - if( select("I want to join your army!:End Conversation") == 2 ) - close; - - mes "[Tierra Officer]"; - if( BG_Delay_Tick >= gettimetick(2) ) - { - mes "You are a Deserter!!"; - mes "Because of running away, you need to wait ^0000FF" + callfunc("Time2Str",BG_Delay_Tick) + "^000000 to join again a BattleGround."; - close; - } - - if( checkquest(2069,PLAYTIME) == 2 ) erasequest 2069; - if( checkquest(2069,PLAYTIME) != -1 ) - { - mes "You have received an indicator showing that you've participated in the Battle at Tierra Gorge. I can't let you participate in any other battles until the indicator goes off."; - next; - mes "[Tierra Officer]"; - mes "Stand-by for Tierra Gorge Battle until the time limit passes."; - close; - } - - if( BaseLevel < 80 ) - { - mes "I'm very please you want to join our army, but I'm sorry: I can't send a rookie like you to die on the cruel battlefield"; - close; - } - - mes "Good luck!"; - close2; - warp "bat_room",57,223; - end; -} - -// Croix Knight - Tierra Gorge -// ********************************************************************* -bat_room,127,121,1 script Croix Knight#1 413,{ - mes "[Croix Knight]"; - mes "Tierra Gorge is a very steep canyon with two forts residing in the north and south ends of the map."; - next; - mes "[Croix Knight]"; - mes "There is a ration depot for the Guillaume and Croix armies at the 11 and 8 o'clock directions."; - next; - mes "[Croix Knight]"; - mes "The battle starts at your army's ship, and the goal is to advance and destroy your enemy's rations depot faster than they can destroy yours."; - mes ""; - mes "The army that captures the neutral flag in the center of the battlefield will be rewarded with extra regeneration points, meaning their soldiers will resurrect more than the other side, giving them an advantage."; - next; - mes "[Croix Knight]"; - mes "Are you ready for battle? Then apply with the recruiter next to me!"; - close; -} - -// Tierra Officer - Croix -// ********************************************************************* -bat_room,125,121,1 script Tierra Gorge Officer#2 414,{ - mes "[Tierra Officer]"; - if( Bat_Team == 1 ) - { - mes "Get out of here you stupid Guillaume!"; - close; - } - - if( Bat_Team == 0 ) - { - mes "Please sign up for an army with Prince Croix or General Guillaume!"; - close; - } - - mes "Hello " + strcharinfo(0) + ", let's show the power of the Croix Army to those stinky Guillaumes!"; - next; - if( select("I want to join your army!:End Conversation") == 2 ) - close; - - mes "[Tierra Officer]"; - if( BG_Delay_Tick >= gettimetick(2) ) - { - mes "You are a Deserter!!"; - mes "Because of running away, you need to wait ^0000FF" + callfunc("Time2Str",BG_Delay_Tick) + "^000000 to join again a BattleGround."; - close; - } - - if( checkquest(2069,PLAYTIME) == 2 ) erasequest 2069; - if( checkquest(2069,PLAYTIME) != -1 ) - { - mes "You have received an indicator showing that you've participated in the Battle at Tierra Gorge. I can't let you participate in any other battles until the indicator goes off."; - next; - mes "[Tierra Officer]"; - mes "Stand-by for Tierra Gorge Battle until the time limit passes."; - close; - } - - if( BaseLevel < 80 ) - { - mes "I'm very please you want to join our army, but I'm sorry: I can't send a rookie like you to die on the cruel battlefield"; - close; - } - - mes "Good luck!"; - close2; - warp "bat_room",57,207; - end; -} - -// Guillaume Knight - Tierra -// ********************************************************************* -bat_room,143,178,5 script Guillaume Knight#2 417,{ - mes "[Guillaume Knight]"; - mes "Tierra Gorge is a very steep canyon with two forts residing in the north and south ends of the map."; - next; - mes "[Guillaume Knight]"; - mes "There is a ration depot for the Guillaume and Croix armies at the 11 and 8 o'clock directions."; - next; - mes "[Guillaume Knight]"; - mes "The battle starts at your army's ship, and the goal is to advance and destroy your enemy's rations depot faster than they can destroy yours."; - mes ""; - mes "The army that captures the neutral flag in the center of the battlefield will be rewarded with extra regeneration points, meaning their soldiers will resurrect more than the other side, giving them an advantage."; - next; - mes "[Guillaume Knight]"; - mes "Are you ready for battle? Then apply with the recruiter next to me!"; - close; -} - -// Tierra Officer - Guillaume -// ********************************************************************* -bat_room,140,178,5 script Tierra Gorge Officer#3 418,{ - mes "[Tierra Officer]"; - if( Bat_Team == 2 ) - { - mes "Get out of here you stinky Croix!"; - close; - } - - if( Bat_Team == 0 ) - { - mes "Please sign up for an army with Prince Croix or General Guillaume!"; - close; - } - - mes "Hello " + strcharinfo(0) + ", let's show the power of the Guillaume Army to those stinky Croixs!"; - next; - if( select("I want to join your army!:End Conversation") == 2 ) - close; - - mes "[Tierra Officer]"; - if( BG_Delay_Tick >= gettimetick(2) ) - { - mes "You are a Deserter!!"; - mes "Because of running away, you need to wait ^0000FF" + callfunc("Time2Str",BG_Delay_Tick) + "^000000 to join again a BattleGround."; - close; - } - - if( checkquest(2069,PLAYTIME) == 2 ) erasequest 2069; - if( checkquest(2069,PLAYTIME) != -1 ) - { - mes "You have received an indicator showing that you've participated in the Battle at Tierra Gorge. I can't let you participate in any other battles until the indicator goes off."; - next; - mes "[Tierra Officer]"; - mes "Stand-by for Tierra Gorge Battle until the time limit passes."; - close; - } - - if( BaseLevel < 80 ) - { - mes "I'm very please you want to join our army, but I'm sorry: I can't send a rookie like you to die on the cruel battlefield"; - close; - } - - mes "Good luck!"; - close2; - warp "bat_room",114,223; - end; -} - -// Croix Knight - Tierra -// ********************************************************************* -bat_room,143,121,1 script Croix Knight#2 413,{ - mes "[Croix Knight]"; - mes "Tierra Gorge is a very steep canyon with two forts residing in the north and south ends of the map."; - next; - mes "[Croix Knight]"; - mes "There is a ration depot for the Guillaume and Croix armies at the 11 and 8 o'clock directions."; - next; - mes "[Croix Knight]"; - mes "The battle starts at your army's ship, and the goal is to advance and destroy your enemy's rations depot faster than they can destroy yours."; - mes ""; - mes "The army that captures the neutral flag in the center of the battlefield will be rewarded with extra regeneration points, meaning their soldiers will resurrect more than the other side, giving them an advantage."; - next; - mes "[Croix Knight]"; - mes "Are you ready for battle? Then apply with the recruiter next to me!"; - close; -} - -// Tierra Officer - Croix -// ********************************************************************* -bat_room,140,121,1 script Tierra Gorge Officer#4 414,{ - mes "[Tierra Officer]"; - if( Bat_Team == 1 ) - { - mes "Get out of here you stupid Guillaume!"; - close; - } - - if( Bat_Team == 0 ) - { - mes "Please sign up for an army with Prince Croix or General Guillaume!"; - close; - } - - mes "Hello " + strcharinfo(0) + ", let's show the power of the Croix Army to those stinky Guillaumes!"; - next; - if( select("I want to join your army!:End Conversation") == 2 ) - close; - - mes "[Tierra Officer]"; - if( BG_Delay_Tick >= gettimetick(2) ) - { - mes "You are a Deserter!!"; - mes "Because of running away, you need to wait ^0000FF" + callfunc("Time2Str",BG_Delay_Tick) + "^000000 to join again a BattleGround."; - close; - } - - if( checkquest(2069,PLAYTIME) == 2 ) erasequest 2069; - if( checkquest(2069,PLAYTIME) != -1 ) - { - mes "You have received an indicator showing that you've participated in the Battle at Tierra Gorge. I can't let you participate in any other battles until the indicator goes off."; - next; - mes "[Tierra Officer]"; - mes "Stand-by for Tierra Gorge Battle until the time limit passes."; - close; - } - - if( BaseLevel < 80 ) - { - mes "I'm very please you want to join our army, but I'm sorry: I can't send a rookie like you to die on the cruel battlefield"; - close; - } - - mes "Good luck!"; - close2; - warp "bat_room",114,204; - end; -} - -// Guillaune Knight - Flavius -// ********************************************************************* -bat_room,135,178,5 script Guillaume Knight#3 417,{ - mes "[Guillaume Knight]"; - mes "The objective of the Flavius Battle is to score 2 points before your enemy by destroying their crystal."; - next; - mes "[Guillaume Knight]"; - mes "The crystals for both armies are protected by special barricades that cannot be destroyed by direct attacks."; - next; - mes "[Guillaume Knight]"; - mes "But they can be removed by destroying the Guardians that protect the enemy army base."; - next; - mes "[Guillaume Knight]"; - mes "The crystals are immune to every type of skill; your physical attacks are the only choice for destroying your enemy's crystal."; - next; - mes "[Guillaume Knight]"; - mes "Are you ready for battle? Then apply with the recruiter next to me!"; - close; -} - -// Flavius Officer - Guillaume -// ********************************************************************* -bat_room,133,178,5 script Flavius Officer#1 418,{ - mes "[Flavius Officer]"; - if( Bat_Team == 2 ) - { - mes "Get out of here you stupid Croix!"; - close; - } - - if( Bat_Team == 0 ) - { - mes "Please sign up for an army with Prince Croix or General Guillaume!"; - close; - } - - mes "Hello " + strcharinfo(0) + ", let's show the power of the Guillaume Army to those stinky Croixs!"; - next; - if( select("I want to join your army!:End Conversation") == 2 ) - close; - - mes "[Flavius Officer]"; - if( BG_Delay_Tick >= gettimetick(2) ) - { - mes "You are a Deserter!!"; - mes "Because of running away, you need to wait ^0000FF" + callfunc("Time2Str",BG_Delay_Tick) + "^000000 to join again a BattleGround."; - close; - } - - if( checkquest(2070,PLAYTIME) == 2 ) erasequest 2070; - if( checkquest(2070,PLAYTIME) != -1 ) - { - mes "You have received an indicator showing that you've participated in the Battle at Flavius. I can't let you participate in any other battles until the indicator goes off."; - next; - mes "[Flavius Officer]"; - mes "Stand-by for Flavius Battle until the time limit passes."; - close; - } - - if( BaseLevel < 80 ) - { - mes "I'm very please you want to join our army, but I'm sorry: I can't send a rookie like you to die on the cruel battlefield"; - close; - } - - mes "Good luck!"; - close2; - warp "bat_room",85,223; - end; -} - -// Croix Knight - Flavius -// ********************************************************************* -bat_room,135,121,1 script Croix Knight#3 413,{ - mes "[Croix Knight]"; - mes "The objective of the Flavius Battle is to score 2 points before your enemy by destroying their crystal."; - next; - mes "[Croix Knight]"; - mes "The crystals for both armies are protected by special barricades that cannot be destroyed by direct attacks."; - next; - mes "[Croix Knight]"; - mes "But they can be removed by destroying the Guardians that protect the enemy army base."; - next; - mes "[Croix Knight]"; - mes "The crystals are immune to every type of skill; your physical attacks are the only choice for destroying your enemy's crystal."; - next; - mes "[Croix Knight]"; - mes "Are you ready for battle? Then apply with the recruiter next to me!"; - close; -} - -// Flavius Officerer - Croix -// ********************************************************************* -bat_room,133,121,1 script Flavius Officer#2 414,{ - mes "[Flavius Officer]"; - if( Bat_Team == 1 ) - { - mes "Get out of here you stupid Guillaume!"; - close; - } - - if( Bat_Team == 0 ) - { - mes "Please sign up for an army with Prince Croix or General Guillaume!"; - close; - } - - mes "Hello " + strcharinfo(0) + ", let's show the power of the Croix Army to those stinky Guillaumes!"; - next; - if( select("I want to join your army!:End Conversation") == 2 ) - close; - - mes "[Flavius Officer]"; - if( BG_Delay_Tick >= gettimetick(2) ) - { - mes "You are a Deserter!!"; - mes "Because of running away, you need to wait ^0000FF" + callfunc("Time2Str",BG_Delay_Tick) + "^000000 to join again a BattleGround."; - close; - } - - if( checkquest(2070,PLAYTIME) == 2 ) erasequest 2070; - if( checkquest(2070,PLAYTIME) != -1 ) - { - mes "You have received an indicator showing that you've participated in the Battle at Flavius. I can't let you participate in any other battles until the indicator goes off."; - next; - mes "[Flavius Officer]"; - mes "Stand-by for Flavius Battle until the time limit passes."; - close; - } - - if( BaseLevel < 80 ) - { - mes "I'm very please you want to join our army, but I'm sorry: I can't send a rookie like you to die on the cruel battlefield"; - close; - } - - mes "Good luck!"; - close2; - warp "bat_room",85,207; - end; -} - -// Guillaune Knight - Flavius -// ********************************************************************* -bat_room,151,178,5 script Guillaume Knight#4 417,{ - mes "[Guillaume Knight]"; - mes "The objective of the Flavius Battle is to score 2 points before your enemy by destroying their crystal."; - next; - mes "[Guillaume Knight]"; - mes "The crystals for both armies are protected by special barricades that cannot be destroyed by direct attacks."; - next; - mes "[Guillaume Knight]"; - mes "But they can be removed by destroying the Guardians that protect the enemy army base."; - next; - mes "[Guillaume Knight]"; - mes "The crystals are immune to every type of skill; your physical attacks are the only choice for destroying your enemy's crystal."; - next; - mes "[Guillaume Knight]"; - mes "Are you ready for battle? Then apply with the recruiter next to me!"; - close; -} - -// Flavius Officerer - Guillaume -// ********************************************************************* -bat_room,148,178,5 script Flavius Officer#3 418,{ - mes "[Flavius Officer]"; - if( Bat_Team == 2 ) - { - mes "Get out of here you stupid Croix!"; - close; - } - - if( Bat_Team == 0 ) - { - mes "Please sign up for an army with Prince Croix or General Guillaume!"; - close; - } - - mes "Hello " + strcharinfo(0) + ", let's show the power of the Guillaume Army to those stinky Croixs!"; - next; - if( select("I want to join your army!:End Conversation") == 2 ) - close; - - mes "[Flavius Officer]"; - if( BG_Delay_Tick >= gettimetick(2) ) - { - mes "You are a Deserter!!"; - mes "Because of running away, you need to wait ^0000FF" + callfunc("Time2Str",BG_Delay_Tick) + "^000000 to join again a BattleGround."; - close; - } - - if( checkquest(2070,PLAYTIME) == 2 ) erasequest 2070; - if( checkquest(2070,PLAYTIME) != -1 ) - { - mes "You have received an indicator showing that you've participated in the Battle at Flavius. I can't let you participate in any other battles until the indicator goes off."; - next; - mes "[Flavius Officer]"; - mes "Stand-by for Flavius Battle until the time limit passes."; - close; - } - - if( BaseLevel < 80 ) - { - mes "I'm very please you want to join our army, but I'm sorry: I can't send a rookie like you to die on the cruel battlefield"; - close; - } - - mes "Good luck!"; - close2; - warp "bat_room",141,207; - end; -} - -// Croix Knight - Flavius -// ********************************************************************* -bat_room,151,121,1 script Croix Knight#4 413,{ - mes "[Croix Knight]"; - mes "The objective of the Flavius Battle is to score 2 points before your enemy by destroying their crystal."; - next; - mes "[Croix Knight]"; - mes "The crystals for both armies are protected by special barricades that cannot be destroyed by direct attacks."; - next; - mes "[Croix Knight]"; - mes "But they can be removed by destroying the Guardians that protect the enemy army base."; - next; - mes "[Croix Knight]"; - mes "The crystals are immune to every type of skill; your physical attacks are the only choice for destroying your enemy's crystal."; - next; - mes "[Croix Knight]"; - mes "Are you ready for battle? Then apply with the recruiter next to me!"; - close; -} - -// Flavius Officerer - Croix -// ********************************************************************* -bat_room,148,121,1 script Flavius Officer#4 414,{ - mes "[Flavius Officer]"; - if( Bat_Team == 1 ) - { - mes "Get out of here you stupid Guillaume!"; - close; - } - - if( Bat_Team == 0 ) - { - mes "Please sign up for an army with Prince Croix or General Guillaume!"; - close; - } - - mes "Hello " + strcharinfo(0) + ", let's show the power of the Croix Army to those stinky Guillaumes!"; - next; - if( select("I want to join your army!:End Conversation") == 2 ) - close; - - mes "[Flavius Officer]"; - if( BG_Delay_Tick >= gettimetick(2) ) - { - mes "You are a Deserter!!"; - mes "Because of running away, you need to wait ^0000FF" + callfunc("Time2Str",BG_Delay_Tick) + "^000000 to join again a BattleGround."; - close; - } - - if( checkquest(2070,PLAYTIME) == 2 ) erasequest 2070; - if( checkquest(2070,PLAYTIME) != -1 ) - { - mes "You have received an indicator showing that you've participated in the Battle at Flavius. I can't let you participate in any other battles until the indicator goes off."; - next; - mes "[Flavius Officer]"; - mes "Stand-by for Flavius Battle until the time limit passes."; - close; - } - - if( BaseLevel < 80 ) - { - mes "I'm very please you want to join our army, but I'm sorry: I can't send a rookie like you to die on the cruel battlefield"; - close; - } - - mes "Good luck!"; - close2; - warp "bat_room",141,227; - end; -} - -// Guard Dummy -// ********************************************************************* - -bat_room,161,141,3 script Prince Croix's Aid::bat_aid 415,{ end; } -bat_room,161,139,3 duplicate(bat_aid) Prince Croix's Aid::bat_aid2 415 -bat_room,161,160,3 duplicate(bat_aid) General Guillaume's Aid::bat_aid3 419 -bat_room,161,158,3 duplicate(bat_aid) General Guillaume's Aid::bat_aid4 419 - -// Flags -// ********************************************************************* - -- script Guillaume camp#bat 973,{ end; } -- script Croix camp#bat 974,{ end; } - // Exit from Registration // ********************************************************************* - script warp2bat_room -1,{ @@ -769,22 +319,16 @@ OnTouch: // Flavius bat_b02 bat_room,57,81,0 duplicate(warp2bat_room) bat1 45,1,1 bat_room,57,90,0 duplicate(warp2bat_room) bat2 45,1,1 -// Free BG -bat_room,57,220,0 duplicate(warp2bat_room) bat3 45,1,1 -bat_room,57,211,0 duplicate(warp2bat_room) bat4 45,1,1 -// Tierra Gorge bat_a02 +// Empty bat_room,85,81,0 duplicate(warp2bat_room) bat5 45,1,1 bat_room,85,90,0 duplicate(warp2bat_room) bat6 45,1,1 -// Tierra Gorge bat_a01 +// Empty bat_room,85,220,0 duplicate(warp2bat_room) bat7 45,1,1 bat_room,85,211,0 duplicate(warp2bat_room) bat8 45,1,1 // Free BG bat_room,113,81,0 duplicate(warp2bat_room) bat9 45,1,1 bat_room,113,90,0 duplicate(warp2bat_room) bat10 45,1,1 // Free BG -bat_room,113,220,0 duplicate(warp2bat_room) bat11 45,1,1 -bat_room,113,211,0 duplicate(warp2bat_room) bat12 45,1,1 -// Free BG bat_room,141,81,0 duplicate(warp2bat_room) bat13 45,1,1 bat_room,141,90,0 duplicate(warp2bat_room) bat14 45,1,1 // Free BG @@ -802,10 +346,17 @@ bat_room,225,90,0 duplicate(warp2bat_room) bat26 45,1,1 // Flavius bat_b01 bat_room,253,81,0 duplicate(warp2bat_room) bat29 45,1,1 bat_room,253,90,0 duplicate(warp2bat_room) bat30 45,1,1 -// Unknown +// Empty bat_room,253,220,0 duplicate(warp2bat_room) bat31 45,1,1 bat_room,253,211,0 duplicate(warp2bat_room) bat32 45,1,1 +// Kafra +// ********************************************************************* +bat_room,148,147,4 script Kafra Staff::kaf_bat 861,{ + cutin "kafra_09",2; + callfunc "F_Kafra",0,2,1,150,0; +} + // Badges Repairman // ********************************************************************* diff --git a/npc/battleground/bg_tierra_01.txt b/npc/battleground/bg_tierra_01.txt deleted file mode 100644 index e65a2424c..000000000 --- a/npc/battleground/bg_tierra_01.txt +++ /dev/null @@ -1,488 +0,0 @@ -// ============================================================================== -// BattleGround System - Tierra Valley 1 -// ============================================================================== - -// Registration NPC's -// ********************************************************************* - -bat_room,58,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,58,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 storehouse. 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 storehouse. 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; - } - - setquest 2069; - 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; - } - - setquest 2069; - 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 deleted file mode 100644 index a669b06dd..000000000 --- a/npc/battleground/bg_tierra_02.txt +++ /dev/null @@ -1,488 +0,0 @@ -// ============================================================================== -// BattleGround System - Tierra Valley 2 -// ============================================================================== - -// Registration NPC's -// ********************************************************************* - -bat_room,114,227,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,114,204,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 storehouse. 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 storehouse. 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; - } - - setquest 2069; - 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; - } - - setquest 2069; - 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; -} diff --git a/npc/battleground/flavius/flavius_enter.txt b/npc/battleground/flavius/flavius_enter.txt new file mode 100644 index 000000000..c8c5c479a --- /dev/null +++ b/npc/battleground/flavius/flavius_enter.txt @@ -0,0 +1,374 @@ +//===== eAthena Script ======================================= +// BattleGround System - Flavius Entrance NPCs +//===== By: ================================================== +//= L0ne_W0lf +//===== Current Version: ===================================== +//= 1.0 +//===== Compatible With: ===================================== +//= eAthena 1.0 +//===== Description: ========================================= +//= [AEGIS Conversion] +//= Flavius Battleground Entrance NPCs +//===== Additional Comments: ================================= +//= 1.0 First Version. +//============================================================ + +// Flavius Officer - Guillaume +//============================================================ +bat_room,133,178,5 script Flavius Officer#01a 418,{ + if (checkweight(1201,1) == 0) { + mes "- Wait a minute !! -"; + mes "- Currently you're carrying -"; + mes "- too many items with you. -"; + mes "- Please try again -"; + mes "- after you loose some weight. -"; + close; + } + mes "[Guillaume Army Officer]"; + mes "Let's show the power of the Guillaume Army to those stinky Croixs!"; + next; + switch(select("I want to join your army!:End Conversation")) { + case 1: + if ((Class == job_Novice) || (BaseClass == Job_Supernovice)) { + mes "[Guillaume Army Officer]"; + mes "I'm very pleased that you want to join us and fight the Croix Army, but I'm sorry: I can't send a rookie like you to die on the cruel battlefield."; + } + else { + if (BaseLevel < 80) { + mes "[Guillaume Army Officer]"; + mes "I'm very pleased that you want to join us and fight the Croix Army, but I'm sorry: I can't send a rookie like you to die on the cruel battlefield."; + } + else { + set .@chk_urtime,checkquest(2070,PLAYTIME); + if ((.@chk_urtime == 0)|| (.@chk_urtime == 1)) { + mes "[Guillaume Army Officer]"; + mes "You seem to have just returned from the battlefield."; + mes "It's too early for you to go back. Go rest, and leave the enemies to us!"; + } + else { + if (.@chk_urtime == 2) + erasequest 2070; + set .@mapcount2,getmapusers("bat_b01"); + if (.@mapcount2 > 0) { + mes "[Guillaume Army Officer]"; + mes "I've received a report informing me that an elite corps has been dispatched to the battlefield fighting the Croixs already."; + mes "Why don't you go wait for a while? I suggest you sharpen your weapons and prepare your supplies until then."; + } + else { + if ($@FlaviusBG1 > 0) { + mes "[Guillaume Army Officer]"; + mes "An elite corps is already standing by to be dispatched to the battlefield."; + mes "Why don't you go wait for a while? I suggest you sharpen your weapons and prepare your supplies until then."; + } + else { + mes "[Guillaume Army Officer]"; + mes "You definitely seem to be ready for battle!"; + mes "Go show the Croixs what fear truly means!"; + mes "Today, our cry of victory shall echo all over the battlefield!"; + close2; + warp "bat_room",85,223; + end; + } + } + } + } + } + break; + case 2: + mes "[Guillaume Army Officer]"; + mes "Today, we shall be victorious!"; + break; + } + close; +} + +bat_room,133,121,1 script Flavius Officer#01b 414,{ + if (checkweight(1201,1) == 0) { + mes "- Wait a minute !! -"; + mes "- Currently you're carrying -"; + mes "- too many items with you. -"; + mes "- Please try again -"; + mes "- after you loose some weight. -"; + close; + } + mes "[Croix Army Officer]"; + mes "Let's show the Guillaumes the power of the Croix Army!"; + next; + switch(select("I want to join your army!:End Conversation")) { + case 1: + if ((Class == job_Novice) || (BaseClass == Job_Supernovice)) { + mes "[Croix Army Officer]"; + mes "I'm very pleased that you want to join us and fight the Guillaume Army, but I'm sorry: I can't send a rookie like you to die on the cruel battlefield."; + } + else { + if (BaseLevel < 80) { + mes "[Croix Army Officer]"; + mes "I'm very pleased that you want to join us and fight the Guillaume Army, but I'm sorry: I can't send a rookie like you to die on the cruel battlefield."; + } + else { + set .@chk_urtime,checkquest(2070,PLAYTIME); + if ((.@chk_urtime == 0)|| (.@chk_urtime == 1)) { + mes "[Croix Army Officer]"; + mes "You seem to have just returned from the battlefield."; + mes "It's too early for you to go back. Go rest, and leave the enemies to us!"; + } + else { + if (.@chk_urtime == 2) + erasequest 2070; + set .@mapcount2,getmapusers("bat_b01"); + if (.@mapcount2 > 0) { + mes "[Croix Army Officer]"; + mes "I've received a report informing me that an elite corps has been dispatched to the battlefield fighting the Guillaume already."; + mes "Why don't you go wait for a while? I suggest you sharpen your weapons and prepare your supplies until then."; + } + else { + if ($@FlaviusBG1 > 0) { + mes "[Croix Army Officer]"; + mes "An elite corps is already standing by to be dispatched to the battlefield."; + mes "Why don't you go wait for a while? I suggest you sharpen your weapons and prepare your supplies until then."; + } + else { + mes "[Croix Army Officer]"; + mes "You definitely seem to be ready for battle!"; + mes "Go show the Guillaumes what fear truly means!"; + mes "Today, our cry of victory shall echo all over the battlefield!"; + close2; + warp "bat_room",85,207; + end; + } + } + } + } + } + break; + case 2: + mes "[Croix Army Officer]"; + mes "Today, we shall be victorious!"; + break; + } + close; +} + +bat_room,135,178,5 script Guillaume Knight#3 417,{ + mes "[Guillaume Knight]"; + mes "The objective of the Flavius Battle is to score 2 points before your enemy by destroying their crystal."; + next; + mes "[Guillaume Knight]"; + mes "The crystals for both armies are protected by special barricades that cannot be destroyed by direct attacks."; + next; + mes "[Guillaume Knight]"; + mes "But they can be removed by destroying the Guardians that protect the enemy army base."; + next; + mes "[Guillaume Knight]"; + mes "The crystals are immune to every type of skill; your physical attacks are the only choice for destroying your enemy's crystal."; + next; + mes "[Guillaume Knight]"; + mes "Please remember: when you join a battle, you will be receiving a token which indicates the set duration for which you cannot participate in the same type of battle."; + mes "You may check the duration by pressing the Alt+U keys."; + next; + mes "[Guillaume Knight]"; + mes "Are you ready for battle? Then apply with the recruiter next to me!"; + close; +} + +bat_room,151,178,5 script Guillaume Knight#4 417,{ + mes "[Guillaume Knight]"; + mes "The objective of the Flavius Battle is to score 2 points before your enemy by destroying their crystal."; + next; + mes "[Guillaume Knight]"; + mes "The crystals for both armies are protected by special barricades that cannot be destroyed by direct attacks."; + next; + mes "[Guillaume Knight]"; + mes "But they can be removed by destroying the Guardians that protect the enemy army base."; + next; + mes "[Guillaume Knight]"; + mes "The crystals are immune to every type of skill; your physical attacks are the only choice for destroying your enemy's crystal."; + next; + mes "[Guillaume Knight]"; + mes "Please remember: when you join a battle, you will be receiving a token which indicates the set duration for which you cannot participate in the same type of battle."; + mes "You may check the duration by pressing the Alt+U keys."; + next; + mes "[Guillaume Knight]"; + mes "Are you ready for battle? Then apply with the recruiter next to me!"; + close; +} + +bat_room,135,121,1 script Croix Knight#3 413,{ + mes "[Croix Knight]"; + mes "The objective of the Flavius Battle is to score 2 points before your enemy by destroying their crystal."; + next; + mes "[Croix Knight]"; + mes "The crystals for both armies are protected by special barricades that cannot be destroyed by direct attacks."; + next; + mes "[Croix Knight]"; + mes "But they can be removed by destroying the Guardians that protect the enemy army base."; + next; + mes "[Croix Knight]"; + mes "The crystals are immune to every type of skill; your physical attacks are the only choice for destroying your enemy's crystal."; + next; + mes "[Croix Knight]"; + mes "Please remember: when you join a battle, you will be receiving a token which indicates the set duration for which you cannot participate in the same type of battle."; + mes "You may check the duration by pressing the Alt+U keys."; + next; + mes "[Croix Knight]"; + mes "Are you ready for battle? Then apply with the recruiter next to me!"; + close; +} + +bat_room,151,121,1 script Croix Knight#4 413,{ + mes "[Croix Knight]"; + mes "The objective of the Flavius Battle is to score 2 points before your enemy by destroying their crystal."; + next; + mes "[Croix Knight]"; + mes "The crystals for both armies are protected by special barricades that cannot be destroyed by direct attacks."; + next; + mes "[Croix Knight]"; + mes "But they can be removed by destroying the Guardians that protect the enemy army base."; + next; + mes "[Croix Knight]"; + mes "The crystals are immune to every type of skill; your physical attacks are the only choice for destroying your enemy's crystal."; + next; + mes "[Croix Knight]"; + mes "Please remember: when you join a battle, you will be receiving a token which indicates the set duration for which you cannot participate in the same type of battle."; + mes "You may check the duration by pressing the Alt+U keys."; + next; + mes "[Croix Knight]"; + mes "Are you ready for battle? Then apply with the recruiter next to me!"; + close; +} + +// Flavius Officer - Croix +//============================================================ +bat_room,148,178,5 script Flavius Officer#02a 418,{ + if (checkweight(1201,1) == 0) { + mes "- Wait a minute !! -"; + mes "- Currently you're carrying -"; + mes "- too many items with you. -"; + mes "- Please try again -"; + mes "- after you loose some weight. -"; + close; + } + mes "[Guillaume Army Officer]"; + mes "Let's show the power of the Guillaume Army to those stinky Croixs!"; + next; + switch(select("I want to join your army!:End Conversation")) { + case 1: + if ((Class == job_Novice) || (BaseClass == Job_Supernovice)) { + mes "[Guillaume Army Officer]"; + mes "I'm very pleased that you want to join us and fight the Croix Army, but I'm sorry: I can't send a rookie like you to die on the cruel battlefield."; + } + else { + if (BaseLevel < 80) { + mes "[Guillaume Army Officer]"; + mes "I'm very pleased that you want to join us and fight the Croix Army, but I'm sorry: I can't send a rookie like you to die on the cruel battlefield."; + } + else { + set .@chk_urtime,checkquest(2070,PLAYTIME); + if ((.@chk_urtime == 0)|| (.@chk_urtime == 1)) { + mes "[Guillaume Army Officer]"; + mes "You seem to have just returned from the battlefield."; + mes "It's too early for you to go back. Go rest, and leave the enemies to us!"; + } + else { + if (.@chk_urtime == 2) + erasequest 2070; + set .@mapcount2,getmapusers("bat_b02"); + if (.@mapcount2 > 0) { + mes "[Guillaume Army Officer]"; + mes "I've received a report informing me that an elite corps has been dispatched to the battlefield fighting the Croixs already."; + mes "Why don't you go wait for a while? I suggest you sharpen your weapons and prepare your supplies until then."; + } + else { + if ($@FlaviusBG2 > 0) { + mes "[Guillaume Army Officer]"; + mes "An elite corps is already standing by to be dispatched to the battlefield."; + mes "Why don't you go wait for a while? I suggest you sharpen your weapons and prepare your supplies until then."; + } + else { + mes "[Guillaume Army Officer]"; + mes "You definitely seem to be ready for battle!"; + mes "Go show the Croixs what fear truly means!"; + mes "Today, our cry of victory shall echo all over the battlefield!"; + close2; + warp "bat_room",141,224; + end; + } + } + } + } + } + break; + case 2: + mes "[Guillaume Army Officer]"; + mes "Today, we shall be victorious!"; + break; + } + close; +} + +bat_room,148,121,1 script Flavius Officer#02b 414,{ + if (checkweight(1201,1) == 0) { + mes "- Wait a minute !! -"; + mes "- Currently you're carrying -"; + mes "- too many items with you. -"; + mes "- Please try again -"; + mes "- after you loose some weight. -"; + close; + } + mes "[Croix Army Officer]"; + mes "Let's show the power of the Croix Army to those stinky Guillaumes!"; + next; + switch(select("I want to join your army!:End Conversation")) { + case 1: + if ((Class == job_Novice) || (BaseClass == Job_Supernovice)) { + mes "[Croix Army Officer]"; + mes "I'm very pleased that you want to join us and fight the Guillaume Army, but I'm sorry: I can't send a rookie like you to die on the cruel battlefield."; + } + else { + if (BaseLevel < 80) { + mes "[Croix Army Officer]"; + mes "I'm very pleased that you want to join us and fight the Guillaume Army, but I'm sorry: I can't send a rookie like you to die on the cruel battlefield."; + } + else { + set .@chk_urtime,checkquest(2070,PLAYTIME); + if ((.@chk_urtime == 0)|| (.@chk_urtime == 1)) { + mes "[Croix Army Officer]"; + mes "You seem to have just returned from the battlefield."; + mes "It's too early for you to go back. Go rest, and leave the enemies to us!"; + } + else { + if (.@chk_urtime == 2) + erasequest 2070; + set .@mapcount2,getmapusers("bat_b02"); + if (.@mapcount2 > 0) { + mes "[Croix Army Officer]"; + mes "I've received a report informing me that an elite corps has been dispatched to the battlefield fighting the Guillaume already."; + mes "Why don't you go wait for a while? I suggest you sharpen your weapons and prepare your supplies until then."; + } + else { + if ($@FlaviusBG2 > 0) { + mes "[Croix Army Officer]"; + mes "An elite corps is already standing by to be dispatched to the battlefield."; + mes "Why don't you go wait for a while? I suggest you sharpen your weapons and prepare your supplies until then."; + } + else { + mes "[Croix Army Officer]"; + mes "You definitely seem to be ready for battle!"; + mes "Go show the Guillaumes what fear truly means!"; + mes "Today, our cry of victory shall echo all over the battlefield!"; + close2; + warp "bat_room",141,207; + end; + } + } + } + } + } + break; + case 2: + mes "[Croix Army Officer]"; + mes "Today, we shall be victorious!"; + break; + } + close; +} diff --git a/npc/battleground/kvm/kvm01.txt b/npc/battleground/kvm/kvm01.txt index f6443fd8e..27f01d47d 100644 --- a/npc/battleground/kvm/kvm01.txt +++ b/npc/battleground/kvm/kvm01.txt @@ -387,6 +387,7 @@ bat_c01,51,130,5 script KVM Officer#KVM01A 419,{ close2; } bg_leave; + set Bat_Team,0; warp "bat_room",154,150; end; } @@ -415,6 +416,7 @@ bat_c01,148,53,1 script KVM Officer#KVM01B 415,{ close2; } bg_leave; + set Bat_Team,0; warp "bat_room",154,150; end; } diff --git a/npc/battleground/kvm/kvm02.txt b/npc/battleground/kvm/kvm02.txt index 83ed1cf26..063f34ba6 100644 --- a/npc/battleground/kvm/kvm02.txt +++ b/npc/battleground/kvm/kvm02.txt @@ -384,6 +384,7 @@ bat_c02,51,130,5 script KVM Officer#KVM02A 419,{ close2; } bg_leave; + set Bat_Team,0; warp "bat_room",154,150; end; } @@ -412,6 +413,7 @@ bat_c02,148,53,1 script KVM Officer#KVM02B 415,{ close2; } bg_leave; + set Bat_Team,0; warp "bat_room",154,150; end; } diff --git a/npc/battleground/kvm/kvm03.txt b/npc/battleground/kvm/kvm03.txt index a5ed27c4e..245fefc7d 100644 --- a/npc/battleground/kvm/kvm03.txt +++ b/npc/battleground/kvm/kvm03.txt @@ -386,6 +386,7 @@ bat_c03,51,130,5 script KVM Officer#KVM03A 419,{ close2; } bg_leave; + set Bat_Team,0; warp "bat_room",154,150; end; } @@ -414,6 +415,7 @@ bat_c03,148,53,1 script KVM Officer#KVM03B 415,{ close2; } bg_leave; + set Bat_Team,0; warp "bat_room",154,150; end; } diff --git a/npc/battleground/kvm/kvm_enter.txt b/npc/battleground/kvm/kvm_enter.txt index 1af6daa10..544438534 100644 --- a/npc/battleground/kvm/kvm_enter.txt +++ b/npc/battleground/kvm/kvm_enter.txt @@ -14,7 +14,7 @@ //= 1.0 First Version. //============================================================ -// KvM Officerer - Guillaume +// KvM Officer - Guillaume //============================================================ bat_room,164,178,5 script KVM Mercenary Officer#1 418,{ set .@permit,checkquest(6026,PLAYTIME); diff --git a/npc/battleground/tierra/tierra01.txt b/npc/battleground/tierra/tierra01.txt new file mode 100644 index 000000000..bdd089d25 --- /dev/null +++ b/npc/battleground/tierra/tierra01.txt @@ -0,0 +1,953 @@ +//===== eAthena Script ======================================= +// BattleGround System - Tierra Gorge +//===== By: ================================================== +//= L0ne_W0lf +//===== Current Version: ===================================== +//= 1.0 +//===== Compatible With: ===================================== +//= eAthena 1.0 +//===== Description: ========================================= +//= [AEGIS Conversion] +//= Tierra Gorge Battleground. +//= - Winning Team: 3 badges +//= - Losing Team: 1 badge +//===== Additional Comments: ================================= +//= 1.0 First Version. +//============================================================ + +// Waiting Room NPCs +//============================================================ +bat_room,57,227,5 script Lieutenant Kalos 418,{ + end; + +OnInit: + waitingroom "Battle Station",10,"start#bat_a01::OnReadyCheck",1; + end; + +OnEnterBG: + set $@TierraBG1_id1, waitingroom2bg("bat_a01",50,374,"start#bat_a01::OnGuillaumeQuit",""); + end; +} + +bat_room,58,204,1 script Lieutenant Eyor 414,{ + end; + +OnInit: + waitingroom "Battle Station",10,"start#bat_a01::OnReadyCheck",1; + end; + +OnEnterBG: + set $@TierraBG1_id2, waitingroom2bg("bat_a01",42,16,"start#bat_a01::OnCroixQuit",""); + end; +} + +bat_room,1,151,3 script #bat_a01_timer 844,{ + end; + +OnEnable: + initnpctimer; + end; + +OnStop: + stopnpctimer; + end; + +OnTimer1000: + stopnpctimer; + initnpctimer; + set .@chk_bat_a01,getmapusers("bat_a01"); + if (.@chk_bat_a01 < 1) { + set $@TierraBG1,0; set $@TierraBG1_Victory, 0; + if( $@TierraBG1_id1 ) { bg_destroy $@TierraBG1_id1; set $@TierraBG1_id1, 0; } + if( $@TierraBG1_id2 ) { bg_destroy $@TierraBG1_id2; set $@TierraBG1_id2, 0; } + donpcevent "start#bat_a01::OnReadyCheck"; + } + end; +} + +bat_a01,352,342,0 script #bat_a01_quest_a -1,5,5,{ + end; + +OnTouch: + if (checkquest(2069) < 0) + setquest 2069; + end; +} + +bat_a01,353,52,0 script #bat_a01_quest_b -1,5,5,{ + end; + +OnTouch: + if (checkquest(2069) < 0) + setquest 2069; + end; +} + +bat_room,57,220,0 warp back_bgroom01a 1,1,bat_room,154,150 +bat_room,57,211,0 warp back_bgroom01b 1,1,bat_room,154,150 + +// Tierra Gorge Battleground Engine +//============================================================ +bat_a01,15,15,3 script start#bat_a01 844,{ +OnInit: + mapwarp "bat_a01","bat_room",154,150; + end; + +OnEnable: + donpcevent "OBJ#bat_a01_a::Onkill"; + donpcevent "OBJ#bat_a01_a::OnEnable"; + donpcevent "OBJ#bat_a01_b::Onkill"; + donpcevent "OBJ#bat_a01_b::OnEnable"; + donpcevent "barricade#bat_a01_a::Onkill"; + donpcevent "barricade#bat_a01_a::OnEnable"; + donpcevent "barricade#bat_a01_b::Onkill"; + donpcevent "barricade#bat_a01_b::OnEnable"; + donpcevent "OBJ#bat_a01_n::Onkill"; + donpcevent "OBJ#bat_a01_n::OnEnable"; + donpcevent "NOBJ_mob#bat_a01_a::Onkill"; + donpcevent "NOBJ_mob#bat_a01_b::Onkill"; + donpcevent "Battle Therapist#a01_a::OnEnable"; + donpcevent "Battle Therapist#a01_b::OnEnable"; + donpcevent "countdown#bat_a01::OnEnable"; + disablenpc "Guillaume Blacksmith#a01"; + disablenpc "Croix Blacksmith#bat_a01"; + disablenpc "Guillaume Vintenar#a01_a"; + disablenpc "Croix Vintenar#a01_b"; + end; + +OnGuillaumeQuit: +OnCroixQuit: + bg_leave; + end; + +OnReadyCheck: + if( $@TierraBG1 ) + end; + set .@Guillaume, getwaitingroomstate(0,"Lieutenant Kalos"); + set .@Croix, getwaitingroomstate(0,"Lieutenant Eyor"); + if( !.@Guillaume && !.@Croix ) { + donpcevent "#bat_a01_timer::OnStop"; + end; + } + if( .@Guillaume < 10 || .@Croix < 10 ) + end; + set $@TierraBG1,1; + donpcevent "Lieutenant Kalos::OnEnterBG"; + donpcevent "Lieutenant Eyor::OnEnterBG"; + donpcevent "start#bat_a01::onEnable"; + bg_warp $@TierraBG1_id1,"bat_a01",352,342; + bg_warp $@TierraBG1_id2,"bat_a01",353,52; + initnpctimer; + end; + +OnTimer10000: + stopnpctimer; + donpcevent "#bat_a01_timer::OnEnable"; + end; +} + +bat_a01,15,16,3 script OBJ#bat_a01_a 844,{ +OnEnable: + bg_monster $@TierraBG1_id1,"bat_a01",177,345,"Food Storage",1909,"OBJ#bat_a01_a::OnMyMobDead"; + end; + +Onkill: + killmonster "bat_a01","OBJ#bat_a01_a::OnMyMobDead"; + end; + +OnMyMobDead: + if (mobcount("bat_a01","OBJ#bat_a01_a::OnMyMobDead") < 1) { + donpcevent "Battle Therapist#a01_a::OnStop"; + donpcevent "Battle Therapist#a01_b::OnStop"; + set $@TierraBG1_Victory, 2; + enablenpc "Guillaume Vintenar#a01_a"; + enablenpc "Croix Vintenar#a01_b"; + mapannounce "bat_a01", "Croix Vintenar Swandery: We destroyed Guillaume's Food Storage. We won that! Wow!",bc_map,"0xFFCE00"; + bg_warp $@TierraBG1_id1,"bat_a01",50,374; + bg_warp $@TierraBG1_id2,"bat_a01",42,16; + } + end; +} + +bat_a01,15,17,3 script OBJ#bat_a01_b 844,{ +OnEnable: + bg_monster $@TierraBG1_id2,"bat_a01",167,50,"Food Depot",1910,"OBJ#bat_a01_b::OnMyMobDead"; + end; + +Onkill: + killmonster "bat_a01","OBJ#bat_a01_b::OnMyMobDead"; + end; + +OnMyMobDead: + if (mobcount("bat_a01","OBJ#bat_a01_b::OnMyMobDead") < 1) { + donpcevent "Battle Therapist#a01_a::OnStop"; + donpcevent "Battle Therapist#a01_b::OnStop"; + set $@TierraBG1_Victory, 1; + enablenpc "Guillaume Vintenar#a01_a"; + enablenpc "Croix Vintenar#a01_b"; + mapannounce "bat_a01", "Guillaume Vintenar Axl Rose : We destroyed Croix's Food Storage. We won that! Wow!",bc_map,"0xFFCE00"; + bg_warp $@TierraBG1_id1,"bat_a01",50,374; + bg_warp $@TierraBG1_id2,"bat_a01",42,16; + } + end; +} + +bat_a01,15,18,3 script barricade#bat_a01_a 844,{ +OnEnable: + for( set .@i,185; .@i < 202; set .@i,.@i+1 ) + bg_monster $@TierraBG1_id1,"bat_a01",.@i,266,"Barricade",1906,"barricade#bat_a01_a::OnMyMobDead"; + setwall "bat_a01",185,266,16,6,1,"bat_a01_c1"; + end; + +Onkill: + killmonster "bat_a01","barricade#bat_a01_a::OnMyMobDead"; + delwall "bat_a01_c1"; + end; + +OnMyMobDead: + if (mobcount("bat_a01","barricade#bat_a01_a::OnMyMobDead") < 17) { + killmonster "bat_a01","barricade#bat_a01_a::OnMyMobDead"; + delwall "bat_a01_c1"; + enablenpc "Guillaume Blacksmith#a01"; + mapannounce "bat_a01", "Guillaume Vintenar Axl Rose : The Barricade in the valley has been destroyed! Where's the Blacksmith? We need to rebuild the Barricade!",bc_map,"0xFFCE00"; + } + end; +} + +bat_a01,15,19,3 script barricade#bat_a01_b 844,{ +OnEnable: + for( set .@i,169; .@i < 186; set .@i,.@i+1 ) + bg_monster $@TierraBG1_id2,"bat_a01",.@i,129,"Barricade",1906,"barricade#bat_a01_b::OnMyMobDead"; + setwall "bat_a01",169,129,16,6,1,"bat_a01_g1"; + end; + +Onkill: + killmonster "bat_a01","barricade#bat_a01_b::OnMyMobDead"; + delwall "bat_a01_g1"; + end; + +OnMyMobDead: + if (mobcount("bat_a01","barricade#bat_a01_b::OnMyMobDead") < 17) { + killmonster "bat_a01","barricade#bat_a01_b::OnMyMobDead"; + delwall "bat_a01_g1"; + enablenpc "Croix Blacksmith#bat_a01"; + mapannounce "bat_a01", "Croix Vintenar Swandery : The Barricade in the valley has been destroyed! Where's the Blacksmith? We need to rebuild the Barricade!",bc_map,"0xFFCE00"; + } + end; +} + +bat_a01,15,20,3 script OBJ#bat_a01_n 844,{ +OnEnable: + monster "bat_a01",273,203,"Neutrality Flag",1911,1,"OBJ#bat_a01_n::OnMyMobDead"; + end; + +Onkill: + killmonster "bat_a01","OBJ#bat_a01_n::OnMyMobDead"; + end; + +OnMyMobDead: + if (mobcount("bat_a01","OBJ#bat_a01_n::OnMyMobDead") < 17) { + bg_team_setxy getcharid(4),56,212; + if (getcharid(4) == $@TierraBG1_id1) { + donpcevent "NOBJ_mob#bat_a01_a::OnEnable"; + mapannounce "bat_a01", "Guillaume captured a Neutrality Flag, so they have an advantage.",bc_map,"0xFFCE00"; + } + else { + donpcevent "NOBJ_mob#bat_a01_b::OnEnable"; + mapannounce "bat_a01", "Croix captured a Neutrality Flag, so they have an advantage.",bc_map,"0xFFCE00"; + } + } + end; +} + +bat_a01,15,21,3 script NOBJ_mob#bat_a01_a 844,{ +OnEnable: + donpcevent "NOBJ_mob#bat_a01_b::Onkill"; + bg_monster $@TierraBG1_id1,"bat_a01",272,204,"Guillaume Camp Guardian",1949,"NOBJ_mob#bat_a01_a::OnMyMobDead"; + bg_monster $@TierraBG1_id1,"bat_a01",272,213,"Guillaume Camp Guardian",1949,"NOBJ_mob#bat_a01_a::OnMyMobDead"; + bg_monster $@TierraBG1_id1,"bat_a01",273,197,"Guillaume Camp Guardian",1950,"NOBJ_mob#bat_a01_a::OnMyMobDead"; + end; + +Onkill: + killmonster "bat_a01","NOBJ_mob#bat_a01_a::OnMyMobDead"; + end; + +OnMyMobDead: + end; +} + +bat_a01,15,22,3 script NOBJ_mob#bat_a01_b 844,{ +OnEnable: + donpcevent "NOBJ_mob#bat_a01_a::Onkill"; + bg_monster $@TierraBG1_id2,"bat_a01",272,204,"Croix Camp Guardian",1949,"NOBJ_mob#bat_a01_a::OnMyMobDead"; + bg_monster $@TierraBG1_id2,"bat_a01",272,213,"Croix Camp Guardian",1949,"NOBJ_mob#bat_a01_a::OnMyMobDead"; + bg_monster $@TierraBG1_id2,"bat_a01",273,197,"Croix Camp Guardian",1950,"NOBJ_mob#bat_a01_a::OnMyMobDead"; + end; + +Onkill: + killmonster "bat_a01","NOBJ_mob#bat_a01_b::OnMyMobDead"; + end; + +OnMyMobDead: + end; +} + +bat_a01,185,270,1 script Guillaume Blacksmith#a01 851,{ + if (getcharid(4) == $@TierraBG1_id1) { + mes "[Guillaume Blacksmith]"; + mes "We are in urgency! The Barricade has been destroyed!"; + mes "We can repair the Barricade with ^3131FF50 Stones, 3 Sinew of Bear, 500 Metal Fragments, 30 Rough Elunium and 100 Gold.^000000"; + mes "We have it all except for the 50 Stones!"; + next; + switch(select("Repair.:Leave it.")) { + case 1: + if (countitem(7049) > 49) { + mes "[Guillaume Blacksmith]"; + mes "You brought enough stones! Let's go and repair."; + next; + mes ".."; + next; + mes "...."; + next; + mes "......"; + next; + mes "........"; + next; + mes ".........."; + next; + mes "............"; + next; + mes ".............."; + next; + mes "[Guillaume Blacksmith]"; + mes "Combine Stones and Gold in the proper percentage."; + next; + mes "[Guillaume Blacksmith]"; + mes "Combine Stones and Gold in the proper percentage and shape the Barricade."; + next; + mes "[Guillaume Blacksmith]"; + mes "Combine Stones and Gold in the proper percentage and shape the Barricade, then add Rough Elunium to make it stronger."; + next; + mes "[Guillaume Blacksmith]"; + mes "Combine Stones and Gold in the proper percentage and shape the Barricade, then add Rough Elunium to make it stronger. Now decorate with Metal Fragments."; + next; + mes "[Guillaume Blacksmith]"; + mes "Combine Stones and Gold in the proper percentage and shape the Barricade, then add Rough Elunium to make it stronger. Decorate with Metal Fragments, and plait stones with Sinew of Bear!"; + next; + mes ".............."; + mes ".............."; + mes ".............."; + mes ".............."; + mes ".............."; + next; + specialeffect EF_REPAIRWEAPON; + mes "[Guillaume Blacksmith]"; + mes "Wow! It's done."; + mes "We are relieved."; + delitem 7049,50; //Stone + donpcevent "barricade#bat_a01_a::OnEnable"; + close2; + disablenpc "Guillaume Blacksmith#a01"; + end; + } + else { + mes "[Guillaume Blacksmith]"; + mes "You don't have enough Stones!"; + next; + mes "[Guillaume Blacksmith]"; + mes "^3131FFWe need 50 Stones.^000000"; + mes "We are busy, so please hurry."; + close; + } + case 2: + mes "[Guillaume Blacksmith]"; + mes "There are enemies coming! Let's evacuate from here!"; + close; + } + } + else { + mes "[Guillaume Blacksmith]"; + mes "There the enemy is coming!"; + close; + } + +OnInit: + disablenpc "Guillaume Blacksmith#a01"; + end; +} + +bat_a01,170,121,5 script Croix Blacksmith#bat_a01 851,{ + if (getcharid(4) == $@TierraBG1_id2) { + mes "[Croix Blacksmith]"; + mes "We are in urgency! The Barricade has been destroyed!"; + mes "We can repair the Barricade with ^3131FF50 Stones, 3 Sinew of Bear, 500 Metal Fragments, 30 Rough Elunium and 100 Gold.^000000"; + mes "We have it all except for the 50 Stones!"; + next; + switch(select("Repair.:Leave it.")) { + case 1: + if (countitem(7049) > 49) { + mes "[Croix Blacksmith]"; + mes "You brought enough stones! Let's go and repair."; + next; + mes ".."; + next; + mes "...."; + next; + mes "......"; + next; + mes "........"; + next; + mes ".........."; + next; + mes "............"; + next; + mes ".............."; + next; + mes "[Croix Blacksmith]"; + mes "Combine Stones and Gold in the proper percentage."; + next; + mes "[Croix Blacksmith]"; + mes "Combine Stones and Gold in the proper percentage and shape the Barricade."; + next; + mes "[Croix Blacksmith]"; + mes "Combine Stones and Gold in the proper percentage and shape the Barricade, then add Rough Elunium to make it stronger."; + next; + mes "[Croix Blacksmith]"; + mes "Combine Stones and Gold in the proper percentage and shape the Barricade, then add Rough Elunium to make it stronger. Now decorate with Metal Fragments."; + next; + mes "[Croix Blacksmith]"; + mes "Combine Stones and Gold in the proper percentage and shape the Barricade, then add Rough Elunium to make it stronger. Decorate with Metal Fragments, and plait stones with Sinew of Bear!"; + next; + mes ".............."; + mes ".............."; + mes ".............."; + mes ".............."; + mes ".............."; + next; + specialeffect EF_REPAIRWEAPON; + mes "[Croix Blacksmith]"; + mes "Wow! It's done."; + mes "We are relieved."; + delitem 7049,50; //Stone + donpcevent "barricade#bat_a01_b::OnEnable"; + close2; + disablenpc "Croix Blacksmith#bat_a01"; + end; + } + else { + mes "[Croix Blacksmith]"; + mes "You don't have enough Stones!"; + next; + mes "[Croix Blacksmith]"; + mes "^3131FFWe need 50 Stone.^000000"; + mes "We are busy, so please hurry."; + close; + } + case 2: + mes "[Croix Blacksmith]"; + mes "There are enemies coming! Let's evacuate from here!"; + close; + } + } + else { + mes "[Croix Blacksmith]"; + mes "There, the enemy is coming!"; + close; + } + +OnInit: + disablenpc "Croix Blacksmith#bat_a01"; + end; +} + +bat_a01,53,377,3 script Battle Therapist#a01_a 95,{ + specialeffect2 EF_HEAL; + mes "[Battle Therapist]"; + mes "Just close your eyes,"; + mes "and take a deep breath."; + mes "You can be free from pain."; + close; + end; + +OnInit: + initnpctimer; + end; + +OnEnable: + stopnpctimer; + initnpctimer; + enablenpc "Battle Therapist#a01_a"; + end; + +Onstop: + disablenpc "bat_a01_rp1_a_warp"; + disablenpc "Battle Therapist#a01_a"; + stopnpctimer; + end; + +OnTimer25000: + specialeffect EF_SANCTUARY; + enablenpc "bat_a01_rp1_a_warp"; + end; + +OnTimer26000: + disablenpc "bat_a01_rp1_a_warp"; + end; + +OnTimer26500: + donpcevent "Battle Therapist#a01_a::OnEnable"; + end; +} + +bat_a01,51,375,0 script bat_a01_rp1_a_warp -1,10,10,{ +OnInit: + disablenpc "bat_a01_rp1_a_warp"; + end; + +OnTouch_: + percentheal 100,100; + warp "bat_a01",352,342; + end; +} + +bat_a01,45,19,3 script Battle Therapist#a01_b 95,{ + specialeffect2 EF_HEAL; + mes "[Battle Therapist]"; + mes "Just close your eyes,"; + mes "and take a deep breath."; + mes "You can be free from pain."; + close; + end; + +OnInit: + initnpctimer; + end; + +OnEnable: + stopnpctimer; + initnpctimer; + enablenpc "Battle Therapist#a01_b"; + end; + +Onstop: + disablenpc "bat_a01_rp1_b_warp"; + disablenpc "Battle Therapist#a01_b"; + stopnpctimer; + end; + +OnTimer25000: + specialeffect EF_SANCTUARY; + enablenpc "bat_a01_rp1_b_warp"; + end; + +OnTimer26000: + disablenpc "bat_a01_rp1_b_warp"; + end; + +OnTimer26500: + donpcevent "Battle Therapist#a01_b::OnEnable"; + end; +} + +bat_a01,43,17,0 script bat_a01_rp1_b_warp -1,10,10,{ +OnInit: + disablenpc "bat_a01_rp1_b_warp"; + end; + +OnTouch: + percentheal 100,100; + warp "bat_a01",353,52; + end; +} + +bat_a01,60,216,3 script Valley Ghost#bat_a01_n 950,{ + specialeffect2 EF_HEAL; + mes "[Valley Ghost]"; + mes "Boo...Boo..."; + close; + +OnInit: + initnpctimer; + end; + +OnEnable: + stopnpctimer; + initnpctimer; + end; + +OnTimer25000: + specialeffect EF_SANCTUARY; + enablenpc "bat_a01_rp1_n_warp"; + end; + +OnTimer26000: + disablenpc "bat_a01_rp1_n_warp"; + end; + +OnTimer26500: + donpcevent "Valley Ghost#bat_a01_n::OnEnable"; + end; +} + +bat_a01,55,213,0 script bat_a01_rp1_n_warp -1,10,10,{ +OnInit: + disablenpc "bat_a01_rp1_n_warp"; + end; + +OnTouch: + percentheal 100,100; + warp "bat_a01",301,209; + end; +} + +bat_a01,194,267,0 script barri_warp_up#bat_a01_a -1,7,0,{ +OnTouch: + if (getcharid(4) == $@TierraBG1_id1) + warp "bat_a01",194,261; + end; +} + +bat_a01,194,265,0 script barri_warp_down#bat_a01a -1,7,0,{ +OnTouch: + if (getcharid(4) == $@TierraBG1_id1) + warp "bat_a01",194,270; + end; +} + +bat_a01,177,130,0 script barri_warp_up#bat_a01_b -1,7,0,{ +OnTouch: + if (getcharid(4) == $@TierraBG1_id2) + warp "bat_a01",178,125; + end; +} + +bat_a01,177,128,0 script barri_warp_down#bat_a01b -1,7,0,{ +OnTouch: + if (getcharid(4) == $@TierraBG1_id2) + warp "bat_a01",178,134; + end; +} + +bat_a01,352,342,0 script A_CODE#bat_a01 -1,5,5,{ +OnTouch: + set .@chk_bfquest,checkquest(2069); + if ((.@chk_bfquest == 0) || (.@chk_bfquest == 1)) + setquest 2069; + end; +} + +bat_a01,353,52,0 script B_CODE#bat_a01 -1,5,5,{ +OnTouch: + set .@chk_bfquest,checkquest(2069); + if ((.@chk_bfquest == 0) || (.@chk_bfquest == 1)) + setquest 2069; + end; +} + +bat_a01,169,227,0 script underladd#bat_a01_1 45,1,1,{ +OnTouch_: + warp "bat_a01",178,228; + end; +} + +bat_a01,208,164,0 script underladd#bat_a01_2 45,1,1,{ +OnTouch_: + warp "bat_a01",200,171; + end; +} + +bat_a01,171,309,3 script Guillaume Camp#flag1 973,{ end; } +bat_a01,149,310,3 script Guillaume Camp#flag2 973,{ end; } +bat_a01,119,336,3 script Guillaume Camp#flag3 973,{ end; } +bat_a01,118,357,3 script Guillaume Camp#flag4 973,{ end; } +bat_a01,150,380,3 script Guillaume Camp#flag5 973,{ end; } +bat_a01,173,380,3 script Guillaume Camp#flag6 973,{ end; } +bat_a01,210,344,3 script Guillaume Camp#flag7 973,{ end; } +bat_a01,350,325,3 script Guillaume Camp#flag8 973,{ end; } +bat_a01,358,325,3 script Guillaume Camp#flag9 973,{ end; } + +bat_a01,138,12,3 script Croix Camp#flag1 974,{ end; } +bat_a01,108,36,3 script Croix Camp#flag2 974,{ end; } +bat_a01,108,63,3 script Croix Camp#flag3 974,{ end; } +bat_a01,136,87,3 script Croix Camp#flag4 974,{ end; } +bat_a01,167,86,3 script Croix Camp#flag5 974,{ end; } +bat_a01,199,49,3 script Croix Camp#flag6 974,{ end; } +bat_a01,168,16,3 script Croix Camp#flag7 974,{ end; } +bat_a01,357,74,3 script Croix Camp#flag8 974,{ end; } +bat_a01,348,74,3 script Croix Camp#flag9 974,{ end; } + +bat_a01,53,377,3 script Guillaume Vintenar#a01_a 419,{ + if (getcharid(4) == $@TierraBG1_id1) { + if ($@TierraBG1_Victory == 1) { + set .@your_medal,countitem(7828); + set .@medal_gap, 500 - .@your_medal; + if (.@medal_gap > 2) { + mes "[Axl Rose]"; + mes "Blessed Guillaume!"; + mes "Let's enjoy our glorious victory!"; + mes ""+strcharinfo(0)+", it's a sign reflecting victory."; + close2; + getitem 7828,3; //BF_Badge1 + } + else { + mes "[Axl Rose]"; + mes "Blessed Guillaume!"; + mes "Let's enjoy our glorious victory!"; + mes ""+strcharinfo(0)+", it's a sign reflecting victory."; + close2; + getitem 7828,.@medal_gap; //BF_Badge1 + } + } + else { + set .@your_medal,countitem(7828); + set .@medal_gap, 500 - .@your_medal; + if (.@medal_gap > 0) { + mes "[Axl Rose]"; + mes "You lost, but you're dedicated to this battle."; + mes "This is a reward for your great dedication by Guillaume Marollo!"; + mes "Just take this defeat as a lesson, and next time you will definitely win."; + close2; + getitem 7828,1; //BF_Badge1 + } + else { + mes "[Axl Rose]"; + mes "You lost, but you're dedicated to this battle."; + mes "This is a reward for your great dedication by Guillaume Marollo!"; + mes "Just take this defeat as a lesson, and next time you will definitely win."; + close2; + getitem 7828,.@medal_gap; //BF_Badge1 + } + } + } + else { + if ($@TierraBG1_Victory == 2) { + set .@your_medal,countitem(7828); + set .@medal_gap, 500 - .@your_medal; + if (.@medal_gap > 0) { + mes "[Axl Rose]"; + mes "You lost, but you're dedicated to this battle."; + mes "This is a reward for your great dedication by Guillaume Marollo!"; + mes "Just take this defeat as a lesson, and next time you will definitely win."; + close2; + getitem 7828,1; //BF_Badge1 + } + else { + mes "[Axl Rose]"; + mes "You lost, but you're dedicated to this battle."; + mes "This is a reward for your great dedication by Guillaume Marollo!"; + mes "Just take this defeat as a lesson, and next time you will definitely win."; + close2; + getitem 7828,.@medal_gap; //BF_Badge1 + } + } + else { + set .@your_medal,countitem(7828); + set .@medal_gap, 500 - .@your_medal; + if (.@medal_gap > 2) { + mes "[Axl Rose]"; + mes "Blessed Guillaume!"; + mes "Let's enjoy our glorious victory!"; + mes ""+strcharinfo(0)+", it's a sign reflecting victory."; + close2; + getitem 7828,3; //BF_Badge1 + } + else { + mes "[Axl Rose]"; + mes "Blessed Guillaume!"; + mes "Let's enjoy our glorious victory!"; + mes ""+strcharinfo(0)+", it's a sign of victory."; + close2; + getitem 7828,.@medal_gap; //BF_Badge1 + } + } + } + bg_leave; + warp "bat_room",154,150; + end; + +OnInit: + disablenpc "Guillaume Vintenar#a01_a"; + end; +} + +bat_a01,45,19,3 script Croix Vintenar#a01_b 415,{ + if (getcharid(4) == $@TierraBG1_id2) { + if ($@TierraBG1_Victory == 2) { + set .@your_medal,countitem(7828); + set .@medal_gap, 500 - .@your_medal; + if (.@medal_gap > 2) { + mes "[Swandery]"; + mes "Blessed Croix!"; + mes "Let's enjoy our glorious victory!"; + mes ""+strcharinfo(0)+", it's a sign reflecting victory."; + close2; + getitem 7828,3; //BF_Badge1 + } + else { + mes "[Swandery]"; + mes "Blessed Croix!"; + mes "Let's enjoy our glorious victory!"; + mes ""+strcharinfo(0)+", it's a sign reflecting victory."; + close2; + getitem 7828,.@medal_gap; //BF_Badge1 + } + } + else { + set .@your_medal,countitem(7828); + set .@medal_gap, 500 - .@your_medal; + if (.@medal_gap > 0) { + mes "[Swandery]"; + mes "Oh, "+strcharinfo(0)+" Don't be sad."; + mes "Even though we didn't win, we did our best."; + mes "This is a Royal gift from Croix, and please don't forget this battle. We will win the next one."; + close2; + getitem 7828,1; //BF_Badge1 + } + else { + mes "[Swandery]"; + mes "Oh, "+strcharinfo(0)+" Don't be sad."; + mes "Even though we didn't win, we did our best."; + mes "This is a Royal gift from Croix, and please don't forget this battle. We will win the next one."; + close2; + getitem 7828,.@medal_gap; //BF_Badge1 + } + } + } + else { + if ($@TierraBG1_Victory == 1) { + set .@your_medal,countitem(7828); + set .@medal_gap, 500 - .@your_medal; + if (.@medal_gap > 0) { + mes "[Swandery]"; + mes "Oh, "+strcharinfo(0)+" Don't be sad."; + mes "Even though we didn't win, we did our best."; + mes "This is a Royal gift from Croix, and please don't forget this battle. We will win the next one."; + close2; + getitem 7828,1; //BF_Badge1 + } + else { + mes "[Swandery]"; + mes "Oh, "+strcharinfo(0)+" Don't be sad."; + mes "Even though we didn't win, we did our best."; + mes "This is a Royal gift from Croix, and please don't forget this battle. We will win the next one."; + close2; + getitem 7828,.@medal_gap; //BF_Badge1 + } + } + else { + set .@your_medal,countitem(7828); + set .@medal_gap, 500 - .@your_medal; + if (.@medal_gap > 2) { + mes "[Swandery]"; + mes "Blessed Croix!"; + mes "Let's enjoy our glorious victory!"; + mes ""+strcharinfo(0)+", it's a sign reflecting victory."; + close2; + getitem 7828,3; //BF_Badge1 + } + else { + mes "[Swandery]"; + mes "Blessed Croix!"; + mes "Let's enjoy our glorious victory!"; + mes ""+strcharinfo(0)+", it's a sign reflecting victory."; + close2; + getitem 7828,.@medal_gap; //BF_Badge1 + } + } + } + bg_leave; + warp "bat_room",154,150; + end; + +OnInit: + disablenpc "Croix Vintenar#a01_b"; + end; +} + +bat_a01,1,5,3 script countdown#bat_a01 844,{ +OnEnable: + initnpctimer; + end; + +Onstop: + stopnpctimer; + end; + +OnTimer7000: + mapannounce "bat_a01", "Guillaume Vintenar Axl Rose : Let's attack to burn down Croix's Food Depot!",bc_map,"0xFF9900"; + end; + +OnTimer8000: + mapannounce "bat_a01", "Croix Vintenar Swandery : Master of Valhalla! Let us be gifted with unfailing faith and courage!",bc_map,"0xFF99CC"; + end; + +OnTimer1800000: + mapannounce "bat_a01", "Marollo VII : Guillaume Marollo, Croix Marollo! Marollo followers!",bc_map,"0x99CC00"; + end; + +OnTimer1803000: + mapannounce "bat_a01", "Marollo VII : Both camps are competitive, so no camp would be destroyed easily. That means the Marollo kingdoms will never be defeated!",bc_map,"0x99CC00"; + end; + +OnTimer1808000: + mapannounce "bat_a01", "Marollo VII : I think we'd better terminate the battle, and call it a draw.",bc_map,"0x99CC00"; + end; + +OnTimer1822000: + mapannounce "bat_a01", "Marollo VII : Hold your royalty and faith for a moment, and let's settle up the battle of Tierra Gorge.",bc_map,"0x99CC00"; + end; + +OnTimer1825000: + mapannounce "bat_a01", "Axl Rose, Swandery : Yes sir.",bc_map,"0x99CC00"; + end; + +OnTimer1830000: + mapwarp "bat_a01","bat_room",154,150; + donpcevent "countdown#bat_a01::Onstop"; + end; +} + +/* +bat_a01,351,75,3 script Croix Camp Soldier#bat_a01_guide 934,{ + mes "Loading..."; + close; +} + +bat_a01,356,326,3 script Guillaume Camp Soldier#bat_a01_guide 934,{ + mes "Loading..."; + close; +} +*/ + +/* +bat_a01,1,1,3 script Release all#a01 81,{ + input .@input,0,2000; + if (.@input == 0) { + mes "Cancelled."; + close; + } + else if (.@input == 1854) { + mes "May I help you?"; + next; + switch(select("Release all.:Cancel.")) { + case 1: + mes "Bye."; + close2; + mapwarp "bat_a01","bat_room",154,150; + end; + case 2: + mes "Cancelled."; + } + } +} +*/ + +bat_a01 mapflag battleground +bat_a01 mapflag nomemo +bat_a01 mapflag nosave SavePoint +bat_a01 mapflag noteleport +bat_a01 mapflag nowarp +bat_a01 mapflag nowarpto +bat_a01 mapflag noreturn +bat_a01 mapflag nobranch +bat_a01 mapflag nopenalty diff --git a/npc/battleground/tierra/tierra02.txt b/npc/battleground/tierra/tierra02.txt new file mode 100644 index 000000000..f3b8bc2cd --- /dev/null +++ b/npc/battleground/tierra/tierra02.txt @@ -0,0 +1,951 @@ +//===== eAthena Script ======================================= +// BattleGround System - Tierra Gorge 2 +//===== By: ================================================== +//= L0ne_W0lf +//===== Current Version: ===================================== +//= 1.0 +//===== Compatible With: ===================================== +//= eAthena 1.0 +//===== Description: ========================================= +//= [AEGIS Conversion] +//= Second Tierra Gorge Battleground. +//= - Winning Team: 3 badges +//= - Losing Team: 1 badge +//===== Additional Comments: ================================= +//= 1.0 First Version. +//============================================================ + +// Waiting Room NPCs +//============================================================ +bat_room,114,227,5 script Lieutenant Rundel 418,{ + end; + +OnInit: + waitingroom "Battle Station",10,"start#bat_a02::OnReadyCheck",1; + end; + +OnEnterBG: + set $@TierraBG2_id1, waitingroom2bg("bat_a02",50,374,"start#bat_a02::OnGuillaumeQuit",""); + end; +} + +bat_room,114,204,1 script Lieutenant Guerrit 414,{ + end; + +OnInit: + waitingroom "Battle Station",10,"start#bat_a02::OnReadyCheck",1; + end; + +OnEnterBG: + set $@TierraBG2_id2, waitingroom2bg("bat_a02",42,16,"start#bat_a02::OnCroixQuit",""); + end; +} + +bat_room,1,151,3 script #bat_a02_timer 844,{ + end; + +OnEnable: + initnpctimer; + end; + +OnStop: + stopnpctimer; + end; + +OnTimer1000: + stopnpctimer; + initnpctimer; + set .@chk_bat_a02,getmapusers("bat_a02"); + if (.@chk_bat_a02 < 1) { + set $@TierraBG2,0; set $@TierraBG2_Victory, 0; + if( $@TierraBG2_id1 ) { bg_destroy $@TierraBG2_id1; set $@TierraBG2_id1, 0; } + if( $@TierraBG2_id2 ) { bg_destroy $@TierraBG2_id2; set $@TierraBG2_id2, 0; } + donpcevent "start#bat_a02::OnReadyCheck"; + } + end; +} + +bat_a02,352,342,0 script #bat_a02_quest_a -1,5,5,{ + end; + +OnTouch: + if (checkquest(2069) < 0) + setquest 2069; + end; +} + +bat_a02,353,52,0 script #bat_a02_quest_b -1,5,5,{ + end; + +OnTouch: + if (checkquest(2069) < 0) + setquest 2069; + end; +} + +bat_room,113,220,0 warp back_bgroom02a 1,1,bat_room,154,150 +bat_room,113,211,0 warp back_bgroom02b 1,1,bat_room,154,150 + +// Tierra Gorge Battleground Engine +//============================================================ +bat_a02,15,15,3 script start#bat_a02 844,{ +OnInit: + mapwarp "bat_a02","bat_room",154,150; + end; + +OnEnable: + donpcevent "OBJ#bat_a02_a::Onkill"; + donpcevent "OBJ#bat_a02_a::OnEnable"; + donpcevent "OBJ#bat_a02_b::Onkill"; + donpcevent "OBJ#bat_a02_b::OnEnable"; + donpcevent "barricade#bat_a02_a::Onkill"; + donpcevent "barricade#bat_a02_a::OnEnable"; + donpcevent "barricade#bat_a02_b::Onkill"; + donpcevent "barricade#bat_a02_b::OnEnable"; + donpcevent "OBJ#bat_a02_n::Onkill"; + donpcevent "OBJ#bat_a02_n::OnEnable"; + donpcevent "NOBJ_mob#bat_a02_a::Onkill"; + donpcevent "NOBJ_mob#bat_a02_b::Onkill"; + donpcevent "Battle Therapist#a02_a::OnEnable"; + donpcevent "Battle Therapist#a02_b::OnEnable"; + donpcevent "countdown#bat_a02::OnEnable"; + disablenpc "Guillaume Blacksmith#a02"; + disablenpc "Croix Blacksmith#bat_a02"; + disablenpc "Guillaume Vintenar#a02_a"; + disablenpc "Croix Vintenar#a02_b"; + end; + +OnGuillaumeQuit: +OnCroixQuit: + bg_leave; + end; + +OnReadyCheck: + if( $@TierraBG2 ) + end; + set .@Guillaume, getwaitingroomstate(0,"Lieutenant Rundel"); + set .@Croix, getwaitingroomstate(0,"Lieutenant Guerrit"); + if( !.@Guillaume && !.@Croix ) { + donpcevent "#bat_a02_timer::OnStop"; + end; + } + if( .@Guillaume < 10 || .@Croix < 10 ) + end; + set $@TierraBG2,1; + donpcevent "Lieutenant Rundel::OnEnterBG"; + donpcevent "Lieutenant Guerrit::OnEnterBG"; + donpcevent "start#bat_a02::onEnable"; + bg_warp $@TierraBG2_id1,"bat_a02",352,342; + bg_warp $@TierraBG2_id2,"bat_a02",353,52; + initnpctimer; + end; + +OnTimer10000: + stopnpctimer; + donpcevent "#bat_a02_timer::OnEnable"; + end; +} + +bat_a02,15,16,3 script OBJ#bat_a02_a 844,{ +OnEnable: + bg_monster $@TierraBG2_id1,"bat_a02",177,345,"Food Storage",1909,"OBJ#bat_a02_a::OnMyMobDead"; + end; + +Onkill: + killmonster "bat_a02","OBJ#bat_a02_a::OnMyMobDead"; + end; + +OnMyMobDead: + if (mobcount("bat_a02","OBJ#bat_a02_a::OnMyMobDead") < 1) { + donpcevent "Battle Therapist#a02_a::OnStop"; + donpcevent "Battle Therapist#a02_b::OnStop"; + set $@TierraBG2_Victory, 2; + enablenpc "Guillaume Vintenar#a02_a"; + enablenpc "Croix Vintenar#a02_b"; + mapannounce "bat_a02", "Croix Vintenar Swandery: We destroyed Guillaume's Food Storage. We won that! Wow!",bc_map,"0xFFCE00"; + bg_warp $@TierraBG2_id1,"bat_a02",50,374; + bg_warp $@TierraBG2_id2,"bat_a02",42,16; + } + end; +} + +bat_a02,15,17,3 script OBJ#bat_a02_b 844,{ +OnEnable: + bg_monster $@TierraBG2_id2,"bat_a02",167,50,"Food Depot",1910,"OBJ#bat_a02_b::OnMyMobDead"; + end; + +Onkill: + killmonster "bat_a02","OBJ#bat_a02_b::OnMyMobDead"; + end; + +OnMyMobDead: + if (mobcount("bat_a02","OBJ#bat_a02_b::OnMyMobDead") < 1) { + donpcevent "Battle Therapist#a02_a::OnStop"; + donpcevent "Battle Therapist#a02_b::OnStop"; + set $@TierraBG2_Victory, 1; + enablenpc "Guillaume Vintenar#a02_a"; + enablenpc "Croix Vintenar#a02_b"; + mapannounce "bat_a02", "Guillaume Vintenar Axl Rose : We destroyed Croix's Food Storage. We won that! Wow!",bc_map,"0xFFCE00"; + bg_warp $@TierraBG2_id1,"bat_a02",50,374; + bg_warp $@TierraBG2_id2,"bat_a02",42,16; + } + end; +} + +bat_a02,15,18,3 script barricade#bat_a02_a 844,{ +OnEnable: + for( set .@i,185; .@i < 202; set .@i,.@i+1 ) + bg_monster $@TierraBG2_id1,"bat_a02",.@i,266,"Barricade",1906,"barricade#bat_a02_a::OnMyMobDead"; + setwall "bat_a02",185,266,16,6,1,"bat_a02_c1"; + end; + +Onkill: + killmonster "bat_a02","barricade#bat_a02_a::OnMyMobDead"; + delwall "bat_a02_c1"; + end; + +OnMyMobDead: + if (mobcount("bat_a02","barricade#bat_a02_a::OnMyMobDead") < 17) { + killmonster "bat_a02","barricade#bat_a02_a::OnMyMobDead"; + delwall "bat_a02_c1"; + enablenpc "Guillaume Blacksmith#a02"; + mapannounce "bat_a02", "Guillaume Vintenar Axl Rose : The Barricade in the valley has been destroyed! Where's the Blacksmith? We need to rebuild the Barricade!",bc_map,"0xFFCE00"; + } + end; +} + +bat_a02,15,19,3 script barricade#bat_a02_b 844,{ +OnEnable: + for( set .@i,169; .@i < 186; set .@i,.@i+1 ) + bg_monster $@TierraBG2_id2,"bat_a02",.@i,129,"Barricade",1906,"barricade#bat_a02_b::OnMyMobDead"; + setwall "bat_a02",169,129,16,6,1,"bat_a02_g1"; + end; + +Onkill: + killmonster "bat_a02","barricade#bat_a02_b::OnMyMobDead"; + delwall "bat_a02_g1"; + end; + +OnMyMobDead: + if (mobcount("bat_a02","barricade#bat_a02_b::OnMyMobDead") < 17) { + killmonster "bat_a02","barricade#bat_a02_b::OnMyMobDead"; + delwall "bat_a02_g1"; + enablenpc "Croix Blacksmith#bat_a02"; + mapannounce "bat_a02", "Croix Vintenar Swandery : The Barricade in the valley has been destroyed! Where's the Blacksmith? We need to rebuild the Barricade!",bc_map,"0xFFCE00"; + } + end; +} + +bat_a02,15,20,3 script OBJ#bat_a02_n 844,{ +OnEnable: + monster "bat_a02",273,203,"Neutrality Flag",1911,1,"OBJ#bat_a02_n::OnMyMobDead"; + end; + +Onkill: + killmonster "bat_a02","OBJ#bat_a02_n::OnMyMobDead"; + end; + +OnMyMobDead: + if (mobcount("bat_a02","OBJ#bat_a02_n::OnMyMobDead") < 17) { + bg_team_setxy getcharid(4),56,212; + if (getcharid(4) == $@TierraBG2_id1) { + donpcevent "NOBJ_mob#bat_a02_a::OnEnable"; + mapannounce "bat_a02", "Guillaume captured a Neutrality Flag, so they have an advantage.",bc_map,"0xFFCE00"; + } + else { + donpcevent "NOBJ_mob#bat_a02_b::OnEnable"; + mapannounce "bat_a02", "Croix captured a Neutrality Flag, so they have an advantage.",bc_map,"0xFFCE00"; + } + } + end; +} + +bat_a02,15,21,3 script NOBJ_mob#bat_a02_a 844,{ +OnEnable: + donpcevent "NOBJ_mob#bat_a02_b::Onkill"; + bg_monster $@TierraBG2_id1,"bat_a02",272,204,"Guillaume Camp Guardian",1949,"NOBJ_mob#bat_a02_a::OnMyMobDead"; + bg_monster $@TierraBG2_id1,"bat_a02",272,213,"Guillaume Camp Guardian",1949,"NOBJ_mob#bat_a02_a::OnMyMobDead"; + bg_monster $@TierraBG2_id1,"bat_a02",273,197,"Guillaume Camp Guardian",1950,"NOBJ_mob#bat_a02_a::OnMyMobDead"; + end; + +Onkill: + killmonster "bat_a02","NOBJ_mob#bat_a02_a::OnMyMobDead"; + end; + +OnMyMobDead: + end; +} + +bat_a02,15,22,3 script NOBJ_mob#bat_a02_b 844,{ +OnEnable: + donpcevent "NOBJ_mob#bat_a02_a::Onkill"; + bg_monster $@TierraBG2_id2,"bat_a02",272,204,"Croix Camp Guardian",1949,"NOBJ_mob#bat_a02_a::OnMyMobDead"; + bg_monster $@TierraBG2_id2,"bat_a02",272,213,"Croix Camp Guardian",1949,"NOBJ_mob#bat_a02_a::OnMyMobDead"; + bg_monster $@TierraBG2_id2,"bat_a02",273,197,"Croix Camp Guardian",1950,"NOBJ_mob#bat_a02_a::OnMyMobDead"; + end; + +Onkill: + killmonster "bat_a02","NOBJ_mob#bat_a02_b::OnMyMobDead"; + end; + +OnMyMobDead: + end; +} + +bat_a02,185,270,1 script Guillaume Blacksmith#a02 851,{ + if (getcharid(4) == $@TierraBG2_id1) { + mes "[Guillaume Blacksmith]"; + mes "We are in urgency! The Barricade has been destroyed!"; + mes "We can repair the Barricade with ^3131FF50 Stones, 3 Sinew of Bear, 500 Metal Fragments, 30 Rough Elunium and 100 Gold.^000000"; + mes "We have it all except for the 50 Stones!"; + next; + switch(select("Repair.:Leave it.")) { + case 1: + if (countitem(7049) > 49) { + mes "[Guillaume Blacksmith]"; + mes "You brought enough stones! Let's go and repair."; + next; + mes ".."; + next; + mes "...."; + next; + mes "......"; + next; + mes "........"; + next; + mes ".........."; + next; + mes "............"; + next; + mes ".............."; + next; + mes "[Guillaume Blacksmith]"; + mes "Combine Stones and Gold in the proper percentage."; + next; + mes "[Guillaume Blacksmith]"; + mes "Combine Stones and Gold in the proper percentage and shape the Barricade."; + next; + mes "[Guillaume Blacksmith]"; + mes "Combine Stones and Gold in the proper percentage and shape the Barricade, then add Rough Elunium to make it stronger."; + next; + mes "[Guillaume Blacksmith]"; + mes "Combine Stones and Gold in the proper percentage and shape the Barricade, then add Rough Elunium to make it stronger. Now decorate with Metal Fragments."; + next; + mes "[Guillaume Blacksmith]"; + mes "Combine Stones and Gold in the proper percentage and shape the Barricade, then add Rough Elunium to make it stronger. Decorate with Metal Fragments, and plait stones with Sinew of Bear!"; + next; + mes ".............."; + mes ".............."; + mes ".............."; + mes ".............."; + mes ".............."; + next; + specialeffect EF_REPAIRWEAPON; + mes "[Guillaume Blacksmith]"; + mes "Wow! It's done."; + mes "We are relieved."; + delitem 7049,50; //Stone + donpcevent "barricade#bat_a02_a::OnEnable"; + close2; + disablenpc "Guillaume Blacksmith#a02"; + end; + } + else { + mes "[Guillaume Blacksmith]"; + mes "You don't have enough Stones!"; + next; + mes "[Guillaume Blacksmith]"; + mes "^3131FFWe need 50 Stones.^000000"; + mes "We are busy, so please hurry."; + close; + } + case 2: + mes "[Guillaume Blacksmith]"; + mes "There are enemies coming! Let's evacuate from here!"; + close; + } + } + else { + mes "[Guillaume Blacksmith]"; + mes "There the enemy is coming!"; + close; + } + +OnInit: + disablenpc "Guillaume Blacksmith#a02"; + end; +} + +bat_a02,170,121,5 script Croix Blacksmith#bat_a02 851,{ + if (getcharid(4) == $@TierraBG2_id2) { + mes "[Croix Blacksmith]"; + mes "We are in urgency! The Barricade has been destroyed!"; + mes "We can repair the Barricade with ^3131FF50 Stones, 3 Sinew of Bear, 500 Metal Fragments, 30 Rough Elunium and 100 Gold.^000000"; + mes "We have it all except for the 50 Stones!"; + next; + switch(select("Repair.:Leave it.")) { + case 1: + if (countitem(7049) > 49) { + mes "[Croix Blacksmith]"; + mes "You brought enough stones! Let's go and repair."; + next; + mes ".."; + next; + mes "...."; + next; + mes "......"; + next; + mes "........"; + next; + mes ".........."; + next; + mes "............"; + next; + mes ".............."; + next; + mes "[Croix Blacksmith]"; + mes "Combine Stones and Gold in the proper percentage."; + next; + mes "[Croix Blacksmith]"; + mes "Combine Stones and Gold in the proper percentage and shape the Barricade."; + next; + mes "[Croix Blacksmith]"; + mes "Combine Stones and Gold in the proper percentage and shape the Barricade, then add Rough Elunium to make it stronger."; + next; + mes "[Croix Blacksmith]"; + mes "Combine Stones and Gold in the proper percentage and shape the Barricade, then add Rough Elunium to make it stronger. Now decorate with Metal Fragments."; + next; + mes "[Croix Blacksmith]"; + mes "Combine Stones and Gold in the proper percentage and shape the Barricade, then add Rough Elunium to make it stronger. Decorate with Metal Fragments, and plait stones with Sinew of Bear!"; + next; + mes ".............."; + mes ".............."; + mes ".............."; + mes ".............."; + mes ".............."; + next; + specialeffect EF_REPAIRWEAPON; + mes "[Croix Blacksmith]"; + mes "Wow! It's done."; + mes "We are relieved."; + delitem 7049,50; //Stone + donpcevent "barricade#bat_a02_b::OnEnable"; + close2; + disablenpc "Croix Blacksmith#bat_a02"; + end; + } + else { + mes "[Croix Blacksmith]"; + mes "You don't have enough Stones!"; + next; + mes "[Croix Blacksmith]"; + mes "^3131FFWe need 50 Stone.^000000"; + mes "We are busy, so please hurry."; + close; + } + case 2: + mes "[Croix Blacksmith]"; + mes "There are enemies coming! Let's evacuate from here!"; + close; + } + } + else { + mes "[Croix Blacksmith]"; + mes "There, the enemy is coming!"; + close; + } + +OnInit: + disablenpc "Croix Blacksmith#bat_a02"; + end; +} + +bat_a02,53,377,3 script Battle Therapist#a02_a 95,{ + specialeffect2 EF_HEAL; + mes "[Battle Therapist]"; + mes "Just close your eyes,"; + mes "and take a deep breath."; + mes "You can be free from pain."; + close; + end; + +OnInit: + initnpctimer; + end; + +OnEnable: + stopnpctimer; + initnpctimer; + enablenpc "Battle Therapist#a02_a"; + end; + +Onstop: + disablenpc "bat_a02_rp1_a_warp"; + disablenpc "Battle Therapist#a02_a"; + stopnpctimer; + end; + +OnTimer25000: + specialeffect EF_SANCTUARY; + enablenpc "bat_a02_rp1_a_warp"; + end; + +OnTimer26000: + disablenpc "bat_a02_rp1_a_warp"; + end; + +OnTimer26500: + donpcevent "Battle Therapist#a02_a::OnEnable"; + end; +} + +bat_a02,51,375,0 script bat_a02_rp1_a_warp -1,10,10,{ +OnInit: + disablenpc "bat_a02_rp1_a_warp"; + end; + +OnTouch_: + percentheal 100,100; + warp "bat_a02",352,342; + end; +} + +bat_a02,45,19,3 script Battle Therapist#a02_b 95,{ + specialeffect2 EF_HEAL; + mes "[Battle Therapist]"; + mes "Just close your eyes,"; + mes "and take a deep breath."; + mes "You can be free from pain."; + close; + end; + +OnInit: + initnpctimer; + end; + +OnEnable: + stopnpctimer; + initnpctimer; + enablenpc "Battle Therapist#a02_b"; + end; + +Onstop: + disablenpc "bat_a02_rp1_b_warp"; + disablenpc "Battle Therapist#a02_b"; + stopnpctimer; + end; + +OnTimer25000: + specialeffect EF_SANCTUARY; + enablenpc "bat_a02_rp1_b_warp"; + end; + +OnTimer26000: + disablenpc "bat_a02_rp1_b_warp"; + end; + +OnTimer26500: + donpcevent "Battle Therapist#a02_b::OnEnable"; + end; +} + +bat_a02,43,17,0 script bat_a02_rp1_b_warp -1,10,10,{ +OnInit: + disablenpc "bat_a02_rp1_b_warp"; + end; + +OnTouch: + percentheal 100,100; + warp "bat_a02",353,52; + end; +} + +bat_a02,60,216,3 script Valley Ghost#bat_a02_n 950,{ + specialeffect2 EF_HEAL; + mes "[Valley Ghost]"; + mes "Boo...Boo..."; + close; + +OnInit: + initnpctimer; + end; + +OnEnable: + stopnpctimer; + initnpctimer; + end; + +OnTimer25000: + specialeffect EF_SANCTUARY; + enablenpc "bat_a02_rp1_n_warp"; + end; + +OnTimer26000: + disablenpc "bat_a02_rp1_n_warp"; + end; + +OnTimer26500: + donpcevent "Valley Ghost#bat_a02_n::OnEnable"; + end; +} + +bat_a02,55,213,0 script bat_a02_rp1_n_warp -1,10,10,{ +OnInit: + disablenpc "bat_a02_rp1_n_warp"; + end; + +OnTouch: + percentheal 100,100; + warp "bat_a02",301,209; + end; +} + +bat_a02,194,267,0 script barri_warp_up#bat_a02_a -1,7,0,{ +OnTouch: + if (getcharid(4) == $@TierraBG2_id1) + warp "bat_a02",194,261; + end; +} + +bat_a02,194,265,0 script barri_warp_down#bat_a02a -1,7,0,{ +OnTouch: + if (getcharid(4) == $@TierraBG2_id1) + warp "bat_a02",194,270; + end; +} + +bat_a02,177,130,0 script barri_warp_up#bat_a02_b -1,7,0,{ +OnTouch: + if (getcharid(4) == $@TierraBG2_id2) + warp "bat_a02",178,125; + end; +} + +bat_a02,177,128,0 script barri_warp_down#bat_a02b -1,7,0,{ +OnTouch: + if (getcharid(4) == $@TierraBG2_id2) + warp "bat_a02",178,134; + end; +} + +bat_a02,352,342,0 script A_CODE#bat_a02 -1,5,5,{ +OnTouch: + set .@chk_bfquest,checkquest(2069); + if ((.@chk_bfquest == 0) || (.@chk_bfquest == 1)) + setquest 2069; + end; +} + +bat_a02,353,52,0 script B_CODE#bat_a02 -1,5,5,{ +OnTouch: + set .@chk_bfquest,checkquest(2069); + if ((.@chk_bfquest == 0) || (.@chk_bfquest == 1)) + setquest 2069; + end; +} + +bat_a02,169,227,0 script underladd#bat_a02_1 45,1,1,{ +OnTouch_: + warp "bat_a02",178,228; + end; +} + +bat_a02,208,164,0 script underladd#bat_a02_2 45,1,1,{ +OnTouch_: + warp "bat_a02",200,171; + end; +} + +bat_a02,171,309,3 script Guillaume Camp#flag11 973,{ end; } +bat_a02,149,310,3 script Guillaume Camp#flag12 973,{ end; } +bat_a02,119,336,3 script Guillaume Camp#flag13 973,{ end; } +bat_a02,118,357,3 script Guillaume Camp#flag14 973,{ end; } +bat_a02,150,380,3 script Guillaume Camp#flag15 973,{ end; } +bat_a02,173,380,3 script Guillaume Camp#flag16 973,{ end; } +bat_a02,210,344,3 script Guillaume Camp#flag17 973,{ end; } +bat_a02,350,325,3 script Guillaume Camp#flag18 973,{ end; } +bat_a02,358,325,3 script Guillaume Camp#flag19 973,{ end; } + +bat_a02,138,12,3 script Croix Camp#flag11 974,{ end; } +bat_a02,108,36,3 script Croix Camp#flag12 974,{ end; } +bat_a02,108,63,3 script Croix Camp#flag13 974,{ end; } +bat_a02,136,87,3 script Croix Camp#flag14 974,{ end; } +bat_a02,167,86,3 script Croix Camp#flag15 974,{ end; } +bat_a02,199,49,3 script Croix Camp#flag16 974,{ end; } +bat_a02,168,16,3 script Croix Camp#flag17 974,{ end; } +bat_a02,357,74,3 script Croix Camp#flag18 974,{ end; } +bat_a02,348,74,3 script Croix Camp#flag19 974,{ end; } + +bat_a02,53,377,3 script Guillaume Vintenar#a02_a 419,{ + if (getcharid(4) == $@TierraBG2_id1) { + if ($@TierraBG2_Victory == 1) { + set .@your_medal,countitem(7828); + set .@medal_gap, 500 - .@your_medal; + if (.@medal_gap > 2) { + mes "[Axl Rose]"; + mes "Blessed Guillaume!"; + mes "Let's enjoy our glorious victory!"; + mes ""+strcharinfo(0)+", it's a sign reflecting victory."; + close2; + getitem 7828,3; //BF_Badge1 + } + else { + mes "[Axl Rose]"; + mes "Blessed Guillaume!"; + mes "Let's enjoy our glorious victory!"; + mes ""+strcharinfo(0)+", it's a sign reflecting victory."; + close2; + getitem 7828,.@medal_gap; //BF_Badge1 + } + } + else { + set .@your_medal,countitem(7828); + set .@medal_gap, 500 - .@your_medal; + if (.@medal_gap > 0) { + mes "[Axl Rose]"; + mes "You lost, but you're dedicated to this battle."; + mes "This is a reward for your great dedication by Guillaume Marollo!"; + mes "Just take this defeat as a lesson, and next time you will definitely win."; + close2; + getitem 7828,1; //BF_Badge1 + } + else { + mes "[Axl Rose]"; + mes "You lost, but you're dedicated to this battle."; + mes "This is a reward for your great dedication by Guillaume Marollo!"; + mes "Just take this defeat as a lesson, and next time you will definitely win."; + close2; + getitem 7828,.@medal_gap; //BF_Badge1 + } + } + } + else { + if ($@TierraBG2_Victory == 2) { + set .@your_medal,countitem(7828); + set .@medal_gap, 500 - .@your_medal; + if (.@medal_gap > 0) { + mes "[Axl Rose]"; + mes "You lost, but you're dedicated to this battle."; + mes "This is a reward for your great dedication by Guillaume Marollo!"; + mes "Just take this defeat as a lesson, and next time you will definitely win."; + close2; + getitem 7828,1; //BF_Badge1 + } + else { + mes "[Axl Rose]"; + mes "You lost, but you're dedicated to this battle."; + mes "This is a reward for your great dedication by Guillaume Marollo!"; + mes "Just take this defeat as a lesson, and next time you will definitely win."; + close2; + getitem 7828,.@medal_gap; //BF_Badge1 + } + } + else { + set .@your_medal,countitem(7828); + set .@medal_gap, 500 - .@your_medal; + if (.@medal_gap > 2) { + mes "[Axl Rose]"; + mes "Blessed Guillaume!"; + mes "Let's enjoy our glorious victory!"; + mes ""+strcharinfo(0)+", it's a sign reflecting victory."; + close2; + getitem 7828,3; //BF_Badge1 + } + else { + mes "[Axl Rose]"; + mes "Blessed Guillaume!"; + mes "Let's enjoy our glorious victory!"; + mes ""+strcharinfo(0)+", it's a sign of victory."; + close2; + getitem 7828,.@medal_gap; //BF_Badge1 + } + } + } + warp "bat_room",154,150; + end; + +OnInit: + disablenpc "Guillaume Vintenar#a02_a"; + end; +} + +bat_a02,45,19,3 script Croix Vintenar#a02_b 415,{ + if (getcharid(4) == $@TierraBG2_id2) { + if ($@TierraBG2_Victory == 2) { + set .@your_medal,countitem(7828); + set .@medal_gap, 500 - .@your_medal; + if (.@medal_gap > 2) { + mes "[Swandery]"; + mes "Blessed Croix!"; + mes "Let's enjoy our glorious victory!"; + mes ""+strcharinfo(0)+", it's a sign reflecting victory."; + close2; + getitem 7828,3; //BF_Badge1 + } + else { + mes "[Swandery]"; + mes "Blessed Croix!"; + mes "Let's enjoy our glorious victory!"; + mes ""+strcharinfo(0)+", it's a sign reflecting victory."; + close2; + getitem 7828,.@medal_gap; //BF_Badge1 + } + } + else { + set .@your_medal,countitem(7828); + set .@medal_gap, 500 - .@your_medal; + if (.@medal_gap > 0) { + mes "[Swandery]"; + mes "Oh, "+strcharinfo(0)+" Don't be sad."; + mes "Even though we didn't win, we did our best."; + mes "This is a Royal gift from Croix, and please don't forget this battle. We will win the next one."; + close2; + getitem 7828,1; //BF_Badge1 + } + else { + mes "[Swandery]"; + mes "Oh, "+strcharinfo(0)+" Don't be sad."; + mes "Even though we didn't win, we did our best."; + mes "This is a Royal gift from Croix, and please don't forget this battle. We will win the next one."; + close2; + getitem 7828,.@medal_gap; //BF_Badge1 + } + } + } + else { + if ($@TierraBG2_Victory == 1) { + set .@your_medal,countitem(7828); + set .@medal_gap, 500 - .@your_medal; + if (.@medal_gap > 0) { + mes "[Swandery]"; + mes "Oh, "+strcharinfo(0)+" Don't be sad."; + mes "Even though we didn't win, we did our best."; + mes "This is a Royal gift from Croix, and please don't forget this battle. We will win the next one."; + close2; + getitem 7828,1; //BF_Badge1 + } + else { + mes "[Swandery]"; + mes "Oh, "+strcharinfo(0)+" Don't be sad."; + mes "Even though we didn't win, we did our best."; + mes "This is a Royal gift from Croix, and please don't forget this battle. We will win the next one."; + close2; + getitem 7828,.@medal_gap; //BF_Badge1 + } + } + else { + set .@your_medal,countitem(7828); + set .@medal_gap, 500 - .@your_medal; + if (.@medal_gap > 2) { + mes "[Swandery]"; + mes "Blessed Croix!"; + mes "Let's enjoy our glorious victory!"; + mes ""+strcharinfo(0)+", it's a sign reflecting victory."; + close2; + getitem 7828,3; //BF_Badge1 + } + else { + mes "[Swandery]"; + mes "Blessed Croix!"; + mes "Let's enjoy our glorious victory!"; + mes ""+strcharinfo(0)+", it's a sign reflecting victory."; + close2; + getitem 7828,.@medal_gap; //BF_Badge1 + } + } + } + warp "bat_room",154,150; + end; + +OnInit: + disablenpc "Croix Vintenar#a02_b"; + end; +} + +bat_a02,1,5,3 script countdown#bat_a02 844,{ +OnEnable: + initnpctimer; + end; + +Onstop: + stopnpctimer; + end; + +OnTimer7000: + mapannounce "bat_a02", "Guillaume Vintenar Axl Rose : Let's attack to burn down Croix's Food Depot!",bc_map,"0xFF9900"; + end; + +OnTimer8000: + mapannounce "bat_a02", "Croix Vintenar Swandery : Master of Valhalla! Let us be gifted with unfailing faith and courage!",bc_map,"0xFF99CC"; + end; + +OnTimer1800000: + mapannounce "bat_a02", "Marollo VII : Guillaume Marollo, Croix Marollo! Marollo followers!",bc_map,"0x99CC00"; + end; + +OnTimer1803000: + mapannounce "bat_a02", "Marollo VII : Both camps are competitive, so no camp would be destroyed easily. That means the Marollo kingdoms will never be defeated!",bc_map,"0x99CC00"; + end; + +OnTimer1808000: + mapannounce "bat_a02", "Marollo VII : I think we'd better terminate the battle, and call it a draw.",bc_map,"0x99CC00"; + end; + +OnTimer1822000: + mapannounce "bat_a02", "Marollo VII : Hold your royalty and faith for a moment, and let's settle up the battle of Tierra Gorge.",bc_map,"0x99CC00"; + end; + +OnTimer1825000: + mapannounce "bat_a02", "Axl Rose, Swandery : Yes sir.",bc_map,"0x99CC00"; + end; + +OnTimer1830000: + mapwarp "bat_a02","bat_room",154,150; + donpcevent "countdown#bat_a02::Onstop"; + end; +} + +/* +bat_a02,351,75,3 script Croix Camp Soldier#bat_a02_guide 934,{ + mes "Loading..."; + close; +} + +bat_a02,356,326,3 script Guillaume Camp Soldier#bat_a02_guide 934,{ + mes "Loading..."; + close; +} +*/ + +/* +bat_a02,1,1,3 script Release all#a02 81,{ + input .@input,0,2000; + if (.@input == 0) { + mes "Cancelled."; + close; + } + else if (.@input == 1854) { + mes "May I help you?"; + next; + switch(select("Release all.:Cancel.")) { + case 1: + mes "Bye."; + close2; + mapwarp "bat_a02","bat_room",154,150; + end; + case 2: + mes "Cancelled."; + } + } +} +*/ + +bat_a02 mapflag battleground +bat_a02 mapflag nomemo +bat_a02 mapflag nosave SavePoint +bat_a02 mapflag noteleport +bat_a02 mapflag nowarp +bat_a02 mapflag nowarpto +bat_a02 mapflag noreturn +bat_a02 mapflag nobranch +bat_a02 mapflag nopenalty diff --git a/npc/battleground/tierra/tierra_enter.txt b/npc/battleground/tierra/tierra_enter.txt new file mode 100644 index 000000000..8a74f9b85 --- /dev/null +++ b/npc/battleground/tierra/tierra_enter.txt @@ -0,0 +1,382 @@ +//===== eAthena Script ======================================= +// BattleGround System - Tierra Gorge Entrance NPCs +//===== By: ================================================== +//= L0ne_W0lf +//===== Current Version: ===================================== +//= 1.0 +//===== Compatible With: ===================================== +//= eAthena 1.0 +//===== Description: ========================================= +//= [AEGIS Conversion] +//= Tierra Gorge Battleground Entrance NPCs +//===== Additional Comments: ================================= +//= 1.0 First Version. +//============================================================ + +// First Tierra Gorge Officers - Guillaume & Croix +//============================================================ +bat_room,124,178,5 script Tierra Gorge Officer#01a 418,{ + if (checkweight(1201,1) == 0) { + mes "- Wait a minute !! -"; + mes "- Currently you're carrying -"; + mes "- too many items with you. -"; + mes "- Please try again -"; + mes "- after you loose some weight. -"; + close; + } + mes "[Guillaume Army Officer]"; + mes "Let's show the power of the Guillaume Army to those stinky Croixs!"; + next; + switch(select("I want to join your army!:End Conversation")) { + case 1: + if ((Class == job_Novice) || (BaseClass == Job_Supernovice)) { + mes "[Guillaume Army Officer]"; + mes "I'm very pleased that you want to join us and fight the Croix Army, but I'm sorry: I can't send a rookie like you to die on the cruel battlefield."; + } + else { + if (BaseLevel < 80) { + mes "[Guillaume Army Officer]"; + mes "I'm very pleased that you want to join us and fight the Croix Army, but I'm sorry: I can't send a rookie like you to die on the cruel battlefield."; + } + else { + set .@chk_urtime,checkquest(2069,PLAYTIME); + if ((.@chk_urtime == 0)|| (.@chk_urtime == 1)) { + mes "[Guillaume Army Officer]"; + mes "You seem to have just returned from the battlefield."; + mes "It's too early for you to go back. Go rest, and leave the enemies to us!"; + } + else { + if (.@chk_urtime == 2) + erasequest 2069; + set .@mapcount,getmapusers("bat_a01"); + if (.@mapcount > 0) { + mes "[Guillaume Army Officer]"; + mes "I've received a report informing me that an elite corps has been dispatched to the battlefield fighting the Croixs already."; + mes "Why don't you go wait for a while? I suggest you sharpen your weapons and prepare your supplies until then."; + } + else { + if ($@TierraBG1) { + mes "[Guillaume Army Officer]"; + mes "An elite corps is already standing by to be dispatched to the battlefield."; + mes "Why don't you go wait for a while? I suggest you sharpen your weapons and prepare your supplies until then."; + } + else { + mes "[Guillaume Army Officer]"; + mes "You definitely seem to be ready for battle!"; + mes "Go show the Croixs what fear truly means!"; + mes "Today, our cry of victory shall echo all over the battlefield!"; + close2; + warp "bat_room",57,223; + end; + } + } + } + } + } + break; + case 2: + mes "[Guillaume Army Officer]"; + mes "Today, we shall be victorious!"; + break; + } + close; +} + +bat_room,140,178,5 script Tierra Gorge Officer#02a 418,{ + if (checkweight(1201,1) == 0) { + mes "- Wait a minute !! -"; + mes "- Currently you're carrying -"; + mes "- too many items with you. -"; + mes "- Please try again -"; + mes "- after you loose some weight. -"; + close; + } + mes "[Guillaume Army Officer]"; + mes "Let's show the power of the Guillaume Army to those stinky Croixs!"; + next; + switch(select("I want to join your army!:End Conversation")) { + case 1: + if ((Class == job_Novice) || (BaseClass == Job_Supernovice)) { + mes "[Guillaume Army Officer]"; + mes "I'm very pleased that you want to join us and fight the Croix Army, but I'm sorry: I can't send a rookie like you to die on the cruel battlefield."; + } + else { + if (BaseLevel < 80) { + mes "[Guillaume Army Officer]"; + mes "I'm very pleased that you want to join us and fight the Croix Army, but I'm sorry: I can't send a rookie like you to die on the cruel battlefield."; + } + else { + set .@chk_urtime,checkquest(2069,PLAYTIME); + if (.@chk_urtime == 1) { + mes "[Guillaume Army Officer]"; + mes "You seem to have just returned from the battlefield."; + mes "It's too early for you to go back. Go rest, and leave the enemies to us!"; + } + else { + if (.@chk_urtime == 2) + erasequest 2069; + set .@mapcount,getmapusers("bat_a02"); + if (.@mapcount > 0) { + mes "[Guillaume Army Officer]"; + mes "I've received a report informing me that an elite corps has been dispatched to the battlefield fighting the Croixs already."; + mes "Why don't you go wait for a while? I suggest you sharpen your weapons and prepare your supplies until then."; + } + else { + if ($@TierraBG2) { + mes "[Guillaume Army Officer]"; + mes "An elite corps is already standing by to be dispatched to the battlefield."; + mes "Why don't you go wait for a while? I suggest you sharpen your weapons and prepare your supplies until then."; + } + else { + mes "[Guillaume Army Officer]"; + mes "You definitely seem to be ready for battle!"; + mes "Go show the Croixs what fear truly means!"; + mes "Today, our cry of victory shall echo all over the battlefield!"; + close2; + warp "bat_room",114,223; + end; + } + } + } + } + } + break; + case 2: + mes "[Guillaume Army Officer]"; + mes "Today, we shall be victorious!"; + break; + } + close; +} + +bat_room,127,178,5 script Guillaume Knight#1 417,{ + mes "[Guillaume Knight]"; + mes "Tierra Gorge consists of two steep sides placed vertically, and has ration depots for the Guillaume and Croix Armies at the 11 and 7 o'clock directions."; + next; + mes "[Guillaume Knight]"; + mes "The battle starts at your army's ship, and the goal is to advance and destroy your enemy's rations depot faster than they can destroy yours."; + next; + mes "[Guillaume Knight]"; + mes "The healer of the battlefield will resurrect soldiers once every 25 seconds so that they can rejoin the battle."; + mes "The army that captures the neutral flag in the center of the battlefield will be rewarded with extra regeneration points, meaning their soldiers will resurrect more than the other side, giving them an advantage."; + next; + mes "[Guillaume Knight]"; + mes "Those two rations depots are connected to each other through short and narrow paths, but the gates are blocked with barricades."; + mes "Think and move as quickly as you can. The victory of your army relies on your contribution."; + next; + mes "[Guillaume Knight]"; + mes "Please remember: when you join a battle, you will receive a token which indicates the set duration for which you cannot participate in the same type of battle."; + mes "You may check the duration by pressing the Alt+U keys."; + next; + mes "[Guillaume Knight]"; + mes "Are you ready to battle? Then apply with the recruiter next to me!"; + close; +} + +bat_room,143,178,5 script Guillaume Knight#2 417,{ + mes "[Guillaume Knight]"; + mes "Tierra Gorge consists of two steep sides placed vertically, and has ration depots for the Guillaume and Croix Armies at the 11 and 7 o'clock directions."; + next; + mes "[Guillaume Knight]"; + mes "The battle starts at your army's ship, and the goal is to advance and destroy your enemy's rations depot faster than they can destroy yours."; + next; + mes "[Guillaume Knight]"; + mes "The healer of the battlefield will resurrect soldiers once every 25 seconds so that they can rejoin the battle."; + mes "The army that captures the neutral flag in the center of the battlefield will be rewarded with extra regeneration points, meaning their soldiers will resurrect more than the other side, giving them an advantage."; + next; + mes "[Guillaume Knight]"; + mes "Those two rations depots are connected to each other through short and narrow paths, but the gates are blocked with barricades."; + mes "Think and move as quickly as you can. The victory of your army relies on your contribution."; + next; + mes "[Guillaume Knight]"; + mes "Please remember: when you join a battle, you will receive a token which indicates the set duration for which you cannot participate in the same type of battle."; + mes "You may check the duration by pressing the Alt+U keys."; + next; + mes "[Guillaume Knight]"; + mes "Are you ready to battle? Then apply with the recruiter next to me!"; + close; +} + +bat_room,127,121,1 script Croix Knight#1 413,{ + mes "[Croix Knight]"; + mes "Tierra Gorge consists of two steep sides placed vertically, and has ration depots for the Guillaume and Croix Armies at the 11 and 7 o'clock directions."; + next; + mes "[Croix Knight]"; + mes "The battle starts at your army's ship, and the goal is to advance and destroy your enemy's rations depot faster than they can destroy yours."; + next; + mes "[Croix Knight]"; + mes "The healer of the battlefield will resurrect soldiers once every 25 seconds so that they can rejoin the battle."; + mes "The army that captures the neutral flag in the center of the battlefield will be rewarded with extra regeneration points, meaning their soldiers will resurrect more than the other side, giving them an advantage."; + next; + mes "[Croix Knight]"; + mes "Those two rations depots are connected to each other through short and narrow paths, but the gates are blocked with barricades."; + mes "Think and move as quickly as you can. The victory of your army relies on your contribution."; + next; + mes "[Croix Knight]"; + mes "Please remember: when you join a battle, you will receive a token which indicates the set duration for which you cannot participate in the same type of battle."; + mes "You may check the duration by pressing the Alt+U keys."; + next; + mes "[Croix Knight]"; + mes "Are you ready to battle? Then apply with the recruiter next to me!"; + close; +} + +bat_room,143,121,1 script Croix Knight#2 413,{ + mes "[Croix Knight]"; + mes "Tierra Gorge consists of two steep sides placed vertically, and has ration depots for the Guillaume and Croix Armies at the 11 and 7 o'clock directions."; + next; + mes "[Croix Knight]"; + mes "The battle starts at your army's ship, and the goal is to advance and destroy your enemy's rations depot faster than they can destroy yours."; + next; + mes "[Croix Knight]"; + mes "The healer of the battlefield will resurrect soldiers once every 25 seconds so that they can rejoin the battle."; + mes "The army that captures the neutral flag in the center of the battlefield will be rewarded with extra regeneration points, meaning their soldiers will resurrect more than the other side, giving them an advantage."; + next; + mes "[Croix Knight]"; + mes "Those two rations depots are connected to each other through short and narrow paths, but the gates are blocked with barricades."; + mes "Think and move as quickly as you can. The victory of your army relies on your contribution."; + next; + mes "[Croix Knight]"; + mes "Please remember: when you join a battle, you will receive a token which indicates the set duration for which you cannot participate in the same type of battle."; + mes "You may check the duration by pressing the Alt+U keys."; + next; + mes "[Croix Knight]"; + mes "Are you ready to battle? Then apply with the recruiter next to me!"; + close; +} + +// Second Tierra Gorge Officers - Guillaume & Croix +//============================================================ +bat_room,125,121,1 script Tierra Gorge Officer#01b 414,{ + if (checkweight(1201,1) == 0) { + mes "- Wait a minute !! -"; + mes "- Currently you're carrying -"; + mes "- too many items with you. -"; + mes "- Please try again -"; + mes "- after you loose some weight. -"; + close; + } + mes "[Guillaume Army Officer]"; + mes "Let's show the power of the Guillaume Army to those stinky Croixs!"; + next; + switch(select("I want to join your army!:End Conversation")) { + case 1: + if ((Class == job_Novice) || (BaseClass == Job_Supernovice)) { + mes "[Guillaume Army Officer]"; + mes "I'm very pleased that you want to join us and fight the Croix Army, but I'm sorry: I can't send a rookie like you to die on the cruel battlefield."; + } + else { + if (BaseLevel < 80) { + mes "[Guillaume Army Officer]"; + mes "I'm very pleased that you want to join us and fight the Croix Army, but I'm sorry: I can't send a rookie like you to die on the cruel battlefield."; + } + else { + set .@chk_urtime,checkquest(2069,PLAYTIME); + if ((.@chk_urtime == 0)|| (.@chk_urtime == 1)) { + mes "[Guillaume Army Officer]"; + mes "You seem to have just returned from the battlefield."; + mes "It's too early for you to go back. Go rest, and leave the enemies to us!"; + } + else { + if (.@chk_urtime == 2) + erasequest 2069; + set .@mapcount,getmapusers("bat_a02"); + if (.@mapcount > 0) { + mes "[Croix Army Officer]"; + mes "I've received a report informing me that an elite corps has been dispatched to the battlefield fighting the Guillaume already."; + mes "Why don't you go wait for a while? I suggest you sharpen your weapons and prepare your supplies until then."; + } + else { + if ($@TierraBG1) { + mes "[Croix Army Officer]"; + mes "An elite corps is already standing by to be dispatched to the battlefield."; + mes "Why don't you go wait for a while? I suggest you sharpen your weapons and prepare your supplies until then."; + } + else { + mes "[Croix Army Officer]"; + mes "You definitely seem to be ready for battle!"; + mes "Go show the Guillaumes what fear truly means!"; + mes "Today, our cry of victory shall echo all over the battlefield!"; + close2; + warp "bat_room",57,207; + end; + } + } + } + } + } + break; + case 2: + mes "[Guillaume Army Officer]"; + mes "Today, we shall be victorious!"; + break; + } + close; +} + +bat_room,140,121,1 script Tierra Gorge Officer#02b 414,{ + if (checkweight(1201,1) == 0) { + mes "- Wait a minute !! -"; + mes "- Currently you're carrying -"; + mes "- too many items with you. -"; + mes "- Please try again -"; + mes "- after you loose some weight. -"; + close; + } + mes "[Croix Army Officer]"; + mes "Let's show the power of the Croix Army to those stinky Guillaumes!"; + next; + switch(select("I want to join your army!:End Conversation")) { + case 1: + if ((Class == job_Novice) || (BaseClass == Job_Supernovice)) { + mes "[Croix Army Officer]"; + mes "I'm very pleased that you want to join us and fight the Guillaume Army, but I'm sorry: I can't send a rookie like you to die on the cruel battlefield."; + } + else { + if (BaseLevel < 80) { + mes "[Croix Army Officer]"; + mes "I'm very pleased that you want to join us and fight the Guillaume Army, but I'm sorry: I can't send a rookie like you to die on the cruel battlefield."; + } + else { + set .@chk_urtime,checkquest(2069,PLAYTIME); + if (.@chk_urtime == 1) { + mes "[Croix Army Officer]"; + mes "You seem to have just returned from the battlefield."; + mes "It's too early for you to go back. Go rest, and leave the enemies to us!"; + } + else { + if (.@chk_urtime == 2) + erasequest 2069; + set .@mapcount,getmapusers("bat_a02"); + if (.@mapcount > 0) { + mes "[Croix Army Officer]"; + mes "I've received a report informing me that an elite corps has been dispatched to the battlefield fighting the Guillaume already."; + mes "Why don't you go wait for a while? I suggest you sharpen your weapons and prepare your supplies until then."; + } + else { + if ($@TierraBG2) { + mes "[Croix Army Officer]"; + mes "An elite corps is already standing by to be dispatched to the battlefield."; + mes "Why don't you go wait for a while? I suggest you sharpen your weapons and prepare your supplies until then."; + } + else { + mes "[Croix Army Officer]"; + mes "You definitely seem to be ready for battle!"; + mes "Go show the Guillaumes what fear truly means!"; + mes "Today, our cry of victory shall echo all over the battlefield!"; + close2; + warp "bat_room",114,207; + end; + } + } + } + } + } + break; + case 2: + mes "[Croix Army Officer]"; + mes "Today, we shall be victorious!"; + break; + } + close; +} diff --git a/npc/custom/battleground/bg_tierra_01.txt b/npc/custom/battleground/bg_tierra_01.txt new file mode 100644 index 000000000..e65a2424c --- /dev/null +++ b/npc/custom/battleground/bg_tierra_01.txt @@ -0,0 +1,488 @@ +// ============================================================================== +// BattleGround System - Tierra Valley 1 +// ============================================================================== + +// Registration NPC's +// ********************************************************************* + +bat_room,58,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,58,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 storehouse. 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 storehouse. 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; + } + + setquest 2069; + 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; + } + + setquest 2069; + 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/custom/battleground/bg_tierra_02.txt b/npc/custom/battleground/bg_tierra_02.txt new file mode 100644 index 000000000..a669b06dd --- /dev/null +++ b/npc/custom/battleground/bg_tierra_02.txt @@ -0,0 +1,488 @@ +// ============================================================================== +// BattleGround System - Tierra Valley 2 +// ============================================================================== + +// Registration NPC's +// ********************************************************************* + +bat_room,114,227,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,114,204,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 storehouse. 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 storehouse. 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; + } + + setquest 2069; + 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; + } + + setquest 2069; + 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; +} diff --git a/npc/scripts_athena.conf b/npc/scripts_athena.conf index 928f4c583..a50ffc15f 100644 --- a/npc/scripts_athena.conf +++ b/npc/scripts_athena.conf @@ -320,11 +320,20 @@ npc: npc/other/arena/arena_aco.txt npc: npc/other/monster_race.txt // -------------------------------------------------------------- // --------------------- Battle Grounds ------------------------- -//npc: npc/battleground/KVM/kvm_enter.txt -//npc: npc/battleground/KVM/kvm_item_pay.txt -//npc: npc/battleground/KVM/kvm01.txt -//npc: npc/battleground/KVM/kvm02.txt -//npc: npc/battleground/KVM/kvm03.txt +// Common NPCs +npc: npc/battleground/bg_common.txt +// Tierra Gorge +npc: npc/battleground/tierra/tierra_enter.txt +npc: npc/battleground/tierra/tierra01.txt +npc: npc/battleground/tierra/tierra02.txt +// Flavius +//npc: npc/battleground/flavius/flavius_enter.txt +// Kreiger Von Midgard +npc: npc/battleground/kvm/kvm_enter.txt +npc: npc/battleground/kvm/kvm_item_pay.txt +npc: npc/battleground/kvm/kvm01.txt +npc: npc/battleground/kvm/kvm02.txt +npc: npc/battleground/kvm/kvm03.txt // -------------------------------------------------------------- // ------------------------ Instances --------------------------- npc: npc/instances/SealedShrine.txt diff --git a/npc/scripts_custom.conf b/npc/scripts_custom.conf index 35f81b146..9dcaeb012 100644 --- a/npc/scripts_custom.conf +++ b/npc/scripts_custom.conf @@ -71,9 +71,8 @@ // BattleGround (please read conf/battle/battleground.conf before // uncomment battleground scripts). // -------------------------------------------------------------- -//npc: npc/battleground/bg_common.txt -//npc: npc/battleground/bg_tierra_01.txt -//npc: npc/battleground/bg_tierra_02.txt +//npc: npc/custom/battleground/bg_tierra_01.txt +//npc: npc/custom/battleground/bg_tierra_02.txt //npc: npc/battleground/bg_flavius_01.txt //npc: npc/battleground/bg_flavius_02.txt -- cgit v1.2.3-70-g09d2