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

Project1

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

[已经解决] 如何使带有某个状态的队友死亡时游戏不论队友直接结束?

[复制链接]

Lv1.梦旅人

梦石
0
星屑
50
在线时间
78 小时
注册时间
2011-9-17
帖子
102
跳转到指定楼层
1
发表于 2012-5-24 20:37:33 | 只看该作者 |只看大图 回帖奖励 |倒序浏览 |阅读模式
本帖最后由 ushiromiya 于 2012-5-24 20:58 编辑

我想做这样一个效果,在某个通用技能(就假设是 暴发 吧)使用后会附加这个状态,然后获得大量加成,但这个人物一旦死亡整个游戏就结束,这样的情况是否能做出来呢?

Lv3.寻梦者

Assassin-K

梦石
0
星屑
3483
在线时间
2281 小时
注册时间
2012-5-23
帖子
4065

贵宾

2
发表于 2012-5-24 21:13:04 | 只看该作者
在公共事件里设置:

用分支条件,先判断一个状态,就是你说的【爆发】,然后再判断是否无法战斗,是就GAMEOVER。
这样不就可以了?


◆ROZONE◆
>洛子又要去流浪地球了……
>如果你看到我在线,又没动静,那只能说明我在挂机……
回复

使用道具 举报

Lv3.寻梦者

虚空人形

梦石
0
星屑
4557
在线时间
2037 小时
注册时间
2011-8-11
帖子
3398

贵宾

3
发表于 2012-5-24 22:07:17 | 只看该作者
虽然没试过,但我有些担心会不会无法战斗时其他状态好像会自动去掉,这样条件会不成立。
所以有另一个想法:


‘‘──hcm于2012-5-24 22:56补充以下内容

我倒是还有一个稍微差一点的,
如果爆发没有回合限制,战斗结束才消去,
就在爆发技能的使用效果上加:
附加爆发状态
公共事件XX

公共事件XX为:如果XXX主角状态为无法战斗,
                            全体队友HP-9999或附加无法战斗状态
’’

未命名2.png (18.09 KB, 下载次数: 27)

未命名2.png

未命名.png (17.4 KB, 下载次数: 23)

未命名.png

点评

hcm
算了,截图无视。  发表于 2012-5-24 22:57
话说键山君有何妙计?  发表于 2012-5-24 22:34
嗯嗯,你比我考虑得更周到的说。。。(突然感觉自己好像好懒,想都懒得想 ==i)  发表于 2012-5-24 22:29
其实这样和2L的公共事件是一样的,会因为状态被自动顶掉而条件不成立  发表于 2012-5-24 22:27
回复

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
50
在线时间
120 小时
注册时间
2011-2-16
帖子
84
4
发表于 2012-5-25 00:48:38 | 只看该作者


需要用到开关配合
这三个不是在一组判断里的,而是分开做3次判断
首先判断是否有爆发状态,有就打开开关
然后判断爆发状态开关是否打开,打开状态下,判断状态是否为战斗不能,是则游戏结束
最后判断是否为非爆发状态,试过是,把开关关闭

我们来检测一下
1、战斗开始时发动了爆发状态
2、根据事件,爆发状态开关被打开了
3、但因为没有死亡,所以第二条判断不成立,事件继续
4、因为爆发状态是打开的,所以开关不关闭
5、战斗继续,角色死亡了
6、事件并行处理,判断是否为爆发状态,不是,所以不执行开关打开(但也不会关闭,所以还是打开的)
7、判断是否开关打开,是,继续判断是否战斗不能,是,所以游戏结束……

就是这样…………

点评

我只是选了公共事件来做而已,实际可以自己修改,无论是调用公共事件,还是直接放在战斗事件中  发表于 2012-5-25 08:24
战斗中公共事件并行无效  发表于 2012-5-25 02:01
回复

使用道具 举报

Lv1.梦旅人

Mr.Gandum

梦石
0
星屑
226
在线时间
2070 小时
注册时间
2007-1-31
帖子
3039

贵宾

5
发表于 2012-5-25 08:34:15 | 只看该作者
  1. #==============================================================================
  2. # ■ Scene_Battle
  3. #------------------------------------------------------------------------------
  4. #  战斗画面
  5. #==============================================================================  

  6. class Scene_Battle < Scene_Base
  7.   #--------------------------------------------------------------------------
  8.   # ● 设置事件
  9.   #--------------------------------------------------------------------------
  10.   def setup_events
  11.     @common_events = parallel_common_events.collect do |common_event|
  12.       unless common_event.name =~/\[nob\]/i
  13.         Game_CommonEvent.new(common_event.id)
  14.       end
  15.     end
  16.   end
  17.   #--------------------------------------------------------------------------
  18.   # ● 获取并行处理的公共事件的数组
  19.   #--------------------------------------------------------------------------
  20.   def parallel_common_events
  21.     $data_common_events.select {|event| event && event.parallel? }
  22.   end
  23.   #--------------------------------------------------------------------------
  24.   # ● 更新画面
  25.   #--------------------------------------------------------------------------
  26.   alias common_event_in_battle_update update
  27.   def update
  28.     update_common_event
  29.     common_event_in_battle_update
  30.   end
  31.   #--------------------------------------------------------------------------
  32.   # ● 更新公共事件
  33.   #--------------------------------------------------------------------------
  34.   def update_common_event
  35.     setup_events unless @common_events
  36.     @common_events.each{ |common_event| common_event.update }
  37.   end
  38. end
复制代码
临时写出来的一个。让公共事件在战斗中也更新,用这个加上LS的那些公共事件因该就没问题了
回复

使用道具 举报

Lv4.逐梦者

梦石
0
星屑
5402
在线时间
2559 小时
注册时间
2011-9-27
帖子
1119

极短23参与开拓者

6
发表于 2012-5-25 08:42:13 | 只看该作者
简单点,有一个人变身成超人之后,战斗基本上就是他自己事情了。所以在他变身的同时,把别的队友都弄死就行了。
这样,他死了,游戏就结束了!!

把队友弄死听起来有点残忍,换个说话叫做 “合体变身”,看过七龙珠的都明白吧。
从平淡走向更平淡。
回复

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
50
在线时间
5 小时
注册时间
2012-5-24
帖子
14
7
发表于 2012-5-25 10:52:59 | 只看该作者
本帖最后由 键山雏 于 2012-5-25 10:53 编辑

其实我觉得只要在增加状态之前判断即可
在Game_Battler脚本中找到(第80行左右)
  1. def add_state(state_id)
复制代码
在它下面一行插入
  1. SceneManager.goto(Scene_Gameover) if state_id == 1&&self.state?(x)
复制代码
(注:x就是【爆发】状态的id)
回复

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2024-5-14 19:56

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

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