//=============================================================================
// 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);
}
};