summaryrefslogtreecommitdiff
path: root/npc/re/merchants
diff options
context:
space:
mode:
authorj-tkay <joseph.tk.ea@gmail.com>2013-07-04 05:15:48 +0800
committerj-tkay <joseph.tk.ea@gmail.com>2013-07-04 05:15:48 +0800
commit28a9fec0916db3d92629ae6e6cd62b5777b09e73 (patch)
tree4babff20dd0a68025a489f410ebf96b8c1cc09af /npc/re/merchants
parent8489dbf3b58d3bff70b27ea42884a14d5229430a (diff)
downloadhercules-28a9fec0916db3d92629ae6e6cd62b5777b09e73.tar.gz
hercules-28a9fec0916db3d92629ae6e6cd62b5777b09e73.tar.bz2
hercules-28a9fec0916db3d92629ae6e6cd62b5777b09e73.tar.xz
hercules-28a9fec0916db3d92629ae6e6cd62b5777b09e73.zip
Merged/Updated/Added scripts from rAthena.
- Fixed Bug #7400 Signed-off-by: j-tkay <joseph.tk.ea@gmail.com>
Diffstat (limited to 'npc/re/merchants')
-rw-r--r--npc/re/merchants/blessed_refiner.txt173
-rw-r--r--npc/re/merchants/coin_exchange.txt352
-rw-r--r--npc/re/merchants/enchan_mora.txt751
-rw-r--r--npc/re/merchants/hd_refiner.txt308
-rw-r--r--npc/re/merchants/refine.txt420
-rw-r--r--npc/re/merchants/ticket_refiner.txt162
6 files changed, 1308 insertions, 858 deletions
diff --git a/npc/re/merchants/blessed_refiner.txt b/npc/re/merchants/blessed_refiner.txt
new file mode 100644
index 000000000..a25701774
--- /dev/null
+++ b/npc/re/merchants/blessed_refiner.txt
@@ -0,0 +1,173 @@
+//===== rAthena Script =======================================
+//= Blessed Refiner
+//===== By: ==================================================
+//= Euphy
+//===== Current Version: =====================================
+//= 1.0
+//===== Compatible With: =====================================
+//= rAthena SVN
+//===== Description: =========================================
+//= [Official Conversion]
+//= Refiners that use Blessed ores to refine equipment.
+//= Upon failure, the equipment is not destroyed. The success
+//= rate is identical to that for Enriched ores.
+//= - "Blacksmith Dister" only refines from +6~12.
+//= NOTE: This NPC is currently disabled on official servers.
+//===== Additional Comments: =================================
+//= 1.0 First version. [Euphy]
+//============================================================
+
+- script ::BlacksmithDister -1,{
+ disable_items;
+ mes "[Blacksmith Dister]";
+ mes "In this highly competitive society, we must be different in order to survive!";
+ mes "I only refine equipment at the +6 ~ 12 levels.";
+ next;
+ mes "[Blacksmith Dister]";
+ mes "I will need ^ff9999Blessed Weapon Ore^000000 for weapons, and ^ff9999Blessed Armor Ore^000000 for armors.";
+ mes "Failed refines ^FF0000will not break or reduce the refine level^000000.";
+ next;
+ mes "[Blacksmith Dister]";
+ mes "How about it? Do you want to refine?";
+ next;
+ setarray .@position$[1],"Head","Body","Left Hand","Right Hand","Robe","Shoes","Accessory 1","Accessory 2","Head 2","Head 3";
+ set .@menu$,"";
+ for(set .@i,1; .@i<=10; set .@i,.@i+1)
+ set .@menu$, .@menu$+((getequipisequiped(.@i))?getequipname(.@i):.@position$[.@i]+"-[Unequipped]")+":";
+ set .@part, select(.@menu$);
+ if (!getequipisequiped(.@part)) {
+ mes "[Blacksmith Dister]";
+ switch(.@part) {
+ case 1:
+ mes "I'm a blacksmith, not a hairstylist.";
+ break;
+ case 2:
+ mes "With my hammer, I will make you a star of the sky.";
+ break;
+ case 3:
+ case 4:
+ mes "Making artificial hands is not my specialty.";
+ break;
+ case 5:
+ mes "Bring out the item so I can refine it!";
+ break;
+ case 6:
+ mes "Where is this weird smell coming from?";
+ break;
+ case 7:
+ case 8:
+ mes "Where is the accessory?";
+ break;
+ case 9:
+ mes "What do you want me to refine?";
+ break;
+ case 10:
+ mes "Huh? What do you want me to do?";
+ break;
+ }
+ close;
+ }
+ if (!getequipisenableref(.@part)) {
+ mes "[Blacksmith Dister]";
+ mes "This item cannot be refined.";
+ close;
+ }
+ set .@equip_refine, getequiprefinerycnt(.@part);
+ if (.@equip_refine < 6 || .@equip_refine > 12) {
+ mes "[Blacksmith Dister]";
+ mes "This equipment has refined to "+.@equip_refine+". I only handle items with refine levels from +6 to +12!";
+ close;
+ }
+ set .@equip_lv, getequipweaponlv(.@part);
+ switch(.@equip_lv) {
+ default:
+ case 0:
+ set .@price,20000;
+ set .@material,6439; //Unbreakable_Def
+ set .@type$,"Armor";
+ break;
+ case 1:
+ set .@price,1000;
+ set .@material,6438; //Unbreakable_Weap
+ set .@type$,"Weapon";
+ break;
+ case 2:
+ set .@price,2000;
+ set .@material,6438; //Unbreakable_Weap
+ set .@type$,"Weapon";
+ break;
+ case 3:
+ set .@price,20000;
+ set .@material,6438; //Unbreakable_Weap
+ set .@type$,"Weapon";
+ break;
+ case 4:
+ set .@price,40000;
+ set .@material,6438; //Unbreakable_Weap
+ set .@type$,"Weapon";
+ break;
+ }
+ set .@ore$,"^ff9999Blessed "+.@type$+" Ore^000000";
+ mes "[Blacksmith Dister]";
+ mes "This "+.@type$+" has been refined to "+.@equip_refine+". To refine it, I need "+.@ore$+" and a "+(.@price/1000)+",000 zeny refining fee.";
+ mes "Do you want to proceed?";
+ next;
+ if(select("Yes:No") == 2) {
+ mes "[Blacksmith Dister]";
+ mes "I am busy, don't joke with me!";
+ close;
+ }
+ if (getequippercentrefinery(.@part) < 100) {
+ mes "[Blacksmith Dister]";
+ mes "This "+.@type$+" has been refined many times. Although it will not disappear upon failure, the "+.@ore$+" will disappear!";
+ next;
+ mes "[Blacksmith Dister]";
+ mes "Of course, the refining fee will not be returned! Do you want to continue?";
+ next;
+ if(select("Yes:No") == 2) {
+ mes "[Blacksmith Dister]";
+ mes "Good. I'd be sad if it failed, too.";
+ close;
+ }
+ }
+ if (countitem(.@material) == 0 || Zeny < .@price) {
+ mes "[Blacksmith Dister]";
+ mes "Materials insufficient.";
+ mes "To refine "+((.@equip_lv)?"a level "+.@equip_lv+" weapon":"armor")+", I need "+.@ore$+" and a "+(.@price/1000)+",000 zeny refining fee.";
+ close;
+ }
+ delitem .@material,1;
+ set Zeny, Zeny-.@price;
+ mes "[Blacksmith Dister]";
+ mes "Tac! Tac! Tac!";
+ if (getequippercentrefinery(.@part) > rand(100) || getequippercentrefinery(.@part) > rand(100)) {
+ specialeffect EF_BLESSING;
+ successrefitem .@part;
+ next;
+ mes "[Blacksmith Dister]";
+ mes "Hahahahahaha!!!";
+ next;
+ mes "[Blacksmith Dister]";
+ mes "Refine was a huge success~ Hahaha!";
+ close;
+ }
+ specialeffect EF_CURSEATTACK;
+ specialeffect2 EF_SUI_EXPLOSION;
+ next;
+ emotion (!rand(5))?e_ag:e_omg;
+ mes "[Blacksmith Dister]";
+ mes "Oh my goodness!!!!";
+ next;
+ mes "[Blacksmith Dister]";
+ mes "Oh! Although it was blessed by "+.@ore$+" to retain the equipment...";
+ next;
+ mes "[Blacksmith Dister]";
+ mes "My mood is worse when I fail!!";
+ close;
+}
+prt_in,52,56,3 duplicate(BlacksmithDister) Blacksmith Dister#prt 826
+payon,148,172,3 duplicate(BlacksmithDister) Blacksmith Dister#pay 826
+alberta_in,20,56,3 duplicate(BlacksmithDister) Blacksmith Dister#alb 826
+yuno_in01,175,18,3 duplicate(BlacksmithDister) Blacksmith Dister#yuno 826
+ein_in01,26,82,3 duplicate(BlacksmithDister) Blacksmith Dister#ein 826
+lhz_in02,280,15,3 duplicate(BlacksmithDister) Blacksmith Dister#lhz 826
diff --git a/npc/re/merchants/coin_exchange.txt b/npc/re/merchants/coin_exchange.txt
index 7ee6a53af..a78491ffc 100644
--- a/npc/re/merchants/coin_exchange.txt
+++ b/npc/re/merchants/coin_exchange.txt
@@ -3,7 +3,7 @@
//===== By: ==================================================
//= Hercules Dev Team
//===== Current Version: =====================================
-//= 1.1
+//= 1.2
//===== Compatible With: =====================================
//= Hercules
//===== Description: =========================================
@@ -12,6 +12,7 @@
//===== Additional Comments: =================================
//= 1.0 First version. [Euphy/Lemongrass]
//= 1.1 Added remaining Malangdo traders. [Euphy/Lemongrass]
+//= 1.2 Added Eclage traders (not fully complete). [Euphy]
//============================================================
// Malangdo
@@ -434,7 +435,7 @@ function script F_mal_coin {
mes "Ahaaa~";
mes "If you want to buy this stuff,";
mes "you can talk to me";
- mes "when you grow up little more.";
+ mes "when you grow up a little more.";
mes "This stuff is too expensive";
mes "for a child~";
close;
@@ -825,3 +826,350 @@ malangdo,150,135,5 script Roving Merchant 495,{
next;
}
}
+
+// Eclage
+//============================================================
+ecl_in01,66,95,2 script Armor Merchant Naphara 436,{
+ mes "[Armor Merchant]";
+ mes "Hello, this is Naphara's store, a place of high class goods.";
+ mes "What would you need?";
+ next;
+ set .@i, select("Str Glove:Int Glove:Agi Glove:Vit Glove:Dex Glove:Luk Glove");
+ mes "[Armor Merchant]";
+ switch(.@i) {
+ case 1: // Str Glove
+ mes "^3131FFStr Glove^000000";
+ mes "^3131FFMHP + 100, MSP + 20^000000";
+ mes "^3131FFATK+1 increases for every STR+10^000000";
+ mes "^3131FFATK +1% added above STR 110^000000";
+ set .@item,2917; //Str_Glove
+ break;
+ case 2:
+ mes "^3131FFInt Glove^000000";
+ mes "^3131FFMHP + 100, MSP + 20^000000";
+ mes "^3131FFMATK+1 increases for every INT+10^000000";
+ mes "^3131FFMATK +1% added above INT 110^000000";
+ set .@item,2918; //Int_Glove
+ break;
+ case 3:
+ mes "^3131FFAgi Glove^000000";
+ mes "^3131FFMHP + 100, MSP + 20^000000";
+ mes "^3131FFFLEE+1 increases for every AGI+10^000000";
+ mes "^3131FFComplete Flee +1 added above AGI 110^000000";
+ set .@item,2919; //Agi_Glove
+ break;
+ case 4:
+ mes "^3131FFVit Glove^000000";
+ mes "^3131FFMHP + 100, MSP + 20^000000";
+ mes "^3131FFMHP+50 for every VIT+10^000000";
+ mes "^3131FFMHP+1% added above VIT 110^000000";
+ set .@item,2920; //Vit_Glove
+ break;
+ case 5:
+ mes "^3131FFDex Glove^000000";
+ mes "^3131FFMHP + 100, MSP + 20^000000";
+ mes "^3131FFHIT+1 increases for every DEX+10^000000";
+ mes "^3131FFRanged attack power +1% added above DEX 110^000000";
+ set .@item,2921; //Dex_Glove
+ break;
+ case 6:
+ mes "^3131FFLuk Glove^000000";
+ mes "^3131FFMHP + 100, MSP + 20^000000";
+ mes "^3131FFCRI+1 increases for every LUK+10^000000";
+ mes "^3131FFCritical damage +1% added above LUK 110^000000";
+ set .@item,2922; //Luk_Glove
+ break;
+ }
+ mes "^3131FFRequired Level: 100^000000";
+ mes "^3131FFSlot: 0^000000";
+ mes "^3131FFWeight: 10^000000";
+ mes "are the characteristic options.";
+ next;
+ mes "[Armor Merchant]";
+ mes "It costs 10 Splendide Coins.";
+ mes "Would you like to buy it?";
+ next;
+ if(select("Buy it.:Don't buy it.") == 2)
+ close;
+ if (countitem(6081) < 10) {
+ mes "[Armor Merchant]";
+ mes "It seems like you don't have enough coins.";
+ close;
+ }
+ mes "[Armor Merchant]";
+ mes "Here you go!"; //custom
+ delitem 6081,10; //Splendide_Coin
+ getitem .@item,1;
+ close;
+}
+
+ecl_in01,64,97,4 script Slot Expert Nattuer#ecl 436,{
+ mes "[Slot Expert]";
+ mes "I am Slot Expert Nattuer.";
+ mes "If you bring me an item from my little brother Naphara along with 5 Splendide Coins, I will open up one Slot for you.";
+ next;
+ if(select("Activate a Slot.:Forget it.") == 2)
+ close;
+ mes "[Slot Expert]";
+ mes "Slot activation is an extremely difficult procedure that can fail even with heightened care and the use of a magnifying lens.";
+ next;
+ mes "[Slot Expert]";
+ mes "Of course, if your heart were as big as that flower-filled land, you wouldn't mind. Right? Should I go for it?";
+ next;
+ if(select("Continue.:Forget it.") == 2)
+ close;
+ mes "[Slot Expert]";
+ mes "Which item would you like to activate with a Slot?";
+ next;
+ setarray .@noslots[0],2917,2918,2919,2920,2921,2922;
+ setarray .@slotted[0],2923,2924,2925,2926,2927,2928;
+ set .@i, select("Str Glove:Int Glove:Ag Glove:Vit Glove:Dex Glove:Luk Glove")-1;
+ set .@item, .@noslots[.@i];
+ set .@new_item, .@slotted[.@i];
+ mes "[Slot Expert]";
+ mes "Let's confirm for the last time. Is the one you want "+getitemname(.@item)+"?";
+ next;
+ if(select("Yes:No") == 2) {
+ mes "[Slot Expert]";
+ mes "Why don't you talk to me when you know for sure.";
+ close;
+ }
+ if (countitem(.@item) == 0) {
+ mes "[Slot Expert]";
+ mes "You don't have that item. Why don't you talk to me when you know for sure.";
+ close;
+ }
+ if (countitem(6081) < 5) {
+ mes "[Slot Expert]";
+ mes "You don't have enough coins. Why don't you talk to me when you know for sure."; //custom
+ close;
+ }
+ delitem 6081,5; //Splendide_Coin
+ delitem .@item,1;
+ //custom to the end
+ if (rand(100) < 5) {
+ mes "[Slot Expert]";
+ mes "Oh no, it failed! I'm sorry, but I warned you this could happen. Better luck next time.";
+ close;
+ }
+ mes "[Slot Expert]";
+ mes "Success! I've activated the slot.";
+ getitem .@new_item,1;
+ close;
+}
+
+ecl_in01,67,39,4 script Replication Expert Palt 445,{
+ emotion e_lv;
+ mes "[Paltu]";
+ mes "Woohoo- Greetings. What are you looking for? Lots of goods here.";
+ next;
+ switch(select("No thanks.:Replication?:I know you got lots up your sleeve!")) {
+ case 1:
+ emotion e_an;
+ mes "[Paltu]";
+ mes "Really? Hmm?";
+ close;
+ case 2:
+ mes "[Paltu]";
+ mes "One can say that there's no one better in Eclage than I at utilizing magic resistance.";
+ next;
+ mes "[Paltu]";
+ mes "I'll give you a good price whatever it is. Just trust me.";
+ next;
+ select("Could you do something for me?");
+ emotion e_no1;
+ mes "[Paltu]";
+ mes "Hey, I like your attitude.";
+ next;
+ mes "[Paltu]";
+ mes "Ah- you know the hat you're wearing?";
+ next;
+ emotion e_what;
+ mes "[Paltu]";
+ mes "Don't you have any of those hats lying around in storage that are solid but too ugly to wear? You do, right?";
+ next;
+ select(".........");
+ emotion e_dots,1;
+ emotion e_heh;
+ mes "[Paltu]";
+ mes "See! I knew it. I knew it from the first minute.";
+ next;
+ mes "[Paltu]";
+ mes "If you bring me ^ff0000 50 Splendide Coins and the ingredients^000000, I'll make you a new hat in the same shape but worn as a ^ff0000Costume^000000.";
+ next;
+ mes "[Paltu]";
+ mes "Hmm, what was it...?";
+ mes "I think you adventurers call them ^0571B0Costumes^000000? right?";
+ next;
+ select("Yes~ What do you need?");
+ mes "[Paltu]";
+ mes "I need 1 ^0571B0hat to replicate^000000 and";
+ mes "I need ^E1281E 4 Crystal Mirrors^000000 for magic resistance, ^E1281E 1 Fairy Magic Powder^000000 as the catalyst, and ^E1281E Emerald, Ruby, Sapphire, Topaz, and Zircon, 10 of each^000000, to be used for amplifying the magic power.";
+ next;
+ emotion e_no;
+ mes "[Paltu]";
+ mes "There's quite a lot of ingredients, right? Well, I can't do anything about that. Dealing with magic power is not a joke.";
+ next;
+ select("Which hats can be replicated?");
+ mes "[Paltu]";
+ mes "Oh! You're pretty sharp!";
+ mes "Almost forgot the most important thing.";
+ next;
+ mes "[Paltu]";
+ mes "Hats that I can replicate are:";
+ mes "^0571B0Frog Hat, Romantic Flower, Magestic Goat, Blush, Valkyrie Helm, Deviruchi Hat, Assassin Mask, Elven Ears, Hahoe Mask, and Boys Cap^000000 a total of 10 types.";
+ next;
+ mes "[Paltu]";
+ mes "What do you think? I'll make it happen as long as I have the ingredients and the compensation.";
+ next;
+ if(select("I'll do it later.:Show me what you got!") == 1) {
+ emotion e_dots;
+ mes "[Paltu]";
+ mes "What? Are you kidding me? Please tell me you are!";
+ close;
+ }
+ break;
+ case 3:
+ break;
+ }
+ mes "[Paltu]";
+ mes "Oh wow.";
+ mes "You made the right call. I thought I was going to starve to death because the Laphines have no interest in pretty hats.";
+ next;
+ mes "[Paltu]";
+ mes "I'll make it a great deal for you. You really should know I'm giving you a good deal here.";
+ next;
+ mes "[Paltu]";
+ mes "Is there something you had in mind? Why don't you take a look?";
+ next;
+ setarray .@items[0],
+ 5447, //Frog_Cap
+ 2269, //Centimental_Flower
+ 2256, //Magestic_Goat
+ 5040, //Blush
+ 5171, //Valkyrie_Helm
+ 5038, //Deviruchi_Cap
+ 5096, //Assassin_Mask_
+ 2286, //Elven_Ears
+ 5176, //Hahoe_Mask
+ 5016; //Boy's_Cap
+ setarray .@costumes[0],
+ 19548, //C_Frog_Cap
+ 19552, //C_Centimental_Flower
+ 19549, //C_Magestic_Goat
+ 19550, //C_Blush
+ 19546, //C_Valkyrie_Helm
+ 19547, //C_Deviruchi_Cap
+ 19553, //C_Assassin_Mask_
+ 19551, //C_Elven_Ears
+ 0, //-- not implemented? --
+ 19545; //C_Boys_Cap
+ if (countitem(6081) >= 50 && countitem(747) >= 4 && countitem(6395) >= 1 && countitem(721) >= 10 && countitem(723) >= 10 && countitem(726) >= 10 && countitem(728) >= 10 && countitem(729) >= 10)
+ set .@item_check,1;
+ for(set .@i,0; .@i<getarraysize(.@items); set .@i,.@i+1) {
+ if (.@item_check && countitem(.@items[.@i]))
+ set .@menu$, .@menu$+getitemname(.@items[.@i])+":"; //custom
+ else
+ set .@menu$, .@menu$+getitemname(.@items[.@i])+" (^777777Insufficient ingredients^000000):";
+ }
+ set .@i, select(.@menu$)-1;
+ set .@item, .@items[.@i];
+ set .@new_item, .@costumes[.@i];
+ mes "[Paltu]";
+ mes "Is ^0571B0"+getitemname(.@item)+"^000000 what you wanted?";
+ next;
+ if (.@item_check == 0 || countitem(.@item) == 0) {
+ emotion e_sob;
+ mes "[Paltu]";
+ mes "Ay... Credit purchases are difficult for me.";
+ next;
+ mes "[Paltu]";
+ mes "^0571B0"+getitemname(.@item)+"^000000 and";
+ mes "^E1281E50 Splendide Coins, 4 Crystal Mirrors, 1 Fairy Magic Powder, 10 of each Emerald, Ruby, Sapphire, Topaz, and Zircon^000000 are necessary.";
+ next;
+ mes "[Paltu]";
+ mes "I'm in a tight spot myself. Please consider my situation also.";
+ close;
+ }
+ //custom to the end
+ if(select("Continue.:Forget it.") == 2)
+ close;
+ delitem .@item,1;
+ delitem 6081,50; //Splendide_Coin
+ delitem 747,4; //Crystal_Mirror
+ delitem 6395,1; //Angel_Magic_Power
+ delitem 721,10; //Azure_Jewel
+ delitem 723,10; //Cardinal_Jewel
+ delitem 726,10; //Blue_Jewel
+ delitem 728,10; //Golden_Jewel
+ delitem 729,10; //Bluish_Green_Jewel
+ getitem .@new_item,1;
+ mes "[Paltu]";
+ mes "Thank you so much! As promised, here is your costume.";
+ close;
+}
+
+ecl_in01,33,98,4 script Herb Merchant Plafina#e 443,{
+ mes "[Herb Merchant]";
+ mes "Welcome, this is Plafina's Herb Store where only the freshest herbs are provided~!";
+ next;
+ switch(select("Snow Flip:Peony Mommy:Slapping Herb:Yggdrasil Dust:End conversation")) {
+ case 1:
+ mes "[Herb Merchant]";
+ mes "Snow Flip has special effects on ^3131FFBurning, Bleeding, Deep Sleep, Sleep^000000.";
+ set .@item,12812; //Snow_Flip
+ set .@cost,5;
+ break;
+ case 2:
+ mes "[Herb Merchant]";
+ mes "Peony Mamy has special effects on ^3131FFFrost, Frozen, Freezing^000000.";
+ set .@item,12813; //Peony_Mommy
+ set .@cost,5;
+ break;
+ case 3:
+ mes "[Herb Merchant]";
+ mes "Slapping Herb has special effects on ^3131FFStun, Fear, Chaos, Hallucination^000000.";
+ set .@item,12814; //Slapping_Herb
+ set .@cost,1;
+ break;
+ case 4:
+ mes "[Herb Merchant]";
+ mes "Yggdrasil Dust has special effects on ^3131FFBlind, Curse, Decrease Agility, Reverse Orcish^000000.";
+ set .@item,12815; //Yggdrasil_Dust
+ set .@cost,1;
+ break;
+ case 5:
+ mes "[Herb Merchant]";
+ mes "Come back anytime.";
+ close;
+ }
+ mes "Requires 5 seconds between uses.";
+ mes "It costs "+.@cost+" Splendide Coin"+((.@cost == 1)?"":"s")+" for each.";
+ next;
+ switch(select("Buy 1.:Buy 10.:Don't buy.")) {
+ case 1:
+ set .@amount,1;
+ break;
+ case 2:
+ set .@amount,10;
+ break;
+ case 3:
+ close;
+ }
+ set .@price,.@amount*.@cost;
+ mes "[Herb Merchant]";
+ mes "Would you like to buy "+.@amount+" "+getitemname(.@item)+"?";
+ next;
+ if(select("Buy.:Don't buy.") == 2)
+ close;
+ if (countitem(6081) < .@price) {
+ mes "[Herb Merchant]";
+ mes "You don't have enough coins.";
+ close;
+ }
+ mes "[Herb Merchant]";
+ mes "Here are your herbs."; //custom
+ delitem 6081,.@price; //Splendide_Coin
+ getitem .@item,.@amount;
+ end;
+}
diff --git a/npc/re/merchants/enchan_mora.txt b/npc/re/merchants/enchan_mora.txt
index 8ff8f758d..b23a33494 100644
--- a/npc/re/merchants/enchan_mora.txt
+++ b/npc/re/merchants/enchan_mora.txt
@@ -3,7 +3,7 @@
//===== By: ==================================================
//= Euphy
//===== Current Version: =====================================
-//= 1.0
+//= 1.1a
//===== Compatible With: =====================================
//= rAthena SVN
//===== Description: =========================================
@@ -12,6 +12,8 @@
//= Mora coins.
//===== Additional Comments: =================================
//= 1.0 First Version. [Euphy]
+//= 1.1 Optimized. [Euphy]
+//= 1.1a Bug fixes. [Lemongrass]
//============================================================
// Arch Bishop Enchants :: coin_arc
@@ -217,70 +219,15 @@ mora,96,74,5 script Master of Relics#pa0829 495,{
switch(.@enchant_type) {
case 1:
set .@i, rand(1,1487);
- if (.@i <= 16) setarray .@enchants[2],4710,.@sp; //Inteligence2 [sp]
- else if (.@i <= 32) setarray .@enchants[2],4710,4799; //Inteligence2 HP500
- else if (.@i <= 48) setarray .@enchants[2],4710,4766; //Inteligence2 Atk2
- else if (.@i <= 64) setarray .@enchants[2],4710,4788; //Inteligence2 Mdef6
- else if (.@i <= 80) setarray .@enchants[2],4720,.@sp; //Dexterity1 [sp]
- else if (.@i <= 96) setarray .@enchants[2],4720,4799; //Dexterity1 HP500
- else if (.@i <= 112) setarray .@enchants[2],4720,4766; //Dexterity1 Atk2
- else if (.@i <= 128) setarray .@enchants[2],4720,4788; //Dexterity1 Mdef6
- else if (.@i <= 144) setarray .@enchants[2],4721,.@sp; //Dexterity2 [sp]
- else if (.@i <= 160) setarray .@enchants[2],4721,4799; //Dexterity2 HP500
- else if (.@i <= 176) setarray .@enchants[2],4721,4766; //Dexterity2 Atk2
- else if (.@i <= 192) setarray .@enchants[2],4721,4788; //Dexterity2 Mdef6
- else if (.@i <= 208) setarray .@enchants[2],4740,.@sp; //Vitality1 [sp]
- else if (.@i <= 224) setarray .@enchants[2],4740,4799; //Vitality1 HP500
- else if (.@i <= 240) setarray .@enchants[2],4740,4766; //Vitality1 Atk2
- else if (.@i <= 256) setarray .@enchants[2],4740,4788; //Vitality1 Mdef6
- else if (.@i <= 272) setarray .@enchants[2],4710,.@sp; //Inteligence2 [sp]
- else if (.@i <= 288) setarray .@enchants[2],4710,4799; //Inteligence2 HP500
- else if (.@i <= 304) setarray .@enchants[2],4710,4766; //Inteligence2 Atk2
- else if (.@i <= 320) setarray .@enchants[2],4710,4788; //Inteligence2 Mdef6
- else if (.@i <= 336) setarray .@enchants[2],4720,.@sp; //Dexterity1 [sp]
- else if (.@i <= 352) setarray .@enchants[2],4720,4799; //Dexterity1 HP500
- else if (.@i <= 368) setarray .@enchants[2],4720,4766; //Dexterity1 Atk2
- else if (.@i <= 384) setarray .@enchants[2],4720,4788; //Dexterity1 Mdef6
- else if (.@i <= 400) setarray .@enchants[2],4721,.@sp; //Dexterity2 [sp]
- else if (.@i <= 416) setarray .@enchants[2],4721,4799; //Dexterity2 HP500
- else if (.@i <= 432) setarray .@enchants[2],4721,4766; //Dexterity2 Atk2
- else if (.@i <= 448) setarray .@enchants[2],4721,4788; //Dexterity2 Mdef6
- else if (.@i <= 464) setarray .@enchants[2],4740,.@sp; //Vitality1 [sp]
- else if (.@i <= 480) setarray .@enchants[2],4740,4799; //Vitality1 HP500
- else if (.@i <= 496) setarray .@enchants[2],4740,4766; //Vitality1 Atk2
- else if (.@i <= 512) setarray .@enchants[2],4740,4788; //Vitality1 Mdef6
- else if (.@i <= 528) setarray .@enchants[2],4710,.@sp; //Inteligence2 [sp]
- else if (.@i <= 544) setarray .@enchants[2],4710,4799; //Inteligence2 HP500
- else if (.@i <= 560) setarray .@enchants[2],4710,4766; //Inteligence2 Atk2
- else if (.@i <= 576) setarray .@enchants[2],4710,4788; //Inteligence2 Mdef6
- else if (.@i <= 592) setarray .@enchants[2],4720,.@sp; //Dexterity1 [sp]
- else if (.@i <= 608) setarray .@enchants[2],4720,4799; //Dexterity1 HP500
- else if (.@i <= 624) setarray .@enchants[2],4720,4766; //Dexterity1 Atk2
- else if (.@i <= 640) setarray .@enchants[2],4720,4788; //Dexterity1 Mdef6
- else if (.@i <= 656) setarray .@enchants[2],4721,.@sp; //Dexterity2 [sp]
- else if (.@i <= 672) setarray .@enchants[2],4721,4799; //Dexterity2 HP500
- else if (.@i <= 688) setarray .@enchants[2],4721,4766; //Dexterity2 Atk2
- else if (.@i <= 704) setarray .@enchants[2],4721,4788; //Dexterity2 Mdef6
- else if (.@i <= 720) setarray .@enchants[2],4740,.@sp; //Vitality1 [sp]
- else if (.@i <= 736) setarray .@enchants[2],4740,4799; //Vitality1 HP500
- else if (.@i <= 752) setarray .@enchants[2],4740,4766; //Vitality1 Atk2
- else if (.@i <= 768) setarray .@enchants[2],4740,4788; //Vitality1 Mdef6
- else if (.@i <= 784) setarray .@enchants[2],4710,.@sp; //Inteligence2 [sp]
- else if (.@i <= 800) setarray .@enchants[2],4710,4799; //Inteligence2 HP500
- else if (.@i <= 816) setarray .@enchants[2],4710,4766; //Inteligence2 Atk2
- else if (.@i <= 832) setarray .@enchants[2],4710,4788; //Inteligence2 Mdef6
- else if (.@i <= 848) setarray .@enchants[2],4720,.@sp; //Dexterity1 [sp]
- else if (.@i <= 864) setarray .@enchants[2],4720,4799; //Dexterity1 HP500
- else if (.@i <= 880) setarray .@enchants[2],4720,4766; //Dexterity1 Atk2
- else if (.@i <= 896) setarray .@enchants[2],4720,4788; //Dexterity1 Mdef6
- else if (.@i <= 912) setarray .@enchants[2],4721,.@sp; //Dexterity2 [sp]
- else if (.@i <= 928) setarray .@enchants[2],4721,4799; //Dexterity2 HP500
- else if (.@i <= 944) setarray .@enchants[2],4721,4766; //Dexterity2 Atk2
- else if (.@i <= 960) setarray .@enchants[2],4721,4788; //Dexterity2 Mdef6
- else if (.@i <= 976) setarray .@enchants[2],4740,.@sp; //Vitality1 [sp]
- else if (.@i <= 992) setarray .@enchants[2],4740,4799; //Vitality1 HP500
- else if (.@i <= 1008) setarray .@enchants[2],4740,4766; //Vitality1 Atk2
- else if (.@i <= 1024) setarray .@enchants[2],4740,4788; //Vitality1 Mdef6
+ if (.@i <= 1024) {
+ // Basic combinations
+ // (raw: .@i increments by 16, 4 repeats)
+ setarray .@enchant_slot2[0],4710,4720,4721,4240; //Inteligence2,Dexterity1,Dexterity2,Vitality1
+ setarray .@enchant_slot3[0],.@sp,4799,4766,4788; //[sp],HP500,Atk2,Mdef6
+ setarray .@enchants[2],
+ .@enchant_slot2[rand(getarraysize(.@enchant_slot2))],
+ .@enchant_slot3[rand(getarraysize(.@enchant_slot3))];
+ }
else if (.@i <= 1040) setarray .@enchants[2],.@sp,.@sp; //[sp] [sp]
else if (.@i <= 1487) {
mes "[Relice]";
@@ -290,70 +237,17 @@ mora,96,74,5 script Master of Relics#pa0829 495,{
break;
case 2:
set .@i, rand(1,1487);
- if (.@i <= 16) setarray .@enchants[1],4710,4711,4764; //Inteligence1 Inteligence2 Critical5
- else if (.@i <= 32) setarray .@enchants[1],4710,4711,4799; //Inteligence1 Inteligence2 HP500
- else if (.@i <= 48) setarray .@enchants[1],4710,4711,4766; //Inteligence1 Inteligence2 Atk2
- else if (.@i <= 64) setarray .@enchants[1],4710,4711,4788; //Inteligence1 Inteligence2 Mdef6
- else if (.@i <= 80) setarray .@enchants[1],4710,4720,4764; //Inteligence1 Dexterity1 Critical5
- else if (.@i <= 96) setarray .@enchants[1],4710,4720,4799; //Inteligence1 Dexterity1 HP500
- else if (.@i <= 112) setarray .@enchants[1],4710,4720,4766; //Inteligence1 Dexterity1 Atk2
- else if (.@i <= 128) setarray .@enchants[1],4710,4720,4788; //Inteligence1 Dexterity1 Mdef6
- else if (.@i <= 144) setarray .@enchants[1],4710,4721,4764; //Inteligence1 Dexterity2 Critical5
- else if (.@i <= 160) setarray .@enchants[1],4710,4721,4799; //Inteligence1 Dexterity2 HP500
- else if (.@i <= 176) setarray .@enchants[1],4710,4721,4766; //Inteligence1 Dexterity2 Atk2
- else if (.@i <= 192) setarray .@enchants[1],4710,4721,4788; //Inteligence1 Dexterity2 Mdef6
- else if (.@i <= 208) setarray .@enchants[1],4710,4740,4764; //Inteligence1 Vitality1 Critical5
- else if (.@i <= 224) setarray .@enchants[1],4710,4740,4799; //Inteligence1 Vitality1 HP500
- else if (.@i <= 240) setarray .@enchants[1],4710,4740,4766; //Inteligence1 Vitality1 Atk2
- else if (.@i <= 256) setarray .@enchants[1],4710,4740,4788; //Inteligence1 Vitality1 Mdef6
- else if (.@i <= 272) setarray .@enchants[1],4711,4711,4764; //Inteligence2 Inteligence2 Critical5
- else if (.@i <= 288) setarray .@enchants[1],4711,4711,4799; //Inteligence2 Inteligence2 HP500
- else if (.@i <= 304) setarray .@enchants[1],4711,4711,4766; //Inteligence2 Inteligence2 Atk2
- else if (.@i <= 320) setarray .@enchants[1],4711,4711,4788; //Inteligence2 Inteligence2 Mdef6
- else if (.@i <= 336) setarray .@enchants[1],4711,4720,4764; //Inteligence2 Dexterity1 Critical5
- else if (.@i <= 352) setarray .@enchants[1],4711,4720,4799; //Inteligence2 Dexterity1 HP500
- else if (.@i <= 368) setarray .@enchants[1],4711,4720,4766; //Inteligence2 Dexterity1 Atk2
- else if (.@i <= 384) setarray .@enchants[1],4711,4720,4788; //Inteligence2 Dexterity1 Mdef6
- else if (.@i <= 400) setarray .@enchants[1],4711,4721,4764; //Inteligence2 Dexterity2 Critical5
- else if (.@i <= 416) setarray .@enchants[1],4711,4721,4799; //Inteligence2 Dexterity2 HP500
- else if (.@i <= 432) setarray .@enchants[1],4711,4721,4766; //Inteligence2 Dexterity2 Atk2
- else if (.@i <= 448) setarray .@enchants[1],4711,4721,4788; //Inteligence2 Dexterity2 Mdef6
- else if (.@i <= 464) setarray .@enchants[1],4711,4740,4764; //Inteligence2 Vitality1 Critical5
- else if (.@i <= 480) setarray .@enchants[1],4711,4740,4799; //Inteligence2 Vitality1 HP500
- else if (.@i <= 496) setarray .@enchants[1],4711,4740,4766; //Inteligence2 Vitality1 Atk2
- else if (.@i <= 512) setarray .@enchants[1],4711,4740,4788; //Inteligence2 Vitality1 Mdef6
- else if (.@i <= 528) setarray .@enchants[1],4720,4711,4764; //Dexterity1 Inteligence2 Critical5
- else if (.@i <= 544) setarray .@enchants[1],4720,4711,4799; //Dexterity1 Inteligence2 HP500
- else if (.@i <= 560) setarray .@enchants[1],4720,4711,4766; //Dexterity1 Inteligence2 Atk2
- else if (.@i <= 576) setarray .@enchants[1],4720,4711,4788; //Dexterity1 Inteligence2 Mdef6
- else if (.@i <= 592) setarray .@enchants[1],4720,4720,4764; //Dexterity1 Dexterity1 Critical5
- else if (.@i <= 608) setarray .@enchants[1],4720,4720,4799; //Dexterity1 Dexterity1 HP500
- else if (.@i <= 624) setarray .@enchants[1],4720,4720,4766; //Dexterity1 Dexterity1 Atk2
- else if (.@i <= 640) setarray .@enchants[1],4720,4720,4788; //Dexterity1 Dexterity1 Mdef6
- else if (.@i <= 656) setarray .@enchants[1],4720,4721,4764; //Dexterity1 Dexterity2 Critical5
- else if (.@i <= 672) setarray .@enchants[1],4720,4721,4799; //Dexterity1 Dexterity2 HP500
- else if (.@i <= 688) setarray .@enchants[1],4720,4721,4766; //Dexterity1 Dexterity2 Atk2
- else if (.@i <= 704) setarray .@enchants[1],4720,4721,4788; //Dexterity1 Dexterity2 Mdef6
- else if (.@i <= 720) setarray .@enchants[1],4720,4740,4764; //Dexterity1 Vitality1 Critical5
- else if (.@i <= 736) setarray .@enchants[1],4720,4740,4799; //Dexterity1 Vitality1 HP500
- else if (.@i <= 752) setarray .@enchants[1],4720,4740,4766; //Dexterity1 Vitality1 Atk2
- else if (.@i <= 768) setarray .@enchants[1],4720,4740,4788; //Dexterity1 Vitality1 Mdef6
- else if (.@i <= 784) setarray .@enchants[1],4721,4711,4764; //Dexterity2 Inteligence2 Critical5
- else if (.@i <= 800) setarray .@enchants[1],4721,4711,4799; //Dexterity2 Inteligence2 HP500
- else if (.@i <= 816) setarray .@enchants[1],4721,4711,4766; //Dexterity2 Inteligence2 Atk2
- else if (.@i <= 832) setarray .@enchants[1],4721,4711,4788; //Dexterity2 Inteligence2 Mdef6
- else if (.@i <= 848) setarray .@enchants[1],4721,4720,4764; //Dexterity2 Dexterity1 Critical5
- else if (.@i <= 864) setarray .@enchants[1],4721,4720,4799; //Dexterity2 Dexterity1 HP500
- else if (.@i <= 880) setarray .@enchants[1],4721,4720,4766; //Dexterity2 Dexterity1 Atk2
- else if (.@i <= 896) setarray .@enchants[1],4721,4720,4788; //Dexterity2 Dexterity1 Mdef6
- else if (.@i <= 912) setarray .@enchants[1],4721,4721,4764; //Dexterity2 Dexterity2 Critical5
- else if (.@i <= 928) setarray .@enchants[1],4721,4721,4799; //Dexterity2 Dexterity2 HP500
- else if (.@i <= 944) setarray .@enchants[1],4721,4721,4766; //Dexterity2 Dexterity2 Atk2
- else if (.@i <= 960) setarray .@enchants[1],4721,4721,4788; //Dexterity2 Dexterity2 Mdef6
- else if (.@i <= 976) setarray .@enchants[1],4721,4740,4764; //Dexterity2 Vitality1 Critical5
- else if (.@i <= 992) setarray .@enchants[1],4721,4740,4799; //Dexterity2 Vitality1 HP500
- else if (.@i <= 1008) setarray .@enchants[1],4721,4740,4766; //Dexterity2 Vitality1 Atk2
- else if (.@i <= 1024) setarray .@enchants[1],4721,4740,4788; //Dexterity2 Vitality1 Mdef6
+ if (.@i <= 1024) {
+ // Basic combinations
+ // (raw: .@i increments by 16)
+ setarray .@enchant_slot1[0],4710,4711,4720,4721; //Inteligence1,Inteligence2,Dexterity1,Dexterity2
+ setarray .@enchant_slot2[0],4711,4720,4721,4740; //Inteligence2,Dexterity1,Dexterity2,Vitality1
+ setarray .@enchant_slot3[0],4764,4799,4766,4788; //Critical5,HP500,Atk2,Mdef6
+ setarray .@enchants[1],
+ .@enchant_slot1[rand(getarraysize(.@enchant_slot1))],
+ .@enchant_slot2[rand(getarraysize(.@enchant_slot2))],
+ .@enchant_slot3[rand(getarraysize(.@enchant_slot3))];
+ }
else if (.@i <= 1026) setarray .@enchants[1],4761,4761,4761; //Matk2 Matk2 Matk2
else if (.@i <= 1028) setarray .@enchants[1],4712,4713,4713; //Inteligence3 Inteligence4 Inteligence4
else if (.@i <= 1030) setarray .@enchants[1],4712,4761,4761; //Inteligence3 Matk2 Matk2
@@ -370,70 +264,15 @@ mora,96,74,5 script Master of Relics#pa0829 495,{
break;
case 3:
set .@i, rand(1,2852);
- if (.@i <= 31) setarray .@enchants[2],4720,4710; //Dexterity1 Inteligence1
- else if (.@i <= 62) setarray .@enchants[2],4720,4711; //Dexterity1 Inteligence2
- else if (.@i <= 93) setarray .@enchants[2],4720,4721; //Dexterity1 Dexterity2
- else if (.@i <= 124) setarray .@enchants[2],4720,4760; //Dexterity1 Matk1
- else if (.@i <= 155) setarray .@enchants[2],4740,4710; //Vitality1 Inteligence1
- else if (.@i <= 186) setarray .@enchants[2],4740,4711; //Vitality1 Inteligence2
- else if (.@i <= 217) setarray .@enchants[2],4740,4721; //Vitality1 Dexterity2
- else if (.@i <= 248) setarray .@enchants[2],4740,4760; //Vitality1 Matk1
- else if (.@i <= 279) setarray .@enchants[2],4741,4710; //Vitality2 Inteligence1
- else if (.@i <= 310) setarray .@enchants[2],4741,4711; //Vitality2 Inteligence2
- else if (.@i <= 341) setarray .@enchants[2],4741,4721; //Vitality2 Dexterity2
- else if (.@i <= 372) setarray .@enchants[2],4741,4760; //Vitality2 Matk1
- else if (.@i <= 403) setarray .@enchants[2],4801,4710; //SP100 Inteligence1
- else if (.@i <= 434) setarray .@enchants[2],4801,4711; //SP100 Inteligence2
- else if (.@i <= 465) setarray .@enchants[2],4801,4721; //SP100 Dexterity2
- else if (.@i <= 496) setarray .@enchants[2],4801,4760; //SP100 Matk1
- else if (.@i <= 527) setarray .@enchants[2],4720,4710; //Dexterity1 Inteligence1
- else if (.@i <= 558) setarray .@enchants[2],4720,4711; //Dexterity1 Inteligence2
- else if (.@i <= 589) setarray .@enchants[2],4720,4721; //Dexterity1 Dexterity2
- else if (.@i <= 620) setarray .@enchants[2],4720,4760; //Dexterity1 Matk1
- else if (.@i <= 651) setarray .@enchants[2],4740,4710; //Vitality1 Inteligence1
- else if (.@i <= 682) setarray .@enchants[2],4740,4711; //Vitality1 Inteligence2
- else if (.@i <= 713) setarray .@enchants[2],4740,4721; //Vitality1 Dexterity2
- else if (.@i <= 744) setarray .@enchants[2],4740,4760; //Vitality1 Matk1
- else if (.@i <= 775) setarray .@enchants[2],4741,4710; //Vitality2 Inteligence1
- else if (.@i <= 806) setarray .@enchants[2],4741,4711; //Vitality2 Inteligence2
- else if (.@i <= 837) setarray .@enchants[2],4741,4721; //Vitality2 Dexterity2
- else if (.@i <= 868) setarray .@enchants[2],4741,4760; //Vitality2 Matk1
- else if (.@i <= 899) setarray .@enchants[2],4801,4710; //SP100 Inteligence1
- else if (.@i <= 930) setarray .@enchants[2],4801,4711; //SP100 Inteligence2
- else if (.@i <= 961) setarray .@enchants[2],4801,4721; //SP100 Dexterity2
- else if (.@i <= 992) setarray .@enchants[2],4801,4760; //SP100 Matk1
- else if (.@i <= 1023) setarray .@enchants[2],4720,4710; //Dexterity1 Inteligence1
- else if (.@i <= 1054) setarray .@enchants[2],4720,4711; //Dexterity1 Inteligence2
- else if (.@i <= 1085) setarray .@enchants[2],4720,4721; //Dexterity1 Dexterity2
- else if (.@i <= 1116) setarray .@enchants[2],4720,4760; //Dexterity1 Matk1
- else if (.@i <= 1147) setarray .@enchants[2],4740,4710; //Vitality1 Inteligence1
- else if (.@i <= 1178) setarray .@enchants[2],4740,4711; //Vitality1 Inteligence2
- else if (.@i <= 1209) setarray .@enchants[2],4740,4721; //Vitality1 Dexterity2
- else if (.@i <= 1240) setarray .@enchants[2],4740,4760; //Vitality1 Matk1
- else if (.@i <= 1271) setarray .@enchants[2],4741,4710; //Vitality2 Inteligence1
- else if (.@i <= 1302) setarray .@enchants[2],4741,4711; //Vitality2 Inteligence2
- else if (.@i <= 1333) setarray .@enchants[2],4741,4721; //Vitality2 Dexterity2
- else if (.@i <= 1364) setarray .@enchants[2],4741,4760; //Vitality2 Matk1
- else if (.@i <= 1395) setarray .@enchants[2],4801,4710; //SP100 Inteligence1
- else if (.@i <= 1426) setarray .@enchants[2],4801,4711; //SP100 Inteligence2
- else if (.@i <= 1457) setarray .@enchants[2],4801,4721; //SP100 Dexterity2
- else if (.@i <= 1488) setarray .@enchants[2],4801,4760; //SP100 Matk1
- else if (.@i <= 1519) setarray .@enchants[2],4720,4710; //Dexterity1 Inteligence1
- else if (.@i <= 1550) setarray .@enchants[2],4720,4711; //Dexterity1 Inteligence2
- else if (.@i <= 1581) setarray .@enchants[2],4720,4721; //Dexterity1 Dexterity2
- else if (.@i <= 1612) setarray .@enchants[2],4720,4760; //Dexterity1 Matk1
- else if (.@i <= 1643) setarray .@enchants[2],4740,4710; //Vitality1 Inteligence1
- else if (.@i <= 1674) setarray .@enchants[2],4740,4711; //Vitality1 Inteligence2
- else if (.@i <= 1705) setarray .@enchants[2],4740,4721; //Vitality1 Dexterity2
- else if (.@i <= 1736) setarray .@enchants[2],4740,4760; //Vitality1 Matk1
- else if (.@i <= 1767) setarray .@enchants[2],4741,4710; //Vitality2 Inteligence1
- else if (.@i <= 1798) setarray .@enchants[2],4741,4711; //Vitality2 Inteligence2
- else if (.@i <= 1829) setarray .@enchants[2],4741,4721; //Vitality2 Dexterity2
- else if (.@i <= 1860) setarray .@enchants[2],4741,4760; //Vitality2 Matk1
- else if (.@i <= 1891) setarray .@enchants[2],4801,4710; //SP100 Inteligence1
- else if (.@i <= 1922) setarray .@enchants[2],4801,4711; //SP100 Inteligence2
- else if (.@i <= 1953) setarray .@enchants[2],4801,4721; //SP100 Dexterity2
- else if (.@i <= 1984) setarray .@enchants[2],4801,4760; //SP100 Matk1
+ if (.@i <= 1984) {
+ // Basic combinations
+ // (raw: .@i increments by 31, 4 repeats)
+ setarray .@enchant_slot2[0],4720,4740,4741,4801; //Dexterity1,Vitality1,Vitality2,SP100
+ setarray .@enchant_slot3[0],4710,4711,4721,4760; //Inteligence1,Inteligence2,Dexterity2,Matk1
+ setarray .@enchants[2],
+ .@enchant_slot2[rand(getarraysize(.@enchant_slot2))],
+ .@enchant_slot3[rand(getarraysize(.@enchant_slot3))];
+ }
else if (.@i <= 1986) setarray .@enchants[2],4761,4761; //Matk2 Matk2
else if (.@i <= 1988) setarray .@enchants[2],4761,4723; //Matk2 Dexterity4
else if (.@i <= 1990) setarray .@enchants[2],4761,4714; //Matk2 Inteligence5
@@ -448,70 +287,15 @@ mora,96,74,5 script Master of Relics#pa0829 495,{
break;
case 4:
set .@i, rand(1,2852);
- if (.@i <= 31) setarray .@enchants[2],4720,4700; //Dexterity1 Strength1
- else if (.@i <= 62) setarray .@enchants[2],4720,4701; //Dexterity1 Strength2
- else if (.@i <= 93) setarray .@enchants[2],4720,4721; //Dexterity1 Dexterity2
- else if (.@i <= 124) setarray .@enchants[2],4720,4767; //Dexterity1 Atk3
- else if (.@i <= 155) setarray .@enchants[2],4740,4700; //Vitality1 Strength1
- else if (.@i <= 186) setarray .@enchants[2],4740,4701; //Vitality1 Strength2
- else if (.@i <= 217) setarray .@enchants[2],4740,4721; //Vitality1 Dexterity2
- else if (.@i <= 248) setarray .@enchants[2],4740,4767; //Vitality1 Atk3
- else if (.@i <= 279) setarray .@enchants[2],4741,4700; //Vitality2 Strength1
- else if (.@i <= 310) setarray .@enchants[2],4741,4701; //Vitality2 Strength2
- else if (.@i <= 341) setarray .@enchants[2],4741,4721; //Vitality2 Dexterity2
- else if (.@i <= 372) setarray .@enchants[2],4741,4767; //Vitality2 Atk3
- else if (.@i <= 403) setarray .@enchants[2],4701,4700; //Strength2 Strength1
- else if (.@i <= 434) setarray .@enchants[2],4701,4701; //Strength2 Strength2
- else if (.@i <= 465) setarray .@enchants[2],4701,4721; //Strength2 Dexterity2
- else if (.@i <= 496) setarray .@enchants[2],4701,4767; //Strength2 Atk3
- else if (.@i <= 527) setarray .@enchants[2],4720,4700; //Dexterity1 Strength1
- else if (.@i <= 558) setarray .@enchants[2],4720,4701; //Dexterity1 Strength2
- else if (.@i <= 589) setarray .@enchants[2],4720,4721; //Dexterity1 Dexterity2
- else if (.@i <= 620) setarray .@enchants[2],4720,4767; //Dexterity1 Atk3
- else if (.@i <= 651) setarray .@enchants[2],4740,4700; //Vitality1 Strength1
- else if (.@i <= 682) setarray .@enchants[2],4740,4701; //Vitality1 Strength2
- else if (.@i <= 713) setarray .@enchants[2],4740,4721; //Vitality1 Dexterity2
- else if (.@i <= 744) setarray .@enchants[2],4740,4767; //Vitality1 Atk3
- else if (.@i <= 775) setarray .@enchants[2],4741,4700; //Vitality2 Strength1
- else if (.@i <= 806) setarray .@enchants[2],4741,4701; //Vitality2 Strength2
- else if (.@i <= 837) setarray .@enchants[2],4741,4721; //Vitality2 Dexterity2
- else if (.@i <= 868) setarray .@enchants[2],4741,4767; //Vitality2 Atk3
- else if (.@i <= 899) setarray .@enchants[2],4701,4700; //Strength2 Strength1
- else if (.@i <= 930) setarray .@enchants[2],4701,4701; //Strength2 Strength2
- else if (.@i <= 961) setarray .@enchants[2],4701,4721; //Strength2 Dexterity2
- else if (.@i <= 992) setarray .@enchants[2],4701,4767; //Strength2 Atk3
- else if (.@i <= 1023) setarray .@enchants[2],4720,4700; //Dexterity1 Strength1
- else if (.@i <= 1054) setarray .@enchants[2],4720,4701; //Dexterity1 Strength2
- else if (.@i <= 1085) setarray .@enchants[2],4720,4721; //Dexterity1 Dexterity2
- else if (.@i <= 1116) setarray .@enchants[2],4720,4767; //Dexterity1 Atk3
- else if (.@i <= 1147) setarray .@enchants[2],4740,4700; //Vitality1 Strength1
- else if (.@i <= 1178) setarray .@enchants[2],4740,4701; //Vitality1 Strength2
- else if (.@i <= 1209) setarray .@enchants[2],4740,4721; //Vitality1 Dexterity2
- else if (.@i <= 1240) setarray .@enchants[2],4740,4767; //Vitality1 Atk3
- else if (.@i <= 1271) setarray .@enchants[2],4741,4700; //Vitality2 Strength1
- else if (.@i <= 1302) setarray .@enchants[2],4741,4701; //Vitality2 Strength2
- else if (.@i <= 1333) setarray .@enchants[2],4741,4721; //Vitality2 Dexterity2
- else if (.@i <= 1364) setarray .@enchants[2],4741,4767; //Vitality2 Atk3
- else if (.@i <= 1395) setarray .@enchants[2],4701,4700; //Strength2 Strength1
- else if (.@i <= 1426) setarray .@enchants[2],4701,4701; //Strength2 Strength2
- else if (.@i <= 1457) setarray .@enchants[2],4701,4721; //Strength2 Dexterity2
- else if (.@i <= 1488) setarray .@enchants[2],4701,4767; //Strength2 Atk3
- else if (.@i <= 1519) setarray .@enchants[2],4720,4700; //Dexterity1 Strength1
- else if (.@i <= 1550) setarray .@enchants[2],4720,4701; //Dexterity1 Strength2
- else if (.@i <= 1581) setarray .@enchants[2],4720,4721; //Dexterity1 Dexterity2
- else if (.@i <= 1612) setarray .@enchants[2],4720,4767; //Dexterity1 Atk3
- else if (.@i <= 1643) setarray .@enchants[2],4740,4700; //Vitality1 Strength1
- else if (.@i <= 1674) setarray .@enchants[2],4740,4701; //Vitality1 Strength2
- else if (.@i <= 1705) setarray .@enchants[2],4740,4721; //Vitality1 Dexterity2
- else if (.@i <= 1736) setarray .@enchants[2],4740,4767; //Vitality1 Atk3
- else if (.@i <= 1767) setarray .@enchants[2],4741,4700; //Vitality2 Strength1
- else if (.@i <= 1798) setarray .@enchants[2],4741,4701; //Vitality2 Strength2
- else if (.@i <= 1829) setarray .@enchants[2],4741,4721; //Vitality2 Dexterity2
- else if (.@i <= 1860) setarray .@enchants[2],4741,4767; //Vitality2 Atk3
- else if (.@i <= 1891) setarray .@enchants[2],4701,4700; //Strength2 Strength1
- else if (.@i <= 1922) setarray .@enchants[2],4701,4701; //Strength2 Strength2
- else if (.@i <= 1953) setarray .@enchants[2],4701,4721; //Strength2 Dexterity2
- else if (.@i <= 1984) setarray .@enchants[2],4701,4767; //Strength2 Atk3
+ if (.@i <= 1984) {
+ // Basic combinations
+ // (raw: .@i increments by 31, 4 repeats)
+ setarray .@enchant_slot2[0],4720,4740,4741,4701; //Dexterity1,Vitality1,Vitality2,Strength2
+ setarray .@enchant_slot3[0],4700,4701,4721,4767; //Strength1,Strength2,Dexterity2,Atk3
+ setarray .@enchants[2],
+ .@enchant_slot2[rand(getarraysize(.@enchant_slot2))],
+ .@enchant_slot3[rand(getarraysize(.@enchant_slot3))];
+ }
else if (.@i <= 1986) setarray .@enchants[2],4767,4767; //Atk3 Atk3
else if (.@i <= 1988) setarray .@enchants[2],4767,4723; //Atk3 Dexterity4
else if (.@i <= 1990) setarray .@enchants[2],4767,4704; //Atk3 Strength5
@@ -684,70 +468,15 @@ mora,99,93,5 script Artifact Crafter#pa0829 495,{
switch(.@enchant_type) {
case 1:
set .@i, rand(1,2847);
- if (.@i <= 31) setarray .@enchants[2],4720,4786; //Dexterity1 Mdef2
- else if (.@i <= 62) setarray .@enchants[2],4720,4760; //Dexterity1 Matk1
- else if (.@i <= 93) setarray .@enchants[2],4720,4711; //Dexterity1 Inteligence2
- else if (.@i <= 124) setarray .@enchants[2],4720,4721; //Dexterity1 Dexterity2
- else if (.@i <= 155) setarray .@enchants[2],4796,4786; //HP200 Mdef2
- else if (.@i <= 186) setarray .@enchants[2],4796,4760; //HP200 Matk1
- else if (.@i <= 217) setarray .@enchants[2],4796,4711; //HP200 Inteligence2
- else if (.@i <= 248) setarray .@enchants[2],4796,4721; //HP200 Dexterity2
- else if (.@i <= 279) setarray .@enchants[2],4710,4786; //Inteligence1 Mdef2
- else if (.@i <= 310) setarray .@enchants[2],4710,4760; //Inteligence1 Matk1
- else if (.@i <= 341) setarray .@enchants[2],4710,4711; //Inteligence1 Inteligence2
- else if (.@i <= 372) setarray .@enchants[2],4710,4721; //Inteligence1 Dexterity2
- else if (.@i <= 403) setarray .@enchants[2],4801,4786; //SP100 Mdef2
- else if (.@i <= 434) setarray .@enchants[2],4801,4760; //SP100 Matk1
- else if (.@i <= 465) setarray .@enchants[2],4801,4711; //SP100 Inteligence2
- else if (.@i <= 496) setarray .@enchants[2],4801,4721; //SP100 Dexterity2
- else if (.@i <= 527) setarray .@enchants[2],4720,4786; //Dexterity1 Mdef2
- else if (.@i <= 558) setarray .@enchants[2],4720,4760; //Dexterity1 Matk1
- else if (.@i <= 589) setarray .@enchants[2],4720,4711; //Dexterity1 Inteligence2
- else if (.@i <= 620) setarray .@enchants[2],4720,4721; //Dexterity1 Dexterity2
- else if (.@i <= 651) setarray .@enchants[2],4796,4786; //HP200 Mdef2
- else if (.@i <= 682) setarray .@enchants[2],4796,4760; //HP200 Matk1
- else if (.@i <= 713) setarray .@enchants[2],4796,4711; //HP200 Inteligence2
- else if (.@i <= 744) setarray .@enchants[2],4796,4721; //HP200 Dexterity2
- else if (.@i <= 775) setarray .@enchants[2],4710,4786; //Inteligence1 Mdef2
- else if (.@i <= 806) setarray .@enchants[2],4710,4760; //Inteligence1 Matk1
- else if (.@i <= 837) setarray .@enchants[2],4710,4711; //Inteligence1 Inteligence2
- else if (.@i <= 868) setarray .@enchants[2],4710,4721; //Inteligence1 Dexterity2
- else if (.@i <= 899) setarray .@enchants[2],4801,4786; //SP100 Mdef2
- else if (.@i <= 930) setarray .@enchants[2],4801,4760; //SP100 Matk1
- else if (.@i <= 961) setarray .@enchants[2],4801,4711; //SP100 Inteligence2
- else if (.@i <= 992) setarray .@enchants[2],4801,4721; //SP100 Dexterity2
- else if (.@i <= 1023) setarray .@enchants[2],4720,4786; //Dexterity1 Mdef2
- else if (.@i <= 1054) setarray .@enchants[2],4720,4760; //Dexterity1 Matk1
- else if (.@i <= 1085) setarray .@enchants[2],4720,4711; //Dexterity1 Inteligence2
- else if (.@i <= 1116) setarray .@enchants[2],4720,4721; //Dexterity1 Dexterity2
- else if (.@i <= 1147) setarray .@enchants[2],4796,4786; //HP200 Mdef2
- else if (.@i <= 1178) setarray .@enchants[2],4796,4760; //HP200 Matk1
- else if (.@i <= 1209) setarray .@enchants[2],4796,4711; //HP200 Inteligence2
- else if (.@i <= 1240) setarray .@enchants[2],4796,4721; //HP200 Dexterity2
- else if (.@i <= 1271) setarray .@enchants[2],4710,4786; //Inteligence1 Mdef2
- else if (.@i <= 1302) setarray .@enchants[2],4710,4760; //Inteligence1 Matk1
- else if (.@i <= 1333) setarray .@enchants[2],4710,4711; //Inteligence1 Inteligence2
- else if (.@i <= 1364) setarray .@enchants[2],4710,4721; //Inteligence1 Dexterity2
- else if (.@i <= 1395) setarray .@enchants[2],4801,4786; //SP100 Mdef2
- else if (.@i <= 1426) setarray .@enchants[2],4801,4760; //SP100 Matk1
- else if (.@i <= 1457) setarray .@enchants[2],4801,4711; //SP100 Inteligence2
- else if (.@i <= 1488) setarray .@enchants[2],4801,4721; //SP100 Dexterity2
- else if (.@i <= 1519) setarray .@enchants[2],4720,4786; //Dexterity1 Mdef2
- else if (.@i <= 1550) setarray .@enchants[2],4720,4760; //Dexterity1 Matk1
- else if (.@i <= 1581) setarray .@enchants[2],4720,4711; //Dexterity1 Inteligence2
- else if (.@i <= 1612) setarray .@enchants[2],4720,4721; //Dexterity1 Dexterity2
- else if (.@i <= 1643) setarray .@enchants[2],4796,4786; //HP200 Mdef2
- else if (.@i <= 1674) setarray .@enchants[2],4796,4760; //HP200 Matk1
- else if (.@i <= 1705) setarray .@enchants[2],4796,4711; //HP200 Inteligence2
- else if (.@i <= 1736) setarray .@enchants[2],4796,4721; //HP200 Dexterity2
- else if (.@i <= 1767) setarray .@enchants[2],4710,4786; //Inteligence1 Mdef2
- else if (.@i <= 1798) setarray .@enchants[2],4710,4760; //Inteligence1 Matk1
- else if (.@i <= 1829) setarray .@enchants[2],4710,4711; //Inteligence1 Inteligence2
- else if (.@i <= 1860) setarray .@enchants[2],4710,4721; //Inteligence1 Dexterity2
- else if (.@i <= 1891) setarray .@enchants[2],4801,4786; //SP100 Mdef2
- else if (.@i <= 1922) setarray .@enchants[2],4801,4760; //SP100 Matk1
- else if (.@i <= 1953) setarray .@enchants[2],4801,4711; //SP100 Inteligence2
- else if (.@i <= 1984) setarray .@enchants[2],4801,4721; //SP100 Dexterity2
+ if (.@i <= 1984) {
+ // Basic combinations
+ // (raw: .@i increments by 31, 4 repeats)
+ setarray .@enchant_slot2[0],4720,4796,4710,4801; //Dexterity1,HP200,Inteligence1,SP100
+ setarray .@enchant_slot3[0],4786,4760,4711,4721; //Mdef2,Matk1,Inteligence2,Dexterity2
+ setarray .@enchants[2],
+ .@enchant_slot2[rand(getarraysize(.@enchant_slot2))],
+ .@enchant_slot3[rand(getarraysize(.@enchant_slot3))];
+ }
else if (.@i <= 1986) setarray .@enchants[2],4713,4761; //Inteligence4 Matk2
else if (.@i <= 1988) setarray .@enchants[2],4713,4713; //Inteligence4 Inteligence4
else if (.@i <= 1990) setarray .@enchants[2],4761,4761; //Matk2 Matk2
@@ -760,70 +489,17 @@ mora,99,93,5 script Artifact Crafter#pa0829 495,{
break;
case 2:
set .@i, rand(1,2858);
- if (.@i <= 31) setarray .@enchants[1],4710,4720,4786; //Inteligence1 Dexterity1 Mdef2
- else if (.@i <= 62) setarray .@enchants[1],4710,4720,4760; //Inteligence1 Dexterity1 Matk1
- else if (.@i <= 93) setarray .@enchants[1],4710,4720,4711; //Inteligence1 Dexterity1 Inteligence2
- else if (.@i <= 124) setarray .@enchants[1],4710,4720,4721; //Inteligence1 Dexterity1 Dexterity2
- else if (.@i <= 155) setarray .@enchants[1],4710,4796,4786; //Inteligence1 HP200 Mdef2
- else if (.@i <= 186) setarray .@enchants[1],4710,4796,4760; //Inteligence1 HP200 Matk1
- else if (.@i <= 217) setarray .@enchants[1],4710,4796,4711; //Inteligence1 HP200 Inteligence2
- else if (.@i <= 248) setarray .@enchants[1],4710,4796,4721; //Inteligence1 HP200 Dexterity2
- else if (.@i <= 279) setarray .@enchants[1],4710,4710,4786; //Inteligence1 Inteligence1 Mdef2
- else if (.@i <= 310) setarray .@enchants[1],4710,4710,4760; //Inteligence1 Inteligence1 Matk1
- else if (.@i <= 341) setarray .@enchants[1],4710,4710,4711; //Inteligence1 Inteligence1 Inteligence2
- else if (.@i <= 372) setarray .@enchants[1],4710,4710,4721; //Inteligence1 Inteligence1 Dexterity2
- else if (.@i <= 403) setarray .@enchants[1],4710,4801,4786; //Inteligence1 SP100 Mdef2
- else if (.@i <= 434) setarray .@enchants[1],4710,4801,4760; //Inteligence1 SP100 Matk1
- else if (.@i <= 465) setarray .@enchants[1],4710,4801,4711; //Inteligence1 SP100 Inteligence2
- else if (.@i <= 496) setarray .@enchants[1],4710,4801,4721; //Inteligence1 SP100 Dexterity2
- else if (.@i <= 527) setarray .@enchants[1],4711,4720,4786; //Inteligence2 Dexterity1 Mdef2
- else if (.@i <= 558) setarray .@enchants[1],4711,4720,4760; //Inteligence2 Dexterity1 Matk1
- else if (.@i <= 589) setarray .@enchants[1],4711,4720,4711; //Inteligence2 Dexterity1 Inteligence2
- else if (.@i <= 620) setarray .@enchants[1],4711,4720,4721; //Inteligence2 Dexterity1 Dexterity2
- else if (.@i <= 651) setarray .@enchants[1],4711,4796,4786; //Inteligence2 HP200 Mdef2
- else if (.@i <= 682) setarray .@enchants[1],4711,4796,4760; //Inteligence2 HP200 Matk1
- else if (.@i <= 713) setarray .@enchants[1],4711,4796,4711; //Inteligence2 HP200 Inteligence2
- else if (.@i <= 744) setarray .@enchants[1],4711,4796,4721; //Inteligence2 HP200 Dexterity2
- else if (.@i <= 775) setarray .@enchants[1],4711,4710,4786; //Inteligence2 Inteligence1 Mdef2
- else if (.@i <= 806) setarray .@enchants[1],4711,4710,4760; //Inteligence2 Inteligence1 Matk1
- else if (.@i <= 837) setarray .@enchants[1],4711,4710,4711; //Inteligence2 Inteligence1 Inteligence2
- else if (.@i <= 868) setarray .@enchants[1],4711,4710,4721; //Inteligence2 Inteligence1 Dexterity2
- else if (.@i <= 899) setarray .@enchants[1],4711,4801,4786; //Inteligence2 SP100 Mdef2
- else if (.@i <= 930) setarray .@enchants[1],4711,4801,4760; //Inteligence2 SP100 Matk1
- else if (.@i <= 961) setarray .@enchants[1],4711,4801,4711; //Inteligence2 SP100 Inteligence2
- else if (.@i <= 992) setarray .@enchants[1],4711,4801,4721; //Inteligence2 SP100 Dexterity2
- else if (.@i <= 1023) setarray .@enchants[1],4720,4720,4786; //Dexterity1 Dexterity1 Mdef2
- else if (.@i <= 1054) setarray .@enchants[1],4720,4720,4760; //Dexterity1 Dexterity1 Matk1
- else if (.@i <= 1085) setarray .@enchants[1],4720,4720,4711; //Dexterity1 Dexterity1 Inteligence2
- else if (.@i <= 1116) setarray .@enchants[1],4720,4720,4721; //Dexterity1 Dexterity1 Dexterity2
- else if (.@i <= 1147) setarray .@enchants[1],4720,4796,4786; //Dexterity1 HP200 Mdef2
- else if (.@i <= 1178) setarray .@enchants[1],4720,4796,4760; //Dexterity1 HP200 Matk1
- else if (.@i <= 1209) setarray .@enchants[1],4720,4796,4711; //Dexterity1 HP200 Inteligence2
- else if (.@i <= 1240) setarray .@enchants[1],4720,4796,4721; //Dexterity1 HP200 Dexterity2
- else if (.@i <= 1271) setarray .@enchants[1],4720,4710,4786; //Dexterity1 Inteligence1 Mdef2
- else if (.@i <= 1302) setarray .@enchants[1],4720,4710,4760; //Dexterity1 Inteligence1 Matk1
- else if (.@i <= 1333) setarray .@enchants[1],4720,4710,4711; //Dexterity1 Inteligence1 Inteligence2
- else if (.@i <= 1364) setarray .@enchants[1],4720,4710,4721; //Dexterity1 Inteligence1 Dexterity2
- else if (.@i <= 1395) setarray .@enchants[1],4720,4801,4786; //Dexterity1 SP100 Mdef2
- else if (.@i <= 1426) setarray .@enchants[1],4720,4801,4760; //Dexterity1 SP100 Matk1
- else if (.@i <= 1457) setarray .@enchants[1],4720,4801,4711; //Dexterity1 SP100 Inteligence2
- else if (.@i <= 1488) setarray .@enchants[1],4720,4801,4721; //Dexterity1 SP100 Dexterity2
- else if (.@i <= 1519) setarray .@enchants[1],4721,4720,4786; //Dexterity2 Dexterity1 Mdef2
- else if (.@i <= 1550) setarray .@enchants[1],4721,4720,4760; //Dexterity2 Dexterity1 Matk1
- else if (.@i <= 1581) setarray .@enchants[1],4721,4720,4711; //Dexterity2 Dexterity1 Inteligence2
- else if (.@i <= 1612) setarray .@enchants[1],4721,4720,4721; //Dexterity2 Dexterity1 Dexterity2
- else if (.@i <= 1643) setarray .@enchants[1],4721,4796,4786; //Dexterity2 HP200 Mdef2
- else if (.@i <= 1674) setarray .@enchants[1],4721,4796,4760; //Dexterity2 HP200 Matk1
- else if (.@i <= 1705) setarray .@enchants[1],4721,4796,4711; //Dexterity2 HP200 Inteligence2
- else if (.@i <= 1736) setarray .@enchants[1],4721,4796,4721; //Dexterity2 HP200 Dexterity2
- else if (.@i <= 1767) setarray .@enchants[1],4721,4710,4786; //Dexterity2 Inteligence1 Mdef2
- else if (.@i <= 1798) setarray .@enchants[1],4721,4710,4760; //Dexterity2 Inteligence1 Matk1
- else if (.@i <= 1829) setarray .@enchants[1],4721,4710,4711; //Dexterity2 Inteligence1 Inteligence2
- else if (.@i <= 1860) setarray .@enchants[1],4721,4710,4721; //Dexterity2 Inteligence1 Dexterity2
- else if (.@i <= 1891) setarray .@enchants[1],4721,4801,4786; //Dexterity2 SP100 Mdef2
- else if (.@i <= 1922) setarray .@enchants[1],4721,4801,4760; //Dexterity2 SP100 Matk1
- else if (.@i <= 1953) setarray .@enchants[1],4721,4801,4711; //Dexterity2 SP100 Inteligence2
- else if (.@i <= 1984) setarray .@enchants[1],4721,4801,4721; //Dexterity2 SP100 Dexterity2
+ if (.@i <= 1984) {
+ // Basic combinations
+ // (raw: .@i increments by 31)
+ setarray .@enchant_slot1[0],4710,4711,4720,4721; //Inteligence1,Inteligence2,Dexterity1,Dexterity2
+ setarray .@enchant_slot2[0],4720,4796,4710,4801; //Dexterity1,HP200,Inteligence1,SP100
+ setarray .@enchant_slot3[0],4786,4760,4711,4721; //Mdef2,Matk1,Inteligence2,Dexterity2
+ setarray .@enchants[1],
+ .@enchant_slot1[rand(getarraysize(.@enchant_slot1))],
+ .@enchant_slot2[rand(getarraysize(.@enchant_slot2))],
+ .@enchant_slot3[rand(getarraysize(.@enchant_slot3))];
+ }
else if (.@i <= 1986) setarray .@enchants[1],4712,4713,4761; //Inteligence3 Inteligence4 Matk2
else if (.@i <= 1988) setarray .@enchants[1],4712,4713,4713; //Inteligence3 Inteligence4 Inteligence4
else if (.@i <= 1990) setarray .@enchants[1],4712,4761,4761; //Inteligence3 Matk2 Matk2
@@ -884,12 +560,13 @@ mora,152,97,5 script Guardian of Power#pa082 515,{
close;
}
mes "[Guardian of Power]";
- mes .@jobs$[.@job]+"~ which artifact do you want?";
+ mes .@jobs$[.@job]+"?";
+ mes "Which artifact do you want?";
next;
switch(.@job) {
case 0: // Rune Knight
setarray .@items[0],2475,2476,2574,2575;
- set .@i, select("Cancel:Ur's Greaves (Shoes):Peuz Greaves (Shoes):Ur's Manteau (Garment):Peuz Manteau (Garment)")-2;
+ set .@i, select("Cancel:Ur's Greaves (Shoes):Peuz's Greaves (Shoes):Ur's Manteau (Garment):Peuz's Manteau (Garment)")-2;
break;
case 1: // Guillotine Cross
setarray .@items[0],2477,2478,2577,2578;
@@ -979,7 +656,6 @@ mora,148,98,3 script Artifact Researcher#new 521,{
set .@equip_id, getequipid(.@part);
set @mora_equip_part, .@part;
- // @mora_equip_id = enc_type
//callsub L_Socket,<enchant type>,<bonus enchant type>,<4-x enchants possible>;
// Enchant types:
// [1]ATK [2]CRIT [3]EVA [4]Healer [5]Spell 1 [6]Assist 1 [7]Assist 2 [8]STR [9]Range [10]Physical [11]Spell 2
@@ -1803,294 +1479,17 @@ function script F_Mora_Enchant {
delitem 6380,5; //Mora_Coin
delitem getarg(0),1;
set .@i, rand(1,4568);
- if (.@i <= 11) setarray .@enchants[1],4766,4720,4700; //Atk2 Dexterity1 Strength1
- else if (.@i <= 22) setarray .@enchants[1],4766,4720,4701; //Atk2 Dexterity1 Strength2
- else if (.@i <= 33) setarray .@enchants[1],4766,4720,4730; //Atk2 Dexterity1 Agility1
- else if (.@i <= 44) setarray .@enchants[1],4766,4720,4731; //Atk2 Dexterity1 Agility2
- else if (.@i <= 55) setarray .@enchants[1],4766,4720,4740; //Atk2 Dexterity1 Vitality1
- else if (.@i <= 66) setarray .@enchants[1],4766,4720,4741; //Atk2 Dexterity1 Vitality2
- else if (.@i <= 77) setarray .@enchants[1],4766,4721,4700; //Atk2 Dexterity2 Strength1
- else if (.@i <= 88) setarray .@enchants[1],4766,4721,4701; //Atk2 Dexterity2 Strength2
- else if (.@i <= 99) setarray .@enchants[1],4766,4721,4730; //Atk2 Dexterity2 Agility1
- else if (.@i <= 110) setarray .@enchants[1],4766,4721,4731; //Atk2 Dexterity2 Agility2
- else if (.@i <= 121) setarray .@enchants[1],4766,4721,4740; //Atk2 Dexterity2 Vitality1
- else if (.@i <= 132) setarray .@enchants[1],4766,4721,4741; //Atk2 Dexterity2 Vitality2
- else if (.@i <= 143) setarray .@enchants[1],4766,4710,4700; //Atk2 Inteligence1 Strength1
- else if (.@i <= 154) setarray .@enchants[1],4766,4710,4701; //Atk2 Inteligence1 Strength2
- else if (.@i <= 165) setarray .@enchants[1],4766,4710,4730; //Atk2 Inteligence1 Agility1
- else if (.@i <= 176) setarray .@enchants[1],4766,4710,4731; //Atk2 Inteligence1 Agility2
- else if (.@i <= 187) setarray .@enchants[1],4766,4710,4740; //Atk2 Inteligence1 Vitality1
- else if (.@i <= 198) setarray .@enchants[1],4766,4710,4741; //Atk2 Inteligence1 Vitality2
- else if (.@i <= 209) setarray .@enchants[1],4766,4711,4700; //Atk2 Inteligence2 Strength1
- else if (.@i <= 220) setarray .@enchants[1],4766,4711,4701; //Atk2 Inteligence2 Strength2
- else if (.@i <= 231) setarray .@enchants[1],4766,4711,4730; //Atk2 Inteligence2 Agility1
- else if (.@i <= 242) setarray .@enchants[1],4766,4711,4731; //Atk2 Inteligence2 Agility2
- else if (.@i <= 253) setarray .@enchants[1],4766,4711,4740; //Atk2 Inteligence2 Vitality1
- else if (.@i <= 264) setarray .@enchants[1],4766,4711,4741; //Atk2 Inteligence2 Vitality2
- else if (.@i <= 275) setarray .@enchants[1],4766,4750,4700; //Atk2 Luck1 Strength1
- else if (.@i <= 286) setarray .@enchants[1],4766,4750,4701; //Atk2 Luck1 Strength2
- else if (.@i <= 297) setarray .@enchants[1],4766,4750,4730; //Atk2 Luck1 Agility1
- else if (.@i <= 308) setarray .@enchants[1],4766,4750,4731; //Atk2 Luck1 Agility2
- else if (.@i <= 319) setarray .@enchants[1],4766,4750,4740; //Atk2 Luck1 Vitality1
- else if (.@i <= 330) setarray .@enchants[1],4766,4750,4741; //Atk2 Luck1 Vitality2
- else if (.@i <= 341) setarray .@enchants[1],4766,4751,4700; //Atk2 Luck2 Strength1
- else if (.@i <= 352) setarray .@enchants[1],4766,4751,4701; //Atk2 Luck2 Strength2
- else if (.@i <= 363) setarray .@enchants[1],4766,4751,4730; //Atk2 Luck2 Agility1
- else if (.@i <= 374) setarray .@enchants[1],4766,4751,4731; //Atk2 Luck2 Agility2
- else if (.@i <= 385) setarray .@enchants[1],4766,4751,4740; //Atk2 Luck2 Vitality1
- else if (.@i <= 396) setarray .@enchants[1],4766,4751,4741; //Atk2 Luck2 Vitality2
- else if (.@i <= 407) setarray .@enchants[1],4767,4720,4700; //Atk3 Dexterity1 Strength1
- else if (.@i <= 418) setarray .@enchants[1],4767,4720,4701; //Atk3 Dexterity1 Strength2
- else if (.@i <= 429) setarray .@enchants[1],4767,4720,4730; //Atk3 Dexterity1 Agility1
- else if (.@i <= 440) setarray .@enchants[1],4767,4720,4731; //Atk3 Dexterity1 Agility2
- else if (.@i <= 451) setarray .@enchants[1],4767,4720,4740; //Atk3 Dexterity1 Vitality1
- else if (.@i <= 462) setarray .@enchants[1],4767,4720,4741; //Atk3 Dexterity1 Vitality2
- else if (.@i <= 473) setarray .@enchants[1],4767,4721,4700; //Atk3 Dexterity2 Strength1
- else if (.@i <= 484) setarray .@enchants[1],4767,4721,4701; //Atk3 Dexterity2 Strength2
- else if (.@i <= 495) setarray .@enchants[1],4767,4721,4730; //Atk3 Dexterity2 Agility1
- else if (.@i <= 506) setarray .@enchants[1],4767,4721,4731; //Atk3 Dexterity2 Agility2
- else if (.@i <= 517) setarray .@enchants[1],4767,4721,4740; //Atk3 Dexterity2 Vitality1
- else if (.@i <= 528) setarray .@enchants[1],4767,4721,4741; //Atk3 Dexterity2 Vitality2
- else if (.@i <= 539) setarray .@enchants[1],4767,4710,4700; //Atk3 Inteligence1 Strength1
- else if (.@i <= 550) setarray .@enchants[1],4767,4710,4701; //Atk3 Inteligence1 Strength2
- else if (.@i <= 561) setarray .@enchants[1],4767,4710,4730; //Atk3 Inteligence1 Agility1
- else if (.@i <= 572) setarray .@enchants[1],4767,4710,4731; //Atk3 Inteligence1 Agility2
- else if (.@i <= 583) setarray .@enchants[1],4767,4710,4740; //Atk3 Inteligence1 Vitality1
- else if (.@i <= 594) setarray .@enchants[1],4767,4710,4741; //Atk3 Inteligence1 Vitality2
- else if (.@i <= 605) setarray .@enchants[1],4767,4711,4700; //Atk3 Inteligence2 Strength1
- else if (.@i <= 616) setarray .@enchants[1],4767,4711,4701; //Atk3 Inteligence2 Strength2
- else if (.@i <= 627) setarray .@enchants[1],4767,4711,4730; //Atk3 Inteligence2 Agility1
- else if (.@i <= 638) setarray .@enchants[1],4767,4711,4731; //Atk3 Inteligence2 Agility2
- else if (.@i <= 649) setarray .@enchants[1],4767,4711,4740; //Atk3 Inteligence2 Vitality1
- else if (.@i <= 660) setarray .@enchants[1],4767,4711,4741; //Atk3 Inteligence2 Vitality2
- else if (.@i <= 671) setarray .@enchants[1],4767,4750,4700; //Atk3 Luck1 Strength1
- else if (.@i <= 682) setarray .@enchants[1],4767,4750,4701; //Atk3 Luck1 Strength2
- else if (.@i <= 693) setarray .@enchants[1],4767,4750,4730; //Atk3 Luck1 Agility1
- else if (.@i <= 704) setarray .@enchants[1],4767,4750,4731; //Atk3 Luck1 Agility2
- else if (.@i <= 715) setarray .@enchants[1],4767,4750,4740; //Atk3 Luck1 Vitality1
- else if (.@i <= 726) setarray .@enchants[1],4767,4750,4741; //Atk3 Luck1 Vitality2
- else if (.@i <= 737) setarray .@enchants[1],4767,4751,4700; //Atk3 Luck2 Strength1
- else if (.@i <= 748) setarray .@enchants[1],4767,4751,4701; //Atk3 Luck2 Strength2
- else if (.@i <= 759) setarray .@enchants[1],4767,4751,4730; //Atk3 Luck2 Agility1
- else if (.@i <= 770) setarray .@enchants[1],4767,4751,4731; //Atk3 Luck2 Agility2
- else if (.@i <= 781) setarray .@enchants[1],4767,4751,4740; //Atk3 Luck2 Vitality1
- else if (.@i <= 792) setarray .@enchants[1],4767,4751,4741; //Atk3 Luck2 Vitality2
- else if (.@i <= 803) setarray .@enchants[1],4764,4720,4700; //Critical5 Dexterity1 Strength1
- else if (.@i <= 814) setarray .@enchants[1],4764,4720,4701; //Critical5 Dexterity1 Strength2
- else if (.@i <= 825) setarray .@enchants[1],4764,4720,4730; //Critical5 Dexterity1 Agility1
- else if (.@i <= 836) setarray .@enchants[1],4764,4720,4731; //Critical5 Dexterity1 Agility2
- else if (.@i <= 847) setarray .@enchants[1],4764,4720,4740; //Critical5 Dexterity1 Vitality1
- else if (.@i <= 858) setarray .@enchants[1],4764,4720,4741; //Critical5 Dexterity1 Vitality2
- else if (.@i <= 869) setarray .@enchants[1],4764,4721,4700; //Critical5 Dexterity2 Strength1
- else if (.@i <= 880) setarray .@enchants[1],4764,4721,4701; //Critical5 Dexterity2 Strength2
- else if (.@i <= 891) setarray .@enchants[1],4764,4721,4730; //Critical5 Dexterity2 Agility1
- else if (.@i <= 902) setarray .@enchants[1],4764,4721,4731; //Critical5 Dexterity2 Agility2
- else if (.@i <= 913) setarray .@enchants[1],4764,4721,4740; //Critical5 Dexterity2 Vitality1
- else if (.@i <= 924) setarray .@enchants[1],4764,4721,4741; //Critical5 Dexterity2 Vitality2
- else if (.@i <= 935) setarray .@enchants[1],4764,4710,4700; //Critical5 Inteligence1 Strength1
- else if (.@i <= 946) setarray .@enchants[1],4764,4710,4701; //Critical5 Inteligence1 Strength2
- else if (.@i <= 957) setarray .@enchants[1],4764,4710,4730; //Critical5 Inteligence1 Agility1
- else if (.@i <= 968) setarray .@enchants[1],4764,4710,4731; //Critical5 Inteligence1 Agility2
- else if (.@i <= 979) setarray .@enchants[1],4764,4710,4740; //Critical5 Inteligence1 Vitality1
- else if (.@i <= 990) setarray .@enchants[1],4764,4710,4741; //Critical5 Inteligence1 Vitality2
- else if (.@i <= 1001) setarray .@enchants[1],4764,4711,4700; //Critical5 Inteligence2 Strength1
- else if (.@i <= 1012) setarray .@enchants[1],4764,4711,4701; //Critical5 Inteligence2 Strength2
- else if (.@i <= 1023) setarray .@enchants[1],4764,4711,4730; //Critical5 Inteligence2 Agility1
- else if (.@i <= 1034) setarray .@enchants[1],4764,4711,4731; //Critical5 Inteligence2 Agility2
- else if (.@i <= 1045) setarray .@enchants[1],4764,4711,4740; //Critical5 Inteligence2 Vitality1
- else if (.@i <= 1056) setarray .@enchants[1],4764,4711,4741; //Critical5 Inteligence2 Vitality2
- else if (.@i <= 1067) setarray .@enchants[1],4764,4750,4700; //Critical5 Luck1 Strength1
- else if (.@i <= 1078) setarray .@enchants[1],4764,4750,4701; //Critical5 Luck1 Strength2
- else if (.@i <= 1089) setarray .@enchants[1],4764,4750,4730; //Critical5 Luck1 Agility1
- else if (.@i <= 1100) setarray .@enchants[1],4764,4750,4731; //Critical5 Luck1 Agility2
- else if (.@i <= 1111) setarray .@enchants[1],4764,4750,4740; //Critical5 Luck1 Vitality1
- else if (.@i <= 1122) setarray .@enchants[1],4764,4750,4741; //Critical5 Luck1 Vitality2
- else if (.@i <= 1133) setarray .@enchants[1],4764,4751,4700; //Critical5 Luck2 Strength1
- else if (.@i <= 1144) setarray .@enchants[1],4764,4751,4701; //Critical5 Luck2 Strength2
- else if (.@i <= 1155) setarray .@enchants[1],4764,4751,4730; //Critical5 Luck2 Agility1
- else if (.@i <= 1166) setarray .@enchants[1],4764,4751,4731; //Critical5 Luck2 Agility2
- else if (.@i <= 1177) setarray .@enchants[1],4764,4751,4740; //Critical5 Luck2 Vitality1
- else if (.@i <= 1188) setarray .@enchants[1],4764,4751,4741; //Critical5 Luck2 Vitality2
- else if (.@i <= 1199) setarray .@enchants[1],4765,4720,4700; //Critical7 Dexterity1 Strength1
- else if (.@i <= 1210) setarray .@enchants[1],4765,4720,4701; //Critical7 Dexterity1 Strength2
- else if (.@i <= 1221) setarray .@enchants[1],4765,4720,4730; //Critical7 Dexterity1 Agility1
- else if (.@i <= 1232) setarray .@enchants[1],4765,4720,4731; //Critical7 Dexterity1 Agility2
- else if (.@i <= 1243) setarray .@enchants[1],4765,4720,4740; //Critical7 Dexterity1 Vitality1
- else if (.@i <= 1254) setarray .@enchants[1],4765,4720,4741; //Critical7 Dexterity1 Vitality2
- else if (.@i <= 1265) setarray .@enchants[1],4765,4721,4700; //Critical7 Dexterity2 Strength1
- else if (.@i <= 1276) setarray .@enchants[1],4765,4721,4701; //Critical7 Dexterity2 Strength2
- else if (.@i <= 1287) setarray .@enchants[1],4765,4721,4730; //Critical7 Dexterity2 Agility1
- else if (.@i <= 1298) setarray .@enchants[1],4765,4721,4731; //Critical7 Dexterity2 Agility2
- else if (.@i <= 1309) setarray .@enchants[1],4765,4721,4740; //Critical7 Dexterity2 Vitality1
- else if (.@i <= 1320) setarray .@enchants[1],4765,4721,4741; //Critical7 Dexterity2 Vitality2
- else if (.@i <= 1331) setarray .@enchants[1],4765,4710,4700; //Critical7 Inteligence1 Strength1
- else if (.@i <= 1342) setarray .@enchants[1],4765,4710,4701; //Critical7 Inteligence1 Strength2
- else if (.@i <= 1353) setarray .@enchants[1],4765,4710,4730; //Critical7 Inteligence1 Agility1
- else if (.@i <= 1364) setarray .@enchants[1],4765,4710,4731; //Critical7 Inteligence1 Agility2
- else if (.@i <= 1375) setarray .@enchants[1],4765,4710,4740; //Critical7 Inteligence1 Vitality1
- else if (.@i <= 1386) setarray .@enchants[1],4765,4710,4741; //Critical7 Inteligence1 Vitality2
- else if (.@i <= 1397) setarray .@enchants[1],4765,4711,4700; //Critical7 Inteligence2 Strength1
- else if (.@i <= 1408) setarray .@enchants[1],4765,4711,4701; //Critical7 Inteligence2 Strength2
- else if (.@i <= 1419) setarray .@enchants[1],4765,4711,4730; //Critical7 Inteligence2 Agility1
- else if (.@i <= 1430) setarray .@enchants[1],4765,4711,4731; //Critical7 Inteligence2 Agility2
- else if (.@i <= 1441) setarray .@enchants[1],4765,4711,4740; //Critical7 Inteligence2 Vitality1
- else if (.@i <= 1452) setarray .@enchants[1],4765,4711,4741; //Critical7 Inteligence2 Vitality2
- else if (.@i <= 1463) setarray .@enchants[1],4765,4750,4700; //Critical7 Luck1 Strength1
- else if (.@i <= 1474) setarray .@enchants[1],4765,4750,4701; //Critical7 Luck1 Strength2
- else if (.@i <= 1485) setarray .@enchants[1],4765,4750,4730; //Critical7 Luck1 Agility1
- else if (.@i <= 1496) setarray .@enchants[1],4765,4750,4731; //Critical7 Luck1 Agility2
- else if (.@i <= 1507) setarray .@enchants[1],4765,4750,4740; //Critical7 Luck1 Vitality1
- else if (.@i <= 1518) setarray .@enchants[1],4765,4750,4741; //Critical7 Luck1 Vitality2
- else if (.@i <= 1529) setarray .@enchants[1],4765,4751,4700; //Critical7 Luck2 Strength1
- else if (.@i <= 1540) setarray .@enchants[1],4765,4751,4701; //Critical7 Luck2 Strength2
- else if (.@i <= 1551) setarray .@enchants[1],4765,4751,4730; //Critical7 Luck2 Agility1
- else if (.@i <= 1562) setarray .@enchants[1],4765,4751,4731; //Critical7 Luck2 Agility2
- else if (.@i <= 1573) setarray .@enchants[1],4765,4751,4740; //Critical7 Luck2 Vitality1
- else if (.@i <= 1584) setarray .@enchants[1],4765,4751,4741; //Critical7 Luck2 Vitality2
- else if (.@i <= 1595) setarray .@enchants[1],4762,4720,4700; //Evasion6 Dexterity1 Strength1
- else if (.@i <= 1606) setarray .@enchants[1],4762,4720,4701; //Evasion6 Dexterity1 Strength2
- else if (.@i <= 1617) setarray .@enchants[1],4762,4720,4730; //Evasion6 Dexterity1 Agility1
- else if (.@i <= 1628) setarray .@enchants[1],4762,4720,4731; //Evasion6 Dexterity1 Agility2
- else if (.@i <= 1639) setarray .@enchants[1],4762,4720,4740; //Evasion6 Dexterity1 Vitality1
- else if (.@i <= 1650) setarray .@enchants[1],4762,4720,4741; //Evasion6 Dexterity1 Vitality2
- else if (.@i <= 1661) setarray .@enchants[1],4762,4721,4700; //Evasion6 Dexterity2 Strength1
- else if (.@i <= 1672) setarray .@enchants[1],4762,4721,4701; //Evasion6 Dexterity2 Strength2
- else if (.@i <= 1683) setarray .@enchants[1],4762,4721,4730; //Evasion6 Dexterity2 Agility1
- else if (.@i <= 1694) setarray .@enchants[1],4762,4721,4731; //Evasion6 Dexterity2 Agility2
- else if (.@i <= 1705) setarray .@enchants[1],4762,4721,4740; //Evasion6 Dexterity2 Vitality1
- else if (.@i <= 1716) setarray .@enchants[1],4762,4721,4741; //Evasion6 Dexterity2 Vitality2
- else if (.@i <= 1727) setarray .@enchants[1],4762,4710,4700; //Evasion6 Inteligence1 Strength1
- else if (.@i <= 1738) setarray .@enchants[1],4762,4710,4701; //Evasion6 Inteligence1 Strength2
- else if (.@i <= 1749) setarray .@enchants[1],4762,4710,4730; //Evasion6 Inteligence1 Agility1
- else if (.@i <= 1760) setarray .@enchants[1],4762,4710,4731; //Evasion6 Inteligence1 Agility2
- else if (.@i <= 1771) setarray .@enchants[1],4762,4710,4740; //Evasion6 Inteligence1 Vitality1
- else if (.@i <= 1782) setarray .@enchants[1],4762,4710,4741; //Evasion6 Inteligence1 Vitality2
- else if (.@i <= 1793) setarray .@enchants[1],4762,4711,4700; //Evasion6 Inteligence2 Strength1
- else if (.@i <= 1804) setarray .@enchants[1],4762,4711,4701; //Evasion6 Inteligence2 Strength2
- else if (.@i <= 1815) setarray .@enchants[1],4762,4711,4730; //Evasion6 Inteligence2 Agility1
- else if (.@i <= 1826) setarray .@enchants[1],4762,4711,4731; //Evasion6 Inteligence2 Agility2
- else if (.@i <= 1837) setarray .@enchants[1],4762,4711,4740; //Evasion6 Inteligence2 Vitality1
- else if (.@i <= 1848) setarray .@enchants[1],4762,4711,4741; //Evasion6 Inteligence2 Vitality2
- else if (.@i <= 1859) setarray .@enchants[1],4762,4750,4700; //Evasion6 Luck1 Strength1
- else if (.@i <= 1870) setarray .@enchants[1],4762,4750,4701; //Evasion6 Luck1 Strength2
- else if (.@i <= 1881) setarray .@enchants[1],4762,4750,4730; //Evasion6 Luck1 Agility1
- else if (.@i <= 1892) setarray .@enchants[1],4762,4750,4731; //Evasion6 Luck1 Agility2
- else if (.@i <= 1903) setarray .@enchants[1],4762,4750,4740; //Evasion6 Luck1 Vitality1
- else if (.@i <= 1914) setarray .@enchants[1],4762,4750,4741; //Evasion6 Luck1 Vitality2
- else if (.@i <= 1925) setarray .@enchants[1],4762,4751,4700; //Evasion6 Luck2 Strength1
- else if (.@i <= 1936) setarray .@enchants[1],4762,4751,4701; //Evasion6 Luck2 Strength2
- else if (.@i <= 1947) setarray .@enchants[1],4762,4751,4730; //Evasion6 Luck2 Agility1
- else if (.@i <= 1958) setarray .@enchants[1],4762,4751,4731; //Evasion6 Luck2 Agility2
- else if (.@i <= 1969) setarray .@enchants[1],4762,4751,4740; //Evasion6 Luck2 Vitality1
- else if (.@i <= 1980) setarray .@enchants[1],4762,4751,4741; //Evasion6 Luck2 Vitality2
- else if (.@i <= 1991) setarray .@enchants[1],4763,4720,4700; //Evasion12 Dexterity1 Strength1
- else if (.@i <= 2002) setarray .@enchants[1],4763,4720,4701; //Evasion12 Dexterity1 Strength2
- else if (.@i <= 2013) setarray .@enchants[1],4763,4720,4730; //Evasion12 Dexterity1 Agility1
- else if (.@i <= 2024) setarray .@enchants[1],4763,4720,4731; //Evasion12 Dexterity1 Agility2
- else if (.@i <= 2035) setarray .@enchants[1],4763,4720,4740; //Evasion12 Dexterity1 Vitality1
- else if (.@i <= 2046) setarray .@enchants[1],4763,4720,4741; //Evasion12 Dexterity1 Vitality2
- else if (.@i <= 2057) setarray .@enchants[1],4763,4721,4700; //Evasion12 Dexterity2 Strength1
- else if (.@i <= 2068) setarray .@enchants[1],4763,4721,4701; //Evasion12 Dexterity2 Strength2
- else if (.@i <= 2079) setarray .@enchants[1],4763,4721,4730; //Evasion12 Dexterity2 Agility1
- else if (.@i <= 2090) setarray .@enchants[1],4763,4721,4731; //Evasion12 Dexterity2 Agility2
- else if (.@i <= 2101) setarray .@enchants[1],4763,4721,4740; //Evasion12 Dexterity2 Vitality1
- else if (.@i <= 2112) setarray .@enchants[1],4763,4721,4741; //Evasion12 Dexterity2 Vitality2
- else if (.@i <= 2123) setarray .@enchants[1],4763,4710,4700; //Evasion12 Inteligence1 Strength1
- else if (.@i <= 2134) setarray .@enchants[1],4763,4710,4701; //Evasion12 Inteligence1 Strength2
- else if (.@i <= 2145) setarray .@enchants[1],4763,4710,4730; //Evasion12 Inteligence1 Agility1
- else if (.@i <= 2156) setarray .@enchants[1],4763,4710,4731; //Evasion12 Inteligence1 Agility2
- else if (.@i <= 2167) setarray .@enchants[1],4763,4710,4740; //Evasion12 Inteligence1 Vitality1
- else if (.@i <= 2178) setarray .@enchants[1],4763,4710,4741; //Evasion12 Inteligence1 Vitality2
- else if (.@i <= 2189) setarray .@enchants[1],4763,4711,4700; //Evasion12 Inteligence2 Strength1
- else if (.@i <= 2200) setarray .@enchants[1],4763,4711,4701; //Evasion12 Inteligence2 Strength2
- else if (.@i <= 2211) setarray .@enchants[1],4763,4711,4730; //Evasion12 Inteligence2 Agility1
- else if (.@i <= 2222) setarray .@enchants[1],4763,4711,4731; //Evasion12 Inteligence2 Agility2
- else if (.@i <= 2233) setarray .@enchants[1],4763,4711,4740; //Evasion12 Inteligence2 Vitality1
- else if (.@i <= 2244) setarray .@enchants[1],4763,4711,4741; //Evasion12 Inteligence2 Vitality2
- else if (.@i <= 2255) setarray .@enchants[1],4763,4750,4700; //Evasion12 Luck1 Strength1
- else if (.@i <= 2266) setarray .@enchants[1],4763,4750,4701; //Evasion12 Luck1 Strength2
- else if (.@i <= 2277) setarray .@enchants[1],4763,4750,4730; //Evasion12 Luck1 Agility1
- else if (.@i <= 2288) setarray .@enchants[1],4763,4750,4731; //Evasion12 Luck1 Agility2
- else if (.@i <= 2299) setarray .@enchants[1],4763,4750,4740; //Evasion12 Luck1 Vitality1
- else if (.@i <= 2310) setarray .@enchants[1],4763,4750,4741; //Evasion12 Luck1 Vitality2
- else if (.@i <= 2321) setarray .@enchants[1],4763,4751,4700; //Evasion12 Luck2 Strength1
- else if (.@i <= 2332) setarray .@enchants[1],4763,4751,4701; //Evasion12 Luck2 Strength2
- else if (.@i <= 2343) setarray .@enchants[1],4763,4751,4730; //Evasion12 Luck2 Agility1
- else if (.@i <= 2354) setarray .@enchants[1],4763,4751,4731; //Evasion12 Luck2 Agility2
- else if (.@i <= 2365) setarray .@enchants[1],4763,4751,4740; //Evasion12 Luck2 Vitality1
- else if (.@i <= 2376) setarray .@enchants[1],4763,4751,4741; //Evasion12 Luck2 Vitality2
- else if (.@i <= 2387) setarray .@enchants[1],4760,4720,4700; //Matk1 Dexterity1 Strength1
- else if (.@i <= 2398) setarray .@enchants[1],4760,4720,4701; //Matk1 Dexterity1 Strength2
- else if (.@i <= 2409) setarray .@enchants[1],4760,4720,4730; //Matk1 Dexterity1 Agility1
- else if (.@i <= 2420) setarray .@enchants[1],4760,4720,4731; //Matk1 Dexterity1 Agility2
- else if (.@i <= 2431) setarray .@enchants[1],4760,4720,4740; //Matk1 Dexterity1 Vitality1
- else if (.@i <= 2442) setarray .@enchants[1],4760,4720,4741; //Matk1 Dexterity1 Vitality2
- else if (.@i <= 2453) setarray .@enchants[1],4760,4721,4700; //Matk1 Dexterity2 Strength1
- else if (.@i <= 2464) setarray .@enchants[1],4760,4721,4701; //Matk1 Dexterity2 Strength2
- else if (.@i <= 2475) setarray .@enchants[1],4760,4721,4730; //Matk1 Dexterity2 Agility1
- else if (.@i <= 2486) setarray .@enchants[1],4760,4721,4731; //Matk1 Dexterity2 Agility2
- else if (.@i <= 2497) setarray .@enchants[1],4760,4721,4740; //Matk1 Dexterity2 Vitality1
- else if (.@i <= 2508) setarray .@enchants[1],4760,4721,4741; //Matk1 Dexterity2 Vitality2
- else if (.@i <= 2519) setarray .@enchants[1],4760,4710,4700; //Matk1 Inteligence1 Strength1
- else if (.@i <= 2530) setarray .@enchants[1],4760,4710,4701; //Matk1 Inteligence1 Strength2
- else if (.@i <= 2541) setarray .@enchants[1],4760,4710,4730; //Matk1 Inteligence1 Agility1
- else if (.@i <= 2552) setarray .@enchants[1],4760,4710,4731; //Matk1 Inteligence1 Agility2
- else if (.@i <= 2563) setarray .@enchants[1],4760,4710,4740; //Matk1 Inteligence1 Vitality1
- else if (.@i <= 2574) setarray .@enchants[1],4760,4710,4741; //Matk1 Inteligence1 Vitality2
- else if (.@i <= 2585) setarray .@enchants[1],4760,4711,4700; //Matk1 Inteligence2 Strength1
- else if (.@i <= 2596) setarray .@enchants[1],4760,4711,4701; //Matk1 Inteligence2 Strength2
- else if (.@i <= 2607) setarray .@enchants[1],4760,4711,4730; //Matk1 Inteligence2 Agility1
- else if (.@i <= 2618) setarray .@enchants[1],4760,4711,4731; //Matk1 Inteligence2 Agility2
- else if (.@i <= 2629) setarray .@enchants[1],4760,4711,4740; //Matk1 Inteligence2 Vitality1
- else if (.@i <= 2640) setarray .@enchants[1],4760,4711,4741; //Matk1 Inteligence2 Vitality2
- else if (.@i <= 2651) setarray .@enchants[1],4760,4750,4700; //Matk1 Luck1 Strength1
- else if (.@i <= 2662) setarray .@enchants[1],4760,4750,4701; //Matk1 Luck1 Strength2
- else if (.@i <= 2673) setarray .@enchants[1],4760,4750,4730; //Matk1 Luck1 Agility1
- else if (.@i <= 2684) setarray .@enchants[1],4760,4750,4731; //Matk1 Luck1 Agility2
- else if (.@i <= 2695) setarray .@enchants[1],4760,4750,4740; //Matk1 Luck1 Vitality1
- else if (.@i <= 2706) setarray .@enchants[1],4760,4750,4741; //Matk1 Luck1 Vitality2
- else if (.@i <= 2717) setarray .@enchants[1],4760,4751,4700; //Matk1 Luck2 Strength1
- else if (.@i <= 2728) setarray .@enchants[1],4760,4751,4701; //Matk1 Luck2 Strength2
- else if (.@i <= 2739) setarray .@enchants[1],4760,4751,4730; //Matk1 Luck2 Agility1
- else if (.@i <= 2750) setarray .@enchants[1],4760,4751,4731; //Matk1 Luck2 Agility2
- else if (.@i <= 2761) setarray .@enchants[1],4760,4751,4740; //Matk1 Luck2 Vitality1
- else if (.@i <= 2772) setarray .@enchants[1],4760,4751,4741; //Matk1 Luck2 Vitality2
- else if (.@i <= 2783) setarray .@enchants[1],4761,4720,4700; //Matk2 Dexterity1 Strength1
- else if (.@i <= 2794) setarray .@enchants[1],4761,4720,4701; //Matk2 Dexterity1 Strength2
- else if (.@i <= 2805) setarray .@enchants[1],4761,4720,4730; //Matk2 Dexterity1 Agility1
- else if (.@i <= 2816) setarray .@enchants[1],4761,4720,4731; //Matk2 Dexterity1 Agility2
- else if (.@i <= 2827) setarray .@enchants[1],4761,4720,4740; //Matk2 Dexterity1 Vitality1
- else if (.@i <= 2838) setarray .@enchants[1],4761,4720,4741; //Matk2 Dexterity1 Vitality2
- else if (.@i <= 2849) setarray .@enchants[1],4761,4721,4700; //Matk2 Dexterity2 Strength1
- else if (.@i <= 2860) setarray .@enchants[1],4761,4721,4701; //Matk2 Dexterity2 Strength2
- else if (.@i <= 2871) setarray .@enchants[1],4761,4721,4730; //Matk2 Dexterity2 Agility1
- else if (.@i <= 2882) setarray .@enchants[1],4761,4721,4731; //Matk2 Dexterity2 Agility2
- else if (.@i <= 2893) setarray .@enchants[1],4761,4721,4740; //Matk2 Dexterity2 Vitality1
- else if (.@i <= 2904) setarray .@enchants[1],4761,4721,4741; //Matk2 Dexterity2 Vitality2
- else if (.@i <= 2915) setarray .@enchants[1],4761,4710,4700; //Matk2 Inteligence1 Strength1
- else if (.@i <= 2926) setarray .@enchants[1],4761,4710,4701; //Matk2 Inteligence1 Strength2
- else if (.@i <= 2937) setarray .@enchants[1],4761,4710,4730; //Matk2 Inteligence1 Agility1
- else if (.@i <= 2948) setarray .@enchants[1],4761,4710,4731; //Matk2 Inteligence1 Agility2
- else if (.@i <= 2959) setarray .@enchants[1],4761,4710,4740; //Matk2 Inteligence1 Vitality1
- else if (.@i <= 2970) setarray .@enchants[1],4761,4710,4741; //Matk2 Inteligence1 Vitality2
- else if (.@i <= 2981) setarray .@enchants[1],4761,4711,4700; //Matk2 Inteligence2 Strength1
- else if (.@i <= 2992) setarray .@enchants[1],4761,4711,4701; //Matk2 Inteligence2 Strength2
- else if (.@i <= 3003) setarray .@enchants[1],4761,4711,4730; //Matk2 Inteligence2 Agility1
- else if (.@i <= 3014) setarray .@enchants[1],4761,4711,4731; //Matk2 Inteligence2 Agility2
- else if (.@i <= 3025) setarray .@enchants[1],4761,4711,4740; //Matk2 Inteligence2 Vitality1
- else if (.@i <= 3036) setarray .@enchants[1],4761,4711,4741; //Matk2 Inteligence2 Vitality2
- else if (.@i <= 3047) setarray .@enchants[1],4761,4750,4700; //Matk2 Luck1 Strength1
- else if (.@i <= 3058) setarray .@enchants[1],4761,4750,4701; //Matk2 Luck1 Strength2
- else if (.@i <= 3069) setarray .@enchants[1],4761,4750,4730; //Matk2 Luck1 Agility1
- else if (.@i <= 3080) setarray .@enchants[1],4761,4750,4731; //Matk2 Luck1 Agility2
- else if (.@i <= 3091) setarray .@enchants[1],4761,4750,4740; //Matk2 Luck1 Vitality1
- else if (.@i <= 3102) setarray .@enchants[1],4761,4750,4741; //Matk2 Luck1 Vitality2
- else if (.@i <= 3113) setarray .@enchants[1],4761,4751,4700; //Matk2 Luck2 Strength1
- else if (.@i <= 3124) setarray .@enchants[1],4761,4751,4701; //Matk2 Luck2 Strength2
- else if (.@i <= 3135) setarray .@enchants[1],4761,4751,4730; //Matk2 Luck2 Agility1
- else if (.@i <= 3146) setarray .@enchants[1],4761,4751,4731; //Matk2 Luck2 Agility2
- else if (.@i <= 3157) setarray .@enchants[1],4761,4751,4740; //Matk2 Luck2 Vitality1
- else if (.@i <= 3168) setarray .@enchants[1],4761,4751,4741; //Matk2 Luck2 Vitality2
+ if (.@i <= 3168) {
+ // Basic combinations
+ // (raw: .@i increments by 11)
+ setarray .@enchant_slot1[0],4766,4767,4764,4765,4762,4763,4760,4761; //Atk2,Atk3,Critical5,Critical7,Evasion6,Evasion12,Matk1,Matk2
+ setarray .@enchant_slot2[0],4720,4721,4710,4711,4750,4751; //Dexterity1,Dexterity2,Inteligence1,Inteligence2,Luck1,Luck2
+ setarray .@enchant_slot3[0],4700,4701,4730,4731,4740,4741; //Strength1,Strength2,Agility1,Agility2,Vitality1,Vitality2
+ setarray .@enchants[1],
+ .@enchant_slot1[rand(getarraysize(.@enchant_slot1))],
+ .@enchant_slot2[rand(getarraysize(.@enchant_slot2))],
+ .@enchant_slot3[rand(getarraysize(.@enchant_slot3))];
+ }
else if (.@i <= 3179) setarray .@enchants[1],4761,4720,4700; //Matk2 Dexterity1 Strength1
else if (.@i <= 3181) setarray .@enchants[1],4761,4712,4712; //Matk2 Inteligence3 Inteligence3
else if (.@i <= 3183) setarray .@enchants[1],4765,4732,4732; //Critical7 Agility3 Agility3
diff --git a/npc/re/merchants/hd_refiner.txt b/npc/re/merchants/hd_refiner.txt
new file mode 100644
index 000000000..897986cd6
--- /dev/null
+++ b/npc/re/merchants/hd_refiner.txt
@@ -0,0 +1,308 @@
+//===== rAthena Script =======================================
+//= HD Refiners
+//===== By: ==================================================
+//= Euphy
+//===== Current Version: =====================================
+//= 1.0
+//===== Compatible With: =====================================
+//= rAthena SVN
+//===== Description: =========================================
+//= [Official Conversion]
+//= Refiners that use HD ores to refine equipment. Upon
+//= failure, the equipment is not destroyed; rather, its
+//= refine level decreases by 1. The success rate is identical
+//= to that for Enriched ores.
+//= - "Blacksmith Mighty Hammer" only refines from +7~9.
+//= - "Basta" only refines from +10 and up.
+//===== Additional Comments: =================================
+//= 1.0 First version. [Euphy]
+//============================================================
+
+// Blacksmith Mighty Hammer (+7~9)
+//============================================================
+- script ::MightyHammer -1,{
+ disable_items;
+ mes "[Blacksmith Mighty Hammer]";
+ mes "Unlike others, I am a blacksmith who refines a very limited number of items.";
+ mes "I refine only items that are ^CC0000+7 to +9^000000.";
+ next;
+ mes "[Blacksmith Mighty Hammer]";
+ mes "My specialty is that even if my refining fails, the refine level decreases by 1 without losing the gear. Isn't it great?";
+ next;
+ mes "[Blacksmith Mighty Hammer]";
+ mes "So lets kick this into overdrive, what d' ya say? What item do you want to refine?";
+ next;
+ setarray .@position$[1],"Head","Body","Left Hand","Right Hand","Robe","Shoes","Accessory 1","Accessory 2","Head 2","Head 3";
+ set .@menu$,"";
+ for(set .@i,1; .@i<=10; set .@i,.@i+1)
+ set .@menu$, .@menu$+((getequipisequiped(.@i))?getequipname(.@i):.@position$[.@i]+"-[Not equipped]")+":";
+ set .@part, select(.@menu$);
+ if (!getequipisequiped(.@part)) {
+ mes "[Blacksmith Mighty Hammer]";
+ switch(.@part) {
+ case 1:
+ mes "I'm a blacksmith, not a hairstylist.";
+ break;
+ case 2:
+ mes "With my hammer, I will make you a star of the sky.";
+ break;
+ case 3:
+ case 4:
+ mes "Making artificial hands is not my specialty.";
+ break;
+ case 5:
+ mes "Bring out the item so I can refine it!";
+ break;
+ case 6:
+ mes "Where is this foot odor coming from?";
+ break;
+ case 7:
+ case 8:
+ mes "Where is the accessory?";
+ break;
+ case 9:
+ mes "What do you want me to refine?";
+ break;
+ case 10:
+ mes "Huh? What do you want me to do?";
+ break;
+ }
+ close;
+ }
+ if (!getequipisenableref(.@part)) {
+ mes "[Blacksmith Mighty Hammer]";
+ mes "This item can't be refined.";
+ close;
+ }
+ if (getequiprefinerycnt(.@part) < 7 || getequiprefinerycnt(.@part) > 9) {
+ mes "[Blacksmith Mighty Hammer]";
+ mes "I only handle items with refine levels from +7 to +9.";
+ close;
+ }
+ switch(getequipweaponlv(.@part)) {
+ default:
+ case 0:
+ set .@price,20000;
+ set .@material,6241; //HD_Elunium
+ break;
+ case 1:
+ case 2:
+ case 3:
+ case 4:
+ set .@price,20000;
+ set .@material,6240; //HD_Oridecon
+ break;
+ }
+ mes "[Blacksmith Mighty Hammer]";
+ mes "In order to refine the gear you selected you need ^ff9999"+getitemname(.@material)+"^000000 and 20,000 zeny as a fee.";
+ mes "Do you have them ready?";
+ next;
+ if(select("Yes:No") == 2) {
+ mes "[Blacksmith Mighty Hammer]";
+ mes "I will wait until you are ready.";
+ close;
+ }
+ if (getequippercentrefinery(.@part) < 100) {
+ mes "[Blacksmith Mighty Hammer]";
+ mes "It looks like this item will likely fail to be refined.";
+ mes "Well, even if it fails, it only decreases by 1 refine level.";
+ mes "Would you like to continue refining?";
+ next;
+ if(select("Yes:No") == 2) {
+ mes "[Blacksmith Mighty Hammer]";
+ mes "Only those who overcome fear of failure will obtain a masterpiece.";
+ close;
+ }
+ }
+ if (countitem(.@material) == 0 || Zeny < .@price) {
+ mes "[Blacksmith Mighty Hammer]";
+ mes "Didn't you just say you had everything ready?";
+ close;
+ }
+ delitem .@material,1;
+ set Zeny, Zeny-.@price;
+ mes "[Blacksmith Mighty Hammer]";
+ mes "Tac! Tac! Tac!";
+ if (getequippercentrefinery(.@part) > rand(100) || getequippercentrefinery(.@part) > rand(100)) {
+ successrefitem .@part;
+ next;
+ emotion e_no1;
+ mes "[Blacksmith Mighty Hammer]";
+ mes "The sound refreshes my mind everytime I hear it.";
+ mes "Here, have it. Refine succeeded flawlessly!";
+ close;
+ }
+ downrefitem .@part;
+ next;
+ emotion e_omg;
+ mes "[Blacksmith Mighty Hammer]";
+ mes "Oops!!";
+ next;
+ mes "[Blacksmith Mighty Hammer]";
+ mes "I am sure a person like you would never blame me for a decrease in refine level by 1. Hmm.";
+ close;
+}
+prt_in,59,54,3 duplicate(MightyHammer) Mighty Hammer#prt 826
+morocc_in,65,30,3 duplicate(MightyHammer) Mighty Hammer#morocc 826
+payon,148,176,3 duplicate(MightyHammer) Mighty Hammer#pay 826
+alberta_in,16,56,3 duplicate(MightyHammer) Mighty Hammer#alb 826
+yuno_in01,171,18,3 duplicate(MightyHammer) Mighty Hammer#yuno 826
+ein_in01,22,82,3 duplicate(MightyHammer) Mighty Hammer#ein 826
+lhz_in02,280,19,3 duplicate(MightyHammer) Mighty Hammer#lhz 826
+
+// iRO NPC locations:
+// moc_para01,38,185,4 duplicate(MightyHammer) Mighty Hammer#ed 826
+// payon,174,133,4 duplicate(MightyHammer) Mighty Hammer#im 826
+
+// Basta (+10 and up)
+//============================================================
+- script ::Basta -1,{
+ disable_items;
+ mes "[Basta]";
+ mes "I'm the best Blacksmith in the whole world, Basta.";
+ mes "But I don't provide a normal refine service.";
+ mes "I only refine equipment ^CC0000over +10^000000.";
+ next;
+ mes "[Basta]";
+ mes "Which equipment do you want to refine?";
+ next;
+ setarray .@position$[1],"Head","Body","Left Hand","Right Hand","Robe","Shoes","Accessory 1","Accessory 2","Head 2","Head 3";
+ set .@menu$,"";
+ for(set .@i,1; .@i<=10; set .@i,.@i+1)
+ set .@menu$, .@menu$+((getequipisequiped(.@i))?getequipname(.@i):.@position$[.@i]+"-[Unequipped]")+":";
+ set .@part, select(.@menu$);
+ if (!getequipisequiped(.@part)) {
+ mes "[Basta]";
+ switch(.@part) {
+ case 1:
+ mes "Is your head an equipment?";
+ break;
+ case 2:
+ mes "What do you want me to do?";
+ break;
+ case 3:
+ case 4:
+ mes "Making artificial hands is not my specialty.";
+ break;
+ case 5:
+ mes "Do you even know what a robe is?";
+ break;
+ case 6:
+ mes "If you want to refine your feet, don't come to me, try running a marathon.";
+ break;
+ case 7:
+ case 8:
+ mes "Where is the accessory?";
+ break;
+ case 9:
+ mes "Well... I don't see any equipment worth refining.";
+ break;
+ case 10:
+ mes "I can't make you smart. Go see a school teacher for that.";
+ break;
+ }
+ close;
+ }
+ if (!getequipisenableref(.@part)) {
+ mes "[Basta]";
+ mes "Even I cannot refine this item. There's no way.";
+ close;
+ }
+ if (getequiprefinerycnt(.@part) < 10) {
+ mes "[Basta]";
+ mes "Haven't I told you? I only refine equipments that are +10 and above.";
+ close;
+ }
+ if (getequiprefinerycnt(.@part) == 20) {
+ mes "[Basta]";
+ mes "This weapon is perfect, no need to refine it anymore~";
+ close;
+ }
+ switch(getequipweaponlv(.@part)) {
+ default:
+ case 0:
+ set .@price,100000;
+ set .@material,6225; //HD_Carnium
+ set .@type$,"armor";
+ break;
+ case 1:
+ case 2:
+ case 3:
+ case 4:
+ set .@price,100000;
+ set .@material,6226; //HD_Bradium
+ set .@type$,"weapon";
+ break;
+ }
+ mes "[Basta]";
+ mes "Hmm... is this the one you want to refine?";
+ mes "To refine this equipment, I need 1 ^ff9999"+getitemname(.@material)+"^000000 and 100,000 zeny as a fee.";
+ mes "Do you really want to refine this?";
+ next;
+ if(select("Yes:No") == 2) {
+ mes "[Basta]";
+ mes "Okay. If that's what you want...";
+ close;
+ }
+ if (getequippercentrefinery(.@part) < 100) {
+ mes "[Basta]";
+ mes "This "+.@type$+" has already been refined pretty high.";
+ mes "If you try to refine it more, the refine level could decrease.";
+ next;
+ mes "[Basta]";
+ mes "I am different from the blacksmiths in others places.";
+ mes "It is impossible that the refine level will drop by, say, 3 or 4... that sounds scary.";
+ mes "Here it can only decrease by 1 level.";
+ next;
+ mes "[Basta]";
+ mes "Compared to other blacksmiths, the risk is smaller.";
+ mes "I've given all precautions. Do you want to try it?";
+ next;
+ if(select("Yes:No") == 2) {
+ mes "[Basta]";
+ mes "Well~";
+ mes "Not challenging at all could also be a kind of wisdom in life.";
+ close;
+ }
+ }
+ if (countitem(.@material) == 0 || Zeny < .@price) {
+ mes "[Basta]";
+ mes "Hmm... You didn't bring all the materials needed.";
+ mes "Come back when you have them all.";
+ close;
+ }
+ delitem .@material,1;
+ set Zeny, Zeny-.@price;
+ mes "Pow! Pow! Pow! Pow!";
+ if (getequippercentrefinery(.@part) > rand(100) || getequippercentrefinery(.@part) > rand(100)) {
+ successrefitem .@part;
+ next;
+ emotion e_no1;
+ mes "[Basta]";
+ mes "Great! Nicely done!!";
+ mes "I really am the best blacksmith in the whole wide world!";
+ close;
+ }
+ downrefitem .@part;
+ next;
+ emotion (!rand(5))?e_cash:e_omg;
+ mes "[Basta]";
+ mes "Aaaaaaaaaaak!!!";
+ next;
+ mes "[Basta]";
+ mes "Damn it!";
+ mes "Refining failed and refine level has decreased!";
+ mes "Even the best blacksmith in the world doesn't guarantee 100% success!";
+ mes "Too bad.";
+ next;
+ mes "[Basta]";
+ mes "I'll do better next time! Don't worry!";
+ close;
+}
+prt_in,57,54,3 duplicate(Basta) Basta#prt 826
+morocc_in,68,30,3 duplicate(Basta) Basta#morocc 826
+payon,148,174,3 duplicate(Basta) Basta#payon 826
+alberta_in,18,56,3 duplicate(Basta) Basta#alberta 826
+yuno_in01,173,18,3 duplicate(Basta) Basta#yuno 826
+ein_in01,24,82,3 duplicate(Basta) Basta#einbroch 826
+lhz_in02,280,17,3 duplicate(Basta) Basta#lighthalzen 826
diff --git a/npc/re/merchants/refine.txt b/npc/re/merchants/refine.txt
index 27a09fce7..b1493e12d 100644
--- a/npc/re/merchants/refine.txt
+++ b/npc/re/merchants/refine.txt
@@ -3,7 +3,7 @@
//===== By: ==================================================
//= Hercules Dev Team
//===== Current Version: =====================================
-//= 1.0a
+//= 1.2
//===== Compatible With: =====================================
//= Hercules
//===== Description: =========================================
@@ -11,20 +11,23 @@
//===== Additional Comments: =================================
//= 1.0 Moved some scripts to Renewal file, optimized "Austry" NPC. [Euphy]
//= 1.0a Added 'disable_items' command. [Euphy]
+//= 1.1 Added Malangdo Refiner "Clink". [Euphy]
+//= 1.2 Added official success calculation, thanks to Helvetica.
+//= The safe/multiple refine feature is now functional. [Euphy]
//============================================================
// +11 and above Refiners
//============================================================
prt_in,90,72,5 script Bestry#prt 826,{
- callfunc "refinenew","Bestry",0,0;
+ callfunc "refinenew","Bestry",0;
end;
}
morocc_in,64,41,5 script Bestry#moc 826,{
- callfunc "refinenew","Bestry",0,0;
+ callfunc "refinenew","Bestry",0;
end;
}
payon_in01,18,132,3 script Bestry#pay 826,{
- callfunc "refinenew","Bestry",0,0;
+ callfunc "refinenew","Bestry",0;
end;
}
@@ -36,10 +39,8 @@ payon_in01,18,132,3 script Bestry#pay 826,{
//= If you enable this function, be sure to edit the value of
//= .@safe to the max safe refine in refine_db.txt as well.
//=
-//= The official script uses a command which seems to generate a
-//= random result upon refining: success, downgrade, or failure.
-//= To enable that feature, set the third argument to '1' in the
-//= function call. Otherwise, the chance in refine_db.txt is used.
+//= On official servers, if an item is unsuccessfully refined
+//= it will break at a 20% rate and downgrade at an 80% rate.
//============================================================
function script refinenew {
disable_items;
@@ -76,16 +77,6 @@ function script refinenew {
mes "refine this item at all...";
close;
}
- //Check if the item is identified... (Don't know why this is in here... but kept it anyway)
- if(!getequipisidentify(.@part)) {
- mes "[" + getarg(0) + "]";
- mes "You can't refine this";
- mes "if you haven't appraised";
- mes "it first. Make sure your";
- mes "stuff is identified before";
- mes "I can refine it.";
- close;
- }
//Check to see if the items is at least +10
if(getequiprefinerycnt(.@part) < 10) {
mes "["+ getarg(0) +"]";
@@ -104,7 +95,12 @@ function script refinenew {
if ((getequipweaponlv(.@part) >= 1) && (getequipweaponlv(.@part) <= 4)) {
set .@material,6224;
set .@price,100000;
- set .@safe,10;
+ switch(getequipweaponlv(.@part)) {
+ case 1: set .@safe,17; break;
+ case 2: set .@safe,16; break;
+ case 3: set .@safe,15; break;
+ case 4: set .@safe,14; break;
+ }
mes "["+ getarg(0) +"]";
mes "Hmm a weapon, is that ok?";
mes "If you want to refine this weapon,";
@@ -113,7 +109,7 @@ function script refinenew {
} else {
set .@material,6223;
set .@price,100000;
- set .@safe,10;
+ set .@safe,14;
mes "["+ getarg(0) +"]";
mes "Hmm an armor, is that ok?";
mes "If you want to refine this armor,";
@@ -179,19 +175,17 @@ function script refinenew {
mes "You switched the item while I wasn't looking! Get out of here!";
close;
}
- if(getarg(2) == 1){
- set .@rand,rand(1,3);
- if (.@rand == 1) {
- mes "Clang! Clang! Clang! Clang!";
- successrefitem .@part;
- next;
- emotion e_no1;
- mes "["+ getarg(0) +"]";
- mes "Good! Succes!!!";
- mes "I am the best Blacksmith.";
- close;
- }
- if (.@rand == 2) {
+ if (getequippercentrefinery(.@part) > rand(100)) {
+ mes "Clang! Clang! Clang! Clang!";
+ successrefitem .@part;
+ next;
+ emotion e_no1;
+ mes "["+ getarg(0) +"]";
+ mes "Good! Succes!!!";
+ mes "I am the best Blacksmith.";
+ close;
+ } else {
+ if (rand(100) < 80) {
mes "["+ getarg(0) +"]";
mes "Clang! Clang! Clang! Clang!";
downrefitem .@part;
@@ -209,72 +203,26 @@ function script refinenew {
mes "["+ getarg(0) +"]";
mes "I will do a better job next time! Don't worry!";
close;
+ } else {
+ mes "["+ getarg(0) +"]";
+ mes "Clang! Clang! Clang!";
+ failedrefitem .@part;
+ next;
+ emotion (!rand(5))?e_cash:e_omg;
+ mes "["+ getarg(0) +"]";
+ mes "Hmmm!";
+ next;
+ mes "["+ getarg(0) +"]";
+ mes "Oh my! I've failed to refine stuff...";
+ mes "I didn't mean it!";
+ mes "There could've been made an mistake even though I am the best ever.";
+ mes "It was out of my hands.";
+ next;
+ mes "["+ getarg(0) +"]";
+ mes "I will do a better job next time! Don't worry!";
+ close;
}
- mes "["+ getarg(0) +"]";
- mes "Clang! Clang! Clang!";
- failedrefitem .@part;
- next;
- emotion (!rand(5))?e_cash:e_omg;
- mes "["+ getarg(0) +"]";
- mes "Hmmm!";
- next;
- mes "["+ getarg(0) +"]";
- mes "Oh my! I've failed to refine stuff...";
- mes "I didn't mean it!";
- mes "There could've been made an mistake even though I am the best ever.";
- mes "It was out of my hands.";
- next;
- mes "["+ getarg(0) +"]";
- mes "I will do a better job next time! Don't worry!";
- close;
}
- set .@rand,rand(100);
- if (getequippercentrefinery(.@part) > .@rand) {
- mes "Clang! Clang! Clang! Clang!";
- successrefitem .@part;
- next;
- emotion e_no1;
- mes "["+ getarg(0) +"]";
- mes "Good! Succes!!!";
- mes "I am the best Blacksmith.";
- close;
- }
- if (getequippercentrefinery(.@part) < .@rand) {
- mes "["+ getarg(0) +"]";
- mes "Clang! Clang! Clang! Clang!";
- downrefitem .@part;
- next;
- emotion (!rand(5))?e_cash:e_omg;
- mes "["+ getarg(0) +"]";
- mes "Ahhh!!!";
- next;
- mes "["+ getarg(0) +"]";
- mes "Oh my!";
- mes "The upgrade level has dropped...";
- mes "There could've been made an mistake even though I am the best ever.";
- mes "It was out of my hands.";
- next;
- mes "["+ getarg(0) +"]";
- mes "I will do a better job next time! Don't worry!";
- close;
- }
- mes "["+ getarg(0) +"]";
- mes "Clang! Clang! Clang!";
- failedrefitem .@part;
- next;
- emotion (!rand(5))?e_cash:e_omg;
- mes "["+ getarg(0) +"]";
- mes "Hmmm!";
- next;
- mes "["+ getarg(0) +"]";
- mes "Oh my! I've failed to refine stuff...";
- mes "I didn't mean it!";
- mes "There could've been made an mistake even though I am the best ever.";
- mes "It was out of my hands.";
- next;
- mes "["+ getarg(0) +"]";
- mes "I will do a better job next time! Don't worry!";
- close;
}
// New +11 and above Refining Functions ========================
if(getequiprefinerycnt(.@part) < .@safe) {
@@ -289,13 +237,12 @@ function script refinenew {
set .@refinecnt,.@safe - getequiprefinerycnt(.@part);
break;
case 2:
- next;
mes "[" + getarg(0) + "]";
mes "How many times would you like me to refine your item?";
next;
input .@refinecnt;
set .@refinecheck,.@refinecnt + getequiprefinerycnt(.@part);
- if (.@refinecnt < 1 || .@refinecheck > 10) {
+ if (.@refinecnt < 1 || .@refinecheck > 20) {
mes "[" + getarg(0) + "]";
mes "I can't refine this item that many times.";
close;
@@ -313,7 +260,6 @@ function script refinenew {
}
break;
case 3:
- next;
mes "[" + getarg(0) + "]";
mes "You said so... So be it.";
close;
@@ -347,20 +293,13 @@ function script refinenew {
mes "Get out before I stun you with my Hammer!!";
close;
}
- if(getarg(2) == 1){
- set .@rand,rand(1,3);
- if (.@rand == 1) {
- mes "["+ getarg(0) +"]";
- mes "Clang! Clang! Clang! Clang!";
- successrefitem .@part;
- next;
- emotion e_no1;
- mes "["+ getarg(0) +"]";
- mes "Good! Succes!!!";
- mes "I am the best Blacksmith.";
- close;
- }
- if (.@rand == 2) {
+ if (getequippercentrefinery(.@part) > rand(100)) {
+ mes "Clang! Clang! Clang! Clang!";
+ successrefitem .@part;
+ set .@refinecnt,.@refinecnt - 1;
+ next;
+ } else {
+ if (rand(100) < 80) {
mes "["+ getarg(0) +"]";
mes "Clang! Clang! Clang! Clang!";
downrefitem .@part;
@@ -378,75 +317,31 @@ function script refinenew {
mes "["+ getarg(0) +"]";
mes "I will do a better job next time! Don't worry!";
close;
+ } else {
+ mes "["+ getarg(0) +"]";
+ mes "Clang! Clang! Clang!";
+ failedrefitem .@part;
+ next;
+ emotion (!rand(5))?e_cash:e_omg;
+ mes "["+ getarg(0) +"]";
+ mes "Hmmm!";
+ next;
+ mes "["+ getarg(0) +"]";
+ mes "Oh my! I've failed to refine stuff...";
+ mes "I didn't mean it!";
+ mes "There could've been made an mistake even though I am the best ever.";
+ mes "It was out of my hands.";
+ next;
+ mes "["+ getarg(0) +"]";
+ mes "I will do a better job next time! Don't worry!";
+ close;
}
- mes "["+ getarg(0) +"]";
- mes "Clang! Clang! Clang!";
- failedrefitem .@part;
- next;
- emotion (!rand(5))?e_cash:e_omg;
- mes "["+ getarg(0) +"]";
- mes "Hmmm!";
- next;
- mes "["+ getarg(0) +"]";
- mes "Oh my! I've failed to refine stuff...";
- mes "I didn't mean it!";
- mes "There could've been made an mistake even though I am the best ever.";
- mes "It was out of my hands.";
- next;
- mes "["+ getarg(0) +"]";
- mes "I will do a better job next time! Don't worry!";
- close;
- }
- set .@rand,rand(100);
- if (getequippercentrefinery(.@part) > .@rand) {
- mes "Clang! Clang! Clang! Clang!";
- successrefitem .@part;
- next;
- emotion e_no1;
- mes "["+ getarg(0) +"]";
- mes "Good! Succes!!!";
- mes "I am the best Blacksmith.";
- close;
}
- if (getequippercentrefinery(.@part) < .@rand) {
- mes "["+ getarg(0) +"]";
- mes "Clang! Clang! Clang! Clang!";
- downrefitem .@part;
- next;
- emotion (!rand(5))?e_cash:e_omg;
- mes "["+ getarg(0) +"]";
- mes "Ahhh!!!";
- next;
- mes "["+ getarg(0) +"]";
- mes "Oh my!";
- mes "The upgrade level has dropped...";
- mes "There could've been made an mistake even though I am the best ever.";
- mes "It was out of my hands.";
- next;
- mes "["+ getarg(0) +"]";
- mes "I will do a better job next time! Don't worry!";
- close;
- }
- mes "["+ getarg(0) +"]";
- mes "Clang! Clang! Clang!";
- failedrefitem .@part;
- next;
- emotion (!rand(5))?e_cash:e_omg;
- mes "["+ getarg(0) +"]";
- mes "Hmmm!";
- next;
- mes "["+ getarg(0) +"]";
- mes "Oh my! I've failed to refine stuff...";
- mes "I didn't mean it!";
- mes "There could've been made an mistake even though I am the best ever.";
- mes "It was out of my hands.";
- next;
- mes "["+ getarg(0) +"]";
- mes "I will do a better job next time! Don't worry!";
- close;
}
- mes "[" + getarg(0) + "]";
- mes "All finished... Come again soon.";
+ emotion e_no1;
+ mes "["+ getarg(0) +"]";
+ mes "Good! Succes!!!";
+ mes "I am the best Blacksmith.";
close;
}
@@ -499,3 +394,168 @@ function script refinenew {
prt_in,85,71,5 duplicate(Austry#ref) Austry#prt 826
payon_in01,14,125,5 duplicate(Austry#ref) Austry#pay 826
morocc_in,60,38,5 duplicate(Austry#ref) Austry#moc 826
+
+// Malangdo Refiner
+//============================================================
+malangdo,224,172,6 script Clink#mal_normal 544,{
+ disable_items;
+ mes "[Clink]";
+ mes "My cool dad Holink said I have the world's greatest refine hammer!!";
+ mes "Meow Meow~";
+ mes "Who do you think I am?";
+ mes "Yes!!! You!! You want to refine?";
+ next;
+ setarray .@position$[1],"Head","Body","Left Hand","Right Hand","Robe","Shoes","Accessory 1","Accessory 2","Head 2","Head 3";
+ set .@menu$,"";
+ for(set .@i,1; .@i<=10; set .@i,.@i+1)
+ set .@menu$, .@menu$+((getequipisequiped(.@i))?getequipname(.@i):.@position$[.@i]+"-[Empty]")+":";
+ set .@part, select(.@menu$);
+ if (!getequipisequiped(.@part)) {
+ mes "[Clink]";
+ switch(.@part) {
+ case 1:
+ mes "Dad said. There's no cure for stupidity...";
+ break;
+ case 2:
+ mes "There's nothing to see here!!";
+ break;
+ case 3:
+ mes "What an arrogant left hand this is!";
+ break;
+ case 4:
+ mes "What an arrogant right hand this is!";
+ break;
+ case 5:
+ mes "Get that dirty thing off my face!!";
+ break;
+ case 6:
+ mes "Kyaong~! Do not provoke me.";
+ break;
+ case 7:
+ case 8:
+ mes "Where is the accessory?";
+ break;
+ case 9:
+ case 10:
+ mes "Are you talking about the other head part?";
+ break;
+ }
+ close;
+ }
+ if (!getequipisenableref(.@part)) {
+ mes "[Clink]";
+ mes "This can't be refined!!";
+ close;
+ }
+ if (getequiprefinerycnt(.@part) >= 10) {
+ mes "[Clink]";
+ mes "Perfect refining. Did I do this for you?";
+ close;
+ }
+ mes "[Clink]";
+ switch(getequipweaponlv(.@part)) {
+ default:
+ case 0: // Armor
+ set .@price,2000;
+ set .@material,985; //Elunium
+ set .@type$,"armor";
+ mes "Hmm, an armor refine? Someone like you?";
+ break;
+ case 1: // Level 1 Weapon
+ set .@price,50;
+ set .@material,1010; //Phracon
+ set .@type$,"weapon";
+ mes "A level 1 weapon?";
+ mes "Urr... Annoying... Okay, let's try...";
+ break;
+ case 2: // Level 2 Weapon
+ set .@price,200;
+ set .@material,1011; //Emveretarcon
+ set .@type$,"weapon";
+ mes "A level 2 weapon?";
+ break;
+ case 3: // Level 3 Weapon
+ set .@price,20000;
+ set .@material,984; //Oridecon
+ set .@type$,"weapon";
+ mes "Woot!! A level 3 weapon? Impressive~";
+ break;
+ case 4: // Level 4 Weapon
+ set .@price,50000;
+ set .@material,984; //Oridecon
+ set .@type$,"weapon";
+ mes "Wow!... A level 4 weapon~!!";
+ break;
+ }
+ mes "You need ^ff9999"+getitemname(.@material)+"^000000 and ^ff9999"+.@price+"^000000 Zeny. Do you have them?";
+ next;
+ if(select("Yes, I do!!:Forget about it!!") == 2) {
+ mes "[Clink]";
+ mes "I knew it!!";
+ mes "I knew you were not worth trying my magical refining hammer for.";
+ close;
+ }
+ if (getequippercentrefinery(.@part) < 100) {
+ mes "[Clink]";
+ mes "Wow!!";
+ mes "This "+.@type$+" has been refined quite a bit, huh?";
+ mes "You do know that this might break, right?";
+ next;
+ mes "[Clink]";
+ mes "If you break the "+.@type$+", you can never use it again.";
+ mes "Cards and enchant effects...";
+ mes "the ^ff0000whole thing will disappear^000000.";
+ mes "You still up for this~?";
+ next;
+ if(select("Yes, I am!!:Forget about it!!") == 2) {
+ mes "[Clink]";
+ mes "I knew it!!";
+ mes "You can't even take this big step. Don't think about refining...";
+ close;
+ }
+ }
+ if (countitem(.@material) == 0 || Zeny < .@price) {
+ mes "[Clink]";
+ mes "Hey you!! Didn't I tell you";
+ mes "that you need ^ff9999"+getitemname(.@material)+"^000000 and ^ff9999"+.@price+"^000000 Zeny??!!";
+ close;
+ }
+ delitem .@material,1;
+ set Zeny, Zeny-.@price;
+ if (getequippercentrefinery(.@part) <= rand(100)) {
+ failedrefitem .@part;
+ mes "[Clink]";
+ mes "Cry Hammer!! Cry!!!";
+ next;
+ switch(rand(1,5)) {
+ case 1: emotion e_sob; break;
+ case 2: emotion e_swt2; break;
+ case 3: emotion e_wah; break;
+ case 4: emotion e_hmm; break;
+ case 5: emotion e_lv2; break;
+ }
+ mes "[Clink]";
+ mes "Huh?! I failed?!";
+ next;
+ mes "[Clink]";
+ mes "Arrgg~ It's all~ Broken...? What a pity~";
+ next;
+ mes "[Clink]";
+ mes "Hey...!! Get me another one.";
+ mes "This is not possible.";
+ mes "How can my hammer fail from refining?";
+ close;
+ }
+ successrefitem .@part;
+ mes "[Clink]";
+ mes "Cry Hammer!! Cry!!!";
+ next;
+ emotion e_kis;
+ mes "[Clink]";
+ mes "Ok!! Perfect!!";
+ mes "There's nothing I can't refine";
+ mes "with this special hammer.";
+ mes "You can praise me!!";
+ mes "What a day!!";
+ close;
+}
diff --git a/npc/re/merchants/ticket_refiner.txt b/npc/re/merchants/ticket_refiner.txt
new file mode 100644
index 000000000..7246528a4
--- /dev/null
+++ b/npc/re/merchants/ticket_refiner.txt
@@ -0,0 +1,162 @@
+//===== rAthena Script =======================================
+//= Ticket Refiner
+//===== By: ==================================================
+//= Euphy
+//===== Current Version: =====================================
+//= 1.0
+//===== Compatible With: =====================================
+//= rAthena SVN
+//===== Description: =========================================
+//= [Official Conversion]
+//= Refiner that uses +5~9/+11 refine tickets to refine
+//= equipment with no chance of failure.
+//= NOTE: This NPC is currently disabled on official servers.
+//===== Additional Comments: =================================
+//= 1.0 First version. [Euphy]
+//============================================================
+
+prontera,184,177,6 script Refine Master 851,{
+ disable_items;
+ if (countitem(6238) || countitem(6228) || countitem(6229) || countitem(6230) || countitem(6231) || countitem(6456))
+ set .@bWeaponUp,1;
+ if (countitem(6239) || countitem(6232) || countitem(6233) || countitem(6234) || countitem(6235) || countitem(6457))
+ set .@bArmorUp,1;
+ if (!.@bWeaponUp && !.@bArmorUp) {
+ mes "[Refine Master]";
+ mes "Hello!";
+ mes "What's up?";
+ mes "I'm a specialist";
+ mes "for refining items,";
+ mes "but I don't work anymore.";
+ next;
+ switch(select("I'll go on my way.:Hmm... this makes me curious.")) {
+ case 1:
+ mes "[Refine Master]";
+ mes "Take care, adventurer.";
+ close;
+ case 2:
+ mes "[Refine Master]";
+ mes "Actully, I sometimes provide refine services for adventurers with a ^006400Refine Ticket^000000...";
+ mes "Bye bye~!";
+ close;
+ }
+ }
+ emotion e_gasp;
+ mes "[Refine Master]";
+ mes "Greetings!";
+ mes "I can refine an item up to the ^006400same level as your ticket^000000.";
+ mes "You don't have to worry! There's no chance of breaking your item.";
+ next;
+ if(select("I'll come back later.:Refine item with ticket.") == 1) {
+ mes "[Refine Master]";
+ mes "Okay.";
+ mes "You can come again later.";
+ close;
+ }
+ mes "[Refine Master]";
+ mes "Which equipment would you like to refine?";
+ next;
+ setarray .@position$[1],"Head upper","Armor","Left hand","Right hand","Robe","Shoes","Accessory 1","Accessory 2","Head middle","Head lower";
+ set .@menu$,"";
+ for(set .@i,1; .@i<=10; set .@i,.@i+1)
+ set .@menu$, .@menu$+((getequipisequiped(.@i))?getequipname(.@i):.@position$[.@i]+"- [Empty]")+":";
+ set .@part, select(.@menu$);
+ if (!getequipisequiped(.@part)) {
+ mes "[Refine Master]";
+ mes "You have to equip the item you want to refine.";
+ close;
+ }
+ if (!getequipisenableref(.@part)) {
+ emotion e_otl;
+ mes "[Refine Master]";
+ mes "Oh, I'm sorry.";
+ mes "This item is impossible to refine.";
+ close;
+ }
+ switch(getequipweaponlv(.@part)) {
+ default:
+ case 0:
+ setarray .@tickets[0],6457,6235,6234,6233,6232,6239;
+ setarray .@levels[0],5,6,7,8,9,11;
+ set .@type$,"Armor";
+ set .@check,.@bArmorUp;
+ break;
+ case 1:
+ case 2:
+ case 3:
+ case 4:
+ setarray .@tickets[0],6456,6231,6230,6229,6228,6238;
+ setarray .@levels[0],5,6,7,8,9,11;
+ set .@type$,"Weapon";
+ set .@check,.@bWeaponUp;
+ break;
+ }
+ if (!.@check) {
+ emotion e_dots;
+ mes "[Refine Master]";
+ mes "If you want to refine this ^006400"+.@type$+"^000000, please come along with ^006400"+.@type$+" Refine Ticket^000000.";
+ mes "See you later!";
+ close;
+ }
+ mes "[Refine Master]";
+ mes "Please choose which ^006400"+.@type$+" Refine Ticket^000000 you want to use.";
+ next;
+ set .@menu$,"";
+ for(set .@i,0; .@i<getarraysize(.@tickets); set .@i,.@i+1)
+ set .@menu$, .@menu$+getitemname(.@tickets[.@i])+":";
+ set .@select, select(.@menu$)-1;
+ set .@ticket_lv, .@levels[.@select];
+ set .@ticket_id, .@tickets[.@select];
+ if (countitem(.@ticket_id) == 0) {
+ emotion e_what;
+ mes "[Refine Master]";
+ mes getitemname(.@ticket_id)+" is not in your inventory. Did you put it in your storage?";
+ mes "Please check again.";
+ mes "See you later!";
+ close;
+ }
+ if (getequiprefinerycnt(.@part) >= .@ticket_lv) {
+ emotion e_swt2;
+ mes "[Refine Master]";
+ mes "^8B4513This item is already refined as much as your deed.^000000";
+ mes "Please come along with an item refined less than your ticket.";
+ close;
+ }
+ mes "[Refine Master]";
+ mes "I'm going to refine ^006400"+getequipname(.@part)+"^8B4513 up to the +"+.@ticket_lv+" level^000000 with ^006400"+getitemname(.@ticket_id)+"^000000.";
+ mes "May I proceed?";
+ next;
+ if(select("No.:Yes.") == 1) {
+ emotion e_dots;
+ mes "[Refine Master]";
+ mes "Oh, you changed your mind.";
+ mes "Ok.";
+ mes "You can come back later.";
+ close;
+ }
+ mes "[Refine Master]";
+ mes "Great.";
+ mes "As you wish!";
+ mes "I have my own special way to refine...";
+ mes ".......ka boom!";
+ specialeffect EF_SUI_EXPLOSION;
+ if (countitem(.@ticket_id))
+ delitem .@ticket_id,1;
+ else {
+ next;
+ mes "Error!";
+ mes "Please report this.";
+ close;
+ }
+ for(set .@i,getequiprefinerycnt(.@part); .@i<.@ticket_lv; set .@i,.@i+1)
+ successrefitem .@part;
+ next;
+ emotion e_ho;
+ mes "[Refine Master]";
+ mes "Alright, here it is~";
+ mes "Well, ^0000FF"+strcharinfo(0)+"^000000!";
+ mes "Congratulations on your shining "+.@type$+".";
+ mes "You look GREAT!";
+ mes "Farewell~!";
+ close;
+}