diff options
Diffstat (limited to 'npc')
32 files changed, 1222 insertions, 963 deletions
diff --git a/npc/custom/bartershop.txt b/npc/custom/bartershop.txt new file mode 100644 index 000000000..bcb61795e --- /dev/null +++ b/npc/custom/bartershop.txt @@ -0,0 +1,21 @@ +//===== Hercules Script ====================================== +//= Barter shop demo +//===== By: ================================================== +//= 4144 +//===== Current Version: ===================================== +//= 1.0 +//===== Description: ========================================= +//= Barter shop demo in prontera. +//============================================================ + +prontera,159,284,4 trader Barter Shop#prt 4_M_KID1,{ +OnInit: + tradertype(NST_BARTER); + sellitem White_Herb, 100, Red_Potion, 2; + sellitem Blue_Herb, 200, Orange_Potion, 3; + sellitem Green_Herb, 100, Red_Potion, 4; + sellitem White_Herb, 100, Orange_Potion, 1; + sellitem Apple, -1, Orange_Potion, 1; + sellitem Praetorian_Shield, 100, Berserk_Potion, 10; + end; +} diff --git a/npc/custom/etc/quest_warper.txt b/npc/custom/etc/quest_warper.txt index 35b863e9d..2ae2e7f7f 100644 --- a/npc/custom/etc/quest_warper.txt +++ b/npc/custom/etc/quest_warper.txt @@ -82,7 +82,7 @@ function script Q_Warpra { case 2: warp $QW_SP_WarpMap$, $QW_SP_WarpX, $QW_SP_WarpY; close2; - debugmes "Please check your special warp menu settings on the Warpra."; + consolemes(CONSOLEMES_WARNING, "Please check your special warp menu settings on the Warpra."); end; case 3: goto L_town; case 4: goto L_dungeon; @@ -1533,7 +1533,7 @@ function script QWS_Dungeon_Warpra { mes "[Warpra]"; mes "Sorry, I can only unlock this location."; } else - debugmes "QWS_Dungeon_Warpra error, improper syntax?"; + consolemes(CONSOLEMES_ERROR, "QWS_Dungeon_Warpra error, improper syntax?"); return; function QWS_D_setbin { @@ -1577,7 +1577,7 @@ function script QWS_Town_Warpra { } else if (QWS_T_getbin(getarg(0)) == 1) { callfunc "Q_Warpra",0; } else - debugmes "QWS_Town_Warpra error, improper syntax ?"; + consolemes(CONSOLEMES_ERROR, "QWS_Town_Warpra error, improper syntax ?"); return; function QWS_T_setbin { diff --git a/npc/custom/events/disguise.txt b/npc/custom/events/disguise.txt index b9071d162..fde5e544a 100644 --- a/npc/custom/events/disguise.txt +++ b/npc/custom/events/disguise.txt @@ -8,6 +8,7 @@ //= Note: This script requires PCRE to run properly. //= 5.0 Last update by GmOcean. //= 5.1 Cleaned and standardized, mostly. [Euphy] +//= 5.2 Fix a bug that causes this event run indefinitely [AnnieRuru] //============================================================ prontera,160,155,4 script Disguise Event 4_M_NFDEADMAN,{ @@ -183,6 +184,15 @@ OnTimer30000: deletepset 1; stopnpctimer; setnpctimer 0; + ++.RoundCount; + if (.RoundCount >= .Rounds) { + setnpcdisplay "Disguise Event", 4_M_NFDEADMAN; + .RoundCount = 0; + .Change = 0; + .EventON = 0; + npctalk "Thank you all for playing. That was the last round of the Disguise Event. Come play again later."; + end; + } initnpctimer; end; OnTimer60000: diff --git a/npc/custom/events/mushroom_event.txt b/npc/custom/events/mushroom_event.txt index b9c54c09e..fc7446814 100644 --- a/npc/custom/events/mushroom_event.txt +++ b/npc/custom/events/mushroom_event.txt @@ -41,7 +41,7 @@ OnMinute10: // Start time (every hour) set .status,1; set .Spawn,rand(1,10); // How many Mushrooms should spawn? set .Map$,.maps$[rand(getarraysize(.maps$))]; - killmonster .Map$,"All"; + killmonster(.Map$, "all"); monster .Map$,0,0,"Please don't kill me!",1084,.Spawn,strnpcinfo(NPC_NAME)+"::OnMobKilled"; announce "Find the Mushroom : Total of "+.Spawn+" Mushrooms have been spawned in "+.Map$+"!",0; sleep 2500; @@ -50,9 +50,12 @@ OnMinute10: // Start time (every hour) OnMobKilled: set .Spawn, .Spawn - 1; - getitem .Prize, .Amount; - if (.Spawn) announce "[ "+strcharinfo(PC_NAME)+" ] has killed a Mushroom. There are now "+.Spawn+" Mushroom(s) left.",bc_map; - else { + if (playerattached() != 0) { + getitem .Prize, .Amount; + if (.Spawn) + announce "[ "+strcharinfo(PC_NAME)+" ] has killed a Mushroom. There are now "+.Spawn+" Mushroom(s) left.",bc_map; + } + if (!.Spawn) { announce "The Find the Mushroom Event has ended. All the Mushrooms have been killed.",0; set .status,0; } diff --git a/npc/custom/quests/quest_shop.txt b/npc/custom/quests/quest_shop.txt index 739b53c02..c2481e991 100644 --- a/npc/custom/quests/quest_shop.txt +++ b/npc/custom/quests/quest_shop.txt @@ -170,13 +170,13 @@ OnEnd: function Add { if (getitemname(getarg(1)) == "null") { - debugmes "Quest reward #"+getarg(1)+" invalid (skipped)."; + consolemes(CONSOLEMES_WARNING, "Quest reward #"+getarg(1)+" invalid (skipped)."); return; } setarray .@j[0],getarg(2),getarg(3),getarg(4); for(set .@i,5; .@i<getargcount(); set .@i,.@i+2) { if (getitemname(getarg(.@i)) == "null") { - debugmes "Quest requirement #"+getarg(.@i)+" invalid (skipped)."; + consolemes(CONSOLEMES_WARNING, "Quest requirement #"+getarg(.@i)+" invalid (skipped)."); return; } else setarray .@j[.@i-2],getarg(.@i),getarg(.@i+1); diff --git a/npc/custom/quests/thq/THQS_TTShop.txt b/npc/custom/quests/thq/THQS_TTShop.txt index 96e7346d3..4c12f9938 100644 --- a/npc/custom/quests/thq/THQS_TTShop.txt +++ b/npc/custom/quests/thq/THQS_TTShop.txt @@ -93,7 +93,7 @@ function script thqs_trade_token { // getarg(1) - .@mp$ -> PRICE function script thqs_menu_buy { if( getargcount() != 2 ) { - debugmes "thqs_menu_buy: Wrong number of arguments!!"; + consolemes(CONSOLEMES_ERROR, "thqs_menu_buy: Wrong number of arguments!!"); close; } @@ -101,7 +101,7 @@ function script thqs_menu_buy { .@mp$ = getarg(1); if( getarraysize( getd(.@mw$) ) != getarraysize( getd(.@mp$) ) ) { - debugmes "thqs_menu_buy: Missing entries in data!"; + consolemes(CONSOLEMES_ERROR, "thqs_menu_buy: Missing entries in data!"); close; } diff --git a/npc/dev/test.txt b/npc/dev/test.txt index 2822ee65c..a867a09b2 100644 --- a/npc/dev/test.txt +++ b/npc/dev/test.txt @@ -786,10 +786,10 @@ function script HerculesSelfTestHelper { callsub(OnCheck, "data_to_string (integer variable)", data_to_string(.@x), ".@x"); if (.errors) { - debugmes "Script engine self-test [ \033[0;31mFAILED\033[0m ]"; - debugmes "**** The test was completed with " + .errors + " errors. ****"; + consolemes(CONSOLEMES_DEBUG, "Script engine self-test [ \033[0;31mFAILED\033[0m ]"); + consolemes(CONSOLEMES_DEBUG, "**** The test was completed with " + .errors + " errors. ****"); } else { - debugmes "Script engine self-test [ \033[0;32mPASSED\033[0m ]"; + consolemes(CONSOLEMES_DEBUG, "Script engine self-test [ \033[0;32mPASSED\033[0m ]"); } return .errors; end; @@ -840,8 +840,8 @@ OnReportError: .@val$ = getarg(1,""); .@ref$ = getarg(2,""); if (.errors == 1) - debugmes "**** WARNING: Any self-test results past this point are unreliable because of previous errors. ****"; - debugmes "Error: "+.@msg$+": '"+.@val$+"' (found) != '"+.@ref$+"' (expected)"; + consolemes(CONSOLEMES_DEBUG, "**** WARNING: Any self-test results past this point are unreliable because of previous errors. ****"); + consolemes(CONSOLEMES_DEBUG, "Error: "+.@msg$+": '"+.@val$+"' (found) != '"+.@ref$+"' (expected)"); ++.errors; //end; return; diff --git a/npc/jobs/1-1e/ninja.txt b/npc/jobs/1-1e/ninja.txt index 762f94b4b..8911b5795 100644 --- a/npc/jobs/1-1e/ninja.txt +++ b/npc/jobs/1-1e/ninja.txt @@ -93,9 +93,9 @@ alberta,30,65,3 script Akagi 4_M_JOB_ASSASSIN,{ } } -que_ng,30,65,3 script Cougar#nq 4_M_JOB_ASSASSIN,{ +que_ng,30,65,3 script Kuuga Gai#nq 4_M_JOB_ASSASSIN,{ if (Upper == 2) { - mes "[Cougar]"; + mes "[Kuuga Gai]"; mes "I... I've never"; mes "seen a baby as"; mes "powerful as you!"; @@ -105,7 +105,7 @@ que_ng,30,65,3 script Cougar#nq 4_M_JOB_ASSASSIN,{ } if (Class == Job_Novice) { if (JobLevel < 10) { - mes "[Cougar]"; + mes "[Kuuga Gai]"; mes "Hm? Have you come to"; mes "learn how to be a Ninja?"; mes "You're not quite experienced"; @@ -119,7 +119,7 @@ que_ng,30,65,3 script Cougar#nq 4_M_JOB_ASSASSIN,{ mes "Excuse me."; mes "H-hello?"; next; - mes "[Cougar]"; + mes "[Kuuga Gai]"; mes "..............................."; mes "How did you do that?"; next; @@ -127,7 +127,7 @@ que_ng,30,65,3 script Cougar#nq 4_M_JOB_ASSASSIN,{ mes "Do what? I didn't"; mes "do anything, I don't think..."; next; - mes "[Cougar]"; + mes "[Kuuga Gai]"; mes "H-How are you able to"; mes "see me? I'm supposed to"; mes "be invisible to the naked eye."; @@ -140,7 +140,7 @@ que_ng,30,65,3 script Cougar#nq 4_M_JOB_ASSASSIN,{ mes "Calm down, there's no"; mes "need to get violent!"; next; - mes "[Cougar]"; + mes "[Kuuga Gai]"; mes "What...?"; mes "How did you dodge"; mes "all of my attacks?"; @@ -153,7 +153,7 @@ que_ng,30,65,3 script Cougar#nq 4_M_JOB_ASSASSIN,{ mes "to change my job"; mes "to a Ninja."; next; - mes "[Cougar]"; + mes "[Kuuga Gai]"; mes "...Oh. Is that all?"; mes "Hmm, you've got great"; mes "potential, but I can't help"; @@ -161,14 +161,14 @@ que_ng,30,65,3 script Cougar#nq 4_M_JOB_ASSASSIN,{ mes "enemies, and I can't let my"; mes "guard down for even a second."; next; - mes "[Cougar]"; + mes "[Kuuga Gai]"; mes "That Wildcat Joe is"; mes "completely ruthless...!"; mes "He could strike at any time!"; mes "He'll do anything to achieve"; mes "victory over his enemies!"; next; - mes "[Cougar]"; + mes "[Kuuga Gai]"; mes "Wait, wait, I just"; mes "thought of something."; mes "Maybe you can help me out."; @@ -177,7 +177,7 @@ que_ng,30,65,3 script Cougar#nq 4_M_JOB_ASSASSIN,{ mes "really want to be a Ninja."; next; if(select("Sure.", "No, thanks.") == 2) { - mes "[Cougar]"; + mes "[Kuuga Gai]"; mes "Hm? Well, alright."; mes "Still, I don't see"; mes "why we can't help"; @@ -185,7 +185,7 @@ que_ng,30,65,3 script Cougar#nq 4_M_JOB_ASSASSIN,{ mes "little predicament..."; close; } - mes "[Cougar]"; + mes "[Kuuga Gai]"; mes "Great! Now, I wanted to"; mes "ask Wildcat Joe if he'd"; mes "agree to a temporary truce."; @@ -193,7 +193,7 @@ que_ng,30,65,3 script Cougar#nq 4_M_JOB_ASSASSIN,{ mes "are out of weapons, so we"; mes "should get well equipped first."; next; - mes "[Cougar]"; + mes "[Kuuga Gai]"; mes "Please take this letter,"; mes "and deliver it to Wildcat"; mes "Joe in Einbroch. He's a master"; @@ -201,7 +201,7 @@ que_ng,30,65,3 script Cougar#nq 4_M_JOB_ASSASSIN,{ mes "eye out for him. Ah, and look"; mes "for him in a high place."; next; - mes "[Cougar]"; + mes "[Kuuga Gai]"; mes "Yeah, Wildcat Joe"; mes "always did have a thing"; mes "for hiding in high places."; @@ -213,7 +213,7 @@ que_ng,30,65,3 script Cougar#nq 4_M_JOB_ASSASSIN,{ close; } else if (NINJ_Q == 1) { - mes "[Cougar]"; + mes "[Kuuga Gai]"; mes "Even if this task"; mes "isn't that urgent,"; mes "please hurry over to"; @@ -222,7 +222,7 @@ que_ng,30,65,3 script Cougar#nq 4_M_JOB_ASSASSIN,{ close; } else if (NINJ_Q == 2) { - mes "[Cougar]"; + mes "[Kuuga Gai]"; mes "Did you deliver that"; mes "letter to Wildcat Joe?"; mes "I still need to know his"; @@ -232,14 +232,14 @@ que_ng,30,65,3 script Cougar#nq 4_M_JOB_ASSASSIN,{ close; } else if (NINJ_Q == 3) { - mes "[Cougar]"; + mes "[Kuuga Gai]"; mes "Ah, you've returned."; mes "So did Wildcat Joe send"; mes "you back here with his"; mes "response? Great, great,"; mes "please let me read it."; next; - mes "[Cougar]"; + mes "[Kuuga Gai]"; mes "What...?! How could he"; mes "reject my proposal for"; mes "a truce?! This can only"; @@ -247,14 +247,14 @@ que_ng,30,65,3 script Cougar#nq 4_M_JOB_ASSASSIN,{ mes "Kunai. Nuts! I have to catch"; mes "up to him, or I'm a goner!"; next; - mes "[Cougar]"; + mes "[Kuuga Gai]"; mes "Listen, you've got to help"; mes "me out again! I need you to"; mes "gather some materials so that"; mes "I can craft my own Kunai to fight Wildcat Joe. Then, I'll go ahead"; mes "and change your job to a Ninja."; next; - mes "[Cougar]"; + mes "[Kuuga Gai]"; mes "All you need"; mes "to bring me is"; mes "^3355FF5 Cyfars^000000 and"; @@ -268,7 +268,7 @@ que_ng,30,65,3 script Cougar#nq 4_M_JOB_ASSASSIN,{ mes "asked me to gather"; mes "those same materials."; next; - mes "[Cougar]"; + mes "[Kuuga Gai]"; mes "Curses! Then that means..."; mes "You actually helped Joe"; mes "in crafting his Kunai! No!"; @@ -281,7 +281,7 @@ que_ng,30,65,3 script Cougar#nq 4_M_JOB_ASSASSIN,{ } else if (NINJ_Q == 4) { if (countitem(Cyfar) < 5 || countitem(Phracon) < 1) { - mes "[Cougar]"; + mes "[Kuuga Gai]"; mes "Hurry and bring"; mes "^3355FF5 Cyfars^000000 and"; mes "^3355FF1 Phracon^000000 to me,"; @@ -291,7 +291,7 @@ que_ng,30,65,3 script Cougar#nq 4_M_JOB_ASSASSIN,{ close; } if (SkillPoint != 0) { - mes "[Cougar]"; + mes "[Kuuga Gai]"; mes "Whoa, whoa..."; mes "You still have some"; mes "leftover Skill Points."; @@ -300,7 +300,7 @@ que_ng,30,65,3 script Cougar#nq 4_M_JOB_ASSASSIN,{ mes "change jobs, right?"; close; } - mes "[Cougar]"; + mes "[Kuuga Gai]"; mes "Ah, you're back with"; mes "everything that I need."; mes "You've come earlier than"; @@ -308,14 +308,14 @@ que_ng,30,65,3 script Cougar#nq 4_M_JOB_ASSASSIN,{ mes "as promised, I'll turn"; mes "you into a Ninja."; next; - mes "[Cougar]"; + mes "[Kuuga Gai]"; mes "Let me formally introduce"; - mes "myself. I am High Ninja Cougar"; + mes "myself. I am High Ninja Kuuga Gai"; mes "in the Touga Ninja Corps, and"; mes "I'm in charge of the search"; mes "party to find Sir Kazma."; next; - mes "[Cougar]"; + mes "[Kuuga Gai]"; mes "Sir Kazma is the chief"; mes "of my village, but he's"; mes "run away. This has resulted"; @@ -323,7 +323,7 @@ que_ng,30,65,3 script Cougar#nq 4_M_JOB_ASSASSIN,{ mes "the Ninja Corps. Things are"; mes "pretty unstable right now..."; next; - mes "[Cougar]"; + mes "[Kuuga Gai]"; mes "I initially didn't want to"; mes "accept you as a Ninja because"; mes "of this complicated situation."; @@ -331,14 +331,14 @@ que_ng,30,65,3 script Cougar#nq 4_M_JOB_ASSASSIN,{ mes "you're truly worthy of joining"; mes "the Ninja ranks."; next; - mes "[Cougar]"; + mes "[Kuuga Gai]"; mes "According to his letter, even"; mes "Joe thinks highly of you. Just"; mes "remember that, as a Ninja, your"; mes "mission is your highest priority. But don't let mission objectives"; mes "supercede your conscience."; next; - mes "[Cougar]"; + mes "[Kuuga Gai]"; mes "''Secrecy above all else.''"; mes "To keep our secrets in the"; mes "shadows, you can only buy"; @@ -346,7 +346,7 @@ que_ng,30,65,3 script Cougar#nq 4_M_JOB_ASSASSIN,{ mes "authorized dealers. Please"; mes "keep that in mind."; next; - mes "[Cougar]"; + mes "[Kuuga Gai]"; mes "As of today, you are"; mes "now a proud member of the"; mes "Touga Ninja Corps. Be as"; @@ -361,7 +361,7 @@ que_ng,30,65,3 script Cougar#nq 4_M_JOB_ASSASSIN,{ close; } else { - mes "[Cougar]"; + mes "[Kuuga Gai]"; mes "How have you been?"; mes "Train hard: you want"; mes "to be able to vanish"; @@ -372,7 +372,7 @@ que_ng,30,65,3 script Cougar#nq 4_M_JOB_ASSASSIN,{ } } else { if (BaseClass == Job_Ninja) { - mes "[Cougar]"; + mes "[Kuuga Gai]"; mes "How have you been?"; mes "Train hard: you want"; mes "to be able to vanish"; @@ -381,7 +381,7 @@ que_ng,30,65,3 script Cougar#nq 4_M_JOB_ASSASSIN,{ mes "the respect of any Ninja~"; close; } else { - mes "[Cougar]"; + mes "[Kuuga Gai]"; mes "What...?"; mes "How were you able"; mes "to find me hidden"; @@ -478,7 +478,7 @@ einbroch,184,194,3 script Suspicious Man#nq 4_M_SITDOWN,{ mes "?????!!"; next; mes "[Suspicious Man]"; - mes "Why? Didn't you bring Cougar's letter for me?"; + mes "Why? Didn't you bring Kuuga Gai's letter for me?"; next; mes "["+strcharinfo(PC_NAME)+"]"; mes "Are you..."; @@ -487,7 +487,7 @@ einbroch,184,194,3 script Suspicious Man#nq 4_M_SITDOWN,{ mes "[Suspicious Man]"; mes "...Yes, but I prefer to"; mes "be called Red Leopard Joe."; - mes "Cougar sent you to me, right?"; + mes "Kuuga Gai sent you to me, right?"; mes "He's the only one who calls"; mes "me that. So you want to be"; mes "a Ninja, eh? Hmm, alright."; @@ -513,7 +513,7 @@ einbroch,184,194,3 script Suspicious Man#nq 4_M_SITDOWN,{ mes "[Red Leopard Joe]"; mes "For now, let me read"; mes "this letter. Let's see..."; - mes "Hm. I thought that Cougar"; + mes "Hm. I thought that Kuuga Gai"; mes "would want to challenge me"; mes "again, but he actually wants"; mes "a temporary truce? Hah!"; @@ -540,7 +540,7 @@ einbroch,184,194,3 script Suspicious Man#nq 4_M_SITDOWN,{ mes "[Red Leopard Joe]"; mes "Here you go."; mes "Please bring this"; - mes "letter to Cougar."; + mes "letter to Kuuga Gai."; mes "It'll take a while to"; mes "return to Amatsu, so let"; mes "me send you there directly..."; @@ -557,7 +557,7 @@ einbroch,184,194,3 script Suspicious Man#nq 4_M_SITDOWN,{ mes "Eh? I'm not sure what"; mes "happened, but it seems"; mes "that you haven't delivered"; - mes "my response to Cougar yet."; + mes "my response to Kuuga Gai yet."; mes "Shall I directly send you"; mes "to Amatsu right now?"; next; @@ -577,7 +577,7 @@ einbroch,184,194,3 script Suspicious Man#nq 4_M_SITDOWN,{ } else if (NINJ_Q == 4) { mes "[Red Leopard Joe]"; - mes "Cougar asked you to"; + mes "Kuuga Gai asked you to"; mes "gather some materials"; mes "too? Oh well, I suppose"; mes "that I can't blame him."; diff --git a/npc/merchants/advanced_refiner.txt b/npc/merchants/advanced_refiner.txt index 9632f95f7..ec263e192 100644 --- a/npc/merchants/advanced_refiner.txt +++ b/npc/merchants/advanced_refiner.txt @@ -44,14 +44,19 @@ //========================================================================= payon,157,146,6 script Suhnbi#cash 4_M_03,{ - disable_items; - mes "[Suhnbi]"; - mes "I am the Armsmith"; - mes "I can refine all kinds of weapons,"; - mes "armor and equipment, so let me"; - mes "know what you want to refine."; - next; + mes("[Suhnbi]"); + mes("I am the Armsmith"); + mes("I can refine all kinds of weapons,"); + mes("armor and equipment, so let me"); + mes("know what you want to refine."); + if (getbattleflag("features/replace_refine_npcs") == 1) { + if (openrefineryui()) + close(); + } + next(); + + disable_items; setarray .@position$[1], "Head","Body","Left hand","Right hand","Robe","Shoes","Accessory 1","Accessory 2","Head 2","Head 3"; .@menu$ = ""; for(.@i = 1; .@i<=10; ++.@i) { diff --git a/npc/merchants/hd_refine.txt b/npc/merchants/hd_refine.txt index a7fc5e922..1a5a43621 100644 --- a/npc/merchants/hd_refine.txt +++ b/npc/merchants/hd_refine.txt @@ -39,6 +39,17 @@ //== Blacksmith Mighty Hammer (+7~9) ======================= - script ::MightyHammer FAKE_NPC,{ + mes("[Blacksmith Mighty Hammer]"); + mes("I'm a blacksmith skilled in refining weapons and armors."); + mes("I can refine an item of your choice among the items you are equipped with."); + mes("Which item do you want to refine?"); + + if (getbattleflag("features/replace_refine_npcs") == 1) { + if (openrefineryui()) + close(); + } + next(); + disable_items; mes "[Blacksmith Mighty Hammer]"; mes "Unlike others, I am a blacksmith who refines a very limited number of items."; @@ -179,6 +190,10 @@ lhz_in02,280,19,3 duplicate(MightyHammer) Mighty Hammer#lhz 4_M_DWARF //== Basta (+10 and up) ==================================== - script ::Basta FAKE_NPC,{ + if (getbattleflag("features/replace_refine_npcs") == 1) { + if (openrefineryui()) + end(); + } disable_items; mes "[Basta]"; mes "I'm the best Blacksmith in the whole world, Basta."; diff --git a/npc/merchants/refine.txt b/npc/merchants/refine.txt index 7f1b4d9a3..19ebf4a8e 100644 --- a/npc/merchants/refine.txt +++ b/npc/merchants/refine.txt @@ -589,14 +589,19 @@ lhz_in02,282,20,7 script Fulerr 4_M_LGTMAN,{ // If you enable this function, be sure to edit the value of .@safe to the max // safe refine in refine_db.txt as well. function script refinemain { + mesf("[%s]", getarg(0)); + mes("I'm the Armsmith."); + mes("I can refine all kinds of weapons, armor and equipment, so let me"); + mes("know what you want me to refine."); + + if (getbattleflag("features/replace_refine_npcs") == 1) { + if (openrefineryui()) + close(); + } + next(); + disable_items; .@features = getarg(1); - mes "[" + getarg(0) + "]"; - mes "I'm the Armsmith."; - mes "I can refine all kinds of weapons, armor and equipment, so let me"; - mes "know what you want me to refine."; - next; - setarray .@position$[1], "Head","Body","Left hand","Right hand","Robe","Shoes","Accessory 1","Accessory 2","Head 2","Head 3"; .@menu$ = ""; for(.@i = 1; .@i <= 10; ++.@i) { diff --git a/npc/other/CashShop_Functions.txt b/npc/other/CashShop_Functions.txt index 92fe841e1..5b957f9f2 100644 --- a/npc/other/CashShop_Functions.txt +++ b/npc/other/CashShop_Functions.txt @@ -310,3 +310,30 @@ function script F_Snowball { } end; } + +// Status reduction potion +//============================================================ +// - Permanently reduces base stat <type> by <val>. +// - Returns status points equals to points needed to raise +// that stat to original value. +// - Doesn't work if base status <type> would become lower than 1 after reduction. +// * callfunc("F_CashReduceStat", <type>{, <val>, <itemid>}); +function script F_CashReduceStat { + .@type = getarg(0); + .@amount = getarg(1, -1); + .@itemid = getarg(2, 0); + + if ((readparam(.@type) + .@amount) < 1) return; + + if (.@itemid) { + if (countitem(.@itemid)) + delitem .@itemid, 1; + else + return; + } + + StatusPoint += needed_status_point(.@type, .@amount); + statusup2 .@type, .@amount; + + return; +}
\ No newline at end of file diff --git a/npc/other/Global_Functions.txt b/npc/other/Global_Functions.txt index 904ed7165..e3741b495 100644 --- a/npc/other/Global_Functions.txt +++ b/npc/other/Global_Functions.txt @@ -434,7 +434,7 @@ function script F_ShuffleNumbers { //== Function F_MesColor =================================== // Function to colorize npc dialog without having to memorize the color code // Examples: -// mes callfunc("F_MesColor", C_BLUE) +"This message is now in BLUE"; +// mesf("%sThis message is now in BLUE.", F_MesColor(C_BLUE)); function script F_MesColor { return sprintf("^%06X", min(getarg(0), 0xFFFFFF)); } @@ -446,32 +446,45 @@ function script F_MesColor { function script F_GetTradeRestriction { .@trade = getiteminfo(getarg(0), ITEMINFO_TRADE); - if (.@trade == 0) { + if (.@trade == 0) return "None"; - } .@trade$ = ""; - if (.@trade & ITR_NODROP) { + if (.@trade & ITR_NODROP) .@trade$ += "NoDrop|"; - } - if (.@trade & ITR_NOTRADE) { + if (.@trade & ITR_NOTRADE) .@trade$ += "NoTrade|"; - } - if (.@trade & ITR_PARTNEROVERRIDE) { + if (.@trade & ITR_PARTNEROVERRIDE) .@trade$ += "PartnerOverride|"; - } - if (.@trade & ITR_NOSELLTONPC) { + if (.@trade & ITR_NOSELLTONPC) .@trade$ += "NoSellToNpc|"; - } - if (.@trade & ITR_NOSTORAGE) { + if (.@trade & ITR_NOSTORAGE) .@trade$ += "NoStorage|"; - } - if (.@trade & ITR_NOGSTORAGE) { + if (.@trade & ITR_NOGSTORAGE) .@trade$ += "NoGuildStorage|"; - } - if (.@trade & ITR_NOMAIL) { + if (.@trade & ITR_NOMAIL) .@trade$ += "NoMail|"; - } - if (.@trade & ITR_NOAUCTION) { + if (.@trade & ITR_NOAUCTION) .@trade$ += "NoAuction|"; + return .@trade$; +} + +//== Function F_MesItemInfo =================================== +// Show the item name and a clickable link for the item description +// Only works with mes and mesf, does not work in menu/select +function script F_MesItemInfo { + .@item = getarg(0); + .@itemname$ = getitemname(.@item); + if (.@itemname$ != "null") { + .@itemslot = getitemslots(.@item); + if (.@itemslot) + .@itemname$ = sprintf("%s [%d]", .@itemname$, .@itemslot); } + else + .@itemname$ = "Unknown Item"; + if (PACKETVER >= 20150729) + return sprintf("<ITEM>%s<INFO>%d</INFO></ITEM>", .@itemname$, .@item); + else if (PACKETVER >= 20130130) + return sprintf("<ITEMLINK>%s<INFO>%d</INFO></ITEMLINK>", .@itemname$, .@item); + else + return .@itemname$; } diff --git a/npc/other/inventory_expansion.txt b/npc/other/inventory_expansion.txt new file mode 100644 index 000000000..8a5ac5e6c --- /dev/null +++ b/npc/other/inventory_expansion.txt @@ -0,0 +1,63 @@ +//================= Hercules Script ======================================= +//= _ _ _ +//= | | | | | | +//= | |_| | ___ _ __ ___ _ _| | ___ ___ +//= | _ |/ _ \ '__/ __| | | | |/ _ \/ __| +//= | | | | __/ | | (__| |_| | | __/\__ \ +//= \_| |_/\___|_| \___|\__,_|_|\___||___/ +//================= License =============================================== +//= This file is part of Hercules. +//= http://herc.ws - http://github.com/HerculesWS/Hercules +//= +//= Copyright (C) 2018 Hercules Dev Team +//= Copyright (C) 4144 +//= +//= Hercules is free software: you can redistribute it and/or modify +//= it under the terms of the GNU General Public License as published by +//= the Free Software Foundation, either version 3 of the License, or +//= (at your option) any later version. +//= +//= This program is distributed in the hope that it will be useful, +//= but WITHOUT ANY WARRANTY; without even the implied warranty of +//= MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +//= GNU General Public License for more details. +//= +//= You should have received a copy of the GNU General Public License +//= along with this program. If not, see <http://www.gnu.org/licenses/>. +//========================================================================= +//= Inventory expansion +//========================================================================= + +- script inventory_expansion FAKE_NPC,{ + end; + +OnInvExpandRequest: + if (countitem(Inventory_Extension_Coupon) < 1) { + expandinventoryack(EXPAND_INV_MISSING_ITEM); + end; + } + if (getinventorysize() + INVENTORY_INCREASE_STEP > MAX_INVENTORY) { + expandinventoryack(EXPAND_INV_MAX_SIZE); + end; + } + expandinventoryack(EXPAND_INV_ASK_CONFIRMATION, Inventory_Extension_Coupon); + end; + +OnInvExpandConfirmed: + if (countitem(Inventory_Extension_Coupon) < 1) { + expandinventoryresult(EXPAND_INV_RESULT_MISSING_ITEM); + end; + } + if (getinventorysize() + INVENTORY_INCREASE_STEP > MAX_INVENTORY) { + expandinventoryresult(EXPAND_INV_RESULT_MAX_SIZE); + end; + } + delitem(Inventory_Extension_Coupon, 1); + if (expandinventory(INVENTORY_INCREASE_STEP) == true) { + expandinventoryresult(EXPAND_INV_RESULT_SUCCESS); + } + end; + +OnInvExpandRejected: + end; +} diff --git a/npc/quests/quests_nameless.txt b/npc/quests/quests_nameless.txt index 9461461a5..55f5c319c 100644 --- a/npc/quests/quests_nameless.txt +++ b/npc/quests/quests_nameless.txt @@ -61,7 +61,8 @@ //= 2.4 //========================================================================= -//== Nameless Island and Cursed Monestary Access Quest :: aru_monas = +// Nameless Island and Cursed Monestary Access Quest :: aru_monas +//========================================================================= airplane_01,90,63,0 script Event Switch#pc FAKE_NPC,3,3,{ end; @@ -998,7 +999,7 @@ nameless_i,127,207,0 script Dead Crow#Aru HIDDEN_NPC,{ mes "^3355FFThis grass must be the"; mes "main ingredient of the"; mes "poison used to kill the"; - mes "Gaebolg family princes.^000000"; + mes "Geoborg family princes.^000000"; next; mes "["+strcharinfo(PC_NAME)+"]"; mes "Looks like I just hit"; @@ -4406,7 +4407,7 @@ izlude_in,113,66,0 script Strange Machine HIDDEN_NPC,{ mes "and vibrated violently"; mes "before coming to a sudden"; mes "stop. That was the wrong"; - mes "switch. You'd better ask Dorian... "; + mes "switch. You'd better ask Dorian..."; changequest 3105,3106; diamond_edq = 11; close; @@ -4432,7 +4433,7 @@ izlude_in,113,66,0 script Strange Machine HIDDEN_NPC,{ mes "and vibrated violently"; mes "before coming to a sudden"; mes "stop. That was the wrong"; - mes "switch. You'd better ask Dorian... "; + mes "switch. You'd better ask Dorian..."; changequest 3105,3106; diamond_edq = 11; close; @@ -4458,7 +4459,7 @@ izlude_in,113,66,0 script Strange Machine HIDDEN_NPC,{ mes "and vibrated violently"; mes "before coming to a sudden"; mes "stop. That was the wrong"; - mes "switch. You'd better ask Dorian... "; + mes "switch. You'd better ask Dorian..."; changequest 3105,3106; diamond_edq = 11; close; @@ -4484,7 +4485,7 @@ izlude_in,113,66,0 script Strange Machine HIDDEN_NPC,{ mes "and vibrated violently"; mes "before coming to a sudden"; mes "stop. That was the wrong"; - mes "switch. You'd better ask Dorian... "; + mes "switch. You'd better ask Dorian..."; changequest 3105,3106; diamond_edq = 11; close; @@ -4509,7 +4510,7 @@ izlude_in,113,66,0 script Strange Machine HIDDEN_NPC,{ mes "and vibrated violently"; mes "before coming to a sudden"; mes "stop. That was the wrong"; - mes "switch. You'd better ask Dorian... "; + mes "switch. You'd better ask Dorian..."; changequest 3105,3106; diamond_edq = 11; close; @@ -4535,7 +4536,7 @@ izlude_in,113,66,0 script Strange Machine HIDDEN_NPC,{ mes "and vibrated violently"; mes "before coming to a sudden"; mes "stop. That was the wrong"; - mes "switch. You'd better ask Dorian... "; + mes "switch. You'd better ask Dorian..."; changequest 3105,3106; diamond_edq = 11; close; @@ -4561,7 +4562,7 @@ izlude_in,113,66,0 script Strange Machine HIDDEN_NPC,{ mes "and vibrated violently"; mes "before coming to a sudden"; mes "stop. That was the wrong"; - mes "switch. You'd better ask Dorian... "; + mes "switch. You'd better ask Dorian..."; changequest 3105,3106; diamond_edq = 11; close; @@ -4587,7 +4588,7 @@ izlude_in,113,66,0 script Strange Machine HIDDEN_NPC,{ mes "and vibrated violently"; mes "before coming to a sudden"; mes "stop. That was the wrong"; - mes "switch. You'd better ask Dorian... "; + mes "switch. You'd better ask Dorian..."; changequest 3105,3106; diamond_edq = 11; close; @@ -10318,7 +10319,7 @@ comodo,139,184,3 script Scholar#zgang 2_M_SAGE_B,{ mes "jewel came into a rich man's"; mes "possession. However, he lost"; mes "his fortune and was completely"; - mes "ruined after obtaining it. Hence the moniker, ''Unlucky Emerald.''"; + mes "ruined after obtaining it. Hence the moniker, ''Unlucky Emerald.''"; next; mes "[Scholar]"; mes "Then the emerald came into"; diff --git a/npc/quests/quests_prontera.txt b/npc/quests/quests_prontera.txt index e0bd9156e..b2fefb3cf 100644 --- a/npc/quests/quests_prontera.txt +++ b/npc/quests/quests_prontera.txt @@ -37,7 +37,7 @@ //= Collection of Prontera-based quests. //= - Culvert Access //= - Ph.D Hat Quest -//= - Gaebolg Family Curse +//= - Geoborg Family Curse //================= Current Version ======================================= //= 2.9 //================= Variables Used ======================================== @@ -45,7 +45,7 @@ //= - MISC_QUEST (bit 8) //= Ph.D Hat Quest: //= - n/a -//= Gaebolg Family Curse: +//= Geoborg Family Curse: //= - prt_curse (max 61) //========================================================================= @@ -799,7 +799,7 @@ yuno,311,195,3 script Historian#prt01 4_M_SAGE_A,{ mes "With the return of peace,"; mes "the 7 warriors established"; mes "the Rune-Midgarts Kingdom,"; - mes "choosing Tristram Gaebolg III"; + mes "choosing Tristram Geoborg III"; mes "as the kingdom's first ruler. "; next; mes "[Historian]"; @@ -1228,7 +1228,7 @@ morocc_in,45,126,3 script Historian#prt02 4_F_GON,{ next; mes "[Historian Rodafrian]"; mes "Anyway, your report about"; - mes "the Gaebolg family will be"; + mes "the Geoborg family will be"; mes "greatly appreciated by the"; mes "Rekenber Historical Research"; mes "Group. But first, I need to"; @@ -1237,7 +1237,7 @@ morocc_in,45,126,3 script Historian#prt02 4_F_GON,{ mes "[Historian Rodafrian]"; mes "Anyway, keep this information"; mes "a secret between me and you"; - mes "for now. Then, when I reveal the secret curse of the Gaebolg royal"; + mes "for now. Then, when I reveal the secret curse of the Geoborg royal"; mes "family, I'll finally outshine that Karlomoff! Bwahahahahaha!"; next; mes "["+strcharinfo(PC_NAME)+"]"; @@ -2291,7 +2291,7 @@ prt_church,185,106,3 script Father Bamph 1_M_PASTOR,{ next; mes "[Father Bamph]"; mes "Finally, the first Tristram of"; - mes "the Gaebolg family defeated"; + mes "the Geoborg family defeated"; mes "Jormungand together with 6"; mes "other warriors, but only after"; mes "it killed his beloved father."; @@ -2306,7 +2306,7 @@ prt_church,185,106,3 script Father Bamph 1_M_PASTOR,{ mes "[Father Bamph]"; mes "To this day..."; mes "^FF0000Every first prince of"; - mes "the Gaebolg family dies"; + mes "the Geoborg family dies"; mes "at a young age^000000. That is"; mes "Jormungand's curse and"; mes "the royal family's secret."; @@ -2429,7 +2429,7 @@ prt_church,185,106,3 script Father Bamph 1_M_PASTOR,{ mes "Oh, my. I learned the song"; mes "when I was a young boy from"; mes "my father. However, your version seems to reveal the secret curse"; - mes "of the Gaebolgs. Please tell me, where did you hear that song?"; + mes "of the Geoborgs. Please tell me, where did you hear that song?"; next; mes "["+strcharinfo(PC_NAME)+"]"; mes "Well, I first heard this"; @@ -3069,7 +3069,7 @@ prt_church,16,114,4 script Father Bamph#tomb 1_M_PASTOR,{ if (prt_curse == 18) { mes "[Father Bamph]"; mes "There are the bodies"; - mes "of the Gaebolg princes"; + mes "of the Geoborg princes"; mes "that were killed during"; mes "the exorcism. Please take"; mes "a look at the body to the left."; @@ -3547,13 +3547,13 @@ OnTouch: mes "["+strcharinfo(PC_NAME)+"]"; mes "Long ago, the giant serpent"; mes "Jormungand threatened mankind."; - mes "7 warriors defeated Jormungand, led by Tristram III of the Gaebolg"; - mes "family, but Jormungand cursed the Gaebolg bloodline in its defeat."; + mes "7 warriors defeated Jormungand, led by Tristram III of the Geoborg"; + mes "family, but Jormungand cursed the Geoborg bloodline in its defeat."; next; mes "["+strcharinfo(PC_NAME)+"]"; mes "Ever since, the curse kills"; mes "the first born prince of the"; - mes "Gaebolg family at an early age."; + mes "Geoborg family at an early age."; mes "However, all of the princes of"; mes "this generation were killed."; next; diff --git a/npc/quests/quests_rachel.txt b/npc/quests/quests_rachel.txt index 43e4beadb..1cc002d80 100644 --- a/npc/quests/quests_rachel.txt +++ b/npc/quests/quests_rachel.txt @@ -3210,7 +3210,7 @@ OnTouch: OnTouchNPC: emotion e_an; - //emotion e_gg,1; //Emote on monster - unsupported + unitemote mobattached(), e_gg; end; OnMyMobDead: diff --git a/npc/re/instances/OldGlastHeim.txt b/npc/re/instances/OldGlastHeim.txt index 44b5f1e61..ec0efeb53 100644 --- a/npc/re/instances/OldGlastHeim.txt +++ b/npc/re/instances/OldGlastHeim.txt @@ -2744,7 +2744,7 @@ glast_01,188,273,5 script White Knight#1a 4_WHITEKNIGHT,{ close(); } mes("I exchange you a White Knight Card for ^0000FF3000 Coagulated Spell^000000 or ^FF000070 Contaminated Magic^000000."); - mes("<ITEMLINK>White Knight Card<INFO>4608</INFO></ITEMLINK>"); + mes(F_MesItemInfo(White_Knightage_Card)); next(); setarray(.@item[0], Coagulated_Spell, Corrupted_Charm); setarray(.@cost[0], 3000, 70); @@ -2777,7 +2777,7 @@ glast_01,192,273,3 script Khalitzburg Knight#1a 4_F_KHALITZBURG,{ close(); } mes("I exchange you a Khalitzburg Knight Card for ^0000FF5000 Coagulated Spell^000000 or ^FF0000100 Contaminated Magic^000000."); - mes("<ITEMLINK>Khalitzburg Knight Card<INFO>4609</INFO></ITEMLINK>"); + mes(F_MesItemInfo(Khali_Knightage_Card)); next(); setarray(.@item[0], Coagulated_Spell, Corrupted_Charm); setarray(.@cost[0], 5000, 100); diff --git a/npc/re/instances/ghost_palace.txt b/npc/re/instances/ghost_palace.txt index 3e708dc57..a291984db 100644 --- a/npc/re/instances/ghost_palace.txt +++ b/npc/re/instances/ghost_palace.txt @@ -601,7 +601,7 @@ OnInstanceInit: OnStart: stopnpctimer instance_npcname("#gp3control"); disablenpc(instance_npcname("#gp3control")); - killmonster(instance_mapname("1@spa"), "All"); + killmonster(instance_mapname("1@spa"), "all"); disablenpc(instance_npcname("#gp3warp")); enablenpc(instance_npcname("Lurid Royal Guard#gp5")); enablenpc(instance_npcname("Tiara Princess#gp5")); diff --git a/npc/re/jobs/2e/kagerou_oboro.txt b/npc/re/jobs/2e/kagerou_oboro.txt index 5c54a0114..5818bb4fd 100644 --- a/npc/re/jobs/2e/kagerou_oboro.txt +++ b/npc/re/jobs/2e/kagerou_oboro.txt @@ -120,7 +120,7 @@ que_ng,21,76,0 script Wall with a Drawing#ko CLEAR_NPC,{ job_ko,25,115,4 script Old Man#ko 4_M_KAGE_OLD,{ if (MaxWeight - Weight < 1000 || checkweight("Knife",1) == 0) { - mes "[Cougar]"; + mes "[Kuuga Gai]"; mes "You don't need to carry so many things."; close; } @@ -128,8 +128,8 @@ job_ko,25,115,4 script Old Man#ko 4_M_KAGE_OLD,{ for (set .@i,5131; .@i<=5146; set .@i,.@i+1) if (questprogress(.@i)) erasequest .@i; set job_kagero,0; - mes "[Cougar]"; - mes "You are not in the Family of the Ninja."; + mes "[Kuuga Gai]"; + mes "You are not in the clan of the Ninja."; close2; warp "amatsu",147,136; end; @@ -156,28 +156,28 @@ job_ko,25,115,4 script Old Man#ko 4_M_KAGE_OLD,{ mes "^1A95E6He keeps talking and doesn't stop to answer your question.^1A95E6"; next; mes "[Old Man]"; - mes "There once was a quiet family living in ancient Amatsu times that is never mentioned in history books or stories."; + mes "There once was a quiet clan living in ancient Amatsu times that is never mentioned in history books or stories."; next; mes "[Old Man]"; mes "They lived beneath shadows but always yearned for the bright sun, like a sunflower."; next; mes "[Old Man]"; - mes "A family that was loyal to their lord who they served as their bright sun."; + mes "A clan that was loyal to their lord who they served as their bright sun."; next; mes "[Old Man]"; - mes "...a very trustworthy family..."; + mes "...a very trustworthy clan..."; next; mes "[Old Man]"; mes "....loyal to their core..."; next; mes "[Old Man]"; - mes "...a family of integrity..."; + mes "...a clan of integrity..."; next; select("What happened to them?"); mes "^1A95E6The old man looks at you with a melancholy face.^1A95E6"; next; mes "[Old Man]"; - mes "Why are you interested in a family that was abandoned by their lord and disappeared from history itself?"; + mes "Why are you interested in a clan that was abandoned by their lord and disappeared from history itself?"; next; if(select("I'm a Ninja.", "I'm bored.") == 2) { mes "[Old Man]"; @@ -188,13 +188,13 @@ job_ko,25,115,4 script Old Man#ko 4_M_KAGE_OLD,{ } cutin "job_ko02",2; mes "[Old Man]"; - mes "Ninja! There was a time when the family was called ninjas, too."; + mes "Ninja! There was a time when the clan was called ninjas, too."; next; erasequest 5131; setquest 5132; set job_kagero,2; mes "[Old Man]"; - mes "You'll have to lend me your ear for I have so much to tell you about the family story."; + mes "You'll have to lend me your ear for I have so much to tell you about the clan story."; close2; cutin "",255; end; @@ -206,13 +206,13 @@ job_ko,25,115,4 script Old Man#ko 4_M_KAGE_OLD,{ mes "This goes way back to ancient times and nobody in Amatsu remembers about it."; next; mes "[Old Man]"; - mes "The family worked behind the scenes and basically lived their lives for their lord."; + mes "The clan worked behind the scenes and basically lived their lives for their lord."; next; mes "[Old Man]"; mes "They were very loyal doing whatever deed their lord asked for."; next; mes "[Old Man]"; - mes "Ninja, the family was known as the dark family but that doesn't mean they wanted to be hidden in the darkness."; + mes "Ninja, the clan was known as the dark clan but that doesn't mean they wanted to be hidden in the darkness."; next; mes "[Old Man]"; mes "They were loyal enough to be satisfied as the lord's servants but their loyalty became the problem."; @@ -222,13 +222,13 @@ job_ko,25,115,4 script Old Man#ko 4_M_KAGE_OLD,{ mes "They are a secret organization that even the lord didn't know much about."; next; mes "[Old Man]"; - mes "The few that knew about the family's existence, tried to investigate them but nobody was able to reveal their true identity."; + mes "The few that knew about the clan's existence, tried to investigate them but nobody was able to reveal their true identity."; next; mes "[Old Man]"; - mes "That is why this family has grown from loyal servants to a group feared for its secrets."; + mes "That is why this clan has grown from loyal servants to a group feared for its secrets."; next; mes "[Old Man]"; - mes "The lord shunned the family and didn't call them for their service any more but they never betrayed him."; + mes "The lord shunned the clan and didn't call them for their service any more but they never betrayed him."; next; select("They were really loyal people."); cutin "job_ko03",2; @@ -245,20 +245,20 @@ job_ko,25,115,4 script Old Man#ko 4_M_KAGE_OLD,{ } else if (job_kagero == 3) { cutin "job_ko03",2; mes "[Old Man]"; - mes "The family has been living in hiding for so long since the old days. The current lord didn't even know of their existence."; + mes "The clan has been living in hiding for so long since the old days. The current lord didn't even know of their existence."; next; select("........."); cutin "job_ko01",2; mes "[Old Man]"; - mes "I'm Guide Gion, the last of the dark ninja family."; + mes "I'm Leader Gion, the last of the dark ninja clan."; next; if(select("I think your time has ended.", "I need your teaching.") == 1) { cutin "job_ko04",2; - mes "[Guide Gion]"; + mes "[Leader Gion]"; mes "Are you an assassin to end this old man's life?"; next; - mes "[Guide Gion]"; - mes "So that is why you've shown interest in my family. I won't give up easily."; + mes "[Leader Gion]"; + mes "So that is why you've shown interest in my clan. I won't give up easily."; next; percentheal -99,0; mes "Pow!!"; @@ -268,50 +268,50 @@ job_ko,25,115,4 script Old Man#ko 4_M_KAGE_OLD,{ end; } cutin "job_ko02",2; - mes "[Guide Gion]"; + mes "[Leader Gion]"; mes "Teaching..."; mes "Been a long time since I last heard that word."; next; - mes "[Guide Gion]"; + mes "[Leader Gion]"; mes "I guess this little visit was not by coincidence but a start of a connection."; next; - mes "[Guide Gion]"; + mes "[Leader Gion]"; mes "Sorry I am not a teacher. But!"; next; - mes "[Guide Gion]"; + mes "[Leader Gion]"; mes "I can help you on the path you've chosen, the ^33CC71"+ (Sex == SEX_MALE ? "Kagerou" : "Oboro") +"^000000 path."; next; - mes "^1A95E6You hear Guide Gion's voice faintly as you slip away.^1A95E6"; + mes "^1A95E6You hear Leader Gion's voice faintly as you slip away.^1A95E6"; next; erasequest 5133; setquest 5134; set job_kagero,4; - mes "[Guide Gion]"; - mes "If you are prepared to follow me, Guide Gion, on the "+ (Sex == SEX_MALE ? "Kagerou" : "Oboro") +" path, we will meet again."; + mes "[Leader Gion]"; + mes "If you are prepared to follow me, Leader Gion, on the "+ (Sex == SEX_MALE ? "Kagerou" : "Oboro") +" path, we will meet again."; close2; warp "amatsu",147,136; end; } else if (job_kagero == 4) { cutin "job_ko02",2; - mes "[Guide Gion]"; + mes "[Leader Gion]"; mes "I thought you were afraid of the ^33CC71path of the "+ (Sex == SEX_MALE ? "Kagerou" : "Oboro") +"^33CC71 and wouldn't come back."; next; - mes "[Guide Gion]"; + mes "[Leader Gion]"; mes "But from the look of your eyes, I guess I misjudged you."; next; - mes "[Guide Gion]"; + mes "[Leader Gion]"; mes "You will have to train your mind and body to walk steadily in the unknown world and never fall into temptation to stay on the path."; next; - mes "[Guide Gion]"; + mes "[Leader Gion]"; mes "Our ancestors had 4 tests to train our people."; next; select("4 tests?"); cutin "job_ko01",2; - mes "[Guide Gion]"; + mes "[Leader Gion]"; mes "Yes, there are 4 tests."; mes "My ancestors trained my people with 4 tests that involve ^087FF8knowledge^000000, ^087FF8survival^000000, ^087FF8weapons^000000, and ^087FF8battle^000000."; next; - mes "[Guide Gion]"; + mes "[Leader Gion]"; mes "I know you are curious what these tests are. Let me explain one by one."; next; while(1) { @@ -319,75 +319,75 @@ job_ko,25,115,4 script Old Man#ko 4_M_KAGE_OLD,{ set .@test, .@test | (1<<(.@i-1)); switch (.@i) { case 1: - mes "[Guide Gion]"; + mes "[Leader Gion]"; mes "We need to be knowledgeable in order to assist the lord. This test is for this purpose."; next; - mes "[Guide Gion]"; + mes "[Leader Gion]"; mes "You can pass the test if you successfully solve more than 9 out of 10 questions."; next; if (.@test != 15) { - mes "[Guide Gion]"; + mes "[Leader Gion]"; mes "The test will be easy to pass if you've been steady in your studies. Now what other test are you curious about?"; next; } break; case 2: - mes "[Guide Gion]"; + mes "[Leader Gion]"; mes "Missions aren't always easy and safe. That is why survival instincts are vital to us."; next; - mes "[Guide Gion]"; + mes "[Leader Gion]"; mes "My ancestors call this test the dice test. It is a test to advance forward depending on the dice results."; next; - mes "[Guide Gion]"; + mes "[Leader Gion]"; mes "Think of it as the simple dice games people play."; next; - mes "[Guide Gion]"; + mes "[Leader Gion]"; mes "But never let your guard down during the test because it isn't called the survival test for nothing."; next; - mes "[Guide Gion]"; + mes "[Leader Gion]"; mes "There will be blocks that help you while there are blocks that will interrupt you."; next; if (.@test != 15) { - mes "[Guide Gion]"; + mes "[Leader Gion]"; mes "If you deal with various situations wisely, you will be able to pass the test. Now what other test are you curious about?"; next; } break; case 3: - mes "[Guide Gion]"; - mes "My family was famous for using unique weapons that we created."; + mes "[Leader Gion]"; + mes "My clan was famous for using unique weapons that we created."; next; - mes "[Guide Gion]"; + mes "[Leader Gion]"; mes "You would be considered blessed if you created your own unique weapon."; next; - mes "[Guide Gion]"; + mes "[Leader Gion]"; mes "Creating a weapon for yourself and refining it is the purpose of this test."; next; if (.@test != 15) { - mes "[Guide Gion]"; + mes "[Leader Gion]"; mes "I hope you will be blessed and find the best weapon for yourself. Now what other test are you curious about?"; next; } break; case 4: - mes "[Guide Gion]"; + mes "[Leader Gion]"; mes "Missions are not always done alone. You will often work in teams of 2 or 3 for a common goal."; next; - mes "[Guide Gion]"; + mes "[Leader Gion]"; mes "The battle test is only for those that pass that knowledge, survival and weapon tests. So! It is the very last test."; next; - mes "[Guide Gion]"; + mes "[Leader Gion]"; mes "Unlike the other three tests that are done alone, you will have to compete with others in this final test."; next; - mes "[Guide Gion]"; + mes "[Leader Gion]"; mes "There is only one target!!"; mes "And only the first to get to the target passes the test."; next; - mes "[Guide Gion]"; + mes "[Leader Gion]"; mes "You'll be lucky if you have no competitors during your test."; next; if (.@test != 15) { - mes "[Guide Gion]"; + mes "[Leader Gion]"; mes "A challenge is better than explaining it a hundred times. It's the actual experience that makes you better."; next; } @@ -396,13 +396,13 @@ job_ko,25,115,4 script Old Man#ko 4_M_KAGE_OLD,{ if (.@test == 15) break; } cutin "job_ko02",2; - mes "[Guide Gion]"; + mes "[Leader Gion]"; mes "Seeing is believing, so go on and take the challenge."; next; erasequest 5134; setquest 5135; set job_kagero,5; - mes "[Guide Gion]"; + mes "[Leader Gion]"; mes "Let's start right away after you are done with preparations."; close2; cutin "",255; @@ -414,110 +414,110 @@ job_ko,25,115,4 script Old Man#ko 4_M_KAGE_OLD,{ set .@ko_test, .@ko_test_01 + .@ko_test_02 + .@ko_test_03; if (.@ko_test == 0) { cutin "job_ko03",2; - mes "[Guide Gion]"; + mes "[Leader Gion]"; mes "It's been a while."; next; - mes "[Guide Gion]"; + mes "[Leader Gion]"; mes "Since I felt happy like this. I feel young and energetic seeing young people like you challenge themselves with a new path."; next; - mes "[Guide Gion]"; - mes "We're done with explaining about the tests, now should I tell you my family story?"; + mes "[Leader Gion]"; + mes "We're done with explaining about the tests, now should I tell you my clan story?"; next; cutin "job_ko01",2; - mes "[Guide Gion]"; - mes "My family started from two warriors."; + mes "[Leader Gion]"; + mes "My clan started from two warriors."; next; - mes "[Guide Gion]"; + mes "[Leader Gion]"; mes "Kagerou, a warrior like the dancing flames of the sun."; next; - mes "[Guide Gion]"; + mes "[Leader Gion]"; mes "Oboro, a warrior like the misty moonlight."; next; - mes "[Guide Gion]"; + mes "[Leader Gion]"; mes "The Sun and the Moon."; mes "The sunlight that lights up the world and the moonlight that lights up the night. Both were very similar but different warriors."; next; - mes "[Guide Gion]"; + mes "[Leader Gion]"; mes "There was a time there was an enmity between both warriors."; next; - mes "[Guide Gion]"; - mes "But it didn't take long for them to become one as a family."; + mes "[Leader Gion]"; + mes "But it didn't take long for them to become one as a clan."; next; select("How did it go afterwards?"); cutin "job_ko02",2; - mes "[Guide Gion]"; + mes "[Leader Gion]"; mes "Ha ha ha. It is never fun to listen to the whole story all at once, no? Come back after passing a test and I'll continue my story."; next; - mes "[Guide Gion]"; + mes "[Leader Gion]"; mes "Which test will you select as your first test?"; next; callsub L_StartTest,select("Test of Knowledge", "Test of Survival", "Test of Weaponry"),1; end; } else if (.@ko_test == 2) { cutin "job_ko01",2; - mes "[Guide Gion]"; + mes "[Leader Gion]"; if (.@ko_test_01 == 2) { set .@menu$,":Test of Survival:Test of Weaponry"; mes "You've passed the Test of Knowledge."; next; - mes "[Guide Gion]"; + mes "[Leader Gion]"; mes "My friend doesn't approve of others that easily but I guess he liked you."; next; } else if (.@ko_test_02 == 2) { set .@menu$,"Test of Knowledge::Test of Weaponry"; mes "You've passed the Test of Survival."; next; - mes "[Guide Gion]"; + mes "[Leader Gion]"; mes "Looks like you went through hell with this test."; next; } else if (.@ko_test_03 == 2) { set .@menu$,"Test of Knowledge:Test of Survival:"; mes "You've passed the Test of Weaponry."; next; - mes "[Guide Gion]"; + mes "[Leader Gion]"; mes "I wonder if Joe is satisfied with your performance."; next; } - select("Please continue with the family story."); + select("Please continue with the clan story."); cutin "job_ko02",2; - mes "[Guide Gion]"; + mes "[Leader Gion]"; mes "Looks like you are pretty eager to hear more. Where did I leave off... Ah! I remember."; next; - mes "[Guide Gion]"; + mes "[Leader Gion]"; mes "Kagerou, a warrior like the dancing flames of the sun."; next; - mes "[Guide Gion]"; + mes "[Leader Gion]"; mes "Oboro, a warrior like the misty moonlight."; next; - mes "[Guide Gion]"; + mes "[Leader Gion]"; mes "Both warriors weren't close at first, because personality and everything else was completely opposite of each other."; next; - mes "[Guide Gion]"; + mes "[Leader Gion]"; mes "The first place they met was the battlefield. And you know how enemies greet each other on a battlefield."; next; - mes "[Guide Gion]"; + mes "[Leader Gion]"; mes "They ended up injuring each other badly."; next; - mes "[Guide Gion]"; + mes "[Leader Gion]"; mes "But what can you do? War is a war."; next; - mes "[Guide Gion]"; + mes "[Leader Gion]"; mes "The friend you've laughed with yesterday is a foe that you have to fight with in a war today."; next; - mes "[Guide Gion]"; + mes "[Leader Gion]"; mes "So nobody can get along with anyone during a war."; next; - mes "[Guide Gion]"; + mes "[Leader Gion]"; mes "I'll continue the story after you pass another test."; next; - mes "[Guide Gion]"; + mes "[Leader Gion]"; mes "Which test will you choose for the second test?"; next; callsub L_StartTest,select(.@menu$),2; end; } else if (.@ko_test == 4) { cutin "job_ko04",2; - mes "[Guide Gion]"; + mes "[Leader Gion]"; if (.@ko_test_01 == 2 && .@ko_test_02 == 2) { set .@last_test,3; mes "You've passed the ^339CCCTests of Knowledge and Survival^000000!"; @@ -529,96 +529,96 @@ job_ko,25,115,4 script Old Man#ko 4_M_KAGE_OLD,{ mes "You've passed the ^339CCCTests of Survival and Weaponry^000000!"; } next; - mes "[Guide Gion]"; + mes "[Leader Gion]"; mes "You are already done with two tests. Hope you've learned a lot from them."; next; cutin "job_ko01",2; - mes "[Guide Gion]"; + mes "[Leader Gion]"; mes "Shall we continue with the story?"; next; - mes "[Guide Gion]"; + mes "[Leader Gion]"; mes "Kagerou, a warrior like the dancing flames of the sun."; next; - mes "[Guide Gion]"; + mes "[Leader Gion]"; mes "Oboro, a warrior like the misty moonlight."; next; - mes "[Guide Gion]"; + mes "[Leader Gion]"; mes "I think I left off when the two warriors met at the battlefield as enemies."; next; - mes "[Guide Gion]"; + mes "[Leader Gion]"; mes "The long war ended eventually but the wounds and pain of those that survived had just started."; next; - mes "[Guide Gion]"; + mes "[Leader Gion]"; mes "So these two warriors started to embrace and heal the war wounds together and became one."; next; - mes "[Guide Gion]"; + mes "[Leader Gion]"; mes "There is a backstory of a man appearing in front of them and winning the loyalty from both warriors."; next; select("Who is this man?"); - mes "[Guide Gion]"; + mes "[Leader Gion]"; mes "There isn't much known about this man. Only a short mentioning of the two warriors pledging their allegiance."; next; - mes "[Guide Gion]"; + mes "[Leader Gion]"; mes "Maybe current generations like me are the ancestors of the current Amatsu lord? But this is only an assumption."; next; - mes "[Guide Gion]"; - mes "I'm almost at the end of my family story. Come back after you've passed the third test and I will tell you the rest."; + mes "[Leader Gion]"; + mes "I'm almost at the end of my clan story. Come back after you've passed the third test and I will tell you the rest."; next; callsub L_StartTest,.@last_test,3; end; } else if (.@ko_test == 6) { cutin "job_ko01",2; - mes "[Guide Gion]"; + mes "[Leader Gion]"; mes "You've gone through three tests leaving only one to pass."; next; - mes "[Guide Gion]"; + mes "[Leader Gion]"; mes "As I've told you before, the last test is different because you have to compete against others."; next; select("Will you continue the story?"); cutin "job_ko02",2; - mes "[Guide Gion]"; + mes "[Leader Gion]"; mes "Ha ha ha. I will finish the story."; next; - mes "[Guide Gion]"; + mes "[Leader Gion]"; mes "Kagerou, a warrior like the dancing flames of the sun."; next; - mes "[Guide Gion]"; + mes "[Leader Gion]"; mes "Oboro, a warrior like the misty moonlight."; next; - mes "[Guide Gion]"; + mes "[Leader Gion]"; mes "It is told that the man that earned the loyalty of the two warriors was a humorous person."; next; - mes "[Guide Gion]"; + mes "[Leader Gion]"; mes "He like the jokes and conversations better than quarrels and he liked women over men."; next; - mes "[Guide Gion]"; + mes "[Leader Gion]"; mes "Hmm... I don't know why this part of the story was kept alive all these years but this man wanted to bring these two warriors together."; next; - mes "[Guide Gion]"; + mes "[Leader Gion]"; mes "Both warriors did travel together after the war but kept an awkward distance from each other."; next; - mes "[Guide Gion]"; + mes "[Leader Gion]"; mes "They must have had their reasons but their lord would send them out to a difficult mission together, put them in a secret room together and all sorts of situations together."; next; select("Sounds like an odd person."); - mes "[Guide Gion]"; + mes "[Leader Gion]"; mes "Yes, he was. And his efforts didn't go in vain since the two warriors eventually got acquainted and married."; next; - mes "[Guide Gion]"; - mes "This is how the family started."; + mes "[Leader Gion]"; + mes "This is how the clan started."; next; select("What happened after?"); - mes "[Guide Gion]"; + mes "[Leader Gion]"; mes "Sadly, the next part of story was purposely discontinued."; next; - mes "[Guide Gion]"; + mes "[Leader Gion]"; mes "I think it's because someone wanted us to let go of the past and move forward."; next; - mes "[Guide Gion]"; + mes "[Leader Gion]"; mes "That's that. Now shouldn't you be preparing for the last test?"; next; set job_kagero,6; - mes "[Guide Gion]"; + mes "[Leader Gion]"; mes "But you must be tired from all the tests so far. Take a rest."; close2; cutin "",255; @@ -631,12 +631,12 @@ job_ko,25,115,4 script Old Man#ko 4_M_KAGE_OLD,{ set .@test_ko$, "Survival"; else if (.@ko_test_03 == 1) set .@test_ko$, "Weaponry"; - mes "[Guide Gion]"; + mes "[Leader Gion]"; mes "Weren't you taking the Test of " + .@test_ko$ + " just now?"; next; switch(select("I want to go back to test site.", "Ah... no.")) { case 1: - mes "[Guide Gion]"; + mes "[Leader Gion]"; mes "The Test of " + .@test_ko$ + " site is over here."; close2; if (.@ko_test_01 == 1) @@ -647,7 +647,7 @@ job_ko,25,115,4 script Old Man#ko 4_M_KAGE_OLD,{ warp "job_ko",121,129; end; case 2: - mes "[Guide Gion]"; + mes "[Leader Gion]"; mes "The village is over here."; close2; warp "amatsu",147,136; @@ -656,39 +656,39 @@ job_ko,25,115,4 script Old Man#ko 4_M_KAGE_OLD,{ } } else if (job_kagero == 6) { cutin "job_ko01",2; - mes "[Guide Gion]"; + mes "[Leader Gion]"; mes "You've come back already? You could have rested more. Is there a reason to hurry?"; next; input .@inputstr$; cutin "job_ko03",2; - mes "[Guide Gion]"; + mes "[Leader Gion]"; mes "Because of ^B24E59" + .@inputstr$ + "^000000?"; next; - mes "[Guide Gion]"; + mes "[Leader Gion]"; mes "I have to admit, I don't understand you now."; next; - mes "[Guide Gion]"; + mes "[Leader Gion]"; mes "But since you've gone through much, I'm sure you will do good with the final test."; next; cutin "job_ko01",2; - mes "[Guide Gion]"; + mes "[Leader Gion]"; mes "Now! No more small talk. I'll let you know what the target is for the Test of Battle."; next; - mes "[Guide Gion]"; - mes "The target is a monster called the ^FF0000Family Secret^000000."; + mes "[Leader Gion]"; + mes "The target is a monster called the ^FF0000Clan Secret^000000."; next; - mes "[Guide Gion]"; + mes "[Leader Gion]"; mes "You will have to be careful because there are many similiar shaped and named monsters in test site."; next; - mes "[Guide Gion]"; + mes "[Leader Gion]"; mes "And if you are lucky, there will be others targeting the monster."; next; - mes "[Guide Gion]"; + mes "[Leader Gion]"; mes "May the blessings of '" + (Sex == SEX_MALE ? "Kagerou, dancing sun" : "Oboro, misty moonlight") + "' be with you."; next; setquest 5146; set job_kagero,7; - mes "[Guide Gion]"; + mes "[Leader Gion]"; mes "Then let's go to the battle test field."; close2; switch(rand(3)) { @@ -699,12 +699,12 @@ job_ko,25,115,4 script Old Man#ko 4_M_KAGE_OLD,{ end; } else if (job_kagero == 7 || job_kagero == 8) { cutin "job_ko03",2; - mes "[Guide Gion]"; + mes "[Leader Gion]"; mes "I see you are in the middle of the ^339CCCTest of Battle^000000. Will you go back to the test site?"; next; switch(select("Go back to the test site.", "Visit the village.")) { case 1: - mes "[Guide Gion]"; + mes "[Leader Gion]"; mes "The test site is over here."; close2; switch(rand(3)) { @@ -714,7 +714,7 @@ job_ko,25,115,4 script Old Man#ko 4_M_KAGE_OLD,{ } end; case 2: - mes "[Guide Gion]"; + mes "[Leader Gion]"; mes "The village is over here."; close2; cutin "",255; @@ -722,7 +722,7 @@ job_ko,25,115,4 script Old Man#ko 4_M_KAGE_OLD,{ } } else { cutin "job_ko03",2; - mes "[Guide Gion]"; + mes "[Leader Gion]"; mes "You should not be here. Leave!"; close2; warp "amatsu",147,136; @@ -737,14 +737,14 @@ L_StartTest: case 2: set .@str$,"You are taking the ^339CCCTest of %s^000000 as the second test? "; break; case 3: set .@str$,"Your third test is the ^339CCCTest of %s^000000! "; break; } - mes "[Guide Gion]"; + mes "[Leader Gion]"; switch (getarg(0)) { case 1: mes sprintf(.@str$ + "Then I will get to see a familiar face after so long...","Knowledge"); next; select("Familiar face?"); setquest 5136; - mes "[Guide Gion]"; + mes "[Leader Gion]"; mes "Ha ha ha. You'll know when we get there. The Test of Knowledge is taken over here."; close2; warp "job_ko",72,128; @@ -753,7 +753,7 @@ L_StartTest: mes sprintf(.@str$ + "It's a lonesome test that you have to face alone.","Survival"); next; setquest 5137; - mes "[Guide Gion]"; + mes "[Leader Gion]"; mes "But I believe you can handle it. The Test of Survival is taken over here."; close2; warp "job_ko",62,16; @@ -766,7 +766,7 @@ L_StartTest: getitem "Phracon", 1; mes "You receive 5 Iron Ore and 1 Phracon."; next; - mes "[Guide Gion]"; + mes "[Leader Gion]"; mes "You will find these useful. The Test of Weaponry is taken over here."; close2; warp "job_ko",121,129; @@ -775,74 +775,74 @@ L_StartTest: } //== Test of Knowledge ===================================== -job_ko,81,124,4 script Cougar#ko 4_M_JOB_ASSASSIN,{ +job_ko,81,124,4 script Kuuga Gai#ko 4_M_JOB_ASSASSIN,{ if (BaseJob != Job_Ninja) { for (set .@i,5131; .@i<=5146; set .@i,.@i+1) if (questprogress(.@i)) erasequest .@i; set job_kagero,0; - mes "[Cougar]"; - mes "Sorry, your family is not same as ours, is there something wrong?"; + mes "[Kuuga Gai]"; + mes "Sorry, your clan is not same as ours, is there something wrong?"; close2; warp "amatsu",147,136; end; } if (job_kagero == 5) { if (MaxWeight - Weight < 1000 || checkweight("Knife",1) == 0) { - mes "[Cougar]"; + mes "[Kuuga Gai]"; mes "This is a test of knowledge, so why did you bring so many things?"; close; } set .@ko_test_01, questprogress(5136); set .@ko_test_01_1, questprogress(5139); if (.@ko_test_01 == 1 && .@ko_test_01_1 == 0) { - mes "[Cougar]"; + mes "[Kuuga Gai]"; mes "It's been a while."; next; select("Aren't you..."); - mes "[Cougar]"; + mes "[Kuuga Gai]"; mes "I remember you from before looking for the way of the ninja."; next; - mes "[Cougar]"; + mes "[Kuuga Gai]"; mes "You've grown this strong already?"; next; - mes "[Cougar]"; + mes "[Kuuga Gai]"; mes "Ha ha ha-"; mes "A truly determined youth! I like that."; next; - mes "[Cougar]"; + mes "[Kuuga Gai]"; mes "Good! The test you are about to take is the ^339CCCTest of Knowledge^000000."; next; - mes "[Cougar]"; + mes "[Kuuga Gai]"; mes "I hope you haven't been lazy with your studies while focusing on getting stronger?"; next; switch(select("Yes", "No")) { case 1: setquest 5139; - mes "[Cougar]"; + mes "[Kuuga Gai]"; mes "That's a relief. Let me know when you are ready to start the test."; close; case 2: setquest 5139; - mes "[Cougar]"; + mes "[Kuuga Gai]"; mes "So you were all talk? Well, let me know when you are ready then."; close; } } else if (.@ko_test_01 == 1 && .@ko_test_01_1 == 1) { - mes "[Cougar]"; + mes "[Kuuga Gai]"; mes "I'm ready at my end. Are you ready for the test?"; next; if(select("Yes", "No") == 2) { - mes "[Cougar]"; + mes "[Kuuga Gai]"; mes "Well, what can I do but wait for you."; close; } - mes "[Cougar]"; + mes "[Kuuga Gai]"; mes "This isn't your first test, is it?"; next; - mes "[Cougar]"; + mes "[Kuuga Gai]"; mes "You only need to choose the correct answer to my questions."; next; - mes "[Cougar]"; + mes "[Kuuga Gai]"; mes "Let's start."; next; @@ -862,9 +862,9 @@ job_ko,81,124,4 script Cougar#ko 4_M_JOB_ASSASSIN,{ deletearray .@n[10],getarraysize(.@n) - .@questions; freeloop(0); - set @job_ko_cougar,0; + set @job_ko_kuuga,0; for (set .@i,1; .@i<=.@questions; set .@i,.@i+1) { - mes "[Cougar]"; + mes "[Kuuga Gai]"; mes (.@i < .@questions)?"Question number "+.@i+":":"Last question:"; switch (.@n[.@i-1]) { case 1: callsub L_Question,"What is the DEX + LUK total for a Job Master?",2,"8:10:12:14"; break; @@ -918,67 +918,67 @@ job_ko,81,124,4 script Cougar#ko 4_M_JOB_ASSASSIN,{ case 49: callsub L_Question,"Which of the following blacksmiths do not create ninja items?",2,"Khaibara:Aiku:Tetsu:Toshu"; break; case 50: callsub L_Question,"What is the name of the suspicious man you can meet during the Ninja job change quest?",3,"Red Leopard Jack:Black Leopard Jack:Red Leopard Joe:Black Leopard Joe"; break; default: - mes "[Cougar]"; + mes "[Kuuga Gai]"; mes "An unknown error has occurred."; mes "Please contact customer service."; close; } } - mes "[Cougar]"; + mes "[Kuuga Gai]"; mes "You're through all 10 questions. Wasn't so bad! The important part starts now."; next; - mes "[Cougar]"; + mes "[Kuuga Gai]"; mes "... ... ..."; next; - if (@job_ko_cougar < 90) { - mes "[Cougar]"; + if (@job_ko_kuuga < 90) { + mes "[Kuuga Gai]"; mes "You fool!!"; mes "You couldn't even solve these?"; next; - mes "[Cougar]"; + mes "[Kuuga Gai]"; mes "Can't believe someone who is taking a new path can be so pathetic."; next; - mes "[Cougar]"; + mes "[Kuuga Gai]"; mes "I'll give you another chance."; mes "You will take the test again with new questions. Better pass it this time."; } else { - mes "[Cougar]"; - mes "Hmm. " + (@job_ko_cougar) + "?"; + mes "[Kuuga Gai]"; + mes "Hmm. " + (@job_ko_kuuga) + "?"; next; - mes "[Cougar]"; + mes "[Kuuga Gai]"; mes "Well, looks like you weren't lazy with your studies."; next; - mes "[Cougar]"; + mes "[Kuuga Gai]"; mes "What? Proud of yourself for solving these questions?"; next; - mes "[Cougar]"; + mes "[Kuuga Gai]"; mes "You still have a long way to go and this is only a small fraction of it."; next; - mes "[Cougar]"; + mes "[Kuuga Gai]"; mes "Well... I'm curious how far your strong will can take you through other tests."; next; completequest 5136; erasequest 5139; - mes "[Cougar]"; - mes "I'll let you go now so go report back to Guide Gion with your results."; + mes "[Kuuga Gai]"; + mes "I'll let you go now so go report back to Leader Gion with your results."; close2; warp "job_ko",16,113; end; } - set @job_ko_cougar,0; + set @job_ko_kuuga,0; close; } else if (.@ko_test_01 == 2 && .@ko_test_01_1 == 0) { - mes "[Cougar]"; - mes "I'll let you go now so go report back to Guide Gion with your results."; + mes "[Kuuga Gai]"; + mes "I'll let you go now so go report back to Leader Gion with your results."; close2; warp "job_ko",16,113; end; } } - mes "[Cougar]"; + mes "[Kuuga Gai]"; mes "How did you get here?"; next; - mes "[Cougar]"; + mes "[Kuuga Gai]"; mes "It's my duty to get rid of you."; mes "^000099(He's a short, silent man.)^000000"; mes "This will push you back!"; @@ -991,7 +991,7 @@ L_Question: mes getarg(0); next; if(select(getarg(2)) == getarg(1)) - set @job_ko_cougar, @job_ko_cougar + 10; + set @job_ko_kuuga, @job_ko_kuuga + 10; return; } @@ -1934,7 +1934,7 @@ job_ko,127,125,4 script Red Leopard Joe#ko 4_M_JOB_ASSASSIN,{ if (questprogress(.@i)) erasequest .@i; set job_kagero,0; mes "[Red Leopard Joe]"; - mes "Sorry, your family is not the same as ours, is there something wrong?"; + mes "Sorry, your clan is not the same as ours, is there something wrong?"; close2; warp "amatsu",147,136; end; @@ -1959,17 +1959,17 @@ job_ko,127,125,4 script Red Leopard Joe#ko 4_M_JOB_ASSASSIN,{ next; select("Long time indeed, Joe."); mes "[Red Leopard Joe]"; - mes "You aren't surprised I'm here. Did you meet ^0237FDCougar^000000 before coming here?"; + mes "You aren't surprised I'm here. Did you meet ^0237FDKuuga Gai^000000 before coming here?"; next; mes "[Red Leopard Joe]"; mes "Don't like it that I'm not the first one you visited but that is not important."; next; mes "[Red Leopard Joe]"; mes "Alright, " + strcharinfo(PC_NAME) + "!"; - mes "Welcome to the workshop where weapons are created for the family."; + mes "Welcome to the workshop where weapons are created for the clan."; next; mes "[Red Leopard Joe]"; - mes "Our family has been creating and using unique weapons to serve our secret missions since ancient times."; + mes "Our clan has been creating and using unique weapons to serve our secret missions since ancient times."; next; select("Really? At Einbroch?"); mes "[Red Leopard Joe]"; @@ -1979,7 +1979,7 @@ job_ko,127,125,4 script Red Leopard Joe#ko 4_M_JOB_ASSASSIN,{ mes "Yes. Einbroch is known as an industrial city, the city of great blacksmiths create new technology."; next; mes "[Red Leopard Joe]"; - mes "My mission is to analyze their technology and report back to the family."; + mes "My mission is to analyze their technology and report back to the clan."; next; mes "[Red Leopard Joe]"; mes "I spoke more than I intended to."; @@ -2503,44 +2503,44 @@ job_ko,127,121,0 duplicate(Refinement Tools#ko_01) Refinement Tools#ko_02 CLEAR_ //== Test of Battle ======================================== job_ko,148,46,4 script Guide Gion#ko2 4_M_KAGE_OLD,{ if (MaxWeight - Weight < 2000 || checkweight("Knife",1) == 0) { - mes "[Guide Gion]"; + mes "[Leader Gion]"; mes "You don't need so many things now!"; close; } if (job_kagero == 7) { cutin "job_ko01",2; - mes "[Guide Gion]"; + mes "[Leader Gion]"; mes "Looks like you haven't taken care of the target yet."; next; - mes "[Guide Gion]"; - mes "I'll tell you once more. The target is the ^FF0000Family Secret^000000."; + mes "[Leader Gion]"; + mes "I'll tell you once more. The target is the ^FF0000Clan Secret^000000."; next; - mes "[Guide Gion]"; + mes "[Leader Gion]"; mes "Of course the path will be difficult, so continue searching!"; close2; cutin "",255; end; } else if (job_kagero == 8) { cutin "job_ko02",2; - mes "[Guide Gion]"; + mes "[Leader Gion]"; mes "Looks like you've taken care of the target. Hmm."; next; if (checkmount()) { - mes "[Guide Gion]"; + mes "[Leader Gion]"; mes "But please get down from your frog. Otherwise I can't continue!"; close2; cutin "",255; end; } if (BaseLevel < 99 || JobLevel < 70) { - mes "[Guide Gion]"; + mes "[Leader Gion]"; mes "How did you get weaker? Come back once you've regained your previous levels."; close2; cutin "",255; end; } if (SkillPoint != 0) { - mes "[Guide Gion]"; + mes "[Leader Gion]"; mes "Please come back after using all your Skill Points."; close2; cutin "",255; @@ -2548,38 +2548,38 @@ job_ko,148,46,4 script Guide Gion#ko2 4_M_KAGE_OLD,{ } mapannounce "job_ko","[Gion] Interrupting the Test of Battle.",bc_map; cutin "job_ko04",2; - mes "[Guide Gion]"; + mes "[Leader Gion]"; mes "The Test of Battle will be put off for a while. Don't worry because this does not have affect to other tests."; next; mapannounce "job_ko","[Gion] My Friend " + strcharinfo(PC_NAME) + " made it to " + (Sex == SEX_MALE ? "Kagerou" : "Oboro") + " Path. Congratulations!!",bc_map; - mes "[Guide Gion]"; + mes "[Leader Gion]"; mes "My friend " + strcharinfo(PC_NAME) + " made it to " + (Sex == SEX_MALE ? "Kagerou" : "Oboro") + " Path. Congratulations!!"; next; cutin "job_ko02",2; - mes "[Guide Gion]"; + mes "[Leader Gion]"; mes "It is pleasant to meet a youth that is walking through a new path."; next; mes "[Someone's Voice]"; mes "Wait for a while, Gion."; next; - donpcevent "Cougar#ko2::OnEnable"; + donpcevent "Kuuga Gai#ko2::OnEnable"; donpcevent "Red Leopard Joe#ko2::OnEnable"; cutin "job_ko04",2; - mes "[Guide Gion]"; + mes "[Leader Gion]"; mes "I'm sorry I almost forgot about you two. Do you have anything to share with " + strcharinfo(PC_NAME) + "?"; next; cutin "",255; - mes "[Cougar]"; + mes "[Kuuga Gai]"; mes "Hmm... Embarrassing... to speak so suddenly..."; next; - mes "[Cougar]"; - mes strcharinfo(PC_NAME) + ", you are now a proud member of our family. Always hold your head high and..."; + mes "[Kuuga Gai]"; + mes strcharinfo(PC_NAME) + ", you are now a proud member of our clan. Always hold your head high and..."; next; - mes "[Cougar]"; + mes "[Kuuga Gai]"; mes "^777777(Gai's voice fades out.)^000000."; mes "I'm sorry I strangled you when we first met."; next; - donpcevent "Cougar#ko2::OnDisable"; + donpcevent "Kuuga Gai#ko2::OnDisable"; mes "[Red Leopard Joe]"; mes "Puhahaha! Gai is all talk. I know I was know valuable to you than that Gai."; next; @@ -2600,17 +2600,17 @@ job_ko,148,46,4 script Guide Gion#ko2 4_M_KAGE_OLD,{ mes "I named your weapons on my own but I know you'll like the name."; next; mes "[Red Leopard Joe]"; - mes "Guide Gion, please continue."; + mes "Leader Gion, please continue."; next; cutin "job_ko01",2; donpcevent "Red Leopard Joe#ko2::OnDisable"; - mes "[Guide Gion]"; + mes "[Leader Gion]"; mes "I don't have much to add because Gai and Joe said it all."; next; - mes "[Guide Gion]"; + mes "[Leader Gion]"; mes "I'm just sorry that the environment of all these tests could have been better for our later generation."; next; - mes "[Guide Gion]"; + mes "[Leader Gion]"; mes "You only need to look forward and never turn back."; next; for (set .@i,5131; .@i<=5146; set .@i,.@i+1) @@ -2619,21 +2619,21 @@ job_ko,148,46,4 script Guide Gion#ko2 4_M_KAGE_OLD,{ getnameditem .@item,strcharinfo(PC_NAME); jobchange(Sex == SEX_MALE ? Job_Kagerou : Job_Oboro); donpcevent "Summon Target#ko::OnEnable"; - mes "[Guide Gion]"; + mes "[Leader Gion]"; mes "I hope the blessings of Kagerou, dancing sun and Oboro, misty moonlight will be with you on your journey ahead."; close2; warp "que_ng",21,71; end; } else if (job_kagero == 9) { cutin "job_ko01",2; - mes "[Guide Gion]"; + mes "[Leader Gion]"; mes "I hope the blessings of Kagerou, dancing sun and Oboro, misty moonlight will be with you on your journey ahead."; close2; warp "que_ng",21,71; end; } else { cutin "job_ko01",2; - mes "[Guide Gion]"; + mes "[Leader Gion]"; mes "You should not be here. Please leave!"; close2; warp "amatsu",147,136; @@ -2641,16 +2641,16 @@ job_ko,148,46,4 script Guide Gion#ko2 4_M_KAGE_OLD,{ } } -job_ko,151,47,4 script Cougar#ko2 4_M_JOB_ASSASSIN,{ - mes "[Cougar]"; +job_ko,151,47,4 script Kuuga Gai#ko2 4_M_JOB_ASSASSIN,{ + mes "[Kuuga Gai]"; mes "Congratulation for choosing the road of development!"; close; OnInit: OnDisable: - disablenpc "Cougar#ko2"; + disablenpc "Kuuga Gai#ko2"; end; OnEnable: - enablenpc "Cougar#ko2"; + enablenpc "Kuuga Gai#ko2"; end; } @@ -2684,7 +2684,7 @@ OnEnable: case 6: set .@mob,1049; break; case 7: set .@mob,1050; break; } - areamonster "job_ko",120,30,160,70,"Family Secret",.@mob,1,"Summon Target#ko::OnMyMobDead"; + areamonster "job_ko",120,30,160,70,"Clan Secret",.@mob,1,"Summon Target#ko::OnMyMobDead"; end; OnDisable: initnpctimer; @@ -2706,25 +2706,25 @@ OnInit: donpcevent "Summon Fake#ko::OnEnable"; end; OnEnable: - areamonster "job_ko",120,30,160,70,"Family's Legacy",1002,5,"Summon Fake#ko::OnMyMobDead"; + areamonster "job_ko",120,30,160,70,"Clan's Legacy",1002,5,"Summon Fake#ko::OnMyMobDead"; areamonster "job_ko",120,30,160,70,"Kagerou's Memory",1002,5,"Summon Fake#ko::OnMyMobDead"; areamonster "job_ko",120,30,160,70,"Oboro's Memory",1002,5,"Summon Fake#ko::OnMyMobDead"; - areamonster "job_ko",120,30,160,70,"Family's Mistake",1031,5,"Summon Fake#ko::OnMyMobDead"; + areamonster "job_ko",120,30,160,70,"Clan's Mistake",1031,5,"Summon Fake#ko::OnMyMobDead"; areamonster "job_ko",120,30,160,70,"Oboro's Mistake",1031,5,"Summon Fake#ko::OnMyMobDead"; areamonster "job_ko",120,30,160,70,"Kagerou's Mistake",1031,5,"Summon Fake#ko::OnMyMobDead"; - areamonster "job_ko",120,30,160,70,"Family's Memory",1113,5,"Summon Fake#ko::OnMyMobDead"; + areamonster "job_ko",120,30,160,70,"Clan's Memory",1113,5,"Summon Fake#ko::OnMyMobDead"; areamonster "job_ko",120,30,160,70,"Oboro's Past",1113,5,"Summon Fake#ko::OnMyMobDead"; areamonster "job_ko",120,30,160,70,"Kagerou's Past",1113,5,"Summon Fake#ko::OnMyMobDead"; - areamonster "job_ko",120,30,160,70,"Family's Legacy",1063,5,"Summon Fake#ko::OnMyMobDead"; + areamonster "job_ko",120,30,160,70,"Clan's Legacy",1063,5,"Summon Fake#ko::OnMyMobDead"; areamonster "job_ko",120,30,160,70,"Oboro's Legacy",1063,5,"Summon Fake#ko::OnMyMobDead"; areamonster "job_ko",120,30,160,70,"Kagerou's Legacy",1063,5,"Summon Fake#ko::OnMyMobDead"; - areamonster "job_ko",120,30,160,70,"Family's Mistake",1010,5,"Summon Fake#ko::OnMyMobDead"; + areamonster "job_ko",120,30,160,70,"Clan's Mistake",1010,5,"Summon Fake#ko::OnMyMobDead"; areamonster "job_ko",120,30,160,70,"Oboro's Memory",1010,5,"Summon Fake#ko::OnMyMobDead"; areamonster "job_ko",120,30,160,70,"Kagerou's Memory",1010,5,"Summon Fake#ko::OnMyMobDead"; - areamonster "job_ko",120,30,160,70,"Family's Past",1049,5,"Summon Fake#ko::OnMyMobDead"; + areamonster "job_ko",120,30,160,70,"Clan's Past",1049,5,"Summon Fake#ko::OnMyMobDead"; areamonster "job_ko",120,30,160,70,"Oboro's Mistake",1049,5,"Summon Fake#ko::OnMyMobDead"; areamonster "job_ko",120,30,160,70,"Kagerou's Mistake",1049,5,"Summon Fake#ko::OnMyMobDead"; - areamonster "job_ko",120,30,160,70,"Family's Memory",1050,5,"Summon Fake#ko::OnMyMobDead"; + areamonster "job_ko",120,30,160,70,"Clan's Memory",1050,5,"Summon Fake#ko::OnMyMobDead"; areamonster "job_ko",120,30,160,70,"Oboro's Past",1050,5,"Summon Fake#ko::OnMyMobDead"; areamonster "job_ko",120,30,160,70,"Kagerou's Past",1050,5,"Summon Fake#ko::OnMyMobDead"; end; diff --git a/npc/re/jobs/3-1/archbishop.txt b/npc/re/jobs/3-1/archbishop.txt index e59492ce5..e37087857 100644 --- a/npc/re/jobs/3-1/archbishop.txt +++ b/npc/re/jobs/3-1/archbishop.txt @@ -779,7 +779,7 @@ job3_arch01,29,34,3 script Valkyrie#arch 4_F_VALKYRIE2,{ warp "odin_tem02",282,263; end; } - if (getmercinfo(1)) { + if (getmercinfo(MERCINFO_CLASS)) { mes "[Valkyrie]"; mes "If you want to talk with me, you have to ^3131FFcancel all contracts^000000 with any mercenaries you have."; close; @@ -1006,7 +1006,7 @@ OnTouch: if (countitem(ValkyrieA_Scroll)) { delitem ValkyrieA_Scroll,1; // fall through - } else if (getmercinfo(1) == 2037) { + } else if (getmercinfo(MERCINFO_CLASS) == VALKYRIE_A) { if (strnpcinfo(NPC_NAME) == "#arch_1_10") viewpoint 1,113,327,1,0xFF9900; .@randht = rand(1,10); @@ -1038,7 +1038,7 @@ OnTouch: if (countitem(ValkyrieA_Scroll)) { delitem ValkyrieA_Scroll,1; // fall through - } else if (getmercinfo(1) == 2037) { + } else if (getmercinfo(MERCINFO_CLASS) == VALKYRIE_A) { mapannounce "job3_arch02","Valkyrie's Nightmare: An incompetent illusion of Valkyrie came here with the assistance of humans. You wanna have that nightmare?",bc_map,"0xFF0000"; donpcevent "mob#arch_1::OnKill"; end; @@ -1113,7 +1113,7 @@ OnKill: } job3_arch02,113,327,5 script Valkyrie#arch_01 4_F_VALKYRIE2,{ - if (getmercinfo(1)) { + if (getmercinfo(MERCINFO_CLASS)) { mes "[Valkyrie]"; mes "If you want to talk with me, you have to ^3131FFcancel all contracts^000000 with any mercenaries you have."; close; @@ -1355,7 +1355,7 @@ OnTouch: if (countitem(ValkyrieB_Scroll)) { delitem ValkyrieB_Scroll,1; // fall through - } else if (getmercinfo(1) == 2038) { + } else if (getmercinfo(MERCINFO_CLASS) == VALKYRIE_B) { .@randht = rand(1,10); if (.@randht < 8) mapannounce "job3_arch02","Whispering of an impersonation: I can feel the devil's spirits. Can you hear? The sound of gathering in crowds.",bc_map,"0xFFCE00"; @@ -1400,7 +1400,7 @@ OnTouch: if (countitem(ValkyrieB_Scroll)) { delitem ValkyrieB_Scroll,1; // fall through - } else if (getmercinfo(1) == 2038) { + } else if (getmercinfo(MERCINFO_CLASS) == VALKYRIE_B) { mapannounce "job3_arch02","A shout of devil: You are so childish. I invite you a party of devil. I'll make you have a fun!",bc_map,"0xFF0000"; end; } diff --git a/npc/re/jobs/3-1/ranger.txt b/npc/re/jobs/3-1/ranger.txt index 41e5b476f..166a1d42e 100644 --- a/npc/re/jobs/3-1/ranger.txt +++ b/npc/re/jobs/3-1/ranger.txt @@ -613,7 +613,7 @@ tur_dun01,91,169,3 script Test Instructor#jr02 4_M_JOB_HUNTER,{ mes "Don't hang around here doing nothing. This is my area!"; close; L_Start: - if (getmercinfo(1)) { + if (getmercinfo(MERCINFO_CLASS)) { mes "[Test Instructor, Teardrop]"; mes "Stop!"; next; @@ -1491,7 +1491,7 @@ job3_rang02,251,49,3 script Test Supervisor#jr_13 4_M_JOB_HUNTER,{ setquest 8261; close; } - if (getmercinfo(1) == 2034) { + if (getmercinfo(MERCINFO_CLASS) == M_DESERT_WOLF_B) { erasequest 8261; mes "Good! Then I'll start the test right now!"; next; diff --git a/npc/re/jobs/3-2/sura.txt b/npc/re/jobs/3-2/sura.txt index 63e689acc..4e0108fd8 100644 --- a/npc/re/jobs/3-2/sura.txt +++ b/npc/re/jobs/3-2/sura.txt @@ -654,14 +654,14 @@ OnTimer305000: OnTimer315000: mapannounce "sword_2-1","Come on here.",bc_map; donpcevent "Buddy#job_shuaneh::OnDisable"; - donpcevent "#Sura_garajjom::OnEnable"; + // donpcevent "#Sura_garajjom::OnEnable"; // Commented to prevent #Sura_garajjom allowing player to success the test at any case (even when failing it). end; OnTimer320000: mapannounce "sword_2-1","I guess you're not ready to meet the master yet...",bc_map; mapwarp "sword_2-1","yuno_fild07",255,178; - donpcevent "#Sura_garajjom::OnDisable"; - donpcevent "Drawing Room::OnEnable"; + // donpcevent "#Sura_garajjom::OnDisable"; donpcevent "Buddy#Sura_Salon::OnDisable"; + donpcevent "Drawing Room::OnEnable"; end; } diff --git a/npc/re/merchants/hd_refiner.txt b/npc/re/merchants/hd_refiner.txt index 17979642e..2dcc74bae 100644 --- a/npc/re/merchants/hd_refiner.txt +++ b/npc/re/merchants/hd_refiner.txt @@ -39,6 +39,17 @@ //== Blacksmith Mighty Hammer (+7~9) ======================= - script ::MightyHammer FAKE_NPC,{ + mes("[Blacksmith Mighty Hammer]"); + mes("I'm a blacksmith skilled in refining weapons and armors."); + mes("I can refine an item of your choice among the items you are equipped with."); + mes("Which item do you want to refine?"); + + if (getbattleflag("features/replace_refine_npcs") == 1) { + if (openrefineryui()) + close(); + } + next(); + disable_items; mes "[Blacksmith Mighty Hammer]"; mes "Unlike others, I am a blacksmith who refines a very limited number of items."; diff --git a/npc/re/merchants/refine.txt b/npc/re/merchants/refine.txt index 6356acfca..879e9a5f1 100644 --- a/npc/re/merchants/refine.txt +++ b/npc/re/merchants/refine.txt @@ -56,6 +56,17 @@ payon_in01,18,132,3 script Vestri#pay 4_M_DWARF,{ // On official servers, if an item is unsuccessfully refined it will break at a // 20% rate and downgrade at an 80% rate. function script refinenew { + mesf("[%s]", getarg(0)); + mes("I'm a blacksmith skilled in refining weapons and armors."); + mes("I can refine an item of your choice among the items you are equipped with."); + mes("Which item do you want to refine?"); + + if (getbattleflag("features/replace_refine_npcs") == 1) { + if (openrefineryui()) + close(); + } + next(); + disable_items; mes "["+ getarg(0) +"]"; mes "I am the best Armsmith ever!"; diff --git a/npc/re/merchants/renters.txt b/npc/re/merchants/renters.txt index ab6b3f9ac..30d9679b0 100644 --- a/npc/re/merchants/renters.txt +++ b/npc/re/merchants/renters.txt @@ -166,60 +166,125 @@ prontera,125,208,5 script Peco Peco Remover 8W_SOLDIER,{ close; } -//== Magic Gear Renter ===================================== +//== Mado Gear Renter :: madogear ===================================== - script ::mgm FAKE_NPC,{ - mes "[Magic Gear Master]"; + mes "[Mado Gear Armorer]"; if (Class == Job_Mechanic || Class == Job_Mechanic_T || Class == Job_Baby_Mechanic) { mes "Welcome, Mechanic."; mes "Would you like to rent a Pushcart or"; - mes "ride a Magic Gear?"; + mes "ride a Mado Gear?"; next; - switch(select("Rent a Pushcart", "Ride a Magic Gear", "Cancel")) { + switch(select("Rent a Pushcart", "Ride a Mado Gear", "Buy Emergency Mado Gear", "Upgrade Cooling Device", "Cancel")) { case 1: if (checkcart()) { - mes "[Magic Gear Master]"; + mes "[Mado Gear Armorer]"; mes "I'm sorry, but you already"; mes "have a Pushcart."; close; } setcart; - mes "[Magic Gear Master]"; + mes "[Mado Gear Armorer]"; mes "There you go!"; close; case 2: if (checkmount() == MOUNT_MADO) { - mes "[Magic Gear Master]"; + mes "[Mado Gear Armorer]"; mes "I'm sorry, but you're already"; - mes "riding a Magic Gear."; + mes "riding a Mado Gear."; close; } else if (!getskilllv(NC_MADOLICENCE)) { - mes "[Magic Gear Master]"; - mes "Please learn the skill to get the Magic Gear License first."; + mes "[Mado Gear Armorer]"; + mes "Please learn the skill to get the Mado Gear License first."; close; } else if(hascashmount()) { - mes "[Magic Gear Master]"; + mes "[Mado Gear Armorer]"; mes "Please remove your cash mount."; close; } setmount(MOUNT_MADO); - mes "[Magic Gear Master]"; + mes "[Mado Gear Armorer]"; mes "Have fun, and please come again!"; close; case 3: + mes "[Mado Gear Armorer]"; + mes "Emergency Mado Gear is really useful for emergency situations and it is sold at 1,000,000 Zeny."; + next; + if (select("Purchase", "Cancel") == 2) { + mes "[Mado Gear Armorer]"; + mes "I see. Please feel free to ask me"; + mes "if you change your mind."; + close; + } + if (countitem(Mado_Box) > 0) { + mes "[Mado Gear Armorer]"; + mes "I'm sorry, but you already have an Emergency Mado Gear."; + close; + } + if (Zeny < 1000000) { + mes "[Mado Gear Armorer]"; + mes "I'm sorry, but you don't have enough Zeny to purchase the Emergency Mado Gear."; + close; + } + Zeny -= 1000000; + getitem Mado_Box, 1; + mes "[Mado Gear Armorer]"; + mes "There you go!"; + close; + case 4: + mes "[Mado Gear Armorer]"; + mes "Which device do you want to upgrade?"; + next; + if (select("Cooling Device", "High Quality Cooler") == 1) { + mes "[Mado Gear Armorer]"; + mes "Upgrading Cooling Device to High Quality Cooler needs 1 Cooling Device and 2,000,000 Zeny."; + next; + .@itemid = Cooling_Device; + .@cost = 2000000; + } else { + mes "[Mado Gear Armorer]"; + mes "Upgrading High Quality Cooler to Special Cooler needs 1 High Quality Cooler and 4,000,000 Zeny."; + next; + .@itemid = High_Quality_Cooler; + .@cost = 4000000; + } + if (select("Upgrade", "Cancel") == 2) { + mes "[Mado Gear Armorer]"; + mes "I see. Please feel free to ask me"; + mes "if you change your mind."; + close; + } + if (!countitem(.@itemid)) { + mes "[Mado Gear Armorer]"; + mes "I'm sorry, but you don't have the " + getitemname(.@itemid) + "."; + close; + } + if (Zeny < .@cost) { + mes "[Mado Gear Armorer]"; + mes "I'm sorry, but you don't have enough Zeny to upgrade the device."; + close; + } + Zeny -= .@cost; + delitem .@itemid, 1; + getitem (.@itemid == Cooling_Device ? High_Quality_Cooler : Special_Cooler), 1; + mes "[Mado Gear Armorer]"; + mes "Here you are! Your very own " + getitemname(.@itemid) + "."; + close; + case 5: close; } } mes "How may I help you?"; - mes "Magic Gears are only available for Mechanics."; + mes "Mado Gears are only available for Mechanics."; close; } -prontera,163,178,3 duplicate(mgm) Magic Gear Master#prt 8W_SOLDIER -geffen,103,55,5 duplicate(mgm) Magic Gear Master#gef 8W_SOLDIER -payon,166,106,5 duplicate(mgm) Magic Gear Master#pay 8W_SOLDIER -aldebaran,133,112,5 duplicate(mgm) Magic Gear Master#alde 8W_SOLDIER -yuno,167,187,3 duplicate(mgm) Magic Gear Master#yuno 8W_SOLDIER -rachel,106,134,5 duplicate(mgm) Magic Gear Master#ra 8W_SOLDIER -dicastes01,187,207,3 duplicate(mgm) Magic Gear Master#dic 8W_SOLDIER -manuk,273,212,5 duplicate(mgm) Magic Gear Master#man 8W_SOLDIER -splendide,180,174,5 duplicate(mgm) Magic Gear Master#spl 8W_SOLDIER -mid_camp,242,243,3 duplicate(mgm) Magic Gear Master#mid 8W_SOLDIER + +prontera,163,178,3 duplicate(mgm) Mado Gear Armorer#prt 8W_SOLDIER +geffen,103,55,5 duplicate(mgm) Mado Gear Armorer#gef 8W_SOLDIER +payon,166,106,5 duplicate(mgm) Mado Gear Armorer#pay 8W_SOLDIER +aldebaran,133,112,5 duplicate(mgm) Mado Gear Armorer#alde 8W_SOLDIER +yuno,167,187,3 duplicate(mgm) Mado Gear Armorer#yuno 8W_SOLDIER +rachel,106,134,5 duplicate(mgm) Mado Gear Armorer#ra 8W_SOLDIER +dicastes01,187,207,3 duplicate(mgm) Mado Gear Armorer#dic 8W_SOLDIER +manuk,273,212,5 duplicate(mgm) Mado Gear Armorer#man 8W_SOLDIER +splendide,180,174,5 duplicate(mgm) Mado Gear Armorer#spl 8W_SOLDIER +mid_camp,242,243,3 duplicate(mgm) Mado Gear Armorer#mid 8W_SOLDIER diff --git a/npc/re/merchants/shadow_refiner.txt b/npc/re/merchants/shadow_refiner.txt index f03d348b2..db9668b6d 100644 --- a/npc/re/merchants/shadow_refiner.txt +++ b/npc/re/merchants/shadow_refiner.txt @@ -39,11 +39,17 @@ itemmall,31,76,3 script Shadow Blacksmith#nomal 4_F_JOB_BLACKSMITH,{ .@npc_name$ = "[Shadow Blacksmith]"; .@zeny_cost = 20000; // Amount of zeny to be charged for refining. - disable_items; mesf("%s", .@npc_name$); mes("Do you want to refine a Shadow item?"); mes("Please choose the part you want to refine."); - next; + + if (getbattleflag("features/replace_refine_npcs") == 1) { + if (openrefineryui()) + close(); + } + next(); + + disable_items; setarray(.@position$[0],"Armor","Weapon","Shield","Shoes","Earring","Pendant"); for (.@i=EQI_SHADOW_ARMOR; .@i <= EQI_SHADOW_ACC_L; .@i++){ .@menu$ = .@menu$ + (getequipisequiped(.@i) ? getequipname(.@i) : ("^8C8C8C" + .@position$[.@i-EQI_SHADOW_ARMOR] + " [Not Equipped]^000000" + ":")); diff --git a/npc/re/quests/eden/eden_tutorial.txt b/npc/re/quests/eden/eden_tutorial.txt index 902db7945..188bc514a 100644 --- a/npc/re/quests/eden/eden_tutorial.txt +++ b/npc/re/quests/eden/eden_tutorial.txt @@ -228,7 +228,7 @@ moc_para01,34,178,3 script Tutorial Instructor 4_M_KHMAN,{ close; } } else if (questprogress(9167) == 1) { - if (!getmercinfo(1)) { + if (!getmercinfo(MERCINFO_CLASS)) { mes "[Tutorial Instructor]"; mes "You haven't gotten a mercenary yet."; next; diff --git a/npc/scripts.conf b/npc/scripts.conf index f03ac50f0..aa3cb23e8 100644 --- a/npc/scripts.conf +++ b/npc/scripts.conf @@ -226,6 +226,7 @@ "npc/other/turbo_track.txt", "npc/other/item_merge.txt", "npc/other/private_airship.txt", +"npc/other/inventory_expansion.txt", //================= Quests ================================================ // - Quests-Tutorials for basic classes (1st class quests) ------ diff --git a/npc/scripts_custom.conf b/npc/scripts_custom.conf index 14384fd17..a5aad9767 100644 --- a/npc/scripts_custom.conf +++ b/npc/scripts_custom.conf @@ -50,6 +50,7 @@ //"npc/custom/card_remover.txt", //"npc/custom/item_signer.txt", //"npc/custom/woe_controller.txt", +//"npc/custom/bartershop.txt", //================= Other Scripts ========================================= // -- MVP Arena diff --git a/npc/woe-fe/agit_main.txt b/npc/woe-fe/agit_main.txt index 5ac5b8e9a..a0db6402b 100644 --- a/npc/woe-fe/agit_main.txt +++ b/npc/woe-fe/agit_main.txt @@ -105,7 +105,8 @@ OnAgitBreak: // Show and log error if an unguilded player breaks the Emperium. (Should NEVER happen) if (.@GID <= 0) { .@notice$ = "Character "+strcharinfo(PC_NAME)+" ("+getcharid(CHAR_ID_CHAR)+") broke the Emperium in Castle: "+strnpcinfo(NPC_NAME_HIDDEN)+" while guildless. No data will be saved and Emperium respawned."; - logmes .@notice$; debugmes .@notice$; + logmes .@notice$; + consolemes(CONSOLEMES_NOTICE, .@notice$); donpcevent "Agit#"+strnpcinfo(NPC_NAME_HIDDEN)+"::OnStartArena"; end; } diff --git a/npc/woe-se/agit_main_se.txt b/npc/woe-se/agit_main_se.txt index 6fc319377..41430f6a1 100644 --- a/npc/woe-se/agit_main_se.txt +++ b/npc/woe-se/agit_main_se.txt @@ -222,50 +222,50 @@ OnTreasureDied: - script Steward#template FAKE_NPC,{ .@GID = getcastledata(strnpcinfo(NPC_MAP),1); if (!.@GID) { - mes "[ Steward ]"; - mes "I await for the master"; - mes "whom destiny will choose"; - mes "for me. Do you think you"; - mes "have to courage and strength"; - mes "to conquer this stronghold?"; + mes("[ Steward ]"); + mes("I await for the master"); + mes("whom destiny will choose"); + mes("for me. Do you think you"); + mes("have to courage and strength"); + mes("to conquer this stronghold?"); close; } if (getcharid(CHAR_ID_GUILD) != .@GID || strcharinfo(PC_NAME) != getguildmaster(.@GID)) { - mes "[ Steward ]"; - mes "Hmpf. Your threats don't"; - mes "scare me! Guardians, drive"; - mes "this infidel away from here!"; - mes "I will always be loyal to the"; - mes "master of this stronghold,"; - mes "the one and only ^FF0000"+getguildmaster(.@GID)+"^000000."; + mes("[ Steward ]"); + mes("Hmpf. Your threats don't"); + mes("scare me! Guardians, drive"); + mes("this infidel away from here!"); + mes("I will always be loyal to the"); + mes("master of this stronghold,"); + mesf("the one and only ^FF0000%s^000000.", getguildmaster(.@GID)); close; } - mes "[ Steward ]"; - mes "Ah, Master ^FF0000"+getguildmaster(.@GID)+"^000000..."; - mes "How shall I serve you today?"; - mes "Was there an aspect of this"; - mes "stronghold's maintenance"; - mes "you wanted to discuss?"; + mes("[ Steward ]"); + mesf("Ah, Master ^FF0000%s^000000...", getguildmaster(.@GID)); + mes("How shall I serve you today?"); + mes("Was there an aspect of this"); + mes("stronghold's maintenance"); + mes("you wanted to discuss?"); next; switch(select("Stronghold Briefing", "Invest in Commercial Growth", "Invest in Defense growth", "Hire/Fire Storage Staff", "Go to Master's room")) { case 1: - mes "[ Steward ]"; - mes "The Commercial Growth"; - mes "Level of the stronghold is ^0000ff"+getcastledata(strnpcinfo(NPC_MAP),2)+"."; + mes("[ Steward ]"); + mes("The Commercial Growth"); + mesf("Level of the stronghold is ^0000ff%d^000000.", getcastledata(strnpcinfo(NPC_MAP),2)); if (getcastledata(strnpcinfo(NPC_MAP),4) > 0) { - mes "Last time, you invested in"; - mes "Commercial Growth "+getcastledata(strnpcinfo(NPC_MAP),4)+"."; + mes("Last time, you invested in"); + mesf("Commercial Growth ^0000ff%d^000000.", getcastledata(strnpcinfo(NPC_MAP),4)); } next; - mes "[ Steward ]"; - mes "Our stronghold's"; - mes "safeguard level is "+getcastledata(strnpcinfo(NPC_MAP),3)+"."; + mes("[ Steward ]"); + mes("Our stronghold's"); + mesf("safeguard level is %d.", getcastledata(strnpcinfo(NPC_MAP),3)); if (getcastledata(strnpcinfo(NPC_MAP),5) > 0) { - mes "Last time, you invested"; - mes "in defense "+getcastledata(strnpcinfo(NPC_MAP),5)+" times."; + mes("Last time, you invested"); + mesf("in defense %d times.", getcastledata(strnpcinfo(NPC_MAP),5)); } - mes " "; - mes "That is all, master."; + mes(" "); + mes("That is all, master."); close; case 2: .@Economy = getcastledata(strnpcinfo(NPC_MAP),2); @@ -281,84 +281,84 @@ OnTreasureDied: // Quadruple the cost of investing if you've already invested once. if (getcastledata(strnpcinfo(NPC_MAP),4)) .@eco_invest *= 4; - mes "[ Steward ]"; - mes "Raising the stronghold's"; - mes "commercial growth will"; - mes "increase the quantity of"; - mes "goods produced for the guild."; - mes "Investing in commercial growth"; - mes "will help the guild's future."; + mes("[ Steward ]"); + mes("Raising the stronghold's"); + mes("commercial growth will"); + mes("increase the quantity of"); + mes("goods produced for the guild."); + mes("Investing in commercial growth"); + mes("will help the guild's future."); next; - mes "[ Steward ]"; - mes "You can make one investment"; - mes "each day, but if you can make"; - mes "two investments if you pay"; - mes "more Zeny: this will speed"; - mes "up commercial development,"; - mes "but can be quite expensive."; + mes("[ Steward ]"); + mes("You can make one investment"); + mes("each day, but if you can make"); + mes("two investments if you pay"); + mes("more Zeny: this will speed"); + mes("up commercial development,"); + mes("but can be quite expensive."); next; if (.@Economy == 100) { - mes "[ Steward ]"; - mes "However, our stronghold's"; - mes "commerical growth level is"; - mes "at 100%. It's not possible to"; - mes "develop commercial growth"; - mes "any further than that."; + mes("[ Steward ]"); + mes("However, our stronghold's"); + mes("commerical growth level is"); + mes("at 100%. It's not possible to"); + mes("develop commercial growth"); + mes("any further than that."); close; } if (getcastledata(strnpcinfo(NPC_MAP),4) >= 2) { - mes "[ Steward ]"; - mes "You've already made two"; - mes "investments today, so you'll"; - mes "have to wait until tomorrow"; - mes "to make another investment."; + mes("[ Steward ]"); + mes("You've already made two"); + mes("investments today, so you'll"); + mes("have to wait until tomorrow"); + mes("to make another investment."); close; } if (getcastledata(strnpcinfo(NPC_MAP),4) == 0) { - mes "[ Steward ]"; - mes "You must pay ^FF0000"+.@eco_invest+"^000000 Zeny"; - mes "to make an investment"; - mes "Will you invest in this"; - mes "stronghold's commerical"; - mes "development now?"; + mes("[ Steward ]"); + mesf("You must pay ^FF0000%d^000000 Zeny", .@eco_invest); + mes("to make an investment"); + mes("Will you invest in this"); + mes("stronghold's commerical"); + mes("development now?"); } else { - mes "[ Steward ]"; - mes "You must pay ^FF0000"+.@eco_invest+"^000000"; - mes "more Zeny to make a second"; - mes "investment today. Will you"; - mes "invest one more time?"; + mes("[ Steward ]"); + mesf("You must pay ^FF0000%d^000000", .@eco_invest); + mes("more Zeny to make a second"); + mes("investment today. Will you"); + mes("invest one more time?"); } next; switch(select("Invest in Commercial Growth", "Cancel")) { case 1: if (getcastledata(strnpcinfo(NPC_MAP),4) >= 2) { - mes "[ Steward ]"; - mes "You've already made two"; - mes "investments today, so you'll"; - mes "have to wait until tomorrow"; - mes "to make another investment."; + mes("[ Steward ]"); + mes("You've already made two"); + mes("investments today, so you'll"); + mes("have to wait until tomorrow"); + mes("to make another investment."); close; } if (Zeny < .@eco_invest) { - mes "[ Steward ]"; - mes "I'm sorry, Master, but"; - mes "you do not have enough"; - mes "Zeny to make an investment"; - mes "for the guild today."; + mes("[ Steward ]"); + mes("I'm sorry, Master, but"); + mes("you do not have enough"); + mes("Zeny to make an investment"); + mes("for the guild today."); close; } Zeny -= .@eco_invest; setcastledata strnpcinfo(NPC_MAP),4,getcastledata(strnpcinfo(NPC_MAP),4)+1; - mes "[ Steward ]"; - mes "A wise use of the guild's"; - mes "funds, Master. We can expect"; - mes "to see the results of this"; - mes "investment by tomorrow."; + mes("[ Steward ]"); + mes("A wise use of the guild's"); + mes("funds, Master. We can expect"); + mes("to see the results of this"); + mes("investment by tomorrow."); close; case 2: - mes "[ Steward ]"; - mes "As you command, Master."; + mes("[ Steward ]"); + mes("As you command, Master."); close; } case 3: @@ -375,220 +375,220 @@ OnTreasureDied: // Quadruple the cost of investing if you've already invested once. if (getcastledata(strnpcinfo(NPC_MAP),5)) .@def_invest *= 4; - mes "[ Steward ]"; - mes "Investing in our stronghold's"; - mes "defense will enhance the"; - mes "durability of our Guardians"; - mes "and the Emperium. We'll need"; - mes "every advantage to protect"; - mes "ourselves from our enemies."; + mes("[ Steward ]"); + mes("Investing in our stronghold's"); + mes("defense will enhance the"); + mes("durability of our Guardians"); + mes("and the Emperium. We'll need"); + mes("every advantage to protect"); + mes("ourselves from our enemies."); next; - mes "[ Steward ]"; - mes "You can invest in defense"; - mes "once per day, but if you pay"; - mes "more Zeny, you can invest"; - mes "a maximum of two times daily."; + mes("[ Steward ]"); + mes("You can invest in defense"); + mes("once per day, but if you pay"); + mes("more Zeny, you can invest"); + mes("a maximum of two times daily."); next; - mes "[ Steward ]"; + mes("[ Steward ]"); if (getcastledata(strnpcinfo(NPC_MAP),3) == 100) { - mes "The Defense Level of this"; - mes "stronghold is 100%, and"; - mes "cannot be increased further."; + mes("The Defense Level of this"); + mes("stronghold is 100%, and"); + mes("cannot be increased further."); close; } if (getcastledata(strnpcinfo(NPC_MAP),5) >= 2) { - mes "Master, you've already"; - mes "invested in Defense twice"; - mes "today. You'll need to wait"; - mes "until tomorrow if you really"; - mes "want to increase our defenses."; + mes("Master, you've already"); + mes("invested in Defense twice"); + mes("today. You'll need to wait"); + mes("until tomorrow if you really"); + mes("want to increase our defenses."); close; } if (getcastledata(strnpcinfo(NPC_MAP),5) == 0) { - mes "We need ^FF0000"+.@def_invest+"^000000"; - mes "Zeny to invest in our"; - mes "stronghold's defenses."; - mes "Will you invest now?"; + mesf("We need ^FF0000%d^000000", .@def_invest); + mes("Zeny to invest in our"); + mes("stronghold's defenses."); + mes("Will you invest now?"); } else { - mes "We need ^FF0000"+.@def_invest+"^000000"; - mes "Zeny to invest in our"; - mes "stronghold's defenses"; - mes "a second time today."; - mes "Will you invest now?"; + mesf("We need ^FF0000%d^000000", .@def_invest); + mes("Zeny to invest in our"); + mes("stronghold's defenses"); + mes("a second time today."); + mes("Will you invest now?"); } next; switch(select("Invest in Defense", "Cancel")) { case 1: if (getcastledata(strnpcinfo(NPC_MAP),5) >= 2) { - mes "[ Steward ]"; - mes "Master, you've already"; - mes "invested in Defense twice"; - mes "today. You'll need to wait"; - mes "until tomorrow if you really"; - mes "want to increase our defenses."; + mes("[ Steward ]"); + mes("Master, you've already"); + mes("invested in Defense twice"); + mes("today. You'll need to wait"); + mes("until tomorrow if you really"); + mes("want to increase our defenses."); close; } if (Zeny < .@def_invest) { - mes "[ Steward ]"; - mes "I'm sorry, Master, but"; - mes "you do not have enough"; - mes "Zeny to make an investment"; - mes "for the guild today."; + mes("[ Steward ]"); + mes("I'm sorry, Master, but"); + mes("you do not have enough"); + mes("Zeny to make an investment"); + mes("for the guild today."); close; } Zeny -= .@def_invest; setcastledata strnpcinfo(NPC_MAP),5,getcastledata(strnpcinfo(NPC_MAP),5)+1; - mes "[ Steward ]"; - mes "A wise use of the guild's"; - mes "funds, Master. Increasing"; - mes "the frequency of treasure"; - mes "procured by the guild will"; - mes "definitely help us all."; + mes("[ Steward ]"); + mes("A wise use of the guild's"); + mes("funds, Master. Increasing"); + mes("the frequency of treasure"); + mes("procured by the guild will"); + mes("definitely help us all."); close; case 2: - mes "[ Steward ]"; - mes "As you command, Master."; + mes("[ Steward ]"); + mes("As you command, Master."); close; } case 4: if (getcastledata(strnpcinfo(NPC_MAP),9) == 1) { - mes "[ Steward ]"; - mes "Do you wish to dismiss"; - mes "the Kafra Employee that"; - mes "we've hired for the guild?"; + mes("[ Steward ]"); + mes("Do you wish to dismiss"); + mes("the Kafra Employee that"); + mes("we've hired for the guild?"); next; switch(select("Dismiss", "Cancel")) { case 1: cutin "kafra_01",2; - mes "[ Hired Kafra Employee ]"; - mes "Master, please reconsider!"; - mes "I've been working very hard"; - mes "for the success of the guild!"; - mes "I'll try harder to serve the"; - mes "guild members of this"; - mes "stronghold, I promise!"; + mes("[ Hired Kafra Employee ]"); + mes("Master, please reconsider!"); + mes("I've been working very hard"); + mes("for the success of the guild!"); + mes("I'll try harder to serve the"); + mes("guild members of this"); + mes("stronghold, I promise!"); next; switch(select("Dismiss", "Cancel")) { case 1: - mes "[ Hired Kafra Employee ]"; - mes "Why?! What have I done"; - mes "to deserve this? Waaah~!"; + mes("[ Hired Kafra Employee ]"); + mes("Why?! What have I done"); + mes("to deserve this? Waaah~!"); next; cutin "kafra_01",255; break; case 2: - mes "[ Hired Kafra Employee ]"; - mes "Thank you, Master!"; - mes "I'll obey your every"; - mes "command as best I can!"; - mes "You won't regret this!"; + mes("[ Hired Kafra Employee ]"); + mes("Thank you, Master!"); + mes("I'll obey your every"); + mes("command as best I can!"); + mes("You won't regret this!"); close; } break; case 2: - mes "[ Steward ]"; - mes "She works very hard,"; - mes "in my opinion. It was in"; - mes "all of our best interests to"; - mes "allow her to stay with us."; + mes("[ Steward ]"); + mes("She works very hard,"); + mes("in my opinion. It was in"); + mes("all of our best interests to"); + mes("allow her to stay with us."); close; } disablenpc "Kafra Employee#"+strnpcinfo(NPC_NAME_HIDDEN); setcastledata strnpcinfo(NPC_MAP),9,0; - mes "[ Steward ]"; - mes "That Kafra Employee"; - mes "has been dismissed."; - mes "Were really dissatisfied"; - mes "by the quality of her service?"; + mes("[ Steward ]"); + mes("That Kafra Employee"); + mes("has been dismissed."); + mes("Were really dissatisfied"); + mes("by the quality of her service?"); close; } else { - mes "[ Steward ]"; - mes "Will you hire a"; - mes "Kafra Employee to serve"; - mes "our stronghold? You must"; - mes "pay ^FF000010,000 Zeny^000000 to hire one."; + mes("[ Steward ]"); + mes("Will you hire a"); + mes("Kafra Employee to serve"); + mes("our stronghold? You must"); + mes("pay ^FF000010,000 Zeny^000000 to hire one."); next; switch(select("Hire", "Cancel")) { case 1: if (getgdskilllv(.@GID,10001) == 0) { - mes "[ Steward ]"; - mes "Master, we cannot hire a"; - mes "Kafra Employee because"; - mes "you have not yet attained"; - mes "the ^FF0000Contract with Kafra^000000"; - mes "guild skill."; + mes("[ Steward ]"); + mes("Master, we cannot hire a"); + mes("Kafra Employee because"); + mes("you have not yet attained"); + mes("the ^FF0000Contract with Kafra^000000"); + mes("guild skill."); close; } if (Zeny < 10000) { - mes "[ Steward ]"; - mes "Master, we cannot hire a"; - mes "Kafra Employee because"; - mes "we do not have enough"; - mes "funds to pay the contract fee."; + mes("[ Steward ]"); + mes("Master, we cannot hire a"); + mes("Kafra Employee because"); + mes("we do not have enough"); + mes("funds to pay the contract fee."); close; } Zeny -= 10000; enablenpc "Kafra Employee#"+strnpcinfo(NPC_NAME_HIDDEN); setcastledata strnpcinfo(NPC_MAP),9,1; - mes "[ Steward ]"; - mes "Very well. We have formed"; - mes "a contract with the Kafra"; - mes "Head Office, and hired a"; - mes "Kafra Employee for our"; - mes "stronghold. Here she is~"; + mes("[ Steward ]"); + mes("Very well. We have formed"); + mes("a contract with the Kafra"); + mes("Head Office, and hired a"); + mes("Kafra Employee for our"); + mes("stronghold. Here she is~"); next; cutin "kafra_01",2; - mes "[ Hired Kafra Employee ]"; - mes "How do you do? I've"; - mes "been dispatched by the"; - mes "Kafra Head Office to"; - mes "serve your guild's needs."; - mes "I'll do my best to follow"; - mes "your every command, Master."; + mes("[ Hired Kafra Employee ]"); + mes("How do you do? I've"); + mes("been dispatched by the"); + mes("Kafra Head Office to"); + mes("serve your guild's needs."); + mes("I'll do my best to follow"); + mes("your every command, Master."); next; cutin "kafra_01",255; - mes "[ Steward ]"; - mes "Our contract will expire"; - mes "after one month, so we must"; - mes "pay additional fees to keep"; - mes "this Kafra Employee in"; - mes "the service of our guild."; + mes("[ Steward ]"); + mes("Our contract will expire"); + mes("after one month, so we must"); + mes("pay additional fees to keep"); + mes("this Kafra Employee in"); + mes("the service of our guild."); close; case 2: - mes "[ Steward ]"; - mes "As you command, Master."; - mes "However, I suggest hiring"; - mes "a Kafra Employee as soon"; - mes "as possible since our guild"; - mes "would greatly benefit from"; - mes "the convenient Kafra services."; + mes("[ Steward ]"); + mes("As you command, Master."); + mes("However, I suggest hiring"); + mes("a Kafra Employee as soon"); + mes("as possible since our guild"); + mes("would greatly benefit from"); + mes("the convenient Kafra services."); close; } } case 5: - mes "[ Steward ]"; - mes "Do you wish to enter the"; - mes "Guild Treasure Room?"; - mes "Only you, the Guild Master,"; - mes "are permitted to enter."; + mes("[ Steward ]"); + mes("Do you wish to enter the"); + mes("Guild Treasure Room?"); + mes("Only you, the Guild Master,"); + mes("are permitted to enter."); next; - mes "[ Steward ]"; - mes "Please remember to open"; - mes "the Treasure Boxes at the"; - mes "proper time. Otherwise, the"; - mes "treasure may disappear if"; - mes "something unexpected happens."; + mes("[ Steward ]"); + mes("Please remember to open"); + mes("the Treasure Boxes at the"); + mes("proper time. Otherwise, the"); + mes("treasure may disappear if"); + mes("something unexpected happens."); next; switch(select("Go to Treasure Room", "Cancel")) { case 1: - mes "[ Steward ]"; - mes "Allow me to guide you"; - mes "on the secret path to"; - mes "the Treasure Room."; - mes "Press the secret switch"; - mes "when you wish to return here."; + mes("[ Steward ]"); + mes("Allow me to guide you"); + mes("on the secret path to"); + mes("the Treasure Room."); + mes("Press the secret switch"); + mes("when you wish to return here."); close2; if (compare(strnpcinfo(NPC_MAP),"arug")) { if (strnpcinfo(NPC_MAP) == "arug_cas01") setarray .@i[0],250,363; @@ -603,13 +603,13 @@ OnTreasureDied: warp strnpcinfo(NPC_MAP),.@i[0],.@i[1]; end; case 2: - mes "[ Steward ]"; - mes "Items in the Treasure Room"; - mes "are produced once each day."; - mes "Therefore, you must obtain"; - mes "the treasure items everyday."; - mes "For the sake of the guild,"; - mes "prioritize treasure harvesting!"; + mes("[ Steward ]"); + mes("Items in the Treasure Room"); + mes("are produced once each day."); + mes("Therefore, you must obtain"); + mes("the treasure items everyday."); + mes("For the sake of the guild,"); + mes("prioritize treasure harvesting!"); close; } } @@ -656,154 +656,154 @@ OnStartArena: .@GID = getcastledata(strnpcinfo(NPC_MAP),1); .@n$ = "["+strnpcinfo(NPC_NAME_VISIBLE)+"]"; if (!.@GID) { - mes .@n$; - mes "Great job. Now, all you"; - mes "need to do is destroy this"; - mes "Emperium to gain ownership"; - mes "over this stronghold."; + mes(.@n$); + mes("Great job. Now, all you"); + mes("need to do is destroy this"); + mes("Emperium to gain ownership"); + mes("over this stronghold."); close; } if (getcharid(CHAR_ID_GUILD) == .@GID) { if (strcharinfo(PC_NAME) != getguildmaster(.@GID)) { - mes .@n$; - mes "As guardian of this"; - mes "stronghold, I answer only"; - mes "to the master of the guild"; - mes "that controls this place."; + mes(.@n$); + mes("As guardian of this"); + mes("stronghold, I answer only"); + mes("to the master of the guild"); + mes("that controls this place."); close; } else { if (!agitcheck2()) { - mes .@n$; - mes "I am "+strnpcinfo(NPC_NAME_VISIBLE)+", guardian of"; - mes "this stronghold. For now,"; - mes "all is quiet in this place."; + mes(.@n$); + mesf("I am %s, guardian of", strnpcinfo(NPC_NAME_VISIBLE)); + mes("this stronghold. For now,"); + mes("all is quiet in this place."); next; switch(select("Converse", "Cancel")) { case 1: - mes .@n$; - mes "Do you have any questions"; - mes "about this stronghold?"; + mes(.@n$); + mes("Do you have any questions"); + mes("about this stronghold?"); next; switch(select("Guardian Stones", "Fortress Gates", "Link Flags", "Battle Strategy", "Cancel")) { case 1: - mes .@n$; - mes "There is one Emperium"; - mes "and two Guardian Stones in"; - mes "each fortress. These stones"; - mes "are the first line of defense,"; - mes "and must be destroyed before"; - mes "enemies can even enter."; + mes(.@n$); + mes("There is one Emperium"); + mes("and two Guardian Stones in"); + mes("each fortress. These stones"); + mes("are the first line of defense,"); + mes("and must be destroyed before"); + mes("enemies can even enter."); next; - mes .@n$; - mes "The stones are located in"; - mes "^4D4DFFGate Houses^000000 which must be"; - mes "protected to prevent enemies"; - mes "from reaching the Emperium."; - mes "Guardian Stones can ^4D4DFFrecall"; - mes "your Guardians^000000 for protection."; + mes(.@n$); + mes("The stones are located in"); + mes("^4D4DFFGate Houses^000000 which must be"); + mes("protected to prevent enemies"); + mes("from reaching the Emperium."); + mes("Guardian Stones can ^4D4DFFrecall"); + mes("your Guardians^000000 for protection."); next; - mes .@n$; - mes "Fortresses with higher levels"; - mes "of defense can summon more"; - mes "Guardians: this is why it is"; - mes "so important for guilds to"; - mes "invest in Defense Growth."; + mes(.@n$); + mes("Fortresses with higher levels"); + mes("of defense can summon more"); + mes("Guardians: this is why it is"); + mes("so important for guilds to"); + mes("invest in Defense Growth."); next; - mes .@n$; - mes "Guardian Stones that have"; - mes "been destroyed can be revived"; - mes "after a certain time, but one of the guild members must give"; - mes "me the order. I can also report the status of the Guardian Stones."; + mes(.@n$); + mes("Guardian Stones that have"); + mes("been destroyed can be revived"); + mes("after a certain time, but one of the guild members must give"); + mes("me the order. I can also report the status of the Guardian Stones."); close; case 2: - mes .@n$; - mes "^4D4DFFFortress Gates^000000 are the second line of guild stronghold defense,"; - mes "and are protected by extra barricades activated by the Guardian Stones."; - mes "These gates are located in three different parts of the fortress."; + mes(.@n$); + mes("^4D4DFFFortress Gates^000000 are the second line of guild stronghold defense,"); + mes("and are protected by extra barricades activated by the Guardian Stones."); + mes("These gates are located in three different parts of the fortress."); next; - mes .@n$; - mes "Barricades are protected by"; - mes "Guardian Stones, and are"; - mes "restored when the Guardian"; - mes "Stones are retrieved. However,"; - mes "it is not as easy to restore"; - mes "destroyed Fortress Gates."; + mes(.@n$); + mes("Barricades are protected by"); + mes("Guardian Stones, and are"); + mes("restored when the Guardian"); + mes("Stones are retrieved. However,"); + mes("it is not as easy to restore"); + mes("destroyed Fortress Gates."); next; - mes .@n$; - mes "Fortress Gates can only be"; - mes "restored when the ^4D4DFFguild"; - mes "master of a stronghold"; - mes "changes^000000, or if ^4D4DFFrestoration"; - mes "is requested by the guild"; - mes "master of the stronghold^000000."; + mes(.@n$); + mes("Fortress Gates can only be"); + mes("restored when the ^4D4DFFguild"); + mes("master of a stronghold"); + mes("changes^000000, or if ^4D4DFFrestoration"); + mes("is requested by the guild"); + mes("master of the stronghold^000000."); close; case 3: - mes .@n$; - mes "Strongholds have many"; - mes "Link Flags that allow you"; - mes "to access vital areas within"; - mes "restrictions placed by the"; - mes "Barricades. Usually, ^4D4DFFFlag 1"; - mes "links to the Gate House^000000."; + mes(.@n$); + mes("Strongholds have many"); + mes("Link Flags that allow you"); + mes("to access vital areas within"); + mes("restrictions placed by the"); + mes("Barricades. Usually, ^4D4DFFFlag 1"); + mes("links to the Gate House^000000."); next; - mes .@n$; - mes "Many flags link directly to"; - mes "the flag near the Emperium."; - mes "The final numbered flag is"; - mes "linked to the Convenience"; - mes "Facility of the stronghold's"; - mes "owner. Keep this in mind."; + mes(.@n$); + mes("Many flags link directly to"); + mes("the flag near the Emperium."); + mes("The final numbered flag is"); + mes("linked to the Convenience"); + mes("Facility of the stronghold's"); + mes("owner. Keep this in mind."); close; case 4: - mes .@n$; - mes "Strategy? It would be better"; - mes "to develop your battle plan to"; - mes "exploit your guild's advantages"; - mes "and your enemies' weaknesses."; - mes "Use the Gate Houses and Barricades, and rebuild as quickly as you can!"; + mes(.@n$); + mes("Strategy? It would be better"); + mes("to develop your battle plan to"); + mes("exploit your guild's advantages"); + mes("and your enemies' weaknesses."); + mes("Use the Gate Houses and Barricades, and rebuild as quickly as you can!"); close; case 5: - mes .@n$; - mes "You have no questions"; - mes "to ask of me? Well, I'm"; - mes "here to serve your needs."; + mes(.@n$); + mes("You have no questions"); + mes("to ask of me? Well, I'm"); + mes("here to serve your needs."); close; } case 2: - mes .@n$; - mes "I'm always here, so"; - mes "feel free to request my"; - mes "assistance whenever"; - mes "the need arises."; + mes(.@n$); + mes("I'm always here, so"); + mes("feel free to request my"); + mes("assistance whenever"); + mes("the need arises."); close; } } else { - mes .@n$; - mes "Greetings, "+strcharinfo(PC_NAME)+"."; - mes "What are your orders?"; + mes(.@n$); + mesf("Greetings, %s.", strcharinfo(PC_NAME)); + mes("What are your orders?"); next; switch(select("Increase Stronghold Defense", "Situational Briefing", "Cancel")) { case 1: if (!getd("$agit_"+strnpcinfo(NPC_NAME_HIDDEN)+"[5]")) { if (getgdskilllv(.@GID,10002) == 0) { - mes .@n$; - mes "I'm sorry, but the Guardian"; - mes "Stones aren't powerful enough"; - mes "to summon Guardians yet. We"; - mes "need to accumulate more"; - mes "knowledge before they can"; - mes "summon any Guardians."; + mes(.@n$); + mes("I'm sorry, but the Guardian"); + mes("Stones aren't powerful enough"); + mes("to summon Guardians yet. We"); + mes("need to accumulate more"); + mes("knowledge before they can"); + mes("summon any Guardians."); close; } else { - mes .@n$; - mes "I shall endeavor to summon"; - mes "a Guardian through a Guardian"; - mes "Stone. However, keep in mind"; - mes "that this will not work if the"; - mes "Guardian Stone is destroyed."; + mes(.@n$); + mes("I shall endeavor to summon"); + mes("a Guardian through a Guardian"); + mes("Stone. However, keep in mind"); + mes("that this will not work if the"); + mes("Guardian Stone is destroyed."); setd "$agit_"+strnpcinfo(NPC_NAME_HIDDEN)+"[5]",1; if (!getd("$agit_"+strnpcinfo(NPC_NAME_HIDDEN)+"[0]")) donpcevent "gard1#"+strnpcinfo(NPC_MAP)+"::OnEnable"; @@ -813,35 +813,35 @@ OnStartArena: } } else { - mes .@n$; - mes "You've already commanded"; - mes "me to summon a Guardian"; - mes "to defend the stronghold."; + mes(.@n$); + mes("You've already commanded"); + mes("me to summon a Guardian"); + mes("to defend the stronghold."); close; } case 2: - mes .@n$; - mes "Our defense status is..."; + mes(.@n$); + mes("Our defense status is..."); setarray .@status$[0],"^4D4DFFOperational","^FF0000Destroyed","^008000Repairing"; - mes "1st Guardian Stone: "+.@status$[getd("$agit_"+strnpcinfo(NPC_NAME_HIDDEN)+"[0]")]+"^000000"; - mes "2nd Guardian Stone: "+.@status$[getd("$agit_"+strnpcinfo(NPC_NAME_HIDDEN)+"[1]")]+"^000000"; - mes "1st Fortress Gate: "+.@status$[getd("$agit_"+strnpcinfo(NPC_NAME_HIDDEN)+"[2]")]+"^000000"; - mes "2nd Fortress Gate: "+.@status$[getd("$agit_"+strnpcinfo(NPC_NAME_HIDDEN)+"[3]")]+"^000000"; - mes "3rd Fortress Gate: "+.@status$[getd("$agit_"+strnpcinfo(NPC_NAME_HIDDEN)+"[4]")]+"^000000"; + mesf("1st Guardian Stone: %s^000000", .@status$[getd("$agit_"+strnpcinfo(NPC_NAME_HIDDEN)+"[0]")]); + mesf("2nd Guardian Stone: %s^000000", .@status$[getd("$agit_"+strnpcinfo(NPC_NAME_HIDDEN)+"[1]")]); + mesf("1st Fortress Gate: %s^000000", .@status$[getd("$agit_"+strnpcinfo(NPC_NAME_HIDDEN)+"[2]")]); + mesf("2nd Fortress Gate: %s^000000", .@status$[getd("$agit_"+strnpcinfo(NPC_NAME_HIDDEN)+"[3]")]); + mesf("3rd Fortress Gate: %s^000000", .@status$[getd("$agit_"+strnpcinfo(NPC_NAME_HIDDEN)+"[4]")]); close; case 3: - mes .@n$; - mes "I'll be standing by,"; - mes "awaiting your orders."; + mes(.@n$); + mes("I'll be standing by,"); + mes("awaiting your orders."); close; } } } } else { - mes .@n$; - mes "Who are you? Scoundrel!"; - mes "Leave this stronghold now!"; + mes(.@n$); + mes("Who are you? Scoundrel!"); + mes("Leave this stronghold now!"); close; } @@ -855,35 +855,35 @@ OnInit: cutin "kafra_01",2; .@GID = getcastledata(strnpcinfo(NPC_MAP),1); if (getcharid(CHAR_ID_GUILD) == .@GID && getgdskilllv(.@GID,10001)) { - mes "[Kafra Employee]"; - mes "Welcome, proud member"; - mes "of the ^FF0000"+getguildname(.@GID)+"^000000 Guild!"; - mes "The Kafra Corporation is ready"; - mes "to assist you wherever you go!"; + mes("[Kafra Employee]"); + mes("Welcome, proud member"); + mesf("of the ^FF0000%s^000000 Guild!", getguildname(.@GID)); + mes("The Kafra Corporation is ready"); + mes("to assist you wherever you go!"); next; switch(select("Use Storage", "Use Warp Service", "Rent Pushcart", "Cancel")) { case 1: if (basicskillcheck() && getskilllv("NV_BASIC") < 6) { - mes "[Kafra Employee]"; - mes "I'm so sorry, but you must"; - mes "have at least Novice Skill"; - mes "Lv.6 to use the Storage."; + mes("[Kafra Employee]"); + mes("I'm so sorry, but you must"); + mes("have at least Novice Skill"); + mes("Lv.6 to use the Storage."); } else openstorage; break; case 2: - mes "[Kafra Employee]"; - mes "Please tell me your"; - mes "Warp destination."; + mes("[Kafra Employee]"); + mes("Please tell me your"); + mes("Warp destination."); next; switch(select("Rachel -> 200 z", "Cancel")) { case 1: if (Zeny < 200) { - mes "[Kafra Employee]"; - mes "I'm sorry, but you don't"; - mes "have enough Zeny to pay"; - mes "the warp fee. Would you"; - mes "please check your funds again?"; + mes("[Kafra Employee]"); + mes("I'm sorry, but you don't"); + mes("have enough Zeny to pay"); + mes("the warp fee. Would you"); + mes("please check your funds again?"); close2; cutin "kafra_01",255; end; @@ -898,30 +898,30 @@ OnInit: break; case 3: if (BaseClass != Job_Merchant) { - mes "[Kafra Employee]"; - mes "I'm sorry, but the Pushcart"; - mes "rental service can only be"; - mes "used by Merchant, Blacksmith,"; - mes "and Alchemist class characters."; + mes("[Kafra Employee]"); + mes("I'm sorry, but the Pushcart"); + mes("rental service can only be"); + mes("used by Merchant, Blacksmith,"); + mes("and Alchemist class characters."); } else if (checkcart() == 1) { - mes "[Kafra Employee]"; - mes "Hm? You've already"; - mes "rented a Pushcart."; + mes("[Kafra Employee]"); + mes("Hm? You've already"); + mes("rented a Pushcart."); } else { - mes "[Kafra Employee]"; - mes "The Pushcart rental fee"; - mes "is 800 Zeny. Would you"; - mes "like to rent a Pushcart?"; + mes("[Kafra Employee]"); + mes("The Pushcart rental fee"); + mes("is 800 Zeny. Would you"); + mes("like to rent a Pushcart?"); next; switch(select("Rent Pushcart", "Cancel")) { case 1: if (Zeny < 800) { - mes "[Kafra Employee]"; - mes "I'm sorry, but you don't"; - mes "have enough Zeny to rent"; - mes "one of our Pushcarts."; + mes("[Kafra Employee]"); + mes("I'm sorry, but you don't"); + mes("have enough Zeny to rent"); + mes("one of our Pushcarts."); close2; cutin "kafra_01",255; end; @@ -935,11 +935,11 @@ OnInit: } break; case 4: - mes "[Kafra Employee]"; - mes "Thank you for using the"; - mes "Kafra Service. Wherever"; - mes "you go, Kafra will be"; - mes "there to support you!"; + mes("[Kafra Employee]"); + mes("Thank you for using the"); + mes("Kafra Service. Wherever"); + mes("you go, Kafra will be"); + mes("there to support you!"); close2; cutin "kafra_01",255; end; @@ -949,13 +949,13 @@ OnInit: end; } else { - mes "[Kafra Employee]"; - mes "I'm sorry, but I've been"; - mes "exclusively contracted"; - mes "to the members of the"; - mes "^FF0000"+getguildname(.@GID)+"^000000 Guild."; - mes "You'll have to ask another"; - mes "Kafra Employee to help you..."; + mes("[Kafra Employee]"); + mes("I'm sorry, but I've been"); + mes("exclusively contracted"); + mes("to the members of the"); + mesf("^FF0000%s^000000 Guild.", getguildname(.@GID)); + mes("You'll have to ask another"); + mes("Kafra Employee to help you..."); close2; cutin "kafra_01",255; end; @@ -968,54 +968,54 @@ OnInit: .@num = atoi(charat(strnpcinfo(NPC_NAME_VISIBLE),0)); .@var$ = "$agit_"+strnpcinfo(NPC_NAME_HIDDEN); if (getcharid(CHAR_ID_GUILD) == .@GID) { - mes "^3355FFYou will need the"; - mes "following materials to"; - mes "rebuild a destroyed"; - mes "Guardian Stone.^000000"; + mes("^3355FFYou will need the"); + mes("following materials to"); + mes("rebuild a destroyed"); + mes("Guardian Stone.^000000"); next; - mes "1 Oridecon"; - mes "1 Elunium"; - mes "30 Stones"; - mes "5 Blue Gemstones"; - mes "5 Yellow Gemstones"; - mes "5 Red Gemstones"; + mes("1 Oridecon"); + mes("1 Elunium"); + mes("30 Stones"); + mes("5 Blue Gemstones"); + mes("5 Yellow Gemstones"); + mes("5 Red Gemstones"); next; - mes "^3355FFDo you want to continue?^000000"; + mes("^3355FFDo you want to continue?^000000"); next; if(select("No", "Continue") == 1) { - mes "^3355FFWork canceled.^000000"; + mes("^3355FFWork canceled.^000000"); close; } if ((countitem(Oridecon) > 0) && (countitem(Elunium) > 0) && (countitem(Stone) > 29) && (countitem(Blue_Gemstone) > 4) && (countitem(Yellow_Gemstone) > 4) && (countitem(Red_Gemstone) > 4)) { - mes "^3355FFArrange Stones, Elunium, and"; - mes "Oridecon, in that order, in the"; - mes "center. Then you must arrange"; - mes "the enchanted Gemstones to"; - mes "rebuild the Guardian Stone.^000000"; + mes("^3355FFArrange Stones, Elunium, and"); + mes("Oridecon, in that order, in the"); + mes("center. Then you must arrange"); + mes("the enchanted Gemstones to"); + mes("rebuild the Guardian Stone.^000000"); next; setarray .@stone$[0],"Elunium","Oridecon","Stones"; .@i = select("Elunium", "Oridecon", "Stone")-1; if (.@i == 2) .@nice += 10; - mes "^3355FF"+.@stone$[.@i]+" has been"; - mes "placed in the center.^000000"; + mesf("^3355FF%s has been", .@stone$[.@i]); + mes("placed in the center.^000000"); next; .@i = select("Elunium", "Oridecon", "Stone")-1; if (.@i == 0) .@nice += 10; - mes "^3355FFYou have lined the"; - mes "outside of the center"; - mes "with some "+.@stone$[.@i]+".^000000"; + mes("^3355FFYou have lined the"); + mes("outside of the center"); + mesf("with some %s.^000000", .@stone$[.@i]); next; .@i = select("Elunium", "Oridecon", "Stone")-1; if (.@i == 1) .@nice += 10; - mes "^3355FFYou covered the"; - mes "rest of the materials"; - mes "with some "+.@stone$[.@i]+".^000000"; + mes("^3355FFYou covered the"); + mes("rest of the materials"); + mesf("with some %s.^000000", .@stone$[.@i]); next; - mes "^3355FFNow you need to arrange"; - mes "the enchanted Gemstones"; - mes "accordingly. You can identify"; - mes "their Magic properties by"; - mes "their casting effect.^000000"; + mes("^3355FFNow you need to arrange"); + mes("the enchanted Gemstones"); + mes("accordingly. You can identify"); + mes("their Magic properties by"); + mes("their casting effect.^000000"); next; setarray .@effect[0],56,54,225; setarray .@color$[0],"Red","Yellow","Blue"; @@ -1023,17 +1023,17 @@ OnInit: if (.@roof0 > 7) break; .@i = rand(3); specialeffect .@effect[.@i]; - mes "^3355FFThe Gemstones must"; - mes "be arranged in the correct"; - mes "order according to their"; - mes "magic properties and power.^000000"; + mes("^3355FFThe Gemstones must"); + mes("be arranged in the correct"); + mes("order according to their"); + mes("magic properties and power.^000000"); next; .@j = select("Red Gemstone", "Yellow Gemstone", "Blue Gemstone")-1; - mes "^3355FFYou placed the "+.@color$[.@j]+" Gemstone.^000000"; + mesf("^3355FFYou placed the %s Gemstone.^000000", .@color$[.@j]); if (.@i == .@j) { - mes "^3355FFHowever, the Guardian Stone"; - mes "Repair System failed because"; - mes "of a magic power conflict.^000000"; + mes("^3355FFHowever, the Guardian Stone"); + mes("Repair System failed because"); + mes("of a magic power conflict.^000000"); close; } .@nice += 10; @@ -1043,23 +1043,23 @@ OnInit: } if (.@nice > 90) { if (!getd(.@var$+"["+(.@num-1)+"]")) { - mes "^3355FFThe Guardian Stone"; - mes "Repair System has"; - mes "already completed.^000000"; + mes("^3355FFThe Guardian Stone"); + mes("Repair System has"); + mes("already completed.^000000"); close; } else { if (!agitcheck2()) { - mes "^3355FFIt is impossible to"; - mes "rebuild the Guardian"; - mes "Stone because the"; - mes "Emperium is not present.^000000"; + mes("^3355FFIt is impossible to"); + mes("rebuild the Guardian"); + mes("Stone because the"); + mes("Emperium is not present.^000000"); close; } else { - mes "^3355FFThe Gemstones have been"; - mes "arranged, and the Guardian"; - mes "Stone is successfully repaired.^000000"; + mes("^3355FFThe Gemstones have been"); + mes("arranged, and the Guardian"); + mes("Stone is successfully repaired.^000000"); delitem Oridecon,1; delitem Elunium,1; delitem Stone,30; @@ -1084,10 +1084,10 @@ OnInit: } } else { - mes "^3355FFAfter all of that work..."; - mes "It looks like you failed"; - mes "to fix the Guardian Stone,"; - mes "and lost some materials.^000000"; + mes("^3355FFAfter all of that work..."); + mes("It looks like you failed"); + mes("to fix the Guardian Stone,"); + mes("and lost some materials.^000000"); delitem Stone,10; delitem Blue_Gemstone,2; delitem Yellow_Gemstone,2; @@ -1096,9 +1096,9 @@ OnInit: } } else { - mes "^3355FFYou don't have enough"; - mes "materials to repair"; - mes "the Guardian Stone.^000000"; + mes("^3355FFYou don't have enough"); + mes("materials to repair"); + mes("the Guardian Stone.^000000"); close; } } @@ -1123,24 +1123,24 @@ OnEnable: if (getcharid(CHAR_ID_GUILD) == .@GID) { if (strcharinfo(PC_NAME) == getguildmaster(.@GID)) { if (getd(.@var$+"["+(.@num+1)+"]") == 2) { - mes "^3355FFDemolished Fortress"; - mes "Gates can be repaired,"; - mes "but you will need to gather"; - mes "the following materials.^000000"; + mes("^3355FFDemolished Fortress"); + mes("Gates can be repaired,"); + mes("but you will need to gather"); + mes("the following materials.^000000"); next; - mes "^4D4DFF10 Steel^000000,"; - mes "^4D4DFF30 Trunks^000000,"; - mes "^4D4DFF5 Oridecon^000000, and"; - mes "^4D4DFF10 Emveretarcon^000000."; + mes("^4D4DFF10 Steel^000000,"); + mes("^4D4DFF30 Trunks^000000,"); + mes("^4D4DFF5 Oridecon^000000, and"); + mes("^4D4DFF10 Emveretarcon^000000."); next; select("Continue"); if ((countitem(Wooden_Block) > 29) && (countitem(Steel) > 9) && (countitem(Emveretarcon) > 9) && (countitem(Oridecon) > 4)) { - mes "^3355FFYou will need Trunks to"; - mes "repair the support frame,"; - mes "Oridecon to enhance the"; - mes "gate's endurance, and"; - mes "Emveretarcon to basically"; - mes "hold everything together.^000000"; + mes("^3355FFYou will need Trunks to"); + mes("repair the support frame,"); + mes("Oridecon to enhance the"); + mes("gate's endurance, and"); + mes("Emveretarcon to basically"); + mes("hold everything together.^000000"); next; .@ro_of01 = rand(10,15); while(1) { @@ -1148,68 +1148,68 @@ OnEnable: else { switch(rand(1,4)) { case 1: - mes "^3355FFThe support frame"; - mes "is badly damaged:"; - mes "fixing this part"; - mes "is a top priority.^000000"; + mes("^3355FFThe support frame"); + mes("is badly damaged:"); + mes("fixing this part"); + mes("is a top priority.^000000"); next; switch(select("Trunk", "Steel", "Emveretarcon", "Oridecon")) { case 1: - mes "^3355FFThe frame has been"; - mes "reinforced with wood.^000000"; + mes("^3355FFThe frame has been"); + mes("reinforced with wood.^000000"); ++.@rp_temp; ++.@ro_of02; specialeffect(EF_REPAIRWEAPON, AREA, playerattached()); next; break; case 2: - mes "^3355FFYou tried using steel,"; - mes "but it's not working very"; - mes "well. You'll have to try"; - mes "something else.^000000"; + mes("^3355FFYou tried using steel,"); + mes("but it's not working very"); + mes("well. You'll have to try"); + mes("something else.^000000"); close; case 3: - mes "^3355FFYou tried using emveretarcon"; - mes "to reinforce the gate, but it's"; - mes "not working well at all."; - mes "You'll have to start over.^000000"; + mes("^3355FFYou tried using emveretarcon"); + mes("to reinforce the gate, but it's"); + mes("not working well at all."); + mes("You'll have to start over.^000000"); close; case 4: - mes "^3355FFYou tried using oridecon,"; - mes "but it's not working very"; - mes "well. You'll have to try"; - mes "something else.^000000"; + mes("^3355FFYou tried using oridecon,"); + mes("but it's not working very"); + mes("well. You'll have to try"); + mes("something else.^000000"); close; } break; case 2: - mes "^3355FFIt looks like the gate's"; - mes "overall endurance needs to"; - mes "be reinforced with something.^000000"; + mes("^3355FFIt looks like the gate's"); + mes("overall endurance needs to"); + mes("be reinforced with something.^000000"); next; switch(select("Trunk", "Steel", "Emveretarcon", "Oridecon")) { case 1: - mes "^3355FFYou tried using wood"; - mes "to reinforce the gate.^000000"; + mes("^3355FFYou tried using wood"); + mes("to reinforce the gate.^000000"); ++.@ro_of02; next; break; case 2: - mes "^3355FFYou tried using steel"; - mes "to reinforce the gate, but"; - mes "it's not working well at all."; - mes "You'll have to start over.^000000"; + mes("^3355FFYou tried using steel"); + mes("to reinforce the gate, but"); + mes("it's not working well at all."); + mes("You'll have to start over.^000000"); close; case 3: - mes "^3355FFYou tried using emveretarcon"; - mes "to reinforce the gate, but it's"; - mes "not working well at all."; - mes "You'll have to start over.^000000"; + mes("^3355FFYou tried using emveretarcon"); + mes("to reinforce the gate, but it's"); + mes("not working well at all."); + mes("You'll have to start over.^000000"); close; case 4: - mes "^3355FFYou hammered the"; - mes "oridecon: it looks"; - mes "like this will work.^000000"; + mes("^3355FFYou hammered the"); + mes("oridecon: it looks"); + mes("like this will work.^000000"); ++.@rp_temp; ++.@ro_of02; specialeffect(EF_REPAIRWEAPON, AREA, playerattached()); @@ -1218,92 +1218,92 @@ OnEnable: } break; case 3: - mes "^3355FFThe damage to the gate"; - mes "has caused all these"; - mes "cracks. You'll have to"; - mes "weld them solid somehow.^000000"; + mes("^3355FFThe damage to the gate"); + mes("has caused all these"); + mes("cracks. You'll have to"); + mes("weld them solid somehow.^000000"); next; switch(select("Trunk", "Steel", "Emveretarcon", "Oridecon")) { case 1: - mes "^3355FFYou tried using wood to fix"; - mes "this problem, but it seems"; - mes "to have made it worse."; - mes "You'll have to start all over.^000000"; + mes("^3355FFYou tried using wood to fix"); + mes("this problem, but it seems"); + mes("to have made it worse."); + mes("You'll have to start all over.^000000"); close; case 2: - mes "^3355FFYou used steel to weld"; - mes "all the cracks: the gate is"; - mes "is starting to look more solid.^000000"; + mes("^3355FFYou used steel to weld"); + mes("all the cracks: the gate is"); + mes("is starting to look more solid.^000000"); ++.@rp_temp; ++.@ro_of02; specialeffect(EF_REPAIRWEAPON, AREA, playerattached()); next; break; case 3: - mes "^3355FFYou tried using emveretarcon"; - mes "to reinforce the gate, but it's"; - mes "not working well at all."; - mes "You'll have to start over.^000000"; + mes("^3355FFYou tried using emveretarcon"); + mes("to reinforce the gate, but it's"); + mes("not working well at all."); + mes("You'll have to start over.^000000"); close; case 4: - mes "^3355FFYou tried using oridecon,"; - mes "but it's not working very"; - mes "well. You'll have to try"; - mes "something else.^000000"; + mes("^3355FFYou tried using oridecon,"); + mes("but it's not working very"); + mes("well. You'll have to try"); + mes("something else.^000000"); close; } break; case 4: - mes "^3355FFNow you need to make"; - mes "sure that the gate is held"; - mes "together pretty solidly.^000000"; + mes("^3355FFNow you need to make"); + mes("sure that the gate is held"); + mes("together pretty solidly.^000000"); next; switch(select("Trunk", "Steel", "Emveretarcon", "Oridecon")) { case 1: - mes "^3355FFYou tried using wood to fix"; - mes "this problem, but it seems"; - mes "to have made it worse."; - mes "You'll have to start all over.^000000"; + mes("^3355FFYou tried using wood to fix"); + mes("this problem, but it seems"); + mes("to have made it worse."); + mes("You'll have to start all over.^000000"); close; case 2: - mes "^3355FFYou tried using steel,"; - mes "but it's not working very"; - mes "well. You'll have to try"; - mes "something else.^000000"; + mes("^3355FFYou tried using steel,"); + mes("but it's not working very"); + mes("well. You'll have to try"); + mes("something else.^000000"); close; case 3: - mes "^3355FFYou successfully used"; - mes "the emveretarcon to repair"; - mes "much of the gate's damage.^000000"; + mes("^3355FFYou successfully used"); + mes("the emveretarcon to repair"); + mes("much of the gate's damage.^000000"); ++.@rp_temp; ++.@ro_of02; specialeffect(EF_REPAIRWEAPON, AREA, playerattached()); next; break; case 4: - mes "^3355FFYou tried using oridecon,"; - mes "but it's not working very"; - mes "well. You'll have to try"; - mes "something else.^000000"; + mes("^3355FFYou tried using oridecon,"); + mes("but it's not working very"); + mes("well. You'll have to try"); + mes("something else.^000000"); close; } } } } - mes "^3355FFWell, it looks like"; - mes "you're just about done"; - mes "with repairing the gate.^000000"; + mes("^3355FFWell, it looks like"); + mes("you're just about done"); + mes("with repairing the gate.^000000"); next; if (!agitcheck2()) { - mes "^3355FFUnfortunately, the Fortress"; - mes "Gate can't be reconstructed:"; - mes "the Emperium is no longer here.^000000"; + mes("^3355FFUnfortunately, the Fortress"); + mes("Gate can't be reconstructed:"); + mes("the Emperium is no longer here.^000000"); close; } else { if (.@rp_temp == .@ro_of01) { - mes "^3355FFThe Fortress Gate has"; - mes "been successfully repaired!^000000"; + mes("^3355FFThe Fortress Gate has"); + mes("been successfully repaired!^000000"); delitem Wooden_Block,30; delitem Steel,10; delitem Emveretarcon,10; @@ -1323,11 +1323,11 @@ OnEnable: end; } else { - mes "^3355FFThe wall has been breached,"; - mes "and the attempt to repair the"; - mes "Fortress Gate has failed."; - mes "You lost some of your"; - mes "repair resources...^000000"; + mes("^3355FFThe wall has been breached,"); + mes("and the attempt to repair the"); + mes("Fortress Gate has failed."); + mes("You lost some of your"); + mes("repair resources...^000000"); delitem Oridecon,2; delitem Steel,4; delitem Wooden_Block,14; @@ -1337,9 +1337,9 @@ OnEnable: } } else { - mes "^3355FFYou can't attempt to repair"; - mes "the Fortress Gate if you don't"; - mes "have all the needed materials.^000000"; + mes("^3355FFYou can't attempt to repair"); + mes("the Fortress Gate if you don't"); + mes("have all the needed materials.^000000"); close; } } @@ -1738,28 +1738,28 @@ OnDisable: function script LinkFlag { if (!getcharid(CHAR_ID_GUILD) || getcharid(CHAR_ID_GUILD) != getcastledata(strnpcinfo(NPC_MAP),1)) end; if (getarg(0) == "Convenience Facility") { - mes "^3355FFThis is the Stronghold"; - mes "Teleport Service. Would"; - mes "you like to teleport to the"; - mes "Convenience Facility for"; - mes "guild members?^000000"; + mes("^3355FFThis is the Stronghold"); + mes("Teleport Service. Would"); + mes("you like to teleport to the"); + mes("Convenience Facility for"); + mes("guild members?^000000"); if(select("Go to Convenience Facility", "Cancel") == 1) warp strnpcinfo(NPC_MAP),getarg(1),getarg(2); close; } if (getarg(0) == "Emperium Center") { - mes "^3355FFThis is the Stronghold"; - mes "Teleport Service. Would"; - mes "you like to teleport to"; - mes "the Emperium Center?^000000"; + mes("^3355FFThis is the Stronghold"); + mes("Teleport Service. Would"); + mes("you like to teleport to"); + mes("the Emperium Center?^000000"); if(select("Teleport", "Cancel") == 1) warp strnpcinfo(NPC_MAP),getarg(1),getarg(2); close; } - mes "^3355FFThis is the Stronghold"; - mes "Teleport Service. Please"; - mes "choose a destination"; - mes "within the stronghold.^000000"; + mes("^3355FFThis is the Stronghold"); + mes("Teleport Service. Please"); + mes("choose a destination"); + mes("within the stronghold.^000000"); for (.@i = 0; .@i<getargcount(); .@i += 3) .@menu$ += getarg(.@i)+":"; .@menu$ += "Cancel"; @@ -1774,20 +1774,20 @@ function script ReturnFlag { .@str$ = (compare(strnpcinfo(NPC_MAP),"aru"))?"Arunafeltz":"Schwaltzvalt"; .@GID = getcastledata(getarg(0),1); if (!.@GID) { - mes "[ "+.@str$+" Royal Edict ]"; - mes "The Holy Kingdom of"; - mes .@str$+" declares that"; - mes "one has yet to claim lordship"; - mes "over this stronghold. The one"; - mes "that breaks the Emperium will"; - mes "be recognized as its new owner."; + mesf("[ %s Royal Edict ]", .@str$); + mes("The Holy Kingdom of"); + mesf("%s declares that", .@str$); + mes("one has yet to claim lordship"); + mes("over this stronghold. The one"); + mes("that breaks the Emperium will"); + mes("be recognized as its new owner."); close; } if (getcharid(CHAR_ID_GUILD) == .@GID && getarg(1,0)) { - mes "[ Ringing Voice ]"; - mes "Courageous one,"; - mes "do you wish to return"; - mes "to your stronghold?"; + mes("[ Ringing Voice ]"); + mes("Courageous one,"); + mes("do you wish to return"); + mes("to your stronghold?"); next; if(select("Return to the Stronghold", "Cancel") == 1 && getcharid(CHAR_ID_GUILD) == getcastledata(getarg(0),1)) { if (compare(getarg(0),"arug")) { @@ -1804,27 +1804,27 @@ function script ReturnFlag { } close; } - mes "[ "+.@str$+" Royal Edict ]"; - mes "The Holy Kingdom of"; - mes .@str$+" decrees that"; - mes "this stronghold is owned"; - mes "by the ^FF0000"+getguildname(.@GID)+"^000000 Guild."; + mesf("[ %s Royal Edict ]", .@str$); + mes("The Holy Kingdom of"); + mesf("%s decrees that", .@str$); + mes("this stronghold is owned"); + mesf("by the ^FF0000%s^000000 Guild.", getguildname(.@GID)); next; - mes "[ "+.@str$+" Royal Edict ]"; - mes "^FF0000"+getguildmaster(.@GID)+"^000000 is"; - mes "Guild Master of ^FF0000"+getguildname(.@GID)+"^000000."; - mes "Any that object must claim this"; - mes "stronghold through strength of"; - mes "steel and magic during the"; - mes "appointed Guild Siege times."; + mesf("[ %s Royal Edict ]", .@str$); + mesf("^FF0000%s^000000 is", getguildmaster(.@GID)); + mesf("Guild Master of ^FF0000%s^000000.", getguildname(.@GID)); + mes("Any that object must claim this"); + mes("stronghold through strength of"); + mes("steel and magic during the"); + mes("appointed Guild Siege times."); close; } //== Treasure Room Switches ================================ - script Switch#template FAKE_NPC,{ - mes " "; - mes "^3355FFWill you pull"; - mes "this small lever?^000000"; + mes(" "); + mes("^3355FFWill you pull"); + mes("this small lever?^000000"); next; if(select("Pull Lever", "Cancel") == 2) close; if (compare(strnpcinfo(NPC_MAP),"arug")) { @@ -1844,7 +1844,7 @@ function script ReturnFlag { //== Guild Dungeon Warps =================================== - script Sunflower#template FAKE_NPC,{ if (getcharid(CHAR_ID_GUILD) == getcastledata(strnpcinfo(NPC_MAP),1)) { - mes "- It's an amazingly huge sunflower; as big as a human! ... You feel something mysterious emanating from the flower. -"; + mes("- It's an amazingly huge sunflower; as big as a human! ... You feel something mysterious emanating from the flower. -"); next; switch(select("Hold the stem.", "Do nothing.")) { case 1: @@ -1862,7 +1862,7 @@ function script ReturnFlag { warp .@map$,.@mapx[.@i],.@mapy[.@i]; close; case 2: - mes "It's too scary to touch unknown things."; + mes("It's too scary to touch unknown things."); close; } } |