Sfoglia il codice sorgente

* Implemented Eclage town NPCs from iRO.
* Implemented Eclage guides.
* Implemented Eclage coin traders (equipment NPCs and herb seller).
* Implemented Eclage skills. (3CeAM 705)
* Added Eclage quest_db entries (missing times).
* Added placeholder NPCs for Eclage quests -- most quests are not functional.
* Moved custom Warper and Healer coordinates for Eclage.

git-svn-id: https://svn.code.sf.net/p/rathena/svn/trunk@17373 54d463be-8e91-2dee-dedb-b68131a5f0ec

euphyy 12 anni fa
parent
commit
cc701c83bb

+ 3 - 1
db/pre-re/skill_castnodex_db.txt

@@ -35,9 +35,11 @@
 498,1	//AM_TWILIGHT3
 512,3	//GS_TRACKING
 1014,1	//PR_REDEMPTIO
+
 2534,7,7	//RETURN_TO_ELDICASTES
 2536,7,7	//ALL_GUARDIAN_RECALL
-//2537,0,7	//ALL_ODINS_POWER
+2537,0,7	//ALL_ODINS_POWER
+
 10010,3	//GD_BATTLEORDER
 10011,3	//GD_REGENERATION
 10012,6	//GD_RESTORE

+ 2 - 2
db/pre-re/skill_db.txt

@@ -1013,11 +1013,11 @@
 2498,11,6,1,0,0,0,1,1,no,0,0,0,weapon,0,	GN_SLINGITEM_RANGEMELEEATK,Sling Item Attack
 
 // Episode 13.3
-//2533,0,0,4,0,0x1,0,1,0,no,0,0,0,none,0,	ALL_ODINS_RECALL,Odin's Recall
+2533,0,6,4,0,0x1,0,1,1,yes,0,0,0,none,0,	ALL_ODINS_RECALL,Odin's Recall
 2534,0,0,4,0,0x1,0,1,0,no,0,0,0,none,0,	RETURN_TO_ELDICASTES,Return To Eldicastes
 2535,0,0,4,0,0x1,0,1,0,no,0,0x1,0,none,0,	ALL_BUYING_STORE,Open Buying Store
 2536,0,0,4,0,0x1,0,1,0,no,0,0,0,none,0,	ALL_GUARDIAN_RECALL,Guardian's Recall
-//2537,9,6,16,0,0x1,0,2,1,yes,0,0,0,magic,0,	ALL_ODINS_POWER,Odin's Power
+2537,9,6,16,0,0x1,0,2,1,yes,0,0,0,none,0,	ALL_ODINS_POWER,Odin's Power
 //2538,0,0,0,0,0,0,??,0,no,0,0,0,none,0,		BEER_BOTTLE_CAP,Beer Bottle Cap
 //2539,0,0,0,0,0,0,??,0,no,0,0,0,none,0,		NPC_ASSASSINCROSS,Assassin Cross of Sunset 2
 //2540,0,0,0,0,0,0,??,0,no,0,0,0,none,0,		NPC_DISSONANCE,Dissonance 2

+ 2 - 2
db/pre-re/skill_require_db.txt

@@ -779,11 +779,11 @@
 2497,0,0,12,0,0,0,99,0,0,none,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0	//GN_S_PHARMACY#Special Pharmacy#
 2498,0,0,1,0,0,0,99,0,0,none,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0	//GN_SLINGITEM_RANGEMELEEATK#Sling Item Attack#
 
-//2533,0,0,1,0,0,0,99,0,0,none,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0	//ALL_ODINS_RECALL#Odin's Recall#
+2533,0,0,1,0,0,0,99,0,0,none,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0	//ALL_ODINS_RECALL#Odin's Recall#
 2534,0,0,1,0,0,0,99,0,0,none,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0	//RETURN_TO_ELDICASTES#Return To Eldicastes#
 2535,0,0,1,0,0,0,99,0,0,none,0,6377,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0	//ALL_BUYING_STORE#Open Buying Store
 2536,0,0,1,0,0,0,99,0,0,none,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0	//ALL_GUARDIAN_RECALL#Guardian's Recall#
-//2537,0,0,70:100,0,0,0,99,0,0,none,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0	//ALL_ODINS_POWER#Odin's Power#
+2537,0,0,70:100,0,0,0,99,0,0,none,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0	//ALL_ODINS_POWER#Odin's Power#
 
 //2538,0,0,1,0,0,0,99,0,0,none,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0	//BEER_BOTTLE_CAP#Beer Bottle Cap#
 

+ 209 - 0
db/quest_db.txt

@@ -65,6 +65,24 @@
 1191,0,0,0,0,0,0,0,"Get Rid of Bakonawa"
 1192,0,0,0,0,0,0,0,"Get Rid of Bakonawa"
 1193,0,0,0,0,0,0,0,"Get Rid of Bakonawa"
+
+// Find Professor Worm's Memory
+1214,0,0,0,0,0,0,0,"Getting back Professor Worm's memory"
+1215,0,0,0,0,0,0,0,"Getting back Professor Worm's memory"
+1216,0,0,0,0,0,0,0,"Getting back Professor Worm's memory"
+1217,0,0,0,0,0,0,0,"Getting back Professor Worm's memory"
+1218,0,0,0,0,0,0,0,"Getting back Professor Worm's memory"
+1219,0,0,0,0,0,0,0,"Getting back Professor Worm's memory"
+1220,0,0,0,0,0,0,0,"Getting back Professor Worm's memory"
+1221,0,0,0,0,0,0,0,"Getting back Professor Worm's memory"
+1222,0,0,0,0,0,0,0,"Getting back Professor Worm's memory"
+1223,0,0,0,0,0,0,0,"Getting back Professor Worm's memory"
+1224,0,0,0,0,0,0,0,"Getting back Professor Worm's memory"
+1225,0,2367,15,0,0,0,0,"Getting back Professor Worm's memory"
+1226,0,0,0,0,0,0,0,"Getting back Professor Worm's memory"
+1227,0,0,0,0,0,0,0,"Getting back Professor Worm's memory"
+1228,0,0,0,0,0,0,0,"Getting back Professor Worm's memory"
+
 2000,0,0,0,0,0,0,0,"Job Change to Blacksmith"
 2001,0,0,0,0,0,0,0,"Job Change to Blacksmith"
 2002,0,0,0,0,0,0,0,"Job Change to Blacksmith"
@@ -509,6 +527,19 @@
 
 4229,0,0,0,0,0,0,0,"Devil in the Cave"
 
+4254,0,0,0,0,0,0,0,"Fairy with a stomache"
+4255,0,0,0,0,0,0,0,"Revenge!"
+4256,0,0,0,0,0,0,0,"An accomplice?"
+4257,0,0,0,0,0,0,0,"Conspiracy"
+4258,0,0,0,0,0,0,0,"Eirinn"
+4259,0,0,0,0,0,0,0,"Bourbon"
+4260,0,0,0,0,0,0,0,"Bee"
+4261,0,0,0,0,0,0,0,"Counterattack (1)"
+4262,0,0,0,0,0,0,0,"Counterattack (2)"
+4263,0,0,0,0,0,0,0,"Counteroffensive (1)"
+4264,0,0,0,0,0,0,0,"Counteroffensive (2)"
+4265,0,0,0,0,0,0,0,"Bookshelf use"
+
 5000,0,0,0,0,0,0,0,"The Crow of the Fate - 7"
 
 // Researcher's Quest
@@ -1063,6 +1094,55 @@
 7409,0,0,0,0,0,0,0,"Cannot Meet Eyes with Him!"
 7410,0,0,0,0,0,0,0,"Teach Another Lesson Tomorrow!"
 
+// Eclage
+7411,0,0,0,0,0,0,0,"The traveler, Fome's story"
+7412,0,0,0,0,0,0,0,"The traveler, Litrip's story"
+7413,0,0,0,0,0,0,0,"The traveler, Chiba's story"
+7414,0,0,0,0,0,0,0,"Eclage guard's message"
+7415,0,0,0,0,0,0,0,"Laphine's Chief of Staff"
+7416,600,0,0,0,0,0,0,"Waiting to meet"
+7417,0,0,0,0,0,0,0,"Kardui's request"
+7418,0,0,0,0,0,0,0,"For Eclage 1"
+7419,0,0,0,0,0,0,0,"For Eclage 2"
+7420,0,0,0,0,0,0,0,"For Eclage 3"
+7421,0,0,0,0,0,0,0,"That's enough"
+7422,0,0,0,0,0,0,0,"Kardui's gift"
+7423,0,0,0,0,0,0,0,"A rumor about the King 1"
+7424,0,0,0,0,0,0,0,"A rumor about the King 2"
+7425,0,0,0,0,0,0,0,"A rumor about the King 3"
+7426,0,0,0,0,0,0,0,"A rumor about the King 4"
+7427,0,0,0,0,0,0,0,"At times like this, face it straight on!"
+7428,0,0,0,0,0,0,0,"Yai of the wild"
+7429,0,0,0,0,0,0,0,"Wild recent trend!"
+7430,0,0,0,0,0,0,0,"Deliveryman that runs through space"
+7431,0,0,0,0,0,0,0,"A mailman never rests!"
+7432,0,0,0,0,0,0,0,"The troublemakers in the land of blooming flowers"
+7433,0,0,0,0,0,0,0,"Need constant guidance"
+
+// Twins and Scholar of Magics
+7434,0,0,0,0,0,0,0,"Kardui's big brother"
+7435,0,0,0,0,0,0,0,"Time for reading the letter"
+7436,0,0,0,0,0,0,0,"Avant the Scholar of Magics"
+7437,0,0,0,0,0,0,0,"Shenime's favor"
+7438,0,0,0,0,0,0,0,"Secret sponsorship"
+7439,0,0,0,0,0,0,0,"The scholar of magics sponsored by Shenime"
+7440,0,0,0,0,0,0,0,"Minuel's witness"
+7441,0,0,0,0,0,0,0,"Mail is here!"
+7442,0,0,0,0,0,0,0,"The identity of the scholar of magics"
+7443,0,0,0,0,0,0,0,"Interfere with the research!"
+7444,0,0,0,0,0,0,0,"What Avant was researching"
+
+// Orb
+7445,0,0,0,0,0,0,0,"Avant's back"
+7446,0,0,0,0,0,0,0,"Unfruitful conversation"
+7447,0,0,0,0,0,0,0,"Dilemma surrounding the Orb"
+7448,0,0,0,0,0,0,0,"Something's not right"
+7449,0,0,0,0,0,0,0,"Temptation toward the Orb"
+7450,0,0,0,0,0,0,0,"Orb's lighting room"
+7451,0,0,0,0,0,0,0,"Betrayal"
+7452,0,0,0,0,0,0,0,"Find the chief of staff!"
+7453,0,0,0,0,0,0,0,"The last of the chief of staff"
+
 8000,0,0,0,0,0,0,0,"Quitting Job Change"
 8001,0,0,0,0,0,0,0,"Job Change to Assassin"
 8002,0,0,0,0,0,0,0,"Job Change to Assassin"
@@ -1392,6 +1472,44 @@
 9223,0,0,0,0,0,0,0,"Will there be Peace at the Hospital?"
 9224,0,0,0,0,0,0,0,"Explore Hospital 2F"
 
+9225,0,0,0,0,0,0,0,"Mystery Robbery Incident 1"
+9226,0,0,0,0,0,0,0,"Mystery Robbery Incident 2"
+9227,0,0,0,0,0,0,0,"Mystery Robbery Incident 3"
+9228,0,0,0,0,0,0,0,"Mystery Robbery Incident 4"
+9229,0,0,0,0,0,0,0,"Mystery Robbery Incident 5"
+9230,0,0,0,0,0,0,0,"Mystery Robbery Incident 6"
+9231,0,0,0,0,0,0,0,"Mystery Robbery Incident 7"
+9232,0,0,0,0,0,0,0,"Mystery Robbery Incident 8"
+9233,0,0,0,0,0,0,0,"Mystery Robbery Incident 9"
+9234,0,0,0,0,0,0,0,"Mystery Robbery Incident 10"
+9235,0,0,0,0,0,0,0,"Mystery Robbery Incident 11"
+9236,0,0,0,0,0,0,0,"Mystery Robbery Incident 12"
+9237,0,0,0,0,0,0,0,"Mystery Robbery Incident 13"
+9238,0,0,0,0,0,0,0,"Mystery Robbery Incident 14"
+9239,0,0,0,0,0,0,0,"Mystery Robbery Incident 15"
+9240,0,0,0,0,0,0,0,"Luen's statement notes"
+9241,0,0,0,0,0,0,0,"Luen's statement notes"
+9242,0,0,0,0,0,0,0,"Luen's statement notes"
+9243,0,0,0,0,0,0,0,"Luen's statement notes"
+9244,0,0,0,0,0,0,0,"Dames's statement notes"
+9245,0,0,0,0,0,0,0,"Dames's statement notes"
+9246,0,0,0,0,0,0,0,"Dames's statement notes"
+9247,0,0,0,0,0,0,0,"Dames's statement notes"
+9248,0,0,0,0,0,0,0,"Rosa's statement notes"
+9249,0,0,0,0,0,0,0,"Rosa's statement notes"
+9250,0,0,0,0,0,0,0,"Rosa's statement notes"
+9251,0,0,0,0,0,0,0,"Rosa's statement notes"
+9252,0,0,0,0,0,0,0,"Observing Poppy"
+9253,0,0,0,0,0,0,0,"Examining a messy bookshelf"
+9254,0,0,0,0,0,0,0,"Examining a damaged book"
+9255,0,0,0,0,0,0,0,"Examining a container for soda cans"
+9256,0,0,0,0,0,0,0,"Examining a messed up table"
+9257,0,0,0,0,0,0,0,"Examining a foreign object"
+9258,0,0,0,0,0,0,0,"Field examination results"
+9259,0,0,0,0,0,0,0,"Confirming Cruyan's statements"
+9260,0,0,0,0,0,0,0,"Survey investigation notes"
+9262,0,0,0,0,0,0,0,"Mystery Robbery Incident 16"
+
 10000,0,0,0,0,0,0,0,"To the Prontera Royal Court"
 10001,0,0,0,0,0,0,0,"Qualification Test"
 10002,0,0,0,0,0,0,0,"Qualification Review"
@@ -1782,6 +1900,35 @@
 11308,0,0,0,0,0,0,0,"Nurse at Port Malaya-25"
 11309,0,0,0,0,0,0,0,"Nurse at Port Malaya-26"
 
+11310,0,0,0,0,0,0,0,"Eclage's Entrance"
+11311,0,0,0,0,0,0,0,"Eclage's Entrance"
+11312,0,0,0,0,0,0,0,"Goliath"
+11313,0,0,0,0,0,0,0,"Goliath"
+11314,0,0,0,0,0,0,0,"Goliath"
+11315,0,0,0,0,0,0,0,"And time keeps on flowing"
+11316,0,0,0,0,0,0,0,"And time keeps on flowing"
+11317,0,0,0,0,0,0,0,"And time keeps on flowing"
+11318,0,0,0,0,0,0,0,"And time keeps on flowing"
+11319,0,0,0,0,0,0,0,"And time keeps on flowing"
+11320,0,0,0,0,0,0,0,"And time keeps on flowing"
+11321,0,0,0,0,0,0,0,"And time keeps on flowing"
+11322,0,0,0,0,0,0,0,"And time keeps on flowing"
+11323,0,0,0,0,0,0,0,"And time keeps on flowing"
+11324,0,0,0,0,0,0,0,"And time keeps on flowing"
+11325,0,0,0,0,0,0,0,"The chicken or the egg"
+11326,0,0,0,0,0,0,0,"The chicken or the egg"
+11327,0,0,0,0,0,0,0,"The chicken or the egg"
+11328,0,0,0,0,0,0,0,"The chicken or the egg"
+11329,0,0,0,0,0,0,0,"The chicken or the egg"
+11330,0,0,0,0,0,0,0,"The chicken or the egg"
+11331,0,0,0,0,0,0,0,"The chicken or the egg"
+11332,0,0,0,0,0,0,0,"The chicken or the egg"
+11333,0,0,0,0,0,0,0,"Red seed and green seed"
+11334,0,0,0,0,0,0,0,"Red seed and green seed"
+11335,0,0,0,0,0,0,0,"Dreaming boy"
+11336,0,0,0,0,0,0,0,"Dreaming boy"
+11337,0,0,0,0,0,0,0,"Dreaming boy"
+
 12000,0,0,0,0,0,0,0,"An old friend"
 12001,0,0,0,0,0,0,0,"Digotz, Maku's old friend"
 12002,0,0,0,0,0,0,0,"Messenger of Friendship"
@@ -2052,6 +2199,68 @@
 12278,0,0,0,0,0,0,0,"Towards Bakonawa Lake..."
 12279,0,0,0,0,0,0,0,"Get Rid of Bakonawa"
 
+12280,0,0,0,0,0,0,0,"A suspicious prisoner"
+12281,0,0,0,0,0,0,0,"An unwanted favor"
+12282,0,0,0,0,0,0,0,"Gossip king Clever"
+12283,0,0,0,0,0,0,0,"The rift researcher"
+12284,0,0,0,0,0,0,0,"A cat merchant's source of information"
+12285,0,0,0,0,0,0,0,"A way to calm down a cat"
+12286,0,0,0,0,0,0,0,"Information traded for some canned foods"
+12287,0,0,0,0,0,0,0,"A weird experience"
+12288,0,0,0,0,0,0,0,"A successful experience"
+12289,0,0,0,0,0,0,0,"Another visitation"
+12290,0,0,0,0,0,0,0,"Clever's historical documents"
+12291,0,0,0,0,0,0,0,"Hidden historical documents (?)"
+12292,0,0,0,0,0,0,0,"The unknown ones"
+12293,0,0,0,0,0,0,0,"Figures in history"
+12294,0,0,0,0,0,0,0,"Tour of Eclage"
+12295,0,0,0,0,0,0,0,"Error"
+12296,0,0,0,0,0,0,0,"Fun times with the reactor"
+12297,0,0,0,0,0,0,0,"Encountering Etran"
+12298,0,0,0,0,0,0,0,"Two wishes"
+12299,0,0,0,0,0,0,0,"Revisiting Robert"
+12300,0,0,0,0,0,0,0,"Revisiting Etran"
+12301,0,0,0,0,0,0,0,"Two remaining friends"
+
+13050,0,0,0,0,0,0,0,"The Laphine that loves the land"
+13051,0,0,0,0,0,0,0,"The singing Laphine"
+13052,0,0,0,0,0,0,0,"The watering Laphine"
+13053,0,0,0,0,0,0,0,"The dancing Laphine"
+13054,0,0,0,0,0,0,0,"The smiling Laphine"
+13055,0,0,0,0,0,0,0,"See if all the adventurers are safe"
+13056,0,0,0,0,0,0,0,"Reporter Rossi"
+13057,0,0,0,0,0,0,0,"Adventurer Euncheong"
+13058,0,0,0,0,0,0,0,"Troublemaker New Oz"
+13059,86400,0,0,0,0,0,0,"End of project"
+13060,86400,0,0,0,0,0,0,"Safety confirmation complete!"
+13061,0,0,0,0,0,0,0,"Food support"
+13062,86400,0,0,0,0,0,0,"Food support - complete"
+13063,0,0,0,0,0,0,0,"Dusting off"
+13064,86400,0,0,0,0,0,0,"Dusting off - complete"
+13065,0,0,0,0,0,0,0,"Collecting a souvenir"
+13066,86400,0,0,0,0,0,0,"This is enough for souvenirs"
+
+14118,0,0,0,0,0,0,0,"Wuhari's concern"
+14119,0,0,0,0,0,0,0,"Test of patience"
+14120,0,0,0,0,0,0,0,"Test of patience 2"
+14121,0,0,0,0,0,0,0,"Test of patience 3"
+14122,0,0,0,0,0,0,0,"Time for two"
+14123,0,0,0,0,0,0,0,"Wuharu's favor"
+14125,0,0,0,0,0,0,0,"Surveying the area"
+14126,0,0,0,0,0,0,0,"Searching for Ms. Goatie"
+14127,0,0,0,0,0,0,0,"Searching for Ms. Goatie's husband"
+14128,0,0,0,0,0,0,0,"Obtaining the research report"
+14131,0,0,0,0,0,0,0,"Analysis time"
+14133,0,0,0,0,0,0,0,"Another favor"
+14134,0,0,0,0,0,0,0,"Sharp Ms. Goatie"
+14135,0,0,0,0,0,0,0,"Searching for Mr. Pompe"
+14136,0,0,0,0,0,0,0,"A terrible scene in the field"
+14137,0,0,0,0,0,0,0,"An interesting proposition"
+14138,0,0,0,0,0,0,0,"The big corpse"
+14139,0,0,0,0,0,0,0,"To Wuhuru"
+14140,0,0,0,0,0,0,0,"To Wuhari"
+14141,0,0,0,0,0,0,0,"Ingredients for research"
+
 16000,0,0,0,0,0,0,0,"Metz Brayde's Notice"
 16001,0,0,0,0,0,0,0,"First examination"
 16002,0,0,0,0,0,0,0,"Fetching Items for Arian -1"

+ 2 - 2
db/re/item_combo_db.txt

@@ -155,10 +155,10 @@
 2779:2780:5577,{ bonus bMatkRate,10; bonus bInt,5; bonus2 bSubRace,RC_Angel,10; }
 2966:2968,{ bonus bAtkRate,4; bonus bMatkRate,4; }
 2966:2969,{ bonus bAtkRate,4; bonus bMatkRate,4; }
-2966:13092,{ if(getequipid(EQI_HAND_R)==13092) set .@part,EQI_HAND_R; else set .@part,EQI_HAND_L; bonus bBaseAtk,10*getequiprefinerycnt(.@part); }
+2966:13092,{ bonus bBaseAtk,10*getequiprefinerycnt( (getequipid(EQI_HAND_R) == 13092) ? EQI_HAND_R : EQI_HAND_L ); }
 2967:2968,{ bonus bAtkRate,4; bonus bMatkRate,4; }
 2967:2969,{ bonus bAtkRate,4; bonus bMatkRate,4; }
-2968:13092,{ if(getequipid(EQI_HAND_R)==13092) set .@part,EQI_HAND_R; else set .@part,EQI_HAND_L; bonus bMatk,10*getequiprefinerycnt(.@part); }
+2968:13092,{ bonus bMatk,10*getequiprefinerycnt( (getequipid(EQI_HAND_R) == 13092) ? EQI_HAND_R : EQI_HAND_L ); }
 4001:4197,{ bonus bFlee,18; }
 4006:4266,{ bonus bFlee,18; }
 4009:4179,{ bonus bFlee,18; }

+ 1 - 1
db/re/item_db.txt

@@ -6239,7 +6239,7 @@
 13076,Raksasa_Dagger,Nachal Sword,4,40000,,600,120:100,,1,1,0x02000000,7,2,2,3,110,1,1,{ bonus bInt,3; },{},{}
 //13077,
 13078,Mikatsuki,Mikacheuki,4,40000,,600,50:120,,1,1,0x02000000,7,2,2,4,100,1,1,{},{},{}
-13079,Metal_Dagger,Metal Dagger,4,20,,0,55,0,,1,0x02021040,7,2,2,3,1,1,1,{}
+13079,Metal_Dagger,Metal Dagger,4,20,,0,55,0,,1,0x02021040,7,2,2,3,1,1,1,{},{},{}
 //
 13092,RWC_Memory_Knife,RWC Memory Knife,4,1000,500,650,50,0,1,1,0x02800075,15,2,2,3,1,1,1,{ bonus bBaseAtk,20*(getrefine()/3); bonus bMatk,20*(getrefine()/3); bonus4 bAutoSpell,"BS_WEAPONPERFECT",1,50,0; if(getrefine()>=9) set .@i,1; if(getrefine()>=6){ set .@rate,5*(.@i+1); bonus2 bAddRace,RC_Boss,.@rate; bonus2 bAddRace,RC_NonBoss,.@rate; bonus2 bMagicAddRace,RC_Boss,.@rate; bonus2 bMagicAddRace,RC_NonBoss,.@rate; } },{},{}
 // Revolvers

+ 13 - 0
db/re/skill_cast_db.txt

@@ -1690,6 +1690,19 @@
 3029,0,0,0,10000:15000:20000:25000:30000,0,0,-1
 //==========================================
 
+//===== Eclage Skills ======================
+//-- ECL_SNOWFLIP
+3031,0,0,0,0,0,5000,0
+//-- ECL_PEONYMAMY
+3032,0,0,0,0,0,5000,0
+//-- ECL_SADAGUI
+3033,0,0,0,0,0,5000,0
+//-- ECL_SEQUOIADUST
+3034,0,0,0,0,0,5000,0
+//-- ECLAGE_RECALL
+3035,3000,0,0,0,0,300000,0
+//==========================================
+
 //===== Homunculus Skills ==================
 //-- HLIF_HEAL
 8001,0,2000,0,0,0,0,-1

+ 4 - 1
db/re/skill_castnodex_db.txt

@@ -35,9 +35,12 @@
 498,1	//AM_TWILIGHT3
 512,3	//GS_TRACKING
 1014,1	//PR_REDEMPTIO
+
 2534,7,7	//RETURN_TO_ELDICASTES
 2536,7,7	//ALL_GUARDIAN_RECALL
-//2537,0,7	//ALL_ODINS_POWER
+2537,0,7	//ALL_ODINS_POWER
+3035,7,7	//ECLAGE_RECALL
+
 10010,3	//GD_BATTLEORDER
 10011,3	//GD_REGENERATION
 10012,6	//GD_RESTORE

+ 2 - 2
db/re/skill_db.txt

@@ -1025,11 +1025,11 @@
 2498,11,6,1,0,0,0,1,1,no,0,0,0,weapon,0,	GN_SLINGITEM_RANGEMELEEATK,Sling Item Attack
 
 // Episode 13.3
-//2533,0,0,4,0,0x1,0,1,0,no,0,0,0,none,0,	ALL_ODINS_RECALL,Odin's Recall
+2533,0,6,4,0,0x1,0,1,1,yes,0,0,0,none,0,	ALL_ODINS_RECALL,Odin's Recall
 2534,0,0,4,0,0x1,0,1,0,no,0,0,0,none,0,		RETURN_TO_ELDICASTES,Return To Eldicastes
 2535,0,0,4,0,0x1,0,1,0,no,0,0x1,0,none,0,	ALL_BUYING_STORE,Open Buying Store
 2536,0,0,4,0,0x1,0,1,0,no,0,0,0,none,0,		ALL_GUARDIAN_RECALL,Guardian's Recall
-2537,9,6,16,0,0x1,0,2,1,yes,0,0,0,magic,0,	ALL_ODINS_POWER,Odin's Power
+2537,9,6,16,0,0x1,0,2,1,yes,0,0,0,none,0,	ALL_ODINS_POWER,Odin's Power
 //2538,0,0,0,0,0,0,??,0,no,0,0,0,none,0,	BEER_BOTTLE_CAP,Beer Bottle Cap
 //2539,0,6,4,0,0x1,0,10,1,no,0,0x2,0,none,0,	NPC_ASSASSINCROSS,Assassin Cross of Sunset 2
 //2540,0,6,4,0,0x1,0,5,1,no,0,0x2,0,none,0,		NPC_DISSONANCE,Dissonance 2

+ 2 - 2
db/re/skill_require_db.txt

@@ -787,11 +787,11 @@
 2498,0,0,1,0,0,0,99,0,0,none,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0	//GN_SLINGITEM_RANGEMELEEATK#Sling Item Attack#
 
 
-//2533,0,0,1,0,0,0,99,0,0,none,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0	//ALL_ODINS_RECALL#Odin's Recall#
+2533,0,0,1,0,0,0,99,0,0,none,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0	//ALL_ODINS_RECALL#Odin's Recall#
 2534,0,0,1,0,0,0,99,0,0,none,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0	//RETURN_TO_ELDICASTES#Return To Eldicastes#
 2535,0,0,1,0,0,0,99,0,0,none,0,6377,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0	//ALL_BUYING_STORE#Open Buying Store
 2536,0,0,1,0,0,0,99,0,0,none,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0	//ALL_GUARDIAN_RECALL#Guardian's Recall#
-//2537,0,0,70:100,0,0,0,99,0,0,none,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0	//ALL_ODINS_POWER#Odin's Power#
+2537,0,0,70:100,0,0,0,99,0,0,none,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0	//ALL_ODINS_POWER#Odin's Power#
 
 //2538,0,0,1,0,0,0,99,0,0,none,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0	//BEER_BOTTLE_CAP#Beer Bottle Cap#
 

+ 1 - 1
npc/custom/healer.txt

@@ -73,7 +73,7 @@ yuno,164,45,4	duplicate(Healer)	Healer#yuno	909
 brasilis,194,221,6	duplicate(Healer)	Healer#bra	909
 dewata,195,187,4	duplicate(Healer)	Healer#dew	909
 dicastes01,201,194,4	duplicate(Healer)	Healer#dic	909
-eclage,105,35,4	duplicate(Healer)	Healer#ecl	909
+ecl_in01,45,60,4	duplicate(Healer)	Healer#ecl	909
 malangdo,132,114,6	duplicate(Healer)	Healer#mal	909
 malaya,205,205,6	duplicate(Healer)	Healer#ma	909
 mora,55,152,4	duplicate(Healer)	Healer#mora	909

+ 2 - 2
npc/custom/warper.txt

@@ -132,7 +132,7 @@ T7: Go("comodo",209,143);
 T8: Restrict("RE");
 	Go("dewata",200,180);
 T9: Restrict("RE");
-	Go("eclage",110,39);
+	Go("ecl_in01",48,53);
 T10: Go("einbech",63,35);
 T11: Go("einbroch",64,200);
 T12: Restrict("RE");
@@ -491,7 +491,7 @@ yuno,162,47,4	duplicate(Warper)	Warper#yuno	811
 brasilis,201,222,4	duplicate(Warper)	Warper#bra	811
 dewata,204,186,6	duplicate(Warper)	Warper#dew	811
 dicastes01,194,194,6	duplicate(Warper)	Warper#dic	811
-eclage,107,37,4	duplicate(Warper)	Warper#ecl	811
+ecl_in01,51,60,4	duplicate(Warper)	Warper#ecl	811
 malangdo,134,117,6	duplicate(Warper)	Warper#mal	811
 malaya,210,205,4	duplicate(Warper)	Warper#ma	811
 mora,57,152,4	duplicate(Warper)	Warper#mora	811

+ 487 - 0
npc/re/cities/eclage.txt

@@ -0,0 +1,487 @@
+//===== rAthena Script ======================================= 
+//= Eclage Town
+//===== By: ================================================== 
+//= Euphy
+//===== Current Version: ===================================== 
+//= 1.0
+//===== Compatible With: ===================================== 
+//= rAthena SVN
+//===== Description: ========================================= 
+//= Eclage Town Script
+//===== Additional Comments: ================================= 
+//= 1.0 Nearly complete iRO town NPCs. [Euphy]
+//============================================================ 
+
+// Generic Eclage NPCs - Set 1
+//============================================================
+ecl_fild01,92,316,4	script	Tourist#ep14_2f2	545,{
+	mes "[Tourist]";
+	mes "I can't believe I have to wait this long......";
+	mes "When is it going to be my turn?";
+	emotion e_sob;
+	close;
+}
+
+ecl_fild01,106,312,4	script	Tourist#ep14_2f3	525,{
+	mes "[Tourist]";
+	mes "I'm actually done with my documentation, but I'm just sticking around to appreciate all of these flowers.";
+	emotion e_lv2;
+	next;
+	mes "[Tourist]";
+	mes "I'm just getting through the night with my sleeping bag!";
+	mes "It's alright as long as you can withstand the security guard's annoyance with you.";
+	close;
+}
+
+ecl_fild01,108,320,6	script	Tourist#ep14_2f4	941,{
+	mes "[Tourist]";
+	mes "I wonder how beautiful of a city Eclage would be.";
+	mes "It just makes my heart beat thinking about it.";
+	emotion e_lv;
+	close;
+}
+
+ecl_fild01,105,320,2	script	Tourist#ep14_2f5	436,{
+	mes "[Tourist]";
+	mes "No, I'm not a visitor. I'm an Eclage citizen!";
+	emotion e_an;
+	next;
+	mes "[Tourist]";
+	mes "I can't believe I can't even enter because of all these tourists!";
+	emotion e_omg;
+	close;
+}
+
+ecl_fild01,103,319,4	script	Tourist#ep14_2f6	900,{
+	mes "[Tourist]";
+	mes "I hear their acorns are delicious without a hint of bitterness.";
+	next;
+	mes "[Tourist]";
+	mes "You could probably make the world's best acorn jello.";
+	emotion e_omg;
+	close;
+}
+
+ecl_fild01,110,316,2	script	Tourist#ep14_2f7	896,{
+	mes "[Tourist]";
+	mes "It's important to keep your belongings light when traveling.";
+	next;
+	mes "[Tourist]";
+	mes "It's going to increase as you go along anyways.";
+	next;
+	mes "[Tourist]";
+	mes "Perhaps you could consider it as the weight of life?";
+	emotion 38,0;
+	close;
+}
+
+ecl_fild01,92,318,4	script	Tourist#ep14_2f8	517,{
+	mes "[Tourist]";
+	mes "Cool cool.";
+	close;
+}
+
+ecl_fild01,93,318,2	script	Tourist#ep14_2f9	107,{
+	mes "[Tourist]";
+	mes "Snorrrreee....Erhem....";
+	next;
+	mes "[Tourist]";
+	mes "Err.... No.....";
+	mes "Curry.... Curry rice.... Snorrreeeee";
+	emotion e_hlp;
+	close;
+}
+
+ecl_fild01,94,313,4	script	Tourist#ep14_2f10	715,{
+	mes "[Tourist]";
+	mes "Oh! Are you also from Midgard?";
+	next;
+	mes "[Tourist]";
+	mes "It's encouraging to see so many Midgard people nowadays.";
+	emotion e_com;
+	close;
+}
+
+ecl_fild01,101,320,4	script	Tourist#ep14_2f11	522,{
+	mes "[Tourist]";
+	mes "Ow.... My legs...";
+	mes "You're saying I have to wait after all this traveling through Bifrost?!";
+	emotion e_an;
+	close;
+}
+
+ecl_fild01,88,315,4	script	Tourist#ep14_2f12	957,{
+	mes "[Tourist]";
+	mes "Ahh...";
+	mes "Why are there so many people...?";
+	next;
+	mes "[Tourist]";
+	mes "I want to be alone......Sniff!";
+	emotion e_otl;
+	close;
+}
+
+// Generic Eclage NPCs - Set 2
+//============================================================
+ecl_fild01,183,190,4	script	Catering#eclbig	447,{
+	mes "[Catering]";
+	mes "Wahahaha! How do you do!";
+	mes "It's perfect weather for a picnic, no?";
+	next;
+	emotion e_wah;
+	mes "[Catering]";
+	mes "You say it's hard to pack for a picnic?";
+	next;
+	emotion e_no1;
+	mes "[Catering]";
+	mes "Don't you worry!";
+	next;
+	emotion e_gasp;
+	mes "[Catering]";
+	mes "This is a specialty combining acorns with 7 different kinds and 7 different levels of flavor collected by squirrels of Eclage!";
+	next;
+	emotion e_cash;
+	mes "[Catering]";
+	mes "This specialty to-go box is only 2,999 coins!!!";
+	next;
+	emotion e_omg;
+	mes "[Catering]";
+	mes "Such a remarkable price!";
+	next;
+	emotion e_lv;
+	mes "[Catering]";
+	mes "If you order now, we also give you a disposable fork that feels like new even with a hundred uses!";
+	close;
+}
+
+ecl_fild01,134,109,4	script	Warao#eclbig	446,{
+	mes "[Warao]";
+	mes "Ah~ I'm so hungry. What should I eat today?";
+	next;
+	mes "[Warao]";
+	mes "Come to think of it, I wonder how this foreigner will taste?";
+	next;
+	emotion e_gg;
+	mes "[Warao]";
+	mes "Hey hey, you know I'm kidding, right?";
+	close;
+}
+
+ecl_fild01,70,285,4	script	Giranni#eclbig	611,{
+	mes "[Giranni]";
+	mes "I wonder where he went. It should be around here...";
+	close;
+}
+
+eclage,106,61,4	script	Markoza#eclbig	444,{
+	mes "[Markoza]";
+	mes "I also want to visit foreign lands.";
+	next;
+	mes "[Markoza]";
+	mes "But would foreigners leave me be when I am this adorable?";
+	next;
+	emotion e_pif;
+	mes "[Markoza]";
+	mes "Man, wherever I go, my cuteness just complicates everything...";
+	close;
+}
+
+eclage,101,130,5	script	Wutapoa#eclbig	435,{
+	mes "[Wutapoa]";
+	mes "I recently moved out of my parent's place!";
+	mes "I am so glad I finally have my own Yai!";
+	next;
+	mes "[Wutapoa]";
+	mes "I'm going to make it the most decorative, beautiful Yai in Eclage!";
+	next;
+	emotion e_heh;
+	mes "[Wutapoa]";
+	mes "Yay, woohoo!!!";
+	close;
+}
+
+eclage,200,272,4	script	Masione#eclbig	437,{
+	mes "[Masione]";
+	mes "Whoa! Hey!";
+	mes "Would you please stop appearing out of nowhere?";
+	emotion e_omg;
+	next;
+	mes "[Masione]";
+	mes "I'm a fragile, sensitive being!";
+	close;
+}
+
+ecl_in01,55,25,3	script	Mijani#eclbig	520,{
+	mes "[Mijani]";
+	mes "You are not from around here?";
+	mes "Welcome.";
+	next;
+	mes "[Mijani]";
+	mes "Of course, as long as you don't disrupt Eclage.";
+	close;
+}
+
+ecl_in01,38,37,4	script	A kneeling boy#eclbig	441,{
+	mes "[A kneeling boy]";
+	mes "Why am I kneeling like this?";
+	next;
+	mes "[A kneeling boy]";
+	mes "At first, it was because it was comfortable. Now it's because I can't stretch my legs out anymore.";
+	next;
+	emotion e_sob;
+	mes "[A kneeling boy]";
+	mes "I try to stretch them out, and my legs are all asleep!!";
+	mes "Does that mean I have to fly around with my legs flexed like this?";
+	close;
+}
+
+ecl_in02,168,41,2	script	Pambo#eclbig	438,{
+	mes "[Pambo]";
+	mes "Do you like things that twinkle?";
+	next;
+	emotion e_lv2;
+	mes "[Pambo]";
+	mes "I love them so much!";
+	next;
+	mes "[Pambo]";
+	mes "Twinkle twinkle~ Twinkle twinkle~";
+	next;
+	mes "[Pambo]";
+	mes "Twinkle twinkle~ Twinkle twinkle~";
+	mes "Sparkle sparkle~ Sparkle sparkle~";
+	next;
+	mes "[Pambo]";
+	mes "Twinkle twinkle~ Twinkle twinkle~";
+	mes "Sparkle sparkle~ Sparkle sparkle~";
+	mes "Mmhahah~ Hahaha~ Hehehe~";
+	mes "Heh heh heh~ Huhuhe~ Hoho~";
+	mes "Kehehe~ Halala~ Fufu~";
+	next;
+	emotion e_sob;
+	mes "[Pambo]";
+	mes "But there's nothing twinkling here...";
+	close;
+}
+
+ecl_in01,41,103,1	script	A blushing girl#eclbig	439,{
+	mes "[A blushing girl]";
+	mes "Do you see this balcony up top?";
+	mes "Mayor Jun appears there everytime there is an important occasion!";
+	next;
+	emotion e_lv2;
+	mes "[A blushing girl]";
+	mes "He's so handome!! Ahhh~";
+	close;
+}
+
+ecl_in01,53,92,4	script	Lafiki#eclbig	444,{
+	mes "[Lafiki]";
+	mes "My fashion sense today is excellent as usual. Heh-";
+	next;
+	emotion e_lv2;
+	mes "[Lafiki]";
+	mes "Hello~ My beautiful body~";
+	mes "Every strand of hair is so beautiful!";
+	next;
+	mes "[Dandy]";
+	mes "Yes, it's definitely your garbage fashion sense that wreaks of trash as usual.";
+	emotion e_gg,0,"Dandy#eclbig";
+	close;
+}
+
+ecl_in01,54,91,2	script	Dandy#eclbig	443,{
+	mes "[Dandy]";
+	mes "Take a look at me! How's this? Am I not so fabulous?";
+	next;
+	mes "[Dandy]";
+	mes "A Laphine can freely change in between different clothes, but not any Laphine looks this great!";
+	next;
+	mes "[Lafiki]";
+	mes "What nonsensical nonsense are you saying? No matter who looks at it, this region's best looker is me!";
+	emotion e_pif,0,"Lafiki#eclbig";
+	close;
+}
+
+ecl_in01,52,102,4	script	Choir Conductor#eclbig	442,{
+	mes "[Choir conductor]";
+	mes "We are Eclage's Tree Wing Choir~";
+	mes "We bring you heavenly harmonies~";
+	next;
+	mes "[Choir conductor]";
+	mes "Hello foreigner, we'll give you a taste of our harmony~";
+	next;
+	emotion e_ho;
+	mes "[Choir]";
+	mes "Aaa~";
+	next;
+	emotion e_ho,0,"Choir member#eclbig01";
+	mes "[Choir]";
+	mes "Aaa~~";
+	mes "Aaa~";
+	next;
+	emotion e_ho,0,"Choir member#eclbig02";
+	mes "[Choir]";
+	mes "Aaa~~~";
+	mes "Aaa~~";
+	mes "Aaa~";
+	next;
+	emotion e_ho,0,"Choir member#eclbig03";
+	mes "[Choir]";
+	mes "Aaa~~~~";
+	mes "Aaa~~~";
+	mes "Aaa~~";
+	mes "Aaa~";
+	next;
+	emotion e_ho,0,"Choir member#eclbig04";
+	mes "[Choir]";
+	mes "Aaa~~~~~";
+	mes "Aaa~~~~";
+	mes "Aaa~~~";
+	mes "Aaa~~";
+	mes "Aaa~";
+	next;
+	emotion e_ho,0,"Choir member#eclbig05";
+	mes "[Choir]";
+	mes "Aaa~~~~~~";
+	mes "Aaa~~~~~";
+	mes "Aaa~~~~";
+	mes "Aaa~~~";
+	mes "Aaa~~";
+	mes "Aaa~";
+	next;
+	emotion e_ho;
+	emotion e_ho,0,"Choir member#eclbig01";
+	emotion e_ho,0,"Choir member#eclbig02";
+	emotion e_ho,0,"Choir member#eclbig03";
+	emotion e_ho,0,"Choir member#eclbig04";
+	emotion e_ho,0,"Choir member#eclbig05";
+	mes "[Choir]";
+	mes "Uhhurukukuruhuuhhurukukuruhuuh";
+	mes "Try to feel this~ The melody that flows~";
+	next;
+	mes "[Choir conductor]";
+	mes "How is it!! Our harmony!!";
+	close;
+}
+
+ecl_in01,51,103,4	script	Choir member#eclbig01	442,{
+	mes "[Choir member]";
+	mes "Aaa~";
+	emotion e_ho;
+	close;
+}
+ecl_in01,53,103,4	duplicate(Choir member#eclbig01)	Choir member#eclbig02	442
+ecl_in01,50,104,4	duplicate(Choir member#eclbig01)	Choir member#eclbig03	442
+ecl_in01,52,104,4	duplicate(Choir member#eclbig01)	Choir member#eclbig04	442
+ecl_in01,54,104,4	duplicate(Choir member#eclbig01)	Choir member#eclbig05	442
+
+// Generic Eclage NPCs - Set 3
+//============================================================
+ecl_fild01,190,93,4	script	Fili#1	617,{
+	mes "[Fili]";
+	mes "Looking at this beautiful field, the song sings itself~";
+	emotion e_ho;
+	close;
+}
+
+ecl_fild01,83,263,4	script	Watering Laphine#1	444,{
+	mes "[Watering Laphine]";
+	mes "I think the earth is running dry.";
+	close;
+}
+
+ecl_fild01,163,196,4	script	Dancing Laphine#1	438,{
+	mes "[Dancing Laphine]";
+	mes "It's important to warm up like this before you start dancing. One, two, three, four....";
+	close;
+}
+
+// Eclage Prison & Clinic
+//============================================================
+ecl_in01,8,71,4	script	Eclage Guard#pri_inn	447,{
+	mes "[Eclage Guard]";
+	mes "This path will take you to the lower parts of Eclage. You'll find a prison and a clinic there.";
+	close;
+}
+
+ecl_in02,96,22,2	script	Sign#prison_inn	835,{
+	mes "[North] Prison";
+	mes "[West] Clinic";
+	close;
+}
+
+ecl_in02,164,56,2	script	Receptionist#Laphine	437,{
+	mes "[Receptionist]";
+	mes "Welcome to Eclage Clinic.";
+	next;
+	switch(select("Save Location:Rest:Finish the conversation")) {
+	case 1:
+		mes "[Receptionist]";
+		mes "Clinic has been set as your save point. Be careful though~";
+		savepoint "ecl_in02",162,49;
+		close;
+	case 2:
+		mes "[Receptionist]";
+		mes "Restore your mind and body at our clinic. It's filled with Eclage's clean energy.";
+		mes "We charge 1 Splendide Coin normally, but we offer a special discount for travelers. Your total is 5,000 zeny.";
+		next;
+		switch(select("Pay with Splendide Coin:Pay with Zeny:Forget it")) {
+		case 1:
+			if (countitem(6081) == 0) {
+				mes "[Receptionist]";
+				mes "It seems like you don't have enough coins. Would you check your account again, please?";
+				close;
+			}
+			delitem 6081,1; //Splendide_Coin
+			break;
+		case 2:
+			if (Zeny < 5000) {
+				mes "[Receptionist]";
+				mes "It seems like you don't have enough zeny. Would you check your account again, please?";
+				close;
+			}
+			set Zeny, Zeny-5000;
+			break;
+		case 3:
+			close;
+		}
+		mes "[Receptionist]";
+		mes "Make yourself at home~";
+		close2;
+		percentheal 100,100;
+		warp "ecl_in02",167,49;
+		end;
+	case 3:
+		close;
+	}
+}
+
+ecl_in02,137,44,2	script	Doctor Laphine#doctor	442,{
+	mes "[Injured Laphine]";
+	mes "Ooww...";
+	mes "Where...am...I?";
+	next;
+	mes "[Doctor]";
+	mes "You're at a clinic. Don't worry.";
+	mes "We stopped the bleeding and casted emergency spells.";
+	mes "You were bleeding a lot. That was close, you know.";
+	next;
+	mes "[Injured Laphine]";
+	mes "......";
+	mes "What, no, I...I don't feel anything...what's going on?";
+	next;
+	mes "[Doctor]";
+	mes "Umm...the arrow damaged your wing pretty badly...";
+	next;
+	mes "[Injured Laphine]";
+	mes "...what do you mean??";
+	next;
+	mes "[Doctor]";
+	mes "Well...I was going to tell you after you recover, but you should know. You can't decorate the Yai anymore.";
+	mes "In other words, you injured your wing. The arrow went through the most critical part in the wing.";
+	next;
+	mes "[Injured Laphine]";
+	mes "What? No way...please...doctor!! No!!";
+	close;
+}
+ecl_in02,135,45,4	duplicate(Doctor Laphine#doctor)	Injured Laphine	441

+ 51 - 0
npc/re/guides/guides_eclage.txt

@@ -0,0 +1,51 @@
+//===== rAthena Script ======================================= 
+//= Eclage Guides
+//===== By: ================================================== 
+//= Euphy
+//===== Current Version: ===================================== 
+//= 1.0
+//===== Compatible With: ===================================== 
+//= rAthena SVN
+//===== Description: ========================================= 
+//= Guides for the city of Eclage.
+//===== Additional Comments: ================================= 
+//= 1.0 First version. [Euphy]
+//============================================================ 
+
+ecl_in01,48,60,4	script	Eclage Guard#obb	447,{
+	mes "[Eclage Guard]";
+	mes "Welcome, Adventurer. This is the plaza of Eclage, a great and sacred tree. How can I help you?";
+	next;
+	switch(select("Palace:Orb:Store:Prison:Clinic:Residential Area:Finish the conversation")) {
+	case 1:
+		mes "[Eclage Guard]";
+		mes "Our great king, courageous generals, and scholars are all staying at the palace.";
+		mes "The palace is located at the top of Eclage. We usually fly there, but I see you don't have wings. Follow the path on your right then. It will lead you to the palace.";
+		close;
+	case 2:
+		mes "[Eclage Guard]";
+		mes "The Orb behind me is like a symbol of us Laphines.";
+		mes "It's filled with great and mysterious power. We always keep an eye on it and guard it carefully.";
+		close;
+	case 3:
+		mes "[Eclage Guard]";
+		mes "This is the plaza of Eclage. You'll find everything you need around here.";
+		close;
+	case 4:
+		mes "[Eclage Guard]";
+		mes "Prison is a place for criminals. Why would an adventurer like you go there?";
+		mes "Well, it's a little suspicious...but I'll tell you the location. Follow the path on your left. They don't let anyone in though.";
+		close;
+	case 5:
+		mes "[Eclage Guard]";
+		mes "All your pain and weariness melt away in the arms of nature. Restore your mind and body at Eclage Clinic.";
+		mes "Follow the path on your left.";
+		close;
+	case 6:
+		mes "[Eclage Guard]";
+		mes "Haven't you seen our decorations for Yai? Take a trip outside. You'll see our residential area.";
+		close;
+	case 7:
+		close;
+	}
+}

+ 348 - 1
npc/re/merchants/coin_exchange.txt

@@ -3,7 +3,7 @@
 //===== By: ==================================================
 //= rAthena Dev Team
 //===== Current Version: =====================================
-//= 1.1
+//= 1.2
 //===== Compatible With: =====================================
 //= rAthena SVN
 //===== Description: =========================================
@@ -12,6 +12,7 @@
 //===== Additional Comments: =================================
 //= 1.0 First version. [Euphy/Lemongrass]
 //= 1.1 Added remaining Malangdo traders. [Euphy/Lemongrass]
+//= 1.2 Added Eclage traders (not fully complete). [Euphy]
 //============================================================
 
 // Malangdo
@@ -826,3 +827,349 @@ malangdo,150,135,5	script	Roving Merchant	495,{
 	}
 }
 
+// Eclage
+//============================================================
+ecl_in01,66,95,2	script	Armor Merchant Naphara	436,{
+	mes "[Armor Merchant]";
+	mes "Hello, this is Naphara's store, a place of high class goods.";
+	mes "What would you need?";
+	next;
+	set .@i, select("Str Glove:Int Glove:Agi Glove:Vit Glove:Dex Glove:Luk Glove");
+	mes "[Armor Merchant]";
+	switch(.@i) {
+	case 1: // Str Glove
+		mes "^3131FFStr Glove^000000";
+		mes "^3131FFMHP + 100, MSP + 20^000000";
+		mes "^3131FFATK+1 increases for every STR+10^000000";
+		mes "^3131FFATK +1% added above STR 110^000000";
+		set .@item,2917; //Str_Glove
+		break;
+	case 2:
+		mes "^3131FFInt Glove^000000";
+		mes "^3131FFMHP + 100, MSP + 20^000000";
+		mes "^3131FFMATK+1 increases for every INT+10^000000";
+		mes "^3131FFMATK +1% added above INT 110^000000";
+		set .@item,2918; //Int_Glove
+		break;
+	case 3:
+		mes "^3131FFAgi Glove^000000";
+		mes "^3131FFMHP + 100, MSP + 20^000000";
+		mes "^3131FFFLEE+1 increases for every AGI+10^000000";
+		mes "^3131FFComplete Flee +1 added above AGI 110^000000";
+		set .@item,2919; //Agi_Glove
+		break;
+	case 4:
+		mes "^3131FFVit Glove^000000";
+		mes "^3131FFMHP + 100, MSP + 20^000000";
+		mes "^3131FFMHP+50 for every VIT+10^000000";
+		mes "^3131FFMHP+1% added above VIT 110^000000";
+		set .@item,2920; //Vit_Glove
+		break;
+	case 5:
+		mes "^3131FFDex Glove^000000";
+		mes "^3131FFMHP + 100, MSP + 20^000000";
+		mes "^3131FFHIT+1 increases for every DEX+10^000000";
+		mes "^3131FFRanged attack power +1% added above DEX 110^000000";
+		set .@item,2921; //Dex_Glove
+		break;
+	case 6:
+		mes "^3131FFLuk Glove^000000";
+		mes "^3131FFMHP + 100, MSP + 20^000000";
+		mes "^3131FFCRI+1 increases for every LUK+10^000000";
+		mes "^3131FFCritical damage +1% added above LUK 110^000000";
+		set .@item,2922; //Luk_Glove
+		break;
+	}
+	mes "^3131FFRequired Level: 100^000000";
+	mes "^3131FFSlot: 0^000000";
+	mes "^3131FFWeight: 10^000000";
+	mes "are the characteristic options.";
+	next;
+	mes "[Armor Merchant]";
+	mes "It costs 10 Splendide Coins.";
+	mes "Would you like to buy it?";
+	next;
+	if(select("Buy it.:Don't buy it.") == 2)
+		close;
+	if (countitem(6081) < 10) {
+		mes "[Armor Merchant]";
+		mes "It seems like you don't have enough coins.";
+		close;
+	}
+	mes "[Armor Merchant]";
+	mes "Here you go!"; //custom
+	delitem 6081,10; //Splendide_Coin
+	getitem .@item,1;
+	close;
+}
+
+ecl_in01,64,97,4	script	Slot Expert Nattuer#ecl	436,{
+	mes "[Slot Expert]";
+	mes "I am Slot Expert Nattuer.";
+	mes "If you bring me an item from my little brother Naphara along with 5 Splendide Coins, I will open up one Slot for you.";
+	next;
+	if(select("Activate a Slot.:Forget it.") == 2)
+		close;
+	mes "[Slot Expert]";
+	mes "Slot activation is an extremely difficult procedure that can fail even with heightened care and the use of a magnifying lens.";
+	next;
+	mes "[Slot Expert]";
+	mes "Of course, if your heart were as big as that flower-filled land, you wouldn't mind. Right? Should I go for it?";
+	next;
+	if(select("Continue.:Forget it.") == 2)
+		close;
+	mes "[Slot Expert]";
+	mes "Which item would you like to activate with a Slot?";
+	next;
+	setarray .@noslots[0],2917,2918,2919,2920,2921,2922;
+	setarray .@slotted[0],2923,2924,2925,2926,2927,2928;
+	set .@i, select("Str Glove:Int Glove:Ag Glove:Vit Glove:Dex Glove:Luk Glove")-1;
+	set .@item, .@noslots[.@i];
+	set .@new_item, .@slotted[.@i];
+	mes "[Slot Expert]";
+	mes "Let's confirm for the last time. Is the one you want "+getitemname(.@item)+"?";
+	next;
+	if(select("Yes:No") == 2) {
+		mes "[Slot Expert]";
+		mes "Why don't you talk to me when you know for sure.";
+		close;
+	}
+	if (countitem(.@item) == 0) {
+		mes "[Slot Expert]";
+		mes "You don't have that item. Why don't you talk to me when you know for sure.";
+		close;
+	}
+	if (countitem(6081) < 5) {
+		mes "[Slot Expert]";
+		mes "You don't have enough coins. Why don't you talk to me when you know for sure."; //custom
+		close;
+	}
+	delitem 6081,5; //Splendide_Coin
+	delitem .@item,1;
+	//custom to the end
+	if (rand(100) < 5) {
+		mes "[Slot Expert]";
+		mes "Oh no, it failed! I'm sorry, but I warned you this could happen. Better luck next time.";
+		close;
+	}
+	mes "[Slot Expert]";
+	mes "Success! I've activated the slot.";
+	getitem .@new_item,1;
+	close;
+}
+
+ecl_in01,67,39,4	script	Replication Expert Palt	445,{
+	emotion e_lv;
+	mes "[Paltu]";
+	mes "Woohoo- Greetings. What are you looking for? Lots of goods here.";
+	next;
+	switch(select("No thanks.:Replication?:I know you got lots up your sleeve!")) {
+	case 1:
+		emotion e_an;
+		mes "[Paltu]";
+		mes "Really? Hmm?";
+		close;
+	case 2:
+		mes "[Paltu]";
+		mes "One can say that there's no one better in Eclage than I at utilizing magic resistance.";
+		next;
+		mes "[Paltu]";
+		mes "I'll give you a good price whatever it is. Just trust me.";
+		next;
+		select("Could you do something for me?");
+		emotion e_no1;
+		mes "[Paltu]";
+		mes "Hey, I like your attitude.";
+		next;
+		mes "[Paltu]";
+		mes "Ah- you know the hat you're wearing?";
+		next;
+		emotion e_what;
+		mes "[Paltu]";
+		mes "Don't you have any of those hats lying around in storage that are solid but too ugly to wear? You do, right?";
+		next;
+		select(".........");
+		emotion e_dots,1;
+		emotion e_heh;
+		mes "[Paltu]";
+		mes "See! I knew it. I knew it from the first minute.";
+		next;
+		mes "[Paltu]";
+		mes "If you bring me ^ff0000 50 Splendide Coins and the ingredients^000000, I'll make you a new hat in the same shape but worn as a ^ff0000Costume^000000.";
+		next;
+		mes "[Paltu]";
+		mes "Hmm, what was it...?";
+		mes "I think you adventurers call them ^0571B0Costumes^000000? right?";
+		next;
+		select("Yes~ What do you need?");
+		mes "[Paltu]";
+		mes "I need 1 ^0571B0hat to replicate^000000 and";
+		mes "I need ^E1281E 4 Crystal Mirrors^000000 for magic resistance, ^E1281E 1 Fairy Magic Powder^000000 as the catalyst, and ^E1281E Emerald, Ruby, Sapphire, Topaz, and Zircon, 10 of each^000000, to be used for amplifying the magic power.";
+		next;
+		emotion e_no;
+		mes "[Paltu]";
+		mes "There's quite a lot of ingredients, right? Well, I can't do anything about that. Dealing with magic power is not a joke.";
+		next;
+		select("Which hats can be replicated?");
+		mes "[Paltu]";
+		mes "Oh! You're pretty sharp!";
+		mes "Almost forgot the most important thing.";
+		next;
+		mes "[Paltu]";
+		mes "Hats that I can replicate are:";
+		mes "^0571B0Frog Hat, Romantic Flower, Magestic Goat, Blush, Valkyrie Helm, Deviruchi Hat, Assassin Mask, Elven Ears, Hahoe Mask, and Boys Cap^000000 a total of 10 types.";
+		next;
+		mes "[Paltu]";
+		mes "What do you think? I'll make it happen as long as I have the ingredients and the compensation.";
+		next;
+		if(select("I'll do it later.:Show me what you got!") == 1) {
+			emotion e_dots;
+			mes "[Paltu]";
+			mes "What? Are you kidding me? Please tell me you are!";
+			close;
+		}
+		break;
+	case 3:
+		break;
+	}
+	mes "[Paltu]";
+	mes "Oh wow.";
+	mes "You made the right call. I thought I was going to starve to death because the Laphines have no interest in pretty hats.";
+	next;
+	mes "[Paltu]";
+	mes "I'll make it a great deal for you. You really should know I'm giving you a good deal here.";
+	next;
+	mes "[Paltu]";
+	mes "Is there something you had in mind? Why don't you take a look?";
+	next;
+	setarray .@items[0],
+		5447, //Frog_Cap
+		2269, //Centimental_Flower
+		2256, //Magestic_Goat
+		5040, //Blush
+		5171, //Valkyrie_Helm
+		5038, //Deviruchi_Cap
+		5096, //Assassin_Mask_
+		2286, //Elven_Ears
+		5176, //Hahoe_Mask
+		5016; //Boy's_Cap
+	setarray .@costumes[0],
+		19548, //C_Frog_Cap
+		19552, //C_Centimental_Flower
+		19549, //C_Magestic_Goat
+		19550, //C_Blush
+		19546, //C_Valkyrie_Helm
+		19547, //C_Deviruchi_Cap
+		19553, //C_Assassin_Mask_
+		19551, //C_Elven_Ears
+		0,     //-- not implemented? --
+		19545; //C_Boys_Cap
+	if (countitem(6081) >= 50 && countitem(747) >= 4 && countitem(6395) >= 1 && countitem(721) >= 10 && countitem(723) >= 10 && countitem(726) >= 10 && countitem(728) >= 10 && countitem(729) >= 10)
+		set .@item_check,1;
+	for(set .@i,0; .@i<getarraysize(.@items); set .@i,.@i+1) {
+		if (.@item_check && countitem(.@items[.@i]))
+			set .@menu$, .@menu$+getitemname(.@items[.@i])+":"; //custom
+		else
+			set .@menu$, .@menu$+getitemname(.@items[.@i])+" (^777777Insufficient ingredients^000000):";
+	}
+	set .@i, select(.@menu$)-1;
+	set .@item, .@items[.@i];
+	set .@new_item, .@costumes[.@i];
+	mes "[Paltu]";
+	mes "Is ^0571B0"+getitemname(.@item)+"^000000 what you wanted?";
+	next;
+	if (.@item_check == 0 || countitem(.@item) == 0) {
+		emotion e_sob;
+		mes "[Paltu]";
+		mes "Ay... Credit purchases are difficult for me.";
+		next;
+		mes "[Paltu]";
+		mes "^0571B0"+getitemname(.@item)+"^000000 and";
+		mes "^E1281E50 Splendide Coins, 4 Crystal Mirrors, 1 Fairy Magic Powder, 10 of each Emerald, Ruby, Sapphire, Topaz, and Zircon^000000 are necessary.";
+		next;
+		mes "[Paltu]";
+		mes "I'm in a tight spot myself. Please consider my situation also.";
+		close;
+	}
+	//custom to the end
+	if(select("Continue.:Forget it.") == 2)
+		close;
+	delitem .@item,1;
+	delitem 6081,50; //Splendide_Coin
+	delitem 747,4; //Crystal_Mirror
+	delitem 6395,1; //Angel_Magic_Power
+	delitem 721,10; //Azure_Jewel
+	delitem 723,10; //Cardinal_Jewel
+	delitem 726,10; //Blue_Jewel
+	delitem 728,10; //Golden_Jewel
+	delitem 729,10; //Bluish_Green_Jewel
+	getitem .@new_item,1;
+	mes "[Paltu]";
+	mes "Thank you so much! As promised, here is your costume.";
+	close;
+}
+
+ecl_in01,33,98,4	script	Herb Merchant Plafina#e	443,{
+	mes "[Herb Merchant]";
+	mes "Welcome, this is Plafina's Herb Store where only the freshest herbs are provided~!";
+	next;
+	switch(select("Snow Flip:Peony Mommy:Slapping Herb:Yggdrasil Dust:End conversation")) {
+	case 1:
+		mes "[Herb Merchant]";
+		mes "Snow Flip has special effects on ^3131FFBurning, Bleeding, Deep Sleep, Sleep^000000.";
+		set .@item,12812; //Snow_Flip
+		set .@cost,5;
+		break;
+	case 2:
+		mes "[Herb Merchant]";
+		mes "Peony Mamy has special effects on ^3131FFFrost, Frozen, Freezing^000000.";
+		set .@item,12813; //Peony_Mommy
+		set .@cost,5;
+		break;
+	case 3:
+		mes "[Herb Merchant]";
+		mes "Slapping Herb has special effects on ^3131FFStun, Fear, Chaos, Hallucination^000000.";
+		set .@item,12814; //Slapping_Herb
+		set .@cost,1;
+		break;
+	case 4:
+		mes "[Herb Merchant]";
+		mes "Yggdrasil Dust has special effects on ^3131FFBlind, Curse, Decrease Agility, Reverse Orcish^000000.";
+		set .@item,12815; //Yggdrasil_Dust
+		set .@cost,1;
+		break;
+	case 5:
+		mes "[Herb Merchant]";
+		mes "Come back anytime.";
+		close;
+	}
+	mes "Requires 5 seconds between uses.";
+	mes "It costs "+.@cost+" Splendide Coin"+((.@cost == 1)?"":"s")+" for each.";
+	next;
+	switch(select("Buy 1.:Buy 10.:Don't buy.")) {
+	case 1:
+		set .@amount,1;
+		break;
+	case 2:
+		set .@amount,10;
+		break;
+	case 3:
+		close;
+	}
+	set .@price,.@amount*.@cost;
+	mes "[Herb Merchant]";
+	mes "Would you like to buy "+.@amount+" "+getitemname(.@item)+"?";
+	next;
+	if(select("Buy.:Don't buy.") == 2)
+		close;
+	if (countitem(6081) < .@price) {
+		mes "[Herb Merchant]";
+		mes "You don't have enough coins.";
+		close;
+	}
+	mes "[Herb Merchant]";
+	mes "Here are your herbs."; //custom
+	delitem 6081,.@price; //Splendide_Coin
+	getitem .@item,.@amount;
+	end;
+}

+ 1839 - 0
npc/re/quests/quests_eclage.txt

@@ -0,0 +1,1839 @@
+//===== rAthena Script =======================================
+//= Eclage Quest NPCs
+//===== By: ==================================================
+//= Euphy
+//===== Current Version: =====================================
+//= 0.1
+//===== Compatible With: =====================================
+//= rAthena SVN
+//===== Description: =========================================
+//= Quest NPCs related to Eclage.
+//===== Additional Comments: =================================
+//= 0.1 NPCs are mostly placeholders. [Euphy]
+//============================================================
+
+// Teleport Cats (14.2 Cat Hand Addition)
+//============================================================
+-	script	Teleport Cat#ep14_2	-1,{
+	switch(atoi(charat(strnpcinfo(1),16))) {
+	case 1:
+		setarray .@map$[0],"Entrance to Mora";
+		setarray .@cost[0],15;
+		break;
+	case 2:
+		setarray .@map$[0],"Near Eclage","Near Splendide";
+		setarray .@cost[0],15,55;
+		break;
+	case 3:
+		setarray .@map$[0],"Entrance to Mora","Midgard Allied Forces Post";
+		setarray .@cost[0],55,10;
+		break;
+	case 4:
+		setarray .@map$[0],"Near Splendide","Manuk Field";
+		setarray .@cost[0],10,10;
+		break;
+	case 5:
+		setarray .@map$[0],"Midgard Allied Forces Post","Near El Dicastes";
+		setarray .@cost[0],10,20;
+		break;
+	case 6:
+		setarray .@map$[0],"Manuk Field";
+		setarray .@cost[0],20;
+		break;
+	}
+	mes "[Teleport Cat]";
+	mes "What a nice day, isn't it!";
+	mes "Welcome to Cat Merchant Group. We do anything to please our customers. We would even lie on our back if you want!";
+	next;
+	mes "[Teleport Cat]";
+	mes "We provide teleport service between various regions based on our accumulated knowledge. We accept Malangdo Canned Specialties or Zeny, so you can pay however you like it~";
+	next;
+	set .@menu$,"Forget it:";
+	for(set .@i,0; .@i<getarraysize(.@map$); set .@i,.@i+1) {
+		set .@menu$, .@menu$+
+			.@map$[.@i]+" ("+.@cost[.@i]+" Canned Food):"+
+			.@map$[.@i]+" ("+.@cost[.@i]+",000 Zeny):";
+	}
+	set .@i, select(.@menu$)-2;
+	if (.@i == -1) {
+		mes "[Teleport Cat]";
+		mes "I'll see you later then.";
+		close;
+	}
+	set .@choice$, .@map$[.@i/2];
+	set .@price, .@cost[.@i/2];
+	if (.@i % 2) {
+		set .@price, .@price*1000;
+		if (Zeny < .@price) {
+			mes "[Teleport Cat]";
+			mes "I'm afraid it's not enough. Sorry, but it can't be done for free~";
+			close;
+		}
+		set Zeny, Zeny-.@price;
+	} else {
+		if (countitem(12636) < .@price) {
+			mes "[Teleport Cat]";
+			mes "I'm afraid it's not enough. Sorry, but it can't be done for free~";
+			close;
+		}
+		delitem 12636,.@price; //Malang_Sp_Can
+	}
+	if (compare(.@choice$,"Midgard Allied Forces Post")) warp "mid_camp",180,247;
+	else if (compare(.@choice$,"Manuk Field")) warp "man_fild02",133,47;
+	else if (compare(.@choice$,"Near Splendide")) warp "spl_fild02",51,240;
+	else if (compare(.@choice$,"Near El Dicastes")) warp "dic_fild01",159,264;
+	else if (compare(.@choice$,"Entrance to Mora")) warp "bif_fild02",291,323;
+	else if (compare(.@choice$,"Near Eclage")) warp "ecl_fild01",116,309;
+	close;
+}
+ecl_fild01,118,311,4	duplicate(Teleport Cat#ep14_2)	Teleport Cat No.1	421
+bif_fild02,293,325,4	duplicate(Teleport Cat#ep14_2)	Teleport Cat No.2	421
+spl_fild02,53,242,4	duplicate(Teleport Cat#ep14_2)	Teleport Cat No.3	421
+mid_camp,207,234,4	duplicate(Teleport Cat#ep14_2)	Teleport Cat No.4	421
+man_fild02,135,49,4	duplicate(Teleport Cat#ep14_2)	Teleport Cat No.5	421
+dic_fild01,161,266,4	duplicate(Teleport Cat#ep14_2)	Teleport Cat No.6	421
+
+// Eclage's Entrance
+//============================================================
+ecl_fild01,97,322,0	script	#ep14_2Entrance	45,3,3,{
+OnTouch:
+	if (ep14_2_enter < 3) {
+		mes "[Security Guard]";
+		mes "Please wait a minute.";
+		mes "All first-time visitors to Eclage must fill out the necessary forms before entering.";
+		close;
+	}
+	warp "eclage",100,28;
+	end;
+}
+
+ecl_fild01,94,322,5	script	Security Guard#ep14_2	447,{
+	if (ep14_2_enter == 0) {
+		mes "[Security Guard]";
+		mes "All first-time visitors to Eclage must fill out the necessary forms here before entering.";
+		next;
+		mes "[Security Guard]";
+		mes "Please understand because of a recent increase in the influx of people from Midgard through Bifrost, we had to create this process.";
+		next;
+		mes "[Security Guard]";
+		mes "Of course, the documents will be secured away after their use in access regulations, so you don't have to worry.";
+		next;
+		if(select("Fill out the forms.:Forget it.") == 2) {
+			mes "[Security Guard]";
+			mes "Please note that you would not be able to enter the city without filling out the forms.";
+			close;
+		}
+		mes "[Security Guard]";
+		mes "Please fill out your name, occupation, and level here.";
+		next;
+		mes "Write your name.";
+		input .@input1$;
+		next;
+		mes "Write your occupation.";
+		input .@input1$;
+		next;
+		mes "Write your level.";
+		input .@input1$;
+		next;
+		mes "[Security Guard]";
+		mes "If you completed your forms, please submit them to the administrator over there.";
+		mes "There may be some waiting time, so take your time.";
+		set ep14_2_enter,1;
+		setquest 11310;
+		close;
+	} else if (ep14_2_enter == 1) {
+		mes "[Security Guard]";
+		mes "Please submit your forms to the administrator over there after writing in your name, occupation, and level.";
+		mes "There may be some waiting time, so take your time.";
+		close;
+	} else if (ep14_2_enter == 2) {
+		mes "[Security Guard]";
+		mes "Great, you completed the forms.";
+		mes "Welcome to Eclage, the capital of the Laphines.";
+		next;
+		mes "[Security Guard]";
+		mes "Since Eclage is under the influence of Bifrost, there is fluent communication among the races.";
+		next;
+		mes "[Security Guard]";
+		mes "There would be no need for any separate translation, and there are enough bridges for on-foot races, so I hope you have a comfortable visit.";
+		set ep14_2_enter,3;
+		erasequest 11311;
+		close2;
+		warp "eclage",100,28;
+		end;
+	} else {
+		mes "[Security Guard]";
+		mes "Welcome to Eclage, the capital of the Laphines.";
+		next;
+		mes "[Security Guard]";
+		mes "Since Eclage is under the influence of Bifrost, there is fluent communication among the races.";
+		next;
+		mes "[Security Guard]";
+		mes "There would be no need for any separate translation, and there are enough bridges for on-foot races, so I hope you have a comfortable visit.";
+		close;
+	}
+}
+ecl_fild01,100,323,3	duplicate(Security Guard#ep14_2)	Security Guard#ep14_2_2	447
+
+ecl_fild01,111,320,2	script	Immigration Officer#ep1	445,{
+	if (ep14_2_enter == 0) {
+		mes "[Immigration Officer]";
+		mes "What do you need?";
+		mes "As you can see, I'm really busy here, so unless you need something, please don't bother me.";
+		emotion e_an;
+		close;
+	} else if (ep14_2_enter == 1) {
+		mes "[Immigration Officer]";
+		mes "Whew! I'm sorry to have kept you waiting.";
+		mes "There are just too many visitors.";
+		emotion e_wah;
+		next;
+		mes "[Immigration Officer]";
+		mes "So if you will place your forms here...";
+		next;
+		mes "[???]";
+		mes "Here!! These are my completed forms!!";
+		mes "This time it's all good, right?";
+		mes "Let me through quick!";
+		cutin "bu_du1.bmp",2;
+		emotion e_omg,1;
+		next;
+		cutin "bu_du1.bmp",255;
+		mes "[Immigration Officer]";
+		mes "I'm taking care of visitors in the order they arrived, so please wait for your turn.";
+		emotion e_swt;
+		next;
+		mes "[???]";
+		mes "What are you talking about!";
+		mes "I was waaaay before all of these guys!";
+		cutin "bu_du3.bmp",2;
+		next;
+		cutin "bu_du3.bmp",255;
+		mes "[Immigration Officer]";
+		mes "Well, your turn was delayed because you had to fill out your forms, so you have to wait until later.";
+		emotion e_ag;
+		next;
+		mes "[???]";
+		mes "What?! You just said you take care of visitors in the order they arrived!!!";
+		cutin "bu_du5.bmp",2;
+		next;
+		cutin "bu_du5.bmp",255;
+		mes "[Immigration Officer]";
+		mes "Yes, I did say that but...";
+		next;
+		mes "- SMACK!!! -";
+		next;
+		mes "[???]";
+		mes "OW!! Why did you hit me?";
+		cutin "bu_du4.bmp",2;
+		next;
+		mes "[???]";
+		mes "I'm so sorry.";
+		mes "My stupid friend here is causing trouble.";
+		cutin "bu_mark3.bmp",0;
+		next;
+		mes "[???]";
+		mes "Who are you calling stupid?!";
+		cutin "bu_du5.bmp",2;
+		next;
+		mes "[???]";
+		mes "If you hadn't filled out my name incorrectly in the first place, we wouldn't be waiting like this!";
+		cutin "bu_mark3.bmp",0;
+		next;
+		mes "[???]";
+		mes "Mark Esha or Madrid, they're all the same!";
+		cutin "bu_du3.bmp",2;
+		next;
+		mes "[Mark Esha]";
+		mes "They're not at all the same!";
+		mes "And what's more, how can you not know the name of your friend of 15 years?";
+		cutin "bu_mark4.bmp",0;
+		next;
+		mes "[???]";
+		mes "It's not that I didn't know- I did it on purpose!!";
+		mes "Madrid is just fine! Madrid!";
+		cutin "bu_du3.bmp",2;
+		next;
+		cutin "bu_du3.bmp",255;
+		mes "- SMACK -";
+		next;
+		mes "[Mark Esha]";
+		mes "Hu... I am so sorry that my friend is this stupid.";
+		mes "Please don't mind us and do what you need to do.";
+		cutin "bu_mark3.bmp",0;
+		next;
+		mes "[???]";
+		mes "AHHHH!!!";
+		mes "LET ME IN!!!!";
+		mes "How long do I have to wait out here!!!";
+		cutin "bu_du5.bmp",2;
+		next;
+		mes "[Mark Esha]";
+		mes "Would you stay put just for a second?!!!";
+		mes "Sorry. So sorry.";
+		cutin "bu_mark3.bmp",0;
+		next;
+		cutin "bu_mark3.bmp",255;
+		mes "[Immigration Officer]";
+		mes "Oh wow, this is just so crazy.";
+		mes "Test15696 Here, your documents are processed.";
+		mes "You may enter the city when you go talk to the security guard.";
+		emotion e_go;
+		next;
+		mes "[???]";
+		mes "Shuffle, shuffle";
+		cutin "bu_oliver0.bmp",0;
+		next;
+		cutin "bu_oliver0.bmp",255;
+		mes "[Immigration Officer]";
+		mes "And Mr. Deu Lean, please take your group and enter. It's just way too noisy.";
+		emotion e_an;
+		next;
+		mes "[Du Lian]";
+		mes "Mwahah!!";
+		mes "SEE THAT?!";
+		mes "Thanks to me, we got through faster!";
+		cutin "bu_du1.bmp",2;
+		next;
+		mes "[Mark Esha]";
+		mes "You mean slower...";
+		cutin "bu_mark4.bmp",0;
+		next;
+		mes "[Du Lian]";
+		mes "A real man does not get bogged down by the past!!";
+		mes "I may have been slow with the documentation but I will be the one to enter Eclage first!";
+		mes "Mwahah!";
+		cutin "bu_du2.bmp",2;
+		next;
+		mes "[Mark Esha]";
+		mes "......Whew";
+		mes "I'm so sorry for everything.";
+		cutin "bu_mark2.bmp",0;
+		next;
+		mes "[???]";
+		mes "Well......";
+		mes "Mr. Mark, Mr. Du is already gone.";
+		cutin "bu_maggi3.bmp",2;
+		next;
+		mes "[Mark Esha]";
+		mes "Oh.............";
+		mes "Oh......................";
+		cutin "bu_mark3.bmp",0;
+		next;
+		mes "[Mark Esha]";
+		mes "My goodness......";
+		emotion e_swt2,1;
+		set ep14_2_enter,2;
+		erasequest 11310;
+		setquest 11311;
+		close2;
+		cutin "bu_mark3.bmp",255;
+		end;
+	} else {
+		mes "[Immigration Officer]";
+		mes "Oh wow, this is just so crazy.";
+		mes strcharinfo(0)+".";
+		mes "Here, your documents are processed.";
+		mes "You may enter the city when you go talk to the security guard.";
+		emotion e_go;
+		close;
+	}
+}
+
+// Oliver Wolf Hood
+//============================================================
+eclage,102,32,4	script	Fairy Carpenter#ep14_2	443,{
+	if (BaseLevel < 120) {
+		mes "[Fairy Carpenter]";
+		mes "The bridge is kind of broken so please be careful.";
+		emotion e_sob;
+		close;
+	}
+	if (checkquest(11312) == -1) {
+		mes "[Fairy Carpenter]";
+		mes "This area is kind of broken, so be careful.";
+		mes "Otherwise, you'll fall aaaaaall the way down.";
+		next;
+		switch(select("The work being done right now:The reason for the bridge being broken:Forget it.")) {
+		case 1:
+			//missing
+			close;
+		case 2:
+			mes "[Fairy Carpenter]";
+			mes "Oh, just a minute ago, there was a human benig who took a misstep and broke a tree branch while falling.";
+			emotion e_an;
+			next;
+			mes "[Fairy Carpenter]";
+			mes "Being close to the entrance and all, this really needs to be fixed soon.";
+			mes "I'm trying to decide whether I should put up a warning sign, gather the necessary materials for it, and fix it myself."; //custom
+			next;
+			switch(select("Give help.:Don't give help.")) {
+			case 1:
+				mes "[Fairy Carpenter]";
+				mes "Wow!!!";
+				mes "You are going to help me?!";
+				mes "So... so kind...";
+				next;
+				mes "[Fairy Carpenter]";
+				mes "I can't believe there's still this kind of kindness left in the world... Hmm, sweaty eyes...";
+				emotion e_sob;
+				next;
+				mes "[Fairy Carpenter]";
+				mes "Would you then bring me a new bridge to use for repair?";
+				mes "Since other people can get hurt, I'll use my magic to maintain this bridge in the meantime.";
+				emotion e_go;
+				//setquest 11312;
+				close;
+			case 2:
+				//missing
+				close;
+			}
+		case 3:
+			//missing
+			close;
+		}
+	}
+	select("What if you use magic to repair it?");
+	mes "[Fairy Carpenter]";
+	mes "Hmm, it's not impossible, but magic that deals with creation of life requires much magic power and shouldn't be used so freely.";
+	next;
+	mes "[Fairy Carpenter]";
+	mes "If I were to describe how stupid that would be... Well, it's like turning a deliciously baked chocolate cake back into flour.";
+	next;
+	mes "[Fairy Carpenter]";
+	mes "Since the broken part is about 19 meters from here...";
+	next;
+	mes "[Fairy Carpenter]";
+	mes "Ahh! Now that I remember, before we used to be able to order the exact necessary length, but because they are mass-producing them nowadays, they only provide preset lengths.";
+	next;
+	mes "[Fairy Carpenter]";
+	mes "To maximize the stability, it's better to avoid connecting multiple bridge pieces together,";
+	next;
+	mes "[Fairy Carpenter]";
+	mes "and this broken bridge... from here to there it's about 19 meters and the present pieces come in 3 meters, 5 meters, and 10 meters......";
+	emotion e_swt2;
+	next;
+	mes "[Fairy Carpenter]";
+	mes "Hmm.......";
+	next;
+	mes "[Fairy Carpenter]";
+	mes "Hmm.......";
+	mes "......";
+	emotion e_swt2;
+	next;
+	mes "[Fairy Carpenter]";
+	mes "......Hmm.........";
+	emotion e_swt2;
+	next;
+	mes "- It's probably just my imagination that smoke is coming out of his head, right? -";
+	next;
+	mes "[Fairy Carpenter]";
+	mes "Oh ho!";
+	mes "What do you think?";
+	emotion e_heh;
+	next;
+	mes "[Fairy Carpenter]";
+	mes "To make a bridge of 19 meters in length with the fewest number of pieces possible, how many of each 3, 5, or 10 meter length pieces would I need?";
+	emotion e_what;
+	next;
+	mes "[Fairy Carpenter]";
+	mes "Please write the number of pieces necessary for each length. If no pieces for that length are necessary, please write 0.";
+	input .@inputstr$;
+	if (.@inputstr$ != "002") {
+		//missing
+		close;
+	}
+	next;
+	mes "[Fairy Carpenter]";
+	mes "Yeah, that sounds good, right?";
+	mes "Especially since there wouldn't be a need to make them so straight.";
+	emotion e_ic;
+	next;
+	mes "[Fairy Carpenter]";
+	mes "Okay, if you talk to [Golie] who works outside the city near the tower, he will give you the new bridge pieces.";
+	//erasequest 11312;
+	//setquest 11313;
+	close;
+/*
+OnTouch:
+	if (ep14_2_hood == 0) {
+		mes "[Fairy Carpenter]";
+		mes "Hey!!!!!!!";
+		mes "Be careful over there!!";
+		close;
+	}
+	end;
+*/
+}
+
+eclage,283,275,4	script	Glaces#ep14_2	438,{
+	mes "[Glaces]";
+	mes "Hm......";
+	mes "The guys are late.";
+	mes "I can only imagine that they would be busy just looking at the number of people visiting Eclage nowadays but...";
+	next;
+	mes "[Glaces]";
+	mes "Why... why do I have so much time at hand...?";
+	mes "Am I the only one with so much free time?";
+	mes "Am I really the only one?";
+	emotion e_omg;
+	close;
+}
+
+eclage,266,216,4	script	Moreng#ep14_2	444,{
+	mes "[Moreng]";
+	mes "Eclage is a really nice place to live.";
+	mes "The flowers are always in full bloom and the weather is always comfortable.";
+	next;
+	mes "[Moreng]";
+	mes "If there were a beautiful Yai of my own, it would truly be a paradise!";
+	next;
+	mes "[Moreng]";
+	mes "Yai actually signifies an egg.";
+	mes "And to Laphines, Yai could even signify what is beyond a home...";
+	emotion e_shy;
+	close;
+}
+
+eclage,191,200,4	script	Yube#ep14_2	446,{
+	mes "- Shuffle shuffle -";
+	mes "He's working on something.";
+	mes "Let's not bother him.";
+	close;
+}
+
+eclage,292,265,0	script	#ep14_2Yube Entrance	45,2,2,{
+OnTouch:
+	mes "- Looks like the door is locked. -";
+	close;
+}
+
+eclage,265,166,4	script	Shul#ep14_2	443,{
+	mes "[Shul]";
+	mes "Laphine's put their lives on the line to make Yai beautiful.";
+	mes "I'm a Laphine myself but that kind of priority is difficult to understand.";
+	close;
+}
+
+eclage,137,169,4	script	Tato#ep14_2	439,{
+	mes "[Tato]";
+	mes "A friend of mine recently applied to the Splendide unit.";
+	mes "I heard Jotunheim is really cold. I hope he's doing well.";
+	close;
+}
+
+ecl_in01,60,71,4	script	Old Man#ep14_2	443,{
+	mes "[Old Man]";
+	mes "Hohoho~!";
+	next;
+	mes "[Old Man]";
+	mes "Looks like there are a lot of interesting visitors nowadays...";
+	mes "When I was young, you had to put your life on the line to go into the foreign lands.";
+	next;
+	mes "[Old Man]";
+	mes "Nowadays, things are much more convenient with de-regulation and all.";
+	mes "And with the warps and flying to all these places, where's all the romance in adventures anymore?";
+	emotion e_pif;
+	next;
+	mes "[Old Man]";
+	mes "Young people nowadays probably don't even know how frog eggs taste like.";
+	next;
+	mes "[Old Man]";
+	mes "It seems like yesterday when I saved enough Jellopies to buy a Tsurugi, but even that Tsurugi is deserted somewhere in storage.";
+	emotion e_sob;
+	close;
+}
+
+ecl_in01,44,53,4	script	Delivery Man#ep14_2	513,{
+	mes "[Delivery Man]";
+	mes "Sigh...";
+	mes "I need to get going in order to make it on time.";
+	next;
+	mes "[Delivery Man]";
+	mes "Wait a minute...";
+	mes "Is it actually better to deliver it later...";
+	mes "I remember seeing so many boxes of pickled Poring in the storage waiting to be delivered...";
+	emotion e_sob;
+	close;
+}
+
+ecl_in01,70,88,4	script	Sack Merchant#ep14_2	495,{
+	mes "[Sack Merchant]";
+	mes "Meow?";
+	mes "Helloeow~";
+	mes "I have a treasure from a place very, very fareow~";
+	mes "Take a lookeow~";
+	mes "I'll give you a good priceow~";
+	close;
+}
+
+ecl_in01,73,51,4	script	Murah#ep14_2	442,{
+	mes "[Murah]";
+	mes "Hmm... What amazing present should I give?";
+	emotion e_flash;
+	close;
+}
+
+ecl_fild01,192,94,4	script	Golie#ep14_2	442,{
+	mes "[Golie]";
+	mes "To grow Elder Willow trees,";
+	mes "since Spring, Peco Peco";
+	mes "must have cried as such.";
+	next;
+	mes "[Golie]";
+	mes "To grow Elder Willow trees";
+	mes "the alarm in the clock tower";
+	mes "again must have cried as such.";
+	next;
+	mes "[Golie]";
+	mes "It's a song given to me by a bard from Midgard. The lyrical and nature-oriented words really resonated with me.";
+	next;
+	mes "[Golie]";
+	mes "I would love to hear any songs that you might know also.";
+	close;
+}
+
+ecl_fild01,97,315,4	script	Traveler#ep14_2	732,{
+	mes "[Traveler]";
+	mes "Who are you?";
+	mes "I've never seen you before.";
+	next;
+	mes "[Traveler]";
+	mes "Oh, you came to ask me about the feather, too?";
+	mes "It's just a plain old decoration, but everyone really likes to bother me about it.";
+	next;
+	mes "[Traveler]";
+	mes "If you are thinking about selling it, you should just give up.";
+	mes "I have no wishes to sell it no matter how much you beg.";
+	next;
+	mes "[Traveler]";
+	mes "This feather...";
+	close;
+}
+
+// Wanted to be Big and Beautiful
+//============================================================
+eclage,282,255,4	script	Wuhari#eclbig	620,{
+	mes "[Wuhari]";
+	mes "Ah... Is there anyone with more experienced with this...";
+	close;
+}
+
+eclage,163,228,4	script	Goatie#eclbig	438,{
+	mes "[Goatie]";
+	mes "Have you ever been to the palace?";
+	mes "They say that it is so much more beautiful than our Yai's could ever be.";
+	next;
+	mes "[Goatie]";
+	mes "I guess people who have nothing can only dream.";
+	close;
+}
+
+eclage,170,195,4	script	Svery#eclbig	443,{
+	mes "[Svery]";
+	mes "It's my wife's big wish to visit the palace.";
+	next;
+	mes "[Svery]";
+	mes "I want to grant that wish for her, but how could that ever be possible.";
+	mes "Especially given our situation...";
+	close;
+}
+
+eclage,126,151,4	script	Pompe#eclbig	444,{
+	mes "[Pompe]";
+	mes "I saw it!";
+	next;
+	mes "[Pompe]";
+	mes "I really saw it!!";
+	close;
+}
+
+// Mystery Robbery Investigation
+//============================================================
+eclage,164,102,3	script	Cruyan#eclage	442,{}
+
+eclage,222,131,4	script	Wandering Merchant#ecla	807,{
+	mes "[Wandering Merchant]";
+	mes "Go away kids~";
+	close;
+}
+
+// Troublesome Fairie
+//============================================================
+ecl_in01,26,88,4	script	Cecilia#nk	440,{
+	mes "[Cecilia]";
+	mes "Mm...mm... what should I do...";
+	next;
+	mes "- She seems too busy to talk to you. -";
+	close;
+}
+
+ecl_in01,80,77,4	script	Dominic#nk	445,{
+	mes "[Dominic]";
+	mes "I won't stop you from walking around in Eclage but, don't bother me you outsider!";
+	close;
+}
+
+ecl_in02,160,36,4	script	Eirinn#nk	441,{
+	mes "[Eirinn]";
+	mes "Oww, my stomach hurts!!";
+	mes "What are you looking at?";
+	next;
+	mes "[Eirinn]";
+	mes "I haven't really eaten anything unusual these days but why am I getting stomach aches so often!";
+	close;
+}
+
+ecl_in03,175,69,4	script	Bourbon#nk	444,{
+	mes "[Bourbon]";
+	mes "How strange. I've been losing my stuff recently like things I put in my pocket or even the things I put away properly.";
+	close;
+}
+
+ecl_in01,82,80,0	script	Monthly Eclage#pa0829	111,{
+	mes "^000099I see a plain-looking journal. It seems to deal with third-rate gossip stories.^000000";
+	close;
+}
+
+ecl_in01,82,78,0	script	Magazine#01	111,{
+	mes "- I saw a book and stretched my hand out to reach for it. I think it's about Midgard. -";
+	next;
+	mes "[Dominic]";
+	mes "Hey, outsider,";
+	mes "who said you can touch my books?";
+	mes "Stay away from my bookshelves!";
+	close;
+}
+ecl_in01,82,79,0	duplicate(Magazine#01)	Magazine#02	111
+ecl_in01,83,81,0	duplicate(Magazine#01)	Exploration of Midgard::ExplorationMidgard1	111
+ecl_in01,82,84,0	duplicate(Magazine#01)	Exploration of Midgard::ExplorationMidgard2	111
+ecl_in01,80,86,0	duplicate(Magazine#01)	Exploration of Midgard::ExplorationMidgard3	111
+
+// Hiel's Workshop
+//============================================================
+eclage,155,91,4	script	#pa0829Hiel's Door10	836,{
+	mes "[Notice]";
+	mes "Pan-galactic ultra genius engineer Hiel's strange and creepy workshop.";
+	mes "Normal Laphines, animals, and Saphas are prohibited.";
+	next;
+	if(select("Continue on my way.:Enter this place.") == 2)
+		warp "ecl_in04",107,213;
+	close;
+}
+
+ecl_in04,108,215,0	script	Supreme Electronic Rope	111,{
+	mes "If you would like to go down, please press the bell~";
+	next;
+	if(select("Forget it.:Go down.") == 2)
+		warp "eclage",152,91;
+	close;
+}
+
+ecl_in04,105,216,0	script	Hiel's Workshop#pa0829	111,{
+	mes "^000099It's a workshop with lots of oddities.^000000";
+	close;
+}
+
+ecl_in04,109,215,2	script	Hiel#pa0829	621,{
+	mes "[Hiel]";
+	mes "It is said that the leaves from home tree have the length X with the average m and standard deviation of 4. If P(m<X<a)=0.3413 ... (Mumble mumble)";
+	next;
+	mes "^0000ffIt doesn't look like I'll understand anything he says. Let's get out of here.^000000";
+	close;
+}
+
+// For Eclage
+//============================================================
+function	script	F_Eclage_Traveler	{
+	if (checkquest(7411) > -1 && checkquest(7412) > -1 && checkquest(7413) > -1) {
+		cutin "minuel01.bmp",4;
+		donpcevent "Eclage Guard#tl01::OnEnable";
+		mes "[Eclage Guard]";
+		mes "Excuse me for a moment.";
+		mes "Is there anyone from Splendide here?";
+		next;
+		select("I am, but why?");
+		mes "[Eclage Guard]";
+		mes "Ah, you are?";
+		mes "There's someone who wants to see you. Do you have time right now?";
+		next;
+		mes "[Eclage Guard]";
+		mes "You don't have to worry. It's nothing suspicious or bad.";
+		mes "We just wanted to ask you about Splendide, so please spare your time for us.";
+		next;
+		mes "[Eclage Guard]";
+		mes "I'll guide you if it's okay.";
+		next;
+		switch(select("Sure. Let's go.:I don't have time for it right now...")) {
+		case 1: //missing
+			break;
+		case 2:
+			mes "[Eclage Guard]";
+			mes "Oh, is that right?";
+			mes "That's too bad.";
+			mes "But if you have some time later, please pay us a visit.";
+			next;
+			break;
+		}
+		mes "[Eclage Guard]";
+		mes "I'll be at the east side of the plaze near the gate.";
+		mes "Please, find me there.";
+		mes "I'll be looking forward to seeing you.";
+		erasequest 7411;
+		erasequest 7412;
+		erasequest 7413;
+		setquest 7414;
+		set ep14_2_tl,1;
+		donpcevent "Eclage Guard#tl01::OnDisable";
+		close2;
+		cutin "minuel01.bmp",255;
+		end;
+	}
+	return;
+}
+
+ecl_in01,32,52,4	script	Traveler Fome#tl01	515,3,3,{
+	if (ep14_2_tl == 0) {
+		if (checkquest(7411) == -1) {
+			mes "[Fome]";
+			mes "Come here and have a talk with us.";
+			mes "My name is Fome and I'm from the central region of Alpheim.";
+			mes "You are...";
+			next;
+			mes "[Fome]";
+			mes "Wait, let me guess!";
+			mes "You're a member of the famous Midgard expedition, right?!";
+			next;
+			select("Yes.:How did he know?");
+			mes "[Fome]";
+			mes "Well, it's simple.";
+			mes "There's no one who looks like you or dresses like you around Eclage.";
+			next;
+			mes "[Fome]";
+			mes "I heard the ways to Bifrost are blocked by a strange rift and soon, travelers who came here through the Hazy Forest started to appear.";
+			next;
+			mes "[Fome]";
+			mes "They are humans who came from Midgard passing through Jotunheim!";
+			mes "Seriously...I'm glad I came to Eclage.";
+			mes "I didn't expect to meet a person from Midgard!";
+			next;
+			mes "[Fome]";
+			mes "Eclage is crowded with travelers, and until recently, most of them were from Alpheim.";
+			mes "It's nice to see you. I was about to talk to you just now.";
+			next;
+			switch(select("Why is Eclage popular among travelers?:What is the main attraction of Eclage?")) {
+			case 1:
+			case 2: //missing
+				mes "[Fome]";
+				mes "Why does this place have so many travelers...?";
+				mes "First of all, I think it's due to the fact that you're able to communicate freely here since Eclage is with Bifrost.";
+				next;
+				mes "[Fome]";
+				mes "Thanks to Bifrost's will, everyone is able to communicate with no problem here just like you and I right now.";
+				next;
+				mes "[Fome]";
+				mes "Second, it's because Eclage is the end and the gateway of Alpheim.";
+				mes "It's the only way to get to Jotunheim.";
+				next;
+				mes "[Fome]";
+				mes "A great number of travelers who admire the unknown world come to Eclage.";
+				mes "Also, they want to see Bifrost, which connects Jotunheim and Alpheim, with their own eyes.";
+				next;
+				mes "[Fome]";
+				mes "Moreover, the biggest reason why Eclage is so crowded recently is...!!!";
+				next;
+				select("It is...?!");
+				emotion e_loud;
+				mes "[Fome]";
+				mes "A new Mayor Jun was born!";
+				next;
+				select("Whosa whatsits?");
+				mes "[Fome]";
+				mes "No, no, Mayor Jun. It's a Laphine name.";
+				mes "It's a...right, it means a 'king.'";
+				mes "The King is born!";
+				next;
+				mes "[Fome]";
+				mes "Although he is pretty old, he became a king.";
+				mes "As the king of Laphines, he is so beautiful.";
+				next;
+				select("When was that?");
+				mes "[Fome]";
+				mes "Mm? Maybe 10 years ago?";
+				mes "5 years ago? Or 15? Anyway, it's less than 100 years.";
+				next;
+				break;
+			}
+			setquest 7411;
+			callfunc "F_Eclage_Traveler";
+			mes "This traveler named Fome is going on forever about the king of Laphines.";
+			mes "It seems as if she doesn't care about others and is sinking into her own world, so it's hard to understand what she's talking about.";
+			mes "Let's talk to other travelers.";
+			close;
+		} else {
+			mes "[Fome]";
+			mes "Oh my, did I talk too much?";
+			mes "But you're really lucky.";
+			mes "If you tell them that you're here to congratulate on the birth of new Mayor Jun, you'll surely meet the great Kardui.";
+			next;
+			mes "[Fome]";
+			mes "Ah...how beautiful.";
+			mes "I heard some bad rumors but I don't believe in them at all~";
+			next;
+			mes "[Fome]";
+			mes "Ha, I almost went too far again.";
+			mes "Did you talk to Litrip and York?";
+			next;
+			mes "[Fome]";
+			mes "When it comes to Bifrost Tower, which is the most popular tourist attraction, Litrip knows the best!";
+			close;
+		}
+	} else if (ep14_2_tl == 1) {
+		mes "[Fome]";
+		mes "An Eclage Guard was looking for you just a minute ago, right?";
+		mes "I think he said he'll be waiting for you at the east gate. Don't you have to go?";
+		next;
+		mes "[Fome]";
+		mes "Since he was very polite and all, I'm sure it's something good.";
+		mes "Sure. The Laphines in Eclage are very generous to travelers.";
+		close;
+	} else {
+		mes "[Fome]";
+		mes "You seem very busy.";
+		mes "I heard so much about you from here and there.";
+		mes "I see that you're friends with Laphines already.";
+		close;
+	}
+OnTouch:
+	if (ep14_2_tl == 0 && checkquest(7411) == -1 && checkquest(7412) == -1 && checkquest(7413) == -1) {
+		mes "A group of travelers of Alpheim are having a conversation.";
+		emotion e_loud;
+		next;
+		if(select("Avoid them.:Join the group.") == 1) {
+			mes "They don't seem to care that much.";
+			close;
+		}
+		mes "When you approach, they stop talking for a second and make a seat for you.";
+		mes "Start a conversation.";
+		close;
+	}
+	end;
+}
+
+ecl_in01,32,51,6	script	Traveler Litrip#tl02	513,{
+	if (ep14_2_tl == 0) {
+		if (checkquest(7412) == -1) {
+			mes "[Litrip]";
+			mes "Oh, look at this strange traveler.";
+			mes "Come here. My name is Litrip.";
+			next;
+			mes "[Litrip]";
+			mes "You're from Mora?";
+			mes "You must have seen Bifrost Tower on the way then?";
+			next;
+			switch(select("I saw it from the outside.:I've gone inside the tower.")) {
+			case 1:
+				mes "[Litrip]";
+				mes "Really? That's too bad.";
+				mes "Well, but it's good to play it safe since there are frightful monsters inside the tower.";
+				mes "It's certainly better than losing your life by being rash.";
+				next;
+				break;
+			case 2:
+				mes "[Litrip]";
+				mes "I see. Wasn't it pretty crazy?";
+				mes "Once upon a time, It used to be a very nice observatory.";
+				next;
+				mes "[Litrip]";
+				mes "Although it's occupied by horrible monsters now.";
+				mes "Seeing that you went into the tower and came out unharmed, I can tell you're pretty skilled.";
+				next;
+				break;
+			}
+			mes "[Litrip]";
+			mes "There's a rumor that a suspicious alchemist resides on top of the tower.";
+			mes "No one knows why, but I heard he's been there for a good while.";
+			next;
+			mes "[Litrip]";
+			mes "If that alchemist is still alive, he could be a living history himself since the tower, the alchemist, and Bifrost have existed even before Eclage was founded.";
+			next;
+			mes "[Litrip]";
+			mes "A good number of people still challenge themselves to find the mysterious legend of Bifrost but so far, none of them succeeded.";
+			next;
+			select("What about Laphines?");
+			mes "[Litrip]";
+			mes "Hmm, Laphines?";
+			mes "For some reason, they're not interested in Bifrost Tower at all.";
+			mes "I think they perceive it just as a natural object.";
+			next;
+			mes "[Litrip]";
+			mes "They're actually more than capable of solving the mystery if they wanted to but I feel like they're just respecting the existence of Bifrost Tower.";
+			next;
+			mes "[Litrip]";
+			mes "However, they don't necessarily stop people from going into the tower, either. So I'm thinking maybe they're just not aware of it.";
+			mes "If you're curious, go challenge yourself and solve the mystery of the tower.";
+			next;
+			setquest 7412;
+			callfunc "F_Eclage_Traveler";
+			mes "[Litrip]";
+			mes "If you ever happen to solve the mystery of Bifrost Tower, let me be the first one to know about it.";
+			mes "You're strong enough to explore the tower.";
+			mes "I only got to the first floor. Haha.";
+			next;
+			mes "[Litrip]";
+			mes "Have you talked to other friends?";
+			mes "Isn't information the most important thing to a traveler?";
+			close;
+		} else {
+			mes "[Litrip]";
+			mes "It's not fun listening to my story only.";
+			mes "You should go talk to Fome and Chiba, too.";
+			next;
+			mes "[Litrip]";
+			mes "And Let me know if you ever solve the mystery of Bifrost Tower.";
+			mes "I'll be looking forward to hearing from you, hahaha.";
+			close;
+		}
+	} else if (ep14_2_tl == 1) {
+		mes "[Litrip]";
+		mes "It seems like Laphines have some official affairs to do with you.";
+		mes "Didn't they tell you to come to the east gate?";
+		mes "You should go.";
+		close;
+	} else {
+		mes "[Litrip]";
+		mes "Since the last time I saw you talking to the guard, I hear your name here and there.";
+		mes "Is it something important? You've become pretty famous here.";
+		close;
+	}
+}
+
+ecl_in01,35,51,2	script	Traveler Chiba#tl03	514,{
+	if (ep14_2_tl == 0) {
+		if (checkquest(7413) == -1) {
+			mes "[Chiba]";
+			mes "You're human from Midgard.";
+			mes "I'm Chiba.";
+			mes "As you can see, I'm a traveler just like you.";
+			next;
+			mes "[Chiba]";
+			mes "I think local area information is the most important when traveling.";
+			mes "You think so, too?";
+			next;
+			mes "[Chiba]";
+			mes "I heard there's a way to avoid a rift that is blocking Jotunheim...";
+			mes "Do people really travel through Hazy Forest?";
+			next;
+			switch(select("Yes.:By magic!")) {
+			case 1:
+				mes "[Chiba]";
+				mes "So it is.";
+				mes "That's how strong humans are, I guess.";
+				mes "When I was Mora, I heard there are many missing men in Hazy Forest...";
+				next;
+				break;
+			case 2:
+				mes "[Chiba]";
+				mes "Indeed... people who get to Mora first use magic to help others travel?";
+				mes "That's brilliant.";
+				next;
+				break;
+			}
+			mes "[Chiba]";
+			mes "Anyway it's true that there are active interactions thanks to you people.";
+			mes "I should be grateful for that.";
+			next;
+			mes "[Chiba]";
+			mes "Do you want to know something more interesting?";
+			mes "Everyone in Alpheim knows about it, but I'm sure you people have never heard about it.";
+			next;
+			mes "[Chiba]";
+			mes "Among Laphines, have you seen the taller ones with especially bright skin and gorgeous wings?";
+			next;
+			mes "[Chiba]";
+			mes "They're the 'Donas.' By the way, normal-looking Laphines are called 'Papang' in their language.";
+			mes "It sounds like some kind of a snack, but well, we should respect them.";
+			next;
+			mes "[Chiba]";
+			mes "The reason Donas are taller and gorgeous is because they're all candidates for Mayor.";
+			mes "That is, they all have a chance of becoming the king.";
+			next;
+			mes "[Chiba]";
+			mes "We're not talking about upper class or lower class here. They are classified according to their job.";
+			mes "It might not be important, but it's good to know about it as a foreigner.";
+			next;
+			mes "[Chiba]";
+			mes "Anyway, Donas have strong magical powers and they live longer. But since there are not many of them most of them are assigned to important positions.";
+			next;
+			mes "[Chiba]";
+			mes "The throne of the king of Laphines seems to be inherited by blood, but it isn't in reality.";
+			mes "Mayor Jun is known to emerge among the Donas but it's just exactly that.";
+			next;
+			mes "[Chiba]";
+			mes "He literally just emerges without any kind of a formal inheritance process.";
+			mes "Isn't it pretty interesting?";
+			next;
+			setquest 7413;
+			callfunc "F_Eclage_Traveler";
+			mes "[Chiba]";
+			mes "Try talking to the other travelers."; //custom
+			close;
+		} else {
+			mes "[Chiba]";
+			mes "Try talking to the other travelers."; //custom
+			close;
+		}
+	} else if (ep14_2_tl == 1) {
+		mes "[Chiba]";
+		mes "Wasn't there an Eclage Guard looking for you just now?";
+		mes "You'd better respect Laphines as much as possible in order to avoid any discord.";
+		mes "It's the basis of traveling.";
+		close;
+	} else {
+		mes "[Chiba]";
+		mes "So, you weren't a mere traveler after all.";
+		close;
+	}
+}
+
+ecl_in01,82,70,2	script	Eclage Guard#tl02	447,{
+	if (ep14_2_tl == 0) {
+		mes "[Eclage Guard]";
+		mes "Welcome to Eclage."; //custom
+		close;
+	} else if (ep14_2_tl == 1) {
+		cutin "minuel02.bmp",2;
+		mes "[Eclage Guard]";
+		mes "Oh, you are here!";
+		mes "May I escort take you to the one who wants to meet you?";
+		next;
+		switch(select("Sure. Let's go.:I don't have time for it right now...")) {
+		case 1:
+			mes "[Eclage Guard]";
+			mes "Please follow me then.";
+			erasequest 7414;
+			setquest 7415;
+			set ep14_2_tl,2;
+			close2;
+			warp "ecl_in03",244,89;
+			cutin "minuel02.bmp",255;
+			end;
+		case 2:
+			mes "[Eclage Guard]";
+			mes "Ah...is that right?";
+			mes "I'll wait then.";
+			next;
+			mes "[Eclage Guard]";
+			mes "Don't worry about me.";
+			mes "I'll just wait here as long as it takes.";
+			mes "Well, it's my job. Don't worry.";
+			close2;
+			cutin "minuel02.bmp",255;
+			end;
+		}
+	} else if (ep14_2_tl == 2) {
+		cutin "minuel01.bmp",2;
+		mes "[Eclage Guard]";
+		mes "I thought you sill had something to do.";
+		mes "May I guide you?";
+		next;
+		switch(select("Yes, please.:No, it's okay.")) {
+		case 1:
+			mes "[Eclage Guard]";
+			mes "Please follow me then.";
+			close2;
+			warp "ecl_in03",244,89;
+			cutin "minuel02.bmp",255;
+			end;
+		case 2:
+			mes "[Eclage Guard]";
+			mes "Is that right?";
+			mes "I see. Come find me whenever you need it.";
+			close2;
+			cutin "minuel02.bmp",255;
+			end;
+		}
+	} else if (ep14_2_tl == 3) {
+		cutin "minuel01.bmp",2;
+		mes "[Eclage Guard]";
+		mes "I see you pretty often.";
+		mes "I was notified in advance that the Chief of Staff requested for an audience.";
+		next;
+		if (checkquest(7416,PLAYTIME) < 2) {
+			mes "[Eclage Guard]";
+			mes "But I'm afraid it's too early.";
+			mes "I think you have to wait for a while.";
+			close2;
+			cutin "minuel02.bmp",255;
+			end;
+		}
+		mes "[Eclage Guard]";
+		mes "I see you pretty often.";
+		mes "I was notified in advance that the Chief of Staff requested for an audience.";
+		next;
+		mes "[Eclage Guard]";
+		mes "Since it's about time, should I lead you in now?";
+		next;
+		switch(select("Yes, please.:I'll come back later.")) {
+		case 1:
+			mes "[Eclage Guard]";
+			mes "Follow me, please.";
+			set ep14_2_tl,4;
+			close2;
+			warp "ecl_in03",58,72;
+			cutin "minuel02.bmp",255;
+			end;
+		case 2:
+			mes "[Eclage Guard]";
+			mes "Do as you wish although Mayor Jun might be upset if you keep him waiting for too long.";
+			close2;
+			cutin "minuel02.bmp",255;
+			end;
+		}
+	} else if (ep14_2_tl == 4) {
+		cutin "minuel01.bmp",2;
+		mes "[Eclage Guard]";
+		mes "May I escort you to the audience chamber?";
+		next;
+		switch(select("Yes, please.:No, it's okay.")) {
+		case 1:
+			mes "[Eclage Guard]";
+			mes "Follow me, please.";
+			close2;
+			warp "ecl_in03",58,72;
+			cutin "minuel02.bmp",255;
+			end;
+		case 2:
+			mes "[Eclage Guard]";
+			mes "Thank you.";
+			mes "I thought you were using me for teleportation since you're here so often.";
+			close2;
+			cutin "minuel02.bmp",255;
+			end;
+		}
+	} else if (ep14_2_tl == 5) {
+		if (checkquest(7418) == -1) {
+			cutin "minuel01.bmp",2;
+			mes "[Eclage Guard]";
+			mes "Eh, good to see you again.";
+			mes "We should have introduced ourselves earlier if we knew we would run into each other so often like this.";
+			next;
+			mes "[Minuel]";
+			mes "I'm Minuel.";
+			mes "It's such a common name. I don't even know what it means.";
+			mes "I think my parents just gave me a name that is easy on the ear.";
+			next;
+			mes "[Minuel]";
+			mes "Come to think of it, I heard the news.";
+			mes "You've decided to work in Eclage...";
+			next;
+			switch(select("It's just a rumor.:Do they have a job for me?")) {
+			case 1:
+				mes "[Minuel]";
+				mes "Eh? Really?";
+				mes "That's too bad. There was a suitable job for you.";
+				mes "Well, I understand.";
+				close2;
+				cutin "minuel02.bmp",255;
+				end;
+			case 2:
+				mes "[Minuel]";
+				mes "Actually I don't have any time for myself since I have to be here all the time.";
+				mes "Not only I, but most Laphines who are in this business are faced with that position, too.";
+				next;
+				mes "[Minuel]";
+				mes "So, we don't have any time to decorate our Yai.";
+				mes "Of course we could buy the materials. But just like any other consumers, we would like to gather them on our own.";
+				next;
+				mes "[Minuel]";
+				mes "Since you're free to go anywhere,";
+				mes "could you gather some decorations for Yai?";
+				next;
+				switch(select("Sure.:No.")) {
+				case 1:
+					mes "[Minuel]";
+					mes "Thank you.";
+					mes "You need to find";
+					mes "5 Horns of Hillslion, 5 Magical Powers, and 5 Horse's Hooves each.";
+					next;
+					mes "[Minuel]";
+					mes "I would like to decorate it with unpolished beauty.";
+					mes "You can get the materials by hunting the monsters near Splendide, where I'm not supoosed to go.";
+					next;
+					mes "[Minuel]";
+					mes "I've heard some rumors about Hillslions, and they seem to appear in Sapha's areas.";
+					mes "Their horns, Mystic Horns of Cornuses that live in the grasslands and something called Horse's Hooves.";
+					next;
+					mes "[Minuel]";
+					mes "I'm sure you would know more about those hooves than I do.";
+					mes "I'll be counting on you!";
+					setquest 7418;
+					close2;
+					cutin "minuel02.bmp",255;
+					end;
+				case 2:
+					mes "[Minuel]";
+					mes "Ha, do you really think so?";
+					mes "You will be coming here again.";
+					mes "Soon, in the near future. Hehehe~";
+					close2;
+					cutin "minuel02.bmp",255;
+					end;
+				}
+			}
+		}
+		mes "[Minuel]";
+		mes "I asked you for 5 Horns of Hillslion, 5 Mystic Horns, and 5 Horse's Hooves.";
+		mes "You'll be able to get Mystic Horns by catching Cornuses near Splendide.";
+		close;
+	}
+}
+
+ecl_in03,245,93,2	script	Chief of Staff#tl01	435,{
+	if (ep14_2_tl < 2) {
+		mes "[Chief of Staff]";
+		mes "Sorry, but no unauthorized entry is allowed here.";
+		close;
+	} else if (ep14_2_tl == 2) {
+		mes "[Chief of Staff]";
+		mes "Welcome to Eclage.";
+		mes "I ordered them to lead you here.";
+		next;
+		mes "[Shenime]";
+		mes "I'm in charge of the military supplies that are sent to the outpost of Splendide.";
+		mes "My name is Shenime.";
+		next;
+		mes "[Shenime]";
+		mes "Our supplies sent to Mora Village...";
+		mes "oww...I'm sorry. I've been having this headache recently...";
+		next;
+		mes "[Shenime]";
+		mes "Anyway, I've heard that there are people";
+		mes "who deliver our supplies to Splendide through Hazy Forest.";
+		next;
+		mes "[Shenime]";
+		mes "It's so good to see you in person.";
+		mes "People who are clever enough are already trying hard to build relationships with Eclage.";
+		next;
+		select("So, I'm not the first one?");
+		mes "[Shenime]";
+		mes "Yes, you're not...oww...";
+		mes "But it doesn't matter.";
+		mes "You humans are already doing so much for Splendide and us.";
+		next;
+		mes "[Shenime]";
+		mes "Oh, the reason I'm frowning is because of this headache.";
+		mes "Don't get me wrong.";
+		mes "Um...anyway, to go on with my story...";
+		next;
+		mes "[Shenime]";
+		mes "We are supposed to welcome you.";
+		mes "Should I get to the point now? I mean, the reason why I wanted to meet you.";
+		next;
+		mes "[Shenime]";
+		mes "As you know already, we're disconnected from Splendide due to the accident in Bifrost.";
+		mes "And for us Laphines, it's hard to go against the will of the forest and Bifrost.";
+		next;
+		mes "[Shenime]";
+		mes "I'm sure every fairy in Alpheim feels the same, too.";
+		mes "Anyway, I want to know what's going on in Splendide and Jotunheim nowadays.";
+		next;
+		mes "[Shenime]";
+		mes "I heard the battle against Manuk has recently calmed down to the point of a truce...";
+		mes "and it could have been that they didn't get supplies in time.";
+		next;
+		mes "You've answered Shenime's serious questions and describe the situation as far as you could remember.";
+		next;
+		select("Now that I think about it...");
+		mes "[Shenime]";
+		mes "What is it?";
+		mes "What you've told me is going to be very helpful.";
+		mes "Is there anything else you would like to talk about?";
+		next;
+		mes "["+strcharinfo(0)+"]";
+		mes "I was told that Sapha made Yggdrasil Tree sick,";
+		mes "and your side started a war in order to protect the tree...";
+		next;
+		mes "["+strcharinfo(0)+"]";
+		mes "...but what I know is a little bit different from that.";
+		mes "Apparently, the cause of the war seems to be the damage given to Yggdrasil Tree caused by Sapha's excessive mining, but...";
+		next;
+		mes "[Shenime]";
+		mes "Wait, stop there.";
+		next;
+		select("What's the matter?");
+		mes "[Shenime]";
+		mes "This war is like a holy war for us.";
+		mes "It's a war that we carry on upon our honor and dignity.";
+		next;
+		mes "[Shenime]";
+		mes "So whatever the truth you know is,";
+		mes "if you're not going to hold responsibility for the backlash it might bring,";
+		mes "don't say anything at all.";
+		next;
+		select("Why are you trying to hide the truth...");
+		mes "[Shenime]";
+		mes "This is a matter between Yggdrasil the world-ash and its protector.";
+		mes "Mayor Jun should be the one listening to your story, not me.";
+		next;
+		select("What?");
+		mes "[Shenime]";
+		mes "My work is done here.";
+		mes "What I'm saying is that I'm not the one to clear up your question.";
+		mes "I'll arrange a meeting with Mayor Jun for you.";
+		next;
+		mes "In the middle of the conversation, Shenime stopped talking and frowned as if he was having a headache again.";
+		mes "After massaging his head for a while, he looked much better and continued to go on.";
+		next;
+		mes "[Shenime]";
+		mes "Promise me that you will not tell anyone";
+		mes "about the truth that you believe.";
+		next;
+		if(select("No!:Yes, I promise.") == 1) {
+			mes "[Shenime]";
+			mes "You put me on the spot.";
+			mes "I don't want you to be the cause of friction.";
+			next;
+			mes "[Shenime]";
+			mes "Can't you just keep it to yourself before discussing the matter with Mayor Jun?";
+			next;
+			switch(select("No, I can't!:Fine, I won't tell anyone.")) {
+			case 1:
+				mes "[Shenime]";
+				mes "Oh well...";
+				mes "It's your loss...";
+				close;
+			case 2:
+				mes "[Shenime]";
+				mes "I see that you've made up your mind.";
+				next;
+				break;
+			}
+		}
+		mes "[Shenime]";
+		mes "I'll arrange a meeting to let Mayor Jun get to know you.";
+		mes "You need to wait a little bit. Please bear with us.";
+		next;
+		mes "[Shenime]";
+		mes "I'll notify the guard that brought you here.";
+		mes "Go find the guard after some time.";
+		mes "He will guide you.";
+		next;
+		mes "[Shenime]";
+		mes "Until then, I hope you have a good time.";
+		mes "I'll send you to the plaza.";
+		mes "By the way, the guard who is going to lead you will be at the east gate. Don't forget the time.";
+		erasequest 7415;
+		setquest 7416;
+		set ep14_2_tl,3;
+		close2;
+		warp "ecl_in01",47,28;
+		end;
+	} else if (ep14_2_tl == 3) {
+		if (checkquest(7416,PLAYTIME) < 2) {
+			mes "[Shenime]";
+			mes "You need to wait a little longer to see Mayor Jun.";
+			mes "He is pretty busy, so please bear with us.";
+			close;
+		}
+		mes "[Shenime]";
+		mes "There's another guard who was supposed to be guiding you...";
+		mes "I can't go anywhere right now.";
+		next;
+		mes "[Shenime]";
+		mes "There's a guard at the east side of the plaza near the gate.";
+		mes "I notified him already, so just ask him to guide you.";
+		close;
+	} else if (ep14_2_tl == 4) {
+		mes "[Shenime]";
+		mes "Did you tell Mayor Jun about what you think?";
+		mes "He should be the one to decide.";
+		next;
+		mes "[Shenime]";
+		mes "It seems like you haven't even met him yet. Ask the guard to guide you.";
+		close;
+	} else if (ep14_2_tl == 5) {
+		mes "[Shenime]";
+		mes "I've heard about you.";
+		mes "You've decided to work for Eclage?";
+		next;
+		mes "[Shenime]";
+		mes "At the starting point of Bifrost, there should be a messenger stamping his feet.";
+		next;
+		mes "[Shenime]";
+		mes "It's a messenger that we sent in an effort to contact Splendide regularly,";
+		mes "but I think it's still difficult to do so.";
+		next;
+		mes "[Shenime]";
+		mes "If you could help us with that, wouldn't other Laphines think better of you?";
+		close;
+	}
+}
+
+ecl_in03,41,90,2	script	Mayor Jun Kardui#tl01	624,{
+	if (ep14_2_tl < 4) {
+		mes "[Kardui]";
+		mes "Mmm...";
+		mes "I don't know who you are, but could you wait until I call you?";
+		mes "I'll have to meet you some day, but now is not the right time.";
+		cutin "kardui01.bmp",1;
+		close2;
+		cutin "kardui01.bmp",255;
+		end;
+	} else if (ep14_2_tl == 4) {
+		mes "[Kardui]";
+		mes "Welcome to Eclage, stranger.";
+		mes "...this was a popular way of greeting each other, but I guess it's not fun anymore.";
+		cutin "kardui01.bmp",1;
+		next;
+		mes "[Kardui]";
+		mes "Anyway, you who came from a long way away";
+		mes "and reconized by the guardian.";
+		mes "There is a truth that you would like to tell me?";
+		next;
+		mes "[Kardui]";
+		mes "If that's the case, you will be very busy from now on.";
+		next;
+		select("What do you mean?");
+		mes "[Kardui]";
+		mes "You have to do a lot of work in order to convince me, the elders, and many other Laphines.";
+		next;
+		mes "[Kardui]";
+		mes "Of couse I could trust everything you say,";
+		mes "but will other Laphines accept a Mayor Jun who is swayed by a word of a foreigner?";
+		next;
+		cutin "kardui03.bmp",1;
+		mes "[Kardui]";
+		mes "Especially when that Mayor Jun is me. Ah...";
+		next;
+		cutin "kardui01.bmp",1;
+		mes "[Kardui]";
+		mes "Don't you understand?";
+		mes "Here, in Eclage, You have to get more recognition from Laphines.";
+		next;
+		if(select("Do I have to make a contribution?:It's about Yggdrasil!") == 1) {
+			mes "[Kardui]";
+			mes "See, you understood it right.";
+			next;
+			select("It's about Yggdrasil!");
+		}
+		cutin "kardui04.bmp",1;
+		mes "[Kardui]";
+		mes "Um.";
+		mes "I know.";
+		next;
+		mes "[Kardui]";
+		mes "You don't have to make a face.";
+		mes "No matter what I look like to you, I am the history and the spirit of Laphines, and also the protector of Yggdrasil.";
+		next;
+		mes "[Kardui]";
+		mes "Do you think I, who inherited the will of Yggdrasil, don't know anything?";
+		mes "I don't blame you since it is ignorance.";
+		next;
+		mes "[Kardui]";
+		mes "The war of Jotunheim will soon be over.";
+		mes "And it will happen not by constraint, but as a result of mutual agreement.";
+		next;
+		cutin "kardui01.bmp",1;
+		mes "[Kardui]";
+		mes "So, stranger,";
+		mes "don't worry about it and do you want to work with me for Eclage?";
+		next;
+		select("Then why do you make war and disregard the truth?");
+		cutin "kardui02.bmp",1;
+		mes "[Kardui]";
+		mes "Hmm...";
+		mes "I'll tell you when we get closer to each other.";
+		mes "I'm not obligated to talk about this important subject with a person I just met.";
+		next;
+		cutin "kardui01.bmp",1;
+		mes "[Kardui]";
+		mes "For now, I will tell the administrative ruler, the elders, and all the guards";
+		mes "about you,";
+		mes "and you will enjoy all the rights in Eclage as a person who works for the king.";
+		next;
+		select("Just hire a worker then!");
+		mes "[Kardui]";
+		mes "It's a part of building relationships with me, the king of a race. You don't like it?";
+		mes "If that's the case, I guess there's no friendship between the two of us.";
+		next;
+		select("What do you mean 'the two of us'?");
+		mes "[Kardui]";
+		mes "Us?";
+		mes "Umm...";
+		mes "Friends who share their secrets from now on?";
+		next;
+		mes "[Kardui]";
+		mes "...Haha...wasn't it funny?";
+		mes "What's up with that face.";
+		mes "Anyway, I allow you to visit anytime.";
+		next;
+		cutin "kardui04.bmp",1;
+		mes "[Kardui]";
+		mes "However, if you don't meet my expectation, you won't get anything.";
+		mes "I'll be looking forward to seeing you, stranger who will be my friend.";
+		erasequest 7416;
+		setquest 7417;
+		set ep14_2_tl,5;
+		close2;
+		cutin "kardui01.bmp",255;
+		end;
+	} else if (ep14_2_tl == 5) {
+		mes "[Kardui]";
+		mes "Now, you who work for the king!";
+		mes "Work your fingers to the bone for me!";
+		next;
+		cutin "kardui04.bmp",1;
+		mes "[Kardui]";
+		mes "...It's a joke.";
+		mes "I truly want you to become an important figure in Eclage.";
+		mes "Even if you don't, I want you to be recognized as a harmless person who gives benefit to Eclage.";
+		next;
+		mes "[Kardui]";
+		mes "It's going to be tough, but think of it as having insurance.";
+		mes "Some day, a person who remembers your name will be a great help to you.";
+		close2;
+		cutin "kardui01.bmp",255;
+		end;
+	}
+}
+
+ecl_in01,31,49,6	script	Eclage Guard#tl01	447,{
+	mes "[Eclage Guard]";
+	mes "Oh, I should hurry and go back to where I was.";
+	mes "Excuse me.";
+	close;
+OnInit:
+OnDisable:
+	disablenpc "Eclage Guard#tl01";
+	end;
+OnEnable:
+	enablenpc "Eclage Guard#tl01";
+	end;
+}
+
+ecl_fild01,205,86,4	script	Eclage Messenger Roy#tl	461,{
+	if (ep14_2_tl < 5) {
+		mes "[Roy]";
+		mes "I can make it to Mora Village.";
+		mes "But how can I go through Hazy Forest? All alone?";
+		mes "...Ah... I'm just feeling sorry for myself, so just continue on your way.";
+		close;
+	} else {
+		if (checkquest(7419) == -1) {
+			mes "[Roy]";
+			mes "It's hard.";
+			mes "It really is hard.";
+			mes "The more I think about it, I feel like Shenime has a nasty temper.";
+			emotion e_gasp;
+			next;
+			mes "[Roy]";
+			mes "You, who appeared in this time of crisis.";
+			mes "You, who went through Hazy Forest Maze... Are you the guidance of god? Or a blessing from god?";
+			next;
+			mes "[Roy]";
+			mes "I guess I have no other choice.";
+			mes "They say Laphines are nothing without their pride, but since I value my life over pride,";
+			mes "can I ask you a favor?";
+			next;
+			switch(select("What is it?:No.")) {
+			case 1:
+				mes "[Roy]";
+				mes "It's something difficult for Laphines, but for humans, it's very easy.";
+				mes "That is, brining the news from Splendide!";
+				next;
+				mes "[Roy]";
+				mes "I should take care of it but...";
+				mes "my magical powers are not all that great.";
+				next;
+				mes "[Roy]";
+				mes "...well, you don't need to know the details!";
+				mes "You just need to collect mails from the contact officer in Splendide.";
+				next;
+				mes "[Roy]";
+				mes "There's nothing confidential, so you can do it, too.";
+				mes "Bringing one mail. I'm sure it's easy for you.";
+				next;
+				switch(select("Leave it to me!:I don't want to.")) {
+				case 1:
+					mes "[Roy]";
+					mes "Good!";
+					mes "Go to Splendide and meet the contact officer!";
+					mes "Collect mails that are not confidential and could be a love letter to someone!";
+					mes "and bring them to me, please.";
+					setquest 7419;
+					next;
+					mes "[Roy]";
+					mes "Isn't that easy?";
+					mes "I'll be standing here and waiting for you to bring me that mail.";
+					close;
+				case 2:
+					mes "[Roy]";
+					mes "What? You're saying no after making me talk all this time?";
+					mes "....Well, things happen.";
+					mes "But you'll come back. So I'm not worried.";
+					next;
+					mes "[Roy]";
+					mes "Hehe. I knew it.";
+					mes "From the moment they picked me for this job,";
+					mes "everything is in 'the big invisible hand!!'";
+					close;
+				}
+			case 2:
+				mes "[Roy]";
+				mes "Ah...";
+				mes "It took you less than a second to say no, how clear is that.";
+				mes "Now, I'll erase the memory of this very moment!";
+				next;
+				mes "[Roy]";
+				mes "So that I could ask you again with a renewed mind.";
+				mes "Ahahahah...ha...hahha..hahaa..";
+				close;
+			}
+		}
+		mes "[Roy]";
+		mes "Let me explain again.";
+		mes "Go to Splendide and meet the contact officer!";
+		mes "Collect mails that are not confidential and could be a love letter to someone!";
+		mes "and bring them to me, please.";
+		close;
+	}
+}
+
+eclage,112,40,4	script	Eclage Guard Leo#tl	461,{
+	if (ep14_2_tl < 5) {
+		mes "[Leo]";
+		mes "Welcome to Eclage, the capital of Laphines and a gateway to Alpheim.";
+		mes "I hope you enjoy your trip.";
+		close;
+	} else {
+		if (checkquest(7420) == -1) {
+			mes "[Leo]";
+			mes "Hi, how are you?";
+			emotion e_gasp;
+			next;
+			mes "[Leo]";
+			mes "How are you, really!";
+			next;
+			mes "[Leo]";
+			mes ".....";
+			next;
+			switch(select("Does he want something?:It's a strange fairy!")) {
+			case 1:
+				mes "[Leo]";
+				mes "Mayor Jun told us";
+				mes "that you would do anything for Laphines and Eclage.";
+				next;
+				mes "[Leo]";
+				mes "In order to take care of the urgent matter...";
+				next;
+				switch(select("No, I refuse!:What do you want me to do?")) {
+				case 1:
+					mes "[Leo]";
+					mes "Although you have all the rights to say no, this is what I get...";
+					mes "I understand.";
+					close;
+				case 2:
+					mes "[Leo]";
+					mes "It's nothing more than a request for Pinguicula's pickled fruits and Luciola's honey jam,";
+					mes "which are specialties of Splendide...";
+					next;
+					mes "[Leo]";
+					mes "I know it's something personal...but Hazy Forest is such a huge obstacle...";
+					mes "so I couldn't help but...";
+					next;
+					select("You said it's something urgent!!!");
+					mes "[Leo]";
+					mes "I feel like I might die if I don't eat them!!!";
+					mes "What's more urgent than this?!!?!?";
+					next;
+					mes "[Leo]";
+					mes "You visit Splendide pretty often anyway!";
+					mes "On your way back, just carry one under your arm, another in your hand, please~";
+					mes "I won't ask you anything like this ever again!";
+					next;
+					mes "[Leo]";
+					mes "So...is that yes?";
+					mes "I need 3 jars of Pinguicula's pickled fruits and another 3 jars of Luciola's honey jam~";
+					mes "They are sold inside the base of Splendide.";
+					setquest 7420;
+					next;
+					mes "[Leo]";
+					mes "You might need Splendide Coins to buy pickled fruits and honey jam.";
+					mes "You could earn those coins if you work in Splendide, so...hehe..........";
+					next;
+					mes "[Leo]";
+					mes "Helping out in Splendide is eventually helping Eclage, too.";
+					mes "Now, go for it!";
+					close;
+				}
+			case 2:
+				mes "[Leo]";
+				mes "Oh...no. I'm not a weird Laphine.";
+				mes "You got me wrong. It's a misunderstanding...";
+				close;
+			}
+		}
+		mes "[Leo]";
+		mes "I need 3 jars of Pinguicula's pickled fruits and another 3 jars of Luciola's honey jam~";
+		mes "They are specialties of the base of Splendide.";
+		mes "I'll be counting on you!";
+		close;
+	}
+}
+
+ecl_in03,245,54,2	script	Working Laphine	439,{	//Laphine on official duty#tl01
+	mes "[Working Laphine]";
+	mes "This is the office area designated for official business.";
+	mes "You're not supposed to be here.";
+	close;
+}
+
+ecl_in03,244,57,4	script	Resting Laphine#tl01	440,{
+	mes "Two Laphines from the upper class are talking about something.";
+	mes "One of them seems to be working and very annoyed.";
+	mes "As if they were aware of my stare, they waved me away with a show of irritation.";
+	close;
+}
+
+ecl_in02,98,32,2	script	Eclage Guard#tl1b	461,{
+	mes "[Eclage Guard]";
+	mes "This the prison where we put criminals.";
+	mes "No outsiders can enter.";
+	close;
+}
+
+eclage,274,294,4	script	Conversing Laphine	436,{	//Laphines in a conversation#tl02
+	mes "A female Laphine and a male Laphine are talking about something.";
+	mes "But they stopped talking as soon as they saw me.";
+	mes "I think I've interrupted the conversation.";
+	close;
+}
+
+eclage,275,294,2	script	Eclage Resident#tl02	445,{
+	mes "[Male Laphine]";
+	mes "You're visiting Eclage?";
+	mes "I hope you have a good time here.";
+	close;
+}
+
+eclage,307,237,0	script	Normal Yai#tllb	844,{
+	mes "This is a Laphine's Yai.";
+	mes "The door is locked shut.";
+	cutin "avn_labo.bmp",4;
+	close2;
+	cutin "avn_labo.bmp",255;
+	end;
+}
+
+// Unknown
+//============================================================
+ecl_fild01,173,95,4	script	Diary Frog No. 30#worm	614,{
+	mes "[Diary Frog No. 30]";
+	mes "As you can see, I am a broken Diary Frog.";
+	mes "Professor Worm threw me out really hard all the way out here.";
+	mes "I didn't even do anything wrong!";
+	close;
+}
+
+eclage,156,56,0	script	Residence Entrance	844,{}

+ 3 - 0
npc/re/scripts_athena.conf

@@ -10,6 +10,7 @@ npc: npc/re/cities/alberta.txt
 npc: npc/re/cities/brasilis.txt
 npc: npc/re/cities/dewata.txt
 npc: npc/re/cities/dicastes.txt
+npc: npc/re/cities/eclage.txt
 npc: npc/re/cities/izlude.txt
 npc: npc/re/cities/jawaii.txt
 npc: npc/re/cities/malangdo.txt
@@ -25,6 +26,7 @@ npc: npc/re/guides/guides_brasilis.txt
 npc: npc/re/guides/guides_comodo.txt
 npc: npc/re/guides/guides_dewata.txt
 npc: npc/re/guides/guides_dicastes.txt
+npc: npc/re/guides/guides_eclage.txt
 npc: npc/re/guides/guides_einbroch.txt
 npc: npc/re/guides/guides_geffen.txt
 npc: npc/re/guides/guides_gonryun.txt
@@ -98,6 +100,7 @@ npc: npc/re/quests/quests_13_1.txt
 npc: npc/re/quests/quests_brasilis.txt
 npc: npc/re/quests/quests_dewata.txt
 npc: npc/re/quests/quests_dicastes.txt
+npc: npc/re/quests/quests_eclage.txt
 npc: npc/re/quests/quests_izlude.txt
 npc: npc/re/quests/quests_lighthalzen.txt
 npc: npc/re/quests/quests_malangdo.txt

+ 3 - 2
npc/re/warps/cities/eclage.txt

@@ -3,19 +3,20 @@
 //===== By: ==================================================
 //= Chilly
 //===== Current Version: =====================================
-//= 1.0
+//= 1.0a
 //===== Compatible With: =====================================
 //= rAthena SVN
 //===== Description: =========================================
 //= Warp Points for Eclage
 //===== Additional Comments: =================================
 //= 1.0 First Version.
+//= 1.0a Disabled quest warp. [Euphy]
 //============================================================
 
 // Town Warps
 bif_fild02,292,351,0	warp	eclage_field0001	1,1,ecl_fild01,205,74
 ecl_fild01,207,72,0	warp	eclage_field0002	1,1,bif_fild02,294,349
-ecl_fild01,97,320,0	warp	eclage_field0003	1,1,eclage,100,28
+//ecl_fild01,97,320,0	warp	eclage_field0003	1,1,eclage,100,28
 eclage,98,26,0	warp	eclage_field0004	1,1,ecl_fild01,97,317
 eclage,299,309,0	warp	eclage_field0005	1,1,ecl_in01,47,11
 ecl_in01,47,8,0	warp	eclage_field0006	1,1,eclage,297,307

+ 1 - 1
sql-files/item_db_re.sql

@@ -6265,7 +6265,7 @@ REPLACE INTO `item_db_re` VALUES (13075,'Kurenai','Kurenai',4,5000,NULL,700,'130
 REPLACE INTO `item_db_re` VALUES (13076,'Raksasa_Dagger','Nachal Sword',4,40000,NULL,600,'120:100',NULL,1,1,0x02000000,7,2,2,3,'110',1,1,'bonus bInt,3;',NULL,NULL);
 #13077,
 REPLACE INTO `item_db_re` VALUES (13078,'Mikatsuki','Mikacheuki',4,40000,NULL,600,'50:120',NULL,1,1,0x02000000,7,2,2,4,'100',1,1,NULL,NULL,NULL);
-13079,Metal_Dagger,Metal Dagger,4,20,,0,55,0,,1,0x02021040,7,2,2,3,1,1,1,{}
+REPLACE INTO `item_db_re` VALUES (13079,'Metal_Dagger','Metal Dagger',4,20,NULL,0,'55',0,NULL,1,0x02021040,7,2,2,3,'1',1,1,NULL,NULL,NULL);
 #
 REPLACE INTO `item_db_re` VALUES (13092,'RWC_Memory_Knife','RWC Memory Knife',4,1000,500,650,'50',0,1,1,0x02800075,15,2,2,3,'1',1,1,'bonus bBaseAtk,20*(getrefine()/3); bonus bMatk,20*(getrefine()/3); bonus4 bAutoSpell,"BS_WEAPONPERFECT",1,50,0; if(getrefine()>=9) set .@i,1; if(getrefine()>=6){ set .@rate,5*(.@i+1); bonus2 bAddRace,RC_Boss,.@rate; bonus2 bAddRace,RC_NonBoss,.@rate; bonus2 bMagicAddRace,RC_Boss,.@rate; bonus2 bMagicAddRace,RC_NonBoss,.@rate; }',NULL,NULL);
 # Revolvers

+ 1 - 1
src/common/mmo.h

@@ -100,7 +100,7 @@
 #define MAX_GUILDSKILL	15 // increased max guild skills because of new skills [Sara-chan]
 #define MAX_GUILDLEVEL 50
 #define MAX_GUARDIANS 8	//Local max per castle. [Skotlex]
-#define MAX_QUEST_DB 2500 //Max quests that the server will load
+#define MAX_QUEST_DB 2700 //Max quests that the server will load
 #define MAX_QUEST_OBJECTIVES 3 //Max quest objectives for a quest
 
 // for produce

+ 51 - 5
src/map/skill.c

@@ -553,6 +553,7 @@ int skillnotok (uint16 skill_id, struct map_session_data *sd)
 		case AL_WARP:
 		case RETURN_TO_ELDICASTES:
 		case ALL_GUARDIAN_RECALL:
+		case ECLAGE_RECALL:
 			if(map[m].flag.nowarp) {
 				clif_skill_teleportmessage(sd,0);
 				return 1;
@@ -561,6 +562,7 @@ int skillnotok (uint16 skill_id, struct map_session_data *sd)
 		case AL_TELEPORT:
 		case SC_FATALMENACE:
 		case SC_DIMENSIONDOOR:
+		case ALL_ODINS_RECALL:
 			if(map[m].flag.noteleport) {
 				clif_skill_teleportmessage(sd,0);
 				return 1;
@@ -5475,6 +5477,7 @@ int skill_castend_nodamage_id (struct block_list *src, struct block_list *bl, ui
 	case SR_GENTLETOUCH_ENERGYGAIN:
 	case GN_CARTBOOST:
 	case KO_MEIKYOUSISUI:
+	case ALL_ODINS_POWER:
 		clif_skill_nodamage(src,bl,skill_id,skill_lv,
 			sc_start(src,bl,type,100,skill_lv,skill_get_time(skill_id,skill_lv)));
 		break;
@@ -6233,6 +6236,7 @@ int skill_castend_nodamage_id (struct block_list *src, struct block_list *bl, ui
 		break;
 
 	case AL_TELEPORT:
+	case ALL_ODINS_RECALL:
 		if(sd)
 		{
 			if (map[bl->m].flag.noteleport && skill_lv <= 2) {
@@ -6255,7 +6259,7 @@ int skill_castend_nodamage_id (struct block_list *src, struct block_list *bl, ui
 			}
 
 			clif_skill_nodamage(src,bl,skill_id,skill_lv,1);
-			if( skill_lv == 1 )
+			if( skill_lv == 1 && skill_id != ALL_ODINS_RECALL )
 				clif_skill_warppoint(sd,skill_id,skill_lv, (unsigned short)-1,0,0,0);
 			else
 				clif_skill_warppoint(sd,skill_id,skill_lv, (unsigned short)-1,sd->status.save_point.map,0,0);
@@ -8761,26 +8765,32 @@ int skill_castend_nodamage_id (struct block_list *src, struct block_list *bl, ui
 		}
 		break;
 
-
 	case RETURN_TO_ELDICASTES:
 	case ALL_GUARDIAN_RECALL:
+	case ECLAGE_RECALL:
 		if( sd )
 		{
 			short x, y; // Destiny position.
 			unsigned short mapindex;
 
-			if( skill_id == RETURN_TO_ELDICASTES)
+			if ( skill_id == RETURN_TO_ELDICASTES )
 			{
 				x = 198;
 				y = 187;
 				mapindex  = mapindex_name2id(MAP_DICASTES);
 			}
-			else
+			else if ( skill_id == ALL_GUARDIAN_RECALL )
 			{
 				x = 44;
 				y = 151;
 				mapindex  = mapindex_name2id(MAP_MORA);
 			}
+			else if ( skill_id == ECLAGE_RECALL )
+			{
+				x = 47;
+				y = 31;
+				mapindex  = mapindex_name2id("ecl_in01");
+			}
 
 			if(!mapindex)
 			{ //Given map not found?
@@ -8792,6 +8802,41 @@ int skill_castend_nodamage_id (struct block_list *src, struct block_list *bl, ui
 		}
 		break;
 
+	case ECL_SNOWFLIP:
+	case ECL_PEONYMAMY:
+	case ECL_SADAGUI:
+	case ECL_SEQUOIADUST:
+		if ( skill_id == ECL_SNOWFLIP )
+		{
+			status_change_end(bl, SC_SLEEP, INVALID_TIMER);
+			status_change_end(bl, SC_BLEEDING, INVALID_TIMER);
+			status_change_end(bl, SC_BURNING, INVALID_TIMER);
+			status_change_end(bl, SC_DEEPSLEEP, INVALID_TIMER);
+		}
+		else if ( skill_id == ECL_PEONYMAMY )
+		{
+			status_change_end(bl, SC_FREEZE, INVALID_TIMER);
+			status_change_end(bl, SC_FREEZING, INVALID_TIMER);
+			status_change_end(bl, SC_CRYSTALIZE, INVALID_TIMER);
+		}
+		else if ( skill_id == ECL_SADAGUI )
+		{
+			status_change_end(bl, SC_STUN, INVALID_TIMER);
+			status_change_end(bl, SC_CONFUSION, INVALID_TIMER);
+			status_change_end(bl, SC_HALLUCINATION, INVALID_TIMER);
+			status_change_end(bl, SC_FEAR, INVALID_TIMER);
+		}
+		else if ( skill_id == ECL_SEQUOIADUST )
+		{
+			status_change_end(bl, SC_STONE, INVALID_TIMER);
+			status_change_end(bl, SC_POISON, INVALID_TIMER);
+			status_change_end(bl, SC_CURSE, INVALID_TIMER);
+			status_change_end(bl, SC_BLIND, INVALID_TIMER);
+			status_change_end(bl, SC_ORCISH, INVALID_TIMER);
+		}
+		clif_skill_nodamage(src,bl,skill_id,skill_lv,1);
+		break;
+
 	case GM_SANDMAN:
 		if( tsc ) {
 			if( tsc->opt1 == OPT1_SLEEP )
@@ -10577,9 +10622,10 @@ int skill_castend_map (struct map_session_data *sd, uint16 skill_id, const char
 	switch(skill_id)
 	{
 	case AL_TELEPORT:
+	case ALL_ODINS_RECALL:
 		if(strcmp(map,"Random")==0)
 			pc_randomwarp(sd,CLR_TELEPORT);
-		else if (sd->menuskill_val > 1) //Need lv2 to be able to warp here.
+		else if (sd->menuskill_val > 1 || skill_id == ALL_ODINS_RECALL) //Need lv2 to be able to warp here.
 			pc_setpos(sd,sd->status.save_point.map,sd->status.save_point.x,sd->status.save_point.y,CLR_TELEPORT);
 		break;
 

+ 1 - 0
src/map/status.c

@@ -1574,6 +1574,7 @@ int status_check_skilluse(struct block_list *src, struct block_list *target, uin
 				return 0;
 			break;
 		case AL_TELEPORT:
+		case ALL_ODINS_POWER:
 			//Should fail when used on top of Land Protector [Skotlex]
 			if (src && map_getcell(src->m, src->x, src->y, CELL_CHKLANDPROTECTOR)
 				&& !(status->mode&MD_BOSS)