加入我们,或者,欢迎回来。
您需要 登录 才可以下载或查看,没有帐号?注册会员
x
本帖最后由 中二幻者 于 2020-9-1 22:34 编辑
在RPGMZ发售之前学了一点JS,想尝试自己写一些插件,但发现还是很难下手,即使只是一些简单的思路也无法不知道如何去实现。
于是开始在各种教程,在RPGMAKER的官方论坛里找到了一个不错的教程,即使是机翻也能看的懂,但可惜的是这是一个MV的教程。
这个插件的功能非常简单,就是在状态里显示一个种族,当然也可以换成其他的,比如性别之类的,前面确实没什么问题,关键在于后面。
因为MV的插件指令是需要手动输入的,而MZ改变了这一点,这就让我不知道怎么去调整,因为一点经验也没有,插件指令可以正确显示,但是没有效果,好几个小时也还是没成功,希望有大佬帮忙把这个简单的改一下,改成MZ能用的。
//============================================================================= // RPG Maker MZ //============================================================================= /*: * @target MZ * @plugindesc 设置角色种族 * @author * * @help * * 这个插件可以设置角色的种族,并且可以通过插件指令在中途改变种族。 * * 角色备注:<race:XX> XX为你设定的种族。 * * * * @command set * @text 改变种族 * @desc 设定改变后的种族 * * * @arg text * @type multiline_string * @text Text * @desc 要变成的种族 * */ // 保留对原始函数的引用 const Game_Actor_setup = Game_Actor.prototype.setup; Game_Actor.prototype.setup = function (actorId) { // 调用原函数 Game_Actor_setup.call(this, actorId); this.race = $dataActors[actorId].meta.race || null; }; Game_Actor.prototype.changeRace = function (newRace) { this.race = newRace; }; Window_Status.prototype.drawActorNickname = function (actor, x, y, width = 270) { this.resetTextColor(); if (actor.race) { this.drawText(actor.race, x, y, width); } else { this.drawText(actor.nickname(), x, y, width); } }; // 保留对原始函数的引用 const Game_Interpreter_pluginCommand = Game_Interpreter.prototype.pluginCommand; Game_Interpreter.prototype.pluginCommand = function (command, args) { // 调用原始函数 Game_Interpreter_pluginCommand.call(this, command, args); // 如果插件命令是我们的 if (command.toLowerCase() === "changerace") { // 获取参数 const id = parseInt(args[0]); const newRace = args[1]; // 改变角色的种族 $gameActors.actor(id).changeRace(newRace); } };
//=============================================================================
// RPG Maker MZ
//=============================================================================
/*:
* @target MZ
* @plugindesc 设置角色种族
* @author
*
* @help
*
* 这个插件可以设置角色的种族,并且可以通过插件指令在中途改变种族。
*
* 角色备注:<race:XX> XX为你设定的种族。
*
*
*
* @command set
* @text 改变种族
* @desc 设定改变后的种族
*
*
* @arg text
* @type multiline_string
* @text Text
* @desc 要变成的种族
*
*/
// 保留对原始函数的引用
const Game_Actor_setup = Game_Actor.prototype.setup;
Game_Actor.prototype.setup = function (actorId) {
// 调用原函数
Game_Actor_setup.call(this, actorId);
this.race = $dataActors[actorId].meta.race || null;
};
Game_Actor.prototype.changeRace = function (newRace) {
this.race = newRace;
};
Window_Status.prototype.drawActorNickname = function (actor, x, y, width = 270) {
this.resetTextColor();
if (actor.race) {
this.drawText(actor.race, x, y, width);
} else {
this.drawText(actor.nickname(), x, y, width);
}
};
// 保留对原始函数的引用
const Game_Interpreter_pluginCommand = Game_Interpreter.prototype.pluginCommand;
Game_Interpreter.prototype.pluginCommand = function (command, args) {
// 调用原始函数
Game_Interpreter_pluginCommand.call(this, command, args);
// 如果插件命令是我们的
if (command.toLowerCase() === "changerace") {
// 获取参数
const id = parseInt(args[0]);
const newRace = args[1];
// 改变角色的种族
$gameActors.actor(id).changeRace(newRace);
}
};
|