diff --git a/npc/re/custom/lasagna/lasagna_npcs.txt b/npc/re/custom/lasagna/lasagna_npcs.txt
index d8c8f547d5..782a21b646 100644
--- a/npc/re/custom/lasagna/lasagna_npcs.txt
+++ b/npc/re/custom/lasagna/lasagna_npcs.txt
@@ -2463,44 +2463,53 @@ lasagna,140,245,3 script The sensitive-minded ela 4_CAT_SAILOR3,{
mes "Yota often makes quality amulets, but he still needs more polishing.";
mes "If he pays attention to details, his amulets will be even greater. But he just doesn't care.";
next;
- .@s = (select( "Polish the Horse Mackerel Amulet.", "Polish the Leaf Amulet.", "Polish the Rabbit Amulet." ) - 1) * 4;
-
- setarray .@item_data[0],
- 28413, 30, // Basic Saurel Charm [1]
- 28414, 90, // Fair Saurel Charm [1]
- 28416, 30, // Basic Leaf Charm [1]
- 28417, 90, // Fair Leaf Charm [1]
- 28419, 30, // Basic Bunny Charm [1]
- 28420, 90; // Fair Bunny Charm [1]
-
- if ((countitem(.@item_data[.@s]) - isequippedcnt(.@item_data[.@s])) > 0)
- .@index = .@s;
- else if ((countitem(.@item_data[.@s+2]) - isequippedcnt(.@item_data[.@s+2])) > 0)
- .@index = .@s + 2;
- else {
+ .@s = select( "Polish the Horse Mackerel Amulet.", "Polish the Leaf Amulet.", "Polish the Rabbit Amulet." ) - 1;
+ setarray .@ids[0], 28413,28416,28419;
+ .@start_ID = .@ids[.@s];
+ if ((countitem(.@start_ID) - isequippedcnt(.@start_ID)) > 0) { // basic amulet to upgrade
+ .@your_charm_ID = .@start_ID;
+ .@next_charm_ID = .@start_ID + 1;
+ .@needCoin = 30;
+ }
+ else if ((countitem(.@start_ID+1) - isequippedcnt(.@start_ID+1)) > 0) { // intermediate
+ .@your_charm_ID = .@start_ID + 1;
+ .@next_charm_ID = .@start_ID + 2;
+ .@needCoin = 90;
+ }
+ else if ((countitem(.@start_ID+2) - isequippedcnt(.@start_ID+2)) > 0) { // player have some "perfect" amulet in inventory
+ mes "[Goma Chara]";
+ mes "This amulet is already perfect!";
+ close;
+ }
+ if (.@your_charm_ID < 1) {
mes "[Goma Chara]";
mes "Show me your amulet, will you? I can't seem to find it in your inventory.";
close;
}
mes "[Goma Chara]";
- mes "Let me. Hmm... " + getitemname(.@item_data[.@index]) + ", it is.";
+ mes "Let me. Hmm... " + getitemname(.@your_charm_ID) + ", it is.";
mes "...I knew this was going to happen again. Worse, this one must require a lot more time to polish!";
next;
mes "[Goma Chara]";
- mes "Hey, if you give me " + .@item_data[.@index+1] + "- Doram Token25142
, I'll fix this for you.";
- mes "- This should produce the " + (.@item_data[.@index]+1) + "
function, I guess. How do you like it?";
+ mes "Hey, if you give me " + .@needCoin + "- Doram Token25142
, I'll fix this for you.";
+ mes "- This should produce the " + .@next_charm_ID + "
function, I guess. How do you like it?";
next;
if (select( "Upgrade", "Cancel" ) == 2) {
mes "[Goma Chara]";
mes "As you please.";
close;
}
+ if (countitem(25142) < .@needCoin) {
+ mes "[Goma Chara]";
+ mes "Insufficient materials, can not be repaired free.";
+ close;
+ }
mes "[Goma Chara]";
mes "The inside of this amulet seems pretty tough.";
mes "But my dexterity is tougher. Tada! Put my brother's amulet to good use.";
- delitem 25142, .@item_data[.@index+1];// Doram token
- delitem .@item_data[.@index],1;
- getitem (.@item_data[.@index] + 1),1;
+ delitem 25142, .@needCoin;// Doram token
+ delitem .@your_charm_ID,1;
+ getitem .@next_charm_ID,1;
close;
}
@@ -3311,7 +3320,7 @@ lasagna,222,187,3 script Chef#dorcon 4_CAT_CHEF,{
if (isbegin_quest(14592) > 0)
erasequest 14592;
for ( .@i = 0; .@i < .@j; .@i++ )
- erasequest .@quest_left[.@j];
+ erasequest .@quest_left[.@i];
close;
}
}