From 14f09ca2bb6e58d25ecc9b44c606e2335db65f34 Mon Sep 17 00:00:00 2001 From: Atemo Date: Mon, 1 Feb 2016 20:47:29 +0100 Subject: [PATCH] Added unversioned files --- npc/re/woe_te/main_TE.txt | 1097 +++++++++++++++++++++++++++++ npc/re/woe_te/te_alde_cas01.txt | 72 ++ npc/re/woe_te/te_alde_cas02.txt | 67 ++ npc/re/woe_te/te_alde_cas03.txt | 70 ++ npc/re/woe_te/te_alde_cas04.txt | 72 ++ npc/re/woe_te/te_alde_cas05.txt | 71 ++ npc/re/woe_te/te_controller.txt | 37 + npc/re/woe_te/te_gmnpc.txt | 60 ++ npc/re/woe_te/te_guides.txt | 182 +++++ npc/re/woe_te/te_merchant.txt | 145 ++++ npc/re/woe_te/te_mission_alde.txt | 42 ++ npc/re/woe_te/te_mission_main.txt | 575 +++++++++++++++ npc/re/woe_te/te_mission_prt.txt | 41 ++ npc/re/woe_te/te_prt_cas01.txt | 65 ++ npc/re/woe_te/te_prt_cas02.txt | 67 ++ npc/re/woe_te/te_prt_cas03.txt | 65 ++ npc/re/woe_te/te_prt_cas04.txt | 65 ++ npc/re/woe_te/te_prt_cas05.txt | 63 ++ 18 files changed, 2856 insertions(+) create mode 100644 npc/re/woe_te/main_TE.txt create mode 100644 npc/re/woe_te/te_alde_cas01.txt create mode 100644 npc/re/woe_te/te_alde_cas02.txt create mode 100644 npc/re/woe_te/te_alde_cas03.txt create mode 100644 npc/re/woe_te/te_alde_cas04.txt create mode 100644 npc/re/woe_te/te_alde_cas05.txt create mode 100644 npc/re/woe_te/te_controller.txt create mode 100644 npc/re/woe_te/te_gmnpc.txt create mode 100644 npc/re/woe_te/te_guides.txt create mode 100644 npc/re/woe_te/te_merchant.txt create mode 100644 npc/re/woe_te/te_mission_alde.txt create mode 100644 npc/re/woe_te/te_mission_main.txt create mode 100644 npc/re/woe_te/te_mission_prt.txt create mode 100644 npc/re/woe_te/te_prt_cas01.txt create mode 100644 npc/re/woe_te/te_prt_cas02.txt create mode 100644 npc/re/woe_te/te_prt_cas03.txt create mode 100644 npc/re/woe_te/te_prt_cas04.txt create mode 100644 npc/re/woe_te/te_prt_cas05.txt diff --git a/npc/re/woe_te/main_TE.txt b/npc/re/woe_te/main_TE.txt new file mode 100644 index 0000000000..63d91447bf --- /dev/null +++ b/npc/re/woe_te/main_TE.txt @@ -0,0 +1,1097 @@ +//===== rAthena Script ======================================= +//= War of Emperium TE - Template File +//===== Description: ========================================= +//= [Official Conversion] +//= Like agit_main, this file is required +//= for TE castles to function. +//= - Enables AGIT Manager. +//= - Enables Stewards to invest. +//= - Enables Kafra Services inside Guild. +//= - Treasure Chest spawning. +//= - Flag Template. +//===== Changelogs: ========================================== +//= 1.0 First Version. [Capuche] +//============================================================ + +function script CanParticipatewoeTE { + return ( (eaclass()&EAJL_THIRD || Class == JOB_KAGEROU || Class == JOB_OBORO) ? 0 : 1 ); +} + +- script Manager_TE -1,{ +OnAgitInit: + .@map$ = strnpcinfo(4); + if (.@map$ == "") end; + if (getcastledata(.@map$,1) == 0) { + killmonsterall .@map$; + donpcevent strnpcinfo(0)+"::OnEmpSpawn"; + if (compare(.@map$,"te_aldecas")) { + monster .@map$,0,0,"Evil Druid",1117,10; + monster .@map$,0,0,"Khalitzburg",1132,4; + monster .@map$,0,0,"Abysmal Knight",1219,2; + monster .@map$,0,0,"Executioner",1205,1; + monster .@map$,0,0,"Penomena",1216,10; + monster .@map$,0,0,"Alarm",1193,18; + monster .@map$,0,0,"Clock",1269,9; + monster .@map$,0,0,"Raydric Archer",1276,7; + monster .@map$,0,0,"Wanderer",1208,3; + monster .@map$,0,0,"Alice",1275,1; + monster .@map$,0,0,"Bloody Knight",1268,1; + monster .@map$,0,0,"Dark Lord",1272,1; + if (.@map$ == "te_aldecas1") { setarray .@emproom[0],216,23; } + else if (.@map$ == "te_aldecas2") { setarray .@emproom[0],213,23; } + else if (.@map$ == "te_aldecas3") { setarray .@emproom[0],205,31; } + else if (.@map$ == "te_aldecas4") { setarray .@emproom[0],36,217; } + else if (.@map$ == "te_aldecas5") { setarray .@emproom[0],27,101; } + monster .@map$,.@emproom[0],.@emproom[1],"Dark Lord",1272,1; + monster .@map$,.@emproom[0],.@emproom[1],"Tower Keeper",1270,4; + monster .@map$,.@emproom[0],.@emproom[1],"Bloody Knight",1268,1; + monster .@map$,.@emproom[0],.@emproom[1],"Abysmal Knight",1219,1; + monster .@map$,.@emproom[0],.@emproom[1],"Raydric Archer",1276,5; + } + else if (compare(.@map$,"te_prtcas")) { + monster .@map$,0,0,"Raydric",1163,10; + monster .@map$,0,0,"Khalitzburg",1132,10; + monster .@map$,0,0,"Abysmal Knight",1219,5; + monster .@map$,0,0,"Bloody Knight",1268,5; + monster .@map$,0,0,"Stormy Knight",1251,1; + monster .@map$,0,0,"Hatii",1252,1; + monster .@map$,0,0,"Raydric Archer",1276,5; + monster .@map$,0,0,"Gryphon",1259,2; + monster .@map$,0,0,"Chimera",1283,2; + monster .@map$,0,0,"Alice",1275,1; + monster .@map$,0,0,"Zealotus",1200,1; + if (.@map$ == "te_prtcas01") { setarray .@emproom[0],197,197; } + else if (.@map$ == "te_prtcas02") { setarray .@emproom[0],157,174; } + else if (.@map$ == "te_prtcas03") { setarray .@emproom[0],16,220; } + else if (.@map$ == "te_prtcas04") { setarray .@emproom[0],291,14; } + else if (.@map$ == "te_prtcas05") { setarray .@emproom[0],266,266; } + monster .@map$,.@emproom[0],.@emproom[1],"Guardian Knight of Emperium",1268,1; + monster .@map$,.@emproom[0],.@emproom[1],"Chief Guardian Knight of Emperium",1251,1; + monster .@map$,.@emproom[0],.@emproom[1],"Hatii",1252,1; + monster .@map$,.@emproom[0],.@emproom[1],"Guardian Knight of Emperium",1219,2; + monster .@map$,.@emproom[0],.@emproom[1],"Raydric Archer",1276,5; + } + disablenpc "Kafra Staff#"+ .@map$; + } + else { + donpcevent "::OnFlagTE" + strnpcinfo(2);// Guild emblem on flags. + if (getcastledata(.@map$,9) == 0) + disablenpc "Kafra Staff#"+ .@map$; + + // Load purchased Guardian in castles. + if (.@map$ == "te_aldecas1") donpcevent "Clode::OnSpawnGuardians"; + else if (.@map$ == "te_aldecas2") donpcevent "Lares::OnSpawnGuardians"; + else if (.@map$ == "te_aldecas3") donpcevent "Valerian::OnSpawnGuardians"; + else if (.@map$ == "te_aldecas4") donpcevent "Alpores::OnSpawnGuardians"; + else if (.@map$ == "te_aldecas5") donpcevent "Anpere::OnSpawnGuardians"; + else if (.@map$ == "te_prtcas01") donpcevent "Kurbe::OnSpawnGuardians"; + else if (.@map$ == "te_prtcas02") donpcevent "Kamiyu::OnSpawnGuardians"; + else if (.@map$ == "te_prtcas03") donpcevent "Eduare::OnSpawnGuardians"; + else if (.@map$ == "te_prtcas04") donpcevent "Casate::OnSpawnGuardians"; + else if (.@map$ == "te_prtcas05") donpcevent "Pisaro::OnSpawnGuardians"; + } + end; + +OnEmpSpawn: + .@map$ = strnpcinfo(4); + if (!mobcount( .@map$, strnpcinfo(0) +"::OnAgitBreak" )) {// voir si utile + if (.@map$ == "te_aldecas1") { setarray .@emproom[0],216,23; } + else if (.@map$ == "te_aldecas2") { setarray .@emproom[0],213,23; } + else if (.@map$ == "te_aldecas3") { setarray .@emproom[0],205,31; } + else if (.@map$ == "te_aldecas4") { setarray .@emproom[0],36,217; } + else if (.@map$ == "te_aldecas5") { setarray .@emproom[0],27,101; } + else if (.@map$ == "te_prtcas01") { setarray .@emproom[0],197,197; } + else if (.@map$ == "te_prtcas02") { setarray .@emproom[0],157,174; } + else if (.@map$ == "te_prtcas03") { setarray .@emproom[0],16,220; } + else if (.@map$ == "te_prtcas04") { setarray .@emproom[0],291,14; } + else if (.@map$ == "te_prtcas05") { setarray .@emproom[0],266,266; } + monster .@map$,.@emproom[0],.@emproom[1],"Emperium",1288,1, strnpcinfo(0) +"::OnAgitBreak"; + } + end; + +OnAgitStart: + .@map$ = strnpcinfo(4); + if (.@map$ == "") end; + if (agitcheck()) { + maprespawnguildid .@map$, getcastledata(.@map$,1),6;// warp all non-guild members and remove monsters (like woe fe) + gvgon .@map$; + donpcevent strnpcinfo(0)+"::OnEmpSpawn"; + callsub S_Message,"OnCommandOn"; + } + end; + +OnAgitEnd: + .@map$ = strnpcinfo(4); + if (.@map$ == "") end; + gvgoff .@map$; + if (getcastledata(.@map$,1)) + killmonster .@map$, strnpcinfo(0) +"::OnAgitBreak"; + callsub S_Message,"OnReset"; + end; + +OnAgitBreak: + .@guild_id = getcharid(2); + .@map$ = strnpcinfo(4); + + .@economy = getcastledata(.@map$,2) - 5;// Adjust economy Invest Level for Castle + if (.@economy < 0) + setcastledata .@map$, 2,0; + else + setcastledata .@map$, 2,.@economy; + .@defense = getcastledata(.@map$,3) - 5;// Adjust Defense Invest Level for Castle + if (.@defense < 0) + setcastledata .@map$, 3,0; + else + setcastledata .@map$, 3,.@defense; + setcastledata .@map$,1,.@guild_id; + + // Reset Invest information and refresh castle data + for ( .@i = 4; .@i <= 9; .@i++ ) + setcastledata .@map$,.@i,0; + donpcevent strnpcinfo(0) +"::OnAgitInit"; + + // Erase Guardian Database information if the new owners do not have Guardian Research. + if (getgdskilllv(.@guild_id,10002) == 0) { + for ( .@i = 10; .@i <= 17; .@i++ ) + setcastledata .@map$,.@i,0; + } + + // announce that the Emperium is destroyed, and respawn all but new castle-occupants. + mapannounce .@map$,"Emperium has been destroyed.",bc_map,"0x00FF00",FW_BOLD,20,0,40; + maprespawnguildid .@map$,.@guild_id,6; + + // Respawn the Emperium, and display new owners. + sleep 500; + if (agitcheck()) + donpcevent strnpcinfo(0) +"::OnEmpSpawn"; + sleep 7000; + announce strnpcinfo(2) +" in the fortress of [" + getcastlename(.@map$) + "] is occupied by [" + getguildname(.@guild_id) + "] guild.", bc_all,"0xFF0000",FW_NORMAL,10; + end; + +OnGuildBreak: + .@map$ = strnpcinfo(4); + if (.@map$ == "") end; + killmonster .@map$, "Kafra Staff#"+ strnpcinfo(4) +"::OnGuardianDied"; + disablenpc "Kafra Staff#"+ .@map$; + setcastledata .@map$,1,0; + sleep 7000; + announce "Guild Base [" + getcastlename(.@map$) + "] has been abandoned.",bc_all; + donpcevent strnpcinfo(0) +"::OnAgitInit"; + end; + +S_Message: + .@map$ = strnpcinfo(4); + .@guild_id = getcastledata(.@map$,1); + + if (.@guild_id) + announce strnpcinfo(2) +" in the fortress of [" + getcastlename(.@map$) + "] is occupied by [" + getguildname(.@guild_id) + "] guild.", bc_all,"0xFF0000",FW_NORMAL,10; + else + announce "The [" + getcastlename(.@map$) + "] castle is currently unoccupied.", bc_all,"0xFF0000",FW_NORMAL,10; + if (compare( .@map$,"te_alde" )) + .@string$ = "alde0"+ charat( .@map$,getstrlen(.@map$)-1 ); + else + .@string$ = "prt0"+ charat( .@map$,getstrlen(.@map$)-1 ); + donpcevent "#popswitch_"+ .@string$ +"::"+ getarg(0);// monsters for mission TE + + if (.@map$ == "te_alde_cas01") { + donpcevent "Blacksmith Cano#tegod01::"+ getarg(0);// god item TE + $@2012_tegod_kafra = 0; + $@2012_tegirls_alde01 = 0; + } + return; +} + +// Guild Kafras +//============================================================ +- script Kafra_Staff_TE -1,{ + .@guild_id = getcastledata( strnpcinfo(4),1 ); + .@guildname$ = getguildname(.@guild_id); + + cutin "kafra_01",2; + mes "[Kafra Staff]"; + if (.@guild_id == getcharid(2)) { + mes "Welcome, members of ^ff0000" + .@guildname$ + "^000000."; + mes "Kafra Service Inc. is always on your side."; + next; + switch( select( "Use storage service", "Use warp service", "Use cart service", "Close it" ) ) { + case 1: + if (getskilllv("NV_BASIC") > 5) + openstorage; + else { + mes "[Kafra Staff]"; + mes "To use the storage service, your beginner skill level must be higher than 6."; + close2; + } + break; + case 2: + if (compare( strnpcinfo(4),"alde" ) == 1) + callsub( S_Warp, "Aldebaran", "aldebaran",132,103 ); + else + callsub( S_Warp, "Prontera", "prontera",278,211 ); + case 3: + mes "[Kafra Staff]"; + if (BaseClass != Job_Merchant) { + mes "We're sorry."; + mes "Cart service is an exclusive service for merchants, blacksmiths, and alchemists only."; + close2; + } + else if (checkcart()) { + mes "You have a cart installed to you currently."; + close2; + } + else { + mes "We charge 800 Zeny for the cart service. Would you like to use it?"; + next; + if (select( "Yes","No" ) == 1) { + if (Zeny < 800) { + mes "[Kafra Staff]"; + mes "You don't have enough money to purchase this service. You need 800 Zeny in order to use the cart service."; + close2; + } + else { + RESRVPTS = RESRVPTS + 80; + Zeny = Zeny - 800; + setcart(); + } + } + } + break; + case 4: + mes "[Kafra Staff]"; + mes "At Kafra Service Inc., we do our utmost to provide the best and satisfy our customers by managing the quality of our services strictly."; + mes "Thanks for choosing Kafra Service Inc."; + close2; + break; + } + } + else { + mes "I made a contract to work for members of ^ff0000" + .@guildname$ + "^000000 only. Please consult one of our Kafra personnel in different locations. We're sorry for the inconvenience."; + close2; + } + cutin "",255; + end; + +S_Warp: + mes "[Kafra Staff]"; + mes "Tell me your destination."; + next; + switch( select( getarg(0) + " -> 200 z", "Cancel it" ) ) { + case 1: + if (Zeny < 200) { + mes "[Kafra Staff]"; + mes "Member -. You don't have enough money to purchase the service. Please check your account again."; + close2; + cutin "",255; + end; + } + Zeny = Zeny - 200; + RESRVPTS = RESRVPTS + 20; + warp getarg(1), getarg(2),getarg(3); + end; + case 2: + cutin "",255; + end; + } + +OnGuardianDied: + end; +} + +// Castle Managers (Invest) +//============================================================ +- script invest_TE -1,{ +function GuardianData; + + .@map$ = strnpcinfo(4); + .@npc_name$ = "[ Butler "+ strnpcinfo(1) +"]"; + .@guild_id = getcastledata(.@map$,1); + .@guildmaster$ = getguildmaster(.@guild_id); + + mes .@npc_name$; + if (.@guild_id == 0) { + mes "I'm waiting for someone who are meant to be my master."; + mes "Oh, you courageous one... tempt your fate."; + close; + } + if (strcharinfo(0) != .@guildmaster$) { + mes "No matter how much you threaten me, I shall follow my master ^ff0000" + .@guildmaster$ + "^000000 only! Where are the guardians! Kick out these scondrels immediately!"; + close; + } + mes "Welcome. ^ff0000" + .@guildmaster$ + "^000000, my master..."; + mes "You may command my services. I shall carry out my duties faithfully."; + next; + switch( select( "Check current status of the fortress", "Invest in commercial development level", "Invest in defense level", "Deploy guardians", "Employ / Dismiss a warehouseman", "Enter master's room" ) ) { + case 1: + mes .@npc_name$; + mes "Let me give you a report on the current status of the fortress."; + mes ""; + mes "^0000ffThe current commercial level is " + getcastledata(.@map$,2) + "~."; + if (getcastledata(.@map$,4) > 0) + mes "You have invested ~ " + getcastledata(.@map$,4) + " times within the past 1 day."; + mes "The current defense level is " + getcastledata(.@map$,3) + "~.^000000"; + if (getcastledata(.@map$,5) > 0) + mes "^0000ff- Within the past 1 day, you have invested ~ " + getcastledata(.@map$,5) + " times.^000000"; + mes ""; + mes "That's about it."; + close; + + case 2: + .@economy = getcastledata(.@map$,2); + setarray .@eco_invest[0], 5,5000, 10,10000, 15,20000, 20,35000, 25,55000, 30,80000, 35,110000, 40,145000, 45,185000, 50,230000, + 55,280000, 60,335000, 65,395000, 70,460000, 75,530000, 80,605000, 85,685000, 90,770000, 95,860000, 100,955000; + for ( .@i = 0; .@i < 40; .@i += 2 ) + if (.@economy <= .@eco_invest[.@i]) break; + callsub( S_Invest, 4, .@eco_invest[.@i+1], getcastledata(.@map$,4), "commercial development", "number of items produced within the guild increases" ); + + case 3: + .@defense = getcastledata(.@map$,3); + setarray .@def_invest[0], 5,10000, 10,20000, 15,40000, 20,70000, 25,110000, 30,160000, 35,220000, 40,290000, 45,370000, 50,460000, + 55,560000, 60,670000, 65,790000, 70,920000, 75,1060000, 80,1210000, 85,1370000, 90,1540000, 95,1720000, 100,1910000; + for ( .@i = 0; .@i < 40; .@i += 2 ) + if (.@defense <= .@def_invest[.@i]) break; + callsub( S_Invest, 5, .@def_invest[.@i+1], getcastledata(.@map$,5), "defense", "durability of guardian and Emperiums increase" ); + + case 4: + mes .@npc_name$; + mes "Do you want to install a guardian? A guardian will be protecting our fortress ceaselessly."; + mes "Select a guardian that you wish to install."; + next; + GuardianData( .@mob_id, .@x, .@y, .@name$ ); + for ( .@i = 0; .@i < 8 ; .@i++ ) { + if (guardianinfo(.@map$,.@i,0)) + .@menu$ = .@menu$ + getmonsterinfo(.@mob_id[.@i],MOB_NAME) + " - Implemented (" + guardianinfo(.@map$,.@i,2) + "/" + guardianinfo(.@map$,.@i,1) + "):";// hp/hpmax + else + .@menu$ = .@menu$ + getmonsterinfo(.@mob_id[.@i],MOB_NAME) + " - Not Implemented:"; + } + .@s = select(.@menu$) -1; + mes .@npc_name$; + mes "Are you sure you want to install the selected guardian? You need 10000 Zeny to proceed."; + next; + if (select( "Install it.","Forget it." ) == 2) { + mes .@npc_name$; + mes "I did just as you said. However, make sure to install a guardian in the future when you can afford it."; + close; + } + mes .@npc_name$; + if (getgdskilllv(.@guild_id,10002) == 0) { + mes "Master, you do not have any research knowledge required for installation of a guardian. In order to accumulate knowledge about installation of a guardian, you need to master ^ff0000Guardian Manufacturing Studies^000000 among other guild skills."; + mes "You have failed to install a guardian."; + } + else if (getcastledata( .@map$,(.@s+10) ) == 1) + mes "Master... you have installed that guardian already. You may not proceed with the installation."; + else if (Zeny < 10000) + mes "You don't have enough resources required for installation of a guardian. Unfortunately... you have failed to install a guardian."; + else { + Zeny = Zeny - 10000; + setcastledata .@map$,(.@s+10),1; + guardian .@map$, .@x[.@s], .@y[.@s], .@name$[.@s], .@mob_id[.@s], "Kafra Staff#"+ strnpcinfo(4) +"::OnGuardianDied", .@s; + mes "A guardian has been installed successfully. We have a reliable ally that protects our fortress now."; + } + close; + + case 5: + mes .@npc_name$; + if (getcastledata(.@map$,9) == 1) { + mes "Currently, a Kafra staff is employed... Do you want to fire a Kafra staff?"; + next; + if (select( "Dismiss him.","Forget it." ) == 2) { + mes .@npc_name$; + mes "I think that Kafra staff is working really hard. I thought it'd be nice to just keep him thinking about other members."; + close; + } + cutin "kafra_01",2; + mes "[ Hired Kafra Staff ]"; + mes "I've been working so hard... but why are you firing me? Please, Master... show me your generosity and please reconsider it, please."; + next; + if (select( "Dismiss him.","Forget it." ) == 2) { + mes "[ Hired Kafra Staff ]"; + mes "I'll do my best... thank you so much."; + close; + } + mes "[ Hired Kafra Staff ]"; + mes "Aahhhh! It's not fair~!"; + next; + cutin "",255; + disablenpc "Kafra Staff#" + .@map$; + setcastledata .@map$,9,0; + mes .@npc_name$; + mes "... ."; + mes "A Kafra staff has been fired... Was there something you didn't like about him?"; + close; + } + mes "Do you want to make a contract with Kafra's headquarter and hire a staff in the fortress?"; + mes "^ff0000You need 10000 Zeny for that though..."; + next; + if (select( "Hire a staff.","Forget it." ) == 2) { + mes .@npc_name$; + mes "Your wish is my command. But we should hire a Kafra staff sooner of later for the sake of other members."; + close; + } + mes .@npc_name$; + if (getgdskilllv(.@guild_id,10001) == 0) { + mes "Master, you are unable to hire a Kafra staff since you didn't make a contract with Kafra's headquarter yet. In order to make a contract with Kafra's headquarter, you need to master ^ff0000 Contract with Kafra^000000 skill among other guild skills."; + close; + } + if (Zeny < 10000) { + mes "Unfortunately... you do not have enough money in your account. You have failed to hire a Kafra staff."; + close; + } + Zeny = Zeny - 10000; + enablenpc "Kafra Staff#" + .@map$; + setcastledata .@map$,9,1; + + mes "You have made a contract with Kafra's headquarter successfully. You have hired a Kafra staff."; + next; + cutin "kafra_01",2; + mes "[ Hired Kafra Staff ]"; + mes "Nice to meet you. I'm Kafra dispatched from the headquarter."; + mes "I'll do my best to live up to the guild's reputation."; + next; + cutin "",255; + mes .@npc_name$; + mes "The contract period for a Kafra staff will be one month, and after that, you pay extra fees."; + mes "From now on, it's going to be much easier for the members."; + close; + + case 6: + mes .@npc_name$; + mes "Do you want to go to the room where our precious items are stored?"; + mes "It's a place only for you, our master... no one, other than you, is allowed to enter."; + next; + mes .@npc_name$; + mes "If you don't open the treasure box within time limits, there is a possibility of losing it when unexpected situation occurs."; + mes "Please make sure to remember that always, Master."; + mes "So, for our guild's improvement, you must find time to collect it."; + next; + switch( select( "Enter master's room","Do not enter." ) ) { + case 1: + mes .@npc_name$; + mes "I will take you to the secret path that leads to the room. Follow me, please."; + mes "When you wish to return, press a secret button."; + close2; + if (.@map$ == "te_aldecas1") warp "te_aldecas1",113,223; + else if (.@map$ == "te_aldecas2") warp "te_aldecas2",134,225; + else if (.@map$ == "te_aldecas3") warp "te_aldecas3",229,267; + else if (.@map$ == "te_aldecas4") warp "te_aldecas4",83,17; + else if (.@map$ == "te_aldecas5") warp "te_aldecas5",64,8; + else if (.@map$ == "te_prtcas01") warp "te_prtcas01",15,209; + else if (.@map$ == "te_prtcas02") warp "te_prtcas02",207,229; + else if (.@map$ == "te_prtcas03") warp "te_prtcas03",190,130; + else if (.@map$ == "te_prtcas04") warp "te_prtcas04",275,160; + else if (.@map$ == "te_prtcas05") warp "te_prtcas05",281,176; + end; + case 2: + mes .@npc_name$; + mes "Items are produced once a day... but if you don't collect them in time, they don't come in anymore."; + mes "So, for our guild's improvement, you must find time to collect them."; + close; + } + } + +S_Invest: + .@cost_invest = getarg(1); + .@num_invest_today = getarg(2); + .@npc_name$ = "[ Butler "+ strnpcinfo(1) +"]"; + if (.@num_invest_today)// Quadruple the cost of investing if you've already invested once. + .@cost_invest = .@cost_invest * 4; + + mes .@npc_name$; + mes "If you raise "+ getarg(3) +" level, the "+ getarg(4) +". So, if you think about the future, you have to invest in it."; + mes ""; + mes "Originally, you are allowed to invest once a day. However, if you pay extra, you can also invest in it twice a day."; + mes ""; + if (getcastledata(strnpcinfo(4),2) >= 100) { + mes "^ff0000But the current level is already 100%, which is as high as it can get, and you don't need to invest in it anymore. Surely, you have a great insight.^000000"; + close; + } + if (.@num_invest_today >= 2) { + mes "^ff0000But since you have already invested twice, you are not allowed to make any additional investment today. ^000000I can't wait until we become wealthy with increased level of commercial development."; + close; + } + if (.@num_invest_today == 0) + mes "The amount of investment required is ^ff0000" + .@cost_invest + "^000000 Zeny. Would you like to invest?"; + else + mes "You've already invested once. Do you want to invest again? ^ff0000" + .@cost_invest + "^000000 Zeny is needed additionally."; + next; + switch( select( "Invest in commercial development level","Forget it." ) ) { + case 1: + mes .@npc_name$; + if (Zeny < .@cost_invest) { + mes "Master, unfortunately, we do not have enough Zeny in our account. We failed to make an investment."; + close; + } + Zeny = Zeny - .@cost_invest; + setcastledata strnpcinfo(4), getarg(0), (.@num_invest_today +1); + mes "We have made an investment successfully! I'm looking forward to our future. The level of our commercial development will be increased by tomorrow."; + close; + case 2: + mes .@npc_name$; + mes "Your wish is my command, my master... There is no need to rush. We will do just fine."; + close; + } + +function GuardianData { + .@map$ = strnpcinfo(4); + if (.@map$ == "te_aldecas1") { + setarray .@data$[0], + 1287, 17, 218, "Inner Castle Soldier Guardian",// SOLDIER_GUARDIAN + 1285, 39, 205, "Outer Castle Archer Guardian",// ARCHER_GUARDIAN + 1285, 38, 196, "Outer Castle Archer Guardian",// ARCHER_GUARDIAN + 1286, 21, 194, "Inner Castle Knight Guardian",// KNIGHT_GUARDIAN + 1286, 218, 24, "Inner Castle Knight Guardian",// KNIGHT_GUARDIAN + 1286, 213, 24, "Inner Castle Knight Guardian",// KNIGHT_GUARDIAN + 1286, 73, 70, "Inner Castle Knight Guardian",// KNIGHT_GUARDIAN + 1285, 45, 228, "Outer Castle Archer Guardian";// ARCHER_GUARDIAN + } + else if (.@map$ == "te_aldecas2") { + setarray .@data$[0], + 1287, 51, 183, "Inner Castle Soldier Guardian",// SOLDIER_GUARDIAN + 1286, 27, 184, "Outer Castle Knight Guardian",// KNIGHT_GUARDIAN + 1286, 88, 43, "Inner Castle Knight Guardian",// KNIGHT_GUARDIAN + 1285, 210, 7, "Outer Castle Archer Guardian",// ARCHER_GUARDIAN + 1287, 60, 203, "Outer Castle Soldier Guardian",// SOLDIER_GUARDIAN + 1285, 21, 177, "Outer Castle Archer Guardian",// ARCHER_GUARDIAN + 1286, 117, 46, "Inner Castle Knight Guardian",// KNIGHT_GUARDIAN + 1285, 36, 183, "Outer Castle Archer Guardian";// ARCHER_GUARDIAN + } + else if (.@map$ == "te_aldecas3") { + setarray .@data$[0], + 1285, 110, 217, "Outer Castle Archer Guardian",// ARCHER_GUARDIAN + 1286, 90, 112, "Inner Castle Knight Guardian",// KNIGHT_GUARDIAN + 1287, 86, 120, "Inner Castle Soldier Guardian",// SOLDIER_GUARDIAN + 1285, 195, 151, "Inner Castle Archer Guardian",// ARCHER_GUARDIAN + 1286, 116, 112, "Inner Castle Knight Guardian",// KNIGHT_GUARDIAN + 1287, 116, 76, "Inner Castle Soldier Guardian",// SOLDIER_GUARDIAN + 1287, 64, 103, "Outer Castle Soldier Guardian",// SOLDIER_GUARDIAN + 1285, 212, 160, "Inner Castle Archer Guardian";// ARCHER_GUARDIAN + } + else if (.@map$ == "te_aldecas4") { + setarray .@data$[0], + 1285, 187, 100, "Outer Castle Archer Guardian",// ARCHER_GUARDIAN + 1285, 192, 42, "Outer Castle Archer Guardian",// ARCHER_GUARDIAN + 1286, 55, 88, "Inner Castle Knight Guardian",// KNIGHT_GUARDIAN + 1287, 145, 209, "Inner Castle Soldier Guardian",// SOLDIER_GUARDIAN + 1287, 169, 53, "Outer Castle Soldier Guardian",// SOLDIER_GUARDIAN + 1287, 198, 77, "Outer Castle Soldier Guardian",// SOLDIER_GUARDIAN + 1285, 148, 88, "Outer Castle Archer Guardian",// ARCHER_GUARDIAN + 1286, 48, 72, "Inner Castle Knight Guardian";// KNIGHT_GUARDIAN + } + else if (.@map$ == "te_aldecas5") { + setarray .@data$[0], + 1285, 51, 202, "Inner Castle Archer Guardian",// ARCHER_GUARDIAN + 1286, 27, 221, "Inner Castle Knight Guardian",// KNIGHT_GUARDIAN + 1286, 145, 78, "Outer Castle Knight Guardian",// KNIGHT_GUARDIAN + 1287, 157, 192, "Inner Castle Soldier Guardian",// SOLDIER_GUARDIAN + 1287, 157, 74, "Outer Castle Soldier Guardian",// SOLDIER_GUARDIAN + 1285, 188, 79, "Inner Castle Archer Guardian",// ARCHER_GUARDIAN + 1286, 156, 73, "Inner Castle Knight Guardian",// KNIGHT_GUARDIAN + 1286, 41, 112, "Inner Castle Knight Guardian";// KNIGHT_GUARDIAN + } + else if (.@map$ == "te_prtcas01") { + setarray .@data$[0], + 1287, 182, 68, "Inner Castle Soldier Guardian",// SOLDIER_GUARDIAN + 1287, 182, 116, "Inner Castle Soldier Guardian",// SOLDIER_GUARDIAN + 1287, 153, 86, "Inner Castle Soldier Guardian",// SOLDIER_GUARDIAN + 1285, 59, 28, "Outer Castle Archer Guardian",// ARCHER_GUARDIAN + 1285, 50, 36, "Outer Castle Archer Guardian",// ARCHER_GUARDIAN + 1286, 184, 183, "Inner Castle Knight Guardian",// KNIGHT_GUARDIAN + 1286, 196, 189, "Inner Castle Knight Guardian",// KNIGHT_GUARDIAN + 1286, 107, 179, "Inner Castle Knight Guardian";// KNIGHT_GUARDIAN + } + else if (.@map$ == "te_prtcas02") { + setarray .@data$[0], + 1286, 162, 161, "Inner Castle Knight Guardian",// KNIGHT_GUARDIAN + 1286, 153, 161, "Inner Castle Knight Guardian",// KNIGHT_GUARDIAN + 1286, 178, 44, "Inner Castle Knight Guardian",// KNIGHT_GUARDIAN + 1287, 71, 75, "Inner Castle Soldier Guardian",// SOLDIER_GUARDIAN + 1287, 49, 28, "Inner Castle Soldier Guardian",// SOLDIER_GUARDIAN + 1285, 64, 186, "Outer Castle Archer Guardian",// ARCHER_GUARDIAN + 1285, 76, 196, "Outer Castle Archer Guardian",// ARCHER_GUARDIAN + 1285, 75, 175, "Outer Castle Archer Guardian";// ARCHER_GUARDIAN + } + else if (.@map$ == "te_prtcas03") { + setarray .@data$[0], + 1286, 191, 190, "Inner Castle Knight Guardian",// KNIGHT_GUARDIAN + 1286, 137, 190, "Inner Castle Knight Guardian",// KNIGHT_GUARDIAN + 1286, 45, 99, "Inner Castle Knight Guardian",// KNIGHT_GUARDIAN + 1287, 50, 87, "Inner Castle Soldier Guardian",// SOLDIER_GUARDIAN + 1287, 41, 87, "Inner Castle Soldier Guardian",// SOLDIER_GUARDIAN + 1285, 191, 42, "Outer Castle Archer Guardian",// ARCHER_GUARDIAN + 1285, 179, 43, "Outer Castle Archer Guardian",// ARCHER_GUARDIAN + 1285, 191, 72, "Outer Castle Archer Guardian";// ARCHER_GUARDIAN + } + else if (.@map$ == "te_prtcas04") { + setarray .@data$[0], + 1286, 276, 14, "Inner Castle Knight Guardian",// KNIGHT_GUARDIAN + 1286, 274, 35, "Inner Castle Knight Guardian",// KNIGHT_GUARDIAN + 1286, 246, 246, "Inner Castle Knight Guardian",// KNIGHT_GUARDIAN + 1287, 38, 240, "Inner Castle Soldier Guardian",// SOLDIER_GUARDIAN + 1287, 29, 240, "Inner Castle Soldier Guardian",// SOLDIER_GUARDIAN + 1287, 33, 258, "Inner Castle Soldier Guardian",// SOLDIER_GUARDIAN + 1285, 78, 48, "Outer Castle Archer Guardian",// ARCHER_GUARDIAN + 1285, 36, 61, "Outer Castle Archer Guardian";// ARCHER_GUARDIAN + } + else if (.@map$ == "te_prtcas05") { + setarray .@data$[0], + 1286, 266, 262, "Inner Castle Knight Guardian",// KNIGHT_GUARDIAN + 1286, 287, 280, "Inner Castle Knight Guardian",// KNIGHT_GUARDIAN + 1286, 245, 250, "Inner Castle Knight Guardian",// KNIGHT_GUARDIAN + 1287, 236, 63, "Inner Castle Soldier Guardian",// SOLDIER_GUARDIAN + 1287, 251, 63, "Inner Castle Soldier Guardian",// SOLDIER_GUARDIAN + 1287, 278, 71, "Inner Castle Soldier Guardian",// SOLDIER_GUARDIAN + 1285, 32, 253, "Outer Castle Archer Guardian",// ARCHER_GUARDIAN + 1285, 44, 248, "Outer Castle Archer Guardian";// ARCHER_GUARDIAN + } + for ( .@i = 0; .@i < 32; .@i += 4 ) { + set getelementofarray( getarg(0),.@index ), .@data$[.@i]; + set getelementofarray( getarg(1),.@index ), .@data$[.@i+1]; + set getelementofarray( getarg(2),.@index ), .@data$[.@i+2]; + set getelementofarray( getarg(2),.@index ), .@data$[.@i+3]; + .@index++; + } +} + +OnSpawnGuardians: + GuardianData( .@mob_id, .@x, .@y, .@name$ ); + .@map$ = strnpcinfo(4); + killmonster .@map$, "Kafra Staff#"+ strnpcinfo(4) +"::OnGuardianDied"; + for ( .@i = 0; .@i < 8; .@i++ ) { + if (getcastledata( .@map$,(.@i+10) )) + guardian .@map$, .@x[.@i], .@y[.@i], .@name$[.@i], .@mob_id[.@i], "Kafra Staff#"+ strnpcinfo(4) +"::OnGuardianDied",.@i; + } +} + +// Guild Dungeon Entrances +//============================================================ +- script lever2_TE -1,{ + .@guild_id = getcastledata( strnpcinfo(4),1 ); + if (.@guild_id == 0) { + mes "[ A penetrative voice ]"; + mes "You, who overcame hardships and became the master of courage, shall find another path of trials... '"; + close; + } + mes "[ A penetrative voice ]"; + mes "Only the master of courage shall be put to the test.'"; + next; + mes " "; + mes "There is a small lever. Do you want to pull it?"; + next; + if (select( "Pull it.","Do not pull it." ) == 1) { + if (.@guild_id == getcharid(2)) { + .@npc_map$ = strnpcinfo(4); + if (compare( .@npc_map$,"te_alde" )) { + .@map$ = "teg_dun02"; + if (.@npc_map$ == "te_aldecas1") setarray .@coord[0],32,122; + else if (.@npc_map$ == "te_aldecas2") setarray .@coord[0],79,30; + else if (.@npc_map$ == "te_aldecas3") setarray .@coord[0],165,38; + else if (.@npc_map$ == "te_aldecas4") setarray .@coord[0],160,148; + else if (.@npc_map$ == "te_aldecas5") setarray .@coord[0],103,169; + } + else { + .@map$ = "teg_dun01"; + if (.@npc_map$ == "te_prtcas01") setarray .@coord[0],28,251; + else if (.@npc_map$ == "te_prtcas02") setarray .@coord[0],164,268; + else if (.@npc_map$ == "te_prtcas03") setarray .@coord[0],164,179; + else if (.@npc_map$ == "te_prtcas04") setarray .@coord[0],268,203; + else if (.@npc_map$ == "te_prtcas05") setarray .@coord[0],199,28; + } + warp .@map$,.@coord[0],.@coord[1]; + } + else { + mes " "; + mes "Nothing happened."; + close; + } + } + end; +} + +// Treasure Room Exit +//============================================================ +- script lever1_TE -1,{ + mes " "; + mes "There is a small lever. Do you want to pull it?"; + next; + if ( select( "Pull it.","Do not pull it." ) == 1 ) { + .@map$ = strnpcinfo(4); + if (.@map$ == "te_aldecas1") setarray .@coord[0],218,176; + else if (.@map$ == "te_aldecas2") setarray .@coord[0],51,179; + else if (.@map$ == "te_aldecas3") setarray .@coord[0],110,119; + else if (.@map$ == "te_aldecas4") setarray .@coord[0],67,117; + else if (.@map$ == "te_aldecas5") setarray .@coord[0],51,179; + else if (.@map$ == "te_prtcas01") setarray .@coord[0],112,183; + else if (.@map$ == "te_prtcas02") setarray .@coord[0],94,62; + else if (.@map$ == "te_prtcas03") setarray .@coord[0],51,101; + else if (.@map$ == "te_prtcas04") setarray .@coord[0],259,265; + else if (.@map$ == "te_prtcas05") setarray .@coord[0],36,38; + warp .@map$,.@coord[0],.@coord[1]; + } + end; +} + +// Treasure Room Spawn Template +//============================================================ +- script treasure_TE -1,{ +OnClock0001:// Spawn Treasure Chests based on castle economy. + .@map$ = strnpcinfo(4); + if (.@map$ == "") end; + if (getcastledata(.@map$,1) == 0) end; + + killmonster .@map$, strnpcinfo(0)+"::OnTreasureDied"; + if (getcastledata(.@map$,4)) {// num invest in economy today + .@economy = getcastledata(.@map$,2) + getcastledata(.@map$,4) + (rand(2) && getgdskilllv(getcastledata(.@map$,1),10014)); + .@economy = ( .@economy > 100 ) ? 100 : .@economy; + setcastledata .@map$,2,.@economy; + setcastledata .@map$,4,0; + } + if (getcastledata(.@map$,5)) {// num invest in defense today + .@defense = getcastledata(.@map$,3) + getcastledata(.@map$,5); + .@defense = ( .@defense > 100 ) ? 100 : .@defense; + setcastledata .@map$,3,.@defense; + setcastledata .@map$,5,0; + } + + if (.@map$ == "te_aldecas1") { + setarray .@data[0],// , , + 2452, 115,226,// TREASURE_BOX_TE + 2458, 122,226,// TREASURE_BOX_TE_6 + 2452, 115,219, + 2458, 122,219, + 2452, 116,225, + 2458, 117,225, + 2452, 118,225, + 2458, 119,225, + 2452, 120,225, + 2458, 121,225, + 2452, 121,224, + 2458, 121,223, + 2452, 121,222, + 2458, 121,221, + 2452, 121,220, + 2458, 120,220, + 2452, 119,220, + 2458, 118,220, + 2452, 117,220, + 2458, 116,220, + 2452, 116,221, + 2458, 116,222, + 2452, 116,223, + 2458, 116,224; + } + else if (.@map$ == "te_aldecas2") { + setarray .@data[0], + 2452, 134,231,// TREASURE_BOX_TE + 2459, 135,231,// TREASURE_BOX_TE_7 + 2452, 135,230, + 2459, 134,230, + 2452, 132,233, + 2459, 133,233, + 2452, 134,233, + 2459, 135,233, + 2452, 136,233, + 2459, 137,233, + 2452, 137,232, + 2459, 137,231, + 2452, 137,230, + 2459, 137,229, + 2452, 137,228, + 2459, 136,228, + 2452, 135,228, + 2459, 134,228, + 2452, 133,228, + 2459, 132,228, + 2452, 132,229, + 2459, 132,230, + 2452, 132,231, + 2459, 132,232; + } + else if (.@map$ == "te_aldecas3") { + setarray .@data[0], + 2452, 224,269,// TREASURE_BOX_TE + 2460, 225,269,// TREASURE_BOX_TE_8 + 2452, 225,268, + 2460, 224,268, + 2452, 222,271, + 2460, 223,271, + 2452, 224,271, + 2460, 225,271, + 2452, 226,271, + 2460, 227,271, + 2452, 227,270, + 2460, 227,269, + 2452, 227,268, + 2460, 227,267, + 2452, 227,266, + 2460, 226,266, + 2452, 225,266, + 2460, 224,266, + 2452, 223,266, + 2460, 222,266, + 2452, 222,267, + 2460, 222,268, + 2452, 222,269, + 2460, 222,270; + } + else if (.@map$ == "te_aldecas4") { + setarray .@data[0], + 2452, 84,13,// TREASURE_BOX_TE + 2461, 85,13,// TREASURE_BOX_TE_9 + 2452, 85,12, + 2461, 84,12, + 2452, 82,15, + 2461, 83,15, + 2452, 84,15, + 2461, 85,15, + 2452, 86,15, + 2461, 87,15, + 2452, 87,14, + 2461, 87,13, + 2452, 87,12, + 2461, 87,11, + 2452, 87,10, + 2461, 86,10, + 2452, 85,10, + 2461, 84,10, + 2452, 83,10, + 2461, 82,10, + 2452, 82,11, + 2461, 82,12, + 2452, 82,13, + 2461, 82,14; + } + else if (.@map$ == "te_aldecas5") { + setarray .@data[0], + 2452, 62,12,// TREASURE_BOX_TE + 2462, 62,11,// TREASURE_BOX_TE_10 + 2452, 61,11, + 2462, 59,14, + 2452, 60,14, + 2462, 61,14, + 2452, 62,14, + 2462, 63,14, + 2452, 64,14, + 2462, 64,13, + 2452, 64,12, + 2462, 64,11, + 2452, 64,10, + 2462, 64,9, + 2452, 63,9, + 2462, 62,9, + 2452, 61,9, + 2462, 60,9, + 2452, 59,9, + 2462, 59,10, + 2452, 59,11, + 2462, 59,12, + 2452, 59,13; + } + else if (.@map$ == "te_prtcas01") { + setarray .@data[0], + 2452, 8,211,// TREASURE_BOX_TE + 2453, 9,211,// TREASURE_BOX_TE_1 + 2452, 10,211, + 2453, 11,211, + 2452, 12,211, + 2453, 13,211, + 2452, 13,209, + 2453, 12,209, + 2452, 11,209, + 2453, 10,209, + 2452, 9,209, + 2453, 8,209, + 2452, 8,207, + 2453, 9,207, + 2452, 10,207, + 2453, 11,207, + 2452, 12,207, + 2453, 13,207, + 2452, 13,206, + 2453, 12,206, + 2452, 11,206, + 2453, 10,206, + 2452, 9,206, + 2453, 8,206; + } + else if (.@map$ == "te_prtcas02") { + setarray .@data[0], + 2452, 201,228,// TREASURE_BOX_TE + 2454, 202,228,// TREASURE_BOX_TE_2 + 2452, 202,227, + 2454, 201,227, + 2452, 199,230, + 2454, 200,230, + 2452, 201,230, + 2454, 202,230, + 2452, 203,230, + 2454, 204,230, + 2452, 204,229, + 2454, 204,228, + 2452, 204,227, + 2454, 204,226, + 2452, 204,225, + 2454, 203,225, + 2452, 202,225, + 2454, 201,225, + 2452, 200,225, + 2454, 199,225, + 2452, 199,226, + 2454, 199,227, + 2452, 199,228, + 2454, 199,229; + } + else if (.@map$ == "te_prtcas03") { + setarray .@data[0], + 2452, 187,132,// TREASURE_BOX_TE + 2455, 188,132,// TREASURE_BOX_TE_3 + 2452, 188,131, + 2455, 187,131, + 2452, 185,134, + 2455, 186,134, + 2452, 187,134, + 2455, 188,134, + 2452, 189,134, + 2455, 190,134, + 2452, 190,133, + 2455, 190,132, + 2452, 190,131, + 2455, 190,130, + 2452, 190,129, + 2455, 189,129, + 2452, 188,129, + 2455, 187,129, + 2452, 186,129, + 2455, 185,129, + 2452, 185,130, + 2455, 185,131, + 2452, 185,132, + 2455, 185,133; + } + else if (.@map$ == "te_prtcas04") { + setarray .@data[0], + 2452, 269,162,// TREASURE_BOX_TE + 2456, 270,162,// TREASURE_BOX_TE_4 + 2452, 270,161, + 2456, 269,161, + 2452, 267,164, + 2456, 268,164, + 2452, 269,164, + 2456, 270,164, + 2452, 271,164, + 2456, 272,164, + 2452, 272,163, + 2456, 272,162, + 2452, 272,161, + 2456, 272,160, + 2452, 272,159, + 2456, 271,159, + 2452, 270,159, + 2456, 269,159, + 2452, 268,159, + 2456, 267,159, + 2452, 267,160, + 2456, 267,161, + 2452, 267,162, + 2456, 267,163; + } + else if (.@map$ == "te_prtcas05") { + setarray .@data[0], + 2452, 275,178,// TREASURE_BOX_TE + 2457, 276,178,// TREASURE_BOX_TE_5 + 2452, 276,177, + 2457, 275,177, + 2452, 273,180, + 2457, 274,180, + 2452, 275,180, + 2457, 276,180, + 2452, 277,180, + 2457, 278,180, + 2452, 278,179, + 2457, 278,178, + 2452, 278,177, + 2457, 278,176, + 2452, 278,175, + 2457, 277,175, + 2452, 276,175, + 2457, 275,175, + 2452, 274,175, + 2457, 273,175, + 2452, 273,176, + 2457, 273,177, + 2452, 273,178, + 2457, 273,179; + } + .@treasure_num = ( 4 + ( getcastledata(.@map$,2) /5 ) ) *3;// x3 <-> data[] size + for ( .@i = 0; .@i < 72 && .@treasure_num > .@i; .@i += 3 )// nb. [4;24] chests + monster .@map$, .@data[.@i+1], .@data[.@i+2],"Treasure Chest", .@data[.@i],1, strnpcinfo(0)+"::OnTreasureDied"; + +OnTreasureDied: + end; +} + +// Flag Template +//============================================================ +function script F_flag_woe_TE { + .@guild_id = getcastledata( getarg(1),1 ); + if (.@guild_id == 0) { + mes "[ Decree of Sacred Kingdom of Rune-Midgarts ]"; + mes ""; + mes "1. The Treaty of Sacred Kingdom of Rune-Midgarts"; + mes "and the Republic of Schwaltzvalt"; + mes "hereby declares that this is a fortress"; + mes "with no legal ownership."; + mes ""; + mes "2. However, those who overcome hardships"; + mes "and destroy Emperiums"; + mes "shall be endowed with the ownership"; + mes "of this fortress,"; + mes "authorized by the King."; + close; + } + if (.@guild_id == getcharid(2) && getarg(0)) { + mes "[ A penetrative voice ]"; + mes "Come, all ye brave..."; + mes "Do you wish to return with honor?"; + next; + if (select( "Return to the fortress.","Forget it." ) == 1) { + if (CanParticipatewoeTE() == 0) { + mes "Tertiary job class and users with expanded levels are not allowed to participate in Siege Battles TE."; + close; + } + if (getcastledata( getarg(1),1 ) == getcharid(2)) { + // ResetBuffLowLevelSiege; + warp getarg(1),getarg(2),getarg(3); + } + end; + } + } + .@guildname$ = getguildname(.@guild_id); + .@guildmaster$ = getguildmaster(.@guild_id); + mes "[ Decree of Sacred Kingdom of Rune-Midgarts ]"; + mes ""; + mes "1. The Treaty of Sacred Kingdom of Rune-Midgarts"; + mes "and the Republic of Schwaltzvalt hereby declares that"; + mes "hereby declares that this place belongs to^ff0000 " + .@guildname$; + mes "^000000 guild."; + mes ""; + mes "2. The master of ^ff0000" + .@guildname$ + "^000000 guild is"; + mes "^ff0000" + .@guildmaster$ + "^000000, and"; + mes "whoever wishes to make objections to this"; + mes "shall raise his sword and uphold his honor."; + close; +} + +- script simple_info_TE -1,{ + callfunc( "F_flag_woe_TE",0,strnpcinfo(4) ); +OnInit: + if (strnpcinfo(4) != "") + flagemblem getcastledata( strnpcinfo(4),1 ); + end; +} + +- script flag_te GUILD_FLAG,{ + end; +OnInit: + if (strnpcinfo(2) != "") + flagemblem getcastledata( strnpcinfo(2),1 ); + end; +} diff --git a/npc/re/woe_te/te_alde_cas01.txt b/npc/re/woe_te/te_alde_cas01.txt new file mode 100644 index 0000000000..7ef5067ea4 --- /dev/null +++ b/npc/re/woe_te/te_alde_cas01.txt @@ -0,0 +1,72 @@ +//===== rAthena Script ======================================= +//= War of Emperium TE (Al De Baran) - Kafragarten 1 +//===== Description: ========================================= +//= [Official Conversion] +//= NPCs that relate to Al De Baran Training Guild Castle 1 +//===== Changelogs: ========================================== +//= 1.0 First Version. [Capuche] +//============================================================ + +// Simple flags (no message) +//============================================================ +alde_gld,222,186,4 duplicate(flag_te) Glaris#te_aldecas1 GUILD_FLAG + +// Simple infos flags +//============================================================ +te_aldecas1,30,248,4 duplicate(simple_info_TE) Glaris#1 GUILD_FLAG +te_aldecas1,37,248,4 duplicate(simple_info_TE) Glaris#2 GUILD_FLAG +te_aldecas1,37,246,4 duplicate(simple_info_TE) Glaris#3 GUILD_FLAG +te_aldecas1,30,246,4 duplicate(simple_info_TE) Glaris#4 GUILD_FLAG +te_aldecas1,95,80,2 duplicate(simple_info_TE) Glaris#5 GUILD_FLAG +te_aldecas1,90,09,2 duplicate(simple_info_TE) Glaris#6 GUILD_FLAG +te_aldecas1,62,75,2 duplicate(simple_info_TE) Glaris#7 GUILD_FLAG +te_aldecas1,66,75,2 duplicate(simple_info_TE) Glaris#8 GUILD_FLAG +te_aldecas1,70,75,2 duplicate(simple_info_TE) Glaris#9 GUILD_FLAG +te_aldecas1,74,75,2 duplicate(simple_info_TE) Glaris#10 GUILD_FLAG +te_aldecas1,62,64,2 duplicate(simple_info_TE) Glaris#11 GUILD_FLAG +te_aldecas1,66,64,2 duplicate(simple_info_TE) Glaris#12 GUILD_FLAG +te_aldecas1,70,64,2 duplicate(simple_info_TE) Glaris#13 GUILD_FLAG +te_aldecas1,74,64,2 duplicate(simple_info_TE) Glaris#14 GUILD_FLAG +te_aldecas1,74,64,2 duplicate(simple_info_TE) Glaris#15 GUILD_FLAG +te_aldecas1,203,150,4 duplicate(simple_info_TE) Glaris#16 GUILD_FLAG +te_aldecas1,210,150,4 duplicate(simple_info_TE) Glaris#17 GUILD_FLAG + +// Infos flags + warp guildmaster inside +//============================================================ +te_alde_gld,61,87,6 script Glaris#18 GUILD_FLAG,{ + callfunc( "F_flag_woe_TE", 1, "te_aldecas1" ,218,170 ); +OnFlagTEGlaris: + flagemblem getcastledata( "te_aldecas1",1 ); + end; +} +te_alde_gld,61,79,6 duplicate(Glaris#18) Glaris#19 GUILD_FLAG +te_alde_gld,45,87,8 duplicate(Glaris#18) Glaris#20 GUILD_FLAG +te_alde_gld,51,87,8 duplicate(Glaris#18) Glaris#21 GUILD_FLAG + +// Guild kafra +//============================================================ +te_aldecas1,218,170,0 duplicate(Kafra_Staff_TE) Kafra Staff#te_aldecas1 4_F_KAFRA1 + +// Lever 1 (warp outside treasure) +//============================================================ +te_aldecas1,123,223,0 duplicate(lever1_TE) #lever1_te_aldecas1 HIDDEN_NPC + +// Lever 2 (warp to dungeon) +//============================================================ +te_aldecas1,211,181,0 duplicate(lever2_TE) #lever2_te_aldecas1 HIDDEN_NPC + +// Invest eco / def / guardian +//============================================================ +te_aldecas1,218,175,0 duplicate(invest_TE) Clode 1_M_JOBTESTER + +// Treasure spawn +//============================================================ +te_aldecas1,1,1,0 duplicate(treasure_TE) treasure_TE#te_aldecas1 -1 + +// Rental items npc +//============================================================ +te_alde_gld,45,84,3 duplicate(rental_woe_TE) Rental Manager#ag01 4_F_HUWOMAN + +// Manager woe +//============================================================ +te_aldecas1,1,1,0 duplicate(Manager_TE) Manager_TE#Glaris -1 diff --git a/npc/re/woe_te/te_alde_cas02.txt b/npc/re/woe_te/te_alde_cas02.txt new file mode 100644 index 0000000000..7e1a9e279e --- /dev/null +++ b/npc/re/woe_te/te_alde_cas02.txt @@ -0,0 +1,67 @@ +//===== rAthena Script ======================================= +//= War of Emperium (Al De Baran) - Kafragarten 2 +//===== Description: ========================================= +//= [Official Conversion] +//= NPCs that relate to Al De Baran Training Guild Castle 2 +//===== Changelogs: ========================================== +//= 1.0 First Version. [Capuche] +//============================================================ + +// Simple flags (no message) +//============================================================ +alde_gld,220,184,4 duplicate(flag_te) Defolty#te_aldecas2 GUILD_FLAG + +// Simple infos flags +//============================================================ +te_aldecas2,82,71,2 duplicate(simple_info_TE) Defolty#1 GUILD_FLAG +te_aldecas2,67,30,2 duplicate(simple_info_TE) Defolty#2 GUILD_FLAG +te_aldecas2,183,140,2 duplicate(simple_info_TE) Defolty#3 GUILD_FLAG +te_aldecas2,212,152,2 duplicate(simple_info_TE) Defolty#4 GUILD_FLAG +te_aldecas2,108,39,2 duplicate(simple_info_TE) Defolty#5 GUILD_FLAG +te_aldecas2,57,213,2 duplicate(simple_info_TE) Defolty#6 GUILD_FLAG +te_aldecas2,103,53,2 duplicate(simple_info_TE) Defolty#7 GUILD_FLAG +te_aldecas2,73,53,2 duplicate(simple_info_TE) Defolty#8 GUILD_FLAG +te_aldecas2,63,41,2 duplicate(simple_info_TE) Defolty#9 GUILD_FLAG +te_aldecas2,229,6,2 duplicate(simple_info_TE) Defolty#10 GUILD_FLAG +te_aldecas2,230,40,2 duplicate(simple_info_TE) Defolty#11 GUILD_FLAG +te_aldecas2,197,40,2 duplicate(simple_info_TE) Defolty#12 GUILD_FLAG +te_aldecas2,32,213,2 duplicate(simple_info_TE) Defolty#13 GUILD_FLAG +te_aldecas2,121,29,2 duplicate(simple_info_TE) Defolty#14 GUILD_FLAG + +// Infos flags + warp guildmaster inside +//============================================================ +te_alde_gld,99,251,4 script Defolty#15 GUILD_FLAG,{ + callfunc( "F_flag_woe_TE", 1, "te_aldecas2" ,84,74 ); +OnFlagTEDefolty: + flagemblem getcastledata( "te_aldecas2",1 ); + end; +} +te_alde_gld,99,244,4 duplicate(Defolty#15) Defolty#16 GUILD_FLAG + +// Guild kafra +//============================================================ +te_aldecas2,84,74,0 duplicate(Kafra_Staff_TE) Kafra Staff#te_aldecas2 4_F_KAFRA1 + +// Lever 1 (warp outside treasure) +//============================================================ +te_aldecas2,139,234,0 duplicate(lever1_TE) #lever1_te_aldecas2 HIDDEN_NPC + +// Lever 2 (warp to dungeon) +//============================================================ +te_aldecas2,194,136,0 duplicate(lever2_TE) #lever2_te_aldecas2 HIDDEN_NPC + +// Invest eco / def / guardian +//============================================================ +te_aldecas2,78,74,0 duplicate(invest_TE) Lares 1_M_JOBTESTER + +// Treasure spawn +//============================================================ +te_aldecas2,1,1,0 duplicate(treasure_TE) treasure_TE#te_aldecas2 -1 + +// Rental items npc +//============================================================ +te_alde_gld,99,252,3 duplicate(rental_woe_TE) Rental Manager#ag02 4_F_HUWOMAN + +// Manager woe +//============================================================ +te_aldecas2,1,1,0 duplicate(Manager_TE) Manager_TE#Defolty -1 diff --git a/npc/re/woe_te/te_alde_cas03.txt b/npc/re/woe_te/te_alde_cas03.txt new file mode 100644 index 0000000000..c8d0e77f1f --- /dev/null +++ b/npc/re/woe_te/te_alde_cas03.txt @@ -0,0 +1,70 @@ +//===== rAthena Script ======================================= +//= War of Emperium (Al De Baran) - Kafragarten 3 +//===== Description: ========================================= +//= [Official Conversion] +//= NPCs that relate to Al De Baran Training Guild Castle 3 +//===== Changelogs: ========================================== +//= 1.0 First Version. [Capuche] +//============================================================ + +// Simple flags (no message) +//============================================================ +alde_gld,218,182,4 duplicate(flag_te) Sorin#te_aldecas3 GUILD_FLAG + +// Simple infos flags +//============================================================ +te_aldecas3,176,175,2 duplicate(simple_info_TE) Sorin#1 GUILD_FLAG +te_aldecas3,77,115,2 duplicate(simple_info_TE) Sorin#2 GUILD_FLAG +te_aldecas3,77,215,2 duplicate(simple_info_TE) Sorin#3 GUILD_FLAG +te_aldecas3,112,107,2 duplicate(simple_info_TE) Sorin#4 GUILD_FLAG +te_aldecas3,112,117,2 duplicate(simple_info_TE) Sorin#5 GUILD_FLAG +te_aldecas3,69,71,2 duplicate(simple_info_TE) Sorin#6 GUILD_FLAG +te_aldecas3,85,62,6 duplicate(simple_info_TE) Sorin#7 GUILD_FLAG +te_aldecas3,108,60,2 duplicate(simple_info_TE) Sorin#8 GUILD_FLAG +te_aldecas3,121,73,2 duplicate(simple_info_TE) Sorin#9 GUILD_FLAG +te_aldecas3,121,73,2 duplicate(simple_info_TE) Sorin#10 GUILD_FLAG +te_aldecas3,75,102,2 duplicate(simple_info_TE) Sorin#11 GUILD_FLAG +te_aldecas3,199,169,2 duplicate(simple_info_TE) Sorin#12 GUILD_FLAG +te_aldecas3,181,179,2 duplicate(simple_info_TE) Sorin#13 GUILD_FLAG +te_aldecas3,192,44,2 duplicate(simple_info_TE) Sorin#14 GUILD_FLAG +te_aldecas3,208,145,2 duplicate(simple_info_TE) Sorin#15 GUILD_FLAG +te_aldecas3,207,75,2 duplicate(simple_info_TE) Sorin#16 GUILD_FLAG +te_aldecas3,96,62,2 duplicate(simple_info_TE) Sorin#17 GUILD_FLAG + +// Infos flags + warp guildmaster inside +//============================================================ +te_alde_gld,146,82,0 script Sorin#18 GUILD_FLAG,{ + callfunc( "F_flag_woe_TE",1,"te_aldecas3",118,76 ); +OnFlagTESorin: + flagemblem getcastledata( "te_aldecas3",1 ); + end; +} +te_alde_gld,138,83,0 duplicate(Sorin#18) Sorin#19 GUILD_FLAG + +// Guild kafra +//============================================================ +te_aldecas3,118,76,0 duplicate(Kafra_Staff_TE) Kafra Staff#te_aldecas3 4_F_KAFRA1 + +// Lever 1 (warp outside treasure) +//============================================================ +te_aldecas3,219,269,0 duplicate(lever1_TE) #lever1_te_aldecas3 HIDDEN_NPC + +// Lever 2 (warp to dungeon) +//============================================================ +te_aldecas3,200,177,0 duplicate(lever2_TE) #lever2_te_aldecas3 HIDDEN_NPC + +// Invest eco / def / guardian +//============================================================ +te_aldecas3,110,118,0 duplicate(invest_TE) Valerian 1_M_JOBTESTER + +// Treasure spawn +//============================================================ +te_aldecas3,1,1,0 duplicate(treasure_TE) treasure_TE#te_aldecas3 -1 + +// Rental items npc +//============================================================ +te_alde_gld,137,84,3 duplicate(rental_woe_TE) Rental Manager#ag03 4_F_HUWOMAN + +// Manager woe +//============================================================ +te_aldecas3,1,1,0 duplicate(Manager_TE) Manager_TE#Sorin -1 diff --git a/npc/re/woe_te/te_alde_cas04.txt b/npc/re/woe_te/te_alde_cas04.txt new file mode 100644 index 0000000000..e147ff90be --- /dev/null +++ b/npc/re/woe_te/te_alde_cas04.txt @@ -0,0 +1,72 @@ +//===== rAthena Script ======================================= +//= War of Emperium (Al De Baran) - Kafragarten 4 +//===== Description: ========================================= +//= [Official Conversion] +//= NPCs that relate to Al De Baran Training Guild Castle 4 +//===== Changelogs: ========================================== +//= 1.0 First Version. [Capuche] +//============================================================ + +// Simple flags (no message) +//============================================================ +alde_gld,216,180,4 duplicate(flag_te) Bennit#te_aldecas4 GUILD_FLAG + +// Simple infos flags +//============================================================ +te_aldecas4,167,61,2 duplicate(simple_info_TE) Bennit#1 GUILD_FLAG +te_aldecas4,164,90,2 duplicate(simple_info_TE) Bennit#2 GUILD_FLAG +te_aldecas4,129,193,2 duplicate(simple_info_TE) Bennit#3 GUILD_FLAG +te_aldecas4,112,206,2 duplicate(simple_info_TE) Bennit#4 GUILD_FLAG +te_aldecas4,113,212,2 duplicate(simple_info_TE) Bennit#5 GUILD_FLAG +te_aldecas4,77,117,2 duplicate(simple_info_TE) Bennit#6 GUILD_FLAG +te_aldecas4,186,42,2 duplicate(simple_info_TE) Bennit#7 GUILD_FLAG +te_aldecas4,30,69,2 duplicate(simple_info_TE) Bennit#8 GUILD_FLAG +te_aldecas4,55,97,2 duplicate(simple_info_TE) Bennit#9 GUILD_FLAG +te_aldecas4,45,98,2 duplicate(simple_info_TE) Bennit#10 GUILD_FLAG +te_aldecas4,33,116,2 duplicate(simple_info_TE) Bennit#11 GUILD_FLAG +te_aldecas4,130,180,2 duplicate(simple_info_TE) Bennit#12 GUILD_FLAG +te_aldecas4,129,193,2 duplicate(simple_info_TE) Bennit#13 GUILD_FLAG +te_aldecas4,33,107,2 duplicate(simple_info_TE) Bennit#14 GUILD_FLAG +te_aldecas4,133,220,2 duplicate(simple_info_TE) Bennit#15 GUILD_FLAG +te_aldecas4,169,22,2 duplicate(simple_info_TE) Bennit#16 GUILD_FLAG +te_aldecas4,169,15,2 duplicate(simple_info_TE) Bennit#17 GUILD_FLAG + +// Infos flags + warp guildmaster inside +//============================================================ +te_alde_gld,239,246,2 script Bennit#18 GUILD_FLAG,{ + // callfunc( "F_flag_woe_TE",1,"te_aldecas1",218,170 ); + callfunc( "F_flag_woe_TE",1,"te_aldecas4",45,88 ); +OnFlagTEBennit: + flagemblem getcastledata( "te_aldecas4",1 ); + end; +} +// te_alde_gld,45,87,8 duplicate(Bennit#18) Bennit#19 GUILD_FLAG +te_alde_gld,239,239,2 duplicate(Bennit#18) Bennit#20 GUILD_FLAG + +// Guild kafra +//============================================================ +te_aldecas4,45,88,0 duplicate(Kafra_Staff_TE) Kafra Staff#te_aldecas4 4_F_KAFRA1 + +// Lever 1 (warp outside treasure) +//============================================================ +te_aldecas4,79,15,0 duplicate(lever1_TE) #lever1_te_aldecas4 HIDDEN_NPC + +// Lever 2 (warp to dungeon) +//============================================================ +te_aldecas4,76,64,0 duplicate(lever2_TE) #lever2_te_aldecas4 HIDDEN_NPC + +// Invest eco / def / guardian +//============================================================ +te_aldecas4,67,116,0 duplicate(invest_TE) Alpores 1_M_JOBTESTER + +// Treasure spawn +//============================================================ +te_aldecas4,1,1,0 duplicate(treasure_TE) treasure_TE#te_aldecas4 -1 + +// Rental items npc +//============================================================ +te_alde_gld,240,245,3 duplicate(rental_woe_TE) Rental Manager#ag04 4_F_HUWOMAN + +// Manager woe +//============================================================ +te_aldecas4,1,1,0 duplicate(Manager_TE) Manager_TE#Bennit -1 diff --git a/npc/re/woe_te/te_alde_cas05.txt b/npc/re/woe_te/te_alde_cas05.txt new file mode 100644 index 0000000000..a483b9ed66 --- /dev/null +++ b/npc/re/woe_te/te_alde_cas05.txt @@ -0,0 +1,71 @@ +//===== rAthena Script ======================================= +//= War of Emperium (Al De Baran) - Kafragarten 5 +//===== Description: ========================================= +//= [Official Conversion] +//= NPCs that relate to Al De Baran Training Guild Castle 5 +//===== Changelogs: ========================================== +//= 1.0 First Version. [Capuche] +//============================================================ + +// Simple flags (no message) +//============================================================ +alde_gld,214,178,4 duplicate(flag_te) W#te_aldecas5 GUILD_FLAG + +// Simple infos flags +//============================================================ +te_aldecas5,170,85,2 duplicate(simple_info_TE) W#1 GUILD_FLAG +te_aldecas5,142,212,2 duplicate(simple_info_TE) W#2 GUILD_FLAG +te_aldecas5,149,196,2 duplicate(simple_info_TE) W#3 GUILD_FLAG +te_aldecas5,41,180,2 duplicate(simple_info_TE) W#4 GUILD_FLAG +te_aldecas5,38,201,2 duplicate(simple_info_TE) W#5 GUILD_FLAG +te_aldecas5,65,182,2 duplicate(simple_info_TE) W#6 GUILD_FLAG +te_aldecas5,65,205,2 duplicate(simple_info_TE) W#7 GUILD_FLAG +te_aldecas5,10,218,2 duplicate(simple_info_TE) W#8 GUILD_FLAG +te_aldecas5,10,218,2 duplicate(simple_info_TE) W#9 GUILD_FLAG +te_aldecas5,164,201,2 duplicate(simple_info_TE) W#10 GUILD_FLAG +te_aldecas5,14,117,2 duplicate(simple_info_TE) W#11 GUILD_FLAG +te_aldecas5,10,225,2 duplicate(simple_info_TE) W#12 GUILD_FLAG +te_aldecas5,187,59,2 duplicate(simple_info_TE) W#13 GUILD_FLAG +te_aldecas5,154,51,2 duplicate(simple_info_TE) W#14 GUILD_FLAG +te_aldecas5,22,211,2 duplicate(simple_info_TE) W#15 GUILD_FLAG +te_aldecas5,150,202,2 duplicate(simple_info_TE) W#16 GUILD_FLAG + +// Infos flags + warp guildmaster inside +//============================================================ +te_alde_gld,265,93,6 script W#17 GUILD_FLAG,{ + // callfunc( "F_flag_woe_TE",1,"te_aldecas1",218,170 ); + callfunc( "F_flag_woe_TE",1,"te_aldecas5",31,190 ); +OnFlagTEW: + flagemblem getcastledata( "te_aldecas5",1 ); + end; +} +// te_alde_gld,45,87,8 duplicate(W#17) Glaris GUILD_FLAG +te_alde_gld,265,87,6 duplicate(W#17) W#18 GUILD_FLAG + +// Guild kafra +//============================================================ +te_aldecas5,31,190,0 duplicate(Kafra_Staff_TE) Kafra Staff#te_aldecas5 4_F_KAFRA1 + +// Lever 1 (warp outside treasure) +//============================================================ +te_aldecas5,68,13,0 duplicate(lever1_TE) #lever1_te_aldecas5 HIDDEN_NPC + +// Lever 2 (warp to dungeon) +//============================================================ +te_aldecas5,22,205,0 duplicate(lever2_TE) #lever2_te_aldecas5 HIDDEN_NPC + +// Invest eco / def / guardian +//============================================================ +te_aldecas5,51,179,0 duplicate(invest_TE) Anpere 1_M_JOBTESTER + +// Treasure spawn +//============================================================ +te_aldecas5,1,1,0 duplicate(treasure_TE) treasure_TE#te_aldecas5 -1 + +// Rental items npc +//============================================================ +te_alde_gld,264,94,3 duplicate(rental_woe_TE) Rental Manager#ag05 4_F_HUWOMAN + +// Manager woe +//============================================================ +te_aldecas5,1,1,0 duplicate(Manager_TE) Manager_TE#W -1 diff --git a/npc/re/woe_te/te_controller.txt b/npc/re/woe_te/te_controller.txt new file mode 100644 index 0000000000..efe755458a --- /dev/null +++ b/npc/re/woe_te/te_controller.txt @@ -0,0 +1,37 @@ +//===== rAthena Script ======================================= +//= War of Emperium - Auto-Start +//===== Description: ========================================= +//= Auto-start for War of Emperium TE. +//= For instructions, see doc/woe_time_explanation.txt. +//===== Changelogs: ========================================== +//= 1.0 First version. [Capuche] +//============================================================ + +- script timer_woe_TE -1,{ + end; + +OnClock2100://start time for Tues(2), Thurs(4) +OnClock2300://end time for Tues(2), Thurs(4) +OnClock1600://start time for Sat(6) +OnClock1800://end time for Sat(6) + +OnAgitInit: + // starting time checks + if((gettime(4)==2) && (gettime(3)>=21 && gettime(3)<23) || + (gettime(4)==4) && (gettime(3)>=21 && gettime(3)<23) || + (gettime(4)==6) && (gettime(3)>=16 && gettime(3)<18)) { + if (!agitcheck()) + agitstart; + end; + } + + // end time checks + if ((gettime(4)==2) && (gettime(3)==23) || + (gettime(4)==4) && (gettime(3)==23) || + (gettime(4)==6) && (gettime(3)==18)) { + if (agitcheck()) + agitend; + end; + } + end; +} diff --git a/npc/re/woe_te/te_gmnpc.txt b/npc/re/woe_te/te_gmnpc.txt new file mode 100644 index 0000000000..d2fe2f1fed --- /dev/null +++ b/npc/re/woe_te/te_gmnpc.txt @@ -0,0 +1,60 @@ +// GM NPC +sec_in02,27,25,3 script Woe Status 4_M_KNIGHT_BLACK,{ + // .@hour1 = OpenHour_SiegeMode 1 3600 + // .@hour2 = OpenHour_SiegeMode 2 3600 + // .@hour3 = OpenHour_SiegeMode 3 3600 + mes "WOE FE: " + .@hour1; + mes "WOE SE: " + .@hour2; + mes "WOE TE: " + .@hour3; + close; +} + +prt_gld,1,4,0 script #Enterance Button prt CLEAR_NPC,{ + mes "password"; + next; + if ( callfunc( "F_GM_NPC", 1854,0, 0,9000 ) < 1 ) { + mes "That's not right"; + close; + } + mes "What do you want to do with the Gloria-bound warp?"; + next; + switch( select( "Open it","Close it","Cancel","Rental item provided" ) ) { + case 1: + mes "Opening the warp."; + enablenpc "to_gloria"; + close; + case 2: + mes "Closing the warp."; + disablenpc "to_gloria"; + close; + case 3: + end; + case 4: + mes "You have 300 seconds."; + rentitem 13083,300;// TE_Woe_Knife + close; + } +} + +alde_gld,1,4,0 script #Enterance Button ald CLEAR_NPC,{ + mes "password"; + next; + if ( callfunc( "F_GM_NPC", 1854,0, 0,9000 ) < 1 ) { + mes "That's not right"; + close; + } + mes "What do you want to do with the Kafragarten-bound warp?"; + next; + switch( select( "Open it","Close it","Cancel" ) ) { + case 1: + mes "Opening the warp."; + enablenpc "to_kafragarten"; + close; + case 2: + mes "Closing the warp."; + disablenpc "to_kafragarten"; + close; + case 3: + end; + } +} diff --git a/npc/re/woe_te/te_guides.txt b/npc/re/woe_te/te_guides.txt new file mode 100644 index 0000000000..95e2dfce37 --- /dev/null +++ b/npc/re/woe_te/te_guides.txt @@ -0,0 +1,182 @@ +//===== rAthena Script ======================================= +//= Guides WoE TE +//===== Description: ========================================= +//= [Official Conversion] +//= NPC Guide for WoE TE +//===== Changelogs: ========================================== +//= 1.0 First Version. [Capuche] +//============================================================ + +prt_gld,118,151,4 script Guide in Gloria#tes01 8W_SOLDIER,{ + mes "[Guide Soldier]"; + mes "May the endless glory be with the Kingdom of Rune-Midgarts and its seven royal families!"; + mes "Welcome to Gloria, the fortress in Siege Battle TE. We provide services in cooperation with Kafra and the major royal families of the kingdom."; + next; + switch( select( "Gloria?", "About Siege Battle TE", "About requirements for participation", "Forget it." ) ) { + case 1: + mes "[Guide Soldier]"; + mes "It has been named in honor of the seven royal families and the kingdom."; + mes "The whole city closely resembles Valkyrie Realm, and here resides the aspirations of the royal family for everyone."; + next; + mes "[Guide Soldier]"; + mes "In Kafragarten of Aldebaran, managed by Gloria and Kafra Service, we have special rules that are slightly different from the existing ones."; + mes "We call it Siege Battle TE."; + next; + mes "[Guide Soldier]"; + mes "You should not have troubles understanding the new rules since it is simply about setting a limit on qualifications for participation."; + close; + case 2: + mes "[Guide Soldier]"; + mes "It is a new stage prepared by the royal family in order to let more people participate in siege battles."; + mes "Different rules are applied, and sufficient supports are provided since its atmosphere is similar to that of a gymnasium."; + next; + mes "[Guide Soldier]"; + mes "^4d4dffTertiary job class and users with expanded levels are not allowed in Gloria and Kafragarten regions, where Siege Battle TE rules are applied.^000000"; + next; + mes "[Guide Soldier]"; + mes "Also, we lend a variety of battlegears that you use only in corresponding regions for free."; + mes "This may be the biggest difference."; + close; + case 3: + mes "[Guide Soldier]"; + mes "^4d4dffNovice, primary, and secondary job classes are allowed to participate as well as extra job class.^000000"; + mes "Of course, primary and secondary job classes are included as well."; + next; + mes "[Guide Soldier]"; + mes "In other words, tertiary job class and jobs with expanded levels such as Kagerou and Oboro are not allowed."; + mes "Also, their buff effects get eliminated here."; + next; + mes "[Guide Soldier]"; + mes "Other than that, it is not much different from the existing siege battles."; + close; + case 4: + mes "[Guide Soldier]"; + mes "May the glory of the royal family and Odin's protection be with you!"; + close; + } +} + +prt_gld,122,151,4 script Guide in Gloria#tes02 8W_SOLDIER,{ + mes "[Guide Soldier]"; + mes "This warp gate here will let you go into Gloria region."; + mes "Please keep in mind that you are supposed to travel through warps here."; + close; +} + +te_prt_gld,118,151,4 script Guide in Gloria#tes03 8W_SOLDIER,{ + mes "[Guide Soldier]"; + mes "You are now at the fortress in Gloria."; + mes "If you wish to return to Valkyrie Realm, you can travel through warp."; + close; +} + +te_prt_gld,122,151,4 script Guide in Gloria#tes04 8W_SOLDIER,{ + mes "[Guide Soldier]"; + mes "Welcome to Gloria."; + mes "Job classes that are allowed to participate in siege battles at the fortresses in Kafragarten and Gloria regions are limited to ^4d4dffprimary and secondary job classes as well as those without expanded levels.^000000"; + next; + mes "[Guide Soldier]"; + mes "In Kafragarten and Gloria regions, you get separate missions."; + mes "Some of them are not related to Emperiums, so challenge yourself!"; + next; + mes "[Guide Soldier]"; + mes "The royal family and Kafra Service have prepared a variety of retal items for you."; + mes "Although the rental period is relatively short, it's all free. So, don't miss the chance!"; + close; +} + +alde_gld,228,189,3 script Sorin of Kafragarten 4_F_KAFRA3,{ + mes "[Sorin]"; + mes "Welcome to Kafra Service~ We always provide the best to our customers."; + mes "Finally, Kafra Service has established its own fortress!"; + next; + switch( select( "What is Kafragarten?", "What is Siege Battle TE?", "Qualifications for participation", "Forget it." ) ) { + case 1: + mes "[Sorin]"; + mes "This is a fortress provided by Kafra Service in cooperation with the royal family of Rune-Midgarts."; + mes "It means 'Kafra's garden.'"; + next; + mes "[Sorin]"; + mes "Although it looks very similar to Luina"; + mes "It should be fine since it's servicing different users."; + mes "It's like a training stage, so to speak."; + next; + mes "[Sorin]"; + mes "Kafragarten is built in the region of Luina, and in Valkyrie Realm, the royal family's Gloria is founded."; + mes "Kafra Service hopes that you would gain valuable experience in this new fortress."; + close; + case 2: + mes "[Sorin]"; + mes "Siege Battle TE is ^4d4dffsiege battles designed for primary and secondary job classes only, ruling out tertiary job class.^000000"; + next; + mes "[Sorin]"; + mes "It's been newly established in an effort to allow more users to gain experience through siege battles."; + next; + mes "[Sorin]"; + mes "Moreover, for your convenience, we lend a variety of items that you can use only inside the corresponding fortress. So, take advantage of this opportunity."; + next; + mes "[Sorin]"; + mes "As they say, 'action speaks louder than words.'"; + mes "Now, go and see for yourself~"; + close; + case 3: + mes "[Sorin]"; + mes "Primary, secondary, and extra job classes without expanded levels as well as primary and secondary job classes are allowed to participate only."; + next; + mes "[Sorin]"; + mes "In other words, tertiary job class and jobs with expanded levels such as Kagerou and Oboro are not allowed."; + close; + case 4: + mes "[Sorin]"; + mes "Kafra Service will do its utmost to bring joy to your life through Kafragarten."; + close; + } +} + +alde_gld,224,185,5 script Defolty of Kafragarten 4_F_KAFRA1,{ + mes "[Defolty]"; + mes "Kafragarten is like a mirrored image of Luina, so its structure is exactly the same as that of Luina."; + next; + mes "[Defolty]"; + mes "You can travel by these warps here."; + mes "You can travel to Kafragarten using warp."; + close; +} + +te_alde_gld,228,189,3 script W of Kafragarten#tes01 4_F_KAFRA6,{ + mes "[W]"; + mes "You can travel to Luina using this warp here."; + mes "Make good use of it"; + next; + mes "[W]"; + mes "Who took the castle that was named after me, W?"; + mes "Hehe doesn't it mean that I'm superior to Tailing?"; + close; +} + +te_alde_gld,224,185,5 script Tailing of Kafragarten 4_F_KAFRA2,{ + mes "[Tailing]"; + mes "This is the region of Kafragarten."; + mes "In siege battles in the regions of Kafragarten and Gloria, only primary and secondary job classes as well as users without expanded levels are allowed to participate."; + next; + mes "[Tailing]"; + mes "... ."; + mes "In Kafragarten and Gloria regions, you get separate missions."; + mes "So you should pay close attention."; + next; + mes "[Tailing]"; + mes "Also, we have prepared a variety of battlegears, which are available anytime upon your request."; + next; + mes "[Tailing]"; + mes "But obviously, they're only valid in the regions of Kafragarten and Gloria."; + next; + mes "[Tailing]"; + mes "... .."; + mes "Ah if you think I'm mad because my name is missing from Kafragarten and if my way of speaking is a little stiff because of that"; + next; + mes "[Tailing]"; + mes "Oh my."; + mes "Is that really true?"; + mes "No way. W is no better than me..hahaha."; + close; +} diff --git a/npc/re/woe_te/te_merchant.txt b/npc/re/woe_te/te_merchant.txt new file mode 100644 index 0000000000..c823fb4c00 --- /dev/null +++ b/npc/re/woe_te/te_merchant.txt @@ -0,0 +1,145 @@ +//===== rAthena Script ======================================= +//= Merchant WoE TE +//===== Description: ========================================= +//= [Official Conversion] +//= Merchants and Rental merchant template for WoE TE +//===== Changelogs: ========================================== +//= 1.0 First Version. [Capuche] +//============================================================ + +te_prt_gld,114,153,4 shop TE Potion Merchant#prt 4_M_TELEPORTER,11557:-1,11558:-1 +te_alde_gld,215,184,4 duplicate(TE Potion Merchant#prt) TE Potion Merchant#alde 4_M_TELEPORTER + +// Rental Items manager +//======================================= +- script rental_woe_TE -1,{ + mes "[Rental Items Manager]"; + if (CanParticipatewoeTE() == 1) { + .@list01$ = "[Shield] [Armor] [Garment]"; + .@list02$ = "[Helmet] [Accessory] [Shoes]"; + .@list03$ = "[Sword] [Spear] [Axe] [Katar]"; + .@list04$ = "[Mace] [Staff] [Fist] [Book]"; + .@list05$ = "[Bow] [Gun] [Musical Instrument] [Whip]"; + + mes "^4d4dffWe offer various battlegears that you can use in the regions of Gloria and Kafragarten based on the rules of Siege Battle TE.^000000"; + next; + mes "[Rental Items Manager]"; + mes "^4d4dffWe provide 1-day rental periods for free.^000000"; + mes "However, the provided rental items ^4d4dffwill not be effective outside the Siege Battle TE area.^000000"; + next; + mes "[Rental Items Manager]"; + mes "^4d4dffYou have to be Lv 40 or higher in order to rent an item.^000000"; + mes "Select the desired equipment."; + next; + while(1) { + switch( select( "View rental equipments", .@list01$, .@list02$, .@list03$, .@list04$, .@list05$, "Leave" ) ) { + case 1: + mes "[Rental Items Manager]"; + mes "Here is a list of rental items and descriptions."; + close2; + readbook 11059,1;// WoE_TE_Rental_List + end; + case 2: + callsub( S_Rent, "shields, armors, and garments", + 2178,"TE Siege Buckler",// TE_Woe_Buckler + 2179,"TE Siege Shield",// TE_Woe_Shield + 2180,"TE Siege Magic Guard",// TE_Woe_Magic_Guard + 15062,"TE Siege Long Coat",// TE_Woe_Coat + 15063,"TE Siege Mail",// TE_Woe_Chain_Mail + 15064,"TE Siege Magic Coat",// TE_Woe_Mage_Coat + 20702,"TE Siege Muffler",// TE_Woe_Muffler + 20703,"TE Siege Cape",// TE_Woe_Manteau + 20704,"TE Siege Magic Cape" );// TE_Woe_Magic_Manteau + break; + case 3: + callsub( S_Rent, "helmets, accessories, and shoes", + 2496,"TE Siege Shoes",// TE_Woe_Shoes + 2497,"TE Siege Boots",// TE_Woe_Boots + 2498,"TE Siege Magic Sandals",// TE_Woe_Magic_Sandal + 2944,"TE Guardian Ring",// TE_Ring_Of_Protection + 2945,"TE Ring of Wrath",// TE_Ring_Of_Rage + 2946,"TE Ring of Rebellion",// TE_Ring_Of_Defiance + 18732,"TE Siege Cap",// TE_Woe_Cap + 18733,"TE Siege Bone Helm",// TE_Woe_Bone_Helm + 18734,"TE Siege Magic Eyes" );// TE_Woe_Magic_Eyes + break; + case 4: + callsub( S_Rent, "swords, spears, axes, and katars", + 1299,"TE Siege Katar",// TE_Woe_Katar + 1399,"TE Siege Two-Handed Axe",// TE_Woe_Two_Handed_Axe + 1495,"TE Siege Lance",// TE_Woe_Lance + 13317,"TE Siege Magic Shuriken",// TE_Woe_Huuma + 21006,"TE Siege Two-Handed Sword",// TE_Woe_Two_Hand_Sword + 1319,"TE Siege Axe",// TE_Woe_Axe + 1437,"TE Siege Pike",// TE_Woe_Pike + 13083,"TE Siege Knife",// TE_Woe_Knife + 13439,"TE Siege Sword" );// TE_Woe_Sword + break; + case 5: + callsub( S_Rent, "staves, maces, books, and fists", + 2019,"TE Siege Two-Handed Staff",// TE_Woe_Two_Hand_Staff + 1591,"TE Siege Book",// TE_Woe_Book + 1667,"TE Siege Staff",// TE_Woe_Staff + 1834,"TE Siege Fist",// TE_Woe_Fist + 16025,"TE Siege Mace" );// TE_Woe_Mace + break; + case 6: + callsub( S_Rent, "bows, guns, musical instruments, and whips", + 18118,"TE Siege Bow",// TE_Woe_Bow + 13117,"TE Siege Pistol",// TE_Woe_Pistol + 13184,"TE Siege Rifle",// TE_Woe_Rifle + 13185,"TE Siege Gatling Gun",// TE_Woe_Gatling + 13186,"TE Siege Shotgun",// TE_Woe_Shotgun + 13187,"TE Siege Grenade Gun",// TE_Woe_Grenade + 1932,"TE Siege Guitar",// TE_Woe_Guitar + 1987,"TE Siege Rope" );// TE_Woe_Rope + break; + case 7: + mes "[Rental Items Manager]"; + mes "Come back anytime then."; + close; + } + } + } + mes "We offer various battlegears that you can use in the regions of Gloria and Kafragarten based on the rules of Siege Battle TE."; + next; + mes "[Rental Items Manager]"; + mes "I'm sorry but your job class is not allowed to participate in Siege Battles TE."; + mes "I'm afraid I can't offer any items to you."; + close; + +S_Rent: + mes "[Rental Items Manager]"; + if (checkweight(1304,3) == 0) { + mes "You already have too many items to receive a new rental equipment."; + mes "Please organize your items and try again."; + close; + } + mes "We have "+ getarg(0) +" ready for you."; + mes "Select the desired item."; + next; + for ( .@i = 1; .@i < getargcount(); .@i += 2 ) { + if (countitem(getarg(.@i)) > 0) + .@menu$ = .@menu$ + "^4d4dff"+ getarg(.@i+1) +" - Checked out^000000:"; + else + .@menu$ = .@menu$ + getarg(.@i+1) + ":"; + } + .@total_item = (getargcount() -1) /2; + .@s = select( .@menu$ + ":View other items" ) -1; + if (.@s <= .@total_item) { + .@index = .@s *2 +1; + mes "[Rental Items Manager]"; + if (countitem(getarg(.@index)) > 0) { + mes "You already have "+ getarg(.@index+1) +"."; + mes "Do you need anything else?"; + } + else { + mes "Here is "+ getarg(.@index+1) +"."; + mes "^4d4dffThis item is effective for the next 24 hours^000000 and after that it expires."; + mes "Do you need anything else?"; + rentitem getarg(.@index),86400; + } + next; + } + return; +} diff --git a/npc/re/woe_te/te_mission_alde.txt b/npc/re/woe_te/te_mission_alde.txt new file mode 100644 index 0000000000..321ba3ac27 --- /dev/null +++ b/npc/re/woe_te/te_mission_alde.txt @@ -0,0 +1,42 @@ +//===== rAthena Script ======================================= +//= Mission WoE TE +//===== Description: ========================================= +//= [Official Conversion] +//= NPC for mission WoE TE at Aldebaran +//===== Changelogs: ========================================== +//= 1.0 First Version. [Capuche] +//============================================================ + +te_aldecas1,2,2,0 duplicate(#popswitch) #popswitch_alde01 CLEAR_NPC +te_aldecas2,2,2,0 duplicate(#popswitch) #popswitch_alde02 CLEAR_NPC +te_aldecas3,2,2,0 duplicate(#popswitch) #popswitch_alde03 CLEAR_NPC +te_aldecas4,2,2,0 duplicate(#popswitch) #popswitch_alde04 CLEAR_NPC +te_aldecas5,2,2,0 duplicate(#popswitch) #popswitch_alde05 CLEAR_NPC + +te_aldecas1,2,3,0 duplicate(pop_mission_TE) #popa_alde01 CLEAR_NPC +te_aldecas1,2,3,0 duplicate(pop_mission_TE) #popb_alde01 CLEAR_NPC +te_aldecas1,2,3,0 duplicate(pop_mission_TE) #popc_alde01 CLEAR_NPC +te_aldecas1,2,3,0 duplicate(pop_mission_TE) #popd_alde01 CLEAR_NPC + +te_aldecas2,2,3,0 duplicate(pop_mission_TE) #popa_alde02 CLEAR_NPC +te_aldecas2,2,3,0 duplicate(pop_mission_TE) #popb_alde02 CLEAR_NPC +te_aldecas2,2,3,0 duplicate(pop_mission_TE) #popc_alde02 CLEAR_NPC +te_aldecas2,2,3,0 duplicate(pop_mission_TE) #popd_alde02 CLEAR_NPC + +te_aldecas3,2,3,0 duplicate(pop_mission_TE) #popa_alde03 CLEAR_NPC +te_aldecas3,2,3,0 duplicate(pop_mission_TE) #popb_alde03 CLEAR_NPC +te_aldecas3,2,3,0 duplicate(pop_mission_TE) #popc_alde03 CLEAR_NPC +te_aldecas3,2,3,0 duplicate(pop_mission_TE) #popd_alde03 CLEAR_NPC + +te_aldecas4,2,3,0 duplicate(pop_mission_TE) #popa_alde04 CLEAR_NPC +te_aldecas4,2,3,0 duplicate(pop_mission_TE) #popb_alde04 CLEAR_NPC +te_aldecas4,2,3,0 duplicate(pop_mission_TE) #popc_alde04 CLEAR_NPC +te_aldecas4,2,3,0 duplicate(pop_mission_TE) #popd_alde04 CLEAR_NPC + +te_aldecas5,2,3,0 duplicate(pop_mission_TE) #popa_alde05 CLEAR_NPC +te_aldecas5,2,3,0 duplicate(pop_mission_TE) #popb_alde05 CLEAR_NPC +te_aldecas5,2,3,0 duplicate(pop_mission_TE) #popc_alde05 CLEAR_NPC +te_aldecas5,2,3,0 duplicate(pop_mission_TE) #popd_alde05 CLEAR_NPC + + +te_alde_gld,218,182,5 duplicate(Training_Instructor_TE) Kafragarten Instructor#t 4_M_HUMAN_02 diff --git a/npc/re/woe_te/te_mission_main.txt b/npc/re/woe_te/te_mission_main.txt new file mode 100644 index 0000000000..cae3f59daa --- /dev/null +++ b/npc/re/woe_te/te_mission_main.txt @@ -0,0 +1,575 @@ +//===== rAthena Script ======================================= +//= Mission WoE TE +//===== Description: ========================================= +//= [Official Conversion] +//= Template for mission WoE TE +//===== Changelogs: ========================================== +//= 1.0 First Version. [Capuche] +//============================================================ + +// call duplicate of pop_mission_TE npc to spawn the mobs mission +- script #popswitch -1,{ +OnInit: + if (strnpcinfo(4) == "") end; + // var sig = CheckSiegeTime 3 + if (agitcheck() == 1) + donpcevent strnpcinfo(0) + "::OnCommandOn"; + else + donpcevent strnpcinfo(0) + "::OnReset"; + end; + +OnCommandOn: + .@map$ = strnpcinfo(4); + if (compare( .@map$,"te_alde" )) + callsub S_Event, "alde0"+ charat( .@map$,getstrlen(.@map$)-1 ) + "::OnCommandOn";// #popa_alde0[1-5]::OnCommandOn + else + callsub S_Event, "prt0"+ charat( .@map$,getstrlen(.@map$)-1 ) + "::OnCommandOn"; + end; + +OnReset: + .@map$ = strnpcinfo(4); + if (compare( .@map$,"te_alde" )) + callsub S_Event, "alde0"+ charat( .@map$,getstrlen(.@map$)-1 ) + "::OnReset"; + else + callsub S_Event, "prt0"+ charat( .@map$,getstrlen(.@map$)-1 ) + "::OnReset"; + end; + +S_Event: + .@string$ = getarg(0); + donpcevent "#popa_"+ .@string$; + donpcevent "#popb_"+ .@string$; + donpcevent "#popc_"+ .@string$; + donpcevent "#popd_"+ .@string$; + end; +} + +- script pop_mission_TE -1,{ +OnMyMobDead: + .@map$ = strnpcinfo(4); + if (mobcount( .@map$,strnpcinfo(0) +"::OnMyMobDead" ) < 1 && playerattached()) {// playerattached stop the script if killmonster / maprespawnguildid + callsub S_Coord, .@item_id, .@mob_id, .@mob_name$, .@coord; + for ( .@mtem = 0; .@mtem < 20; .@mtem++ ) + makeitem .@item_id,1, .@map$, rand( .@coord[0],.@coord[1] ), rand( .@coord[2],.@coord[3] ); + initnpctimer; + } + end; + +OnTimer12000: + stopnpctimer; +OnCommandOn: + callsub S_Coord, .@item_id, .@mob_id, .@mob_name$, .@coord; + monster strnpcinfo(4), rand( .@coord[0],.@coord[1] ), rand( .@coord[2],.@coord[3] ),.@mob_name$,.@mob_id,1,strnpcinfo(0) + "::OnMyMobDead";// THIEF_PORING -> todo: not implemented + end; + +OnReset: + killmonster strnpcinfo(4),strnpcinfo(0) +"::OnMyMobDead"; + stopnpctimer; + end; + +S_Coord: + if (compare( strnpcinfo(4),"te_alde" )) { + set getarg(0), 7056;// Payroll_Of_Kafra + set getarg(1), 2450;// THIEF_PORING + set getarg(2), "Poring the Thief"; + .@hidden_name$ = strnpcinfo(2); + + if (.@hidden_name$ == "popa_alde01") setarray .@coord[0],178,234, 128,175;// x1,x2, y1,y2 + else if (.@hidden_name$ == "popb_alde01") setarray .@coord[0],14,65, 186,222; + else if (.@hidden_name$ == "popc_alde01") setarray .@coord[0],46,114, 37,105; + else if (.@hidden_name$ == "popd_alde01") setarray .@coord[0],198,233, 5,41; + else if (.@hidden_name$ == "popa_alde02") setarray .@coord[0],29,73, 169,211; + else if (.@hidden_name$ == "popb_alde02") setarray .@coord[0],175,220, 136,184; + else if (.@hidden_name$ == "popc_alde02") setarray .@coord[0],196,231, 7,40; + else if (.@hidden_name$ == "popd_alde02") setarray .@coord[0],53,125, 11,80; + else if (.@hidden_name$ == "popa_alde03") setarray .@coord[0],43,107, 212,264; + else if (.@hidden_name$ == "popb_alde03") setarray .@coord[0],181,215, 150,187; + else if (.@hidden_name$ == "popc_alde03") setarray .@coord[0],59,121, 63,123; + else if (.@hidden_name$ == "popd_alde03") setarray .@coord[0],192,215, 24,51; + else if (.@hidden_name$ == "popa_alde04") setarray .@coord[0],154,189, 34,101; + else if (.@hidden_name$ == "popb_alde04") setarray .@coord[0],21,76, 64,125; + else if (.@hidden_name$ == "popc_alde04") setarray .@coord[0],120,143, 200,219; + else if (.@hidden_name$ == "popd_alde04") setarray .@coord[0],13,37, 199,222; + else if (.@hidden_name$ == "popa_alde05") setarray .@coord[0],145,207, 47,78; + else if (.@hidden_name$ == "popb_alde05") setarray .@coord[0],13,43, 87,116; + else if (.@hidden_name$ == "popc_alde05") setarray .@coord[0],11,63, 177,230; + else if (.@hidden_name$ == "popd_alde05") setarray .@coord[0],130,167, 191,225; + } + else { + set getarg(0), 6592;// Small_Wooden_Chest + set getarg(1), 2451;// BABY_STRANGE + set getarg(2), "Suspicious Babee"; + .@hidden_name$ = strnpcinfo(2); + + if (.@hidden_name$ == "popa_prt01") setarray .@coord[0],10,90, 10,80; + else if (.@hidden_name$ == "popb_prt01") setarray .@coord[0],146,190, 64,118; + else if (.@hidden_name$ == "popc_prt01") setarray .@coord[0],92,128, 170,204; + else if (.@hidden_name$ == "popd_prt01") setarray .@coord[0],188,204, 180,204; + else if (.@hidden_name$ == "popa_prt02") setarray .@coord[0],15,95, 162,225; + else if (.@hidden_name$ == "popb_prt02") setarray .@coord[0],144,172, 152,175; + else if (.@hidden_name$ == "popc_prt02") setarray .@coord[0],43,99, 23,62; + else if (.@hidden_name$ == "popd_prt02") setarray .@coord[0],168,204, 24,58; + else if (.@hidden_name$ == "popa_prt03") setarray .@coord[0],7,76, 48,110; + else if (.@hidden_name$ == "popb_prt03") setarray .@coord[0],160,204, 32,81; + else if (.@hidden_name$ == "popc_prt03") setarray .@coord[0],138,190, 183,232; + else if (.@hidden_name$ == "popd_prt03") setarray .@coord[0],8,36, 202,227; + else if (.@hidden_name$ == "popa_prt04") setarray .@coord[0],246,270, 233,275; + else if (.@hidden_name$ == "popb_prt04") setarray .@coord[0],14,53,236,273; + else if (.@hidden_name$ == "popc_prt04") setarray .@coord[0],13,96, 12,63; + else if (.@hidden_name$ == "popd_prt04") setarray .@coord[0],259,283, 14,35; + else if (.@hidden_name$ == "popa_prt05") setarray .@coord[0],17,95, 226,281; + else if (.@hidden_name$ == "popb_prt05") setarray .@coord[0],243,287, 243,288; + else if (.@hidden_name$ == "popc_prt05") setarray .@coord[0],16,66, 17,60; + else if (.@hidden_name$ == "popd_prt05") setarray .@coord[0],205,282, 12,93; + } + for ( .@i = 0; .@i < 4; .@i++ ) + set getelementofarray( getarg(3),.@i ), .@coord[.@i]; + return; +} + + +- script Training_Instructor_TE -1,{ + if (checkweight(1201,5) == 0) { + mes "You have too many items to proceed with the quest."; + mes "Please lighten your load and try again."; + close; + } + .@map$ = strnpcinfo(4); + if (.@map$ == "te_alde_gld") { + .@npc_name$ = "Mana"; + .@fortress$ = "Kafragarten"; + .@menu$ = callsub( S_Menu, .@quest_id, + 7510,"1 Suspicious Poring", + 7511,"10 Suspicious Poring", + 7512,"30 Suspicious Poring", + 7504,"Destroy 1 Emperium", + 7505,"Destroy 3 Emperiums", + 7506,"Destroy 5 Emperiums", + 7513,"10 Kafra's Paychecks", + 7514,"20 Kafra's Paychecks", + 7515,"30 Kafra's Paychecks" ); + } + else { + .@npc_name$ = "Rune"; + .@fortress$ = "Gloria"; + .@menu$ = callsub( S_Menu, .@quest_id, + 7501,"1 Suspicious Babee", + 7502,"10 Suspicious Babee", + 7503,"30 Suspicious Babee", + 7504,"Destroy 1 Emperium", + 7505,"Destroy 3 Emperiums", + 7506,"Destroy 5 Emperiums", + 7507,"10 Small Wooden Boxes", + 7508,"20 Small Wooden Boxes", + 7509,"30 Small Wooden Boxes" ); + } + mes "["+ .@npc_name$ +"]"; + if (CanParticipatewoeTE() == 0) { + mes "Ah... you..."; + mes "based on TE rules, I won't be ordering you or asking you favors unfortunately."; + next; + mes "["+ .@npc_name$ +"]"; + mes "Hey now, since this place is just for primary and secondary job classes as well as users without expanded levels, could you leave if you got nothing else to do here?"; + close; + } + mes "There are missions you can complete in TE region."; + mes "Let's see, what do you want?"; + next; + switch( select( "Accept/Conform Missions", "What do you mean a mission?", "I don't have any." ) ) { + case 1: + mes "["+ .@npc_name$ +"]"; + if (BaseLevel < 70) { + mes "Mm, I'm sorry but missions are for users with ^4d4dff70 level^000000 or higher."; + mes "Honestly, it's hard to complete a mission if your level is too low."; + close; + } + // .@time_check = OpenHour_SiegeMode 3 3600 + // .@siege_check = agitcheck(); + .@siege_check = 1; + mes "You already know that you have to accept a mission in a certain period of time, right?"; + if (.@time_check == 1 || .@siege_check == 1) + mes "Moreover, you have to keep in mind that you can't accept both high-level and low-level missions simultaneously if they are of the same content."; + else { + mes "Unfortunately, you can't accept missions right now."; + next; + mes "["+ .@npc_name$ +"]"; + .@playtime_check2 = checkquest(7516,PLAYTIME); + if (.@playtime_check2 == 2) { + erasequest 7516; + mes "Mm, you were taking a break?"; + mes "Well, it doesn't matter anymore."; + } + mes "You can only check the results of the missions you've already accepted."; + } + next; + .@s = select( .@menu$ + "Cancel" ) -1; + mes "["+ .@npc_name$ +"]"; + if (.@s == 9) { + mes "See you later then."; + close; + } + + .@main_quest = .@quest_id[.@s]; + deletearray .@quest_id[.@s],1; + .@mission01 = isbegin_quest(.@main_quest); + .@playtime_check = checkquest(.@main_quest,PLAYTIME); + .@hunting_check = checkquest(.@main_quest,HUNTING); + + .@index = (.@s/3) *3; + .@mission02 = isbegin_quest(.@quest_id[.@index]); + .@mission03 = isbegin_quest(.@quest_id[.@index+1]); + + if (.@s == 0 || .@s == 1 || .@s == 2) { + if (.@map$ == "te_alde_gld") + setarray .@mob_name$[0],"Porings","suspicious Porings"; + else + setarray .@mob_name$[0],"Orc Babies","suspicious creatures"; + + if (.@s == 0) + .@num_kill = 1; + else if (.@s == 1) { + .@num_tool_box = 2; + .@num_kill = 10; + setarray .@reward[0],12873,2; + setarray .@exp[0],20000,10000; + } + else if (.@s == 2) { + .@num_tool_box = 3; + .@num_kill = 30; + setarray .@reward[0],12873,3; + setarray .@exp[0],30000,15000; + } + + if (.@mission01 == 1) { + if (.@playtime_check == 0) { + if (.@hunting_check == 2) { + mes "You did it in time."; + mes "I don't understand why "+ .@mob_name$[0] +" appear at that time of the day."; + mes "Anyway, good job."; + if (.@num_tool_box == 0) { + erasequest 7510; + getitem 11558,5;// TE_White_Slim_Potion + getexp 5000,2500; + close; + } + next; + mes "["+ .@npc_name$ +"]"; + mes "Since you've done a good job, I'll let you open my tool box " + .@num_tool_box + " times."; + mes "Although you won't find anything mostly..."; + mes "It's a bonus, so don't complaint even if you don't find anything."; + next; + mes "Just like "+ .@npc_name$ +" said, you went through the box in front, and..."; + erasequest .@main_quest; + getitem .@reward[0],.@reward[1]; + getexp .@exp[0],.@exp[1]; + callsub( S_Rentbox, .@num_tool_box ); + } + callsub( S_Cancelquest, .@main_quest, .@npc_name$, "This mission is to eliminate "+ .@mob_name$[1] +" that secretly appear at the fortress in "+ .@fortress$ +"." ); + } + mes "Time's up."; + mes "Unfortunately, mission failed!"; + mes "Maybe next time!"; + erasequest .@main_quest; + close; + } + if (.@time_check != 1 && .@siege_check != 1) { + mes "You're not on this mission currently."; + mes "Could you check again?"; + close; + } + if (.@mission02 == 1 || .@mission03 == 1) { + if (.@num_tool_box == 0) { + mes "You are already on a high-level mission!"; + mes "You cannot accept a low-level mission if you're already on a high-level mission of the same content!"; + } + else { + mes "You're already on a elimination mission!"; + mes "I would like you to take care of what you already have unless you want to cancel it."; + } + next; + mes "["+ .@npc_name$ +"]"; + mes "It only makes sense that way, doesn't it?"; + mes "Don't you think so?"; + close; + } + mes "I've been told that "+ .@mob_name$[1] +" appear during the busy siege hours at the fortress in "+ .@fortress$ +"."; + mes "I would like you to ^4d4dffeliminate "+ .@num_kill +" or more of "+ .@mob_name$[1] +"^000000."; + callsub( S_Acceptquest, .@main_quest, .@npc_name$ ); + } + else if (.@s == 3 || .@s == 4 || .@s == 5) { + if (.@s == 3) { + .@num_tool_box = 1; + .@num_kill = 1; + setarray .@reward[0],12873,3; + setarray .@exp[0],30000,10000; + } + else if (.@s == 4) { + .@num_tool_box = 3; + .@num_kill = 3; + setarray .@reward[0],12873,9; + setarray .@exp[0],90000,30000; + } + else if (.@s == 5) { + .@num_tool_box = 5; + .@num_kill = 5; + setarray .@reward[0],12873,15; + setarray .@exp[0],150000,50000; + } + if (.@mission01 == 1) { + if (.@playtime_check == 0) { + if (.@hunting_check == 2) { + mes "Incredible!"; + mes "Breaking Emperiums is definitely not an easy job."; + mes "You must be contributing a lot to your guild. Good job!"; + next; + mes "["+ .@npc_name$ +"]"; + mes "Since you've done a good job, I'll let you open my tool box "+ .@num_tool_box +" times."; + mes "Although you won't find anything mostly..."; + mes "It's a bonus, so don't complaint even if you don't find anything."; + next; + mes "Just like "+ .@npc_name$ +" said, you went through the box in front, and..."; + erasequest .@main_quest; + setquest 7516; + getitem .@reward[0],.@reward[1]; + getexp .@exp[0],.@exp[1]; + callsub( S_Rentbox, .@num_tool_box ); + } + callsub( S_Cancelquest, .@main_quest, .@npc_name$, "This mission is to ^4d4dff destroy Emperiums that exist all over Gloria and Kafragarten regions.^000000" ); + } + mes "Time's up."; + mes "Unfortunately, mission failed!"; + mes "Maybe next time!"; + erasequest .@main_quest; + close; + } + if (.@time_check != 1 && .@siege_check != 1) { + mes "You're not on this mission currently."; + mes "Could you check again?"; + close; + } + if (.@mission02 == 1 || .@mission03 == 1) { + mes "You're already on a mission of the same content,"; + mes "the level is different though"; + mes "I would like you to take care of what you already have unless you want to cancel it."; + next; + mes "["+ .@npc_name$ +"]"; + mes "It only makes sense that way, doesn't it?"; + mes "Don't you think so?"; + close; + } + .@playtime_check2 = checkquest(7516,PLAYTIME); + if (.@playtime_check2 == 1) { + mes "There is something called 'commercial development level' in each fortress."; + mes "It increases as much as each guild invests."; + next; + mes "["+ .@npc_name$ +"]"; + mes "However, this is closely related to Emperiums."; + mes "Destroying Emperiums repeatedly staggers commercial development level."; + next; + mes "["+ .@npc_name$ +"]"; + mes "So, now we take a break in order to prevent an excessive decrease in commercial development level."; + mes "See you in a bit."; + close; + } + else if (.@playtime_check2 == 2 || .@playtime_check2 == 3) { + erasequest 7516; + mes "The break for commercial development of the fortress is over now."; + mes "Good. Think about what kind of missions you want and come back again."; + close; + } + mes "What is the most important thing in siege battles?"; + mes "It's destroying Emperiums! Let me give you that exact mission of destroying Emperiums!"; + next; + mes "["+ .@npc_name$ +"]"; + mes "Gloria or Kafragarten, wherever it is! Right now, at this very hour, ^4d4dffdestroy Emperiums!^000000"; + mes "^4d4dffTarget number is "+ .@num_kill +" or more!^000000"; + callsub( S_Acceptquest, .@main_quest, .@npc_name$ ); + } + else if (.@s == 6 || .@s == 7 || .@s == 8) { + if (.@map$ == "te_alde_gld") { + .@item_quest = 7056;// Payroll_Of_Kafra + setarray .@string$[0], "paychecks", "I don't understand why Porings would steal Kafra's Paychecks", "Kafra's stolen paychecks"; + } + else { + .@item_quest = 6592;// Small_Wooden_Chest + setarray .@string$[0], "wooden boxes", "So, those Orc Babies were after this, huh?", "wooden boxes"; + } + if (.@s == 6) { + .@num_tool_box = 1; + .@num_items = 10; + setarray .@reward[0],12873,1; + setarray .@exp[0],10000,5000; + } + else if (.@s == 7) { + .@num_tool_box = 2; + .@num_items = 20; + setarray .@reward[0],12873,2; + setarray .@exp[0],20000,10000; + } + else if (.@s == 8) { + .@num_tool_box = 3; + .@num_items = 30; + setarray .@reward[0],12873,3; + setarray .@exp[0],30000,15000; + } + + if (.@mission01 == 1) { + if (.@playtime_check == 0) { + if (countitem(.@item_quest) > 9) { + mes .@num_items +" or more of "+ .@string$[0] +" let's see you've done it right."; + mes .@string$[1]; + mes "Anyway, good job."; + next; + mes "["+ .@npc_name$ +"]"; + mes "Let me take the rest of the "+ .@string$[0] +"."; + mes "I'll return it to its original owner."; + next; + mes "["+ .@npc_name$ +"]"; + mes "Since you've done a good job, I'll let you open my tool box "+ .@num_tool_box +" times."; + mes "Although you won't find anything mostly..."; + mes "It's a bonus, so don't complaint even if you don't find anything."; + next; + mes "Just like "+ .@npc_name$ +" said, you went through the box in front, and..."; + delitem .@item_quest, countitem(.@item_quest); + erasequest .@main_quest; + getitem .@reward[0],.@reward[1]; + getexp .@exp[0],.@exp[1]; + callsub( S_Rentbox, .@num_tool_box ); + } + callsub( S_Cancelquest, .@main_quest, .@npc_name$, "This mission is to ^4d4dffcollect "+ .@string$[2] +"^000000 at the fortress in "+ .@fortress$ +"." ); + } + mes "Time's up."; + mes "Unfortunately, mission failed!"; + mes "Maybe next time!"; + erasequest .@main_quest; + close; + } + if (.@time_check != 1 && .@siege_check != 1) { + mes "You're not on this mission currently."; + mes "Could you check again?"; + close; + } + if (.@mission02 == 1 || .@mission03 == 1) { + mes "You're already on a mission of the same content,"; + mes "the level is different though"; + mes "I would like you to take care of what you already have unless you want to cancel it."; + next; + mes "["+ .@npc_name$ +"]"; + mes "It only makes sense that way, doesn't it?"; + mes "Don't you think so?"; + close; + } + mes "Hmm you wouldn't believe it, but this mission is related to a theft."; + mes "They told me a bunch of "+ .@string$[2] +" is missing from the fortress in "+ .@fortress$ +"."; + next; + mes "["+ .@npc_name$ +"]"; + mes "The thief probably took advantage of the siege hours."; + mes "It's a request to find ^4d4dff"+ .@num_items +" or more of "+ .@string$[2] +"^000000."; + callsub( S_Acceptquest, .@main_quest, .@npc_name$ ); + } + case 2: + mes "["+ .@npc_name$ +"]"; + mes "Since TE Region has more of a casual atmosphere,"; + mes "it's not fun doing just siege battles, right?"; + mes "So, I brought ^4d4dffsome works you can do during the siege hours^000000~"; + next; + mes "["+ .@npc_name$ +"]"; + mes "You can accept missions ^4d4dffstarting from 1 hour before the beginning of the siege and until the end of the siege battle TE^000000,"; + mes "and every mission has ^4d4dffa 4-hour time limit^000000 for completion."; + next; + mes "["+ .@npc_name$ +"]"; + mes "Simply put, you accept a mission from me during the siege hours and"; + mes "^4d4dffcome back to give me a report within the time limit^000000."; + next; + mes "["+ .@npc_name$ +"]"; + mes "Try it for fun."; + close; + case 3: + mes "["+ .@npc_name$ +"]"; + mes "I see."; + mes "Come back anytime if you change your mind."; + mes "I might not be available, though. Hehehe."; + close; + } + +S_Cancelquest: + .@npc_name$ = getarg(1); + // .@playtime_check = OpenHour_SiegeMode 3 3600 + // .@siege_check = agitcheck(); + .@siege_check = 1;// test + if ((.@time_check == 1) || (.@siege_check == 1)) { + mes "It seems like you haven't accomplished the mission yet?"; + mes getarg(2); + next; + mes "["+ .@npc_name$ +"]"; + mes "Do you want to cancel by any chance?"; + next; + switch( select( "No.","Yes." ) ) { + case 1: + mes "["+ .@npc_name$ +"]"; + mes "Good luck!"; + close; + case 2: + mes "["+ .@npc_name$ +"]"; + mes "As you wanted, this mission is canceled."; + erasequest getarg(0); + close; + } + } + else { + mes "Hmm you still have some time left, but it's not the siege hour yet"; + mes "I don't think you should go on."; + mes "You should cancel this mission. I would say it's failed."; + next; + switch( select( "I would like to go on.","Yes, I'll cancel it." ) ) { + mes "["+ .@npc_name$ +"]"; + mes "I don't think it's worth it. Well, good luck!"; + close; + case 2: + mes "["+ .@npc_name$ +"]"; + mes "As you wanted, this mission is canceled."; + erasequest getarg(0); + close; + } + } + +S_Acceptquest: + .@npc_name$ = getarg(1); + next; + switch( select( "Accept it.","Do not accept it." ) ) { + case 1: + mes "["+ .@npc_name$ +"]"; + mes "^4d4dffThe time limit is 4 hours.^000000"; + mes "Accomplish the mission with in that time and report to me."; + setquest getarg(0); + close; + case 2: + mes "["+ .@npc_name$ +"]"; + mes "Try another mission then."; + close; + } + +S_Rentbox: + setarray .@item_id[0], 2950,15067,20709,22012;// Rune_Ring, Rune_Suit, Mana_Manteau, Mana_Boots + for ( .@count = 0; .@count < getarg(0); .@count++ ) { + .@miss_item01 = rand(100); + if (.@miss_item01 > 3) + mes "You didn't find anything."; + else { + rentitem .@item_id[ .@miss_item01 ],86400; + mes "You found '"+ getitemname(.@item_id[ .@miss_item01 ]) +" !'"; + } + } + close; + +S_Menu: + for ( .@i = 1; .@i < getargcount(); .@i += 2 ) { + if ( isbegin_quest(getarg(.@i)) ) + .@menu$ = .@menu$ + getarg(.@i+1) + " ^4d4dffCheck the result^000000:"; + else + .@menu$ = .@menu$ + getarg(.@i+1) + ":"; + set getelementofarray( getarg(0),.@index ), getarg(.@i); + .@index++; + } + return .@menu$; +} + diff --git a/npc/re/woe_te/te_mission_prt.txt b/npc/re/woe_te/te_mission_prt.txt new file mode 100644 index 0000000000..cc38afdd7a --- /dev/null +++ b/npc/re/woe_te/te_mission_prt.txt @@ -0,0 +1,41 @@ +//===== rAthena Script ======================================= +//= Mission WoE TE +//===== Description: ========================================= +//= [Official Conversion] +//= NPC for mission WoE TE at Prontera +//===== Changelogs: ========================================== +//= 1.0 First Version. [Capuche] +//============================================================ + +te_prtcas01,2,2,0 duplicate(#popswitch) #popswitch_prt01 CLEAR_NPC +te_prtcas02,2,2,0 duplicate(#popswitch) #popswitch_prt02 CLEAR_NPC +te_prtcas03,2,2,0 duplicate(#popswitch) #popswitch_prt03 CLEAR_NPC +te_prtcas04,2,2,0 duplicate(#popswitch) #popswitch_prt04 CLEAR_NPC +te_prtcas05,2,2,0 duplicate(#popswitch) #popswitch_prt05 CLEAR_NPC + +te_prtcas01,2,3,0 duplicate(pop_mission_TE) #popa_prt01 CLEAR_NPC +te_prtcas01,2,3,0 duplicate(pop_mission_TE) #popb_prt01 CLEAR_NPC +te_prtcas01,2,3,0 duplicate(pop_mission_TE) #popc_prt01 CLEAR_NPC +te_prtcas01,2,3,0 duplicate(pop_mission_TE) #popd_prt01 CLEAR_NPC + +te_prtcas02,2,3,0 duplicate(pop_mission_TE) #popa_prt02 CLEAR_NPC +te_prtcas02,2,3,0 duplicate(pop_mission_TE) #popb_prt02 CLEAR_NPC +te_prtcas02,2,3,0 duplicate(pop_mission_TE) #popc_prt02 CLEAR_NPC +te_prtcas02,2,3,0 duplicate(pop_mission_TE) #popd_prt02 CLEAR_NPC + +te_prtcas03,2,3,0 duplicate(pop_mission_TE) #popa_prt03 CLEAR_NPC +te_prtcas03,2,3,0 duplicate(pop_mission_TE) #popb_prt03 CLEAR_NPC +te_prtcas03,2,3,0 duplicate(pop_mission_TE) #popc_prt03 CLEAR_NPC +te_prtcas03,2,3,0 duplicate(pop_mission_TE) #popd_prt03 CLEAR_NPC + +te_prtcas04,2,3,0 duplicate(pop_mission_TE) #popa_prt04 CLEAR_NPC +te_prtcas04,2,3,0 duplicate(pop_mission_TE) #popb_prt04 CLEAR_NPC +te_prtcas04,2,3,0 duplicate(pop_mission_TE) #popc_prt04 CLEAR_NPC +te_prtcas04,2,3,0 duplicate(pop_mission_TE) #popd_prt04 CLEAR_NPC + +te_prtcas05,2,3,0 duplicate(pop_mission_TE) #popa_prt05 CLEAR_NPC +te_prtcas05,2,3,0 duplicate(pop_mission_TE) #popb_prt05 CLEAR_NPC +te_prtcas05,2,3,0 duplicate(pop_mission_TE) #popc_prt05 CLEAR_NPC +te_prtcas05,2,3,0 duplicate(pop_mission_TE) #popd_prt05 CLEAR_NPC + +te_prt_gld,125,149,3 duplicate(Training_Instructor_TE) Gloria Instructor#tem01 4_M_HUMAN_02 diff --git a/npc/re/woe_te/te_prt_cas01.txt b/npc/re/woe_te/te_prt_cas01.txt new file mode 100644 index 0000000000..c339c62000 --- /dev/null +++ b/npc/re/woe_te/te_prt_cas01.txt @@ -0,0 +1,65 @@ +//===== rAthena Script ======================================= +//= War of Emperium (Prontera) - Gloria 1 +//===== Description: ========================================= +//= [Official Conversion] +//= NPCs that relate to Prontera Training Guild Castle 1 +//===== Changelogs: ========================================== +//= 1.0 First Version. [Capuche] +//============================================================ + +// Simple flags (no message) +//============================================================ +prt_gld,112,155,4 duplicate(flag_te) Gaeborg#te_prtcas01 GUILD_FLAG + +// Simple infos flags +//============================================================ +te_prtcas01,58,56,4 duplicate(simple_info_TE) Gaebolg#1 GUILD_FLAG +te_prtcas01,64,56,4 duplicate(simple_info_TE) Gaebolg#2 GUILD_FLAG +te_prtcas01,76,32,4 duplicate(simple_info_TE) Gaebolg#3 GUILD_FLAG +te_prtcas01,84,32,4 duplicate(simple_info_TE) Gaebolg#4 GUILD_FLAG +te_prtcas01,94,39,4 duplicate(simple_info_TE) Gaebolg#5 GUILD_FLAG +te_prtcas01,94,24,4 duplicate(simple_info_TE) Gaebolg#6 GUILD_FLAG +te_prtcas01,73,14,4 duplicate(simple_info_TE) Gaebolg#7 GUILD_FLAG +te_prtcas01,73,6,4 duplicate(simple_info_TE) Gaebolg#8 GUILD_FLAG +te_prtcas01,55,46,4 duplicate(simple_info_TE) Gaebolg#9 GUILD_FLAG +te_prtcas01,45,46,4 duplicate(simple_info_TE) Gaebolg#10 GUILD_FLAG + +// Infos flags + warp guildmaster inside +//============================================================ +te_prt_gld,131,60,6 script Gaebolg#11 GUILD_FLAG,{ + callfunc( "F_flag_woe_TE",1,"te_prtcas01",96,173 ); +OnFlagTEGaebolg: + flagemblem getcastledata( "te_prtcas01",1 ); + end; +} +te_prt_gld,138,68,6 duplicate(Gaebolg#11) Gaebolg#12 GUILD_FLAG +te_prt_gld,138,60,6 duplicate(Gaebolg#11) Gaebolg#13 GUILD_FLAG +te_prt_gld,135,60,6 duplicate(Gaebolg#11) Gaebolg#14 GUILD_FLAG + +// Guild kafra +//============================================================ +te_prtcas01,96,173,0 duplicate(Kafra_Staff_TE) Kafra Staff#te_prtcas01 4_F_KAFRA1 + +// Lever 1 (warp outside treasure) +//============================================================ +te_prtcas01,7,205,0 duplicate(lever1_TE) #lever1_te_prtcas01 HIDDEN_NPC + +// Lever 2 (warp to dungeon) +//============================================================ +te_prtcas01,94,200,0 duplicate(lever2_TE) #lever2_te_prtcas01 HIDDEN_NPC + +// Invest eco / def / guardian +//============================================================ +te_prtcas01,112,181,0 duplicate(invest_TE) Kurbe 1_M_JOBTESTER + +// Treasure spawn +//============================================================ +te_prtcas01,1,1,0 duplicate(treasure_TE) treasure_TE#te_prtcas01 -1 + +// Rental items npc +//============================================================ +te_prt_gld,136,72,3 duplicate(rental_woe_TE) Rental Manager#pg01 4_F_HUWOMAN + +// Manager woe +//============================================================ +te_prtcas01,1,1,0 duplicate(Manager_TE) Manager_TE#Gaebolg -1 diff --git a/npc/re/woe_te/te_prt_cas02.txt b/npc/re/woe_te/te_prt_cas02.txt new file mode 100644 index 0000000000..d566b78290 --- /dev/null +++ b/npc/re/woe_te/te_prt_cas02.txt @@ -0,0 +1,67 @@ +//===== rAthena Script ======================================= +//= War of Emperium (Prontera) - Gloria 2 +//===== Description: ========================================= +//= [Official Conversion] +//= NPCs that relate to Prontera Training Guild Castle 2 +//===== Changelogs: ========================================== +//= 1.0 First Version. [Capuche] +//============================================================ + +// Simple flags (no message) +//============================================================ +prt_gld,116,155,4 duplicate(flag_te) Richard#te_prtcas02 GUILD_FLAG + +// Simple infos flags +//============================================================ +te_prtcas02,40,227,4 duplicate(simple_info_TE) Richard#1 GUILD_FLAG +te_prtcas02,46,227,4 duplicate(simple_info_TE) Richard#2 GUILD_FLAG +te_prtcas02,11,219,4 duplicate(simple_info_TE) Richard#3 GUILD_FLAG +te_prtcas02,11,214,4 duplicate(simple_info_TE) Richard#4 GUILD_FLAG +te_prtcas02,20,219,4 duplicate(simple_info_TE) Richard#5 GUILD_FLAG +te_prtcas02,20,214,4 duplicate(simple_info_TE) Richard#6 GUILD_FLAG +te_prtcas02,79,227,8 duplicate(simple_info_TE) Richard#7 GUILD_FLAG +te_prtcas02,70,227,8 duplicate(simple_info_TE) Richard#8 GUILD_FLAG +te_prtcas02,38,189,8 duplicate(simple_info_TE) Richard#9 GUILD_FLAG +te_prtcas02,34,189,8 duplicate(simple_info_TE) Richard#10 GUILD_FLAG +te_prtcas02,153,161,4 duplicate(simple_info_TE) Richard#11 GUILD_FLAG +te_prtcas02,162,161,4 duplicate(simple_info_TE) Richard#12 GUILD_FLAG + +// Infos flags + warp guildmaster inside +//============================================================ +te_prt_gld,244,126,8 script Richard#13 GUILD_FLAG,{ + callfunc( "F_flag_woe_TE",1,"te_prtcas02",71,36 ); +OnFlagTERichard: + flagemblem getcastledata( "te_prtcas02",1 ); + end; +} +te_prt_gld,244,128,8 duplicate(Richard#13) Richard#14 GUILD_FLAG +te_prt_gld,236,126,8 duplicate(Richard#13) Richard#15 GUILD_FLAG +te_prt_gld,236,128,8 duplicate(Richard#13) Richard#16 GUILD_FLAG + +// Guild kafra +//============================================================ +te_prtcas02,71,36,4 duplicate(Kafra_Staff_TE) Kafra Staff#te_prtcas02 4_F_KAFRA1 + +// Lever 1 (warp outside treasure) +//============================================================ +te_prtcas02,206,228,0 duplicate(lever1_TE) #lever1_te_prtcas02 HIDDEN_NPC + +// Lever 2 (warp to dungeon) +//============================================================ +te_prtcas02,84,72,0 duplicate(lever2_TE) #lever2_te_prtcas02 HIDDEN_NPC + +// Invest eco / def / guardian +//============================================================ +te_prtcas02,94,61,4 duplicate(invest_TE) Kamiyu 1_M_JOBTESTER + +// Treasure spawn +//============================================================ +te_prtcas02,1,1,0 duplicate(treasure_TE) treasure_TE#te_prtcas02 -1 + +// Rental items npc +//============================================================ +te_prt_gld,246,134,3 duplicate(rental_woe_TE) Rental Manager#pg02 4_F_HUWOMAN + +// Manager woe +//============================================================ +te_prtcas02,1,1,0 duplicate(Manager_TE) Manager_TE#Richard -1 diff --git a/npc/re/woe_te/te_prt_cas03.txt b/npc/re/woe_te/te_prt_cas03.txt new file mode 100644 index 0000000000..a0e23921fd --- /dev/null +++ b/npc/re/woe_te/te_prt_cas03.txt @@ -0,0 +1,65 @@ +//===== rAthena Script ======================================= +//= War of Emperium (Prontera) - Gloria 3 +//===== Description: ========================================= +//= [Official Conversion] +//= NPCs that relate to Prontera Training Guild Castle 3 +//===== Changelogs: ========================================== +//= 1.0 First Version. [Capuche] +//============================================================ + +// Simple flags (no message) +//============================================================ +prt_gld,120,155,4 duplicate(flag_te) Wigner#te_prtcas03 GUILD_FLAG + +// Simple infos flags +//============================================================ +te_prtcas03,168,28,4 duplicate(simple_info_TE) Wigner#1 GUILD_FLAG +te_prtcas03,182,28,4 duplicate(simple_info_TE) Wigner#2 GUILD_FLAG +te_prtcas03,43,50,4 duplicate(simple_info_TE) Wigner#3 GUILD_FLAG +te_prtcas03,48,50,4 duplicate(simple_info_TE) Wigner#4 GUILD_FLAG +te_prtcas03,43,58,4 duplicate(simple_info_TE) Wigner#5 GUILD_FLAG +te_prtcas03,48,58,4 duplicate(simple_info_TE) Wigner#6 GUILD_FLAG +te_prtcas03,158,210,4 duplicate(simple_info_TE) Wigner#7 GUILD_FLAG +te_prtcas03,169,210,4 duplicate(simple_info_TE) Wigner#8 GUILD_FLAG +te_prtcas03,162,201,4 duplicate(simple_info_TE) Wigner#9 GUILD_FLAG +te_prtcas03,165,201,4 duplicate(simple_info_TE) Wigner#10 GUILD_FLAG + +// Infos flags + warp guildmaster inside +//============================================================ +te_prt_gld,147,140,4 script Wigner#11 GUILD_FLAG,{ + callfunc( "F_flag_woe_TE",1,"te_prtcas03",181,215 ); +OnFlagTEWigner: + flagemblem getcastledata( "te_prtcas03",1 ); + end; +} +te_prt_gld,147,136,4 duplicate(Wigner#11) Wigner#12 GUILD_FLAG +te_prt_gld,158,140,4 duplicate(Wigner#11) Wigner#13 GUILD_FLAG +te_prt_gld,158,136,4 duplicate(Wigner#11) Wigner#14 GUILD_FLAG + +// Guild kafra +//============================================================ +te_prtcas03,181,215,4 duplicate(Kafra_Staff_TE) Kafra Staff#te_prtcas03 4_F_KAFRA1 + +// Lever 1 (warp outside treasure) +//============================================================ +te_prtcas03,192,134,0 duplicate(lever1_TE) #lever1_te_prtcas03 HIDDEN_NPC + +// Lever 2 (warp to dungeon) +//============================================================ +te_prtcas03,5,70,0 duplicate(lever2_TE) #lever2_te_prtcas03 HIDDEN_NPC + +// Invest eco / def / guardian +//============================================================ +te_prtcas03,51,100,4 duplicate(invest_TE) Eduare 1_M_JOBTESTER + +// Treasure spawn +//============================================================ +te_prtcas03,1,1,0 duplicate(treasure_TE) treasure_TE#te_prtcas03 -1 + +// Rental items npc +//============================================================ +te_prt_gld,162,141,3 duplicate(rental_woe_TE) Rental Manager#pg03 4_F_HUWOMAN + +// Manager woe +//============================================================ +te_prtcas03,1,1,0 duplicate(Manager_TE) Manager_TE#Wigner -1 diff --git a/npc/re/woe_te/te_prt_cas04.txt b/npc/re/woe_te/te_prt_cas04.txt new file mode 100644 index 0000000000..1ac9eab9d6 --- /dev/null +++ b/npc/re/woe_te/te_prt_cas04.txt @@ -0,0 +1,65 @@ +//===== rAthena Script ======================================= +//= War of Emperium (Prontera) - Gloria 4 +//===== Description: ========================================= +//= [Official Conversion] +//= NPCs that relate to Prontera Training Guild Castle 4 +//===== Changelogs: ========================================== +//= 1.0 First Version. [Capuche] +//============================================================ + +// Simple flags (no message) +//============================================================ +prt_gld,124,155,4 duplicate(flag_te) Heine#te_prtcas04 GUILD_FLAG + +// Simple infos flags +//============================================================ +te_prtcas04,82,29,4 duplicate(simple_info_TE) Heine#1 GUILD_FLAG +te_prtcas04,75,29,4 duplicate(simple_info_TE) Heine#2 GUILD_FLAG +te_prtcas04,75,27,4 duplicate(simple_info_TE) Heine#3 GUILD_FLAG +te_prtcas04,82,27,4 duplicate(simple_info_TE) Heine#4 GUILD_FLAG +te_prtcas04,59,29,4 duplicate(simple_info_TE) Heine#5 GUILD_FLAG +te_prtcas04,67,29,4 duplicate(simple_info_TE) Heine#6 GUILD_FLAG +te_prtcas04,258,25,4 duplicate(simple_info_TE) Heine#7 GUILD_FLAG +te_prtcas04,258,20,4 duplicate(simple_info_TE) Heine#8 GUILD_FLAG +te_prtcas04,263,20,4 duplicate(simple_info_TE) Heine#9 GUILD_FLAG +te_prtcas04,263,27,4 duplicate(simple_info_TE) Heine#10 GUILD_FLAG + +// Infos flags + warp guildmaster inside +//============================================================ +te_prt_gld,120,243,6 script Heine#11 GUILD_FLAG,{ + callfunc( "F_flag_woe_TE",1,"te_prtcas04",258,247 ); +OnFlagTEHeine: + flagemblem getcastledata( "te_prtcas04",1 ); + end; +} +te_prt_gld,120,236,6 duplicate(Heine#11) Heine#12 GUILD_FLAG +te_prt_gld,122,243,6 duplicate(Heine#11) Heine#13 GUILD_FLAG +te_prt_gld,122,236,6 duplicate(Heine#11) Heine#14 GUILD_FLAG + +// Guild kafra +//============================================================ +te_prtcas04,258,247,4 duplicate(Kafra_Staff_TE) Kafra Staff#te_prtcas04 4_F_KAFRA1 + +// Lever 1 (warp outside treasure) +//============================================================ +te_prtcas04,274,161,0 duplicate(lever1_TE) #lever1_te_prtcas04 HIDDEN_NPC + +// Lever 2 (warp to dungeon) +//============================================================ +te_prtcas04,56,283,0 duplicate(lever2_TE) #lever2_te_prtcas04 HIDDEN_NPC + +// Invest eco / def / guardian +//============================================================ +te_prtcas04,259,265,4 duplicate(invest_TE) Casate 1_M_JOBTESTER + +// Treasure spawn +//============================================================ +te_prtcas04,1,1,0 duplicate(treasure_TE) treasure_TE#te_prtcas04 -1 + +// Rental items npc +//============================================================ +te_prt_gld,117,243,3 duplicate(rental_woe_TE) Rental Manager#pg04 4_F_HUWOMAN + +// Manager woe +//============================================================ +te_prtcas04,1,1,0 duplicate(Manager_TE) Manager_TE#Heine -1 diff --git a/npc/re/woe_te/te_prt_cas05.txt b/npc/re/woe_te/te_prt_cas05.txt new file mode 100644 index 0000000000..c9af0d1f55 --- /dev/null +++ b/npc/re/woe_te/te_prt_cas05.txt @@ -0,0 +1,63 @@ +//===== rAthena Script ======================================= +//= War of Emperium (Prontera) - Gloria 5 +//===== Description: ========================================= +//= [Official Conversion] +//= NPCs that relate to Prontera Training Guild Castle 5 +//===== Changelogs: ========================================== +//= 1.0 First Version. [Capuche] +//============================================================ + +// Simple flags (no message) +//============================================================ +prt_gld,128,155,4 duplicate(flag_te) Nerious#te_prtcas05 GUILD_FLAG + +// Simple infos flags +//============================================================ +te_prtcas05,19,247,4 duplicate(simple_info_TE) Nerious#1 GUILD_FLAG +te_prtcas05,19,243,4 duplicate(simple_info_TE) Nerious#2 GUILD_FLAG +te_prtcas05,26,247,4 duplicate(simple_info_TE) Nerious#3 GUILD_FLAG +te_prtcas05,26,243,4 duplicate(simple_info_TE) Nerious#4 GUILD_FLAG +te_prtcas05,249,289,4 duplicate(simple_info_TE) Nerious#5 GUILD_FLAG +te_prtcas05,256,289,4 duplicate(simple_info_TE) Nerious#6 GUILD_FLAG +te_prtcas05,253,271,4 duplicate(simple_info_TE) Nerious#7 GUILD_FLAG +te_prtcas05,273,257,4 duplicate(simple_info_TE) Nerious#8 GUILD_FLAG + +// Infos flags + warp guildmaster inside +//============================================================ +te_prt_gld,199,243,2 script Nerious#9 GUILD_FLAG,{ + callfunc( "F_flag_woe_TE",1,"te_prtcas05",52,41 ); +OnFlagTENerious: + flagemblem getcastledata( "te_prtcas05",1 ); + end; +} +te_prt_gld,199,236,2 duplicate(Nerious#9) Nerious#10 GUILD_FLAG +te_prt_gld,197,243,2 duplicate(Nerious#9) Nerious#11 GUILD_FLAG +te_prt_gld,197,236,2 duplicate(Nerious#9) Nerious#12 GUILD_FLAG + +// Guild kafra +//============================================================ +te_prtcas05,52,41,4 duplicate(Kafra_Staff_TE) Kafra Staff#te_prtcas05 4_F_KAFRA1 + +// Lever 1 (warp outside treasure) +//============================================================ +te_prtcas05,280,177,0 duplicate(lever1_TE) #lever1_te_prtcas05 HIDDEN_NPC + +// Lever 2 (warp to dungeon) +//============================================================ +te_prtcas05,212,95,0 duplicate(lever2_TE) #lever2_te_prtcas05 HIDDEN_NPC + +// Invest eco / def / guardian +//============================================================ +te_prtcas05,36,37,4 duplicate(invest_TE) Pisaro 1_M_JOBTESTER + +// Treasure spawn +//============================================================ +te_prtcas05,1,1,0 duplicate(treasure_TE) treasure_TE#te_prtcas05 -1 + +// Rental items npc +//============================================================ +te_prt_gld,203,243,3 duplicate(rental_woe_TE) Rental Manager#pg05 4_F_HUWOMAN + +// Manager woe +//============================================================ +te_prtcas05,1,1,0 duplicate(Manager_TE) Manager_TE#Nerious -1