This commit is contained in:
aleos89 2015-01-16 11:22:44 -05:00
commit ee6e47b7c2
19 changed files with 19459 additions and 1587 deletions

View File

@ -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!" 7431,82800,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" 7432,0,2363,5,2364,5,0,0,"The troublemakers in the land of blooming flowers"
7433,0,0,0,0,0,0,0,"Need constant guidance" 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" 13059,79200,0,0,0,0,0,0,"End of project"
13060,86400,0,0,0,0,0,0,"Safety confirmation complete!" 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" 13062,79200,0,0,0,0,0,0,"Food support - complete"
13063,0,0,0,0,0,0,0,"Dusting off" 13063,0,2365,20,0,0,0,0,"Dusting off"
13064,86400,0,0,0,0,0,0,"Dusting off - complete" 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"

View File

@ -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

View File

@ -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

View File

@ -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_in02,96,22,3 script sign#prison_inn 545,{
//============================================================
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....";
close;
}
// Eclage Prison & Clinic
//============================================================
ecl_in01,8,71,4 script Eclage Guard#pri_inn 447,{
mes "[Eclage Guard]";
mes "This path will take you to the lower parts of Eclage. You'll find a prison and a clinic there.";
close;
}
ecl_in02,96,22,2 script Sign#prison_inn 835,{
mes "[North] Prison"; mes "[North] Prison";
mes "[West] Clinic"; mes "[West] Clinic";
close; close;
} }
ecl_in02,164,56,2 script Receptionist#Laphine 437,{ ecl_in01,8,71,5 script Eclage Guard#pri_inn 447,{
mes "[Eclage Guard]";
mes "This path will take you to the lower parts of Eclage. You'll find a prison and a clinic there.";
close;
}
ecl_in02,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) { if (!countitem(6081)) {
mes "[Receptionist]"; 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 mes "[Receptionist}";
break; 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; mes "[Receptionist}";
break; 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

View File

@ -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;

View File

@ -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;
}

View File

@ -3,8 +3,8 @@
//===== By: ================================================== //===== By: ==================================================
//= rAthena Dev Team //= rAthena Dev Team
//===== Current Version: ===================================== //===== Current Version: =====================================
//= 1.2 //= 1.3
//===== Compatible With: ===================================== //===== 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:"; .@menu$ = "Stop:";
for(set .@i,1; .@i<=6; set .@i,.@i+1) { 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]; .@coin = .@coins[.@i-1];
set .@coin_select, .@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. if (.@exchange_id[0] == .@coins[1]) .@exchange_id[0] = 0; // Cannot exchange for Silvervine.
set .@menu$,"Stop:"; .@menu$ = "Stop:";
for(set .@i,0; .@i<2; set .@i,.@i+1) { 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:"; .@menu$ = "Explanation:";
for(set .@i,0; .@i<getargcount(); set .@i,.@i+3) for(.@i = 0; .@i<getargcount(); .@i += 3)
set .@menu$, .@menu$+getarg(.@i)+":"; .@menu$ += getarg(.@i)+":";
set .@i, select(.@menu$)-2; .@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$,""; .@menu$ = "";
for(set .@i,0; .@i<getarraysize(.@coin_amount); set .@i,.@i+1) { 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:"; .@menu$ = "Quit:";
for(set .@i,1; .@i<=6; set .@i,.@i+1) { 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; .@payment_amount = 99;
set .@reward_amount, .@payment_amount/3; .@reward_amount = .@payment_amount/3;
set .@coin_text$,"High"; .@coin_text$ = "High";
break; break;
case 1: case 1:
set .@payment_amount,(((countitem(.@coin) > 500))?500:countitem(.@coin)); .@payment_amount = (((countitem(.@coin) > 500))?500:countitem(.@coin));
set .@reward_amount, .@payment_amount*3; .@reward_amount = .@payment_amount*3;
set .@coin_text$,"Low"; .@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; .@check = 1;
set .@count,1; .@count = 1;
break; break;
case 3: case 3:
set .@check,10; .@check = 10;
set .@count,10; .@count = 10;
break; break;
case 4: case 4:
set .@check,100; .@check = 100;
set .@count,100; .@count = 100;
break; break;
case 5: case 5:
set .@check,1; .@check = 1;
set .@count,countitem(12633); .@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; .@type = 1;
set .@menu$,"Yes.:No, I'll purchase with cans.:I don't want to purchase any."; .@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; .@type = 2;
set .@menu$,"Yes.::No."; .@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; .@type = 3;
set .@menu$,"Yes.::I don't want to purchase any."; .@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 .@item = 6422; //Egrade_Coin
set .@amount,getarg(4); .@amount = getarg(4);
set .@str$,"coins"; .@str$ = "coins";
break; break;
case 2: case 2:
set .@item,12636; //Malang_Sp_Can .@item = 12636; //Malang_Sp_Can
set .@amount,getarg(5); .@amount = getarg(5);
set .@str$,"cans"; .@str$ = "cans";
break; break;
case 3: case 3:
set .@item,6417; //Silvervine .@item = 6417; //Silvervine
set .@amount,getarg(6); .@amount = getarg(6);
set .@str$,"Silvervine Fruit"; .@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) { switch(.@choice) {
case 1: // Str Glove 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) if (select("Buy it.:Don't buy it.")==1) {
close; if (countitem(6081) < 10) {
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."; mes "Great, it's yours. Thank you.";
close;
} }
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; .@choice = select("Str Glove:Int Glove:Ag Glove:Vit Glove:Dex Glove:Luk Glove");
setarray .@slotted[0],2923,2924,2925,2926,2927,2928; .@choice += 2916;
set .@i, select("Str Glove:Int Glove:Ag Glove:Vit Glove:Dex Glove:Luk Glove")-1;
set .@item, .@noslots[.@i];
set .@new_item, .@slotted[.@i];
mes "[Slot Expert]"; mes "[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;
}
delitem 6081,5; //Splendide_Coin
delitem .@item,1;
//custom to the end
if (rand(100) < 5) {
mes "[Slot Expert]";
mes "Oh no, it failed! I'm sorry, but I warned you this could happen. Better luck next time.";
close; close;
} }
progressbar "0xFFFF00",3;
mes "[Slot Expert]"; mes "[Slot Expert]";
mes "Success! I've activated the slot."; delitem 6081,5; //Splendide_Coin
getitem .@new_item,1; .@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;
}
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; close;
} }
ecl_in01,67,39,4 script Replication Expert Palt 445,{ 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;
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 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], setarray .@items[0], 5447, 2269, 2256, 5040, 5171, 5038, 5096, 2286, 5176, 5016;
5447, //Frog_Cap setarray .@costumes[0], 19548, 19552, 19549, 19550, 19546, 19547, 19553, 19551, 19554, 19545;
2269, //Centimental_Flower if ((countitem(6081) >= 50) && (countitem(747) >= 4) && countitem(6395) && (countitem(721) >= 10) && (countitem(723) >= 10) && (countitem(726) >= 10) && (countitem(728) >= 10) && (countitem(729) >= 10))
2256, //Magestic_Goat .@item_check =1;
5040, //Blush for(.@i = 0; .@i<getarraysize(.@items); .@i++) {
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) {
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; .@i = select(.@menu$)-1;
set .@item, .@items[.@i];
set .@new_item, .@costumes[.@i];
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 emotion e_what;
if(select("Continue.:Forget it.") == 2) 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 Load Diff

View File

@ -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

View File

@ -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

View File

@ -3,32 +3,52 @@
//===== By: ================================================== //===== By: ==================================================
//= Chilly //= Chilly
//===== Current Version: ===================================== //===== Current Version: =====================================
//= 1.0a //= 1.1
//===== Compatible With: ===================================== //===== 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 fild01-1_biffild 1,1,bif_fild02,294,350
ecl_fild01,207,72,0 warp eclage_field0002 1,1,bif_fild02,294,349 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,98,26,0 warp eclageS_EclEnter 1,1,eclage,100,28
eclage,299,309,0 warp eclage_field0005 1,1,ecl_in01,47,11 eclage,299,309,0 warp eclageN_in01s 1,1,ecl_in01,47,11
ecl_in01,47,8,0 warp eclage_field0006 1,1,eclage,297,307 ecl_in01,47,8,0 warp in01s_eclageN 1,1,eclage,297,307
ecl_in01,8,67,0 warp eclage_field0007 1,1,ecl_hub01,38,94 ecl_in01,8,67,0 warp in01w_hub1-1 1,1,ecl_hub01,38,94
ecl_hub01,40,95,0 warp eclage_field0008 1,1,ecl_in01,11,67 ecl_hub01,40,95,0 warp hub1-1_in01w 1,1,ecl_in01,11,67
ecl_hub01,22,109,0 warp eclage_field0009 1,1,ecl_in02,98,7 ecl_hub01,22,109,0 warp hub1-2_in02-1 1,1,ecl_in02,99,7
ecl_in02,98,4,0 warp eclage_field0010 1,1,ecl_hub01,23,107 ecl_in02,98,4,0 warp in02-1_hub1-2 1,1,ecl_hub01,23,107
ecl_in02,81,18,0 warp eclage_field0011 1,1,ecl_in02,157,65 ecl_in02,80,18,0 warp in02-2_in02-3 1,1,ecl_in02,157,66
ecl_in02,157,68,0 warp eclage_field0012 1,1,ecl_in02,83,18 ecl_in02,157,68,0 warp in02-3_in02-2 1,1,ecl_in02,83,18
ecl_in01,84,68,0 warp eclage_field0013 1,1,ecl_hub01,107,107 ecl_in01,84,68,0 script in01e_hub2-1 45,1,1,{
ecl_hub01,107,110,0 warp eclage_field0014 1,1,ecl_in01,81,68 end;
ecl_hub01,127,95,0 warp eclage_field0015 1,1,ecl_hub01,18,31 OnTouch:
ecl_hub01,18,34,0 warp eclage_field0016 1,1,ecl_hub01,124,95 if (ep14_2_mylord == 29)
ecl_hub01,40,14,0 warp eclage_field0017 1,1,ecl_in03,144,17 warp "ecl_hub01",106,31;
ecl_in03,144,14,0 warp eclage_field0018 1,1,ecl_hub01,40,11 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

View File

@ -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

View File

@ -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) )

View File

@ -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; bool dirty; ///< Dirty status, need to be saved
int guild_id; int guild_id; ///< Guild ID
short storage_amount; short storage_amount; ///< Amount of item on storage
struct item items[MAX_GUILD_STORAGE]; struct item items[MAX_GUILD_STORAGE]; ///< Item entries
bool locked; bool locked; ///< If locked, can't use storage when item bound retrieval
int opened; /// Holds the char_id that open the storage uint32 opened; ///< Holds the char_id that open the storage
}; };
struct s_pet { struct s_pet {

View File

@ -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]);
} }

View File

@ -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);
} }

View File

@ -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:

View File

@ -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; struct skill_unit* su = (struct skill_unit *)bl;
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;

View File

@ -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);