Compare commits

...

11 commits

Author SHA1 Message Date
LostTrackpad
accb2075a2
Merge 2d46b1fc30 into 45c2c77bc3 2024-11-09 18:50:24 +05:00
45c2c77bc3
proper arc9 random weapons 2024-11-08 21:57:50 +05:00
d7d9a16250
testing random arc9 weapons 2024-11-08 21:35:11 +05:00
Jonny_Bro (Nikita)
2d46b1fc30
add button hints tools menu translation (RU) 2024-10-04 09:44:29 +05:00
LostTrackpad
1e169983bc Tool menu button hint toggle 2024-10-03 15:32:25 +07:00
Jonny_Bro (Nikita)
7c5bbf44aa
Ru translation for button hints 2024-10-03 13:13:50 +05:00
LostTrackpad
3cf1eb5160 Localization placeholders for every other language 2024-10-03 15:07:48 +07:00
LostTrackpad
5730535f50 Remove localization reminder (lmao) 2024-10-03 15:02:31 +07:00
LostTrackpad
f00f96bf01 Remove some fork-specific stuff 2024-10-03 14:43:27 +07:00
LostTrackpad
9904f72b5e Add button hints and localization from dev branch 2024-10-03 14:39:22 +07:00
LostTrackpad
a02f2c870c
Merge pull request #10 from JonnyBro/main
pull some stuff before I can push
2024-09-24 20:43:44 +07:00
15 changed files with 448 additions and 77 deletions

View file

@ -124,6 +124,9 @@ beatrun.toolsmenu.hud.textcolor=HUD Text Color
beatrun.toolsmenu.hud.cornercolor=HUD Corner Color
beatrun.toolsmenu.hud.floatxpcolor=HUD Floating XP Color
beatrun.toolsmenu.hud.buttonhints=Show Button Hints
beatrun.toolsmenu.hud.buttonhintsdesc=Display button hints on the bottom right of the HUD.
# Tools Menu Camera Section
beatrun.toolsmenu.camera.name=Camera
beatrun.toolsmenu.camera.desc=Camera Settings
@ -269,3 +272,28 @@ beatrun.infection.end=The game has ended!\nSurvivors: %s\nRestarting in 15s
# Server ConVars
beatrun.randommwloadouts=Random MW Base Loadouts
beatrun.randommwloadoutsdesc=Toggles random MW Base loadouts in Deathmatch and DataTheft
# Button hints thingy
beatrun.buttonhints.hold=(Hold)
beatrun.buttonhints.timed=(Timed)
beatrun.buttonhints.ttcheckpoint=Return To Checkpoint
beatrun.buttonhints.ttrestart=Restart Course
beatrun.buttonhints.sidestep=Sidestep
beatrun.buttonhints.quickturn=Quickturn
beatrun.buttonhints.dive=Dive
beatrun.buttonhints.crouchjump=Coil
beatrun.buttonhints.fasthorfall=Safety Roll
beatrun.buttonhints.slowhorfall=Safe Landing
beatrun.buttonhints.vaultjump=Springboard
beatrun.buttonhints.move=Move
beatrun.buttonhints.jump=Jump
beatrun.buttonhints.drop=Drop
beatrun.buttonhints.climb=Climb Up
beatrun.buttonhints.ladderdescend=Slide Down
beatrun.buttonhints.balance=Balance
beatrun.buttonhints.balanceturn=Turn Around
beatrun.buttonhints.balanceforward=Move Forward
beatrun.buttonhints.grapplelonger=Extend Grapple
beatrun.buttonhints.grappleshorter=Shorten Grapple
beatrun.buttonhints.wallclimbcancel=Cancel Wallclimb
beatrun.buttonhints.wallclimbsidejump=Side Jump

View file

@ -114,6 +114,9 @@ beatrun.toolsmenu.hud.textcolor=Colore del testo dell'HUD
beatrun.toolsmenu.hud.cornercolor=Colore del bordo dell'HUD
beatrun.toolsmenu.hud.floatxpcolor=Colore XP mobile dell'HUD
beatrun.toolsmenu.hud.buttonhints=
beatrun.toolsmenu.hud.buttonhintsdesc=
# Tools Menu Camera Section
beatrun.toolsmenu.camera.name=Camera
beatrun.toolsmenu.camera.desc=Impostazioni Camera
@ -231,3 +234,28 @@ beatrun.infection.infectedby=ha contagiato
beatrun.infection.award=Ti sono stati assegnati 200 XP per essere sopravvissuto!
beatrun.infection.awardinfected=Ti sono stati assegnati 100 XP per essere generato come infetto!
beatrun.infection.end=La partita è finita\nSopravvissuti: %s\nRiavvio in 15s
# Button hints thingy
beatrun.buttonhints.hold=
beatrun.buttonhints.timed=
beatrun.buttonhints.ttcheckpoint=
beatrun.buttonhints.ttrestart=
beatrun.buttonhints.sidestep=
beatrun.buttonhints.quickturn=
beatrun.buttonhints.dive=
beatrun.buttonhints.crouchjump=
beatrun.buttonhints.fasthorfall=
beatrun.buttonhints.slowhorfall=
beatrun.buttonhints.vaultjump=
beatrun.buttonhints.move=
beatrun.buttonhints.jump=
beatrun.buttonhints.drop=
beatrun.buttonhints.climb=
beatrun.buttonhints.ladderdescend=
beatrun.buttonhints.balance=
beatrun.buttonhints.balanceturn=
beatrun.buttonhints.balanceforward=
beatrun.buttonhints.grapplelonger=
beatrun.buttonhints.grappleshorter=
beatrun.buttonhints.wallclimbcancel=
beatrun.buttonhints.wallclimbsidejump=

View file

@ -124,6 +124,9 @@ beatrun.toolsmenu.hud.textcolor=Kolor tekstu interfejsu
beatrun.toolsmenu.hud.cornercolor=Kolor rogu interfejsu
beatrun.toolsmenu.hud.floatxpcolor=Kolor "unoszących się" punktów PD na interfejsie
beatrun.toolsmenu.hud.buttonhints=
beatrun.toolsmenu.hud.buttonhintsdesc=
# Tools Menu Camera Section
beatrun.toolsmenu.camera.name=Kołysanie kamery w ruchu
beatrun.toolsmenu.camera.desc=Ustawienia kołysania kamery w ruchu
@ -269,3 +272,28 @@ beatrun.infection.end=Rozgrywka zakończkona!\nPrzetrwańcy: %s\nReset za 15s
# Server ConVars
beatrun.randommwloadouts=Losowe uzbrojenie MW Base
beatrun.randommwloadoutsdesc=Włącz/Wyłącz losowe uzbrojenie MW Base w trybach Pojedynku i Kradzieży danych
# Button hints thingy
beatrun.buttonhints.hold=
beatrun.buttonhints.timed=
beatrun.buttonhints.ttcheckpoint=
beatrun.buttonhints.ttrestart=
beatrun.buttonhints.sidestep=
beatrun.buttonhints.quickturn=
beatrun.buttonhints.dive=
beatrun.buttonhints.crouchjump=
beatrun.buttonhints.fasthorfall=
beatrun.buttonhints.slowhorfall=
beatrun.buttonhints.vaultjump=
beatrun.buttonhints.move=
beatrun.buttonhints.jump=
beatrun.buttonhints.drop=
beatrun.buttonhints.climb=
beatrun.buttonhints.ladderdescend=
beatrun.buttonhints.balance=
beatrun.buttonhints.balanceturn=
beatrun.buttonhints.balanceforward=
beatrun.buttonhints.grapplelonger=
beatrun.buttonhints.grappleshorter=
beatrun.buttonhints.wallclimbcancel=
beatrun.buttonhints.wallclimbsidejump=

View file

@ -116,6 +116,9 @@ beatrun.toolsmenu.hud.textcolor=Cor de Texto da HUD
beatrun.toolsmenu.hud.cornercolor=Color do Canto da HUD
beatrun.toolsmenu.hud.floatxpcolor=Color do XP Flutuante
beatrun.toolsmenu.hud.buttonhints=
beatrun.toolsmenu.hud.buttonhintsdesc=
# Tools Menu Camera Section
beatrun.toolsmenu.camera.name=Viewbob
beatrun.toolsmenu.camera.desc=Configuraçoes do Viewbob
@ -235,3 +238,28 @@ beatrun.infection.infectedby=infectou
beatrun.infection.award=Você ganhou 200 XP por sobreviver como Humano!
beatrun.infection.awardinfected=Você ganhou 100 XP por spawnar como Infectado!
beatrun.infection.end=O Jogo Terminou!\nSobreviventes: %s\nReiniciando em 15s
# Button hints thingy
beatrun.buttonhints.hold=
beatrun.buttonhints.timed=
beatrun.buttonhints.ttcheckpoint=
beatrun.buttonhints.ttrestart=
beatrun.buttonhints.sidestep=
beatrun.buttonhints.quickturn=
beatrun.buttonhints.dive=
beatrun.buttonhints.crouchjump=
beatrun.buttonhints.fasthorfall=
beatrun.buttonhints.slowhorfall=
beatrun.buttonhints.vaultjump=
beatrun.buttonhints.move=
beatrun.buttonhints.jump=
beatrun.buttonhints.drop=
beatrun.buttonhints.climb=
beatrun.buttonhints.ladderdescend=
beatrun.buttonhints.balance=
beatrun.buttonhints.balanceturn=
beatrun.buttonhints.balanceforward=
beatrun.buttonhints.grapplelonger=
beatrun.buttonhints.grappleshorter=
beatrun.buttonhints.wallclimbcancel=
beatrun.buttonhints.wallclimbsidejump=

View file

@ -121,6 +121,9 @@ beatrun.toolsmenu.hud.textcolor=Цвет Текста в HUD
beatrun.toolsmenu.hud.cornercolor=Цвет Края в HUD
beatrun.toolsmenu.hud.floatxpcolor=Цвет Всплывающего XP в HUD
beatrun.toolsmenu.hud.buttonhints=Показывать подсказки клавиш
beatrun.toolsmenu.hud.buttonhintsdesc=Показывает подсказки по клавишам в правом нижнем углу
# Tools Menu Camera Section
beatrun.toolsmenu.camera.name=Камера
beatrun.toolsmenu.camera.desc=Настройки камеры
@ -266,3 +269,28 @@ beatrun.infection.end=Игра окончена!\nВыжившие: %s\nПере
# Server ConVars
beatrun.randommwloadouts=Случайные наборы оружия MW Base
beatrun.randommwloadoutsdesc=Переключает случайные наборы оружия MW Base в Deathmatch и DataTheft
# Button Hints
beatrun.buttonhints.hold=(держать)
beatrun.buttonhints.timed=(тайминг)
beatrun.buttonhints.ttcheckpoint=Вернуться к чекпоинту
beatrun.buttonhints.ttrestart=Перезапустить курс
beatrun.buttonhints.sidestep=Рывок в строну
beatrun.buttonhints.quickturn=Быстрый разворот
beatrun.buttonhints.dive=Нырнуть
beatrun.buttonhints.crouchjump=Поджать ноги
beatrun.buttonhints.fasthorfall=Кувырок
beatrun.buttonhints.slowhorfall=Безопасное приземление
beatrun.buttonhints.vaultjump=Отпрыгнуть
beatrun.buttonhints.move=Движение
beatrun.buttonhints.jump=Прыжок
beatrun.buttonhints.drop=Спрыгнуть
beatrun.buttonhints.climb=Подняться
beatrun.buttonhints.ladderdescend=Спуститься
beatrun.buttonhints.balance=Балансировать
beatrun.buttonhints.balanceturn=Развернуться
beatrun.buttonhints.balanceforward=Идти вперёд
beatrun.buttonhints.grapplelonger=Увеличить верёвку
beatrun.buttonhints.grappleshorter=Укоротить верёвку
beatrun.buttonhints.wallclimbcancel=Слезть со стены
beatrun.buttonhints.wallclimbsidejump=Прыжок в сторону

View file

@ -116,6 +116,9 @@ beatrun.toolsmenu.hud.textcolor=Arayüz Metin Rengi
beatrun.toolsmenu.hud.cornercolor=Arayüz Köşe Rengi
beatrun.toolsmenu.hud.floatxpcolor=Arayüz Süzülen XP Rengi
beatrun.toolsmenu.hud.buttonhints=
beatrun.toolsmenu.hud.buttonhintsdesc=
# Tools Menu Camera Section
beatrun.toolsmenu.camera.name=Görüntü Sarsılması
beatrun.toolsmenu.camera.desc=Görüntü Sarsılma Ayarları
@ -235,3 +238,28 @@ beatrun.infection.infectedby=enfekte etti
beatrun.infection.award=Hayatta kaldığın için 200 XP ile ödüllendirildin!
beatrun.infection.awardinfected=Enfekte olarak canlandığın için 100 XP ile ödüllendirildin!
beatrun.infection.end=Oyun sona erdi!\nYaşayanlar: %s\n15 saniye içinde \nyeniden başlıyor
# Button hints thingy
beatrun.buttonhints.hold=
beatrun.buttonhints.timed=
beatrun.buttonhints.ttcheckpoint=
beatrun.buttonhints.ttrestart=
beatrun.buttonhints.sidestep=
beatrun.buttonhints.quickturn=
beatrun.buttonhints.dive=
beatrun.buttonhints.crouchjump=
beatrun.buttonhints.fasthorfall=
beatrun.buttonhints.slowhorfall=
beatrun.buttonhints.vaultjump=
beatrun.buttonhints.move=
beatrun.buttonhints.jump=
beatrun.buttonhints.drop=
beatrun.buttonhints.climb=
beatrun.buttonhints.ladderdescend=
beatrun.buttonhints.balance=
beatrun.buttonhints.balanceturn=
beatrun.buttonhints.balanceforward=
beatrun.buttonhints.grapplelonger=
beatrun.buttonhints.grappleshorter=
beatrun.buttonhints.wallclimbcancel=
beatrun.buttonhints.wallclimbsidejump=

View file

@ -120,6 +120,9 @@ beatrun.toolsmenu.hud.textcolor=Колір Тексту в HUD
beatrun.toolsmenu.hud.cornercolor=Колір Краю в HUD
beatrun.toolsmenu.hud.floatxpcolor=Колір спливаючого XP в HUD
beatrun.toolsmenu.hud.buttonhints=
beatrun.toolsmenu.hud.buttonhintsdesc=
# Tools Menu Camera Section
beatrun.toolsmenu.camera.name=Покачування Камери
beatrun.toolsmenu.camera.desc=Налаштування похитування камери
@ -252,3 +255,28 @@ beatrun.infection.end=Гра закінчена!\nВиживші: %s\nПерез
# Server ConVars
beatrun.randommwloadouts=Випадкові набори зброї MW Base
beatrun.randommwloadoutsdesc=Перемикає випадкові набори зброї MW Base у Deathmatch і DataTheft
# Button hints thingy
beatrun.buttonhints.hold=
beatrun.buttonhints.timed=
beatrun.buttonhints.ttcheckpoint=
beatrun.buttonhints.ttrestart=
beatrun.buttonhints.sidestep=
beatrun.buttonhints.quickturn=
beatrun.buttonhints.dive=
beatrun.buttonhints.crouchjump=
beatrun.buttonhints.fasthorfall=
beatrun.buttonhints.slowhorfall=
beatrun.buttonhints.vaultjump=
beatrun.buttonhints.move=
beatrun.buttonhints.jump=
beatrun.buttonhints.drop=
beatrun.buttonhints.climb=
beatrun.buttonhints.ladderdescend=
beatrun.buttonhints.balance=
beatrun.buttonhints.balanceturn=
beatrun.buttonhints.balanceforward=
beatrun.buttonhints.grapplelonger=
beatrun.buttonhints.grappleshorter=
beatrun.buttonhints.wallclimbcancel=
beatrun.buttonhints.wallclimbsidejump=

View file

@ -0,0 +1,183 @@
local buttonhints = CreateClientConVar("Beatrun_HUDButtonHints", "1", true, false, "Show button hints on the bottom-right of your display when enabled.", 0, 1)
local function GetFormattedKey(bind)
string = input.LookupBinding(bind)
if string == "MOUSE1" then string = "LMB" -- Don't localize LMB and RMB. Maybe.
elseif string == "MOUSE2" then string = "RMB"
elseif string == "MOUSE3" then string = "Wheel Click" end
if string then
return string.upper(string)
else
return "UNBOUND"
end
end
surface.CreateFont("BeatrunButtons", {
shadow = true,
blursize = 0,
underline = false,
rotary = false,
strikeout = false,
additive = false,
antialias = false,
extended = false,
scanlines = 2,
font = "x14y24pxHeadUpDaisy",
italic = false,
outline = false,
symbol = false,
weight = 500,
size = ScreenScale(7)
})
surface.CreateFont("BeatrunButtonsSmall", {
shadow = true,
blursize = 0,
underline = false,
rotary = false,
strikeout = false,
additive = false,
antialias = false,
extended = false,
scanlines = 2,
font = "x14y24pxHeadUpDaisy",
italic = false,
outline = false,
symbol = false,
weight = 500,
size = ScreenScale(6)
})
hook.Add("HUDPaint", "BeatrunButtonPrompts", function()
if !buttonhints:GetBool() then return end
local ply = LocalPlayer()
if ply.FallStatic then return end -- you're certainly dead by that point, can't even do anything
local text_color = string.ToColor(ply:GetInfo("Beatrun_HUDTextColor"))
local box_color = string.ToColor(ply:GetInfo("Beatrun_HUDCornerColor"))
local RestartAtCheckpoint = GetConVar("Beatrun_CPSave"):GetBool()
local QuickturnGround = GetConVar("Beatrun_QuickturnGround"):GetBool()
local QuickturnHandsOnly = GetConVar("Beatrun_QuickturnHandsOnly"):GetBool()
local QuickturnSpecialCase = ply:GetClimbing() != 0 or ply:GetMantle() >= 4 or ply:GetWallrun() != 0 or IsValid(ply:GetLadder()) or ply:GetGrappling() or ply:GetDive() or ply:GetSliding() or IsValid(ply:GetBalanceEntity()) or IsValid(ply:GetZipline())
-- Case-catcher (?) for when quickturn/sidestep prompt shouldn't appear.
local ButtonsTable = {} -- initialize/clear button table
surface.SetFont("BeatrunButtons")
fontheight = select(2, surface.GetTextSize("Placeholder, do not localize")) * 1.5
if Course_Name != "" and RestartAtCheckpoint and ply:GetNW2Int("CPNum", -1) > 1 then
ButtonsTable[#ButtonsTable + 1] = {language.GetPhrase("beatrun.buttonhints.ttcheckpoint"), {GetFormattedKey("+reload")}}
ButtonsTable[#ButtonsTable + 1] = {language.GetPhrase("beatrun.buttonhints.ttrestart"), {"HELDPRESS", GetFormattedKey("+reload")}}
elseif Course_Name != "" then
ButtonsTable[#ButtonsTable + 1] = {language.GetPhrase("beatrun.buttonhints.ttrestart"), {GetFormattedKey("+reload")}}
end
if ply:OnGround() and ply:UsingRH() and !QuickturnSpecialCase then
ButtonsTable[#ButtonsTable + 1] = {language.GetPhrase("beatrun.buttonhints.sidestep"), {GetFormattedKey("+moveleft"), "OR", GetFormattedKey("+moveright"), "AND", GetFormattedKey("+attack2")}}
end
if (!ply:OnGround() or QuickturnGround) and (ply:UsingRH() or (ply:notUsingRH() and !QuickturnHandsOnly)) and not QuickturnSpecialCase then
ButtonsTable[#ButtonsTable + 1] = {language.GetPhrase("beatrun.buttonhints.quickturn"), {GetFormattedKey("+attack2")}}
end
if !ply:OnGround() and ply:UsingRH() and not QuickturnSpecialCase then
if !ply:GetDive() then
ButtonsTable[#ButtonsTable + 1] = {language.GetPhrase("beatrun.buttonhints.dive"), {GetFormattedKey("+duck"), "AND", GetFormattedKey("+attack2")}}
end
if !ply:GetCrouchJump() then
ButtonsTable[#ButtonsTable + 1] = {language.GetPhrase("beatrun.buttonhints.crouchjump"), {GetFormattedKey("+duck")}}
end
end
if !ply:OnGround() and !ply:GetCrouchJump() and !ply:GetDive() then
if ply:GetVelocity():Length2D() > 220 and ply:GetVelocity().z <= -350 and !QuickturnSpecialCase then
ButtonsTable[#ButtonsTable + 1] = {language.GetPhrase("beatrun.buttonhints.fasthorfall"), {"TIMEDPRESS", GetFormattedKey("+duck")}}
elseif ply:GetVelocity().z <= -350 and !QuickturnSpecialCase then
ButtonsTable[#ButtonsTable + 1] = {language.GetPhrase("beatrun.buttonhints.slowhorfall"), {"TIMEDPRESS", GetFormattedKey("+duck")}}
end
end
if ply:GetMantle() == 2 then
ButtonsTable[#ButtonsTable + 1] = {language.GetPhrase("beatrun.buttonhints.vaultjump"), {"HELDPRESS", GetFormattedKey("+jump")}}
end
if ply:GetClimbing() != 0 then
local ang = EyeAngles()
ang = math.abs(math.AngleDifference(ang.y, ply.wallang.y))
ButtonsTable[#ButtonsTable + 1] = {language.GetPhrase("beatrun.buttonhints.move"), {GetFormattedKey("+moveleft"), "OR", GetFormattedKey("+moveright")}}
ButtonsTable[#ButtonsTable + 1] = {language.GetPhrase("beatrun.buttonhints.drop"), {GetFormattedKey("+duck")}}
if ang <= 42 then
ButtonsTable[#ButtonsTable + 1] = {language.GetPhrase("beatrun.buttonhints.climb"), {GetFormattedKey("+forward")}}
else
ButtonsTable[#ButtonsTable + 1] = {language.GetPhrase("beatrun.buttonhints.jump"), {GetFormattedKey("+forward"), "AND", GetFormattedKey("+jump")}}
end
end
if ply:GetWallrun() == 1 then
ButtonsTable[#ButtonsTable + 1] = {language.GetPhrase("beatrun.buttonhints.quickturn"), {GetFormattedKey("+attack2")}}
ButtonsTable[#ButtonsTable + 1] = {language.GetPhrase("beatrun.buttonhints.wallclimbcancel"), {GetFormattedKey("+duck")}}
ButtonsTable[#ButtonsTable + 1] = {language.GetPhrase("beatrun.buttonhints.wallclimbsidejump"), {GetFormattedKey("+moveleft"), "OR", GetFormattedKey("+moveright"), "AND", GetFormattedKey("+jump")}}
elseif ply:GetWallrun() != 0 then
ButtonsTable[#ButtonsTable + 1] = {language.GetPhrase("beatrun.buttonhints.quickturn"), {GetFormattedKey("+attack2")}}
ButtonsTable[#ButtonsTable + 1] = {language.GetPhrase("beatrun.buttonhints.wallclimbcancel"), {GetFormattedKey("+duck")}}
ButtonsTable[#ButtonsTable + 1] = {language.GetPhrase("beatrun.buttonhints.jump"), {GetFormattedKey("+jump")}}
end
if IsValid(ply:GetLadder()) then
ButtonsTable[#ButtonsTable + 1] = {language.GetPhrase("beatrun.buttonhints.climb"), {"HELDPRESS", GetFormattedKey("+forward")}}
ButtonsTable[#ButtonsTable + 1] = {language.GetPhrase("beatrun.buttonhints.ladderdescend"), {"HELDPRESS", GetFormattedKey("+back")}}
ButtonsTable[#ButtonsTable + 1] = {language.GetPhrase("beatrun.buttonhints.drop"), {GetFormattedKey("+duck")}}
elseif IsValid(ply:GetBalanceEntity()) then
ButtonsTable[#ButtonsTable + 1] = {language.GetPhrase("beatrun.buttonhints.balance"), {GetFormattedKey("+moveleft"), "OR", GetFormattedKey("+moveright")}}
ButtonsTable[#ButtonsTable + 1] = {language.GetPhrase("beatrun.buttonhints.balanceturn"), {GetFormattedKey("+attack2")}}
ButtonsTable[#ButtonsTable + 1] = {language.GetPhrase("beatrun.buttonhints.balanceforward"), {GetFormattedKey("+forward")}}
elseif IsValid(ply:GetZipline()) then
ButtonsTable[#ButtonsTable + 1] = {language.GetPhrase("beatrun.buttonhints.drop"), {GetFormattedKey("+duck")}}
elseif ply:GetGrappling() then
ButtonsTable[#ButtonsTable + 1] = {language.GetPhrase("beatrun.buttonhints.jump"), {GetFormattedKey("+jump")}}
ButtonsTable[#ButtonsTable + 1] = {language.GetPhrase("beatrun.buttonhints.grapplelonger"), {GetFormattedKey("+attack2")}}
ButtonsTable[#ButtonsTable + 1] = {language.GetPhrase("beatrun.buttonhints.grappleshorter"), {GetFormattedKey("+attack")}}
end
for i=1,#ButtonsTable do
local ButtonOrder = i
local LineOffset = math.max(ButtonOrder - 1, 0)
local ContainsSpecialText = false
tw = 0
for i=#ButtonsTable[ButtonOrder][2],1,-1 do
if ButtonsTable[ButtonOrder][2][i] == "TIMEDPRESS" then
draw.DrawText(language.GetPhrase("beatrun.buttonhints.timed"), "BeatrunButtonsSmall", ScrW() - ScreenScaleH(10) - tw - ScreenScaleH(2), ScrH() - ScreenScaleH(10) - fontheight * (1 + LineOffset), text_color, TEXT_ALIGN_RIGHT)
tw = tw + surface.GetTextSize(language.GetPhrase("beatrun.buttonhints.timed"))
ContainsSpecialText = true
elseif ButtonsTable[ButtonOrder][2][i] == "HELDPRESS" then
draw.DrawText(language.GetPhrase("beatrun.buttonhints.hold"), "BeatrunButtonsSmall", ScrW() - ScreenScaleH(10) - tw - ScreenScaleH(2), ScrH() - ScreenScaleH(10) - fontheight * (1 + LineOffset), text_color, TEXT_ALIGN_RIGHT)
tw = tw + surface.GetTextSize(language.GetPhrase("beatrun.buttonhints.hold"))
ContainsSpecialText = true
elseif ButtonsTable[ButtonOrder][2][i] == "OR" then
draw.DrawText("/", "BeatrunButtons", ScrW() - ScreenScaleH(10) - tw, ScrH() - ScreenScaleH(10) - fontheight * (1 + LineOffset), text_color, TEXT_ALIGN_RIGHT)
tw = tw + surface.GetTextSize("/")
elseif ButtonsTable[ButtonOrder][2][i] == "AND" then
draw.DrawText("+", "BeatrunButtons", ScrW() - ScreenScaleH(10) - tw, ScrH() - ScreenScaleH(10) - fontheight * (1 + LineOffset), text_color, TEXT_ALIGN_RIGHT)
tw = tw + surface.GetTextSize("+")
elseif ContainsSpecialText then
draw.WordBox(ScreenScaleH(2), ScrW() - ScreenScaleH(10) - tw, ScrH() - fontheight * (1 + LineOffset) - ScreenScaleH(10) - ScreenScaleH(1), ButtonsTable[ButtonOrder][2][i], "BeatrunButtons", box_color, text_color, TEXT_ALIGN_RIGHT, TEXT_ALIGN_TOP)
tw = tw + surface.GetTextSize(ButtonsTable[ButtonOrder][2][i]) + ScreenScaleH(2) * 2
else
draw.WordBox(ScreenScaleH(2), ScrW() - ScreenScaleH(10) - tw, ScrH() - fontheight * (1 + LineOffset) - ScreenScaleH(10) - ScreenScaleH(2), ButtonsTable[ButtonOrder][2][i], "BeatrunButtons", box_color, text_color, TEXT_ALIGN_RIGHT, TEXT_ALIGN_TOP)
tw = tw + surface.GetTextSize(ButtonsTable[ButtonOrder][2][i]) + ScreenScaleH(2) * 2
end
end
draw.DrawText(ButtonsTable[ButtonOrder][1], "BeatrunButtons", ScrW() - ScreenScaleH(10) - tw - ScreenScaleH(4), ScrH() - ScreenScaleH(10) - fontheight * (1 + LineOffset), text_color, TEXT_ALIGN_RIGHT)
end
end)

View file

@ -152,6 +152,9 @@ hook.Add("PopulateToolMenu", "Beatrun_ToolMenu", function()
panel:ClearControls()
panel:SetName("#beatrun.toolsmenu.hud.desc")
panel:CheckBox("#beatrun.toolsmenu.hud.buttonhints", "Beatrun_HUDButtonHints")
panel:ControlHelp("#beatrun.toolsmenu.hud.buttonhintsdesc")
panel:CheckBox("#beatrun.toolsmenu.hud.dynamic", "Beatrun_HUDDynamic")
panel:ControlHelp("#beatrun.toolsmenu.hud.dynamicdesc")

View file

@ -124,26 +124,7 @@ end
function PLAYER:Loadout()
if GetGlobalBool("GM_DATATHEFT") or GetGlobalBool("GM_DEATHMATCH") then
if GetConVar("Beatrun_RandomMWLoadouts"):GetBool() then
for i = 0, 1 do
local randomSWEP = getRandomMGBaseWeapon()
local w = self.Player:Give(randomSWEP.ClassName)
timer.Simple(1, function()
if w:GetPrimaryAmmoType() ~= -1 then self.Player:GiveAmmo(10000, w:GetPrimaryAmmoType(), true) end
if w:GetSecondaryAmmoType() ~= -1 then self.Player:GiveAmmo(5, w:GetSecondaryAmmoType(), true) end
end)
end
else
for _, v in ipairs(BEATRUN_GAMEMODES_LOADOUTS[math.random(#BEATRUN_GAMEMODES_LOADOUTS)]) do
local w = self.Player:Give(v)
timer.Simple(1, function()
if w:GetPrimaryAmmoType() ~= -1 then self.Player:GiveAmmo(10000, w:GetPrimaryAmmoType(), true) end
if w:GetSecondaryAmmoType() ~= -1 then self.Player:GiveAmmo(5, w:GetSecondaryAmmoType(), true) end
end)
end
end
Beatrun_GiveGMWeapon(self.Player)
else
self.Player:RemoveAllAmmo()
end

View file

@ -1,6 +1,9 @@
local vmatrixmeta = FindMetaTable("VMatrix")
local playermeta = FindMetaTable("Player")
CreateConVar("Beatrun_RandomMWLoadouts", 0, {FCVAR_REPLICATED, FCVAR_ARCHIVE})
CreateConVar("Beatrun_RandomARC9Loadouts", 0, {FCVAR_REPLICATED, FCVAR_ARCHIVE})
BEATRUN_GAMEMODES_LOADOUTS = {
{"weapon_357", "weapon_ar2"}
}
@ -87,3 +90,60 @@ function playermeta:notUsingRH(wep)
return false
end
end
function Beatrun_GiveAmmo(weapon, ply)
if weapon:GetPrimaryAmmoType() ~= -1 then ply:GiveAmmo(10000, weapon:GetPrimaryAmmoType(), true) end
if weapon:GetSecondaryAmmoType() ~= -1 then ply:GiveAmmo(5, weapon:GetSecondaryAmmoType(), true) end
end
function Beatrun_getRandomMWBaseSWEP()
local allWep = weapons.GetList()
local wepIndex = math.random(#allWep)
local wep = allWep[wepIndex]
if wep.Base == "mg_base" and not wep.AdminOnly then
return wep
else
return Beatrun_getRandomMWBaseSWEP()
end
end
function Beatrun_getRandomARC9SWEP()
local allWep = weapons.GetList()
local wepIndex = math.random(#allWep)
local wep = allWep[wepIndex]
if wep.Base == "arc9_cod2019_base" and not wep.AdminOnly then
return wep
else
return Beatrun_getRandomARC9SWEP()
end
end
function Beatrun_GiveGMWeapon(ply)
if GetConVar("Beatrun_RandomMWLoadouts"):GetBool() and not GetConVar("Beatrun_RandomARC9Loadouts"):GetBool() then
for i = 0, 1 do
local swep = Beatrun_getRandomMWBaseSWEP()
local w = ply:Give(swep.ClassName)
timer.Simple(1, function()
Beatrun_GiveAmmo(w, ply)
end)
end
elseif GetConVar("Beatrun_RandomARC9Loadouts"):GetBool() and not GetConVar("Beatrun_RandomMWLoadouts"):GetBool() then
for i = 0, 1 do
-- We don't need ammo because ARC9 got the infinite ammo option!
local swep = Beatrun_getRandomARC9SWEP()
ply:Give(swep.ClassName)
end
elseif not GetConVar("Beatrun_RandomARC9Loadouts"):GetBool() and not GetConVar("Beatrun_RandomMWLoadouts"):GetBool() then
for _, b in ipairs(BEATRUN_GAMEMODES_LOADOUTS[math.random(#BEATRUN_GAMEMODES_LOADOUTS)]) do
local w = v:Give(b)
timer.Simple(1, function()
Beatrun_GiveAmmo(w, ply)
end)
end
end
end

View file

@ -22,26 +22,7 @@ if SERVER then
v:Spawn()
end
if GetConVar("Beatrun_RandomMWLoadouts"):GetBool() then
for i = 0, 1 do
local randomSWEP = getRandomMGBaseWeapon()
local w = v:Give(randomSWEP.ClassName)
timer.Simple(1, function()
if w:GetPrimaryAmmoType() ~= -1 then v:GiveAmmo(10000, w:GetPrimaryAmmoType(), true) end
if w:GetSecondaryAmmoType() ~= -1 then v:GiveAmmo(5, w:GetSecondaryAmmoType(), true) end
end)
end
else
for _, b in ipairs(BEATRUN_GAMEMODES_LOADOUTS[math.random(#BEATRUN_GAMEMODES_LOADOUTS)]) do
local w = v:Give(b)
timer.Simple(1, function()
if w:GetPrimaryAmmoType() ~= -1 then v:GiveAmmo(10000, w:GetPrimaryAmmoType(), true) end
if w:GetSecondaryAmmoType() ~= -1 then v:GiveAmmo(5, w:GetSecondaryAmmoType(), true) end
end)
end
end
Beatrun_GiveGMWeapon(v)
end
end

View file

@ -2,20 +2,6 @@ if SERVER then
util.AddNetworkString("Deathmatch_Start")
util.AddNetworkString("Deathmatch_Sync")
CreateConVar("Beatrun_RandomMWLoadouts", 0, {FCVAR_REPLICATED, FCVAR_ARCHIVE})
function getRandomMGBaseWeapon()
local allWep = weapons.GetList()
local wepIndex = math.random(#allWep)
local wep = allWep[wepIndex]
if wep.Base == "mg_base" and not wep.AdminOnly then
return wep
else
return getRandomMGBaseWeapon()
end
end
function Beatrun_StartDeathmatch()
if GetGlobalBool("GM_DEATHMATCH") then return end
if Course_Name ~= "" then return end
@ -31,26 +17,7 @@ if SERVER then
v:Spawn()
end
if GetConVar("Beatrun_RandomMWLoadouts"):GetBool() then
for i = 0, 1 do
local randomSWEP = getRandomMGBaseWeapon()
local w = v:Give(randomSWEP.ClassName)
timer.Simple(1, function()
if w:GetPrimaryAmmoType() ~= -1 then v:GiveAmmo(10000, w:GetPrimaryAmmoType(), true) end
if w:GetSecondaryAmmoType() ~= -1 then v:GiveAmmo(5, w:GetSecondaryAmmoType(), true) end
end)
end
else
for _, b in ipairs(BEATRUN_GAMEMODES_LOADOUTS[math.random(#BEATRUN_GAMEMODES_LOADOUTS)]) do
local w = v:Give(b)
timer.Simple(1, function()
if w:GetPrimaryAmmoType() ~= -1 then v:GiveAmmo(10000, w:GetPrimaryAmmoType(), true) end
if w:GetSecondaryAmmoType() ~= -1 then v:GiveAmmo(5, w:GetSecondaryAmmoType(), true) end
end)
end
end
Beatrun_GiveGMWeapon(v)
end
end

View file

@ -1,4 +1,4 @@
VERSION_GLOBAL = "1.0.18"
VERSION_GLOBAL = "1.0.20"
VERSION_LATEST = ""
VERSION_CHECKED = false

View file

@ -1 +1 @@
1.0.18
1.0.20