加入我们,或者,欢迎回来。
您需要 登录 才可以下载或查看,没有帐号?注册会员
x
本帖最后由 walf_man 于 2020-11-12 20:36 编辑
兄弟帖:RPG Maker MV 版本的网络核心插件,RMMV网络插件
RMMZ网络插件功能组合包,基于jquery和ajax与服务器交互,具有如下功能:
云数据,游戏内捐献,云变量开关,弹幕,战力榜,云存档,登录,注册,排名,兑换码,版本检测、云端多国语言、云端真实时间、云端变量和开关、公告
动态下发开关变量、捐献历史、开新档、选集等
此RMMZ网络插件基于RMMV网络插件升级而来,在其基础上又增加了:
过图检测,
游戏素材和数据高强度加密功能,
激活功能(在线激活和离线激活,在线激活绑定设备,离线激活根据机器码生成激活码),
材质/图片清晰度动态切换功能,
debug功能(可供别的插件调用,方便切换开发模式和发布模式,开发模式可以输出debug调试信息,发布模式可以关闭debug输出从而提升运行效率,可自定义打印debug日志的详细级别:verbose,debug,info,warning, error),
以及其它大大小小的数十项功能,主要是我自己在用,以及几位作者在用,大部分作者应该是用不到的,
我就不一一列举了。
另外,需要说明的是,插件之前叫AXY_AjaxNetStuff.js,意思是用ajax来处理一些网络相关的东西,
之后,改名为AXY_Network.js,主要用于处理网络各项功能的插件,
再之后,由于很多我写的其它插件都需要从这个插件中获取一些基础的功能和方法,本来想提取一下单独做个核心插件
但是奈何插件一路写来,1万多行,乱七八糟的,想从中提取散落在代码各处的功能和方法还真是不容易,
无奈之下只好直接将其作为核心插件了,因此目前改名为AXY_Core.js,
同时由于代码结构不够清晰,可读性差,
也不好意思再在各位专业级程序员大神面前班门弄斧的献丑,
再一个就是为了追随偶像yep的脚步,所以就简单的混淆了下,
毕竟我的插件写法,格式,很多都是参考yep大神的插件来的,比如开头那个
var Imported = Imported || {};
Imported.AXY_Core = true;
var AXY = AXY || {};
AXY.Core = AXY.Core || {};
var Imported = Imported || {};
Imported.AXY_Core = true;
var AXY = AXY || {};
AXY.Core = AXY.Core || {};
还有别名那个
AXY.Core.Alias.Window_Options_addVolumeOptions = Window_Options.prototype.addVolumeOptions;
Window_Options.prototype.addVolumeOptions = function () {
AXY.Core.Alias.Window_Options_addVolumeOptions.call(this);
};
AXY.Core.Alias.Window_Options_addVolumeOptions = Window_Options.prototype.addVolumeOptions;
Window_Options.prototype.addVolumeOptions = function () {
AXY.Core.Alias.Window_Options_addVolumeOptions.call(this);
};
等等等太多啦,可以说如果没有参考yep大佬的插件源码的话,根本也就写不出我这些现有的插件了。
使用起来是完全没什么影响的,都是通过插件参数来调整各项数值的。
插件安装:
之前的安装部署很繁琐,现在通过我彻夜的掉头发砸键盘搞出来的新方法,就很简单了
插件管理器选择AXY_Core.js,安装,设置为on,然后设定各项参数即可
如果懒得去设置,那就保持默认参数就很好了,当然还可以从范例里面去复制啦
范例几十兆,要分卷的话,很多同学可能会搞不定了,这个之前我发AXY_gif.js插件的时候就已经有了前车之鉴
因此下范例的话加群下吧,基本rmmv的群也好,rmmz的群也好,我应该是每次都会群发几十个群的
注意:
本插件与以下两个插件互相依赖:
核心插件中,以及后续系列插件中所有信息提示都要用到的,toast插件,当然这个插件也可以作为物品得失提示,等级经验等得失提示,可以自定义各种参数自定义信息提示的模板,如果大家有了自己的物品得失提示插件,可以把这个插件里面的物品得失功能关闭(我分开的,可以单独关,比如关掉金币提示,关掉道具提示,但是保留升级降级的提示都是完全可以自定义的,很灵活很强大)
网络插件中的弹幕功能需要用到这个:RMMZ游戏界面任意位置显示任意文字任意字体的插件
这里要感谢群友晚风微凉热心寻找问题,部署后报错,我也没找到原因,结果还是晚风微凉找到的:“安装toast就好了”
ok,上插件了:
AXY_Core.7z
(162.18 KB, 下载次数: 1978)
再上一张图吧:
再来看看材质动态切换的神器:
第一张,选项中设置的默认素材,低分辨率的,在img/pictures下的图片
很模糊对吧
现在我们来在选项中切换到标清,中等分辨率,插件会自动重新加载在img/pictures-medium下的同名图片
怎么样,是不是清晰了一点,如果你还有高清分辨率,超高清分辨率的素材,统统都可以在插件参数里设置一下的
最关键是不需要重启游戏,也不需要重新进入游戏,随时打开选项设置一下,随时动态切换素材质量
这样,低配电脑或者手机玩家用低分辨率材质
高配玩家用超高清材质,岂不爽歪歪
如果想用依赖检测功能,也很方便了:
如图所示,如果发现依赖不足,则会在游戏中和F12控制台同时打印依赖提示
同时,游戏可以继续,只不过缺少依赖的那部分功能都不存在了而已
如果其它第三方插件也想用这个依赖检测的话,可以这么使用:
if (AXY.Core.isPluginImport("AXY_Toast", AXY.TitleSplashVideo.TAG)) { isDependenceReady = true; } else { isDependenceReady = false; } //all Dependence Detection is ok if (isDependenceReady) { //你的插件的主体 //参数的处理 AXY.TitleSplashVideo.Parameters = PluginManager.parameters('AXY_TitleSplashVideo'); AXY.TitleSplashVideo.Param = AXY.TitleSplashVideo.Param || {}; AXY.TitleSplashVideo.Alias = AXY.TitleSplashVideo.Alias || {}; AXY.TitleSplashVideo.Variables = AXY.TitleSplashVideo.Variables || {}; //插件内部逻辑处理 }
if (AXY.Core.isPluginImport("AXY_Toast", AXY.TitleSplashVideo.TAG)) {
isDependenceReady = true;
} else {
isDependenceReady = false;
}
//all Dependence Detection is ok
if (isDependenceReady) {
//你的插件的主体
//参数的处理
AXY.TitleSplashVideo.Parameters = PluginManager.parameters('AXY_TitleSplashVideo');
AXY.TitleSplashVideo.Param = AXY.TitleSplashVideo.Param || {};
AXY.TitleSplashVideo.Alias = AXY.TitleSplashVideo.Alias || {};
AXY.TitleSplashVideo.Variables = AXY.TitleSplashVideo.Variables || {};
//插件内部逻辑处理
}
其中AXY.Core.isPluginImport("AXY_Toast", AXY.TitleSplashVideo.TAG)两个参数中的AXY.TitleSplashVideo.TAG你要在你的插件最前面类似这样定义一下:
var AXY = AXY || {}; AXY.TitleSplashVideo = AXY.TitleSplashVideo || {}; AXY.TitleSplashVideo.TAG = "AXY_TitleSplashVideo";
var AXY = AXY || {};
AXY.TitleSplashVideo = AXY.TitleSplashVideo || {};
AXY.TitleSplashVideo.TAG = "AXY_TitleSplashVideo";
这样打印日志的时候才知道这条依赖请求是从哪个插件发出的
另一个参数"AXY_Toast"就是当前插件所依赖的另一个插件的名称,那个插件里的最前面应该类似这样定义一下:
var Imported = Imported || {}; Imported.AXY_Toast = true;
var Imported = Imported || {};
Imported.AXY_Toast = true;
如果只要核心功能,不要网络功能,则可以将不需要的功能都关掉即可,大部分都是独立的参数结构体,小部分是单独的参数,看到enable这样类似的参数设置其为false/off即可
如下图所示,参数阵容强大,自由度超级高,可以说想怎样都行,只要有精力耐心细致的设置,你的游戏就和别人的游戏玩法大不同:
changelog
2.53 2020.11.09
新增: RMMZ 兼容: 注册, 登录, 云数据, 云存档, 过图检测, 材质清晰度动态切换, 兑换码, 游戏内购, 版本检测, 弹幕, 排行榜, 趣味考试系统,单机买断制,按月订阅制等;
新增: 大量参数结构体的默认值;
新增: rmmz 显示 pixijs sayhello;
增强: AXY.Core.Log;
调整: 移动弹幕按钮到按钮结构体参数的默认值;
调整: 移动 img/pictures 到 img/axy,更方便部署,所需图片单独放置,和别的就不容易搞混乱了; |