12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697989910010110210310410510610710810911011111211311411511611711811912012112212312412512612712812913013113213313413513613713813914014114214314414514614714814915015115215315415515615715815916016116216316416516616716816917017117217317417517617717817918018118218318418518618718818919019119219319419519619719819920020120220320420520620720820921021121221321421521621721821922022122222322422522622722822923023123223323423523623723823924024124224324424524624724824925025125225325425525625725825926026126226326426526626726826927027127227327427527627727827928028128228328428528628728828929029129229329429529629729829930030130230330430530630730830931031131231331431531631731831932032132232332432532632732832933033133233333433533633733833934034134234334434534634734834935035135235335435535635735835936036136236336436536636736836937037137237337437537637737837938038138238338438538638738838939039139239339439539639739839940040140240340440540640740840941041141241341441541641741841942042142242342442542642742842943043143243343443543643743843944044144244344444544644744844945045145245345445545645745845946046146246346446546646746846947047147247347447547647747847948048148248348448548648748848949049149249349449549649749849950050150250350450550650750850951051151251351451551651751851952052152252352452552652752852953053153253353453553653753853954054154254354454554654754854955055155255355455555655755855956056156256356456556656756856957057157257357457557657757857958058158258358458558658758858959059159259359459559659759859960060160260360460560660760860961061161261361461561661761861962062162262362462562662762862963063163263363463563663763863964064164264364464564664764864965065165265365465565665765865966066166266366466566666766866967067167267367467567667767867968068168268368468568668768868969069169269369469569669769869970070170270370470570670770870971071171271371471571671771871972072172272372472572672772872973073173273373473573673773873974074174274374474574674774874975075175275375475575675775875976076176276376476576676776876977077177277377477577677777877978078178278378478578678778878979079179279379479579679779879980080180280380480580680780880981081181281381481581681781881982082182282382482582682782882983083183283383483583683783883984084184284384484584684784884985085185285385485585685785885986086186286386486586686786886987087187287387487587687787887988088188288388488588688788888989089189289389489589689789889990090190290390490590690790890991091191291391491591691791891992092192292392492592692792892993093193293393493593693793893994094194294394494594694794894995095195295395495595695795895996096196296396496596696796896997097197297397497597697797897998098198298398498598698798898999099199299399499599699799899910001001100210031004100510061007100810091010101110121013101410151016101710181019102010211022102310241025102610271028102910301031103210331034103510361037103810391040104110421043104410451046104710481049105010511052105310541055105610571058105910601061106210631064106510661067106810691070107110721073107410751076107710781079108010811082108310841085108610871088108910901091109210931094109510961097109810991100110111021103110411051106110711081109111011111112111311141115111611171118111911201121112211231124112511261127112811291130113111321133113411351136113711381139114011411142114311441145114611471148114911501151115211531154115511561157115811591160116111621163116411651166116711681169117011711172117311741175117611771178117911801181118211831184118511861187118811891190119111921193119411951196119711981199120012011202120312041205120612071208120912101211121212131214121512161217121812191220 |
- //===== 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.
- //= - GM NPC.
- //===== Changelogs: ==========================================
- //= 1.0 First Version. [Capuche]
- //============================================================
- - script Manager_TE -1,{
- OnAgitInit3:
- .@map$ = strnpcinfo(4);
- if (.@map$ == "") end;
- .@npc_name$ = strnpcinfo(0);
- .@guild_id = getcastledata(.@map$,CD_GUILD_ID);
- if (.@guild_id == 0) {
- killmonster .@map$, .@npc_name$ +"::OnMyMobDead";
- donpcevent strnpcinfo(0)+"::OnEmpSpawn";
- if (compare(.@map$,"te_aldecas")) {
- monster .@map$,0,0,"Evil Druid",1117,10,.@npc_name$ +"::OnMyMobDead";
- monster .@map$,0,0,"Khalitzburg",1132,4,.@npc_name$ +"::OnMyMobDead";
- monster .@map$,0,0,"Abysmal Knight",1219,2,.@npc_name$ +"::OnMyMobDead";
- monster .@map$,0,0,"Executioner",1205,1,.@npc_name$ +"::OnMyMobDead";
- monster .@map$,0,0,"Penomena",1216,10,.@npc_name$ +"::OnMyMobDead";
- monster .@map$,0,0,"Alarm",1193,18,.@npc_name$ +"::OnMyMobDead";
- monster .@map$,0,0,"Clock",1269,9,.@npc_name$ +"::OnMyMobDead";
- monster .@map$,0,0,"Raydric Archer",1276,7,.@npc_name$ +"::OnMyMobDead";
- monster .@map$,0,0,"Wanderer",1208,3,.@npc_name$ +"::OnMyMobDead";
- monster .@map$,0,0,"Alice",1275,1,.@npc_name$ +"::OnMyMobDead";
- monster .@map$,0,0,"Bloody Knight",1268,1,.@npc_name$ +"::OnMyMobDead";
- monster .@map$,0,0,"Dark Lord",1272,1,.@npc_name$ +"::OnMyMobDead";
- 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,.@npc_name$ +"::OnMyMobDead";
- monster .@map$,.@emproom[0],.@emproom[1],"Tower Keeper",1270,4,.@npc_name$ +"::OnMyMobDead";
- monster .@map$,.@emproom[0],.@emproom[1],"Bloody Knight",1268,1,.@npc_name$ +"::OnMyMobDead";
- monster .@map$,.@emproom[0],.@emproom[1],"Abysmal Knight",1219,1,.@npc_name$ +"::OnMyMobDead";
- monster .@map$,.@emproom[0],.@emproom[1],"Raydric Archer",1276,5,.@npc_name$ +"::OnMyMobDead";
- }
- else if (compare(.@map$,"te_prtcas")) {
- monster .@map$,0,0,"Raydric",1163,10,.@npc_name$ +"::OnMyMobDead";
- monster .@map$,0,0,"Khalitzburg",1132,10,.@npc_name$ +"::OnMyMobDead";
- monster .@map$,0,0,"Abysmal Knight",1219,5,.@npc_name$ +"::OnMyMobDead";
- monster .@map$,0,0,"Bloody Knight",1268,5,.@npc_name$ +"::OnMyMobDead";
- monster .@map$,0,0,"Stormy Knight",1251,1,.@npc_name$ +"::OnMyMobDead";
- monster .@map$,0,0,"Hatii",1252,1,.@npc_name$ +"::OnMyMobDead";
- monster .@map$,0,0,"Raydric Archer",1276,5,.@npc_name$ +"::OnMyMobDead";
- monster .@map$,0,0,"Gryphon",1259,2,.@npc_name$ +"::OnMyMobDead";
- monster .@map$,0,0,"Chimera",1283,2,.@npc_name$ +"::OnMyMobDead";
- monster .@map$,0,0,"Alice",1275,1,.@npc_name$ +"::OnMyMobDead";
- monster .@map$,0,0,"Zealotus",1200,1,.@npc_name$ +"::OnMyMobDead";
- 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,.@npc_name$ +"::OnMyMobDead";
- monster .@map$,.@emproom[0],.@emproom[1],"Chief Guardian Knight of Emperium",1251,1,.@npc_name$ +"::OnMyMobDead";
- monster .@map$,.@emproom[0],.@emproom[1],"Hatii",1252,1,.@npc_name$ +"::OnMyMobDead";
- monster .@map$,.@emproom[0],.@emproom[1],"Guardian Knight of Emperium",1219,2,.@npc_name$ +"::OnMyMobDead";
- monster .@map$,.@emproom[0],.@emproom[1],"Raydric Archer",1276,5,.@npc_name$ +"::OnMyMobDead";
- }
- disablenpc "Kafra Employee#"+ replacestr(.@map$, "cas", "");
- }
- else {
- requestguildinfo .@guild_id;
- donpcevent "::OnFlagTE" + strnpcinfo(2);// Guild emblem on flags.
- if (getcastledata(.@map$,CD_ENABLED_KAFRA) == 0)
- disablenpc "Kafra Employee#"+ replacestr(.@map$, "cas", "");
- // 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" )) {
- 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;
- OnAgitStart3:
- .@map$ = strnpcinfo(4);
- if (.@map$ == "") end;
- if (agitcheck3()) {
- maprespawnguildid .@map$, getcastledata(.@map$,CD_GUILD_ID),2;// warp all non-guild members
- gvgon3 .@map$;
- donpcevent strnpcinfo(0)+"::OnEmpSpawn";
- callsub S_Message,"OnCommandOn";
- }
- end;
- OnAgitEnd3:
- .@map$ = strnpcinfo(4);
- if (.@map$ == "") end;
- gvgoff3 .@map$;
- if (getcastledata(.@map$,CD_GUILD_ID))
- killmonster .@map$, strnpcinfo(0) +"::OnAgitBreak";
- callsub S_Message,"OnReset";
- end;
- OnAgitBreak:
- .@guild_id = getcharid(2);
- .@map$ = strnpcinfo(4);
- .@economy = getcastledata(.@map$,CD_CURRENT_ECONOMY) - 5;// Adjust economy Invest Level for Castle
- if (.@economy < 1)
- setcastledata .@map$, CD_CURRENT_ECONOMY,1;
- else
- setcastledata .@map$, CD_CURRENT_ECONOMY,.@economy;
- .@defense = getcastledata(.@map$,CD_CURRENT_DEFENSE) - 5;// Adjust Defense Invest Level for Castle
- if (.@defense < 1)
- setcastledata .@map$, CD_CURRENT_DEFENSE,1;
- else
- setcastledata .@map$, CD_CURRENT_DEFENSE,.@defense;
- setcastledata .@map$,CD_GUILD_ID,.@guild_id;
- // Reset Invest information and refresh castle data
- for ( .@i = CD_INVESTED_ECONOMY; .@i < CD_ENABLED_GUARDIAN00; .@i++ )
- setcastledata .@map$,.@i,0;
- donpcevent strnpcinfo(0) +"::OnAgitInit3";// spawn guardians / monsters
- // Erase Guardian Database information if the new owners do not have Guardian Research.
- if (getgdskilllv(.@guild_id,10002) == 0) {
- for ( .@i = CD_ENABLED_GUARDIAN00; .@i < CD_MAX; .@i++ )
- setcastledata .@map$,.@i,0;
- }
- mapannounce .@map$,"Emperium has been destroyed.",bc_map,"0x00FF00",FW_BOLD,20,0,40;
- maprespawnguildid .@map$,.@guild_id,2;// Respawn all but new castle-occupants, don't remove monsters.
- sleep 500;
- if (agitcheck3())
- donpcevent strnpcinfo(0) +"::OnEmpSpawn";
- sleep 7000;
- announce "The [" + getcastlename(.@map$) + "] castle has been conquered by the [" + getguildName(.@guild_id) + "] guild.",bc_all|bc_woe;
- end;
- OnGuildBreak:
- .@map$ = strnpcinfo(4);
- if (.@map$ == "") end;
- .@tmp$ = replacestr(.@map$, "cas", "");
- killmonster .@map$, "Kafra Employee#"+ .@tmp$ +"::OnGuardianDied";
- disablenpc "Kafra Employee#"+ .@tmp$;
- setcastledata .@map$,CD_GUILD_ID,0;
- sleep 7000;
- announce "Guild Base [" + getcastlename(.@map$) + "] has been abandoned.",bc_all;
- donpcevent strnpcinfo(0) +"::OnAgitInit3";
- end;
- S_Message:
- .@map$ = strnpcinfo(4);
- .@guild_id = getcastledata(.@map$,CD_GUILD_ID);
-
- if (.@guild_id)
- announce "The [" + getcastlename(.@map$) + "] castle is occupied by the [" + 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_aldecas1") {
- donpcevent "Blacksmith Cano#tegod01::OnInit";// god item TE
- $2012_tegod_kafra = 0;
- $@2012_tegirls_alde01 = 0;
- }
- else if (.@map$ == "te_prtcas01") {
- $2012_tegod_gloria = 0;
- $@2012_tegirls_prt01 = 0;
- donpcevent "Blacksmith Kai#tegod01::OnInit";
- }
- return;
- OnMyMobDead:
- end;
- }
- // Guild Kafras
- //============================================================
- - script Kafra_Staff_TE -1,{
- .@guild_id = getcastledata( strnpcinfo(4),CD_GUILD_ID );
- .@guildname$ = getguildname(.@guild_id);
- cutin "kafra_01",2;
- mes "[Kafra Employee]";
- if (.@guild_id == getcharid(2)) {
- mes "Welcome. ^ff0000" + .@guildname$ + "^000000 Member.";
- mes "The Kafra Corporation will stay with you wherever you go.";
- next;
- switch( select( "Use Storage", "Use Teleport Service", "Rent a Pushcart", "Cancel" ) ) {
- case 1:
- if (getskilllv("NV_BASIC") > 5) {
- mes "[Kafra Employee]";
- mes "Here, let me open";
- mes "your Storage for you.";
- mes "Thank you for using";
- mes "the Kafra Service.";
- close2;
- openstorage;
- } else {
- mes "[Kafra Employee]";
- mes "I'm sorry, but you";
- mes "need the Novice's";
- mes "Basic Skill Level 6 to";
- mes "use the Storage Service.";
- 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 Employee]";
- if (BaseClass != Job_Merchant) {
- mes "I'm sorry, but the";
- mes "Pushcart rental service";
- mes "is only available to Merchants,";
- mes "Blacksmiths and Alchemists.";
- close2;
- }
- else if (checkcart()) {
- mes "You already have";
- mes "a Pushcart equipped.";
- mes "Unfortunately, we can't";
- mes "rent more than one to";
- mes "each customer at a time.";
- close2;
- }
- else {
- mes "The Pushcart rental";
- mes "fee is 800 zeny. Would";
- mes "you like to rent a Pushcart?";
- next;
- if (select( "Rent a Pushcart","Cancel" ) == 1) {
- if (Zeny < 800) {
- mes "[Kafra Employee]";
- mes "I'm sorry, but you";
- mes "don't have enough";
- mes "zeny to pay the Pushcart";
- mes "rental fee of 800 zeny.";
- close2;
- }
- else {
- RESRVPTS = RESRVPTS + 80;
- Zeny = Zeny - 800;
- setcart();
- }
- }
- }
- break;
- case 4:
- mes "[Kafra Employee]";
- mes "We, here at Kafra Corporation,";
- mes "are always endeavoring to provide you with the best services. We hope that we meet your adventuring needs and standards of excellence.";
- close2;
- break;
- }
- }
- else {
- mes "I am instructed to only offer my services to the ^ff0000"+ .@guildname$ +"^000000 Guild. Please try another Kafra Employee around here. Sorry for the inconvenience.";
- close2;
- }
- cutin "",255;
- end;
- S_Warp:
- mes "[Kafra Employee]";
- mes "Please choose";
- mes "your destination.";
- next;
- switch( select( getarg(0) + " -> 200 z", "Cancel it" ) ) {
- case 1:
- if (Zeny < 200) {
- mes "[Kafra Employee]";
- mes "I'm sorry, but you don't have";
- mes "enough zeny for the Teleport";
- mes "Service. The fee to teleport";
- mes "to "+getarg(0)+" is 200 zeny.";
- 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$,CD_GUILD_ID);
- .@guildmaster$ = getguildmaster(.@guild_id);
- mes .@npc_name$;
- if (.@guild_id == 0) {
- mes "I have been waiting for a master to fulfill my destiny.";
- mes "Brave soul... fate will guide you towards your future...";
- close;
- }
- if (strcharinfo(0) != .@guildmaster$) {
- mes "No matter how much you pester me, I'll still follow my master ^ff0000"+.@guildmaster$+"^000000. Where are the Guardians?! Send these ruffians away right now!";
- close;
- }
- mes "Welcome. My honorable master, ^ff0000"+strcharinfo(0)+"^000000...";
- mes "Your humble servent, "+strnpcinfo(1)+", is here to serve you.";
- next;
- switch( select( "Castle briefing", "Invest in commercial growth", "Invest in Castle Defenses", "Summon Guardian", "Hire / Fire a Kafra Employee", "Go into Master's room" ) ) {
- case 1:
- .@economy_today = getcastledata(.@map$,CD_INVESTED_ECONOMY);
- .@defense_today = getcastledata(.@map$,CD_INVESTED_DEFENSE);
- mes .@npc_name$;
- mes "I will report the Castle briefing, Master.";
- mes " ";
- mes "^0000ffNow, the commercial growth level is "+GetCastleData(.@map$,CD_CURRENT_ECONOMY)+".";
- if (.@economy_today > 0)
- mes " You invested "+.@economy_today+" times in past 1 day.";
- mes " Now, the Castle Defense level is "+GetCastleData(.@map$,CD_CURRENT_DEFENSE)+".^000000";
- if (.@defense_today > 0)
- mes " ^0000ff- You invested "+.@defense_today+" times in past 1 day.^000000";
- mes " ";
- mes "That's all I have to report, Master.";
- close;
- case 2:
- .@economy = getcastledata(.@map$,CD_CURRENT_ECONOMY);
- 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 < getarraysize(.@eco_invest); .@i += 2 )
- if (.@economy <= .@eco_invest[.@i]) break;
- callsub( S_Invest, 4, .@eco_invest[.@i+1], getcastledata(.@map$,CD_INVESTED_ECONOMY), "commercial growth", "quantity of goods made by the guild will increase", "future", "economist", "riches" );
- case 3:
- .@defense = getcastledata(.@map$,CD_CURRENT_DEFENSE);
- 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 < getarraysize(.@def_invest); .@i += 2 )
- if (.@defense <= .@def_invest[.@i]) break;
- callsub( S_Invest, 5, .@def_invest[.@i+1], getcastledata(.@map$,CD_INVESTED_DEFENSE), "Castle Defenses", "durability of Guardians and the Emperium will increase", "coming battles", "strategist", "Defenses" );
- case 4:
- mes .@npc_name$;
- mes "Will you summon a Guardian? It'll be a protector to defend us loyally.";
- mes "Please select a guardian to defend us.";
- next;
- GuardianData( .@mob_id, .@x, .@y, .@name$ );
- for ( .@i = 0; .@i < MAX_GUARDIANS ; .@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 "Will you summon the chosen guardian? 10,000 zeny are required to summon a Guardian.";
- next;
- if (select( "Summon","Cancel" ) == 2) {
- mes .@npc_name$;
- mes "I did as you ordered. But please remember if you the have money to spare, it'll be better to set it up.";
- close;
- }
- mes .@npc_name$;
- if (getgdskilllv(.@guild_id,10002) == 0) {
- mes "Master, we have not the resources to Summon the Guardian. If you want to accumulate them, you have to learn the Guild skill. We failed to summon the Guardian.";
- }
- else if (getcastledata( .@map$,(.@s + CD_ENABLED_GUARDIAN00) ) == 1)
- mes "Master, you already have summoned that Guardian. We cannot summon another.";
- else if (Zeny < 10000)
- mes "Well... I'm sorry but we don't have funds to summon the Guardian. We failed to summon the Guardian.";
- else {
- Zeny = Zeny - 10000;
- setcastledata .@map$,(.@s + CD_ENABLED_GUARDIAN00),1;
- guardian .@map$, .@x[.@s], .@y[.@s], .@name$[.@s], .@mob_id[.@s], "Kafra Employee#"+ replacestr(.@map$, "cas", "") +"::OnGuardianDied", .@s;
- mes "We completed the summoning of the Guardian. Our defenses are now increased with it in place.";
- }
- close;
- case 5:
- mes .@npc_name$;
- if (getcastledata(.@map$,CD_ENABLED_KAFRA) == 1) {
- mes "We are currently hiring a Kafra Employee... Do you want to fire the Kafra Employee?";
- next;
- if (select( "Fire","Cancel" ) == 2) {
- mes .@npc_name$;
- mes "She worked hard in my opinion. It was a good decision to keep her.";
- close;
- }
- cutin "kafra_01",2;
- mes "[ Hired Kafra Employee ]";
- mes "I worked so hard... How can you do that, Master?... Please... Please reconsider... Check it again, Master... Please...";
- next;
- if (select( "Fire","Cancel" ) == 2) {
- mes "[ Hired Kafra Employee ]";
- mes "I'll work hard for you... Thank you!";
- close;
- }
- mes "[ Hired Kafra Employee ]";
- mes "Oh, my goodness! This is nonsense!";
- next;
- cutin "",255;
- disablenpc "Kafra Employee#" + replacestr(.@map$, "cas", "");
- setcastledata .@map$,CD_ENABLED_KAFRA,0;
- mes .@npc_name$;
- mes "....";
- mes "I have discharged the Kafra Employee... But... are you unsatisfied with something?";
- close;
- }
- mes "Will you contact the kafra Main Office and Hire a Employee for our Castle?";
- mes "^ff0000 10,000 zeny is required for their services. ";
- next;
- if (select( "Hire.","Cancel" ) == 2) {
- mes .@npc_name$;
- mes "I did as you ordered, but some of our members will be unhappy. It will be better to hire a Kafra Employee quickly.";
- close;
- }
- mes .@npc_name$;
- if (getgdskilllv(.@guild_id,10001) == 0) {
- mes "Master, we can't hire a Kafra Employee because we don't have a contract with the Kafra Main Office. If you want to obtain a contract with the Kafra Main Office, you will need to learn the Guild skill first.";
- close;
- }
- if (Zeny < 10000) {
- mes "Well... I'm sorry but we don't have enough funds to hire a Kafra Employee.";
- close;
- }
- Zeny = Zeny - 10000;
- enablenpc "Kafra Employee#" + replacestr(.@map$, "cas", "");
- setcastledata .@map$,CD_ENABLED_KAFRA,1;
- mes "We obtained a contract with the kafra Main Office, and hired a Kafra Employee.";
- next;
- cutin "kafra_01",2;
- mes "[ Hired Kafra Employee ]";
- mes "How do you do? I was dispatched from the Main Office.";
- mes "I'll do my best to not tarnish the reputation of the Guild.";
- next;
- cutin "",255;
- mes .@npc_name$;
- mes "The Contract terms of the hired Kafra Employee are for 1 month and after this term, you will need to pay an additional fee.";
- mes "It will be useful for our members.";
- close;
- case 6:
- mes .@npc_name$;
- mes "Do you want to visit the room where our valuables are stored?";
- mes "That room is restricted to you... you are the only one with access to it.";
- 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( "Go into Master's room.","Cancel" ) ) {
- case 1:
- mes .@npc_name$;
- mes "I'll show you the secret path. Follow me...please.";
- mes "When you want to return here, please press the secret switch.";
- 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 "Goods are produced once a day... if you don't remove them in time, they will not be produced anymore.";
- mes "Therefore, it will be better if you check up on them from time to time.";
- 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 invest in "+ getarg(3) +", the "+ getarg(4) +". Therfore, if you consider our "+ getarg(5) +", investments will be a necessity.";
- mes " ";
- mes "Initially, you are able to invest just once but if you pay more money, you will be able to invest twice.";
- mes " ";
- if (getcastledata(strnpcinfo(4),CD_CURRENT_ECONOMY) >= 100) {
- mes "^ff0000The "+ getarg(3) +" level of our Castle is at it's highest, 100%. No more investments are needed. Just as I have expected from a great "+ getarg(6) +" like you, Master.^000000";
- close;
- }
- if (.@num_invest_today >= 2) {
- mes "^ff0000You have already invested twice today. You cannot invest any more.^000000 I expect the "+ getarg(7) +" of the guild to grow at a high rate.";
- close;
- }
- if (.@num_invest_today == 0)
- mes "The current investment amount required is ^ff0000"+.@cost_invest+"^000000 zeny. Will you invest?";
- else
- mes "You've invested once today... if you wish to invest once more, ^ff0000"+.@cost_invest+"^000000 more zeny will be needed.";
- next;
- switch( select( "Invest in "+ getarg(3) +".","Cancel" ) ) {
- case 1:
- mes .@npc_name$;
- if (Zeny < .@cost_invest) {
- mes "I'm sorry but there is not enough zeny to invest. You will have to try again when you have the funds, Master.";
- close;
- }
- Zeny = Zeny - .@cost_invest;
- setcastledata strnpcinfo(4), getarg(0), (.@num_invest_today +1);
- mes "We finished the investment safely. I expect that our "+ getarg(3) +" level will be increased by tomorrow.";
- close;
- case 2:
- mes .@npc_name$;
- mes "I'll do as you bid, my master... There is no hurry. We will do our best.";
- 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 < getarraysize(.@data$); .@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(3),.@index ), .@data$[.@i+3];
- .@index++;
- }
- }
- OnSpawnGuardians:
- GuardianData( .@mob_id, .@x, .@y, .@name$ );
- .@map$ = strnpcinfo(4);
- .@tmp$ = replacestr(.@map$, "cas", "");
- killmonster .@map$, "Kafra Employee#"+ .@tmp$ +"::OnGuardianDied";
- for ( .@i = 0; .@i < MAX_GUARDIANS; .@i++ ) {
- if (getcastledata( .@map$,(.@i + CD_ENABLED_GUARDIAN00) ))
- guardian .@map$, .@x[.@i], .@y[.@i], .@name$[.@i], .@mob_id[.@i], "Kafra Employee#"+ .@tmp$ +"::OnGuardianDied",.@i;
- }
- }
- // Guild Dungeon Entrances
- //============================================================
- - script lever2_TE -1,{
- .@guild_id = getcastledata( strnpcinfo(4),CD_GUILD_ID );
- if (.@guild_id == 0) {
- mes "[Ringing Voice]";
- mes "'Those who overcome an ordeal shows a great deal of bravery... and will find their way to another ordeal.'";
- close;
- }
- mes "[Ringing Voice]";
- mes "'Only the truly brave can take the test.'";
- next;
- mes " ";
- mes "There's a small lever. Will you pull it?";
- next;
- if (select( "Pull.","Don't pull." ) == 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's a small lever. Will you pull it?";
- next;
- if ( select( "Pull.","Do not." ) == 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;
- .@guild_id = getcastledata(.@map$,CD_GUILD_ID);
- if (.@guild_id == 0) end;
- .@economy = getcastledata(.@map$,CD_CURRENT_ECONOMY);
- .@defense = getcastledata(.@map$,CD_CURRENT_DEFENSE);
- .@economy_today = getcastledata(.@map$,CD_INVESTED_ECONOMY);
- .@defense_today = getcastledata(.@map$,CD_INVESTED_DEFENSE);
- killmonster .@map$, strnpcinfo(0)+"::OnTreasureDied";
- if (.@economy_today) {
- .@economy = .@economy + .@economy_today + (rand(2) && getgdskilllv(.@guild_id,10014));
- .@economy = ( .@economy > 100 ) ? 100 : .@economy;
- setcastledata .@map$,CD_CURRENT_ECONOMY,.@economy;
- setcastledata .@map$,CD_INVESTED_ECONOMY,0;
- }
- if (.@defense_today) {
- .@defense = .@defense + .@defense_today;
- .@defense = ( .@defense > 100 ) ? 100 : .@defense;
- setcastledata .@map$,CD_CURRENT_DEFENSE,.@defense;
- setcastledata .@map$,CD_INVESTED_DEFENSE,0;
- }
- if (.@map$ == "te_aldecas1") {
- setarray .@data[0],// <mob_id>, <x>,<y>
- 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 + ( .@economy /5 ) ) *3;// x3 <-> data[] size
- for ( .@i = 0; .@i < getarraysize(.@data) && .@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 warp Template
- //============================================================
- function script F_flag_woe_TE {
- .@castle$ = getarg(1);
- .@guild_id = getcastledata( .@castle$,CD_GUILD_ID );
- if (.@guild_id == 0) {
- mes "[ Edict of the Divine Rune-Midgarts Kingdom ]";
- mes " ";
- mes "1. Follow the ordinance of The Divine Rune-Midgarts Kingdom, ";
- mes "We declare that";
- mes "there is no formal master of this castle.";
- mes " ";
- mes "2. To the one who can ";
- mes "overcome all trials";
- mes "and destroy the Emperium,";
- mes "the king will endow the one with";
- mes "ownership of this castle.";
- close;
- }
- if (.@guild_id == getcharid(2) && getarg(0)) {
- mes "[ Echoing Voice ]";
- mes "Brave ones...";
- mes "Do you wish to return to your honorable place?";
- next;
- if (select( "Return to the guild castle.","Quit." ) == 1) {
- if (jobcanentermap(.@castle$) == 0) {
- mes "Tertiary job class and users with expanded levels are not allowed to participate in Training Siege Battles.";
- close;
- }
- if (getcastledata( getarg(1),CD_GUILD_ID ) == getcharid(2))
- warp getarg(1),getarg(2),getarg(3);
- end;
- }
- }
- .@guildname$ = getguildname(.@guild_id);
- .@guildmaster$ = getguildmaster(.@guild_id);
- mes "[ Edict of the Divine Rune-Midgarts Kingdom ]";
- mes " ";
- mes "1. Follow the ordinance of The Divine Rune-Midgarts Kingdom, ";
- mes "we approve that this place is in";
- mes "the private prossession of ^ff0000"+.@guildname$+"^000000 Guild.";
- mes " ";
- mes "2. The guild Master of ^ff0000"+.@guildname$+"^000000 Guild is";
- mes "^ff0000"+.@guildmaster$+"^000000";
- mes "If there is anyone who objects to this,";
- mes "prove your strength and honor with a steel blade in your hand.";
- close;
- }
- - script simple_info_TE -1,{
- callfunc( "F_flag_woe_TE",0,strnpcinfo(4) );
- OnInit:
- if (strnpcinfo(4) != "")
- flagemblem getcastledata( strnpcinfo(4),CD_GUILD_ID );
- end;
- }
- - script flag_te GUILD_FLAG,{
- end;
- OnInit:
- if (strnpcinfo(2) != "")
- flagemblem getcastledata( strnpcinfo(2),CD_GUILD_ID );
- end;
- }
- // GM NPC
- //============================================================
- 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;
- }
- }
- // God Item Hervor & Jormungand
- sec_in02,20,20,0 script Test Guide CLEAR_NPC,{
- mes "Password?";
- next;
- if (callfunc( "F_GM_NPC", 18543792,0, 0,99999999 ) < 1) {
- mes "Aww...";
- close;
- }
- mes "We provide material items needed for testing TE.";
- next;
- switch( select( "Materials for Hervor","Materials for Jormungand" ) ) {
- case 1:
- getitem 6595,2;// Hammer_Of_Velund
- getitem 6596,1;// Anvil_Of_Velund
- getitem 6594,4;// Magic_Bronze_Bullion
- getitem 6597,3;// Bracelet_Of_Velund
- getitem 6602,1;// Secret_Of_Rune
- getitem 6605,1;// Muspellium
- getitem 6604,1;// Essence_Of_Rune
- getitem 2115,1;// Valkyrja's_Shield
- end;
- case 2:
- getitem 6603,4;// Skin_Of_Hraesvelg
- getitem 6599,1;// Spirit_Of_Hugin
- getitem 6598,1;// Rib_Of_Jormungand
- getitem 6601,4;// Chisel_Of_Giant
- getitem 6600,1;// Spirit_Of_Munin
- getitem 6605,1;// Muspellium
- getitem 6604,1;// Essence_Of_Rune
- getitem 1473,1;// Wizardy_Staff
- end;
- }
- }
|