// Evol scripts.
// Authors:
// omatt
// Reid
// Travolta
// Description:
// Function for supporting barber NPC.
function script BarberSayStyle {
.@get_color = getlook(LOOK_HAIR_COLOR);
.@get_look = getlook(LOOK_HAIR);
.@style_name$ = $@hairstyle$[.@get_look];
.@color_name$ = $@haircolor$[.@get_color];
switch (getarg(0))
{
case 1:
message strcharinfo(0), l("@@", .@style_name$);
break;
case 2:
message strcharinfo(0), l("@@", .@color_name$);
break;
case 3:
speech S_FIRST_BLANK_LINE | S_LAST_NEXT,
l("Your hairstyle is @@ and its color is @@.", .@style_name$, .@color_name$);
break;
}
return;
}
function script BarberChangeStyle {
do
{
.@hairsizearray = getarraysize($@hairstyle$);
.@get_look = getlook(LOOK_HAIR);
// Here .@i starts from 1 because hairstyle 0 doesn't exist.
for (.@i = 1; .@i < .@hairsizearray; .@i++)
{
.@menustr$ = .@menustr$
+ rif(.@get_look != .@i, l("" + $@hairstyle$[.@i] + ""))
+ ":";
}
.@menustr$ = .@menustr$ + l("I'm fine for now, thank you.");
.@idx = select(l("As you want!"),.@menustr$);
if (.@idx == .@i + 1) return; // last choice to quit dialog
switch (@menu)
{
case 1:
do
{
// here "- 1" because i don't use the 0 of array
.@rand_hair = rand(1,(.@hairsizearray - 1));
} while (.@rand_hair == getlook(LOOK_HAIR));
setlook LOOK_HAIR, .@rand_hair;
setlook LOOK_HAIR_COLOR, getlook(LOOK_HAIR_COLOR);
BarberSayStyle 1;
break;
default:
// and here "- 1" because the first choice is taken by the random
setlook LOOK_HAIR, (@menu - 1);
setlook LOOK_HAIR_COLOR, getlook(LOOK_HAIR_COLOR);
break;
}
.@menustr$ = "";
} while (1);
}
function script BarberChangeColor {
do
{
.@get_look = getlook(LOOK_HAIR_COLOR);
.@hairsizearray = getarraysize($@haircolor$);
for (.@i = 0; .@i < .@hairsizearray; .@i++)
{
.@menustr$ = .@menustr$
+ rif(.@get_look != .@i, l("" + $@haircolor$[.@i] + ""))
+ ":";
}
.@menustr$ = l("Surprise me!") + ":" + .@menustr$ + l("I'm fine for now, thank you.");
.@idx = select(.@menustr$);
if (.@idx == .@i + 2) return;
switch (@menu)
{
case 1:
do
{
.@rand_color = rand(0, .@hairsizearray);
} while (.@rand_color == getlook(LOOK_HAIR_COLOR));
setlook LOOK_HAIR_COLOR, .@rand_color;
BarberSayStyle 2;
break;
default:
setlook LOOK_HAIR_COLOR, (@menu - 2);
break;
}
.@menustr$ = "";
} while (1);
return;
}