summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorWushin <pasekei@gmail.com>2014-11-01 20:07:51 -0500
committerWushin <pasekei@gmail.com>2014-11-01 20:07:51 -0500
commit04bbfd617fd238f8650b892de350cb24e82ab7d6 (patch)
tree93b86473057d10179ea5756a43b03ec3676fba4c
parent3a5bc4a33708f18dd4d481006337f2ea2e60326e (diff)
parent36c115f9dd3554ad8f4b6461a0f30fd7aaa0825e (diff)
downloadserverdata-04bbfd617fd238f8650b892de350cb24e82ab7d6.tar.gz
serverdata-04bbfd617fd238f8650b892de350cb24e82ab7d6.tar.bz2
serverdata-04bbfd617fd238f8650b892de350cb24e82ab7d6.tar.xz
serverdata-04bbfd617fd238f8650b892de350cb24e82ab7d6.zip
Merge pull request #187 from mekolat/headstyle20
barber & species & headstyles
-rw-r--r--world/map/conf/battle_athena.conf4
-rw-r--r--world/map/db/const.txt1
-rw-r--r--world/map/news.php2
-rw-r--r--world/map/npc/functions/barber.txt20
-rw-r--r--world/map/npc/functions/clear_vars.txt4
-rw-r--r--world/map/npc/functions/headstyles.txt55
-rw-r--r--world/map/npc/items/mirror.txt4
7 files changed, 51 insertions, 39 deletions
diff --git a/world/map/conf/battle_athena.conf b/world/map/conf/battle_athena.conf
index cc10f40c..8288601d 100644
--- a/world/map/conf/battle_athena.conf
+++ b/world/map/conf/battle_athena.conf
@@ -281,9 +281,9 @@ any_warp_GM_min_level: 20
// valid range of dye's and styles on the client
// Note: this is also hard-coded in the char-server
min_hair_style: 0
-max_hair_style: 19
+max_hair_style: 20
min_hair_color: 0
-max_hair_color: 11
+max_hair_color: 255
// Visible area size (how many squares away from a player can they see)
area_size: 14
diff --git a/world/map/db/const.txt b/world/map/db/const.txt
index 90118b47..655de746 100644
--- a/world/map/db/const.txt
+++ b/world/map/db/const.txt
@@ -222,6 +222,7 @@ HS_Bun 16
HS_ShoulderLengthFlick 17
HS_Fizzy 18
HS_LongAndClipped 19
+HS_BaldTwo 20
// Hair Colors
HC_LIGHT_BROWN 0
diff --git a/world/map/news.php b/world/map/news.php
index d9f4d2e5..ff4b80a1 100644
--- a/world/map/news.php
+++ b/world/map/news.php
@@ -1,7 +1,7 @@
<?php
// configuration variables
-$min_manaplus = '1.3.6.9';
+$min_manaplus = '1.4.8.30';
// utility functions
function failure_headers()
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;
}
diff --git a/world/map/npc/items/mirror.txt b/world/map/npc/items/mirror.txt
index fc2ca69b..82aeb7a7 100644
--- a/world/map/npc/items/mirror.txt
+++ b/world/map/npc/items/mirror.txt
@@ -4,8 +4,8 @@ function|script|useMirror|,
goto L_Rand;
L_Rand:
- set @style, rand(0,(getarraysize(@HairStyles$) -2));
- set @color, rand((15 * Class),((getarraysize(@HairColors$) -2) + (15 * Class)));
+ set @style, rand(1,(getarraysize(@HairStyles$) -2));
+ set @color, rand((15 * (Class - 1)),((getarraysize(@HairColors$) -2) + (15 * (Class - 1))));
if((getlook(LOOK_HAIR_STYLE) == @style) || (getlook(LOOK_HAIR_COLOR) == @color))
goto L_Rand;
goto L_Proceed;