diff --git a/db/re/item_db_etc.yml b/db/re/item_db_etc.yml
index 567908614d..0610df060e 100644
--- a/db/re/item_db_etc.yml
+++ b/db/re/item_db_etc.yml
@@ -21039,9 +21039,10 @@ Body:
NoAuction: true
- Id: 6672
AegisName: Shard_of_Gray
- Name: Shard of Gray
+ Name: Gray Shard
Type: Etc
- Buy: 10
+ Sell: 1
+ Weight: 1
Flags:
BuyingStore: true
Trade:
diff --git a/npc/re/instances/GhostPalace.txt b/npc/re/instances/GhostPalace.txt
index b521c830cd..3f0459b02a 100644
--- a/npc/re/instances/GhostPalace.txt
+++ b/npc/re/instances/GhostPalace.txt
@@ -883,15 +883,16 @@ OnTimer28500:
mes "Hey there, are you alive?";
mes "I did not expect to meet someone who is still alive.";
next;
+ .@item_name_req$ = getitemname(6672);// Shard_of_Gray
mes "[King]";
- mes "Do you possibly have the ^006400Gray Shard^000000?";
+ mes "Do you possibly have the ^006400" + .@item_name_req$ + "^000000?";
mes "Can you give it to me?";
mes "The memories of the faithful royal guard";
mes "and the memories of everyone he loved";
mes "are contained inside of these shards.";
next;
mes "[King]";
- mes "Will you give the ^006400Gray Shard^000000 to me?";
+ mes "Will you give the ^006400" + .@item_name_req$ + "^000000 to me?";
mes "The guilt is eating my soul.";
mes "My soul is trapped inside the Ghost Palace.";
next;
@@ -899,7 +900,7 @@ OnTimer28500:
mes "I am collecting Sakray's abandoned memories from these shards.";
next;
mes "[King]";
- mes "If you give any ^006400Gray Shard^000000s to me, I can make equipment for you.";
+ mes "If you give any ^006400" + .@item_name_req$ + "^000000s to me, I can make equipment for you.";
next;
mes "[King]";
mes "The cursed knight...";
@@ -923,16 +924,16 @@ OnTimer28500:
mes "Someday, Sakray will";
mes "get out of this curse for sure.";
mes "I believe";
- mes "^006400Gray Shard^000000s are the only method";
+ mes "^006400" + .@item_name_req$ + "^000000s are the only method";
mes "to save him....";
close;
}
.@cost = ( .@s > 13 ? 100 : 200 );
mes "[King]";
mes "To make a ^FF0000" + .@item_name$[.@s] + "^000000";
- mes "I need " + .@cost + " ^006400Gray Shard^000000.";
+ mes "I need " + .@cost + " ^006400" + .@item_name_req$ + "^000000.";
next;
- if (select( "Cancel", "Hand over " + .@cost + " Gray Shard." ) == 1) {
+ if (select( "Cancel", "Hand over " + .@cost + " " + .@item_name_req$ + "." ) == 1) {
mes "[King]";
mes "Someday, Sakray will";
mes "get out of this curse for sure.";
@@ -941,15 +942,15 @@ OnTimer28500:
}
if (countitem(6672) < .@cost) {
mes "[King]";
- mes "You do not have enough ^006400Gray Shard^000000";
+ mes "You do not have enough ^006400" + .@item_name_req$ + "^000000";
mes "to make a ^FF0000" + .@item_name$[.@s] + "^000000.";
- mes "I need " + .@cost + " ^006400Gray Shard^000000.";
+ mes "I need " + .@cost + " ^006400" + .@item_name_req$ + "^000000.";
next;
continue;
}
mes "[King]";
mes "I will make a ^FF0000" + .@item_name$[.@s] + "^000000";
- mes "with " + .@cost + " ^006400Gray Shard^000000.";
+ mes "with " + .@cost + " ^006400" + .@item_name_req$ + "^000000.";
next;
mes "You see a light through the folded hands of the king and it gradually takes on a shape.";
next;
diff --git a/npc/re/merchants/ghost_palace_exchange.txt b/npc/re/merchants/ghost_palace_exchange.txt
new file mode 100644
index 0000000000..fae1ac03c1
--- /dev/null
+++ b/npc/re/merchants/ghost_palace_exchange.txt
@@ -0,0 +1,121 @@
+//===== rAthena Script =======================================
+//= Ghost Palace Exchange NPC.
+//===== Description: =========================================
+//= Walkthrough Conversion.
+//===== Changelogs: ==========================================
+//= 1.0 First Version. [Capuche]
+//============================================================
+
+dali02,51,130,4 script Dimension Traveler 4_F_SHABBY,{
+ if (checkweight(28100,1) == 0) {// Thanos Axe
+ mes "- You cannot proceed because you have too many items with you. -";
+ close;
+ }
+ .@item_name_req$ = getitemname(6672);// Shard_of_Gray
+ mes "[Dimension Traveler]";
+ mes "Adventurer friend, - [" + .@item_name_req$ + "]6672
is what I need. How about exchanging it with something I have?";
+ next;
+ .@type = select( "Show me your weapon.", "Show me your armor.", "Anything special?", "I do not need." ) - 1;
+ mes "[Dimension Traveler]";
+ switch(.@type) {
+ case 0:
+ mes "Oh! Are you interested in weapons? We have all the weapons we can get from the Ghost Palace. Why don't you choose one?";
+ break;
+ case 1:
+ mes "Armor? We have all the armors we can get from the Ghost Palace. Why don't you choose one?";
+ break;
+ case 2:
+ mes "Huhh! It seems like many of them already heard that I have the best stuff. Feel free to check out my collections.";
+ break;
+ case 3:
+ mes "Goodbye friend~ Come again!";
+ close;
+ }
+ next;
+ mes "[Dimension Traveler]";
+ mes "Ah! The number that is written beside - [" + .@item_name_req$ + "]6672
will be needed.";
+ mes "Please keep that in mind.";
+
+ switch(.@type) {
+ case 0:
+ setarray .@items[0],
+ 13441, 200, // Thanos Sword
+ 21009, 200, // Thanos Great Sword
+ 1438, 200, // Thanos Spear
+ 1496, 200, // Thanos Long Spear
+ 1669, 200, // Thanos Staff
+ 2023, 200, // Thanos Rod
+ 18119, 200, // Thanos Bow
+ 13093, 200, // Thanos Dagger
+ 28000, 200, // Thanos Katar
+ 1836, 200, // Thanos Knuckle
+ 16028, 200, // Thanos Hammer
+ 28100, 200, // Thanos Axe
+ 1933, 200, // Thanos Violin
+ 1988, 200; // Thanos Whip
+ break;
+ case 1:
+ setarray .@items[0],
+ 2187, 100, // Shield Of Gray
+ 15090, 100, // Armor Of Gray
+ 15091, 100, // Gray Robe
+ 20721, 100, // Cloak Of Gray
+ 22033, 100, // Boots Of Gray
+ 18820, 100; // Gray Helmet
+ break;
+ case 2:
+ setarray .@items[0],
+ 27184, 10000, // Knight Sakray Card
+ 23676, 50, // Gray Charcoal Melee (Melee)
+ 23677, 50, // Gray Charcoal Magic (Magic)
+ 23678, 50, // Gray Charcoal Range (Range)
+ 27184, 10000; // Knight Sakray Card
+ break;
+ }
+ .@size = getarraysize(.@items);
+ for ( .@i = 0; .@i < .@size; .@i += 2 )
+ .@menu$ += getitemname(.@items[.@i]) + " - " + .@items[.@i+1] + ":";
+
+ while(true) {
+ next;
+ .@s = (select(.@menu$) - 1) * 2;
+ mes "[Dimension Traveler]";
+ if (.@type != 1) // armor type doesn't display item info
+ mes "Do you mean - [" + getitemname(.@items[.@s]) + "]" + .@items[.@s] + "
?";
+ mes "" + .@items[.@s+1] + " ^006400" + .@item_name_req$ + "^000000 are required in exchange.";
+ next;
+ switch( select( "Let's exchange.", "Let me see other stuff.", "I will come back later." ) ) {
+ case 1:
+ break;
+ case 2:
+ mes "[Dimension Traveler]";
+ switch(.@type) {
+ case 0:
+ mes "I have more than enough weapons.";
+ break;
+ case 1:
+ mes "We have many armors for you. Why don't you pick one?";
+ break;
+ case 2:
+ mes "If you bring me " + .@item_name_req$ + ", I will trade it with anything you want.";
+ break;
+ }
+ continue;
+ case 3:
+ mes "[Dimension Traveler]";
+ mes "Take care friend~ See you next time!";
+ close;
+ }
+ if (countitem(6672) < .@items[.@s+1]) {
+ mes "[Dimension Traveler]";
+ mes "You put me in a difficult situation, friend.";
+ mes "I am in need of " + .@item_name_req$ + ". I will exchange it for ^006400" + .@items[.@s+1] + " " + .@item_name_req$ + "^000000.";
+ close;
+ }
+ mes "[Dimension Traveler]";
+ mes "Thank you. Come back if you need anything else.";
+ delitem 6672, .@items[.@s+1];
+ getitem .@items[.@s], 1;
+ close;
+ }
+}
diff --git a/npc/re/scripts_athena.conf b/npc/re/scripts_athena.conf
index 56381ef8c4..5c5e1b2ed8 100644
--- a/npc/re/scripts_athena.conf
+++ b/npc/re/scripts_athena.conf
@@ -122,6 +122,7 @@ npc: npc/re/merchants/enchan_verus.txt
npc: npc/re/merchants/Extended_Stylist.txt
npc: npc/re/merchants/flute.txt
npc: npc/re/merchants/gld_mission_exchange.txt
+npc: npc/re/merchants/ghost_palace_exchange.txt
npc: npc/re/merchants/guild_warehouse.txt
npc: npc/re/merchants/hd_refiner.txt
npc: npc/re/merchants/HorrorToyFactory_merchants.txt