查看: 3136|回复: 4

[已经解决] 请问如何使新队友“插队”?

[复制链接]
梦石
0
星屑
429
在线时间
175 小时
注册时间
2013-11-2
回帖
83
发表于 2017-7-2 13:40:59 | 显示全部楼层 |阅读模式

加入我们,或者,欢迎回来。

您需要 登录 才可以下载或查看,没有账号?注册会员

×
本帖最后由 zy652301 于 2017-7-3 21:08 编辑

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

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

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

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

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


搜索是一件比发帖容易的事,因此我绝对是搜不到满意答案才来发帖的。
梦石
0
星屑
2306
在线时间
1010 小时
注册时间
2012-4-30
回帖
1455

开拓者

发表于 2017-7-2 15:15:29 | 显示全部楼层
其实对队员的操作通过Game_Interpreter找到
[pre lang="javascript"]$gameParty.addActor(n);[/pre]
应该是添加队员
然后找打原文
[pre lang="javascript"]Game_Party.prototype.addActor = function(actorId) {
    if (!this._actors.contains(actorId)) {
        this._actors.push(actorId);
        $gamePlayer.refresh();
        $gameMap.requestRefresh();
    }
};[/pre]
然后看的出是往this._actors里push了一个actorId。。然后在游戏里F8呼出控制台输入$gameParty._actors看看是什么东西
出来的是[pre lang="javascript"]$gameParty._actors //=>[1,2,3,4][/pre]正好是队伍里各个角色的位置
知道了这个想怎么改怎么改咯可以使用splice()操作
然后操作完就[pre lang="javascript"]$gamePlayer.refresh();
        $gameMap.requestRefresh();[/pre]刷新下
回复

使用道具 举报

梦石
0
星屑
429
在线时间
175 小时
注册时间
2013-11-2
回帖
83
 楼主| 发表于 2017-7-3 11:33:09 | 显示全部楼层
铅笔描绘的思念 发表于 2017-7-2 15:15
其实对队员的操作通过Game_Interpreter找到
$gameParty.addActor(n);[/pre]
应该是添加队员

抱歉OTZ,不会脚本,看不懂。
能举个例子吗?
比如说【把ID为3的杰克插队到1号位】的脚本该怎么写。
搜索是一件比发帖容易的事,因此我绝对是搜不到满意答案才来发帖的。
回复

使用道具 举报

梦石
0
星屑
2306
在线时间
1010 小时
注册时间
2012-4-30
回帖
1455

开拓者

发表于 2017-7-3 13:44:56 | 显示全部楼层
zy652301 发表于 2017-7-3 11:33
抱歉OTZ,不会脚本,看不懂。
能举个例子吗?
比如说【把ID为3的杰克插队到1号位】的脚本该怎么写。 ...

[pre lang="javascript"]$gameParty._actors.splice(1,0,3)
$gamePlayer.refresh();
$gameMap.requestRefresh();[/pre]
回复

使用道具 举报

梦石
0
星屑
429
在线时间
175 小时
注册时间
2013-11-2
回帖
83
 楼主| 发表于 2017-7-3 20:26:37 | 显示全部楼层
铅笔描绘的思念 发表于 2017-7-3 13:44
$gameParty._actors.splice(1,0,3)
$gamePlayer.refresh();
$gameMap.requestRefresh();[/pre]

问题解决,感谢你。
搜索是一件比发帖容易的事,因此我绝对是搜不到满意答案才来发帖的。
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册会员

本版积分规则

Powered by Discuz! X5.0 © 2001-2026 Discuz! Team.

在本版发帖返回顶部