// The Barber script has been around since before the repository split // so it's hard to figure out who wrote it. // o11c updated it according to new scripting standards while adding pink. // ... and added the code that shows your old color/style. // Note: there is a soft limit of 12 colors (0-11) and 20 styles (0-19) // This is the number that can be set when creating a character // or using GM commands, but scripts (such as this one) can set // any value 0-255 function|script|Barber|{ set @style, getlook(LOOK_HAIR_STYLE); set @color, getlook(LOOK_HAIR_COLOR); set @style$, "Unknown"; set @color$, "Unknown"; if (@style >= 0 && @style < 20) set @style$, $@HairStyles$[@style]; if (@color >= 0 && color < 20) set @color$, $@HairColors$[@color]; if (@color == 127) set @color$, "Shocked White"; mes "Your current style is " + @style$ + " and your current color is " + @color$ + "."; set @style$, ""; set @color$, ""; L_Main: menu "Change my style", L_Style, "Change my color", L_Color, "Nah, I'm fine", L_Done; L_Style: menu "Bald", -, "Flat ponytail", -, "Bowl cut", -, "Combed back", -, "Emo", -, "Mohawk", -, "Pompadour", -, "Center parting/Short and slick", -, "Long and slick", -, "Short and curly", -, "Pigtails", -, "Long and curly", -, "Parted", -, "Perky ponytail", -, "Wave", -, "Mane", -, "Bun", -, "Shoulder Length Flick", -, "Fizzy", -, "Long and Clipped", -, "Surprise me", L_RandomStyle, "Nah, I'm fine", L_Done; if (@menu - 1 == @style) goto L_SameStyle; setlook LOOK_HAIR_STYLE, @menu - 1; goto L_Done; L_RandomStyle: setlook LOOK_HAIR_STYLE, rand(20); goto L_Done; L_SameStyle: mes "Your hair was already that style"; goto L_Main; L_Color: menu "Brunette", -, "Green", -, "Dark red", -, "Light purple", -, "Gray", -, "Blonde", -, "Teal", -, "Light red", -, "Blue", -, "Dark purple", -, "Black", -, "Pink", -, "Brown", -, "Surprise me", L_RandomColor, "Nah, I'm fine", L_Done; if (@menu - 1 == @color) goto L_SameColor; setlook LOOK_HAIR_COLOR, @menu - 1; goto L_Done; L_RandomColor: setlook LOOK_HAIR_COLOR, rand(13); goto L_Done; L_SameColor: mes "Your hair was already that color"; goto L_Main; L_Done: // cleanup set @menu, 0; set @style, 0; set @color, 0; return; } // Since this is a function, not an NPC, OnInit doesn't work // So call this from a real NPC's OnInit (001-1/barber.txt) function|script|OnInitBarber|{ setarray $@HairStyles$, "Bald", "Flat ponytail", "Bowl cut", "Combed back", "Emo", "Mohawk", "Pompadour", "Center parting/Short and slick", "Long and slick", "Short and curly", "Pigtails", "Long and curly", "Parted", "Perky ponytail", "Wave", "Mane", "Bun", "Shoulder Length Flick", "Fizzy", "Long and Clipped"; setarray $@HairColors$, "Brunette", "Green", "Dark red", "Light purple", "Gray", "Blonde", "Teal", "Light red", "Blue", "Dark purple", "Black", "Pink", "Brown"; return; }