mirror of
https://github.com/JonnyBro/beatrun.git
synced 2024-12-29 05:13: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
|
Copyright (C) 2004 Sam Hocevar <sam@hocevar.net>
|
||||||
distribute this software, either in source code form or as a compiled
|
|
||||||
binary, for any purpose, commercial or non-commercial, and by any
|
|
||||||
means.
|
|
||||||
|
|
||||||
In jurisdictions that recognize copyright laws, the author or authors
|
Everyone is permitted to copy and distribute verbatim or modified
|
||||||
of this software dedicate any and all copyright interest in the
|
copies of this license document, and changing it is allowed as long
|
||||||
software to the public domain. We make this dedication for the benefit
|
as the name is changed.
|
||||||
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.
|
|
||||||
|
|
||||||
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
|
DO WHAT THE FUCK YOU WANT TO PUBLIC LICENSE
|
||||||
EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
|
TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
|
||||||
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.
|
|
||||||
|
|
||||||
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)
|
[![Powered by Electricity](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 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.\
|
## 🚨 Important Notice
|
||||||
Fully open sourced and maintained by the community (like 4 people I think).
|
|
||||||
|
|
||||||
> [!IMPORTANT]
|
### Please read this README thoroughly before asking questions
|
||||||
> 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.
|
|
||||||
|
|
||||||
## 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]
|
> [!WARNING]
|
||||||
> This method requires:<br>
|
> **This repository contains no malicious modules.** However, optional modules such as Discord Rich Presence and Steam Presence are available for additional features.
|
||||||
> * **A working and up to date installation of Windows 10 or above.**
|
> These are **completely optional** and can be removed at any time.
|
||||||
> * 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>
|
> - 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
|
## 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]
|
## Known Issues
|
||||||
> This version has *lots* of undocumented features and fixes. Look into the commit history if you wanna see all of them.
|
|
||||||
|
|
||||||
* 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)**!
|
- See the full list of issues **[here](https://github.com/JonnyBro/beatrun/issues)**.
|
||||||
* 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
|
|
||||||
|
|
||||||
* 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
|
## Credits
|
||||||
|
|
||||||
* [All contributors](https://github.com/JonnyBro/beatrun/graphs/contributors) for making Beatrun better
|
- **[All contributors](https://github.com/JonnyBro/beatrun/graphs/contributors)** ❤️
|
||||||
* [EarthyKiller127](https://www.youtube.com/channel/UCiFqPwGo4x0J65xafIaECDQ) / datæ for making the original Beatrun gamemode *(and obfuscating it and putting it into DLL files...really?)*
|
- [EarthyKiller127/datae](https://www.youtube.com/channel/UCiFqPwGo4x0J65xafIaECDQ) - Original creator of Beatrun.
|
||||||
* [relaxtakenotes](https://github.com/relaxtakenotes) for even making all this possible
|
- [relaxtakenotes](https://github.com/relaxtakenotes) - Made this project possible.
|
||||||
* [MTB](https://www.youtube.com/@MTB396) for Beatrun Reanimated Project
|
- [MTB](https://www.youtube.com/@MTB396) - Beatrun Reanimated Project.
|
||||||
* [Fluffy Servers](https://github.com/fluffy-servers/gmod-discord-rpc) for Discord Rich Presence module
|
- [Fluffy Servers](https://github.com/fluffy-servers/gmod-discord-rpc) - Discord Rich Presence.
|
||||||
* [YuRaNnNzZZ](https://github.com/YuRaNnNzZZ/gmcl_steamrichpresencer) for Steam Presence module
|
- [YuRaNnNzZZ](https://github.com/YuRaNnNzZZ/gmcl_steamrichpresencer) - Steam Presence (TFA Base creator).
|
||||||
|
|
||||||
[^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?*
|
|
||||||
|
|
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)
|
[![Powered by Electricity](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 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]
|
### Пожалуйста, прочитайте этот README полностью перед тем, как задавать вопросы
|
||||||
> Данный проект не содержит вредоносных модулей. Здесь присутствуют модули для доп. функций, таких как:
|
|
||||||
>
|
|
||||||
> * Показ статуса в Discord.
|
|
||||||
> * Показ статуса в Steam.
|
|
||||||
>
|
|
||||||
> **Данные модули опциональны и могут быть удалены в любой момент.**\
|
|
||||||
> Все модули можно найти **[здесь](https://github.com/JonnyBro/beatrun/tree/main/lua/bin)**.\
|
|
||||||
> Проверьте **[Благодарности](#благодарности)** чтобы найти исходный код модулей.
|
|
||||||
|
|
||||||
## Автоматическая установка (Рекомендуемое | Windows 10/11)
|
### **Единственный официальный источник** этого форка — этот репозиторий на GitHub. Версии в Workshop устарели и не поддерживаются
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## О проекте
|
||||||
|
|
||||||
|
Beatrun — это **знаменитый паркур-аддон для Garry's Mod**, теперь с полностью открытым исходным кодом и поддерживаемый сообществом.
|
||||||
|
Включает различные улучшения, новые функции и расширенную функциональность.
|
||||||
|
|
||||||
> [!WARNING]
|
> [!WARNING]
|
||||||
> Windows 7 не поддерживается.\
|
> **В этом репозитории нет вредоносных модулей.** Однако доступны опциональные модули, такие как показ статусов в Discord и Steam, для дополнительного функционала.
|
||||||
> Кому-то давно пора обновиться...
|
> Эти модули **абсолютно опциональны** и могут быть удалены в любое время.
|
||||||
|
>
|
||||||
|
> - Модули находятся **[здесь](https://github.com/JonnyBro/beatrun/tree/main/lua/bin)**.
|
||||||
|
> - Ознакомьтесь с разделом **[Благодарности](#благодарности)** для их исходного кода.
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## Установка
|
||||||
|
|
||||||
|
### 🔧 Автоматическая установка (Рекомендуется для Windows 10/11)
|
||||||
|
|
||||||
Запустите команду в Powershell.
|
|
||||||
> [!NOTE]
|
> [!NOTE]
|
||||||
> Win + R > `powershell` > *Enter*
|
> Windows 7 и старые версии Windows 10 не поддерживаются. Обновите свою ОС.
|
||||||
|
|
||||||
|
Запустите данную команду в PowerShell (Запустите от админа если Steam и/или игра установлены на системный (C:) диск):
|
||||||
|
|
||||||
```powershell
|
```powershell
|
||||||
irm https://beatrun.jonnybro.ru/install | iex
|
irm https://beatrun.jonnybro.ru/install | iex
|
||||||
```
|
```
|
||||||
|
|
||||||
* Выберите режим `Beatrun` в правом нижнем углу.
|
1. Запустите игру.
|
||||||
|
2. Выберите режим `Beatrun` в правом нижнем углу.
|
||||||
|
|
||||||
## Ручная установка
|
### 🛠️ Ручная установка
|
||||||
|
|
||||||
1. **[Скачайте проект](https://github.com/JonnyBro/beatrun/archive/refs/heads/master.zip)**.
|
1. **[Скачать репозиторий](https://github.com/JonnyBro/beatrun/archive/refs/heads/master.zip)**.
|
||||||
2. **Удалите папку `beatrun` по пути *путь_к_игре/garrysmod/addons* если присутствует.**
|
2. Удалите папку `beatrun` в `путь_к_игре/garrysmod/addons`, если она существует.
|
||||||
3. Извлеките папку `beatrun-main/beatrun` по пути *путь_к_игре/garrysmod/addons*.
|
3. Извлеките `beatrun-main/beatrun` в `путь_к_игре/garrysmod/addons`.
|
||||||
4. Если вы хотите показ статусов в Discord и Steam:
|
4. *(Опционально)* Для показа статусов в Discord и Steam извлеките `beatrun-main/lua` в `путь_к_игре/garrysmod`.
|
||||||
* Извлеките папку `beatrun-main/lua` по пути *путь_к_игре/garrysmod*.
|
5. Запустите игру.
|
||||||
5. Выберите режим `Beatrun` в правом нижнем углу.
|
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.
|
- **[Все участники](https://github.com/JonnyBro/beatrun/graphs/contributors)** ❤️
|
||||||
* [EarthyKiller127](https://www.youtube.com/channel/UCiFqPwGo4x0J65xafIaECDQ) - Создатель этого ужаса.
|
- [EarthyKiller127/datae](https://www.youtube.com/channel/UCiFqPwGo4x0J65xafIaECDQ) — создатель оригинального Beatrun.
|
||||||
* [relaxtakenotes](https://github.com/relaxtakenotes) - Без него этого проекта бы не существовало.
|
- [relaxtakenotes](https://github.com/relaxtakenotes) — этот проект стал возможен благодаря ему.
|
||||||
* [MTB](https://www.youtube.com/@MTB396) - Beatrun Reanimated Project.
|
- [MTB](https://www.youtube.com/@MTB396) — проект Beatrun Reanimated.
|
||||||
* [Fluffy Servers](https://github.com/fluffy-servers/gmod-discord-rpc) - Discord Rich Presence.
|
- [Fluffy Servers](https://github.com/fluffy-servers/gmod-discord-rpc) — модуль показа статусов в Discord.
|
||||||
* [YuRaNnNzZZ](https://github.com/YuRaNnNzZZ/gmcl_steamrichpresencer) - Steam Presence.
|
- [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
|
beatrun.hud.infector=Infector
|
||||||
|
|
||||||
# Menu_Course
|
# Menu_Course
|
||||||
beatrun.coursemenu.trials=Courses - %s
|
beatrun.coursemenu.trials=Courses - Folder: %s
|
||||||
beatrun.coursemenu.buildmode=Toggle Build Mode
|
beatrun.coursemenu.buildmode=Toggle Build Mode
|
||||||
beatrun.coursemenu.freeplay=Return to Freeplay
|
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.showSpeedometer=Show Speedometer
|
||||||
beatrun.toolsmenu.hud.showSpeedometerDesc=Shows the speedometer on HUD (hiding HUD does not affect visibility)
|
beatrun.toolsmenu.hud.showSpeedometerDesc=Shows the speedometer on HUD (hiding HUD does not affect visibility)
|
||||||
|
|
||||||
beatrun.toolsmenu.hud.wind=Wind Effect
|
beatrun.toolsmenu.hud.keystrokes=Show Keystrokes
|
||||||
beatrun.toolsmenu.hud.winddesc=Wind noises when running
|
beatrun.toolsmenu.hud.keystrokesdesc=Shows keys that you press
|
||||||
|
|
||||||
beatrun.toolsmenu.hud.hidden=Hide HUD
|
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.textcolor=HUD Text Color
|
||||||
beatrun.toolsmenu.hud.cornercolor=HUD Corner 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.rollspeedloss=Lose Speed on Roll
|
||||||
beatrun.toolsmenu.gameplay.rollspeedlossdesc=Toggles loss of speed on safety 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
|
# Tools Menu Misc Section
|
||||||
beatrun.toolsmenu.misc.name=Misc
|
beatrun.toolsmenu.misc.name=Misc
|
||||||
beatrun.toolsmenu.misc.desc=Misc Settings
|
beatrun.toolsmenu.misc.desc=Misc Settings
|
||||||
|
@ -266,3 +269,5 @@ beatrun.infection.end=The game has ended!\nSurvivors: %s\nRestarting in 15s
|
||||||
# Server ConVars
|
# Server ConVars
|
||||||
beatrun.randommwloadouts=Random MW Base Loadouts
|
beatrun.randommwloadouts=Random MW Base Loadouts
|
||||||
beatrun.randommwloadoutsdesc=Toggles random MW Base loadouts in Deathmatch and DataTheft
|
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.hudxp=Mostra XP HUD
|
||||||
beatrun.toolsmenu.hud.hudxpdesc=Mostra XP totali vicino al tuo nickname
|
beatrun.toolsmenu.hud.hudxpdesc=Mostra XP totali vicino al tuo nickname
|
||||||
|
|
||||||
beatrun.toolsmenu.hud.wind=Effetto del vento
|
beatrun.toolsmenu.hud.keystrokes=Show Keystrokes
|
||||||
beatrun.toolsmenu.hud.winddesc=Rumori del vento durante la corsa
|
beatrun.toolsmenu.hud.keystrokesdesc=Shows keys that you press
|
||||||
|
|
||||||
beatrun.toolsmenu.hud.hidden=Nascondi HUD
|
beatrun.toolsmenu.hud.hidden=Nascondi HUD
|
||||||
beatrun.toolsmenu.hud.hiddendesc=0 - Mostra\n1 - Solo Modalità di gioco\n2 - Nascosta
|
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.disablegrapple=Disabilita il rampino
|
||||||
beatrun.toolsmenu.gameplay.disablegrappledesc=Disabilita l'abilità del 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
|
# Tools Menu Misc Section
|
||||||
beatrun.toolsmenu.misc.name=Varie
|
beatrun.toolsmenu.misc.name=Varie
|
||||||
beatrun.toolsmenu.misc.desc=Impostazioni 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.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.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.quickturnhandsonly=Umożliwia szybki obrót tylko w trybie "Rąk biegacza"
|
||||||
|
beatrun.convars.showspeedometer=Przełącz widoczność prędkościomierza
|
||||||
|
|
||||||
# HUD
|
# HUD
|
||||||
beatrun.hud.course=Bieg: %s
|
beatrun.hud.course=Bieg: %s
|
||||||
|
@ -62,6 +63,7 @@ beatrun.coursesdatabase.update1=Próbujesz zaktualizować bieg oznaczony kodem %
|
||||||
# Tools Menu
|
# Tools Menu
|
||||||
beatrun.toolsmenu.client=Klient
|
beatrun.toolsmenu.client=Klient
|
||||||
beatrun.toolsmenu.server=Serwer
|
beatrun.toolsmenu.server=Serwer
|
||||||
|
beatrun.toolsmenu.extra=Ekstra
|
||||||
|
|
||||||
# Tools Menu Courses Section
|
# Tools Menu Courses Section
|
||||||
beatrun.toolsmenu.courses.name=Biegi
|
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.hudxp=Wyświetl PD na interfejsie
|
||||||
beatrun.toolsmenu.hud.hudxpdesc=Pokaż całkowitą liczbę PD w pobliżu swojego nicku
|
beatrun.toolsmenu.hud.hudxpdesc=Pokaż całkowitą liczbę PD w pobliżu swojego nicku
|
||||||
|
|
||||||
beatrun.toolsmenu.hud.wind=Efekt wiatru
|
beatrun.toolsmenu.hud.showspeedometer=Pokaż prędkościomierz
|
||||||
beatrun.toolsmenu.hud.winddesc=Włącza dźwięki wiatru w trakcie biegu
|
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.hidden=Ukryj interfejs
|
||||||
beatrun.toolsmenu.hud.hiddendesc=0 - Pokazany\n1 - Tylko poza rozgrywką swobodną\n2 - Ukryty
|
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.desc=Ustawienia kołysania kamery w ruchu
|
||||||
|
|
||||||
beatrun.toolsmenu.camera.stabilization=Stabilizacja 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.intensity=Intensywność kołysania kamery w ruchu
|
||||||
beatrun.toolsmenu.camera.fov=Pole widzenia
|
beatrun.toolsmenu.camera.fov=Pole widzenia
|
||||||
beatrun.toolsmenu.camera.fovdesc=Zmienia 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.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.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
|
# Tools Menu Misc Section
|
||||||
beatrun.toolsmenu.misc.name=Inne
|
beatrun.toolsmenu.misc.name=Inne
|
||||||
beatrun.toolsmenu.misc.desc=Inne ustawienia
|
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.hudxp=Mostrar XP
|
||||||
beatrun.toolsmenu.hud.hudxpdesc=Mostrar XP total perto do seu nome
|
beatrun.toolsmenu.hud.hudxpdesc=Mostrar XP total perto do seu nome
|
||||||
|
|
||||||
beatrun.toolsmenu.hud.wind=Efeito do Vento
|
beatrun.toolsmenu.hud.keystrokes=Show Keystrokes
|
||||||
beatrun.toolsmenu.hud.winddesc=Barulho de vento enquanto estiver correndo
|
beatrun.toolsmenu.hud.keystrokesdesc=Shows keys that you press
|
||||||
|
|
||||||
beatrun.toolsmenu.hud.hidden=Esconder a HUD
|
beatrun.toolsmenu.hud.hidden=Esconder a HUD
|
||||||
beatrun.toolsmenu.hud.hiddendesc=0 - Mostrado\n1 - Gamemode apenas\n2 - Escondido
|
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.disablegrapple=Desativar a Habilidade de Gancho
|
||||||
beatrun.toolsmenu.gameplay.disablegrappledesc=Desativa 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
|
# Tools Menu Misc Section
|
||||||
beatrun.toolsmenu.misc.name=Diversos
|
beatrun.toolsmenu.misc.name=Diversos
|
||||||
beatrun.toolsmenu.misc.desc=Configurações Diversas
|
beatrun.toolsmenu.misc.desc=Configurações Diversas
|
||||||
|
|
|
@ -50,7 +50,7 @@ beatrun.hud.lvl=Лвл: %s
|
||||||
beatrun.hud.infector=Заражённый
|
beatrun.hud.infector=Заражённый
|
||||||
|
|
||||||
# Menu_Course
|
# Menu_Course
|
||||||
beatrun.coursemenu.trials=Курсы - %s
|
beatrun.coursemenu.trials=Курсы - Папка: %s
|
||||||
beatrun.coursemenu.buildmode=Режим строительства
|
beatrun.coursemenu.buildmode=Режим строительства
|
||||||
beatrun.coursemenu.freeplay=Свободная игра
|
beatrun.coursemenu.freeplay=Свободная игра
|
||||||
|
|
||||||
|
@ -111,11 +111,11 @@ beatrun.toolsmenu.hud.hudxpdesc=Показывает весь XP в HUD
|
||||||
beatrun.toolsmenu.hud.showspeedometer=Показать спидометр
|
beatrun.toolsmenu.hud.showspeedometer=Показать спидометр
|
||||||
beatrun.toolsmenu.hud.showspeedometerdesc=Показывает спидометр в HUD
|
beatrun.toolsmenu.hud.showspeedometerdesc=Показывает спидометр в HUD
|
||||||
|
|
||||||
beatrun.toolsmenu.hud.wind=Эффект Ветра
|
beatrun.toolsmenu.hud.keystrokes=Показывать клавиши
|
||||||
beatrun.toolsmenu.hud.winddesc=Шум ветра во время бега
|
beatrun.toolsmenu.hud.keystrokesdesc=Показывает нажатие клавиш в HUD
|
||||||
|
|
||||||
beatrun.toolsmenu.hud.hidden=Скрыть 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.textcolor=Цвет Текста в HUD
|
||||||
beatrun.toolsmenu.hud.cornercolor=Цвет Края в HUD
|
beatrun.toolsmenu.hud.cornercolor=Цвет Края в HUD
|
||||||
|
@ -153,6 +153,9 @@ beatrun.toolsmenu.gameplay.disablegrappledesc=Переключает испол
|
||||||
beatrun.toolsmenu.gameplay.rollspeedloss=Потеря скорости при перекате
|
beatrun.toolsmenu.gameplay.rollspeedloss=Потеря скорости при перекате
|
||||||
beatrun.toolsmenu.gameplay.rollspeedlossdesc=Переключает потерю скорости при перекате
|
beatrun.toolsmenu.gameplay.rollspeedlossdesc=Переключает потерю скорости при перекате
|
||||||
|
|
||||||
|
beatrun.toolsmenu.gameplay.wind=Эффект Ветра
|
||||||
|
beatrun.toolsmenu.gameplay.winddesc=Шум ветра во время бега
|
||||||
|
|
||||||
# Tools Menu Misc Section
|
# Tools Menu Misc Section
|
||||||
beatrun.toolsmenu.misc.name=Другое
|
beatrun.toolsmenu.misc.name=Другое
|
||||||
beatrun.toolsmenu.misc.desc=Другие настройки
|
beatrun.toolsmenu.misc.desc=Другие настройки
|
||||||
|
@ -263,3 +266,5 @@ beatrun.infection.end=Игра окончена!\nВыжившие: %s\nПере
|
||||||
# Server ConVars
|
# Server ConVars
|
||||||
beatrun.randommwloadouts=Случайные наборы оружия MW Base
|
beatrun.randommwloadouts=Случайные наборы оружия MW Base
|
||||||
beatrun.randommwloadoutsdesc=Переключает случайные наборы оружия MW Base в Deathmatch и DataTheft
|
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.hudxp=Arayüz XP'yi göster
|
||||||
beatrun.toolsmenu.hud.hudxpdesc=Takma adın yanında toplam 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.keystrokes=Show Keystrokes
|
||||||
beatrun.toolsmenu.hud.winddesc=Koşarken rüzgar sesleri
|
beatrun.toolsmenu.hud.keystrokesdesc=Shows keys that you press
|
||||||
|
|
||||||
|
|
||||||
beatrun.toolsmenu.hud.hidden=Arayüzü gizle
|
beatrun.toolsmenu.hud.hidden=Arayüzü gizle
|
||||||
beatrun.toolsmenu.hud.hiddendesc=0 - Gösterilen\n1 - Yalnızca oyun\nmodu 2 - Gizli
|
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.disablegrapple=Kanca Özelliğini Devre Dışı Bırak
|
||||||
beatrun.toolsmenu.gameplay.disablegrappledesc=Kanca özelliğini devre dışı bırakır
|
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
|
# Tools Menu Misc Section
|
||||||
beatrun.toolsmenu.misc.name=Diğer
|
beatrun.toolsmenu.misc.name=Diğer
|
||||||
beatrun.toolsmenu.misc.desc=Çeşitli Ayarlar
|
beatrun.toolsmenu.misc.desc=Çeşitli Ayarlar
|
||||||
|
|
|
@ -50,7 +50,7 @@ beatrun.hud.lvl=Лвл: %s
|
||||||
beatrun.hud.infector=Заражений
|
beatrun.hud.infector=Заражений
|
||||||
|
|
||||||
# Menu_Course
|
# Menu_Course
|
||||||
beatrun.coursemenu.trials=Курси - %s
|
beatrun.coursemenu.trials=Курси - Папка: %s
|
||||||
beatrun.coursemenu.buildmode=Режим будівництва
|
beatrun.coursemenu.buildmode=Режим будівництва
|
||||||
beatrun.coursemenu.freeplay=Вільна гра
|
beatrun.coursemenu.freeplay=Вільна гра
|
||||||
|
|
||||||
|
@ -110,8 +110,8 @@ beatrun.toolsmenu.hud.hudxpdesc=Показує весь XP в HUD
|
||||||
beatrun.toolsmenu.hud.showSpeedometer=Показувати швидкість (спідометр)
|
beatrun.toolsmenu.hud.showSpeedometer=Показувати швидкість (спідометр)
|
||||||
beatrun.toolsmenu.hud.showSpeedometerDesc=Показує спідометр на HUD (приховування HUD не впливає на видимість)
|
beatrun.toolsmenu.hud.showSpeedometerDesc=Показує спідометр на HUD (приховування HUD не впливає на видимість)
|
||||||
|
|
||||||
beatrun.toolsmenu.hud.wind=Ефект Вітру
|
beatrun.toolsmenu.hud.keystrokes=Show Keystrokes
|
||||||
beatrun.toolsmenu.hud.winddesc=Шум вітру під час бігу
|
beatrun.toolsmenu.hud.keystrokesdesc=Shows keys that you press
|
||||||
|
|
||||||
beatrun.toolsmenu.hud.hidden=Приховати HUD
|
beatrun.toolsmenu.hud.hidden=Приховати HUD
|
||||||
beatrun.toolsmenu.hud.hiddendesc=0 - Показати\n1 - Тільки режим\n2 - Приховати повністю
|
beatrun.toolsmenu.hud.hiddendesc=0 - Показати\n1 - Тільки режим\n2 - Приховати повністю
|
||||||
|
@ -149,6 +149,9 @@ beatrun.toolsmenu.gameplay.disablegrappledesc=Відключає викорис
|
||||||
beatrun.toolsmenu.gameplay.rollLoseSpeed=Втрата швидкості під час перекату
|
beatrun.toolsmenu.gameplay.rollLoseSpeed=Втрата швидкості під час перекату
|
||||||
beatrun.toolsmenu.gameplay.rollLoseSpeedDesc=Чи буде гравець втрачати швидкість під час перекату чи ні (як у ME:Catalyst)
|
beatrun.toolsmenu.gameplay.rollLoseSpeedDesc=Чи буде гравець втрачати швидкість під час перекату чи ні (як у ME:Catalyst)
|
||||||
|
|
||||||
|
beatrun.toolsmenu.gameplay.wind=Ефект Вітру
|
||||||
|
beatrun.toolsmenu.gameplay.winddesc=Шум вітру під час бігу
|
||||||
|
|
||||||
# Tools Menu Misc Section
|
# Tools Menu Misc Section
|
||||||
beatrun.toolsmenu.misc.name=Інше
|
beatrun.toolsmenu.misc.name=Інше
|
||||||
beatrun.toolsmenu.misc.desc=Інші налаштування
|
beatrun.toolsmenu.misc.desc=Інші налаштування
|
||||||
|
|
|
@ -37,7 +37,7 @@ function ENT:StartTouch(ent)
|
||||||
end
|
end
|
||||||
|
|
||||||
function ENT:Touch(ent)
|
function ENT:Touch(ent)
|
||||||
if ent:IsPlayer() then
|
if ent:IsPlayer() and GetGlobalBool("GM_INFECTION") then
|
||||||
if CurTime() > ent.MemeTime then
|
if CurTime() > ent.MemeTime then
|
||||||
if not ent.MemeMessage 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!")
|
ent:ChatPrint("Are you having fun standing still in a parkour game? Let's spice things up a bit!")
|
||||||
|
|
|
@ -64,9 +64,8 @@ function ENT:BRCollisionFunc(ent)
|
||||||
|
|
||||||
local dmginfo = DamageInfo()
|
local dmginfo = DamageInfo()
|
||||||
dmginfo:SetAttacker(self)
|
dmginfo:SetAttacker(self)
|
||||||
dmginfo:SetDamage(1000)
|
dmginfo:SetDamage(math.huge)
|
||||||
dmginfo:SetDamageType(DMG_DISSOLVE)
|
dmginfo:SetDamageType(DMG_DISSOLVE)
|
||||||
|
|
||||||
ent:TakeDamageInfo(dmginfo)
|
ent:TakeDamageInfo(dmginfo)
|
||||||
ent:EmitSound("bigspark" .. math.random(1, 2) .. ".wav")
|
ent:EmitSound("bigspark" .. math.random(1, 2) .. ".wav")
|
||||||
|
|
||||||
|
|
|
@ -501,7 +501,6 @@ function SWEP:PrimaryAttack()
|
||||||
d:SetDamageType(DMG_CLUB)
|
d:SetDamageType(DMG_CLUB)
|
||||||
d:SetDamagePosition(tr.start)
|
d:SetDamagePosition(tr.start)
|
||||||
d:SetDamageForce(ply:EyeAngles():Forward() * 7000)
|
d:SetDamageForce(ply:EyeAngles():Forward() * 7000)
|
||||||
|
|
||||||
ent:TakeDamageInfo(d)
|
ent:TakeDamageInfo(d)
|
||||||
|
|
||||||
if ent:IsNPC() then
|
if ent:IsNPC() then
|
||||||
|
|
|
@ -23,6 +23,9 @@ end
|
||||||
local addons = 0
|
local addons = 0
|
||||||
|
|
||||||
local incompatible = {
|
local incompatible = {
|
||||||
|
["2155366756"] = true, -- VManip (Base)
|
||||||
|
["2364206712"] = true, -- [VManip] Vaulting
|
||||||
|
["2416989205"] = true, -- [VManip] Quick Slide
|
||||||
["1581533176"] = true, -- The Aperture [Reupload]
|
["1581533176"] = true, -- The Aperture [Reupload]
|
||||||
["2675972006"] = true, -- Custom Loadout
|
["2675972006"] = true, -- Custom Loadout
|
||||||
["378401390"] = true, -- Quake/Half-Life View bobbing
|
["378401390"] = true, -- Quake/Half-Life View bobbing
|
||||||
|
@ -49,9 +52,10 @@ local incompatible = {
|
||||||
["2824714462"] = true, -- [TFA] Screen Shake
|
["2824714462"] = true, -- [TFA] Screen Shake
|
||||||
["3037375111"] = true, -- Quick Slide With Legs
|
["3037375111"] = true, -- Quick Slide With Legs
|
||||||
["748422181"] = true, -- FOV Changer
|
["748422181"] = true, -- FOV Changer
|
||||||
["2930331275"] = true, -- Realistic Fragmentation System
|
["2919970981"] = true, -- Realistic Fragmentation System [OLD]
|
||||||
["112806637"] = true, -- Gmod Legs 3
|
["112806637"] = true, -- Gmod Legs 3
|
||||||
["678037029"] = true -- Enhanced Camera
|
["678037029"] = true, -- Enhanced Camera
|
||||||
|
["2497150824"] = true -- Smooth Camera
|
||||||
}
|
}
|
||||||
|
|
||||||
local warnpanel = {
|
local warnpanel = {
|
||||||
|
|
|
@ -42,15 +42,8 @@ hook.Add("Think", "beatrun_detect_tool", function()
|
||||||
end
|
end
|
||||||
end)
|
end)
|
||||||
|
|
||||||
-- local BodyAnimPos = Vector(0, 0, 0)
|
|
||||||
-- local BodyAnimAngLerp = Angle(0, 0, 0)
|
|
||||||
-- local DidDraw = false
|
|
||||||
local AnimString = "nil"
|
local AnimString = "nil"
|
||||||
-- local angclosenuff = false
|
|
||||||
local savedeyeangb = Angle(0, 0, 0)
|
local savedeyeangb = Angle(0, 0, 0)
|
||||||
-- local bodylockview = false
|
|
||||||
-- local bodyanimdone = false
|
|
||||||
-- local holstertime = 0
|
|
||||||
|
|
||||||
local animmodelstring = ""
|
local animmodelstring = ""
|
||||||
local showweapon = false
|
local showweapon = false
|
||||||
|
@ -93,7 +86,6 @@ function RemoveBodyAnim(noang)
|
||||||
if shouldremove then return end
|
if shouldremove then return end
|
||||||
|
|
||||||
local ply = LocalPlayer()
|
local ply = LocalPlayer()
|
||||||
-- local ang = ply:EyeAngles()
|
|
||||||
local newang = ply:EyeAngles()
|
local newang = ply:EyeAngles()
|
||||||
local noang = noang or false
|
local noang = noang or false
|
||||||
|
|
||||||
|
@ -245,7 +237,6 @@ function CacheLerpBodyAnim()
|
||||||
BodyAnimMDL:SetNoDraw(true)
|
BodyAnimMDL:SetNoDraw(true)
|
||||||
|
|
||||||
local pos = LocalPlayer():GetPos()
|
local pos = LocalPlayer():GetPos()
|
||||||
-- local posdelta = pos - matrixfrompos
|
|
||||||
local this = BodyAnim
|
local this = BodyAnim
|
||||||
this.m = this.m or Matrix()
|
this.m = this.m or Matrix()
|
||||||
|
|
||||||
|
|
|
@ -131,17 +131,14 @@ local function BeatrunHUD()
|
||||||
|
|
||||||
surface.SetFont("DebugFixedSmall")
|
surface.SetFont("DebugFixedSmall")
|
||||||
|
|
||||||
local version_text = "v" .. VERSIONGLOBAL
|
local version_text = "v" .. VERSION_GLOBAL
|
||||||
local tw, _ = surface.GetTextSize(version_text)
|
local tw, _ = surface.GetTextSize(version_text)
|
||||||
surface.SetTextColor(255, 255, 255, 20)
|
surface.SetTextColor(255, 255, 255, 20)
|
||||||
surface.SetTextPos(scrw - tw, 0)
|
surface.SetTextPos(scrw - tw, 0)
|
||||||
surface.DrawText(version_text)
|
surface.DrawText(version_text)
|
||||||
surface.SetFont("BeatrunHUD")
|
surface.SetFont("BeatrunHUD")
|
||||||
|
|
||||||
if file.Exists("beatrun/version.txt", "DATA") then
|
if VERSION_GLOBAL ~= VERSION_LATEST then
|
||||||
local latest_version = file.Read("beatrun/version.txt", "DATA")
|
|
||||||
|
|
||||||
if latest_version ~= VERSIONGLOBAL then
|
|
||||||
local update_text = "Update available!"
|
local update_text = "Update available!"
|
||||||
local notlatest_w, _ = surface.GetTextSize(update_text)
|
local notlatest_w, _ = surface.GetTextSize(update_text)
|
||||||
surface.SetTextColor(255, 255, 255, 30)
|
surface.SetTextColor(255, 255, 255, 30)
|
||||||
|
@ -149,7 +146,6 @@ local function BeatrunHUD()
|
||||||
surface.DrawText(update_text)
|
surface.DrawText(update_text)
|
||||||
surface.SetFont("BeatrunHUD")
|
surface.SetFont("BeatrunHUD")
|
||||||
end
|
end
|
||||||
end
|
|
||||||
|
|
||||||
local pl = ply:GetNW2Int("PLoss")
|
local pl = ply:GetNW2Int("PLoss")
|
||||||
local CT = CurTime()
|
local CT = CurTime()
|
||||||
|
|
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")
|
LocalPlayer():ConCommand("buildmode")
|
||||||
end
|
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)
|
local buildmodebutton = AEUI:AddButton(coursepanel, "#beatrun.coursemenu.buildmode", buildmodebutton, "AEUILarge", coursepanel.w - 400, coursepanel.h - 50)
|
||||||
buildmodebutton.greyed = sacheck
|
buildmodebutton.greyed = sacheck
|
||||||
|
@ -55,7 +55,7 @@ function OpenCourseMenu()
|
||||||
AEUI:AddPanel(coursepanel)
|
AEUI:AddPanel(coursepanel)
|
||||||
AEUI:AddPanel(courselist)
|
AEUI:AddPanel(courselist)
|
||||||
|
|
||||||
local dir = "beatrun/courses/" .. game.GetMap() .. "/"
|
local dir = "beatrun/courses/" .. string.Replace(game.GetMap(), " ", "-") .. "/"
|
||||||
local dirsearch = dir .. "*.txt"
|
local dirsearch = dir .. "*.txt"
|
||||||
local files = file.Find(dirsearch, "DATA", "datedesc")
|
local files = file.Find(dirsearch, "DATA", "datedesc")
|
||||||
|
|
||||||
|
|
|
@ -1,4 +1,3 @@
|
||||||
-- local checktimer = 0
|
|
||||||
local errorc = Color(255, 25, 25)
|
local errorc = Color(255, 25, 25)
|
||||||
|
|
||||||
local whitelist = {
|
local whitelist = {
|
||||||
|
@ -8,11 +7,7 @@ local whitelist = {
|
||||||
local whitelistanims = fbanims
|
local whitelistanims = fbanims
|
||||||
|
|
||||||
local function BodyAnimAntiStuck()
|
local function BodyAnimAntiStuck()
|
||||||
if not IsValid(BodyAnim) then
|
if not IsValid(BodyAnim) then return end
|
||||||
checktimer = 0
|
|
||||||
|
|
||||||
return
|
|
||||||
end
|
|
||||||
|
|
||||||
local ply = LocalPlayer()
|
local ply = LocalPlayer()
|
||||||
|
|
||||||
|
|
|
@ -167,8 +167,8 @@ hook.Add("PopulateToolMenu", "Beatrun_ToolMenu", function()
|
||||||
panel:CheckBox("#beatrun.toolsmenu.hud.showspeedometer", "Beatrun_ShowSpeedometer")
|
panel:CheckBox("#beatrun.toolsmenu.hud.showspeedometer", "Beatrun_ShowSpeedometer")
|
||||||
panel:ControlHelp("#beatrun.toolsmenu.hud.showspeedometerdesc")
|
panel:ControlHelp("#beatrun.toolsmenu.hud.showspeedometerdesc")
|
||||||
|
|
||||||
panel:CheckBox("#beatrun.toolsmenu.hud.wind", "Beatrun_Wind")
|
panel:CheckBox("#beatrun.toolsmenu.hud.keystrokes", "Beatrun_ShowKeystrokes")
|
||||||
panel:ControlHelp("#beatrun.toolsmenu.hud.winddesc")
|
panel:ControlHelp("#beatrun.toolsmenu.hud.keystrokesdesc")
|
||||||
|
|
||||||
panel:NumSlider("#beatrun.toolsmenu.hud.hidden", "Beatrun_HUDHidden", 0, 2, 0)
|
panel:NumSlider("#beatrun.toolsmenu.hud.hidden", "Beatrun_HUDHidden", 0, 2, 0)
|
||||||
panel:ControlHelp(language.GetPhrase("beatrun.toolsmenu.hud.hiddendesc"))
|
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:CheckBox("#beatrun.toolsmenu.moves.totsugekiaudio", "Beatrun_TotsugekiAudio")
|
||||||
panel:ControlHelp(language.GetPhrase("beatrun.toolsmenu.moves.totsugekiaudiodesc"))
|
panel:ControlHelp(language.GetPhrase("beatrun.toolsmenu.moves.totsugekiaudiodesc"))
|
||||||
|
|
||||||
|
panel:CheckBox("#beatrun.toolsmenu.gameplay.wind", "Beatrun_Wind")
|
||||||
|
panel:ControlHelp("#beatrun.toolsmenu.gameplay.winddesc")
|
||||||
end)
|
end)
|
||||||
|
|
||||||
spawnmenu.AddToolMenuOption("Beatrun", "Server", "beatrun_misc", "#beatrun.toolsmenu.misc.name", "", "", function(panel)
|
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:CheckBox("#beatrun.randommwloadouts", "Beatrun_RandomMWLoadouts")
|
||||||
panel:ControlHelp("#beatrun.randommwloadoutsdesc")
|
panel:ControlHelp("#beatrun.randommwloadoutsdesc")
|
||||||
|
|
||||||
|
panel:CheckBox("#beatrun.randoarc9loadouts", "Beatrun_RandomARC9Loadouts")
|
||||||
|
panel:ControlHelp("#beatrun.randoarc9loadoutsdesc")
|
||||||
|
|
||||||
local DatatheftButton = vgui.Create("DButton", panel)
|
local DatatheftButton = vgui.Create("DButton", panel)
|
||||||
DatatheftButton:SetText("#beatrun.toolsmenu.gamemodes.datatheft")
|
DatatheftButton:SetText("#beatrun.toolsmenu.gamemodes.datatheft")
|
||||||
DatatheftButton:SetSize(0, 20)
|
DatatheftButton:SetSize(0, 20)
|
||||||
|
|
|
@ -4,21 +4,3 @@ include("shared.lua")
|
||||||
for _, v in ipairs(file.Find("gamemodes/beatrun/gamemode/cl/*.lua", "GAME")) do
|
for _, v in ipairs(file.Find("gamemodes/beatrun/gamemode/cl/*.lua", "GAME")) do
|
||||||
include("cl/" .. v)
|
include("cl/" .. v)
|
||||||
end
|
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)
|
|
|
@ -130,26 +130,7 @@ end
|
||||||
|
|
||||||
function PLAYER:Loadout()
|
function PLAYER:Loadout()
|
||||||
if GetGlobalBool("GM_DATATHEFT") or GetGlobalBool("GM_DEATHMATCH") then
|
if GetGlobalBool("GM_DATATHEFT") or GetGlobalBool("GM_DEATHMATCH") then
|
||||||
if GetConVar("Beatrun_RandomMWLoadouts"):GetBool() then
|
Beatrun_GiveGMWeapon(self.Player)
|
||||||
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
|
|
||||||
else
|
else
|
||||||
self.Player:RemoveAllAmmo()
|
self.Player:RemoveAllAmmo()
|
||||||
end
|
end
|
||||||
|
|
|
@ -1,6 +1,9 @@
|
||||||
local vmatrixmeta = FindMetaTable("VMatrix")
|
local vmatrixmeta = FindMetaTable("VMatrix")
|
||||||
local playermeta = FindMetaTable("Player")
|
local playermeta = FindMetaTable("Player")
|
||||||
|
|
||||||
|
CreateConVar("Beatrun_RandomMWLoadouts", 0, {FCVAR_REPLICATED, FCVAR_ARCHIVE})
|
||||||
|
CreateConVar("Beatrun_RandomARC9Loadouts", 0, {FCVAR_REPLICATED, FCVAR_ARCHIVE})
|
||||||
|
|
||||||
BEATRUN_GAMEMODES_LOADOUTS = {
|
BEATRUN_GAMEMODES_LOADOUTS = {
|
||||||
{"weapon_357", "weapon_ar2"}
|
{"weapon_357", "weapon_ar2"}
|
||||||
}
|
}
|
||||||
|
@ -87,3 +90,60 @@ function playermeta:notUsingRH(wep)
|
||||||
return false
|
return false
|
||||||
end
|
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
|
end
|
||||||
|
|
||||||
function Beatrun_ReadCourseLocal(id)
|
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")
|
local save = file.Read(dir .. id .. ".txt", "DATA")
|
||||||
|
|
||||||
if not save then
|
if not save then
|
||||||
|
@ -943,7 +943,7 @@ if CLIENT then
|
||||||
local save = CourseData(name)
|
local save = CourseData(name)
|
||||||
local jsonsave = util.TableToJSON(save)
|
local jsonsave = util.TableToJSON(save)
|
||||||
local id = util.CRC(jsonsave)
|
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
|
if compress == nil then compress = true end
|
||||||
|
|
||||||
|
@ -1011,7 +1011,7 @@ if CLIENT then
|
||||||
|
|
||||||
--[[
|
--[[
|
||||||
concommand.Add("Beatrun_PrintCourse", function(ply, cmd, args, argstr)
|
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")
|
local save = file.Read(dir .. args[1] .. ".txt", "DATA")
|
||||||
|
|
||||||
if not save then
|
if not save then
|
||||||
|
|
|
@ -241,10 +241,16 @@ function CourseHUD()
|
||||||
local incourse = Course_Name ~= ""
|
local incourse = Course_Name ~= ""
|
||||||
local totaltime = CheckpointNumber ~= -1 and math.max(0, CurTime() - Course_StartTime) or Course_EndTime
|
local totaltime = CheckpointNumber ~= -1 and math.max(0, CurTime() - Course_StartTime) or Course_EndTime
|
||||||
|
|
||||||
local text_color = string.ToColor(LocalPlayer():GetInfo("Beatrun_HUDTextColor"))
|
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() then
|
if GetConVar("Beatrun_ShowSpeedometer"):GetBool() and GetConVar("Beatrun_HUDHidden"):GetInt() ~= 2 then
|
||||||
local speed = math.Round(ply:GetVelocity():Length2D() * 0.06858125)
|
local speed = math.Round(ply:GetVelocity():Length() * 0.06858125)
|
||||||
|
|
||||||
if speed < 10 then
|
if speed < 10 then
|
||||||
speed = "0" .. speed
|
speed = "0" .. speed
|
||||||
|
|
|
@ -22,26 +22,7 @@ if SERVER then
|
||||||
v:Spawn()
|
v:Spawn()
|
||||||
end
|
end
|
||||||
|
|
||||||
if GetConVar("Beatrun_RandomMWLoadouts"):GetBool() then
|
Beatrun_GiveGMWeapon(v)
|
||||||
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
|
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
|
|
|
@ -2,20 +2,6 @@ if SERVER then
|
||||||
util.AddNetworkString("Deathmatch_Start")
|
util.AddNetworkString("Deathmatch_Start")
|
||||||
util.AddNetworkString("Deathmatch_Sync")
|
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()
|
function Beatrun_StartDeathmatch()
|
||||||
if GetGlobalBool("GM_DEATHMATCH") then return end
|
if GetGlobalBool("GM_DEATHMATCH") then return end
|
||||||
if Course_Name ~= "" then return end
|
if Course_Name ~= "" then return end
|
||||||
|
@ -31,26 +17,7 @@ if SERVER then
|
||||||
v:Spawn()
|
v:Spawn()
|
||||||
end
|
end
|
||||||
|
|
||||||
if GetConVar("Beatrun_RandomMWLoadouts"):GetBool() then
|
Beatrun_GiveGMWeapon(v)
|
||||||
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
|
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
|
|
|
@ -198,15 +198,14 @@ hook.Add("OnPlayerHitGround", "MELandSound", function(ply, water, floater, speed
|
||||||
end
|
end
|
||||||
|
|
||||||
if SERVER and speed >= 500 and ply:GetJumpTurn() then
|
if SERVER and speed >= 500 and ply:GetJumpTurn() then
|
||||||
local info = DamageInfo()
|
|
||||||
local dmg = ply:Health() * 0.1
|
local dmg = ply:Health() * 0.1
|
||||||
|
|
||||||
if ply:Health() - dmg > 0 then
|
if ply:Health() - dmg > 0 then
|
||||||
|
local info = DamageInfo()
|
||||||
info:SetDamage(dmg)
|
info:SetDamage(dmg)
|
||||||
info:SetDamageType(DMG_FALL)
|
info:SetDamageType(DMG_FALL)
|
||||||
info:SetAttacker(game.GetWorld())
|
info:SetAttacker(game.GetWorld())
|
||||||
info:SetInflictor(game.GetWorld())
|
info:SetInflictor(game.GetWorld())
|
||||||
|
|
||||||
ply:TakeDamageInfo(info)
|
ply:TakeDamageInfo(info)
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
|
@ -197,7 +197,6 @@ local function MeleeThink(ply, mv, cmd)
|
||||||
d:SetDamageType(DMG_CLUB)
|
d:SetDamageType(DMG_CLUB)
|
||||||
d:SetDamagePosition(tr.start)
|
d:SetDamagePosition(tr.start)
|
||||||
d:SetDamageForce(ply:EyeAngles():Forward() * 7000)
|
d:SetDamageForce(ply:EyeAngles():Forward() * 7000)
|
||||||
|
|
||||||
ent:TakeDamageInfo(d)
|
ent:TakeDamageInfo(d)
|
||||||
|
|
||||||
if SERVER and ent:GetClass() == "func_breakable_surf" then
|
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
|
if speed < 800 and CurTime() < ply:GetSafetyRollKeyTime() and not ply:GetCrouchJump() and not ply:Crouching() then
|
||||||
return 0
|
return 0
|
||||||
else
|
else
|
||||||
return 1000
|
return math.huge
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
|
|
|
@ -246,6 +246,7 @@ end
|
||||||
|
|
||||||
hook.Add("SetupMove", "qslide", function(ply, mv, cmd)
|
hook.Add("SetupMove", "qslide", function(ply, mv, cmd)
|
||||||
if not ply:Alive() then return end
|
if not ply:Alive() then return end
|
||||||
|
if ply:GetSafetyRollKeyTime() > CurTime() then return end
|
||||||
|
|
||||||
if not ply.OldDuckSpeed then
|
if not ply.OldDuckSpeed then
|
||||||
ply.OldDuckSpeed = ply:GetDuckSpeed()
|
ply.OldDuckSpeed = ply:GetDuckSpeed()
|
||||||
|
@ -321,12 +322,10 @@ hook.Add("SetupMove", "qslide", function(ply, mv, cmd)
|
||||||
|
|
||||||
ply:SetCrouchJump(false)
|
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()
|
local dmg = DamageInfo()
|
||||||
|
|
||||||
dmg:SetDamageType(DMG_FALL)
|
dmg:SetDamageType(DMG_FALL)
|
||||||
dmg:SetDamage(1000)
|
dmg:SetDamage(1000)
|
||||||
|
|
||||||
ply:TakeDamageInfo(dmg)
|
ply:TakeDamageInfo(dmg)
|
||||||
end
|
end
|
||||||
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
|
if not slippery and pos.z > ply:GetSlidingLastPos().z + 1 then
|
||||||
ply:SetSlidingTime(ply:GetSlidingTime() - 0.025)
|
ply:SetSlidingTime(ply:GetSlidingTime() - 0.025)
|
||||||
elseif slippery or slidedelta < 1 and pos.z < ply:GetSlidingLastPos().z - 0.25 then
|
elseif slippery or slidedelta < 1 and pos.z < ply:GetSlidingLastPos().z - 0.25 then
|
||||||
ply:SetSlidingTime(CT + slidetime) --[[ 450 * ply:GetOverdriveMult() ]]
|
ply:SetSlidingTime(CT + slidetime) --[[ GetConVar("Beatrun_SpeedLimit"):GetInt() ]]
|
||||||
ply:SetSlidingVel(math.min(mv:GetVelocity():Length() * 0.865, GetConVar("Beatrun_SpeedLimit"):GetInt() * 2) * ply:GetOverdriveMult())
|
ply:SetSlidingVel(math.min(mv:GetVelocity():Length() * 0.865, 450 * ply:GetOverdriveMult()))
|
||||||
end
|
end
|
||||||
|
|
||||||
ply:SetSlidingLastPos(pos)
|
ply:SetSlidingLastPos(pos)
|
||||||
|
|
|
@ -1,4 +1,6 @@
|
||||||
VERSIONGLOBAL = "1.0.8"
|
VERSION_GLOBAL = "1.0.22"
|
||||||
|
VERSION_LATEST = ""
|
||||||
|
VERSION_CHECKED = false
|
||||||
|
|
||||||
DeriveGamemode("sandbox")
|
DeriveGamemode("sandbox")
|
||||||
|
|
||||||
|
@ -15,3 +17,29 @@ for _, v in ipairs(file.Find("gamemodes/beatrun/gamemode/sh/*.lua", "GAME", "nam
|
||||||
AddCSLuaFile("sh/" .. v)
|
AddCSLuaFile("sh/" .. v)
|
||||||
include("sh/" .. v)
|
include("sh/" .. v)
|
||||||
end
|
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