浏览代码

* Added the Advanced Refiner for Enriched ores.
- I've had this done for awhile now, but I've never submitted it. XD


git-svn-id: https://svn.code.sf.net/p/rathena/svn/trunk@11570 54d463be-8e91-2dee-dedb-b68131a5f0ec

L0ne_W0lf 17 年之前
父节点
当前提交
895ee4a0ad
共有 3 个文件被更改,包括 236 次插入0 次删除
  1. 3 0
      npc/Changelog.txt
  2. 232 0
      npc/merchants/advanced_refiner.txt
  3. 1 0
      npc/scripts_athena.conf

+ 3 - 0
npc/Changelog.txt

@@ -1,5 +1,8 @@
 Date		Added
 ======
+2007/10/24
+	* Rev. 11570 Added the Advanced Refiner for Enriched ores. [L0ne_W0lf]
+	- I've had this done for awhile now, but I've never submitted it. XD
 2007/10/23
 	* Rev. 11568 Removed duplicate Morroc city npc (bugreport:277) [L0ne_W0lf]
 	- Fix to the knight job quest. (bad areawarp destination)

+ 232 - 0
npc/merchants/advanced_refiner.txt

@@ -0,0 +1,232 @@
+//===== eAthena Script =======================================
+//= Advanced Refiner
+//===== By: ==================================================
+//= L0ne_W0lf
+//===== Current Version: =====================================
+//= 1.0
+//===== Compatible With: =====================================
+//= Eathena SVN
+//===== Description: =========================================
+//= [Aegis Conversion]
+//= Refiner that uses Enriched ores to increase upgrade
 success.
+//= After a conversation with Doddler, it's been established that
+//= the advanced refiner works similar the the "Bubble Gum" item.
+//= The success percentage is not "increased" however, if it fails
+//= You get a second try. This tries twice at the same time,
+//= effectively giving you a re-roll on your attempt.
+//= - Dialog is only partly official to iRO.
+//= - Uses the iRO position for this NPC.
+//===== Additional Comments: =================================
+//= 1.0 First Version. [L0ne_W0lf]
+//============================================================
+
+payon,174,138,0	script	Suhnbi#cash	85,{
+	mes "[Suhnbi]";
+	mes "I am the Armsith";
+	mes "I can refine all kinds of weapons,";
+	mes "armor and equipment, so let me";
+	mes "know what you want to refine.";
+	next;
+	set .@strRetPart1$,getequipname(1);
+	set .@strRetPart2$,getequipname(2);
+	set .@strRetPart3$,getequipname(3);
+	set .@strRetPart4$,getequipname(4);
+	set .@strRetPart5$,getequipname(5);
+	set .@strRetPart6$,getequipname(6);
+	set .@strRetPart7$,getequipname(7);
+	set .@strRetPart8$,getequipname(8);
+	set .@strRetPart9$,getequipname(9);
+	set .@strRetPart10$,getequipname(10);
+
+	set .@menu$,.@strRetPart1$+":"+.@strRetPart2$+":"+.@strRetPart3$+":"+.@strRetPart4$+":"+.@strRetPart5$+":"+.@strRetPart6$+":"+.@strRetPart7$+":"+.@strRetPart8$+":"+.@strRetPart9$+":"+.@strRetPart10$;
+
+	switch(select(.@menu$)) {
+	case 1:
+		set .@part,1;
+		if (getequipisequiped(1) == 0) {
+			mes "[Suhnbi]";
+			mes "Do you want me to refine your skull?";
+			close;
+		}
+		break;
+	case 2:
+		set .@part,2;
+		if (getequipisequiped(2) == 0) {
+			mes "[Suhnbi]";
+			mes "I'll refine your torso with my own passionate body!";
+			close;
+		}
+		break;
+	case 3:
+		set .@part,3;
+		if (getequipisequiped(3) == 0) {
+			mes "[Suhnbi]";
+			mes "Sorry, there ain't any technology yet to put rockets on your left hand...";
+			close;
+		}
+		break;
+	case 4:
+		set .@part,4;
+		if (getequipisequiped(4) == 0) {
+			mes "[Suhnbi]";
+			mes "Sorry, there ain't any technology yet to put rockets on your right hand...";
+			close;
+		}
+		break;
+	case 5:
+		set .@part,5;
+		if (getequipisequiped(5) == 0) {
+			mes "[Suhnbi]";
+			mes "You're not even wearing a garment? Are you?";
+			close;
+		}
+		break;
+	case 6:
+		set .@part,6;
+		if (getequipisequiped(6) == 0) {
+			mes "[Suhnbi]";
+			mes "What do I look like, a makeover artist? I can't refine your bare feet!";
+			close;
+		}
+		break;
+	case 7:
+		set .@part,7;
+		if (getequipisequiped(7) == 0) {
+			mes "[Suhnbi]";
+			mes "Um... You're not wearing an Accessory.";
+			close;
+		}
+		break;
+	case 8:
+		set .@part,8;
+		if (getequipisequiped(8) == 0) {
+			mes "[Suhnbi]";
+			mes "Accessory? You're not wearing one of those.";
+			close;
+		}
+		break;
+	case 9:
+		set .@part,9;
+		if (getequipisequiped(9) == 0) {
+			mes "[Suhnbi]";
+			mes "I refine equipment. I don't give hair cuts.";
+			close;
+		}
+		break;
+	case 10:
+		set .@part,10;
+		if (getequipisequiped(10) == 0) {
+			mes "[Suhnbi]";
+			mes "What am I, your personal hairstylist?. Go to the salon if you want work done on your precious hair.";
+			close2;
+		}
+		break;
+	}
+
+	if (getequipisenableref(.@part) == 0) {
+		mes "[Suhnbi]";
+		mes "I don't think I can refine this item at all.";
+		close;
+	}
+	if (getequipisidentify(.@part) == 0) {
+		mes "[Suhnbi]";
+		mes "This is has not been identified. So, it can't be refined...";
+		close;
+	}
+	if (getequiprefinerycnt(.@part) >= 10) {
+		mes "[Suhnbi]";
+		mes "This item cannot be refined because it has already reached its maximum level...";
+		close;
+	}
+	// Make sure you have the neccessary items and Zeny to refine your items
+	// Determines chance of failure and verifies that you want to continue.
+	switch(getequipweaponlv(.@part)) {
+	case 1: callsub S_RefineValidate,1,7620,50,.@part; break;
+	case 2: callsub S_RefineValidate,2,7620,200,.@part; break;
+	case 3: callsub S_RefineValidate,3,7620,5000,.@part; break;
+	case 4: callsub S_RefineValidate,4,7620,20000,.@part; break;
+	default: callsub S_RefineValidate,0,7619,2000,.@part; break;
+	}
+
+	if (getequippercentrefinery(.@part) > rand(100) || getequippercentrefinery(.@part) > rand(100)) {
+		mes "[Suhnbi]";
+		mes "Clink! Clank! Clunk!";
+		SuccessRefItem .@part;
+		next;
+		Emotion e_no1;
+		mes "[Suhnbi]";
+		mes "Here you are! It's done.";
+		mes "It's been a while since I've made such a fine weapon. You must be happy because it has become stronger!";
+		close;
+	}
+	else {
+		mes "[Suhnbi]";
+		mes "Clink! Clank! Clunk!";
+		FailedRefItem .@part;
+		next;
+		if (rand(5) == 1)
+			Emotion e_cash;
+		else 
+			Emotion e_omg;
+		mes "[Suhnbi]";
+		mes "Cough!!!!";
+		next;
+		mes "[Suhnbi]";
+		mes "Cough...Cough..";
+		mes "What a shame...";
+		mes "Your equipment broke during hte refining process. I had told you earlier this might happen!";
+		close;
+	}
+
+S_RefineValidate:
+	mes "[Suhnbi]";
+	if (getarg(0))
+		mes "A level "+getarg(0)+" weapon...";
+	mes "To refine this I need one ^ff9999"+getitemname(getarg(1))+"^000000 and a service fee of "+getarg(2)+" Zeny.";
+	mes "Do you wish to continue?";
+	next;
+	if (select("Yes:No") == 1) {
+		if (getequippercentrefinery(getarg(3)) < 100) {
+			mes "[Suhnbi]";
+			mes "Wow!!";
+			mes "This weapon, probably";
+			mes "looks like it's been refined...";
+			mes "many times...";
+			mes "It may break if";
+			mes "you refine it again.";
+			next;
+			mes "And if it breaks,";
+			mes "you can't use it anymore!";
+			mes "All the cards in it and the";
+			mes "properties";
+			mes "^ff0000will be lost^000000!!";
+			mes "^ff0000 besides, the equipment will break!^000000";
+			mes " ";
+			mes "Are you sure you still want to continue?";
+			next;
+			if (select("Yes:No") == 2) {
+				mes "[Suhnbi]";
+				mes "I completely agree...";
+				mes "I might be a great refiner, but something even I make mistakes.";
+				close;
+			}
+		}
+		if (countitem(getarg(1)) > 0 && Zeny > getarg(2)) {
+			delitem getarg(1),1;
+			set zeny,zeny-getarg(2);
+			return;
+		}
+		else {
+			mes "[Suhnbi]";
+			mes "You don't seem to have enough Zeny or "+getitemname(getarg(1))+"...";
+			mes "Go get some more. I'll be here ll day if you need me.";
+			close;
+		}
+	}
+	else {
+		mes "[Suhnbi]";
+		mes "Yeah... There's no need to rush.";
+		mes "Take your time.";
+		close;
+	}
+}

+ 1 - 0
npc/scripts_athena.conf

@@ -56,6 +56,7 @@ npc: npc/merchants/ammo_dealer.txt
 npc: npc/merchants/socket_enchant.txt
 npc: npc/merchants/novice_exchange.txt
 npc: npc/merchants/gemstone.txt
+npc: npc/merchants/advanced_refiner.txt
 // --------------------------------------------------------------
 // -------------------------- Airport ---------------------------
 npc: npc/airports/airships.txt