mirror of
https://github.com/JonnyBro/beatrun.git
synced 2024-12-27 20:43:02 +05:00
Merge branch 'main' of https://github.com/JonnyBro/beatrun into JonnyBro-main
This commit is contained in:
commit
23368f7c17
37 changed files with 580 additions and 402 deletions
29
LICENSE
29
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 <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
190
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**: `<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).
|
||||
|
|
180
README.ru.md
180
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).
|
||||
|
|
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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=Інші налаштування
|
||||
|
|
|
@ -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!")
|
||||
|
|
|
@ -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")
|
||||
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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 = {
|
||||
|
|
|
@ -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()
|
||||
|
||||
|
|
|
@ -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")
|
||||
|
|
149
beatrun/gamemodes/beatrun/gamemode/cl/Keystrokes.lua
Normal file
149
beatrun/gamemodes/beatrun/gamemode/cl/Keystrokes.lua
Normal 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)
|
|
@ -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")
|
||||
|
||||
|
|
|
@ -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()
|
||||
|
||||
|
|
|
@ -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)
|
||||
|
|
|
@ -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
|
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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)
|
||||
|
|
|
@ -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
|
||||
|
||||
|
|
|
@ -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
|
||||
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
||||
|
|
|
@ -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)
|
||||
|
|
|
@ -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
|
|
@ -1 +1 @@
|
|||
1.0.8
|
||||
1.0.22
|
Loading…
Reference in a new issue