viewing paste Ticket Trader v2.1 Uses Inv & Eq | Athena

Posted on the | Last edited on
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
//Skorm 12-10-2016 v2.1
//Uses items from the inventory/equip instead of just equip.
prontera,184,177,5  script  Ticket Trader   851,{
    mes "[^FF0000Ticket Trader^000000]";
    mes "I trade weapons and armours with specific refines for ^0000FFRefine Tickets^000000.";
    next;
    mes "[^FF0000Ticket Trader^000000]";
    mes "Which equipment would you like me to convert into a ^0000FFRefine Ticket^000000?";
    
    getinventorylist;
    
    .@inv_len = @inventorylist_count;
    copyarray .@inv_list_id[0], @inventorylist_id[0], .@inv_len;
    copyarray .@inv_list_amt[0], @inventorylist_amount[0], .@inv_len;
    copyarray .@inv_list_equ[0], @inventorylist_equip[0], .@inv_len;
    copyarray .@inv_list_ref[0], @inventorylist_refine[0], .@inv_len;
    copyarray .@inv_list_atr[0], @inventorylist_attribute[0], .@inv_len;
    copyarray .@inv_list_cd1[0], @inventorylist_card1[0], .@inv_len;
    copyarray .@inv_list_cd2[0], @inventorylist_card2[0], .@inv_len;
    copyarray .@inv_list_cd3[0], @inventorylist_card3[0], .@inv_len;
    copyarray .@inv_list_cd4[0], @inventorylist_card4[0], .@inv_len;
    
    for( .@a = 0; .@a < .@inv_len; .@a++ ) {
        if( .@inv_list_id[.@a] && compare(.allow_list$,","+.@inv_list_id[.@a]+",") )
            set .@menu$, .@menu$+"^0000FF"+getitemname(.@inv_list_id[.@a])+(.@inv_list_ref[.@a]?" +"+.@inv_list_ref[.@a]:"")+"^000000:";
        else {
            set .@menu$, .@menu$+":";
            .@len++;
        }
    }
    
    next;
    
    if( countstr(.@menu$, ":") >= getstrlen(.@menu$) ) {
        mes "[^FF0000Ticket Trader^000000]";
        mes "It doesn't look like anything you have equipped can be converted sorry.";
        close;
    }
    
    select(.@menu$);
    set .@eq_loc, @menu-1;
    set .@eq_itm, .@inv_list_id[.@eq_loc];
    set .@eg_rfn, .@inv_list_ref[.@eq_loc];
    if( .@eq_itm < 0 ) {
        mes "[^FF0000Ticket Trader^000000]";
        mes "Hmm, I don't think you have anything equipped there.";
        close;
    }
    
    .@ticket = getiteminfo(.@eq_itm,2) == 5 ? .weap_t_list[.@eg_rfn] : .armo_t_list[.@eg_rfn];
    
    if( .@eg_rfn < .uprange || .@eg_rfn > .uprange[1] ) {
        mes "[^FF0000Ticket Trader^000000]";
        mes "Sorry but I only convert items refined between +"+.uprange+" and +"+.uprange[1]+".";
        close;
    } else if( !.@ticket ) {
        mes "[^FF0000Ticket Trader^000000]";
        mes "I don't seem to have a ticket for +"+.@eg_rfn+" refine.";
        close;
    }
    
    mes "[^FF0000Ticket Trader^000000]";
    mes "^800000"+getitemname(.@eq_itm)+" will be changed into ^0000FF"+getitemname(.@ticket)+"^000000.";
    mes "Are you sure?";
    next;
    if( select("No:Yes") == 1 ) {
        mes "[^FF0000Ticket Trader^000000]";
        mes "Oh!- Well that was a close one then.";
        close;
    }
    
    delitem2 .@eq_itm, .@inv_list_amt[.@eq_loc], 1, .@eg_rfn, .@inv_list_atr[.@eq_loc], .@inv_list_cd1[.@eq_loc], .@inv_list_cd2[.@eq_loc], .@inv_list_cd3[.@eq_loc], .@inv_list_cd4[.@eq_loc];
    getitem(.@ticket,1);
    
    mes "[^FF0000Ticket Trader^000000]";
    mes "Have a nice day!";
    close;
    
    OnInit:
        setarray .uprange, 7, 12;
        setarray .armo_t_list[.uprange],6235,6234,6233,6232,   0,6239;
        setarray .weap_t_list[.uprange],6231,6230,6229,6228,   0,6238;
        .allow_list$ = ",1101,1102,1103,1104,1105,1106,1107,1108,1109,1110,1111,1112,2302,2304,2306,2308,2310,2311,2313,2315,2317,2318,2319,";
}
Viewed 1399 times, submitted by Skorm.