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