diff --git a/LICENSE b/LICENSE index fdddb29..5c93f45 100644 --- a/LICENSE +++ b/LICENSE @@ -1,24 +1,13 @@ -This is free and unencumbered software released into the public domain. + DO WHAT THE FUCK YOU WANT TO PUBLIC LICENSE + Version 2, December 2004 -Anyone is free to copy, modify, publish, use, compile, sell, or -distribute this software, either in source code form or as a compiled -binary, for any purpose, commercial or non-commercial, and by any -means. + Copyright (C) 2004 Sam Hocevar -In jurisdictions that recognize copyright laws, the author or authors -of this software dedicate any and all copyright interest in the -software to the public domain. We make this dedication for the benefit -of the public at large and to the detriment of our heirs and -successors. We intend this dedication to be an overt act of -relinquishment in perpetuity of all present and future rights to this -software under copyright law. + Everyone is permitted to copy and distribute verbatim or modified + copies of this license document, and changing it is allowed as long + as the name is changed. -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, -EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF -MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. -IN NO EVENT SHALL THE AUTHORS BE LIABLE FOR ANY CLAIM, DAMAGES OR -OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, -ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR -OTHER DEALINGS IN THE SOFTWARE. + DO WHAT THE FUCK YOU WANT TO PUBLIC LICENSE + TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION -For more information, please refer to + 0. You just DO WHAT THE FUCK YOU WANT TO. diff --git a/README.md b/README.md index 0d7715d..67d4057 100644 --- a/README.md +++ b/README.md @@ -1,121 +1,125 @@ -# Beatrun | Community edition +# Beatrun | Community Edition -[![forthebadge](https://forthebadge.com/images/featured/featured-powered-by-electricity.svg)](https://forthebadge.com) -[![forthebadge](https://forthebadge.com/images/badges/powered-by-black-magic.svg)](https://forthebadge.com) +[![Powered by Electricity](https://forthebadge.com/images/featured/featured-powered-by-electricity.svg)](https://forthebadge.com) +[![Powered by Black Magic](https://forthebadge.com/images/badges/powered-by-black-magic.svg)](https://forthebadge.com) -[Click to join our Discord!](https://discord.gg/93Psubbgsg) +[**Join our Discord Community!**](https://discord.gg/93Psubbgsg) -* [Русский](./README.ru.md) +> *[Русский | Russian](./README.ru.md)* -**PLEASE READ EVERYTHING BEFORE ASKING QUESTIONS ON OUR SERVER!** +--- -Infamous parkour gamemode for Garry's Mod.\ -Fully open sourced and maintained by the community (like 4 people I think). +## 🚨 Important Notice -> [!IMPORTANT] -> This repository does not contain any malicious modules whatsoever. These modules are present for more functionality however: -> -> * Discord Rich Presence -> * Steam Presence -> -> **They are optional and can be removed at any time.**\ -> You can find all compiled modules **[here](lua/bin)** in the repository.\ -> Check **[Credits](#credits)** section for module source code. +### Please read this README thoroughly before asking questions -## Automatic Installation? +### The **only official source** for this fork is this GitHub repository. Workshop versions are outdated and unsupported -Not supported. I (LostTrackpad) am not going to set this up.[^2] +--- -## Manual Installation +## About -### *Method 1: Repository download and extract (easy)* +Beatrun is an **infamous parkour addon for Garry's Mod**, now fully open-sourced and maintained by the community. +It includes various improvements, new features, and enhanced functionality. -***Note**: `` is a placeholder for your Garry's Mod game folder.* - -1. **[Download this repository](https://github.com/LostTrackpad/beatrun-forked/archive/refs/heads/dev.zip)**. -2. **Delete the `beatrun` folder in *`/garrysmod/addons`* if you have one.** -3. Extract the `beatrun-main/beatrun` folder to *`/garrysmod/addons`*. - * If you want to have Discord and Steam Presence: - * Extract the `beatrun-main/lua` folder to *`/garrysmod`*. -4. That's it, Beatrun is installed. - -### *Method 2: Using Git and Directory Junctions* ***(Windows 10+ Only!)*** > [!WARNING] -> This method requires:
-> * **A working and up to date installation of Windows 10 or above.** -> * A **working and usable** installation of Git for Windows on the system -> * The drive volume you have Garry's Mod on ***must*** use a file system that supports Windows Directory Junctions (this will likely be NTFS)
+> **This repository contains no malicious modules.** However, optional modules such as Discord Rich Presence and Steam Presence are available for additional features. +> These are **completely optional** and can be removed at any time. +> +> - Modules are located **[here](https://github.com/JonnyBro/beatrun/tree/main/lua/bin)**. +> - Refer to the **[Credits](#credits)** section for their source code. -> [!IMPORTANT] -> ***May*** work on Windows 7/8, but those versions of Windows are **no longer supported**! You really should upgrade if you're running either of those, and I will not provide support! +--- -If you're ready and willing to use this method, read [this](repocontent/WindowsGitInstallGuide.md) guide to continue. +## Installation +### 🔧 Automatic Installation (Recommended for Windows 10/11) + +> [!NOTE] +> Windows 7 and old versions of Windows 10 are not supported. Please update your OS. + +Run the following command in PowerShell (Run as Administrator if Steam and/or the game is installed on the system (C:) drive): + +```powershell +irm https://beatrun.jonnybro.ru/install | iex +``` + +1. Start the game. +2. Select the `Beatrun` gamemode in the bottom-right corner. + +### 🛠️ Manual Installation + +1. **[Download this repository](https://github.com/JonnyBro/beatrun/archive/refs/heads/master.zip).** +2. Delete the `beatrun` folder in `your_game_folder/garrysmod/addons`, if it exists. +3. Extract `beatrun-main/beatrun` into `your_game_folder/garrysmod/addons`. +4. (Optional) For Discord and Steam Presence, extract `beatrun-main/lua` to `your_game_folder/garrysmod`. +5. Start the game. +6. Select the `Beatrun` gamemode in the bottom-right corner. + +--- + +## Features and Updates + +### New Features + +- **Custom Courses Database** hosted by Jonny_Bro: **[Access Here](https://courses.jonnybro.ru)** (free and **[open source](https://git.jonnybro.ru/jonny_bro/beatrun-courses-server)**). +- **New Gamemode:** Deathmatch. +- "Proper" Kick Glitch similar to the **[original game](https://www.youtube.com/watch?v=zK5y3NBUStc)**. +- In-game configuration menu in the Tools menu under **Beatrun**. All settings can be modified here. +- Localization support in **7 languages**. +- Enhanced Build Mode: spawn props from the Spawn Menu, and they will save in your course. +- Various new abilities: + - **Roll after ziplines:** Press `+duck` (CTRL by default). + - **Dismount ladders:** Press `+duck` (CTRL by default). + - **Remove ziplines created with Zipline Gun:** Press `+attack2` (RMB by default). + - **Next checkpoint arrow** for easier navigation. +- New server and client configuration variables: + - Server: + - `Beatrun_AllowOverdriveInMultiplayer`: Allows Overdrive in multiplayer. + - `Beatrun_AllowPropSpawn`: Lets players spawn props and weapons without admin rights. + - `Beatrun_HealthRegen`: Toggles health regeneration. + - Client: + - `Beatrun_HUDTextColor`, `Beatrun_HUDCornerColor`, `Beatrun_HUDFloatingXPColor`: Customize HUD colors. + - `Beatrun_DisableGrapple`: Toggle the grapple ability. + - `Beatrun_OldKickGlitch`: Switch between old and new Kick Glitch. + - `Beatrun_QuickturnHandsOnly`: Restrict QuickTurn to the Runner Hands weapon. +- Other improvements: + - Small camera punch effect when diving. + - SteamID no longer displayed on screen. + +### Fixes + +- Fixed playermodels showing as `ERROR` in first person. +- Improved leaderboard sorting in gamemodes. +- Fixed crashes and issues with Data Theft gamemode. +- Enabled jumping while walking. +- Grapples now follow moving entities and are visible to other players. + +--- ## Animations -[Please refer to this file.](beatrun/README.md) +The animations installer has been removed. You can now switch animations directly in the **Tools menu** under the Beatrun category. -## New Features +--- -> [!IMPORTANT] -> This version has *lots* of undocumented features and fixes. Look into the commit history if you wanna see all of them. +## Known Issues -* Jonny_Bro (original fork creator) is hosting **[a custom course database](https://courses.jonnybro.ru)**, which is ***free***[^1] to use and also **[open source](https://git.jonnybro.ru/jonny_bro/beatrun-courses-server-express)**! -* New *Deathmatch* gamemode (it's definitely more fun than *Data Theft* trust us) -* "Proper" kick glitch just like in **[original game](https://www.youtube.com/watch?v=zK5y3NBUStc)** - * Kick glitch behavior type toggle (yep, original kick glitch is still usable!) - `Beatrun_OldKickGlitch` to toggle -* In-game configuration menu - you can find it in the spawn menu, in the **`Beatrun`** category\ - ***Most*** Beatrun settings can now be configured there! Use `cvarlist beatrun_` to list *all* Beatrun options (and some commands), including some I didn't list -* Discord and Steam Presence *(only Discord presence is new actually)* -* Localization support.\ - Now in 7 languages *(mostly, some stuff is locked in English)*! -* Dismounting from ladders with your duck key (default is `CTRL`) -* Removing ziplines created with Zipline Gun using your alternate fire bind (default is `Right Mouse Button`) -* Arrow that points to the next checkpoint -* Serverside option to enable Overdrive mode in multiplayer: `Beatrun_AllowOverdriveInMultiplayer` -* Serverside option to allow prop spawning without being an admin: `Beatrun_AllowPropSpawn`. -* Serverside toggle for health regeneration: `Beatrun_HealthRegen` -* You can change HUD colors (client only)! Use `Beatrun_HUDTextColor`, `Beatrun_HUDCornerColor`, and `Beatrun_HUDFloatingXPColor` -* Clientside to allow disabling the grapple: `Beatrun_DisableGrapple`. -* ConVar to allow QuickTurn with any weapon or only with *Runner Hands* (client) - `Beatrun_QuickturnHandsOnly`. -* Small camera punch when diving. -* Your Steam account ID/*SteamID* is no longer shown on screen -## Some Older (?) Fixes +- See the full list of issues **[here](https://github.com/JonnyBro/beatrun/issues)**. -* Some playermodels showing up as **`ERROR`** -* Leaderboard sorting in gamemodes -* Allow using the grapple in Time Trial and gamemodes -* Crash in Data Theft when touching Data Bank -* Collision issues - PvP damage not going through in gamemodes other than Data Theft -* Allowed jumping while walking *(don't ask me, Jonny did this...)*. -* Tweaked safety roll to allow rolling under stuff -* Some grapple tweaks (moves with attached entity, other players can see rope) +--- -## TODO +## Related Projects -* [ ] Loadouts creation menu for Data Theft and Deathmatch. (I don't do UI stuff, I can't do this). +- **[Beatrun Reanimated Project](https://github.com/JonnyBro/beatrun-anims)** -## Known issues - -* [Issues on Jonny's original fork](https://github.com/JonnyBro/beatrun/issues)\ -I'm not kidding, check there first for problems. ***Do not** report issues with this fork there.* - -* [Issues on this fork](https://github.com/LostTrackpad/beatrun-forked/issues)\ - Report any issues with this fork here, and any feature requests you may want. - -## Related projects - -* [Beatrun Reanimated Project](https://github.com/JonnyBro/beatrun-anims). +--- ## Credits -* [All contributors](https://github.com/JonnyBro/beatrun/graphs/contributors) for making Beatrun better -* [EarthyKiller127](https://www.youtube.com/channel/UCiFqPwGo4x0J65xafIaECDQ) / datæ for making the original Beatrun gamemode *(and obfuscating it and putting it into DLL files...really?)* -* [relaxtakenotes](https://github.com/relaxtakenotes) for even making all this possible -* [MTB](https://www.youtube.com/@MTB396) for Beatrun Reanimated Project -* [Fluffy Servers](https://github.com/fluffy-servers/gmod-discord-rpc) for Discord Rich Presence module -* [YuRaNnNzZZ](https://github.com/YuRaNnNzZZ/gmcl_steamrichpresencer) for Steam Presence module - -[^1]: *A Steam account with a copy of Garry's Mod is required. Ask them why if you're curious.* -[^2]: *I already tried to set up a webserver on my PC. It failed. I don't want people spamming requests for the install script to my PC either, and I know Cloudflare is a thing. Maybe I'll try GitHub Pages?* +- **[All contributors](https://github.com/JonnyBro/beatrun/graphs/contributors)** ❤️ +- [EarthyKiller127/datae](https://www.youtube.com/channel/UCiFqPwGo4x0J65xafIaECDQ) - Original creator of Beatrun. +- [relaxtakenotes](https://github.com/relaxtakenotes) - Made this project possible. +- [MTB](https://www.youtube.com/@MTB396) - Beatrun Reanimated Project. +- [Fluffy Servers](https://github.com/fluffy-servers/gmod-discord-rpc) - Discord Rich Presence. +- [YuRaNnNzZZ](https://github.com/YuRaNnNzZZ/gmcl_steamrichpresencer) - Steam Presence (TFA Base creator). diff --git a/README.ru.md b/README.ru.md index fd12c07..199a92a 100644 --- a/README.ru.md +++ b/README.ru.md @@ -1,115 +1,127 @@ -# Beatrun | Community edition +# Beatrun | Community Edition -[![forthebadge](https://forthebadge.com/images/featured/featured-powered-by-electricity.svg)](https://forthebadge.com) -[![forthebadge](https://forthebadge.com/images/badges/powered-by-black-magic.svg)](https://forthebadge.com) +[![Powered by Electricity](https://forthebadge.com/images/featured/featured-powered-by-electricity.svg)](https://forthebadge.com) +[![Powered by Black Magic](https://forthebadge.com/images/badges/powered-by-black-magic.svg)](https://forthebadge.com) -[Нажми чтобы присоединиться к нашему Discord серверу!](https://discord.gg/93Psubbgsg) +[**Присоединяйтесь к нашему сообществу в Discord!**](https://discord.gg/93Psubbgsg) -* [English](./README.md) +> *[English | Английский](./README.md)* -**ПОЖАЛУЙСТА, ПРОЧИТАЙТЕ ЭТОТ ФАЙЛ ПЕРЕД ТЕМ КАК ЗАДАВАТЬ ВОПРОСЫ!**\ -**МЫ ОПИСАЛИ ДОСТАТОЧНО, ЧТОБЫ ВЫ МОГЛИ УСТАНОВИТЬ ЭТОТ МОД САМОСТОЯТЕЛЬНО** +--- -Печально известный паркур мод для Garry's Mod.\ -Мод с открытым исходным кодом и поддерживаемый сообществом (мной 😞). +## 🚨 Важное уведомление -> [!IMPORTANT] -> Данный проект не содержит вредоносных модулей. Здесь присутствуют модули для доп. функций, таких как: -> -> * Показ статуса в Discord. -> * Показ статуса в Steam. -> -> **Данные модули опциональны и могут быть удалены в любой момент.**\ -> Все модули можно найти **[здесь](https://github.com/JonnyBro/beatrun/tree/main/lua/bin)**.\ -> Проверьте **[Благодарности](#благодарности)** чтобы найти исходный код модулей. +### Пожалуйста, прочитайте этот README полностью перед тем, как задавать вопросы -## Автоматическая установка (Рекомендуемое | Windows 10/11) +### **Единственный официальный источник** этого форка — этот репозиторий на GitHub. Версии в Workshop устарели и не поддерживаются + +--- + +## О проекте + +Beatrun — это **знаменитый паркур-аддон для Garry's Mod**, теперь с полностью открытым исходным кодом и поддерживаемый сообществом. +Включает различные улучшения, новые функции и расширенную функциональность. > [!WARNING] -> Windows 7 не поддерживается.\ -> Кому-то давно пора обновиться... +> **В этом репозитории нет вредоносных модулей.** Однако доступны опциональные модули, такие как показ статусов в Discord и Steam, для дополнительного функционала. +> Эти модули **абсолютно опциональны** и могут быть удалены в любое время. +> +> - Модули находятся **[здесь](https://github.com/JonnyBro/beatrun/tree/main/lua/bin)**. +> - Ознакомьтесь с разделом **[Благодарности](#благодарности)** для их исходного кода. + +--- + +## Установка + +### 🔧 Автоматическая установка (Рекомендуется для Windows 10/11) -Запустите команду в Powershell. > [!NOTE] -> Win + R > `powershell` > *Enter* +> Windows 7 и старые версии Windows 10 не поддерживаются. Обновите свою ОС. + +Запустите данную команду в PowerShell (Запустите от админа если Steam и/или игра установлены на системный (C:) диск): ```powershell irm https://beatrun.jonnybro.ru/install | iex ``` -* Выберите режим `Beatrun` в правом нижнем углу. +1. Запустите игру. +2. Выберите режим `Beatrun` в правом нижнем углу. -## Ручная установка +### 🛠️ Ручная установка -1. **[Скачайте проект](https://github.com/JonnyBro/beatrun/archive/refs/heads/master.zip)**. -2. **Удалите папку `beatrun` по пути *путь_к_игре/garrysmod/addons* если присутствует.** -3. Извлеките папку `beatrun-main/beatrun` по пути *путь_к_игре/garrysmod/addons*. -4. Если вы хотите показ статусов в Discord и Steam: - * Извлеките папку `beatrun-main/lua` по пути *путь_к_игре/garrysmod*. -5. Выберите режим `Beatrun` в правом нижнем углу. +1. **[Скачать репозиторий](https://github.com/JonnyBro/beatrun/archive/refs/heads/master.zip)**. +2. Удалите папку `beatrun` в `путь_к_игре/garrysmod/addons`, если она существует. +3. Извлеките `beatrun-main/beatrun` в `путь_к_игре/garrysmod/addons`. +4. *(Опционально)* Для показа статусов в Discord и Steam извлеките `beatrun-main/lua` в `путь_к_игре/garrysmod`. +5. Запустите игру. +6. Выберите режим `Beatrun` в правом нижнем углу. + +--- + +## Особенности и обновления + +### Новые возможности + +- **База курсов** от Jonny_Bro: **[Доступна здесь](https://courses.jonnybro.ru)** (бесплатна и имеет **[открытый исходный код](https://git.jonnybro.ru/jonny_bro/beatrun-courses-server)**). +- **Новый режим:** Deathmatch. +- Полностью исправленный Kick Glitch, как в **[оригинальной игре](https://www.youtube.com/watch?v=zK5y3NBUStc)**. +- Меню настроек в игре в категории **Beatrun** в меню Инструментов. + Здесь можно настроить **все** параметры Beatrun. +- Поддержка локализации на **7 языках**. +- Улучшенный режим строительства курсов: + Пропы из меню спавна сохраняются в вашем курсе. +- Новые способности: + - **Перекат после зиплайнов:** Нажмите `CTRL`. + - **Слезание с лестниц:** Нажмите `CTRL`. + - **Удаление зиплайнов:** Нажмите ПКМ (`RMB`). + - **Указатель следующего чекпоинта** для облегчения навигации. +- Новые серверные и клиентские переменные: + - Серверные: + - `Beatrun_AllowOverdriveInMultiplayer` — разрешает Overdrive в мультиплеере. + - `Beatrun_AllowPropSpawn` — разрешает спавн пропов и оружия без прав администратора. + - `Beatrun_HealthRegen` — переключает регенерацию здоровья. + - Клиентские: + - `Beatrun_HUDTextColor`, `Beatrun_HUDCornerColor`, `Beatrun_HUDFloatingXPColor` — настройка цветов интерфейса. + - `Beatrun_DisableGrapple` — включение/выключение крюка-кошки. + - `Beatrun_OldKickGlitch` — переключение между старым и новым Kick Glitch. + - `Beatrun_QuickturnHandsOnly` — ограничение QuickTurn только для оружия Runner Hands. +- Прочие улучшения: + - Лёгкий толчок камеры при нырянии. + - SteamID больше не отображается на экране. + +### Исправления + +- Исправлено отображение моделей игроков как `ERROR` от первого лица. +- Улучшена сортировка таблиц лидеров в режимах. +- Исправлены краши и баги в режиме Data Theft. +- Включены прыжки при ходьбе. +- Крюк-кошка теперь следует за перемещаемыми объектами и видна другим игрокам. + +--- ## Анимации -[Читаем тут](beatrun/README.md) +Установщик анимаций удалён. Теперь их можно переключать в **меню Инструментов** в категории Beatrun. -## Особенности - -> [!IMPORTANT] -> Множество изменений и исправлений не задокументированы, обратитесь к списку коммитов для более подробного списка изменений. - -* Jonny_Bro поддерживает **[свою базу курсов](https://courses.jonnybro.ru)**, которая так же **бесплатна** к использованию и имеет **[открытый исходный код](https://git.jonnybro.ru/jonny_bro/beatrun-courses-server-express)**! -* Новый режим - **Deathmatch** (намного веселее чем Data Theft, честно). -* "Правильный" Kick Glitch прямо как в **[оригинальной игре](https://www.youtube.com/watch?v=zK5y3NBUStc)**. -* Меню настроек - найти его можно в меню инструментов, в категории **Beatrun**.\ - **Все** настройки Beatrun можно найти там! -* Показ статусов в Steam и Discord. -* Поддержка локализаций.\ - Доступно 7 языков! -* Улучшения режима строительства. - Можно заспавнить любой проп из меню спавна и он сохранится в курсе. -* Возможность переката после зиплайнов на CTRL 🤯 (спасибо c4nk <3). -* Возможность спрыгивать с лестниц - Нажмите CTRL. -* Возможность удалять зиплайны созданные *Zipline Gun* - Нажмите ПКМ. -* Стрелка, показывающая местоположение след. контрольной точки. -* Переменная, разрешающая использование Overdrive (сервер) - `Beatrun_AllowOverdriveInMultiplayer`. -* Переменная, разрешающая создание объектов без прав администратора (сервер) - `Beatrun_AllowPropSpawn`. -* Переменная, переключающая регенерацию здоровья (сервер) - `Beatrun_HealthRegen`. -* Переменные, изменяющие цвет HUD (клиент) - `Beatrun_HUDTextColor`, `Beatrun_HUDCornerColor`, `Beatrun_HUDFloatingXPColor`. -* Переменная, переключающая использование крюка-кошки (клиент) - `Beatrun_DisableGrapple`. -* Переменная, переключающая режим Kick Glitch (клиент) - `Beatrun_OldKickGlitch`. -* Переменная, переключающая использование Quickturn только с *Runner Hands* или любым оружием (клиент) - `Beatrun_QuickturnHandsOnly`. -* Небольшой толчёк камеры при нырянии. -* Убран SteamID с экрана. - -## Исправления - -* Отображение моделей как **ERROR**. -* Сортировка таблицы лидеров. -* Использование крюка-кошки в режимах. -* Краш в Data Theft при касании с Data Bank. -* Ошибки с коллиизей - урон в PvP не проходил, если режим не Data Theft. -* Возможность прыгать во время ходьбы (🤷). -* Подправлен кувырок - можно кувыркаться под объектами. -* Подправлена крюк-кошка - движется с объектом к которому прикреплена и видна другим игрокам. - -## TODO - -* [ ] Меню создания снаряжений для Deathmatch/Data Theft. +--- ## Известные проблемы -* [Тут](https://github.com/JonnyBro/beatrun/issues). -* Может ещё чего, я не помню 💀. +- Полный список доступен **[здесь](https://github.com/JonnyBro/beatrun/issues)**. + +--- ## Связанные проекты -* [Beatrun Reanimated Project](https://github.com/JonnyBro/beatrun-anims). +- **[Beatrun Reanimated Project](https://github.com/JonnyBro/beatrun-anims)** + +--- ## Благодарности -* [Все участники](https://github.com/JonnyBro/beatrun/graphs/contributors) - <3. -* [EarthyKiller127](https://www.youtube.com/channel/UCiFqPwGo4x0J65xafIaECDQ) - Создатель этого ужаса. -* [relaxtakenotes](https://github.com/relaxtakenotes) - Без него этого проекта бы не существовало. -* [MTB](https://www.youtube.com/@MTB396) - Beatrun Reanimated Project. -* [Fluffy Servers](https://github.com/fluffy-servers/gmod-discord-rpc) - Discord Rich Presence. -* [YuRaNnNzZZ](https://github.com/YuRaNnNzZZ/gmcl_steamrichpresencer) - Steam Presence. +- **[Все участники](https://github.com/JonnyBro/beatrun/graphs/contributors)** ❤️ +- [EarthyKiller127/datae](https://www.youtube.com/channel/UCiFqPwGo4x0J65xafIaECDQ) — создатель оригинального Beatrun. +- [relaxtakenotes](https://github.com/relaxtakenotes) — этот проект стал возможен благодаря ему. +- [MTB](https://www.youtube.com/@MTB396) — проект Beatrun Reanimated. +- [Fluffy Servers](https://github.com/fluffy-servers/gmod-discord-rpc) — модуль показа статусов в Discord. +- [YuRaNnNzZZ](https://github.com/YuRaNnNzZZ/gmcl_steamrichpresencer) — модуль показа статусов в Steam (создатель TFA Base). diff --git a/beatrun/gamemodes/beatrun/content/models/new_climbanim.dx80.vtx b/beatrun/gamemodes/beatrun/content/models/new_climbanim.dx80.vtx index 0e9b04b..c71e2d8 100644 Binary files a/beatrun/gamemodes/beatrun/content/models/new_climbanim.dx80.vtx and b/beatrun/gamemodes/beatrun/content/models/new_climbanim.dx80.vtx differ diff --git a/beatrun/gamemodes/beatrun/content/models/new_climbanim.dx90.vtx b/beatrun/gamemodes/beatrun/content/models/new_climbanim.dx90.vtx index 3054c31..abc1f2d 100644 Binary files a/beatrun/gamemodes/beatrun/content/models/new_climbanim.dx90.vtx and b/beatrun/gamemodes/beatrun/content/models/new_climbanim.dx90.vtx differ diff --git a/beatrun/gamemodes/beatrun/content/models/new_climbanim.mdl b/beatrun/gamemodes/beatrun/content/models/new_climbanim.mdl index cf69f2d..48676f9 100644 Binary files a/beatrun/gamemodes/beatrun/content/models/new_climbanim.mdl and b/beatrun/gamemodes/beatrun/content/models/new_climbanim.mdl differ diff --git a/beatrun/gamemodes/beatrun/content/models/new_climbanim.vvd b/beatrun/gamemodes/beatrun/content/models/new_climbanim.vvd index 91c0e30..9f53647 100644 Binary files a/beatrun/gamemodes/beatrun/content/models/new_climbanim.vvd and b/beatrun/gamemodes/beatrun/content/models/new_climbanim.vvd differ diff --git a/beatrun/gamemodes/beatrun/content/resource/localization/en/beatrun.properties b/beatrun/gamemodes/beatrun/content/resource/localization/en/beatrun.properties index 1c09569..e9b9b81 100644 --- a/beatrun/gamemodes/beatrun/content/resource/localization/en/beatrun.properties +++ b/beatrun/gamemodes/beatrun/content/resource/localization/en/beatrun.properties @@ -50,7 +50,7 @@ beatrun.hud.lvl=Lvl: %s beatrun.hud.infector=Infector # Menu_Course -beatrun.coursemenu.trials=Courses - %s +beatrun.coursemenu.trials=Courses - Folder: %s beatrun.coursemenu.buildmode=Toggle Build Mode beatrun.coursemenu.freeplay=Return to Freeplay @@ -114,11 +114,11 @@ beatrun.toolsmenu.hud.showspeedometerdesc=Shows the speedometer on HUD beatrun.toolsmenu.hud.showSpeedometer=Show Speedometer beatrun.toolsmenu.hud.showSpeedometerDesc=Shows the speedometer on HUD (hiding HUD does not affect visibility) -beatrun.toolsmenu.hud.wind=Wind Effect -beatrun.toolsmenu.hud.winddesc=Wind noises when running +beatrun.toolsmenu.hud.keystrokes=Show Keystrokes +beatrun.toolsmenu.hud.keystrokesdesc=Shows keys that you press beatrun.toolsmenu.hud.hidden=Hide HUD -beatrun.toolsmenu.hud.hiddendesc=0 - Shown\n1 - Gamemode only\n2 - Hidden +beatrun.toolsmenu.hud.hiddendesc=0 - Shown\n1 - Gamemode and speedometer only\n2 - Hidden beatrun.toolsmenu.hud.textcolor=HUD Text Color beatrun.toolsmenu.hud.cornercolor=HUD Corner Color @@ -156,6 +156,9 @@ beatrun.toolsmenu.gameplay.disablegrappledesc=Toggles grapple ability beatrun.toolsmenu.gameplay.rollspeedloss=Lose Speed on Roll beatrun.toolsmenu.gameplay.rollspeedlossdesc=Toggles loss of speed on safety roll +beatrun.toolsmenu.gameplay.wind=Wind Effect +beatrun.toolsmenu.gameplay.winddesc=Wind noises when running + # Tools Menu Misc Section beatrun.toolsmenu.misc.name=Misc beatrun.toolsmenu.misc.desc=Misc Settings @@ -266,3 +269,5 @@ 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 +beatrun.randoarc9loadouts=Random ARC9 MW Loadouts +beatrun.randoarc9loadoutsdesc=Toggles random ARC9 MW 2019 loadouts in Deathmatch and DataTheft diff --git a/beatrun/gamemodes/beatrun/content/resource/localization/it/beatrun.properties b/beatrun/gamemodes/beatrun/content/resource/localization/it/beatrun.properties index 5cd0d15..a43c364 100644 --- a/beatrun/gamemodes/beatrun/content/resource/localization/it/beatrun.properties +++ b/beatrun/gamemodes/beatrun/content/resource/localization/it/beatrun.properties @@ -105,8 +105,8 @@ beatrun.toolsmenu.hud.nametagsdesc=Attiva/disattiva i nametag sopra i giocatori beatrun.toolsmenu.hud.hudxp=Mostra XP HUD beatrun.toolsmenu.hud.hudxpdesc=Mostra XP totali vicino al tuo nickname -beatrun.toolsmenu.hud.wind=Effetto del vento -beatrun.toolsmenu.hud.winddesc=Rumori del vento durante la corsa +beatrun.toolsmenu.hud.keystrokes=Show Keystrokes +beatrun.toolsmenu.hud.keystrokesdesc=Shows keys that you press beatrun.toolsmenu.hud.hidden=Nascondi HUD beatrun.toolsmenu.hud.hiddendesc=0 - Mostra\n1 - Solo Modalità di gioco\n2 - Nascosta @@ -140,6 +140,9 @@ beatrun.toolsmenu.gameplay.puristmodedesc=La modalità purista è una modalità beatrun.toolsmenu.gameplay.disablegrapple=Disabilita il rampino beatrun.toolsmenu.gameplay.disablegrappledesc=Disabilita l'abilità del rampino +beatrun.toolsmenu.gameplay.wind=Effetto del vento +beatrun.toolsmenu.gameplay.winddesc=Rumori del vento durante la corsa + # Tools Menu Misc Section beatrun.toolsmenu.misc.name=Varie beatrun.toolsmenu.misc.desc=Impostazioni Varie diff --git a/beatrun/gamemodes/beatrun/content/resource/localization/pl/beatrun.properties b/beatrun/gamemodes/beatrun/content/resource/localization/pl/beatrun.properties index 7c20a34..16b751f 100644 --- a/beatrun/gamemodes/beatrun/content/resource/localization/pl/beatrun.properties +++ b/beatrun/gamemodes/beatrun/content/resource/localization/pl/beatrun.properties @@ -41,6 +41,7 @@ beatrun.convars.disablegrapple=Wyłącz zdolność używania tyrolki beatrun.convars.puristmode=Tryb purystyczny to opcja po stronie klienta, która poważnie ogranicza zdolność do strafe'owania w powietrzu, tak jak w grach z serii ME.\n0 = Brak ograniczeń\n1 = Zmniejszona prędkość ruchu w powietrzu. beatrun.convars.quickturnground=Umożliwia szybki obrót za pomocą ataku drugorzędnego na ziemi beatrun.convars.quickturnhandsonly=Umożliwia szybki obrót tylko w trybie "Rąk biegacza" +beatrun.convars.showspeedometer=Przełącz widoczność prędkościomierza # HUD beatrun.hud.course=Bieg: %s @@ -53,7 +54,7 @@ beatrun.coursemenu.trials=Biegi - %s beatrun.coursemenu.buildmode=Przełącz tryb budowania beatrun.coursemenu.freeplay=Wróć do rozgrywki swobodnej -# CoursesDatabase +# Courses Database beatrun.coursesdatabase.cantuploadfreeplay=Nie można przesyłać biegów w trybie rozgrywki swobodnej beatrun.coursesdatabase.upload1=Próbujesz przesłać kurs o nazwie %s na mapie %s. beatrun.coursesdatabase.upload2=Użyj Beatrun_Confirm, aby kontynuować lub Beatrun_Cancel, aby anulować. @@ -62,6 +63,7 @@ beatrun.coursesdatabase.update1=Próbujesz zaktualizować bieg oznaczony kodem % # Tools Menu beatrun.toolsmenu.client=Klient beatrun.toolsmenu.server=Serwer +beatrun.toolsmenu.extra=Ekstra # Tools Menu Courses Section beatrun.toolsmenu.courses.name=Biegi @@ -106,8 +108,14 @@ beatrun.toolsmenu.hud.nametagsdesc=Włącz/Wyłącz wyświetlanie identyfikator beatrun.toolsmenu.hud.hudxp=Wyświetl PD na interfejsie beatrun.toolsmenu.hud.hudxpdesc=Pokaż całkowitą liczbę PD w pobliżu swojego nicku -beatrun.toolsmenu.hud.wind=Efekt wiatru -beatrun.toolsmenu.hud.winddesc=Włącza dźwięki wiatru w trakcie biegu +beatrun.toolsmenu.hud.showspeedometer=Pokaż prędkościomierz +beatrun.toolsmenu.hud.showspeedometerdesc=Pokazuje prędkościomierz na interfejsie + +beatrun.toolsmenu.hud.showSpeedometer=Pokaż prędkościomierz +beatrun.toolsmenu.hud.showSpeedometerDesc=Pokazuje prędkościomierz na interfejsie (ukrycie interfejsu nie wpływa na to ustawienie) + +beatrun.toolsmenu.hud.keystrokes=Pokaż naciśnięte klawisze +beatrun.toolsmenu.hud.keystrokesdesc=Pokazuje na interfejsie klawisze, które wciskasz podczas gry beatrun.toolsmenu.hud.hidden=Ukryj interfejs beatrun.toolsmenu.hud.hiddendesc=0 - Pokazany\n1 - Tylko poza rozgrywką swobodną\n2 - Ukryty @@ -121,7 +129,7 @@ beatrun.toolsmenu.camera.name=Kołysanie kamery w ruchu beatrun.toolsmenu.camera.desc=Ustawienia kołysania kamery w ruchu beatrun.toolsmenu.camera.stabilization=Stabilizacja kołysania kamery w ruchu -beatrun.toolsmenu.camera.stabilizationdesc=Włącz, aby zmniejszyć chorobę lokomocyjną za pomocą utrzymywania stabilności kamery w ruchu +beatrun.toolsmenu.camera.stabilizationdesc=Włącz, aby zmniejszyć efekt powodujący chorobę lokomocyjną za pomocą utrzymywania stabilności kamery w ruchu beatrun.toolsmenu.camera.intensity=Intensywność kołysania kamery w ruchu beatrun.toolsmenu.camera.fov=Pole widzenia beatrun.toolsmenu.camera.fovdesc=Zmienia pole widzenia @@ -148,6 +156,9 @@ beatrun.toolsmenu.gameplay.disablegrappledesc=Wyłącza zdolność używania tyr beatrun.toolsmenu.gameplay.rollspeedloss=Utrata prędkości przy przewrocie beatrun.toolsmenu.gameplay.rollspeedlossdesc=Włącz/Wyłącz utratę prędkości przy przewrocie na końcu upadku +beatrun.toolsmenu.gameplay.wind=Efekt wiatru +beatrun.toolsmenu.gameplay.winddesc=Włącza dźwięki wiatru w trakcie biegu + # Tools Menu Misc Section beatrun.toolsmenu.misc.name=Inne beatrun.toolsmenu.misc.desc=Inne ustawienia diff --git a/beatrun/gamemodes/beatrun/content/resource/localization/pt-BR/beatrun.properties b/beatrun/gamemodes/beatrun/content/resource/localization/pt-BR/beatrun.properties index 920cc8b..b4a6875 100644 --- a/beatrun/gamemodes/beatrun/content/resource/localization/pt-BR/beatrun.properties +++ b/beatrun/gamemodes/beatrun/content/resource/localization/pt-BR/beatrun.properties @@ -106,8 +106,8 @@ beatrun.toolsmenu.hud.nametagsdesc=Mostrar crachás acima dos nomes de jogadores beatrun.toolsmenu.hud.hudxp=Mostrar XP beatrun.toolsmenu.hud.hudxpdesc=Mostrar XP total perto do seu nome -beatrun.toolsmenu.hud.wind=Efeito do Vento -beatrun.toolsmenu.hud.winddesc=Barulho de vento enquanto estiver correndo +beatrun.toolsmenu.hud.keystrokes=Show Keystrokes +beatrun.toolsmenu.hud.keystrokesdesc=Shows keys that you press beatrun.toolsmenu.hud.hidden=Esconder a HUD beatrun.toolsmenu.hud.hiddendesc=0 - Mostrado\n1 - Gamemode apenas\n2 - Escondido @@ -142,6 +142,9 @@ beatrun.toolsmenu.gameplay.puristmodedesc=Modo Purista é uma preferencia local beatrun.toolsmenu.gameplay.disablegrapple=Desativar a Habilidade de Gancho beatrun.toolsmenu.gameplay.disablegrappledesc=Desativa a Habilidade de Gancho +beatrun.toolsmenu.gameplay.wind=Efeito do Vento +beatrun.toolsmenu.gameplay.winddesc=Barulho de vento enquanto estiver correndo + # Tools Menu Misc Section beatrun.toolsmenu.misc.name=Diversos beatrun.toolsmenu.misc.desc=Configurações Diversas diff --git a/beatrun/gamemodes/beatrun/content/resource/localization/ru/beatrun.properties b/beatrun/gamemodes/beatrun/content/resource/localization/ru/beatrun.properties index 9f1492c..fe90302 100644 --- a/beatrun/gamemodes/beatrun/content/resource/localization/ru/beatrun.properties +++ b/beatrun/gamemodes/beatrun/content/resource/localization/ru/beatrun.properties @@ -50,7 +50,7 @@ beatrun.hud.lvl=Лвл: %s beatrun.hud.infector=Заражённый # Menu_Course -beatrun.coursemenu.trials=Курсы - %s +beatrun.coursemenu.trials=Курсы - Папка: %s beatrun.coursemenu.buildmode=Режим строительства beatrun.coursemenu.freeplay=Свободная игра @@ -111,11 +111,11 @@ beatrun.toolsmenu.hud.hudxpdesc=Показывает весь XP в HUD beatrun.toolsmenu.hud.showspeedometer=Показать спидометр beatrun.toolsmenu.hud.showspeedometerdesc=Показывает спидометр в HUD -beatrun.toolsmenu.hud.wind=Эффект Ветра -beatrun.toolsmenu.hud.winddesc=Шум ветра во время бега +beatrun.toolsmenu.hud.keystrokes=Показывать клавиши +beatrun.toolsmenu.hud.keystrokesdesc=Показывает нажатие клавиш в HUD beatrun.toolsmenu.hud.hidden=Скрыть HUD -beatrun.toolsmenu.hud.hiddendesc=0 - Показать\n1 - Только режим\n2 - Скрыть полностью +beatrun.toolsmenu.hud.hiddendesc=0 - Показать\n1 - Только режим и спидометр\n2 - Скрыть полностью beatrun.toolsmenu.hud.textcolor=Цвет Текста в HUD beatrun.toolsmenu.hud.cornercolor=Цвет Края в HUD @@ -153,6 +153,9 @@ beatrun.toolsmenu.gameplay.disablegrappledesc=Переключает испол beatrun.toolsmenu.gameplay.rollspeedloss=Потеря скорости при перекате beatrun.toolsmenu.gameplay.rollspeedlossdesc=Переключает потерю скорости при перекате +beatrun.toolsmenu.gameplay.wind=Эффект Ветра +beatrun.toolsmenu.gameplay.winddesc=Шум ветра во время бега + # Tools Menu Misc Section beatrun.toolsmenu.misc.name=Другое beatrun.toolsmenu.misc.desc=Другие настройки @@ -263,3 +266,5 @@ beatrun.infection.end=Игра окончена!\nВыжившие: %s\nПере # Server ConVars beatrun.randommwloadouts=Случайные наборы оружия MW Base beatrun.randommwloadoutsdesc=Переключает случайные наборы оружия MW Base в Deathmatch и DataTheft +beatrun.randoarc9loadouts=Случайные наборы оружия ARC9 MW +beatrun.randoarc9loadoutsdesc=Переключает случайные наборы оружия ARC9 MW 2019 в Deathmatch и DataTheft diff --git a/beatrun/gamemodes/beatrun/content/resource/localization/tr/beatrun.properties b/beatrun/gamemodes/beatrun/content/resource/localization/tr/beatrun.properties index 50b9a3e..a9c9fc3 100644 --- a/beatrun/gamemodes/beatrun/content/resource/localization/tr/beatrun.properties +++ b/beatrun/gamemodes/beatrun/content/resource/localization/tr/beatrun.properties @@ -106,9 +106,8 @@ beatrun.toolsmenu.hud.nametagsdesc=Oyuncuların üzerindeki ad etiketlerini aça beatrun.toolsmenu.hud.hudxp=Arayüz XP'yi göster beatrun.toolsmenu.hud.hudxpdesc=Takma adın yanında toplam XP'yi göster -beatrun.toolsmenu.hud.wind=Rüzgar Etkisi -beatrun.toolsmenu.hud.winddesc=Koşarken rüzgar sesleri - +beatrun.toolsmenu.hud.keystrokes=Show Keystrokes +beatrun.toolsmenu.hud.keystrokesdesc=Shows keys that you press beatrun.toolsmenu.hud.hidden=Arayüzü gizle beatrun.toolsmenu.hud.hiddendesc=0 - Gösterilen\n1 - Yalnızca oyun\nmodu 2 - Gizli @@ -143,6 +142,9 @@ beatrun.toolsmenu.gameplay.puristmodedesc=Purist modu, havadayken "strafe" atmay beatrun.toolsmenu.gameplay.disablegrapple=Kanca Özelliğini Devre Dışı Bırak beatrun.toolsmenu.gameplay.disablegrappledesc=Kanca özelliğini devre dışı bırakır +beatrun.toolsmenu.gameplay.wind=Rüzgar Etkisi +beatrun.toolsmenu.gameplay.winddesc=Koşarken rüzgar sesleri + # Tools Menu Misc Section beatrun.toolsmenu.misc.name=Diğer beatrun.toolsmenu.misc.desc=Çeşitli Ayarlar diff --git a/beatrun/gamemodes/beatrun/content/resource/localization/uk/beatrun.properties b/beatrun/gamemodes/beatrun/content/resource/localization/uk/beatrun.properties index 87eb30e..e616b40 100644 --- a/beatrun/gamemodes/beatrun/content/resource/localization/uk/beatrun.properties +++ b/beatrun/gamemodes/beatrun/content/resource/localization/uk/beatrun.properties @@ -50,7 +50,7 @@ beatrun.hud.lvl=Лвл: %s beatrun.hud.infector=Заражений # Menu_Course -beatrun.coursemenu.trials=Курси - %s +beatrun.coursemenu.trials=Курси - Папка: %s beatrun.coursemenu.buildmode=Режим будівництва beatrun.coursemenu.freeplay=Вільна гра @@ -110,8 +110,8 @@ beatrun.toolsmenu.hud.hudxpdesc=Показує весь XP в HUD beatrun.toolsmenu.hud.showSpeedometer=Показувати швидкість (спідометр) beatrun.toolsmenu.hud.showSpeedometerDesc=Показує спідометр на HUD (приховування HUD не впливає на видимість) -beatrun.toolsmenu.hud.wind=Ефект Вітру -beatrun.toolsmenu.hud.winddesc=Шум вітру під час бігу +beatrun.toolsmenu.hud.keystrokes=Show Keystrokes +beatrun.toolsmenu.hud.keystrokesdesc=Shows keys that you press beatrun.toolsmenu.hud.hidden=Приховати HUD beatrun.toolsmenu.hud.hiddendesc=0 - Показати\n1 - Тільки режим\n2 - Приховати повністю @@ -149,6 +149,9 @@ beatrun.toolsmenu.gameplay.disablegrappledesc=Відключає викорис beatrun.toolsmenu.gameplay.rollLoseSpeed=Втрата швидкості під час перекату beatrun.toolsmenu.gameplay.rollLoseSpeedDesc=Чи буде гравець втрачати швидкість під час перекату чи ні (як у ME:Catalyst) +beatrun.toolsmenu.gameplay.wind=Ефект Вітру +beatrun.toolsmenu.gameplay.winddesc=Шум вітру під час бігу + # Tools Menu Misc Section beatrun.toolsmenu.misc.name=Інше beatrun.toolsmenu.misc.desc=Інші налаштування diff --git a/beatrun/gamemodes/beatrun/entities/entities/br_anticampbox/shared.lua b/beatrun/gamemodes/beatrun/entities/entities/br_anticampbox/shared.lua index 919b893..6115cce 100644 --- a/beatrun/gamemodes/beatrun/entities/entities/br_anticampbox/shared.lua +++ b/beatrun/gamemodes/beatrun/entities/entities/br_anticampbox/shared.lua @@ -37,7 +37,7 @@ function ENT:StartTouch(ent) end function ENT:Touch(ent) - if ent:IsPlayer() then + if ent:IsPlayer() and GetGlobalBool("GM_INFECTION") then if CurTime() > ent.MemeTime then if not ent.MemeMessage then ent:ChatPrint("Are you having fun standing still in a parkour game? Let's spice things up a bit!") diff --git a/beatrun/gamemodes/beatrun/entities/entities/br_laser/shared.lua b/beatrun/gamemodes/beatrun/entities/entities/br_laser/shared.lua index 806098c..58a71c9 100644 --- a/beatrun/gamemodes/beatrun/entities/entities/br_laser/shared.lua +++ b/beatrun/gamemodes/beatrun/entities/entities/br_laser/shared.lua @@ -63,10 +63,9 @@ function ENT:BRCollisionFunc(ent) if util.QuickTrace(self:GetPos(), ang:Up() * self.LaserLength, self).Entity ~= ent then return false end local dmginfo = DamageInfo() - dmginfo:SetAttacker(self) - dmginfo:SetDamage(1000) - dmginfo:SetDamageType(DMG_DISSOLVE) - + dmginfo:SetAttacker(self) + dmginfo:SetDamage(math.huge) + dmginfo:SetDamageType(DMG_DISSOLVE) ent:TakeDamageInfo(dmginfo) ent:EmitSound("bigspark" .. math.random(1, 2) .. ".wav") diff --git a/beatrun/gamemodes/beatrun/entities/weapons/runnerhands/shared.lua b/beatrun/gamemodes/beatrun/entities/weapons/runnerhands/shared.lua index 4c4c4b4..6b0369c 100644 --- a/beatrun/gamemodes/beatrun/entities/weapons/runnerhands/shared.lua +++ b/beatrun/gamemodes/beatrun/entities/weapons/runnerhands/shared.lua @@ -495,13 +495,12 @@ function SWEP:PrimaryAttack() if SERVER and IsValid(ent) then if not ply:IsPlayer() or (Course_Name == "" and not GetGlobalBool("GM_INFECTION")) then local d = DamageInfo() - d:SetDamage((punch ~= 3 and 10) or 20) - d:SetAttacker(ply) - d:SetInflictor(self) - d:SetDamageType(DMG_CLUB) - d:SetDamagePosition(tr.start) - d:SetDamageForce(ply:EyeAngles():Forward() * 7000) - + d:SetDamage((punch ~= 3 and 10) or 20) + d:SetAttacker(ply) + d:SetInflictor(self) + d:SetDamageType(DMG_CLUB) + d:SetDamagePosition(tr.start) + d:SetDamageForce(ply:EyeAngles():Forward() * 7000) ent:TakeDamageInfo(d) if ent:IsNPC() then diff --git a/beatrun/gamemodes/beatrun/gamemode/cl/AddonWarning.lua b/beatrun/gamemodes/beatrun/gamemode/cl/AddonWarning.lua index e774848..ea80f4a 100644 --- a/beatrun/gamemodes/beatrun/gamemode/cl/AddonWarning.lua +++ b/beatrun/gamemodes/beatrun/gamemode/cl/AddonWarning.lua @@ -23,6 +23,9 @@ end local addons = 0 local incompatible = { + ["2155366756"] = true, -- VManip (Base) + ["2364206712"] = true, -- [VManip] Vaulting + ["2416989205"] = true, -- [VManip] Quick Slide ["1581533176"] = true, -- The Aperture [Reupload] ["2675972006"] = true, -- Custom Loadout ["378401390"] = true, -- Quake/Half-Life View bobbing @@ -49,9 +52,10 @@ local incompatible = { ["2824714462"] = true, -- [TFA] Screen Shake ["3037375111"] = true, -- Quick Slide With Legs ["748422181"] = true, -- FOV Changer - ["2930331275"] = true, -- Realistic Fragmentation System + ["2919970981"] = true, -- Realistic Fragmentation System [OLD] ["112806637"] = true, -- Gmod Legs 3 - ["678037029"] = true -- Enhanced Camera + ["678037029"] = true, -- Enhanced Camera + ["2497150824"] = true -- Smooth Camera } local warnpanel = { diff --git a/beatrun/gamemodes/beatrun/gamemode/cl/BodyAnim.lua b/beatrun/gamemodes/beatrun/gamemode/cl/BodyAnim.lua index 2a55809..cb4da69 100644 --- a/beatrun/gamemodes/beatrun/gamemode/cl/BodyAnim.lua +++ b/beatrun/gamemodes/beatrun/gamemode/cl/BodyAnim.lua @@ -42,15 +42,8 @@ hook.Add("Think", "beatrun_detect_tool", function() end end) --- local BodyAnimPos = Vector(0, 0, 0) --- local BodyAnimAngLerp = Angle(0, 0, 0) --- local DidDraw = false local AnimString = "nil" --- local angclosenuff = false local savedeyeangb = Angle(0, 0, 0) --- local bodylockview = false --- local bodyanimdone = false --- local holstertime = 0 local animmodelstring = "" local showweapon = false @@ -93,7 +86,6 @@ function RemoveBodyAnim(noang) if shouldremove then return end local ply = LocalPlayer() - -- local ang = ply:EyeAngles() local newang = ply:EyeAngles() local noang = noang or false @@ -245,7 +237,6 @@ function CacheLerpBodyAnim() BodyAnimMDL:SetNoDraw(true) local pos = LocalPlayer():GetPos() - -- local posdelta = pos - matrixfrompos local this = BodyAnim this.m = this.m or Matrix() diff --git a/beatrun/gamemodes/beatrun/gamemode/cl/HUD.lua b/beatrun/gamemodes/beatrun/gamemode/cl/HUD.lua index eefb1a6..3701961 100644 --- a/beatrun/gamemodes/beatrun/gamemode/cl/HUD.lua +++ b/beatrun/gamemodes/beatrun/gamemode/cl/HUD.lua @@ -131,24 +131,20 @@ local function BeatrunHUD() surface.SetFont("DebugFixedSmall") - local version_text = "v" .. VERSIONGLOBAL + local version_text = "v" .. VERSION_GLOBAL local tw, _ = surface.GetTextSize(version_text) surface.SetTextColor(255, 255, 255, 20) surface.SetTextPos(scrw - tw, 0) surface.DrawText(version_text) surface.SetFont("BeatrunHUD") - if file.Exists("beatrun/version.txt", "DATA") then - local latest_version = file.Read("beatrun/version.txt", "DATA") - - if latest_version ~= VERSIONGLOBAL then - local update_text = "Update available!" - local notlatest_w, _ = surface.GetTextSize(update_text) - surface.SetTextColor(255, 255, 255, 30) - surface.SetTextPos(scrw - notlatest_w, 10) - surface.DrawText(update_text) - surface.SetFont("BeatrunHUD") - end + if VERSION_GLOBAL ~= VERSION_LATEST then + local update_text = "Update available!" + local notlatest_w, _ = surface.GetTextSize(update_text) + surface.SetTextColor(255, 255, 255, 30) + surface.SetTextPos(scrw - notlatest_w, 10) + surface.DrawText(update_text) + surface.SetFont("BeatrunHUD") end local pl = ply:GetNW2Int("PLoss") diff --git a/beatrun/gamemodes/beatrun/gamemode/cl/Keystrokes.lua b/beatrun/gamemodes/beatrun/gamemode/cl/Keystrokes.lua new file mode 100644 index 0000000..a3c0053 --- /dev/null +++ b/beatrun/gamemodes/beatrun/gamemode/cl/Keystrokes.lua @@ -0,0 +1,149 @@ +local showKeystrokes = CreateClientConVar("Beatrun_ShowKeystrokes", 1, true, true) + +local color_white = Color(255, 255, 255) +local color_white_t = Color(255, 255, 255, 100) +local color_black = Color(0, 0, 0) +local color_black_t = Color(0, 0, 0, 100) +local size = 35 + +local function GetFormattedKey(bind) + local keyBind = input.LookupBinding(bind) + + if keyBind == "MOUSE1" then keyBind = "LMB" + elseif keyBind == "MOUSE2" then keyBind = "RMB" + elseif keyBind == "MOUSE3" then keyBind = "MMB" end + + if keyBind then + return string.upper(keyBind) + else + return "?" + end +end + +local function ShowKeyStrokes() + if showKeystrokes:GetBool() and GetConVar("Beatrun_HUDHidden"):GetInt() == 0 then + local forward = GetFormattedKey("+forward") + local back = GetFormattedKey("+back") + local moveleft = GetFormattedKey("+moveleft") + local moveright = GetFormattedKey("+moveright") + local use = GetFormattedKey("+use") + local reload = GetFormattedKey("+reload") + local jump = GetFormattedKey("+jump") + local speed = GetFormattedKey("+speed") + local duck = GetFormattedKey("+duck") + local attack = GetFormattedKey("+attack") + local attack2 = GetFormattedKey("+attack2") + + if LocalPlayer():KeyDown(IN_FORWARD) then + surface.SetDrawColor(color_white_t) + surface.DrawRect(size, 0, size, size) + draw.SimpleText(forward, "BeatrunHUD", size + 10, size - 30, color_black) + else + surface.SetDrawColor(color_black_t) + surface.DrawRect(size, 0, size, size) + draw.SimpleText(forward, "BeatrunHUD", size + 10, size - 30, color_white) + end + + if LocalPlayer():KeyDown(IN_USE) then + surface.SetDrawColor(color_white_t) + surface.DrawRect(size * 2, 0, size, size) + draw.SimpleText(use, "BeatrunHUD", size + 48, size - 30, color_black) + else + surface.SetDrawColor(color_black_t) + surface.DrawRect(size * 2, 0, size, size) + draw.SimpleText(use, "BeatrunHUD", size + 48, size - 30, color_white) + end + + if LocalPlayer():KeyDown(IN_RELOAD) then + surface.SetDrawColor(color_white_t) + surface.DrawRect(size * 3, 0, size, size) + draw.SimpleText(reload, "BeatrunHUD", size * 3 + 12, size - 30, color_black) + else + surface.SetDrawColor(color_black_t) + surface.DrawRect(size * 3, 0, size, size) + draw.SimpleText(reload, "BeatrunHUD", size * 3 + 12, size - 30, color_white) + end + + if LocalPlayer():KeyDown(IN_MOVELEFT) then + surface.SetDrawColor(color_white_t) + surface.DrawRect(0, size, size, size) + draw.SimpleText(moveleft, "BeatrunHUD", size - 23, size + 8, color_black) + else + surface.SetDrawColor(color_black_t) + surface.DrawRect(0, size, size, size) + draw.SimpleText(moveleft, "BeatrunHUD", size - 23, size + 8, color_white) + end + + if LocalPlayer():KeyDown(IN_BACK) then + surface.SetDrawColor(color_white_t) + surface.DrawRect(size, size, size, size) + draw.SimpleText(back, "BeatrunHUD", size + 12, size + 8, color_black) + else + surface.SetDrawColor(color_black_t) + surface.DrawRect(size, size, size, size) + draw.SimpleText(back, "BeatrunHUD", size + 12, size + 8, color_white) + end + + if LocalPlayer():KeyDown(IN_MOVERIGHT) then + surface.SetDrawColor(color_white_t) + surface.DrawRect(size * 2, size, size, size) + draw.SimpleText(moveright, "BeatrunHUD", size + 48, size + 8, color_black) + else + surface.SetDrawColor(color_black_t) + surface.DrawRect(size * 2, size, size, size) + draw.SimpleText(moveright, "BeatrunHUD", size + 48, size + 8, color_white) + end + + if LocalPlayer():KeyDown(IN_JUMP) then + surface.SetDrawColor(color_white_t) + surface.DrawRect(0, size * 2, size * 3, size) + draw.SimpleText(jump, "BeatrunHUD", 28, size * 2 + 8, color_black) + else + surface.SetDrawColor(color_black_t) + surface.DrawRect(0, size * 2, size * 3, size) + draw.SimpleText(jump, "BeatrunHUD", 28, size * 2 + 8, color_white) + end + + if LocalPlayer():KeyDown(IN_SPEED) then + surface.SetDrawColor(color_white_t) + surface.DrawRect(0, size * 3, size * 3, size) + draw.SimpleText(speed, "BeatrunHUD", 28, size * 3 + 8, color_black) + else + surface.SetDrawColor(color_black_t) + surface.DrawRect(0, size * 3, size * 3, size) + draw.SimpleText(speed, "BeatrunHUD", 28, size * 3 + 8, color_white) + end + + if LocalPlayer():KeyDown(IN_DUCK) then + surface.SetDrawColor(color_white_t) + surface.DrawRect(0, size * 4, size * 3, size) + draw.SimpleText(duck, "BeatrunHUD", 32, size * 4 + 8, color_black) + else + surface.SetDrawColor(color_black_t) + surface.DrawRect(0, size * 4, size * 3, size) + draw.SimpleText(duck, "BeatrunHUD", 32, size * 4 + 8, color_white) + end + + if LocalPlayer():KeyDown(IN_ATTACK) then + surface.SetDrawColor(color_white_t) + surface.DrawRect(size * 3, size, size * 2, size) + draw.SimpleText(attack, "BeatrunHUD", size + 87, size + 8, color_black) + else + surface.SetDrawColor(color_black_t) + surface.DrawRect(size * 3, size, size * 2, size) + draw.SimpleText(attack, "BeatrunHUD", size + 87, size + 8, color_white) + end + + if LocalPlayer():KeyDown(IN_ATTACK2) then + surface.SetDrawColor(color_white_t) + surface.DrawRect(size * 3, size * 2, size * 2, size) + draw.SimpleText(attack2, "BeatrunHUD", size + 86, size * 2 + 8, color_black) + else + surface.SetDrawColor(color_black_t) + surface.DrawRect(size * 3, size * 2, size * 2, size) + draw.SimpleText(attack2, "BeatrunHUD", size + 86, size * 2 + 8, color_white) + end + end +end + +hook.Add("HUDPaint", "KeyStrokes", ShowKeyStrokes) diff --git a/beatrun/gamemodes/beatrun/gamemode/cl/Menu_Course.lua b/beatrun/gamemodes/beatrun/gamemode/cl/Menu_Course.lua index 9b6f455..9080937 100644 --- a/beatrun/gamemodes/beatrun/gamemode/cl/Menu_Course.lua +++ b/beatrun/gamemodes/beatrun/gamemode/cl/Menu_Course.lua @@ -25,7 +25,7 @@ local function buildmodebutton() LocalPlayer():ConCommand("buildmode") end -AEUI:Text(coursepanel, language.GetPhrase("beatrun.coursemenu.trials"):format(game.GetMap()), "AEUIVeryLarge", 20, 30) +AEUI:Text(coursepanel, language.GetPhrase("beatrun.coursemenu.trials"):format(string.Replace(game.GetMap(), " ", "-")), "AEUIVeryLarge", 20, 30) local buildmodebutton = AEUI:AddButton(coursepanel, "#beatrun.coursemenu.buildmode", buildmodebutton, "AEUILarge", coursepanel.w - 400, coursepanel.h - 50) buildmodebutton.greyed = sacheck @@ -55,7 +55,7 @@ function OpenCourseMenu() AEUI:AddPanel(coursepanel) AEUI:AddPanel(courselist) - local dir = "beatrun/courses/" .. game.GetMap() .. "/" + local dir = "beatrun/courses/" .. string.Replace(game.GetMap(), " ", "-") .. "/" local dirsearch = dir .. "*.txt" local files = file.Find(dirsearch, "DATA", "datedesc") diff --git a/beatrun/gamemodes/beatrun/gamemode/cl/PacketLossFix.lua b/beatrun/gamemodes/beatrun/gamemode/cl/PacketLossFix.lua index d221856..70a916a 100644 --- a/beatrun/gamemodes/beatrun/gamemode/cl/PacketLossFix.lua +++ b/beatrun/gamemodes/beatrun/gamemode/cl/PacketLossFix.lua @@ -1,4 +1,3 @@ --- local checktimer = 0 local errorc = Color(255, 25, 25) local whitelist = { @@ -8,11 +7,7 @@ local whitelist = { local whitelistanims = fbanims local function BodyAnimAntiStuck() - if not IsValid(BodyAnim) then - checktimer = 0 - - return - end + if not IsValid(BodyAnim) then return end local ply = LocalPlayer() diff --git a/beatrun/gamemodes/beatrun/gamemode/cl/ToolMenuSettings.lua b/beatrun/gamemodes/beatrun/gamemode/cl/ToolMenuSettings.lua index acb7ce6..1ef5f52 100644 --- a/beatrun/gamemodes/beatrun/gamemode/cl/ToolMenuSettings.lua +++ b/beatrun/gamemodes/beatrun/gamemode/cl/ToolMenuSettings.lua @@ -167,8 +167,8 @@ hook.Add("PopulateToolMenu", "Beatrun_ToolMenu", function() panel:CheckBox("#beatrun.toolsmenu.hud.showspeedometer", "Beatrun_ShowSpeedometer") panel:ControlHelp("#beatrun.toolsmenu.hud.showspeedometerdesc") - panel:CheckBox("#beatrun.toolsmenu.hud.wind", "Beatrun_Wind") - panel:ControlHelp("#beatrun.toolsmenu.hud.winddesc") + panel:CheckBox("#beatrun.toolsmenu.hud.keystrokes", "Beatrun_ShowKeystrokes") + panel:ControlHelp("#beatrun.toolsmenu.hud.keystrokesdesc") panel:NumSlider("#beatrun.toolsmenu.hud.hidden", "Beatrun_HUDHidden", 0, 2, 0) panel:ControlHelp(language.GetPhrase("beatrun.toolsmenu.hud.hiddendesc")) @@ -250,6 +250,9 @@ hook.Add("PopulateToolMenu", "Beatrun_ToolMenu", function() panel:CheckBox("#beatrun.toolsmenu.moves.totsugekiaudio", "Beatrun_TotsugekiAudio") panel:ControlHelp(language.GetPhrase("beatrun.toolsmenu.moves.totsugekiaudiodesc")) + + panel:CheckBox("#beatrun.toolsmenu.gameplay.wind", "Beatrun_Wind") + panel:ControlHelp("#beatrun.toolsmenu.gameplay.winddesc") end) spawnmenu.AddToolMenuOption("Beatrun", "Server", "beatrun_misc", "#beatrun.toolsmenu.misc.name", "", "", function(panel) @@ -347,6 +350,9 @@ hook.Add("PopulateToolMenu", "Beatrun_ToolMenu", function() panel:CheckBox("#beatrun.randommwloadouts", "Beatrun_RandomMWLoadouts") panel:ControlHelp("#beatrun.randommwloadoutsdesc") + panel:CheckBox("#beatrun.randoarc9loadouts", "Beatrun_RandomARC9Loadouts") + panel:ControlHelp("#beatrun.randoarc9loadoutsdesc") + local DatatheftButton = vgui.Create("DButton", panel) DatatheftButton:SetText("#beatrun.toolsmenu.gamemodes.datatheft") DatatheftButton:SetSize(0, 20) diff --git a/beatrun/gamemodes/beatrun/gamemode/cl_init.lua b/beatrun/gamemodes/beatrun/gamemode/cl_init.lua index 8d4786f..c1a2762 100644 --- a/beatrun/gamemodes/beatrun/gamemode/cl_init.lua +++ b/beatrun/gamemodes/beatrun/gamemode/cl_init.lua @@ -3,22 +3,4 @@ include("shared.lua") for _, v in ipairs(file.Find("gamemodes/beatrun/gamemode/cl/*.lua", "GAME")) do include("cl/" .. v) -end - -http.Fetch("https://raw.githubusercontent.com/JonnyBro/beatrun/main/version.txt", function(body, size, headers, code) - if code == 200 then - if not file.Exists("beatrun/version.txt", "DATA") then - file.Write("beatrun/version.txt", body) - end - - if body ~= VERSIONGLOBAL then - file.Write("beatrun/version.txt", body) - else - print("Latest version already") - end - else - print("Error while checking version:\n" .. body) - end -end, function(e) - print("Error while checking version:\n" .. e) -end) \ No newline at end of file +end \ No newline at end of file diff --git a/beatrun/gamemodes/beatrun/gamemode/player_class/player_beatrun.lua b/beatrun/gamemodes/beatrun/gamemode/player_class/player_beatrun.lua index 7d68ae2..25a0b10 100644 --- a/beatrun/gamemodes/beatrun/gamemode/player_class/player_beatrun.lua +++ b/beatrun/gamemodes/beatrun/gamemode/player_class/player_beatrun.lua @@ -130,26 +130,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 diff --git a/beatrun/gamemodes/beatrun/gamemode/sh/!Helpers.lua b/beatrun/gamemodes/beatrun/gamemode/sh/!Helpers.lua index 1da2a05..a46d66f 100644 --- a/beatrun/gamemodes/beatrun/gamemode/sh/!Helpers.lua +++ b/beatrun/gamemodes/beatrun/gamemode/sh/!Helpers.lua @@ -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"} } @@ -86,4 +89,61 @@ function playermeta:notUsingRH(wep) else return false end -end \ No newline at end of file +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 diff --git a/beatrun/gamemodes/beatrun/gamemode/sh/BuildMode.lua b/beatrun/gamemodes/beatrun/gamemode/sh/BuildMode.lua index 9591127..5a5c7ea 100644 --- a/beatrun/gamemodes/beatrun/gamemode/sh/BuildMode.lua +++ b/beatrun/gamemodes/beatrun/gamemode/sh/BuildMode.lua @@ -576,7 +576,7 @@ if SERVER then end function Beatrun_ReadCourseLocal(id) - local dir = "beatrun/courses/" .. game.GetMap() .. "/" + local dir = "beatrun/courses/" .. string.Replace(game.GetMap(), " ", "-") .. "/" local save = file.Read(dir .. id .. ".txt", "DATA") if not save then @@ -943,7 +943,7 @@ if CLIENT then local save = CourseData(name) local jsonsave = util.TableToJSON(save) local id = util.CRC(jsonsave) - local dir = "beatrun/courses/" .. game.GetMap() .. "/" + local dir = "beatrun/courses/" .. string.Replace(game.GetMap(), " ", "-") .. "/" if compress == nil then compress = true end @@ -1011,7 +1011,7 @@ if CLIENT then --[[ concommand.Add("Beatrun_PrintCourse", function(ply, cmd, args, argstr) - local dir = "beatrun/courses/" .. game.GetMap() .. "/" + local dir = "beatrun/courses/" .. string.Replace(game.GetMap(), " ", "-") .. "/" local save = file.Read(dir .. args[1] .. ".txt", "DATA") if not save then diff --git a/beatrun/gamemodes/beatrun/gamemode/sh/Checkpoints.lua b/beatrun/gamemodes/beatrun/gamemode/sh/Checkpoints.lua index 5d52149..4897512 100644 --- a/beatrun/gamemodes/beatrun/gamemode/sh/Checkpoints.lua +++ b/beatrun/gamemodes/beatrun/gamemode/sh/Checkpoints.lua @@ -241,49 +241,55 @@ function CourseHUD() local incourse = Course_Name ~= "" local totaltime = CheckpointNumber ~= -1 and math.max(0, CurTime() - Course_StartTime) or Course_EndTime - local text_color = string.ToColor(LocalPlayer():GetInfo("Beatrun_HUDTextColor")) - - if GetConVar("Beatrun_ShowSpeedometer"):GetBool() then - local speed = math.Round(ply:GetVelocity():Length2D() * 0.06858125) - + if incourse then + local text = string.FormattedTime(totaltime, "%02i:%02i:%02i") + local w, _ = surface.GetTextSize(text) + surface.SetFont("BeatrunHUD") + surface.SetTextPos(ScrW() * 0.85 - w * 0.5 + vpx, ScrH() * 0.075 + vpz) + surface.DrawText(text) + end + + if GetConVar("Beatrun_ShowSpeedometer"):GetBool() and GetConVar("Beatrun_HUDHidden"):GetInt() ~= 2 then + local speed = math.Round(ply:GetVelocity():Length() * 0.06858125) + if speed < 10 then speed = "0" .. speed end - + text = language.GetPhrase("beatrun.checkpoints.speedometer"):format(speed) - + local w, _ = surface.GetTextSize(text) w = w or 0 - + local r, g, b, a = string.ToColor(GetConVar("Beatrun_HUDTextColor"):GetString()) - + surface.SetDrawColor(255, 255, 255, 255) surface.SetFont("BeatrunHUD") surface.SetTextColor(r, g, b, a) surface.SetTextPos(ScrW() * 0.85 - w * 0.5 + vpx, ScrH() * 0.85 + vpz) surface.DrawText(text) - + if GetConVar("Beatrun_HUDStats"):GetBool() then local ang1 = ply:GetAimVector() ang1 = math.Round(ang1:Angle()[2] % 90, 0) surface.SetTextPos(ScrW() * 0.85 - w * 0.5 + vpx, ScrH() * 0.88 + vpz) surface.DrawText(ang1) - + surface.SetTextPos(ScrW() * 0.87 - w * 0.5 + vpx, ScrH() * 0.88 + vpz) surface.DrawText("Angle") - + surface.SetTextPos(ScrW() * 0.85 - w * 0.5 + vpx, ScrH() * 0.90 + vpz) surface.DrawText(ply:GetWallrun()) surface.SetTextPos(ScrW() * 0.87 - w * 0.5 + vpx, ScrH() * 0.90 + vpz) surface.DrawText("Wall stat") - + if ply:UsingRH() then surface.SetTextPos(ScrW() * 0.85 - w * 0.5 + vpx, ScrH() * 0.92 + vpz) surface.DrawText(tostring(ply:GetActiveWeapon():GetQuakeJumping())) surface.SetTextPos(ScrW() * 0.89 - w * 0.5 + vpx, ScrH() * 0.92 + vpz) surface.DrawText("Quake") end - + surface.SetTextPos(ScrW() * 0.85 - w * 0.5 + vpx, ScrH() * 0.94 + vpz) if (ply:GetWallrunTime() - CurTime()) < 0 then surface.DrawText("0.00") @@ -293,10 +299,10 @@ function CourseHUD() surface.SetTextPos(ScrW() * 0.89 - w * 0.5 + vpx, ScrH() * 0.94 + vpz) surface.DrawText("Wallrun Time Remains") - + surface.SetTextPos(ScrW() * 0.85 - w * 0.5 + vpx, ScrH() * 0.96 + vpz) surface.DrawText(tostring(CurTime() < ply:GetWallrunTime())) - + surface.SetTextPos(ScrW() * 0.89 - w * 0.5 + vpx, ScrH() * 0.96 + vpz) surface.DrawText("Wallrunning") end @@ -310,7 +316,7 @@ function CourseHUD() surface.SetTextPos(ScrW() * 0.87 - w + vpx, ScrH() * 0.075 + vpz) surface.DrawText(text) end - + if incourse and pbtimes and !ply.InReplay then local text = string.FormattedTime(pbtotal, "%02i:%02i:%02i") local w, h = surface.GetTextSize(text) @@ -319,7 +325,7 @@ function CourseHUD() pbcolor.r = text_color.r * 0.6 pbcolor.g = text_color.g * 0.6 pbcolor.b = text_color.b * 0.6 - + surface.SetFont("BeatrunHUD") surface.SetTextPos(ScrW() * 0.87 - w + vpx, ScrH() * 0.075 + h + vpz) surface.SetTextColor(pbcolor) diff --git a/beatrun/gamemodes/beatrun/gamemode/sh/DataTheft.lua b/beatrun/gamemodes/beatrun/gamemode/sh/DataTheft.lua index 717bb0f..1ab2fb5 100644 --- a/beatrun/gamemodes/beatrun/gamemode/sh/DataTheft.lua +++ b/beatrun/gamemodes/beatrun/gamemode/sh/DataTheft.lua @@ -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 diff --git a/beatrun/gamemodes/beatrun/gamemode/sh/Deathmatch.lua b/beatrun/gamemodes/beatrun/gamemode/sh/Deathmatch.lua index a2a9401..881ae3d 100644 --- a/beatrun/gamemodes/beatrun/gamemode/sh/Deathmatch.lua +++ b/beatrun/gamemodes/beatrun/gamemode/sh/Deathmatch.lua @@ -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 diff --git a/beatrun/gamemodes/beatrun/gamemode/sh/FreerunSysAll.lua b/beatrun/gamemodes/beatrun/gamemode/sh/FreerunSysAll.lua index 8252eba..f0117ae 100644 --- a/beatrun/gamemodes/beatrun/gamemode/sh/FreerunSysAll.lua +++ b/beatrun/gamemodes/beatrun/gamemode/sh/FreerunSysAll.lua @@ -198,15 +198,14 @@ hook.Add("OnPlayerHitGround", "MELandSound", function(ply, water, floater, speed end if SERVER and speed >= 500 and ply:GetJumpTurn() then - local info = DamageInfo() local dmg = ply:Health() * 0.1 if ply:Health() - dmg > 0 then - info:SetDamage(dmg) - info:SetDamageType(DMG_FALL) - info:SetAttacker(game.GetWorld()) - info:SetInflictor(game.GetWorld()) - + local info = DamageInfo() + info:SetDamage(dmg) + info:SetDamageType(DMG_FALL) + info:SetAttacker(game.GetWorld()) + info:SetInflictor(game.GetWorld()) ply:TakeDamageInfo(info) end end diff --git a/beatrun/gamemodes/beatrun/gamemode/sh/Melee.lua b/beatrun/gamemodes/beatrun/gamemode/sh/Melee.lua index 398b284..952cad3 100644 --- a/beatrun/gamemodes/beatrun/gamemode/sh/Melee.lua +++ b/beatrun/gamemodes/beatrun/gamemode/sh/Melee.lua @@ -191,13 +191,12 @@ local function MeleeThink(ply, mv, cmd) if SERVER and IsValid(ent) and (not ent:IsPlayer() or Course_Name == "" and not GetGlobalBool("GM_INFECTION") and GetConVar("sbox_playershurtplayers"):GetBool()) then local d = DamageInfo() - d:SetDamage(meleedata[ply:GetMelee()][6]) - d:SetAttacker(ply) - d:SetInflictor(ply) - d:SetDamageType(DMG_CLUB) - d:SetDamagePosition(tr.start) - d:SetDamageForce(ply:EyeAngles():Forward() * 7000) - + d:SetDamage(meleedata[ply:GetMelee()][6]) + d:SetAttacker(ply) + d:SetInflictor(ply) + d:SetDamageType(DMG_CLUB) + d:SetDamagePosition(tr.start) + d:SetDamageForce(ply:EyeAngles():Forward() * 7000) ent:TakeDamageInfo(d) if SERVER and ent:GetClass() == "func_breakable_surf" then diff --git a/beatrun/gamemodes/beatrun/gamemode/sh/SafetyRoll.lua b/beatrun/gamemodes/beatrun/gamemode/sh/SafetyRoll.lua index 9ecf6ac..fca3e09 100644 --- a/beatrun/gamemodes/beatrun/gamemode/sh/SafetyRoll.lua +++ b/beatrun/gamemodes/beatrun/gamemode/sh/SafetyRoll.lua @@ -249,7 +249,7 @@ if SERVER then if speed < 800 and CurTime() < ply:GetSafetyRollKeyTime() and not ply:GetCrouchJump() and not ply:Crouching() then return 0 else - return 1000 + return math.huge end end diff --git a/beatrun/gamemodes/beatrun/gamemode/sh/Sliding.lua b/beatrun/gamemodes/beatrun/gamemode/sh/Sliding.lua index 5800a0e..4959f53 100644 --- a/beatrun/gamemodes/beatrun/gamemode/sh/Sliding.lua +++ b/beatrun/gamemodes/beatrun/gamemode/sh/Sliding.lua @@ -246,6 +246,7 @@ end hook.Add("SetupMove", "qslide", function(ply, mv, cmd) if not ply:Alive() then return end + if ply:GetSafetyRollKeyTime() > CurTime() then return end if not ply.OldDuckSpeed then ply.OldDuckSpeed = ply:GetDuckSpeed() @@ -321,12 +322,10 @@ hook.Add("SetupMove", "qslide", function(ply, mv, cmd) ply:SetCrouchJump(false) - if SERVER and mv:GetVelocity().z <= -1250 then + if SERVER and mv:GetVelocity().z <= -1250 and not ply:InOverdrive() then local dmg = DamageInfo() - - dmg:SetDamageType(DMG_FALL) - dmg:SetDamage(1000) - + dmg:SetDamageType(DMG_FALL) + dmg:SetDamage(1000) ply:TakeDamageInfo(dmg) end end @@ -520,8 +519,8 @@ hook.Add("SetupMove", "qslide", function(ply, mv, cmd) if not slippery and pos.z > ply:GetSlidingLastPos().z + 1 then ply:SetSlidingTime(ply:GetSlidingTime() - 0.025) elseif slippery or slidedelta < 1 and pos.z < ply:GetSlidingLastPos().z - 0.25 then - ply:SetSlidingTime(CT + slidetime) --[[ 450 * ply:GetOverdriveMult() ]] - ply:SetSlidingVel(math.min(mv:GetVelocity():Length() * 0.865, GetConVar("Beatrun_SpeedLimit"):GetInt() * 2) * ply:GetOverdriveMult()) + ply:SetSlidingTime(CT + slidetime) --[[ GetConVar("Beatrun_SpeedLimit"):GetInt() ]] + ply:SetSlidingVel(math.min(mv:GetVelocity():Length() * 0.865, 450 * ply:GetOverdriveMult())) end ply:SetSlidingLastPos(pos) diff --git a/beatrun/gamemodes/beatrun/gamemode/shared.lua b/beatrun/gamemodes/beatrun/gamemode/shared.lua index 1fc2f14..55e10cd 100644 --- a/beatrun/gamemodes/beatrun/gamemode/shared.lua +++ b/beatrun/gamemodes/beatrun/gamemode/shared.lua @@ -1,4 +1,6 @@ -VERSIONGLOBAL = "1.0.8" +VERSION_GLOBAL = "1.0.22" +VERSION_LATEST = "" +VERSION_CHECKED = false DeriveGamemode("sandbox") @@ -14,4 +16,30 @@ include("preexecute/shared.lua") for _, v in ipairs(file.Find("gamemodes/beatrun/gamemode/sh/*.lua", "GAME", "nameasc")) do AddCSLuaFile("sh/" .. v) include("sh/" .. v) +end + +if not VERSION_CHECKED then + http.Fetch("https://raw.githubusercontent.com/JonnyBro/beatrun/main/version.txt", function(body, size, headers, code) + if code == 200 then + VERSION_LATEST = body:gsub("[\n\r]", "") + print("Latest version: " .. VERSION_LATEST) + + if VERSION_LATEST > VERSION_GLOBAL then + print("Your version is behind latest, please update.") + elseif VERSION_LATEST == VERSION_GLOBAL then + print("You're up to date, nice!") + else + print("Your version is ahead of latest. Huh?") + end + + VERSION_CHECKED = true + + return + else + print("Error while checking version (not 200 code):\n" .. body) + VERSION_CHECKED = true + + return + end + end) end \ No newline at end of file diff --git a/version.txt b/version.txt index 337a6a8..2fa3901 100644 --- a/version.txt +++ b/version.txt @@ -1 +1 @@ -1.0.8 \ No newline at end of file +1.0.22 \ No newline at end of file