更改

跳转至: 导航搜索

BallanceMMOClient

添加5,259字节2023年10月28日 (六) 21:45
无编辑摘要
{{Languages|zh|BallanceMMOClient/zh}}
{{AppboxSeealso|name=BallanceMMOClient|screenshot=bmmo.png|screenshotDesc=The multiplay game window implemented by BallanceMMOClient.|author=Swung0x48|suit=Ballance|link=[httpsMain Page://github.com/Swung0x48/BallanceMMO GitHub repository]|dependency=The Latest [[BML2Ballance Massive Multiplayer Online]]|status=active|date=19 Apr, 2021 ({{AgeYM|2021|4|19}} ago)|latest=None|license=* v1:Apache License* v2 and v3:Unknow License}}
{{Cquoteambox|yyc12345type=content|This is a brand-new, groundbreaking plugin. This plugin revives Ballance community.}} issue='''BallanceMMOClientEncoding Warning'''(abbr, BMMO) is a groundbreaking [[BML2]] plugin developed by Swung0x48. It allows a player |info=Due to play the limitation of Ballance with other players with low latency via a deployed central BMMO server. The ball of other players will be rendered as a shadow ball(halfAny non-transparent ball) ASCII character is not allowed in the game viewportBallanceMMOClient, from server URL, username to message content. It means that you should not use any Chinese character, Katakana, Hiragana, Korea character, Cyrillic, Greek character and a player name label will also be attached to itetc. Moreover<br />However, real-time chatin some of commands introduced in following content, detect cheat status(cheat mode on or off) are also availablethis restriction will be removed. BMMO is enough stable Please pay an attention to be used for some tournaments after a few iterationsit.}}
== Download ==
* Download from [https://dl.bmmo.bcrc.site/ Publish Website]. Click "Download Standalone Package" to download. (Suggested)
* Join Multi-play QQ Group, and download from QQ Group Files.
* Join Ballance Discord Server.
* Download from the Release page of [https://github.com/Swung0x48/BallanceMMO GitHub repository].(Not suggested because publish is not in time.)
* Download project and build by yourself.(Not suggested because building this plugin is harder than imagine.)
Please read the requirement of server which you want to join and download correct version. '''In most instances, downloading the latest version is the best decision.''' Server will reject the connection of obsolete client after some updates.
 
== Client Settings ==
 
After installation, there are 2 way to configure your BallanceMMOClient settings<br />
First, you can enter BallanceMMOClient entry in BML Mods menu, then use its submenu to set the settings what you want set. If your settings is too long or contain complex words, you can use the next method instead.<br />
Method 2, Close game, navigate to {{code|ModLoader/Config/BallanceMMOClient.cfg}} and open it. Now, you can change all settings directly.
 
=== Core Settings ===
 
Server URL and player name are 2 essential settings for this plugin. You should fill them before any multiplayer game.
 
Player name setting locate in Player - Playername. Please choose a clear name. By the way, BMMO server will check your given name and remove all invalid characters, so the name adopted by the server may not exactly same with your set name.
 
Server URL setting locate in Remote - ServerAddress. You must set your server URL correctly, and stay in the same server with your friends/competitors, otherwise you can not do a normal multiplayer game. If the port of this field is omitted, the plugin will connect to the default port {{code|26676}}.
 
=== Other Settings ===
 
Spectator Mode setting locate in Remote - SpectatorMode. If enable it, you will enter spectator mode when joining multiplay server. The player in spectator mode will not be account into level ranking. And your ball position also will not be shared. Spectator mode are frequently used by tournament commentary and referee. The name of online players in spectator mode will have a extra star ({{code|*}}) prefix to indicate them.
 
Extrapolation setting locate in Gameplay - Extrapolation. If enable it, plugin will use extrapolation algorithm to smooth the movement of shadow ball to get better visual effect. If you disable it, the path of each players ball will be dispersed ("Flash"). The default of this setting is enable and we highly recommend all players enable it.
 
Player list color setting locate in Gameplay - PlayerListColor. This setting allow you customize the color of player list panel which displayed at the right-bottom corner of game window. Usually no need to modify this.
== Client Usage ==
=== Commands === There are the syntax of following commands introduction and some annotations. * Use Space to split arguments. The argument without any modifier/bracket should be input directly.* {{code|<u>n</u>a<u>m</u>e}} indicate the long name of this argument is {{code|name}}. the short name of this argument is {{code|nm}}. Input short name will call the same function.* {{code|<nowiki><arg></nowiki>}} indicate this argument should be replaced with some string according to your requirement.* {{code|<nowiki>[arg]</nowiki>}} indicate this argument is optional (use default value instead).* {{code|<nowiki>arg1 | arg2</nowiki>}} Choose a argument between arg1 and arg2.* You can use Tab to auto fill command name, player name and player ID, except {{amboxcode|type/mmo kick}}. Just like some UNIX terminals.* Command is case-insensitive. However, argument input by player is case-sensitive. Additionally, Tab Auto Fill rely on the function implemented by BML2, so it is also case-sensitive. ==== Server Status ====content * {{code|/mmo <u>c</u>onnect <nowiki>[address]</nowiki>}} – Connect your specified server. If address argument is omitted, use the server setting of this plugin instead.* {{code|issue/mmo <u>d</u>isconnect}} – Leave current connected server. ==== Player Status ===* {{code|/mmo <u>l</u>ist<nowiki>|</nowiki><u>l</u>ist-<u>i</u>d}} – Show a list containing all online player's name. if use {{code|list-id}} argument, a extra temporary internal player ID will be attached to its name.* {{code|/mmo <u>g</u>et<u>m</u>ap}} – For all players, show which map player is playing and its corresponding sector. It is convenient for looking for players.* {{code|/mmo <u>g</u>et<u>p</u>os}} – Show the position and ball type for all players.<ref name="single-player">For some reason about reducing computing and network resources, server will not send player's position and status data when the server only have a single player. So the shadow ball also can not move following player. Because of this, the position and ball type data is not correct when the server only have 1 player.</ref>* {{code|/mmo <u>r</u>e<u>l</u>oad}} – Reload all players status in client. If player name label and its shadow ball are mismatched, this function may solve this issue.* {{code|/mmo gettimestamp}} – Show all players extrapolation debug data.'Encoding Warning'This command is served for the developer of this mod.'' ==== Player Interaction ==== * {{code|/mmo <u>s</u>ay <nowiki><text></nowiki>}} or {{code|info=Due /say <nowiki><text></nowiki>}} – Send a public message in server with a content of <text>.<ref>Before 3.1.5-beta5, due to the limitation implementation of BMMO, {{code|Space}} is not supported in message content. You need to use other symbol to split words if you need. For example, you can type {{code|wait/a/minute}} or {{code|wait-a-minute}} instead of Ballance{{code|wait a minute}}.</ref>.* {{code|/mmo <u>w</u>hisper <nowiki><player name> <text></nowiki>}} or {{code|/mmo <u>w</u>hisper <nowiki>#<player ID> <text></nowiki>}} – Send a private message for your specified player. This message only can be seen by you and your specified player.* {{code|/mmo announce <nowiki><text></nowiki>}} – Send a important public message in server. Any This message {{Color|'''support non-ASCII character is characters'''|red}} and will '''be shown at the center of game window for a while.'''* {{code|/mmo bulletin <nowiki>[text]</nowiki>}} – Set server bulletin text. '''The bulletin text bar will constantly displayed at the top-center of game window.'''<ref>Bulletin text do not allowed in BallanceMMOClientsupport line break. Please use a clear and short text for it. Additionally, bulletin will set to blank when all players disconnected from server URL, username .</ref>* {{code|/mmo <u>a</u>nnounce<u>m</u>ap}} – Explicitly notify server which map you are playing and which section you are staying. (It is convenient fot notify other players)* {{code|/mmo <u>t</u>ele<u>p</u>ort <nowiki><player name></nowiki>}} or {{code|/mmo <u>t</u>ele<u>p</u>ort <nowiki>#<player ID></nowiki>}} – Teleport to other player's position. Only works on Cheat Mode.<ref>Teleportation only can move you to message contentother player's position. It means that you should can not use any Chinese character, Katakana, Hiragana, Korea character, Cyrillic, Greek character switch your sector automatically and etcalso can not restore element statues.This command is frequently used with {{code|/mmo getmap}}</ref><ref name="single-player" />* {{code|/mmo kick <nowiki><player name> [reason]</nowiki>}} or {{code|/mmo kick <nowiki>#<player ID> [reason]</nowiki>}}: Kick the player from server with corresponding name (case-insensitive) or ID* {{code|/mmo custommap <nowiki><Name|reset></nowiki>}}: Customize your map name which you are playing. This name will be reset when switching levels or sectors.
=== Install Client = Tournament Status ====
Please ensure that you have installed * {{code|/mmo cheat <nowiki>on|off</nowiki>}} – Turn cheat mode on or off for all players online.* {{code|/mmo countdown}} – Start the latest BML2ready-set-go countdown. Then you need to put your downloaded zip file in * {{code|ModLoader/Modsmmo dnf}} '''directly without decompression'''– Forfeit the game (did-not-finish). If you have '''installed obsolete BMMO''' previously, '''please remove it instantly* {{code|/mmo rank reset}} – Run this before activating the countdown to reset all ranking (applies to a single race across multiple levels).''' Your installation is finished if * {{code|/mmo <nowiki>ready|ready-cancel</nowiki>}} - Signify to other players that you can see BallanceMMOClient entry in BML Mods menuare ready for the race or cancel the ready status.
=== Configurate Server and Username = Misc ====
After installation, there are 2 way to configure your server URL and username. If you are looking for some available servers, please check out the next chapter to get an available server.* {{code|/mmo <nowiki>show|hide<br /nowiki>First, you can enter BallanceMMOClient entry }} – Show / hide the console window for this mod. All status output from this mod will be available in BML Mods menu, then use Remote and Player submenu to set server URL and username. If your server URL or username contain complex wordsthe console, plus you can use commands of this mod in the console (without the next method.<br />Method 2, Close game, navigate to {{code|ModLoader/Config/BallanceMMOClient.cfgmmo}} and open itprefix). Now, you can change server URL Input and username directlyoutput in the console is no longer limited to standard ASCII characters.
=== Basic Operations Keyboard Shortcuts ===
The following operations are frequently to be used. Please ensure that you have known them well before starting multi-play.==== Self Status ====
* {{code|/mmo cTab}} or : Toggle name plates for other players.* {{code|/mmo connectF3}}: Connect to serverToggle debug information.* {{code|/mmo d}} or {{code|/mmo disconnectF3 + A}}: Disconnect from serverReload player status. Use this to readjust when name plates and shadow balls are offset.* {{code|/mmo l}} or {{code|/mmo listCtrl + Tab}}: List all online player clientsShow realtime status of players in the race, including current map and checkpoint. <ref>Hold Ctrl then press Tab. The order matters.</ref>* {{code|Ctrl + <nowiki>`</mmo s <messagenowiki>}} or : Show shadow ball of yourself (after network latency). Useful for latency test.<ref>{{code|<nowiki>`</mmo say <messagenowiki>}}: Send message. Due key is to the implementation left of BML command, {{code|Space1}} is not supported in message content. You need on a standard QWERTY keyboard and can be used to use other type tilde symbol to split words if you need. For example, you can type ({{code|wait<nowiki>~</a/minutenowiki>}} or ) when combined with {{code|wait-a-minute<nowiki>Shift</nowiki>}} instead of </ref><ref name="single-player" />* {{code|wait a minuteCtrl + Shift + ↑}}: Reset camera. Useful when you accidentally set a nonstandard camera angle. Some rules force a player to forfeit the game if nonstandard camera angle is used.* F3 <ref>Please allow 1-2 seconds for switching the display of debug informationcamera to readjust and do not move before it's done. Debug information mainly show network transfer statusYou can do this while inside a transformer to avoid some time loss.</ref>
After anti-cheat update(v3.1), BMMO supports more anti-cheat features.==== Tournament Status ====
* {{code|/mmo cheat Ctrl + <nowiki>[on 3 or 2 or off1]</nowiki>}}: Switch cheat mode '''Start countdown.* {{code|Ctrl + 0}}: Start the race. Resets the race timer for all online players'''. This command will force change each player's cheat mode without any notificationDepending on settings of the server, the level may be restarted. Please do not abuse this command* {{code|Ctrl + 4}}: Notify the players to ready up.* A global message will be showed in chat dialog if any player change its cheat mode{{code|Ctrl + 5}}: Ask the players to confirm readiness. The name of cheating player will automatically be attached with * {{code|[C]Ctrl + D}}(press twice consecutively: Forfeit the current level (did-not-finish).
== Available Servers ==
Or, there is a big latency when you are connecting to Chinese BMMO server, or you want to play Ballance with over world Ballance players, you can join Ballance [[Discord]] server and get server URL from {{code|#multiplay}} channel.
== History == There are 3 huge changes in BMMO history, according to its GitHub commit history.<br />V1 is based on TCP connection. Some basic message structures are established in this version and the plugin has been tested in production environment a few times. But the biggest problem is the quality of connection will significantly drop if the client is in a bad network environments. This is unacceptable in some cases.<br />V2 use [https://github.com/Swung0x48/SimpleRealTimeNetworking a custom transfer protocol developed by Swung0x48]. But quickly, this version was no longer maintained.<br />V3 is current version and be used by every Ballance multi-play players. It still in active development. This version use Valve's GameNetworkingSockets as its network library. This version of BMMO is widely praised, relying on the low latency features provided by GameNetworkingSockets. The quality of connection is in acceptable range, even if you are living the opposite of the Pacific Ocean. == Deploy a Personal Server References ==
In general, creating an BMMO server on a Linux server is easier than a Windows server. You can check out the GitHub repository's README file of this plugin to know how to deploy a BMMO server.<references />
6
个编辑

导航菜单