ScoreManager-Magic/zh

来自Ballance Wiki
Yyc12345讨论 | 贡献2020年3月6日 (五) 13:03的版本 (修复错误)
跳转至: 导航搜索
Ambox-AuthorEdition.png 参与者编辑的条目
这个条目已经被作者或条目相关人物进行了巡查或编辑,因而内容可信度很高。
ScoreManager-Magic
ScoreManagerMagic.png
ScoreManager-Magic的登陆界面
基本信息
作者 后期主程:yyc12345
前置工程主程:jxpxxzj
前置工程相关:2jjy,BallanceLover
适用于 Ballance
依赖 详见程序依赖章节
发布时间 第一版:2020年1月1日
第二版慢速开发中,发布时间未定
项目地址 Github项目地址
开发状态 活跃开发中

ScoreManager-Magic是由yyc12345按照个人意愿,为了服务其提出的Ballance竞速杯而专门制作的程序。体系上继承了ScoreManager,可以理解为将之前关闭的ScoreManager的主要功能再次复现的一个工程。

起源

yyc12345原本希望直接从ScoreManager的服务端备份库中继承代码,但发现无权限访问[1],并且获知[2]和了解[3]到原版ScoreManager的服务端代码有很多漏洞,因而决定重写服务端。

程序客户端来源于对ScoreManager-Core的改造,程序服务端仿照之前的系统使用了PHP编写,之后整合了原本分离的直播专用客户端。

版本

第一版于2020年1月1日20点左右开始测试运行,其界面较为简陋(用Windows控件拼出来的),暂无法与当初的ScoreManager相比。据开发者所言,是工期较紧且为了把重心放在比赛功能的实现上做出的妥协[4]。但是核心部分将会完全基于原有的ScoreManager核心代码。

第二版依据日程安排,将会在2020年6月左右完工,届时将拥有与原版ScoreManager相近的客户端,以及高分榜支持,多语言支持,网页端支持,反作弊改进。目前第二版仅写出了一份粗略的设计稿。

组成

ScoreManager-Magic由四部分组成:

  • ScoreManager-Magic:用于提供给参赛玩家的客户端,代码来源于ScoreManager-Core并加入了成绩上传机制和友好的用户界面。
  • BTLD(Ballance Tournament Live Displayer):提供给直播员的专用于直播的客户端,可以进行图池展示,抽图之类的直播专用操作。
  • Mahoushoujo:提供给竞速审核员,图池选择员,数据统计员和总管理的集中式比赛后台管理器,可以创建比赛,审核成绩,设定地图等。
  • SMMLib:不作为程序存在,仅作为以上三个程序公用的动态链接库负责与SMM-Backend进行交互。
  • SMM-Backend:ScoreManager-Magic的服务器后端,运作于服务器上并与上述三个客户端都有互动,是比赛信息的存储中心。

程序依赖

  • ScoreManager-Magic需要.Net Framework 4.0作为运行库。
  • BTLD和Mahoushoujo需要.Net Framwork 4.0作为运行库,同时BTLD需要搭配直播程序,例如OBS才能正常进行直播
  • SMM-Backend需要PHP 7以上版本和一些相关插件(可以在Github上查看);需要MySql作为数据存储器;需要一个Web服务器(测试时使用的是Nginx)

兼容性

  • ScoreManager-Magic兼容自Windows XP以来的所有Windows操作系统。由于和ScoreManager使用了相同的数据检测装置,因此在最小程度上不兼容任何需要修改Menulevel.NMO的插件;且由于程序内置的审核机制,无法在装有任何插件的Ballance上启动(Ballance中文版除外)
  • BTLD和Mahoushoujo支持自Windows 7以来的所有Windows操作系统
  • SMM-Backend在有相关依赖支持的情况下,可以运行在Windows和Linux上

注释

  1. 其实是私有仓库访问人数超过了托管网站的限制
  2. 获知是指:jxpxxzj曾言ScoreManager原版服务端可能存在SQL注入漏洞,希望yyc12345重写的时候务必使用PDO
  3. 了解是指:之前yyc12345在开发Ballance Tools yyc版时被BallanceLover告知虽然关卡排行榜查询要求传入用户名和密码参数,但是实际上乱传都可以获取。yyc12345感觉此设计不合理,希望创建一个健全的账号系统来防止一些查询被滥用。
  4. 其实是放了无数次鸽子的搞成这样的