Project1

标题: 如何使带有某个状态的队友死亡时游戏不论队友直接结束? [打印本页]

作者: ushiromiya    时间: 2012-5-24 20:37
标题: 如何使带有某个状态的队友死亡时游戏不论队友直接结束?
本帖最后由 ushiromiya 于 2012-5-24 20:58 编辑

我想做这样一个效果,在某个通用技能(就假设是 暴发 吧)使用后会附加这个状态,然后获得大量加成,但这个人物一旦死亡整个游戏就结束,这样的情况是否能做出来呢?dsu_plus_rewardpost_czw
作者: Mic_洛洛    时间: 2012-5-24 21:13
在公共事件里设置:

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


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


‘‘──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

作者: Seraglio_King    时间: 2012-5-25 00:48


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

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

就是这样…………
作者: feizhaodan    时间: 2012-5-25 08:34
  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的那些公共事件因该就没问题了
作者: 怕鼠的猫    时间: 2012-5-25 08:42
简单点,有一个人变身成超人之后,战斗基本上就是他自己事情了。所以在他变身的同时,把别的队友都弄死就行了。
这样,他死了,游戏就结束了!!

把队友弄死听起来有点残忍,换个说话叫做 “合体变身”,看过七龙珠的都明白吧。
作者: 键山雏    时间: 2012-5-25 10:52
本帖最后由 键山雏 于 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)




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