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

Project1

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

关于龙皇兄的待机人物替补出场

 关闭 [复制链接]

Lv1.梦旅人

梦石
0
星屑
50
在线时间
58 小时
注册时间
2007-8-10
帖子
284
跳转到指定楼层
1
发表于 2008-12-9 04:15:59 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

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

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

x
可不可以实现替补出场后不改变菜单中的人物顺序 (无论如何不想让第一个脚色更改位置)
或者其他方法也行
比如如何用事件脚本更改角色排列顺序等等  谢谢了
  1. #==============================================================================
  2. # ■ 战斗人物死亡后待机人物替补出场
  3. #
  4. # §§  注意:本版本只適合 => RTAB战斗系统
  5. #------------------------------------------------------------------------------
  6. # 作者:TERENCE (龙皇)
  7. #
  8. # 本脚本请配合:自定义战斗、待机人数,附赠菜单界面
  9. #  http://rpg.blue/web/htm/news101.htm
  10. #
  11. # 战斗本脚本请配合:RTAB战斗系统原生版 Ver1.16
  12. #  http://rpg.blue/web/htm/news49.htm
  13. #==============================================================================


  14. #==============================================================================
  15. # ■ Game_Party
  16. #------------------------------------------------------------------------------
  17. #  追加後補判定方法。
  18. #==============================================================================

  19. class Game_Party
  20.   #--------------------------------------------------------------------------
  21.   # ● 後補判定
  22.   #--------------------------------------------------------------------------
  23.   def replacement_need?
  24.     # 同伴中無人 HP 在 0 以上
  25.     for actor in @actors
  26.       if actor.rest_hp > 0
  27.         return false
  28.       end
  29.     end
  30.     # 後補
  31.     return true
  32.   end
  33. end

  34. #==============================================================================
  35. # ■ Scene_Battle
  36. #------------------------------------------------------------------------------
  37. #  追加後補動作。
  38. #==============================================================================
  39. class Scene_Battle
  40.   alias replacement_judge judge
  41.   def judge
  42.     # 判斷战斗人物死亡后是否使待机人物替补出场
  43.     if $game_party.replacement_need?
  44.       # 待命成員復帰
  45.       $game_party.actors[$game_party.actors.size,0] = $game_party.backword_actors
  46.       $game_party.backword_actors.clear
  47.       #--------------------------------------------------------------------------
  48.       # ● 泡沫式排序法
  49.       #--------------------------------------------------------------------------
  50.       for i in 1..$game_party.actors.size
  51.         for j in 1..$game_party.actors.size
  52.             if $game_party.actors[i-1].hp > $game_party.actors[j-1].hp
  53.               temp = $game_party.actors[i-1]
  54.               $game_party.actors[i-1] = $game_party.actors[j-1]
  55.               $game_party.actors[j-1] = temp
  56.             end
  57.         end
  58.       end
  59.       atb_setup
  60.       @status_window.refresh
  61.       # 待命成員退避
  62.       $game_party.backword_actors[0,0] = $game_party.actors[FRONT_MEMBER_LIMIT, BACKWARD_MEMBER_LIMIT]
  63.       $game_party.actors[FRONT_MEMBER_LIMIT, BACKWARD_MEMBER_LIMIT] = nil
  64.       $game_party.actors.compact!
  65.     end
  66.     replacement_judge   
  67.   end
  68. end
复制代码

此贴于 2008-12-9 11:05:03 被版主天圣的马甲提醒,请楼主看到后对本贴做出回应。
此贴于 2008-12-9 16:36:03 被版主darkten提醒,请楼主看到后对本贴做出回应。
版务信息:本贴由楼主自主结贴~

Lv1.梦旅人

龙皇

梦石
0
星屑
50
在线时间
83 小时
注册时间
2007-8-8
帖子
2956
2
发表于 2008-12-9 05:33:06 | 只看该作者
以下引用卓越大白痴于2008-12-8 20:15:59的发言:  
可不可以实现替补出场后不改变菜单中的人物顺序 (无论如何不想让第一个脚色更改位置)
或者其他方法也行
比如如何用事件脚本更改角色排列顺序等等  谢谢了

还是用脚本修改比较好.....先給思路

泡沫式还原排序法
队伍在泡沫式排序前,
先把队伍顺序数字按順序一一存在某阵列中( number=...),
再把此阵列作以HP大小作泡沫式排序,

战斗胜利或逃走实在利用.....
刚刚被泡沫排序用乱阵列中的顺序数字,
再做一次角色排列泡沫排序.....就还原了。。。

(有空我會試試>_<)

                签名图来自:無限のファンタジア
                 我的RMXP专题空间--龙使传说
回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
50
在线时间
58 小时
注册时间
2007-8-10
帖子
284
3
 楼主| 发表于 2008-12-9 05:47:32 | 只看该作者
谢谢 龙皇兄

我的水平还没只有小虾米的境界,还需要exp 10000000才能升小强(苦啊~~~~~~)
大侠们表笑我 . . .
                                召唤大侠      求解谢谢
回复 支持 反对

使用道具 举报

Lv1.梦旅人

龙皇

梦石
0
星屑
50
在线时间
83 小时
注册时间
2007-8-8
帖子
2956
4
发表于 2008-12-9 07:49:32 | 只看该作者
以下引用卓越大白痴于2008-12-8 21:47:32的发言:

谢谢 龙皇兄

我的水平还没只有小虾米的境界,还需要exp 10000000才能升小强(苦啊~~~~~~)
大侠们表笑我 . . .
                               召唤大侠      求解谢谢

修改完畢....LZ試試!!
替換我之前即可
P.S. RTAB版
#==============================================================================
# ■ Game_Party
#------------------------------------------------------------------------------
#  追加後補判定方法。
#==============================================================================

class Game_Party
  #--------------------------------------------------------------------------
  # ● 後補判定
  #--------------------------------------------------------------------------
  def replacement_need?
    # 同伴中無人 HP 在 0 以上
    for actor in @actors
      if actor.rest_hp > 0
        return false
      end
    end
    # 後補
    return true
  end
end

#==============================================================================
# ■ Scene_Battle
#------------------------------------------------------------------------------
#  追加後補動作。
#==============================================================================
class Scene_Battle
  alias replacement_judge judge
  def judge
    # 判斷战斗人物死亡后是否使待机人物替补出场
    if $game_party.replacement_need?
      # 待命成員復帰
      $game_party.actors[$game_party.actors.size,0] = $game_party.backword_actors
      $game_party.backword_actors.clear
      #--------------------------------------------------------------------------
      # ● 泡沫式排序法
      #--------------------------------------------------------------------------
      for i in 1..$game_party.actors.size
        for j in 1..$game_party.actors.size
            if $game_party.actors[i-1].hp > $game_party.actors[j-1].hp
              temp = $game_party.actors[i-1]
              $game_party.actors[i-1] = $game_party.actors[j-1]
              $game_party.actors[j-1] = temp
              temp = @rank
              @rank = @rank[j]
              @rank[j] = temp
            end
        end
      end
      atb_setup
      @status_window.refresh
      # 待命成員退避
      $game_party.backword_actors[0,0] = $game_party.actors[FRONT_MEMBER_LIMIT, BACKWARD_MEMBER_LIMIT]
      $game_party.actors[FRONT_MEMBER_LIMIT, BACKWARD_MEMBER_LIMIT] = nil
      $game_party.actors.compact!
    end
    replacement_judge   
  end
  #--------------------------------------------------------------------------
  # ● 还原泡沫式排序法
  #--------------------------------------------------------------------------
  alias ranking_main main
  def main
    # 存取队伍顺序数字
    @rank = []
    for i in 1..$game_party.actors.size
      @rank = i
    end   
    # メイン処理
    ranking_main
    # 还原排序
    for i in 1..$game_party.actors.size
      for j in 1..$game_party.actors.size
          if @rank < @rank[j]
            temp = $game_party.actors[i-1]
            $game_party.actors[i-1] = $game_party.actors[j-1]
            $game_party.actors[j-1] = temp
            temp = @rank
            @rank = @rank[j]
            @rank[j] = temp
          end
      end
    end
  end
end

注意:
XRXS26. 人物扩张系统 ver..05 要先放前面
其后再放我這個修改過的待机人物替补出场
↓脚本排序如下↓
◎人物待机扩张系统◎
◎待机人物替補出場◎
系统信息:本贴由楼主认可为正确答案,66RPG感谢您的热情解答~

                签名图来自:無限のファンタジア
                 我的RMXP专题空间--龙使传说
回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
50
在线时间
58 小时
注册时间
2007-8-10
帖子
284
5
 楼主| 发表于 2008-12-10 04:38:18 | 只看该作者
太感谢了 小弟拜服 龙兄神威 天下无双
回复 支持 反对

使用道具 举报

Lv1.梦旅人

龙皇

梦石
0
星屑
50
在线时间
83 小时
注册时间
2007-8-8
帖子
2956
6
发表于 2008-12-10 05:28:23 | 只看该作者
以下引用卓越大白痴于2008-12-9 20:38:18的发言:
太感谢了 小弟拜服 龙兄神威 天下无双

没那么夸张啦!!


只不过学过C语言課程中的资料结构
有学过资料排序的方法,用在RUBY上而已(学以致用罢了!)


这种排序法只是其中最常用的一种而已......

P.S.只要LZ不要养成伸手党的习惯就好了...呵呵!

                签名图来自:無限のファンタジア
                 我的RMXP专题空间--龙使传说
回复 支持 反对

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2025-1-20 19:22

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

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