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

Project1

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

[已经过期] 如何设定角色自动复活

[复制链接]

Lv1.梦旅人

梦石
0
星屑
50
在线时间
92 小时
注册时间
2010-6-29
帖子
30
跳转到指定楼层
1
发表于 2012-7-7 13:49:07 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
就是战斗中角色死亡一定回合后自动复活
(个人能为方法就是被指定角色死亡后进入其特有死亡状态)

评分

参与人数 1星屑 +1800 收起 理由
hcm + 1800 补回

查看全部评分

Lv1.梦旅人

梦石
0
星屑
50
在线时间
320 小时
注册时间
2011-6-23
帖子
260
2
发表于 2012-7-7 14:10:27 | 只看该作者
那么如果队友全部死亡呢?全灭的情况下还是几回合就复活吗?那不是无敌了?
回复

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
47
在线时间
412 小时
注册时间
2012-6-1
帖子
1021
3
发表于 2012-7-7 14:57:14 | 只看该作者

RTAB有个脚本可以实现这种功能。
  1. # ▼▲▼ XRXS27. 特殊効果 SuperEX「リレイズ」 ▼▲▼
  2. # by シムナフ

  3. #==============================================================================
  4. # □ カスタマイズポイント
  5. #==============================================================================
  6. class Game_Battler
  7.   RERAISE_STATE_NAME            = "自动复活"   # 「自动复活」状态名
  8. end
  9. class Scene_Battle
  10.   RERAISE_STATE_NAME            = "自动复活"   # 「自动复活」状态名
  11.   RERAISE_HP                    =   1          # 「自动复活」复活时的HP
  12.   RERAISE_HP_PERCENT            =   0          # 「自动复活」复活时的HP%
  13.   RERAISE_ANIMATION_ID          =  26          # 「自动复活」复活时的动画ID
  14. end

  15. #=============================================================================
  16. # ◇ リレイズステート by シムナフ
  17. #=============================================================================
  18. class Game_Battler
  19.   #--------------------------------------------------------------------------
  20.   # ● HP の変更
  21.   #--------------------------------------------------------------------------
  22.   def hp=(hp)
  23.     @hp = [[hp, maxhp].min, 0].max
  24.     # 戦闘不能を付加または解除
  25.     for i in 1...$data_states.size
  26.       if $data_states[i].zero_hp
  27.         if self.dead?
  28.           # 追加
  29.           for x in 1...$data_states.size
  30.             # ステート名は変更可。
  31.             if $data_states[x].name[RERAISE_STATE_NAME] != nil
  32.               reraise_id = $data_states[x].id
  33.               break
  34.             end
  35.           end
  36.           # リレイズ復活
  37.           if reraise_id != nil && self.state?(reraise_id)
  38.             self.remove_state(reraise_id)
  39.             @reraised = true
  40.             @reraise_state = 0
  41.             # 戦闘不能マイナスステートに設定されているものを解除
  42.             if $data_states[i].minus_state_set != []
  43.               for j in $data_states[i].minus_state_set
  44.                 remove_state(j)
  45.               end
  46.             end
  47.           elsif
  48.             # ここまで
  49.             add_state(i)
  50.           end
  51.         else
  52.           remove_state(i)
  53.         end
  54.       end
  55.     end
  56.   end
  57. end

  58. class Game_Enemy < Game_Battler
  59.   #--------------------------------------------------------------------------
  60.   # ● オブジェクト初期化
  61.   #--------------------------------------------------------------------------
  62.   alias reraise_initialize initialize
  63.   def initialize(troop_id, member_index)
  64.     reraise_initialize(troop_id, member_index)
  65.     @reraised = false
  66.     @reraise_state = 0
  67.   end
  68. end
  69. class Scene_Battle
  70.   #--------------------------------------------------------------------------
  71.   # ● フレーム更新 (メインフェーズ ステップ 2 : アクション開始)
  72.   #--------------------------------------------------------------------------
  73.   alias reraise_update_phase4_step2 update_phase4_step2
  74.   def update_phase4_step2(battler)
  75.     #リレイズ判定
  76.     next_phase_ok = true
  77.     next_phase_ok = update_reraise_effect(battler)#@active_battler
  78.     if next_phase_ok
  79.       # ステップ 2 へ
  80.       reraise_update_phase4_step2(battler)
  81.     end
  82.   end
  83.   #--------------------------------------------------------------------------
  84.   # ● フレーム更新 (メインフェーズ ステップ 6 : リレイズ表示→リフレッシュ)
  85.   #--------------------------------------------------------------------------
  86.   alias reraise_update_phase4_step6 update_phase4_step6
  87.   def update_phase4_step6(battler)
  88.     next_phase_ok = true
  89.     #リレイズ判定
  90.     for enemy in $game_troop.enemies
  91.       next_phase_ok = update_reraise_effect(enemy)
  92.       if !next_phase_ok
  93.         return
  94.       end
  95.     end
  96.     for actor in $game_party.actors
  97.       next_phase_ok = update_reraise_effect(actor)
  98.       if !next_phase_ok
  99.         return
  100.       end
  101.     end
  102.     reraise_update_phase4_step6(battler)
  103.   end
  104.   #===================================================
  105.   #リレイズエフェクト
  106.   #===================================================
  107.   def update_reraise_effect(battler)
  108.       if battler.reraised  == true
  109.         case battler.reraise_state
  110.         when 0
  111.           battler.reraise_state = 1 # コラプス待ち
  112.           @wait_count = 16
  113.           return false
  114.         when 1
  115.           battler.reraise_state = 2 # 復活アニメーション
  116.           ##IDは好きなアニメーションIDを指定
  117.           battler.animation.push([RERAISE_ANIMATION_ID])
  118.           @wait_count = 8
  119.           return false#
  120.         when 2
  121.           #復活処理
  122.           battler.hp = battler.maxhp * RERAISE_HP_PERCENT / 100 + RERAISE_HP
  123.           battler.reraise_state = 3 #アピアーアニメーション
  124.           @wait_count = 8
  125.           return false#
  126.         when 3
  127.           battler.reraise_state = 0 #終了・通常処理に戻る
  128.           battler.reraised = false  #フラグを初期値へ
  129.           @status_window.refresh
  130.           return true
  131.         end
  132.       else
  133.         return true
  134.       end
  135.   end
  136. end
  137. class Game_Battler
  138.   #--------------------------------------------------------------------------
  139.   # ● 追加公開インスタンス変数
  140.   #--------------------------------------------------------------------------
  141.   attr_accessor :reraise_state
  142.   attr_accessor :reraised                 # リレイズしたかどうか
  143. end
复制代码

评分

参与人数 1星屑 +100 收起 理由
hcm + 100 感谢回答

查看全部评分

这里是新人 明特·布兰马修
脚本盲 事件盲 美工盲
还是色盲ORZ
XP\VX略懂VA无助很抱歉
所以问题什么如果答不好就不要提醒我了
短篇7已经放弃,但是坑在继续补上。所以回答和现身次数少之。
有事烧纸或者留言即可。

还有我不是正太啊ORZ
回复

使用道具 举报

Lv4.逐梦者

梦石
0
星屑
9280
在线时间
2504 小时
注册时间
2011-5-20
帖子
15389

开拓者

4
发表于 2012-7-7 19:15:07 | 只看该作者
明特·布兰马修 发表于 2012-7-7 14:57

RTAB有个脚本可以实现这种功能。

你这个脚本恐怕是不行因为这是为RTAB制作的RMXP默认用了会出错
[img]http://service.t.sina.com.cn/widget/qmd/5339802982/c02e16bd/7.png
回复

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
50
在线时间
20 小时
注册时间
2012-7-7
帖子
41
5
发表于 2012-7-8 02:37:16 | 只看该作者
额...作为新人兼小白我弱弱的说一句..........其实战斗不能是一种状态...而状态页面里貌似有个东西可以设定状态的失效几率...所以..........好吧...实际测试..达到条件时我方死亡角色以生命1自动复活...当然...这个太简单...只是给大家一个思路...退散...
回复

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2025-5-8 02:48

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

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