diff options
-rw-r--r-- | doc/script_commands.txt | 17 | ||||
-rw-r--r-- | npc/Changelog.txt | 13 | ||||
-rw-r--r-- | npc/battleground/bg_common.txt | 483 | ||||
-rw-r--r-- | npc/battleground/bg_flavius_01.txt | 4 | ||||
-rw-r--r-- | npc/battleground/bg_flavius_02.txt | 4 | ||||
-rw-r--r-- | npc/battleground/bg_kvm01.txt | 391 | ||||
-rw-r--r-- | npc/battleground/bg_kvm02.txt | 391 | ||||
-rw-r--r-- | npc/battleground/bg_kvm03.txt | 391 | ||||
-rw-r--r-- | npc/battleground/bg_tierra_01.txt | 4 | ||||
-rw-r--r-- | npc/battleground/bg_tierra_02.txt | 4 | ||||
-rw-r--r-- | npc/battleground/kvm/kvm01.txt | 435 | ||||
-rw-r--r-- | npc/battleground/kvm/kvm02.txt | 432 | ||||
-rw-r--r-- | npc/battleground/kvm/kvm03.txt | 434 | ||||
-rw-r--r-- | npc/battleground/kvm/kvm_enter.txt | 211 | ||||
-rw-r--r-- | npc/battleground/kvm/kvm_item_pay.txt | 313 | ||||
-rw-r--r-- | npc/other/Global_Functions.txt | 55 | ||||
-rw-r--r-- | npc/other/arena/arena_aco.txt | 7 | ||||
-rw-r--r-- | npc/other/arena/arena_party.txt | 5 | ||||
-rw-r--r-- | npc/scripts_athena.conf | 7 |
19 files changed, 1950 insertions, 1651 deletions
diff --git a/doc/script_commands.txt b/doc/script_commands.txt index cac34320f..2ec53e227 100644 --- a/doc/script_commands.txt +++ b/doc/script_commands.txt @@ -1007,6 +1007,7 @@ From here on, we will have the commands sorted as follow: 5.- Mob / NPC -related commands. 6.- Other commands. 7.- Instance Commands. +8.- Quest Log Commands. ===================== |1.- Basic commands.| @@ -2585,6 +2586,11 @@ and return the number of slots this kind of items has - 0 if they are not slotted. It will also be 0 for all non-equippable items, naturally, unless someone messed up the item database. It will return -1 if there is no such item. +Example(s): + +//@slots now has the amount of slots of the item with ID 1205. + set @slots, getItemSlots(1205); + --------------------------------------- *getiteminfo(<item ID>,<type>) @@ -2619,18 +2625,7 @@ This func returns CARD ID, 255,254,-255 (for card 0, if the item is produced) it when you want to check item cards or if it's signed. Useful for such quests as "Sign this refined item with players name" etc; Hat[0] +4 -> Player's Hat[0] +4 - ---------------------------------------- -*getitemslots(<item id>) - -Returns the amount of slots the item has. - -Example(s): - -//@slots now has the amount of slots of the item with ID 1205. - set @slots, getItemSlots(1205); - --------------------------------------- // 2,1.- End of item-related commands. diff --git a/npc/Changelog.txt b/npc/Changelog.txt index 00cc42438..b8b441b74 100644 --- a/npc/Changelog.txt +++ b/npc/Changelog.txt @@ -1,6 +1,19 @@ Date Added ====== 2010/07/29 + * Rev. 14369 A rather large overhaul of the battlegrounds. [L0ne_W0lf] + - in bg_common.txt, stripped out KvM npcs, fixed coordinates. + - Needs to be tested, none of the BG files are on by default. + - Created subfolder battleground/KvM/ which now holds KVM files. + - Added kvm_enter.txt, which warps players to the waiting rooms. + - Added kvm_item_pay.txt, which holds the point redemption NPC. + - Made the KvM battlegrounds work closer to official, needs work. + * Corrected variable typos in the acolyte arena. (bugreport:4374) + * Corrected donpcevent typo in the party arena. (bugreport:4374) + * Added two global functions which will return equip data as strings. + - F_GetWeaponType: returns the type of weapon by 'look', (ie "Dagger") + - F_GetArmorType: returns the kind of armor via 'equip loc'. (ie "Armor") +2010/07/29 * Rev. 14366 Added the acolyte-specific arena to the Izlude arena. [L0ne_W0lf] 2010/07/08 * Rev. 14362 Official Lighthalzen Gangster Alert script. [Gepard] diff --git a/npc/battleground/bg_common.txt b/npc/battleground/bg_common.txt index c9dd7c232..3c6ce01a6 100644 --- a/npc/battleground/bg_common.txt +++ b/npc/battleground/bg_common.txt @@ -10,7 +10,6 @@ bat_room mapflag nowarpto bat_room mapflag nobranch bat_room mapflag nopenalty bat_room mapflag noteleport -bat_room mapflag nosave SavePoint // BattleGround Warper - Entrance // ********************************************************************* @@ -178,9 +177,9 @@ function script Time2Str { return .@Time$; } -// Guillaume Knight - Tierra Valley +// Guillaume Knight - Tierra Gorge // ********************************************************************* -bat_room,159,178,5 script Guillaume Knight#1 417,{ +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; @@ -199,7 +198,7 @@ bat_room,159,178,5 script Guillaume Knight#1 417,{ // Tierra Officer - Guillaume // ********************************************************************* -bat_room,156,178,5 script Tierra Valley Officer#1 418,{ +bat_room,124,178,5 script Tierra Gorge Officer#1 418,{ mes "[Tierra Officer]"; if( Bat_Team == 2 ) { @@ -244,13 +243,13 @@ bat_room,156,178,5 script Tierra Valley Officer#1 418,{ mes "Good luck!"; close2; - warp "bat_room",85,224; + warp "bat_room",57,223; end; } -// Croix Knight - Tierra Valley +// Croix Knight - Tierra Gorge // ********************************************************************* -bat_room,159,121,1 script Croix Knight#1 413,{ +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; @@ -269,7 +268,7 @@ bat_room,159,121,1 script Croix Knight#1 413,{ // Tierra Officer - Croix // ********************************************************************* -bat_room,156,121,1 script Tierra Valley Officer#2 414,{ +bat_room,125,121,1 script Tierra Gorge Officer#2 414,{ mes "[Tierra Officer]"; if( Bat_Team == 1 ) { @@ -314,13 +313,13 @@ bat_room,156,121,1 script Tierra Valley Officer#2 414,{ mes "Good luck!"; close2; - warp "bat_room",85,208; + warp "bat_room",57,207; end; } // Guillaume Knight - Tierra // ********************************************************************* -bat_room,167,178,5 script Guillaume Knight#2 417,{ +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; @@ -339,7 +338,7 @@ bat_room,167,178,5 script Guillaume Knight#2 417,{ // Tierra Officer - Guillaume // ********************************************************************* -bat_room,164,178,5 script Tierra Valley Officer#3 418,{ +bat_room,140,178,5 script Tierra Gorge Officer#3 418,{ mes "[Tierra Officer]"; if( Bat_Team == 2 ) { @@ -384,13 +383,13 @@ bat_room,164,178,5 script Tierra Valley Officer#3 418,{ mes "Good luck!"; close2; - warp "bat_room",57,94; + warp "bat_room",114,223; end; } // Croix Knight - Tierra // ********************************************************************* -bat_room,167,121,1 script Croix Knight#2 413,{ +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; @@ -409,7 +408,7 @@ bat_room,167,121,1 script Croix Knight#2 413,{ // Tierra Officer - Croix // ********************************************************************* -bat_room,164,121,1 script Tierra Valley Officer#4 414,{ +bat_room,140,121,1 script Tierra Gorge Officer#4 414,{ mes "[Tierra Officer]"; if( Bat_Team == 1 ) { @@ -454,13 +453,13 @@ bat_room,164,121,1 script Tierra Valley Officer#4 414,{ mes "Good luck!"; close2; - warp "bat_room",57,77; + warp "bat_room",114,204; end; } // Guillaune Knight - Flavius // ********************************************************************* -bat_room,175,178,5 script Guillaume Knight#3 417,{ +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; @@ -480,7 +479,7 @@ bat_room,175,178,5 script Guillaume Knight#3 417,{ // Flavius Officer - Guillaume // ********************************************************************* -bat_room,172,178,5 script Flavius Officer#1 418,{ +bat_room,133,178,5 script Flavius Officer#1 418,{ mes "[Flavius Officer]"; if( Bat_Team == 2 ) { @@ -525,13 +524,13 @@ bat_room,172,178,5 script Flavius Officer#1 418,{ mes "Good luck!"; close2; - warp "bat_room",85,94; + warp "bat_room",85,223; end; } // Croix Knight - Flavius // ********************************************************************* -bat_room,175,121,1 script Croix Knight#3 413,{ +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; @@ -551,7 +550,7 @@ bat_room,175,121,1 script Croix Knight#3 413,{ // Flavius Officerer - Croix // ********************************************************************* -bat_room,172,121,1 script Flavius Officer#2 414,{ +bat_room,133,121,1 script Flavius Officer#2 414,{ mes "[Flavius Officer]"; if( Bat_Team == 1 ) { @@ -596,7 +595,7 @@ bat_room,172,121,1 script Flavius Officer#2 414,{ mes "Good luck!"; close2; - warp "bat_room",85,77; + warp "bat_room",85,207; end; } @@ -667,7 +666,7 @@ bat_room,148,178,5 script Flavius Officer#3 418,{ mes "Good luck!"; close2; - warp "bat_room",253,94; + warp "bat_room",141,207; end; } @@ -738,415 +737,7 @@ bat_room,148,121,1 script Flavius Officer#4 414,{ mes "Good luck!"; close2; - warp "bat_room",253,77; - end; -} - -// Guillaume Knight - KvM -// ********************************************************************* -bat_room,143,178,5 script Guillaume Knight#5 417,{ - mes "[Guillaume Knight]"; - mes "To win the Battle of Kriger Von Midgard you and your team must kill all the other opponents before all of you die."; - next; - mes "[Guillaume Knight]"; - mes "The first team to lose all their soldiers loses."; - next; - mes "[Guillaume Knight]"; - mes "Since you cannot come back to battle after you die, taking care on the battlefield is essential."; - next; - mes "[Guillaume Knight]"; - mes "Are you ready for battle? Then apply with the recruiter next to me!"; - close; -} - -// KvM Officerer - Guillaume -// ********************************************************************* -bat_room,140,178,5 script KVM [80-99] Officer#1 418,{ - mes "[KVM Officer]"; - if( Bat_Team == 2 ) - { - mes "Get out of here you stinky Croix!"; - close; - } - - if( Bat_Team == 0 ) - { - mes "Please sign up for an army with Prince Croix or General Guillaume!"; - close; - } - - mes "Hello " + strcharinfo(0) + ", let's show the power of the Guillaume Army to those stinky Croixs!"; - next; - if( select("I want to join your army!:End Conversation") == 2 ) - close; - - mes "[KVM Officer]"; - if( BG_Delay_Tick >= gettimetick(2) ) - { - mes "You are a Deserter!!"; - mes "Because of running away, you need to wait ^0000FF" + callfunc("Time2Str",BG_Delay_Tick) + "^000000 to join again a BattleGround."; - close; - } - - if( checkquest(6025,PLAYTIME) == 2 ) erasequest 6025; - if( checkquest(6025,PLAYTIME) != -1 ) - { - mes "You have received an indicator showing that you've participated in the Battle at KvM. I can't let you participate in any other battles until the indicator goes off."; - next; - mes "[KVM Officer]"; - mes "Stand-by for KvM Battle until the time limit passes."; - close; - } - - if( BaseLevel < 80 ) - { - mes "I'm very please you want to join our army, but I'm sorry: This arena is for players with baselevel from 80 to 99."; - close; - } - - mes "Good luck!"; - close2; - warp "bat_room",253,224; - end; -} - -// Croix Knight - KvM -// ********************************************************************* -bat_room,143,121,1 script Croix Knight#5 413,{ - mes "[Croix Knight]"; - mes "To win the Battle of Kriger Von Midgard you and your team must kill all the other opponents before all of you die."; - next; - mes "[Croix Knight]"; - mes "The first team to lose all their soldiers loses."; - next; - mes "[Croix Knight]"; - mes "Since you cannot come back to battle after you die, taking care on the battlefield is essential."; - next; - mes "[Croix Knight]"; - mes "Are you ready for battle? Then apply with the recruiter next to me!"; - close; -} - -// KvM Officer - Croix -// ********************************************************************* -bat_room,140,121,1 script KVM [80-99] Officer#2 414,{ - mes "[KVM Officer]"; - if( Bat_Team == 1 ) - { - mes "Get out of here you stupid Guillaume!"; - close; - } - - if( Bat_Team == 0 ) - { - mes "Please sign up for an army with Prince Croix or General Guillaume!"; - close; - } - - mes "Hello " + strcharinfo(0) + ", let's show the power of the Croix Army to those stinky Guillaumes!"; - next; - if( select("I want to join your army!:End Conversation") == 2 ) - close; - - mes "[KVM Officer]"; - if( BG_Delay_Tick >= gettimetick(2) ) - { - mes "You are a Deserter!!"; - mes "Because of running away, you need to wait ^0000FF" + callfunc("Time2Str",BG_Delay_Tick) + "^000000 to join again a BattleGround."; - close; - } - - if( checkquest(6025,PLAYTIME) == 2 ) erasequest 6025; - if( checkquest(6025,PLAYTIME) != -1 ) - { - mes "You have received an indicator showing that you've participated in the Battle at KvM. I can't let you participate in any other battles until the indicator goes off."; - next; - mes "[KVM Officer]"; - mes "Stand-by for KvM Battle until the time limit passes."; - close; - } - - if( BaseLevel < 80 ) - { - mes "I'm very please you want to join our army, but I'm sorry: This arena is for players with baselevel from 80 to 99."; - close; - } - - mes "Good luck!"; - close2; - warp "bat_room",253,208; - end; -} - -// Guillaume Knight - KvM -// ********************************************************************* -bat_room,135,178,5 script Guillaume Knight#6 417,{ - mes "[Guillaume Knight]"; - mes "To win the Battle of Kriger Von Midgard you and your team must kill all the other opponents before all of you die."; - next; - mes "[Guillaume Knight]"; - mes "The first team to lose all their soldiers loses."; - next; - mes "[Guillaume Knight]"; - mes "Since you cannot come back to battle after you die, taking care on the battlefield is essential."; - next; - mes "[Guillaume Knight]"; - mes "Are you ready for battle? Then apply with the recruiter next to me!"; - close; -} - -// KvM Officerer - Guillaume -// ********************************************************************* -bat_room,132,178,5 script KVM [60-79] Officer#1 418,{ - mes "[KVM Officer]"; - if( Bat_Team == 2 ) - { - mes "Get out of here you stinky Croix!"; - close; - } - - if( Bat_Team == 0 ) - { - mes "Please sign up for an army with Prince Croix or General Guillaume!"; - close; - } - - mes "Hello " + strcharinfo(0) + ", let's show the power of the Guillaume Army to those stinky Croixs!"; - next; - if( select("I want to join your army!:End Conversation") == 2 ) - close; - - mes "[KVM Officer]"; - if( BG_Delay_Tick >= gettimetick(2) ) - { - mes "You are a Deserter!!"; - mes "Because of running away, you need to wait ^0000FF" + callfunc("Time2Str",BG_Delay_Tick) + "^000000 to join again a BattleGround."; - close; - } - - if( checkquest(6025,PLAYTIME) == 2 ) erasequest 6025; - if( checkquest(6025,PLAYTIME) != -1 ) - { - mes "You have received an indicator showing that you've participated in the Battle at KvM. I can't let you participate in any other battles until the indicator goes off."; - next; - mes "[KVM Officer]"; - mes "Stand-by for KvM Battle until the time limit passes."; - close; - } - - if( BaseLevel < 60 || BaseLevel > 79 ) - { - mes "I'm very please you want to join our army, but I'm sorry: This arena is for players with baselevel from 60 to 79."; - close; - } - - mes "Good luck!"; - close2; - warp "bat_room",225,224; - end; -} - -// Croix Knight - KvM -// ********************************************************************* -bat_room,135,121,1 script Croix Knight#6 413,{ - mes "[Croix Knight]"; - mes "To win the Battle of Kriger Von Midgard you and your team must kill all the other opponents before all of you die."; - next; - mes "[Croix Knight]"; - mes "The first team to lose all their soldiers loses."; - next; - mes "[Croix Knight]"; - mes "Since you cannot come back to battle after you die, taking care on the battlefield is essential."; - next; - mes "[Croix Knight]"; - mes "Are you ready for battle? Then apply with the recruiter next to me!"; - close; -} - -// KvM Officer - Croix -// ********************************************************************* -bat_room,132,121,1 script KVM [60-79] Officer#2 414,{ - mes "[KVM Officer]"; - if( Bat_Team == 1 ) - { - mes "Get out of here you stupid Guillaume!"; - close; - } - - if( Bat_Team == 0 ) - { - mes "Please sign up for an army with Prince Croix or General Guillaume!"; - close; - } - - mes "Hello " + strcharinfo(0) + ", let's show the power of the Croix Army to those stinky Guillaumes!"; - next; - if( select("I want to join your army!:End Conversation") == 2 ) - close; - - mes "[KVM Officer]"; - if( BG_Delay_Tick >= gettimetick(2) ) - { - mes "You are a Deserter!!"; - mes "Because of running away, you need to wait ^0000FF" + callfunc("Time2Str",BG_Delay_Tick) + "^000000 to join again a BattleGround."; - close; - } - - if( checkquest(6025,PLAYTIME) == 2 ) erasequest 6025; - if( checkquest(6025,PLAYTIME) != -1 ) - { - mes "You have received an indicator showing that you've participated in the Battle at KvM. I can't let you participate in any other battles until the indicator goes off."; - next; - mes "[KVM Officer]"; - mes "Stand-by for KvM Battle until the time limit passes."; - close; - } - - if( BaseLevel < 60 || BaseLevel > 79 ) - { - mes "I'm very please you want to join our army, but I'm sorry: This arena is for players with baselevel from 60 to 79."; - close; - } - - mes "Good luck!"; - close2; - warp "bat_room",225,208; - end; -} - -// Guillaume Knight - KvM -// ********************************************************************* -bat_room,127,178,5 script Guillaume Knight#7 417,{ - mes "[Guillaume Knight]"; - mes "To win the Battle of Kriger Von Midgard you and your team must kill all the other opponents before all of you die."; - next; - mes "[Guillaume Knight]"; - mes "The first team to lose all their soldiers loses."; - next; - mes "[Guillaume Knight]"; - mes "Since you cannot come back to battle after you die, taking care on the battlefield is essential."; - next; - mes "[Guillaume Knight]"; - mes "Are you ready for battle? Then apply with the recruiter next to me!"; - close; -} - -// KvM Officerer - Guillaume -// ********************************************************************* -bat_room,124,178,5 script KVM [1-59] Officer#1 418,{ - mes "[KVM Officer]"; - if( Bat_Team == 2 ) - { - mes "Get out of here you stinky Croix!"; - close; - } - - if( Bat_Team == 0 ) - { - mes "Please sign up for an army with Prince Croix or General Guillaume!"; - close; - } - - mes "Hello " + strcharinfo(0) + ", let's show the power of the Guillaume Army to those stinky Croixs!"; - next; - if( select("I want to join your army!:End Conversation") == 2 ) - close; - - mes "[KVM Officer]"; - if( BG_Delay_Tick >= gettimetick(2) ) - { - mes "You are a Deserter!!"; - mes "Because of running away, you need to wait ^0000FF" + callfunc("Time2Str",BG_Delay_Tick) + "^000000 to join again a BattleGround."; - close; - } - - if( checkquest(6025,PLAYTIME) == 2 ) erasequest 6025; - if( checkquest(6025,PLAYTIME) != -1 ) - { - mes "You have received an indicator showing that you've participated in the Battle at KvM. I can't let you participate in any other battles until the indicator goes off."; - next; - mes "[KVM Officer]"; - mes "Stand-by for KvM Battle until the time limit passes."; - close; - } - - if( BaseLevel > 59 ) - { - mes "I'm very please you want to join our army, but I'm sorry: This arena is for players with baselevel from 1 to 59."; - close; - } - - mes "Good luck!"; - close2; - warp "bat_room",197,224; - end; -} - -// Croix Knight - KvM -// ********************************************************************* -bat_room,127,121,1 script Croix Knight#7 413,{ - mes "[Croix Knight]"; - mes "To win the Battle of Kriger Von Midgard you and your team must kill all the other opponents before all of you die."; - next; - mes "[Croix Knight]"; - mes "The first team to lose all their soldiers loses."; - next; - mes "[Croix Knight]"; - mes "Since you cannot come back to battle after you die, taking care on the battlefield is essential."; - next; - mes "[Croix Knight]"; - mes "Are you ready for battle? Then apply with the recruiter next to me!"; - close; -} - -// KvM Officer - Croix -// ********************************************************************* -bat_room,124,121,1 script KVM [1-59] Officer#2 414,{ - mes "[KVM Officer]"; - if( Bat_Team == 1 ) - { - mes "Get out of here you stupid Guillaume!"; - close; - } - - if( Bat_Team == 0 ) - { - mes "Please sign up for an army with Prince Croix or General Guillaume!"; - close; - } - - mes "Hello " + strcharinfo(0) + ", let's show the power of the Croix Army to those stinky Guillaumes!"; - next; - if( select("I want to join your army!:End Conversation") == 2 ) - close; - - mes "[KVM Officer]"; - if( BG_Delay_Tick >= gettimetick(2) ) - { - mes "You are a Deserter!!"; - mes "Because of running away, you need to wait ^0000FF" + callfunc("Time2Str",BG_Delay_Tick) + "^000000 to join again a BattleGround."; - close; - } - - if( checkquest(6025,PLAYTIME) == 2 ) erasequest 6025; - if( checkquest(6025,PLAYTIME) != -1 ) - { - mes "You have received an indicator showing that you've participated in the Battle at KvM. I can't let you participate in any other battles until the indicator goes off."; - next; - mes "[KVM Officer]"; - mes "Stand-by for KvM Battle until the time limit passes."; - close; - } - - if( BaseLevel > 59 ) - { - mes "I'm very please you want to join our army, but I'm sorry: This arena is for players with baselevel from 1 to 59."; - close; - } - - mes "Good luck!"; - close2; - warp "bat_room",197,208; + warp "bat_room",141,227; end; } @@ -1181,10 +772,10 @@ 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 Valley bat_a02 +// Tierra Gorge bat_a02 bat_room,85,81,0 duplicate(warp2bat_room) bat5 45,1,1 bat_room,85,90,0 duplicate(warp2bat_room) bat6 45,1,1 -// Tierra Valley bat_a01 +// Tierra Gorge bat_a01 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 @@ -1203,31 +794,22 @@ bat_room,141,211,0 duplicate(warp2bat_room) bat16 45,1,1 bat_room,169,81,0 duplicate(warp2bat_room) bat17 45,1,1 bat_room,169,90,0 duplicate(warp2bat_room) bat18 45,1,1 // Free BG -bat_room,169,220,0 duplicate(warp2bat_room) bat19 45,1,1 -bat_room,169,211,0 duplicate(warp2bat_room) bat20 45,1,1 -// Free BG bat_room,197,81,0 duplicate(warp2bat_room) bat21 45,1,1 bat_room,197,90,0 duplicate(warp2bat_room) bat22 45,1,1 -// KvM bat_c03 -bat_room,197,220,0 duplicate(warp2bat_room) bat23 45,1,1 -bat_room,197,211,0 duplicate(warp2bat_room) bat24 45,1,1 // Free BG bat_room,225,81,0 duplicate(warp2bat_room) bat25 45,1,1 bat_room,225,90,0 duplicate(warp2bat_room) bat26 45,1,1 -// KvM bat_c02 -bat_room,225,220,0 duplicate(warp2bat_room) bat27 45,1,1 -bat_room,225,211,0 duplicate(warp2bat_room) bat28 45,1,1 // Flavius bat_b01 bat_room,253,81,0 duplicate(warp2bat_room) bat29 45,1,1 bat_room,253,90,0 duplicate(warp2bat_room) bat30 45,1,1 -// KvM bat_c01 +// Unknown bat_room,253,220,0 duplicate(warp2bat_room) bat31 45,1,1 bat_room,253,211,0 duplicate(warp2bat_room) bat32 45,1,1 // Badges Repairman // ********************************************************************* -bat_room,138,144,5 script Repairman#bg 99,{ +bat_room,138,144,5 script Repairman#bg 86,{ callfunc "repairmain","Repairman"; end; } @@ -1240,7 +822,7 @@ bat_room,160,150,3 script Erundek 109,{ mes "Welcome, mighty warrior."; mes "What can I do for you today ?"; next; - switch( select("Check the Catalog","Exchange Bravery Badges","Exchange Valor Badges","Exchange Heroism Badges","Hmm, nothing I guess.") ) + switch( select("Check the Catalog","Exchange Bravery Badges","Exchange Valor Badges","Hmm, nothing I guess.") ) { case 1: mes "[Erundek]"; @@ -1248,14 +830,14 @@ bat_room,160,150,3 script Erundek 109,{ close2; Readbook 11010,1; end; - case 5: + case 4: mes "[Erundek]"; mes "As you wish."; mes "See you later."; close; case 2: // Bravery Badges mes "[Erundek]"; - mes "So you want to exchange ^0000FFBravery Badges^000000 from the Battle of Tierra Valley."; + mes "So you want to exchange ^0000FFBravery Badges^000000 from the Battle of Tierra Gorge."; mes "What kind of item do you want to exchange?"; next; deletearray .@Item_DB[0],127; @@ -1289,13 +871,8 @@ bat_room,160,150,3 script Erundek 109,{ } break; - case 4: // Heroism Badge - mes "[Erundek]"; - mes "So you want to exchange ^FFA500Heroism Badges^000000 from the Battle of Kriger Von Midgard."; - mes "This shop is not available at the moment."; - close; } - + mes "[Erundek]"; mes "What item do you want to exchange?"; mes "If you are not sure, check the catalog."; diff --git a/npc/battleground/bg_flavius_01.txt b/npc/battleground/bg_flavius_01.txt index 1bfe06db9..1a61b4255 100644 --- a/npc/battleground/bg_flavius_01.txt +++ b/npc/battleground/bg_flavius_01.txt @@ -5,7 +5,7 @@ // Registration NPC's // ********************************************************************* -bat_room,253,97,4 script Registration::Fl1R_Guillaume 418,{ +bat_room,86,227,4 script Registration::Fl1R_Guillaume 418,{ end; OnInit: waitingroom "Battle Station 10 Players",10,"Flavius_BG1::OnGuillaumeJoin",1; @@ -15,7 +15,7 @@ OnEnterBG: end; } -bat_room,253,74,0 script Registration::Fl1R_Croix 414,{ +bat_room,85,204,0 script Registration::Fl1R_Croix 414,{ end; OnInit: waitingroom "Battle Station 10 Players",10,"Flavius_BG1::OnCroixJoin",1; diff --git a/npc/battleground/bg_flavius_02.txt b/npc/battleground/bg_flavius_02.txt index 31365f91f..c4e51fcea 100644 --- a/npc/battleground/bg_flavius_02.txt +++ b/npc/battleground/bg_flavius_02.txt @@ -5,7 +5,7 @@ // Registration NPC's // ********************************************************************* -bat_room,57,97,4 script Registration::Fl2R_Guillaume 418,{ +bat_room,142,227,4 script Registration::Fl2R_Guillaume 418,{ end; OnInit: waitingroom "Battle Station 10 Players",10,"Flavius_BG2::OnGuillaumeJoin",1; @@ -15,7 +15,7 @@ OnEnterBG: end; } -bat_room,57,74,0 script Registration::Fl2R_Croix 414,{ +bat_room,142,204,0 script Registration::Fl2R_Croix 414,{ end; OnInit: waitingroom "Battle Station 10 Players",10,"Flavius_BG2::OnCroixJoin",1; diff --git a/npc/battleground/bg_kvm01.txt b/npc/battleground/bg_kvm01.txt deleted file mode 100644 index f8b767277..000000000 --- a/npc/battleground/bg_kvm01.txt +++ /dev/null @@ -1,391 +0,0 @@ -// ============================================================================== -// BattleGround System - KvM 80~99 -// ============================================================================== - -// Registration NPC's -// ********************************************************************* - -bat_room,253,227,4 script Registration::KvM01R_Guillaume 418,{ // KvM Guillaume - end; - -OnInit: - waitingroom "Battle Station 5 Players",5,"KvM01_BG::OnGuillaumeJoin",1; - end; - -OnEnterBG: - set $@KvM01BG_id1, waitingroom2bg("bat_c01",53,128,"KvM01_BG::OnGuillaumeQuit","KvM01_BG::OnGuillaumeDie"); - end; -} - -bat_room,253,204,0 script Registration::KvM01R_Croix 414,{ // KvM Croix - end; - -OnInit: - waitingroom "Battle Station 5 Players",5,"KvM01_BG::OnCroixJoin",1; - end; - -OnEnterBG: - set $@KvM01BG_id2, waitingroom2bg("bat_c01",146,55,"KvM01_BG::OnCroixQuit","KvM01_BG::OnCroixDie"); - end; -} - -// Light Effects -// ********************************************************************* - -bat_c01,54,123,0 script #bat_c01a 111,{ - end; - -OnKvM01LightA: misceffect 54; end; -OnKvM01LightB: misceffect 55; end; -OnKvM01LightC: misceffect 56; end; -} - -bat_c01,56,125,0 duplicate(#bat_c01a) #bat_c01b 111 -bat_c01,58,127,0 duplicate(#bat_c01a) #bat_c01c 111 -bat_c01,141,56,0 duplicate(#bat_c01a) #bat_c01d 111 -bat_c01,143,58,0 duplicate(#bat_c01a) #bat_c01e 111 -bat_c01,145,60,0 duplicate(#bat_c01a) #bat_c01f 111 - -// Battleground Engine -// ********************************************************************* - -- script KvM01_BG -1,{ - end; - -OnInit: - setwall "bat_c01",54,122,6,7,0,"batc01wall_a"; - setwall "bat_c01",55,122,5,7,0,"batc01wall_b"; - setwall "bat_c01",140,56,6,7,0,"batc01wall_c"; - setwall "bat_c01",140,57,5,7,0,"batc01wall_d"; - disablenpc "TherapistKvM01a"; - disablenpc "TherapistKvM01b"; - disablenpc "VintenarKvM01a"; - disablenpc "VintenarKvM01b"; - end; - -OnGuillaumeJoin: -OnCroixJoin: - donpcevent "KvM01_BG::OnReadyCheck"; - end; - -OnGuillaumeQuit: - set BG_Delay_Tick, gettimetick(2) + 1200; -OnGuillaumeDie: - if( $@KvM01BG == 2 ) - { - set .Guillaume_Count, .Guillaume_Count - 1; - set .Croix_Score, .Croix_Score + 1; - bg_updatescore "bat_c01",.Guillaume_Score,.Croix_Score; - if( .Guillaume_Count < 1 ) donpcevent "KvM01_BG::OnCroixWin"; - } - end; - -OnCroixQuit: - set BG_Delay_Tick, gettimetick(2) + 1200; -OnCroixDie: - if( $@KvM01BG == 2 ) - { - set .Croix_Count, .Croix_Count - 1; - set .Guillaume_Score, .Guillaume_Score + 1; - bg_updatescore "bat_c01",.Guillaume_Score,.Croix_Score; - if( .Croix_Count < 1 ) donpcevent "KvM01_BG::OnGuillaumeWin"; - } - end; - -OnReadyCheck: - if( $@KvM01BG ) - end; - set .@Guillaume, getwaitingroomstate(0,"KvM01R_Guillaume"); - set .@Croix, getwaitingroomstate(0,"KvM01R_Croix"); - - if( .@Guillaume < 5 || .@Croix < 5 ) - { - if( .@Guillaume > 3 && .@Croix > 3 && !agitcheck() && !agitcheck2() && $@KvM_Flood < gettimetick(2) ) - { - announce "Battleground -- Kreiger Von Midgard [80-99] G: " + .@Guillaume + "/5, C: " + .@Croix + "/5",0,0x696969; - set $@KvM_Flood, gettimetick(2) + 15; - } - else - mapannounce "bat_room","Battleground -- Kreiger Von Midgard [80-99] G: " + .@Guillaume + "/5, C: " + .@Croix + "/5",1,0x696969; - end; - } - - set $@KvM01BG, 1; // Starting - donpcevent "KvM01R_Croix::OnEnterBG"; - donpcevent "KvM01R_Guillaume::OnEnterBG"; - donpcevent "KvM01_BG::OnStart"; - end; - -OnStart: - announce "Battleground -- Kreiger Von Midgard [80-99] has started!",0,0x696969; - enablenpc "TherapistKvM01a"; - enablenpc "TherapistKvM01b"; - disablenpc "VintenarKvM01a"; - disablenpc "VintenarKvM01b"; - set $@KvM01BG_Victory, 0; - sleep 2000; - // Warp Teams - bg_warp $@KvM01BG_id1,"bat_c01",53,128; - bg_warp $@KvM01BG_id2,"bat_c01",146,55; - // ScoreBoard - set .Guillaume_Score, 0; - set .Croix_Score, 0; - initnpctimer; - end; - -OnTimer5000: - areapercentheal "bat_c01",50,123,58,131,100,100; - areapercentheal "bat_c01",141,52,149,60,100,100; - mapannounce "bat_c01","The Battle will start in 25 seconds!!",1,0x696969; - end; - -OnTimer26000: - mapannounce "bat_c01","The Battle will start in 4 seconds!!",1,0x696969; - end; - -OnTimer27000: - donpcevent "::OnKvM01LightA"; - end; - -OnTimer28000: - donpcevent "::OnKvM01LightB"; - end; - -OnTimer29000: - donpcevent "::OnKvM01LightC"; - end; - -OnTimer30000: - // Team Members - set .Guillaume_Count, bg_get_data($@KvM01BG_id1, 0); - set .Croix_Count, bg_get_data($@KvM01BG_id2, 0); - if( .Guillaume_Count < 5 || .Croix_Count < 5 ) - { - set $@KvM01BG_Victory, 3; - set $@KvM01BG, 3; - mapannounce "bat_c01","There are not enough players to start the battle",1,0x696969; - stopnpctimer; - sleep 2000; - donpcevent "KvM01_BG::OnStop"; - end; - } - - set $@KvM01BG, 2; // Playing - areapercentheal "bat_c01",50,123,58,131,100,100; - bg_warp $@KvM01BG_id1,"bat_c01",62,119; - areapercentheal "bat_c01",141,52,149,60,100,100; - bg_warp $@KvM01BG_id2,"bat_c01",137,64; - end; - -OnTimer32000: - mapannounce "bat_c01","The Battle of Kreiger Von Midgard has begun!!",1,0x696969; - end; - -OnTimer300000: - mapannounce "bat_c01","The Battle will ends in 30 seconds!!",1,0x696969; - end; - -OnTimer330000: - if( .Croix_Count > .Guillaume_Count ) - donpcevent "KvM01_BG::OnCroixWin"; - else if( .Croix_Count < .Guillaume_Count ) - donpcevent "KvM01_BG::OnGuillaumeWin"; - else - { // Draw Game - set $@KvM01BG, 3; - set $@KvM01BG_Victory, 3; - - stopnpctimer; - sleep 2000; - mapannounce "bat_c01","The time is out! This is a Tie...",1,0x696969; - donpcevent "KvM01_BG::OnStop"; - } - end; - -OnGuillaumeWin: - set $@KvM01BG, 3; - set $@KvM01BG_Victory, 1; - - stopnpctimer; - sleep 2000; - mapannounce "bat_c01","The Guillaume Army has won the Battle of Kreiger Von Midgard",1,0x0000FF; - donpcevent "KvM01_BG::OnStop"; - end; - -OnCroixWin: - set $@KvM01BG, 3; - set $@KvM01BG_Victory, 2; - - stopnpctimer; - sleep 2000; - mapannounce "bat_c01","The Croix Army has won the Battle of Kreiger Von Midgard",1,0xFF0000; - donpcevent "KvM01_BG::OnStop"; - end; - -OnStop: - disablenpc "TherapistKvM01a"; - disablenpc "TherapistKvM01b"; - enablenpc "VintenarKvM01a"; - enablenpc "VintenarKvM01b"; - // Warp Teams - bg_warp $@KvM01BG_id1,"bat_c01",53,128; - bg_warp $@KvM01BG_id2,"bat_c01",146,55; - donpcevent "KvM01_BG_Out::OnBegin"; - end; - -OnReset: - stopnpctimer; - stopnpctimer "KvM01_BG_Out"; - set .Croix_Count, 0; - set .Guillaume_Count, 0; - set .Croix_Score, 0; - set .Guillaume_Score, 0; - set $@KvM01BG_Victory, 0; - if( $@KvM01BG_id1 ) { bg_destroy $@KvM01BG_id1; set $@KvM01BG_id1, 0; } - if( $@KvM01BG_id2 ) { bg_destroy $@KvM01BG_id2; set $@KvM01BG_id2, 0; } - disablenpc "TherapistKvM01a"; - disablenpc "TherapistKvM01b"; - disablenpc "VintenarKvM01a"; - disablenpc "VintenarKvM01b"; - sleep 1000; - mapwarp "bat_c01","bat_room",155,150; - sleep 2000; - maprespawnguildid "bat_c01",0,3; // Just in case someone else - bg_updatescore "bat_c01",0,0; - sleep 2000; - set $@KvM01BG, 0; - donpcevent "KvM01_BG::OnReadyCheck"; // Maybe a game is ready to start - end; -} - -- script KvM01_BG_Out -1,{ - end; - -OnBegin: - initnpctimer; - end; - -OnTimer3000: - mapannounce "bat_c01","Battle of Kreiger Von Midgard will close in 1 minute!",1,0x696969; - end; -OnTimer30000: - mapannounce "bat_c01","Battle of Kreiger Von Midgard will close in 30 seconds!",1,0x696969; - end; -OnTimer50000: - mapannounce "bat_c01","Battle of Kreiger Von Midgard will close in 10 seconds!",1,0x696969; - end; -OnTimer60000: - donpcevent "KvM01_BG::OnReset"; - end; -} - -// Battleground Therapist -// ********************************************************************* - -bat_c01,51,130,5 script Therapist in battle::TherapistKvM01a 95,{ - mes "[Therapist in battle]"; - mes "Just close your eyes, and take a deep breathe."; - mes "You can be free from pain."; - specialeffect2 312; - close; -} - -bat_c01,148,53,1 script Therapist in battle::TherapistKvM01b 95,{ - mes "[Therapist in battle]"; - mes "Just close your eyes, and take a deep breathe."; - mes "You can be free from pain."; - specialeffect2 312; - close; -} - -// Battleground rewards -// ********************************************************************* - -bat_c01,51,130,5 script Guillaume Vintenar::VintenarKvM01a 419,{ - if( $@KvM01BG_Victory ) - { - if( $@KvM01BG_Victory == 3 ) - { - setquest 6025; - bg_leave; - warp "bat_room",155,150; - end; - } - else if( $@KvM01BG_Victory == Bat_Team ) - { // Victory - set .@Reward, 5; - mes "[Swandery]"; - mes "Blessed Guillaume!!"; - mes "Let's enjoy our glorious victory!"; - mes "" + strcharinfo(0) + ", its a sign reflecting victory"; - close2; - } - else - { // - set .@Reward, 1; - mes "[Swandery]"; - mes "You lost, but you're dedicated to this battle."; - mes "This is a reward for your great dedication by Guillaume Marollo!"; - mes "Just take this defeat a lesson, and later you would definitely learn."; - close2; - } - - setquest 6025; - getitem 7773, .@Reward; - bg_leave; - warp "bat_room",155,150; - end; - } - end; -} - -bat_c01,148,53,1 script Croix Vintenar::VintenarKvM01b 415,{ - if( $@KvM01BG_Victory ) - { - if( $@KvM01BG_Victory == 3 ) - { - setquest 6025; - bg_leave; - warp "bat_room",155,150; - end; - } - else if( $@KvM01BG_Victory == Bat_Team ) - { // Victory - set .@Reward, 5; - mes "[Swandery]"; - mes "Blessed Croax!!"; - mes "Let's enjoy our glorious victory!"; - mes "" + strcharinfo(0) + ", its a sign reflecting victory"; - close2; - } - else - { // - set .@Reward, 1; - mes "[Swandery]"; - mes "Oh, " + strcharinfo(0) + ". Don't be sad."; - mes "Even though we didn't win, we did our best."; - mes "This is a Royal gift from Croix, and please don't forget this battle. We can win the next."; - close2; - } - - setquest 6025; - getitem 7773, .@Reward; - bg_leave; - warp "bat_room",155,150; - end; - } - end; -} - -// MapFlags -// ********************************************************************* - -bat_c01 mapflag battleground 2 -bat_c01 mapflag nomemo -bat_c01 mapflag nosave SavePoint -bat_c01 mapflag noteleport -bat_c01 mapflag nowarp -bat_c01 mapflag nowarpto -bat_c01 mapflag noreturn -bat_c01 mapflag nobranch -bat_c01 mapflag nopenalty diff --git a/npc/battleground/bg_kvm02.txt b/npc/battleground/bg_kvm02.txt deleted file mode 100644 index 4116f7f58..000000000 --- a/npc/battleground/bg_kvm02.txt +++ /dev/null @@ -1,391 +0,0 @@ -// ============================================================================== -// BattleGround System - KvM 60~79 -// ============================================================================== - -// Registration NPC's -// ********************************************************************* - -bat_room,225,227,4 script Registration::KvM02R_Guillaume 418,{ // KvM Guillaume - end; - -OnInit: - waitingroom "Battle Station 5 Players",5,"KvM02_BG::OnGuillaumeJoin",1; - end; - -OnEnterBG: - set $@KvM02BG_id1, waitingroom2bg("bat_c02",53,128,"KvM02_BG::OnGuillaumeQuit","KvM02_BG::OnGuillaumeDie"); - end; -} - -bat_room,225,204,0 script Registration::KvM02R_Croix 414,{ // KvM Croix - end; - -OnInit: - waitingroom "Battle Station 5 Players",5,"KvM02_BG::OnCroixJoin",1; - end; - -OnEnterBG: - set $@KvM02BG_id2, waitingroom2bg("bat_c02",146,55,"KvM02_BG::OnCroixQuit","KvM02_BG::OnCroixDie"); - end; -} - -// Light Effects -// ********************************************************************* - -bat_c02,54,123,0 script #bat_c02a 111,{ - end; - -OnKvM02LightA: misceffect 54; end; -OnKvM02LightB: misceffect 55; end; -OnKvM02LightC: misceffect 56; end; -} - -bat_c02,56,125,0 duplicate(#bat_c02a) #bat_c02b 111 -bat_c02,58,127,0 duplicate(#bat_c02a) #bat_c02c 111 -bat_c02,141,56,0 duplicate(#bat_c02a) #bat_c02d 111 -bat_c02,143,58,0 duplicate(#bat_c02a) #bat_c02e 111 -bat_c02,145,60,0 duplicate(#bat_c02a) #bat_c02f 111 - -// Battleground Engine -// ********************************************************************* - -- script KvM02_BG -1,{ - end; - -OnInit: - setwall "bat_c02",54,122,6,7,0,"batc02wall_a"; - setwall "bat_c02",55,122,5,7,0,"batc02wall_b"; - setwall "bat_c02",140,56,6,7,0,"batc02wall_c"; - setwall "bat_c02",140,57,5,7,0,"batc02wall_d"; - disablenpc "TherapistKvM02a"; - disablenpc "TherapistKvM02b"; - disablenpc "VintenarKvM02a"; - disablenpc "VintenarKvM02b"; - end; - -OnGuillaumeJoin: -OnCroixJoin: - donpcevent "KvM02_BG::OnReadyCheck"; - end; - -OnGuillaumeQuit: - set BG_Delay_Tick, gettimetick(2) + 1200; -OnGuillaumeDie: - if( $@KvM02BG == 2 ) - { - set .Guillaume_Count, .Guillaume_Count - 1; - set .Croix_Score, .Croix_Score + 1; - bg_updatescore "bat_c02",.Guillaume_Score,.Croix_Score; - if( .Guillaume_Count < 1 ) donpcevent "KvM02_BG::OnCroixWin"; - } - end; - -OnCroixQuit: - set BG_Delay_Tick, gettimetick(2) + 1200; -OnCroixDie: - if( $@KvM02BG == 2 ) - { - set .Croix_Count, .Croix_Count - 1; - set .Guillaume_Score, .Guillaume_Score + 1; - bg_updatescore "bat_c02",.Guillaume_Score,.Croix_Score; - if( .Croix_Count < 1 ) donpcevent "KvM02_BG::OnGuillaumeWin"; - } - end; - -OnReadyCheck: - if( $@KvM02BG ) - end; - set .@Guillaume, getwaitingroomstate(0,"KvM02R_Guillaume"); - set .@Croix, getwaitingroomstate(0,"KvM02R_Croix"); - - if( .@Guillaume < 5 || .@Croix < 5 ) - { - if( .@Guillaume > 3 && .@Croix > 3 && !agitcheck() && !agitcheck2() && $@KvM_Flood < gettimetick(2) ) - { - announce "Battleground -- Kreiger Von Midgard [60-79] G: " + .@Guillaume + "/5, C: " + .@Croix + "/5",0,0x808080; - set $@KvM_Flood, gettimetick(2) + 15; - } - else - mapannounce "bat_room","Battleground -- Kreiger Von Midgard [60-79] G: " + .@Guillaume + "/5, C: " + .@Croix + "/5",1,0x808080; - end; - } - - set $@KvM02BG, 1; // Starting - donpcevent "KvM02R_Croix::OnEnterBG"; - donpcevent "KvM02R_Guillaume::OnEnterBG"; - donpcevent "KvM02_BG::OnStart"; - end; - -OnStart: - announce "Battleground -- Kreiger Von Midgard [60-79] has started!",0,0x808080; - enablenpc "TherapistKvM02a"; - enablenpc "TherapistKvM02b"; - disablenpc "VintenarKvM02a"; - disablenpc "VintenarKvM02b"; - set $@KvM02BG_Victory, 0; - sleep 2000; - // Warp Teams - bg_warp $@KvM02BG_id1,"bat_c02",53,128; - bg_warp $@KvM02BG_id2,"bat_c02",146,55; - // ScoreBoard - set .Guillaume_Score, 0; - set .Croix_Score, 0; - initnpctimer; - end; - -OnTimer5000: - areapercentheal "bat_c02",50,123,58,131,100,100; - areapercentheal "bat_c02",141,52,149,60,100,100; - mapannounce "bat_c02","The Battle will start in 25 seconds!!",1,0x808080; - end; - -OnTimer26000: - mapannounce "bat_c02","The Battle will start in 4 seconds!!",1,0x808080; - end; - -OnTimer27000: - donpcevent "::OnKvM02LightA"; - end; - -OnTimer28000: - donpcevent "::OnKvM02LightB"; - end; - -OnTimer29000: - donpcevent "::OnKvM02LightC"; - end; - -OnTimer30000: - // Team Members - set .Guillaume_Count, bg_get_data($@KvM02BG_id1, 0); - set .Croix_Count, bg_get_data($@KvM02BG_id2, 0); - if( .Guillaume_Count < 5 || .Croix_Count < 5 ) - { - set $@KvM02BG_Victory, 3; - set $@KvM02BG, 3; - mapannounce "bat_c02","There are not enough players to start the battle",1,0x808080; - stopnpctimer; - sleep 2000; - donpcevent "KvM02_BG::OnStop"; - end; - } - - set $@KvM02BG, 2; // Playing - areapercentheal "bat_c02",50,123,58,131,100,100; - bg_warp $@KvM02BG_id1,"bat_c02",62,119; - areapercentheal "bat_c02",141,52,149,60,100,100; - bg_warp $@KvM02BG_id2,"bat_c02",137,64; - end; - -OnTimer32000: - mapannounce "bat_c02","The Battle of Kreiger Von Midgard has begun!!",1,0x808080; - end; - -OnTimer300000: - mapannounce "bat_c02","The Battle will ends in 30 seconds!!",1,0x808080; - end; - -OnTimer330000: - if( .Croix_Count > .Guillaume_Count ) - donpcevent "KvM02_BG::OnCroixWin"; - else if( .Croix_Count < .Guillaume_Count ) - donpcevent "KvM02_BG::OnGuillaumeWin"; - else - { // Draw Game - set $@KvM02BG, 3; - set $@KvM02BG_Victory, 3; - - stopnpctimer; - sleep 2000; - mapannounce "bat_c02","The time is out! This is a Tie...",1,0x808080; - donpcevent "KvM02_BG::OnStop"; - } - end; - -OnGuillaumeWin: - set $@KvM02BG, 3; - set $@KvM02BG_Victory, 1; - - stopnpctimer; - sleep 2000; - mapannounce "bat_c02","The Guillaume Army has won the Battle of Kreiger Von Midgard",1,0x0000FF; - donpcevent "KvM02_BG::OnStop"; - end; - -OnCroixWin: - set $@KvM02BG, 3; - set $@KvM02BG_Victory, 2; - - stopnpctimer; - sleep 2000; - mapannounce "bat_c02","The Croix Army has won the Battle of Kreiger Von Midgard",1,0xFF0000; - donpcevent "KvM02_BG::OnStop"; - end; - -OnStop: - disablenpc "TherapistKvM02a"; - disablenpc "TherapistKvM02b"; - enablenpc "VintenarKvM02a"; - enablenpc "VintenarKvM02b"; - // Warp Teams - bg_warp $@KvM02BG_id1,"bat_c02",53,128; - bg_warp $@KvM02BG_id2,"bat_c02",146,55; - donpcevent "KvM02_BG_Out::OnBegin"; - end; - -OnReset: - stopnpctimer; - stopnpctimer "KvM02_BG_Out"; - set .Croix_Count, 0; - set .Guillaume_Count, 0; - set .Croix_Score, 0; - set .Guillaume_Score, 0; - set $@KvM02BG_Victory, 0; - if( $@KvM02BG_id1 ) { bg_destroy $@KvM02BG_id1; set $@KvM02BG_id1, 0; } - if( $@KvM02BG_id2 ) { bg_destroy $@KvM02BG_id2; set $@KvM02BG_id2, 0; } - disablenpc "TherapistKvM02a"; - disablenpc "TherapistKvM02b"; - disablenpc "VintenarKvM02a"; - disablenpc "VintenarKvM02b"; - sleep 1000; - mapwarp "bat_c02","bat_room",155,150; - sleep 2000; - maprespawnguildid "bat_c02",0,3; // Just in case someone else - bg_updatescore "bat_c02",0,0; - sleep 2000; - set $@KvM02BG, 0; - donpcevent "KvM02_BG::OnReadyCheck"; // Maybe a game is ready to start - end; -} - -- script KvM02_BG_Out -1,{ - end; - -OnBegin: - initnpctimer; - end; - -OnTimer3000: - mapannounce "bat_c02","Battle of Kreiger Von Midgard will close in 1 minute!",1,0x808080; - end; -OnTimer30000: - mapannounce "bat_c02","Battle of Kreiger Von Midgard will close in 30 seconds!",1,0x808080; - end; -OnTimer50000: - mapannounce "bat_c02","Battle of Kreiger Von Midgard will close in 10 seconds!",1,0x808080; - end; -OnTimer60000: - donpcevent "KvM02_BG::OnReset"; - end; -} - -// Battleground Therapist -// ********************************************************************* - -bat_c02,51,130,5 script Therapist in battle::TherapistKvM02a 95,{ - mes "[Therapist in battle]"; - mes "Just close your eyes, and take a deep breathe."; - mes "You can be free from pain."; - specialeffect2 312; - close; -} - -bat_c02,148,53,1 script Therapist in battle::TherapistKvM02b 95,{ - mes "[Therapist in battle]"; - mes "Just close your eyes, and take a deep breathe."; - mes "You can be free from pain."; - specialeffect2 312; - close; -} - -// Battleground rewards -// ********************************************************************* - -bat_c02,51,130,5 script Guillaume Vintenar::VintenarKvM02a 419,{ - if( $@KvM02BG_Victory ) - { - if( $@KvM02BG_Victory == 3 ) - { - setquest 6025; - bg_leave; - warp "bat_room",155,150; - end; - } - else if( $@KvM02BG_Victory == Bat_Team ) - { // Victory - set .@Reward, 3; - mes "[Swandery]"; - mes "Blessed Guillaume!!"; - mes "Let's enjoy our glorious victory!"; - mes "" + strcharinfo(0) + ", its a sign reflecting victory"; - close2; - } - else - { // - set .@Reward, 1; - mes "[Swandery]"; - mes "You lost, but you're dedicated to this battle."; - mes "This is a reward for your great dedication by Guillaume Marollo!"; - mes "Just take this defeat a lesson, and later you would definitely learn."; - close2; - } - - setquest 6025; - getitem 7773, .@Reward; - bg_leave; - warp "bat_room",155,150; - end; - } - end; -} - -bat_c02,148,53,1 script Croix Vintenar::VintenarKvM02b 415,{ - if( $@KvM02BG_Victory ) - { - if( $@KvM02BG_Victory == 3 ) - { - setquest 6025; - bg_leave; - warp "bat_room",155,150; - end; - } - else if( $@KvM02BG_Victory == Bat_Team ) - { // Victory - set .@Reward, 3; - mes "[Swandery]"; - mes "Blessed Croax!!"; - mes "Let's enjoy our glorious victory!"; - mes "" + strcharinfo(0) + ", its a sign reflecting victory"; - close2; - } - else - { // - set .@Reward, 1; - mes "[Swandery]"; - mes "Oh, " + strcharinfo(0) + ". Don't be sad."; - mes "Even though we didn't win, we did our best."; - mes "This is a Royal gift from Croix, and please don't forget this battle. We can win the next."; - close2; - } - - setquest 6025; - getitem 7773, .@Reward; - bg_leave; - warp "bat_room",155,150; - end; - } - end; -} - -// MapFlags -// ********************************************************************* - -bat_c02 mapflag battleground 2 -bat_c02 mapflag nomemo -bat_c02 mapflag nosave SavePoint -bat_c02 mapflag noteleport -bat_c02 mapflag nowarp -bat_c02 mapflag nowarpto -bat_c02 mapflag noreturn -bat_c02 mapflag nobranch -bat_c02 mapflag nopenalty diff --git a/npc/battleground/bg_kvm03.txt b/npc/battleground/bg_kvm03.txt deleted file mode 100644 index 315f4bf9d..000000000 --- a/npc/battleground/bg_kvm03.txt +++ /dev/null @@ -1,391 +0,0 @@ -// ============================================================================== -// BattleGround System - KvM 1~59 -// ============================================================================== - -// Registration NPC's -// ********************************************************************* - -bat_room,197,227,4 script Registration::KvM03R_Guillaume 418,{ // KvM Guillaume - end; - -OnInit: - waitingroom "Battle Station 5 Players",5,"KvM03_BG::OnGuillaumeJoin",1; - end; - -OnEnterBG: - set $@KvM03BG_id1, waitingroom2bg("bat_c03",53,128,"KvM03_BG::OnGuillaumeQuit","KvM03_BG::OnGuillaumeDie"); - end; -} - -bat_room,197,204,0 script Registration::KvM03R_Croix 414,{ // KvM Croix - end; - -OnInit: - waitingroom "Battle Station 5 Players",5,"KvM03_BG::OnCroixJoin",1; - end; - -OnEnterBG: - set $@KvM03BG_id2, waitingroom2bg("bat_c03",146,55,"KvM03_BG::OnCroixQuit","KvM03_BG::OnCroixDie"); - end; -} - -// Light Effects -// ********************************************************************* - -bat_c03,54,123,0 script #bat_c03a 111,{ - end; - -OnKvM03LightA: misceffect 54; end; -OnKvM03LightB: misceffect 55; end; -OnKvM03LightC: misceffect 56; end; -} - -bat_c03,56,125,0 duplicate(#bat_c03a) #bat_c03b 111 -bat_c03,58,127,0 duplicate(#bat_c03a) #bat_c03c 111 -bat_c03,141,56,0 duplicate(#bat_c03a) #bat_c03d 111 -bat_c03,143,58,0 duplicate(#bat_c03a) #bat_c03e 111 -bat_c03,145,60,0 duplicate(#bat_c03a) #bat_c03f 111 - -// Battleground Engine -// ********************************************************************* - -- script KvM03_BG -1,{ - end; - -OnInit: - setwall "bat_c03",54,122,6,7,0,"batc03wall_a"; - setwall "bat_c03",55,122,5,7,0,"batc03wall_b"; - setwall "bat_c03",140,56,6,7,0,"batc03wall_c"; - setwall "bat_c03",140,57,5,7,0,"batc03wall_d"; - disablenpc "TherapistKvM03a"; - disablenpc "TherapistKvM03b"; - disablenpc "VintenarKvM03a"; - disablenpc "VintenarKvM03b"; - end; - -OnGuillaumeJoin: -OnCroixJoin: - donpcevent "KvM03_BG::OnReadyCheck"; - end; - -OnGuillaumeQuit: - set BG_Delay_Tick, gettimetick(2) + 1200; -OnGuillaumeDie: - if( $@KvM03BG == 2 ) - { - set .Guillaume_Count, .Guillaume_Count - 1; - set .Croix_Score, .Croix_Score + 1; - bg_updatescore "bat_c03",.Guillaume_Score,.Croix_Score; - if( .Guillaume_Count < 1 ) donpcevent "KvM03_BG::OnCroixWin"; - } - end; - -OnCroixQuit: - set BG_Delay_Tick, gettimetick(2) + 1200; -OnCroixDie: - if( $@KvM03BG == 2 ) - { - set .Croix_Count, .Croix_Count - 1; - set .Guillaume_Score, .Guillaume_Score + 1; - bg_updatescore "bat_c03",.Guillaume_Score,.Croix_Score; - if( .Croix_Count < 1 ) donpcevent "KvM03_BG::OnGuillaumeWin"; - } - end; - -OnReadyCheck: - if( $@KvM03BG ) - end; - set .@Guillaume, getwaitingroomstate(0,"KvM03R_Guillaume"); - set .@Croix, getwaitingroomstate(0,"KvM03R_Croix"); - - if( .@Guillaume < 5 || .@Croix < 5 ) - { - if( .@Guillaume > 3 && .@Croix > 3 && !agitcheck() && !agitcheck2() && $@KvM_Flood < gettimetick(2) ) - { - announce "Battleground -- Kreiger Von Midgard [1-59] G: " + .@Guillaume + "/5, C: " + .@Croix + "/5",0,0xC0C0C0; - set $@KvM_Flood, gettimetick(2) + 15; - } - else - mapannounce "bat_room","Battleground -- Kreiger Von Midgard [1-59] G: " + .@Guillaume + "/5, C: " + .@Croix + "/5",1,0xC0C0C0; - end; - } - - set $@KvM03BG, 1; // Starting - donpcevent "KvM03R_Croix::OnEnterBG"; - donpcevent "KvM03R_Guillaume::OnEnterBG"; - donpcevent "KvM03_BG::OnStart"; - end; - -OnStart: - announce "Battleground -- Kreiger Von Midgard [1-59] has started!",0,0xC0C0C0; - enablenpc "TherapistKvM03a"; - enablenpc "TherapistKvM03b"; - disablenpc "VintenarKvM03a"; - disablenpc "VintenarKvM03b"; - set $@KvM03BG_Victory, 0; - sleep 2000; - // Warp Teams - bg_warp $@KvM03BG_id1,"bat_c03",53,128; - bg_warp $@KvM03BG_id2,"bat_c03",146,55; - // ScoreBoard - set .Guillaume_Score, 0; - set .Croix_Score, 0; - initnpctimer; - end; - -OnTimer5000: - areapercentheal "bat_c03",50,123,58,131,100,100; - areapercentheal "bat_c03",141,52,149,60,100,100; - mapannounce "bat_c03","The Battle will start in 25 seconds!!",1,0xC0C0C0; - end; - -OnTimer26000: - mapannounce "bat_c03","The Battle will start in 4 seconds!!",1,0xC0C0C0; - end; - -OnTimer27000: - donpcevent "::OnKvM03LightA"; - end; - -OnTimer28000: - donpcevent "::OnKvM03LightB"; - end; - -OnTimer29000: - donpcevent "::OnKvM03LightC"; - end; - -OnTimer30000: - // Team Members - set .Guillaume_Count, bg_get_data($@KvM03BG_id1, 0); - set .Croix_Count, bg_get_data($@KvM03BG_id2, 0); - if( .Guillaume_Count < 5 || .Croix_Count < 5 ) - { - set $@KvM03BG_Victory, 3; - set $@KvM03BG, 3; - mapannounce "bat_c03","There are not enough players to start the battle",1,0xC0C0C0; - stopnpctimer; - sleep 2000; - donpcevent "KvM03_BG::OnStop"; - end; - } - - set $@KvM03BG, 2; // Playing - areapercentheal "bat_c03",50,123,58,131,100,100; - bg_warp $@KvM03BG_id1,"bat_c03",62,119; - areapercentheal "bat_c03",141,52,149,60,100,100; - bg_warp $@KvM03BG_id2,"bat_c03",137,64; - end; - -OnTimer32000: - mapannounce "bat_c03","The Battle of Kreiger Von Midgard has begun!!",1,0xC0C0C0; - end; - -OnTimer300000: - mapannounce "bat_c03","The Battle will ends in 30 seconds!!",1,0xC0C0C0; - end; - -OnTimer330000: - if( .Croix_Count > .Guillaume_Count ) - donpcevent "KvM03_BG::OnCroixWin"; - else if( .Croix_Count < .Guillaume_Count ) - donpcevent "KvM03_BG::OnGuillaumeWin"; - else - { // Draw Game - set $@KvM03BG, 3; - set $@KvM03BG_Victory, 3; - - stopnpctimer; - sleep 2000; - mapannounce "bat_c03","The time is out! This is a Tie...",1,0xC0C0C0; - donpcevent "KvM03_BG::OnStop"; - } - end; - -OnGuillaumeWin: - set $@KvM03BG, 3; - set $@KvM03BG_Victory, 1; - - stopnpctimer; - sleep 2000; - mapannounce "bat_c03","The Guillaume Army has won the Battle of Kreiger Von Midgard",1,0x0000FF; - donpcevent "KvM03_BG::OnStop"; - end; - -OnCroixWin: - set $@KvM03BG, 3; - set $@KvM03BG_Victory, 2; - - stopnpctimer; - sleep 2000; - mapannounce "bat_c03","The Croix Army has won the Battle of Kreiger Von Midgard",1,0xFF0000; - donpcevent "KvM03_BG::OnStop"; - end; - -OnStop: - disablenpc "TherapistKvM03a"; - disablenpc "TherapistKvM03b"; - enablenpc "VintenarKvM03a"; - enablenpc "VintenarKvM03b"; - // Warp Teams - bg_warp $@KvM03BG_id1,"bat_c03",53,128; - bg_warp $@KvM03BG_id2,"bat_c03",146,55; - donpcevent "KvM03_BG_Out::OnBegin"; - end; - -OnReset: - stopnpctimer; - stopnpctimer "KvM03_BG_Out"; - set .Croix_Count, 0; - set .Guillaume_Count, 0; - set .Croix_Score, 0; - set .Guillaume_Score, 0; - set $@KvM03BG_Victory, 0; - if( $@KvM03BG_id1 ) { bg_destroy $@KvM03BG_id1; set $@KvM03BG_id1, 0; } - if( $@KvM03BG_id2 ) { bg_destroy $@KvM03BG_id2; set $@KvM03BG_id2, 0; } - disablenpc "TherapistKvM03a"; - disablenpc "TherapistKvM03b"; - disablenpc "VintenarKvM03a"; - disablenpc "VintenarKvM03b"; - sleep 1000; - mapwarp "bat_c03","bat_room",155,150; - sleep 2000; - maprespawnguildid "bat_c03",0,3; // Just in case someone else - bg_updatescore "bat_c03",0,0; - sleep 2000; - set $@KvM03BG, 0; - donpcevent "KvM03_BG::OnReadyCheck"; // Maybe a game is ready to start - end; -} - -- script KvM03_BG_Out -1,{ - end; - -OnBegin: - initnpctimer; - end; - -OnTimer3000: - mapannounce "bat_c03","Battle of Kreiger Von Midgard will close in 1 minute!",1,0xC0C0C0; - end; -OnTimer30000: - mapannounce "bat_c03","Battle of Kreiger Von Midgard will close in 30 seconds!",1,0xC0C0C0; - end; -OnTimer50000: - mapannounce "bat_c03","Battle of Kreiger Von Midgard will close in 10 seconds!",1,0xC0C0C0; - end; -OnTimer60000: - donpcevent "KvM03_BG::OnReset"; - end; -} - -// Battleground Therapist -// ********************************************************************* - -bat_c03,51,130,5 script Therapist in battle::TherapistKvM03a 95,{ - mes "[Therapist in battle]"; - mes "Just close your eyes, and take a deep breathe."; - mes "You can be free from pain."; - specialeffect2 312; - close; -} - -bat_c03,148,53,1 script Therapist in battle::TherapistKvM03b 95,{ - mes "[Therapist in battle]"; - mes "Just close your eyes, and take a deep breathe."; - mes "You can be free from pain."; - specialeffect2 312; - close; -} - -// Battleground rewards -// ********************************************************************* - -bat_c03,51,130,5 script Guillaume Vintenar::VintenarKvM03a 419,{ - if( $@KvM03BG_Victory ) - { - if( $@KvM03BG_Victory == 3 ) - { - setquest 6025; - bg_leave; - warp "bat_room",155,150; - end; - } - else if( $@KvM03BG_Victory == Bat_Team ) - { // Victory - set .@Reward, 1; - mes "[Swandery]"; - mes "Blessed Guillaume!!"; - mes "Let's enjoy our glorious victory!"; - mes "" + strcharinfo(0) + ", its a sign reflecting victory"; - close2; - } - else - { // - set .@Reward, 0; - mes "[Swandery]"; - mes "You lost, but you're dedicated to this battle."; - mes "This is a reward for your great dedication by Guillaume Marollo!"; - mes "Just take this defeat a lesson, and later you would definitely learn."; - close2; - } - - setquest 6025; - getitem 7773, .@Reward; - bg_leave; - warp "bat_room",155,150; - end; - } - end; -} - -bat_c03,148,53,1 script Croix Vintenar::VintenarKvM03b 415,{ - if( $@KvM03BG_Victory ) - { - if( $@KvM03BG_Victory == 3 ) - { - setquest 6025; - bg_leave; - warp "bat_room",155,150; - end; - } - else if( $@KvM03BG_Victory == Bat_Team ) - { // Victory - set .@Reward, 1; - mes "[Swandery]"; - mes "Blessed Croax!!"; - mes "Let's enjoy our glorious victory!"; - mes "" + strcharinfo(0) + ", its a sign reflecting victory"; - close2; - } - else - { // - set .@Reward, 0; - mes "[Swandery]"; - mes "Oh, " + strcharinfo(0) + ". Don't be sad."; - mes "Even though we didn't win, we did our best."; - mes "Please don't forget this battle. We can win the next."; - close2; - } - - setquest 6025; - getitem 7773, .@Reward; - bg_leave; - warp "bat_room",155,150; - end; - } - end; -} - -// MapFlags -// ********************************************************************* - -bat_c03 mapflag battleground 2 -bat_c03 mapflag nomemo -bat_c03 mapflag nosave SavePoint -bat_c03 mapflag noteleport -bat_c03 mapflag nowarp -bat_c03 mapflag nowarpto -bat_c03 mapflag noreturn -bat_c03 mapflag nobranch -bat_c03 mapflag nopenalty diff --git a/npc/battleground/bg_tierra_01.txt b/npc/battleground/bg_tierra_01.txt index 3cf62a8aa..e65a2424c 100644 --- a/npc/battleground/bg_tierra_01.txt +++ b/npc/battleground/bg_tierra_01.txt @@ -5,7 +5,7 @@ // Registration NPC's // ********************************************************************* -bat_room,85,227,4 script Registration::TV1R_Guillaume 418,{ +bat_room,58,227,4 script Registration::TV1R_Guillaume 418,{ end; OnInit: waitingroom "Battle Station 10 Players",10,"Tierra_BG1::OnGuillaumeJoin",1; @@ -15,7 +15,7 @@ OnEnterBG: end; } -bat_room,85,204,0 script Registration::TV1R_Croix 414,{ +bat_room,58,204,0 script Registration::TV1R_Croix 414,{ end; OnInit: waitingroom "Battle Station 10 Players",10,"Tierra_BG1::OnCroixJoin",1; diff --git a/npc/battleground/bg_tierra_02.txt b/npc/battleground/bg_tierra_02.txt index 031d61aab..a669b06dd 100644 --- a/npc/battleground/bg_tierra_02.txt +++ b/npc/battleground/bg_tierra_02.txt @@ -5,7 +5,7 @@ // Registration NPC's // ********************************************************************* -bat_room,85,97,4 script Registration::TV2R_Guillaume 418,{ +bat_room,114,227,4 script Registration::TV2R_Guillaume 418,{ end; OnInit: waitingroom "Battle Station 10 Players",10,"Tierra_BG2::OnGuillaumeJoin",1; @@ -15,7 +15,7 @@ OnEnterBG: end; } -bat_room,85,74,0 script Registration::TV2R_Croix 414,{ +bat_room,114,204,0 script Registration::TV2R_Croix 414,{ end; OnInit: waitingroom "Battle Station 10 Players",10,"Tierra_BG2::OnCroixJoin",1; diff --git a/npc/battleground/kvm/kvm01.txt b/npc/battleground/kvm/kvm01.txt new file mode 100644 index 000000000..f6443fd8e --- /dev/null +++ b/npc/battleground/kvm/kvm01.txt @@ -0,0 +1,435 @@ +//===== eAthena Script ======================================= +// BattleGround System - KvM 80-99 +//===== By: ================================================== +//= ???, L0ne_W0lf +//===== Current Version: ===================================== +//= 1.1 +//===== Compatible With: ===================================== +//= eAthena 1.0 +//===== Description: ========================================= +//= [AEGIS Conversion] +//= Kreiger Von Midgard Battleground for levels 80 to 99 +//= - Winning Team: 5 points +//= - Losing Team: 1 point +//===== Additional Comments: ================================= +//= 1.0 First Version. +//= 1.1 Updated using official Aegis files. [L0ne_W0lf] +//============================================================ + +// Waiting Room NPCs +//============================================================ +bat_room,169,226,5 script KVM Waiting Room#a::KvM01R_Guillaume 418,{ + end; + +OnInit: + waitingroom "Battle Station 5 Players",5,"KvM01_BG::OnGuillaumeJoin",1; + end; + +OnEnterBG: + set $@KvM01BG_id1, waitingroom2bg("bat_c01",52,129,"KvM01_BG::OnGuillaumeQuit","KvM01_BG::OnGuillaumeDie"); + end; +} + +bat_room,169,220,0 warp #kvm801 2,2,bat_room,154,150 + +bat_room,169,205,3 script KVM Waiting Room#b::KvM01R_Croix 414,{ + end; + +OnInit: + waitingroom "Battle Station 5 Players",5,"KvM01_BG::OnCroixJoin",1; + end; + +OnEnterBG: + set $@KvM01BG_id2, waitingroom2bg("bat_c01",147,55,"KvM01_BG::OnCroixQuit","KvM01_BG::OnCroixDie"); + end; +} + +bat_room,169,211,0 warp #kvm802 2,2,bat_room,154,150 + +// Starting Line +//============================================================ +- script KVM01::CellEffect -1,{ + end; + +OnKvM01One: + misceffect EF_CHANGECOLD; + end; + +OnKvM01Two: + misceffect EF_CHANGEPOISON; + end; +} + +bat_c01,54,124,3 duplicate(CellEffect) #RedcellA1-1 111 +bat_c01,55,124,3 duplicate(CellEffect) #RedcellA2-1 111 +bat_c01,56,124,3 duplicate(CellEffect) #RedcellA3-1 111 +bat_c01,57,124,3 duplicate(CellEffect) #RedcellA4-1 111 +bat_c01,57,125,3 duplicate(CellEffect) #RedcellA5-1 111 +bat_c01,57,126,3 duplicate(CellEffect) #RedcellA6-1 111 +bat_c01,57,127,3 duplicate(CellEffect) #RedcellA7-1 111 + +bat_c01,145,59,3 duplicate(CellEffect) #RedcellB1-1 111 +bat_c01,144,59,3 duplicate(CellEffect) #RedcellB2-1 111 +bat_c01,143,59,3 duplicate(CellEffect) #RedcellB3-1 111 +bat_c01,142,59,3 duplicate(CellEffect) #RedcellB4-1 111 +bat_c01,142,56,3 duplicate(CellEffect) #RedcellB5-1 111 +bat_c01,142,57,3 duplicate(CellEffect) #RedcellB6-1 111 +bat_c01,142,58,3 duplicate(CellEffect) #RedcellB7-1 111 + +bat_c01,54,128,3 script #A_camp_start01 111,4,4,{ + end; + +OnInit: + disablenpc "#A_camp_start01"; + end; + +OnEnable: + enablenpc "#A_camp_start01"; + end; + +OnDisable: + disablenpc "#A_camp_start01"; + end; + +OnTouch: + set Bat_Team,1; + setquest 6025; + end; +} + +bat_c01,146,56,3 script #B_camp_start01 111,4,4,{ + end; + +OnInit: + disablenpc "#B_camp_start01"; + end; + +OnEnable: + enablenpc "#B_camp_start01"; + end; + +OnDisable: + disablenpc "#B_camp_start01"; + end; + +OnTouch: + set Bat_Team,2; + setquest 6025; + end; +} + +// Battleground Engine +//============================================================ +- script KvM01_BG -1,{ + end; + +OnInit: + setwall "bat_c01",54,122,6,7,0,"batc01wall_a"; + setwall "bat_c01",55,122,5,7,0,"batc01wall_b"; + setwall "bat_c01",140,56,6,7,0,"batc01wall_c"; + setwall "bat_c01",140,57,5,7,0,"batc01wall_d"; + disablenpc "KVM Officer#KVM01A"; + disablenpc "KVM Officer#KVM01B"; + end; + +OnGuillaumeJoin: +OnCroixJoin: + donpcevent "KvM01_BG::OnReadyCheck"; + end; + +OnGuillaumeQuit: + //set BG_Delay_Tick, gettimetick(2) + 1200; +OnGuillaumeDie: + if( $@KvM01BG == 2 ) + { + set .Guillaume_Count, .Guillaume_Count - 1; + set .Croix_Score, .Croix_Score + 1; + bg_updatescore "bat_c01",.Guillaume_Score,.Croix_Score; + if( .Guillaume_Count < 1 ) donpcevent "KvM01_BG::OnCroixWin"; + } + end; + +OnCroixQuit: + //set BG_Delay_Tick, gettimetick(2) + 1200; +OnCroixDie: + if( $@KvM01BG == 2 ) + { + set .Croix_Count, .Croix_Count - 1; + set .Guillaume_Score, .Guillaume_Score + 1; + bg_updatescore "bat_c01",.Guillaume_Score,.Croix_Score; + if( .Croix_Count < 1 ) donpcevent "KvM01_BG::OnGuillaumeWin"; + } + end; + +OnReadyCheck: + if( $@KvM01BG ) + end; + set .@Guillaume, getwaitingroomstate(0,"KvM01R_Guillaume"); + set .@Croix, getwaitingroomstate(0,"KvM01R_Croix"); + + if( .@Guillaume < 5 || .@Croix < 5 ) + end; + + set $@KvM01BG, 1; // Starting + donpcevent "KvM01R_Croix::OnEnterBG"; + donpcevent "KvM01R_Guillaume::OnEnterBG"; + donpcevent "KvM01_BG::OnStart"; + end; + +OnStart: + disablenpc "KVM Officer#KVM01A"; + disablenpc "KVM Officer#KVM01B"; + set $@KvM01BG_Victory, 0; + // Warp Teams + bg_warp $@KvM01BG_id1,"bat_c01",53,128; + bg_warp $@KvM01BG_id2,"bat_c01",146,55; + // ScoreBoard + set .Guillaume_Score, 0; + set .Croix_Score, 0; + initnpctimer; + end; + +OnTimer1000: + mapannounce "bat_c01", "In 1 minute, KVM will start.",bc_map,"0x00ff00"; + end; + +OnTimer3000: + mapannounce "bat_c01", "The maximum time for a KVM battle is 5 minutes.",bc_map,"0x00ff00"; + end; + +OnTimer6000: + mapannounce "bat_c01", "Please prepare for the KVM battle.",bc_map,"0x00ff00"; + mapannounce "bat_c01", "You can buff your people.",bc_map,"0x00ff00"; + donpcevent "#A_camp_start01::OnEnable"; + donpcevent "#B_camp_start01::OnEnable"; + end; + +OnTimer13000: + donpcevent "#A_camp_start01::OnDisable"; + donpcevent "#B_camp_start01::OnDisable"; + end; + +OnTimer30000: + mapannounce "bat_c01", "30 seconds remaining to start KVM battle.",bc_map,"0x00ff00"; + end; + +OnTimer45000: + mapannounce "bat_c01", "15 seconds remaining to start KVM battle.",bc_map,"0x00ff00"; + donpcevent "::OnKvM01One"; + end; + +OnTimer50000: + mapannounce "bat_c01", "10 seconds remaining to start KVM battle.",bc_map,"0x00ff00"; + donpcevent "::OnKvM01Two"; + end; + +OnTimer55000: + mapannounce "bat_c01", "5 seconds remaining to start KVM battle.",bc_map,"0x00ff00"; + donpcevent "::OnKvM01One"; + end; + +OnTimer59000: + mapannounce "bat_c01", "KVM is now commencing.",bc_map,"0x00ff00"; + donpcevent "::OnKvM01Two"; + end; + +OnTimer61000: + // Team Members + set .Guillaume_Count, bg_get_data($@KvM01BG_id1, 0); + set .Croix_Count, bg_get_data($@KvM01BG_id2, 0); + if( .Guillaume_Count < 5 || .Croix_Count < 5 ) + { + set $@KvM01BG_Victory, 3; + set $@KvM01BG, 3; + mapannounce "bat_c01","There are not enough players to start the battle",1,0x696969; + stopnpctimer; + donpcevent "KvM01_BG::OnStop"; + end; + } + set $@KvM01BG, 2; // Playing + areapercentheal "bat_c01",50,123,58,131,100,100; + bg_warp $@KvM01BG_id1,"bat_c01",61,120; + areapercentheal "bat_c01",141,52,149,60,100,100; + bg_warp $@KvM01BG_id2,"bat_c01",138,63; + end; + +OnTimer300000: + mapannounce "bat_c01", "KVM will be ending in 1 minute.",bc_map,"0x00ff00"; + end; + +OnTimer330000: + mapannounce "bat_c01", "KVM will be ending in 30 seconds.",bc_map,"0x00ff00"; + end; + +OnTimer345000: + mapannounce "bat_c01", "KVM will be ending in 15 seconds.",bc_map,"0x00ff00"; + end; + +OnTimer350000: + mapannounce "bat_c01", "KVM will be ending in 10 seconds.",bc_map,"0x00ff00"; + end; + +OnTimer355000: + mapannounce "bat_c01", "KVM will be ending in 5 seconds.",bc_map,"0x00ff00"; + end; + +OnTimer360000: + mapannounce "bat_c01", "KVM has ended.",bc_map,"0x00ff00"; + if( .Croix_Count > .Guillaume_Count ) + donpcevent "KvM01_BG::OnCroixWin"; + else if( .Croix_Count < .Guillaume_Count ) + donpcevent "KvM01_BG::OnGuillaumeWin"; + else + { // Draw Game + set $@KvM01BG, 3; + set $@KvM01BG_Victory, 3; + mapannounce "bat_c01", "Number of Guillaume survivors "+.Guillaume_Count+".",bc_map,"0x00ff00"; + mapannounce "bat_c01", "Number of Croix survivors "+.Croix_Count+".",bc_map,"0x00ff00"; + mapannounce "bat_c01", "Regardless of the outcome of the two camps.",bc_map,"0x00ff00"; + donpcevent "KvM01_BG::OnStop"; + } + end; + +OnGuillaumeWin: + set $@KvM01BG, 3; + set $@KvM01BG_Victory, 1; + mapannounce "bat_c01", "Guillaume camp victory.",bc_map,"0x00ff00"; + mapannounce "bat_c01", "Congratulations to all Guillaume members.",bc_map,"0x00ff00"; + mapannounce "bat_c01", "All personnel move to the starting zone.",bc_map,"0x00ff00"; + donpcevent "KvM01_BG::OnStop"; + end; + +OnCroixWin: + set $@KvM01BG, 3; + set $@KvM01BG_Victory, 2; + mapannounce "bat_c01", "Croix camp victory.",bc_map,"0x00ff00"; + mapannounce "bat_c01", "Congratulations to all Croix members.",bc_map,"0x00ff00"; + mapannounce "bat_c01", "All personnel move to the starting zone.",bc_map,"0x00ff00"; + donpcevent "KvM01_BG::OnStop"; + end; + +OnStop: + stopnpctimer; + enablenpc "KVM Officer#KVM01A"; + enablenpc "KVM Officer#KVM01B"; + // Warp Teams + bg_warp $@KvM01BG_id1,"bat_c01",53,128; + bg_warp $@KvM01BG_id2,"bat_c01",146,55; + donpcevent "KvM01_BG_Out::OnBegin"; + end; + +OnReset: + set .Croix_Count, 0; + set .Guillaume_Count, 0; + set .Croix_Score, 0; + set .Guillaume_Score, 0; + set $@KvM01BG_Victory, 0; + if( $@KvM01BG_id1 ) { bg_destroy $@KvM01BG_id1; set $@KvM01BG_id1, 0; } + if( $@KvM01BG_id2 ) { bg_destroy $@KvM01BG_id2; set $@KvM01BG_id2, 0; } + disablenpc "KVM Officer#KVM01A"; + disablenpc "KVM Officer#KVM01B"; + mapwarp "bat_c01","bat_room",154,150; + maprespawnguildid "bat_c01",0,3; // Just in case someone else + bg_updatescore "bat_c01",0,0; + set $@KvM01BG, 0; + donpcevent "KvM01_BG::OnReadyCheck"; // Maybe a game is ready to start + end; +} + +- script KvM01_BG_Out -1,{ + end; + +OnBegin: + initnpctimer; + end; + +OnTimer1000: + mapannounce "bat_c01", "Please apply with the Officer to acquire KVM points.",bc_map,"0x00ff00"; + end; + +OnTimer3000: + mapannounce "bat_c01", "The Officer will grant you the points for 30 seconds.",bc_map,"0x00ff00"; + mapannounce "bat_c01", "In 30 seconds, the Officer will be sent away.",bc_map,"0x00ff00"; + end; + +OnTimer5000: + mapannounce "bat_c01", "If you do not claim your points now, you will not be able to.",bc_map,"0x00ff00"; + mapannounce "bat_c01", "Please make sure to collect before the time expires.",bc_map,"0x00ff00"; + end; + +OnTimer60000: + stopnpctimer; + donpcevent "KvM01_BG::OnReset"; + end; +} + +// Battleground rewards +//============================================================ +bat_c01,51,130,5 script KVM Officer#KVM01A 419,{ + if( $@KvM01BG_Victory ) + { + if( $@KvM01BG_Victory == Bat_Team ) + { // Victory + set kvm_point,kvm_point + 5; + mes "[Swandery]"; + mes "Blessed Guillaume!!"; + mes "Let's enjoy our glorious victory!"; + mes "" + strcharinfo(0) + ", its a sign reflecting victory"; + close2; + } + else + { // + set kvm_point,kvm_point + 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; + } + bg_leave; + warp "bat_room",154,150; + end; + } + end; +} + +bat_c01,148,53,1 script KVM Officer#KVM01B 415,{ + if( $@KvM01BG_Victory ) + { + if( $@KvM01BG_Victory == Bat_Team ) + { // Victory + set kvm_point,kvm_point + 5; + mes "[Swandery]"; + mes "Blessed Croax!!"; + mes "Let's enjoy our glorious victory!"; + mes "" + strcharinfo(0) + ", its a sign reflecting victory"; + close2; + } + else + { // + set kvm_point,kvm_point + 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; + } + bg_leave; + warp "bat_room",154,150; + end; + } + end; +} + +// MapFlags +//============================================================ + +bat_c01 mapflag battleground 2 +bat_c01 mapflag nomemo +bat_c01 mapflag nosave SavePoint +bat_c01 mapflag noteleport +bat_c01 mapflag nowarp +bat_c01 mapflag nowarpto +bat_c01 mapflag noreturn +bat_c01 mapflag nobranch +bat_c01 mapflag nopenalty diff --git a/npc/battleground/kvm/kvm02.txt b/npc/battleground/kvm/kvm02.txt new file mode 100644 index 000000000..83ed1cf26 --- /dev/null +++ b/npc/battleground/kvm/kvm02.txt @@ -0,0 +1,432 @@ +//===== eAthena Script ======================================= +// BattleGround System - KvM 1-59 +//===== By: ================================================== +//= ???, L0ne_W0lf +//===== Current Version: ===================================== +//= 1.1 +//===== Compatible With: ===================================== +//= eAthena 1.0 +//===== Description: ========================================= +//= [AEGIS Conversion] +//= Kreiger Von Midgard Battleground for levels 1 to 59 +//= - Winning Team: 1 point +//= - Losing Team: 0 points +//===== Additional Comments: ================================= +//= 1.0 First Version. +//= 1.1 Updated using official Aegis files. [L0ne_W0lf] +//============================================================ + +// Waiting Room NPCs +//============================================================ +bat_room,197,226,5 script KVM Waiting Room#a2::KvM02R_Guillaume 418,{ + end; + +OnInit: + waitingroom "Battle Station 5 Players",5,"KvM02_BG::OnGuillaumeJoin",1; + end; + +OnEnterBG: + set $@KvM02BG_id1, waitingroom2bg("bat_c02",52,129,"KvM02_BG::OnGuillaumeQuit","KvM02_BG::OnGuillaumeDie"); + end; +} + +bat_room,197,220,0 warp #kvm601 2,2,bat_room,154,150 + +bat_room,197,205,3 script KVM Waiting Room#b2::KvM02R_Croix 414,{ + end; + +OnInit: + waitingroom "Battle Station 5 Players",5,"KvM02_BG::OnCroixJoin",1; + end; + +OnEnterBG: + set $@KvM02BG_id2, waitingroom2bg("bat_c02",147,55,"KvM02_BG::OnCroixQuit","KvM02_BG::OnCroixDie"); + end; +} + +bat_room,197,211,0 warp #kvm602 2,2,bat_room,154,150 + +// Starting Line +//============================================================ +- script KVM02::CellEffect2 -1,{ + end; + +OnKvM02One: + misceffect EF_CHANGECOLD; + end; + +OnKvM02Two: + misceffect EF_CHANGEPOISON; + end; +} + +bat_c02,54,124,3 duplicate(CellEffect2) #RedcellA1-2 111 +bat_c02,55,124,3 duplicate(CellEffect2) #RedcellA2-2 111 +bat_c02,56,124,3 duplicate(CellEffect2) #RedcellA3-2 111 +bat_c02,57,124,3 duplicate(CellEffect2) #RedcellA4-2 111 +bat_c02,57,125,3 duplicate(CellEffect2) #RedcellA5-2 111 +bat_c02,57,126,3 duplicate(CellEffect2) #RedcellA6-2 111 +bat_c02,57,127,3 duplicate(CellEffect2) #RedcellA7-2 111 + +bat_c02,145,59,3 duplicate(CellEffect2) #RedcellB1-2 111 +bat_c02,144,59,3 duplicate(CellEffect2) #RedcellB2-2 111 +bat_c02,143,59,3 duplicate(CellEffect2) #RedcellB3-2 111 +bat_c02,142,59,3 duplicate(CellEffect2) #RedcellB4-2 111 +bat_c02,142,56,3 duplicate(CellEffect2) #RedcellB5-2 111 +bat_c02,142,57,3 duplicate(CellEffect2) #RedcellB6-2 111 +bat_c02,142,58,3 duplicate(CellEffect2) #RedcellB7-2 111 + +bat_c02,54,128,3 script #A_camp_start02 111,4,4,{ + end; + +OnInit: + disablenpc "#A_camp_start02"; + end; + +OnEnable: + enablenpc "#A_camp_start02"; + end; + +OnDisable: + disablenpc "#A_camp_start03"; + end; + +OnTouch: + set Bat_Team,1; + setquest 6025; + end; +} + +bat_c02,146,56,3 script #B_camp_start02 111,4,4,{ + end; + +OnInit: + disablenpc "#B_camp_start02"; + end; + +OnEnable: + enablenpc "#B_camp_start02"; + end; + +OnDisable: + disablenpc "#B_camp_start02"; + end; + +OnTouch: + set Bat_Team,2; + setquest 6025; + end; +} + +// Battleground Engine +//============================================================ +- script KvM02_BG -1,{ + end; + +OnInit: + setwall "bat_c02",54,122,6,7,0,"batc02wall_a"; + setwall "bat_c02",55,122,5,7,0,"batc02wall_b"; + setwall "bat_c02",140,56,6,7,0,"batc02wall_c"; + setwall "bat_c02",140,57,5,7,0,"batc02wall_d"; + disablenpc "VintenarKvM02a"; + disablenpc "VintenarKvM02b"; + end; + +OnGuillaumeJoin: +OnCroixJoin: + donpcevent "KvM02_BG::OnReadyCheck"; + end; + +OnGuillaumeQuit: + //set BG_Delay_Tick, gettimetick(2) + 1200; +OnGuillaumeDie: + if( $@KvM02BG == 2 ) + { + set .Guillaume_Count, .Guillaume_Count - 1; + set .Croix_Score, .Croix_Score + 1; + bg_updatescore "bat_c02",.Guillaume_Score,.Croix_Score; + if( .Guillaume_Count < 1 ) donpcevent "KvM02_BG::OnCroixWin"; + } + end; + +OnCroixQuit: + //set BG_Delay_Tick, gettimetick(2) + 1200; +OnCroixDie: + if( $@KvM02BG == 2 ) + { + set .Croix_Count, .Croix_Count - 1; + set .Guillaume_Score, .Guillaume_Score + 1; + bg_updatescore "bat_c02",.Guillaume_Score,.Croix_Score; + if( .Croix_Count < 1 ) donpcevent "KvM02_BG::OnGuillaumeWin"; + } + end; + +OnReadyCheck: + if( $@KvM02BG ) + end; + set .@Guillaume, getwaitingroomstate(0,"KvM02R_Guillaume"); + set .@Croix, getwaitingroomstate(0,"KvM02R_Croix"); + + if( .@Guillaume < 5 || .@Croix < 5 ) + end; + + set $@KvM02BG, 1; // Starting + donpcevent "KvM02R_Croix::OnEnterBG"; + donpcevent "KvM02R_Guillaume::OnEnterBG"; + donpcevent "KvM02_BG::OnStart"; + end; + +OnStart: + disablenpc "VintenarKvM02a"; + disablenpc "VintenarKvM02b"; + set $@KvM02BG_Victory, 0; + // Warp Teams + bg_warp $@KvM02BG_id1,"bat_c02",53,128; + bg_warp $@KvM02BG_id2,"bat_c02",146,55; + // ScoreBoard + set .Guillaume_Score, 0; + set .Croix_Score, 0; + initnpctimer; + end; + +OnTimer1000: + mapannounce "bat_c02", "In 1 minute, KVM will start.",bc_map,"0x00ff00"; + end; + +OnTimer3000: + mapannounce "bat_c02", "The maximum time for a KVM battle is 5 minutes.",bc_map,"0x00ff00"; + end; + +OnTimer6000: + mapannounce "bat_c02", "Please prepare for the KVM battle.",bc_map,"0x00ff00"; + mapannounce "bat_c02", "You can buff your people.",bc_map,"0x00ff00"; + donpcevent "#A_camp_start02::OnEnable"; + donpcevent "#B_camp_start02::OnEnable"; + end; + +OnTimer13000: + donpcevent "#A_camp_start02::OnDisable"; + donpcevent "#B_camp_start02::OnDisable"; + end; + +OnTimer30000: + mapannounce "bat_c02", "30 seconds remaining to start KVM battle.",bc_map,"0x00ff00"; + end; + +OnTimer45000: + mapannounce "bat_c02", "15 seconds remaining to start KVM battle.",bc_map,"0x00ff00"; + donpcevent "::OnKvM01One"; + end; + +OnTimer50000: + mapannounce "bat_c02", "10 seconds remaining to start KVM battle.",bc_map,"0x00ff00"; + donpcevent "::OnKvM01Two"; + end; + +OnTimer55000: + mapannounce "bat_c02", "5 seconds remaining to start KVM battle.",bc_map,"0x00ff00"; + donpcevent "::OnKvM01One"; + end; + +OnTimer59000: + mapannounce "bat_c02", "KVM is now commencing.",bc_map,"0x00ff00"; + donpcevent "::OnKvM01Two"; + end; + +OnTimer61000: + // Team Members + set .Guillaume_Count, bg_get_data($@KvM02BG_id1, 0); + set .Croix_Count, bg_get_data($@KvM02BG_id2, 0); + if( .Guillaume_Count < 5 || .Croix_Count < 5 ) + { + set $@KvM02BG_Victory, 3; + set $@KvM02BG, 3; + mapannounce "bat_c02","There are not enough players to start the battle",1,0x808080; + stopnpctimer; + donpcevent "KvM02_BG::OnStop"; + end; + } + set $@KvM02BG, 2; // Playing + areapercentheal "bat_c02",50,123,58,131,100,100; + bg_warp $@KvM02BG_id1,"bat_c02",62,119; + areapercentheal "bat_c02",141,52,149,60,100,100; + bg_warp $@KvM02BG_id2,"bat_c02",137,64; + end; + +OnTimer300000: + mapannounce "bat_c02", "KVM will be ending in 1 minute.",bc_map,"0x00ff00"; + end; + +OnTimer330000: + mapannounce "bat_c02", "KVM will be ending in 30 seconds.",bc_map,"0x00ff00"; + end; + +OnTimer345000: + mapannounce "bat_c02", "KVM will be ending in 15 seconds.",bc_map,"0x00ff00"; + end; + +OnTimer350000: + mapannounce "bat_c02", "KVM will be ending in 10 seconds.",bc_map,"0x00ff00"; + end; + +OnTimer355000: + mapannounce "bat_c02", "KVM will be ending in 5 seconds.",bc_map,"0x00ff00"; + end; + +OnTimer360000: + mapannounce "bat_c02", "KVM has ended.",bc_map,"0x00ff00"; + if( .Croix_Count > .Guillaume_Count ) + donpcevent "KvM02_BG::OnCroixWin"; + else if( .Croix_Count < .Guillaume_Count ) + donpcevent "KvM02_BG::OnGuillaumeWin"; + else + { // Draw Game + set $@KvM02BG, 3; + set $@KvM02BG_Victory, 3; + mapannounce "bat_c02", "Number of Guillaume survivors "+.Guillaume_Count+".",bc_map,"0x00ff00"; + mapannounce "bat_c02", "Number of Croix survivors "+.Croix_Count+".",bc_map,"0x00ff00"; + mapannounce "bat_c02", "Regardless of the outcome of the two camps.",bc_map,"0x00ff00"; + donpcevent "KvM02_BG::OnStop"; + } + end; + +OnGuillaumeWin: + set $@KvM02BG, 3; + set $@KvM02BG_Victory, 1; + mapannounce "bat_c02", "Guillaume camp victory.",bc_map,"0x00ff00"; + mapannounce "bat_c02", "Congratulations to all Guillaume members.",bc_map,"0x00ff00"; + mapannounce "bat_c02", "All personnel move to the starting zone.",bc_map,"0x00ff00"; + donpcevent "KvM02_BG::OnStop"; + end; + +OnCroixWin: + set $@KvM02BG, 3; + set $@KvM02BG_Victory, 2; + mapannounce "bat_c02", "Croix camp victory.",bc_map,"0x00ff00"; + mapannounce "bat_c02", "Congratulations to all Croix members.",bc_map,"0x00ff00"; + mapannounce "bat_c02", "All personnel move to the starting zone.",bc_map,"0x00ff00"; + donpcevent "KvM02_BG::OnStop"; + end; + +OnStop: + stopnpctimer; + enablenpc "VintenarKvM02a"; + enablenpc "VintenarKvM02b"; + // Warp Teams + bg_warp $@KvM02BG_id1,"bat_c02",53,128; + bg_warp $@KvM02BG_id2,"bat_c02",146,55; + donpcevent "KvM02_BG_Out::OnBegin"; + end; + +OnReset: + set .Croix_Count, 0; + set .Guillaume_Count, 0; + set .Croix_Score, 0; + set .Guillaume_Score, 0; + set $@KvM02BG_Victory, 0; + if( $@KvM02BG_id1 ) { bg_destroy $@KvM02BG_id1; set $@KvM02BG_id1, 0; } + if( $@KvM02BG_id2 ) { bg_destroy $@KvM02BG_id2; set $@KvM02BG_id2, 0; } + disablenpc "KVM Officer#KVM02A"; + disablenpc "KVM Officer#KVM02B"; + mapwarp "bat_c02","bat_room",154,150; + maprespawnguildid "bat_c02",0,3; // Just in case someone else + bg_updatescore "bat_c02",0,0; + set $@KvM02BG, 0; + donpcevent "KvM02_BG::OnReadyCheck"; // Maybe a game is ready to start + end; +} + +- script KvM02_BG_Out -1,{ + end; + +OnBegin: + initnpctimer; + end; + +OnTimer1000: + mapannounce "bat_c02", "Please apply with the Officer to acquire KVM points.",bc_map,"0x00ff00"; + end; + +OnTimer3000: + mapannounce "bat_c02", "The Officer will grant you the points for 30 seconds.",bc_map,"0x00ff00"; + mapannounce "bat_c02", "In 30 seconds, the Officer will be sent away.",bc_map,"0x00ff00"; + end; + +OnTimer5000: + mapannounce "bat_c02", "If you do not claim your points now, you will not be able to.",bc_map,"0x00ff00"; + mapannounce "bat_c02", "Please make sure to collect before the time expires.",bc_map,"0x00ff00"; + end; + +OnTimer60000: + stopnpctimer; + donpcevent "KvM02_BG::OnReset"; + end; +} + +// Battleground rewards +//============================================================ +bat_c02,51,130,5 script KVM Officer#KVM02A 419,{ + if( $@KvM01BG_Victory ) + { + if( $@KvM02BG_Victory == Bat_Team ) + { // Victory + set kvm_point,kvm_point + 1; + mes "[Swandery]"; + mes "Blessed Guillaume!!"; + mes "Let's enjoy our glorious victory!"; + mes "" + strcharinfo(0) + ", its a sign reflecting victory"; + close2; + } + else + { // + mes "[Swandery]"; + mes "You lost, but you're dedicated to this battle."; + close2; + } + bg_leave; + warp "bat_room",154,150; + end; + } + end; +} + +bat_c02,148,53,1 script KVM Officer#KVM02B 415,{ + if( $@KvM01BG_Victory ) + { + if( $@KvM02BG_Victory == Bat_Team ) + { // Victory + set kvm_point,kvm_point + 1; + mes "[Swandery]"; + mes "Blessed Croax!!"; + mes "Let's enjoy our glorious victory!"; + mes "" + strcharinfo(0) + ", its a sign reflecting victory"; + mes "Just take this defeat a lesson, and later you would definitely learn."; + close2; + } + else + { // + mes "[Swandery]"; + mes "Oh, " + strcharinfo(0) + ". Don't be sad."; + mes "Even though we didn't win, we did our best."; + mes "Please don't forget this battle. We can win the next."; + close2; + } + bg_leave; + warp "bat_room",154,150; + end; + } + end; +} + +// MapFlags +//============================================================ + +bat_c02 mapflag battleground 2 +bat_c02 mapflag nomemo +bat_c02 mapflag nosave SavePoint +bat_c02 mapflag noteleport +bat_c02 mapflag nowarp +bat_c02 mapflag nowarpto +bat_c02 mapflag noreturn +bat_c02 mapflag nobranch +bat_c02 mapflag nopenalty diff --git a/npc/battleground/kvm/kvm03.txt b/npc/battleground/kvm/kvm03.txt new file mode 100644 index 000000000..a5ed27c4e --- /dev/null +++ b/npc/battleground/kvm/kvm03.txt @@ -0,0 +1,434 @@ +//===== eAthena Script ======================================= +// BattleGround System - KvM 60-80 +//===== By: ================================================== +//= ???, L0ne_W0lf +//===== Current Version: ===================================== +//= 1.1 +//===== Compatible With: ===================================== +//= eAthena 1.0 +//===== Description: ========================================= +//= [AEGIS Conversion] +//= Kreiger Von Midgard Battleground for levels 60 to 80 +//= - Winning Team: 2 points +//= - Losing Team: 1 point +//===== Additional Comments: ================================= +//= 1.0 First Version. +//= 1.1 Updated using official Aegis files. [L0ne_W0lf] +//============================================================ + +// Waiting Room NPCs +//============================================================ +bat_room,225,226,5 script KVM Waiting Room#a3::KvM03R_Guillaume 418,{ + end; + +OnInit: + waitingroom "Battle Station 5 Players",5,"KvM03_BG::OnGuillaumeJoin",1; + end; + +OnEnterBG: + set $@KvM03BG_id1, waitingroom2bg("bat_c03",52,129,"KvM03_BG::OnGuillaumeQuit","KvM03_BG::OnGuillaumeDie"); + end; +} + +bat_room,225,220,0 warp #kvm701 2,2,bat_room,154,150 + +bat_room,225,205,3 script KVM Waiting Room#b3::KvM03R_Croix 414,{ + end; + +OnInit: + waitingroom "Battle Station 5 Players",5,"KvM03_BG::OnCroixJoin",1; + end; + +OnEnterBG: + set $@KvM03BG_id2, waitingroom2bg("bat_c03",147,55,"KvM03_BG::OnCroixQuit","KvM03_BG::OnCroixDie"); + end; +} + +bat_room,225,211,0 warp #kvm702 2,2,bat_room,154,150 + +// Starting Line +//============================================================ +- script KVM03::CellEffect3 -1,{ + end; + +OnKvM03One: + misceffect EF_CHANGECOLD; + end; + +OnKvM03Two: + misceffect EF_CHANGEPOISON; + end; +} + +bat_c03,54,124,3 duplicate(CellEffect3) #RedcellA1-3 111 +bat_c03,55,124,3 duplicate(CellEffect3) #RedcellA2-3 111 +bat_c03,56,124,3 duplicate(CellEffect3) #RedcellA3-3 111 +bat_c03,57,124,3 duplicate(CellEffect3) #RedcellA4-3 111 +bat_c03,57,125,3 duplicate(CellEffect3) #RedcellA5-3 111 +bat_c03,57,126,3 duplicate(CellEffect3) #RedcellA6-3 111 +bat_c03,57,127,3 duplicate(CellEffect3) #RedcellA7-3 111 + +bat_c03,145,59,3 duplicate(CellEffect3) #RedcellB1-3 111 +bat_c03,144,59,3 duplicate(CellEffect3) #RedcellB2-3 111 +bat_c03,143,59,3 duplicate(CellEffect3) #RedcellB3-3 111 +bat_c03,142,59,3 duplicate(CellEffect3) #RedcellB4-3 111 +bat_c03,142,56,3 duplicate(CellEffect3) #RedcellB5-3 111 +bat_c03,142,57,3 duplicate(CellEffect3) #RedcellB6-3 111 +bat_c03,142,58,3 duplicate(CellEffect3) #RedcellB7-3 111 + +bat_c03,54,128,3 script #A_camp_start03 111,4,4,{ + end; + +OnInit: + disablenpc "#A_camp_start03"; + end; + +OnEnable: + enablenpc "#A_camp_start03"; + end; + +OnDisable: + disablenpc "#A_camp_start03"; + end; + +OnTouch: + set Bat_Team,1; + setquest 6025; + end; +} + +bat_c03,146,56,3 script #B_camp_start03 111,4,4,{ + end; + +OnInit: + disablenpc "#B_camp_start03"; + end; + +OnEnable: + enablenpc "#B_camp_start03"; + end; + +OnDisable: + disablenpc "#B_camp_start03"; + end; + +OnTouch: + set Bat_Team,2; + setquest 6025; + end; +} + +// Battleground Engine +//============================================================ +- script KvM03_BG -1,{ + end; + +OnInit: + setwall "bat_c03",54,122,6,7,0,"batc03wall_a"; + setwall "bat_c03",55,122,5,7,0,"batc03wall_b"; + setwall "bat_c03",140,56,6,7,0,"batc03wall_c"; + setwall "bat_c03",140,57,5,7,0,"batc03wall_d"; + disablenpc "VintenarKvM03a"; + disablenpc "VintenarKvM03b"; + end; + +OnGuillaumeJoin: +OnCroixJoin: + donpcevent "KvM03_BG::OnReadyCheck"; + end; + +OnGuillaumeQuit: + //set BG_Delay_Tick, gettimetick(2) + 1200; +OnGuillaumeDie: + if( $@KvM03BG == 2 ) + { + set .Guillaume_Count, .Guillaume_Count - 1; + set .Croix_Score, .Croix_Score + 1; + bg_updatescore "bat_c03",.Guillaume_Score,.Croix_Score; + if( .Guillaume_Count < 1 ) donpcevent "KvM03_BG::OnCroixWin"; + } + end; + +OnCroixQuit: + //set BG_Delay_Tick, gettimetick(2) + 1200; +OnCroixDie: + if( $@KvM03BG == 2 ) + { + set .Croix_Count, .Croix_Count - 1; + set .Guillaume_Score, .Guillaume_Score + 1; + bg_updatescore "bat_c03",.Guillaume_Score,.Croix_Score; + if( .Croix_Count < 1 ) donpcevent "KvM03_BG::OnGuillaumeWin"; + } + end; + +OnReadyCheck: + if( $@KvM03BG ) + end; + set .@Guillaume, getwaitingroomstate(0,"KvM03R_Guillaume"); + set .@Croix, getwaitingroomstate(0,"KvM03R_Croix"); + + if( .@Guillaume < 5 || .@Croix < 5 ) + end; + + set $@KvM03BG, 1; // Starting + donpcevent "KvM03R_Croix::OnEnterBG"; + donpcevent "KvM03R_Guillaume::OnEnterBG"; + donpcevent "KvM03_BG::OnStart"; + end; + +OnStart: + disablenpc "KVM Officer#KVM03A"; + disablenpc "KVM Officer#KVM03B"; + set $@KvM01BG_Victory, 0; + // Warp Teams + bg_warp $@KvM03BG_id1,"bat_c03",53,128; + bg_warp $@KvM03BG_id2,"bat_c03",146,55; + // ScoreBoard + set .Guillaume_Score, 0; + set .Croix_Score, 0; + initnpctimer; + end; + +OnTimer1000: + mapannounce "bat_c03", "In 1 minute, KVM will start.",bc_map,"0x00ff00"; + end; + +OnTimer3000: + mapannounce "bat_c03", "The maximum time for a KVM battle is 5 minutes.",bc_map,"0x00ff00"; + end; + +OnTimer6000: + mapannounce "bat_c03", "Please prepare for the KVM battle.",bc_map,"0x00ff00"; + mapannounce "bat_c03", "You can buff your people.",bc_map,"0x00ff00"; + donpcevent "#A_camp_start03::OnEnable"; + donpcevent "#B_camp_start03::OnEnable"; + end; + +OnTimer13000: + donpcevent "#A_camp_start03::OnDisable"; + donpcevent "#B_camp_start03::OnDisable"; + end; + +OnTimer30000: + mapannounce "bat_c03", "30 seconds remaining to start KVM battle.",bc_map,"0x00ff00"; + end; + +OnTimer45000: + mapannounce "bat_c03", "15 seconds remaining to start KVM battle.",bc_map,"0x00ff00"; + donpcevent "::OnKvM01One"; + end; + +OnTimer50000: + mapannounce "bat_c03", "10 seconds remaining to start KVM battle.",bc_map,"0x00ff00"; + donpcevent "::OnKvM01Two"; + end; + +OnTimer55000: + mapannounce "bat_c03", "5 seconds remaining to start KVM battle.",bc_map,"0x00ff00"; + donpcevent "::OnKvM01One"; + end; + +OnTimer59000: + mapannounce "bat_c03", "KVM is now commencing.",bc_map,"0x00ff00"; + donpcevent "::OnKvM01Two"; + end; + +OnTimer61000: + // Team Members + set .Guillaume_Count, bg_get_data($@KvM03BG_id1, 0); + set .Croix_Count, bg_get_data($@KvM03BG_id2, 0); + if( .Guillaume_Count < 5 || .Croix_Count < 5 ) + { + set $@KvM03BG_Victory, 3; + set $@KvM03BG, 3; + mapannounce "bat_c03","There are not enough players to start the battle",1,0xC0C0C0; + stopnpctimer; + donpcevent "KvM03_BG::OnStop"; + end; + } + set $@KvM03BG, 2; // Playing + areapercentheal "bat_c03",50,123,58,131,100,100; + bg_warp $@KvM03BG_id1,"bat_c03",62,119; + areapercentheal "bat_c03",141,52,149,60,100,100; + bg_warp $@KvM03BG_id2,"bat_c03",137,64; + end; + +OnTimer300000: + mapannounce "bat_c03", "KVM will be ending in 1 minute.",bc_map,"0x00ff00"; + end; + +OnTimer330000: + mapannounce "bat_c03", "KVM will be ending in 30 seconds.",bc_map,"0x00ff00"; + end; + +OnTimer345000: + mapannounce "bat_c03", "KVM will be ending in 15 seconds.",bc_map,"0x00ff00"; + end; + +OnTimer350000: + mapannounce "bat_c03", "KVM will be ending in 10 seconds.",bc_map,"0x00ff00"; + end; + +OnTimer355000: + mapannounce "bat_c03", "KVM will be ending in 5 seconds.",bc_map,"0x00ff00"; + end; + +OnTimer360000: + mapannounce "bat_c03", "KVM has ended.",bc_map,"0x00ff00"; + if( .Croix_Count > .Guillaume_Count ) + donpcevent "KvM03_BG::OnCroixWin"; + else if( .Croix_Count < .Guillaume_Count ) + donpcevent "KvM03_BG::OnGuillaumeWin"; + else + { // Draw Game + set $@KvM03BG, 3; + set $@KvM03BG_Victory, 3; + mapannounce "bat_c03", "Number of Guillaume survivors "+.Guillaume_Count+".",bc_map,"0x00ff00"; + mapannounce "bat_c03", "Number of Croix survivors "+.Croix_Count+".",bc_map,"0x00ff00"; + mapannounce "bat_c03", "Regardless of the outcome of the two camps.",bc_map,"0x00ff00"; + donpcevent "KvM03_BG::OnStop"; + } + end; + +OnGuillaumeWin: + set $@KvM03BG, 3; + set $@KvM03BG_Victory, 1; + mapannounce "bat_c03", "Guillaume camp victory.",bc_map,"0x00ff00"; + mapannounce "bat_c03", "Congratulations to all Guillaume members.",bc_map,"0x00ff00"; + mapannounce "bat_c03", "All personnel move to the starting zone.",bc_map,"0x00ff00"; + donpcevent "KvM03_BG::OnStop"; + end; + +OnCroixWin: + set $@KvM03BG, 3; + set $@KvM03BG_Victory, 2; + mapannounce "bat_c03", "Croix camp victory.",bc_map,"0x00ff00"; + mapannounce "bat_c03", "Congratulations to all Croix members.",bc_map,"0x00ff00"; + mapannounce "bat_c03", "All personnel move to the starting zone.",bc_map,"0x00ff00"; + donpcevent "KvM03_BG::OnStop"; + end; + +OnStop: + stopnpctimer; + enablenpc "KVM Officer#KVM03A"; + enablenpc "KVM Officer#KVM03B"; + // Warp Teams + bg_warp $@KvM03BG_id1,"bat_c03",53,128; + bg_warp $@KvM03BG_id2,"bat_c03",146,55; + donpcevent "KvM03_BG_Out::OnBegin"; + end; + +OnReset: + set .Croix_Count, 0; + set .Guillaume_Count, 0; + set .Croix_Score, 0; + set .Guillaume_Score, 0; + set $@KvM03BG_Victory, 0; + if( $@KvM03BG_id1 ) { bg_destroy $@KvM03BG_id1; set $@KvM03BG_id1, 0; } + if( $@KvM03BG_id2 ) { bg_destroy $@KvM03BG_id2; set $@KvM03BG_id2, 0; } + disablenpc "VintenarKvM03a"; + disablenpc "VintenarKvM03b"; + mapwarp "bat_c03","bat_room",154,150; + maprespawnguildid "bat_c03",0,3; // Just in case someone else + bg_updatescore "bat_c03",0,0; + set $@KvM03BG, 0; + donpcevent "KvM03_BG::OnReadyCheck"; // Maybe a game is ready to start + end; +} + +- script KvM03_BG_Out -1,{ + end; + +OnBegin: + initnpctimer; + end; + +OnTimer1000: + mapannounce "bat_c03", "Please apply with the Officer to acquire KVM points.",bc_map,"0x00ff00"; + end; + +OnTimer3000: + mapannounce "bat_c03", "The Officer will grant you the points for 30 seconds.",bc_map,"0x00ff00"; + mapannounce "bat_c03", "In 30 seconds, the Officer will be sent away.",bc_map,"0x00ff00"; + end; + +OnTimer5000: + mapannounce "bat_c03", "If you do not claim your points now, you will not be able to.",bc_map,"0x00ff00"; + mapannounce "bat_c03", "Please make sure to collect before the time expires.",bc_map,"0x00ff00"; + end; + +OnTimer60000: + stopnpctimer; + donpcevent "KvM03_BG::OnReset"; + end; +} + +// Battleground rewards +//============================================================ +bat_c03,51,130,5 script KVM Officer#KVM03A 419,{ + if( $@KvM01BG_Victory ) + { + if( $@KvM03BG_Victory == Bat_Team ) + { // Victory + set kvm_point,kvm_point + 2; + mes "[Swandery]"; + mes "Blessed Guillaume!!"; + mes "Let's enjoy our glorious victory!"; + mes "" + strcharinfo(0) + ", its a sign reflecting victory"; + close2; + } + else + { // + set kvm_point,kvm_point + 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!"; + close2; + } + bg_leave; + warp "bat_room",154,150; + end; + } + end; +} + +bat_c03,148,53,1 script KVM Officer#KVM03B 415,{ + if( $@KvM01BG_Victory ) + { + if( $@KvM03BG_Victory == Bat_Team ) + { // Victory + set kvm_point,kvm_point + 2; + mes "[Swandery]"; + mes "Blessed Croax!!"; + mes "Let's enjoy our glorious victory!"; + mes "" + strcharinfo(0) + ", its a sign reflecting victory"; + close2; + } + else + { // + set kvm_point,kvm_point + 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; + } + bg_leave; + warp "bat_room",154,150; + end; + } + end; +} + +// MapFlags +//============================================================ + +bat_c03 mapflag battleground 2 +bat_c03 mapflag nomemo +bat_c03 mapflag nosave SavePoint +bat_c03 mapflag noteleport +bat_c03 mapflag nowarp +bat_c03 mapflag nowarpto +bat_c03 mapflag noreturn +bat_c03 mapflag nobranch +bat_c03 mapflag nopenalty diff --git a/npc/battleground/kvm/kvm_enter.txt b/npc/battleground/kvm/kvm_enter.txt new file mode 100644 index 000000000..1af6daa10 --- /dev/null +++ b/npc/battleground/kvm/kvm_enter.txt @@ -0,0 +1,211 @@ +//===== eAthena Script ======================================= +// BattleGround System - KvM Entrance NPCs +//===== By: ================================================== +//= L0ne_W0lf +//===== Current Version: ===================================== +//= 1.0 +//===== Compatible With: ===================================== +//= eAthena 1.0 +//===== Description: ========================================= +//= [AEGIS Conversion] +//= Kreiger Von Midgard Battleground Entrance NPCs +//= Original NPCs scrapped from bg_common. +//===== Additional Comments: ================================= +//= 1.0 First Version. +//============================================================ + +// KvM Officerer - Guillaume +//============================================================ +bat_room,164,178,5 script KVM Mercenary Officer#1 418,{ + set .@permit,checkquest(6026,PLAYTIME); + if ((.@permit == 0) || (.@permit == 1)) { + mes "[Guillaume Mercenary Officer]"; + mes "I know that you've already signed with the Croix. Go back and join their team. We will not accept traitors to fight for us."; + close; + } + else { + if (checkquest(6025) >= 0) erasequest 6026; + } + mes "[Guillaume Mercenary Officer]"; + mes "Let them know the real might of Guillaume!"; + next; + switch(select("I will fight with you.:End Conversation.")) { + case 1: + mes "[Guillaume Mercenary Officer]"; + mes "Show them how strong we are."; + mes "Today, everyone will hear the shout of triumph from Guillaume!"; + close2; + if (BaseLevel > 79) { + warp "bat_room",169,223; + } + else if (BaseLevel < 60) { + warp "bat_room",197,223; + } + else { + warp "bat_room",225,223; + } + close; + case 2: + mes "[Guillaume Mercenary Officer]"; + mes "We will win!"; + close; + } +} + +// Guillaume Knight - KvM +//============================================================ +bat_room,167,178,5 script Guillaume Knight#kvm 417,{ + mes "[Guillaume Knight]"; + mes "Hello."; + mes "What do you want to know?"; + next; + switch(select("Apply for KVM.:What is KVM?:How do I participate in KVM?:I want to know my Kreiger Points.")) { + case 1: + mes "[Guillaume Knight]"; + mes "Applications are not available yet."; + mes "To apply, you need to go to a KVM Mercenary Officer."; + close; + case 2: + mes "[Guillaume Knight]"; + mes "KVM is the abbreviation of Kreiger Von Midgard."; + mes "Adventurer, are you aware that the way to the new world has been opened?"; + next; + mes "[Guillaume Knight]"; + mes "We, the Guillaume Administration, have several plans to advance to the new world."; + mes "And KVM is one of them."; + next; + mes "[Guillaume Knight]"; + mes "It means that we, one of many countries in the Midgard continent,"; + mes "have decided to employ many adventurers for the immediate advance to the new world."; + next; + mes "[Guillaume Knight]"; + mes "Therefore, to select the best adventurers, we are holding the KVM."; + mes "We exspect responses from many adventurers."; + next; + mes "[Guillaume Knight]"; + mes "And we will give them rewards for their participation!"; + mes "As for the rewards, please contact a KVM Logistic Officer."; + close; + case 3: + mes "[Guillaume Knight]"; + mes "Basically, KVM is a 5 on 5 battle."; + mes "First, you apply with a KVM receptionist, in a group or individually."; + next; + mes "[Guillaume Knight]"; + mes "Group applications are for when you intend to enter the KVM with your party members,"; + mes "and a personal application is for when you intend to enter the KVM individually."; + next; + mes "[Guillaume Knight]"; + mes "Please apply with a KVM officer, and he will contact you later when you are in Prontera."; + next; + mes "[Guillaume Knight]"; + mes "Then you enter and follow the instructions in the battlefield."; + next; + mes "[Guillaume Knight]"; + mes "However, please be advised that unless you are in the KVM office, he cannot contact you."; + close; + case 4: + mes "[Guillaume Knight]"; + mes "Your Kreiger Points are:"; + mes ""+kvm_point+"."; + close; + } +} + +// KvM Officer - Croix +//============================================================ +bat_room,164,121,1 script KVM Mercenary Officer#2 414,{ + set .@permit,checkquest(6025,PLAYTIME); + if ((.@permit == 0) || (.@permit == 1)) { + mes "[Croix Mercenary Officer]"; + mes "I know that you've already signed with the Guillaume. Go back and join their team. We will not accept traitors to fight for us."; + close; + } + else { + if (checkquest(6025) >= 0) erasequest 6025; + } + mes "[Croix Mercenary Officer]"; + mes "Let them know the real might of Croix!"; + next; + switch(select("I will fight with you.:End Conversation.")) { + case 1: + mes "[Croix Mercenary Officer]"; + mes "Show them how strong we are."; + mes "Today, everyone will hear the shout of triumph from Croix!"; + close2; + if (BaseLevel > 79) { + warp "bat_room",169,207; + } + else if (BaseLevel < 60) { + warp "bat_room",197,207; + } + else { + warp "bat_room",225,207; + } + close; + case 2: + mes "[Croix Mercenary Officer]"; + mes "We will win!"; + close; + } +} + +// Croix Knight - KvM +//============================================================ +bat_room,167,121,1 script Croix Knight#kvm 413,{ + mes "[Croix Knight]"; + mes "Hello."; + mes "What do you want to know?"; + next; + switch(select("Apply for KVM.:What is KVM?:How do I participate in KVM?:I want to know my Kreiger Points.")) { + case 1: + mes "[Croix Knight]"; + mes "Applications are not available yet."; + mes "To apply, you need to go to a KVM Mercenary Officer."; + close; + case 2: + mes "[Croix Knight]"; + mes "KVM is the abbreviation of Kreiger Von Midgard."; + mes "Adventurer, are you aware that the way to the new world has been opened?"; + next; + mes "[Croix Knight]"; + mes "We, the Croix Administration, have several plans to advance to the new world."; + mes "And KVM is one of them."; + next; + mes "[Croix Knight]"; + mes "It means that we, one of many countries in the Midgard continent,"; + mes "have decided to employ many adventurers for the immediate advance to the new world."; + next; + mes "[Croix Knight]"; + mes "Therefore, to select the best adventurers, we are holding the KVM."; + mes "We exspect responses from many adventurers."; + next; + mes "[Croix Knight]"; + mes "And we will give them rewards for their participation!"; + mes "As for the rewards, please contact a KVM Logistic Officer."; + close; + case 3: + mes "[Croix Knight]"; + mes "Basically, KVM is a 5 on 5 battle."; + mes "First, you apply with a KVM receptionist, in a group or individually."; + next; + mes "[Croix Knight]"; + mes "Group applications are for when you intend to enter the KVM with your party members,"; + mes "and a personal application is for when you intend to enter the KVM individually."; + next; + mes "[Croix Knight]"; + mes "Please apply with a KVM officer, and he will contact you later when you are in Prontera."; + next; + mes "[Croix Knight]"; + mes "Then you enter and follow the instructions in the battlefield."; + next; + mes "[Croix Knight]"; + mes "However, please be advised that unless you are in the KVM office, he cannot contact you."; + close; + case 4: + mes "[Croix Knight]"; + mes "Your Kreiger Points are:"; + mes ""+kvm_point+"."; + close; + } +} diff --git a/npc/battleground/kvm/kvm_item_pay.txt b/npc/battleground/kvm/kvm_item_pay.txt new file mode 100644 index 000000000..5ad475dc9 --- /dev/null +++ b/npc/battleground/kvm/kvm_item_pay.txt @@ -0,0 +1,313 @@ +//===== eAthena Script ======================================= +// BattleGround System - KvM Item Dealer +//===== By: ================================================== +//= L0ne_W0lf +//===== Current Version: ===================================== +//= 1.0 +//===== Compatible With: ===================================== +//= eAthena 1.0 +//===== Description: ========================================= +//= [AEGIS Conversion] +//= Kreiger Von Midgard Battleground Point redemption NPC +//= * NOTE * +//= KvM Does NOT use items, but a character variable to +//= keep track of points. This NPC when talked to will +//= convert already-given tokens and convert them to points. +//= under the player variable kvm_point. +//===== Additional Comments: ================================= +//= 1.0 First Version. +//============================================================ + +bat_room,151,144,3 script KVM Logistic Officer#a 734,{ + if (countitem(7773)) { + set .@pointstoadd,countitem(7773); + delitem 7773,.@pointstoadd; + set kvm_point,kvm_point+.@pointstoadd; + mes "[Logistics]"; + mes "Are those "+getitemname(7773)+"s I see?"; + mes "We no longer accept that currency,"; + mes "but I can exchange those for you,"; + mes "So you have "+.@pointstoadd+" "+getitemname(7773)+"s?"; + mes "Alright, all set, you now have ^580080"+ kvm_point +"^000000 KVM Points."; + next; + } + 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 "[Logistics]"; + mes "Hello?"; + mes "I am in charge of distributing"; + mes "reward items for KVM points. Any"; + mes "wrong selection of items will not"; + mes "be reversed. Please be carefull."; + mes "Select the next step please."; + next; + set .@name$,strcharinfo(0); + switch(select("Read the KVM Catalogue.:Purchase KVM Items.:Confirm KVM Points.:Explanation of KVM Rewards.:Explanation of KVM Points.")) { + case 1: + mes "[Logistics]"; + mes "Here is the catalogue of KVM items."; + mes "Each weapon requires 2,000 points"; + mes "and each armor from 10 to 1,200"; + mes "points. So, be carefull when"; + mes "selecting a reward."; + close2; + ReadBook 11017,1; + end; + case 2: + mes "[Logistics]"; + mes "Wich items do you want to see? As"; + mes "for the detailed specification of"; + mes "the items, please refer to the"; + mes "^3131FFCatalogue^000000."; + next; + switch(select("Weapon:Armor/Accessory:Mass-Production Armor/Accessory:Popularized Armor/Accessory")) { + case 1: + mes "[Logistics]"; + mes "You have selected the Weapon Category."; + mes "Please select a sub-category."; + next; + switch(select("Dagger/Sword/Spear:Staff/Mace/Axe/Shuriken:Bow/Katar/Instrument/Whip:Book/Knuckle:Revolver/Rifle/Gun/Grenade Launcher")) { + case 1: + mes "[Logistics]"; + mes "You have selected the Dagger/Sword/Spear category."; + mes "Please select a sub-category."; + next; + switch(select("Dagger:One-handed Sword:Two-handed Sword:One-handed Spear:Two-handed Spear")) { + case 1: callsub PurchaseItem,13042,0,1; //Krieger_Dagger1 + case 2: + mes "[Logistics]"; + mes "You have selected the 'One-handed Sword' category."; + mes "There are 3 One-handed Swords: Glorious Flamberge, Glorious Rapier and Glorious Holy Avenger."; + mes "If you want their details, please refer to the KVM Catalogue."; + mes "Please select one of them."; + next; + switch(select("Glorious Flamberge:Glorious Rapier:Glorious Holy Avenger")) { + case 1: callsub PurchaseItem,13416,0,0; //Krieger_Onehand_Sword1 + case 2: callsub PurchaseItem,13417,0,0; //Krieger_Onehand_Sword2 + case 3: callsub PurchaseItem,13418,0,0; //Krieger_Onehand_Sword3 + } + case 3: callsub PurchaseItem,1187,0,1; //Krieger_Twohand_Sword1 + case 4: callsub PurchaseItem,1426,0,1; //Krieger_Onehand_Spear1 + case 5: callsub PurchaseItem,1486,0,1; //Krieger_Twohand_Spear1 + } + case 2: + mes "[Logistics]"; + mes "You have selected the 'Staff/Mace/Axe/Shuriken' category."; + mes "Please select a sub-category."; + next; + switch(select("Staff:Mace:One-handed Axe:Two-handed Axe:Shuriken")) { + case 1: + mes "[Logistics]"; + mes "You have selected the 'Staff' category."; + mes "There are 3 Staffs: a Two-handed Weapon Glorious Destruction Staff, a One-handed Glorious Arc Wand and a Glorious Healing Staff."; + mes "If you want their details, please refer to the KVM Catalogue."; + mes "Please select one of them."; + next; + switch(select("Glorious Destruction Staff:Glorious Arc Wand:Glorious Healing Staff")) { + case 1: callsub PurchaseItem,2002,0,0; //Krieger_Twohand_Staff1 + case 2: callsub PurchaseItem,1640,0,0; //Krieger_Onehand_Staff1 + case 3: callsub PurchaseItem,1641,0,0; //Krieger_Onehand_Staff2 + } + case 2: callsub PurchaseItem,1546,0,1; //Krieger_Onehand_Mace1 + case 3: callsub PurchaseItem,1310,0,1; //Krieger_Onehand_Axe1 + case 4: callsub PurchaseItem,1382,0,1; //Krieger_Twohand_Axe1 + case 5: callsub PurchaseItem,13307,0,1; //Krieger_Huuma_Shuriken1 + } + case 3: + mes "[Logistics]"; + mes "You have selected the Bow/Katar/Instrument/Whip category."; + mes "Please select a sub-category."; + next; + switch(select("Bow:Katar:Instrument:Whip")) { + case 1: callsub PurchaseItem,1743,0,1; //Krieger_Bow1 + case 2: + mes "[Logistics]"; + mes "You have selected the 'Katar' category."; + mes "There are 2 Katars: Glorious Bloody Roar and Glorious Jamadhar."; + mes "If you want their details, please refer to the KVM Catalogue."; + mes "Please select one of them."; + next; + switch(select("Glorious Bloody Roar:Glorious Jamadhar")) { + case 1: callsub PurchaseItem,1281,0,0; //Krieger_Katar1 + case 2: callsub PurchaseItem,1282,0,0; //Krieger_Katar2 + } + case 3: callsub PurchaseItem,1927,0,1; //Krieger_Instrument1 + case 4: callsub PurchaseItem,1981,0,1; //Krieger_Whip1 + } + case 4: + mes "[Logistics]"; + mes "You have selected the Book/Knuckle category."; + mes "Please select a sub-category."; + next; + switch(select("Book:Knuckle")) { + case 1: + mes "[Logistics]"; + mes "You have selected 'Book'."; + mes "There are 2 Books: Glorious Tablet and Glorious Apocalypse."; + mes "If you want their details, please refer to the KVM Catalogue."; + mes "Please select one of them."; + next; + switch(select("Glorious Tablet:Glorious Apocalypse")) { + case 1: callsub PurchaseItem,1576,0,0; //Krieger_Book1 + case 2: callsub PurchaseItem,1577,0,0; //Krieger_Book2 + } + case 2: + mes "[Logistics]"; + mes "You have selected the 'Knuckle' category."; + mes "There are 2 Knuckles: Glorious Claw and Glorious Fist."; + mes "If you want their details, please refer to the KVM Catalogue."; + mes "Please select one of them."; + next; + switch(select("Glorious Claw:Glorious Fist")) { + case 1: callsub PurchaseItem,1826,0,0; //Krieger_Knuckle1 + case 2: callsub PurchaseItem,1827,0,0; //Krieger_Knuckle2 + } + } + case 5: + mes "[Logistics]"; + mes "You have selected the 'Revolver/Rifle/Gun/Grenade Launcher' category."; + mes "Please select a sub-category."; + next; + switch(select("Revolver:Rifle:Gatling Gun:Shotgun:Grenade Launcher")) { + case 1: callsub PurchaseItem,13110,0,1; //Krieger_Pistol1 + case 2: callsub PurchaseItem,13176,0,1; //Krieger_Rifle1 + case 3: callsub PurchaseItem,13177,0,1; //Krieger_Gatling1 + case 4: callsub PurchaseItem,13178,0,1; //Krieger_Shotgun1 + case 5: callsub PurchaseItem,13179,0,1; //Krieger_Launcher1 + } + } + case 2: + mes "[Logistics]"; + mes "You have selected the 'Armor/Accessory' category."; + mes "Please select a sub-category."; + next; + switch(select("Armor:Cloak:Shoes:Accessory")) { + case 1: callsub PurchaseItem,2394,1,2; //Krieger_Suit1 + case 2: callsub PurchaseItem,2549,2,2; //Krieger_Muffler1 + case 3: callsub PurchaseItem,2444,3,2; //Krieger_Shoes1 + case 4: callsub PurchaseItem,2772,4,2; //Krieger_Ring1 + } + case 3: + mes "[Logistics]"; + mes "You have selected the 'Mass-Production Armor/Accessory' category."; + mes "Please select a sub-category."; + next; + switch(select("Mass-Production Armor:Mass-Production Shoes:Mass-Production Accessory")) { + case 1: callsub PurchaseItem,2395,5,3; //Krieger_Suit2 + case 2: callsub PurchaseItem,2445,6,3; //Krieger_Shoes2 + case 3: callsub PurchaseItem,2773,7,3; //Krieger_Ring2 + } + case 4: + mes "[Logistics]"; + mes "You have selected the 'Popularized Armor/Accessory' category."; + mes "Please select a sub-category."; + next; + switch(select("Popularized Armor:Popularized Shoes:Popularized Accessory")) { + case 1: callsub PurchaseItem,2396,8,4; //Krieger_Suit3 + case 2: callsub PurchaseItem,2446,9,4; //Krieger_Shoes3 + case 3: callsub PurchaseItem,2774,10,4; //Krieger_Ring3 + } + } + case 3: + mes "[Logistics]"; + mes ""+ .@name$ +", your current points are ^580080"+ kvm_point +"^000000 KVM Points."; + close; + case 4: + mes "[Logistics]"; + mes "There are 3 categories in KVM Rewards: Weapon/Armor.Accessory."; + next; + mes "[Logistics]"; + mes "Weapon rewards require 2,000 KVM points for each."; + mes "There are 3 types of Armor rewards and they require 840/630/580 KVM points fo each."; + mes "Accessory rewards require 1,200 KVM points for each."; + next; + mes "[Logistics]"; + mes "Kreiger Weapons are LV 4 Weapons, they can be upgraded and will have special effects: Slaughter, Destruction and Blessing."; + next; + mes "[Logistics]"; + mes "When you can wear all 3 armors, you can have a special set of options."; + mes "Also, when Kreiger Accessory rewards are worn with medalsm it will bring you special set rewards."; + next; + mes "[Logistics]"; + mes "Finally, there are Mass-Production Armor and Accessory rewards."; + mes "Players whose Lvl is higher than 60 can equip Mass-Production Armors and there is a Lvl limit for Popularized Armor as well."; + close; + case 5: + mes "[Logistics]"; + mes "KVM Points are rewarded when you win, lose or draw in Kreiger Von Midgard (KVM)."; + mes "You can have special Rewards by using these points."; + close; + } + +PurchaseItem: + // Pricing for Weapon, Suit1, Muffler1, Shoes1, Ring1m Suit2, Shoes2, Ring2, Suit3, Shoes3, Ring3 + setarray .@prices[0],2000,840,630,580,1200,120,70,200,15,10,30; + + mes "[Logistics]"; + + if (!getarg(2)) + mes "You have selected ^ff0000"+getitemname(getarg(0))+"^000000."; + else if (getarg(2) == 1) + mes "There is only one "+callfunc("F_GetWeaponType",getarg(0))+": "+getitemname(getarg(0))+"."; + else if (getarg(2) == 2) { + mes "You have selected '"+callfunc("F_GetArmorType",getarg(0))+"'."; + mes "The armor for one whose Lvl is more than 80 is: ^ff0000"+getitemname(getarg(0))+"^000000."; + } + else if (getarg(2) == 3) { + mes "You have selected 'Mass-Production "+callfunc("F_GetArmorType",getarg(0))+"'."; + mes "There is only one Mass-Production "+callfunc("F_GetArmorType",getarg(0))+": ^ff0000"+getitemname(getarg(0))+"^000000."; + } + else if (getarg(2) == 4) { + mes "You have selected 'Popularized "+callfunc("F_GetArmorType",getarg(0))+"'."; + mes "There is only one Popularized "+callfunc("F_GetArmorType",getarg(0))+": ^ff0000"+getitemname(getarg(0))+"^000000."; + } + + if (!getarg(1)) + mes "It requires ^0000ff2,000^000000 KVM Points, and "+ .@name$ +", your points are: ^580080"+ kvm_point +"^000000."; + else if (getarg(1) == 4) + mes "It requires ^0000ff1,200^000000 KVM Points, and "+ .@name$ +", your points are: ^580080"+ kvm_point +"^000000."; + else + mes "It requires ^0000ff"+.@prices[getarg(1)]+"^000000 KVM Points, and "+ .@name$ +", your points are: ^580080"+ kvm_point +"^000000."; + + mes "Are you sure you want this item?"; + next; + switch(select("No, I won't purchase it.:Yes, I will purchase it.")) { + case 1: + mes "[Logistics]"; + mes "You have selected 'I won't purchase it'."; + mes "When purchasing an item, please be careful there are no refunds."; + break; + case 2: + if (kvm_point >= .@prices[getarg(1)]) { + set kvm_point,kvm_point-.@prices[getarg(1)]; + getitem getarg(0),1; + mes "[Logistics]"; + mes "You have purchased a "+getitemname(getarg(0))+"."; + if (!getarg(1)) + mes "Your KVM Points are reduced by ^0000ff"+getarg(1)+"^000000 points, your KVM Points are now ^580080"+kvm_point+"^000000."; + if (getarg(1) == 4) + mes "Your KVM Points are reduced by ^0000ff1,200^000000 points, your KVM Points are now ^580080"+kvm_point+"^000000."; + else + mes "Your KVM Points are reduced by ^0000ff"+.@prices[getarg(1)]+"^000000 points, your KVM Points are now ^580080"+kvm_point+"^000000."; + } + else { + mes "[Logistics]"; + if (!getarg(1)) + mes "You need ^0000ff2,000^000000 KVM Points to purchase this item."; + else if (getarg(1) == 4) + mes "You need ^0000ff1,200^000000 KVM Points to purchase this item."; + else + mes "You need ^0000ff"+.@prices[getarg(1)]+"^000000 KVM Points to purchase this item."; + mes "However, your KVM Points are now ^580080"+ kvm_point +"^000000."; + mes "Which are not enough to buy it."; + mes "When you get enough points, please come back again."; + } + } + close; +} diff --git a/npc/other/Global_Functions.txt b/npc/other/Global_Functions.txt index 37a3c556c..cd18b3a22 100644 --- a/npc/other/Global_Functions.txt +++ b/npc/other/Global_Functions.txt @@ -3,7 +3,7 @@ //===== By: ================================================== //= Lupus, kobra_k88 //===== Current Version: ===================================== -//= 2.15 +//= 2.16 //===== Compatible With: ===================================== //= eAthena 1.0 //===== Description: ========================================= @@ -38,6 +38,7 @@ //= 2.13 Added more unused vars to F_ClearGarbage [Lupus] //= 2.14 Added old novice variables to F_ClearGarbage. [L0ne_W0lf] //= 2.15 Added no unused DTS variables to F_ClearGarbage. [L0ne_W0lf] +//= 2.6 Added F_GetWeaponType, and F_GetArmorType. [L0ne_W0lf] //============================================================ @@ -257,3 +258,55 @@ function script F_Load2Skills { set ADV_QSK2,0; //Clear var return; } + +////////////////////////////////////////////////////////////////////////////////// +// *** Function "F_GetWeaponType": Determine weapon type by view +////////////////////////////////////////////////////////////////////////////////// +function script F_GetWeaponType { + switch(getiteminfo(getarg(0),11)) { + case 1: return "Dagger"; break; + case 2: return "One-handed Sword"; break; + case 3: return "Two-handed Sword"; break; + case 4: return "One-handed Spear"; break; + case 5: return "Two-handed Spear"; break; + case 6: return "One-handed Axe"; break; + case 7: return "Two-handed Axe"; break; + case 8: return "Mace"; break; + //case 9: return "Unused"; break; + case 10: return "Staff"; break; + case 11: return "Bow"; break; + case 12: return "Knuckle"; break; + case 13: return "Instrument"; break; + case 14: return "Whip"; break; + case 15: return "Book"; break; + case 16: return "Katar"; break; + case 17: return "Revolver"; break; + case 18: return "Rifle"; break; + case 19: return "Gatling gun"; break; + case 20: return "Shotgun"; break; + case 21: return "Grenade Launcher"; break; + case 22: return "Shuriken"; break; + default: return "Unable to Determine Equip Type"; break; + } + end; +} + +////////////////////////////////////////////////////////////////////////////////// +// *** Function "F_GetArmorType": Determine equipment type by equip location +////////////////////////////////////////////////////////////////////////////////// +function script F_GetArmorType { + switch(getiteminfo(getarg(0),5)) { + case 001: return "Lower Headgear"; break; + case 2: return "Weapon"; break; + case 4: return "Garment"; break; + case 8: return "Accessory"; break; + case 16: return "Armor"; break; + case 32: return "Shield"; break; + case 64: return "Shoes"; break; + case 128: return "Accessory"; break; + case 256: return "Upper Headgear"; break; + case 512: return "Middle Headgear"; break; + default: return "Unable to Determine Equip Location"; break; + } + end; +} diff --git a/npc/other/arena/arena_aco.txt b/npc/other/arena/arena_aco.txt index fe407b07c..4a81bd6b3 100644 --- a/npc/other/arena/arena_aco.txt +++ b/npc/other/arena/arena_aco.txt @@ -3,13 +3,14 @@ //===== By: ================================================== //= L0ne_W0lf //===== Current Version: ===================================== -//= 1.0 +//= 1.1 //===== Compatible With: ===================================== //= Any Athena Version //===== Description: ========================================= //= Izlude Acolyte Battle Arena //===== Additional Comments: ================================= //= 1.0 First version. +//= 1.1 Corrected variable typos. (bugreport:4374) [L0ne_w0lf] //============================================================ arena_room,114,102,0 script onlyaco#arena 45,1,1,{ @@ -1257,7 +1258,7 @@ prt_are_in,25,31,3 script Staff#aco-2 67,{ mes "under the Time Force Battle"; mes "Arena - Acolyte Class Record!"; if (basejob == job_acolyte) { - set $@arn_acotop,.@record_timeaco; + set $arn_acotop,.@record_timeaco; set $arn_acotopn$, strcharinfo(0); donpcevent "Vendigos::Onlinerec_aco"; } @@ -1416,7 +1417,7 @@ prt_are_in,25,31,3 script Staff#aco-2 67,{ mes "Acolyte Class Records."; mes "Congratulations~"; if (basejob == job_acolyte) { - set $@arn_acotop,.@record_timeaco; + set $arn_acotop,.@record_timeaco; set $arn_acotopn$, strcharinfo(0); donpcevent "#Vendigos::Onlinerec_aco"; } diff --git a/npc/other/arena/arena_party.txt b/npc/other/arena/arena_party.txt index ae92de3c5..b163a528d 100644 --- a/npc/other/arena/arena_party.txt +++ b/npc/other/arena/arena_party.txt @@ -3,7 +3,7 @@ //===== By: ================================================== //= SinSloth //===== Current Version: ===================================== -//= 1.1 +//= 1.3 //===== Compatible With: ===================================== //= Any Athena Version //===== Description: ========================================= @@ -13,6 +13,7 @@ //= 1.0a Fixed a typo. //= 1.1 Replaced effect numerics with constants. [Samuray22] //= 1.2 Fixed "OnMobDeath" doesn't work sometime. [Inkfish] +//= 1.3 Corrected donpcevent typo. (bugreport:4374) [L0ne_w0lf] //============================================================ arena_room,162,88,3 script Ponox 124,{ @@ -27,7 +28,7 @@ OnStartArena: donpcevent "toarena#party::OnInit"; donpcevent "toout#party::OnInit"; warpwaitingpc "prt_are_in",73,78; - donpcevent "toout#party::OnTime"; + donpcevent "toout#party::OnTimer"; donpcevent "Helper#party::OnEnter"; disablewaitingroomevent; end; diff --git a/npc/scripts_athena.conf b/npc/scripts_athena.conf index 0f8b3b6f4..928f4c583 100644 --- a/npc/scripts_athena.conf +++ b/npc/scripts_athena.conf @@ -319,6 +319,13 @@ npc: npc/other/arena/arena_aco.txt // -------------------- Hugel Monster Races --------------------- 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 +// -------------------------------------------------------------- // ------------------------ Instances --------------------------- npc: npc/instances/SealedShrine.txt //npc: npc/instances/EndlessTower.txt |