1022 lines
35 KiB
Plaintext
1022 lines
35 KiB
Plaintext
//===== rAthena Script =======================================
|
|
//= Episode 16.2 - Illusion Enchants
|
|
//===== Description: =========================================
|
|
//= [Walkthrough Conversion]
|
|
//= Illusion series related merchants and enchanters
|
|
// Note:
|
|
// - Some dialog are missing in Illusion of Luanda exchange NPC.
|
|
//===== Changelog: ===========================================
|
|
//= 1.0 Initial release of Illusion of Moonlight [crazyarashi]
|
|
//= 1.1 Cleanup and improvements [Everade]
|
|
//= 1.2 Added Illusion of Vampire enchanter [Capuche]
|
|
//= 1.3 Added Illusion of Frozen enchanter [Capuche]
|
|
//= 1.4 Added Illusion of Turtle enchanter [Capuche]
|
|
//= 1.5 Added Illusion of Luanda enchanter [Capuche]
|
|
//= 1.6 Added Illusion of Underwater exchange [Capuche]
|
|
//= 1.7 Added Illusion of Twins enchanter [Capuche]
|
|
//= 1.8 Added Illusion Merchant [Haydrich]
|
|
//= 1.9 Added Illusion of Teddy Bear exchange [Atemo]
|
|
//= 1.10 Added Illusion of Labyrinth enchanter [Atemo]
|
|
//============================================================
|
|
|
|
//============================================================
|
|
//= Illusion of Moonlight
|
|
//============================================================
|
|
pay_d03_i,160,45,3 script Gemcutter#ilp20 4_TOWER_17,3,3,{
|
|
mes "[ Gemcutter ]";
|
|
mes "Do you have business with me?";
|
|
next;
|
|
switch( select( "What are you doing here?", "Upgrade equipments" ) ) {
|
|
case 1:
|
|
mes "[ Gemcutter ]";
|
|
mes "I came to the ruined village,";
|
|
mes "looking for some materials. Touched some strange light, and now I'm here.";
|
|
next;
|
|
mes "[ Gemcutter ]";
|
|
mes "I've decided to stick around for a little while. Figured I'd be safe so long as I stay close to this soldier.";
|
|
mes "I have a proposition for you. I want some materials that can only be found in this place.";
|
|
next;
|
|
mes "[ Gemcutter ]";
|
|
mes "Get them for me, and I'll improve your equipment in exchange. Just so you know, I can only improve certain types.";
|
|
next;
|
|
mes "[ Gemcutter ]";
|
|
mes "If you're interested, we can discuss the details of our bargain.";
|
|
close;
|
|
case 2:
|
|
mes "[ Gemcutter ]";
|
|
mes "Make sure ^0000FFyour equipment is refined to at least +9^000000 before bringing it to me.";
|
|
mes "That's the minimum requirement for my upgrade service to have any visible effects on your equipment.";
|
|
next;
|
|
mes "[ Gemcutter ]";
|
|
mes "Make sure you're ^0000FFequipped with the item that you want to improve.^000000";
|
|
mes "Otherwise, I can't evaluate its condition.";
|
|
next;
|
|
mes "[ Gemcutter ]";
|
|
mes "As you may have guessed, your equipment will transform into something new after this.";
|
|
mes "In other words, ^0000FFIt'll lose its current refining levels, cards and enchantments.^000000";
|
|
next;
|
|
mes "[ Gemcutter ]";
|
|
mes "And I need ^0000FFIllusion Stones and some other materials^000000 to upgrade your equipment.";
|
|
mes "Pick an item you want and I'll tell you what I need.";
|
|
close2;
|
|
callshop( "barter_ill_moonlight" );
|
|
end;
|
|
}
|
|
end;
|
|
|
|
OnTouch:
|
|
if (illusion_moonlight > 7)
|
|
npctalk "What kind of place is this?", "", bc_self;
|
|
end;
|
|
}
|
|
|
|
|
|
//============================================================
|
|
//= Illusion of Vampire
|
|
//============================================================
|
|
gef_dun01,139,228,3 script Great Merchant#illgef 4_M_HUMERCHANT,{
|
|
mes "[Great Merchant]";
|
|
mes "Adventurer, do you have ^0000cdIllusion Stones^000000? If you have a ^0000cdweapon, a piece armor^000000, or ^0000cdan accessory at Refining Level 9 or higher^000000, ";
|
|
mes "then I can exchange it for something better at the cost of some Illusion Stones and other materials.";
|
|
next;
|
|
mes "[Great Merchant]";
|
|
mes "So, what do you want?";
|
|
next;
|
|
switch( select( "Exchange illusion equipment", "What are Illusion Stones?", "Can I strengthen the exchanged item?", "Cancel" ) ) {
|
|
case 1:
|
|
specialeffect EF_HFLIMOON3;
|
|
emotion ET_BEST;
|
|
mes "[Great Merchant]";
|
|
mes "Use it well and come see me later if you find more Illusion Stones! *Chuckle*";
|
|
close2;
|
|
callshop( "barter_ill_vampire" );
|
|
end;
|
|
case 2:
|
|
mes "[Great Merchant]";
|
|
mes "What are ^0000cdIllusion Stones^000000, you ask? Well... I don't think anyone knows exactly what they are.";
|
|
next;
|
|
mes "[Great Merchant]";
|
|
mes "I only know they're rare and can only be found in some special places, and I'm here to collect them for my clients.";
|
|
next;
|
|
mes "[Great Merchant]";
|
|
mes "My clients want to figure out what these stones are. They're paying me a lot of money,";
|
|
next;
|
|
mes "[Great Merchant]";
|
|
mes "so I could offer adventurers like you ^0000cdexpensive equipment in exchange for the stones^000000, and still fetch a profit.";
|
|
next;
|
|
mes "[Great Merchant]";
|
|
mes "Bring ^0000cda piece of refined equipment, Illusion Stones^000000, and various materials that are only found in this place. I'll ^0000cdupgrade the equipment, weapon, armor, or accessory?^000000for you.";
|
|
next;
|
|
mes "[Great Merchant]";
|
|
mes "This benefits both of us. Let me know if you're interested in my proposition.";
|
|
close;
|
|
case 3:
|
|
mes "[Great Merchant]";
|
|
mes "So, you want to reinforce the equipment you get. You're thorough. I like that!";
|
|
next;
|
|
mes "[Great Merchant]";
|
|
mes "A while ago, an adventurer who passed through this place told me that a chemist in Prontera refines the Illusion equipment in exchange for Illusion Stones.";
|
|
next;
|
|
mes "[Great Merchant]";
|
|
mes "It seems Illusion Stones are a popular topic everywhere. Everyone wants to know about what they are.";
|
|
next;
|
|
mes "[Great Merchant]";
|
|
mes "If you want to refine your equipment, then go to the <NAVI>Illusion Enchanter<INFO>prontera,90,115,000,0,</INFO></NAVI> near the Town Office.";
|
|
close;
|
|
case 4:
|
|
mes "[Great Merchant]";
|
|
mes "Did you find anything you liked? If you need anything, please let me know at any time.";
|
|
close;
|
|
}
|
|
end;
|
|
}
|
|
|
|
//============================================================
|
|
//= Illusion of Frozen
|
|
//============================================================
|
|
|
|
// illusion exchange npc - trade items for illusion gears
|
|
ice_dun02,153,18,3 script Illusion Stone Research 4_M_ALCHE_B,{
|
|
disable_items;
|
|
mes "[Illusion Stone Researcher]";
|
|
mes "Ah, Illusion Stones are truly mysterious...";
|
|
next;
|
|
switch( select( "What are you doing here?", "Upgrade equipments", "Cancel" ) ) {
|
|
case 1:
|
|
mes "[Illusion Stone Researcher]";
|
|
mes "I'm here to find some Illusion Stones that I need for my research.";
|
|
next;
|
|
mes "[Illusion Stone Researcher]";
|
|
mes "This cave is very mysterious, but I'm not strong enough to explore it by myself.";
|
|
mes "If you go in there, could you procure some things for me?";
|
|
next;
|
|
mes "[Illusion Stone Researcher]";
|
|
mes "In exchange, I'll improve your equipment.";
|
|
mes "What do you say?";
|
|
close;
|
|
case 2:
|
|
mes "[Illusion Stone Researcher]";
|
|
mes "Make sure ^4d4dffyour equipment is refined to at least +9^000000 before bringing it to me.";
|
|
mes "Make sure you're ^4d4dffequipped with the item that you want to improve^000000.";
|
|
next;
|
|
mes "[Illusion Stone Researcher]";
|
|
mes "As you may have guessed, your equipment will transform into something new after this.";
|
|
mes "In other words, ^4d4dffit'll lose its current Refining and Upgrade levels.^000000";
|
|
next;
|
|
mes "[Illusion Stone Researcher]";
|
|
mes "And I need ^4d4dffIllusion Stones and some other materials^000000 to upgrade your equipment.";
|
|
mes "Pick an item you want. I'll tell you what I need.";
|
|
close2;
|
|
callshop( "barter_ill_frozen" );
|
|
end;
|
|
case 3:
|
|
mes "[Illusion Stone Researcher]";
|
|
mes "It's just hard to get..";
|
|
close;
|
|
}
|
|
end;
|
|
}
|
|
|
|
|
|
// illusion enhancing - enhance the illusion gears
|
|
// note: unknown enhance rate
|
|
prontera,90,115,5 script Illusion Enchanter#0 4_GEFFEN_09,3,3,{
|
|
if (checkweight(1201,1) == 0 || MaxWeight - Weight < 2000) {
|
|
mes "I'm overweight. I'd better lighten my bag first.";
|
|
close;
|
|
}
|
|
disable_items;
|
|
if (isbegin_quest(12415) == 0) {
|
|
mes "[Illusion Enchanter]";
|
|
mes "Oh, do you have Illusion equipment?";
|
|
next;
|
|
select("No. I don't even know what Illusion equipment is.");
|
|
mes "[Illusion Enchanter]";
|
|
mes "Oops, I'm sorry. I should've introduced myself first.";
|
|
next;
|
|
mes "[Illusion Enchanter]";
|
|
mes "I'm a chemist specializing in the study of Illusion Stones, which have been circulating among adventurers.";
|
|
next;
|
|
select("Illusion Stones?");
|
|
mes "[Illusion Enchanter]";
|
|
mes "You don't know, don't you? They're the hottest trend these days.";
|
|
next;
|
|
select("I don't care about trends.");
|
|
mes "[Illusion Enchanter]";
|
|
mes "You must have heard about the strange places that have sprung up here and there lately. Illusion Stones are only found in those places,";
|
|
next;
|
|
mes "[Illusion Enchanter]";
|
|
mes "and their atomic structure is unlike any mineral I've seen. *Blah Blah* ...Their chemical chains... *Blah Blah*";
|
|
next;
|
|
select("(Uh-oh, he's zoning out!)");
|
|
mes "[Illusion Enchanter]";
|
|
mes "Anyway, I can enchant equipment that is exchanged for or purchased with Illusion Stones. I call them the Illusion equipment.";
|
|
next;
|
|
select("(He has no sense when it comes to names.)");
|
|
mes "[Illusion Enchanter]";
|
|
mes "This equipment at least responds positively to Illusion Stones, or it has the potential to be enchanted successfully.";
|
|
next;
|
|
mes "[Illusion Enchanter]";
|
|
mes "Explore the worlds of illusions, collect Illusion Stones, and exchange them for equipment. I can enchant the equipment for you.";
|
|
next;
|
|
mes "[Illusion Enchanter]";
|
|
mes "This benefits both of us. I need Illusion Stones for my studies, and you need powerful equipment for your adventures.";
|
|
next;
|
|
mes "[Illusion Enchanter]";
|
|
mes "That said, my service is not for free. It requires a few Illusion Stones and Zeny.";
|
|
next;
|
|
mes "[Illusion Enchanter]";
|
|
mes "If you're interested, how'd you like to get a membership for my service? You can get discounts that way!";
|
|
next;
|
|
if (select( "Sure!", "Not interested." ) == 2) {
|
|
mes "[Illusion Enchanter]";
|
|
mes "Okay, but let me know if you change your mind.";
|
|
close;
|
|
}
|
|
mes "[Illusion Enchanter]";
|
|
mes "Alright, then I'll add you to my member list. I hope you'll have some Illusion equipment next time I see you.";
|
|
setquest 12415;
|
|
completequest 12415;
|
|
close;
|
|
}
|
|
mes "[Illusion Enchanter]";
|
|
mes "I can enchant Illusion equipment.";
|
|
next;
|
|
switch( select( "How much do you charge?", "Add stats to Illusion equipment.", "Reset enchanted Illusion equipment." ) ) {
|
|
case 1:
|
|
mes "[Illusion Enchanter]";
|
|
mes "First, let me tell you that I can only enchant certain types of Illusion equipment.";
|
|
next;
|
|
mes "[Illusion Enchanter]";
|
|
mes "Up to 2 sockets can be enchanted, and enchanting each socket requires 5 Illusion Stones. You can reset enchanted Illusion equipment at any time.";
|
|
next;
|
|
mes "[Illusion Enchanter]";
|
|
mes "Enchanting never fails, but resetting sometimes failes. Even modern science can't change that.";
|
|
next;
|
|
mes "[Illusion Enchanter]";
|
|
mes "Resetting requires a different amount of Zeny depending on the success chance you choose. Select the menu if you'd like to see the available payment options.";
|
|
close;
|
|
case 2:
|
|
.@reset = false;
|
|
break;
|
|
case 3:
|
|
.@reset = true;
|
|
break;
|
|
}
|
|
setarray .@location[0], EQI_HAND_R, EQI_ARMOR, EQI_SHOES, EQI_GARMENT, EQI_ACC_R, EQI_ACC_L, EQI_HEAD_TOP, EQI_HAND_L;
|
|
.@s = select( "Right-handed Weapon", "Armor", "Shoes", "Garment", "Right Accessory", "Left accessory", "Helm (Upper)", "Left-handed Weapon/Shield" ) - 1;
|
|
.@loc = .@location[.@s];
|
|
.@eq_id = getequipid(.@loc);
|
|
|
|
switch(.@eq_id) {
|
|
// Illusion of Moonlight
|
|
case 15195: // Puente_Robe_IL
|
|
case 16063: // Long_Mace_IL
|
|
case 19209: // Nurse_Cap_IL
|
|
case 20838: // Muffler_IL
|
|
case 19210: // Apple_Of_Archer_IL
|
|
case 22133: // Shoes_IL
|
|
case 26007: // Spectral_Spear_IL
|
|
case 26109: // Staff_Of_Bordeaux_IL
|
|
case 28725: // Moonlight_Sword_IL
|
|
// Illusion of Vampire
|
|
case 28022: // Infiltrator_IL
|
|
case 28023: // Ghoul_Leg_IL
|
|
case 2039: // Wizardy_Staff_IL
|
|
case 18149: // Balistar_IL
|
|
case 28612: // Book_Of_The_Apo_IL
|
|
case 20840: // Cape_Of_Ancient_Lord_IL
|
|
case 28508: // Skul_Ring_IL
|
|
case 28509: // Ring_IL
|
|
// Illusion of Frozen
|
|
case 1846: // Combo_Battle_Glove_IL
|
|
case 13337: // Huuma_Flutter_Snow_IL
|
|
case 19223: // Cap_IL
|
|
case 28922: // Herald_Of_GOD_IL
|
|
case 20847: // Clack_Of_Servival_IL
|
|
// Illusion of Teddy bear
|
|
case 28745: // Illusion_Counter_Dagger
|
|
case 28244: // Illusion_Gate_Keeper_DD
|
|
case 2051: // Illusion_Survivor's_Staff
|
|
case 22190: // Illusion_Boots
|
|
case 19344: // Illusion_Hot_blooded_Headband
|
|
// Illusion of Turtle
|
|
case 13469: // Illusion_Immaterial_Sword
|
|
case 1326: // Illusion_War_Axe
|
|
case 32005: // Illusion_Pole_Axe
|
|
case 13338: // Illusion_Wing_Shuriken
|
|
case 16065: // Illusion_Iron_Driver
|
|
case 19247: // Illusion_Fancy_Flower
|
|
// Illusion of Twins
|
|
case 450182: // Sprint_Mail_IL
|
|
case 470066: // Sprint_Shoes_IL
|
|
case 490120: // Sprint_Ring_IL
|
|
case 490121: // Sprint_Glove_IL
|
|
case 550030: // Thorn_Staff_IL
|
|
case 550031: // Dea_Staff_IL
|
|
case 530015: // Gelerdria_IL
|
|
case 500030: // Excalibur_IL
|
|
case 620010: // Doom_Slayer_IL
|
|
case 510034: // Ancient_Dagger_IL
|
|
case 460017: // Guard_IL
|
|
case 460018: // Siver_Guard_IL
|
|
// Illusion of Luanda
|
|
case 28626: // Illusion_Tablet
|
|
case 18174: // Illusion_Hunter_Bow
|
|
case 19366: // Illusion_Goibne_Helm
|
|
case 15348: // Illusion_Goibne_Armor
|
|
case 20923: // Illusion_Goibne_Spaulders
|
|
case 22192: // Illusion_Goibne's_Greaves
|
|
// Illusion of Labyrinth
|
|
case 19428: // Illusion_Morpheus's_Hood
|
|
case 20948: // Illusion_Morpheus's_Shawl
|
|
case 32238: // Illusion_Morpheus's_Ring
|
|
case 32239: // Illusion_Morpheus's_Bracelet
|
|
case 28254: // Illusion_Butcher
|
|
case 21050: // Illusion_Tae_Goo_Lyeon
|
|
case 32301: // Illusion_Gold_Lux
|
|
case 28762: // Illusion_Bazerald
|
|
// Illusion of underwater
|
|
case 570008: // Electronic_Guitar_IL
|
|
case 580008: // Electric_Eel_IL
|
|
case 630006: // Brionac_IL
|
|
case 610012: // KatarOfCold_Icicle_IL
|
|
case 600011: // Death_Guidance_IL
|
|
case 630007: // Zephyrus_IL
|
|
case 450144: // Saint_Robe_IL
|
|
case 450145: // Water_Sprits_Armor_IL
|
|
case 450146: // Chain_Mail_IL
|
|
case 400053: // Morrigane's_Helm_IL
|
|
case 480054: // Morrigane's_Manteau_IL
|
|
case 490069: // Morrigane's_Belt_IL
|
|
case 490070: // Morrigane's_Pendant_IL
|
|
break;
|
|
case -1:
|
|
mes "[Illusion Enchanter]";
|
|
mes "You must be equipped with an item in the selected location to have it enchanted.";
|
|
close;
|
|
default:
|
|
mes "[Illusion Enchanter]";
|
|
mes "This equipment is not from a world of fantastic illusions. I'm offended that you even showed it to me.";
|
|
close;
|
|
}
|
|
|
|
for ( .@i = 0; .@i < MAX_ITEM_RDM_OPT-1; ++.@i ) {
|
|
if (getequiprandomoption(.@loc, .@i, ROA_ID) > 0) {
|
|
mes "^ff0000Random options are checked for that equipment. The equipment cannot be enchanted.^000000";
|
|
close;
|
|
}
|
|
}
|
|
|
|
.@weapon_lvl = getequipweaponlv(.@loc);
|
|
.@loc_enchant = .@loc; // variable for enhancing function
|
|
|
|
switch(.@weapon_lvl) {
|
|
case 0:
|
|
break;
|
|
case 1:
|
|
case 2:
|
|
case 3:
|
|
if (.@loc_enchant == EQI_HAND_L)
|
|
.@loc_enchant = EQI_HAND_R; // the equipment is a weapon so the enchantments must be for weapons
|
|
break;
|
|
default: // illusion weapon level 4 can't be enhanced
|
|
mes "[Illusion Enchanter]";
|
|
mes "This is the best of all Illusion equipment. There's no technology available in this day and age that can enchant it. Even the most skilled enchanter can't do that.";
|
|
next;
|
|
mes "[Illusion Enchanter]";
|
|
mes "Well, not unless he's willing to risk his mental and physical health.";
|
|
next;
|
|
mes "[Illusion Enchanter]";
|
|
mes "But who knows? Maybe someday you'll meet someone who is talented enough to handle this precious equipment.";
|
|
close;
|
|
}
|
|
|
|
.@refine = getequiprefinerycnt(.@loc);
|
|
.@card[0] = getequipcardid(.@loc,0);
|
|
.@card[1] = getequipcardid(.@loc,1);
|
|
.@card[2] = getequipcardid(.@loc,2);
|
|
.@card[3] = getequipcardid(.@loc,3);
|
|
|
|
switch(.@reset) {
|
|
case false:
|
|
.@item_req = 25271; // IllusionStone
|
|
.@item_req_count = 5;
|
|
|
|
if (.@card[2] > 0 && .@card[3] > 0) {
|
|
mes "[Illusion Enchanter]";
|
|
mes "This equipment is already enchanted to the maximum limit.";
|
|
close;
|
|
}
|
|
if (.@weapon_lvl > 0) {
|
|
mes "[Illusion Enchanter]";
|
|
mes "What kind of effect would you like to add?";
|
|
next;
|
|
.@weapon_enchant_type = select( "Melee", "Ranged", "Magic" );
|
|
}
|
|
mes "[Illusion Enchanter]";
|
|
if (.@card[3] > 0) {
|
|
.@slot = 2;
|
|
.@string$ = "second";
|
|
}
|
|
else {
|
|
.@slot = 3;
|
|
.@string$ = "first";
|
|
}
|
|
mes "I'll try to enchant the " + .@string$ + " ability for your item. ^ff0000Its existing Refining level and cards will not be damaged. It will not be destroyed, even if this attempt fails.^000000 Do you want to continue?";
|
|
next;
|
|
if (select( "I'll come back later.", "Sure!" ) == 1) {
|
|
mes "[Illusion Enchanter]";
|
|
mes "No problem. Come back if you change your mind.";
|
|
close;
|
|
}
|
|
if (countitem(.@item_req) < .@item_req_count) {
|
|
mes "[Illusion Enchanter]";
|
|
mes "This item requires " + .@item_req_count + " " + getitemname(.@item_req) + ", and you don't have all that I need from you.";
|
|
close;
|
|
}
|
|
|
|
// anti-hack
|
|
if (callfunc("F_IsEquipIDHack", .@loc, .@eq_id) || callfunc("F_IsEquipCardHack", .@loc, .@card[0], .@card[1], .@card[2], .@card[3]) || callfunc("F_IsEquipRefineHack", .@loc, .@refine))
|
|
close;
|
|
|
|
.@card[.@slot] = callsub( S_Enchant, .@loc_enchant, .@slot, .@weapon_enchant_type );
|
|
delitem .@item_req, .@item_req_count;
|
|
delequip .@loc;
|
|
getitem2 .@eq_id,1,1,.@refine,0,.@card[0],.@card[1],.@card[2],.@card[3];
|
|
mes "[Illusion Enchanter]";
|
|
mes "It's done. Please check.";
|
|
specialeffect2 EF_REPAIRWEAPON;
|
|
close;
|
|
|
|
case true:
|
|
if (!F_IsCharm(.@card[2]) || !F_IsCharm(.@card[3])) {
|
|
mes "[Illusion Enchanter]";
|
|
mes "Only fully enchanted items can be reset. Please enchant it twice, and if you still want to reset it, then bring it to me.";
|
|
close;
|
|
}
|
|
mes "[Illusion Enchanter]";
|
|
mes "Your resetting chance varies, depending on the amount of Zeny you pay. What would you like to do?";
|
|
next;
|
|
.@s = select( "I'll come back later.", "100,000 Zeny (50%)", "200,000 Zeny (60%)", "300,000 Zeny (70%)", "400,000 Zeny (80%)", "500,000 Zeny (90%)" ) - 1;
|
|
if (.@s == 0) {
|
|
mes "[Illusion Enchanter]";
|
|
mes "No problem. Come back if you change your mind.";
|
|
close;
|
|
}
|
|
.@cost = 100000 * .@s;
|
|
.@rate = 40 + 10 * .@s;
|
|
|
|
if (Zeny < .@cost) {
|
|
mes "[Illusion Enchanter]";
|
|
mes "You don't have enough money.";
|
|
close;
|
|
}
|
|
|
|
// anti-hack
|
|
if (callfunc("F_IsEquipIDHack", .@loc, .@eq_id) || callfunc("F_IsEquipCardHack", .@loc, .@card[0], .@card[1], .@card[2], .@card[3]) || callfunc("F_IsEquipRefineHack", .@loc, .@refine))
|
|
close;
|
|
|
|
Zeny -= .@cost;
|
|
delequip .@loc;
|
|
if (rand(100) < .@rate) {
|
|
getitem2 .@eq_id,1,1,.@refine,0,.@card[0],.@card[1],0,0;
|
|
mes "[Illusion Enchanter]";
|
|
mes "It's done. Please check.";
|
|
specialeffect2 EF_REPAIRWEAPON;
|
|
close;
|
|
}
|
|
mes "[Illusion Enchanter]";
|
|
mes "Ah, that was unfortunate. Well, you can't always be lucky.";
|
|
specialeffect2 EF_LORD;
|
|
close;
|
|
}
|
|
end;
|
|
|
|
S_Enchant:
|
|
.@slot = getarg(1);
|
|
switch( getarg(0)) { // location
|
|
case EQI_HAND_R:
|
|
switch( getarg(2)) {// weapon enchant type
|
|
case 1:// Melee
|
|
switch( .@slot ) {
|
|
case 2:
|
|
case 3:
|
|
// <item ID>, <rate> (unknown)
|
|
setarray .@item[0],
|
|
4700, 1, // Strength1
|
|
4701, 1, // Strength2
|
|
4702, 1, // Strength3
|
|
4703, 1, // Strength4
|
|
4720, 1, // Dexterity1
|
|
4721, 1, // Dexterity2
|
|
4722, 1, // Dexterity3
|
|
4723, 1, // Dexterity4
|
|
4750, 1, // Luck1
|
|
4751, 1, // Luck2
|
|
4752, 1, // Luck3
|
|
4753, 1, // Luck4
|
|
4808, 1, // Fighting_Spirit4
|
|
4809, 1, // Fighting_Spirit3
|
|
4810, 1, // Fighting_Spirit2
|
|
4811, 1, // Fighting_Spirit1
|
|
4820, 1, // Fighting_Spirit5
|
|
29081, 1, // Expect1Lv
|
|
29082, 1, // Expect2Lv
|
|
29083, 1, // Expect3Lv
|
|
29084, 1, // Expect4Lv
|
|
29085, 1, // Expect5Lv
|
|
29061, 1, // Ambition1Lv
|
|
29062, 1, // Ambition2Lv
|
|
29063, 1, // Ambition3Lv
|
|
29064, 1, // Ambition4Lv
|
|
29065, 1, // Ambition5Lv
|
|
4807, 1, // Atk_Speed1
|
|
4842, 1; // Atk_Speed2
|
|
break;
|
|
default:
|
|
return 0;
|
|
}
|
|
break;
|
|
case 2:// Ranged
|
|
switch( .@slot ) {
|
|
case 2:
|
|
case 3:
|
|
// <item ID>, <rate>
|
|
setarray .@item[0],
|
|
4730, 1, // Agility1
|
|
4731, 1, // Agility2
|
|
4732, 1, // Agility3
|
|
4733, 1, // Agility4
|
|
4720, 1, // Dexterity1
|
|
4721, 1, // Dexterity2
|
|
4722, 1, // Dexterity3
|
|
4723, 1, // Dexterity4
|
|
4750, 1, // Luck1
|
|
4751, 1, // Luck2
|
|
4752, 1, // Luck3
|
|
4753, 1, // Luck4
|
|
4807, 1, // Atk_Speed1
|
|
4842, 1, // Atk_Speed2
|
|
4832, 1, // Expert_Archer1
|
|
4833, 1, // Expert_Archer2
|
|
4834, 1, // Expert_Archer3
|
|
4835, 1, // Expert_Archer4
|
|
4836, 1, // Expert_Archer5
|
|
29091, 1, // ArchLine1Lv
|
|
29092, 1, // ArchLine2Lv
|
|
29093, 1, // ArchLine3Lv
|
|
29094, 1, // ArchLine4Lv
|
|
29095, 1, // ArchLine5Lv
|
|
29071, 1, // Tab1Lv
|
|
29072, 1, // Tab2Lv
|
|
29073, 1, // Tab3Lv
|
|
29074, 1, // Tab4Lv
|
|
29075, 1; // Tab5Lv
|
|
break;
|
|
default:
|
|
return 0;
|
|
}
|
|
break;
|
|
case 3:// Magic
|
|
switch( .@slot ) {
|
|
case 2:
|
|
case 3:
|
|
// <item ID>, <rate>
|
|
setarray .@item[0],
|
|
4710, 1, // Inteligence1
|
|
4711, 1, // Inteligence2
|
|
4712, 1, // Inteligence3
|
|
4713, 1, // Inteligence4
|
|
4720, 1, // Dexterity1
|
|
4721, 1, // Dexterity2
|
|
4722, 1, // Dexterity3
|
|
4723, 1, // Dexterity4
|
|
4750, 1, // Luck1
|
|
4751, 1, // Luck2
|
|
4752, 1, // Luck3
|
|
4753, 1, // Luck4
|
|
4812, 1, // Spell4
|
|
4813, 1, // Spell3
|
|
4814, 1, // Spell2
|
|
4815, 1, // Spell1
|
|
4826, 1, // Spell5
|
|
4805, 1, // Heal_Amount2
|
|
4850, 1; // Heal_Amount3
|
|
break;
|
|
default:
|
|
return 0;
|
|
}
|
|
break;
|
|
default:
|
|
return 0;
|
|
}
|
|
break;
|
|
case EQI_ARMOR:
|
|
case EQI_SHOES:
|
|
case EQI_GARMENT:
|
|
case EQI_HAND_L:
|
|
case EQI_HEAD_TOP:
|
|
switch( .@slot ) {
|
|
case 2:
|
|
case 3:
|
|
// <item ID>, <rate>
|
|
setarray .@item[0],
|
|
4700, 700, // Strength1
|
|
4701, 600, // Strength2
|
|
4702, 500, // Strength3
|
|
4703, 200, // Strength4
|
|
4740, 700, // Vitality1
|
|
4741, 600, // Vitality2
|
|
4742, 500, // Vitality3
|
|
4743, 200, // Vitality4
|
|
4710, 700, // Inteligence1
|
|
4711, 600, // Inteligence2
|
|
4712, 500, // Inteligence3
|
|
4713, 200, // Inteligence4
|
|
4750, 700, // Luck1
|
|
4751, 600, // Luck2
|
|
4752, 500, // Luck3
|
|
4753, 200, // Luck4
|
|
4994, 10, // Rune of Strength Lv 1
|
|
4995, 10, // Rune of Strength Lv 2
|
|
4997, 10, // Rune of Agility Lv 1
|
|
4998, 10, // Rune of Agility Lv 2
|
|
29009, 10, // Rune of Vitality Lv 1
|
|
29010, 10, // Rune of Vitality Lv 2
|
|
29000, 10, // Rune of Intellect Lv 1
|
|
29001, 10, // Rune of Intellect Lv 2
|
|
29003, 10, // Rune of Dexterity Lv 1
|
|
29004, 10, // Rune of Dexterity Lv 2
|
|
29006, 10, // Rune of Luck Lv 1
|
|
29007, 10, // Rune of Luck Lv 2
|
|
4861, 700, // MHP1
|
|
4862, 600, // MHP2
|
|
4867, 440, // MHP3
|
|
4868, 100, // MHP4
|
|
4992, 10, // HPAbsorb1_Supplement_Reactor
|
|
4993, 10, // SPAbsorb1_Supplement_Reactor
|
|
29208, 10, // SP_Absorption_2
|
|
29210, 10; // HP_Absorption_23
|
|
break;
|
|
default:
|
|
return 0;
|
|
}
|
|
break;
|
|
case EQI_ACC_L:
|
|
case EQI_ACC_R:
|
|
switch( .@slot ) {
|
|
case 2:
|
|
case 3:
|
|
// <item ID>, <rate>
|
|
setarray .@item[0],
|
|
4700, 576, // Strength1
|
|
4701, 460, // Strength2
|
|
4702, 115, // Strength3
|
|
4703, 11, // Strength4
|
|
4730, 576, // Agility1
|
|
4731, 460, // Agility2
|
|
4732, 115, // Agility3
|
|
4733, 11, // Agility4
|
|
4740, 576, // Vitality1
|
|
4741, 460, // Vitality2
|
|
4742, 115, // Vitality3
|
|
4743, 11, // Vitality4
|
|
4710, 576, // Inteligence1
|
|
4711, 460, // Inteligence2
|
|
4712, 115, // Inteligence3
|
|
4713, 11, // Inteligence4
|
|
4720, 576, // Dexterity1
|
|
4721, 460, // Dexterity2
|
|
4722, 115, // Dexterity3
|
|
4723, 11, // Dexterity4
|
|
4750, 576, // Luck1
|
|
4751, 460, // Luck2
|
|
4752, 115, // Luck3
|
|
4753, 11, // Luck4
|
|
4928, 576, // SP10
|
|
4870, 460, // SP25
|
|
4800, 345, // SP50
|
|
4871, 115, // SP75
|
|
4801, 11, // SP100
|
|
4795, 576, // HP100
|
|
4796, 460, // HP200
|
|
4797, 345, // HP300
|
|
4798, 115, // HP400
|
|
4799, 11; // HP500
|
|
break;
|
|
default:
|
|
return 0;
|
|
}
|
|
break;
|
|
default:
|
|
return 0;
|
|
}
|
|
.@size = getarraysize(.@item);
|
|
for ( .@i = 0; .@i < .@size; .@i += 2 )
|
|
.@total_rate += .@item[.@i+1];
|
|
.@r = rand(.@total_rate);
|
|
for ( .@i = 0; .@i < .@size; .@i += 2 ) {
|
|
.@rate_tmp += .@item[.@i+1];
|
|
if (.@r < .@rate_tmp)
|
|
break;
|
|
}
|
|
return .@item[.@i];
|
|
|
|
OnTouch:
|
|
if (isbegin_quest(12415) == 0)
|
|
npctalk "Illusion Enchanter: Come talk to me if you're interested in the Illusion equipment!", "", bc_self;
|
|
end;
|
|
}
|
|
|
|
|
|
//============================================================
|
|
//= Illusion of Turtle
|
|
//============================================================
|
|
|
|
// Exchange npc
|
|
alberta,226,28,3 script Equipment Researcher 4_TOWER_15,{
|
|
.@illusion_stone_name$ = getitemname(25271);
|
|
|
|
mes "[Equipment Researcher]";
|
|
mes "I'm the one who researches " + .@illusion_stone_name$ + " to enhance armors and weapons.";
|
|
mes "If you have the materials I need for my research, wouldn't you hand them over?";
|
|
mes "If you give me some equipment and some materials, I'll exchange them for my reinforced equipment.";
|
|
next;
|
|
switch( select( "What are you doing here?", "Exchange equipment" ) ) {
|
|
case 1:
|
|
mes "[Equipment Researcher]";
|
|
mes "I'm working on how to use an " + .@illusion_stone_name$ + " to strengthen equipment.";
|
|
mes "I went to go to the place where " + .@illusion_stone_name$ + " was found, and I barely got back..";
|
|
next;
|
|
mes "[Equipment Researcher]";
|
|
mes "I think I met a girl...";
|
|
mes "Anyway, after that, I couldn't find a way to go back.";
|
|
mes "Here, we're getting research materials from adventurers with " + .@illusion_stone_name$ + ", and I'm offering enhanced equipment instead.";
|
|
close;
|
|
case 2:
|
|
mes "[Equipment Researcher]";
|
|
mes "What are the equipment I can exchange? Wait a minute. I'll let you know.";
|
|
next;
|
|
mes "[Equipment Researcher]";
|
|
mes "As a material, you can bring ^0000CDexisting equipment that have been refined to +9 or higher.^000000";
|
|
mes "And I need some ^0000CD" + .@illusion_stone_name$ + " and other materials.^000000";
|
|
next;
|
|
mes "[Equipment Researcher]";
|
|
mes "Of course, we're giving you new equipment, so don't forget that all the existing ^0000CDsmelting and enchantments^000000 will disappear.";
|
|
mes "So, what kind of weapon do you want?";
|
|
close2;
|
|
callshop( "barter_ill_turtle" );
|
|
end;
|
|
}
|
|
}
|
|
|
|
|
|
//============================================================
|
|
//= Illusion of Luanda
|
|
//============================================================
|
|
|
|
// Exchange npc
|
|
com_d02_i,234,266,6 script Village Soap#Lu 4_M_ORIENT01,{
|
|
mes "[Village Soap]";
|
|
mes "I've also rolled up my sleeves for the adventurers who work hard for the village. Can I make your equipment stronger? Is there anything on the list you want?";
|
|
next;
|
|
if (select( "Look at the illusion equipment", "Cancel" ) == 2) {
|
|
mes "[Village Soap]";
|
|
mes "Please come later. Just bring the ingredients and I'll make it for you.";
|
|
close;
|
|
}
|
|
mes "[Village Soap]";
|
|
mes "Who made it? It might be useful for you to take it with you.";
|
|
close2;
|
|
callshop( "barter_ill_luanda" );
|
|
end;
|
|
}
|
|
|
|
|
|
//============================================================
|
|
//= Illusion of Underwater
|
|
//============================================================
|
|
|
|
iz_d04_i,134,228,4 script Horen#Horen 4_M_BIBI,{
|
|
if (checkweight(1201,3) == 0) {
|
|
mes "Conversation cannot proceed because you have too many items.";
|
|
mes "Please clean up your inventory and try again.";
|
|
close;
|
|
}
|
|
mes "[Horen]";
|
|
mes "Hello. If you have rare materials from this place, I can enhance your equipment.";
|
|
next;
|
|
mes "[Horen]";
|
|
mes "Would you like to see upgradeable equipment?";
|
|
next;
|
|
if (select( "Yes", "No" ) == 2) {
|
|
mes "[Horen]";
|
|
mes "Come back if interested.";
|
|
close;
|
|
}
|
|
mes "[Horen]";
|
|
mes "There are many types, so take your time. If you want something, I can enhance it right away.";
|
|
close2;
|
|
callshop( "barter_ill_underwater" );
|
|
end;
|
|
}
|
|
|
|
//============================================================
|
|
//= Illusion of Twins
|
|
//============================================================
|
|
// ant_d02_i,175,186,3 script From#iltw MECHANIC,{
|
|
ant_d02_i,175,186,3 script From#iltw HIDDEN_NPC,{
|
|
if (checkweight(1201,3) == 0) {
|
|
mes "- You cannot proceed with the quest because you have too many items. -";
|
|
close;
|
|
}
|
|
mes "[From]";
|
|
mes "I feel like I'm going crazy.";
|
|
mes "It's because of my mood. I'm human and it's not like you're mistaken.";
|
|
mes "I'll help you if you get a lot here.";
|
|
mes "Do you want to enhance your equipment?";
|
|
close2;
|
|
callshop( "barter_ill_twins" );
|
|
end;
|
|
|
|
OnInit:
|
|
.@npc_id = getnpcid(0);
|
|
setunitdata .@npc_id, UNPC_CLASS, 4058;
|
|
setunitdata .@npc_id, UNPC_SEX, SEX_MALE;
|
|
setunitdata .@npc_id, UNPC_CLOTHCOLOR, 1;
|
|
setunitdata .@npc_id, UNPC_HAIRSTYLE, 11;
|
|
setunitdata .@npc_id, UNPC_HAIRCOLOR, 6;
|
|
end;
|
|
}
|
|
|
|
//============================================================
|
|
//= Illusion Merchant
|
|
//============================================================
|
|
- marketshop market_resonance_stone -1,100003:2000000:99999,100004:2000000:99999
|
|
prontera,88,113,5 script Illusion Merchant#0829 HIDDEN_NPC,{
|
|
mes "[Illusion Merchant]";
|
|
mes "I'm selling two random optional weapon grant scrolls that I made myself. You can choose the payment method you like.";
|
|
next;
|
|
switch( select( "Purchase with Zeny.", "Purchase with Illusion Stones" )) {
|
|
case 1:
|
|
mes "[Illusion Merchant]";
|
|
mes "I hope you like it.";
|
|
close2;
|
|
callshop "market_resonance_stone";
|
|
end;
|
|
case 2:
|
|
mes "[Illusion Merchant]";
|
|
mes "I hope you like it.";
|
|
close2;
|
|
callshop "resonance_stone_barter";
|
|
end;
|
|
}
|
|
OnInit:
|
|
.@npc_id = getnpcid(0);
|
|
setunitdata .@npc_id,UNPC_CLASS, JOB_MAGE_HIGH;
|
|
setunitdata .@npc_id,UNPC_SEX,SEX_FEMALE;
|
|
setunitdata .@npc_id,UNPC_HEADTOP,142;
|
|
setunitdata .@npc_id,UNPC_HEADMIDDLE,92;
|
|
setunitdata .@npc_id,UNPC_HAIRSTYLE,2;
|
|
setunitdata .@npc_id,UNPC_HAIRCOLOR,2;
|
|
|
|
// Restock
|
|
npcshopupdate "market_resonance_stone",100003,2000000,99999;
|
|
npcshopupdate "market_resonance_stone",100004,2000000,99999;
|
|
end;
|
|
}
|
|
|
|
|
|
//============================================================
|
|
//= Illusion of Teddy Bear
|
|
//============================================================
|
|
|
|
ein_d02_i,177,158,3 script Bear Wanting Illusion Stone#ITB 4_NASARIAN,{
|
|
.@item_name$ = getitemname(25271); // IllusionStone
|
|
mes "[Bear Wanting " + .@item_name$ + "]";
|
|
mes "If you give me an " + .@item_name$ + ", I'll do something nice for you!";
|
|
next;
|
|
switch( select( "Reason for being here", "Good thing [Illusion equipment]", "Quit" ) ) {
|
|
case 1:
|
|
mes "[Bear Wanting " + .@item_name$ + "]";
|
|
mes "I don't know why...!";
|
|
mes "The other teddy bears were in line, so I was in line too!";
|
|
mes "Whoaaaaaa!!!!";
|
|
mes "I didn't know it was here!";
|
|
next;
|
|
mes "[Bear Wanting " + .@item_name$ + "]";
|
|
mes "A teddy bear with an " + .@item_name$ + "!";
|
|
mes "Strong!";
|
|
mes "I don't have any " + .@item_name$ + "s!";
|
|
mes "Less... stronger...";
|
|
next;
|
|
mes "[Bear Wanting " + .@item_name$ + "]";
|
|
mes "What are " + .@item_name$ + "s?";
|
|
mes "I don't know but I want some!";
|
|
close;
|
|
case 2:
|
|
mes "[Bear Wanting " + .@item_name$ + "]";
|
|
mes "Makes you good with what you have!";
|
|
next;
|
|
mes "[Bear Wanting " + .@item_name$ + "]";
|
|
mes "If you want to do well, bring equipment refined to ^ff0000+9 or higher. It'll all disappear... haha?^000000";
|
|
next;
|
|
mes "[Bear Wanting " + .@item_name$ + "]";
|
|
mes "^ff0000" + .@item_name$ + "^000000!!! " + .@item_name$ + " is the most important thing, but... other materials are also needed.";
|
|
mes "For every good thing you need another good thing.";
|
|
next;
|
|
close2;
|
|
callshop( "barter_ill_teddy" );
|
|
end;
|
|
case 3:
|
|
mes "[Bear Wanting " + .@item_name$ + "]";
|
|
mes "Okay...";
|
|
close;
|
|
}
|
|
end;
|
|
}
|
|
|
|
//============================================================
|
|
//= Illusion of Labyrinth
|
|
//============================================================
|
|
prt_fild01,137,365,0 script #iol005 HIDDEN_WARP_NPC,4,4,{
|
|
end;
|
|
OnTouch:
|
|
if (ill_laby == 6) {
|
|
cloakoffnpcself( "Esmeralda#5" );
|
|
end;
|
|
}
|
|
end;
|
|
}
|
|
|
|
prt_fild01,141,367,3 script(CLOAKED) Esmeralda#5 4_GEFFEN_09,{
|
|
if (checkweight(1201,3) == 0) {
|
|
mes "You seem to have too many types or weights of items. Please clean up your inventory.";
|
|
close;
|
|
}
|
|
if (ill_laby < 6)
|
|
end;
|
|
if (isbegin_quest(12492) == 0) {
|
|
mes "[Esmeralda]";
|
|
mes "Oh, I thought we parted ways without even saying goodbye, but I guess you decided to work as a guest guild member for us?";
|
|
next;
|
|
select( "It happened to be like that", "I don't think it's any harm" );
|
|
mes "[Esmeralda]";
|
|
mes "It's a good choice. We will be of great help to each other.";
|
|
next;
|
|
select( "Why don't you send other guild members?" );
|
|
mes "[Esmeralda]";
|
|
mes "There is a reason for that.";
|
|
mes "Those guys didn't make a contract with the Guardian Relic. So, there is no insurance whatsoever. If I send other members to perform exorcism, those lost souls will be gone forever.";
|
|
next;
|
|
mes "[Esmeralda]";
|
|
mes "I thought it would be safer to stay here for the time being, so I gave instructions to keep myself hidden and only appear to you who helped me.";
|
|
next;
|
|
mes "[Esmeralda]";
|
|
mes "First of all, since the guild has very little funds, it will likely take quite some time for them to be fully revived. So, I'm thinking of stopping running the guild for a while and starting a business here.";
|
|
next;
|
|
select( "What kind of business are you planning on doing?" );
|
|
mes "[Esmeralda]";
|
|
mes "As you know, items called Illusion Stone appear in unknown dungeons all over the continent these days. That... is a very valuable item in this world.";
|
|
next;
|
|
mes "[Esmeralda]";
|
|
mes "I heard that there is a guild that started exploring this dungeon first. And I also received information that Illusion Stone was also found.";
|
|
next;
|
|
mes "[Esmeralda]";
|
|
mes "I'm thinking of doing something like equipment upgrade service near the entrance. Of course, you will receive Illusion Stone and various materials as payment.";
|
|
next;
|
|
mes "[Esmeralda]";
|
|
mes "I think that if I work hard for a few months, I will soon have enough money to revive my guild members.";
|
|
mes "This is probably the best for now.";
|
|
next;
|
|
select( "Is that all it is?" );
|
|
mes "[Esmeralda]";
|
|
mes "Well... there are countless other places to put money. I will skip explaining it in detail.";
|
|
next;
|
|
mes "[Esmeralda]";
|
|
mes "Anyway, next time I come, will I see you as a customer and vendor? Please continue to take good care of me.";
|
|
close2;
|
|
setquest 12492;
|
|
completequest 12492;
|
|
end;
|
|
}
|
|
mes "[Esmeralda]";
|
|
mes "If you have the equipment listed below, you can upgrade it with items obtained from the Illusion of Labyrinth.";
|
|
next;
|
|
if (select( "Cancel", "View illusion upgrade equipment." ) == 1) {
|
|
mes "[Esmeralda]";
|
|
mes "All right. Please stop by again next time.";
|
|
close;
|
|
}
|
|
mes "[Esmeralda]";
|
|
mes "Please note that if the equipment you wish to upgrade contains the effects of a card or enchantment, it will be ^ff0000destroyed when used as a material^000000.";
|
|
close2;
|
|
callshop( "barter_ill_labyrinth" );
|
|
end;
|
|
|
|
OnInit:
|
|
setunittitle( getnpcid(0), "<Priest Guild Leader>" );
|
|
end;
|
|
}
|