Project1
标题: 请问如何使新队友“插队”? [打印本页]
作者: zy652301 时间: 2017-7-2 13:40
标题: 请问如何使新队友“插队”?
本帖最后由 zy652301 于 2017-7-3 21:08 编辑
RMMV中以基本方式添加的队友只能显示在队末。
请提供【能在队伍中 任意位置 插入 任意角色】的脚本。
效果举例:
在队伍【安卡诺,本】中插入【菜菜子】在【1号/领队位置】
得出队伍【菜菜子,安卡诺,本】
自己已经总结出,有些麻烦但依然可行的方案。
【记录队员ID并删除插入处后面的全部队员,把新队员加进去,再通过记录的ID加入之前的全部队员。】
发布本帖的目的在于寻求更加简单可行的方案
************************************
正解(by铅笔描绘的思念):
- $gameParty._actors.splice(插入位置,0,角色ID)
- $gamePlayer.refresh();
- $gameMap.requestRefresh();</font>
复制代码
作者: 铅笔描绘的思念 时间: 2017-7-2 15:15
其实对队员的操作通过Game_Interpreter找到
应该是添加队员
然后找打原文
Game_Party.prototype.addActor = function(actorId) {
if (!this._actors.contains(actorId)) {
this._actors.push(actorId);
$gamePlayer.refresh();
$gameMap.requestRefresh();
}
};
Game_Party.prototype.addActor = function(actorId) {
if (!this._actors.contains(actorId)) {
this._actors.push(actorId);
$gamePlayer.refresh();
$gameMap.requestRefresh();
}
};
然后看的出是往this._actors里push了一个actorId。。然后在游戏里F8呼出控制台输入$gameParty._actors看看是什么东西
出来的是$gameParty._actors //=>[1,2,3,4]
$gameParty._actors //=>[1,2,3,4]
正好是队伍里各个角色的位置
知道了这个想怎么改怎么改咯可以使用splice()操作
然后操作完就$gamePlayer.refresh();
$gameMap.requestRefresh();
$gamePlayer.refresh();
$gameMap.requestRefresh();
刷新下
作者: zy652301 时间: 2017-7-3 11:33
抱歉OTZ,不会脚本,看不懂。
能举个例子吗?
比如说【把ID为3的杰克插队到1号位】的脚本该怎么写。
作者: 铅笔描绘的思念 时间: 2017-7-3 13:44
$gameParty._actors.splice(1,0,3)
$gamePlayer.refresh();
$gameMap.requestRefresh();
$gameParty._actors.splice(1,0,3)
$gamePlayer.refresh();
$gameMap.requestRefresh();
作者: zy652301 时间: 2017-7-3 20:26
问题解决,感谢你。
欢迎光临 Project1 (https://rpg.blue/) |
Powered by Discuz! X3.1 |