muttonstache
muttonstache from Pastebin
Muttonstache Pastebin Muttonstache balding bathroom paste
BARBER_SHOP = BARBER_SHOP or {}
BARBER_SHOP_PLAYERS = BARBER_SHOP_PLAYERS or {} -- don't change
local BS = BARBER_SHOP
BS.CurrentLanguage = "en"
BS.ScissorsWangSpeed = 3 -- speed of wang
BS.ScissorsRange = 150 -- width of success zone
BS.MaxScissorsDistance = 75 * 75 -- max distance on what barber can work
BS.BarberFixedSalary = 100 -- if this more than 0, then barber will get fixed salary for every haircut. Otherwise, he'll get money depending on haircut's price
BS.RandomizeOnFailure = true -- if barber's failed, then randomize haircut or beard
BS.FailureSound = "vo/npc/male01/whoops01.wav" -- leave "false" wihtout captions if you don't want to use it
BS.DefaultDifficulty = 4 -- this is default difficulty of haircut (will be used, if not difficulty set in config for haircut or beard)
BS.RenderDistance = 125 * 125
BS.BarberKey = KEY_E -- look for this https://wiki.facepunch.com/gmod/Enums/KEY if you want to change it
BS.BeardIcon = Material("barbershop_ui/beard_icon.png")
BS.HairIcon = Material("barbershop_ui/hair_icon.png")
BS.BarberIcon = Material("barbershop_ui/barber_icon.png")
BS.Barbers = {
[1] = {
Name = "Alizee Jacotey",
Model = "models/alyx.mdl",
Color = Color(255, 200, 0),
HiSound = Sound("vo/npc/female01/hi01.wav"), --the sound barber emits, when you interact with him
Title = "L'Alize Barbeur",
Logo = Material("barbershop_ui/lalize.png", "smooth"),
},
[2] = {
Name = "Robbie Williams",
Model = "models/Barney.mdl",
Color = Color(0, 255, 100),
HiSound = Sound("vo/npc/male01/hi01.wav"),
Title = "Robbie's Band",
Logo = Material("barbershop_ui/robbie_williams.png", "smooth"), -- if set, then this logo will be at menu, instead of default one
},
}
--Logos must be 512x512
BS.DefaultBarberLogo = Material("barbershop_ui/default_logo.png", "smooth") -- This logo will be used if no logo for Barber assigned. Material() is used automatically, so don't adjust it
BS.Colors = { -- UI colors
BG = Color(0,0,0,220),
TopGradient = Color(0,0,0),
BottomGradient = Color(0,0,0),
TitleClr = Color(255,255,255),
ButtonsOutline = Color(0,0,0),
HairButtonClr = Color(255, 220, 0), -- also affects overhead color
BeardButtonClr = Color(250, 100, 0), -- also affects overhead color
ButtonsHover = Color(255,255,255),
ScrollerBG = Color(0,0,0, 150),
StyleNameClr = Color(255, 255,255),
PriceClr = Color(0, 255, 0),
BuyButtonClr = Color(0, 0, 0, 220),
BuyButtonTextClr = Color(255,255,255),
BuyButtonTextHover = Color(0,0,0),
NPCNameBG = Color(0,0,0,220),
Wang = Color(255, 200, 0),
ScissorsZoneClr = Color(255,255,255),
ScissorsBG = Color(0,0,0,220),
OverheadStyleName = Color(255, 255, 255),
BarberIconColor = Color(255, 200, 0)
}
BS.AdminMenu = { -- users, that are allowed to spawn and save npc and open admin menu. Supports UserGroup, SteamID and SteamID64
["superadmin"] = true,
}
BS.BeardBlackList = {
} -- List of player models, that are not will be able to use beard (like female models)
BS.HairBlackList = {
-- ["models/player/group01/male_07.mdl"] = true,
} -- List of player models, that are not will be able to use hair
--Use model path inside Model() function to precache model, so it will not lag, when model appears first time
--1st is name, 2nd is model, 3rd is price, 4th is barber ID, if set then only barbers with this ID can do that beard
--Example
--[[
[X] = {
"Test Beard",
"beard.mdl",
50,
{[1] = true, -- don't set if you want to allow this for all barbers
[2] = true}
}
]]--
BS.Beards = {
[1] = {"Shaved","", 50}, -- do not remove that
[2] = {"Base", Model("models/barbershop/beard/base.mdl"), 50, {[2] = true}},
[3] = {"Hipster", Model("models/barbershop/beard/hipster.mdl"), 50, {[2] = true}},
[4] = {"Nostalgia", Model("models/barbershop/beard/nostalgia.mdl"), 50, {[2] = true}},
[5] = {"Mustache", Model("models/barbershop/beard/mustache.mdl"), 50, {[2] = true}},
[6] = {"Whiskers", Model("models/barbershop/beard/whiskers.mdl"), 50, {[2] = true}},
[7] = {"Puff", Model("models/barbershop/beard/puff.mdl"), 50, {[2] = true}},
-- [6] = {"Bard", Model("models/mosi/fallout4/character/facialhair/bard.mdl"), 50},
-- [7] = {"Beast", Model("models/mosi/fallout4/character/facialhair/beast.mdl"), 50},
-- [8] = {"Chopper", Model("models/mosi/fallout4/character/facialhair/chopper.mdl"), 50},
-- [9] = {"Deadman's Hand", Model("models/mosi/fallout4/character/facialhair/deadmanshand.mdl"), 50},
-- [10] = {"Doomsday Prepper", Model("models/mosi/fallout4/character/facialhair/doomsdayprepper.mdl"), 50},
-- [11] = {"Gettysburg", Model("models/mosi/fallout4/character/facialhair/gettysburg.mdl"), 50},
-- [12] = {"Goatee", Model("models/mosi/fallout4/character/facialhair/goatee.mdl"), 50, {[1] = true}},
-- [13] = {"Hollywood", Model("models/mosi/fallout4/character/facialhair/hollywood.mdl"), 50},
-- [14] = {"Honestabe", Model("models/mosi/fallout4/character/facialhair/honestabe.mdl"), 50},
-- [15] = {"Hombre", Model("models/mosi/fallout4/character/facialhair/hombre.mdl"), 50},
-- [16] = {"Muttonstache", Model("models/mosi/fallout4/character/facialhair/muttonstache.mdl"), 50},
-- [17] = {"O My", Model("models/mosi/fallout4/character/facialhair/o_my.mdl"), 50},
-- [18] = {"Prospector", Model("models/mosi/fallout4/character/facialhair/prospector.mdl"), 50},
-- [19] = {"Shenandoah", Model("models/mosi/fallout4/character/facialhair/shenandoah.mdl"), 50},
-- [20] = {"Smooth Operator", Model("models/mosi/fallout4/character/facialhair/smoothoperator.mdl"), 50},
-- [21] = {"Soul Patch", Model("models/mosi/fallout4/character/facialhair/soulpatch.mdl"), 50},
-- [22] = {"Straight Flush", Model("models/mosi/fallout4/character/facialhair/straightflush.mdl"), 50},
-- [23] = {"Survivalist", Model("models/mosi/fallout4/character/facialhair/survivalist.mdl"), 50},
}
--1st is name, 2nd is model's bodygroup (APB Hair Models use 1 model and bodygroups for it, so if you wanna use some another model,
--not APB's one, just write string except number, otherwise it will set bodygroup for apb model), 3rd is price, 4th is barber ID, if set then only barbers with this ID can do that hair
BS.Haircuts = {
[1] = {"Bald", 99, 50}, -- first id will not draw always
[2] = {"Himekawa", Model("models/barbershop/hair/himekawa.mdl"), 50},
[3] = {"Intelligent", Model("models/barbershop/hair/intelligent.mdl"), 50},
[4] = {"Iroquois", Model("models/barbershop/hair/iroquois.mdl"), 50},
[5] = {"Mad Science", Model("models/barbershop/hair/mad_science.mdl"), 50},
[6] = {"Willow", Model("models/barbershop/hair/willow.mdl"), 50},
-- [6] = {"Front Flip", 0, 50},
-- [7] = {"Parted Left", 1, 50},
-- [8] = {"Parted Middle", 2, 50},
-- [9] = {"Parted Right", 3, 50},
-- [10] = {"Loverboy 1", 4, 50},
-- [11] = {"Loverboy 2", 5, 50},
-- [12] = {"Duck Tail 1", 6, 50},
-- [13] = {"Duck Tail 2", 7, 50},
-- [14] = {"Emo", 8, 50},
-- [15] = {"Shoulder 1", 9, 50},
-- [16] = {"Shoulder 2", 10, 50},
-- [17] = {"Pony Tail", 11, 50},
-- [18] = {"Dreadlocks", 12, 50},
-- [19] = {"Afro", 13, 50},
-- [20] = {"Fins", 14, 50},
-- [21] = {"Mohawk 1", 15, 50},
-- [22] = {"Mohawk 2", 16, 50},
-- [23] = {"Mohawk 3", 17, 50},
-- [24] = {"Anime 1", 18, 50},
-- [25] = {"Anime 2", 19, 50},
}
-- sometime happens, that certain offset fits for all haircuts. In that case use "all" key value or "apb" for APB hair only or "barber" for custom ones
BS.HairOffsets = {
["male_05"] = {
["apb"] = {
X = 0.53,
S = 1,
Y = 0.04,
Z = -0.23,
Yaw = 0,
}
},
["male_04"] = {
["apb"] = {
X = 1.2,
S = 0.94,
Y = 1.43,
Z = 0,
Yaw = 7.36,
},
[2] = {
X = 1.39,
S = 0.95,
Y = 0,
Z = 5.36,
Yaw = 21.94,
},
[3] = {
X = 0.77,
S = 1,
Y = 0,
Z = 7.14,
Yaw = 17.18,
},
[4] = {
X = 1.41,
S = 1,
Y = 0,
Z = 5.59,
Yaw = 17.18,
},
[5] = {
X = 1.41,
S = 0.74,
Y = 0,
Z = 7.73,
Yaw = 17.18,
},
[6] = {
X = 0.23,
S = 1,
Y = 0,
Z = 7.95,
Yaw = 0,
},
},
}
BS.BeardOffsets = {
["male_04"] = {
[2] = {
X = -3.68,
S = 0.8,
Y = 0,
Z = 1.5,
Yaw = 0,
},
[3] = {
X = -2.5,
S = 0.8,
Y = 0,
Z = 2.32,
Yaw = -25.36,
},
[4] = {
X = -6.77,
S = 1.5,
Y = 0,
Z = 1.32,
Yaw = 4.09,
},
[5] = {
X = -3.68,
S = 0.8,
Y = 0,
Z = 1.5,
Yaw = 0,
},
[6] = {
X = -3.45,
S = 0.86,
Y = 0.17,
Z = 2.29,
Yaw = 1.54,
},
[7] = {
X = -3.95,
S = 0.86,
Y = 0.17,
Z = 2.23,
Yaw = -4.27,
},
}
}
--Language config
BS.Language = BS.Language or {}
BS.Language["en"] = { -- UI lines
DefaultTitle = "Barber Shop",
SubTitle = "Make yourself individual!",
Beards = "Beards",
Haircuts = "Haircuts",
Confirmation = "You sure you want to do that?",
BuyText = "Buy",
ColorText = "Haircut/Beard Color",
Yes = "Yes",
No = "No",
BeardBuyNotify = "You've got a new beard: ",
HairBuyNotify = "You've got a new hair: ",
ScissorsSuccessNotify = "Success!",
ScissorsSuccessFinish = "You have successfully finished this haircut!",
ScissorsFailureNotify = "You have failured this haircut!",
ScissorsStartWorking = "You have started working, now players can ask for haircuts!",
ScissorsStopWorking = "You have stopped working, now players can't ask for haircuts!",
Difficulty = "Difficulty: ",
BarberOverhead = "Press E to ask for haircut or beard",
}
BS.Language["ru"] = { -- UI lines
DefaultTitle = "Барбер-шоп",
SubTitle = "Вырази свою индивидуальость!",
Beards = "Бороды",
Haircuts = "Прически",
Confirmation = "Вы уверены, что хотите сделать это?",
BuyText = "Купить",
Yes = "Да",
No = "Нет",
ColorText = "Цвет бороды или прически",
BeardBuyNotify = "У тебя новый стиль бороды: ",
HairBuyNotify = "У тебя новый стиль прически: ",
ScissorsSuccessNotify = "Успех!",
ScissorsSuccessFinish = "Вы успешно завершили стрижку!",
ScissorsFailureNotify = "Вы провалились с этой стрижкой!",
ScissorsStartWorking = "Вы начали работать, теперь игроки могут заказать стрижку!",
ScissorsStopWorking = "Вы перестали работать, теперь игроки не смогут заказать у вас стрижку!",
Difficulty = "Сложность: ",
BarberOverhead = "Нажмите Е, чтобы заказать прическу или бороду",
}
BS.formatMoney = function(amount) -- change this if you use another money format function
return DarkRP.formatMoney(amount)
end
if SERVER then
BS.addMoney = function(ply, amount) -- change this if you use another gamemode, than DarkRP
ply:addMoney(amount)
end
BS.canAfford = function(ply, amount) -- change this if you use another gamemode, than DarkRP
return ply:canAfford(amount)
end
BS.sendNotify = function(ply, type, len, text) -- default DarkRP notify function, you're able to change this too
DarkRP.notify(ply, type or 1, len or 4, text)
end
include("barbershop/sv_barber.lua")
AddCSLuaFile( "barbershop/cl_barberdraw.lua" )
AddCSLuaFile( "barbershop/cl_barbermenu.lua" )
AddCSLuaFile( "barbershop/cl_adminmenu.lua" )
resource.AddFile("resource/fonts/gardens.ttf")
resource.AddFile("resource/fonts/mastodon.ttf")
else
include( "barbershop/cl_barberdraw.lua" )
include( "barbershop/cl_barbermenu.lua" )
include( "barbershop/cl_adminmenu.lua" )
end