summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--world/map/db/item_db_generic.txt1
-rw-r--r--world/map/db/item_db_trinket.txt1
-rw-r--r--world/map/npc/009-2/selim.txt2
-rw-r--r--world/map/npc/functions/barber.txt91
-rw-r--r--world/map/npc/functions/headstyles.txt20
5 files changed, 70 insertions, 45 deletions
diff --git a/world/map/db/item_db_generic.txt b/world/map/db/item_db_generic.txt
index 7aefbc31..5b9903e9 100644
--- a/world/map/db/item_db_generic.txt
+++ b/world/map/db/item_db_generic.txt
@@ -233,4 +233,5 @@
5124, BloodInk, 3, 10, 10, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, {}, {}
5125, UnderworldKey, 3, 10, 10, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, {}, {}
5127, JarofOwnBlood, 3, 200, 100, 375, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, {}, {}
+1197, SkeletonCharm, 3, 0, 0, 10, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, {}, {}
//ID, Name___________________, Type, Price, Sell, Weight, ATK, DEF, Range, Mbonus, Slot, Gender, Loc, wLV, eLV, View, {UseScript}, {EquipScript}
diff --git a/world/map/db/item_db_trinket.txt b/world/map/db/item_db_trinket.txt
index 7e1f499f..263e61d1 100644
--- a/world/map/db/item_db_trinket.txt
+++ b/world/map/db/item_db_trinket.txt
@@ -9,7 +9,6 @@
832, GoldenFourLeafAmulet, 5, 40000, 4000, 10, 0, 0, 0, 0, 0, 2, 8, 0, 0, 0, {}, {bonus bLuk, 4;}
865, Grimoire, 5, 5000, 2500, 100, 0, 0, 0, 5, 0, 2, 8, 0, 0, 0, {}, {bonus bMaxSP, 30;}
879, HeartOfIsis, 5, 70000, 35000, 40, 0, 0, 0, 0, 0, 2, 8, 0, 85, 0, {}, {bonus bMaxHPrate, 15; bonus bHPrecovRate, 65;}
-1197, SkeletonCharm, 5, 0, 0, 10, 0, 0, 0, 0, 0, 2, 8, 0, 0, 0, {}, {}
1244, DarkTalisman, 5, 0, 0, 0, 0, 30, 0, 100, 0, 2, 8, 0, 0, 0, {}, {set @minLvl, 1;callfunc "RestrictedItem";}
4008, DiamondRing, 5, 5000, 2500, 1, 0, 0, 0, 0, 0, 2, 128, 0, 0, 0, {}, {bonus bVit, 1;}
4009, RubyRing, 5, 5000, 2500, 1, 0, 0, 0, 0, 0, 2, 128, 0, 0, 0, {}, {bonus bStr, 1;}
diff --git a/world/map/npc/009-2/selim.txt b/world/map/npc/009-2/selim.txt
index 708b2e13..22c4bedf 100644
--- a/world/map/npc/009-2/selim.txt
+++ b/world/map/npc/009-2/selim.txt
@@ -16,7 +16,7 @@ L_Main:
L_barber:
callfunc "Barber";
- goto L_Main;
+ close;
L_ask_bleach:
mes "[Selim]";
diff --git a/world/map/npc/functions/barber.txt b/world/map/npc/functions/barber.txt
index 6bc97b75..dbc7614b 100644
--- a/world/map/npc/functions/barber.txt
+++ b/world/map/npc/functions/barber.txt
@@ -14,6 +14,13 @@ function|script|Barber
if (getequipid(equip_head) == 647)
goto L_Debug;
callfunc "getHeadStyles";
+ set @hairOpts, 0;
+ set @colorOpts, 0;
+ set @menu, 0;
+ goto L_Main;
+
+L_MainClear:
+ clear;
goto L_Main;
L_Main:
@@ -21,13 +28,22 @@ L_Main:
set @color, getlook(LOOK_HAIR_COLOR);
set @style$, "Unknown";
set @color$, "Unknown";
+
if (@style >= 1 && @style <= 20)
set @style$, @HairStyles$[(@style - 1)];
+
if (@color == ((HC_WHITE - Class) + 1))
set @color$, "Shocked White";
set @color, (@color - (15 * (Class - 1)));
if (@color >= 0 && @color <= 15)
set @color$, @HairColors$[@color];
+
+ if (Sex == 0) set @gender$, " female";
+ elif (Sex == 1) set @gender$, " male";
+ elif (Class == 3 || Class == 6) set @gender$, "n";
+ else set @gender$, "";
+
+ mes "You are a" + @gender$ + " " + @species$ + ".";
mes "Your current style is " + @style$ + " and your current color is " + @color$ + ".";
set @style$, "";
set @color$, "";
@@ -43,43 +59,44 @@ L_Gender:
"Female.", L_Female,
"Male.", L_Male,
"Non-binary.", L_NonBinary,
- "Nah, I'm fine", L_Done;
+ "Nah, I'm fine", L_MainClear;
L_Female:
- set @sex, 0;
- goto L_Change;
+ set Sex, 0;
+ goto L_MainClear;
L_Male:
- set @sex, 1;
- goto L_Change;
+ set Sex, 1;
+ goto L_MainClear;
L_NonBinary:
- set @sex, 3;
- goto L_Change;
-
-L_Change:
- if (Sex == @sex)
- goto L_Already_Change;
- set Sex, @sex;
- return;
-
-L_Already_Change:
- mes "\"Umm, you are that gender already.\"";
- return;
+ set Sex, 3;
+ goto L_MainClear;
L_Species:
- menu
- "Talpan", L_Species_next,
- "Tritan", L_Species_next,
- "Ifriton", L_Species_next,
- //"Gispaan", L_Species_next,
- //"Sparron", L_Species_next,
- "Nah, I'm fine", L_Done;
+ if (countitem("SkeletonCharm") >= 1)
+ menu
+ "Talpan", L_Species_next,
+ "Tritan", L_Species_next,
+ "Ifriton", L_Species_next,
+ //"Gispaan", L_Species_next,
+ //"Sparron", L_Species_next,
+ "Undead", L_Species_next,
+ "Nah, I'm fine", L_MainClear;
+ //else
+ menu
+ "Talpan", L_Species_next,
+ "Tritan", L_Species_next,
+ "Ifriton", L_Species_next,
+ //"Gispaan", L_Species_next,
+ //"Sparron", L_Species_next,
+ "Nah, I'm fine", L_MainClear;
L_Species_next:
+ if (@menu == 4) set @menu, 6;
set Class, @menu;
callfunc "fixHeadStyles";
- return;
+ goto L_MainClear;
L_Style:
if(!@hairOpts) set @HairStyles$[getarraysize(@HairStyles$)], "Surprise me";
@@ -110,12 +127,10 @@ L_Style:
@HairStyles$[21], 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;
+ if(@menu >= getarraysize(@HairStyles$)) goto L_MainClear;
setlook LOOK_HAIR_STYLE, @menu;
- goto L_Main;
+ goto L_MainClear;
L_RandomStyle:
setarray @randomStyle[0], rand(1, (getarraysize(@HairStyles$) - 2));
@@ -125,13 +140,9 @@ L_RandomStyle:
setarray @randomStyle[1], 0;
menu
"Surprise me once again", L_RandomStyle,
- "Go back", L_Main,
+ "Go back", L_MainClear,
"Goodbye", L_Done;
-L_SameStyle:
- mes "Your hair already has that style.";
- goto L_Main;
-
L_Color:
if(!@colorOpts) set @HairColors$[getarraysize(@HairColors$)], "Surprise me";
if(!@colorOpts) set @HairColors$[getarraysize(@HairColors$)], "Nah, I'm fine";
@@ -156,12 +167,10 @@ L_Color:
@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;
+ if(@menu >= getarraysize(@HairColors$)) goto L_MainClear;
setlook LOOK_HAIR_COLOR, ((@menu - 1) + (15 * (Class - 1)));
- goto L_Main;
+ goto L_MainClear;
L_RandomColor:
setarray @randomColor[0], rand((15 * (Class - 1)), ((getarraysize(@HairColors$) - 3) + (15 * (Class - 1))));
@@ -171,13 +180,9 @@ L_RandomColor:
setarray @randomColor[1], 0;
menu
"Surprise me once again", L_RandomColor,
- "Go back", L_Main,
+ "Go back", L_MainClear,
"Goodbye", L_Done;
-L_SameColor:
- mes "You already have that color.";
- goto L_Main;
-
L_Done:
// cleanup
set @menu, 0;
diff --git a/world/map/npc/functions/headstyles.txt b/world/map/npc/functions/headstyles.txt
index cd775eea..5369be34 100644
--- a/world/map/npc/functions/headstyles.txt
+++ b/world/map/npc/functions/headstyles.txt
@@ -33,10 +33,12 @@ function|script|getHeadStyles
elif (Class == 3) goto L_Ifriton;
elif (Class == 4) goto L_Gispaan;
elif (Class == 5) goto L_Sparron;
+ elif (Class == 6) goto L_Headless;
else set Class, 1; // we can not style custom classes, so reset when using the barber
goto L_Talpan;
L_Talpan:
+ set @species$, "Talpan";
setarray @HairStyles$[0],
"Bald", "Flat ponytail", "Bowl cut", "Combed back", "Emo", "Mohawk",
"Pompadour", "Center parting/Short and slick", "Long and slick",
@@ -49,7 +51,22 @@ L_Talpan:
"Brown";//, "(free slot)", "(free slot)";
return;
+L_Headless:
+ if (Class == 6) set @species$, "Undead";
+ setarray @HairStyles$[0],
+ "Plain", "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$[0],
+ "Brunette", "Green", "Dark red", "Light purple", "Gray", "Blonde",
+ "Teal", "Light red", "Blue", "Dark purple", "Black", "Pink",
+ "Brown";//, "(free slot)", "(free slot)";
+ return;
+
L_Tritan:
+ set @species$, "Tritan";
setarray @HairStyles$[0],
"Finless", "Mohawk", "Dorsal", "Translucid", "Spiky",
"Dual dorsal", "Intricate", "Lateral";
@@ -58,6 +75,7 @@ L_Tritan:
return;
L_Gispaan:
+ set @species$, "Gispaan";
setarray @HairStyles$[0],
"1", "2", "3", "4", "5",
"6", "7", "8", "9", "10",
@@ -70,6 +88,7 @@ L_Gispaan:
return;
L_Sparron:
+ set @species$, "Sparron";
setarray @HairStyles$[0],
"1", "2", "3", "4", "5",
"6", "7", "8", "9", "10",
@@ -82,6 +101,7 @@ L_Sparron:
return;
L_Ifriton:
+ set @species$, "Ifriton";
setarray @HairStyles$[0],
"Plain", "Horny", "Kinky", "Fiendish", "Modest",
"Spiky";