//================= Hercules Script ======================================= //= _ _ _ //= | | | | | | //= | |_| | ___ _ __ ___ _ _| | ___ ___ //= | _ |/ _ \ '__/ __| | | | |/ _ \/ __| //= | | | | __/ | | (__| |_| | | __/\__ \ //= \_| |_/\___|_| \___|\__,_|_|\___||___/ //================= License =============================================== //= This file is part of Hercules. //= http://herc.ws - http://github.com/HerculesWS/Hercules //= //= Copyright (C) 2012-2015 Hercules Dev Team //= Copyright (C) Euphy //= //= Hercules is free software: you can redistribute it and/or modify //= it under the terms of the GNU General Public License as published by //= the Free Software Foundation, either version 3 of the License, or //= (at your option) any later version. //= //= This program is distributed in the hope that it will be useful, //= but WITHOUT ANY WARRANTY; without even the implied warranty of //= MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the //= GNU General Public License for more details. //= //= You should have received a copy of the GNU General Public License //= along with this program. If not, see . //========================================================================= //= Ticket Refiner //================= Description =========================================== //= Refiner that uses +5~9/+11 refine tickets to refine equipment with no //= chance of failure. //================= Additional Comments =================================== //= NOTE: This NPC is currently disabled on official servers. //================= Current Version ======================================= //= 1.0 //========================================================================= prontera,184,177,6 script Refine Master 4_M_REPAIR,{ disable_items; if (countitem(Guarantee_Weapon_11Up) || countitem(Guarantee_Weapon_9Up) || countitem(Guarantee_Weapon_8Up) || countitem(Guarantee_Weapon_7Up) || countitem(Guarantee_Weapon_6Up) || countitem(Guarantee_Weapon_5Up)) .@bWeaponUp = 1; if (countitem(Guarantee_Armor_11Up) || countitem(Guarantee_Armor_9Up) || countitem(Guarantee_Armor_8Up) || countitem(Guarantee_Armor_7Up) || countitem(Guarantee_Armor_6Up) || countitem(Guarantee_Armor_5Up)) .@bArmorUp = 1; if (!.@bWeaponUp && !.@bArmorUp) { mes "[Refine Master]"; mes "Hello!"; mes "What's up?"; mes "I'm a specialist"; mes "for refining items,"; mes "but I don't work anymore."; next; switch(select("I'll go on my way.", "Hmm... this makes me curious.")) { case 1: mes "[Refine Master]"; mes "Take care, adventurer."; close; case 2: mes "[Refine Master]"; mes "Actully, I sometimes provide refine services for adventurers with a ^006400Refine Ticket^000000..."; mes "Bye bye~!"; close; } } emotion e_gasp; mes "[Refine Master]"; mes "Greetings!"; mes "I can refine an item up to the ^006400same level as your ticket^000000."; mes "You don't have to worry! There's no chance of breaking your item."; next; if(select("I'll come back later.", "Refine item with ticket.") == 1) { mes "[Refine Master]"; mes "Okay."; mes "You can come again later."; close; } mes "[Refine Master]"; mes "Which equipment would you like to refine?"; next; setarray .@position$[1],"Head upper","Armor","Left hand","Right hand","Robe","Shoes","Accessory 1","Accessory 2","Head middle","Head lower"; .@menu$ = ""; for(.@i = 1; .@i<=10; ++.@i) .@menu$ += ((getequipisequiped(.@i))?getequipname(.@i):.@position$[.@i]+"- [Empty]")+":"; .@part = select(.@menu$); if (!getequipisequiped(.@part)) { mes "[Refine Master]"; mes "You have to equip the item you want to refine."; close; } if (!getequipisenableref(.@part)) { emotion e_otl; mes "[Refine Master]"; mes "Oh, I'm sorry."; mes "This item is impossible to refine."; close; } switch(getequipweaponlv(.@part)) { default: case 0: setarray .@tickets[0],6457,6235,6234,6233,6232,6239; setarray .@levels[0],5,6,7,8,9,11; .@type$ = "Armor"; .@check = .@bArmorUp; break; case 1: case 2: case 3: case 4: setarray .@tickets[0],6456,6231,6230,6229,6228,6238; setarray .@levels[0],5,6,7,8,9,11; .@type$ = "Weapon"; .@check = .@bWeaponUp; break; } if (!.@check) { emotion e_dots; mes "[Refine Master]"; mes "If you want to refine this ^006400"+.@type$+"^000000, please come along with ^006400"+.@type$+" Refine Ticket^000000."; mes "See you later!"; close; } mes "[Refine Master]"; mes "Please choose which ^006400"+.@type$+" Refine Ticket^000000 you want to use."; next; .@menu$ = ""; for(.@i = 0; .@i= .@ticket_lv) { emotion e_swt2; mes "[Refine Master]"; mes "^8B4513This item is already refined as much as your deed.^000000"; mes "Please come along with an item refined less than your ticket."; close; } mes "[Refine Master]"; mes "I'm going to refine ^006400"+getequipname(.@part)+"^8B4513 up to the +"+.@ticket_lv+" level^000000 with ^006400"+getitemname(.@ticket_id)+"^000000."; mes "May I proceed?"; next; if(select("No.", "Yes.") == 1) { emotion e_dots; mes "[Refine Master]"; mes "Oh, you changed your mind."; mes "Ok."; mes "You can come back later."; close; } mes "[Refine Master]"; mes "Great."; mes "As you wish!"; mes "I have my own special way to refine..."; mes ".......ka boom!"; specialeffect EF_SUI_EXPLOSION; if (countitem(.@ticket_id)) delitem .@ticket_id,1; else { next; mes "Error!"; mes "Please report this."; close; } for(.@i = getequiprefinerycnt(.@part); .@i<.@ticket_lv; ++.@i) successrefitem .@part; next; emotion e_ho; mes "[Refine Master]"; mes "Alright, here it is~"; mes "Well, ^0000FF"+strcharinfo(PC_NAME)+"^000000!"; mes "Congratulations on your shining "+.@type$+"."; mes "You look GREAT!"; mes "Farewell~!"; close; }