加入我们,或者,欢迎回来。
您需要 登录 才可以下载或查看,没有帐号?注册会员
x
本帖最后由 神风炽羽 于 2022-4-2 19:58 编辑
大家好,我是神风炽羽,今天为大家带来一套网络插件的使用教程。
这套插件的后端是风雨声大佬完善,并提供了相应的接口。我为mv做了一定的适配。
好的话不多说,我们一起来看看。(以下步骤需要用到node.js,大家也可以百度后安装)
首先下载底下的network包,接下来去下载mongodb,百度搜索之后到官网下载安装包。
按照相应教程启动服务。如果你想要可视化的话,可以在安装的时候让他把附属的可视化工具也安装上去,但这可能会需要很多时间。接下来解压network包。打开其中的dist。后面我发现dist发错了。重新发布一份请解压后覆盖。
network.zip
(52.8 KB, 下载次数: 45, 售价: 15 星屑)
然后在地址栏输入powershell也就是在这个位置启动。接下来输入 npm i –prod
等他全部跳转完之后。输入node main就可以开始接收了。(记得提前把你本地或者你所部署的服务器上的27017端口打开) .env文件可以决定你打开的端口默认为3000。这是提供服务的端口。不是数据库的端口哦。
然后将底下的js和index.html覆盖你工程文件中的(注意,如果你不希望游戏开始之前强制登陆请不要覆盖你工程中的index.html main.js)
接下来修改main.js
window.onload = function () { Network.instance.init("http://localhost:3000");//Ip地址和开的端口。 Network.instance.onLogin = (data) => { let obj = JSON.parse(data); alert(obj.message) if (obj.code == "1") { document.getElementById("network").innerHTML = '' PluginManager.setup($plugins); SceneManager.run(Scene_Boot); } } Network.instance.onError = (data) => { let obj = JSON.parse(data); alert(obj.message) if (obj.code == "100") { window.location.reload(); } } };
window.onload = function () {
Network.instance.init("http://localhost:3000");//Ip地址和开的端口。
Network.instance.onLogin = (data) => {
let obj = JSON.parse(data);
alert(obj.message)
if (obj.code == "1") {
document.getElementById("network").innerHTML = ''
PluginManager.setup($plugins);
SceneManager.run(Scene_Boot);
}
}
Network.instance.onError = (data) => {
let obj = JSON.parse(data);
alert(obj.message)
if (obj.code == "100") {
window.location.reload();
}
}
};
将上面的位置修改完之后你的游戏就和数据库有了一定交互的功能。接下来我们来讲讲这套系统中。注册登录。存入存档和获取存档的语句。首先是初始化。
Network.instance.init("http://localhost:3000");
接下来是登陆,注册
请注意,在这套系统中,账号的性质是唯一的,不可重复注册。并且开启了单线程防刷功能。只能在一个位置登录。所有平台都算。
Network.instance.login(user, pwd)
Network.instance.register(user, pwd)
存入和读取。
Network.instance.sendSaveJson(json);//发送至服务器
var json = Network.instance.saveJson
注意!上面存入的一定要是Json的字符串。下面获取出来的同样也是字符串。
文件夹中的SfcySaveOnline.js 就是一个暴力修改。存储和获取系统。所得到的云存储。可以直接用,也可以用上述命令进行修改。注意,暴力修改的插件和很多都不兼容。请自行取舍。
这一套系统经过风雨声大佬的授权可以交予我修改和使用。它提供了相应的接口,并且愿意将后端开源出去,相应的我写的插件和修改的也是开源的。可以供各位任意修改。条件是修改完之后请务必给我一份。我的邮箱是[email protected]
这套插件目前还不够完善。后续会继续完善,但由于后续制作速度的不稳定性。目前这一套已经算是比较完备的了。各位可以参考。希望各位能好好使用这一套系统。
(经过我和风雨声的一致认同,这一套系统会收取20星屑来补偿我和他熬了三个夜请各位理解。)
另外还需要注意的是,在打包为移动端或者浏览器上预览的时候,会出现无法获取,存档和无法注册的情况。需要你们自己手动关闭跨域检测,至于关闭方法,请自行百度。
另外,如果觉得index.html不好看的话。可以在style标签中自行使用CSS美化, 这里我就不要脸的向各位要一份,因为我审美不太好。
后续的持续更新请关注一下我。说不定。有你想要的。虽然我技术不是很好。
接下来,有点耍帅意味的附上我自己的座右铭。
我虽不是全能,但会尽我所能。
好的,我们下次再见。
2021.2.1服务端出现PayloadTooLargeError: request entity too large,打开dist/main.js,修改为
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); require("dotenv/config"); const core_1 = require("@nestjs/core"); const app_module_1 = require("./app.module"); const port = process.env.PORT || 8080; async function bootstrap() { const app = await core_1.NestFactory.create(app_module_1.AppModule); var bodyParser = require('body-parser'); app.use(bodyParser.json({limit: '50mb'})); app.use(bodyParser.urlencoded({limit: '50mb', extended: true})); app.useStaticAssets("www"); await app.listen(port); } bootstrap();
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
require("dotenv/config");
const core_1 = require("@nestjs/core");
const app_module_1 = require("./app.module");
const port = process.env.PORT || 8080;
async function bootstrap() {
const app = await core_1.NestFactory.create(app_module_1.AppModule);
var bodyParser = require('body-parser');
app.use(bodyParser.json({limit: '50mb'}));
app.use(bodyParser.urlencoded({limit: '50mb', extended: true}));
app.useStaticAssets("www");
await app.listen(port);
}
bootstrap();
原因:node限制最大上传大小
|