Project1

标题: 请问如何使新队友“插队”? [打印本页]

作者: zy652301    时间: 2017-7-2 13:40
标题: 请问如何使新队友“插队”?
本帖最后由 zy652301 于 2017-7-3 21:08 编辑

RMMV中以基本方式添加的队友只能显示在队末。
请提供【能在队伍中 任意位置 插入 任意角色】的脚本。

效果举例:
在队伍【安卡诺,本】中插入【菜菜子】在【1号/领队位置】
得出队伍【菜菜子,安卡诺,本】

自己已经总结出,有些麻烦但依然可行的方案。
【记录队员ID并删除插入处后面的全部队员,把新队员加进去,再通过记录的ID加入之前的全部队员。】
发布本帖的目的在于寻求更加简单可行的方案

***
*********************************

正解(by铅笔描绘的思念):
  1. $gameParty._actors.splice(插入位置,0,角色ID)   
  2. $gamePlayer.refresh();
  3. $gameMap.requestRefresh();</font>
复制代码



作者: 铅笔描绘的思念    时间: 2017-7-2 15:15
其实对队员的操作通过Game_Interpreter找到
JAVASCRIPT 代码复制
  1. $gameParty.addActor(n);

应该是添加队员
然后找打原文
JAVASCRIPT 代码复制
  1. Game_Party.prototype.addActor = function(actorId) {
  2.     if (!this._actors.contains(actorId)) {
  3.         this._actors.push(actorId);
  4.         $gamePlayer.refresh();
  5.         $gameMap.requestRefresh();
  6.     }
  7. };

然后看的出是往this._actors里push了一个actorId。。然后在游戏里F8呼出控制台输入$gameParty._actors看看是什么东西
出来的是
JAVASCRIPT 代码复制
  1. $gameParty._actors //=>[1,2,3,4]
正好是队伍里各个角色的位置
知道了这个想怎么改怎么改咯可以使用splice()操作
然后操作完就
JAVASCRIPT 代码复制
  1. $gamePlayer.refresh();
  2.         $gameMap.requestRefresh();
刷新下
作者: zy652301    时间: 2017-7-3 11:33
铅笔描绘的思念 发表于 2017-7-2 15:15
其实对队员的操作通过Game_Interpreter找到
$gameParty.addActor(n);[/pre]
应该是添加队员

抱歉OTZ,不会脚本,看不懂。
能举个例子吗?
比如说【把ID为3的杰克插队到1号位】的脚本该怎么写。
作者: 铅笔描绘的思念    时间: 2017-7-3 13:44
zy652301 发表于 2017-7-3 11:33
抱歉OTZ,不会脚本,看不懂。
能举个例子吗?
比如说【把ID为3的杰克插队到1号位】的脚本该怎么写。 ...

JAVASCRIPT 代码复制
  1. $gameParty._actors.splice(1,0,3)
  2. $gamePlayer.refresh();
  3. $gameMap.requestRefresh();

作者: zy652301    时间: 2017-7-3 20:26
铅笔描绘的思念 发表于 2017-7-3 13:44
$gameParty._actors.splice(1,0,3)
$gamePlayer.refresh();
$gameMap.requestRefresh();[/pre]

问题解决,感谢你。




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