浏览代码

> Pre-Renewal fixes, major credits to Deep Forest for his detailed reports:
* Separated Renewal Alberta features with checkre() and new files, follow-up r16125 (bugreport:7041).
* Moved remaining Renewal shops out of pre-Renewal file, follow-up r16138 / r16104 (bugreport:7042).
* Moved Renewal refining features to a separate file, and made some changes, follow-up r16126 (bugreport:7043).

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

euphyy 12 年之前
父节点
当前提交
f54be649cd

+ 9 - 5
npc/cities/amatsu.txt

@@ -1,9 +1,9 @@
 //===== rAthena Script ======================================= 
-//= Amatsu Script 
+//= Amatsu Town
 //===== By: ================================================== 
-//= Some people & rAthena Dev Team
+//= rAthena Dev Team
 //===== Current Version: ===================================== 
-//= 1.3
+//= 1.4
 //===== Compatible With: ===================================== 
 //= rAthena SVN
 //===== Description: ========================================= 
@@ -12,11 +12,12 @@
 //===== Additional Comments: ================================= 
 //= 1.3 Rescripted to Aegis 10.3 Standards. [L0ne_W0lf]
 //=	Moved elemental stone trader to 'elemental_trader.txt'
+//= 1.4 Moved Alberta NPC to pre-re/re paths. [Euphy]
 //============================================================
 
 // Amatsu Transportation
 //=====================================================
-alberta,246,74,3	script	Sea Captain#ama1	709,{
+-	script	::Sea_Captain_amatsu	-1,{
 	mes "[Walter Moers]";
 	mes "Hey, there.";
 	mes "Have you ever heard that there";
@@ -136,7 +137,10 @@ amatsu,194,79,5	script	Sea Captain#ama2	709,{
 		mes "so many things to talk about,";
 		mes "right? All aboard now.";
 		close2;
-		warp "alberta",244,72;
+		if (checkre(0))
+			warp "alberta",244,72;
+		else
+			warp "alberta",243,91;
 		end;
 	}
 	mes "[Walter Moers]";

+ 7 - 3
npc/cities/ayothaya.txt

@@ -3,7 +3,7 @@
 //===== By: ================================================== 
 //= MasterOfMuppets
 //===== Current Version: =====================================
-//= 1.7
+//= 1.8
 //===== Compatible With: ===================================== 
 //= rAthena SVN
 //===== Description: ========================================= 
@@ -12,11 +12,12 @@
 //===== Additional Comments: ================================= 
 //= 1.6 Rescripted to Aegis 10.3 standards. [L0ne_W0lf]
 //= 1.7 Fixed character's anme bugs [Lupus]
+//= 1.8 Moved Alberta NPC to pre-re/re paths. [Euphy]
 //============================================================ 
 
 // Ayothaya Transportation NPC
 //============================================================ 
-alberta,246,29,3	script	Aibakthing#ayo	843,{
+-	script	::Aibakthing_ayothaya	-1,{
 	mes "[Aibakthing]";
 	mes "Hoo! Hah! Hoo! Hah!";
 	mes "Let me take you away to";
@@ -91,7 +92,10 @@ ayothaya,152,68,1	script	Aibakthing#ayo2	843,{
 		mes "[Aibakthing]";
 		mes "You will be welcome to come back whenever you please. I hope that we will see each other again sometime soon. Thank you~";
 		close2;
-		warp "alberta",238,22;
+		if (checkre(0))
+			warp "alberta",238,22;
+		else
+			warp "alberta",235,45;
 		end;
 	}
 	mes "[Aibakthing]";

+ 7 - 3
npc/cities/gonryun.txt

@@ -3,7 +3,7 @@
 //===== By: ================================================== 
 //= x[tsk], KarLaeda
 //===== Current Version: ===================================== 
-//= 1.4
+//= 1.6
 //===== Compatible With: ===================================== 
 //= rAthena SVN
 //===== Description: ========================================= 
@@ -12,11 +12,12 @@
 //===== Additional Comments: ================================= 
 //= 1.5 Rescripted to Aegis 10.3 standards. [L0ne_W0lf]
 //=	Moved Lost Knife mini-quest to quest file.
+//= 1.6 Moved Alberta NPC to pre-re/re paths. [Euphy]
 //============================================================
 
 // Kunlun Transportation
 //============================================================ 
-alberta,246,62,3	script	Kunlun Envoy#gon	776,{
+-	script	::Kunlun_Envoy_gonryun	-1,{
 	mes "[Wa Bai Hu]";
 	mes "Good day~";
 	mes "Let me invite you all";
@@ -143,7 +144,10 @@ gon_fild01,255,79,7	script	Kunlun Envoy#gon2	776,{
 		mes "back. Now, let me guide you";
 		mes "back to Alberta.";
 		close2;
-		warp "alberta",244,60;
+		if (checkre(0))
+			warp "alberta",244,60;
+		else
+			warp "alberta",243,67;
 		end;
 	}
 	mes "[Wa Bai Hu]";

+ 9 - 5
npc/cities/louyang.txt

@@ -8,7 +8,7 @@
 //= MasterOfMuppets (2.0)
 //= rAthena Dev Team
 //===== Current Version: ===================================== 
-//= 2.9
+//= 3.0
 //===== Compatible With: ===================================== 
 //= rAthena SVN
 //===== Description: ========================================= 
@@ -16,11 +16,12 @@
 //= Louyang Town Script
 //===== Additional Comments: ================================= 
 //= 2.9 Rescripted to Aegis 10.3 Standards. [L0ne_W0lf]
+//= 3.0 Moved Alberta NPC to pre-re/re paths. [Euphy]
 //============================================================
 
 // Louyang Transportaion
 //============================================================
-alberta,246,40,3	script	Girl#0lou	815,{
+-	script	::Girl_louyang	-1,{
 	mes "[Girl]";
 	mes "La la la la~";
 	mes "I feel so good today~";
@@ -108,7 +109,10 @@ lou_fild01,190,100,7	script	Girl#1lou	815,{
 		mes "see you again!";
 		mes "Bye bye!";
 		close2;
-		warp "alberta",236,40;
+		if (checkre(0))
+			warp "alberta",236,40;
+		else
+			warp "alberta",235,45;
 		end;
 	}
 	mes "[Girl]";
@@ -331,7 +335,7 @@ louyang,84,254,0	script	Exit#lou	111,{
 //= 2.0 - Completely rewrote the current scripts based on iRO.
 //        Added the 'Shouting Quest' and the 'Medicine Quest'
 //= 2.1 Optimized, made quest vars unique [Lupus]
-//= 2.1a minor fix, 2.1b Fixed Typos [Nexon]
+//= 2.1a minor fix, 2.1b Fixed Typos [Nexon]
 //= 2.2 Fixed exploits [Lupus]
 //= 2.2a Updated the color codes a little and fixed the shouting quest
 //=	 to broadcast green text.
@@ -344,7 +348,7 @@ louyang,84,254,0	script	Exit#lou	111,{
 //= 2.6a Updated a few names with new item_db.txt names [Evera]
 //= 2.7 Split quests to quests/quests_louyang.txt [Evera]
 //= 2.7a Minor optimizations before Louyang quests [Lupus]
-//= 2.7b Moved guides to the Guides folder. 2.7 more typos [Lupus]
+//= 2.7b Moved guides to the Guides folder. 2.7 more typos [Lupus]
 //= 2.8 Moved some quest-related NPCs to proper file. [SinSloth]
 //= 2.9 Rescripted to Aegis 10.3 Standards. [L0ne_W0lf]
 //============================================================

+ 7 - 3
npc/cities/moscovia.txt

@@ -3,7 +3,7 @@
 //===== By: ================================================== 
 //= Kisuka
 //===== Current Version: ===================================== 
-//= 1.1
+//= 1.2
 //===== Compatible With: ===================================== 
 //= rAthena SVN
 //===== Description: ========================================= 
@@ -11,11 +11,12 @@
 //===== Additional Comments: ================================= 
 //= 1.0 First Version. [Kisuka]
 //= 1.1 Removed villagers (they are part of a quest). [Kisuka]
+//= 1.2 Moved Alberta NPC to pre-re/re paths. [Euphy]
 //============================================================
 
 // Moscovia Transportation
 //============================================================ 
-alberta,246,51,4	script	Moscovia P.R. Officer#1	960,{
+-	script	::PR_Officer_moscovia	-1,{
 	mes "[Moscovia P.R. Officer]";
 	mes "Moscovia! Do you know Moscovia?";
 	mes "the paradise spreading on the endless seas...";
@@ -108,7 +109,10 @@ moscovia,166,53,4	script	Moscovia P.R. Officer#2	960,{
 	mes "Please come and visit soon.";
 	mes "Ok then, Let's get going.";
 	close2;
-	warp "alberta",244,52;
+	if (checkre(0))
+		warp "alberta",244,52;
+	else
+		warp "alberta",243,67;
 	end;
 }
 

+ 6 - 6
npc/custom/quests/quest_shop.txt

@@ -165,13 +165,13 @@ function Add {
 		debugmes "Quest reward #"+getarg(1)+" invalid (skipped).";
 		return;
 	}
-	for(set .@i,2; .@i<getargcount(); set .@i,.@i+1)
-		set .@j[.@i-2],getarg(.@i);
-	for(set .@i,3; .@i<getarraysize(.@j); set .@i,.@i+2) {
-		if (getitemname(.@j[.@i]) == "null") {
-			debugmes "Quest requirement #"+.@j[.@i]+" invalid (skipped).";
+	setarray .@j[0],getarg(2),getarg(3),getarg(4);
+	for(set .@i,5; .@i<getargcount(); set .@i,.@i+2) {
+		if (getitemname(getarg(.@i)) == "null") {
+			debugmes "Quest requirement #"+getarg(.@i)+" invalid (skipped).";
 			return;
-		}
+		} else
+			setarray .@j[.@i-2],getarg(.@i),getarg(.@i+1);
 	}
 	copyarray getd(".q_"+getarg(1)+"[0]"),.@j[0],getarraysize(.@j);
 	npcshopadditem "qshop"+getarg(0),getarg(1),((.ShowZeny)?getarg(3):0);

+ 25 - 606
npc/merchants/refine.txt

@@ -3,7 +3,7 @@
 //===== By: ==================================================
 //= Syrus22 (1.1) dafide18 (1.4) Skotlex (1.5)
 //===== Current Version: =====================================
-//= 3.1
+//= 3.2
 //===== Compatible With: =====================================
 //= Any Athena Version
 //===== Description: =========================================
@@ -58,6 +58,7 @@
 //= 3.0 Updated several NPC names and locations. [Xantara]
 //		Added WoE map Refiners.
 //= 3.1 Added the new refinement & Ore creation NPC's for +11 and above Refinement. [Masao]
+//= 3.2 Moved some scripts to Renewal file, other minor changes. [Euphy]
 //============================================================
 
 // Christopher: Geffen Blacksmith
@@ -598,9 +599,8 @@ lhz_in02,282,20,7	script	Fulerr	869,{
 //============================================================
 //= To allow auto safe refining/multiple refining set the
 //= second argument to '1' in the function call.
-//= If you enable this function make sure you set the appropiate +x Level in your refine_db.txt
-//= to 100 and adjust the .@safe Value in the Script to your desired max. Safe Level.
-//= Otherwise it won't work .
+//= If you enable this function, be sure to edit the value of
+//= .@safe to the max safe refine in refine_db.txt as well.
 //============================================================
 function	script	refinemain	{
 	set .@features,getarg(1);
@@ -612,11 +612,9 @@ function	script	refinemain	{
 
 	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) )
+	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$);
@@ -625,7 +623,7 @@ function	script	refinemain	{
 		mes "You're not wearing";
 		mes "anything there that";
 		mes "I can refine.";
-		emotion 6;
+		emotion e_an;
 		close;
 	}
 	//Check if the item is refinable...
@@ -747,7 +745,7 @@ function	script	refinemain	{
 		}
 		if(getequiprefinerycnt(.@part) != .@refinerycnt || getequipid(.@part) != .@refineitemid) { // hacker has changed the item
 			mes "[" + getarg(0) + "]";
-			Emotion e_an;
+			emotion e_an;
 			mes "Wait a second...";
 			mes "Do you think I'm stupid?!";
 			mes "You switched the item while I wasn't looking! Get out of here!";
@@ -756,12 +754,7 @@ function	script	refinemain	{
 		if(getequippercentrefinery(.@part) <= rand(100)) {
 			failedrefitem .@part;
 			mes "[" + getarg(0) + "]";
-			set .@emo,rand(1,5);
-			if (.@emo == 1) {
-				Emotion e_cash;
-			} else {
-				Emotion e_swt;
-			}
+			emotion (!rand(5))?e_cash:e_omg;
 			set .@lose,rand(1,3);
 			if (.@lose == 1) {
 				mes "OH! MY GOD!";
@@ -782,7 +775,7 @@ function	script	refinemain	{
 		}
 		mes "["+getarg(0)+"]";
 		successrefitem .@part;
-		Emotion e_heh;
+		emotion e_heh;
 		set .@win,rand(1,3);
 		if (.@win == 1) {
 			mes "Perfect!";
@@ -808,10 +801,11 @@ function	script	refinemain	{
 // New Refining Functions ========================
 	if(getequiprefinerycnt(.@part) < .@safe) {
 		mes "[" + getarg(0) + "]";
-		mes "I can refine this to the safe limit or a desired number of times... it's your choice...";
+		mes "I can refine this to the safe limit or a desired number of times. It's your choice.";
 		next;
-		set .@menu2,select("To the safe limit please.","I'll decide how many times.","I've changed my mind...");
-	} else set .@menu2,2;
+		set .@menu2,select("To the safe limit, please.","I'll decide how many times.","I've changed my mind...");
+	} else
+		set .@menu2,2;
 	switch(.@menu2){
 	case 1: 
 		set .@refinecnt,.@safe - getequiprefinerycnt(.@part);
@@ -819,7 +813,7 @@ function	script	refinemain	{
 	case 2:
 		next;
 		mes "[" + getarg(0) + "]";
-		mes "So how many times would you like me to refine your item?";
+		mes "How many times would you like me to refine your item?";
 		next;
 		input .@refinecnt;
 		set .@refinecheck,.@refinecnt + getequiprefinerycnt(.@part);
@@ -835,7 +829,7 @@ function	script	refinemain	{
 			next;
 			if(select("Yes...","No...") == 2){
 				mes "[" + getarg(0) + "]";
-				mes "You said so..Hmm so be it...";
+				mes "You said so... So be it.";
 				close;
 			}
 		}
@@ -843,7 +837,7 @@ function	script	refinemain	{
 	case 3:
 		next;
 		mes "[" + getarg(0) + "]";
-		mes "You said so..Hmm so be it...";
+		mes "You said so... So be it.";
 		close;
 	}
 	set .@fullprice,.@price * .@refinecnt;
@@ -852,7 +846,7 @@ function	script	refinemain	{
 	next;
 	if(select("Yes","No...") == 2){
 		mes "[" + getarg(0) + "]";
-		mes "You said so..Hmm so be it...";
+		mes "You said so... So be it.";
 		close;
 	}
 	if(countitem(.@material) < .@refinecnt || Zeny < .@fullprice) {
@@ -865,32 +859,32 @@ function	script	refinemain	{
 	while(.@refinecnt){
 		if (getequipisequiped(.@part) == 0) {
 			mes "[" + getarg(0) + "]";
-			mes "Look here... you don't have any Items on...";
+			mes "Look here... you don't have any items on...";
 			close;
 		}
 		if (getequipid(.@part) != .@refineitemid || (.@menu2 == 1 && getequippercentrefinery(.@part) < 100)) {
 			mes "[" + getarg(0) + "]";
-			mes "Clan... No, but Did you imagine I could be so stupid !?!";
-			mes "You have changed it...";
-			mes "Go out before I stun you with my Hammer!!!";
+			mes "Clang... No, but did you imagine I could be so stupid?!";
+			mes "You changed it...";
+			mes "Get out before I stun you with my Hammer!!";
 			close;
 		} 
 		mes "Clang, clang!!!";
 		if(.@menu2 == 2 && getequippercentrefinery(.@part) <= rand(100)) {
 			failedrefitem .@part;
-			emotion 23;
+			emotion e_omg;
 			mes "[" + getarg(0) + "]";
 			mes "WAHHHH!!! I'm so sorry... I warned you this could happen...";
 			set .@refinecnt,.@refinecnt - 1;
 			if(.@refinecnt == 0) close;
-			mes "Here's the unused Zeny and Material back...";
+			mes "Here's the unused Zeny and materials back...";
 			getitem .@material,.@refinecnt;
 			set .@fullprice,.@refinecnt * .@price;
 			set Zeny,Zeny + .@fullprice;
 			close;
 		}
 		successrefitem .@part;
-		emotion 21;
+		emotion e_no1;
 		set .@refinecnt,.@refinecnt - 1;
 		next;
 	}
@@ -1270,579 +1264,4 @@ function	script	repairmain	{
 		mes "items to repair.";
 		close;
 	}
-}
-
-// +11 and above Weapon/Armor Refiners
-//============================================================
-prt_in,90,72,5	script	Bestry#prt	826,{
-	callfunc "refinenew","Bestry",0,0;
-	end;
-}
-morocc_in,64,41,5	script	Bestry#moc	826,{
-	callfunc "refinenew","Bestry",0,0;
-	end;
-}
-payon_in01,18,132,3	script	Bestry#pay	826,{
-	callfunc "refinenew","Bestry",0,0;
-	end;
-}
-
-//=====================================================================================
-// +11 and above Weapon/Armor Function
-//=====================================================================================
-//= To allow auto safe refining/multiple refining set the
-//= second argument to '1' in the function call.
-//= If you enable this function make sure you set the appropiate +x Level in your refine_db.txt
-//= to 100 and adjust the .@safe Value in the Script to your desired max. Safe Level.
-//= Otherwise it won't work .
-//=
-//= In the official script the NPC uses an new Command which is called 'GetExdEquipIsSuccessRefinery',
-//= this command seems to generate a random number between 1 and 3 to decide either of 
-//= the following:
-//= 1: Success
-//= 2: Downgrade
-//= 3: Failure
-//=
-//= If you want to enable that feature just set the third argument to '1' in the function call.
-//= Otherwise it will use the % chance in your refine_db.txt .
-//= Side Note: Current values for +11 and above upgrading in the refine_db.txt are custom.
-//=====================================================================================
-
-function	script	refinenew	{
-
-	mes "["+ getarg(0) +"]";
-	mes "I am the best Blacksmith ever!";
-	mes "I don't work with normal, boring items.";
-	mes "But only with items that are level 10 or higher!";
-	next;
-	mes "["+ getarg(0) +"]";
-	mes "Anyway, you may use my services if your item is lv 10 or higher.";
-	mes "What do you want to have refined?";
-	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 "[" + getarg(0) + "]";
-		mes "You're not wearing";
-		mes "anything there that";
-		mes "I can refine.";
-		emotion e_an;
-		close;
-	}
-	//Check if the item is refinable...
-	if(!getequipisenableref(.@part)) {
-		mes "[" + getarg(0) + "]";
-		mes "I don't think I can";
-		mes "refine this item at all...";
-		close;
-	}
-	//Check if the item is identified... (Don't know why this is in here... but kept it anyway)
-	if(!getequipisidentify(.@part)) {
-		mes "[" + getarg(0) + "]";
-		mes "You can't refine this";
-		mes "if you haven't appraised";
-		mes "it first. Make sure your";
-		mes "stuff is identified before";
-		mes "I can refine it.";
-		close;
-	}
-	//Check to see if the items is at least +10
-	if(getequiprefinerycnt(.@part) < 10) {
-		mes "["+ getarg(0) +"]";
-		mes "I said I don't work with Equipment under lv. 10.";
-		close;
-	}
-	if(getequiprefinerycnt(.@part) >= 20) {
-		mes "["+ getarg(0) +"]";
-		mes "I can't refine this";
-		mes "any more. This is as";
-		mes "refined as it gets!";
-		close;
-	}
-	set .@refineitemid, getequipid(.@part); // save id of the item
-	set .@refinerycnt, getequiprefinerycnt(.@part); //save refinery count
-	if ((getequipweaponlv(.@part) >= 1) && (getequipweaponlv(.@part) <= 4)) {
-		set .@material,6224;
-		set .@price,100000;
-		set .@safe,10;
-		mes "["+ getarg(0) +"]";
-		mes "Hmm a weapon, is that ok?";
-		mes "If you want to refine this weapon,";
-		mes "I will need 1 ^003366Bradium^000000 and 100,000 zeny.";
-		mes "Are you sure you want to continue?";
-	} else {
-		set .@material,6223;
-		set .@price,100000;
-		set .@safe,10;
-		mes "["+ getarg(0) +"]";
-		mes "Hmm an armor, is that ok?";
-		mes "If you want to refine this armor,";
-		mes "I will need 1 ^003366Carnium^000000 and 100,000 zeny.";
-		mes "Are you sure you want to continue?";
-	}
-	next;
-	if(select("Yes:No") == 2){
-		mes "["+ getarg(0) +"]";
-		mes "Well, no challenge is one way..";
-		mes "No risk.. that could be wise.";
-		close;
-	}
-	if(getarg(1) != 1) {
-		if ((getequipweaponlv(.@part) >= 1) && (getequipweaponlv(.@part) <= 4)) {
-				mes "["+ getarg(0) +"]";
-			mes "This weapon already has been refined serveral times.";
-			mes "It could be destroyed if you try more.";
-			mes "It won't break 100%, but is has a small chance.";
-			next;
-			mes "["+ getarg(0) +"]";
-			mes "You could have the upgrade level of the weapon decreased,";
-			mes "or if it breaks, you will lose ^FF0000any cards^000000 or special properties added to it.";
-		} else {
-			mes "["+ getarg(0) +"]";
-			mes "This armor already has been refined serveral times.";
-			mes "It could be destroyed if you try more.";
-			mes "It won't break 100%, but is has a small chance.";
-			next;
-			mes "["+ getarg(0) +"]";
-			mes "You could have the upgrade level of the armor decreased,";
-			mes "or if it breaks, you will lose ^FF0000any cards^000000 or special properties added to it.";
-		}
-		next;
-		mes "["+ getarg(0) +"]";
-		mes "Do you want me to refine it?";
-		mes "I think I gave you enough warnings.";
-		next;
-		switch (select("Yes.:No.")) {
-		case 1:
-			break;
-		case 2:
-			mes "["+ getarg(0) +"]";
-			mes "Well, no challenge is one way..";
-			mes "No risk.. that could be wise.";
-			close;
-		}
-		if(countitem(.@material) < 1 || Zeny < .@price) {
-			mes "["+ getarg(0) +"]";
-			mes "Hm, it seems you don't have enough materials or money.";
-			mes "Please check it out.";
-			close;
-		}
-		set Zeny,Zeny - .@price;
-		delitem .@material,1;
-		if(getequipisequiped(.@part) == 0) { // hacker has removed the item (not changed, why?)
-			mes "[" + getarg(0) + "]";
-			mes "Look here... you don't have any Items on...";
-			close;
-		}
-		if(getequiprefinerycnt(.@part) != .@refinerycnt || getequipid(.@part) != .@refineitemid) { // hacker has changed the item
-			mes "[" + getarg(0) + "]";
-			Emotion e_an;
-			mes "Wait a second...";
-			mes "Do you think I'm stupid?!";
-			mes "You switched the item while I wasn't looking! Get out of here!";
-			close;
-		}
-		if(getarg(2) == 1){
-			set .@rand,rand(1,3);
-			if (.@rand == 1) {
-				mes "Clang! Clang! Clang! Clang!";
-				successrefitem .@part;
-				next;
-				emotion e_no1;
-				mes "["+ getarg(0) +"]";
-				mes "Good! Succes!!!";
-				mes "I am the best Blacksmith.";
-				close;
-			}
-			if (.@rand == 2) {
-				mes "["+ getarg(0) +"]";
-				mes "Clang! Clang! Clang! Clang!";
-				downrefitem .@part;
-				next;
-				set .@emo, rand(1,5);
-				if (.@emo == 1) {
-					emotion e_cash;
-				}
-				else {
-					emotion e_omg;
-				}
-				mes "["+ getarg(0) +"]";
-				mes "Ahhh!!!";
-				next;
-				mes "["+ getarg(0) +"]";
-				mes "Oh my!";
-				mes "The upgrade level has dropped...";
-				mes "There could've been made an mistake even though I am the best ever.";
-				mes "It was out of my hands.";
-				next;
-				mes "["+ getarg(0) +"]";
-				mes "I will do a better job next time! Don't worry!";
-				close;
-			}
-			mes "["+ getarg(0) +"]";
-			mes "Clang! Clang! Clang!";
-			failedrefitem .@part;
-			next;
-			set .@emo, rand(1,5);
-			if (.@emo == 1) {
-				emotion e_cash;
-			} else {
-				emotion e_omg;
-			}
-			mes "["+ getarg(0) +"]";
-			mes "Hmmm!";
-			next;
-			mes "["+ getarg(0) +"]";
-			mes "Oh my! I've failed to refine stuff...";
-			mes "I didn't mean it!";
-			mes "There could've been made an mistake even though I am the best ever.";
-			mes "It was out of my hands.";
-			next;
-			mes "["+ getarg(0) +"]";
-			mes "I will do a better job next time! Don't worry!";
-			close;
-		}
-		set .@rand,rand(100);
-		if (getequippercentrefinery(.@part) > .@rand) {
-			mes "Clang! Clang! Clang! Clang!";
-			successrefitem .@part;
-			next;
-			emotion e_no1;
-			mes "["+ getarg(0) +"]";
-			mes "Good! Succes!!!";
-			mes "I am the best Blacksmith.";
-			close;
-		}
-		if (getequippercentrefinery(.@part) < .@rand) {
-			mes "["+ getarg(0) +"]";
-			mes "Clang! Clang! Clang! Clang!";
-			downrefitem .@part;
-			next;
-			set .@emo, rand(1,5);
-			if (.@emo == 1) {
-				emotion e_cash;
-			} else {
-				emotion e_omg;
-			}
-			mes "["+ getarg(0) +"]";
-			mes "Ahhh!!!";
-			next;
-			mes "["+ getarg(0) +"]";
-			mes "Oh my!";
-			mes "The upgrade level has dropped...";
-			mes "There could've been made an mistake even though I am the best ever.";
-			mes "It was out of my hands.";
-			next;
-			mes "["+ getarg(0) +"]";
-			mes "I will do a better job next time! Don't worry!";
-			close;
-		}
-		mes "["+ getarg(0) +"]";
-		mes "Clang! Clang! Clang!";
-		failedrefitem .@part;
-		next;
-		set .@emo, rand(1,5);
-		if (.@emo == 1) {
-			emotion e_cash;
-		} else {
-			emotion e_omg;
-		}
-		mes "["+ getarg(0) +"]";
-		mes "Hmmm!";
-		next;
-		mes "["+ getarg(0) +"]";
-		mes "Oh my! I've failed to refine stuff...";
-		mes "I didn't mean it!";
-		mes "There could've been made an mistake even though I am the best ever.";
-		mes "It was out of my hands.";
-		next;
-		mes "["+ getarg(0) +"]";
-		mes "I will do a better job next time! Don't worry!";
-		close;
-	}
-// New +11 and above Refining Functions ========================
-	if(getequiprefinerycnt(.@part) < .@safe) {
-		mes "[" + getarg(0) + "]";
-		mes "I can refine this to the safe limit or a desired number of times... it's your choice...";
-		next;
-		set .@menu2,select("To the safe limit please.","I'll decide how many times.","I've changed my mind...");
-	} else {
-		set .@menu2,2;
-	}
-	switch(.@menu2){
-	case 1: 
-		set .@refinecnt,.@safe - getequiprefinerycnt(.@part);
-		break;
-	case 2:
-		next;
-		mes "[" + getarg(0) + "]";
-		mes "So how many times would you like me to refine your item?";
-		next;
-		input .@refinecnt;
-		set .@refinecheck,.@refinecnt + getequiprefinerycnt(.@part);
-		if (.@refinecnt < 1 || .@refinecheck > 10) {
-			mes "[" + getarg(0) + "]";
-			mes "I can't refine this item that many times.";
-			close;
-		}
-		if(.@refinecheck > .@safe) {
-			set .@refinecheck,.@refinecheck - .@safe;
-			mes "[" + getarg(0) + "]";
-			mes "This will try to refine the equipment " + .@refinecheck + " times past the safe limit. Your equipment may be destroyed... is that ok?";
-			next;
-			if(select("Yes...","No...") == 2){
-				mes "[" + getarg(0) + "]";
-				mes "You said so..Hmm so be it...";
-				close;
-			}
-		}
-		break;
-	case 3:
-		next;
-		mes "[" + getarg(0) + "]";
-		mes "You said so..Hmm so be it...";
-		close;
-	}
-	set .@fullprice,.@price * .@refinecnt;
-	mes "[" + getarg(0) + "]";
-	mes "That will cost you " + .@refinecnt + " " + getitemname(.@material) + " and " + .@fullprice + " Zeny. Is that ok?";
-	next;
-	if(select("Yes","No...") == 2){
-		mes "[" + getarg(0) + "]";
-		mes "You said so..Hmm so be it...";
-		close;
-	}
-	if(countitem(.@material) < .@refinecnt || Zeny < .@fullprice) {
-		mes "[" + getarg(0) + "]";
-		mes "Is that all you got? Unfortunately I can't work for you at a lower price. Try putting yourself in my shoes.";
-		close;
-	}
-	set Zeny,Zeny - .@fullprice;
-	delitem .@material,.@refinecnt;
-	while(.@refinecnt){
-		if (getequipisequiped(.@part) == 0) {
-			mes "[" + getarg(0) + "]";
-			mes "Look here... you don't have any Items on...";
-			close;
-		}
-		if (getequipid(.@part) != .@refineitemid || (.@menu2 == 1 && getequippercentrefinery(.@part) < 100)) {
-			mes "[" + getarg(0) + "]";
-			mes "Clan... No, but Did you imagine I could be so stupid !?!";
-			mes "You have changed it...";
-			mes "Go out before I stun you with my Hammer!!!";
-			close;
-		}
-		if(getarg(2) == 1){
-			set .@rand,rand(1,3);
-			if (.@rand == 1) {
-				mes "Clang! Clang! Clang! Clang!";
-				successrefitem .@part;
-				next;
-				emotion e_no1;
-				mes "["+ getarg(0) +"]";
-				mes "Good! Succes!!!";
-				mes "I am the best Blacksmith.";
-				close;
-			}
-			if (.@rand == 2) {
-				mes "["+ getarg(0) +"]";
-				mes "Clang! Clang! Clang! Clang!";
-				downrefitem .@part;
-				next;
-				set .@emo, rand(1,5);
-				if (.@emo == 1) {
-					emotion e_cash;
-				}
-				else {
-					emotion e_omg;
-				}
-				mes "["+ getarg(0) +"]";
-				mes "Ahhh!!!";
-				next;
-				mes "["+ getarg(0) +"]";
-				mes "Oh my!";
-				mes "The upgrade level has dropped...";
-				mes "There could've been made an mistake even though I am the best ever.";
-				mes "It was out of my hands.";
-				next;
-				mes "["+ getarg(0) +"]";
-				mes "I will do a better job next time! Don't worry!";
-				close;
-			}
-			mes "["+ getarg(0) +"]";
-			mes "Clang! Clang! Clang!";
-			failedrefitem .@part;
-			next;
-			set .@emo, rand(1,5);
-			if (.@emo == 1) {
-				emotion e_cash;
-			} else {
-				emotion e_omg;
-			}
-			mes "["+ getarg(0) +"]";
-			mes "Hmmm!";
-			next;
-			mes "["+ getarg(0) +"]";
-			mes "Oh my! I've failed to refine stuff...";
-			mes "I didn't mean it!";
-			mes "There could've been made an mistake even though I am the best ever.";
-			mes "It was out of my hands.";
-			next;
-			mes "["+ getarg(0) +"]";
-			mes "I will do a better job next time! Don't worry!";
-			close;
-		}
-		set .@rand,rand(100);
-		if (getequippercentrefinery(.@part) > .@rand) {
-			mes "Clang! Clang! Clang! Clang!";
-			successrefitem .@part;
-			next;
-			emotion e_no1;
-			mes "["+ getarg(0) +"]";
-			mes "Good! Succes!!!";
-			mes "I am the best Blacksmith.";
-			close;
-		}
-		if (getequippercentrefinery(.@part) < .@rand) {
-			mes "["+ getarg(0) +"]";
-			mes "Clang! Clang! Clang! Clang!";
-			downrefitem .@part;
-			next;
-			set .@emo, rand(1,5);
-			if (.@emo == 1) {
-				emotion e_cash;
-			} else {
-				emotion e_omg;
-			}
-			mes "["+ getarg(0) +"]";
-			mes "Ahhh!!!";
-			next;
-			mes "["+ getarg(0) +"]";
-			mes "Oh my!";
-			mes "The upgrade level has dropped...";
-			mes "There could've been made an mistake even though I am the best ever.";
-			mes "It was out of my hands.";
-			next;
-			mes "["+ getarg(0) +"]";
-			mes "I will do a better job next time! Don't worry!";
-			close;
-		}
-		mes "["+ getarg(0) +"]";
-		mes "Clang! Clang! Clang!";
-		failedrefitem .@part;
-		next;
-		set .@emo, rand(1,5);
-		if (.@emo == 1) {
-			emotion e_cash;
-		} else {
-			emotion e_omg;
-		}
-		mes "["+ getarg(0) +"]";
-		mes "Hmmm!";
-		next;
-		mes "["+ getarg(0) +"]";
-		mes "Oh my! I've failed to refine stuff...";
-		mes "I didn't mean it!";
-		mes "There could've been made an mistake even though I am the best ever.";
-		mes "It was out of my hands.";
-		next;
-		mes "["+ getarg(0) +"]";
-		mes "I will do a better job next time! Don't worry!";
-		close;
-	}
-	mes "[" + getarg(0) + "]";
-	mes "All finished... Come again soon.";
-	close;
-}
-
-// Ori/Elu to Carnium/Bradium Refiners
-//============================================================
-prt_in,85,71,5	script	Austry#prt	826,{
-	callfunc "oreref","Austry";
-	end;
-}
-payon_in01,14,125,5	script	Austry#pay	826,{
-	callfunc "oreref","Austry";
-	end;
-}
-morocc_in,60,38,5	script	Austry#moc	826,{
-	callfunc "oreref","Austry";
-	end;
-}
-
-// Ori/Elu to Carnium/Bradium Function
-//============================================================
-
-function	script	oreref	{
-	mes "["+ getarg(0) +"]";
-	mes "If you bring me 3";
-	mes "Oridecon or Elunium";
-	mes "I can exchange them for";
-	mes "Bradium or Carnium.";
-	mes "Just give me 50,000z.";
-	next;
-	switch (select("Oridecon to Bradium.:Elunium to Carnium.:Purified Bradium to Carnium.:No thanks.")) {
-	case 1:
-		if ((countitem(984) > 2) && (Zeny > 49999)) {
-			delitem 984,3; //Oridecon
-			set Zeny, Zeny - 50000;
-			getitem 6224,1; //Bradium
-			mes "["+ getarg(0) +"]";
-			mes "Ok! Here is your Bradium.";
-			mes "Take it and use it well.";
-			close;
-		}
-		mes "["+ getarg(0) +"]";
-		mes "You better not be trying";
-		mes "to cheat me because you";
-		mes "don't have enough zeny";
-		mes "or Oridecon.";
-		close;
-	case 2:
-		if ((countitem(985) > 2) && (Zeny > 49999)) {
-			delitem 985,3; //Elunium
-			set Zeny, Zeny - 50000;
-			getitem 6223,1; //Carnium
-			mes "["+ getarg(0) +"]";
-			mes "Ok! Here is your Carnium.";
-			mes "Take it and use it well.";
-			close;
-		}
-		mes "["+ getarg(0) +"]";
-		mes "You better not be trying";
-		mes "to cheat me because you";
-		mes "don't have enough zeny";
-		mes "or Elunium.";
-		close;
-	case 3:
-		if ((countitem(6090) > 0) && (Zeny > 49999)) {
-			delitem 6090,1; //Purified_Bradium
-			set Zeny, Zeny - 50000;
-			getitem 6223,1; //Carnium
-			mes "["+ getarg(0) +"]";
-			mes "Refining with Purified Bradium";
-			mes "is a little expensive. I can";
-			mes "trade it for some Carnium.";
-			mes "Take it and use it well.";
-			close;
-		}
-		mes "["+ getarg(0) +"]";
-		mes "You better not be trying";
-		mes "to cheat me because you";
-		mes "don't have enough zeny";
-		mes "or Purified Bradium.";
-		close;
-	case 4:
-		mes "["+ getarg(0) +"]";
-		mes "Hmm...";
-		close;
-	}
 }

+ 2 - 9
npc/merchants/shops.txt

@@ -3,7 +3,7 @@
 //===== By: ================================================== 
 //= rAthena Dev Team
 //===== Current Version: ===================================== 
-//= 3.1
+//= 3.3
 //===== Compatible With: ===================================== 
 //= rAthena 1.0+
 //===== Description: ========================================= 
@@ -36,6 +36,7 @@
 //= 3.0 Added all new Shops which were available in the latest available official files. [Masao]
 //= 3.1 Moved some merchants to a separate renewal file. [Kenpachi]
 //= 3.2 Added Missing Items to the pet Groomers in prontera, payon, and yuno. BugReport:6680[Spre]
+//= 3.3 Moved more shops to Renewal file. [Euphy]
 //============================================================ 
 
 //=======================================================
@@ -93,8 +94,6 @@ comodo,296,125,4	shop	Souvenir Vendor#cmd	101,965:-1,964:-1
 cmd_fild07,257,126,5	shop	Tool Dealer#cmd2	83,1770:-1,501:-1,502:-1,503:-1,504:-1,645:-1,656:-1,601:-1,602:-1,611:-1,1065:-1
 cmd_fild07,250,98,2	shop	Weapon Dealer#cmd2	49,1401:-1,1404:-1,1407:-1,1451:-1,1454:-1,1457:-1,1460:-1,1463:-1,1410:-1
 cmd_fild07,277,85,4	shop	Armor Dealer#cmd2	101,2226:-1,2228:-1,2103:-1,2105:-1,2405:-1,2503:-1,2505:-1,2305:-1,2321:-1,2307:-1,2309:-1,2335:-1,2312:-1,2314:-1,2316:-1
-comodo,106,213,5	shop	Tropic Fruit Dealer	724,6258:-1
-comodo,196,162,3	shop	Harive#candy	479,11513:-1,6144:-1
 
 //=======================================================
 // Einbroch
@@ -164,7 +163,6 @@ yuno_in01,25,34,5	shop	Tool Dealer#yuno2	83,1750:-1,611:-1,501:-1,502:-1,503:-1,
 yuno_in01,103,35,2	shop	Weapon Dealer#yuno	49,1750:-1,1751:-1,1101:-1,1701:-1,1201:-1,1204:-1,1207:-1,1210:-1,1213:-1,1216:-1,1601:-1,1604:-1,1607:-1,1610:-1
 yuno_in01,112,26,4	shop	Armor Dealer#yuno	101,2628:-1,2101:-1,2107:-1,2401:-1,2501:-1,2230:-1,2301:-1,2303:-1,2305:-1,2321:-1,2332:-1
 yuno_in03,176,22,3	shop	Scroll Merchant#yuno03	89,7433:-1	//Temp shop in Yuno that sells Blank Scrolls
-s_atelier,114,117,1	shop	Part-Timer#sc_yuno	92,6123:-1,6120:-1
 
 //=======================================================
 // Lighthalzen
@@ -174,7 +172,6 @@ lighthalzen,112,44,0	shop	Flower Girl#lhz	90,712:-1,744:-1,748:-1
 lighthalzen,124,129,0	shop	Vegetable Gardener#lhz	91,515:-1,516:-1,535:-1
 lighthalzen,220,122,3	shop	Vendor from Milk Ranch#l	90,519:-1
 lighthalzen,222,191,4	shop	Pet Groomer#lhz	125,537:-1,643:-1,10013:-1,10014:-1,554:-1,6113:-1,6114:-1,6115:-1
-lighthalzen,337,240,4	shop	Trap Specialist#lhz	66,7940:-1,12341:-1
 lhz_in02,286,95,4	shop	Beginner's Merchant#lhz	62,5112:-1,2416:-1,2113:-1,2512:-1
 lhz_in02,271,99,5	shop	Armor Dealer#lhz	851,2101:-1,2103:-1,2403:-1,2405:-1,2503:-1,2321:-1,2314:-1,2309:-1,2335:-1,2628:-1
 lhz_in02,276,99,4	shop	Weapon Dealer#lhz	851,1201:-1,1207:-1,1216:-1,1107:-1,1122:-1,1116:-1,1154:-1,1407:-1,1457:-1,1354:-1,1519:-1,13003:-1
@@ -254,7 +251,6 @@ payon_in01,5,49,7	shop	Tool Dealer#pay	88,1750:-1,611:-1,501:-1,502:-1,503:-1,50
 payon_in02,87,34,0	shop	Tool Dealer#pay2	75,1750:-1,1751:-1,611:-1,501:-1,502:-1,503:-1,504:-1,506:-1,645:-1,656:-1,601:-1,602:-1,1065:-1
 payon,159,96,4	shop	Tool Dealer#pay3	88,1750:-1,501:-1,645:-1,601:-1,602:-1
 payon,177,131,4	shop	Pet Groomer#pay	124,537:-1,643:-1,10013:-1,10014:-1,554:-1,6114:-1,6113:-1,6110:-1,6115:-1,6100:-1,6098:-1,6112:-1,6104:-1,6108:-1,6111:-1,6095:-1,6099:-1,6096:-1,6097:-1,6094:-1
-payon,123,109,4	shop	Trap Specialist#pay	66,7940:-1,12341:-1
 
 //=======================================================
 // Prontera
@@ -268,7 +264,6 @@ prontera,105,87,0	shop	Gift Merchant#prt	91,734:-1,735:-1,736:-1,737:-1,746:-1
 prontera,218,211,4	shop	Pet Groomer#prt	125,537:-1,643:-1,10013:-1,10014:-1,554:-1,6114:-1,6113:-1,6110:-1,6115:-1,6100:-1,6098:-1,6112:-1,6104:-1,6108:-1,6111:-1,6095:-1,6099:-1,6096:-1,6097:-1,6094:-1
 prontera,248,153,0	shop	Doll Supplier#prt	85,740:-1,741:-1,742:-1
 prontera,48,58,0	shop	Vegetable Gardener#prt	91,515:-1,516:-1,535:-1
-//prontera,104,88,5	shop	Stuff Gimme	880,616:-1
 prt_church,108,124,4	shop	Nun#prt	79,2608:-1,2216:-1,5092:-1,2323:-1,2325:-1,1501:-1,1504:-1,1507:-1,1510:-1,1513:-1,1519:-1
 prt_fild05,290,221,2	shop	Tool Dealer#prt	83,1750:-1,611:-1,501:-1,502:-1,506:-1,645:-1,601:-1,602:-1
 prt_in,211,169,0	shop	Wedding Shop Dealer#prt	71,744:-1,745:-1,2338:-1,2206:-1,7170:-1
@@ -277,7 +272,6 @@ prt_in,172,130,0	shop	Weapon Dealer#prt	54,1750:-1,1751:-1,1701:-1,1201:-1,1204:
 prt_in,172,132,0	shop	Armor Dealer#prt	48,2101:-1,2103:-1,2401:-1,2403:-1,2501:-1,2503:-1,2220:-1,2226:-1,2301:-1,2303:-1,2305:-1,2328:-1,2307:-1,2309:-1,2312:-1,2314:-1,2628:-1,2627:-1
 prt_in,171,140,0	shop	Weapon Dealer#prt2	47,1401:-1,1404:-1,1407:-1,1451:-1,1454:-1,1457:-1,1460:-1,1463:-1,1410:-1
 prt_in,165,140,4	shop	Weapon Dealer#prt3	66,1146:-1,1245:-1
-prt_in,109,68,4	shop	Trap Specialist#prt	66,7940:-1,12341:-1
 prt_monk,135,263,5	shop	Weapon Dealer#prt4	726,1801:-1,1803:-1,1805:-1
 
 //=======================================================
@@ -287,7 +281,6 @@ ra_in01,175,364,3	shop	Armor Dealer#ra	919,2101:-1,2103:-1,2403:-1,2405:-1,2503:
 ra_in01,257,269,3	shop	Tool Dealer#ra	919,501:-1,502:-1,503:-1,504:-1,506:-1,645:-1,656:-1,601:-1,602:-1,611:-1,1065:-1,610:-1
 ra_in01,176,389,3	shop	Weapon Dealer#ra	931,1201:-1,1207:-1,1216:-1,1107:-1,1122:-1,1116:-1,1154:-1,1407:-1,1457:-1,1354:-1,1519:-1,13003:-1,1601:-1,1604:-1,1607:-1
 ra_in01,254,300,3	shop	Fruit Gardener#ra	931,512:-1,513:-1
-ra_in01,263,281,4	shop	Trap Specialist#ra	66,7940:-1,12341:-1
 rachel,65,80,1	shop	Vegetable Gardener#ra	919,515:-1,535:-1,516:-1
 
 //=======================================================

+ 42 - 0
npc/pre-re/cities/alberta.txt

@@ -0,0 +1,42 @@
+//===== rAthena Script ======================================= 
+//= Alberta Town Pre-Renewal
+//===== By: ================================================== 
+//= Euphy
+//===== Current Version: ===================================== 
+//= 1.0
+//===== Compatible With: ===================================== 
+//= rAthena SVN
+//===== Description: ========================================= 
+//= Alberta town NPCs.
+//===== Additional Comments: ================================= 
+//= 1.0 First Version.
+//============================================================
+
+// cities/amatsu.txt
+//============================================================
+alberta,245,93,3	duplicate(Sea_Captain_amatsu)	Sea Captain#ama1	709
+
+// cities/ayothaya.txt
+//============================================================
+alberta,247,42,3	duplicate(Aibakthing_ayothaya)	Aibakthing#ayo	843
+
+// cities/gonryun.txt
+//============================================================
+alberta,245,69,3	duplicate(Kunlun_Envoy_gonryun)	Kunlun Envoy#gon	776
+
+// cities/louyang.txt
+//============================================================
+alberta,245,45,3	duplicate(Girl_louyang)	Girl#0lou	815
+
+// cities/moscovia.txt
+//============================================================
+alberta,245,66,4	duplicate(PR_Officer_moscovia)	Moscovia P.R. Officer#1	960
+
+// quests/quests_alberta.txt
+//============================================================
+alberta,247,122,4	duplicate(Sailor_alberta)	Sailor#tur	709
+alberta,248,89,4	duplicate(Turtle_Scholar_alberta)	Turtle Island Scholar	121
+
+// quests/skills/merchant_skills.txt
+//============================================================
+alberta,232,106,6	duplicate(Gershaun_alberta)	Gershaun	57

+ 2 - 2
npc/pre-re/cities/izlude.txt

@@ -1,5 +1,5 @@
 //===== rAthena Script ======================================= 
-//= Izlude Town Pre-renewal
+//= Izlude Town Pre-Renewal
 //===== By: ================================================== 
 //= Daegaladh
 //===== Current Version: ===================================== 
@@ -7,7 +7,7 @@
 //===== Compatible With: ===================================== 
 //= rAthena SVN
 //===== Description: ========================================= 
-//= Izlude town NPCs
+//= Izlude town NPCs.
 //===== Additional Comments: ================================= 
 //= 1.0 First Version.
 //= 1.1 Added bullet NPC duplicates. [Euphy]

+ 2 - 2
npc/pre-re/cities/jawaii.txt

@@ -1,5 +1,5 @@
 //===== rAthena Script =======================================
-//= Jawaii Town Pre-renewal
+//= Jawaii Town Pre-Renewal
 //===== By: ================================================== 
 //= Daegaladh
 //===== Current Version: ===================================== 
@@ -7,7 +7,7 @@
 //===== Compatible With: ===================================== 
 //= rAthena SVN
 //===== Description: ========================================= 
-//= Jawaii town NPCs
+//= Jawaii town NPCs.
 //===== Additional Comments: ================================= 
 //= 1.0 First Version.
 //============================================================

+ 1 - 0
npc/pre-re/scripts_athena.conf

@@ -6,6 +6,7 @@
 npc: npc/pre-re/airports/izlude.txt
 
 // --------------------------- Cities ---------------------------
+npc: npc/pre-re/cities/alberta.txt
 npc: npc/pre-re/cities/izlude.txt
 npc: npc/pre-re/cities/jawaii.txt
 

+ 9 - 7
npc/quests/quests_alberta.txt

@@ -3,21 +3,19 @@
 //===== By: ================================================== 
 //= kobra_k88
 //===== Current Version: ===================================== 
-//= 2.4
+//= 2.5
 //===== Compatible With: ===================================== 
 //= rAthena SVN
 //===== Description: ========================================= 
+//= [Official Conversion]
 //= Dolls Quest
 //= Boy's Cap Quest
 //= Antlers Quest
 //= Bao Bao, Cresent Hairpin, Fashionbale Glasses, Heart Hairpin Quests
 //= Hat of Sun God, Sunday Hat, Mage Hat, Magician Hat Quests
-//= [Aegis conversion]
 //= Turtle Island Quests
-//= [Aegis Conversion]
 //= Alberta Boy
 //===== Additional Comments: ================================= 
-//= Fully working
 //= 1.1 Fixed Spore Doll exploit, Gramp's Tiger skin label bug
 //= 1.3 Fixed item ID 7031 -> 7013
 //= 1.4 Fixed a bug, Fixed Exploits, Optimized [Lupus]
@@ -33,6 +31,7 @@
 //= 2.2 Updated Gotan to be compliant with misc_quiest var. [L0ne_W0lf]
 //= 2.3 Updated heardgear Quest NPCs. [L0ne_W0lf]
 //= 2.4 Updated 'Doll Quest' to match AEGIS script. [Kisuka]
+//= 2.5 Moved Alberta NPC to pre-re/re paths. [Euphy]
 //============================================================ 
 
 // Doll Quest
@@ -1105,7 +1104,7 @@ alberta_in,23,104,4	script	Grandpa Turtle#tur	120,{
 	}
 }
 
-alberta,244,118,4	script	Sailor#tur	709,{
+-	script	::Sailor_alberta	-1,{
 	if (TURTLE || (MISC_QUEST & 65536)) {
 		mes "[Gotanblue]";
 		mes "Heh...";
@@ -1239,12 +1238,15 @@ tur_dun01,165,29,4	script	Sailor#tur2	709,{
 		mes "I certainly hope you've found what you were looking for. Alright, I guess there's always a time for an adventurer to return home...";
 		next;
 		mes "^3355FF* Choo Choo *^000000";
-		warp "alberta",238,112;
+		if (checkre(0))
+			warp "alberta",238,112;
+		else
+			warp "alberta",241,115;
 	}
 	close;
 }
 
-alberta,246,114,4	script	Turtle Island Scholar	121,{
+-	script	::Turtle_Scholar_alberta	-1,{
 	mes "[Jornadan Niliria]";
 	mes "Every single place";
 	mes "has its own unique";

+ 4 - 4
npc/quests/skills/merchant_skills.txt

@@ -3,16 +3,16 @@
 //===== By: ==================================================
 //= kobra_k88
 //===== Current Version: =====================================
-//= 1.7
+//= 1.8
 //===== Compatible With: =====================================
 //= rAthena SVN
 //===== Description: =========================================
-//= Quests for skills: Crazy Uproar, Change Cart, Cart
-//  Revolution
+//= Quests for skills: Crazy Uproar, Change Cart, Cart Revolution
 //===== Additional Comments: =================================
 //= 1.5 Rescripted to Aegis 10.3 stadards. [L0ne_W0lf]
 //= 1.6 Updated to latest available official file. [Masao]
 //= 1.7 Fixed JobLevel requirements. [Euphy]
+//= 1.8 Moved Alberta NPC to pre-re/re paths. [Euphy]
 //============================================================
 
 alberta,83,96,5	script	Necko	98,7,7,{
@@ -332,7 +332,7 @@ alberta,119,221,6	script	Charlron	107,{
 	close;
 }
 
-alberta,232,103,6	script	Gershaun	57,{
+-	script	::Gershaun_alberta	-1,{
 	if (BaseClass == Job_Merchant) {
 		if (getskilllv("MC_CARTREVOLUTION") == 1) {
 			mes "[Gershaun]";

+ 42 - 0
npc/re/cities/alberta.txt

@@ -0,0 +1,42 @@
+//===== rAthena Script =======================================
+//= Alberta Town Renewal
+//===== By: ==================================================
+//= Euphy
+//===== Current Version: =====================================
+//= 1.0
+//===== Compatible With: =====================================
+//= rAthena SVN
+//===== Description: =========================================
+//= Alberta town NPCs.
+//===== Additional Comments: =================================
+//= 1.0 First Version.
+//============================================================
+
+// cities/amatsu.txt
+//============================================================
+alberta,246,74,3	duplicate(Sea_Captain_amatsu)	Sea Captain#ama1	709
+
+// cities/ayothaya.txt
+//============================================================
+alberta,246,29,3	duplicate(Aibakthing_ayothaya)	Aibakthing#ayo	843
+
+// cities/gonryun.txt
+//============================================================
+alberta,246,62,3	duplicate(Kunlun_Envoy_gonryun)	Kunlun Envoy#gon	776
+
+// cities/louyang.txt
+//============================================================
+alberta,246,40,3	duplicate(Girl_louyang)	Girl#0lou	815
+
+// cities/moscovia.txt
+//============================================================
+alberta,246,51,4	duplicate(PR_Officer_moscovia)	Moscovia P.R. Officer#1	960
+
+// quests/quests_alberta.txt
+//============================================================
+alberta,244,118,4	duplicate(Sailor_alberta)	Sailor#tur	709
+alberta,246,114,4	duplicate(Turtle_Scholar_alberta)	Turtle Island Scholar	121
+
+// quests/skills/merchant_skills.txt
+//============================================================
+alberta,232,103,6	duplicate(Gershaun_alberta)	Gershaun	57

+ 7 - 2
npc/re/cities/brasilis.txt

@@ -3,7 +3,7 @@
 //===== By: ================================================== 
 //= L0ne_W0lf
 //===== Current Version: =====================================
-//= 1.2
+//= 1.3
 //===== Compatible With: ===================================== 
 //= rAthena SVN
 //===== Description: ========================================= 
@@ -13,8 +13,10 @@
 //= 1.0 First version. Transportation and Basic NPCs.
 //= 1.1 Fixed Zeny not being removed for payment. [Kisuka]
 //= 1.2 Updated dialog, added Ice Cream Maker. [L0ne_W0lf]
+//= 1.3 Moved Alberta NPC to pre-re/re paths. [Euphy]
 //============================================================ 
 
+/* Pre-Renewal coordinates: alberta,247,115,3 */
 alberta,246,82,3	script	Crewman#bra2	100,{
 	mes "[Crewman]";
 	mes "Hey, have you heard of a place called Brasilis?";
@@ -55,7 +57,10 @@ brasilis,316,57,3	script	Crewman#bra1	100,{
 		mes "[Crewman]";
 		mes "I sure do miss home.";
 		close2;
-		warp "alberta",243,82;
+		if (checkre(0))
+			warp "alberta",243,82;
+		else
+			warp "alberta",244,115;
 		end;
 	case 2:
 		mes "[Crewman]";

+ 2 - 3
npc/re/cities/izlude.txt

@@ -7,10 +7,9 @@
 //===== Compatible With: ===================================== 
 //= rAthena SVN
 //===== Description: ========================================= 
-//= Izlude Town Renewal NPC's
+//= Izlude town NPCs.
 //===== Additional Comments: ================================= 
-//= 1.0 First Version. Still missing many new NPC's and
-//= their dialogues. [Masao]
+//= 1.0 First Version. Still missing many new NPCs and their dialogues. [Masao]
 //= 1.1 Added bullet NPC duplicates. [Euphy]
 //============================================================
 

+ 1 - 1
npc/re/cities/jawaii.txt

@@ -7,7 +7,7 @@
 //===== Compatible With: =====================================
 //= rAthena SVN
 //===== Description: =========================================
-//= Jawaii Town Npcs
+//= Jawaii town NPCs.
 //===== Additional Comments: =================================
 //= 1.0 First Version. Renewal coordinates by Masao.
 //============================================================

+ 499 - 0
npc/re/merchants/refine.txt

@@ -0,0 +1,499 @@
+//===== rAthena Script ======================================= 
+//= Renewal Refining NPCs
+//===== By: ==================================================
+//= rAthena Dev Team
+//===== Current Version: =====================================
+//= 1.0
+//===== Compatible With: =====================================
+//= rAthena SVN
+//===== Description: =========================================
+//= Renewal-specific refining NPCs and material merchants.
+//===== Additional Comments: =================================
+//= 1.0 Moved some scripts to Renewal file, optimized "Austry" NPC. [Euphy]
+//============================================================
+
+// +11 and above Refiners
+//============================================================
+prt_in,90,72,5	script	Bestry#prt	826,{
+	callfunc "refinenew","Bestry",0,0;
+	end;
+}
+morocc_in,64,41,5	script	Bestry#moc	826,{
+	callfunc "refinenew","Bestry",0,0;
+	end;
+}
+payon_in01,18,132,3	script	Bestry#pay	826,{
+	callfunc "refinenew","Bestry",0,0;
+	end;
+}
+
+//============================================================
+// +11 and above Refiner Function
+//============================================================
+//= To allow auto safe refining/multiple refining set the
+//= second argument to '1' in the function call.
+//= If you enable this function, be sure to edit the value of
+//= .@safe to the max safe refine in refine_db.txt as well.
+//=
+//= The official script uses a command which seems to generate a
+//= random result upon refining: success, downgrade, or failure.
+//= To enable that feature, set the third argument to '1' in the
+//= function call.  Otherwise, the chance in refine_db.txt is used.
+//============================================================
+function	script	refinenew	{
+	mes "["+ getarg(0) +"]";
+	mes "I am the best Blacksmith ever!";
+	mes "I don't work with normal, boring items.";
+	mes "But only with items that are level 10 or higher!";
+	next;
+	mes "["+ getarg(0) +"]";
+	mes "Anyway, you may use my services if your item is lv 10 or higher.";
+	mes "What do you want to have refined?";
+	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 "[" + getarg(0) + "]";
+		mes "You're not wearing";
+		mes "anything there that";
+		mes "I can refine.";
+		emotion e_an;
+		close;
+	}
+	//Check if the item is refinable...
+	if(!getequipisenableref(.@part)) {
+		mes "[" + getarg(0) + "]";
+		mes "I don't think I can";
+		mes "refine this item at all...";
+		close;
+	}
+	//Check if the item is identified... (Don't know why this is in here... but kept it anyway)
+	if(!getequipisidentify(.@part)) {
+		mes "[" + getarg(0) + "]";
+		mes "You can't refine this";
+		mes "if you haven't appraised";
+		mes "it first. Make sure your";
+		mes "stuff is identified before";
+		mes "I can refine it.";
+		close;
+	}
+	//Check to see if the items is at least +10
+	if(getequiprefinerycnt(.@part) < 10) {
+		mes "["+ getarg(0) +"]";
+		mes "I said I don't work with Equipment under lv. 10.";
+		close;
+	}
+	if(getequiprefinerycnt(.@part) >= 20) {
+		mes "["+ getarg(0) +"]";
+		mes "I can't refine this";
+		mes "any more. This is as";
+		mes "refined as it gets!";
+		close;
+	}
+	set .@refineitemid, getequipid(.@part); // save id of the item
+	set .@refinerycnt, getequiprefinerycnt(.@part); //save refinery count
+	if ((getequipweaponlv(.@part) >= 1) && (getequipweaponlv(.@part) <= 4)) {
+		set .@material,6224;
+		set .@price,100000;
+		set .@safe,10;
+		mes "["+ getarg(0) +"]";
+		mes "Hmm a weapon, is that ok?";
+		mes "If you want to refine this weapon,";
+		mes "I will need 1 ^003366Bradium^000000 and 100,000 zeny.";
+		mes "Are you sure you want to continue?";
+	} else {
+		set .@material,6223;
+		set .@price,100000;
+		set .@safe,10;
+		mes "["+ getarg(0) +"]";
+		mes "Hmm an armor, is that ok?";
+		mes "If you want to refine this armor,";
+		mes "I will need 1 ^003366Carnium^000000 and 100,000 zeny.";
+		mes "Are you sure you want to continue?";
+	}
+	next;
+	if(select("Yes:No") == 2){
+		mes "["+ getarg(0) +"]";
+		mes "Well, no challenge is one way...";
+		mes "No risk... that could be wise.";
+		close;
+	}
+	if(getarg(1) != 1) {
+		if ((getequipweaponlv(.@part) >= 1) && (getequipweaponlv(.@part) <= 4)) {
+			mes "["+ getarg(0) +"]";
+			mes "This weapon already has been refined serveral times.";
+			mes "It could be destroyed if you try more.";
+			mes "It won't break 100%, but is has a small chance.";
+			next;
+			mes "["+ getarg(0) +"]";
+			mes "You could have the upgrade level of the weapon decreased,";
+			mes "or if it breaks, you will lose ^FF0000any cards^000000 or special properties added to it.";
+		} else {
+			mes "["+ getarg(0) +"]";
+			mes "This armor already has been refined serveral times.";
+			mes "It could be destroyed if you try more.";
+			mes "It won't break 100%, but is has a small chance.";
+			next;
+			mes "["+ getarg(0) +"]";
+			mes "You could have the upgrade level of the armor decreased,";
+			mes "or if it breaks, you will lose ^FF0000any cards^000000 or special properties added to it.";
+		}
+		next;
+		mes "["+ getarg(0) +"]";
+		mes "Do you want me to refine it?";
+		mes "I think I gave you enough warnings.";
+		next;
+		if(select("Yes.:No.") == 2) {
+			mes "["+ getarg(0) +"]";
+			mes "Well, no challenge is one way..";
+			mes "No risk.. that could be wise.";
+			close;
+		}
+		if(countitem(.@material) < 1 || Zeny < .@price) {
+			mes "["+ getarg(0) +"]";
+			mes "Hm, it seems you don't have enough materials or money.";
+			mes "Please check it out.";
+			close;
+		}
+		set Zeny,Zeny - .@price;
+		delitem .@material,1;
+		if(getequipisequiped(.@part) == 0) { // hacker has removed the item (not changed, why?)
+			mes "[" + getarg(0) + "]";
+			mes "Look here... you don't have any items on...";
+			close;
+		}
+		if(getequiprefinerycnt(.@part) != .@refinerycnt || getequipid(.@part) != .@refineitemid) { // hacker has changed the item
+			mes "[" + getarg(0) + "]";
+			emotion e_an;
+			mes "Wait a second...";
+			mes "Do you think I'm stupid?!";
+			mes "You switched the item while I wasn't looking! Get out of here!";
+			close;
+		}
+		if(getarg(2) == 1){
+			set .@rand,rand(1,3);
+			if (.@rand == 1) {
+				mes "Clang! Clang! Clang! Clang!";
+				successrefitem .@part;
+				next;
+				emotion e_no1;
+				mes "["+ getarg(0) +"]";
+				mes "Good! Succes!!!";
+				mes "I am the best Blacksmith.";
+				close;
+			}
+			if (.@rand == 2) {
+				mes "["+ getarg(0) +"]";
+				mes "Clang! Clang! Clang! Clang!";
+				downrefitem .@part;
+				next;
+				emotion (!rand(5))?e_cash:e_omg;
+				mes "["+ getarg(0) +"]";
+				mes "Ahhh!!!";
+				next;
+				mes "["+ getarg(0) +"]";
+				mes "Oh my!";
+				mes "The upgrade level has dropped...";
+				mes "There could've been made an mistake even though I am the best ever.";
+				mes "It was out of my hands.";
+				next;
+				mes "["+ getarg(0) +"]";
+				mes "I will do a better job next time! Don't worry!";
+				close;
+			}
+			mes "["+ getarg(0) +"]";
+			mes "Clang! Clang! Clang!";
+			failedrefitem .@part;
+			next;
+			emotion (!rand(5))?e_cash:e_omg;
+			mes "["+ getarg(0) +"]";
+			mes "Hmmm!";
+			next;
+			mes "["+ getarg(0) +"]";
+			mes "Oh my! I've failed to refine stuff...";
+			mes "I didn't mean it!";
+			mes "There could've been made an mistake even though I am the best ever.";
+			mes "It was out of my hands.";
+			next;
+			mes "["+ getarg(0) +"]";
+			mes "I will do a better job next time! Don't worry!";
+			close;
+		}
+		set .@rand,rand(100);
+		if (getequippercentrefinery(.@part) > .@rand) {
+			mes "Clang! Clang! Clang! Clang!";
+			successrefitem .@part;
+			next;
+			emotion e_no1;
+			mes "["+ getarg(0) +"]";
+			mes "Good! Succes!!!";
+			mes "I am the best Blacksmith.";
+			close;
+		}
+		if (getequippercentrefinery(.@part) < .@rand) {
+			mes "["+ getarg(0) +"]";
+			mes "Clang! Clang! Clang! Clang!";
+			downrefitem .@part;
+			next;
+			emotion (!rand(5))?e_cash:e_omg;
+			mes "["+ getarg(0) +"]";
+			mes "Ahhh!!!";
+			next;
+			mes "["+ getarg(0) +"]";
+			mes "Oh my!";
+			mes "The upgrade level has dropped...";
+			mes "There could've been made an mistake even though I am the best ever.";
+			mes "It was out of my hands.";
+			next;
+			mes "["+ getarg(0) +"]";
+			mes "I will do a better job next time! Don't worry!";
+			close;
+		}
+		mes "["+ getarg(0) +"]";
+		mes "Clang! Clang! Clang!";
+		failedrefitem .@part;
+		next;
+		emotion (!rand(5))?e_cash:e_omg;
+		mes "["+ getarg(0) +"]";
+		mes "Hmmm!";
+		next;
+		mes "["+ getarg(0) +"]";
+		mes "Oh my! I've failed to refine stuff...";
+		mes "I didn't mean it!";
+		mes "There could've been made an mistake even though I am the best ever.";
+		mes "It was out of my hands.";
+		next;
+		mes "["+ getarg(0) +"]";
+		mes "I will do a better job next time! Don't worry!";
+		close;
+	}
+// New +11 and above Refining Functions ========================
+	if(getequiprefinerycnt(.@part) < .@safe) {
+		mes "[" + getarg(0) + "]";
+		mes "I can refine this to the safe limit or a desired number of times. It's your choice.";
+		next;
+		set .@menu2,select("To the safe limit, please.","I'll decide how many times.","I've changed my mind...");
+	} else
+		set .@menu2,2;
+	switch(.@menu2){
+	case 1: 
+		set .@refinecnt,.@safe - getequiprefinerycnt(.@part);
+		break;
+	case 2:
+		next;
+		mes "[" + getarg(0) + "]";
+		mes "How many times would you like me to refine your item?";
+		next;
+		input .@refinecnt;
+		set .@refinecheck,.@refinecnt + getequiprefinerycnt(.@part);
+		if (.@refinecnt < 1 || .@refinecheck > 10) {
+			mes "[" + getarg(0) + "]";
+			mes "I can't refine this item that many times.";
+			close;
+		}
+		if(.@refinecheck > .@safe) {
+			set .@refinecheck,.@refinecheck - .@safe;
+			mes "[" + getarg(0) + "]";
+			mes "This will try to refine the equipment " + .@refinecheck + " times past the safe limit. Your equipment may be destroyed... is that ok?";
+			next;
+			if(select("Yes...","No...") == 2){
+				mes "[" + getarg(0) + "]";
+				mes "You said so... So be it.";
+				close;
+			}
+		}
+		break;
+	case 3:
+		next;
+		mes "[" + getarg(0) + "]";
+		mes "You said so... So be it.";
+		close;
+	}
+	set .@fullprice,.@price * .@refinecnt;
+	mes "[" + getarg(0) + "]";
+	mes "That will cost you " + .@refinecnt + " " + getitemname(.@material) + " and " + .@fullprice + " Zeny. Is that ok?";
+	next;
+	if(select("Yes","No...") == 2){
+		mes "[" + getarg(0) + "]";
+		mes "You said so... So be it.";
+		close;
+	}
+	if(countitem(.@material) < .@refinecnt || Zeny < .@fullprice) {
+		mes "[" + getarg(0) + "]";
+		mes "Is that all you got? Unfortunately I can't work for you at a lower price. Try putting yourself in my shoes.";
+		close;
+	}
+	set Zeny,Zeny - .@fullprice;
+	delitem .@material,.@refinecnt;
+	while(.@refinecnt){
+		if (getequipisequiped(.@part) == 0) {
+			mes "[" + getarg(0) + "]";
+			mes "Look here... you don't have any items on...";
+			close;
+		}
+		if (getequipid(.@part) != .@refineitemid || (.@menu2 == 1 && getequippercentrefinery(.@part) < 100)) {
+			mes "[" + getarg(0) + "]";
+			mes "Clang... No, but did you imagine I could be so stupid?!";
+			mes "You changed it...";
+			mes "Get out before I stun you with my Hammer!!";
+			close;
+		}
+		if(getarg(2) == 1){
+			set .@rand,rand(1,3);
+			if (.@rand == 1) {
+				mes "["+ getarg(0) +"]";
+				mes "Clang! Clang! Clang! Clang!";
+				successrefitem .@part;
+				next;
+				emotion e_no1;
+				mes "["+ getarg(0) +"]";
+				mes "Good! Succes!!!";
+				mes "I am the best Blacksmith.";
+				close;
+			}
+			if (.@rand == 2) {
+				mes "["+ getarg(0) +"]";
+				mes "Clang! Clang! Clang! Clang!";
+				downrefitem .@part;
+				next;
+				emotion (!rand(5))?e_cash:e_omg;
+				mes "["+ getarg(0) +"]";
+				mes "Ahhh!!!";
+				next;
+				mes "["+ getarg(0) +"]";
+				mes "Oh my!";
+				mes "The upgrade level has dropped...";
+				mes "There could've been made an mistake even though I am the best ever.";
+				mes "It was out of my hands.";
+				next;
+				mes "["+ getarg(0) +"]";
+				mes "I will do a better job next time! Don't worry!";
+				close;
+			}
+			mes "["+ getarg(0) +"]";
+			mes "Clang! Clang! Clang!";
+			failedrefitem .@part;
+			next;
+			emotion (!rand(5))?e_cash:e_omg;
+			mes "["+ getarg(0) +"]";
+			mes "Hmmm!";
+			next;
+			mes "["+ getarg(0) +"]";
+			mes "Oh my! I've failed to refine stuff...";
+			mes "I didn't mean it!";
+			mes "There could've been made an mistake even though I am the best ever.";
+			mes "It was out of my hands.";
+			next;
+			mes "["+ getarg(0) +"]";
+			mes "I will do a better job next time! Don't worry!";
+			close;
+		}
+		set .@rand,rand(100);
+		if (getequippercentrefinery(.@part) > .@rand) {
+			mes "Clang! Clang! Clang! Clang!";
+			successrefitem .@part;
+			next;
+			emotion e_no1;
+			mes "["+ getarg(0) +"]";
+			mes "Good! Succes!!!";
+			mes "I am the best Blacksmith.";
+			close;
+		}
+		if (getequippercentrefinery(.@part) < .@rand) {
+			mes "["+ getarg(0) +"]";
+			mes "Clang! Clang! Clang! Clang!";
+			downrefitem .@part;
+			next;
+			emotion (!rand(5))?e_cash:e_omg;
+			mes "["+ getarg(0) +"]";
+			mes "Ahhh!!!";
+			next;
+			mes "["+ getarg(0) +"]";
+			mes "Oh my!";
+			mes "The upgrade level has dropped...";
+			mes "There could've been made an mistake even though I am the best ever.";
+			mes "It was out of my hands.";
+			next;
+			mes "["+ getarg(0) +"]";
+			mes "I will do a better job next time! Don't worry!";
+			close;
+		}
+		mes "["+ getarg(0) +"]";
+		mes "Clang! Clang! Clang!";
+		failedrefitem .@part;
+		next;
+		emotion (!rand(5))?e_cash:e_omg;
+		mes "["+ getarg(0) +"]";
+		mes "Hmmm!";
+		next;
+		mes "["+ getarg(0) +"]";
+		mes "Oh my! I've failed to refine stuff...";
+		mes "I didn't mean it!";
+		mes "There could've been made an mistake even though I am the best ever.";
+		mes "It was out of my hands.";
+		next;
+		mes "["+ getarg(0) +"]";
+		mes "I will do a better job next time! Don't worry!";
+		close;
+	}
+	mes "[" + getarg(0) + "]";
+	mes "All finished... Come again soon.";
+	close;
+}
+
+// Ori/Elu to Carnium/Bradium Refiners
+//============================================================
+-	script	Austry#ref	-1,{
+	mes "[Austry]";
+	mes "If you bring me 3";
+	mes "Oridecon or Elunium";
+	mes "I can exchange them for";
+	mes "Bradium or Carnium.";
+	mes "Just give me 50,000z.";
+	next;
+	switch(select("Oridecon to Bradium.:Elunium to Carnium.:Purified Bradium to Carnium.:No thanks.")) {
+	case 1:
+		setarray .@i[0],984,3,6224;  //Oridecon -> Bradium
+		break;
+	case 2:
+		setarray .@i[0],985,3,6223;  //Elunium -> Carnium
+		break;
+	case 3:
+		setarray .@i[0],6090,1,6223; //Purified_Bradium -> Carnium
+		break;
+	case 4:
+		mes "[Austry]";
+		mes "Hmm...";
+		close;
+	}
+	if (countitem(.@i[0]) >= .@i[1] && Zeny >= 50000) {
+		delitem .@i[0],.@i[1];
+		set Zeny, Zeny - 50000;
+		getitem .@i[2],1;
+		mes "[Austry]";
+		if (.@i[0] == 6090) {
+			mes "Refining with Purified Bradium";
+			mes "is a little expensive. I can";
+			mes "trade it for some Carnium.";
+		} else
+			mes "Ok! Here is your "+getitemname(.@i[2])+".";
+		mes "Take it and use it well.";
+		close;
+	}
+	mes "[Austry]";
+	mes "You better not be trying";
+	mes "to cheat me because you";
+	mes "don't have enough zeny";
+	mes "or "+getitemname(.@i[0])+".";
+	close;
+}
+prt_in,85,71,5	duplicate(Austry#ref)	Austry#prt	826
+payon_in01,14,125,5	duplicate(Austry#ref)	Austry#pay	826
+morocc_in,60,38,5	duplicate(Austry#ref)	Austry#moc	826

+ 28 - 7
npc/re/merchants/shops.txt

@@ -3,7 +3,7 @@
 //===== By: ================================================== 
 //= rAthena Dev Team
 //===== Current Version: ===================================== 
-//= 1.1
+//= 1.2
 //===== Compatible With: ===================================== 
 //= rAthena SVN
 //===== Description: ========================================= 
@@ -11,13 +11,26 @@
 //===== Additional Comments: ================================= 
 //= 1.0 Moved some merchants to a separate renewal file. [Kenpachi]
 //= 1.1 Added Dicastes merchants. [Joseph]
+//= 1.2 Moved more shops to Renewal file. [Euphy]
 //============================================================ 
 
+//=======================================================
+// Comodo
+//=======================================================
+comodo,106,213,5	shop	Tropic Fruit Dealer	724,6258:-1
+comodo,196,162,3	shop	Harive#candy	479,11513:-1,6144:-1
+
 //=======================================================
 // Einbroch
 //=======================================================
 einbroch,122,250,4	shop	Black Marketeer#ein	49,2139:-1,2800:-1,2801:-1,2802:-1,2803:-1,2804:-1,2805:-1,2806:-1,2807:-1,18000:-1,18001:-1,18002:-1,18003:-1,18004:-1,12392:-1,12393:-1,12394:-1,6145:-1,6146:-1,6147:-1,6186:-1,2808:-1
 
+//=======================================================
+// El Dicastes
+//=======================================================
+dic_in01,238,107,5	shop	Peddler#dic	900,601:-1,602:-1,611:-1,610:-1
+dicastes01,207,200,6	shop	Points Merchant#dic	66,6360:-1,6361:-1,6362:-1,6363:-1
+
 //=======================================================
 // Izlude
 //=======================================================
@@ -26,9 +39,15 @@ izlude,124,165,4	shop	Fruit Gardener#iz	53,512:-1,513:-1,515:-1,516:-1
 izlude,95,145,6	shop	Vendor from Milk Ranch#i	90,519:-1
 izlude,174,164,4	shop	Pet Groomer#iz	124,537:-1,643:-1,10013:-1,10014:-1,554:-1,6113:-1,6114:-1,6115:-1
 
+//=======================================================
+// Juno
+//=======================================================
+s_atelier,114,117,1	shop	Part-Timer#sc_yuno	92,6123:-1,6120:-1
+
 //=======================================================
 // Lighthalzen
 //=======================================================
+lighthalzen,337,240,4	shop	Trap Specialist#lhz	66,7940:-1,12341:-1
 lhz_in03,181,17,4	shop	Black Marketeer#lhz	49,2139:-1,2800:-1,2801:-1,2802:-1,2803:-1,2804:-1,2805:-1,2806:-1,2807:-1,18000:-1,18001:-1,18002:-1,18003:-1,18004:-1,12392:-1,12393:-1,12394:-1,6145:-1,6146:-1,6147:-1,6186:-1,2808:-1
 s_atelier,15,65,5	shop	Part-Timer#sc_lgt	89,6123:-1,6120:-1
 
@@ -38,20 +57,22 @@ s_atelier,15,65,5	shop	Part-Timer#sc_lgt	89,6123:-1,6120:-1
 mid_camp,129,284,4	shop	Trap Specialist#mid	66,7940:-1,12341:-1
 mid_camp,184,263,4	shop	Black Marketeer#mid	49,2139:-1,2800:-1,2801:-1,2802:-1,2803:-1,2804:-1,2805:-1,2806:-1,2807:-1,18000:-1,18001:-1,18002:-1,18003:-1,18004:-1,12392:-1,12393:-1,12394:-1,6145:-1,6146:-1,6147:-1,6186:-1,2808:-1
 
+//=======================================================
+// Payon
+//=======================================================
+payon,123,109,4	shop	Trap Specialist#pay	66,7940:-1,12341:-1
+
 //=======================================================
 // Prontera
 //=======================================================
+//prontera,104,88,5	shop	Stuff Gimme	880,616:-1
+prt_in,109,68,4	shop	Trap Specialist#prt	66,7940:-1,12341:-1
 prt_in,175,137,4	shop	Black Marketeer#prt	49,2139:-1,2800:-1,2801:-1,2802:-1,2803:-1,2804:-1,2805:-1,2806:-1,2807:-1,18000:-1,18001:-1,18002:-1,18003:-1,18004:-1,12392:-1,12393:-1,12394:-1,6145:-1,6146:-1,6147:-1,6186:-1,2808:-1
 s_atelier,17,110,1	shop	Part-Timer#sc_prt	67,6123:-1,6120:-1
 
 //=======================================================
 // Rachel
 //=======================================================
+ra_in01,263,281,4	shop	Trap Specialist#ra	66,7940:-1,12341:-1
 ra_in01,257,266,4	shop	Black Marketeer#ra	49,2139:-1,2800:-1,2801:-1,2802:-1,2803:-1,2804:-1,2805:-1,2806:-1,2807:-1,18000:-1,18001:-1,18002:-1,18003:-1,18004:-1,12392:-1,12393:-1,12394:-1,6145:-1,6146:-1,6147:-1,6186:-1,2808:-1
 s_atelier,137,60,3	shop	Part-Timer#sc_ra	70,6123:-1,6120:-1
-
-//=======================================================
-// Dicastes
-//=======================================================
-dic_in01,238,107,5	shop	Peddler#dic	900,601:-1,602:-1,611:-1,610:-1
-dicastes01,207,200,6	shop	Points Merchant#dic	66,6360:-1,6361:-1,6362:-1,6363:-1

+ 2 - 0
npc/re/scripts_athena.conf

@@ -6,6 +6,7 @@
 npc: npc/re/airports/izlude.txt
 
 // --------------------------- Cities ---------------------------
+npc: npc/re/cities/alberta.txt
 npc: npc/re/cities/brasilis.txt
 npc: npc/re/cities/dewata.txt
 npc: npc/re/cities/dicastes.txt
@@ -47,6 +48,7 @@ npc: npc/re/merchants/3rd_trader.txt
 npc: npc/re/merchants/diamond.txt
 npc: npc/re/merchants/flute.txt
 npc: npc/re/merchants/inn.txt
+npc: npc/re/merchants/refine.txt
 npc: npc/re/merchants/renters.txt
 npc: npc/re/merchants/shops.txt