Pastebin

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