//===== rAthena Script ======================================= 
//= Card Separation System
//===== By: ================================================== 
//= Muad_Dib
//===== Current Version: ===================================== 
//= 1.1
//===== Compatible With: ===================================== 
//= rAthena SVN
//===== Description: ========================================= 
//= [Official Conversion]
//= Separates cards from equipment.
//===== Additional Comments: ================================= 
//= 1.0 First Version. [Euphy]
//= 1.1 Added "Richard" NPC. [Euphy]
//============================================================ 

-	script	::CardSeparation_mal	-1,{
	disable_items;
	if (checkweight(1201,1) == 0) {
		mes "ЯƷ. ǲܼ.";
		close;
	}
	if (MaxWeight - Weight < 10000) {
		mes "޷, Ϊĸز. ټ.";
		close;
	}
	if (strnpcinfo(1) == "") {
		set .@Jeremy,1;
		set .@n$, "[Jeremy]";
		setarray .@equip_name$[0],  "Armor",  "Shoes",  "Garment", "Upper Hat";
		setarray .@equip_slot[0], EQI_ARMOR,EQI_SHOES,EQI_GARMENT,EQI_HEAD_TOP;

		mes .@n$;
		mes "þò~";
		mes "Ѿѧµļ, Դ. ͷ, , Ь, ͷϷ뿨Ƭ. 벻Կ?";
	} else {
		set .@Jeremy,0;
		set .@n$, "[Richard]";
		setarray .@equip_name$[0], "Left hand", "Right hand";
		setarray .@equip_slot[0],   EQI_HAND_L,   EQI_HAND_R;

		mes .@n$;
		mes "ҲôͶ. ΪƬ, ܻ. Ϊʲô׼һĿƬٿͶ...";
	}
	next;
	mes .@n$;
	mes "һ 1,000,000 Zeny. ڲ֮ǰ, ʹ ^990000ƷͿƬװĸ^000000. ǲȡķ.";
	next;
	mes .@n$;
	mes "ʹƷмװͿƬ. ͬʱ, ^ff0000װȼҲʧ^000000. Ҫװ?";
	next;

	for(set .@i,0; .@i<getarraysize(.@equip_slot); set .@i,.@i+1) {
		if (getequipisequiped(.@equip_slot[.@i]))
			set .@menu$, .@menu$+getequipname(.@equip_slot[.@i])+":";
		else
			set .@menu$, .@menu$+"^999999"+.@equip_name$[.@i]+" (empty)^000000:";
	}

	set .@i, select("- ֹͣ:"+((.@Jeremy)?"- ʲô?":"")+":"+.@menu$);
	switch(.@i) {
	case 1:
		mes .@n$;
		mes ", ʱ.";
		close;
	case 2:
		mes .@n$;
		mes "˽Ʒ. ð, Ҳϲ˵˵, ҸĹ...";
		next;
		mes "^000099չ½. ڵȴĳ̸.^000000";
		next;
		mes .@n$;
		mes "֪֪زǹͷʳƷ?";
		next;
		select("- ֪Ǻܲ. ѵʲô?");
		mes .@n$;
		mes "ٺ... ˶ϲ. ǰȷʵЩ.";
		next;
		select("- ? ǲȾ?");
		mes .@n$;
		mes ", . , ܶӹ. Ҳ˵ͬڹҵ.";
		next;
		mes .@n$;
		mes "Ȼ, һ̸֮, ЩͱΪɹھ豸ҵ󻬼.";
		next;
		mes .@n$;
		mes ", ǿͨҹͨ߸߼, ЩͶǷװϵĿƬǳ.";
		next;
		mes .@n$;
		mes "õǮ. ߼ǰ. ֧һЩ, ҿԸ˵󻬼.";
		next;
		mes .@n$;
		mes "Ҳȷͨ󻬼Ч. , ȷʵܱ, ԰?";
		close;
	default:
		set .@equip_num, .@equip_slot[.@i-3];
		if (!getequipisequiped(.@equip_num)) {
			mes .@n$;
			if (.@Jeremy)
				mes "ⲿֵ˵, ?";
			else
				mes "ⲿû?";
			close;
		}
		break;
	}

	setarray .@equip_card[0], getequipcardid(.@equip_num,0),getequipcardid(.@equip_num,1),getequipcardid(.@equip_num,2),getequipcardid(.@equip_num,3);
	set .@mvp_list$,
		"|4408|4128|4456|4168|4142"+  //Gloom_Under_Night_Card, Golden_Bug_Card, Nidhogg_Shadow_Card, Dark_Lord_Card, Doppelganger_Card
		"|4134|4137|4386|4407|4357"+  //Dracula_Card, Drake_Card, Detale_Card, Randgris_Card, B_Seyren_Card
		"|4146|4132|4147|4372|4145"+  //Maya_Card, Mistress_Card, Baphomet_Card, Bacsojin_Card, Berzebub_Card
		"|4374|4352|4367|4236|4425"+  //Apocalips_H_Card, B_Ygnizem_Card, B_Shecil_Card, Amon_Ra_Card, Atroce_Card
		"|4359|4123|4144|4135|4143"+  //B_Eremes_Card, Eddga_Card, Osiris_Card, Orc_Load_Card, Orc_Hero_Card
		"|4263|4131|4430|4276|4419"+  //Incant_Samurai_Card, Moonlight_Flower_Card, Ifrit_Card, Lord_Of_Death_Card, Ktullanux_Card
		"|4403|4399|4376|4441|4302"+  //Kiel_Card, Thanatos_Card, Lady_Tanee_Card, Fallen_Bishop_Card, Tao_Gunka_Card
		"|4305|4148|4318|4121|4365"+  //Turtle_General_Card, Pharaoh_Card, Knight_Windstorm_Card, Phreeoni_Card, B_Katrinn_Card
		"|4363|4324|4361|4330|4342|"; //B_Magaleta_Card, Garm_Card, B_Harword_Card, Dark_Snake_Lord_Card, Rsx_0806_Card

	if (.@Jeremy) {
		for(set .@i,0; .@i<4; set .@i,.@i+1) {
			if (.@equip_card[.@i] >= 4700) // Armor Enchant System
				set .@equip_card[.@i],0;
		}
		if (!getarraysize(.@equip_card)) {
			mes .@n$;
			mes "ûм⵽Ƭ, װ?";
			close;
		}
		if ((.@equip_card[0] && compare(.@mvp_list$,"|"+.@equip_card[0]+"|")) ||
			(.@equip_card[1] && compare(.@mvp_list$,"|"+.@equip_card[1]+"|")) ||
			(.@equip_card[2] && compare(.@mvp_list$,"|"+.@equip_card[2]+"|")) ||
			(.@equip_card[3] && compare(.@mvp_list$,"|"+.@equip_card[3]+"|")))
			set .@boss_chk,1;
	} else {
		// Official "Richard" script uses a hardcoded list including every possible item.
		//if (!getequipisequiped(.@equip_num)) {
		//	mes "[Richard]";
		//	mes "ǳǸ, ǻ֧װ.";
		//	close;
		//}

		mes "[]";
		mes "ǸƬϰ¿Ƭ? ҿĻ, ֱΪ 1,2,3,4Ų.";
		next;
		set .@menu$,"";
		for(set .@i,0; .@i<4; set .@i,.@i+1) {
			if (.@equip_card[.@i] && .@equip_card[.@i] < 4700) // Armor Enchant System
				set .@menu$, .@menu$+" "+(.@i+1)+" - "+getitemname(.@equip_card[.@i])+":";
			else
				set .@menu$, .@menu$+"^777777Socket "+(.@i+1)+" - ûпƬ^000000:";
		}
		set .@i, select("- ֹͣ:"+.@menu$);
		switch(.@i) {
		case 1:
			mes .@n$;
			mes "Ҫʱ, .";
			close;
		default:
			set .@slot, .@i-2;
			if (.@equip_card[.@slot] == 0 || .@equip_card[.@slot] >= 4700) {
				mes .@n$;
				mes "˿Ƭû䱸κοƬ, ٴμ?";
				close;
			}
			break;
		}
		if (compare(.@mvp_list$,"|"+.@equip_card[.@slot]+"|"))
			set .@boss_chk,1;
	}
	if (.@boss_chk == 0) {
		mes .@n$;
		if (.@Jeremy)
			mes "ĿƬ, ^ff0000ħЧʧ.^000000 ͬ, ѡѡ:";
		else
			mes "ѡ󻬼.";
		next;
		set .@menu$,
			"Next time...:"+
			((Zeny >= 1000000)?"ʹ 1,000,000z (ʹκ󻬼):":"^999999ʹ 1,000,000z ()^000000:")+
			((countitem(6441))?"ʹ ߼󻬼 :":"^999999߼󻬼 ()^000000:")+
			((countitem(6440))?"ʹ ͨ󻬼":"^999999ͨ󻬼 ()^000000");
		switch(select(.@menu$)) {
		case 1:
			mes .@n$;
			mes "Ҫʱ,ҵ.";
			close;
		case 2:
			if (Zeny < 1000000) {
				mes .@n$;
				mes "Ǯû. Ǯʱ.";
				close;
			}
			mes .@n$;
			mes "һǳɵװ. ᵼڷбٵĸʴ. ȷҪ?";
			next;
			if(select("- ´˵...:- ") == 1) {
				mes .@n$;
				mes "Ҫʱ,ҵ.";
				close;
			}
			set .@sf_c_num,150;
			set .@sf_r_num,150;
			set .@sf_w_num,150;
			set Zeny, Zeny - 1000000;
			break;
		case 3:
			if (countitem(6441) == 0) {
				mes .@n$;
				mes "ûи߼󻬼.";
				close;
			}
			mes .@n$;
			mes "ʹø߼󻬼, ȫϵ, ޷ 100% ֤. ȷҪ?";
			next;
			if(select("- ´˵...:- ") == 1) {
				mes "[]";
				mes "Ҫʱ,ҵ.";
				close;
			}
			set .@sf_c_num,75;
			set .@sf_r_num,75;
			set .@sf_w_num,75;
			delitem 6441,1; //High_RankLubricant
			break;
		case 4:
			if (countitem(6440) == 0) {
				mes .@n$;
				mes "ûͨ󻬼.";
				close;
			}
			mes .@n$;
			mes "ʹͨ󻬼, ȫϵ, ޷ 100% ֤. ȷҪ?";
			next;
			if(select("- ´˵...:- ") == 1) {
				mes "[]";
				mes "Ҫʱ,ҵ.";
				close;
			}
			set .@sf_c_num,75;
			set .@sf_r_num,150;
			set .@sf_w_num,150;
			delitem 6440,1; //General_Lubricant
			break;
		}
	} else if (.@boss_chk == 1) {
		mes .@n$;
		mes "װһ MVP Ƭ. ࿨Ƭ޷ͨ󻬼. Լ ^0000ffˮƿ^000000, Ҿܹ.";
		next;
		switch(select("- ´˵...:- .")) {
		case 1:
			mes .@n$;
			mes "Ҫʱ,ҵ.";
			close;
		case 2:
			if (countitem(6443) == 0) {
				mes .@n$;
				mes "ûˮƿ.";
				close;
			}
			break;
		}
		mes .@n$;
		if (.@Jeremy) {
			mes "ĿƬ, ^ff0000ħЧʧ.^000000 ͬ, ѡѡ:";
			set .@menu$,"Alright, let's do it!";
		} else {
			mes "May I continue?";
			set .@menu$,"I got it. Just do it quickly!";
		}
		next;
		switch(select("- ´˵...:- û,!")) {
		case 1:
			mes .@n$;
			mes "Ҫʱ,ҵ.";
			close;
		case 2:
			set .@sf_c_num,60;
			set .@sf_r_num,60;
			set .@sf_w_num,60;
			delitem 6443,1; //Sillit_Pong_Bottle
			break;
		}
	}

	set .@equip_id, getequipid(.@equip_num);
	set .@equip_refine, getequiprefinerycnt(.@equip_num);
	delequip .@equip_num;

	// Chance of retaining refine level.
	if (rand(1,.@sf_r_num) >= 61)
		set .@equip_refine,0;

	if (.@Jeremy) {
		// Chance of retaining equipment.
		if (rand(1,.@sf_w_num) < 61) {
			set .@equip_safe,1;
			getitem2 .@equip_id,1,1,.@equip_refine,0,0,0,0,0;
		}

		// Chance of retaining cards.
		for(set .@i,0; .@i<4; set .@i,.@i+1) {
			if (.@equip_card[.@i]) {
				if (rand(1,.@sf_c_num) < 61)
					getitem .@equip_card[.@i],1;
				else
					set .@card_break,1;
			}
		}
	} else {
		set .@card, .@equip_card[.@slot];
		set .@equip_card[.@slot],0;

		// Chance of retaining equipment.
		if (rand(1,.@sf_w_num) < 61) {
			set .@equip_safe,1;
			getitem2 .@equip_id,1,1,.@equip_refine,0,.@equip_card[0],.@equip_card[1],.@equip_card[2],.@equip_card[3];
		}

		// Chance of retaining card.
		if (rand(1,.@sf_c_num) < 61)
			getitem .@card,1;
		else
			set .@card_break,1;
	}

	// Display corresponding effect.
	if (!.@equip_safe && .@card_break)
		specialeffect2 EF_LORD;
	else if (.@equip_safe && .@card_break)
		specialeffect2 EF_SUI_EXPLOSION;
	else if (!.@equip_safe && !.@card_break)
		specialeffect2 EF_FIREPILLAR;
	else
		specialeffect2 EF_MAXPOWER;

	// Output results.
	mes "-- 𿨽 --";
	if (.@equip_safe) {
		mes "Ƭڷδ.";
		mes "^0000FFװ.^000000";
	} else {
		mes "Ƭڷδ.";
		mes "װ. ^ff0000޷ԭ.^000000";
	}
	mes "-------------------";
	if (!.@card_break) {
		mes ", Ƭδʴ.";
		mes "^0000ff𿨳ɹ.^000000";
	} else {
		mes "ڷ, Ƭıܵʴ.";
		mes "Ƭ. ^ff0000޷ԭ.^000000";
	}
	next;
	mes .@n$;
	mes "ǲ𿨿ֵܳн. ټ.";
	close;
}
malangdo,215,166,4	duplicate(CardSeparation_mal)	#pa0829	553
malangdo,208,166,6	duplicate(CardSeparation_mal)	#pa0829	559
