|
@@ -1,187 +1,145 @@
|
|
|
-// Card removal NPC by TyrNemesis^
|
|
|
-// DANGEROUS! TODO: Think.. think 8) [Lupus]
|
|
|
-
|
|
|
-
|
|
|
-prt_in,28,73,4 script Wise Old Woman 78,{
|
|
|
-
|
|
|
-UPGRADEROOT:
|
|
|
+//===== eAthena Script =======================================
|
|
|
+//= Card Removal NPC
|
|
|
+//===== By: ==================================================
|
|
|
+//= TyrNemesis^
|
|
|
+//===== Current Version: =====================================
|
|
|
+//= 1.2
|
|
|
+//===== Compatible With: =====================================
|
|
|
+//= eAthena 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,{
|
|
|
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;
|
|
|
- menu "Yes, it does.",REMOVEMENU,
|
|
|
- "What do you charge?",REMOVEPRICE,
|
|
|
- "No thanks.",CLOSEOUT;
|
|
|
-
|
|
|
-REMOVEPRICE:
|
|
|
- mes "[Wise Old Woman]";
|
|
|
- mes "I charge a flat fee of 200000 zeny, plus 25000 zeny for each card I remove from the item. In addition, I need a star crumb and a yellow gemstone to work my magic.";
|
|
|
- next;
|
|
|
- menu "Very well. Let's do it.",REMOVEMENU,
|
|
|
- "No thanks.",CLOSEOUT;
|
|
|
-
|
|
|
-REMOVEMENU:
|
|
|
- mes "[Wise Old Woman]";
|
|
|
- mes "Very well. Which item shall I examine for you?";
|
|
|
- next;
|
|
|
- menu "I changed my mind.",CLOSEOUT,
|
|
|
- getequipname(1),SLOT1,
|
|
|
- getequipname(2),SLOT2,
|
|
|
- getequipname(3),SLOT3,
|
|
|
- getequipname(4),SLOT4,
|
|
|
- getequipname(5),SLOT5,
|
|
|
- getequipname(6),SLOT6,
|
|
|
- getequipname(7),SLOT7,
|
|
|
- getequipname(8),SLOT8,
|
|
|
- getequipname(9),SLOT9,
|
|
|
- getequipname(10),SLOT10;
|
|
|
-
|
|
|
-SLOT1:
|
|
|
- set @part,1;
|
|
|
- goto CARDNUMCHECK;
|
|
|
-
|
|
|
-SLOT2:
|
|
|
- set @part,2;
|
|
|
- goto CARDNUMCHECK;
|
|
|
-
|
|
|
-SLOT3:
|
|
|
- set @part,3;
|
|
|
- goto CARDNUMCHECK;
|
|
|
-
|
|
|
-SLOT4:
|
|
|
- set @part,4;
|
|
|
- goto CARDNUMCHECK;
|
|
|
-
|
|
|
-SLOT5:
|
|
|
- set @part,5;
|
|
|
- goto CARDNUMCHECK;
|
|
|
-
|
|
|
-SLOT6:
|
|
|
- set @part,6;
|
|
|
- goto CARDNUMCHECK;
|
|
|
-
|
|
|
-SLOT7:
|
|
|
- set @part,7;
|
|
|
- goto CARDNUMCHECK;
|
|
|
-
|
|
|
-SLOT8:
|
|
|
- set @part,8;
|
|
|
- goto CARDNUMCHECK;
|
|
|
-
|
|
|
-SLOT9:
|
|
|
- set @part,9;
|
|
|
- goto CARDNUMCHECK;
|
|
|
-
|
|
|
-SLOT10:
|
|
|
- set @part,10;
|
|
|
- goto CARDNUMCHECK;
|
|
|
-
|
|
|
-CARDNUMCHECK:
|
|
|
- if(getequipcardcnt(@part) == 0) goto DENYCARDCOUNT;
|
|
|
- set @cardcount,getequipcardcnt(@part);
|
|
|
-
|
|
|
- // Ensure there is room for the items.
|
|
|
- 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;
|
|
|
+ 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 " + (200000+(.@cardcount * 25000)) + " 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 < (200000+(.@cardcount * 25000))) || (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 - (200000+(.@cardcount * 25000));
|
|
|
+ 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(.@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 200000 zeny, plus 25000 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;
|
|
|
}
|
|
|
-
|
|
|
- if(@cardcount > 1) goto CARDNUMMULTIMSG;
|
|
|
- mes "[Wise Old Woman]";
|
|
|
- mes "This item has " + @cardcount + " card compounded on it. To perform my magic, I will need 225000 zeny, a ^0000FFStar Crumb^000000, and a ^0000FFYellow Gemstone^000000.";
|
|
|
- goto CARDNUMPOSTMSG;
|
|
|
-CARDNUMMULTIMSG:
|
|
|
- mes "[Wise Old Woman]";
|
|
|
- mes "This item has " + @cardcount + " cards compounded on it. To perform my magic, I will need " + (200000+(@cardcount * 25000)) + " zeny, a ^0000FFStar Crumb^000000, and a ^0000FFYellow Gemstone^000000.";
|
|
|
-CARDNUMPOSTMSG:
|
|
|
- next;
|
|
|
- menu "Very well. Do it.",REMOVECARDWARNING,
|
|
|
- "Never mind.",CLOSEOUT;
|
|
|
-
|
|
|
-REMOVECARDWARNING:
|
|
|
- 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;
|
|
|
- menu "I changed my mind about this.",CLOSEOUT,
|
|
|
- "The item.",PRIORITYITEM,
|
|
|
- "The cards.",PRIORITYCARD;
|
|
|
-
|
|
|
-PRIORITYITEM:
|
|
|
- set @failtype,1;
|
|
|
- goto REMOVECARD;
|
|
|
-
|
|
|
-PRIORITYCARD:
|
|
|
- set @failtype,2;
|
|
|
- goto REMOVECARD;
|
|
|
-
|
|
|
-REMOVECARD:
|
|
|
- mes "[Wise Old Woman]";
|
|
|
- mes "Very well. I shall begin.";
|
|
|
- if((zeny < (200000+(@cardcount * 25000))) || (countitem(1000) < 1) || (countitem(715) < 1)) goto DENYMATERIAL;
|
|
|
- set zeny,zeny - (200000+(@cardcount * 25000));
|
|
|
- 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(@failchance < 2) goto FAILREMOVECARD0;
|
|
|
-// if((@failchance < 8) && (@failtype == 1)) goto FAILREMOVECARD1;
|
|
|
-// if((@failchance < 8) && (@failtype == 2)) goto FAILREMOVECARD2;
|
|
|
- if(@failchance < 10) goto FAILREMOVECARD3;
|
|
|
- successremovecards @part;
|
|
|
- next;
|
|
|
- mes "[Wise Old Woman]";
|
|
|
- mes "The process was a success. Here are your cards and your item. Farewell.";
|
|
|
- close;
|
|
|
-
|
|
|
-FAILREMOVECARD0:
|
|
|
- failedremovecards @part,0;
|
|
|
- next;
|
|
|
- mes "[Wise Old Woman]";
|
|
|
- mes "The process was a total failure. I am afraid the item and the cards were destroyed.";
|
|
|
- close;
|
|
|
-
|
|
|
-FAILREMOVECARD1:
|
|
|
- failedremovecards @part,1;
|
|
|
- next;
|
|
|
- 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;
|
|
|
-
|
|
|
-FAILREMOVECARD2:
|
|
|
- failedremovecards @part,2;
|
|
|
- next;
|
|
|
- mes "[Wise Old Woman]";
|
|
|
- mes "Most unfortunate. I succeeded at removing the cards, but the item itself was destroyed in the process.";
|
|
|
- close;
|
|
|
-
|
|
|
-FAILREMOVECARD3:
|
|
|
- failedremovecards @part,3;
|
|
|
- next;
|
|
|
- mes "[Wise Old Woman]";
|
|
|
- mes "I have failed to remove the cards. Luckily, however, both the item and the cards are still okay.";
|
|
|
- close;
|
|
|
-
|
|
|
-DENYCARDCOUNT:
|
|
|
- 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;
|
|
|
-
|
|
|
-DENYMATERIAL:
|
|
|
- next;
|
|
|
- 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;
|
|
|
-
|
|
|
-CLOSEOUT:
|
|
|
- mes "[Wise Old Woman]";
|
|
|
- mes "Very well. Return at once if you seek my services.";
|
|
|
- close;
|
|
|
}
|