> 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
This commit is contained in:
euphyy 2012-12-24 17:30:14 +00:00
parent 41c77b8fa5
commit f54be649cd
21 changed files with 713 additions and 668 deletions

View File

@ -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]";

View File

@ -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]";

View File

@ -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]";

View File

@ -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 Typo<EFBFBD>s [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<EFBFBD> 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]
//============================================================

View File

@ -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;
}

View File

@ -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);

View File

@ -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;
}
}

View File

@ -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
//=======================================================

View File

@ -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

View File

@ -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]

View File

@ -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.
//============================================================

View File

@ -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

View File

@ -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";

View File

@ -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
npc/re/cities/alberta.txt Normal file
View File

@ -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

View File

@ -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]";

View File

@ -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]
//============================================================

View File

@ -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
npc/re/merchants/refine.txt Normal file
View File

@ -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

View File

@ -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

View File

@ -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