Browse Source

Merge branch 'master' of https://github.com/rathena/rathena

aleos89 10 years ago
parent
commit
ee6e47b7c2

+ 41 - 15
db/quest_db.txt

@@ -77,6 +77,28 @@
 1192,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"
 1193,0,0,0,0,0,0,0,"Get Rid of Bakonawa"
 
 
+// 2011 X-Mas Event
+1194,0,0,0,0,0,0,0,"Look out the window, Cheers for Raccoon Hurray team!"
+1195,0,0,0,0,0,0,0,"Look out the window, Cheers for Raccoon Hurray team!"
+1196,0,0,0,0,0,0,0,"Look out the window, Cheers for Raccoon Hurray team!"
+1197,0,0,0,0,0,0,0,"Look out the window, Cheers for Raccoon Hurray team!"
+1198,0,0,0,0,0,0,0,"Look out the window, Cheers for Raccoon Hurray team!"
+1199,0,0,0,0,0,0,0,"Look out the window, Cheers for Raccoon Hurray team!"
+1200,0,0,0,0,0,0,0,"Look out the window, Cheers for Raccoon Hurray team!"
+1201,0,0,0,0,0,0,0,"Look out the window, Cheers for Raccoon Hurray team!"
+1202,0,0,0,0,0,0,0,"Look out the window, Cheers for Raccoon Hurray team!"
+1203,0,0,0,0,0,0,0,"Look out the window, Cheers for Raccoon Hurray team!"
+1204,0,0,0,0,0,0,0,"Look out the window, Cheers for Raccoon Hurray team!"
+1205,0,0,0,0,0,0,0,"Look out the window, Cheers for Raccoon Hurray team!"
+1206,0,0,0,0,0,0,0,"Look out the window, Cheers for Raccoon Hurray team!"
+1207,0,0,0,0,0,0,0,"Look out the window, Cheers for Raccoon Hurray team!"
+1208,0,0,0,0,0,0,0,"Look out the window, Cheers for Raccoon Hurray team!"
+1209,0,0,0,0,0,0,0,"Look out the window, Cheers for Raccoon Hurray team!"
+1210,0,0,0,0,0,0,0,"Look out the window, Cheers for Raccoon Hurray team!"
+1211,0,0,0,0,0,0,0,"Look out the window, Cheers for Raccoon Hurray team!"
+1212,0,0,0,0,0,0,0,"Look out the window, Cheers for Raccoon Hurray team!"
+1213,0,0,0,0,0,0,0,"Look out the window, Cheers for Raccoon Hurray team!"
+
 // Find Professor Worm's Memory
 // Find Professor Worm's Memory
 1214,0,0,0,0,0,0,0,"Getting back 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"
 1215,0,0,0,0,0,0,0,"Getting back Professor Worm's memory"
@@ -599,7 +621,7 @@
 4229,82800,0,0,0,0,0,0,"Devil in the Cave"
 4229,82800,0,0,0,0,0,0,"Devil in the Cave"
 
 
 4254,0,0,0,0,0,0,0,"Fairy with a stomache"
 4254,0,0,0,0,0,0,0,"Fairy with a stomache"
-4255,0,0,0,0,0,0,0,"Revenge!"
+4255,0,2363,20,0,0,0,0,"Revenge!"
 4256,0,0,0,0,0,0,0,"An accomplice?"
 4256,0,0,0,0,0,0,0,"An accomplice?"
 4257,0,0,0,0,0,0,0,"Conspiracy"
 4257,0,0,0,0,0,0,0,"Conspiracy"
 4258,0,0,0,0,0,0,0,"Eirinn"
 4258,0,0,0,0,0,0,0,"Eirinn"
@@ -610,6 +632,8 @@
 4263,0,0,0,0,0,0,0,"Counteroffensive (1)"
 4263,0,0,0,0,0,0,0,"Counteroffensive (1)"
 4264,0,0,0,0,0,0,0,"Counteroffensive (2)"
 4264,0,0,0,0,0,0,0,"Counteroffensive (2)"
 4265,0,0,0,0,0,0,0,"Bookshelf use"
 4265,0,0,0,0,0,0,0,"Bookshelf use"
+4266,0,0,0,0,0,0,0,"????? ??"
+4267,0,0,0,0,0,0,0,"????? ??"
 //4303,0,0,0,0,0,0,0,""
 //4303,0,0,0,0,0,0,0,""
 //4304,0,0,0,0,0,0,0,""
 //4304,0,0,0,0,0,0,0,""
 //4305,0,0,0,0,0,0,0,""
 //4305,0,0,0,0,0,0,0,""
@@ -1225,15 +1249,15 @@
 7426,0,0,0,0,0,0,0,"A rumor about the King 4"
 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!"
 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"
 7428,0,0,0,0,0,0,0,"Yai of the wild"
-7429,0,0,0,0,0,0,0,"Wild recent trend!"
+7429,82800,0,0,0,0,0,0,"Wild recent trend!"
 7430,0,0,0,0,0,0,0,"Deliveryman that runs through space"
 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"
+7431,82800,0,0,0,0,0,0,"A mailman never rests!"
+7432,0,2363,5,2364,5,0,0,"The troublemakers in the land of blooming flowers"
+7433,82800,0,0,0,0,0,0,"Need constant guidance"
 
 
 // Twins and Scholar of Magics
 // Twins and Scholar of Magics
 7434,0,0,0,0,0,0,0,"Kardui's big brother"
 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"
+7435,180,0,0,0,0,0,0,"Time for reading the letter"
 7436,0,0,0,0,0,0,0,"Avant the Scholar of Magics"
 7436,0,0,0,0,0,0,0,"Avant the Scholar of Magics"
 7437,0,0,0,0,0,0,0,"Shenime's favor"
 7437,0,0,0,0,0,0,0,"Shenime's favor"
 7438,0,0,0,0,0,0,0,"Secret sponsorship"
 7438,0,0,0,0,0,0,0,"Secret sponsorship"
@@ -1637,7 +1661,7 @@
 9256,0,0,0,0,0,0,0,"Examining a messed up table"
 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"
 9257,0,0,0,0,0,0,0,"Examining a foreign object"
 9258,0,0,0,0,0,0,0,"Field examination results"
 9258,0,0,0,0,0,0,0,"Field examination results"
-9259,0,0,0,0,0,0,0,"Confirming Cruyan's statements"
+9259,0,2363,5,2364,30,0,0,"Confirming Cruyan's statements"
 9260,0,0,0,0,0,0,0,"Survey investigation notes"
 9260,0,0,0,0,0,0,0,"Survey investigation notes"
 9262,0,0,0,0,0,0,0,"Mystery Robbery Incident 16"
 9262,0,0,0,0,0,0,0,"Mystery Robbery Incident 16"
 
 
@@ -2040,7 +2064,7 @@
 11308,0,0,0,0,0,0,0,"Nurse at Port Malaya-25"
 11308,0,0,0,0,0,0,0,"Nurse at Port Malaya-25"
 11309,0,2327,1,0,0,0,0,"Nurse at Port Malaya-26"
 11309,0,2327,1,0,0,0,0,"Nurse at Port Malaya-26"
 
 
-11310,0,0,0,0,0,0,0,"Eclage's Entrance"
+11310,30,0,0,0,0,0,0,"Eclage's Entrance"
 11311,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"
 11312,0,0,0,0,0,0,0,"Goliath"
 11313,0,0,0,0,0,0,0,"Goliath"
 11313,0,0,0,0,0,0,0,"Goliath"
@@ -2370,6 +2394,8 @@
 12318,0,2475,1,0,0,0,0,"Upper Cats: annoying guy"
 12318,0,2475,1,0,0,0,0,"Upper Cats: annoying guy"
 12319,0,2476,1,0,0,0,0,"Upper Cats: annoying guy"
 12319,0,2476,1,0,0,0,0,"Upper Cats: annoying guy"
 
 
+12363,0,0,0,0,0,0,0,"?????? ?? ??"
+
 13000,0,0,0,0,0,0,0,"RWC2011Card Gathering"
 13000,0,0,0,0,0,0,0,"RWC2011Card Gathering"
 13001,82800,0,0,0,0,0,0,"RWC2011Card Gathering - Hold"
 13001,82800,0,0,0,0,0,0,"RWC2011Card Gathering - Hold"
 
 
@@ -2419,14 +2445,14 @@
 13056,0,0,0,0,0,0,0,"Reporter Rossi"
 13056,0,0,0,0,0,0,0,"Reporter Rossi"
 13057,0,0,0,0,0,0,0,"Adventurer Euncheong"
 13057,0,0,0,0,0,0,0,"Adventurer Euncheong"
 13058,0,0,0,0,0,0,0,"Troublemaker New Oz"
 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!"
+13059,79200,0,0,0,0,0,0,"End of project"
+13060,79200,0,0,0,0,0,0,"Safety confirmation complete!"
 13061,0,0,0,0,0,0,0,"Food support"
 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"
+13062,79200,0,0,0,0,0,0,"Food support - complete"
+13063,0,2365,20,0,0,0,0,"Dusting off"
+13064,79200,0,0,0,0,0,0,"Dusting off - complete"
 13065,0,0,0,0,0,0,0,"Collecting a souvenir"
 13065,0,0,0,0,0,0,0,"Collecting a souvenir"
-13066,86400,0,0,0,0,0,0,"This is enough for souvenirs"
+13066,79200,0,0,0,0,0,0,"This is enough for souvenirs"
 
 
 // eden 111-120
 // eden 111-120
 13067,0,1163,30,0,0,0,0,0,"Raydric research"
 13067,0,1163,30,0,0,0,0,0,"Raydric research"
@@ -2540,7 +2566,7 @@
 14126,0,0,0,0,0,0,0,"Searching for Ms. Goatie"
 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"
 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"
 14128,0,0,0,0,0,0,0,"Obtaining the research report"
-14131,0,0,0,0,0,0,0,"Analysis time"
+14131,300,0,0,0,0,0,0,"Analysis time"
 14133,0,0,0,0,0,0,0,"Another favor"
 14133,0,0,0,0,0,0,0,"Another favor"
 14134,0,0,0,0,0,0,0,"Sharp Ms. Goatie"
 14134,0,0,0,0,0,0,0,"Sharp Ms. Goatie"
 14135,0,0,0,0,0,0,0,"Searching for Mr. Pompe"
 14135,0,0,0,0,0,0,0,"Searching for Mr. Pompe"

+ 1 - 0
db/re/instance_db.txt

@@ -15,3 +15,4 @@
 9,Bakonawa Lake,7200,1@ma_b,64,51,1@ma_b
 9,Bakonawa Lake,7200,1@ma_b,64,51,1@ma_b
 10,Wolfchev's Laboratory,14400,1@lhz,45,148,1@lhz
 10,Wolfchev's Laboratory,14400,1@lhz,45,148,1@lhz
 11,Old Glast Heim,3600,1@gl_k,150,20,1@gl_k,2@gl_k
 11,Old Glast Heim,3600,1@gl_k,150,20,1@gl_k,2@gl_k
+12,Eclage Interior,1200,1@ecl,60,50,1@ecl

+ 3 - 0
npc/other/gm_npcs.txt

@@ -118,6 +118,9 @@ List of GM Management NPCs (incomplete)
 - Field Bush Switch
 - Field Bush Switch
 - Bakonawa Intro Helper
 - Bakonawa Intro Helper
 - Pintados Manager#pin
 - Pintados Manager#pin
+- #pa0829Reactor11
+- New Oz Image#1
+- Professor Aide#worm
 --------------------------
 --------------------------
 - Allied Manager#gm
 - Allied Manager#gm
 - #timer_alba01
 - #timer_alba01

+ 39 - 420
npc/re/cities/eclage.txt

@@ -1,469 +1,88 @@
 //===== rAthena Script ======================================= 
 //===== rAthena Script ======================================= 
-//= Eclage Town
+//= General Eclage NPC.
 //===== By: ================================================== 
 //===== By: ================================================== 
-//= Euphy
+//= Dastgir
 //===== Current Version: ===================================== 
 //===== Current Version: ===================================== 
-//= 1.0
+//= 2.0
 //===== Compatible With: ===================================== 
 //===== Compatible With: ===================================== 
 //= rAthena Project
 //= rAthena Project
 //===== Description: ========================================= 
 //===== Description: ========================================= 
-//= Eclage Town Script
+//= Eclage Town NPC
 //===== Additional Comments: ================================= 
 //===== Additional Comments: ================================= 
-//= 1.0 Nearly complete iRO town NPCs. [Euphy]
+//= 1.0 Generic NPC place holders. [Euphy]
+//= 2.0 Converted from the official Aegis script. [Dastgir]
 //============================================================ 
 //============================================================ 
 
 
-// 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 e_awsm,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....";
+ecl_in02,96,22,3	script	sign#prison_inn	545,{
+	mes "[North] Prison";
+	mes "[West] Clinic";
 	close;
 	close;
 }
 }
 
 
-// Eclage Prison & Clinic
-//============================================================
-ecl_in01,8,71,4	script	Eclage Guard#pri_inn	447,{
+ecl_in01,8,71,5	script	Eclage Guard#pri_inn	447,{
 	mes "[Eclage Guard]";
 	mes "[Eclage Guard]";
 	mes "This path will take you to the lower parts of Eclage. You'll find a prison and a clinic there.";
 	mes "This path will take you to the lower parts of Eclage. You'll find a prison and a clinic there.";
 	close;
 	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,{
+ecl_in02,164,56,3	script	Receptionist#Laphine	835,{
 	mes "[Receptionist]";
 	mes "[Receptionist]";
 	mes "Welcome to Eclage Clinic.";
 	mes "Welcome to Eclage Clinic.";
 	next;
 	next;
-	switch(select("Save Location:Rest:Finish the conversation")) {
+	switch (select("Save Location:Rest:Finish the conversation")) {
 	case 1:
 	case 1:
-		mes "[Receptionist]";
+		mes "[Receptionist}";
 		mes "Clinic has been set as your save point. Be careful though~";
 		mes "Clinic has been set as your save point. Be careful though~";
-		savepoint "ecl_in02",162,49;
+		savepoint "ecl_in02",162,50;
 		close;
 		close;
 	case 2:
 	case 2:
-		mes "[Receptionist]";
+		mes "[Receptionist}";
 		mes "Restore your mind and body at our clinic. It's filled with Eclage's clean energy.";
 		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.";
+		mes "We charge 1 Splendide Coin normally, but we offer a special discount for travelers. Your total is 5,000 zeny. ";
 		next;
 		next;
-		switch(select("Pay with Splendide Coin:Pay with Zeny:Forget it")) {
+		switch (select("Pay with Splendide Coin:Pay with Zeny:Forget it")) {
 		case 1:
 		case 1:
-			if (countitem(6081) == 0) {
-				mes "[Receptionist]";
+			if (!countitem(6081)) {
+				mes "[Receptionist}";
 				mes "It seems like you don't have enough coins. Would you check your account again, please?";
 				mes "It seems like you don't have enough coins. Would you check your account again, please?";
 				close;
 				close;
 			}
 			}
-			delitem 6081,1; //Splendide_Coin
-			break;
+			mes "[Receptionist}";
+			mes "Make yourself at home~";
+			close2;
+			delitem 6081,1; //6081
+			percentheal 100,100;
+			warp "ecl_in02",167,49;
+			end;
 		case 2:
 		case 2:
 			if (Zeny < 5000) {
 			if (Zeny < 5000) {
 				mes "[Receptionist]";
 				mes "[Receptionist]";
-				mes "It seems like you don't have enough zeny. Would you check your account again, please?";
+				mes "Looks like you don't have enough resources to proceed. Do you mind checking your account again?";
 				close;
 				close;
 			}
 			}
-			set Zeny, Zeny-5000;
-			break;
+			mes "[Receptionist}";
+			mes "Make yourself at home~";
+			close2;
+			Zeny = Zeny - 5000;
+			percentheal 100,100;
+			warp "ecl_in02",167,49;
+			end;
 		case 3:
 		case 3:
 			close;
 			close;
 		}
 		}
-		mes "[Receptionist]";
-		mes "Make yourself at home~";
-		close2;
-		percentheal 100,100;
-		warp "ecl_in02",167,49;
-		end;
 	case 3:
 	case 3:
 		close;
 		close;
 	}
 	}
 }
 }
 
 
-ecl_in02,137,44,2	script	Doctor Laphine#doctor	442,{
+ecl_in02,135,45,5	script	Injured Laphine	442,{
 	mes "[Injured Laphine]";
 	mes "[Injured Laphine]";
 	mes "Ooww...";
 	mes "Ooww...";
 	mes "Where...am...I?";
 	mes "Where...am...I?";
 	next;
 	next;
 	mes "[Doctor]";
 	mes "[Doctor]";
 	mes "You're at a clinic. Don't worry.";
 	mes "You're at a clinic. Don't worry.";
-	mes "We stopped the bleeding and casted emergency spells.";
+	mes "We stopped the bleeding and cast emergency spells.";
 	mes "You were bleeding a lot. That was close, you know.";
 	mes "You were bleeding a lot. That was close, you know.";
 	next;
 	next;
 	mes "[Injured Laphine]";
 	mes "[Injured Laphine]";
@@ -474,14 +93,14 @@ ecl_in02,137,44,2	script	Doctor Laphine#doctor	442,{
 	mes "Umm...the arrow damaged your wing pretty badly...";
 	mes "Umm...the arrow damaged your wing pretty badly...";
 	next;
 	next;
 	mes "[Injured Laphine]";
 	mes "[Injured Laphine]";
-	mes "...what do you mean??";
+	mes "...what do you mean?";
 	next;
 	next;
 	mes "[Doctor]";
 	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 "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.";
 	mes "In other words, you injured your wing. The arrow went through the most critical part in the wing.";
 	next;
 	next;
 	mes "[Injured Laphine]";
 	mes "[Injured Laphine]";
 	mes "What? No way...please...doctor!! No!!";
 	mes "What? No way...please...doctor!! No!!";
 	close;
 	close;
 }
 }
-ecl_in02,135,45,4	duplicate(Doctor Laphine#doctor)	Injured Laphine	441
+ecl_in02,137,44,3	duplicate(Injured Laphine)	Doctor Laphine#doctor	441

+ 1 - 1
npc/re/guides/guides_eclage.txt

@@ -12,7 +12,7 @@
 //= 1.0 First version. [Euphy]
 //= 1.0 First version. [Euphy]
 //============================================================ 
 //============================================================ 
 
 
-ecl_in01,48,60,4	script	Eclage Guard#obb	447,{
+ecl_in01,48,60,5	script	Eclage Guard#obb	447,{
 	mes "[Eclage Guard]";
 	mes "[Eclage Guard]";
 	mes "Welcome, Adventurer. This is the plaza of Eclage, a great and sacred tree. How can I help you?";
 	mes "Welcome, Adventurer. This is the plaza of Eclage, a great and sacred tree. How can I help you?";
 	next;
 	next;

+ 473 - 0
npc/re/instances/EclageInterior.txt

@@ -0,0 +1,473 @@
+//===== rAthena Script ======================================= 
+//= Eclage Instance Script
+//===== By: ================================================== 
+//= Dastgir
+//===== Current Version: ===================================== 
+//= 1.1
+//===== Compatible With: ===================================== 
+//= rAthena Project
+//===== Description: ========================================= 
+//= [Official Conversion]
+//= Eclage Interior Instance
+//===== Additional Comments: ================================= 
+//= 1.0 Converted from the official Aegis script. [Dastgir]
+//= 1.1 Converted from Hercules script to rAthena script & Small bug fix. [Skorm]
+//============================================================ 
+
+ecl_hub01,132,12,3	script	Chief of Staff#tl02	435,{
+	.@party_id = getcharid(1);
+	.@md_name$ = "Eclage Interior";
+
+	if (.@party_id == 0 || getpartyleader(.@party_id,2) != getcharid(0)){
+		mes "-! Warning !-";
+		mes "This current quest will be held at Memorial dungeon.";
+		mes "Only the party leader will enter. Please create your party.";
+		close;
+	}
+	if (ep14_2_mylord == 29) {
+		mes "[Shenime]";
+		mes "This place is set up with lighting for Orb.";
+		mes "If you favor Mayor, you should be cautious here.";
+		next;
+		switch (select("Enter it.:Forget it.")) {
+		case 1:
+			if (instance_create(.@md_name$) < 0) {
+				mes "[Shenime]";
+				mes "There are some soldiers dispatched by Mayor not too long ago.";
+				mes "I should sure hope that you aren't the disturbance they're looking for, right?";
+				close;
+			}
+			ecl_interior_time = gettimetick(2) + 20 * 60;
+			mes "[Shenime]";
+			mes "Given the tight internal security, you should prepare yourself.";
+			mes "Wait here for a minute.";
+			close;
+		case 2:
+			mes "[Shenime]";
+			mes "It's not an easy task.";
+			close;
+		}
+	}
+	mes "[High-level Laphine's]";
+	mes "Hmm? This room?";
+	mes "Never mind. Don't worry about it.";
+	close;
+}
+
+ecl_hub01,130,15,0	script	It is closed shut.	844,{
+	if (ep14_2_mylord == 29) {
+		mes "This door connects to the plaza's ceiling.";
+		mes "It's also a place where the lighting is set up to make Orb seem more beautiful.";
+		next;
+		if (select("Enter it.:Forget it.") == 1) {
+			.@party_id = getcharid(1);
+			.@md_name$ = "Eclage Interior";
+			if (.@party_id == 0 || getpartyleader(.@party_id,2) != getcharid(0)) {
+				mes "-! Warning !-";
+				mes "This current quest will be held at Memorial dungeon.";
+				mes "Only the party leader will enter. Please create your party.";
+				close;
+			}
+			if (gettimetick(2) >= ecl_interior_time){
+				mes "[Shenime]";
+				mes "Looks like the soldiers inside are really tense.";
+				mes "It is pretty difficult to guide an outsider like you.";
+				close;
+			}
+			switch (instance_enter(.@md_name$)) {
+			case 3:
+				mes "An unknown error has occurred.";
+				close;
+			case 2:
+				mes "It is closed shut.";
+				close;
+			case 0:
+				mapannounce "ecl_hub01",getpartyname(.@party_id) + " Party leader " + strcharinfo(0) + " is entering " + .@md_name$,bc_map,"0x00ff99";
+				end;
+			default:
+			}
+		} else
+			close;
+	}
+	mes "This door connects to the plaza's ceiling.";
+	mes "It's also a place where the lighting is set up to make Orb seem more beautiful.";
+	mes "It is closed shut.";
+	close;
+}
+
+1@ecl,58,69,3	script	Shenime#ecl01	435,{
+	mes "[Shenime]";
+	mes "Oh, what's going on here?";
+	mes "They destroyed additional troops that Mayor sent?";
+	next;
+	select("What...?:I fought monsters off!");
+	mes "[Shenime]";
+	mes "It doesn't matter.";
+	mes "Your job ends here.";
+	mes "Now you became a betrayer.";
+	mes "Farewell, then!";
+	specialeffect EF_BEGINSPELL3;
+	next;
+	mes "[" + strcharinfo(0) + "]";
+	mes "No...way!!!";
+	specialeffect2 EF_LORD;
+	percentheal -99,0;
+	soundeffect "wander_man_move.wav",1;
+	sc_start SC_BLIND,60000,0;
+	close2;
+	warp instance_mapname("1@ecl"),146,95;
+	end;
+
+OnInstanceInit:
+	hideonnpc instance_npcname(strnpcinfo(0));
+	end;
+
+OnEnable:
+	hideoffnpc instance_npcname(strnpcinfo(0));
+	end;
+}
+
+1@ecl,51,64,1	script	Suspicious Creature#1	2375,{
+	end;
+}
+1@ecl,43,67,3	duplicate(Suspicious Creature#1)	Suspicious Creature#2	2375,0,0
+1@ecl,55,80,3	duplicate(Suspicious Creature#1)	Suspicious Creature#3	2375,0,0
+1@ecl,60,75,3	duplicate(Suspicious Creature#1)	Suspicious Creature#4	2375,0,0
+
+1@ecl,42,80,5	script	Suspicious Creature#5	2376,{
+	end;
+OnInstanceInit:
+	hideonnpc instance_npcname(strnpcinfo(0));
+	end;
+}
+1@ecl,48,86,3	duplicate(Suspicious Creature#5)	Suspicious Creature#6	2376,0,0
+1@ecl,58,82,3	duplicate(Suspicious Creature#5)	Suspicious Creature#7	2376,0,0
+1@ecl,56,88,3	duplicate(Suspicious Creature#5)	Suspicious Creature#8	2376,0,0
+
+1@ecl,53,83,0	script	#sndmaster	HIDDEN_WARP_NPC,10,10,{
+	end;
+
+OnInstanceInit:
+	'mob_summoned = 0;
+	disablenpc instance_npcname(strnpcinfo(0));
+	end;
+
+OnEnable:
+	sleep 1000;
+    mapannounce instance_mapname("1@ecl"),"Warning: Abnormal occurrence in the lighting room. Abnormal occurrence in the lighting room.",bc_map,"0xffff00"; //FW_NORMAL 12 0 0
+	sleep 2000;
+    mapannounce instance_mapname("1@ecl"),"Suspicious Creature: Kerrrrr....krwahhhh!!",bc_map,"0xffff00"; //FW_NORMAL 12 0 0
+	hideoffnpc instance_npcname("Suspicious Creature#5");
+	hideoffnpc instance_npcname("Suspicious Creature#6");
+	hideoffnpc instance_npcname("Suspicious Creature#7");
+	hideoffnpc instance_npcname("Suspicious Creature#8");
+	sleep 3000;
+	hideonnpc instance_npcname("#sndmaster");
+	end;
+
+OnMyMobDead:
+	if (mobcount(instance_mapname("1@ecl"),instance_npcname("#sndmaster")+"::OnMyMobDead") == 0) {
+		donpcevent instance_npcname("Shenime#ecl01")+"::OnEnable";
+		mapannounce instance_mapname("1@ecl"),"Shenime: Good, I got here just in time.",bc_map,"0xffff00"; //FW_NORMAL 12 0 0
+	}
+	end;
+
+OnTouch:
+	if ('mob_summoned > 1) end;
+    mes "Upon eliminating the intruders near the Orb, another strange-looking creatures appeared.";
+    next;
+    mes "We couldn't communicate with them either, and one of them seemed furious after looking around and finding out that its fellows are defeated.";
+    next;
+    mes "[" + strcharinfo(0) + "]";
+    mes "They look as if they are incarnation of Morroc.";
+    mes "Is the King of Domons after the Orb?";
+    mes "Or is it just a coincidence?";
+    next;
+    mes "[Subordinate of the King of Demons]";
+    mes "Kyaarr...Keraahhh!!!";
+    mes "Kkwaaa!";
+    next;
+    mes "A battle cannot be avoided!";
+    mes "They will kill me!";
+	close2;
+	hideonnpc instance_npcname("Suspicious Creature#5");
+	hideonnpc instance_npcname("Suspicious Creature#6");
+	hideonnpc instance_npcname("Suspicious Creature#7");
+	hideonnpc instance_npcname("Suspicious Creature#8");
+	disablenpc instance_npcname("Suspicious Creature#5");
+	disablenpc instance_npcname("Suspicious Creature#6");
+	disablenpc instance_npcname("Suspicious Creature#7");
+	disablenpc instance_npcname("Suspicious Creature#8");
+	.@eclmap$ = instance_mapname("1@ecl");
+	.@sndmaster$ = instance_npcname("#sndmaster");
+	monster .@eclmap$,42,80,"Subordinate of the King of Demons",2376,1,.@sndmaster$+"::OnMyMobDead";
+	monster .@eclmap$,48,86,"Subordinate of the King of Demons",2376,1,.@sndmaster$+"::OnMyMobDead";
+	monster .@eclmap$,59,82,"Subordinate of the King of Demons",2376,1,.@sndmaster$+"::OnMyMobDead";
+	monster .@eclmap$,56,88,"Subordinate of the King of Demons",2376,1,.@sndmaster$+"::OnMyMobDead";
+	monster .@eclmap$,39,72,"Subordinate of the King of Demons",2376,1,.@sndmaster$+"::OnMyMobDead";
+	monster .@eclmap$,42,69,"Subordinate of the King of Demons",2376,1,.@sndmaster$+"::OnMyMobDead";
+	monster .@eclmap$,47,64,"Subordinate of the King of Demons",2376,1,.@sndmaster$+"::OnMyMobDead";
+	monster .@eclmap$,50,60,"Subordinate of the King of Demons",2376,1,.@sndmaster$+"::OnMyMobDead";
+	'mob_summoned = 2;
+    end;
+}
+
+1@ecl,57,65,0	script	#event	139,5,5,{
+	end;
+OnTouch:
+	if ('mob_summoned > 0) end;
+	.@eclmap$ = instance_mapname("1@ecl");
+	.@eventname$ = instance_npcname("#event");
+	mes "An empty room with nothing inside.";
+	mes "a light is coming out of a circular equipment in the middle of the room.";
+	next;
+	mes "[Suspicious Creature]";
+	mes "Keheehehehe......";
+	next;
+	mes "A group of unidentifiable creatures is approaching threateningly.";
+	mes "They seemed surprised, and although Bifrost's will still holds, it's hard to communicate.";
+	next;
+	mes "[Suspicious Creature]";
+	mes "Kyaarr...Ke...Keryarya!!";
+	next;
+	mes "It seems like they are going to start attacking any minute.";
+	mes "We cannot help fighting them!";
+	close2;
+	hideonnpc instance_npcname("Suspicious Creature#1");
+	hideonnpc instance_npcname("Suspicious Creature#2");
+	hideonnpc instance_npcname("Suspicious Creature#3");
+	hideonnpc instance_npcname("Suspicious Creature#4");
+	disablenpc instance_npcname("Suspicious Creature#1");
+	disablenpc instance_npcname("Suspicious Creature#2");
+	disablenpc instance_npcname("Suspicious Creature#3");
+	disablenpc instance_npcname("Suspicious Creature#4");
+	monster .@eclmap$,51,64,"Suspicious Creature",2375,1,.@eventname$+"::OnMyMobDead";
+	monster .@eclmap$,43,67,"Suspicious Creature",2375,1,.@eventname$+"::OnMyMobDead";
+	monster .@eclmap$,55,80,"Suspicious Creature",2375,1,.@eventname$+"::OnMyMobDead";
+	monster .@eclmap$,60,75,"Suspicious Creature",2375,1,.@eventname$+"::OnMyMobDead";
+	'mob_summoned = 1;
+	end;
+
+OnMyMobDead:
+	if (mobcount(instance_mapname("1@ecl"),instance_npcname("#event")+"::OnMyMobDead") == 0) {
+		enablenpc instance_npcname("#sndmaster");
+		donpcevent instance_npcname("#sndmaster")+"::OnEnable";
+	}
+	end;
+}
+
+1@ecl,148,97,3	script	Avant#	618,{
+	mes "[Avant]";
+	mes "Hey, look who's here!";
+	mes "You're a friend of my son, right?";
+	mes "What a strange chance it is that has brought us together here!";
+	cutin "avant01",1;
+	next;
+	mes "[Avant]";
+	mes "Did something happen to you?";
+	mes "There was a subtle and magical echo to it.";
+	mes "Immidiately after that, you were thrown here.";
+	next;
+	if (select("It's all because of you!:Shenime said...") == 1) {
+		mes "[Avant]";
+		mes "I don't understand a word you're saying.";
+		mes "Can't you organize your story? Don't you know 'five W's and one H' rule?";
+		next;
+	}
+	mes "[Avant]";
+	mes "Ooh...so that's what happened.";
+	mes "So you're saying that Shenime was after the Orb?";
+	next;
+	mes "[Avant]";
+	mes "hehehe...hahahhaha ahahahahha";
+	mes "Well, well...did he get me, too?";
+	mes "Me, Avant, of all the people?! Hahahaha!";
+	cutin "avant02",1;
+	next;
+	select("What do you mean?");
+	mes "[Avant]";
+	mes "I was doing a research on the power of the Orb on my own.";
+	mes "But Shenime just urged me persistently.";
+	cutin "avant01",1;
+	next;
+	mes "[Avant]";
+	mes "I started from thinking about the beauty of the Orb and went on to wondering what kind of power is accumulated inside the Orb...";
+	mes "and I started questioning the principle of the Orb's power since we all benefit from it.";
+	next;
+	mes "[Avant]";
+	mes "All Laphines think of the Orb as something natural as air and water, but he was the first one to make me perceive it differently and investigate its origin.";
+	mes "Right...Shenime. He excited my curiosity on purpose.";
+	next;
+	mes "[Avant]";
+	mes "Stimulate a person who wasn't aware of air and water, and make him recognize and carry on investigating!";
+	mes "Well, well...isn't that interesting!";
+	cutin "avant02",1;
+	next;
+	mes "[Avant]";
+	mes "Ha...hahaha...";
+	mes "...I'm so angry about the fact that I just realized how he used me, but what's even worse is that I've done something horrible to our people.";
+	mes "I think I'm pretty irritated now.";
+	next;
+	select("You had a conscience?");
+	mes "[Avant]";
+	mes "What kind of a person do you think I am, seriously!";
+	mes "Is it because of my sons?";
+	mes "Well, then, I can't blame you too much.";
+	cutin "avant01",1;
+	next;
+	mes "[Avant]";
+	mes "...Bah.";
+	mes "It's no fun.";
+	mes "It's not fun anymore. I'm no longer interested in you.";
+	next;
+	mes "[Avant]";
+	mes "......";
+	mes "Seems like there's a visitor.";
+	next;
+	cutin "minuel01",4;
+	mes "[Minuel]";
+	mes "" + strcharinfo(0) + "Sir,";
+	mes "Although you're detained on suspicion of being responsible for the recent incident in the lighting room,";
+	mes "there are some witnesses to prove your innocence.";
+	next;
+	mes "[Minuel]";
+	mes "I don't know the details,";
+	mes "but I also believe you're not guilty.";
+	mes "I'll move you to the treatment room since this seems like a severe wound.";
+	next;
+	mes "[Minuel]";
+	mes "I don't think it's a big deal.";
+	mes "...hopefully.";
+	mes "Let's go. I'll guide you.";
+	close2;
+	cutin "",255;
+	warp "1@ecl",146,29;
+	end;
+}
+	
+1@ecl,148,29,3	script	Loki#ecl01	512,{
+	mes "[Loki]";
+	mes "It seems like this guy next to me has a lot more to say than I do.";
+	mes "Why don't you explain to him first?";
+	close;
+}	
+	
+1@ecl,147,30,3	script	Nydhog#ecl01	510,{
+	mes "[Guardian Nydhog]";
+	mes "I think you should talk to Hisie first.";
+	close;
+}
+	
+1@ecl,144,27,5	script	Hisie#ecl01	623,{
+	cutin "hisie01",0;
+	mes "[Hisie]";
+	mes "Can you tell me exactly what happened?";
+	next;
+	select("I fought with monsters.");
+	cutin "hisie03",0;
+	mes "[Hisie]";
+	mes "Monsters? Subordinates of Morroc?";
+	mes "What you were trying to kill were our soldiers, the Laphines!!";
+	mes "What on earth happened there?";
+	npcskill "AL_HEAL",9,99,80;
+	next;
+	cutin "",255;
+	mes "[Loki]";
+	mes "It's because of this.";
+	mes "" + strcharinfo(0) + "It was inside the body of -";
+	mes "This is how powerful Shenime is.";
+	next;
+	mes "On Loki's palm, there rested a small, thin, and dried piece of thorn.";
+	next;
+	cutin "hisie03",0;
+	mes "[Hisie]";
+	mes "Shenime, the Chief of Staff?";
+	mes "Why is he related to this?";
+	npcskill "AL_HEAL",9,99,80;
+	next;
+	cutin "",255;
+	mes "[Loki]";
+	mes "Shenime is one of the subordinates of Morroc.";
+	mes "His power enbales him to control another person directly or mentally influence that person indirectly through a part of his body.";
+	next;
+	select("Now that I think about it...");
+	mes "[" + strcharinfo(0) + "]";
+	mes "Right before coming here, Shenime reached his hand out to me and I felt a spark when I held his hand.";
+	mes "I thought it was just my imagination and ignored it...maybe that's when he...";
+	next;
+	mes "[Nydhog]";
+	mes "You're probably right.";
+	mes "They use wicked tricks.";
+	mes "This thorn here probably has clouded your judgement.";
+	next;
+	cutin "hisie03",0;
+	mes "[Hisie]";
+	mes "So you're saying that he deceived us all?";
+	mes "The Chief of Staff is a Laphine who stayed with us for a long time! He can't be...";
+	npcskill "AL_HEAL",9,99,80;
+	next;
+	cutin "",255;
+	mes "[Loki]";
+	mes "He might have been under the influence for a good while.";
+	mes "Anyway, this guy is not guilty.";
+	mes "I can prove it.";
+	next;
+	mes "[Nydhog]";
+	mes "I swear by the name of the guardian of Yggdrasil, too.";
+	mes "" + strcharinfo(0) + "- will by no means do such a thing.";
+	next;
+	cutin "hisie02",0;
+	mes "[Hisie]";
+	mes "Hah...";
+	mes "But things got out of control.";
+	mes "I didn't expect this.";
+	next;
+	select("What happened to the Orb?");
+	mes "[Hisie]";
+	mes "The inner core is stolen.";
+	mes "Nobody knows that the Orb's inner core is gone,";
+	mes "and that's why Karr didn't make it here.";
+	npcskill "AL_HEAL",9,99,80;
+	next;
+	mes "[Hisie]";
+	mes "And what's more, several soldiers are injured because of you.";
+	mes "None of them died fortunately, but most of them are wounded severely.";
+	mes "The situation is not very good right now.";
+	next;
+	cutin "",255;
+	mes "[Loki]";
+	mes "Someone has to take the responsibility here then.";
+	mes "In all probablility," + strcharinfo(0) + "it will be you.";
+	next;
+	cutin "hisie02",0;
+	mes "[Hisie]";
+	mes "......these two gentlemen here cleared up all charges related to the Orb,";
+	mes "but both you and Karr won't be able to avoid your responsibility.";
+	mes "you'll have to catch Shenime.";
+	npcskill "AL_HEAL",9,99,80;
+	next;
+	cutin "hisie01",0;
+	mes "[Hisie]";
+	mes "It seems like you've rested enough. Let's get going.";
+	mes "Karr is waiting for you.";
+	mes "What will you two do?";
+	next;
+	cutin "",255;
+	mes "[Loki]";
+	mes "Don't worry about us.";
+	mes "Our target is Morroc, the King of Demons.";
+	mes "It's good enough that we found an evidence here.";
+	next;
+	cutin "hisie01",0;
+	mes "[Hisie]";
+	mes "Thank you for your help.";
+	mes "We will take off now.";
+	mes "Let's go." + strcharinfo(0) + ".";
+	ep14_2_mylord = 30;
+	changequest 7450,7451;
+	close2;
+	cutin "",255;
+	warp "ecl_in03",57,76;
+	instance_destroy;
+	end;
+}

+ 272 - 238
npc/re/merchants/coin_exchange.txt

@@ -3,8 +3,8 @@
 //===== By: ==================================================
 //===== By: ==================================================
 //= rAthena Dev Team
 //= rAthena Dev Team
 //===== Current Version: =====================================
 //===== Current Version: =====================================
-//= 1.2
-//===== Compatible With: =====================================
+//= 1.3
+//===== Compatible With: ===================================== 
 //= rAthena Project
 //= rAthena Project
 //===== Description: =========================================
 //===== Description: =========================================
 //= [Official Conversion]
 //= [Official Conversion]
@@ -13,9 +13,10 @@
 //= 1.0 First version. [Euphy/Lemongrass]
 //= 1.0 First version. [Euphy/Lemongrass]
 //= 1.1 Added remaining Malangdo traders. [Euphy/Lemongrass]
 //= 1.1 Added remaining Malangdo traders. [Euphy/Lemongrass]
 //= 1.2 Added Eclage traders (not fully complete). [Euphy]
 //= 1.2 Added Eclage traders (not fully complete). [Euphy]
+//= 1.3 Completed Eclage Traders. [Dastgir]
 //============================================================
 //============================================================
 
 
-// Malangdo Item Machines :: mal_yong
+// Malangdo
 //============================================================
 //============================================================
 malangdo,220,167,5	script	Coin Exchanger CX-1	564,{
 malangdo,220,167,5	script	Coin Exchanger CX-1	564,{
 	if (checkweight(1201,1) == 0) {
 	if (checkweight(1201,1) == 0) {
@@ -36,22 +37,22 @@ malangdo,220,167,5	script	Coin Exchanger CX-1	564,{
 		6420, //Cgrade_Coin
 		6420, //Cgrade_Coin
 		6421, //Dgrade_Coin
 		6421, //Dgrade_Coin
 		6422; //Egrade_Coin
 		6422; //Egrade_Coin
-	set .@menu$,"Stop:";
-	for(set .@i,1; .@i<=6; set .@i,.@i+1) {
+	.@menu$ = "Stop:";
+	for(.@i = 1; .@i<=6; .@i++) {
 		if (countitem(.@coins[.@i]))
 		if (countitem(.@coins[.@i]))
-			set .@menu$, .@menu$+getitemname(.@coins[.@i])+":";
+			.@menu$ += getitemname(.@coins[.@i])+":";
 		else
 		else
-			set .@menu$, .@menu$+"^aaaaaa"+getitemname(.@coins[.@i])+" (None)^000000:";
+			.@menu$ += "^aaaaaa"+getitemname(.@coins[.@i])+" (None)^000000:";
 	}
 	}
-	set .@i, select(.@menu$);
+	.@i = select(.@menu$);
 	switch(.@i) {
 	switch(.@i) {
 	case 1:
 	case 1:
 		mes "[Coin Exchanger CX-1]";
 		mes "[Coin Exchanger CX-1]";
 		mes "Thank you for coming.";
 		mes "Thank you for coming.";
 		close;
 		close;
 	default:
 	default:
-		set .@coin, .@coins[.@i-1];
-		set .@coin_select, .@i-1;
+		.@coin = .@coins[.@i-1];
+		.@coin_select = .@i-1;
 		break;
 		break;
 	}
 	}
 	if (countitem(.@coin) == 0) {
 	if (countitem(.@coin) == 0) {
@@ -71,17 +72,17 @@ malangdo,220,167,5	script	Coin Exchanger CX-1	564,{
 	setarray .@exchange_rate[0],30,10;
 	setarray .@exchange_rate[0],30,10;
 	setarray .@exchange_loss[0],rand(1,4),rand(1,2); // Amount deducted per exchange.
 	setarray .@exchange_loss[0],rand(1,4),rand(1,2); // Amount deducted per exchange.
 	setarray .@exchange_id[0],.@coins[.@coin_select-1],.@coins[.@coin_select+1];
 	setarray .@exchange_id[0],.@coins[.@coin_select-1],.@coins[.@coin_select+1];
-	if (.@exchange_id[0] == .@coins[1]) set .@exchange_id[0],0; // Cannot exchange for Silvervine.
-	set .@menu$,"Stop:";
-	for(set .@i,0; .@i<2; set .@i,.@i+1) {
+	if (.@exchange_id[0] == .@coins[1]) .@exchange_id[0] = 0; // Cannot exchange for Silvervine.
+	.@menu$ = "Stop:";
+	for(.@i = 0; .@i<2; .@i++) {
 		if (.@exchange_id[.@i] == 0)
 		if (.@exchange_id[.@i] == 0)
-			set .@menu$, .@menu$+"^ff3333Unavailable exchange to "+.@exchange_name$[.@i]+" coin^000000:";
+			.@menu$ += "^ff3333Unavailable exchange to "+.@exchange_name$[.@i]+" coin^000000:";
 		else if (countitem(.@coin) < .@exchange_rate[.@i])
 		else if (countitem(.@coin) < .@exchange_rate[.@i])
-			set .@menu$, .@menu$+"^aaaaaaExchange to "+.@exchange_name$[.@i]+" coin (null)^000000:";
+			.@menu$ += "^aaaaaaExchange to "+.@exchange_name$[.@i]+" coin (null)^000000:";
 		else
 		else
-			set .@menu$, .@menu$+"Exchange to "+.@exchange_name$[.@i]+" coin - "+getitemname(.@coin)+" ("+.@exchange_rate[.@i]+" needed):";
+			.@menu$ += "Exchange to "+.@exchange_name$[.@i]+" coin - "+getitemname(.@coin)+" ("+.@exchange_rate[.@i]+" needed):";
 	}
 	}
-	set .@i, select(.@menu$)-2;
+	.@i = select(.@menu$)-2;
 	if (.@i == -1) {
 	if (.@i == -1) {
 		mes "[Coin Exchanger CX-1]";
 		mes "[Coin Exchanger CX-1]";
 		mes "Thank you for coming.";
 		mes "Thank you for coming.";
@@ -99,7 +100,7 @@ malangdo,220,167,5	script	Coin Exchanger CX-1	564,{
 		mes "Thank you for coming.";
 		mes "Thank you for coming.";
 		close;
 		close;
 	}
 	}
-	set .@exchange_total, .@exchange_rate[(!.@i)] - .@exchange_loss[(!.@i)];
+	.@exchange_total = .@exchange_rate[(!.@i)] - .@exchange_loss[(!.@i)];
 	delitem .@coin, .@exchange_rate[.@i];
 	delitem .@coin, .@exchange_rate[.@i];
 	getitem .@exchange_id[.@i], .@exchange_total;
 	getitem .@exchange_id[.@i], .@exchange_total;
 	mes "[Coin Exchanger CX-1]";
 	mes "[Coin Exchanger CX-1]";
@@ -131,10 +132,10 @@ malangdo,218,165,5	script	Special Vending Machine	562,{
 		"Ordinary Lubricant",6440,36,
 		"Ordinary Lubricant",6440,36,
 		"Sillit Pong",6443,192;
 		"Sillit Pong",6443,192;
 L_AddItem:
 L_AddItem:
-	set .@menu$,"Explanation:";
-	for(set .@i,0; .@i<getargcount(); set .@i,.@i+3)
-		set .@menu$, .@menu$+getarg(.@i)+":";
-	set .@i, select(.@menu$)-2;
+	.@menu$ = "Explanation:";
+	for(.@i = 0; .@i<getargcount(); .@i += 3)
+		.@menu$ += getarg(.@i)+":";
+	.@i = select(.@menu$)-2;
 	if (.@i == -1) {
 	if (.@i == -1) {
 		mes "[Special Vending Machine]";
 		mes "[Special Vending Machine]";
 		mes "Seagod's Protection is an item used for entering the Culvert memorial dungeon during a certain period.";
 		mes "Seagod's Protection is an item used for entering the Culvert memorial dungeon during a certain period.";
@@ -149,14 +150,14 @@ L_AddItem:
 		mes "Sillit Pong is special item that separates sockets with MVP cards. Unable to separate MVP card by Premium and Ordinary Lubricant.";
 		mes "Sillit Pong is special item that separates sockets with MVP cards. Unable to separate MVP card by Premium and Ordinary Lubricant.";
 		close;
 		close;
 	}
 	}
-	set .@cost, getarg(.@i*3+2);
+	.@cost = getarg(.@i*3+2);
 	mes "[Special Vending Machine]";
 	mes "[Special Vending Machine]";
 	mes "You choose ^005500"+getarg(.@i*3)+"^000000. For purchasing, you need ^005500"+.@cost+"^000000 unit(s) of Silvervine Fruit.";
 	mes "You choose ^005500"+getarg(.@i*3)+"^000000. For purchasing, you need ^005500"+.@cost+"^000000 unit(s) of Silvervine Fruit.";
 	next;
 	next;
 	if (countitem(6417) < .@cost)
 	if (countitem(6417) < .@cost)
-		set .@ven_menu$, "^999999Silvervine Fruit (missing "+(.@cost - countitem(6417))+")^000000";
+		.@ven_menu$ = "^999999Silvervine Fruit (missing "+(.@cost - countitem(6417))+")^000000";
 	else
 	else
-		set .@ven_menu$, "Purchase - Silvervine Fruit (have "+countitem(6417)+")";
+		.@ven_menu$ = "Purchase - Silvervine Fruit (have "+countitem(6417)+")";
 	switch(select("Stop:"+.@ven_menu$)) {
 	switch(select("Stop:"+.@ven_menu$)) {
 	case 1:
 	case 1:
 		mes "[Special Vending Machine]";
 		mes "[Special Vending Machine]";
@@ -178,8 +179,6 @@ L_AddItem:
 	}
 	}
 }
 }
 
 
-// Malangdo Coin Exchange :: mal_mo_coin
-//============================================================
 malangdo,236,179,5	script	Dark Merchant K	554,{
 malangdo,236,179,5	script	Dark Merchant K	554,{
 	if (checkweight(1201,1) == 0) {
 	if (checkweight(1201,1) == 0) {
 		mes "It seems you have too much in your inventory. Let's try again after getting rid of some of your belongings.";
 		mes "It seems you have too much in your inventory. Let's try again after getting rid of some of your belongings.";
@@ -195,14 +194,14 @@ malangdo,236,179,5	script	Dark Merchant K	554,{
 	next;
 	next;
 	setarray .@coin_amount[0],10,100,500,1000;
 	setarray .@coin_amount[0],10,100,500,1000;
 	while(1) {
 	while(1) {
-		set .@menu$,"";
-		for(set .@i,0; .@i<getarraysize(.@coin_amount); set .@i,.@i+1) {
+		.@menu$ = "";
+		for(.@i = 0; .@i<getarraysize(.@coin_amount); .@i++) {
 			if (countitem(6420) >= .@coin_amount[.@i])
 			if (countitem(6420) >= .@coin_amount[.@i])
-				set .@menu$, .@menu$+"Exchange "+(.@coin_amount[.@i]/10)+" Mora Coin:";
+				.@menu$ += "Exchange "+(.@coin_amount[.@i]/10)+" Mora Coin:";
 			else
 			else
-				set .@menu$, .@menu$+"^aaaaaaExchange "+(.@coin_amount[.@i]/10)+" Mora Coin (Not Enough)^000000:";
+				.@menu$ += "^aaaaaaExchange "+(.@coin_amount[.@i]/10)+" Mora Coin (Not Enough)^000000:";
 		}
 		}
-		set .@i, select(.@menu$+"Quit")-1;
+		.@i = select(.@menu$+"Quit")-1;
 		if (.@i == getarraysize(.@coin_amount)) {
 		if (.@i == getarraysize(.@coin_amount)) {
 			mes "[Merchant K]";
 			mes "[Merchant K]";
 			mes "Let's exchange some other time.";
 			mes "Let's exchange some other time.";
@@ -247,23 +246,23 @@ malangdo,233,180,3	script	Dark MachineTX100	564,{
 		6420, //Cgrade_Coin
 		6420, //Cgrade_Coin
 		6421, //Dgrade_Coin
 		6421, //Dgrade_Coin
 		6422; //Egrade_Coin
 		6422; //Egrade_Coin
-	set .@menu$,"Quit:";
-	for(set .@i,1; .@i<=6; set .@i,.@i+1) {
+	.@menu$ = "Quit:";
+	for(.@i = 1; .@i<=6; .@i++) {
 		if (countitem(.@coins[.@i]))
 		if (countitem(.@coins[.@i]))
-			set .@menu$, .@menu$+getitemname(.@coins[.@i])+" (have "+countitem(.@coins[.@i])+"):";
+			.@menu$ += getitemname(.@coins[.@i])+" (have "+countitem(.@coins[.@i])+"):";
 		else
 		else
-			set .@menu$, .@menu$+"^aaaaaa"+getitemname(.@coins[.@i])+" (None)^000000:";
+			.@menu$ += "^aaaaaa"+getitemname(.@coins[.@i])+" (None)^000000:";
 	}
 	}
-	set .@i, select(.@menu$)-1;
+	.@i = select(.@menu$)-1;
 	if (.@i == 0) {
 	if (.@i == 0) {
 		mes "[Dark Machine TX100]";
 		mes "[Dark Machine TX100]";
 		mes "Thank you for coming.";
 		mes "Thank you for coming.";
 		close;
 		close;
 	}
 	}
-	set .@coin, .@coins[.@i];
+	.@coin = .@coins[.@i];
 	setarray .@exchange_name$[0],"higher","lower";
 	setarray .@exchange_name$[0],"higher","lower";
 	setarray .@exchange_id[0],.@coins[.@i-1],.@coins[.@i+1];
 	setarray .@exchange_id[0],.@coins[.@i-1],.@coins[.@i+1];
-	if (.@exchange_id[0] == .@coins[1]) set .@exchange_id[0],0; // Cannot exchange for Silvervine.
+	if (.@exchange_id[0] == .@coins[1]) .@exchange_id[0] = 0; // Cannot exchange for Silvervine.
 	if (.@i > getarraysize(.@coins)) {
 	if (.@i > getarraysize(.@coins)) {
 		mes "[Dark Machine TX100]";
 		mes "[Dark Machine TX100]";
 		mes "You've chosen abnormal menu.";
 		mes "You've chosen abnormal menu.";
@@ -283,26 +282,26 @@ malangdo,233,180,3	script	Dark MachineTX100	564,{
 	mes "---------------------";
 	mes "---------------------";
 	mes "^ff3333We take a small vendor fee from your exchanged coins.^000000";
 	mes "^ff3333We take a small vendor fee from your exchanged coins.^000000";
 	next;
 	next;
-	set .@menu$, "Quit:";
+	.@menu$ = "Quit:";
 	if (.@exchange_id[0] == 0)
 	if (.@exchange_id[0] == 0)
-		set .@menu$, .@menu$+"^ff3333Cannot exchange to higher level coin^000000:";
+		.@menu$ += "^ff3333Cannot exchange to higher level coin^000000:";
 	else {
 	else {
 		if (countitem(.@coin) >= 99)
 		if (countitem(.@coin) >= 99)
-			set .@menu$, .@menu$+"Exchange 99 "+getitemname(.@coin)+" into higher level coin:";
+			.@menu$ += "Exchange 99 "+getitemname(.@coin)+" into higher level coin:";
 		else
 		else
-			set .@menu$, .@menu$+"^aaaaaaExchange to higher level coin (Not enough)^000000:";
+			.@menu$ += "^aaaaaaExchange to higher level coin (Not enough)^000000:";
 	}
 	}
 	if (.@exchange_id[1] == 0)
 	if (.@exchange_id[1] == 0)
-		set .@menu$, .@menu$+"^ff3333Cannot exchange to lower level coin^000000:";
+		.@menu$ += "^ff3333Cannot exchange to lower level coin^000000:";
 	else {
 	else {
 		if (countitem(.@coin) > 500)
 		if (countitem(.@coin) > 500)
-			set .@menu$, .@menu$+"Exchange 500 "+getitemname(.@coin)+" into lower level coin:";
+			.@menu$ += "Exchange 500 "+getitemname(.@coin)+" into lower level coin:";
 		else if (countitem(.@coin))
 		else if (countitem(.@coin))
-			set .@menu$, .@menu$+"Exchange "+countitem(.@coin)+" "+getitemname(.@coin)+" into lower level coin:";
+			.@menu$ += "Exchange "+countitem(.@coin)+" "+getitemname(.@coin)+" into lower level coin:";
 		else
 		else
-			set .@menu$, .@menu$+"^aaaaaaExchange to lower level coin (Not enough)^000000:";
+			.@menu$ += "^aaaaaaExchange to lower level coin (Not enough)^000000:";
 	}
 	}
-	set .@i, select(.@menu$)-2;
+	.@i = select(.@menu$)-2;
 	if (.@i == -1) {
 	if (.@i == -1) {
 		mes "[Dark Machine TX100]";
 		mes "[Dark Machine TX100]";
 		mes "Thank you for coming.";
 		mes "Thank you for coming.";
@@ -327,17 +326,17 @@ malangdo,233,180,3	script	Dark MachineTX100	564,{
 	}
 	}
 	switch(.@i) {
 	switch(.@i) {
 	case 0:
 	case 0:
-		set .@payment_amount,99;
-		set .@reward_amount, .@payment_amount/3;
-		set .@coin_text$,"High";
+		.@payment_amount = 99;
+		.@reward_amount = .@payment_amount/3;
+		.@coin_text$ = "High";
 		break;
 		break;
 	case 1:
 	case 1:
-		set .@payment_amount,(((countitem(.@coin) > 500))?500:countitem(.@coin));
-		set .@reward_amount, .@payment_amount*3;
-		set .@coin_text$,"Low";
+		.@payment_amount = (((countitem(.@coin) > 500))?500:countitem(.@coin));
+		.@reward_amount = .@payment_amount*3;
+		.@coin_text$ = "Low";
 		break;
 		break;
 	}
 	}
-	set .@fee, rand(1,3);
+	.@fee = rand(1,3);
 	delitem .@coin, .@payment_amount;
 	delitem .@coin, .@payment_amount;
 	getitem .@exchange_id[.@i], .@reward_amount - .@fee;
 	getitem .@exchange_id[.@i], .@reward_amount - .@fee;
 	mes "[Dark Machine TX100]";
 	mes "[Dark Machine TX100]";
@@ -346,8 +345,6 @@ malangdo,233,180,3	script	Dark MachineTX100	564,{
 	close;
 	close;
 }
 }
 
 
-// Malangdo Can Exchange :: mal_can_rep
-//============================================================
 malangdo,175,145,4	script	Can Agency Guard	549,{
 malangdo,175,145,4	script	Can Agency Guard	549,{
 	if (checkweight(1201,1) == 0) {
 	if (checkweight(1201,1) == 0) {
 		mes "You seem to have too many items. Give it a try after sorting out the item kinds.";
 		mes "You seem to have too many items. Give it a try after sorting out the item kinds.";
@@ -395,20 +392,20 @@ malangdo,175,145,4	script	Can Agency Guard	549,{
 		mes "Umm, I'm not here forever, so come to me if you'd like to exchange while I still am.";
 		mes "Umm, I'm not here forever, so come to me if you'd like to exchange while I still am.";
 		close;
 		close;
 	case 2:
 	case 2:
-		set .@check,1;
-		set .@count,1;
+		.@check = 1;
+		.@count = 1;
 		break;
 		break;
 	case 3:
 	case 3:
-		set .@check,10;
-		set .@count,10;
+		.@check = 10;
+		.@count = 10;
 		break;
 		break;
 	case 4:
 	case 4:
-		set .@check,100;
-		set .@count,100;
+		.@check = 100;
+		.@count = 100;
 		break;
 		break;
 	case 5:
 	case 5:
-		set .@check,1;
-		set .@count,countitem(12633);
+		.@check = 1;
+		.@count = countitem(12633);
 		break;
 		break;
 	}
 	}
 	if (countitem(12633) < .@check) {
 	if (countitem(12633) < .@check) {
@@ -429,8 +426,6 @@ malangdo,175,145,4	script	Can Agency Guard	549,{
 	close;
 	close;
 }
 }
 
 
-// Malangdo Traders :: malang_trader
-//============================================================
 function	script	F_mal_coin	{
 function	script	F_mal_coin	{
 
 
 // Initial dialogue and checks:
 // Initial dialogue and checks:
@@ -509,16 +504,16 @@ function	script	F_mal_coin	{
 		mes "The price of ^0000FF["+getarg(2)+"]^000000 is";
 		mes "The price of ^0000FF["+getarg(2)+"]^000000 is";
 		if (getarg(4) && getarg(5)) { // Type 1: Egrade_Coin or Malang_Sp_Can
 		if (getarg(4) && getarg(5)) { // Type 1: Egrade_Coin or Malang_Sp_Can
 			mes getarg(4)+" E Grade Coin or "+getarg(5)+" Malangdo Canned Specialties.";
 			mes getarg(4)+" E Grade Coin or "+getarg(5)+" Malangdo Canned Specialties.";
-			set .@type,1;
-			set .@menu$,"Yes.:No, I'll purchase with cans.:I don't want to purchase any.";
+			.@type = 1;
+			.@menu$ = "Yes.:No, I'll purchase with cans.:I don't want to purchase any.";
 		} else if (getarg(5)) { // Type 2: Malang_Sp_Can only
 		} else if (getarg(5)) { // Type 2: Malang_Sp_Can only
 			mes getarg(5)+" Malangdo Canned Specialties.";
 			mes getarg(5)+" Malangdo Canned Specialties.";
-			set .@type,2;
-			set .@menu$,"Yes.::No.";
+			.@type = 2;
+			.@menu$ = "Yes.::No.";
 		} else { // Type 3: Silvervine only
 		} else { // Type 3: Silvervine only
 			mes getarg(6)+" Silvervine Fruit.";
 			mes getarg(6)+" Silvervine Fruit.";
-			set .@type,3;
-			set .@menu$,"Yes.::I don't want to purchase any.";
+			.@type = 3;
+			.@menu$ = "Yes.::I don't want to purchase any.";
 		}
 		}
 		next;
 		next;
 		mes getarg(1);
 		mes getarg(1);
@@ -532,23 +527,23 @@ function	script	F_mal_coin	{
 		next;
 		next;
 		switch(select(.@menu$)) {
 		switch(select(.@menu$)) {
 		case 2:
 		case 2:
-			set .@type,2;
+			.@type = 2;
 		case 1:
 		case 1:
 			switch(.@type) {
 			switch(.@type) {
 			case 1:
 			case 1:
-				set .@item,6422; //Egrade_Coin
-				set .@amount,getarg(4);
-				set .@str$,"coins";
+				.@item = 6422; //Egrade_Coin
+				.@amount = getarg(4);
+				.@str$ = "coins";
 				break;
 				break;
 			case 2:
 			case 2:
-				set .@item,12636; //Malang_Sp_Can
-				set .@amount,getarg(5);
-				set .@str$,"cans";
+				.@item = 12636; //Malang_Sp_Can
+				.@amount = getarg(5);
+				.@str$ = "cans";
 				break;
 				break;
 			case 3:
 			case 3:
-				set .@item,6417; //Silvervine
-				set .@amount,getarg(6);
-				set .@str$,"Silvervine Fruit";
+				.@item = 6417; //Silvervine
+				.@amount = getarg(6);
+				.@str$ = "Silvervine Fruit";
 				break;
 				break;
 			}
 			}
 			if (countitem(.@item) < .@amount) {
 			if (countitem(.@item) < .@amount) {
@@ -584,7 +579,7 @@ malangdo,162,146,5	script	Wandering Merchant#mal	495,{
 		"Spearfish","Tuna","Hairtail","Saurel","Malang Snow Crab","Brindle Eel",
 		"Spearfish","Tuna","Hairtail","Saurel","Malang Snow Crab","Brindle Eel",
 		"Hairtail (7Days)","Spearfish (7Days)","Saurel (7Days)","Tuna (7Days)","Brindle Eel (7Days)","Malang Snow Crab (7Days)";
 		"Hairtail (7Days)","Spearfish (7Days)","Saurel (7Days)","Tuna (7Days)","Brindle Eel (7Days)","Malang Snow Crab (7Days)";
 	while(1) {
 	while(1) {
-		set .@i, select(
+		.@i = select(
 			"[Spearfish(1hr)] 8 E-Coins/50 Cans",
 			"[Spearfish(1hr)] 8 E-Coins/50 Cans",
 			"[Tuna(1hr)] 8 E-Coins/50 Cans",
 			"[Tuna(1hr)] 8 E-Coins/50 Cans",
 			"[Hairtail(1hr)] 8 E-Coins/50 Cans",
 			"[Hairtail(1hr)] 8 E-Coins/50 Cans",
@@ -711,7 +706,7 @@ malangdo,173,145,4	script	Stinky Merchant	496,{
 	setarray .@items[1],2873,16015;
 	setarray .@items[1],2873,16015;
 	setarray .@names$[1],"Cat Hand Glove","Cat Club";
 	setarray .@names$[1],"Cat Hand Glove","Cat Club";
 	while(1) {
 	while(1) {
-		set .@i, select(
+		.@i = select(
 			"[Cat Hand Glove] 32 E-Coins/200 Cans",
 			"[Cat Hand Glove] 32 E-Coins/200 Cans",
 			"[Cat Club] 32 E-Coins/200 Cans",
 			"[Cat Club] 32 E-Coins/200 Cans",
 			"End purchasing."
 			"End purchasing."
@@ -762,7 +757,7 @@ malangdo,150,135,5	script	Roving Merchant	495,{
 	setarray .@items[1],12639,12637,12638,12640;
 	setarray .@items[1],12639,12637,12638,12640;
 	setarray .@names$[1],"Flying Fish","Sow Bug","Dried Squid","Starfish";
 	setarray .@names$[1],"Flying Fish","Sow Bug","Dried Squid","Starfish";
 	while(1) {
 	while(1) {
-		set .@i, select(
+		.@i = select(
 			"[Flying Fish] 200 Cans",
 			"[Flying Fish] 200 Cans",
 			"[Sow Bug] 200 Cans",
 			"[Sow Bug] 200 Cans",
 			"[Dried Squid] 200 Cans",
 			"[Dried Squid] 200 Cans",
@@ -835,55 +830,57 @@ malangdo,150,135,5	script	Roving Merchant	495,{
 
 
 // Eclage
 // Eclage
 //============================================================
 //============================================================
-ecl_in01,66,95,2	script	Armor Merchant Naphara	436,{
+ecl_in01,66,95,3	script	Armor Merchant Naphara#e	436,{
+	if (!checkweight(1301,3)) {
+		mes "- Stop Here!! -";
+		mes "- You have too many items. -";
+		mes "- You cannot carry any more items. -";
+		mes "- Lighten your load and -";
+		mes "- try again. -";
+		close;
+	}
 	mes "[Armor Merchant]";
 	mes "[Armor Merchant]";
 	mes "Hello, this is Naphara's store, a place of high class goods.";
 	mes "Hello, this is Naphara's store, a place of high class goods.";
 	mes "What would you need?";
 	mes "What would you need?";
 	next;
 	next;
-	set .@i, select("Str Glove:Int Glove:Agi Glove:Vit Glove:Dex Glove:Luk Glove");
+	.@choice = select("Str Glove:Int Glove:Agi Glove:Vit Glove:Dex Glove:Luk Glove") -1;
 	mes "[Armor Merchant]";
 	mes "[Armor Merchant]";
-	switch(.@i) {
-	case 1: // Str Glove
+	switch(.@choice) {
+	case 0: // Str Glove
 		mes "^3131FFStr Glove^000000";
 		mes "^3131FFStr Glove^000000";
 		mes "^3131FFMHP + 100, MSP + 20^000000";
 		mes "^3131FFMHP + 100, MSP + 20^000000";
 		mes "^3131FFATK+1 increases for every STR+10^000000";
 		mes "^3131FFATK+1 increases for every STR+10^000000";
 		mes "^3131FFATK +1% added above STR 110^000000";
 		mes "^3131FFATK +1% added above STR 110^000000";
-		set .@item,2917; //Str_Glove
 		break;
 		break;
-	case 2:
+	case 1:
 		mes "^3131FFInt Glove^000000";
 		mes "^3131FFInt Glove^000000";
 		mes "^3131FFMHP + 100, MSP + 20^000000";
 		mes "^3131FFMHP + 100, MSP + 20^000000";
 		mes "^3131FFMATK+1 increases for every INT+10^000000";
 		mes "^3131FFMATK+1 increases for every INT+10^000000";
 		mes "^3131FFMATK +1% added above INT 110^000000";
 		mes "^3131FFMATK +1% added above INT 110^000000";
-		set .@item,2918; //Int_Glove
 		break;
 		break;
-	case 3:
+	case 2:
 		mes "^3131FFAgi Glove^000000";
 		mes "^3131FFAgi Glove^000000";
 		mes "^3131FFMHP + 100, MSP + 20^000000";
 		mes "^3131FFMHP + 100, MSP + 20^000000";
 		mes "^3131FFFLEE+1 increases for every AGI+10^000000";
 		mes "^3131FFFLEE+1 increases for every AGI+10^000000";
 		mes "^3131FFComplete Flee +1 added above AGI 110^000000";
 		mes "^3131FFComplete Flee +1 added above AGI 110^000000";
-		set .@item,2919; //Agi_Glove
 		break;
 		break;
-	case 4:
+	case 3:
 		mes "^3131FFVit Glove^000000";
 		mes "^3131FFVit Glove^000000";
 		mes "^3131FFMHP + 100, MSP + 20^000000";
 		mes "^3131FFMHP + 100, MSP + 20^000000";
 		mes "^3131FFMHP+50 for every VIT+10^000000";
 		mes "^3131FFMHP+50 for every VIT+10^000000";
 		mes "^3131FFMHP+1% added above VIT 110^000000";
 		mes "^3131FFMHP+1% added above VIT 110^000000";
-		set .@item,2920; //Vit_Glove
 		break;
 		break;
-	case 5:
+	case 4:
 		mes "^3131FFDex Glove^000000";
 		mes "^3131FFDex Glove^000000";
 		mes "^3131FFMHP + 100, MSP + 20^000000";
 		mes "^3131FFMHP + 100, MSP + 20^000000";
 		mes "^3131FFHIT+1 increases for every DEX+10^000000";
 		mes "^3131FFHIT+1 increases for every DEX+10^000000";
 		mes "^3131FFRanged attack power +1% added above DEX 110^000000";
 		mes "^3131FFRanged attack power +1% added above DEX 110^000000";
-		set .@item,2921; //Dex_Glove
 		break;
 		break;
-	case 6:
+	case 5:
 		mes "^3131FFLuk Glove^000000";
 		mes "^3131FFLuk Glove^000000";
 		mes "^3131FFMHP + 100, MSP + 20^000000";
 		mes "^3131FFMHP + 100, MSP + 20^000000";
 		mes "^3131FFCRI+1 increases for every LUK+10^000000";
 		mes "^3131FFCRI+1 increases for every LUK+10^000000";
 		mes "^3131FFCritical damage +1% added above LUK 110^000000";
 		mes "^3131FFCritical damage +1% added above LUK 110^000000";
-		set .@item,2922; //Luk_Glove
 		break;
 		break;
 	}
 	}
 	mes "^3131FFRequired Level: 100^000000";
 	mes "^3131FFRequired Level: 100^000000";
@@ -895,81 +892,156 @@ ecl_in01,66,95,2	script	Armor Merchant Naphara	436,{
 	mes "It costs 10 Splendide Coins.";
 	mes "It costs 10 Splendide Coins.";
 	mes "Would you like to buy it?";
 	mes "Would you like to buy it?";
 	next;
 	next;
-	if(select("Buy it.:Don't buy it.") == 2)
-		close;
-	if (countitem(6081) < 10) {
+	if (select("Buy it.:Don't buy it.")==1) {
+		if (countitem(6081) < 10) {
+			mes "[Armor Merchant]";
+			mes "It seems like you don't have enough coins.";
+			close;
+		}
+		delitem 6081,10; //Splendide_Coin
+		getitem (.@choice+2917),1;
 		mes "[Armor Merchant]";
 		mes "[Armor Merchant]";
-		mes "It seems like you don't have enough coins.";
-		close;
+		mes "Great, it's yours. Thank you.";
 	}
 	}
-	mes "[Armor Merchant]";
-	mes "Here you go!"; //custom
-	delitem 6081,10; //Splendide_Coin
-	getitem .@item,1;
 	close;
 	close;
 }
 }
 
 
-ecl_in01,64,97,4	script	Slot Expert Nattuer#ecl	436,{
+ecl_in01,64,97,5	script	Slot Expert Nattuer#ecl	436,{
+	disable_items;
 	mes "[Slot Expert]";
 	mes "[Slot Expert]";
 	mes "I am Slot Expert Nattuer.";
 	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.";
 	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;
 	next;
-	if(select("Activate a Slot.:Forget it.") == 2)
+	if (select("Activate a Slot.:Forget it.") == 2){
 		close;
 		close;
+	}
 	mes "[Slot Expert]";
 	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.";
 	mes "Slot activation is an extremely difficult procedure that can fail even with heightened care and the use of a magnifying lens.";
 	next;
 	next;
 	mes "[Slot Expert]";
 	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?";
 	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;
 	next;
-	if(select("Continue.:Forget it.") == 2)
+	if (select("Continue.:Forget it.") == 2) {
 		close;
 		close;
+	}
 	mes "[Slot Expert]";
 	mes "[Slot Expert]";
 	mes "Which item would you like to activate with a Slot?";
 	mes "Which item would you like to activate with a Slot?";
 	next;
 	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];
+	.@choice = select("Str Glove:Int Glove:Ag Glove:Vit Glove:Dex Glove:Luk Glove");
+	.@choice += 2916;
 	mes "[Slot Expert]";
 	mes "[Slot Expert]";
-	mes "Let's confirm for the last time. Is the one you want "+getitemname(.@item)+"?";
+	mes "Let's confirm for the last time. Is the one you want " + getitemname(.@choice) + "?";
 	next;
 	next;
-	if(select("Yes:No") == 2) {
+	if (select("Yes:No")==2) {
 		mes "[Slot Expert]";
 		mes "[Slot Expert]";
 		mes "Why don't you talk to me when you know for sure.";
 		mes "Why don't you talk to me when you know for sure.";
 		close;
 		close;
 	}
 	}
-	if (countitem(.@item) == 0) {
+	if (countitem(.@choice) < 1) {
 		mes "[Slot Expert]";
 		mes "[Slot Expert]";
 		mes "You don't have that item. Why don't you talk to me when you know for sure.";
 		mes "You don't have that item. Why don't you talk to me when you know for sure.";
 		close;
 		close;
 	}
 	}
 	if (countitem(6081) < 5) {
 	if (countitem(6081) < 5) {
 		mes "[Slot Expert]";
 		mes "[Slot Expert]";
-		mes "You don't have enough coins. Why don't you talk to me when you know for sure."; //custom
+		mes "You don't have enough coins. Why don't you talk to me when you know for sure.";
 		close;
 		close;
 	}
 	}
+	progressbar "0xFFFF00",3;
+	mes "[Slot Expert]";
 	delitem 6081,5; //Splendide_Coin
 	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.";
+	.@luckyday = rand(1,99);
+	if (.@luckyday % 20){
+		emotion e_dots;
+		delitem .@choice,1;
+		mes "Shoot, I'm sorry. It failed.";
+		mes "But I'm sure it will work next time. I have a feeling.";
 		close;
 		close;
 	}
 	}
-	mes "[Slot Expert]";
-	mes "Success! I've activated the slot.";
-	getitem .@new_item,1;
+	emotion e_no1;
+	delitem .@choice,1;
+	getitem (.@choice+6),1;
+	mes "My eyes feel like they're gonna pop out.";
+	mes "Nonetheless, congratulations. Slot activation was successful.";
+	close;
+}
+
+ecl_in01,33,98,5	script	Armor Merchant Naphara#a	443,{ // Armor Merchant Naphara#ec - Too long changed.
+	if (checkweight(1301,1)==0) {
+		mes "- Stop Here!! -";
+		mes "- You have too many items. -";
+		mes "- You cannot carry any more items. -";
+		mes "- Lighten your load and -";
+		mes "- try again. -";
+		close;
+	}
+	mes "[Herb Merchant]";
+	mes "Welcome, this is Plafina's Herb Store where only the freshest herbs are provided~!";
+	next;
+	.@item = select("Snow Flip:Peony Mommy:Slapping Herb:Yggdrasil Dust:End conversation")-1;
+	if (.@item == 4){
+		mes "[Herb Merchant]";
+		mes "Come back anytime.";
+		close;
+	}
+	mes "[Herb Merchant]";
+	switch (.@item){
+	case 0:
+		mes "Snow Flip has special effects on ^3131FFBurning, Bleeding, Deep Sleep, Sleep^000000.";
+		break;
+	case 1:
+		mes "Peony Mamy has special effects on ^3131FFFrost, Frozen, Freezing^000000";
+		break;
+	case 2:
+		mes "Slapping Herb has special effects on ^3131FFStun, Fear, Chaos, Hallucination^000000";
+		break;
+	case 3:
+		mes "Yggdrasil Dust has special effects on ^3131FFBlind, Curse, Decrease Agility, Reverse Orcish^000000.";
+		break;
+	}
+	mes "Requires 5 seconds between uses.";
+	mes "It costs "+ .cost[.@item] +" Splendide Coins for each.";
+	next;
+	.@buy = select("Buy 1.:Buy 10.:Don't buy.");
+	if (.@buy == 3){
+		close;
+	}
+	if (.@buy == 2){
+		.@buy = 10;
+	}
+	mes "[Herb Merchant]";
+	mes "Would you like to buy "+ .@buy +" "+ getitemname(.items[.@item]) +"?";
+	next;
+	if (select("Buy.:Don't buy.") == 2){
+		close;
+	}
+	if (countitem(6081) < (.cost[.@item]*.@buy) ) {
+		mes "[Herb Merchant]";
+		mes "You don't have enough coins.";
+		close;
+	}
+	mes "[Herb Merchant]";
+	mes "Thank you for your business.";
+	delitem 6081,.cost[.@item]*.@buy; //Splendide_Coin
+	getitem .items[.@item],.@buy;
 	close;
 	close;
+	
+OnInit:
+	setarray .items[0],12812,12813,12814,12815;
+	setarray .cost[0],5,5,1,1;	//Splendide Coins
+	end;
 }
 }
 
 
-ecl_in01,67,39,4	script	Replication Expert Palt	445,{
+ecl_in01,67,39,4	script	Replication Expert Paltu	445,{
+	if (checkweight(1301,3) == 0) {
+		mes "You have too many items to continue.";
+		close;
+	}
 	emotion e_lv;
 	emotion e_lv;
 	mes "[Paltu]";
 	mes "[Paltu]";
 	mes "Woohoo- Greetings. What are you looking for? Lots of goods here.";
 	mes "Woohoo- Greetings. What are you looking for? Lots of goods here.";
 	next;
 	next;
-	switch(select("No thanks.:Replication?:I know you got lots up your sleeve!")) {
+	switch (select("No thanks.:Replication?:I know you got lots up your sleeve!")) {
 	case 1:
 	case 1:
 		emotion e_an;
 		emotion e_an;
 		mes "[Paltu]";
 		mes "[Paltu]";
@@ -1028,16 +1100,16 @@ ecl_in01,67,39,4	script	Replication Expert Palt	445,{
 		mes "[Paltu]";
 		mes "[Paltu]";
 		mes "What do you think? I'll make it happen as long as I have the ingredients and the compensation.";
 		mes "What do you think? I'll make it happen as long as I have the ingredients and the compensation.";
 		next;
 		next;
-		if(select("I'll do it later.:Show me what you got!") == 1) {
+		if (select("I'll do it later.:Show me what you got!") == 1) {
 			emotion e_dots;
 			emotion e_dots;
 			mes "[Paltu]";
 			mes "[Paltu]";
 			mes "What? Are you kidding me? Please tell me you are!";
 			mes "What? Are you kidding me? Please tell me you are!";
 			close;
 			close;
 		}
 		}
 		break;
 		break;
-	case 3:
-		break;
 	}
 	}
+	disable_items;
+	emotion e_lv2;
 	mes "[Paltu]";
 	mes "[Paltu]";
 	mes "Oh wow.";
 	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.";
 	mes "You made the right call. I thought I was going to starve to death because the Laphines have no interest in pretty hats.";
@@ -1048,59 +1120,84 @@ ecl_in01,67,39,4	script	Replication Expert Palt	445,{
 	mes "[Paltu]";
 	mes "[Paltu]";
 	mes "Is there something you had in mind? Why don't you take a look?";
 	mes "Is there something you had in mind? Why don't you take a look?";
 	next;
 	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
-		19554, //C_Hahoe_Mask
-		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) {
+	setarray .@items[0], 5447, 2269, 2256, 5040, 5171, 5038, 5096, 2286, 5176, 5016;
+	setarray .@costumes[0], 19548, 19552, 19549, 19550, 19546, 19547, 19553, 19551, 19554, 19545;
+	if ((countitem(6081) >= 50) && (countitem(747) >= 4) && countitem(6395) && (countitem(721) >= 10) && (countitem(723) >= 10) && (countitem(726) >= 10) && (countitem(728) >= 10) && (countitem(729) >= 10))
+		.@item_check =1;
+	for(.@i = 0; .@i<getarraysize(.@items); .@i++) {
 		if (.@item_check && countitem(.@items[.@i]))
 		if (.@item_check && countitem(.@items[.@i]))
-			set .@menu$, .@menu$+getitemname(.@items[.@i])+":"; //custom
+			.@menu$ = .@menu$+getitemname(.@items[.@i])+" (^2502FDAble to Replicate^000000):";
 		else
 		else
-			set .@menu$, .@menu$+getitemname(.@items[.@i])+" (^777777Insufficient ingredients^000000):";
+			.@menu$ = .@menu$+getitemname(.@items[.@i])+" (^777777Insufficient ingredients^000000):";
 	}
 	}
-	set .@i, select(.@menu$)-1;
-	set .@item, .@items[.@i];
-	set .@new_item, .@costumes[.@i];
+	.@i = select(.@menu$)-1;
 	mes "[Paltu]";
 	mes "[Paltu]";
-	mes "Is ^0571B0"+getitemname(.@item)+"^000000 what you wanted?";
+	mes "Is ^0571B0"+getitemname(.@items[.@i])+"^000000 what you wanted?";
 	next;
 	next;
-	if (.@item_check == 0 || countitem(.@item) == 0) {
+	if (.@item_check == 0 || countitem(.@items[.@i]) == 0) {
 		emotion e_sob;
 		emotion e_sob;
 		mes "[Paltu]";
 		mes "[Paltu]";
 		mes "Ay... Credit purchases are difficult for me.";
 		mes "Ay... Credit purchases are difficult for me.";
 		next;
 		next;
 		mes "[Paltu]";
 		mes "[Paltu]";
-		mes "^0571B0"+getitemname(.@item)+"^000000 and";
+		mes "^0571B0"+getitemname(.@items[.@i])+"^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.";
 		mes "^E1281E50 Splendide Coins, 4 Crystal Mirrors, 1 Fairy Magic Powder, 10 of each Emerald, Ruby, Sapphire, Topaz, and Zircon^000000 are necessary.";
 		next;
 		next;
 		mes "[Paltu]";
 		mes "[Paltu]";
 		mes "I'm in a tight spot myself. Please consider my situation also.";
 		mes "I'm in a tight spot myself. Please consider my situation also.";
 		close;
 		close;
 	}
 	}
-	//custom to the end
-	if(select("Continue.:Forget it.") == 2)
+	emotion e_what;
+	mes "[Paltu]";
+	mes "Yes, this is more than enough. Should I make it now?";
+	next;
+	if (select("Please make it now.:Oops, I have to take care of something...") == 2) {
+		emotion e_omg;
+		mes "[Paltu]";
+		mes "Hey.. Hey! Hey! Where you going?";
 		close;
 		close;
-	delitem .@item,1;
+	}
+	emotion e_omg;
+	mes "[Paltu]";
+	mes "I got it. Oh right! Almost forgot again.";
+	next;
+	mes "[Paltu]";
+	mes "^FF0000In the process of replication, magic intervention phenomenon causes the hat to lose all of its refinements, cards, and hidden enchantments.^000000";
+	next;
+	mes "[Paltu]";
+	mes "^FF0000And if you possess multiple hats of the same type, the one you don't want can undergo the replication process, so please check to make sure.^000000";
+	next;
+	mes "[Paltu]";
+	mes "So any problems with that?";
+	next;
+	if (select("Let me go check.:Start the replication process.") == 1) {
+		mes "[Paltu]";
+		mes "Yeah, please make sure!";
+		close;
+	}
+	emotion e_gg;
+	mes "[Paltu]";
+	mes "Woohoo- Got it.";
+	mes "It's finally time for me to use my skills again.";
+	next;
+	emotion e_swt2;
+	mes "[Paltu]";
+	mes "Do this thing here, and do that thing there, and then do this thing here again...";
+	next;
+	emotion e_dots;
+	emotion e_swt2;
+	mes "[Paltu]";
+	mes "... .. ...";
+	specialeffect EF_BEGINSPELL;
+	progressbar "0xFFFF00",1;
+	specialeffect EF_BEGINSPELL2;
+	progressbar "0xFFFF00",1;
+	specialeffect EF_BEGINSPELL3;
+	progressbar "0xFFFF00",1;
+	specialeffect EF_BEGINSPELL4;
+	progressbar "0xFFFF00",1;
+	specialeffect EF_MVP;
+	next;
 	delitem 6081,50; //Splendide_Coin
 	delitem 6081,50; //Splendide_Coin
 	delitem 747,4; //Crystal_Mirror
 	delitem 747,4; //Crystal_Mirror
 	delitem 6395,1; //Angel_Magic_Power
 	delitem 6395,1; //Angel_Magic_Power
@@ -1109,73 +1206,10 @@ ecl_in01,67,39,4	script	Replication Expert Palt	445,{
 	delitem 726,10; //Blue_Jewel
 	delitem 726,10; //Blue_Jewel
 	delitem 728,10; //Golden_Jewel
 	delitem 728,10; //Golden_Jewel
 	delitem 729,10; //Bluish_Green_Jewel
 	delitem 729,10; //Bluish_Green_Jewel
-	getitem .@new_item,1;
+	delitem .@items[.@i],1;
+	getitem .@costumes[.@i],1;
 	mes "[Paltu]";
 	mes "[Paltu]";
-	mes "Thank you so much! As promised, here is your costume.";
+	mes "Good. This is a satisfying result.";
+	mes "I'll do even a better job next time. Please tell others about my work. Have a good day~";
 	close;
 	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;
-}

File diff suppressed because it is too large
+ 17525 - 1207
npc/re/quests/quests_eclage.txt


+ 1 - 0
npc/re/scripts_athena.conf

@@ -58,6 +58,7 @@ npc: npc/re/instances/MalangdoCulvert.txt
 npc: npc/re/instances/OctopusCave.txt
 npc: npc/re/instances/OctopusCave.txt
 npc: npc/re/instances/OldGlastHeim.txt
 npc: npc/re/instances/OldGlastHeim.txt
 npc: npc/re/instances/WolfchevLaboratory.txt
 npc: npc/re/instances/WolfchevLaboratory.txt
+npc: npc/re/instances/EclageInterior.txt
 
 
 // ---------------- Kafras & Cool Event Corp. -------------------
 // ---------------- Kafras & Cool Event Corp. -------------------
 npc: npc/re/kafras/kafras.txt
 npc: npc/re/kafras/kafras.txt

+ 1 - 1
npc/re/scripts_warps.conf

@@ -16,7 +16,7 @@ npc: npc/re/warps/cities/yggdrasil.txt
 // -------------------------- Dungeons --------------------------
 // -------------------------- Dungeons --------------------------
 npc: npc/re/warps/dungeons/bra_dun.txt
 npc: npc/re/warps/dungeons/bra_dun.txt
 npc: npc/re/warps/dungeons/dic_dun.txt
 npc: npc/re/warps/dungeons/dic_dun.txt
-npc: npc/re/warps/dungeons/ecl_tdun.txt
+npc: npc/re/warps/dungeons/ecl_dun.txt
 npc: npc/re/warps/dungeons/iz_dun.txt
 npc: npc/re/warps/dungeons/iz_dun.txt
 npc: npc/re/warps/dungeons/moc_pryd.txt
 npc: npc/re/warps/dungeons/moc_pryd.txt
 
 

+ 39 - 19
npc/re/warps/cities/eclage.txt

@@ -3,32 +3,52 @@
 //===== By: ==================================================
 //===== By: ==================================================
 //= Chilly
 //= Chilly
 //===== Current Version: =====================================
 //===== Current Version: =====================================
-//= 1.0a
-//===== Compatible With: =====================================
+//= 1.1
+//===== Compatible With: ===================================== 
 //= rAthena Project
 //= rAthena Project
 //===== Description: =========================================
 //===== Description: =========================================
 //= Warp Points for Eclage
 //= Warp Points for Eclage
 //===== Additional Comments: =================================
 //===== Additional Comments: =================================
 //= 1.0 First Version.
 //= 1.0 First Version.
 //= 1.0a Disabled quest warp. [Euphy]
 //= 1.0a Disabled quest warp. [Euphy]
+//= 1.1 Warps corresponds to official co-ordinates and
+//=	Warp Portal official names. [Dastgir]
 //============================================================
 //============================================================
 
 
 // Town Warps
 // 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,207,72,0	warp	fild01-1_biffild	1,1,bif_fild02,294,350
+bif_fild02,292,351,0	warp	biffild_fild01-1	1,1,ecl_fild01,205,76
 //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
-ecl_in01,8,67,0	warp	eclage_field0007	1,1,ecl_hub01,38,94
-ecl_hub01,40,95,0	warp	eclage_field0008	1,1,ecl_in01,11,67
-ecl_hub01,22,109,0	warp	eclage_field0009	1,1,ecl_in02,98,7
-ecl_in02,98,4,0	warp	eclage_field0010	1,1,ecl_hub01,23,107
-ecl_in02,81,18,0	warp	eclage_field0011	1,1,ecl_in02,157,65
-ecl_in02,157,68,0	warp	eclage_field0012	1,1,ecl_in02,83,18
-ecl_in01,84,68,0	warp	eclage_field0013	1,1,ecl_hub01,107,107
-ecl_hub01,107,110,0	warp	eclage_field0014	1,1,ecl_in01,81,68
-ecl_hub01,127,95,0	warp	eclage_field0015	1,1,ecl_hub01,18,31
-ecl_hub01,18,34,0	warp	eclage_field0016	1,1,ecl_hub01,124,95
-ecl_hub01,40,14,0	warp	eclage_field0017	1,1,ecl_in03,144,17
-ecl_in03,144,14,0	warp	eclage_field0018	1,1,ecl_hub01,40,11
+eclage,98,26,0	warp	eclageS_EclEnter	1,1,eclage,100,28
+eclage,299,309,0	warp	eclageN_in01s	1,1,ecl_in01,47,11
+ecl_in01,47,8,0	warp	in01s_eclageN	1,1,eclage,297,307
+ecl_in01,8,67,0	warp	in01w_hub1-1	1,1,ecl_hub01,38,94
+ecl_hub01,40,95,0	warp	hub1-1_in01w	1,1,ecl_in01,11,67
+ecl_hub01,22,109,0	warp	hub1-2_in02-1	1,1,ecl_in02,99,7
+ecl_in02,98,4,0	warp	in02-1_hub1-2	1,1,ecl_hub01,23,107
+ecl_in02,80,18,0	warp	in02-2_in02-3	1,1,ecl_in02,157,66
+ecl_in02,157,68,0	warp	in02-3_in02-2	1,1,ecl_in02,83,18
+ecl_in01,84,68,0	script	in01e_hub2-1	45,1,1,{
+	end;
+OnTouch:
+	if (ep14_2_mylord == 29)
+		warp "ecl_hub01",106,31;
+	else
+		warp "ecl_hub01",107,107;
+	end;
+}
+ecl_hub01,107,110,0	warp	hub2-1_in01e	1,1,ecl_in01,82,68
+ecl_hub01,127,95,0	warp	hub2-2_hub3-1	1,1,ecl_hub01,18,32
+ecl_hub01,18,34,0	script	hub3-1_hub2-2	45,1,1,{
+	end;
+OnTouch:
+	if (ep14_2_mylord == 29)
+		warp "ecl_hub01",135,14;
+	else
+		warp "ecl_hub01",125,94;
+	end;
+}
+ecl_hub01,40,14,0	warp	hub3-2_in03	1,1,ecl_in03,144,17
+ecl_in03,144,14,0	warp	in03_hub3-2	1,1,ecl_hub01,40,11
+ecl_hub01,105,36,0	warp	hub4-1_in01e	1,1,ecl_in01,82,68
+ecl_hub01,138,17,0	warp	hub4-2_hub3-1	1,1,ecl_hub01,18,32

+ 26 - 0
npc/re/warps/dungeons/ecl_dun.txt

@@ -0,0 +1,26 @@
+//===== rAthena Script =======================================
+//= Eclage Dungeon Warp Script
+//===== By: ==================================================
+//= Chilly
+//===== Current Version: =====================================
+//= 1.1
+//===== Compatible With: ===================================== 
+//= rAthena Project
+//===== Description: =========================================
+//= Warp Portals for Eclage Dungeon
+//===== Additional Comments: =================================
+//= 1.0 First Version.
+//= 1.1 Corrected Warp Co-ordinates and 
+//=      name of Warp Portal. [Dastgir]
+//============================================================
+
+ecl_fild01,182,82,0	warp	Tenter_TOut	1,1,ecl_tdun01,60,13
+ecl_tdun01,61,11,0	warp	TOut_Tenter	1,1,ecl_fild01,182,85
+ecl_tdun01,67,106,0	warp	tdun1up_tdun2dn	1,1,ecl_tdun02,60,88
+ecl_tdun02,60,90,0	warp	tdun2dn_tdun1up	1,1,ecl_tdun01,70,105
+ecl_tdun02,52,9,0	warp	tdun2up_tdun3dn	1,1,ecl_tdun03,47,13
+ecl_tdun03,49,11,0	warp	tdun3dn_tdun2up	1,1,ecl_tdun02,50,11
+ecl_tdun03,50,46,0	warp	tdun3up_tdun4dn	1,1,ecl_tdun04,26,24
+ecl_tdun04,26,26,0	warp	tdun4dn_tdun3up	1,1,ecl_tdun03,50,44
+ecl_tdun04,34,17,0	warp	tdun4-1_ttop	1,1,ecl_fild01,183,73
+ecl_fild01,183,70,0	warp	ttop_tdun4-1	1,1,ecl_tdun04,33,19

+ 1 - 1
src/char/int_storage.c

@@ -379,7 +379,7 @@ int mapif_parse_itembound_retrieve(int fd)
 	if (j) {
 	if (j) {
 		StringBuf buf2;
 		StringBuf buf2;
 		StringBuf_Init(&buf2);
 		StringBuf_Init(&buf2);
-		StringBuf_Printf(&buf2, "UPDATE `%s` SET %s WHERE `char_id`='%d", schema_config.char_db, StringBuf_Value(&buf), char_id);
+		StringBuf_Printf(&buf2, "UPDATE `%s` SET %s WHERE `char_id`='%d'", schema_config.char_db, StringBuf_Value(&buf), char_id);
 
 
 		if( SQL_ERROR == SqlStmt_PrepareStr(stmt, StringBuf_Value(&buf)) ||
 		if( SQL_ERROR == SqlStmt_PrepareStr(stmt, StringBuf_Value(&buf)) ||
 			SQL_ERROR == SqlStmt_Execute(stmt) )
 			SQL_ERROR == SqlStmt_Execute(stmt) )

+ 7 - 6
src/common/mmo.h

@@ -277,13 +277,14 @@ struct storage_data {
 	struct item items[MAX_STORAGE];
 	struct item items[MAX_STORAGE];
 };
 };
 
 
+/// Guild storgae struct
 struct guild_storage {
 struct guild_storage {
-	bool dirty;
-	int guild_id;
-	short storage_amount;
-	struct item items[MAX_GUILD_STORAGE];
-	bool locked;
-	int opened; /// Holds the char_id that open the storage
+	bool dirty; ///< Dirty status, need to be saved
+	int guild_id; ///< Guild ID
+	short storage_amount; ///< Amount of item on storage
+	struct item items[MAX_GUILD_STORAGE]; ///< Item entries
+	bool locked; ///< If locked, can't use storage when item bound retrieval
+	uint32 opened; ///< Holds the char_id that open the storage
 };
 };
 
 
 struct s_pet {
 struct s_pet {

+ 2 - 2
src/map/mob.c

@@ -4513,7 +4513,7 @@ static bool mob_readdb_itemratio(char* str[], int columns, int current)
 	nameid = atoi(str[0]);
 	nameid = atoi(str[0]);
 
 
 	if (itemdb_exists(nameid) == NULL) {
 	if (itemdb_exists(nameid) == NULL) {
-		ShowWarning("itemdb_read_itemratio: Invalid item id %hu.\n", nameid);
+		ShowWarning("mob_readdb_itemratio: Invalid item id %hu.\n", nameid);
 		return false;
 		return false;
 	}
 	}
 
 
@@ -4527,7 +4527,7 @@ static bool mob_readdb_itemratio(char* str[], int columns, int current)
 	for (i = 0; i < columns-2; i++) {
 	for (i = 0; i < columns-2; i++) {
 		uint16 mob_id = atoi(str[i+2]);
 		uint16 mob_id = atoi(str[i+2]);
 		if (mob_db(mob_id) == mob_dummy)
 		if (mob_db(mob_id) == mob_dummy)
-			ShowError("itemdb_read_itemratio: Invalid monster with ID %hu (Item:%hu Col:%d).\n", mob_id, nameid, columns);
+			ShowError("mob_readdb_itemratio: Invalid monster with ID %hu (Item:%hu Col:%d).\n", mob_id, nameid, columns);
 		else
 		else
 			item_ratio->mob_id[i] = atoi(str[i+2]);
 			item_ratio->mob_id[i] = atoi(str[i+2]);
 	}
 	}

+ 4 - 2
src/map/skill.c

@@ -2388,7 +2388,7 @@ static int skill_area_temp[8];
 short skill_blown(struct block_list* src, struct block_list* target, char count, int8 dir, unsigned char flag)
 short skill_blown(struct block_list* src, struct block_list* target, char count, int8 dir, unsigned char flag)
 {
 {
 	int dx = 0, dy = 0;
 	int dx = 0, dy = 0;
-	int reason = 0, checkflag = 0;
+	uint8 reason = 0, checkflag = 0;
 
 
 	nullpo_ret(src);
 	nullpo_ret(src);
 	nullpo_ret(target);
 	nullpo_ret(target);
@@ -12895,7 +12895,9 @@ int skill_unit_onplace_timer(struct skill_unit *unit, struct block_list *bl, uns
 
 
 					if( td )
 					if( td )
 						sec = DIFF_TICK(td->tick, tick);
 						sec = DIFF_TICK(td->tick, tick);
-					if( !unit_blown_immune(bl,0x1) ) {
+					if( (sg->unit_id == UNT_MANHOLE && bl->type == BL_PC)
+						|| !unit_blown_immune(bl,0x1) )
+					{
 						unit_movepos(bl, unit->bl.x, unit->bl.y, 0, 0);
 						unit_movepos(bl, unit->bl.x, unit->bl.y, 0, 0);
 						clif_fixpos(bl);
 						clif_fixpos(bl);
 					}
 					}

+ 4 - 1
src/map/status.c

@@ -10052,7 +10052,6 @@ int status_change_start(struct block_list* src, struct block_list* bl,enum sc_ty
 		case SC_ELECTRICSHOCKER:
 		case SC_ELECTRICSHOCKER:
 		case SC_BITE:
 		case SC_BITE:
 		case SC_THORNSTRAP:
 		case SC_THORNSTRAP:
-		case SC__MANHOLE:
 		//case SC__CHAOS:
 		//case SC__CHAOS:
 		case SC_CRYSTALIZE:
 		case SC_CRYSTALIZE:
 		case SC_CURSEDCIRCLE_ATKER:
 		case SC_CURSEDCIRCLE_ATKER:
@@ -10067,6 +10066,10 @@ int status_change_start(struct block_list* src, struct block_list* bl,enum sc_ty
 			if (!unit_blown_immune(bl,0x1))
 			if (!unit_blown_immune(bl,0x1))
 				unit_stop_walking(bl,1);
 				unit_stop_walking(bl,1);
 			break;
 			break;
+		case SC__MANHOLE:
+			if (bl->type == BL_PC || !unit_blown_immune(bl,0x1))
+				unit_stop_walking(bl,1);
+			break;
 		case SC_HIDING:
 		case SC_HIDING:
 		case SC_CLOAKING:
 		case SC_CLOAKING:
 		case SC_CLOAKINGEXCEED:
 		case SC_CLOAKINGEXCEED:

+ 6 - 6
src/map/unit.c

@@ -1097,9 +1097,10 @@ int unit_blown(struct block_list* bl, int dx, int dy, int count, int flag)
  *		5 - target has 'special_state.no_knockback';
  *		5 - target has 'special_state.no_knockback';
  *		6 - target is trap that cannot be knocked back
  *		6 - target is trap that cannot be knocked back
  */
  */
-int unit_blown_immune(struct block_list* bl, int flag)
+uint8 unit_blown_immune(struct block_list* bl, uint8 flag)
 {
 {
-	if ((flag&0x1) && (map_flag_gvg(bl->m) || map[bl->m].flag.battleground)
+	if ((flag&0x1)
+		&& (map_flag_gvg(bl->m) || map[bl->m].flag.battleground)
 		&& ((flag&0x2) || !(battle_config.skill_trap_type&0x1)))
 		&& ((flag&0x2) || !(battle_config.skill_trap_type&0x1)))
 		return 1; // No knocking back in WoE / BG
 		return 1; // No knocking back in WoE / BG
 
 
@@ -1118,16 +1119,15 @@ int unit_blown_immune(struct block_list* bl, int flag)
 		case BL_PC: {
 		case BL_PC: {
 				struct map_session_data *sd = BL_CAST(BL_PC, bl);
 				struct map_session_data *sd = BL_CAST(BL_PC, bl);
 				// Basilica caster can't be knocked-back by normal monsters.
 				// Basilica caster can't be knocked-back by normal monsters.
-				if( sd->sc.data[SC_BASILICA] && sd->sc.data[SC_BASILICA]->val4 == sd->bl.id && !(flag&0x4))
+				if( !(flag&0x4) && &sd->sc && sd->sc.data[SC_BASILICA] && sd->sc.data[SC_BASILICA]->val4 == sd->bl.id)
 					return 4;
 					return 4;
 				// Target has special_state.no_knockback (equip)
 				// Target has special_state.no_knockback (equip)
-				if( (flag&0x1) && (flag&0x2) && sd->special_state.no_knockback )
+				if( (flag&(0x1|0x2)) && sd->special_state.no_knockback )
 					return 5;
 					return 5;
 			}
 			}
 			break;
 			break;
 		case BL_SKILL: {
 		case BL_SKILL: {
-				struct skill_unit* su = NULL;
-				su = (struct skill_unit *)bl;
+				struct skill_unit* su = (struct skill_unit *)bl;
 				// Trap cannot be knocked back
 				// Trap cannot be knocked back
 				if (su && su->group && skill_get_unit_flag(su->group->skill_id)&UF_NOKNOCKBACK)
 				if (su && su->group && skill_get_unit_flag(su->group->skill_id)&UF_NOKNOCKBACK)
 					return 6;
 					return 6;

+ 1 - 1
src/map/unit.h

@@ -100,7 +100,7 @@ int unit_warp(struct block_list *bl, short map, short x, short y, clr_type type)
 int unit_setdir(struct block_list *bl, unsigned char dir);
 int unit_setdir(struct block_list *bl, unsigned char dir);
 uint8 unit_getdir(struct block_list *bl);
 uint8 unit_getdir(struct block_list *bl);
 int unit_blown(struct block_list* bl, int dx, int dy, int count, int flag);
 int unit_blown(struct block_list* bl, int dx, int dy, int count, int flag);
-int unit_blown_immune(struct block_list* bl, int flag);
+uint8 unit_blown_immune(struct block_list* bl, uint8 flag);
 
 
 // Can-reach checks
 // Can-reach checks
 bool unit_can_reach_pos(struct block_list *bl,int x,int y,int easy);
 bool unit_can_reach_pos(struct block_list *bl,int x,int y,int easy);

Some files were not shown because too many files changed in this diff