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

Project1

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

[已经过期] 【深夜讨论】如何让角色不加入战斗

[复制链接]

Lv1.梦旅人

梦石
0
星屑
80
在线时间
216 小时
注册时间
2011-9-17
帖子
151
跳转到指定楼层
1
发表于 2016-6-22 00:07:25 | 只看该作者 |只看大图 回帖奖励 |倒序浏览 |阅读模式

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

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

x
本帖最后由 工藤~新一じ 于 2016-6-22 12:27 编辑

如题,每到晚上就会构思很多小功能。
于是,我想到要实现一个效果  ——  空战。
假如玩家在空中,进入战斗的话按道理来说,不具备飞行能力的角色是不加入战斗的。
我就在想,实现这个功能,要怎么做。
步骤如下:
①进入战斗时,用变量记录1、2、3、4号角色的id。
②让不具备飞行能力的角色全部离开队伍。
③战斗结束后,让所有角色离开队伍,并依次让进入战斗时,记录的1号角色、2号角色、3号角色、4号角色加入队伍。

对于不懂脚本的我来说,这是最笨的办法。
但这样做有瑕疵,情况如下:
楼主用了角色跟随脚本。
设队伍中角色有2位,1号和2号,1号不具备飞行能力,2号具备。
跟随的角色是1号角色。
在执行①的时候没有问题
执行②的时候,1号角色会离开队伍,此时,2号角色就变成了跟随的角色。
战斗结束后,执行③,跟随的角色又改成了1号角色。

楼主还是个渣渣,确实想不出办法解决~求方法!

Lv1.梦旅人

梦石
0
星屑
80
在线时间
216 小时
注册时间
2011-9-17
帖子
151
2
 楼主| 发表于 2016-6-22 00:22:58 | 只看该作者

点评

不小心连帖,论坛没有删除功能,揪心~  发表于 2016-6-22 00:37
回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
80
在线时间
216 小时
注册时间
2011-9-17
帖子
151
3
 楼主| 发表于 2016-6-22 00:23:33 | 只看该作者
找到了08年的帖子,似乎有人解决了这个问题。但是当年的链接已经打不开了
https://rpg.blue/forum.php?mod=viewthread&tid=89741
回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
80
在线时间
216 小时
注册时间
2011-9-17
帖子
151
4
 楼主| 发表于 2016-6-22 00:26:54 | 只看该作者
也找到了另外一个脚本,这个脚本可以实现单个在队伍的角色不参战
https://rpg.blue/forum.php?mod=viewthread&tid=217048
回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
80
在线时间
216 小时
注册时间
2011-9-17
帖子
151
5
 楼主| 发表于 2016-6-22 01:52:51 | 只看该作者
在论坛又找到了一份脚本,新建了工程测试,会报错

  1. #======================================================
  2. # 某些角色不参与战斗,柳柳@66rpg.com
  3. #======================================================
  4. class Scene_Battle
  5.   #====================================================
  6.   # 不参与战斗的编号写在这里
  7.   #====================================================
  8.     I_AM_NPC = [4, 5, 3]
  9.   # 不参与战斗的角色,进入战斗的时候临时轰走
  10.   alias o_start start unless $@
  11.   def start
  12.     @no_fight = []
  13.     for aid in I_AM_NPC
  14.       if $game_party.members.include?($game_actors[aid])
  15.         @no_fight.push(aid)
  16.         $game_party.remove_actor(aid)
  17.       end
  18.     end
  19.     o_start
  20.   end
  21.   
  22.   # 被轰走的角色,结束战斗的时候叫回来
  23.   alias o_terminate terminate unless $@
  24.   def terminate
  25.     o_terminate
  26.     for aid in @no_fight
  27.       $game_party.add_actor(aid)
  28.     end
  29.   end
  30.   
  31. end
复制代码

QQ截图20160622015237.png (21.23 KB, 下载次数: 3)

QQ截图20160622015237.png
回复 支持 反对

使用道具 举报

Lv1.梦旅人

路人党员

梦石
0
星屑
51
在线时间
2276 小时
注册时间
2010-12-30
帖子
3225
6
发表于 2016-6-22 15:51:41 | 只看该作者
全员离队后先让二号入队不久行了?
本人擅长XP,如果有脚本或者Ruby方面的问题欢迎发电邮到[email protected]咨询,本人很少检查电邮所以不一定会及时回复,本人不会直接出手解决问题只会提供一个方向,所以谢绝伸手党
回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
80
在线时间
216 小时
注册时间
2011-9-17
帖子
151
7
 楼主| 发表于 2016-6-22 18:09:02 | 只看该作者
英顺的马甲 发表于 2016-6-22 15:51
全员离队后先让二号入队不久行了?

可以啊,但是跟随的人物会改变。
你觉得怎么解决这个问题好?
回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
80
在线时间
101 小时
注册时间
2011-1-29
帖子
23
8
发表于 2016-6-23 09:25:15 | 只看该作者
恕在下有点不懂,因为执行②的时候,应该已经处于战斗时,那么跟随系统的问题何在?

点评

②是在事件的战斗处理前执行,会看到跟随队员发生改变  发表于 2016-6-23 23:43
回复 支持 反对

使用道具 举报

Lv1.梦旅人

路人党员

梦石
0
星屑
51
在线时间
2276 小时
注册时间
2010-12-30
帖子
3225
9
发表于 2016-6-23 10:45:58 | 只看该作者
  1. $__ORG_SBATTLE = Scene_Battle.clone unless $__ORG_SBATTLE
  2. class Scene_Battle < $__ORG_SBATTLE
  3.   def main
  4.     @orig_actors = $game_party.actors.clone
  5.     # 请在下面区域内进行调整
  6.     #====================================================
  7.     if $game_switches[1] # 设定一个开关作为条件啥的
  8.       $game_party.actors.keep_if do |a|
  9.         [1,2,4,5].include?(a.id) # 需要保留的角色的判定在此
  10.       end
  11.     end
  12.     #====================================================
  13.     super
  14.     $game_party.actors.clear
  15.     $game_party.actors << @orig_actors
  16.     $game_party.actors.flatten!
  17.   end
  18. end
复制代码
用这个脚本试试?

点评

谢啦~凌晨的小构思真的有人提供脚本( ▼-▼ )感动到流泪。我测试看看  发表于 2016-6-23 23:45
本人擅长XP,如果有脚本或者Ruby方面的问题欢迎发电邮到[email protected]咨询,本人很少检查电邮所以不一定会及时回复,本人不会直接出手解决问题只会提供一个方向,所以谢绝伸手党
回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
80
在线时间
216 小时
注册时间
2011-9-17
帖子
151
10
 楼主| 发表于 2016-6-23 23:51:16 | 只看该作者
英顺的马甲 发表于 2016-6-23 10:45
用这个脚本试试?

报错啦。
这是前天晚上的小构思,其实我现在已经放弃这个想法了~设置的工作量有点大,而且效果也不太好~

报错.png (24.37 KB, 下载次数: 4)

报错.png

点评

那就把keep_if改成delete_if吧,那样的话就变成了需要排除的角色判定,旧版本的ruby就是蛋疼  发表于 2016-6-24 00:45
回复 支持 反对

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2024-4-29 14:33

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

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