// 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 { callfunc "getHeadStyles"; goto L_Main; L_Main: set @style, getlook(LOOK_HAIR_STYLE); set @color, getlook(LOOK_HAIR_COLOR); set @style$, "Unknown"; set @color$, "Unknown"; if (@style >= 1 && @style <= 20) set @style$, @HairStyles$[(@style - 1)]; if (Class > 1) set @color, (@color - (15 * Class)); if (@color >= 0 && @color <= 15) 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$, ""; menu "Change my style", L_Style, "Change my color", L_Color, "Nah, I'm fine", L_Done; L_Style: if(!@hairOpts) set @HairStyles$[getarraysize(@HairStyles$)], "Surprise me"; if(!@hairOpts) set @HairStyles$[getarraysize(@HairStyles$)], "Nah, I'm fine"; if(!@hairOpts) set @hairOpts, 1; menu @HairStyles$[0], L_MenuItems, @HairStyles$[1], L_MenuItems, @HairStyles$[2], L_MenuItems, @HairStyles$[3], L_MenuItems, @HairStyles$[4], L_MenuItems, @HairStyles$[5], L_MenuItems, @HairStyles$[6], L_MenuItems, @HairStyles$[7], L_MenuItems, @HairStyles$[8], L_MenuItems, @HairStyles$[9], L_MenuItems, @HairStyles$[10], L_MenuItems, @HairStyles$[11], L_MenuItems, @HairStyles$[12], L_MenuItems, @HairStyles$[13], L_MenuItems, @HairStyles$[14], L_MenuItems, @HairStyles$[15], L_MenuItems, @HairStyles$[16], L_MenuItems, @HairStyles$[17], L_MenuItems, @HairStyles$[18], L_MenuItems, @HairStyles$[19], L_MenuItems, @HairStyles$[20], L_MenuItems, @HairStyles$[21], L_MenuItems, @HairStyles$[22], L_MenuItems, @HairStyles$[23], L_MenuItems, @HairStyles$[24], L_MenuItems, @HairStyles$[25], L_MenuItems; L_MenuItems: if (@menu == @style) goto L_SameStyle; if(@menu == (getarraysize(@HairStyles$) - 1)) goto L_RandomStyle; if(@menu == getarraysize(@HairStyles$)) goto L_Done; setlook LOOK_HAIR_STYLE, @menu; goto L_Main; L_RandomStyle: set @randomStyle, rand(1, (getarraysize(@HairStyles$) -4)); if(@randomStyle == @style) goto L_RandomStyle; setlook LOOK_HAIR_STYLE, @randomStyle; menu "Surprise me once again", L_RandomStyle, "Go back", L_Main, "Goodbye", L_Done; L_SameStyle: mes "Your hair already has that style."; goto L_Main; L_Color: if(@style == @BaldStyle) goto L_SameColor; // last headstyle of any class is bald if(!@colorOpts) set @HairColors$[getarraysize(@HairColors$)], "Surprise me"; if(!@colorOpts) set @HairColors$[getarraysize(@HairColors$)], "Nah, I'm fine"; if(!@colorOpts) set @colorOpts, 1; menu @HairColors$[0], L_MenuItems1, @HairColors$[1], L_MenuItems1, @HairColors$[2], L_MenuItems1, @HairColors$[3], L_MenuItems1, @HairColors$[4], L_MenuItems1, @HairColors$[5], L_MenuItems1, @HairColors$[6], L_MenuItems1, @HairColors$[7], L_MenuItems1, @HairColors$[8], L_MenuItems1, @HairColors$[9], L_MenuItems1, @HairColors$[10], L_MenuItems1, @HairColors$[11], L_MenuItems1, @HairColors$[12], L_MenuItems1, @HairColors$[13], L_MenuItems1, @HairColors$[14], L_MenuItems1, @HairColors$[15], L_MenuItems1, @HairColors$[16], L_MenuItems1; L_MenuItems1: if (@menu - 1 == @color) goto L_SameColor; if(@menu == (getarraysize(@HairColors$) - 1)) goto L_RandomColor; if(@menu == getarraysize(@HairColors$)) goto L_Done; setlook LOOK_HAIR_COLOR, ((@menu - 1) + (15 * (Class - 1))); goto L_Main; L_RandomColor: set @randomColor, rand((15 * (Class - 1)), ((getarraysize(@HairColors$) -4) + (15 * (Class - 1)))); if(@randomColor == @color) goto L_RandomColor; setlook LOOK_HAIR_COLOR, @randomColor; menu "Surprise me once again", L_RandomColor, "Go back", L_Main, "Goodbye", L_Done; L_SameColor: mes "You are either bald or your hair is already that color."; goto L_Main; S_Janitor: // cleanup set @menu, 0; set @style, 0; set @color, 0; cleararray @HairStyles$, "", getarraysize(@HairStyles$); cleararray @HairColors$, "", getarraysize(@HairColors$); set @hairOpts, 0; set @colorOpts, 0; return; L_Close: callsub S_Janitor; return; }