summaryrefslogblamecommitdiff
path: root/npc/custom/card_remover.txt
blob: c336c0cda679f82d620b238f1a0121fd0cde8809 (plain) (tree)
1
2
3
4
5
6
7
8
                                                               





                                                               
               







                                                               


                                                                                                                                             



























































































































                                                                                                                                                                                                                                       
         
 
//===== 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,{
	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 " + (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;
	}
}