设为首页收藏本站|繁體中文

Project1

 找回密码
 注册会员
搜索
查看: 1924|回复: 9
打印 上一主题 下一主题

[已经解决] 请问怎么使新加入的队友自动排到队伍最前面

[复制链接]

Lv1.梦旅人

梦石
0
星屑
50
在线时间
19 小时
注册时间
2013-6-4
帖子
15
跳转到指定楼层
1
发表于 2013-6-15 18:14:06 | 只看该作者 |只看大图 回帖奖励 |倒序浏览 |阅读模式

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

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

x
@actors.push(actor_id) 感觉像是由于队友(ID)加入时会排在$data_actors数组的最后面导致的。有没有办法让新加入的队友自动就排到最前面了。打个比方,有个事件主角(队列一号)暂时离队了,之后就加入了第三人。我想要把3号队友直接放在一号队列出怎么办?

点评

不是$data_actors,是$game_party.actors  发表于 2013-6-17 09:01

Lv1.梦旅人

梦石
0
星屑
50
在线时间
62 小时
注册时间
2013-4-11
帖子
114
2
发表于 2013-6-15 19:41:13 | 只看该作者
麻烦点都让他们离队然后再按顺序加入。不费脑子。。

评分

参与人数 1星屑 +75 收起 理由
怪蜀黍 + 75 我很赞同

查看全部评分

回复 支持 反对

使用道具 举报

Lv2.观梦者

梦石
0
星屑
777
在线时间
1270 小时
注册时间
2011-2-14
帖子
5589
3
发表于 2013-6-17 08:06:08 | 只看该作者
自定义了一个新的方法
在事件中调用脚本sk_aa(角色id) 或sk_aa("角色名称")

其中sk_aa("角色名称") 这个用法加入的是最后一个名字与之相同的角色。如果没有这个名字就不会有人加入
sk_aa("薇拉") #加入薇拉
sk_aa("薇999拉") #没有这个人所以什么都不发生
sk_aa(9) #加入9号角色


下面的代码插入到脚本编辑器main前面任意位置
  1. class Game_Party
  2.     def sk_add_actor(id)
  3.       if id.is_a?(Numeric)
  4.         if @actors.size < MAX_MEMBERS and not @actors.include?(id)
  5.           @actors = [id]+@actors
  6.           $game_player.refresh
  7.         end
  8.       elsif id.is_a?(String)
  9.         aid = 0
  10.         ($data_actors.size-1).times{|i|
  11.         aid=i+1 if $game_actors[i+1].name == id
  12.         }
  13.         if @actors.size < MAX_MEMBERS  and aid != 0 and not @actors.include?(aid)
  14.           @actors = [aid]+@actors
  15.           $game_player.refresh
  16.         end
  17.       end
  18.     end
  19.   end
  20. class Game_Interpreter
  21.   def sk_aa(id)
  22.     $game_party.sk_add_actor(id)
  23.   end
  24. end
复制代码

评分

参与人数 1梦石 +1 收起 理由
怪蜀黍 + 1 认可答案

查看全部评分

回复 支持 反对

使用道具 举报

Lv2.观梦者

梦石
0
星屑
280
在线时间
1374 小时
注册时间
2005-10-16
帖子
5113

贵宾

4
发表于 2013-6-17 08:59:08 | 只看该作者
本帖最后由 亿万星辰 于 2013-6-17 09:02 编辑
  1. class Game_Party
  2.   #--------------------------------------------------------------------------
  3.   # ● 队员加入
  4.   #     actor_id : 角色ID
  5.   #     front    : 角色是否加入到队伍排头
  6.   #--------------------------------------------------------------------------
  7.   def add_actor(actor_id, front = false)
  8.     if @actors.size < MAX_MEMBERS and not @actors.include?(actor_id)
  9.       front ? @actors.unshift(actor_id) : @actors.push(actor_id)
  10.       $game_player.refresh
  11.     end
  12.   end
  13. end
复制代码
其实这样重定义一下就好了,替换都没问题。

需要让新加入的角色到排头的话就用事件里的脚本执行
$game_party.add_actor(角色ID, true)
我只个搬答案的
叔叔我已经当爹了~
婚后闪人了……
回复 支持 反对

使用道具 举报

Lv2.观梦者

会吐槽的画师

梦石
0
星屑
782
在线时间
3431 小时
注册时间
2011-6-10
帖子
6535
5
发表于 2013-6-17 11:40:27 | 只看该作者

有装备打造系统吗…………

LZ用我这个事件就好了。

加入一个人,然后全部角色离开再加入,中间判断一下某些隐藏角色。
长名公主玩家群:372588926 攻略娱乐应有尽有
了解更多新RM游戏,游戏制作请加入RPGmaker支援群:113622890
回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
50
在线时间
19 小时
注册时间
2013-6-4
帖子
15
6
 楼主| 发表于 2013-6-29 16:17:26 | 只看该作者
上贺茂润 发表于 2013-6-17 11:40
LZ用我这个事件就好了。

加入一个人,然后全部角色离开再加入,中间判断一下某些隐藏角色。 ...

后来也想到了,经常性更替队友实在麻烦嘛(也想过放公共事件)!当然这是最简单的方法,但不是最简便!
回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
50
在线时间
19 小时
注册时间
2013-6-4
帖子
15
7
 楼主| 发表于 2013-6-29 16:18:29 | 只看该作者
R-零 发表于 2013-6-17 08:06
自定义了一个新的方法
在事件中调用脚本sk_aa(角色id) 或sk_aa("角色名称")

thanks 当做学习了
回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
50
在线时间
19 小时
注册时间
2013-6-4
帖子
15
8
 楼主| 发表于 2013-6-29 16:30:26 | 只看该作者
亿万星辰 发表于 2013-6-17 08:59
其实这样重定义一下就好了,替换都没问题。

需要让新加入的角色到排头的话就用事件里的脚本执行

居然还有unshift这个词可以用啊,翻了下F1居然在最下面,看来还得多仔细看啊
回复 支持 反对

使用道具 举报

头像被屏蔽

Lv1.梦旅人 (禁止发言)

梦石
0
星屑
51
在线时间
4 小时
注册时间
2013-6-29
帖子
7
9
发表于 2013-7-1 17:44:59 | 只看该作者
提示: 作者被禁止或删除 内容自动屏蔽
回复 支持 反对

使用道具 举报

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

本版积分规则

拿上你的纸笔,建造一个属于你的梦想世界,加入吧。
 注册会员
找回密码

站长信箱:[email protected]|手机版|小黑屋|无图版|Project1游戏制作

GMT+8, 2024-12-22 21:05

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表