* Quest log kill count now updated properly. (Added from topic 253813)

* More battleground editing, and some bug fixes.
- * ALL BATTLEGROUNDS ARE NOW ACTIVE BY DEFAULT. PLEASE CONTINUE TESTING *
- Rewrote the Badge Exchange NPC in bg_common.txt, is official now.
- Other changes to the bg_common folder, including disabled GM NPC.
- Completely rewrote Flavius for the most part, from ground up.
- Moved old Flavius battlegrounds to /custom/battleground folder.
- Restored original bg_common, and KVM to /custom/battleground
- Fixed wall bugs in Tierra Gorge, and added an oninit to the timers.
- Other minor tweaks to both Tierra Gorge and KVM scripts.
- Fixed the pseudo-cooldown on KVM not working properly, I hope.
- Added global time2str function which will be used later in Endless tower.
* Applied Epoque's mapflag clean up, which removes flags from scripts.


git-svn-id: https://svn.code.sf.net/p/rathena/svn/trunk@14374 54d463be-8e91-2dee-dedb-b68131a5f0ec
This commit is contained in:
L0ne_W0lf 2010-08-14 16:06:23 +00:00
parent a9a0d68dca
commit dc0977ed37
50 changed files with 4893 additions and 411 deletions

View File

@ -3,6 +3,8 @@ Date Added
AS OF SVN REV. 5091, WE ARE NOW USING TRUNK. ALL UNTESTED BUGFIXES/FEATURES GO INTO TRUNK.
IF YOU HAVE A WORKING AND TESTED BUGFIX PUT IT INTO STABLE AS WELL AS TRUNK.
2010/08/14
* Rev. 14373 Quest log kill count now updated properly. (Added from topic 253813) [L0ne_W0lf]
2010/08/11
* Documented Battleground commands with as much information as I've got. [L0ne_W0lf]
2010/08/03

View File

@ -0,0 +1,19 @@
//===== eAthena Script =======================================
//= Battleground map setting. '2' shows scoreboard.
//===== By: ==================================================
//= Epoque
//===== Current Version: =====================================
//= 1.0a [Epoque]
//===== Compatible With: =====================================
//=
//===== Description: =========================================
//=
//============================================================
bat_c01 mapflag battleground 2
bat_c02 mapflag battleground 2
bat_c03 mapflag battleground 2
bat_b01 mapflag battleground 2
bat_b02 mapflag battleground
bat_a01 mapflag battleground
bat_a02 mapflag battleground

View File

@ -0,0 +1,13 @@
//===== eAthena Script =======================================
//= Displays Fireworks effect (Depreciated)
//===== By: ==================================================
//= Epoque
//===== Current Version: =====================================
//= 1.0a [Epoque]
//===== Compatible With: =====================================
//=
//===== Description: =========================================
//=
//============================================================
//prontera mapflag fireworks

View File

@ -271,6 +271,14 @@ que_qaru03 mapflag nightenabled
que_qaru04 mapflag nightenabled
que_qaru05 mapflag nightenabled
// Battle Grounds ==============
bat_c01 mapflag nightenabled
bat_c02 mapflag nightenabled
bat_c03 mapflag nightenabled
//Endless Tower ==================
e_tower mapflag nightenabled
// Episode 13 ====================
mid_camp mapflag nightenabled
man_fild01 mapflag nightenabled
@ -287,9 +295,5 @@ manuk mapflag nightenabled
man_fild02 mapflag nightenabled
splendide mapflag nightenabled
spl_fild01 mapflag nightenabled
bat_c01 mapflag nightenabled
bat_c02 mapflag nightenabled
bat_c03 mapflag nightenabled
//Endless Tower ==================
e_tower mapflag nightenabled
//evt_zombie mapflag nightenabled

View File

@ -9,7 +9,7 @@
//= 1.8 Removed restriction on PVP maps. [L0ne_W0lf]
//===== Current Version: =====================================
// Cities ================>\\
// Cities ======================
ayo_in01 mapflag nobranch
ayo_in02 mapflag nobranch
alb_ship mapflag nobranch
@ -95,7 +95,7 @@ ve_in mapflag nobranch
ve_in02 mapflag nobranch
thor_camp mapflag nobranch
// Job Quests ====================
// Job Quests ==================
job_sword1 mapflag nobranch
job_thief1 mapflag nobranch
// 2-1
@ -118,7 +118,7 @@ que_ng mapflag nobranch
job_soul mapflag nobranch
job_star mapflag nobranch
// Special Quests Places =========
// Special Quests Places =======
que_god01 mapflag nobranch
que_god02 mapflag nobranch
que_bingo mapflag nobranch
@ -135,7 +135,7 @@ que_rachel mapflag nobranch
que_san04 mapflag nobranch
que_thor mapflag nobranch
// Guild Castles ==================
// Guild Castles ===============
//alde_gld mapflag nobranch
aldeg_cas01 mapflag nobranch
aldeg_cas02 mapflag nobranch
@ -178,14 +178,14 @@ nguild_gef mapflag nobranch
nguild_pay mapflag nobranch
nguild_prt mapflag nobranch
// GvG Arenas =====================
// GvG Arenas ==================
guild_vs1 mapflag nobranch
guild_vs2 mapflag nobranch
guild_vs3 mapflag nobranch
guild_vs4 mapflag nobranch
guild_vs5 mapflag nobranch
// Arenas ================>\\
// Arenas ======================
arena_room mapflag nobranch
force_1-1 mapflag nobranch
force_1-2 mapflag nobranch
@ -219,11 +219,11 @@ prt_are01 mapflag nobranch
//wizard_2-1 mapflag nobranch
//wizard_3-1 mapflag nobranch
// PvP Arenas =========================
// PvP Arenas ==================
pvp_y_room mapflag nobranch
pvp_n_room mapflag nobranch
//Main City maps
// Main City maps ==============
alberta mapflag nobranch
aldebaran mapflag nobranch
amatsu mapflag nobranch
@ -259,11 +259,11 @@ turbo_e_4 mapflag nobranch
turbo_e_8 mapflag nobranch
turbo_e_16 mapflag nobranch
//Monster Races ================
// Monster Races ===============
p_track01 mapflag nobranch
p_track02 mapflag nobranch
//Vision of Okolnir ============
// Vision of Okolnir ===========
que_qsch01 mapflag nobranch
que_qsch02 mapflag nobranch
que_qsch03 mapflag nobranch
@ -274,3 +274,15 @@ que_qaru02 mapflag nobranch
que_qaru03 mapflag nobranch
que_qaru04 mapflag nobranch
que_qaru05 mapflag nobranch
// Battle Grounds ==============
bat_c01 mapflag nobranch
bat_c02 mapflag nobranch
bat_c03 mapflag nobranch
bat_room mapflag nobranch
bat_b01 mapflag nobranch
bat_b02 mapflag nobranch
bat_a01 mapflag nobranch
bat_a02 mapflag nobranch
//evt_zombie mapflag nobranch

View File

@ -1,16 +1,16 @@
//===== eAthena Script =======================================
//= Map flags that disable drop of loot
//= Mapflag from a script in the NPC folder
//===== By: ==================================================
//= eAthena Dev Team
//= 1.2 [Lupus] 1.3 [massdriller] 1.4 Lupus 1.5 Lorky
//= 1.6 Added Lighthalzen (due to quests) [Lupus]
//= 1.7 Commented out entries. (Quests are official) [L0ne_W0lf]
//= Epoque
//===== Current Version: =====================================
//= 1.0a [Epoque]
//===== Compatible With: =====================================
//=
//===== Description: =========================================
//=
//============================================================
// Location for Job's Quests
//job_sword1 mapflag noloot
//in_moc_16 mapflag noloot
//job_hunte mapflag noloot
//hunte mapflag noloot
//job_knt mapflag noloot
//job_prist mapflag noloot
//job_wiz mapflag noloot

View File

@ -1,4 +1,5 @@
//===== eAthena Script =======================================
//===== eAthena Script =======================================
//= Map flags that disable warp portal memory
//===== By: ==================================================
//= eAthena Dev Team
@ -637,6 +638,16 @@ que_qaru05 mapflag nomemo
5@tower mapflag nomemo
6@tower mapflag nomemo
// Battle Grounds ================
bat_c01 mapflag nomemo
bat_c02 mapflag nomemo
bat_c03 mapflag nomemo
bat_room mapflag nomemo
bat_b01 mapflag nomemo
bat_b02 mapflag nomemo
bat_a01 mapflag nomemo
bat_a02 mapflag nomemo
// Episode 13 ====================
mid_campin mapflag nomemo
man_fild01 mapflag nomemo
@ -666,3 +677,5 @@ spl_in01 mapflag nomemo
// Nidhoggr's Instance ===========
1@nyd mapflag nomemo
2@nyd mapflag nomemo
//evt_zombie mapflag nomemo

View File

@ -238,3 +238,15 @@ que_qaru02 mapflag nopenalty
que_qaru03 mapflag nopenalty
que_qaru04 mapflag nopenalty
que_qaru05 mapflag nopenalty
// Battle Grounds ==============
bat_c01 mapflag nopenalty
bat_c02 mapflag nopenalty
bat_c03 mapflag nopenalty
bat_room mapflag nopenalty
bat_b01 mapflag nopenalty
bat_b02 mapflag nopenalty
bat_a01 mapflag nopenalty
bat_a02 mapflag nopenalty
//evt_zombie mapflag nopenalty

View File

@ -79,4 +79,5 @@ ein_in01 mapflag pvp off
ayothaya mapflag pvp off
veins mapflag pvp off
ve_in mapflag pvp off
ve_in02 mapflag pvp off
ve_in02 mapflag pvp off
//evt_zombie mapflag pvp off

View File

@ -229,3 +229,14 @@ que_hugel mapflag noreturn
//pvp_n_8-4 mapflag noreturn
//pvp_n_8-5 mapflag noreturn
//pvp_2vs2 mapflag noreturn
// Battle Grounds ==============
bat_c01 mapflag noreturn
bat_c02 mapflag noreturn
bat_c03 mapflag noreturn
bat_b01 mapflag noreturn
bat_b02 mapflag noreturn
bat_a01 mapflag noreturn
bat_a02 mapflag noreturn
//evt_zombie mapflag noreturn

View File

@ -239,6 +239,15 @@ e_tower mapflag nosave SavePoint
5@tower mapflag nosave SavePoint
6@tower mapflag nosave SavePoint
// Battle Grounds ==============
bat_c01 mapflag nosave SavePoint
bat_c02 mapflag nosave SavePoint
bat_c03 mapflag nosave SavePoint
bat_b01 mapflag nosave SavePoint
bat_b02 mapflag nosave SavePoint
bat_a01 mapflag nosave SavePoint
bat_a02 mapflag nosave SavePoint
// Episode 13 ====================
moc_fild22b mapflag nosave SavePoint
que_dan01 mapflag nosave SavePoint
@ -258,3 +267,5 @@ arug_dun01 mapflag nosave SavePoint
arug_dun01 mapflag nosave SavePoint
schg_dun01 mapflag nosave SavePoint
//evt_zombie mapflag nosave SavePoint

View File

@ -13,12 +13,18 @@ prt_are_in mapflag noskill
himinn mapflag noskill
// Quiz Maps ===================
quiz_00 mapflag noskill
quiz_01 mapflag noskill
quiz_02 mapflag noskill
quiz_test mapflag noskill
quiz_00 mapflag noskill
quiz_01 mapflag noskill
quiz_02 mapflag noskill
quiz_test mapflag noskill
//Hugel Minigames ==============
que_bingo mapflag noskill
p_track01 mapflag noskill
p_track02 mapflag noskill
//evt_zombie mapflag noskill

View File

@ -353,6 +353,16 @@ e_tower mapflag noteleport
6@tower mapflag noteleport
6@tower mapflag monster_noteleport
// Battle Grounds ==============
bat_c01 mapflag noteleport
bat_c02 mapflag noteleport
bat_c03 mapflag noteleport
bat_room mapflag noteleport
bat_b01 mapflag noteleport
bat_b02 mapflag noteleport
bat_a01 mapflag noteleport
bat_a02 mapflag noteleport
// Episode 13 ====================
mid_campin mapflag noteleport
moc_fild22b mapflag noteleport
@ -377,3 +387,5 @@ nyd_dun02 mapflag noteleport
1@nyd mapflag monster_noteleport
2@nyd mapflag noteleport
2@nyd mapflag monster_noteleport
//evt_zombie mapflag noteleport

View File

@ -0,0 +1,14 @@
//===== eAthena Script =======================================
//= Mapflag from a script in the NPC folder
//===== By: ==================================================
//= Epoque
//===== Current Version: =====================================
//= 1.0a [Epoque]
//===== Compatible With: =====================================
//=
//===== Description: =========================================
//=
//============================================================
//prontera mapflag novending
//prt_in mapflag novending

View File

@ -57,3 +57,11 @@ turbo_e_16 mapflag nowarp
//Monster Races ================
p_track01 mapflag nowarp
p_track02 mapflag nowarp
// Battle Grounds ==============
bat_c01 mapflag nowarp
bat_c02 mapflag nowarp
bat_c03 mapflag nowarp
bat_b01 mapflag nowarp
bat_b02 mapflag nowarp
bat_a01 mapflag nowarp
bat_a02 mapflag nowarp

View File

@ -99,6 +99,16 @@ e_tower mapflag nowarpto
5@tower mapflag nowarpto
6@tower mapflag nowarpto
// Battle Grounds ==============
bat_c01 mapflag nowarpto
bat_c02 mapflag nowarpto
bat_c03 mapflag nowarpto
bat_room mapflag nowarpto
bat_b01 mapflag nowarpto
bat_b02 mapflag nowarpto
bat_a01 mapflag nowarpto
bat_a02 mapflag nowarpto
// Episode 13 ====================
mid_campin mapflag nowarpto
man_fild01 mapflag nowarpto

33
conf/mapflag/town.txt Normal file
View File

@ -0,0 +1,33 @@
//===== eAthena Script =======================================
//= Allows Mailbox access
//===== By: ==================================================
//= Epoque
//===== Current Version: =====================================
//= 1.0a [Epoque]
//===== Compatible With: =====================================
//=
//===== Description: =========================================
//=
//============================================================
prontera mapflag town
izlude mapflag town
moc_ruins mapflag town
geffen mapflag town
payon mapflag town
pay_arche mapflag town
alberta mapflag town
aldebaran mapflag town
yuno mapflag town
lighthalzen mapflag town
einbroch mapflag town
einbech mapflag town
comodo mapflag town
umbala mapflag town
amatsu mapflag town
gonryun mapflag town
ayothaya mapflag town
louyang mapflag town
hugel mapflag town
rachel mapflag town
veins mapflag town

View File

@ -6735,7 +6735,8 @@ color can be:
<On Quit Event> refers to an NPC label that attaches to the character and is run when they relog.
<On Death Event> refers to an NPC label that attaches to the character and is run when they die. Can be "" for empty.
Unlike the prior command, the latter will attach a GROUP in a waiting room to the battleground.
Unlike the prior command, the latter will attach a GROUP in a waiting room to the battleground, and
sets the array $@arenamembers[0] where 0 holds the IDs of the first group, and 1 holds the IDs of the second.
Example:
// Battle Group will be refered to as $@KvM01BG_id1, and when they die, respawn at bat_c01,52,129.

View File

@ -1,7 +1,20 @@
Date Added
======
2010/08/11
* Rev. 14369 Another rather large overhaul of the battlegrounds. [L0ne_W0lf]
* Rev. 14374 More battleground editing, and some bug fixes. [L0ne_W0lf]
- * ALL BATTLEGROUNDS ARE NOW ACTIVE BY DEFAULT. PLEASE CONTINUE TESTING *
- Rewrote the Badge Exchange NPC in bg_common.txt, is official now.
- Other changes to the bg_common folder, including disabled GM NPC.
- Completely rewrote Flavius for the most part, from ground up.
- Moved old Flavius battlegrounds to /custom/battleground folder.
- Restored original bg_common, and KVM to /custom/battleground
- Fixed wall bugs in Tierra Gorge, and added an oninit to the timers.
- Other minor tweaks to both Tierra Gorge and KVM scripts.
- Fixed the pseudo-cooldown on KVM not working properly, I hope.
- Added global time2str function which will be used later in Endless tower.
* Applied Epoque's mapflag clean up, which removes flags from scripts.
2010/08/11
* Rev. 14373 Another rather large overhaul of the battlegrounds. [L0ne_W0lf]
- in bg_common.txt, stripped out several more NPCs, split them off.
- Most of the NPCs in bg_common.txt are now official Aegis versions.
- Completely rewrote Tierra Gorge for the most part, from ground up.

View File

@ -1,15 +1,23 @@
// ==============================================================================
//===== eAthena Script =======================================
// BattleGround System - Common NPCs
// ==============================================================================
// MapFlags
// *********************************************************************
bat_room mapflag nomemo
bat_room mapflag nowarpto
bat_room mapflag nobranch
bat_room mapflag nopenalty
bat_room mapflag noteleport
//===== By: ==================================================
//= ????, L0ne_W0lf
//===== Current Version: =====================================
//= 1.1
//===== Compatible With: =====================================
//= eAthena 1.0
//===== Description: =========================================
//= [AEGIS Conversion]
//= Battleground npcs:
//= - Generals and Aides
//= - Battlegroun Warper
//= - Kafra and Repairman.
//= - GM Management NPC (Disabled by default)
//= - Badge Exhanger (Tierra and Flavius.)
//===== Additional Comments: =================================
//= 1.0 First Version.
//= 1.1 Updated several NPCs to Official.
//============================================================
// Generals
//============================================================
@ -269,197 +277,551 @@ payon,189,105,3 duplicate(BatRecruit) Maroll Battle Recruiter::BatRecruit5 728
lighthalzen,153,86,5 duplicate(BatRecruit) Maroll Battle Recruiter::BatRecruit6 728
rachel,149,138,3 duplicate(BatRecruit) Maroll Battle Recruiter::BatRecruit7 728
// Time calculation Function
// *********************************************************************
function script Time2Str {
set .@Time_Left, getarg(0) - gettimetick(2);
set .@Days, .@Time_Left / 86400;
set .@Time_Left, .@Time_Left - (.@Days * 86400);
set .@Hours, .@Time_Left / 3600;
set .@Time_Left, .@Time_Left - (.@Hours * 3600);
set .@Minutes, .@Time_Left / 60;
set .@Time_Left, .@Time_Left - (.@Minutes * 60);
set .@Time$, "";
if( .@Days > 1 )
set .@Time$, .@Time$ + .@Days + " days, ";
else if( .@Days > 0 )
set .@Time$, .@Time$ + .@Days + " day, ";
if( .@Hours > 1 )
set .@Time$, .@Time$ + .@Hours + " hours, ";
else if( .@Hours > 0 )
set .@Time$, .@Time$ + .@Hours + " hour, ";
if( .@Minutes > 1 )
set .@Time$, .@Time$ + .@Minutes + " minutes, ";
else if( .@Minutes > 0 )
set .@Time$, .@Time$ + .@Minutes + " minute, ";
if( .@Time_Left > 1 || .@Time_Left == 0 )
set .@Time$, .@Time$ + .@Time_Left + " seconds.";
else if( .@Time_Left == 1 )
set .@Time$, .@Time$ + .@Time_Left + " second.";
return .@Time$;
}
// Exit from Registration
// *********************************************************************
- script warp2bat_room -1,{
end;
OnTouch:
set BG_Delay_Tick, gettimetick(2) + 30;
warp "bat_room",154,149;
end;
}
// Flavius bat_b02
bat_room,57,81,0 duplicate(warp2bat_room) bat1 45,1,1
bat_room,57,90,0 duplicate(warp2bat_room) bat2 45,1,1
// Additional warps
// Empty
bat_room,85,81,0 duplicate(warp2bat_room) bat5 45,1,1
bat_room,85,90,0 duplicate(warp2bat_room) bat6 45,1,1
bat_room,57,81,0 warp bat1 1,1,bat_room,154,149
bat_room,57,90,0 warp bat2 1,1,bat_room,154,149
// Empty
bat_room,85,220,0 duplicate(warp2bat_room) bat7 45,1,1
bat_room,85,211,0 duplicate(warp2bat_room) bat8 45,1,1
bat_room,85,81,0 warp bat5 1,1,bat_room,154,149
bat_room,85,90,0 warp bat6 1,1,bat_room,154,149
// Free BG
bat_room,113,81,0 duplicate(warp2bat_room) bat9 45,1,1
bat_room,113,90,0 duplicate(warp2bat_room) bat10 45,1,1
bat_room,113,81,0 warp bat9 1,1,bat_room,154,149
bat_room,113,90,0 warp bat10 1,1,bat_room,154,149
// Free BG
bat_room,141,81,0 duplicate(warp2bat_room) bat13 45,1,1
bat_room,141,90,0 duplicate(warp2bat_room) bat14 45,1,1
bat_room,141,81,0 warp bat13 1,1,bat_room,154,149
bat_room,141,90,0 warp bat14 1,1,bat_room,154,149
// Free BG
bat_room,141,220,0 duplicate(warp2bat_room) bat15 45,1,1
bat_room,141,211,0 duplicate(warp2bat_room) bat16 45,1,1
bat_room,169,81,0 warp bat17 1,1,bat_room,154,149
bat_room,169,90,0 warp bat18 1,1,bat_room,154,149
// Free BG
bat_room,169,81,0 duplicate(warp2bat_room) bat17 45,1,1
bat_room,169,90,0 duplicate(warp2bat_room) bat18 45,1,1
bat_room,197,81,0 warp bat21 1,1,bat_room,154,149
bat_room,197,90,0 warp bat22 1,1,bat_room,154,149
// 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
// 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
// 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
bat_room,225,81,0 warp bat25 1,1,bat_room,154,149
bat_room,225,90,0 warp bat26 1,1,bat_room,154,149
// Empty
bat_room,253,220,0 duplicate(warp2bat_room) bat31 45,1,1
bat_room,253,211,0 duplicate(warp2bat_room) bat32 45,1,1
bat_room,253,81,0 warp bat29 1,1,bat_room,154,149
bat_room,253,90,0 warp bat30 1,1,bat_room,154,149
// Empty
bat_room,253,220,0 warp bat31 1,1,bat_room,154,149
bat_room,253,211,0 warp bat32 1,1,bat_room,154,149
// Kafra
// *********************************************************************
//============================================================
bat_room,148,147,4 script Kafra Staff::kaf_bat 861,{
cutin "kafra_09",2;
callfunc "F_Kafra",0,2,1,150,0;
}
// Badges Repairman
// *********************************************************************
// Repairman
//============================================================
bat_room,138,144,5 script Repairman#bg 86,{
callfunc "repairmain","Repairman";
end;
}
// Badges Exchange
// *********************************************************************
/*
// GM Management NPC
//============================================================
bat_room,1,151,3 script Switch#batgnd 81,{
input .@input,0,2000;
if (.@input == 0) {
mes "The command has been cancelled.";
close;
}
else if (.@input == 1854) {
mes "May I help ypu?";
next;
switch(select("Close Battlefield:Open Battlefield:Reset a01:Reset b01:Reset a02:Reset b02")) {
case 1:
disablenpc "Tierra Gorge Officer#01a";
disablenpc "Tierra Gorge Officer#02a";
disablenpc "Tierra Gorge Officer#01b";
disablenpc "Tierra Gorge Officer#02b";
disablenpc "Flavius Officer#01a";
disablenpc "Flavius Officer#01b";
disablenpc "Flavius Officer#02a";
disablenpc "Flavius Officer#02b";
break;
case 2:
enablenpc "Tierra Gorge Officer#01a";
enablenpc "Tierra Gorge Officer#02a";
enablenpc "Tierra Gorge Officer#01b";
enablenpc "Tierra Gorge Officer#02b";
enablenpc "Flavius Officer#01a";
enablenpc "Flavius Officer#01b";
enablenpc "Flavius Officer#02a";
enablenpc "Flavius Officer#02b";
break;
case 3:
donpcevent "start#bat_a01::OnEnable";
break;
case 4:
donpcevent "start#bat_b01::OnEnable";
break;
case 5:
donpcevent "start#bat_a02::OnEnable";
break;
case 6:
donpcevent "start#bat_b02::OnEnable";
break;
}
mes "Complete";
close;
}
}
*/
// Badges Exchange
//============================================================
bat_room,160,150,3 script Erundek 109,{
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 "[Erundek]";
mes "Welcome, mighty warrior.";
mes "What can I do for you today ?";
mes "Do you have the battlefield badges?";
mes "I can exchange Bravery Badges and Valor Badges for reward items.";
next;
switch( select("Check the Catalog","Exchange Bravery Badges","Exchange Valor Badges","Hmm, nothing I guess.") )
{
switch(select("Exchange Badges:Check the Catalog")) {
case 1:
mes "[Erundek]";
mes "Which type of items would you like to exchange?";
mes "To check more information about the reward items, please use our ^3131FFCatalog^000000.";
next;
switch(select("Weapon:Armor:Accessory:Consumable")) {
case 1:
mes "[Erundek]";
mes "We have many items, so please take a look and purchase deliberately.";
close2;
Readbook 11010,1;
end;
mes "You chose ^3131FFWeapon^000000.";
mes "The following weapons are available for exchange with the battlefield badges.";
mes "Please note that items for ^3131FFBravery Badges are indicated as (BB)^000000, and ^3131FFValor Badges as (VB)^000000.";
next;
switch(select("Dagger/OneSword/TwoSword/TwoSpear:Staff/Mace/TwoAxe/Shuriken:Bow/Katar/Music/Whip:Book/Knuckle:Revolver/Rifle/Gatling/Shotgun/Launcher")) {
case 1:
mes "[Erundek]";
mes "The following items are available in the ^3131FFDagger, One-Handed Sword, Two-Handed Sword, and Two-Handed Spear^000000 category.";
next;
switch(select("Brave Assassin's Damascus(BB):Valorous Assassin's Damascus(VB):Brave Gladiator's Blade(BB):Valorous Gladiator's Blade(VB):Brave Assaulter's Katzbalger(BB):Valorous Assaulters's Katzbalger(VB):Assaulter Spear:Assaulter Lance")) {
case 1:
setarray .@cost[0],7828,100; //BF_Badge1
setarray .@item[0],13036,1; //BF_Dagger1
break;
case 2:
setarray .@cost[0],7829,100; //BF_Badge2
setarray .@item[0],13037,1; //BF_Dagger2
break;
case 3:
setarray .@cost[0],7828,100; //BF_Badge1
setarray .@item[0],13411,1; //BF_Sword2
break;
case 4:
setarray .@cost[0],7829,100; //BF_Badge2
setarray .@item[0],13410,1; //BF_Sword1
break;
case 5:
setarray .@cost[0],7828,100; //BF_Badge1
setarray .@item[0],1183,1; //BF_Two_Handed_Sword1
break;
case 6:
setarray .@cost[0],7829,100; //BF_Badge2
setarray .@item[0],1184,1; //BF_Two_Handed_Sword2
break;
case 7:
setarray .@cost[0],7828,100; //BF_Badge1
setarray .@item[0],1425,1; //BF_Spear1
break;
case 8:
setarray .@cost[0],7829,100; //BF_Badge2
setarray .@item[0],1482,1; //BF_Lance1
break;
}
break;
case 2:
mes "[Erundek]";
mes "The following items are available in the ^3131FFStaff / Mace / Two-Handed Axe / Huuma Shuriken^000000 category.";
next;
switch(select("Warlock's Magic Wand(BB):Warlock's Battle Wand(VB):Strong Recovery Wand:Speedy Recovery Wand:Brave Battlefield Morning Star(BB):Valorous Battlefield Morning Star(VB):Insane Battle Axe(BB):Insane Battle Axe(VB):Brave Huuma Front Shuriken(BB):Valorous Huuma Front Shuriken(VB)")) {
case 1:
setarray .@cost[0],7828,100; //BF_Badge1
setarray .@item[0],1632,1; //BF_Staff1
break;
case 2:
setarray .@cost[0],7829,100; //BF_Badge2
setarray .@item[0],1633,1; //BF_Staff2
break;
case 3:
setarray .@cost[0],7828,100; //BF_Badge1
setarray .@item[0],1634,1; //BF_Staff3
break;
case 4:
setarray .@cost[0],7829,100; //BF_Badge2
setarray .@item[0],1635,1; //BF_Staff4
break;
case 5:
setarray .@cost[0],7828,100; //BF_Badge1
setarray .@item[0],1543,1; //BF_Morning_Star2
break;
case 6:
setarray .@cost[0],7829,100; //BF_Badge2
setarray .@item[0],1542,1; //BF_Morning_Star1
break;
case 7:
setarray .@cost[0],7828,100; //BF_Badge1
setarray .@item[0],1380,1; //BF_Two_Handed_Axe2
break;
case 8:
setarray .@cost[0],7829,100; //BF_Badge2
setarray .@item[0],1379,1; //BF_Two_Handed_Axe1
break;
case 9:
setarray .@cost[0],7828,100; //BF_Badge1
setarray .@item[0],13305,1; //BF_Huuma_Shuriken1
break;
case 10:
setarray .@cost[0],7829,100; //BF_Badge2
setarray .@item[0],13306,1; //BF_Huuma_Shuriken2
break;
}
break;
case 3:
mes "[Erundek]";
mes "The following weapons are available in the ^3131FFBow / Katar / Musical Instrument / Whip^000000 category.";
next;
switch(select("Brave Battle CrossBow(BB):Valorous Battle CrossBow(VB):Brave Carnage Katar(BB):Valorous Carnage Katar(VB):Brave Battlefield Guitar(BB):Valorous Battlefield Guitar(VB):Brave Battle Lariat(BB):Valorous Battle Lariat(VB)")) {
case 1:
setarray .@cost[0],7828,100; //BF_Badge1
setarray .@item[0],1739,1; //BF_Bow2
break;
case 2:
setarray .@cost[0],7829,100; //BF_Badge2
setarray .@item[0],1738,1; //BF_Bow1
break;
case 3:
setarray .@cost[0],7828,100; //BF_Badge1
setarray .@item[0],1279,1; //BF_Katar1
break;
case 4:
setarray .@cost[0],7829,100; //BF_Badge2
setarray .@item[0],1280,1; //BF_Katar2
break;
case 5:
setarray .@cost[0],7828,100; //BF_Badge1
setarray .@item[0],1924,1; //BF_Instrument2
break;
case 6:
setarray .@cost[0],7829,100; //BF_Badge2
setarray .@item[0],1923,1; //BF_Instrument1
break;
case 7:
setarray .@cost[0],7828,100; //BF_Badge1
setarray .@item[0],1978,1; //BF_Whip2
break;
case 8:
setarray .@cost[0],7829,100; //BF_Badge2
setarray .@item[0],1977,1; //BF_Whip1
break;
}
break;
case 4:
mes "[Erundek]";
mes "The following weapons are available in the ^3131FFBook / Knuckle^000000 category.";
next;
switch(select("Brave Battle Strategy Book(BB):Valorous Battle Strategy Book(VB):Brave Battle Fist(BB):Valorous Battle Fist(VB)")) {
case 1:
setarray .@cost[0],7828,100; //BF_Badge1
setarray .@item[0],1574,1; //BF_Book1
break;
case 2:
setarray .@cost[0],7829,100; //BF_Badge2
setarray .@item[0],1575,1; //BF_Book2
break;
case 3:
setarray .@cost[0],7828,100; //BF_Badge1
setarray .@item[0],1824,1; //BF_Knuckle2
break;
case 4:
setarray .@cost[0],7829,100; //BF_Badge2
setarray .@item[0],1823,1; //BF_Knuckle1
break;
}
break;
case 5:
mes "[Erundek]";
mes "The following weapons are available in the ^3131FFRevolver / Rifle / Gatling Gun / Shotgun / Grenade Launcher^000000 category.";
next;
switch(select("Soldier Revolver:Soldier Rifle:Soldier Gatling Gun:Soldier Shotgun:Soldier Grenade Launcher")) {
case 1:
setarray .@cost[0],7828,100; //BF_Badge1
setarray .@item[0],13108,1; //BF_Pistol1
break;
case 2:
setarray .@cost[0],7829,100; //BF_Badge2
setarray .@item[0],13171,1; //BF_Rifle1
break;
case 3:
setarray .@cost[0],7828,100; //BF_Badge1
setarray .@item[0],13172,1; //BF_Gatling_Gun1
break;
case 4:
setarray .@cost[0],7829,100; //BF_Badge2
setarray .@item[0],13173,1; //BF_Shotgun1
break;
case 5:
setarray .@cost[0],7829,100; //BF_Badge2
setarray .@item[0],13174,1; //BF_Launcher1
break;
}
break;
}
if (.@cost[0] == 7829)
set .@type$,"(VB)";
else
v set .@type$,"(BB)";
mes "[Erundek]";
mes "You chose ^3131FF"+getitemname(.@item[0])+""+.@type$+"^000000.";
mes "You can exchange for this item with ^FF0000"+.@cost[1]+" "+getitemname(.@cost[0])+"^000000.";
mes "Would you like to exchange?";
next;
switch(select("Do not exchange:Exchange")) {
case 1:
mes "[Erundek]";
mes "Do you need more time to check the items?";
break;
case 2:
mes "[Erundek]";
mes "Would you like to spend ^FF0000"+.@cost[1]+" "+getitemname(.@cost[0])+"^000000 and receive an ^3131FF"+getitemname(.@item[0])+""+.@type$+"^000000?";
next;
mes "[Erundek]";
mes "Remember, Battleground Reward Items are ^FF0000Character Bound^000000. Are you sure you want this item?";
next;
switch(select("Yes:No")) {
case 1:
if (countitem(.@cost[0]) >= .@cost[1]) {
mes "[Erundek]";
mes "Thank you for exchanging.";
delitem .@cost[0],.@cost[1];
getitem .@item[0],.@item[1];
}
else {
mes "[Erundek]";
mes "I'm sorry, but you don't have enough badges to exchange.";
}
break;
case 2:
mes "[Erundek]";
mes "Do you need more time to check out the items?";
break;
}
break;
}
close;
case 2:
mes "[Erundek]";
mes "You chose ^3131FFArmor^000000.";
mes "The following armors are available for exchange with the battlefield badges.";
next;
switch(select("Garments / Shoes:Armor")) {
case 1:
switch(select("Captain's Manteau:Commander's Manteau:Sheriff's Manteau:Battle Greave:Combat Boots:Battle Boots")) {
case 1:
setarray .@cost[0],7828,50,7829,50; //BF_Badge1
setarray .@item[0],2538,1; //Commander_Manteau
break;
case 2:
setarray .@cost[0],7828,50,7829,50; //BF_Badge1
setarray .@item[0],2539,1; //Commander_Manteau_
break;
case 3:
setarray .@cost[0],7828,50,7829,50; //BF_Badge1
setarray .@item[0],2540,1; //Sheriff_Manteau
break;
case 4:
setarray .@cost[0],7828,50,7829,50; //BF_Badge1
setarray .@item[0],2435,1; //Battle_Greave
break;
case 5:
setarray .@cost[0],7828,50,7829,50; //BF_Badge1
setarray .@item[0],2436,1; //Combat_Boots
break;
case 6:
setarray .@cost[0],7828,50,7829,50; //BF_Badge1
setarray .@item[0],2437,1; //Battle_Boots
break;
}
break;
case 2:
switch(select("Assaulter Plate:Elite Engineer Armor:Assassin Robe:Warlock's Battle Robe:Medic's Robe:Elite Archer Suit:Elite Shooter Suit")) {
case 1:
setarray .@cost[0],7828,80,7829,80; //BF_Badge1
setarray .@item[0],2376,1; //Assaulter_Plate
break;
case 2:
setarray .@cost[0],7828,80,7829,80; //BF_Badge1
setarray .@item[0],2377,1; //Elite_Engineer_Armor
break;
case 3:
setarray .@cost[0],7828,80,7829,80; //BF_Badge1
setarray .@item[0],2378,1; //Assassin_Robe
break;
case 4:
setarray .@cost[0],7828,80,7829,80; //BF_Badge1
setarray .@item[0],2379,1; //Warlock_Battle_Robe
break;
case 5:
setarray .@cost[0],7828,80,7829,80; //BF_Badge1
setarray .@item[0],2380,1; //Medic_Robe
break;
case 6:
setarray .@cost[0],7828,80,7829,80; //BF_Badge1
setarray .@item[0],2381,1; //Elite_Archer_Suit
break;
case 7:
setarray .@cost[0],7828,80,7829,80; //BF_Badge1
setarray .@item[0],2382,1; //Elite_Shooter_Suit
break;
}
break;
}
break;
case 3:
mes "[Erundek]";
mes "You chose ^3131FFAccessory^000000.";
mes "You can exchange the Medal of Honors with your Badges according to the job classes, as follows:";
next;
switch(select("Gunslinger:Swordman/Taekwon Master:Thief:Acolyte:Magician:Archer:Merchant")) {
case 1:
setarray .@cost[0],7828,500,7829,500; //BF_Badge1
setarray .@item[0],2733,1; //Medal_Gunner
break;
case 2:
setarray .@cost[0],7828,500,7829,500; //BF_Badge1
setarray .@item[0],2720,1; //Medal_Swordman
break;
case 3:
setarray .@cost[0],7828,500,7829,500; //BF_Badge1
setarray .@item[0],2721,1; //Medal_Thief
break;
case 4:
setarray .@cost[0],7828,500,7829,500; //BF_Badge1
setarray .@item[0],2722,1; //Medal_Acolyte
break;
case 5:
setarray .@cost[0],7828,500,7829,500; //BF_Badge1
setarray .@item[0],2723,1; //Medal_Mage
break;
case 6:
setarray .@cost[0],7828,500,7829,500; //BF_Badge1
setarray .@item[0],2724,1; //Medal_Archer
break;
case 7:
setarray .@cost[0],7828,500,7829,500; //BF_Badge1
setarray .@item[0],2725,1; //Medal_Merchant
break;
}
break;
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 Gorge.";
mes "What kind of item do you want to exchange?";
mes "You chose ^3131FFConsumable^000000.";
mes "The following consumable items are available for exchange with the battlefield badges:";
next;
deletearray .@Item_DB[0],127;
set .@Badge, 7828;
switch( select("Weapons:Garment:Footgear:Armor:Accessory") )
{
case 1: setarray .@Item_DB[0],13036,13411,1425,1632,1634,1543,1924,1978,1574,1824,1183,1380,13305,1279,1739,13108,13172; set .@Value, 100; break;
case 2: setarray .@Item_DB[0],2538,2539,2540; set .@Value, 50; break;
case 3: setarray .@Item_DB[0],2435,2436,2437; set .@Value, 50; break;
case 4: setarray .@Item_DB[0],2376,2377,2378,2379,2380,2381,2382; set .@Value, 80; break;
case 5: setarray .@Item_DB[0],2720,2721,2722,2723,2724,2725,2733; set .@Value, 500; break;
switch(select("Tasty Pink Ration:Tasty White Ration:Military Ration A:Military Ration B:Military Ration C")) {
case 1:
setarray .@cost[0],7828,10,7829,10; //BF_Badge1
setarray .@item[0],12269,1; //Tasty_Colonel
break;
case 2:
setarray .@cost[0],7828,10,7829,10; //BF_Badge1
setarray .@item[0],12270,1; //Tasty_Major
break;
case 3:
setarray .@cost[0],7828,5,7829,5; //BF_Badge1
setarray .@item[0],12271,1; //Mre_A
break;
case 4:
setarray .@cost[0],7828,10,7829,10; //BF_Badge1
setarray .@item[0],12272,1; //Mre_B
break;
case 5:
setarray .@cost[0],7828,10,7829,10; //BF_Badge1
setarray .@item[0],12273,1; //Mre_C
break;
}
break;
case 3: // Valor Badges
mes "[Erundek]";
mes "So you want to exchange ^FF0000Valor Badges^000000 from the Battle of Flavius.";
mes "What kind of item do you want to exchange?";
next;
deletearray .@Item_DB[0],127;
set .@Badge, 7829;
switch( select("Weapons:Garment:Footgear:Armor:Accessory") )
{
case 1: setarray .@Item_DB[0],13037,13410,1633,1635,1542,1923,1977,1575,1823,1184,1482,1379,13306,1280,1738,13171,13173,13174; set .@Value, 100; break;
case 2: setarray .@Item_DB[0],2538,2539,2540; set .@Value, 50; break;
case 3: setarray .@Item_DB[0],2435,2436,2437; set .@Value, 50; break;
case 4: setarray .@Item_DB[0],2376,2377,2378,2379,2380,2381,2382; set .@Value, 80; break;
case 5: setarray .@Item_DB[0],2720,2721,2722,2723,2724,2725,2733; set .@Value, 500; break;
}
break;
}
break;
case 2:
mes "[Erundek]";
mes "We have many items, so please take a look and purchase deliberately.";
close2;
ReadBook 11010,1;
end;
}
mes "[Erundek]";
mes "What item do you want to exchange?";
mes "If you are not sure, check the catalog.";
mes "You chose ^3131FF"+getitemname(.@item[0])+"^000000.";
switch(.@item[0]) {
case 2720: mes "This item is for Swordman and Taekwon Master Class only."; break;
case 2721: mes "This item is for Thief Class only."; break;
case 2722: mes "This item is for Acolyte Class only."; break;
case 2723: mes "This item is for Magician Class only."; break;
case 2724: mes "This item is for Archer Class only."; break;
case 2725: mes "This item is for Merchant Class only."; break;
case 2733: mes "This item is for Gunslinger only."; break;
default: break;
}
mes "You can exchange for this item with ^FF0000"+.@cost[1]+" "+getitemname(.@cost[0])+" or "+.@cost[3]+" "+getitemname(.@cost[2])+"^000000.";
mes "Would you like to exchange?";
next;
set .@Menu$, "";
set .@Count, getarraysize(.@Item_DB);
for( set .@i, 0; .@i < .@Count; set .@i, .@i + 1 )
set .@Menu$, .@Menu$ + getitemname(.@Item_DB[.@i]) + ":";
set .@Item_ID, .@Item_DB[select(.@Menu$) - 1];
mes "[Erundek]";
mes "Would you like to exchange ^FF0000" + .@Value + " " + getitemname(.@Badge) + "^000000 for a ^0000FF" + getitemname(.@Item_ID) + "^000000?";
next;
mes "Remember, Battleground Reward Items are ^FF0000Character Bound^000000.";
mes "Are you sure you want this item?";
next;
if( select("Yes:No") == 2 )
{
switch(select("Do not exchange:Exchange")) {
case 1:
mes "[Erundek]";
mes "Do you need more time to check the items?";
close;
}
if( countitem(.@Badge) < .@Value )
{
break;
case 2:
mes "[Erundek]";
mes "I'm sorry, but you don't have enough badges to exchange.";
close;
mes "Which Badge do you want to exchange?";
mes "You need ^3131FF"+.@cost[1]+" Badges^000000 to exchange.";
next;
if (.@item[0] < 12269 || .@item[0] > 12273 ) {
mes "[Erundek]";
mes "Remember, Battleground Reward Items are ^FF0000Character Bound^000000. Are you sure you want this item?";
next;
}
switch(select("Bravery Badge:Valor Badge:Cancel")) {
case 1:
if (countitem(.@cost[0]) >= .@cost[1]) {
mes "[Erundek]";
mes "Thank you for exchanging.";
delitem .@cost[0],.@cost[1];
getitem .@item[0],.@item[1];
}
else {
mes "[Erundek]";
mes "You do not have enough Bravery Badges.";
}
break;
case 2:
if (countitem(.@cost[2]) >= .@cost[3]) {
mes "[Erundek]";
mes "Thank you for exchanging.";
delitem .@cost[2],.@cost[3];
getitem .@item[0],.@item[1];
}
else {
mes "[Erundek]";
mes "You do not have enough Valor Badges.";
}
break;
case 3:
mes "[Erundek]";
mes "You cancelled the exchange.";
break;
}
break;
}
delitem .@Badge,.@Value;
getitem .@Item_ID,1;
mes "[Erundek]";
mes "Thank you for exchanging.";
close;
}

View File

@ -0,0 +1,759 @@
//===== eAthena Script =======================================
// BattleGround System - Flavius
//===== By: ==================================================
//= L0ne_W0lf
//===== Current Version: =====================================
//= 1.0
//===== Compatible With: =====================================
//= eAthena 1.0
//===== Description: =========================================
//= [AEGIS Conversion]
//= Flavius Battleground.
//= - Winning Team: 9 badges
//= - Losing Team: 3 badge
//===== Additional Comments: =================================
//= 1.0 First Version.
//============================================================
// Waiting Room NPCs
//============================================================
bat_room,86,227,4 script Lieutenant Ator 418,{
end;
OnInit:
waitingroom "Battle Station",1,"start#bat_b01::OnReadyCheck",1;
end;
OnEnterBG:
set $@FlaviusBG1_id1, waitingroom2bg("bat_b01",10,290,"start#bat_b01::OnGuillaumeQuit","");
end;
}
bat_room,85,204,0 script Lieutenant Thelokus 414,{
end;
OnInit:
waitingroom "Battle Station",1,"start#bat_b01::OnReadyCheck",1;
end;
OnEnterBG:
set $@FlaviusBG1_id2, waitingroom2bg("bat_b01",390,10,"start#bat_b01::OnCroixQuit","");
end;
}
bat_room,85,220,0 warp back_bgroomb02a 1,1,bat_room,154,150
bat_room,85,211,0 warp back_bgroomb02b 1,1,bat_room,154,150
bat_room,2,151,3 script #bat_b01_timer 844,{
end;
OnInit:
OnEnable:
initnpctimer;
end;
OnStop:
stopnpctimer;
end;
OnTimer1000:
stopnpctimer;
initnpctimer;
set .@chk_bat_a01,getmapusers("bat_b01");
if (.@chk_bat_a01 < 1) {
set $@FlaviusBG1, 0;
if( $@FlaviusBG1_id1 ) { bg_destroy $@FlaviusBG1_id1; set $@FlaviusBG1_id1, 0; }
if( $@FlaviusBG1_id2 ) { bg_destroy $@FlaviusBG1_id2; set $@FlaviusBG1_id2, 0; }
donpcevent "start#bat_b01::OnReadyCheck";
}
end;
}
// Flavius Battleground Engine
//============================================================
bat_b01,15,15,3 script start#bat_b01 844,{
OnInit:
mapwarp "bat_b01","bat_room",154,150;
end;
OnReadyCheck:
if( $@FlaviusBG1 )
end;
set .@Guillaume, getwaitingroomstate(0,"Lieutenant Ator");
set .@Croix, getwaitingroomstate(0,"Lieutenant Thelokus");
if( !.@Guillaume && !.@Croix ) {
donpcevent "#bat_b01_timer::OnStop";
end;
}
if( .@Guillaume < 1 || .@Croix < 1 )
end;
set $@FlaviusBG1, 1;
set $@FlaviusBG1_Victory, 0;
set $@Croix_ScoreBG1, 0;
set $@Guill_ScoreBG1, 0;
bg_updatescore "bat_b01",$@Guill_ScoreBG1,$@Croix_ScoreBG1;
donpcevent "Lieutenant Ator::OnEnterBG";
donpcevent "Lieutenant Thelokus::OnEnterBG";
donpcevent "OBJ#bat_b01_a::Onkill";
donpcevent "OBJ#bat_b01_a::OnEnable";
donpcevent "OBJ#bat_b01_b::Onkill";
donpcevent "OBJ#bat_b01_b::OnEnable";
donpcevent "guardian#bat_b01_a::Onkill";
donpcevent "guardian#bat_b01_b::Onkill";
donpcevent "guardian#bat_b01_a::OnEnable";
donpcevent "guardian#bat_b01_b::OnEnable";
donpcevent "cell#bat_b01_a::Onred";
donpcevent "cell#bat_b01_b::Onred";
donpcevent "time#bat_b01::OnEnable";
disablenpc "Guillaume Vintenar#b01_a";
disablenpc "Croix Vintenar#b01_b";
disablenpc "Vintenar#bat_b01_aover";
disablenpc "Vintenar#bat_b01_bover";
bg_warp $@FlaviusBG1_id1,"bat_b01",87,75;
bg_warp $@FlaviusBG1_id2,"bat_b01",311,224;
donpcevent "countdown#bat_b01::OnEnable";
initnpctimer;
end;
OnReset:
donpcevent "OBJ#bat_b01_a::Onkill";
donpcevent "OBJ#bat_b01_a::OnEnable";
donpcevent "OBJ#bat_b01_b::Onkill";
donpcevent "OBJ#bat_b01_b::OnEnable";
donpcevent "guardian#bat_b01_a::Onkill";
donpcevent "guardian#bat_b01_b::Onkill";
donpcevent "guardian#bat_b01_a::OnEnable";
donpcevent "guardian#bat_b01_b::OnEnable";
donpcevent "cell#bat_b01_a::Onred";
donpcevent "cell#bat_b01_b::Onred";
donpcevent "time#bat_b01::OnEnable";
disablenpc "Guillaume Vintenar#b01_a";
disablenpc "Croix Vintenar#b01_b";
disablenpc "Vintenar#bat_b01_aover";
disablenpc "Vintenar#bat_b01_bover";
bg_warp $@FlaviusBG1_id1,"bat_b01",87,75;
bg_warp $@FlaviusBG1_id2,"bat_b01",311,224;
end;
OnGuillaumeQuit:
OnCroixQuit:
bg_leave;
end;
OnTimer10000:
stopnpctimer;
donpcevent "#bat_b01_timer::OnEnable";
end;
}
bat_b01,1,1,3 script OBJ#bat_b01_a 844,{
OnEnable:
bg_monster $@FlaviusBG1_id1,"bat_b01",61,150,"Blue Crystal",1915,"OBJ#bat_b01_a::OnMyMobDead";
end;
Onkill:
killmonster "bat_b01","OBJ#bat_b01_a::OnMyMobDead";
end;
OnMyMobDead:
if (mobcount("bat_b01","OBJ#bat_b01_a::OnMyMobDead") < 1) {
mapannounce "bat_b01", "Guillaume's Crystal has been destroyed.",bc_map,"0xFFCE00";
if ($@Croix_ScoreBG1 > 0) {
set $@FlaviusBG1_Victory,2;
set $@Croix_ScoreBG1,$@Croix_ScoreBG1+1;
enablenpc "Guillaume Vintenar#b01_a";
enablenpc "Croix Vintenar#b01_b";
donpcevent "time#bat_b01::Onstop";
}
else {
set $@Croix_ScoreBG1,1;
donpcevent "time#bat_b01::OnEnable";
donpcevent "start#bat_b01::onReset";
}
donpcevent "#bat_b01_timer::OnStop";
bg_updatescore "bat_b01",$@Guill_ScoreBG1,$@Croix_ScoreBG1;
bg_warp $@FlaviusBG1_id1,"bat_b01",10,290;
bg_warp $@FlaviusBG1_id2,"bat_b01",390,10;
donpcevent "#bat_b01_timer::OnEnable";
}
end;
}
bat_b01,1,2,3 script OBJ#bat_b01_b 844,{
OnEnable:
bg_monster $@FlaviusBG1_id2,"bat_b01",328,150,"Blue Crystal",1914,"OBJ#bat_b01_b::OnMyMobDead";
end;
Onkill:
killmonster "bat_b01","OBJ#bat_b01_b::OnMyMobDead";
end;
OnMyMobDead:
if (mobcount("bat_b01","OBJ#bat_b01_b::OnMyMobDead") < 1) {
mapannounce "bat_b01", "Croix's Crystal has been destroyed.",bc_map,"0xFFCE00";
if ($@Guill_ScoreBG1 > 0) {
set $@FlaviusBG1_Victory,1;
set $@Guill_ScoreBG1,$@Guill_ScoreBG1+1;
enablenpc "Guillaume Vintenar#b01_a";
enablenpc "Croix Vintenar#b01_b";
donpcevent "time#bat_b01::Onstop";
}
else {
set $@Guill_ScoreBG1,1;
donpcevent "time#bat_b01::OnEnable";
donpcevent "start#bat_b01::onReset";
}
donpcevent "#bat_b01_timer::OnStop";
bg_updatescore "bat_b01",$@Guill_ScoreBG1,$@Croix_ScoreBG1;
bg_warp $@FlaviusBG1_id1,"bat_b01",10,290;
bg_warp $@FlaviusBG1_id2,"bat_b01",390,10;
donpcevent "#bat_b01_timer::OnEnable";
}
end;
}
bat_b01,1,3,3 script guardian#bat_b01_a 844,{
OnEnable:
bg_monster $@FlaviusBG1_id1,"bat_b01",108,159,"Guillaume Camp Guardian",1949,"guardian#bat_b01_a::OnMyMobDead";
bg_monster $@FlaviusBG1_id1,"bat_b01",108,141,"Guillaume Camp Guardian",1949,"guardian#bat_b01_a::OnMyMobDead";
end;
Onkill:
killmonster "bat_b01","guardian#bat_b01_a::OnMyMobDead";
end;
OnMyMobDead:
if (mobcount("bat_b01","guardian#bat_b01_a::OnMyMobDead") < 1) {
donpcevent "cell#bat_b01_a::Ongreen";
mapannounce "bat_b01", "The Guardian protecting Guillaume's Crystal has been slain.",bc_map,"0xFFCE00";
}
end;
}
bat_b01,1,3,3 script guardian#bat_b01_b 844,{
OnEnable:
bg_monster $@FlaviusBG1_id2,"bat_b01",307,160,"Croix Camp Guardian",1949,"guardian#bat_b01_b::OnMyMobDead";
bg_monster $@FlaviusBG1_id2,"bat_b01",307,138,"Croix Camp Guardian",1949,"guardian#bat_b01_b::OnMyMobDead";
end;
Onkill:
killmonster "bat_b01","guardian#bat_b01_b::OnMyMobDead";
end;
OnMyMobDead:
if (mobcount("bat_b01","guardian#bat_b01_b::OnMyMobDead") < 1) {
donpcevent "cell#bat_b01_b::Ongreen";
mapannounce "bat_b01", "The Guardian protecting Croix's Crystal has been slain.",bc_map,"0xFFCE00";
}
end;
}
bat_b01,1,4,3 script cell#bat_b01_a 844,{
Onred:
setwall "bat_b01",60,149,2,6,0,"Guillaume_wall1-1";
setwall "bat_b01",62,149,2,0,0,"Guillaume_wall1-2";
setwall "bat_b01",62,151,2,2,0,"Guillaume_wall1-3";
setwall "bat_b01",60,151,2,4,0,"Guillaume_wall1-4";
end;
Ongreen:
delwall "Guillaume_wall1-1";
delwall "Guillaume_wall1-2";
delwall "Guillaume_wall1-3";
delwall "Guillaume_wall1-4";
end;
}
bat_b01,1,5,3 script cell#bat_b01_b 844,{
Onred:
setwall "bat_b01",327,149,2,6,0,"Croix_wall1-1";
setwall "bat_b01",329,149,2,0,0,"Croix_wall1-2";
setwall "bat_b01",329,151,2,2,0,"Croix_wall1-3";
setwall "bat_b01",327,151,2,4,0,"Croix_wall1-4";
end;
Ongreen:
delwall "Croix_wall1-1";
delwall "Croix_wall1-2";
delwall "Croix_wall1-3";
delwall "Croix_wall1-4";
end;
}
bat_b01,1,6,1 script time#bat_b01 844,{
OnEnable:
donpcevent "Battle Therapist#b01_a::OnEnable";
donpcevent "Battle Therapist#b01_b::OnEnable";
end;
Onstop:
donpcevent "Battle Therapist#b01_a::OnStop";
donpcevent "Battle Therapist#b01_b::OnStop";
end;
}
bat_b01,10,294,3 script Battle Therapist#b01_a 95,{
specialeffect2 EF_HEAL;
mes "[Battle Therapist]";
mes "Just close your eyes,";
mes "and take a deep breath.";
mes "You can be free from pain.";
close;
OnTimer25000:
specialeffect EF_SANCTUARY;
enablenpc "bat_b01_rp1_a_warp";
end;
OnTimer26000:
disablenpc "bat_b01_rp1_a_warp";
end;
OnTimer26500:
stopnpctimer;
donpcevent "Battle Therapist#b01_a::onEnable";
end;
OnEnable:
initnpctimer;
enablenpc "Battle Therapist#b01_a";
end;
Onstop:
disablenpc "bat_b01_rp1_a_warp";
disablenpc "Battle Therapist#b01_a";
stopnpctimer;
end;
}
bat_b01,10,290,0 script bat_b01_rp1_a_warp 45,10,10,{
OnInit:
disablenpc "bat_b01_rp1_a_warp";
end;
OnTouch:
percentheal 100,100;
warp "bat_b01",87,73;
end;
}
bat_b01,389,14,3 script Battle Therapist#b01_b 95,{
specialeffect2 EF_HEAL;
mes "[Battle Therapist]";
mes "Just close your eyes,";
mes "and take a deep breath.";
mes "You can be free from pain.";
close;
OnTimer25000:
specialeffect EF_SANCTUARY;
enablenpc "bat_b01_rp1_b_warp";
end;
OnTimer26000:
disablenpc "bat_b01_rp1_b_warp";
end;
OnTimer26500:
stopnpctimer;
donpcevent "Battle Therapist#b01_b::OnEnable";
end;
OnEnable:
initnpctimer;
enablenpc "Battle Therapist#b01_b";
end;
Onstop:
disablenpc "bat_b01_rp1_b_warp";
disablenpc "Battle Therapist#b01_b";
stopnpctimer;
end;
}
bat_b01,389,10,0 script bat_b01_rp1_b_warp 45,9,9,{
OnInit:
disablenpc "bat_b01_rp1_a_warp";
end;
OnTouch:
percentheal 100,100;
warp "bat_b01",312,225;
end;
}
bat_b01,87,76,0 script A_CODE#bat_b01 -1,5,5,{
OnTouch:
if (checkquest(2070) < 0)
setquest 2070;
end;
}
bat_b01,312,224,0 script B_CODE#bat_b01 -1,5,5,{
OnTouch:
if (checkquest(2070) < 0)
setquest 2070;
end;
}
bat_b01,10,294,3 script Guillaume Vintenar#b01_a 934,{
if ($@FlaviusBG1_id1 == getcharid(4)) {
if ($@FlaviusBG1_Victory == 1) {
set .@your_medal,countitem(7829);
set .@medal_gap,500 - .@your_medal;
if (.@medal_gap > 8) {
mes "[Axl Rose]";
mes "Blessed Guillaume!";
mes "Let's enjoy our glorious victory!";
mes ""+strcharinfo(0)+", it's a sign reflecting victory.";
close2;
getitem 7829,9; //BF_Badge2
}
else {
mes "[Axl Rose]";
mes "Blessed Guillaume!";
mes "Let's enjoy our glorious victory!";
mes ""+strcharinfo(0)+", it's a sign reflecting victory.";
close2;
getitem 7829,.@medal_gap; //BF_Badge2
}
}
else {
set .@your_medal,countitem(7829);
set .@medal_gap,500 - .@your_medal;
if (.@medal_gap > 2) {
mes "[Axl Rose]";
mes "You lost, but you're dedicated to this battle.";
mes "This is a reward for your great dedication by Guillaume Marollo!";
mes "Just take this defeat as a lesson, next time you will definitely win.";
close2;
getitem 7829,3; //BF_Badge2
}
else {
mes "[Axl Rose]";
mes "You lost, but you're dedicated to this battle.";
mes "This is a reward for your great dedication by Guillaume Marollo!";
mes "Just take this defeat as a lesson, next time you will definitely win.";
close2;
getitem 7829,.@medal_gap; //BF_Badge2
}
}
}
bg_leave;
warp "bat_room",154,150;
end;
OnInit:
disablenpc "Guillaume Vintenar#b01_a";
end;
}
bat_b01,389,14,3 script Croix Vintenar#b01_b 934,{
if ($@FlaviusBG1_id2 == getcharid(4)) {
if ($@FlaviusBG1_Victory == 2) {
set .@your_medal,countitem(7829);
set .@medal_gap,500 - .@your_medal;
if (.@medal_gap > 8) {
mes "[Swandery]";
mes "Blessed Croix!";
mes "Let's enjoy our glorious victory!";
mes ""+strcharinfo(0)+", it's a sign reflecting victory.";
close2;
getitem 7829,9; //BF_Badge2
}
else {
mes "[Swandery]";
mes "Blessed Croix!";
mes "Let's enjoy our glorious victory!";
mes ""+strcharinfo(0)+", it's a sign reflecting victory.";
close2;
getitem 7829,.@medal_gap; //BF_Badge2
}
}
else {
set .@your_medal,countitem(7829);
set .@medal_gap,500 - .@your_medal;
if (.@medal_gap > 2) {
mes "[Swandery]";
mes "Oh, "+strcharinfo(0)+". Don't be sad.";
mes "Even though we didn't win, we did our best.";
mes "This is a Royal gift from Croix, and please don't forget this battle. We will win the next one.";
close2;
getitem 7829,3; //BF_Badge2
}
else {
mes "[Swandery]";
mes "Oh, "+strcharinfo(0)+". Don't be sad.";
mes "Even though we didn't win, we did our best.";
mes "This is a Royal gift from Croix, and please don't forget this battle. We will win the next one.";
close2;
getitem 7829,.@medal_gap; //BF_Badge2
}
}
}
bg_leave;
warp "bat_room",154,150;
end;
OnInit:
disablenpc "Croix Vintenar#b01_b";
end;
}
bat_b01,1,5,3 script countdown#bat_b01 844,{
OnInit:
stopnpctimer;
end;
OnEnable:
stopnpctimer;
initnpctimer;
end;
Onstop:
stopnpctimer;
end;
OnTimer7000:
mapannounce "bat_b01", "Guillaume Vintenar Axl Rose : Let's attack to destroy that Crystal!",bc_map,"0xFF9900";
end;
OnTimer8000:
mapannounce "bat_b01", "Croix Vintenar Swandery : Even though Guillaume is struggling to win against us, the victory is ours. Let's show them our power.",bc_map,"0xFF99CC";
end;
OnTimer1800000:
mapannounce "bat_b01", "Marollo VII : Guillaume Marollo, Croix Marollo! And their followers!",bc_map,"0x99CC00";
end;
OnTimer1803000:
mapannounce "bat_b01", "Marollo VII : Both camps are competitive, so it's hard to judge which team is superior.",bc_map,"0x99CC00";
end;
OnTimer1808000:
mapannounce "bat_b01", "Marollo VII : This battle of Flavian is such a waste of time. I will decide victory and defeat by your progress.",bc_map,"0x99CC00";
end;
OnTimer1822000:
mapannounce "bat_b01", "Marollo VII : If you can't accept the results, try again in another valley battle!",bc_map,"0x99CC00";
end;
OnTimer1825000:
mapannounce "bat_b01", "Axl Rose, Swandery : Yes, sir.",bc_map,"0x99CC00";
end;
OnTimer1830000:
donpcevent "time#bat_b01::Onstop";
bg_warp $@FlaviusBG1_id1,"bat_b01",10,290;
bg_warp $@FlaviusBG1_id2,"bat_b01",390,10;
enablenpc "Vintenar#bat_b01_aover";
enablenpc "Vintenar#bat_b01_bover";
end;
OnTimer1900000:
mapwarp "bat_b01","bat_room",154,150;
donpcevent "countdown#bat_b01::Onstop";
end;
}
bat_b01,81,83,3 script Guillaume Camp#flag21 973,{ end; }
bat_b01,94,83,3 script Guillaume Camp#flag22 973,{ end; }
bat_b01,81,66,3 script Guillaume Camp#flag23 973,{ end; }
bat_b01,94,66,3 script Guillaume Camp#flag24 973,{ end; }
bat_b01,139,142,3 script Guillaume Camp#flag25 973,{ end; }
bat_b01,139,158,3 script Guillaume Camp#flag26 973,{ end; }
bat_b01,110,161,3 script Guillaume Camp#flag27 973,{ end; }
bat_b01,110,137,3 script Guillaume Camp#flag28 973,{ end; }
bat_b01,63,135,3 script Guillaume Camp#flag29 973,{ end; }
bat_b01,63,165,3 script Guillaume Camp#flag30 973,{ end; }
bat_b01,10,296,3 script Guillaume Camp#flag31 973,{ end; }
bat_b01,306,233,3 script Croix Camp#flag21 974,{ end; }
bat_b01,317,233,3 script Croix Camp#flag22 974,{ end; }
bat_b01,306,216,3 script Croix Camp#flag23 974,{ end; }
bat_b01,317,216,3 script Croix Camp#flag24 974,{ end; }
bat_b01,257,158,3 script Croix Camp#flag25 974,{ end; }
bat_b01,257,141,3 script Croix Camp#flag26 974,{ end; }
bat_b01,297,164,3 script Croix Camp#flag27 974,{ end; }
bat_b01,297,136,3 script Croix Camp#flag28 974,{ end; }
bat_b01,336,161,3 script Croix Camp#flag29 974,{ end; }
bat_b01,336,139,3 script Croix Camp#flag30 974,{ end; }
bat_b01,389,16,3 script Croix Camp#flag31 974,{ end; }
bat_b01,10,294,3 script Vintenar#bat_b01_aover 419,{
set .@A_B_gap,$@Guill_ScoreBG1 - $@Croix_ScoreBG1;
if ($@FlaviusBG1_id1 == getcharid(4)) {
if (.@A_B_gap > 0) {
set .@your_medal,countitem(7829);
set .@medal_gap,500 - .@your_medal;
if (.@medal_gap > 8) {
mes "[Axl Rose]";
mes "Blessed Guillaume!";
mes "Let's enjoy our glorious victory!";
mes ""+strcharinfo(0)+", it's a sign reflecting victory.";
close2;
getitem 7829,9; //BF_Badge2
}
else {
mes "[Axl Rose]";
mes "Blessed Guillaume!";
mes "Let's enjoy our glorious victory!";
mes ""+strcharinfo(0)+", it's a sign reflecting victory.";
close2;
getitem 7829,.@medal_gap; //BF_Badge2
}
}
else if (.@A_B_gap == 0) {
set .@your_medal,countitem(7829);
set .@medal_gap,500 - .@your_medal;
if (.@medal_gap > 2) {
mes "[Axl Rose]";
mes "You lost, but you're dedicated to this battle.";
mes "This is a reward for your great dedication by Guillaume Marollo!";
mes "Just take this defeat as a lesson, next time you will definitely win.";
close2;
getitem 7829,3; //BF_Badge2
}
else {
mes "[Axl Rose]";
mes "You lost, but you're dedicated to this battle.";
mes "This is a reward for your great dedication by Guillaume Marollo!";
mes "Just take this defeat as a lesson, next time you will definitely win.";
close2;
getitem 7829,.@medal_gap; //BF_Badge2
}
}
else {
set .@your_medal,countitem(7829);
set .@medal_gap,500 - .@your_medal;
if (.@medal_gap > 2) {
mes "[Axl Rose]";
mes "You lost, but you're dedicated to this battle.";
mes "This is a reward for your great dedication by Guillaume Marollo!";
mes "Just take this defeat as a lesson, next time you will definitely win.";
close2;
getitem 7829,3; //BF_Badge2
}
else {
mes "[Axl Rose]";
mes "You lost, but you're dedicated to this battle.";
mes "This is a reward for your great dedication by Guillaume Marollo!";
mes "Just take this defeat as a lesson, next time you will definitely win.";
close2;
getitem 7829,.@medal_gap; //BF_Badge2
}
}
}
else {
mes "[Axl Rose]";
mes "Why are you here, Croix mercenary? I am definitely sure of victory against foolish Croix such as you. Ha!";
close;
}
bg_leave;
warp "bat_room",154,150;
end;
OnInit:
disablenpc "Vintenar#bat_b01_aover";
end;
}
bat_b01,389,14,3 script Vintenar#bat_b01_bover 415,{
set .@A_B_gap,$@Guill_ScoreBG1 - $@Croix_ScoreBG1;
if ($@FlaviusBG1_id2 == getcharid(4)) {
if (.@A_B_gap > 0) {
set .@your_medal,countitem(7829);
set .@medal_gap,500 - .@your_medal;
if (.@medal_gap > 2) {
mes "[Swandery]";
mes "Oh, "+strcharinfo(0)+". Don't be sad.";
mes "Even though we didn't win, we did our best.";
mes "This is a Royal gift from Croix, and please don't forget this battle. We will win the next one.";
close2;
getitem 7829,3; //BF_Badge2
}
else {
mes "[Swandery]";
mes "Oh, "+strcharinfo(0)+". Don't be sad.";
mes "Even though we didn't win, we did our best.";
mes "This is a Royal gift from Croix, and please don't forget this battle. We will win the next one.";
close2;
getitem 7829,.@medal_gap; //BF_Badge2
}
}
else if (.@A_B_gap == 0) {
set .@your_medal,countitem(7829);
set .@medal_gap,500 - .@your_medal;
if (.@medal_gap > 2) {
mes "[Swandery]";
mes "Oh, "+strcharinfo(0)+". Don't be sad.";
mes "Even though we didn't win, we did our best.";
mes "This is a Royal gift from Croix, and please don't forget this battle. We will win the next one.";
close2;
getitem 7829,3; //BF_Badge2
}
else {
mes "[Swandery]";
mes "Oh, "+strcharinfo(0)+". Don't be sad.";
mes "Even though we didn't win, we did our best.";
mes "This is a Royal gift from Croix, and please don't forget this battle. We will win the next one.";
close2;
getitem 7829,.@medal_gap; //BF_Badge2
}
}
else {
set .@your_medal,countitem(7829);
set .@medal_gap,500 - .@your_medal;
if (.@medal_gap > 8) {
mes "[Swandery]";
mes "Blessed Croix!";
mes "Let's enjoy our glorious victory!";
mes ""+strcharinfo(0)+", it's a sign reflecting victory.";
close2;
getitem 7829,9; //BF_Badge2
}
else {
mes "[Swandery]";
mes "Blessed Croix!";
mes "Let's enjoy our glorious victory!";
mes ""+strcharinfo(0)+", it's a sign reflecting victory.";
close2;
getitem 7829,.@medal_gap; //BF_Badge2
}
}
}
else {
mes "[Swandery]";
mes "Why do you come here as a Guillaume? You will be sent to where you should be!";
close;
}
bg_leave;
warp "bat_room",154,150;
end;
OnInit:
disablenpc "Vintenar#bat_b01_bover";
end;
}
/*
bat_b01,1,10,3 script Release all#b01 81,{
input .@input,0,2000;
if (.@input == 0) {
mes "Cancelled.";
close;
}
else if (.@input == 1854) {
mes "May I help you?";
next;
switch(select("Release all.:Cancel.")) {
case 1:
mes "Bye.";
close2;
mapwarp "bat_b01","bat_room",154,150;
end;
case 2:
mes "Cancelled.";
close;
}
}
}
*/

View File

@ -0,0 +1,759 @@
//===== eAthena Script =======================================
// BattleGround System - Flavius Second
//===== By: ==================================================
//= L0ne_W0lf
//===== Current Version: =====================================
//= 1.0
//===== Compatible With: =====================================
//= eAthena 1.0
//===== Description: =========================================
//= [AEGIS Conversion]
//= Flavius Battleground.
//= - Winning Team: 9 badges
//= - Losing Team: 3 badge
//===== Additional Comments: =================================
//= 1.0 First Version.
//============================================================
// Waiting Room NPCs
//============================================================
bat_room,142,227,4 script Lieutenant Huvas 418,{
end;
OnInit:
waitingroom "Battle Station",1,"start#bat_b02::OnReadyCheck",1;
end;
OnEnterBG:
set $@FlaviusBG2_id1, waitingroom2bg("bat_b02",10,290,"start#bat_b02::OnGuillaumeQuit","");
end;
}
bat_room,142,204,0 script Lieutenant Yukon 414,{
end;
OnInit:
waitingroom "Battle Station",1,"start#bat_b02::OnReadyCheck",1;
end;
OnEnterBG:
set $@FlaviusBG2_id2, waitingroom2bg("bat_b02",390,10,"start#bat_b02::OnCroixQuit","");
end;
}
bat_room,141,220,0 warp back_bgroomb02a 1,1,bat_room,154,150
bat_room,141,211,0 warp back_bgroomb02b 1,1,bat_room,154,150
bat_room,2,151,3 script #bat_b02_timer 844,{
end;
OnInit:
OnEnable:
initnpctimer;
end;
OnStop:
stopnpctimer;
end;
OnTimer1000:
stopnpctimer;
initnpctimer;
set .@chk_bat_a01,getmapusers("bat_b02");
if (.@chk_bat_a01 < 1) {
set $@FlaviusBG2, 0;
if( $@FlaviusBG2_id1 ) { bg_destroy $@FlaviusBG2_id1; set $@FlaviusBG2_id1, 0; }
if( $@FlaviusBG2_id2 ) { bg_destroy $@FlaviusBG2_id2; set $@FlaviusBG2_id2, 0; }
donpcevent "start#bat_b02::OnReadyCheck";
}
end;
}
// Flavius Battleground Engine
//============================================================
bat_b02,15,15,3 script start#bat_b02 844,{
OnInit:
mapwarp "bat_b02","bat_room",154,150;
end;
OnReadyCheck:
if( $@FlaviusBG2 )
end;
set .@Guillaume, getwaitingroomstate(0,"Lieutenant Ator");
set .@Croix, getwaitingroomstate(0,"Lieutenant Thelokus");
if( !.@Guillaume && !.@Croix ) {
donpcevent "#bat_b02_timer::OnStop";
end;
}
if( .@Guillaume < 1 || .@Croix < 1 )
end;
set $@FlaviusBG2, 1;
set $@FlaviusBG2_Victory, 0;
set $@Croix_ScoreBG2, 0;
set $@Guill_ScoreBG2, 0;
bg_updatescore "bat_b02",$@Guill_ScoreBG2,$@Croix_ScoreBG2;
donpcevent "Lieutenant Ator::OnEnterBG";
donpcevent "Lieutenant Thelokus::OnEnterBG";
donpcevent "OBJ#bat_b02_a::Onkill";
donpcevent "OBJ#bat_b02_a::OnEnable";
donpcevent "OBJ#bat_b02_b::Onkill";
donpcevent "OBJ#bat_b02_b::OnEnable";
donpcevent "guardian#bat_b02_a::Onkill";
donpcevent "guardian#bat_b02_b::Onkill";
donpcevent "guardian#bat_b02_a::OnEnable";
donpcevent "guardian#bat_b02_b::OnEnable";
donpcevent "cell#bat_b02_a::Onred";
donpcevent "cell#bat_b02_b::Onred";
donpcevent "time#bat_b02::OnEnable";
disablenpc "Guillaume Vintenar#b02_a";
disablenpc "Croix Vintenar#b02_b";
disablenpc "Vintenar#bat_b02_aover";
disablenpc "Vintenar#bat_b02_bover";
bg_warp $@FlaviusBG2_id1,"bat_b02",87,75;
bg_warp $@FlaviusBG2_id2,"bat_b02",311,224;
donpcevent "countdown#bat_b02::OnEnable";
initnpctimer;
end;
OnReset:
donpcevent "OBJ#bat_b02_a::Onkill";
donpcevent "OBJ#bat_b02_a::OnEnable";
donpcevent "OBJ#bat_b02_b::Onkill";
donpcevent "OBJ#bat_b02_b::OnEnable";
donpcevent "guardian#bat_b02_a::Onkill";
donpcevent "guardian#bat_b02_b::Onkill";
donpcevent "guardian#bat_b02_a::OnEnable";
donpcevent "guardian#bat_b02_b::OnEnable";
donpcevent "cell#bat_b02_a::Onred";
donpcevent "cell#bat_b02_b::Onred";
donpcevent "time#bat_b02::OnEnable";
disablenpc "Guillaume Vintenar#b02_a";
disablenpc "Croix Vintenar#b02_b";
disablenpc "Vintenar#bat_b02_aover";
disablenpc "Vintenar#bat_b02_bover";
bg_warp $@FlaviusBG2_id1,"bat_b02",87,75;
bg_warp $@FlaviusBG2_id2,"bat_b02",311,224;
end;
OnGuillaumeQuit:
OnCroixQuit:
bg_leave;
end;
OnTimer10000:
stopnpctimer;
donpcevent "#bat_b02_timer::OnEnable";
end;
}
bat_b02,1,1,3 script OBJ#bat_b02_a 844,{
OnEnable:
bg_monster $@FlaviusBG2_id1,"bat_b02",61,150,"Blue Crystal",1915,"OBJ#bat_b02_a::OnMyMobDead";
end;
Onkill:
killmonster "bat_b02","OBJ#bat_b02_a::OnMyMobDead";
end;
OnMyMobDead:
if (mobcount("bat_b02","OBJ#bat_b02_a::OnMyMobDead") < 1) {
mapannounce "bat_b02", "Guillaume's Crystal has been destroyed.",bc_map,"0xFFCE00";
if ($@Croix_ScoreBG2 > 0) {
set $@FlaviusBG2_Victory,2;
set $@Croix_ScoreBG2,$@Croix_ScoreBG2+1;
enablenpc "Guillaume Vintenar#b02_a";
enablenpc "Croix Vintenar#b02_b";
donpcevent "time#bat_b02::Onstop";
}
else {
set $@Croix_ScoreBG2,1;
donpcevent "time#bat_b02::OnEnable";
donpcevent "start#bat_b02::onReset";
}
donpcevent "#bat_b02_timer::OnStop";
bg_updatescore "bat_b02",$@Guill_ScoreBG2,$@Croix_ScoreBG2;
bg_warp $@FlaviusBG2_id1,"bat_b02",10,290;
bg_warp $@FlaviusBG2_id2,"bat_b02",390,10;
donpcevent "#bat_b02_timer::OnEnable";
}
end;
}
bat_b02,1,2,3 script OBJ#bat_b02_b 844,{
OnEnable:
bg_monster $@FlaviusBG2_id2,"bat_b02",328,150,"Blue Crystal",1914,"OBJ#bat_b02_b::OnMyMobDead";
end;
Onkill:
killmonster "bat_b02","OBJ#bat_b02_b::OnMyMobDead";
end;
OnMyMobDead:
if (mobcount("bat_b02","OBJ#bat_b02_b::OnMyMobDead") < 1) {
mapannounce "bat_b02", "Croix's Crystal has been destroyed.",bc_map,"0xFFCE00";
if ($@Guill_ScoreBG2 > 0) {
set $@FlaviusBG2_Victory,1;
set $@Guill_ScoreBG2,$@Guill_ScoreBG2+1;
enablenpc "Guillaume Vintenar#b02_a";
enablenpc "Croix Vintenar#b02_b";
donpcevent "time#bat_b02::Onstop";
}
else {
set $@Guill_ScoreBG2,1;
donpcevent "time#bat_b02::OnEnable";
donpcevent "start#bat_b02::onReset";
}
donpcevent "#bat_b02_timer::OnStop";
bg_updatescore "bat_b02",$@Guill_ScoreBG2,$@Croix_ScoreBG2;
bg_warp $@FlaviusBG2_id1,"bat_b02",10,290;
bg_warp $@FlaviusBG2_id2,"bat_b02",390,10;
donpcevent "#bat_b02_timer::OnEnable";
}
end;
}
bat_b02,1,3,3 script guardian#bat_b02_a 844,{
OnEnable:
bg_monster $@FlaviusBG2_id1,"bat_b02",108,159,"Guillaume Camp Guardian",1949,"guardian#bat_b02_a::OnMyMobDead";
bg_monster $@FlaviusBG2_id1,"bat_b02",108,141,"Guillaume Camp Guardian",1949,"guardian#bat_b02_a::OnMyMobDead";
end;
Onkill:
killmonster "bat_b02","guardian#bat_b02_a::OnMyMobDead";
end;
OnMyMobDead:
if (mobcount("bat_b02","guardian#bat_b02_a::OnMyMobDead") < 1) {
donpcevent "cell#bat_b02_a::Ongreen";
mapannounce "bat_b02", "The Guardian protecting Guillaume's Crystal has been slain.",bc_map,"0xFFCE00";
}
end;
}
bat_b02,1,3,3 script guardian#bat_b02_b 844,{
OnEnable:
bg_monster $@FlaviusBG2_id2,"bat_b02",307,160,"Croix Camp Guardian",1949,"guardian#bat_b02_b::OnMyMobDead";
bg_monster $@FlaviusBG2_id2,"bat_b02",307,138,"Croix Camp Guardian",1949,"guardian#bat_b02_b::OnMyMobDead";
end;
Onkill:
killmonster "bat_b02","guardian#bat_b02_b::OnMyMobDead";
end;
OnMyMobDead:
if (mobcount("bat_b02","guardian#bat_b02_b::OnMyMobDead") < 1) {
donpcevent "cell#bat_b02_b::Ongreen";
mapannounce "bat_b02", "The Guardian protecting Croix's Crystal has been slain.",bc_map,"0xFFCE00";
}
end;
}
bat_b02,1,4,3 script cell#bat_b02_a 844,{
Onred:
setwall "bat_b02",60,149,2,6,0,"Guillaume_wall1-1";
setwall "bat_b02",62,149,2,0,0,"Guillaume_wall1-2";
setwall "bat_b02",62,151,2,2,0,"Guillaume_wall1-3";
setwall "bat_b02",60,151,2,4,0,"Guillaume_wall1-4";
end;
Ongreen:
delwall "Guillaume_wall1-1";
delwall "Guillaume_wall1-2";
delwall "Guillaume_wall1-3";
delwall "Guillaume_wall1-4";
end;
}
bat_b02,1,5,3 script cell#bat_b02_b 844,{
Onred:
setwall "bat_b02",327,149,2,6,0,"Croix_wall1-1";
setwall "bat_b02",329,149,2,0,0,"Croix_wall1-2";
setwall "bat_b02",329,151,2,2,0,"Croix_wall1-3";
setwall "bat_b02",327,151,2,4,0,"Croix_wall1-4";
end;
Ongreen:
delwall "Croix_wall1-1";
delwall "Croix_wall1-2";
delwall "Croix_wall1-3";
delwall "Croix_wall1-4";
end;
}
bat_b02,1,6,1 script time#bat_b02 844,{
OnEnable:
donpcevent "Battle Therapist#b02_a::OnEnable";
donpcevent "Battle Therapist#b02_b::OnEnable";
end;
Onstop:
donpcevent "Battle Therapist#b02_a::OnStop";
donpcevent "Battle Therapist#b02_b::OnStop";
end;
}
bat_b02,10,294,3 script Battle Therapist#b02_a 95,{
specialeffect2 EF_HEAL;
mes "[Battle Therapist]";
mes "Just close your eyes,";
mes "and take a deep breath.";
mes "You can be free from pain.";
close;
OnTimer25000:
specialeffect EF_SANCTUARY;
enablenpc "bat_b02_rp1_a_warp";
end;
OnTimer26000:
disablenpc "bat_b02_rp1_a_warp";
end;
OnTimer26500:
stopnpctimer;
donpcevent "Battle Therapist#b02_a::onEnable";
end;
OnEnable:
initnpctimer;
enablenpc "Battle Therapist#b02_a";
end;
Onstop:
disablenpc "bat_b02_rp1_a_warp";
disablenpc "Battle Therapist#b02_a";
stopnpctimer;
end;
}
bat_b02,10,290,0 script bat_b02_rp1_a_warp 45,10,10,{
OnInit:
disablenpc "bat_b02_rp1_a_warp";
end;
OnTouch:
percentheal 100,100;
warp "bat_b02",87,73;
end;
}
bat_b02,389,14,3 script Battle Therapist#b02_b 95,{
specialeffect2 EF_HEAL;
mes "[Battle Therapist]";
mes "Just close your eyes,";
mes "and take a deep breath.";
mes "You can be free from pain.";
close;
OnTimer25000:
specialeffect EF_SANCTUARY;
enablenpc "bat_b02_rp1_b_warp";
end;
OnTimer26000:
disablenpc "bat_b02_rp1_b_warp";
end;
OnTimer26500:
stopnpctimer;
donpcevent "Battle Therapist#b02_b::OnEnable";
end;
OnEnable:
initnpctimer;
enablenpc "Battle Therapist#b02_b";
end;
Onstop:
disablenpc "bat_b02_rp1_b_warp";
disablenpc "Battle Therapist#b02_b";
stopnpctimer;
end;
}
bat_b02,389,10,0 script bat_b02_rp1_b_warp 45,9,9,{
OnInit:
disablenpc "bat_b02_rp1_a_warp";
end;
OnTouch:
percentheal 100,100;
warp "bat_b02",312,225;
end;
}
bat_b02,87,76,0 script A_CODE#bat_b02 -1,5,5,{
OnTouch:
if (checkquest(2070) < 0)
//setquest 2070;
end;
}
bat_b02,312,224,0 script B_CODE#bat_b02 -1,5,5,{
OnTouch:
if (checkquest(2070) < 0)
//setquest 2070;
end;
}
bat_b02,10,294,3 script Guillaume Vintenar#b02_a 934,{
if ($@FlaviusBG2_id1 == getcharid(4)) {
if ($@FlaviusBG2_Victory == 1) {
set .@your_medal,countitem(7829);
set .@medal_gap,500 - .@your_medal;
if (.@medal_gap > 8) {
mes "[Axl Rose]";
mes "Blessed Guillaume!";
mes "Let's enjoy our glorious victory!";
mes ""+strcharinfo(0)+", it's a sign reflecting victory.";
close2;
getitem 7829,9; //BF_Badge2
}
else {
mes "[Axl Rose]";
mes "Blessed Guillaume!";
mes "Let's enjoy our glorious victory!";
mes ""+strcharinfo(0)+", it's a sign reflecting victory.";
close2;
getitem 7829,.@medal_gap; //BF_Badge2
}
}
else {
set .@your_medal,countitem(7829);
set .@medal_gap,500 - .@your_medal;
if (.@medal_gap > 2) {
mes "[Axl Rose]";
mes "You lost, but you're dedicated to this battle.";
mes "This is a reward for your great dedication by Guillaume Marollo!";
mes "Just take this defeat as a lesson, next time you will definitely win.";
close2;
getitem 7829,3; //BF_Badge2
}
else {
mes "[Axl Rose]";
mes "You lost, but you're dedicated to this battle.";
mes "This is a reward for your great dedication by Guillaume Marollo!";
mes "Just take this defeat as a lesson, next time you will definitely win.";
close2;
getitem 7829,.@medal_gap; //BF_Badge2
}
}
}
bg_leave;
warp "bat_room",154,150;
end;
OnInit:
disablenpc "Guillaume Vintenar#b02_a";
end;
}
bat_b02,389,14,3 script Croix Vintenar#b02_b 934,{
if ($@FlaviusBG2_id2 == getcharid(4)) {
if ($@FlaviusBG2_Victory == 2) {
set .@your_medal,countitem(7829);
set .@medal_gap,500 - .@your_medal;
if (.@medal_gap > 8) {
mes "[Swandery]";
mes "Blessed Croix!";
mes "Let's enjoy our glorious victory!";
mes ""+strcharinfo(0)+", it's a sign reflecting victory.";
close2;
getitem 7829,9; //BF_Badge2
}
else {
mes "[Swandery]";
mes "Blessed Croix!";
mes "Let's enjoy our glorious victory!";
mes ""+strcharinfo(0)+", it's a sign reflecting victory.";
close2;
getitem 7829,.@medal_gap; //BF_Badge2
}
}
else {
set .@your_medal,countitem(7829);
set .@medal_gap,500 - .@your_medal;
if (.@medal_gap > 2) {
mes "[Swandery]";
mes "Oh, "+strcharinfo(0)+". Don't be sad.";
mes "Even though we didn't win, we did our best.";
mes "This is a Royal gift from Croix, and please don't forget this battle. We will win the next one.";
close2;
getitem 7829,3; //BF_Badge2
}
else {
mes "[Swandery]";
mes "Oh, "+strcharinfo(0)+". Don't be sad.";
mes "Even though we didn't win, we did our best.";
mes "This is a Royal gift from Croix, and please don't forget this battle. We will win the next one.";
close2;
getitem 7829,.@medal_gap; //BF_Badge2
}
}
}
bg_leave;
warp "bat_room",154,150;
end;
OnInit:
disablenpc "Croix Vintenar#b02_b";
end;
}
bat_b02,1,5,3 script countdown#bat_b02 844,{
OnInit:
stopnpctimer;
end;
OnEnable:
stopnpctimer;
initnpctimer;
end;
Onstop:
stopnpctimer;
end;
OnTimer7000:
mapannounce "bat_b02", "Guillaume Vintenar Axl Rose : Let's attack to destroy that Crystal!",bc_map,"0xFF9900";
end;
OnTimer8000:
mapannounce "bat_b02", "Croix Vintenar Swandery : Even though Guillaume is struggling to win against us, the victory is ours. Let's show them our power.",bc_map,"0xFF99CC";
end;
OnTimer1800000:
mapannounce "bat_b02", "Marollo VII : Guillaume Marollo, Croix Marollo! And their followers!",bc_map,"0x99CC00";
end;
OnTimer1803000:
mapannounce "bat_b02", "Marollo VII : Both camps are competitive, so it's hard to judge which team is superior.",bc_map,"0x99CC00";
end;
OnTimer1808000:
mapannounce "bat_b02", "Marollo VII : This battle of Flavian is such a waste of time. I will decide victory and defeat by your progress.",bc_map,"0x99CC00";
end;
OnTimer1822000:
mapannounce "bat_b02", "Marollo VII : If you can't accept the results, try again in another valley battle!",bc_map,"0x99CC00";
end;
OnTimer1825000:
mapannounce "bat_b02", "Axl Rose, Swandery : Yes, sir.",bc_map,"0x99CC00";
end;
OnTimer1830000:
donpcevent "time#bat_b02::Onstop";
bg_warp $@FlaviusBG2_id1,"bat_b02",10,290;
bg_warp $@FlaviusBG2_id2,"bat_b02",390,10;
enablenpc "Vintenar#bat_b02_aover";
enablenpc "Vintenar#bat_b02_bover";
end;
OnTimer1900000:
mapwarp "bat_b02","bat_room",154,150;
donpcevent "countdown#bat_b02::Onstop";
end;
}
bat_b02,81,83,3 script Guillaume Camp#flag32 973,{ end; }
bat_b02,94,83,3 script Guillaume Camp#flag33 973,{ end; }
bat_b02,81,66,3 script Guillaume Camp#flag34 973,{ end; }
bat_b02,94,66,3 script Guillaume Camp#flag35 973,{ end; }
bat_b02,139,142,3 script Guillaume Camp#flag36 973,{ end; }
bat_b02,139,158,3 script Guillaume Camp#flag37 973,{ end; }
bat_b02,110,161,3 script Guillaume Camp#flag38 973,{ end; }
bat_b02,110,137,3 script Guillaume Camp#flag39 973,{ end; }
bat_b02,63,135,3 script Guillaume Camp#flag40 973,{ end; }
bat_b02,63,165,3 script Guillaume Camp#flag41 973,{ end; }
bat_b02,10,296,3 script Guillaume Camp#flag42 973,{ end; }
bat_b02,306,233,3 script Croix Camp#flag32 974,{ end; }
bat_b02,317,233,3 script Croix Camp#flag33 974,{ end; }
bat_b02,306,216,3 script Croix Camp#flag34 974,{ end; }
bat_b02,317,216,3 script Croix Camp#flag35 974,{ end; }
bat_b02,257,158,3 script Croix Camp#flag36 974,{ end; }
bat_b02,257,141,3 script Croix Camp#flag37 974,{ end; }
bat_b02,297,164,3 script Croix Camp#flag38 974,{ end; }
bat_b02,297,136,3 script Croix Camp#flag39 974,{ end; }
bat_b02,336,161,3 script Croix Camp#flag40 974,{ end; }
bat_b02,336,139,3 script Croix Camp#flag41 974,{ end; }
bat_b02,389,16,3 script Croix Camp#flag42 974,{ end; }
bat_b02,10,294,3 script Vintenar#bat_b02_aover 419,{
set .@A_B_gap,$@Guill_ScoreBG2 - $@Croix_ScoreBG2;
if ($@FlaviusBG2_id1 == getcharid(4)) {
if (.@A_B_gap > 0) {
set .@your_medal,countitem(7829);
set .@medal_gap,500 - .@your_medal;
if (.@medal_gap > 8) {
mes "[Axl Rose]";
mes "Blessed Guillaume!";
mes "Let's enjoy our glorious victory!";
mes ""+strcharinfo(0)+", it's a sign reflecting victory.";
close2;
getitem 7829,9; //BF_Badge2
}
else {
mes "[Axl Rose]";
mes "Blessed Guillaume!";
mes "Let's enjoy our glorious victory!";
mes ""+strcharinfo(0)+", it's a sign reflecting victory.";
close2;
getitem 7829,.@medal_gap; //BF_Badge2
}
}
else if (.@A_B_gap == 0) {
set .@your_medal,countitem(7829);
set .@medal_gap,500 - .@your_medal;
if (.@medal_gap > 2) {
mes "[Axl Rose]";
mes "You lost, but you're dedicated to this battle.";
mes "This is a reward for your great dedication by Guillaume Marollo!";
mes "Just take this defeat as a lesson, next time you will definitely win.";
close2;
getitem 7829,3; //BF_Badge2
}
else {
mes "[Axl Rose]";
mes "You lost, but you're dedicated to this battle.";
mes "This is a reward for your great dedication by Guillaume Marollo!";
mes "Just take this defeat as a lesson, next time you will definitely win.";
close2;
getitem 7829,.@medal_gap; //BF_Badge2
}
}
else {
set .@your_medal,countitem(7829);
set .@medal_gap,500 - .@your_medal;
if (.@medal_gap > 2) {
mes "[Axl Rose]";
mes "You lost, but you're dedicated to this battle.";
mes "This is a reward for your great dedication by Guillaume Marollo!";
mes "Just take this defeat as a lesson, next time you will definitely win.";
close2;
getitem 7829,3; //BF_Badge2
}
else {
mes "[Axl Rose]";
mes "You lost, but you're dedicated to this battle.";
mes "This is a reward for your great dedication by Guillaume Marollo!";
mes "Just take this defeat as a lesson, next time you will definitely win.";
close2;
getitem 7829,.@medal_gap; //BF_Badge2
}
}
}
else {
mes "[Axl Rose]";
mes "Why are you here, Croix mercenary? I am definitely sure of victory against foolish Croix such as you. Ha!";
close;
}
bg_leave;
warp "bat_room",154,150;
end;
OnInit:
disablenpc "Vintenar#bat_b02_aover";
end;
}
bat_b02,389,14,3 script Vintenar#bat_b02_bover 415,{
set .@A_B_gap,$@Guill_ScoreBG2 - $@Croix_ScoreBG2;
if ($@FlaviusBG2_id2 == getcharid(4)) {
if (.@A_B_gap > 0) {
set .@your_medal,countitem(7829);
set .@medal_gap,500 - .@your_medal;
if (.@medal_gap > 2) {
mes "[Swandery]";
mes "Oh, "+strcharinfo(0)+". Don't be sad.";
mes "Even though we didn't win, we did our best.";
mes "This is a Royal gift from Croix, and please don't forget this battle. We will win the next one.";
close2;
getitem 7829,3; //BF_Badge2
}
else {
mes "[Swandery]";
mes "Oh, "+strcharinfo(0)+". Don't be sad.";
mes "Even though we didn't win, we did our best.";
mes "This is a Royal gift from Croix, and please don't forget this battle. We will win the next one.";
close2;
getitem 7829,.@medal_gap; //BF_Badge2
}
}
else if (.@A_B_gap == 0) {
set .@your_medal,countitem(7829);
set .@medal_gap,500 - .@your_medal;
if (.@medal_gap > 2) {
mes "[Swandery]";
mes "Oh, "+strcharinfo(0)+". Don't be sad.";
mes "Even though we didn't win, we did our best.";
mes "This is a Royal gift from Croix, and please don't forget this battle. We will win the next one.";
close2;
getitem 7829,3; //BF_Badge2
}
else {
mes "[Swandery]";
mes "Oh, "+strcharinfo(0)+". Don't be sad.";
mes "Even though we didn't win, we did our best.";
mes "This is a Royal gift from Croix, and please don't forget this battle. We will win the next one.";
close2;
getitem 7829,.@medal_gap; //BF_Badge2
}
}
else {
set .@your_medal,countitem(7829);
set .@medal_gap,500 - .@your_medal;
if (.@medal_gap > 8) {
mes "[Swandery]";
mes "Blessed Croix!";
mes "Let's enjoy our glorious victory!";
mes ""+strcharinfo(0)+", it's a sign reflecting victory.";
close2;
getitem 7829,9; //BF_Badge2
}
else {
mes "[Swandery]";
mes "Blessed Croix!";
mes "Let's enjoy our glorious victory!";
mes ""+strcharinfo(0)+", it's a sign reflecting victory.";
close2;
getitem 7829,.@medal_gap; //BF_Badge2
}
}
}
else {
mes "[Swandery]";
mes "Why do you come here as a Guillaume? You will be sent to where you should be!";
close;
}
bg_leave;
warp "bat_room",154,150;
end;
OnInit:
disablenpc "Vintenar#bat_b02_bover";
end;
}
/*
bat_b02,1,10,3 script Release all#b02 81,{
input .@input,0,2000;
if (.@input == 0) {
mes "Cancelled.";
close;
}
else if (.@input == 1854) {
mes "May I help you?";
next;
switch(select("Release all.:Cancel.")) {
case 1:
mes "Bye.";
close2;
mapwarp "bat_b02","bat_room",154,150;
end;
case 2:
mes "Cancelled.";
close;
}
}
}
*/

View File

@ -60,23 +60,23 @@ OnKvM01Two:
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,54,124,3 duplicate(CellEffect) #RedcellA1-1 139
bat_c01,55,124,3 duplicate(CellEffect) #RedcellA2-1 139
bat_c01,56,124,3 duplicate(CellEffect) #RedcellA3-1 139
bat_c01,57,124,3 duplicate(CellEffect) #RedcellA4-1 139
bat_c01,57,125,3 duplicate(CellEffect) #RedcellA5-1 139
bat_c01,57,126,3 duplicate(CellEffect) #RedcellA6-1 139
bat_c01,57,127,3 duplicate(CellEffect) #RedcellA7-1 139
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,145,59,3 duplicate(CellEffect) #RedcellB1-1 139
bat_c01,144,59,3 duplicate(CellEffect) #RedcellB2-1 139
bat_c01,143,59,3 duplicate(CellEffect) #RedcellB3-1 139
bat_c01,142,59,3 duplicate(CellEffect) #RedcellB4-1 139
bat_c01,142,56,3 duplicate(CellEffect) #RedcellB5-1 139
bat_c01,142,57,3 duplicate(CellEffect) #RedcellB6-1 139
bat_c01,142,58,3 duplicate(CellEffect) #RedcellB7-1 139
bat_c01,54,128,3 script #A_camp_start01 111,4,4,{
bat_c01,54,128,3 script #A_camp_start01 139,4,4,{
end;
OnInit:
@ -97,7 +97,7 @@ OnTouch:
end;
}
bat_c01,146,56,3 script #B_camp_start01 111,4,4,{
bat_c01,146,56,3 script #B_camp_start01 139,4,4,{
end;
OnInit:
@ -146,6 +146,10 @@ OnGuillaumeDie:
set .Croix_Score, .Croix_Score + 1;
bg_updatescore "bat_c01",.Guillaume_Score,.Croix_Score;
if( .Guillaume_Count < 1 ) donpcevent "KvM01_BG::OnCroixWin";
else {
mapannounce "bat_c01", "NUmber of Guillaume survivors "+.Guillaume_Count+".",bc_map,"0x00ff00";
mapannounce "bat_c01", "NUmber of Croix survivors "+.Croix_Count+".",bc_map,"0x00ff00";
}
}
end;
@ -158,6 +162,10 @@ OnCroixDie:
set .Guillaume_Score, .Guillaume_Score + 1;
bg_updatescore "bat_c01",.Guillaume_Score,.Croix_Score;
if( .Croix_Count < 1 ) donpcevent "KvM01_BG::OnGuillaumeWin";
else {
mapannounce "bat_c01", "NUmber of Guillaume survivors "+.Guillaume_Count+".",bc_map,"0x00ff00";
mapannounce "bat_c01", "NUmber of Croix survivors "+.Croix_Count+".",bc_map,"0x00ff00";
}
}
end;
@ -426,12 +434,3 @@ bat_c01,148,53,1 script KVM Officer#KVM01B 415,{
// 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

View File

@ -60,23 +60,23 @@ OnKvM02Two:
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,54,124,3 duplicate(CellEffect2) #RedcellA1-2 139
bat_c02,55,124,3 duplicate(CellEffect2) #RedcellA2-2 139
bat_c02,56,124,3 duplicate(CellEffect2) #RedcellA3-2 139
bat_c02,57,124,3 duplicate(CellEffect2) #RedcellA4-2 139
bat_c02,57,125,3 duplicate(CellEffect2) #RedcellA5-2 139
bat_c02,57,126,3 duplicate(CellEffect2) #RedcellA6-2 139
bat_c02,57,127,3 duplicate(CellEffect2) #RedcellA7-2 139
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,145,59,3 duplicate(CellEffect2) #RedcellB1-2 139
bat_c02,144,59,3 duplicate(CellEffect2) #RedcellB2-2 139
bat_c02,143,59,3 duplicate(CellEffect2) #RedcellB3-2 139
bat_c02,142,59,3 duplicate(CellEffect2) #RedcellB4-2 139
bat_c02,142,56,3 duplicate(CellEffect2) #RedcellB5-2 139
bat_c02,142,57,3 duplicate(CellEffect2) #RedcellB6-2 139
bat_c02,142,58,3 duplicate(CellEffect2) #RedcellB7-2 139
bat_c02,54,128,3 script #A_camp_start02 111,4,4,{
bat_c02,54,128,3 script #A_camp_start02 139,4,4,{
end;
OnInit:
@ -97,7 +97,7 @@ OnTouch:
end;
}
bat_c02,146,56,3 script #B_camp_start02 111,4,4,{
bat_c02,146,56,3 script #B_camp_start02 139,4,4,{
end;
OnInit:
@ -146,6 +146,10 @@ OnGuillaumeDie:
set .Croix_Score, .Croix_Score + 1;
bg_updatescore "bat_c02",.Guillaume_Score,.Croix_Score;
if( .Guillaume_Count < 1 ) donpcevent "KvM02_BG::OnCroixWin";
else {
mapannounce "bat_c02", "NUmber of Guillaume survivors "+.Guillaume_Count+".",bc_map,"0x00ff00";
mapannounce "bat_c02", "NUmber of Croix survivors "+.Croix_Count+".",bc_map,"0x00ff00";
}
}
end;
@ -158,6 +162,10 @@ OnCroixDie:
set .Guillaume_Score, .Guillaume_Score + 1;
bg_updatescore "bat_c02",.Guillaume_Score,.Croix_Score;
if( .Croix_Count < 1 ) donpcevent "KvM02_BG::OnGuillaumeWin";
else {
mapannounce "bat_c02", "NUmber of Guillaume survivors "+.Guillaume_Count+".",bc_map,"0x00ff00";
mapannounce "bat_c02", "NUmber of Croix survivors "+.Croix_Count+".",bc_map,"0x00ff00";
}
}
end;
@ -423,12 +431,3 @@ bat_c02,148,53,1 script KVM Officer#KVM02B 415,{
// 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

View File

@ -60,23 +60,23 @@ OnKvM03Two:
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,54,124,3 duplicate(CellEffect3) #RedcellA1-3 139
bat_c03,55,124,3 duplicate(CellEffect3) #RedcellA2-3 139
bat_c03,56,124,3 duplicate(CellEffect3) #RedcellA3-3 139
bat_c03,57,124,3 duplicate(CellEffect3) #RedcellA4-3 139
bat_c03,57,125,3 duplicate(CellEffect3) #RedcellA5-3 139
bat_c03,57,126,3 duplicate(CellEffect3) #RedcellA6-3 139
bat_c03,57,127,3 duplicate(CellEffect3) #RedcellA7-3 139
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,145,59,3 duplicate(CellEffect3) #RedcellB1-3 139
bat_c03,144,59,3 duplicate(CellEffect3) #RedcellB2-3 139
bat_c03,143,59,3 duplicate(CellEffect3) #RedcellB3-3 139
bat_c03,142,59,3 duplicate(CellEffect3) #RedcellB4-3 139
bat_c03,142,56,3 duplicate(CellEffect3) #RedcellB5-3 139
bat_c03,142,57,3 duplicate(CellEffect3) #RedcellB6-3 139
bat_c03,142,58,3 duplicate(CellEffect3) #RedcellB7-3 139
bat_c03,54,128,3 script #A_camp_start03 111,4,4,{
bat_c03,54,128,3 script #A_camp_start03 139,4,4,{
end;
OnInit:
@ -97,7 +97,7 @@ OnTouch:
end;
}
bat_c03,146,56,3 script #B_camp_start03 111,4,4,{
bat_c03,146,56,3 script #B_camp_start03 139,4,4,{
end;
OnInit:
@ -146,6 +146,10 @@ OnGuillaumeDie:
set .Croix_Score, .Croix_Score + 1;
bg_updatescore "bat_c03",.Guillaume_Score,.Croix_Score;
if( .Guillaume_Count < 1 ) donpcevent "KvM03_BG::OnCroixWin";
else {
mapannounce "bat_c03", "NUmber of Guillaume survivors "+.Guillaume_Count+".",bc_map,"0x00ff00";
mapannounce "bat_c03", "NUmber of Croix survivors "+.Croix_Count+".",bc_map,"0x00ff00";
}
}
end;
@ -158,6 +162,10 @@ OnCroixDie:
set .Guillaume_Score, .Guillaume_Score + 1;
bg_updatescore "bat_c03",.Guillaume_Score,.Croix_Score;
if( .Croix_Count < 1 ) donpcevent "KvM03_BG::OnGuillaumeWin";
else {
mapannounce "bat_c03", "NUmber of Guillaume survivors "+.Guillaume_Count+".",bc_map,"0x00ff00";
mapannounce "bat_c03", "NUmber of Croix survivors "+.Croix_Count+".",bc_map,"0x00ff00";
}
}
end;
@ -425,12 +433,3 @@ bat_c03,148,53,1 script KVM Officer#KVM03B 415,{
// 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

View File

@ -17,14 +17,22 @@
// KvM Officer - Guillaume
//============================================================
bat_room,164,178,5 script KVM Mercenary Officer#1 418,{
set .@permit,checkquest(6026,PLAYTIME);
/*
set .@kvm,checkquest(6027,PLAYTIME);
if ((.@kvm == 0) || (.@kvm == 1)) {
mes "[Croix Mercenary Officer]";
mes "It seems you ahve recently participated in a KVM battle. You must wait 5 minutes before signing up again.";
close;
}
*/
set .@permit,checkquest(6025,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;
if (checkquest(6025) >= 0) erasequest 6025;
}
mes "[Guillaume Mercenary Officer]";
mes "Let them know the real might of Guillaume!";
@ -115,6 +123,14 @@ bat_room,167,178,5 script Guillaume Knight#kvm 417,{
// KvM Officer - Croix
//============================================================
bat_room,164,121,1 script KVM Mercenary Officer#2 414,{
/*
set .@kvm,checkquest(6027,PLAYTIME);
if ((.@kvm == 0) || (.@kvm == 1)) {
mes "[Croix Mercenary Officer]";
mes "It seems you ahve recently participated in a KVM battle. You must wait 5 minutes before signing up again.";
close;
}
*/
set .@permit,checkquest(6025,PLAYTIME);
if ((.@permit == 0) || (.@permit == 1)) {
mes "[Croix Mercenary Officer]";

View File

@ -44,6 +44,7 @@ OnEnterBG:
bat_room,1,151,3 script #bat_a01_timer 844,{
end;
onInit:
OnEnable:
initnpctimer;
end;
@ -129,7 +130,7 @@ OnReadyCheck:
donpcevent "#bat_a01_timer::OnStop";
end;
}
if( .@Guillaume < 10 || .@Croix < 10 )
else if( .@Guillaume < 10 || .@Croix < 10 )
end;
set $@TierraBG1,1;
donpcevent "Lieutenant Kalos::OnEnterBG";
@ -196,7 +197,7 @@ bat_a01,15,18,3 script barricade#bat_a01_a 844,{
OnEnable:
for( set .@i,185; .@i < 202; set .@i,.@i+1 )
bg_monster $@TierraBG1_id1,"bat_a01",.@i,266,"Barricade",1906,"barricade#bat_a01_a::OnMyMobDead";
setwall "bat_a01",185,266,16,6,1,"bat_a01_c1";
setwall "bat_a01",185,265,16,6,1,"bat_a01_c1";
end;
Onkill:
@ -218,7 +219,7 @@ bat_a01,15,19,3 script barricade#bat_a01_b 844,{
OnEnable:
for( set .@i,169; .@i < 186; set .@i,.@i+1 )
bg_monster $@TierraBG1_id2,"bat_a01",.@i,129,"Barricade",1906,"barricade#bat_a01_b::OnMyMobDead";
setwall "bat_a01",169,129,16,6,1,"bat_a01_g1";
setwall "bat_a01",169,130,16,6,1,"bat_a01_g1";
end;
Onkill:

View File

@ -44,6 +44,7 @@ OnEnterBG:
bat_room,1,151,3 script #bat_a02_timer 844,{
end;
onInit:
OnEnable:
initnpctimer;
end;
@ -129,7 +130,7 @@ OnReadyCheck:
donpcevent "#bat_a02_timer::OnStop";
end;
}
if( .@Guillaume < 10 || .@Croix < 10 )
else if( .@Guillaume < 10 || .@Croix < 10 )
end;
set $@TierraBG2,1;
donpcevent "Lieutenant Rundel::OnEnterBG";
@ -196,7 +197,7 @@ bat_a02,15,18,3 script barricade#bat_a02_a 844,{
OnEnable:
for( set .@i,185; .@i < 202; set .@i,.@i+1 )
bg_monster $@TierraBG2_id1,"bat_a02",.@i,266,"Barricade",1906,"barricade#bat_a02_a::OnMyMobDead";
setwall "bat_a02",185,266,16,6,1,"bat_a02_c1";
setwall "bat_a02",185,265,16,6,1,"bat_a02_c1";
end;
Onkill:
@ -218,7 +219,7 @@ bat_a02,15,19,3 script barricade#bat_a02_b 844,{
OnEnable:
for( set .@i,169; .@i < 186; set .@i,.@i+1 )
bg_monster $@TierraBG2_id2,"bat_a02",.@i,129,"Barricade",1906,"barricade#bat_a02_b::OnMyMobDead";
setwall "bat_a02",169,129,16,6,1,"bat_a02_g1";
setwall "bat_a02",169,130,16,6,1,"bat_a02_g1";
end;
Onkill:

File diff suppressed because it is too large Load Diff

View File

@ -438,16 +438,3 @@ bat_b01,110,162,1 duplicate(Croix camp#bat) Croix camp#bat18 974
bat_b01,110,137,1 duplicate(Croix camp#bat) Croix camp#bat19 974
bat_b01,152,120,1 duplicate(Croix camp#bat) Croix camp#bat20 974
bat_b01,158,114,1 duplicate(Croix camp#bat) Croix camp#bat21 974
// MapFlags
// *********************************************************************
bat_b01 mapflag battleground 2
bat_b01 mapflag nomemo
bat_b01 mapflag nosave SavePoint
bat_b01 mapflag noteleport
bat_b01 mapflag nowarp
bat_b01 mapflag nowarpto
bat_b01 mapflag noreturn
bat_b01 mapflag nobranch
bat_b01 mapflag nopenalty

View File

@ -438,16 +438,3 @@ bat_b02,110,162,1 duplicate(Croix camp#bat) Croix camp#bat39 974
bat_b02,110,137,1 duplicate(Croix camp#bat) Croix camp#bat40 974
bat_b02,152,120,1 duplicate(Croix camp#bat) Croix camp#bat41 974
bat_b02,158,114,1 duplicate(Croix camp#bat) Croix camp#bat42 974
// MapFlags
// *********************************************************************
bat_b02 mapflag battleground
bat_b02 mapflag nomemo
bat_b02 mapflag nosave SavePoint
bat_b02 mapflag noteleport
bat_b02 mapflag nowarp
bat_b02 mapflag nowarpto
bat_b02 mapflag noreturn
bat_b02 mapflag nobranch
bat_b02 mapflag nopenalty

View File

@ -0,0 +1,378 @@
// ==============================================================================
// 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;
}

View File

@ -0,0 +1,378 @@
// ==============================================================================
// 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;
}

View File

@ -0,0 +1,378 @@
// ==============================================================================
// 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;
}

View File

@ -238,19 +238,6 @@ OnReset:
end;
}
// MapFlags
// *********************************************************************
bat_a01 mapflag battleground
bat_a01 mapflag nomemo
bat_a01 mapflag nosave SavePoint
bat_a01 mapflag noteleport
bat_a01 mapflag nowarp
bat_a01 mapflag nowarpto
bat_a01 mapflag noreturn
bat_a01 mapflag nobranch
bat_a01 mapflag nopenalty
// Other Flags
// *********************************************************************

View File

@ -238,19 +238,6 @@ OnReset:
end;
}
// MapFlags
// *********************************************************************
bat_a02 mapflag battleground
bat_a02 mapflag nomemo
bat_a02 mapflag nosave SavePoint
bat_a02 mapflag noteleport
bat_a02 mapflag nowarp
bat_a02 mapflag nowarpto
bat_a02 mapflag noreturn
bat_a02 mapflag nobranch
bat_a02 mapflag nopenalty
// Other Flags
// *********************************************************************

View File

@ -267,15 +267,6 @@ payon,162,176,4 script Halloween Magician#iRO08 704,{
// --------------- MapFlags ---------------
evt_zombie mapflag nightenabled
evt_zombie mapflag nobranch
evt_zombie mapflag nomemo
evt_zombie mapflag nopenalty
evt_zombie mapflag pvp off
evt_zombie mapflag noreturn
evt_zombie mapflag nosave SavePoint
evt_zombie mapflag noskill
evt_zombie mapflag noteleport
evt_zombie,16,142,1 script zombiewarp001 45,2,2,{
OnTouch:

View File

@ -76,4 +76,3 @@ prontera,146,92,3 script Cellerb 58,{
}
}
prontera mapflag fireworks

View File

@ -398,10 +398,10 @@ job_sword1,193,168,0 script Test Hall Staff#swd_9 45,1,3,{
// Pitfalls (Set 1)
//============================================================
job_sword1,65,117,0 warp 함정01-01 1,1,job_sword1,10,245
job_sword1,98,27,0 warp 함정02-01 1,1,job_sword1,11,207
job_sword1,161,27,0 warp 함정02-02 1,1,job_sword1,11,207
job_sword1,239,117,0 warp 함정03-01 1,1,job_sword1,11,169
job_sword1,65,117,0 warp <EFBFBD><EFBFBD><EFBFBD><EFBFBD>01-01 1,1,job_sword1,10,245
job_sword1,98,27,0 warp <EFBFBD><EFBFBD><EFBFBD><EFBFBD>02-01 1,1,job_sword1,11,207
job_sword1,161,27,0 warp <EFBFBD><EFBFBD><EFBFBD><EFBFBD>02-02 1,1,job_sword1,11,207
job_sword1,239,117,0 warp <EFBFBD><EFBFBD><EFBFBD><EFBFBD>03-01 1,1,job_sword1,11,169
job_sword1,16,251,0 script 1_blank_1_a::SwdTrap1 -1,0,1,{
OnTouch:
@ -646,8 +646,3 @@ job_sword1,200,63,0,0 monster Fabre 1184,2,60000,30000,0
//============================================================
// mapflag
//============================================================
job_sword1 mapflag nomemo
job_sword1 mapflag noteleport
job_sword1 mapflag nosave SavePoint
job_sword1 mapflag nopenalty
job_sword1 mapflag nobranch

View File

@ -537,8 +537,3 @@ job_thief1,0,0,0,0 monster Spore 1014,30,0,0,0
//============================================================
// mapflag
//============================================================
job_thief1 mapflag nomemo
job_thief1 mapflag noteleport
job_thief1 mapflag nosave SavePoint
job_thief1 mapflag nopenalty
job_thief1 mapflag nobranch

View File

@ -1461,13 +1461,6 @@ OnStop:
//============================================================
// mapflag
//============================================================
job_cru mapflag nomemo
job_cru mapflag noteleport
job_cru mapflag nosave SavePoint
job_cru mapflag nopenalty
job_cru mapflag nobranch
job_cru mapflag noexp
job_cru mapflag noloot
//============================================================
// Old changelog

View File

@ -2609,13 +2609,6 @@ job_monk,0,0,0,0 monster Thief Bug Larva 1051,20,0,0,0
//============================================================
// mapflag
//============================================================
monk_test mapflag nomemo
monk_test mapflag noteleport
monk_test mapflag nosave SavePoint
monk_test mapflag nopenalty
monk_test mapflag nobranch
monk_test mapflag noexp
monk_test mapflag noloot
//============================================================
// Old changelog

View File

@ -2015,11 +2015,6 @@ in_rogue,399,286,1 script switch#rogreset 88,{
//============================================================
// mapflag
//============================================================
in_rogue mapflag nomemo
in_rogue mapflag noteleport
in_rogue mapflag nosave SavePoint
in_rogue mapflag nopenalty
in_rogue mapflag nobranch
//============================================================
// Old changelog

View File

@ -2893,11 +2893,6 @@ OnTimer9000:
//============================================================
// Mapflag
//============================================================
job_sage mapflag nomemo
job_sage mapflag noteleport
job_sage mapflag nosave SavePoint
job_sage mapflag nopenalty
job_sage mapflag nobranch
//============================================================
// Old changelog

View File

@ -310,3 +310,39 @@ function script F_GetArmorType {
}
end;
}
// Time calculation Function
// *********************************************************************
function script Time2Str {
set .@Time_Left, getarg(0) - gettimetick(2);
set .@Days, .@Time_Left / 86400;
set .@Time_Left, .@Time_Left - (.@Days * 86400);
set .@Hours, .@Time_Left / 3600;
set .@Time_Left, .@Time_Left - (.@Hours * 3600);
set .@Minutes, .@Time_Left / 60;
set .@Time_Left, .@Time_Left - (.@Minutes * 60);
set .@Time$, "";
if( .@Days > 1 )
set .@Time$, .@Time$ + .@Days + " days, ";
else if( .@Days > 0 )
set .@Time$, .@Time$ + .@Days + " day, ";
if( .@Hours > 1 )
set .@Time$, .@Time$ + .@Hours + " hours, ";
else if( .@Hours > 0 )
set .@Time$, .@Time$ + .@Hours + " hour, ";
if( .@Minutes > 1 )
set .@Time$, .@Time$ + .@Minutes + " minutes, ";
else if( .@Minutes > 0 )
set .@Time$, .@Time$ + .@Minutes + " minute, ";
if( .@Time_Left > 1 || .@Time_Left == 0 )
set .@Time$, .@Time$ + .@Time_Left + " seconds.";
else if( .@Time_Left == 1 )
set .@Time$, .@Time$ + .@Time_Left + " second.";
return .@Time$;
}

View File

@ -21,27 +21,6 @@
// Allow Mail Inbox reading from
//============================================================
prontera mapflag town
izlude mapflag town
moc_ruins mapflag town
geffen mapflag town
payon mapflag town
pay_arche mapflag town
alberta mapflag town
aldebaran mapflag town
yuno mapflag town
lighthalzen mapflag town
einbroch mapflag town
einbech mapflag town
comodo mapflag town
umbala mapflag town
amatsu mapflag town
gonryun mapflag town
ayothaya mapflag town
louyang mapflag town
hugel mapflag town
rachel mapflag town
veins mapflag town
// Prontera
//============================================================

View File

@ -327,7 +327,9 @@ npc: npc/battleground/tierra/tierra_enter.txt
npc: npc/battleground/tierra/tierra01.txt
npc: npc/battleground/tierra/tierra02.txt
// Flavius
//npc: npc/battleground/flavius/flavius_enter.txt
npc: npc/battleground/flavius/flavius_enter.txt
npc: npc/battleground/flavius/flavius01.txt
npc: npc/battleground/flavius/flavius02.txt
// Kreiger Von Midgard
npc: npc/battleground/kvm/kvm_enter.txt
npc: npc/battleground/kvm/kvm_item_pay.txt

View File

@ -71,10 +71,14 @@
// BattleGround (please read conf/battle/battleground.conf before
// uncomment battleground scripts).
// --------------------------------------------------------------
//npc: npc/custom/battleground/bg_common.txt
//npc: npc/custom/battleground/bg_tierra_01.txt
//npc: npc/custom/battleground/bg_tierra_02.txt
//npc: npc/battleground/bg_flavius_01.txt
//npc: npc/battleground/bg_flavius_02.txt
//npc: npc/custom/battleground/bg_kvm01.txt
//npc: npc/custom/battleground/bg_kvm02.txt
//npc: npc/custom/battleground/bg_kvm03.txt
// --------------------------------------------------------------
// Lance's Scripts (coded before joining eA Dev team)

View File

@ -24,4 +24,8 @@ npc: conf/mapflag/pvp_noparty.txt
npc: conf/mapflag/pvp_noguild.txt
npc: conf/mapflag/night.txt
npc: conf/mapflag/restricted.txt
npc: conf/mapflag/battleground.txt
npc: conf/mapflag/fireworks.txt
npc: conf/mapflag/novending.txt
npc: conf/mapflag/town.txt
// --------------------------------------------------------------

View File

@ -13116,28 +13116,30 @@ void clif_quest_delete(struct map_session_data * sd, int quest_id)
WFIFOSET(fd, packet_len(0x02B4));
}
//* 02b5 <packet_len>.w <mob_num>.w { <quest_id>.d <mob_id>.d <count>.w }.mob_num
//* 02b5 <packet_len>.w <mob_num>.w { <quest_id>.d <mob_id>.d <count_total>.w <count_partial>.w }.mob_num
void clif_quest_update_objective(struct map_session_data * sd, struct quest * qd, int index)
{
int fd = sd->fd;
int fd = sd->fd;
int i;
int len = quest_db[index].num_objectives*10+6;
int len = quest_db[index].num_objectives*12+6;
WFIFOHEAD(fd, len);
WFIFOW(fd, 0) = 0x02B5;
WFIFOW(fd, 2) = len;
WFIFOW(fd, 4) = quest_db[index].num_objectives;
WFIFOW(fd, 0) = 0x02B5;
WFIFOW(fd, 2) = len;
WFIFOW(fd, 4) = quest_db[index].num_objectives;
for( i = 0; i < quest_db[index].num_objectives; i++ )
{
WFIFOL(fd, i*10+6) = qd->quest_id;
WFIFOL(fd, i*10+10) = quest_db[index].mob[i];
WFIFOW(fd, i*10+14) = qd->count[i];
}
{
WFIFOL(fd, i*12+6) = qd->quest_id;
WFIFOL(fd, i*12+10) = quest_db[index].mob[i];
WFIFOW(fd, i*12+14) = quest_db[index].count[i];
WFIFOW(fd, i*12+16) = qd->count[i];
}
WFIFOSET(fd, len);
}
//* 02B6 <quest_id>.L <state>.B
void clif_parse_questStateAck(int fd, struct map_session_data * sd)
{