Credits to the owner of the script i forgot who, please anyone check this, im satisfied with it but im not sure about this as i dont really know scripting but i do understand a bit, what my concern is, would my changes will bug out the refine and do something else or something..
prontera,139,173,5 script Refine Master 851,{
disable_items;
if (countitem(6993))
set .@bWeaponUp,1;
if (countitem(6993))
set .@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 "Actually, I sometimes provide refine services for adventurers with a ^006400Refine Ticket^000000...";
mes "Bye bye~!";
close;
}
}
emotion ET_SURPRISE;
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";
setarray .@indices[1], EQI_HEAD_TOP, EQI_ARMOR, EQI_HAND_L, EQI_HAND_R, EQI_GARMENT, EQI_SHOES, EQI_ACC_L, EQI_ACC_R, EQI_HEAD_MID, EQI_HEAD_LOW;
for(set .@i,1; .@i<=20; set .@i,.@i+1)
set .@menu$, .@menu$+((getequipisequiped(.@indices[.@i]))?getequipname(.@indices[.@i]):.@position$[.@i]+"- [Empty]")+":";
set .@part, .@indices[ select(.@menu$) ];
if (!getequipisequiped(.@part)) {
mes "[Refine Master]";
mes "You have to equip the item you want to refine.";
close;
}
if (!getequipisenableref(.@part)) {
emotion ET_OTL;
mes "[Refine Master]";
mes "Oh, I'm sorry.";
mes "This item is impossible to refine.";
close;
}
.@refineitemid = getequipid(.@part); // save id of the item
.@refinerycnt = getequiprefinerycnt(.@part); //save refinery count
setarray .@card[0], getequipcardid(.@part,0), getequipcardid(.@part,1), getequipcardid(.@part,2), getequipcardid(.@part,3);
switch(getequipweaponlv(.@part)) {
default:
case 0:
setarray .@material[0],6993;
set .@type$,"Armor";
set .@check,.@bArmorUp;
break;
case 1:
case 2:
case 3:
case 4:
setarray .@material[0],6993;
set .@type$,"Weapon";
set .@check,.@bWeaponUp;
break;
}
if (!.@check) {
emotion ET_THINK;
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;
set .@menu$,"";
for(set .@i,0; .@i<getarraysize(.@material); set .@i,.@i+1)
set .@menu$, .@menu$+getitemname(.@material[.@i])+":";
set .@select, select(.@menu$)-1;
set .@ticket_id, .@material[.@select];
if (countitem(.@ticket_id) == 0) {
emotion ET_QUESTION;
mes "[Refine Master]";
mes getitemname(.@ticket_id)+" is not in your inventory. Did you put it in your storage?";
mes "Please check again.";
mes "See you later!";
close;
}
mes "[Refine Master]";
mes "I'm going to refine ^006400"+getequipname(.@part)+"^8B4513 to the next level^000000 with ^006400"+getitemname(.@ticket_id)+"^000000.";
mes "May I proceed?";
next;
if(select("No.:Yes.") == 1) {
emotion ET_THINK;
mes "[Refine Master]";
mes "Oh, you changed your mind.";
mes "Ok.";
mes "You can come back later.";
close;
}
if (getequiprefinerycnt(.@part) == 20) {
mes "[Refine Master]";
mes "This ^006400"+getequipname(.@part)+"^8B4513 is PERFECT, no need to refine it anymore~";
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;
// anti-hack
if (callfunc("F_IsEquipIDHack", .@part, .@refineitemid) ||
callfunc("F_IsEquipRefineHack", .@part, .@refinerycnt) || callfunc("F_IsEquipCardHack", .@part, .@card[0], .@card[1], .@card[2], .@card[3])) {
mes "[Refine Master]";
emotion ET_FRET;
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;
}
} else {
next;
mes "Error!";
mes "Please report this.";
close;
}
successrefitem .@part;
next;
emotion ET_DELIGHT;
mes "[Refine Master]";
mes "Alright, here it is~";
mes "Well, ^0000FF"+strcharinfo(0)+"^000000!";
mes "Congratulations on your shining "+.@type$+".";
mes "You look GREAT!";
mes "Farewell~!";
close;
}
Question
thunginamue
Credits to the owner of the script i forgot who, please anyone check this, im satisfied with it but im not sure about this as i dont really know scripting but i do understand a bit, what my concern is, would my changes will bug out the refine and do something else or something..
prontera,139,173,5 script Refine Master 851,{ disable_items; if (countitem(6993)) set .@bWeaponUp,1; if (countitem(6993)) set .@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 "Actually, I sometimes provide refine services for adventurers with a ^006400Refine Ticket^000000..."; mes "Bye bye~!"; close; } } emotion ET_SURPRISE; 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"; setarray .@indices[1], EQI_HEAD_TOP, EQI_ARMOR, EQI_HAND_L, EQI_HAND_R, EQI_GARMENT, EQI_SHOES, EQI_ACC_L, EQI_ACC_R, EQI_HEAD_MID, EQI_HEAD_LOW; for(set .@i,1; .@i<=20; set .@i,.@i+1) set .@menu$, .@menu$+((getequipisequiped(.@indices[.@i]))?getequipname(.@indices[.@i]):.@position$[.@i]+"- [Empty]")+":"; set .@part, .@indices[ select(.@menu$) ]; if (!getequipisequiped(.@part)) { mes "[Refine Master]"; mes "You have to equip the item you want to refine."; close; } if (!getequipisenableref(.@part)) { emotion ET_OTL; mes "[Refine Master]"; mes "Oh, I'm sorry."; mes "This item is impossible to refine."; close; } .@refineitemid = getequipid(.@part); // save id of the item .@refinerycnt = getequiprefinerycnt(.@part); //save refinery count setarray .@card[0], getequipcardid(.@part,0), getequipcardid(.@part,1), getequipcardid(.@part,2), getequipcardid(.@part,3); switch(getequipweaponlv(.@part)) { default: case 0: setarray .@material[0],6993; set .@type$,"Armor"; set .@check,.@bArmorUp; break; case 1: case 2: case 3: case 4: setarray .@material[0],6993; set .@type$,"Weapon"; set .@check,.@bWeaponUp; break; } if (!.@check) { emotion ET_THINK; 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; set .@menu$,""; for(set .@i,0; .@i<getarraysize(.@material); set .@i,.@i+1) set .@menu$, .@menu$+getitemname(.@material[.@i])+":"; set .@select, select(.@menu$)-1; set .@ticket_id, .@material[.@select]; if (countitem(.@ticket_id) == 0) { emotion ET_QUESTION; mes "[Refine Master]"; mes getitemname(.@ticket_id)+" is not in your inventory. Did you put it in your storage?"; mes "Please check again."; mes "See you later!"; close; } mes "[Refine Master]"; mes "I'm going to refine ^006400"+getequipname(.@part)+"^8B4513 to the next level^000000 with ^006400"+getitemname(.@ticket_id)+"^000000."; mes "May I proceed?"; next; if(select("No.:Yes.") == 1) { emotion ET_THINK; mes "[Refine Master]"; mes "Oh, you changed your mind."; mes "Ok."; mes "You can come back later."; close; } if (getequiprefinerycnt(.@part) == 20) { mes "[Refine Master]"; mes "This ^006400"+getequipname(.@part)+"^8B4513 is PERFECT, no need to refine it anymore~"; 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; // anti-hack if (callfunc("F_IsEquipIDHack", .@part, .@refineitemid) || callfunc("F_IsEquipRefineHack", .@part, .@refinerycnt) || callfunc("F_IsEquipCardHack", .@part, .@card[0], .@card[1], .@card[2], .@card[3])) { mes "[Refine Master]"; emotion ET_FRET; 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; } } else { next; mes "Error!"; mes "Please report this."; close; } successrefitem .@part; next; emotion ET_DELIGHT; mes "[Refine Master]"; mes "Alright, here it is~"; mes "Well, ^0000FF"+strcharinfo(0)+"^000000!"; mes "Congratulations on your shining "+.@type$+"."; mes "You look GREAT!"; mes "Farewell~!"; close; }
Code Box
Link to comment
Share on other sites
0 answers to this question
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.