Project1

标题: 如何实现“切换主角”? [打印本页]

作者: asukalin    时间: 2022-10-17 01:36
标题: 如何实现“切换主角”?
本帖最后由 asukalin 于 2022-10-17 01:52 编辑

贴子标题说得有点暧昧不清。


上一条贴子问了:
https://rpg.blue/thread-491289-1-1.html

按那个方法,换主角之后还是站在原来的位置,这不够好。

我想要的是这样的效果:



原本控制的人物是女性。她站在地图中部。



打开主菜单,选择“整理队伍”,然后点击选择队伍中的“男性”
(不是将列表中“男性”和“女性”的排位交换,而是直接点选“男性”)



画面转黑,然后控制的角色变成了男性,出现在原先“男性NPC”站着的地方,而打开菜单之前所在的地方现在留下了一个“女性NPC”。
这样就可以给人 “原本控制的是女NPC,现在切换成了控制男NPC” 的错觉。

差不多就是在GTA5里切换主角时的那种感觉吧。


作者: asukalin    时间: 2022-10-17 05:48
成功了!

在rmmz_scenes里放几个js函数

  1. //切换主角
  2. Scene_Menu.prototype.commandSwitchMain = function() {
  3.     this._statusWindow.setFormationMode(true);
  4.     this._statusWindow.selectLast();
  5.     this._statusWindow.activate();
  6.     this._statusWindow.setHandler("ok", this.onSwitchMainOk.bind(this));
  7.     this._statusWindow.setHandler("cancel", this.onSwitchMainCancel.bind(this));
  8. };

  9. Scene_Menu.prototype.onSwitchMainOk = function() {
  10.         //选中人物
  11.     const index = this._statusWindow.index();
  12.         if (index == 0) {
  13.                 SoundManager.playBuzzer();
  14.                 this._statusWindow.activate();
  15.         } else {
  16.             //关闭菜单
  17.             this.popScene();
  18.             $gameVariables.setValue(1, index);
  19.             $gameTemp.reserveCommonEvent(1);
  20.         }
  21. };

  22. Scene_Menu.prototype.onSwitchMainCancel = function() {
  23.     this._statusWindow.deselect();
  24.     this._commandWindow.activate();
  25. };
复制代码


在菜单选择对应人物时就运行公共事件

在公共事件里让玩家角色和NPC角色交换位置就行了
比想象中容易呢

作者: moking9    时间: 2022-10-18 15:32
坛子人好少,我昨晚发帖也是自行解决的。
作者: 烈风    时间: 2023-5-11 16:43
楼主你写的代码如何使用哈




欢迎光临 Project1 (https://rpg.blue/) Powered by Discuz! X3.1