summaryrefslogtreecommitdiff
path: root/npc/custom/card_remover.txt
diff options
context:
space:
mode:
authorTrojal <trojal@gmail.com>2013-01-10 20:09:39 -0800
committerTrojal <trojal@gmail.com>2013-01-10 20:32:02 -0800
commit83e7a4954437c13aec639b0b512252cc20a8f36c (patch)
treeb7f6d11b2058248d026f2d9944e8f4b6ac288d50 /npc/custom/card_remover.txt
parent51bfeb38eb139e97e0e1c096c85c15fba234f35b (diff)
parent38e583df21eccd9e4f31d38acaae32579c6f0d27 (diff)
downloadhercules-83e7a4954437c13aec639b0b512252cc20a8f36c.tar.gz
hercules-83e7a4954437c13aec639b0b512252cc20a8f36c.tar.bz2
hercules-83e7a4954437c13aec639b0b512252cc20a8f36c.tar.xz
hercules-83e7a4954437c13aec639b0b512252cc20a8f36c.zip
Merge rathena repository to form Hercules initial commit.
Diffstat (limited to 'npc/custom/card_remover.txt')
-rw-r--r--npc/custom/card_remover.txt148
1 files changed, 148 insertions, 0 deletions
diff --git a/npc/custom/card_remover.txt b/npc/custom/card_remover.txt
new file mode 100644
index 000000000..b2dce9b6f
--- /dev/null
+++ b/npc/custom/card_remover.txt
@@ -0,0 +1,148 @@
+//===== rAthena Script =======================================
+//= Card Removal NPC
+//===== By: ==================================================
+//= TyrNemesis^
+//===== Current Version: =====================================
+//= 1.2
+//===== Compatible With: =====================================
+//= rAthena SVN
+//===== Description: =========================================
+//= Removes cards from equipped items.
+//===== Additional Comments: =================================
+//= 1.0 First version. [TyrNemesis^]
+//= 1.2 Optimized and fixed getequipname menu. [Kisuka]
+//============================================================
+
+prt_in,28,73,4 script Wise Old Woman#eAcustom 78,{
+ set .zenycost,200000; // Set base cost in zeny of the card remover services
+ set .percardcost,25000; // set cost per card of the card remover services
+ set .faildestroy,1; // Should the card remover have a chance of failure that destroys items? 1 = Yes, 0 = No.
+ mes "[Wise Old Woman]";
+ mes "Good day, young one. I have the power to remove cards that you have compounded onto your equipment. Does this idea please you?";
+ next;
+ switch(select("Yes, it does.:What do you charge?:No thanks.")) {
+ case 1:
+ mes "[Wise Old Woman]";
+ mes "Very well. Which item shall I examine for you?";
+ 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 )
+ {
+ if( getequipisequiped(.@i) )
+ set .@menu$, .@menu$ + .@position$[.@i] + "-" + "[" + getequipname(.@i) + "]";
+
+ set .@menu$, .@menu$ + ":";
+ }
+ set .@part,select(.@menu$);
+ if(!getequipisequiped(.@part)) {
+ mes "[Wise Old Woman]";
+ mes "Young one... Your not wearing anything there that I can remove cards from.";
+ close;
+ }
+ if(getequipcardcnt(.@part) == 0) {
+ mes "[Wise Old Woman]";
+ mes "Young one... There are no cards compounded on this item. I can do nothing with it, I'm afraid.";
+ close;
+ }
+ set .@cardcount,getequipcardcnt(.@part);
+
+ if (!checkweight(1202,(.@cardcount+1))) {
+ mes "^3355FFJust a minute!";
+ mes "I can't offer any of my";
+ mes "services to you because";
+ mes "you're carrying too much";
+ mes "stuff. Put your extra items in";
+ mes "Kafra Storage and come again~";
+ close;
+ }
+ mes "[Wise Old Woman]";
+ mes "This item has " + .@cardcount + " cards compounded on it. To perform my magic, I will need " + (.zenycost+(.@cardcount * .percardcost)) + " zeny, a ^0000FFStar Crumb^000000, and a ^0000FFYellow Gemstone^000000.";
+ next;
+ if(select("Very well. Do it.:Nevermind.") == 2) {
+ mes "[Wise Old Woman]";
+ mes "Very well. Return at once if you seek my services.";
+ close;
+ }
+ if((zeny < (.zenycost+(.@cardcount * .percardcost))) || (countitem(1000) < 1) || (countitem(715) < 1)) {
+ mes "[Wise Old Woman]";
+ mes "You do not have all the items I require to work my magic, child. Come again when you do.";
+ close;
+ }
+ mes "[Wise Old Woman]";
+ mes "Before I begin, I must warn you--I may fail. If I do, I may destroy the cards, the item, or both. I do not give refunds. That being said, which is more important to you: The cards, or the item?";
+ next;
+ switch(select("I changed my mind about this.:The item.:The cards.")) {
+ case 1:
+ mes "[Wise Old Woman]";
+ mes "Very well. Return at once if you seek my services.";
+ close;
+ case 2:
+ set .@failtype,1;
+ break;
+ case 3:
+ set .@failtype,2;
+ }
+ mes "[Wise Old Woman]";
+ mes "Very well. I shall begin.";
+ set zeny,zeny - (.zenycost+(.@cardcount * .percardcost));
+ delitem 1000,1;
+ delitem 715,1;
+
+ // Replace the constants in the next 3 lines with failure chance values defined in refine_db.txt
+ // First value = Total failure chance (item and cards destroyed)
+ // Second value = Partial failure chance (one or the other is destroyed, player decides which one is safe)
+ // Third value = Harmless failure chance (all that's lost is your investment)
+
+ set .@failchance,rand(100);
+ if (.faildestroy==1) {
+ if(.@failchance < 2) {
+ next;
+ failedremovecards .@part,0;
+ mes "[Wise Old Woman]";
+ mes "The process was a total failure. I am afraid the item and the cards were destroyed.";
+ close;
+ }
+
+ if(.@failchance < 8) {
+ if (.@failtype == 1) {
+ next;
+ failedremovecards .@part,1;
+ mes "[Wise Old Woman]";
+ mes "While I have managed to remove the cards from the item, they were destroyed in the process. The item, however, is okay.";
+ close;
+ }
+
+ if (.@failtype == 2) {
+ next;
+ failedremovecards .@part,2;
+ mes "[Wise Old Woman]";
+ mes "Most unfortunate. I succeeded at removing the cards, but the item itself was destroyed in the process.";
+ close;
+ }
+ }
+ }
+
+ if(.@failchance < 10) {
+ next;
+ failedremovecards .@part,3;
+ mes "[Wise Old Woman]";
+ mes "I have failed to remove the cards. Luckily, however, both the item and the cards are still okay.";
+ close;
+ }
+ next;
+ successremovecards .@part;
+ mes "[Wise Old Woman]";
+ mes "The process was a success. Here are your cards and your item. Farewell.";
+ close;
+ case 2:
+ mes "[Wise Old Woman]";
+ mes "I charge a flat fee of "+.zenycost+" zeny, plus "+.percardcost+" zeny for each card I remove from the item. In addition, I need a star crumb and a yellow gemstone to work my magic.";
+ close;
+ case 3:
+ mes "[Wise Old Woman]";
+ mes "Very well. Return at once if you seek my services.";
+ close;
+ }
+}