Project1

标题: 请问怎么使新加入的队友自动排到队伍最前面 [打印本页]

作者: ahui    时间: 2013-6-15 18:14
标题: 请问怎么使新加入的队友自动排到队伍最前面
@actors.push(actor_id) 感觉像是由于队友(ID)加入时会排在$data_actors数组的最后面导致的。有没有办法让新加入的队友自动就排到最前面了。打个比方,有个事件主角(队列一号)暂时离队了,之后就加入了第三人。我想要把3号队友直接放在一号队列出怎么办?
作者: 咪了个喵的    时间: 2013-6-15 19:41
麻烦点都让他们离队然后再按顺序加入。不费脑子。。
作者: R-零    时间: 2013-6-17 08:06
自定义了一个新的方法
在事件中调用脚本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
复制代码

作者: 亿万星辰    时间: 2013-6-17 08:59
本帖最后由 亿万星辰 于 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)

作者: 上贺茂润    时间: 2013-6-17 11:40
标题: 有装备打造系统吗…………
LZ用我这个事件就好了。

加入一个人,然后全部角色离开再加入,中间判断一下某些隐藏角色。
作者: ahui    时间: 2013-6-29 16:17
上贺茂润 发表于 2013-6-17 11:40
LZ用我这个事件就好了。

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

后来也想到了,经常性更替队友实在麻烦嘛(也想过放公共事件)!当然这是最简单的方法,但不是最简便!
作者: ahui    时间: 2013-6-29 16:18
R-零 发表于 2013-6-17 08:06
自定义了一个新的方法
在事件中调用脚本sk_aa(角色id) 或sk_aa("角色名称")

thanks 当做学习了
作者: ahui    时间: 2013-6-29 16:30
亿万星辰 发表于 2013-6-17 08:59
其实这样重定义一下就好了,替换都没问题。

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

居然还有unshift这个词可以用啊,翻了下F1居然在最下面,看来还得多仔细看啊
作者: my88058723    时间: 2013-7-1 17:44
提示: 作者被禁止或删除 内容自动屏蔽




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