Commit
…lt.) * This NPC uses the cash shop HD ores to upgrade your weapon or gear up to +10 when your current gear or weapon is already +7 without breaking it but downgrading it. - Moved Malaya Port NPC's to re folder and updated the Malaya Port warps. - Fixed Bug where players weren't able to finish the Guardian of Yggdrasil Quest and didn't get their reward. - Fixed that players weren't able to start the "Ring of the wise king" and "Finding a Fairy" quest using the Cat Hand Agent warper inside Eden Group Headquarters. Signed-off-by: Masao <masao@gmx.ch>
- Loading branch information
There are no files selected for viewing
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,211 @@ | ||
//===== Hercules Script ====================================== | ||
//= HD Refiner | ||
//===== By: ================================================== | ||
//= Masao | ||
//===== Current Version: ===================================== | ||
//= 1.0 | ||
//===== Compatible With: ===================================== | ||
//= Hercules | ||
//===== Description: ========================================= | ||
//= Dwarf Mighty Hammer is an refining NPC which allows you | ||
//= to upgrade your weapon or gear up to +10 without breaking | ||
//= the weapon or gear but instead downgrading it by -1 using | ||
//= the HD Ores which are usually only obtainable through the | ||
//= *RO cashshops. | ||
//= | ||
//= Even at +0 refine, if you use the HD stones, the weapon | ||
//= or gear will not break but stay at +0 if it fails. | ||
//===== Additional Comments: ================================= | ||
//= 1.0 First Version, dialogue and coordinations are custom. | ||
//============================================================ | ||
|
||
// Dwarf Mighty Hammer Locations (Custom) | ||
//============================================================ | ||
prontera,145,170,6 script Dwarf Mighty Hammer#prt 826,{ | ||
callfunc "refinehd","Dwarf Mighty Hammer"; | ||
end; | ||
} | ||
moc_para01,175,115,5 script Dwarf Mighty Hammer#moc 826,{ | ||
callfunc "refinehd","Dwarf Mighty Hammer"; | ||
end; | ||
} | ||
payon,140,175,6 script Dwarf Mighty Hammer#pay 826,{ | ||
callfunc "refinehd","Dwarf Mighty Hammer"; | ||
end; | ||
} | ||
|
||
//============================================================ | ||
// +7 to +10 Refiner Function | ||
//============================================================ | ||
function script refinehd { | ||
disable_items; | ||
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 7 or higher!"; | ||
next; | ||
mes "["+ getarg(0) +"]"; | ||
mes "Anyway, you may use my services if your item is lv 7 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 item is at least +7 | ||
if(getequiprefinerycnt(.@part) < 7) { | ||
mes "["+ getarg(0) +"]"; | ||
mes "I said I don't work with Equipment under lv. 7."; | ||
close; | ||
} | ||
if(getequiprefinerycnt(.@part) >= 10) { | ||
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,6240; | ||
mes "["+ getarg(0) +"]"; | ||
mes "Hmm a weapon, is that ok?"; | ||
mes "If you want to refine this weapon,"; | ||
mes "I will need 1 ^003366Purified Oridecon^000000."; | ||
mes "Are you sure you want to continue?"; | ||
} else { | ||
set .@material,6241; | ||
mes "["+ getarg(0) +"]"; | ||
mes "Hmm an armor, is that ok?"; | ||
mes "If you want to refine this armor,"; | ||
mes "I will need 1 ^003366Purified Elunium^000000."; | ||
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; | ||
} | ||
set .@continue,1; | ||
while(.@continue == 1){ | ||
if(getequiprefinerycnt(.@part) >= 10) { | ||
mes "["+ getarg(0) +"]"; | ||
mes "I can't refine this"; | ||
mes "any more. This is as"; | ||
mes "refined as it gets!"; | ||
close; | ||
} | ||
if ((getequipweaponlv(.@part) >= 1) && (getequipweaponlv(.@part) <= 4)) { | ||
mes "["+ getarg(0) +"]"; | ||
mes "This weapon already has been refined serveral times."; | ||
mes "You could have the upgrade level of the weapon decreased."; | ||
} else { | ||
mes "["+ getarg(0) +"]"; | ||
mes "This armor already has been refined serveral times."; | ||
mes "You could have the upgrade level of the armor decreased."; | ||
} | ||
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) { | ||
mes "["+ getarg(0) +"]"; | ||
mes "Hm, it seems you don't have enough materials."; | ||
mes "Please check it out."; | ||
close; | ||
} | ||
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; | ||
} | ||
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."; | ||
next; | ||
mes "["+ getarg(0) +"]"; | ||
mes "Ould you like to continue?"; | ||
if(select("No:Yes") == 1){ | ||
mes "[" + getarg(0) + "]"; | ||
mes "All finished... Come again soon."; | ||
close; | ||
} | ||
next; | ||
} | ||
if (getequippercentrefinery(.@part) < .@rand) { | ||
This comment has been minimized.
Sorry, something went wrong.
This comment has been minimized.
Sorry, something went wrong.
Masao87
Author
Contributor
|
||
mes "["+ getarg(0) +"]"; | ||
mes "Clang! Clang! Clang! Clang!"; | ||
if(getequiprefinerycnt(.@part) >= 1) { | ||
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!"; | ||
next; | ||
mes "["+ getarg(0) +"]"; | ||
mes "Ould you like to continue?"; | ||
This comment has been minimized.
Sorry, something went wrong.
This comment has been minimized.
Sorry, something went wrong.
Masao87
Author
Contributor
|
||
if(select("No:Yes") == 1){ | ||
mes "[" + getarg(0) + "]"; | ||
mes "All finished... Come again soon."; | ||
close; | ||
} | ||
next; | ||
} | ||
} | ||
} |
1 comment
on commit b17e2b7
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Official HD Refiners script: http://svn.code.sf.net/p/rathena/svn/trunk/npc/re/merchants/hd_refiner.txt
Shouldn't there be some code handling "getequippercentrefinery(.@part) == .@rand"?