viewing paste Unknown #13707 | Athena

Posted on the
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173
//===== Hercules Script ======================================
//= Ticket Refiner
//===== By: ==================================================
//= Euphy
//===== Current Version: =====================================
//= 1.0
//===== Description: =========================================
//= [Official Conversion]
//= Refiner that uses +5~9/+11 refine tickets to refine
//= equipment with no chance of failure.
//= NOTE: This NPC is currently disabled on official servers.
//===== Additional Comments: =================================
//= 1.0 First version. [Euphy]
//============================================================
 
prontera,184,177,6  script  Refine Master   4_M_REPAIR,{
    disable_items;
    if (countitem(6238) || countitem(6228) || countitem(6229) || countitem(6230) || countitem(6231) || countitem(6456) || countitem(.ItemID))
        set .@bWeaponUp,1;
    if (countitem(6239) || countitem(6232) || countitem(6233) || countitem(6234) || countitem(6235) || countitem(6457) || countitem(.ItemID))
        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 "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";
    set .@menu$,"";
    for(set .@i,1; .@i<=10; set .@i,.@i+1)
        set .@menu$, .@menu$+((getequipisequiped(.@i))?getequipname(.@i):.@position$[.@i]+"- [Empty]")+":";
    set .@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;
        set .@type$,"Armor";
        set .@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;
        set .@type$,"Weapon";
        set .@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;
    set .@menu$,"";
    for(set .@i,0; .@i<getarraysize(.@tickets); set .@i,.@i+1)
        set .@menu$, .@menu$+getitemname(.@tickets[.@i])+":";
    set .@select, select(.@menu$)-1;
    set .@ticket_lv, .@levels[.@select];
    set .@ticket_id, .@tickets[.@select];
    if (.@ticket_id==.ItemID){
        if (.@part <= 4 && .@part!=1){
            .@ticket_lv = .RefineS;
        }else{
            mes "[Refine Master]";
            mes "I can only Refine Weapon/Armor with this Ticket";
            close;
        }
    }
    if (countitem(.@ticket_id) == 0) {
        emotion e_what;
        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;
    }
    if (getequiprefinerycnt(.@part) >= .@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(set .@i,getequiprefinerycnt(.@part); .@i<.@ticket_lv; set .@i,.@i+1)
        successrefitem .@part;
    next;
    emotion e_ho;
    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;
    
OnInit:
    .ItemID = 512//Safe Refine to ".RefineS" from ItemID x
    .RefineS = 10;
}
Viewed 1326 times, submitted by Dastgir.