diff options
Diffstat (limited to 'world/map/npc/functions')
-rw-r--r-- | world/map/npc/functions/barber.txt | 20 | ||||
-rw-r--r-- | world/map/npc/functions/clear_vars.txt | 4 | ||||
-rw-r--r-- | world/map/npc/functions/headstyles.txt | 55 |
3 files changed, 45 insertions, 34 deletions
diff --git a/world/map/npc/functions/barber.txt b/world/map/npc/functions/barber.txt index 0f9b4ffb..58fee175 100644 --- a/world/map/npc/functions/barber.txt +++ b/world/map/npc/functions/barber.txt @@ -19,9 +19,11 @@ L_Main: 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 < 120) + 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"; @@ -66,15 +68,15 @@ L_Style: @HairStyles$[25], L_MenuItems; L_MenuItems: - if (@menu - 1 == @style) + 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 - 1; + setlook LOOK_HAIR_STYLE, @menu; goto L_Main; L_RandomStyle: - set @randomStyle, rand(0, (getarraysize(@HairStyles$) -4)); + set @randomStyle, rand(1, (getarraysize(@HairStyles$) -4)); if(@randomStyle == @style) goto L_RandomStyle; setlook LOOK_HAIR_STYLE, @randomStyle; menu @@ -87,7 +89,7 @@ L_SameStyle: goto L_Main; L_Color: - if(@style == Class) goto L_SameColor; // first headstyle of any class is bald + 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; @@ -115,11 +117,11 @@ L_MenuItems1: 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)); + setlook LOOK_HAIR_COLOR, ((@menu - 1) + (15 * (Class - 1))); goto L_Main; L_RandomColor: - set @randomColor, rand((15 * Class), ((getarraysize(@HairColors$) -4) + (15 * Class))); + set @randomColor, rand((15 * (Class - 1)), ((getarraysize(@HairColors$) -4) + (15 * (Class - 1)))); if(@randomColor == @color) goto L_RandomColor; setlook LOOK_HAIR_COLOR, @randomColor; menu diff --git a/world/map/npc/functions/clear_vars.txt b/world/map/npc/functions/clear_vars.txt index 0a0247b7..588c22d5 100644 --- a/world/map/npc/functions/clear_vars.txt +++ b/world/map/npc/functions/clear_vars.txt @@ -251,6 +251,10 @@ L_Fix_Skills: if(getskilllv(SKILL_TRADE) > 0) setskill SKILL_TRADE, 0; if(getskilllv(SKILL_PARTY) > 0) setskill SKILL_PARTY, 0; if(getskilllv(SKILL_EMOTE) > 0) setskill SKILL_EMOTE, 0; + goto L_Barber_Janitor; + +L_Barber_Janitor: + callfunc "getHeadStyles"; // this converts class, color and hair goto L_Return; L_Return: diff --git a/world/map/npc/functions/headstyles.txt b/world/map/npc/functions/headstyles.txt index 989bef83..4648ede4 100644 --- a/world/map/npc/functions/headstyles.txt +++ b/world/map/npc/functions/headstyles.txt @@ -5,37 +5,42 @@ function|script|getHeadStyles|, { set @HairStyles$, 0; set @HairColors$, 0; - set @BaseClass, 0; // this is the default class + set @BaseClass, 1; // this is the default class cleararray @HairStyles$, "", getarraysize(@HairStyles$); cleararray @HairColors$, "", getarraysize(@HairColors$); cleararray @ValidClasses, "", getarraysize(@ValidClasses); - setarray @ValidClasses, 0; // add new classes here + setarray @ValidClasses, 1; // add new classes here set @loop, 0; goto L_LoopValid; - L_LoopValid: - if(@ValidClasses[@loop] == Class) goto L_ValidClass; - set @loop, (@loop + 1); - if(@loop >= getarraysize(@ValidClasses)) goto L_FixClass; - goto L_LoopValid; +L_Janitor: + set @BaldStyle, getarraysize(@HairStyles$); // we set it as a variable because we use it with the barber + if(getlook(LOOK_HAIR_STYLE) < 1) setlook LOOK_HAIR_STYLE, @BaldStyle; // the last head of any race has no hair/fins/whatever + return; - L_FixClass: - set Class, @BaseClass; - goto L_ValidClass; +L_LoopValid: // here we fix non-existant classes + if(@ValidClasses[@loop] == Class) goto L_ValidClass; + set @loop, (@loop + 1); + if(@loop >= getarraysize(@ValidClasses)) goto L_FixClass; + goto L_LoopValid; + +L_FixClass: + set Class, @BaseClass; + goto L_ValidClass; - L_ValidClass: - if(Class == 0) - setarray @HairStyles$, // TALPONIAN (human) - "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"; - if(Class == 0) - setarray @HairColors$, // TALPONIAN (human) - "Brunette", "Green", "Dark red", "Light purple", "Gray", "Blonde", - "Teal", "Light red", "Blue", "Dark purple", "Black", "Pink", - "Brown";//, "(free slot)", "(free slot)"; - // adding a new species is as simple as adding another if(Class == X) and adding the class to @ValidClasses - return; +L_ValidClass: + if(Class == 1) + setarray @HairStyles$, // TALPONIAN (human) + "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", "Bald"; + if(Class == 1) + setarray @HairColors$, // TALPONIAN (human) + "Brunette", "Green", "Dark red", "Light purple", "Gray", "Blonde", + "Teal", "Light red", "Blue", "Dark purple", "Black", "Pink", + "Brown";//, "(free slot)", "(free slot)"; + // adding a new species is as simple as adding another if(Class == X) and adding the class to @ValidClasses + goto L_Janitor; } |