viewing paste Advanced Stylist v2.1 | 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
// +-------------------------------------------+
// | Advanced Stylist                                |
// +-------------------------------------------+
// | By: Hudelf                                  |
// +-------------------------------------------+
// | Current Version: 2.1                        |
// +-------------------------------------------+
// | Description:                                    |
// |    This is the traditional stylist with     |
// |    several new features. You can now scroll|
// |    backwards or forwards, and save up to    |
// |    three palettes while logged in           |
// +-------------------------------------------+
// | Changelog:                                  |
// |    02/08/07 - 1.0 - Script finished         |
// |    06/04/07 - 2.0 - Rewrote entire script   |
// |                        Added new features   |
// |    11/07/07 - 2.1 - Changed var types       |
// |                      Fixed minor text issues |
// +-------------------------------------------+
 
prontera.gat,164,171,1  script  Stylist 122,{
 
    set .@name$,"[^FF8000Stylist^000000]";
    setarray .@max[1],300,251,24;       // Number of cloths, haircolors, hairstyles in client
    setarray .@blacklist[0],188,143,261;    // NPC will skip any cloth colors in this array.
                                        //      Use for palettes that cause errors or just plain look bad.
                                        //      Leave first value at 0 to disable.
    setarray .@type[1],7,6,1;           // DO NOT EDIT
    set .@style,0;
    
    mes .@name$;
    mes "I can change your appearance for you if you'd like.";
    mes " ";
    mes "Just choose what you'd like to change:";
    next;
    set .@s,select("Clothes color",
                "Hair color",
                "Hair style");
    
    mes .@name$;
    mes "Alright, how would you like to search?";
    next;
    menu "Start at the beginning",L_start,
        "Choose where to start",-;
    
    // CHOOSE WHERE TO START =====================================================
    mes .@name$;
    mes "Alright, choose a style between ^0000FF0 and " +.@max[.@s]+ "^000000.";
    next;
    input .@style;
    
    if (.@style < 0 || .@style > .@max[.@s]) {
        mes .@name$;
        mes "Style chosen is out of range.";
        close;
    }
 
  L_start:
    setarray @revert[1],getlook(.@type[.@s]),0,0;
    mes .@name$;
    mes "Alright here we go, starting at style ^007700" +.@style+ "^000000.";
    next;
    
  // BEGINNING OF STYLE MENU LOOP ================================================
  L_menuloop:
    if (.@blacklist[0]) {
        for (set .@f,0; .@f < getarraysize(.@blacklist); set .@f,.@f+1) {
            if (.@style == .@blacklist[.@f] && .@previous == 1 && .@s == 1) {
                message strcharinfo(0),"GM Message - Cloth " +.@style+ " was removed.";
                set .@style, .@style - 1;
                goto L_menuloop;
            } else if (.@style == .@blacklist[.@f] && .@s == 1) {
                message strcharinfo(0),"GM Message - Cloth " +.@style+ " was removed.";
                set .@style, .@style +1;
                goto L_menuloop;
            }
        }
    }
    setlook .@type[.@s],.@style;
    mes "This is style number ^007700" +.@style+ "^000000.";
    
    set .@next, .@style + 1;
    set .@prev, .@style - 1;
    
    // MAXIMUM MENU
    if (.@style == .@max[.@s]) {
        set .@next,0;
        message strcharinfo(0),"Limit Reached";
    }
    
    // MINIMUM MENU ==============================================================
    if (.@style == 0) {
        set .@prev,.@max[.@s];
        message strcharinfo(0),"Beginning Reached";
    }
    
    // PREVIOUS MENU =============================================================
    if (.@previous) {
        menu "^FF0000Previous - " +.@prev+ "^000000",L_prev,
            "^0000FFNext - " +.@next+ "^000000",L_next,
            "Jump to",L_jump,
            "Save",L_save,
            "Load",L_load;
    }
    
    // DEFAULT MENU ==============================================================
    menu "^0000FFNext - " +.@next+ "^000000",L_next,
        "^FF0000Previous - " +.@prev+ "^000000",L_prev,
        "Jump to",L_jump,
        "Save",L_save,
        "Load",L_load;
        
  L_next:
    set .@previous,0;
    set .@style, .@next;
    goto L_menuloop;
 
  L_prev:
    set .@previous,1;
    set .@style, .@prev;
    goto L_menuloop;
    
  L_jump:
    next;
    mes .@name$;
    mes "Choose which style you'd like to jump to:";
    next;
    input .@style;
    if (.@style < 0 || .@style > .@max[.@s]) {
        mes .@name$;
        mes "Style chosen is out of range.";
        close;
    }
    goto L_menuloop;
    
  L_save:
    next;
    mes .@name$;
    mes "Choose which slot you'd like to save to:";
    set .@x, select("Slot 1 - [" +@revert[1]+ "]",
                    "Slot 2 - [" +@revert[2]+ "]",
                    "Slot 3 - [" +@revert[3]+ "]");
                    
    setarray @revert[.@x], .@style;
    goto L_menuloop;
    
  L_load:
    next;
    mes .@name$;
    mes "Choose which slot you'd like to load from:";
    set .@x, select("Slot 1 - [" +@revert[1]+ "]",
                    "Slot 2 - [" +@revert[2]+ "]",
                    "Slot 3 - [" +@revert[3]+ "]");
                    
    set .@style, @revert[.@x];
    goto L_menuloop;
}
Viewed 754 times, submitted by Guest.