Merge branch 'main' of https://github.com/JonnyBro/beatrun into JonnyBro-main

This commit is contained in:
LostTrackpad 2024-12-19 14:45:17 +07:00
commit 23368f7c17
37 changed files with 580 additions and 402 deletions

29
LICENSE
View file

@ -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 <sam@hocevar.net>
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 <https://unlicense.org>
0. You just DO WHAT THE FUCK YOU WANT TO.

190
README.md
View file

@ -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**: `<Garry's Mod game folder>` 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 *`<Garry's Mod game folder>/garrysmod/addons`* if you have one.**
3. Extract the `beatrun-main/beatrun` folder to *`<Garry's Mod game folder>/garrysmod/addons`*.
* If you want to have Discord and Steam Presence:
* Extract the `beatrun-main/lua` folder to *`<Garry's Mod game folder>/garrysmod`*.
4. That's it, Beatrun is installed.
### *Method 2: Using Git and Directory Junctions* ***(Windows 10+ Only!)***
> [!WARNING]
> This method requires:<br>
> * **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)<br>
> **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).

View file

@ -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).

View file

@ -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

View file

@ -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

View file

@ -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

View file

@ -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

View file

@ -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

View file

@ -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

View file

@ -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=Інші налаштування

View file

@ -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!")

View file

@ -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")

View file

@ -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

View file

@ -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 = {

View file

@ -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()

View file

@ -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")

View file

@ -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)

View file

@ -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")

View file

@ -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()

View file

@ -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)

View file

@ -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)
end

View file

@ -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

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"}
}
@ -86,4 +89,61 @@ function playermeta:notUsingRH(wep)
else
return false
end
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

@ -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

View file

@ -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)

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

@ -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

View file

@ -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

View file

@ -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

View file

@ -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)

View file

@ -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

View file

@ -1 +1 @@
1.0.8
1.0.22