“BallanceMMOClient/zh”的版本间的差异

来自Ballance Wiki
跳转至: 导航搜索
客户端使用方法
 
(未显示4个用户的15个中间版本)
第1行: 第1行:
 
{{Languages|en|BallanceMMOClient}}
 
{{Languages|en|BallanceMMOClient}}
 +
{{主条目|Ballance大型多人在线游戏}}
 +
{{ambox|type=content
 +
|issue='''字符编码警告'''
 +
|info=由于 Ballance 本身限制只能使用 ASCII 字符,你在此插件中使用的'''任何文本'''不能包含汉字,平假名,片假名,韩文,西里尔字母,希腊字母等。不过,后续章节内有一些特殊命令可以帮助你突破此限制。}}
  
{{Appbox/zh
+
本文介绍 '''BallanceMMOClient''',即以 Mod 格式呈现的 [[Ballance大型多人在线游戏]] 的客户端。
|name=BallanceMMOClient
 
|screenshot=bmmo.png
 
|screenshotDesc=由BallanceMMOClient实现的多球同时竞技的游戏界面。
 
|author=Swung0x48
 
|suit=Ballance
 
|link=[https://github.com/Swung0x48/BallanceMMO GitHub仓库]
 
|dependency=最新版本的[[Ballance Mod Loader Gamepiaynmo版(第二版)|BML]]
 
|status=active
 
|date=2021年4月19日({{年月差异|2021|4|19}}前)
 
|latest=无
 
|license=
 
* v1:Apache许可证
 
* v2及v3:未知许可证
 
}}
 
  
{{Cquote|yyc12345|这是一款全新的、突破性的插件。联机插件为Ballance带来了新的生机。}}
+
== 下载 ==
  
BallanceMMOClient,又简称为BMMO,是由Swung0x48开发的一款具有跨时代意义的[[Ballance Mod Loader Gamepiaynmo版(第二版)|BML]]插件。它允许用户在插件的支持下通过中心服务器与其它Ballance玩家进行低延迟的游戏互联。同在游戏中的其它玩家将使用类似[[影子球]]的形式显示,并可以显示玩家名称,此外,插件还具有实施聊天框,显示作弊状态等功能。在插件的多次迭代中,BMMO已经变得足够稳定以支持一些比赛的举办。
+
* 在[https://dl-bmmo.bcrc.site/ 发布网站]选择 ''Download Standalone Package'' 进行下载。'''(推荐)'''
 +
* 加入[[QQ群|联机群]],并在群文件中下载。'''(推荐)'''
 +
* 加入Ballance [[Discord]]群组获得客户端。
 +
* 前往[https://github.com/Swung0x48/BallanceMMO GitHub工程]的[https://github.com/Swung0x48/BallanceMMO/actions/workflows/client.yml Actions]页面下载(不推荐,因为可能会下载到未正式发布的不稳定版本)。
 +
* 自行编译(不推荐,因为编译较为困难)。
  
== 下载 ==
+
请注意各个服务器的版本要求,并下载正确的版本。'''下载最新版本'''通常'''是最正确的选择'''。通常而言,BMMO发布更新时开发者会同时更新服务器的版本限制,使得其不再允许旧版本的客户端连接。
 +
 
 +
== 安装客户端 ==
 +
 
 +
=== 首次安装 ===
 +
 
 +
首先,你应当确保自己已经安装了 [[Ballance Mod Loader Gamepiaynmo版(第二版)|Ballance Mod Loader]] 并且更新到了最新版,0.3.43。然后你应当先按照上文的提示下载 BMMO 客户端。
 +
 
 +
如果你不知道该怎么做,直接点击上文发布网站页面内的 ''Download Standalone Package'' 下载懒人包即可。下载到的懒人包名称格式为 <code>BallanceMMOClient_版本号.zip</code>,它是 ZIP 格式的压缩包,直接放到游戏安装目录下的 <code>ModLoader\Mods\</code> 文件夹即可,<u>'''无需解压'''</u>。当然解压也是没有问题的,懒人包包含了 1 个名为 <code>BallanceMMOClient.bmod</code> 的 Mod 本体文件与 3 个 DLL 文件,如果想要解压,记得将它们全部解压后放到 Mod 目录下。注意不要同时把压缩包和解压后的文件都放在 Mod 目录,二者只能选择其一。
 +
 
 +
如果你不想用上面的懒人包方式,那么你可以选择点击页面内下载栏的第二行的两个链接,分别下载最新版 Mod 本体以及那 3 个 DLL 文件。BMMO 客户端正常运行也是离不开后者的,所以你仍然需要将之全部解压后放到 Mod 目录内(不要同时放压缩包和解压后的文件)。
 +
 
 +
=== 更新 ===
 +
 
 +
如果你安装的是懒人包<u>并且没有解压</u>,那么更新对你而言应当是最简单的了:重复上一节的下载操作即可。
 +
 
 +
如果你解压了或者本来用的就是分开下载的方式,那么其实你要下载的东西更少,只用点击下载栏第二行的下载 Mod 本体就行。这是因为 BMMO 更新一般只会更新 Mod 本体,所依赖的其他 DLL 文件不用更新。然后把下载的 Mod 放到 Mod 目录内,<u>务必删除旧版的 bmod 文件</u>。
 +
 
 +
== 客户端配置 ==
 +
 
 +
插件的配置方式有两种:
 +
 
 +
# BMMO 客户端的设置和其他 Mod 设置的位置一样,依次进入菜单 – <code>Options</code> – <code>Mods</code> – <code>BallanceMMOClient</code> 即可找到。设置完毕后记得点击 ''Back'' 然后返回出来(不返回的话设置不会保存),不要用按下 ''Esc'' 的方式,那样也是不会被保存的。
 +
#* 如果你的设置项较长或包含复杂文本,你可以选择第二种方法。
 +
# 编辑 {{code|ModLoader/Config/BallanceMMOClient.cfg}} 来修改插件的相关设置。
 +
 
 +
用户名和服务器地址是你进行联机必须要进行设置的两项内容;其他设置可以维持默认或者根据自己情况调节。
 +
 
 +
=== 用户名设置 ===
 +
 
 +
用户名设置位于 {{kbd|Playername}} – '''玩家名称'''。默认会结合当前日期自动生成随机用户名,请务必在连接服务器前改成自己惯用的昵称。
 +
* {{resize|请选择一个较为清晰的名称。需要注意的是,你输入的用户名会被服务器进行一次无效字符删除,因此服务器最终采用的用户名可能与你设定的有所出入。}}
 +
* {{resize|名称长度必须在 3 到 20 个字符之间(含两端),过长的会被截断,过短的会被使用下划线补全。名称仅支持大小写英文字母、数字,以及符号 <code><nowiki>_-+=.~()</nowiki></code>,剩余的也会被替换成下划线。}}
 +
* {{resize|用户名<u>每 24 小时只能修改一次</u>,修改用户名请慎重;用户名有效性可以使用 [https://dl-bmmo.bcrc.site/utils/name-validator '''<u>用户名检验器</u>'''] 验证。}}
 +
 
 +
=== 服务器设置 ===
 +
 
 +
自 3.5.3 版本起,BMMO 的服务器地址由'''服务器管理器'''处理,你可以使用 {{code|/mmo c}} 命令进入服务器管理器并跟随其中提示设置。你必须设置正确的服务器地址,并确保和希望联机的人处在同一服务器下,才能正常联机。
 +
 
 +
玩家使用 {{code|/mmo c}} 唤出服务器管理器后会首先进入服务器列表视图。列表视图内显示玩家的添加过的所有服务器(最多保存 10 个),对着选中的服务器按下 {{kbd|Enter}} 或鼠标左键可以直接进入;按下 {{kbd|E}} 或者鼠标右键则可以编辑服务器信息。此外,若服务器数量没有达到上限,则服务器列表底部会显示 {{Code|[Add New]}} 字样,选中并按下可以新增服务器。
 +
 
 +
服务器编辑视图内存在两个输入框,分别是服务器地址和备注名。如果你省略了地址的端口号,那么插件将默认连接 {{code|26676}} 端口;若备注名留空,则插件会以服务器地址作为服务器的名称。按下 {{kbd|Enter}} 和 {{kbd|Esc}} 或者屏幕上按钮分别可以保存或撤销修改,
  
* 加入[[QQ群|联机群]],并在群文件中下载
+
=== 其它设置 ===
* 加入Ballance [[Discord]]群组获得客户端
 
* 前往GitHub工程的Release页面下载(不推荐,因为更新不及时)
 
* 自行编译(不推荐,因为编译较为困难)
 
  
请注意各个服务器的版本要求,并下载正确的版本。'''下载最新版本'''通常'''是最正确的选择'''。在一些版本的升级后,服务器将不会允许旧版本的客户端连接。
+
* {{kbd|Player}} / {{kbd|SpectatorMode}} – '''旁观者模式'''。开启后你将以旁观者模式进行联机;旁观者的影子球、作弊状态等对于包括旁观者在内的其他玩家而言是隐藏的,同时旁观者也不会触发通关公示等涉及比赛的操作。
 +
** 旁观者模式经常用于比赛中的解说与裁判。处于旁观者模式的玩家前会被自动添加一个星号({{code|*}})以标记。
 +
** 切换此模式时若已连接至服务器则会自动触发一次断线重连。
 +
* {{kbd|Gameplay}} / {{kbd|Extrapolation}} – '''外推插值''',即是否对其他玩家的影子球启用外推插值。开启后将启用外推插值功能平滑显示玩家球运动轨迹,以取得更好的显示效果。若关闭,插件将停止平滑球的轨迹,球的轨迹将会是以离散形式呈现(瞬移)。
 +
** {{resize|常规状态下玩家至服务器的网络连接会不时有卡顿、丢包等现象,这些现象会导致影子球看着比较卡顿,运动起来不流畅。外推插值功能可以利用先前获取的玩家数据,对影子球的坐标进行实时推算,以准确度的较小损耗为代价大幅度提高影子球运动的流畅度。强烈建议启用,除非您所在的网络非常卡顿(此时插值效果的准确度会非常差,容易出现影子球抽风等现象)。}}
 +
** {{resize|本设置的存在是为了更好的兼容性,未来插值效果能够减少此状态下的准确度问题时开发者很有可能会强制启用插值功能,届时本设置会被移除。}}
 +
* {{kbd|Gameplay}} / {{kbd|PlayerListColor}} – '''玩家列表颜色'''。以十六进制 RGB 数值的格式存储(也称作 ''HEX'',可以自行查询了解),用以自定义玩家列表和置顶告示(参见后续章节以了解)的文字颜色。通常无需修改。
 +
* {{kbd|Gameplay}} / {{kbd|DynamicOpacity}} – '''动态透明度''',即是否对其他玩家的影子球按照和玩家摄像机的距离动态调节透明度,使得距离玩家球近的影子球更加透明,远处的影子球则更加不透明。可以用来减轻影子球的干扰。
 +
* {{kbd|Gameplay}} / {{kbd|SoundNotification}} – '''音效通知'''。默认 BMMO 大部分通知消息会伴随音效提示,此选项关闭后,仅最重要的消息(比赛倒计时、起跑等)会有提示音。
  
 
== 客户端使用方法 ==
 
== 客户端使用方法 ==
  
{{ambox|type=content
+
=== 命令 ===
|issue='''字符编码警告'''
+
 
|info=由于Ballance的限制,BallanceMMOClient不允许您使用任何非ASCII字符,无论是在填写服务器地址,用户名,又或者是在发送消息时。这就意味着您使用的文本不能包含汉字,平假名,片假名,韩文,西里尔字母,希腊字母等。}}
+
下文命令的描述格式和注意事项:
 +
 
 +
* 不同参数之间以空格分隔;未使用任何格式的参数表示玩家必须原样输入参数名称。
 +
* {{code|<u>n</u>a<u>m</u>e}} 表示对应的参数名称为 {{code|name}},但可以仅输入下划线所示的部分(即字母 {{code|nm}} 的组合)。
 +
* {{code|<nowiki><参数></nowiki>}} 表示必须根据实际状态输入的参数。
 +
* {{code|<nowiki>[参数]</nowiki>}} 表示可以省略(将会使用默认值)的玩家参数。
 +
* {{code|<nowiki>参数1 | 参数2</nowiki>}} 表示玩家需要选择参数 1 或参数 2 中的一个填入。
 +
* {{code|<nowiki>{玩家}</nowiki>}} 表示玩家名称或前缀了 {{code|<nowiki>#</nowiki>}} 的玩家内部临时 ID(可以用 {{code|/mmo <u>l</u>ist-<u>i</u>d}} 获取)。
 +
** 例:若一玩家名为 Player,ID 为 1145141919,则可以输入 {{code|Player}} 或者 {{code|<nowiki>#1145141919</nowiki>}}。
 +
* 命令参数的完整名称以及玩家名或玩家 ID 可以输入首字母后在输入框内按下 Tab 键自动补全,方便快速输入。
 +
* 固定的命令和玩家名不区分字母大小写,但玩家根据实际状态自行填入的其他参数区分。此外,Tab 键自动补全时由于 BML 自身设定问题,也区分大小写。
 +
* 前缀 {{code|*}} 的命令需要玩家在服务器内拥有管理员权限才能使用。
 +
** 管理员权限的判定为:玩家直接为对应服务器内的管理员,或对应服务器内无任何在线管理(此时视作所有玩家均为管理员)。
 +
 
 +
==== 服务器状态类 ====
 +
 
 +
* {{code|/mmo <u>c</u>onnect <nowiki>[地址]</nowiki>}} – 连接到地址对应的服务器。若不填地址则会唤出服务器选择器。
 +
* {{code|/mmo <u>d</u>isconnect}} – 离开玩家所在的服务器。
 +
 
 +
==== 玩家状态类 ====
 +
 
 +
* {{code|/mmo <u>l</u>ist<nowiki>|</nowiki><u>l</u>ist-<u>i</u>d}} – 显示所在服务器内所有玩家的名称列表。若使用 {{code|list-id}},则在列表内同时列出玩家名称和内部临时 ID。
 +
* {{code|/mmo <u>g</u>et<u>m</u>ap}} – 显示服务器内所有玩家各自所在的地图名称和小节号(方便寻找不同玩家)。
 +
* {{code|/mmo <u>g</u>et<u>p</u>os}} – 显示服务器内所有玩家各自的坐标和球的种类。<ref name="single-player">服务器内玩家数仅有 1 人(即玩家自身)时为节约运算和网络资源,服务器并不会向玩家发送坐标等状态信息,所以影子球不会跟随玩家移动。也因此服务器内仅有 1 名玩家(即玩家自身)时并不会正确显示坐标和球的种类。</ref>
 +
* {{code|/mmo <u>r</u>e<u>l</u>oad}} – 重新加载服务器内玩家状态。如果玩家名称标记和实际影子球错位,可以使用重载功能调整。
 +
* {{code|/mmo gettimestamp}} – 显示服务器内玩家的影子球插值用时间数据。''此命令为调试功能。''
 +
* {{code|/mmo uuid}} – 输出玩家自己的 UUID,方便复制使用。
 +
 
 +
==== 玩家互动类 ====
 +
 
 +
* {{code|/mmo <u>s</u>ay <nowiki><文字></nowiki>}} 或 {{code|/say <nowiki><文字></nowiki>}} – 在服务器内公开发送一条内容为 <文字> 的聊天信息。<ref>在3.1.5-beta5前,由于BMMO的实现,消息中不支持输入空格。如果你需要断句,需要使用其它符号代替,例如“我掉了”可以这么打出:{{code|wo/diao/le}}又或者{{code|wo-diao-le}}。在3.1.5-beta5更新中,这一问题由开发者修复。</ref>
 +
* {{code|/mmo <u>w</u>hisper <nowiki>{玩家} <文字></nowiki>}} – 向对应的玩家发送私聊信息,只有对方能够看见。
 +
* * {{code|/mmo <u>a</u>nnounce <nowiki><文字></nowiki>}} – 在服务器内发送一条重要通知,玩家接收到后会在游戏窗口内居中显示 10 秒左右。可以显示包括中文在内的非 ASCII 字符。
 +
* * {{code|/mmo notice <nowiki><文字></nowiki>}} – 在服务器内发送一条普通通知。显示效果和限制和上文的重要通知相似,但普通通知显示的位置在窗口下部,因此对玩家游戏的干扰性较低。
 +
* * {{code|/mmo <u>b</u>ulletin <nowiki>[文字]</nowiki>}} – 设置服务器的常驻通知(会维持在游戏界面顶端显示)。<ref>常驻通知不会自动换行,请注意描述的简洁度;此外,服务器内所有玩家均退出(使得服务器内没有玩家)后常驻通知会自动清空。</ref>
 +
* {{code|/mmo <u>a</u>nnounce<u>m</u>ap}} – 在服务器内公开发送自己所在的地图和小节的信息(可以用于通知其他用户)。
 +
* {{code|/mmo <u>t</u>ele<u>p</u>ort <nowiki>{玩家}</nowiki>}} – 传送至服务器内其他玩家的坐标。只能在作弊模式(Cheat Mode)下使用。<ref>传送只能做到传送到玩家本地存储的其他玩家的坐标,不会连带切换玩家所在的地图或小节,也不会复原其他玩家视角的机关摆放;请与 {{code|/mmo getmap}} 等命令配合使用。</ref><ref name="single-player" />
 +
* * {{code|/mmo restartlevel <nowiki>{玩家}</nowiki>}} – 强制对应玩家重新开始自己所在的游戏关卡(若对应玩家未在任何地图内则会失败)。
 +
* * {{code|/mmo <nowiki>kick|crash {玩家} [理由]</nowiki>}}: 将对应名称(不区分大小写)或 ID 的玩家踢出服务器。使用 {{code|kick}} 为仅移出服务器,{{code|crash}} 则是直接让玩家在被移出后游戏崩溃。
 +
* {{code|/mmo custommap <nowiki><名称|reset></nowiki>}}: 自定义自己所在地图的名称(仅对其他玩家有效,玩家自己无法查看)。切换地图时会自动重置。
  
=== 安装客户端 ===
+
==== 比赛状态类 ====
  
首先您需要确保您安装了最新版本的BML。然后您需要将下载得到的zip压缩包'''不解压直接放在'''{{code|ModLoader/Mods}}下。如果您之前安装有旧版本的BMMO,'''请务必删除所有旧版本的BMMO。'''重启游戏后在Mod界面查看到BallanceMMOClient即为安装成功。
+
* * {{code|/mmo cheat <nowiki>on|off</nowiki>}} – 开启或关闭服务器内所有人的作弊模式(Cheat Mode)。
 +
* * {{code|/mmo countdown}} – 自动连续发出 3, 2, 1, 开始比赛的信号。
 +
* {{code|/mmo dnf}} – 发出未能成功完赛所在地图的信号(同对应的快捷键)。
 +
* {{code|/mmo rankreset}} – 若玩家自己稍后发送比赛起跑命令,则同时重置服务器内所有地图先前已有的排行名次(适用于多地图连续比赛但仅发号一次的场景)。
 +
* {{code|/mmo <nowiki>ready|ready-cancel</nowiki>}} – 用于公开示意自己已经准备好了(进入已准备状态)或还未准备好(取消先前的准备状态)。
 +
* {{code|/mmo scores [local] hs{{!}}sr [关卡号]}} – 获取当前关卡(默认)或指定原版关卡的 HS 或 SR 排行榜数据,并在屏幕中央居中显示 10 秒。<ref>默认数据由服务器端同步获取,但 {{code|local}} 标签会采用玩家自己在线时接受到的通关信息的整合,因此如果出现掉线状况则可能会和实际排行数据不符。</ref><ref>“当前关卡” 是指上次触发 “Go!” 命令时的关卡。此外,目前暂时不支持获取指定自制地图的数据,但自制地图的比赛排行榜仍然可以通过 “当前关卡” 获取。</ref>
 +
** {{resize|示例: {{code|/mmo score hs 1}} 可以获取第 1 关以 HS 模式排列的成绩数据。}}
 +
* {{code|/mmo mode hs{{!}}sr}} 或 {{code|/mmo hs{{!}}sr}} – 设置自己接下来的发号模式为 HS 或 SR。
  
=== 配置服务器与用户名 ===
+
==== 杂项 ====
  
在您安装成功后,您有两种选择去设置您要连接的服务器和您的用户名。如果您正在寻找可用的服务器,可以查看下一章节以获取可用的服务器。<br />
+
* {{code|/mmo <nowiki>show|hide</nowiki>}} – 显示或隐藏本 mod 的命令行控制台。控制台内可以显示本 mod 的所有状态提示信息。命令行控制台的输入和输出将{{Color|'''不再有ASCII字符限制'''|red}}(即支持显示与输入中文等字符)。同时输入命令时也无需 {{code|/mmo}} 前缀。
您可以在游戏的Mod界面中,BallanceMMOClient设置项中的Remote和Player选项中分别设置您的服务器地址和用户名。如果您的地址或名称中包含复杂文本,您可以选择第二种方法。<br />
 
第二种方法则是可以编辑{{code|ModLoader/Config/BallanceMMOClient.cfg}}来修改服务器地址和用户名。
 
  
=== 基本操作 ===
+
=== 快捷键 ===
  
以下操作非常常用,在您设置好相关内容后请熟悉以下内容。
+
==== 自身状态类 ====
  
* {{code|/mmo c}}或{{code|/mmo connect}}:连接服务器。
+
* {{code|Tab}}: 显示/隐藏其他玩家的影子球的名称标签。
* {{code|/mmo d}}{{code|/mmo disconnect}}:断开连接。
+
* {{code|F3}}: 显示/隐藏调试信息。
* {{code|/mmo l}}或{{code|/mmo list}}:列出所有在线客户端。
+
* {{code|F3 + A}}: 重新加载服务器内玩家状态。如果玩家名称标记和实际影子球错位,可以使用重载功能调整。
* {{code|/mmo s 消息}}{{code|/mmo say 消息}}:发送消息。需要注意的是,由于BML对于命令的实现特性,消息中不支持输入空格。如果您需要断句,可以使用其它符号代替,例如“我掉了”可以这么打出:{{code|wo/diao/le}}又或者{{code|wo-diao-le}}
+
* {{code|Ctrl + Tab}}: 显示比赛内非旁观玩家的实时状态(所在的地图和小节)列表。<ref>先按住 Ctrl 再按 Tab(其他快捷键同理),虽然要同时按下但顺序不可错乱。</ref>
* F3开关右上角调试信息,调试信息主要显示网络传输状态。
+
* {{code|Ctrl + <nowiki>`</nowiki>}}: 显示/隐藏自己的(经历网络延迟后的)实时影子球,方便观察自身延迟。<ref>{{code|<nowiki>`</nowiki>}} 键位于标准 QWERTY 键盘的 1 键左侧,同时可以用于输入 {{code|<nowiki>~</nowiki>}}。</ref><ref name="single-player" />
 +
* {{code|Ctrl + Shift + ↑}}: 重置自己的视角。防止比赛过程中意外切换到非 90 度视角状态后无法正常继续比赛。<ref>重置视角时摄像机需要有大约 1~2 秒的调整时间,此期间建议不要移动防止出现其他意外(可以在变球器上时调整视角,减少非必要的时间浪费)。</ref>
  
自v3.1反作弊更新后,BMMO支持更多反作弊特性
+
==== 比赛状态类 ====
  
* {{code|/mmo cheat [on或off]}}:开关'''所有玩家'''的cheat。此命令将在不请求其它玩家的情况下强制改变所有玩家的作弊状态。请不要滥用此指令。
+
* {{code|Ctrl + <nowiki>[3 或 2 或 1]</nowiki>}}: 发出对玩家所在地图开始比赛的对应倒数命令。
* 现在会在玩家进行作弊的时候进行全局通报,并在作弊玩家名称后部付加{{code|[C]}}进行标记
+
* {{code|Ctrl + 0}}: 发出对玩家所在地图的起跑命令(玩家收到后会同时重置本地的比赛用时计时器)。根据服务器相关设置,地图相同的玩家收到后可能会自动重开所在地图。
 +
* {{code|Ctrl + 4}}: 发出对玩家所在地图的准备命令。
 +
* {{code|Ctrl + 5}}: 发出对玩家所在地图的确认准备状态的命令(用于提示玩家对自己是否准备好了进行示意)。
 +
* {{code|Ctrl + D}} 快速连续'''按下两次''': 发出未能成功完赛(Did not finish, DNF)所在地图的信号。
  
 
== 可用服务器 ==
 
== 可用服务器 ==
  
考虑到服务器的安全性,您需要根据您的需要,加入对应的交流渠道才可以获取课用服务器。当然,如果您也可以根据下一节的讲解开设私服并进行游戏。<br />
+
考虑到服务器的安全性,你需要根据你的需要,加入对应的交流渠道才可以获取可用服务器。当然,如果你也可以根据下一节的讲解开设私服并进行游戏。
如果您希望与中国国内的玩家进行游戏,您需要加入[[QQ群|联机群]],并在群内获取对应服务器地址<br />
 
如果您连接中国国内服务器有较大延迟,又或者希望与世界其它的Ballance进行游戏,可以加入Ballance [[Discord]]群组,并在{{code|#multiplay}}频道中获取服务器地址。<br />
 
 
 
== 历史 ==
 
  
从BMMO的GitHub Commit历史中可以看出其历史。BMMO从开发至今共有3个大版本。<br />
+
如果你希望与中国国内的玩家进行游戏,你需要加入[[QQ群|联机群]],并在群内获取对应服务器地址;如果你连接中国国内服务器有较大延迟,又或者希望与世界其它的Ballance进行游戏,可以加入Ballance [[Discord]]群组,并在{{code|#multiplay}}频道中获取服务器地址。
v1版本是基于TCP连接的架构,在这个版本中,定义了最基础的消息结构并进行过几次测试,TCP连接的最大问题就是一旦网络环境不佳,那么连接质量就会大大下降。这在一些场合是不能接受的。<br />
 
v2版本使用了[https://github.com/Swung0x48/SimpleRealTimeNetworking Swung自研的协议],但最终v2版本没有持续很长时间。<br />
 
v3版本是大家目前都在使用的版本,也是正在活跃开发的版本,此版本使用了[https://github.com/ValveSoftware/GameNetworkingSockets Valve的GameNetworkingSockets]作为网络协议库,并在此之上构建了此版本的BMMO,凭借Valve的GameNetworkingSockets优异的低延迟,高可靠性的特性,此版本的BMMO目前广受好评,即使玩家分布于世界各地,无论网络情况如何,都可以在可接受的范围内享受联机服务。
 
  
== 服务器搭建方法 ==
+
== 备注 ==
  
通常而言,在Linux搭建此服务器较为方便。您可以在其GitHub工程的README中找到如何编译服务器的相关介绍。
+
<references />
  
 
[[Category:BML2第三方Mod]]
 
[[Category:BML2第三方Mod]]

2024年2月11日 (日) 10:45的最新版本

英文版 / English version: BallanceMMOClient

本文介绍 BallanceMMOClient,即以 Mod 格式呈现的 Ballance大型多人在线游戏 的客户端。

下载

  • 发布网站选择 Download Standalone Package 进行下载。(推荐)
  • 加入联机群,并在群文件中下载。(推荐)
  • 加入Ballance Discord群组获得客户端。
  • 前往GitHub工程Actions页面下载(不推荐,因为可能会下载到未正式发布的不稳定版本)。
  • 自行编译(不推荐,因为编译较为困难)。

请注意各个服务器的版本要求,并下载正确的版本。下载最新版本通常是最正确的选择。通常而言,BMMO发布更新时开发者会同时更新服务器的版本限制,使得其不再允许旧版本的客户端连接。

安装客户端

首次安装

首先,你应当确保自己已经安装了 Ballance Mod Loader 并且更新到了最新版,0.3.43。然后你应当先按照上文的提示下载 BMMO 客户端。

如果你不知道该怎么做,直接点击上文发布网站页面内的 Download Standalone Package 下载懒人包即可。下载到的懒人包名称格式为 BallanceMMOClient_版本号.zip,它是 ZIP 格式的压缩包,直接放到游戏安装目录下的 ModLoader\Mods\ 文件夹即可,无需解压。当然解压也是没有问题的,懒人包包含了 1 个名为 BallanceMMOClient.bmod 的 Mod 本体文件与 3 个 DLL 文件,如果想要解压,记得将它们全部解压后放到 Mod 目录下。注意不要同时把压缩包和解压后的文件都放在 Mod 目录,二者只能选择其一。

如果你不想用上面的懒人包方式,那么你可以选择点击页面内下载栏的第二行的两个链接,分别下载最新版 Mod 本体以及那 3 个 DLL 文件。BMMO 客户端正常运行也是离不开后者的,所以你仍然需要将之全部解压后放到 Mod 目录内(不要同时放压缩包和解压后的文件)。

更新

如果你安装的是懒人包并且没有解压,那么更新对你而言应当是最简单的了:重复上一节的下载操作即可。

如果你解压了或者本来用的就是分开下载的方式,那么其实你要下载的东西更少,只用点击下载栏第二行的下载 Mod 本体就行。这是因为 BMMO 更新一般只会更新 Mod 本体,所依赖的其他 DLL 文件不用更新。然后把下载的 Mod 放到 Mod 目录内,务必删除旧版的 bmod 文件

客户端配置

插件的配置方式有两种:

  1. BMMO 客户端的设置和其他 Mod 设置的位置一样,依次进入菜单 – OptionsModsBallanceMMOClient 即可找到。设置完毕后记得点击 Back 然后返回出来(不返回的话设置不会保存),不要用按下 Esc 的方式,那样也是不会被保存的。
    • 如果你的设置项较长或包含复杂文本,你可以选择第二种方法。
  2. 编辑 ModLoader/Config/BallanceMMOClient.cfg 来修改插件的相关设置。

用户名和服务器地址是你进行联机必须要进行设置的两项内容;其他设置可以维持默认或者根据自己情况调节。

用户名设置

用户名设置位于 Playername玩家名称。默认会结合当前日期自动生成随机用户名,请务必在连接服务器前改成自己惯用的昵称。

  • 请选择一个较为清晰的名称。需要注意的是,你输入的用户名会被服务器进行一次无效字符删除,因此服务器最终采用的用户名可能与你设定的有所出入。
  • 名称长度必须在 3 到 20 个字符之间(含两端),过长的会被截断,过短的会被使用下划线补全。名称仅支持大小写英文字母、数字,以及符号 _-+=.~(),剩余的也会被替换成下划线。
  • 用户名每 24 小时只能修改一次,修改用户名请慎重;用户名有效性可以使用 用户名检验器 验证。

服务器设置

自 3.5.3 版本起,BMMO 的服务器地址由服务器管理器处理,你可以使用 /mmo c 命令进入服务器管理器并跟随其中提示设置。你必须设置正确的服务器地址,并确保和希望联机的人处在同一服务器下,才能正常联机。

玩家使用 /mmo c 唤出服务器管理器后会首先进入服务器列表视图。列表视图内显示玩家的添加过的所有服务器(最多保存 10 个),对着选中的服务器按下 Enter 或鼠标左键可以直接进入;按下 E 或者鼠标右键则可以编辑服务器信息。此外,若服务器数量没有达到上限,则服务器列表底部会显示 [Add New] 字样,选中并按下可以新增服务器。

服务器编辑视图内存在两个输入框,分别是服务器地址和备注名。如果你省略了地址的端口号,那么插件将默认连接 26676 端口;若备注名留空,则插件会以服务器地址作为服务器的名称。按下 EnterEsc 或者屏幕上按钮分别可以保存或撤销修改,

其它设置

  • Player / SpectatorMode旁观者模式。开启后你将以旁观者模式进行联机;旁观者的影子球、作弊状态等对于包括旁观者在内的其他玩家而言是隐藏的,同时旁观者也不会触发通关公示等涉及比赛的操作。
    • 旁观者模式经常用于比赛中的解说与裁判。处于旁观者模式的玩家前会被自动添加一个星号(*)以标记。
    • 切换此模式时若已连接至服务器则会自动触发一次断线重连。
  • Gameplay / Extrapolation外推插值,即是否对其他玩家的影子球启用外推插值。开启后将启用外推插值功能平滑显示玩家球运动轨迹,以取得更好的显示效果。若关闭,插件将停止平滑球的轨迹,球的轨迹将会是以离散形式呈现(瞬移)。
    • 常规状态下玩家至服务器的网络连接会不时有卡顿、丢包等现象,这些现象会导致影子球看着比较卡顿,运动起来不流畅。外推插值功能可以利用先前获取的玩家数据,对影子球的坐标进行实时推算,以准确度的较小损耗为代价大幅度提高影子球运动的流畅度。强烈建议启用,除非您所在的网络非常卡顿(此时插值效果的准确度会非常差,容易出现影子球抽风等现象)。
    • 本设置的存在是为了更好的兼容性,未来插值效果能够减少此状态下的准确度问题时开发者很有可能会强制启用插值功能,届时本设置会被移除。
  • Gameplay / PlayerListColor玩家列表颜色。以十六进制 RGB 数值的格式存储(也称作 HEX,可以自行查询了解),用以自定义玩家列表和置顶告示(参见后续章节以了解)的文字颜色。通常无需修改。
  • Gameplay / DynamicOpacity动态透明度,即是否对其他玩家的影子球按照和玩家摄像机的距离动态调节透明度,使得距离玩家球近的影子球更加透明,远处的影子球则更加不透明。可以用来减轻影子球的干扰。
  • Gameplay / SoundNotification音效通知。默认 BMMO 大部分通知消息会伴随音效提示,此选项关闭后,仅最重要的消息(比赛倒计时、起跑等)会有提示音。

客户端使用方法

命令

下文命令的描述格式和注意事项:

  • 不同参数之间以空格分隔;未使用任何格式的参数表示玩家必须原样输入参数名称。
  • name 表示对应的参数名称为 name,但可以仅输入下划线所示的部分(即字母 nm 的组合)。
  • <参数> 表示必须根据实际状态输入的参数。
  • [参数] 表示可以省略(将会使用默认值)的玩家参数。
  • 参数1 | 参数2 表示玩家需要选择参数 1 或参数 2 中的一个填入。
  • {玩家} 表示玩家名称或前缀了 # 的玩家内部临时 ID(可以用 /mmo list-id 获取)。
    • 例:若一玩家名为 Player,ID 为 1145141919,则可以输入 Player 或者 #1145141919
  • 命令参数的完整名称以及玩家名或玩家 ID 可以输入首字母后在输入框内按下 Tab 键自动补全,方便快速输入。
  • 固定的命令和玩家名不区分字母大小写,但玩家根据实际状态自行填入的其他参数区分。此外,Tab 键自动补全时由于 BML 自身设定问题,也区分大小写。
  • 前缀 的命令需要玩家在服务器内拥有管理员权限才能使用。
    • 管理员权限的判定为:玩家直接为对应服务器内的管理员,或对应服务器内无任何在线管理(此时视作所有玩家均为管理员)。

服务器状态类

  • /mmo connect [地址] – 连接到地址对应的服务器。若不填地址则会唤出服务器选择器。
  • /mmo disconnect – 离开玩家所在的服务器。

玩家状态类

  • /mmo list|list-id – 显示所在服务器内所有玩家的名称列表。若使用 list-id,则在列表内同时列出玩家名称和内部临时 ID。
  • /mmo getmap – 显示服务器内所有玩家各自所在的地图名称和小节号(方便寻找不同玩家)。
  • /mmo getpos – 显示服务器内所有玩家各自的坐标和球的种类。[1]
  • /mmo reload – 重新加载服务器内玩家状态。如果玩家名称标记和实际影子球错位,可以使用重载功能调整。
  • /mmo gettimestamp – 显示服务器内玩家的影子球插值用时间数据。此命令为调试功能。
  • /mmo uuid – 输出玩家自己的 UUID,方便复制使用。

玩家互动类

  • /mmo say <文字>/say <文字> – 在服务器内公开发送一条内容为 <文字> 的聊天信息。[2]
  • /mmo whisper {玩家} <文字> – 向对应的玩家发送私聊信息,只有对方能够看见。
  • /mmo announce <文字> – 在服务器内发送一条重要通知,玩家接收到后会在游戏窗口内居中显示 10 秒左右。可以显示包括中文在内的非 ASCII 字符。
  • /mmo notice <文字> – 在服务器内发送一条普通通知。显示效果和限制和上文的重要通知相似,但普通通知显示的位置在窗口下部,因此对玩家游戏的干扰性较低。
  • /mmo bulletin [文字] – 设置服务器的常驻通知(会维持在游戏界面顶端显示)。[3]
  • /mmo announcemap – 在服务器内公开发送自己所在的地图和小节的信息(可以用于通知其他用户)。
  • /mmo teleport {玩家} – 传送至服务器内其他玩家的坐标。只能在作弊模式(Cheat Mode)下使用。[4][1]
  • /mmo restartlevel {玩家} – 强制对应玩家重新开始自己所在的游戏关卡(若对应玩家未在任何地图内则会失败)。
  • /mmo kick|crash {玩家} [理由]: 将对应名称(不区分大小写)或 ID 的玩家踢出服务器。使用 kick 为仅移出服务器,crash 则是直接让玩家在被移出后游戏崩溃。
  • /mmo custommap <名称|reset>: 自定义自己所在地图的名称(仅对其他玩家有效,玩家自己无法查看)。切换地图时会自动重置。

比赛状态类

  • /mmo cheat on|off – 开启或关闭服务器内所有人的作弊模式(Cheat Mode)。
  • /mmo countdown – 自动连续发出 3, 2, 1, 开始比赛的信号。
  • /mmo dnf – 发出未能成功完赛所在地图的信号(同对应的快捷键)。
  • /mmo rankreset – 若玩家自己稍后发送比赛起跑命令,则同时重置服务器内所有地图先前已有的排行名次(适用于多地图连续比赛但仅发号一次的场景)。
  • /mmo ready|ready-cancel – 用于公开示意自己已经准备好了(进入已准备状态)或还未准备好(取消先前的准备状态)。
  • /mmo scores [local] hs|sr [关卡号] – 获取当前关卡(默认)或指定原版关卡的 HS 或 SR 排行榜数据,并在屏幕中央居中显示 10 秒。[5][6]
    • 示例: /mmo score hs 1 可以获取第 1 关以 HS 模式排列的成绩数据。
  • /mmo mode hs|sr/mmo hs|sr – 设置自己接下来的发号模式为 HS 或 SR。

杂项

  • /mmo show|hide – 显示或隐藏本 mod 的命令行控制台。控制台内可以显示本 mod 的所有状态提示信息。命令行控制台的输入和输出将不再有ASCII字符限制(即支持显示与输入中文等字符)。同时输入命令时也无需 /mmo 前缀。

快捷键

自身状态类

  • Tab: 显示/隐藏其他玩家的影子球的名称标签。
  • F3: 显示/隐藏调试信息。
  • F3 + A: 重新加载服务器内玩家状态。如果玩家名称标记和实际影子球错位,可以使用重载功能调整。
  • Ctrl + Tab: 显示比赛内非旁观玩家的实时状态(所在的地图和小节)列表。[7]
  • Ctrl + `: 显示/隐藏自己的(经历网络延迟后的)实时影子球,方便观察自身延迟。[8][1]
  • Ctrl + Shift + ↑: 重置自己的视角。防止比赛过程中意外切换到非 90 度视角状态后无法正常继续比赛。[9]

比赛状态类

  • Ctrl + [3 或 2 或 1]: 发出对玩家所在地图开始比赛的对应倒数命令。
  • Ctrl + 0: 发出对玩家所在地图的起跑命令(玩家收到后会同时重置本地的比赛用时计时器)。根据服务器相关设置,地图相同的玩家收到后可能会自动重开所在地图。
  • Ctrl + 4: 发出对玩家所在地图的准备命令。
  • Ctrl + 5: 发出对玩家所在地图的确认准备状态的命令(用于提示玩家对自己是否准备好了进行示意)。
  • Ctrl + D 快速连续按下两次: 发出未能成功完赛(Did not finish, DNF)所在地图的信号。

可用服务器

考虑到服务器的安全性,你需要根据你的需要,加入对应的交流渠道才可以获取可用服务器。当然,如果你也可以根据下一节的讲解开设私服并进行游戏。

如果你希望与中国国内的玩家进行游戏,你需要加入联机群,并在群内获取对应服务器地址;如果你连接中国国内服务器有较大延迟,又或者希望与世界其它的Ballance进行游戏,可以加入Ballance Discord群组,并在#multiplay频道中获取服务器地址。

备注

  1. 1.0 1.1 1.2 服务器内玩家数仅有 1 人(即玩家自身)时为节约运算和网络资源,服务器并不会向玩家发送坐标等状态信息,所以影子球不会跟随玩家移动。也因此服务器内仅有 1 名玩家(即玩家自身)时并不会正确显示坐标和球的种类。
  2. 在3.1.5-beta5前,由于BMMO的实现,消息中不支持输入空格。如果你需要断句,需要使用其它符号代替,例如“我掉了”可以这么打出:wo/diao/le又或者wo-diao-le。在3.1.5-beta5更新中,这一问题由开发者修复。
  3. 常驻通知不会自动换行,请注意描述的简洁度;此外,服务器内所有玩家均退出(使得服务器内没有玩家)后常驻通知会自动清空。
  4. 传送只能做到传送到玩家本地存储的其他玩家的坐标,不会连带切换玩家所在的地图或小节,也不会复原其他玩家视角的机关摆放;请与 /mmo getmap 等命令配合使用。
  5. 默认数据由服务器端同步获取,但 local 标签会采用玩家自己在线时接受到的通关信息的整合,因此如果出现掉线状况则可能会和实际排行数据不符。
  6. “当前关卡” 是指上次触发 “Go!” 命令时的关卡。此外,目前暂时不支持获取指定自制地图的数据,但自制地图的比赛排行榜仍然可以通过 “当前关卡” 获取。
  7. 先按住 Ctrl 再按 Tab(其他快捷键同理),虽然要同时按下但顺序不可错乱。
  8. ` 键位于标准 QWERTY 键盘的 1 键左侧,同时可以用于输入 ~
  9. 重置视角时摄像机需要有大约 1~2 秒的调整时间,此期间建议不要移动防止出现其他意外(可以在变球器上时调整视角,减少非必要的时间浪费)。