更改

跳转至: 导航搜索

BallanceMMOClient

添加4,856字节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.* {{amboxcode|type=content<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|issue='''Encoding Warning'''<nowiki>[arg]</nowiki>}} indicate this argument is optional (use default value instead).* {{code|info=Due <nowiki>arg1 | arg2</nowiki>}} Choose a argument between arg1 and arg2.* You can use Tab to the limitation of Ballanceauto fill command name, player name and player ID, except {{code|/mmo kick}}. Just like some UNIX terminals. Any non* Command is case-ASCII character insensitive. However, argument input by player is not allowed in BallanceMMOClientcase-sensitive. Additionally, Tab Auto Fill rely on the function implemented by BML2, from so it is also case-sensitive. ==== Server Status ==== * {{code|/mmo <u>c</u>onnect <nowiki>[address]</nowiki>}} – Connect your specified server URL. If address argument is omitted, username to message contentuse the server setting of this plugin instead.* {{code|/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. It means that you should not if use any Chinese character{{code|list-id}} argument, Katakanaa extra temporary internal player ID will be attached to its name.* {{code|/mmo <u>g</u>et<u>m</u>ap}} – For all players, Hiraganashow 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, Korea characterserver 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, Cyrillicthe 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, Greek character and etcthis function may solve this issue.* {{code|/mmo gettimestamp}}– Show all players extrapolation debug data.''This command is served for the developer of this mod.''
=== Install Client = Player Interaction ====
Please ensure that you have installed * {{code|/mmo <u>s</u>ay <nowiki><text></nowiki>}} or {{code|/say <nowiki><text></nowiki>}} – Send a public message in server with a content of <text>.<ref>Before 3.1.5-beta5, due to the latest BML2implementation of BMMO, {{code|Space}} is not supported in message content. Then You need to use other symbol to split words if you need to put . For example, you can type {{code|wait/a/minute}} or {{code|wait-a-minute}} instead of {{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 downloaded zip file in specified player.* {{code|ModLoader/Modsmmo announce <nowiki><text></nowiki>}} – Send a important public message in server. This message {{Color|'''directly without decompressionsupport non-ASCII characters'''|red}} and will '''be shown at the center of game window for a while. If you have '''installed obsolete BMMO* {{code|/mmo bulletin <nowiki>[text]</nowiki>}} – Set server bulletin text. ''' previously, The bulletin text bar will constantly displayed at the top-center of game window.'''please remove <ref>Bulletin text do not support line break. Please use a clear and short text for it instantly.Additionally, bulletin will set to blank when all players disconnected from server.</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 other player'' Your installation s position. It can not switch your sector automatically and also can not restore element statues.This command is finished if 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 can see BallanceMMOClient entry in BML Mods menuare playing. This name will be reset when switching levels or sectors.
=== Configurate Server and Username = Tournament Status ====
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 cheat <nowiki>on|off<br /nowiki>}} – Turn cheat mode on or off for all players online.First, you can enter BallanceMMOClient entry in BML Mods menu, then use Remote and Player submenu to * {{code|/mmo countdown}} – Start the ready-set server URL and username-go countdown. If your server URL or username contain complex words, you can use * {{code|/mmo dnf}} – Forfeit the next methodgame (did-not-finish).<br * {{code|/>mmo rank reset}} – Run this before activating the countdown to reset all ranking (applies to a single race across multiple levels).Method 2, Close game, navigate to * {{code|ModLoader/Configmmo <nowiki>ready|ready-cancel</BallanceMMOClient.cfgnowiki>}} and open it. Now, - Signify to other players that you can change server URL and username directlyare ready for the race or cancel the ready status.
=== Basic Operations = Misc ====
The following operations are frequently to * {{code|/mmo <nowiki>show|hide</nowiki>}} – Show / hide the console window for this mod. All status output from this mod will be usedavailable in the console, plus you can use commands of this mod in the console (without the {{code|/mmo}} prefix). Please ensure that you have known them well before starting multi-playInput and output in the console is no longer limited to standard ASCII characters.
* {{code|/mmo c}} or {{code|/mmo connect}}: Connect to server.* {{code|/mmo d}} or {{code|/mmo disconnect}}: Disconnect from server* {{code|/mmo l}} or {{code|/mmo list}}: List all online player clients.* {{code|/mmo s <message>}} or {{code|/mmo say <message>}}: Send message. Due to the implementation of BML command, {{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 {{code|wait a minute}}.=== Keyboard Shortcuts ===
After anti-cheat update(v3.1), BMMO supports more anti-cheat features.==== Self Status ====
* {{code|/mmo cheat [on or off]Tab}}: Switch cheat mode '''Toggle name plates for all online other players'''. This command will force change each * {{code|F3}}: Toggle debug information.* {{code|F3 + A}}: Reload player's cheat mode without any notificationstatus. Please do not abuse Use this commandto readjust when name plates and shadow balls are offset.* A global message will be showed {{code|Ctrl + Tab}}: Show realtime status of players in chat dialog if any player change its cheat modethe race, including current map and checkpoint. <ref>Hold Ctrl then press Tab. The name order matters.</ref>* {{code|Ctrl + <nowiki>`</nowiki>}}: Show shadow ball of yourself (after network latency). Useful for latency test.<ref>{{code|<nowiki>`</nowiki>}} key is to the left of cheating player will automatically {{code|1}} on a standard QWERTY keyboard and can be attached used to type tilde symbol ({{code|<nowiki>~</nowiki>}}) when combined with {{code|[C]<nowiki>Shift</nowiki>}}</ref><ref name="single-player" />* {{code|Ctrl + 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.<ref>Please allow 1-2 seconds for the camera to readjust and do not move before it's done. You can do this while inside a transformer to avoid some time loss.</ref>
=== Advanced Operations = Tournament Status ====
* F3 for switching the display of debug information. Debug information mainly show network transfer status.* You can use keyboard to send contest preparation message quickly. It's mechanism is running {{code|Ctrl + <nowiki>[3 or 2 or 1]</mmo say <messagenowiki>}} with preset string: Start countdown.** {{code|Left Ctrl + 30}}: Send {{code|3}}Start the race. Resets the race timer for all players. Depending on settings of the server, the level may be restarted.** {{code|Left Ctrl + 24}}: Send {{code|3}}Notify the players to ready up.** {{code|Left Ctrl + 15}}: Send {{code|1}}Ask the players to confirm readiness.** {{code|Left Ctrl + 0D}}(press twice consecutively: Send {{code|GO!}}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 [https://github.com/ValveSoftware/GameNetworkingSockets 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
个编辑

导航菜单