此文章为个人记录存储要想用RPGMZ游戏引擎制作出宠物战斗系统的游戏 需要有以下几个特点1. 玩家控制的角色不参与战斗 只有其他角色可以战斗2. 需要在菜单界面 战斗界面 不显示玩家 只显示可战斗角色正文我们需要把玩家控制的角色设为编号1 并且用以下代码显示和隐藏0 入队 1 离队//0入队 1离队 编号1 $gameMap._interpreter.command129([1, 1, true]);首先定义一个变量 let addActor_bool false; 判断是菜单和战斗进入还是事件入队功能区分开如果 addActor_bool true 则加入到顶部第一个 否则加入到底部最后一个在菜单编写代码const _Scene_MenuBase_prototype_create Scene_MenuBase.prototype.create Scene_MenuBase.prototype.create function() { _Scene_MenuBase_prototype_create.call(this); $gameMap._interpreter.command129([1, 1, true]); //进入菜单移除角色 };在地图编写代码const _Scene_Map_prototype_create Scene_Map.prototype.create Scene_Map.prototype.create function() { _Scene_Map_prototype_create.call(this); addActor_bool true; $gameMap._interpreter.command129([1, 0, true]); //进入地图添加角色 addActor_bool false; };在战斗编写代码const _Scene_Battle_prototype_create Scene_Battle.prototype.create Scene_Battle.prototype.create function() { _Scene_Battle_prototype_create.call(this); $gameMap._interpreter.command129([1, 1, true]); //进入战斗移除角色 };修改入队逻辑 是加入到顶部还是底部Game_Party.prototype.addActor function(actorId) { if (!this._actors.includes(actorId)) { if(addActor_bool){ this._actors.unshift(actorId); addActor_boolfalse; }else{ this._actors.push(actorId); } $gamePlayer.refresh(); $gameMap.requestRefresh(); $gameTemp.requestBattleRefresh(); if (this.inBattle()) { const actor $gameActors.actor(actorId); if (this.battleMembers().includes(actor)) { actor.onBattleStart(); } } } };进入菜单会移除第一个角色 进入地图会加入第一个角色好了你得到了宠物系统的基础功能实现哔哩哔哩视频结尾总结请Project1论坛的小圈子 离开