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

Project1

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

怎么改变战斗模式??????

 关闭 [复制链接]
头像被屏蔽

Lv1.梦旅人 (禁止发言)

梦石
0
星屑
50
在线时间
0 小时
注册时间
2008-1-30
帖子
13
跳转到指定楼层
1
发表于 2008-1-30 21:19:53 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
提示: 作者被禁止或删除 内容自动屏蔽
签名被屏蔽

Lv3.寻梦者 (暗夜天使)

名侦探小柯

梦石
0
星屑
3299
在线时间
3619 小时
注册时间
2006-9-6
帖子
37400

开拓者贵宾第3届短篇游戏大赛主流游戏组亚军第5届短篇游戏比赛亚军

2
发表于 2008-1-30 21:21:06 | 只看该作者
改脚本……
回复 支持 反对

使用道具 举报

头像被屏蔽

Lv1.梦旅人 (禁止发言)

梦石
0
星屑
50
在线时间
0 小时
注册时间
2008-1-30
帖子
13
3
 楼主| 发表于 2008-1-30 21:24:44 | 只看该作者
提示: 作者被禁止或删除 内容自动屏蔽
签名被屏蔽
回复 支持 反对

使用道具 举报

头像被屏蔽

Lv1.梦旅人 (禁止发言)

梦石
0
星屑
50
在线时间
0 小时
注册时间
2008-1-23
帖子
152
4
发表于 2008-1-30 21:25:38 | 只看该作者
提示: 作者被禁止或删除 内容自动屏蔽
签名被屏蔽
回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
50
在线时间
17 小时
注册时间
2007-12-15
帖子
5
5
发表于 2008-1-30 21:27:15 | 只看该作者
修改脚本里的人物坐标位置
回复 支持 反对

使用道具 举报

Lv3.寻梦者 (暗夜天使)

名侦探小柯

梦石
0
星屑
3299
在线时间
3619 小时
注册时间
2006-9-6
帖子
37400

开拓者贵宾第3届短篇游戏大赛主流游戏组亚军第5届短篇游戏比赛亚军

6
发表于 2008-1-30 21:30:09 | 只看该作者
主站有一些脚本……

随便帮你找了一个:
  1. #==============================================================================
  2. # ++ 积极时间战斗 ver. 2.56 ++
  3. #  Script by 帕拉狗(パラ犬)
  4. #  
  5. #     http://para.j-mx.com/
  6. #
  7. ###############################################################################
  8. #     *********             翻译+强化+改进:       ***********                 #
  9. #                             忧郁的涟漪                                      #
  10. #                                                                             #
  11. #在日站上找到的脚本,本来打算全文翻译...不过日文能力有限...放弃了..残念....    #
  12. #==============================================================================

  13. module PARA_CTB
  14.   
  15.   # 当一人CP槽填满的时候,CP是否不累积(默认为false,如果希望一个CP满了后其他人CP
  16.   # 槽进行暂时的等待,改成true)
  17.   COMMAND_WAIT = false
  18.   # 是否等待攻击结束以后才可以行动?默认是不等待(true)
  19.   SELECT_WAIT = true
  20.   # 在演示攻击动画的时候是否停止CP槽的累加,默认的false不停止
  21.   ANIMATION_WAIT = false
  22.   
  23.   # CP槽的填充速度(数字越大填充越快,调到999的话....就光攻击吧,连等都不用等.)
  24.   BATTLE_SPEED = 4

  25.   # 队员人数,多了显示的多,适合很多有多人参加战斗的游戏~
  26.   PARTY_SIZE = 4
  27.   
  28.   # 各项活动时减少的CT值(100为全部)
  29.   ACT_ATTACK_CT = 100   # 攻击时候消耗的CT值
  30.   ACT_GUARD_CT = 100    # 防御
  31.   ACT_ESCAPE_CT = 100   # 逃走失败
  32.   ACT_SKILL_CT = 100    # 使用特技
  33.   ACT_ITEM_CT = 100     # 使用物品
  34.   
  35.   # 逃跑失败的时候显示的字样
  36.   UNESCAPE_MES = "逃跑失败"

  37.   # 当CT槽满了的时候发出的效果音
  38.   FULL_CT_SE = "015-Jump01"
  39.   # 効果音的响度
  40.   FULL_CT_SE_VOL = 80

  41.   # CT槽填满的时候人物发生的颜色变化(括号里对应红,绿,蓝)
  42.   FULL_CT_COLOR = Tone.new(120,0,0)
  43.   
  44.   
  45.   # 各种槽的渐变颜色
  46.   # HP槽左边的颜色
  47.   HP_COLOR_LEFT = Color.new(128, 0, 0, 255)
  48.   # HP槽右边的颜色
  49.   HP_COLOR_RIGHT= Color.new(255, 0, 0, 255)
  50.   # SP槽左边的颜色
  51.   SP_COLOR_LEFT = Color.new(0, 0, 128, 255)
  52.   # SP槽右边的颜色
  53.   SP_COLOR_RIGHT= Color.new(0, 0, 255, 255)
  54.   # CT槽左边的颜色
  55.   COLOR_LEFT = Color.new(128, 128, 64, 255)
  56.   # CT槽右边的颜色
  57.   COLOR_RIGHT= Color.new(255, 255, 128, 255)
  58.   # CT槽集满时候的颜色
  59.   COLOR_FULL = Color.new(255, 225, 128, 255)
  60.   
  61.   # 各种条边框的颜色
  62.   FRAME_COLOR = Color.new(192, 192, 192, 255)
  63.   # 表范围的粗
  64.   FRAME_BORDER = 1
  65.   # 各种条边框的底色
  66.   BACK_COLOR = Color.new(128, 128, 128, 128)

  67.   # 角色名称的字号(数字越大字越大)
  68.   NAME_FONT_SIZE = 16
  69.   # HP/SP的字号
  70.   HPSP_FONT_SIZE = 18
  71.   # 敌人名称的字号
  72.   ENEMY_FONT_SIZE = 16
  73.   # 是否显示对大HP/MP( 显示true / 不显示false )
  74.   MAX_DRAW = false

  75.   # 是否进行敌人缩写(例如有5个幽灵的时候不分别显示5个幽灵的名字而是只显示一个)
  76.   # 例子:原本显示为:
  77.   #      幽灵
  78.   #      幽灵
  79.   # 改了以后显示为:
  80.   #      幽灵 2
  81.   ENEMY_GROUPING = false

  82.   # 在敌人窗口中显示的东西( 0:只显示名字 / 1:显示HP / 2:显示CT )
  83.   ENEMY_DRAWING_MATER = 0
  84.   
  85.   # actor的帮助窗口表示HP/SP量规( true / false )
  86.   HELP_DRAWING_MATER_ACTOR = true
  87.   # 是否在选择攻击对象的时候显示敌人的HP/MP和状态(默认为显示(true))
  88.   HELP_DRAWING_MATER_ENEMY = false
  89.   
  90.   # 是否在一个地方强制显示攻击对话框(攻击框就显示在一个地方,默认为true(是))
  91.   WINDOWPOS_CHANGE = true
  92.   WINDOWPOS_X = 100   # X坐标
  93.   WINDOWPOS_Y = 320   # Y坐标

  94.   # 战斗窗口的不透明度,数字越高透明度越差
  95.   WINDOW_OPACITY = 120
  96.   
  97.   # CT槽的增长间隔,越小越自然,大了大话..好像是在移动图块...
  98.   CT_SKIP = 2

  99. end


  100. #==============================================================================
  101. # ■ Scene_Battle
  102. #==============================================================================

  103. class Scene_Battle

  104.   #--------------------------------------------------------------------------
  105.   # ○ CT的计算
  106.   #--------------------------------------------------------------------------
  107.   def update_ct
  108.     # 在计算提高被许可的时候
  109.     if @countup
  110.       for actor in $game_party.actors
  111.         # 是否能活动
  112.         if actor.movable? == false and actor.ct_visible and @phase4_step != 5
  113.           # 用看不见状态计算,并且有提高
  114.           actor.ct_visible = false
  115.           actor.countup = true
  116.           actor.full_ct = false
  117.         elsif actor.movable? and actor.ct_visible == false
  118.           # 解除看不见计算提高
  119.           clear_ct(actor)
  120.           actor.ct_visible = true
  121.         end
  122.         # アクターの入れ替えに対応
  123.         if actor.max_ct == 0
  124.           actor.max_ct = @max_ct
  125.         end
  126.         # アクターのカウントアップ
  127.         if actor.countup
  128.           # CTがmaxになっており、コマンド入力待ちアクターに含まれない
  129.           if actor.now_ct >= @max_ct and !(@pre_action_battlers.include?(actor))
  130.             # コマンド入力待ちアクターに追加
  131.             @pre_action_battlers.push(actor)
  132.             @action_count += 1
  133.             # 効果音を鳴らす
  134.             if PARA_CTB::FULL_CT_SE != "" and actor.ct_visible
  135.               Audio.se_play("Audio/SE/" + PARA_CTB::FULL_CT_SE,PARA_CTB::FULL_CT_SE_VOL)
  136.             end
  137.             # それ以上カウントアップしない
  138.             actor.countup = false
  139.             actor.full_ct = true
  140.           else
  141.             # カウントアップ
  142.             actor.make_action_speed
  143.             ct_skip = PARA_CTB::CT_SKIP != 0 ? PARA_CTB::CT_SKIP : 1
  144.             actor.now_ct += actor.current_action.speed * PARA_CTB::BATTLE_SPEED * ct_skip
  145.           end
  146.         end
  147.       end
  148.       for enemy in $game_troop.enemies
  149.         # 行動できるか
  150.         if enemy.movable? == false and enemy.ct_visible and @phase4_step == 5
  151.           # 不可視状態でカウントアップ
  152.           enemy.ct_visible = false
  153.           enemy.countup = true
  154.           enemy.full_ct = false
  155.         elsif enemy.movable? and enemy.ct_visible == false
  156.           # 不可視カウントアップを解除
  157.           clear_ct(enemy)
  158.           enemy.ct_visible = true
  159.         end
  160.         # エネミーのカウントアップ
  161.         if enemy.countup
  162.           # CTがmaxになっており、行動待ちエネミーに含まれない
  163.           if enemy.now_ct >= @max_ct and ! @pre_action_battlers.include?(enemy)
  164.             # 行動待ちエネミーに追加
  165.             @pre_action_battlers.push(enemy)
  166.             @action_count += 1
  167.             # それ以上カウントアップしない
  168.             enemy.countup = false
  169.             enemy.full_ct = true
  170.           else
  171.             # カウントアップ
  172.             enemy.make_action_speed
  173.             enemy.now_ct += enemy.current_action.speed * PARA_CTB::BATTLE_SPEED
  174.           end
  175.         end
  176.       end
  177.       # CTゲージを再描画
  178.       @status_window.refresh_ct
  179.       @status_window2.refresh_ct
  180.     end
  181.   end
  182.   #--------------------------------------------------------------------------
  183.   # ○ バトラーのCTを0に
  184.   #--------------------------------------------------------------------------
  185.   def clear_ct(battler)
  186.     battler.countup = true
  187.     battler.now_ct = 0
  188.     battler.full_ct = false
  189.   end
  190.   #--------------------------------------------------------------------------
  191.   # ○ バトラーのCTを任意のパーセンテージに
  192.   #--------------------------------------------------------------------------
  193.   def declease_ct(battler,percent)
  194.     battler.countup = true
  195.     battler.now_ct = battler.now_ct * percent / 100
  196.     battler.full_ct = false
  197.   end
  198.   #--------------------------------------------------------------------------
  199.   # ○ CTの初期化
  200.   #--------------------------------------------------------------------------
  201.   def initialize_ct
  202.     # CTの基準値を決定
  203.     max_ct
  204.     for battler in $game_party.actors + $game_troop.enemies
  205.       if battler.movable?
  206.         n = $game_party.actors.size + $game_troop.enemies.size
  207.         # 戦闘開始時にある程度のCTを溜めておく
  208.         battler.now_ct = battler.agi * 60 * n
  209.         battler.ct_visible = true
  210.       else
  211.         clear_ct(battler)
  212.         battler.ct_visible = false
  213.       end
  214.       battler.countup = true
  215.       battler.full_ct = false
  216.       battler.max_ct = @max_ct
  217.     end
  218.   end
  219.   #--------------------------------------------------------------------------
  220.   # ○ バトラー全員の素早さからCTの基準値を決定
  221.   #--------------------------------------------------------------------------
  222.   def max_ct
  223.     for battler in $game_party.actors + $game_troop.enemies
  224.       @max_ct += battler.agi
  225.     end
  226.     @max_ct *= 100
  227.   end
  228.   #--------------------------------------------------------------------------
  229.   # ○ バトラーの行動順を変更
  230.   #--------------------------------------------------------------------------
  231.   def shift_activer(shift)
  232.     # 一つシフトする時で後ろのアクターが2人以上
  233.     if @pre_action_battlers != nil
  234.       if shift == 1 and @pre_action_battlers.size >= @actor_array_index + 3
  235.         # 現在のアクターを取得
  236.         act = @pre_action_battlers[@actor_array_index]
  237.         # 現在のアクターを二つ後ろに挿入
  238.         @pre_action_battlers.insert(@actor_array_index+2, act)
  239.         # 現在位置を消去
  240.         @pre_action_battlers.delete_at(@actor_array_index)
  241.         @actor_array_index -= 1
  242.         phase3_next_actor
  243.       else
  244.         act = @pre_action_battlers[@actor_array_index]
  245.         # 現在のアクターを一番後ろに追加
  246.         @pre_action_battlers.push(act)
  247.         # 現在位置を消去
  248.         @pre_action_battlers.delete_at(@actor_array_index)
  249.         @actor_array_index -= 1
  250.         phase3_next_actor
  251.       end
  252.     end
  253.   end
  254.   #--------------------------------------------------------------------------
  255.   # ● メイン処理
  256.   #--------------------------------------------------------------------------
  257.   alias main_ctb main
  258.   def main
  259.     # エネミー名ウインドウを作成
  260.     @status_window2 = Window_BattleStatus_enemy.new
  261.     @action_battlers = []
  262.     @pre_action_battlers = []
  263.     @max_ct = 0
  264.     @countup = false
  265.     @ct_wait = 0
  266.     @action_count = 0
  267.     main_ctb
  268.     # エネミー名ウインドウを破棄
  269.     @status_window2.dispose
  270.   end
  271.   #--------------------------------------------------------------------------
  272.   # ● フレーム更新
  273.   #--------------------------------------------------------------------------
  274.   alias ctb_update update
  275.   def update
  276.     # バトルイベント実行中の場合
  277.     if $game_system.battle_interpreter.running?
  278.       # インタプリタを更新
  279.       $game_system.battle_interpreter.update
  280.       # アクションを強制されているバトラーが存在しない場合
  281.       if $game_temp.forcing_battler == nil
  282.         # バトルイベントの実行が終わった場合
  283.         unless $game_system.battle_interpreter.running?
  284.           # 戦闘継続の場合、バトルイベントのセットアップを再実行
  285.           unless judge
  286.             setup_battle_event
  287.           end
  288.         end
  289.         # アフターバトルフェーズでなければ
  290.         if @phase != 5
  291.           # ステータスウィンドウをリフレッシュ
  292.           @status_window.refresh
  293.           # エネミー名リストを更新
  294.           @status_window2.refresh
  295.         end
  296.       end
  297.     else
  298.       if PARA_CTB::CT_SKIP == 0
  299.         update_ct
  300.       else
  301.         if @ct_wait > 0
  302.           @ct_wait -= 1
  303.         else
  304.           update_ct
  305.           @ct_wait = PARA_CTB::CT_SKIP
  306.         end
  307.       end
  308.     end
  309.     ctb_update
  310.   end
  311.   #--------------------------------------------------------------------------
  312.   # ● プレバトルフェーズ開始
  313.   #--------------------------------------------------------------------------
  314.   alias ctb_start_phase1 start_phase1
  315.   def start_phase1
  316.     # CTを初期化
  317.     initialize_ct
  318.     # カウントアップ開始
  319.     @countup = true

  320.     ctb_start_phase1
  321.   end
  322.   #--------------------------------------------------------------------------
  323.   # ● フレーム更新 (プレバトルフェーズ)
  324.   #--------------------------------------------------------------------------
  325.   def update_phase1
  326.     # エネミー名リストを更新
  327.     @status_window2.refresh
  328.     # 勝敗判定
  329.     if judge
  330.       # 勝利または敗北の場合 : メソッド終了
  331.       return
  332.     end
  333.     # パーティーコマンドフェーズを飛ばしてアクターコマンドフェーズ開始
  334.     start_phase3
  335.   end
  336.   #--------------------------------------------------------------------------
  337.   # ● パーティコマンドフェーズ開始
  338.   #--------------------------------------------------------------------------
  339.   def start_phase2
  340.     # フェーズ 2 に移行
  341.     @phase = 2
  342.     # アクターを非選択状態に設定
  343.     @actor_index = -1
  344.     @active_battler = nil
  345.     # パーティコマンドウィンドウを有効化
  346.     @party_command_window.active = true
  347.     @party_command_window.visible = true
  348.     # アクターコマンドウィンドウを無効化
  349.     @actor_command_window.active = false
  350.     @actor_command_window.visible = false
  351.     # メインフェーズフラグをクリア
  352.     $game_temp.battle_main_phase = false
  353.     # コマンド入力不可能な場合
  354.     unless $game_party.inputable?
  355.       # メインフェーズ開始
  356.       start_phase4
  357.     end
  358.   end
  359.   #--------------------------------------------------------------------------
  360.   # ● フレーム更新 (パーティコマンドフェーズ : 逃げる)
  361.   #--------------------------------------------------------------------------
  362.   def update_phase2_escape
  363.     # エネミーの素早さ合計を計算
  364.     enemies_agi = 0
  365.     for enemy in $game_troop.enemies
  366.       if enemy.exist?
  367.         enemies_agi += enemy.agi
  368.       end
  369.     end
  370.     # 行動可能アクターの素早さ合計を計算
  371.     actors_agi = 0
  372.     for actor in @pre_action_battlers
  373.       if actor.is_a?(Game_Actor) and actor.exist?
  374.         actors_agi += actor.agi
  375.       end
  376.     end
  377.     # 逃走成功判定
  378.     success = rand(100) < 50 * actors_agi / enemies_agi
  379.     # 逃走成功の場合
  380.     if success
  381.       # 逃走 SE を演奏
  382.       $game_system.se_play($data_system.escape_se)
  383.       # バトル開始前の BGM に戻す
  384.       $game_system.bgm_play($game_temp.map_bgm)
  385.       # CTをクリア
  386.       for battler in $game_party.actors
  387.         clear_ct(battler)
  388.       end
  389.       # バトル終了
  390.       battle_end(1)
  391.     # 逃走失敗の場合
  392.     else
  393.       # ヘルプウィンドウに "逃走失敗" をセット
  394.       @help_window.set_text(PARA_CTB::UNESCAPE_MES, 1)
  395.       # アクターのアクションとCTをクリア
  396.       pre_action_battlers = @pre_action_battlers.clone
  397.       for act in pre_action_battlers
  398.         if act.is_a?(Game_Actor)
  399.           declease_ct(act, 100-PARA_CTB::ACT_ESCAPE_CT)
  400.           act.current_action.clear
  401.           @pre_action_battlers.delete(act)
  402.         end
  403.       end
  404.       @party_command_window.visible = false
  405.       # ヘルプウィンドウを表示
  406.       @help_window.visible = true
  407.       @wait_count = 20
  408.       # メインフェーズ開始
  409.       start_phase4
  410.     end
  411.   end
  412.   #--------------------------------------------------------------------------
  413.   # ● アクターコマンドフェーズ開始
  414.   #--------------------------------------------------------------------------
  415.   def start_phase3
  416.     # フェーズ 3 に移行
  417.     @phase = 3
  418.     # アクターを非選択状態に設定
  419.     @actor_index = -1
  420.     @active_battler = nil
  421.     @actor_array_index = -1
  422.     # 次のアクターのコマンド入力へ
  423.     if @pre_action_battlers != []
  424.       phase3_next_actor
  425.     else
  426.       start_phase4
  427.     end
  428.   end
  429.   #--------------------------------------------------------------------------
  430.   # ● 次のアクターのコマンド入力へ
  431.   #--------------------------------------------------------------------------
  432.   def phase3_next_actor
  433.     # ループ
  434.     begin
  435.       # アクターの明滅エフェクト OFF
  436.       if @active_battler != nil
  437.         @active_battler.blink = false
  438.       end
  439.       # 最後のアクターの場合
  440.       if @actor_array_index + 1 == @pre_action_battlers.size
  441.         # メインフェーズ開始
  442.         start_phase4
  443.         return
  444.       #次がエネミーの場合
  445.       elsif $game_troop.enemies.include?(@pre_action_battlers[@actor_array_index + 1])
  446.         # メインフェーズ開始
  447.         start_phase4
  448.         return
  449.       end
  450.       # アクターのインデックスを進める
  451.       @actor_array_index += 1
  452.       @actor_index = @pre_action_battlers[@actor_array_index].index
  453.       @active_battler = $game_party.actors[@actor_index]
  454.       @active_battler.blink = true
  455.       @active_battler.current_action.clear
  456.     # アクターがコマンド入力を受け付けない状態ならもう一度
  457.     end until @active_battler.inputable?
  458.     # アクターコマンドウィンドウをセットアップ
  459.     phase3_setup_command_window
  460.   end
  461.   #--------------------------------------------------------------------------
  462.   # ● 前のアクターのコマンド入力へ
  463.   #--------------------------------------------------------------------------
  464.   def phase3_prior_actor
  465.     # ループ
  466.     begin
  467.       # アクターの明滅エフェクト OFF
  468.       if @active_battler != nil
  469.         @active_battler.blink = false
  470.       end
  471.       # 最初のアクターの場合
  472.       if @actor_array_index <= 0
  473.         # アクターコマンドフェーズ開始
  474.         start_phase2
  475.         return
  476.       end
  477.       # アクターのインデックスを戻す
  478.       @actor_array_index -= 1
  479.       @actor_index = @pre_action_battlers[@actor_array_index].index
  480.       @active_battler = $game_party.actors[@actor_index]
  481.       @active_battler.blink = true
  482.       @active_battler.current_action.clear
  483.     # アクターがコマンド入力を受け付けない状態ならもう一度
  484.     end until @active_battler.inputable?
  485.     # アクターコマンドウィンドウをセットアップ
  486.     phase3_setup_command_window
  487.   end
  488.   #--------------------------------------------------------------------------
  489.   # ● アクターコマンドウィンドウのセットアップ
  490.   #--------------------------------------------------------------------------
  491.   alias phase3_setup_command_window_ctb phase3_setup_command_window
  492.   def phase3_setup_command_window
  493.     @actor_command_window.back_opacity = PARA_CTB::WINDOW_OPACITY
  494.     phase3_setup_command_window_ctb
  495.     if PARA_CTB::WINDOWPOS_CHANGE
  496.       # アクターコマンドウィンドウの位置を設定
  497.       @actor_command_window.x = PARA_CTB::WINDOWPOS_X
  498.       @actor_command_window.y = PARA_CTB::WINDOWPOS_Y
  499.       # ステータスウインドウに隠れないように
  500.       @actor_command_window.z = 9999
  501.     end
  502.   end
  503.   #--------------------------------------------------------------------------
  504.   # ● フレーム更新 (アクターコマンドフェーズ)
  505.   #--------------------------------------------------------------------------
  506.   def update_phase3
  507.     # エネミーアローが有効の場合
  508.     if @enemy_arrow != nil
  509.       @countup = PARA_CTB::SELECT_WAIT ? false : true
  510.       update_phase3_enemy_select
  511.     # アクターアローが有効の場合
  512.     elsif @actor_arrow != nil
  513.       @countup = PARA_CTB::SELECT_WAIT ? false : true
  514.       update_phase3_actor_select
  515.     # スキルウィンドウが有効の場合
  516.     elsif @skill_window != nil
  517.       @countup = PARA_CTB::SELECT_WAIT ? false : true
  518.       update_phase3_skill_select
  519.     # アイテムウィンドウが有効の場合
  520.     elsif @item_window != nil
  521.       @countup = PARA_CTB::SELECT_WAIT ? false : true
  522.       update_phase3_item_select
  523.     # アクターコマンドウィンドウが有効の場合
  524.     elsif @actor_command_window.active
  525.       @countup = PARA_CTB::COMMAND_WAIT ? false : true
  526.       update_phase3_basic_command
  527.     end
  528.   end
  529.   #--------------------------------------------------------------------------
  530.   # ● フレーム更新 (アクターコマンドフェーズ : 基本コマンド)
  531.   #--------------------------------------------------------------------------
  532.   alias ctb_update_phase3_basic_command update_phase3_basic_command
  533.   def update_phase3_basic_command
  534.     ctb_update_phase3_basic_command
  535.     # LRボタンで行動順を変更
  536.     if Input.trigger?(Input::R)
  537.       shift_activer(1)
  538.     end
  539.      if Input.trigger?(Input::L)
  540.       shift_activer(-1)
  541.     end
  542.   end
  543.   #--------------------------------------------------------------------------
  544.   # ● メインフェーズ開始
  545.   #--------------------------------------------------------------------------
  546.   def start_phase4
  547.     # フェーズ 4 に移行
  548.     @phase = 4
  549.     battler_count = $game_party.actors.size + $game_troop.enemies.size
  550.     if @action_count >= battler_count or $game_temp.battle_turn == 0
  551.       # バトルイベントの全ページを検索
  552.       for index in 0...$data_troops[@troop_id].pages.size
  553.         # イベントページを取得
  554.         page = $data_troops[@troop_id].pages[index]
  555.         # このページのスパンが [ターン] の場合
  556.         if page.span == 1
  557.           # 実行済みフラグをクリア
  558.           $game_temp.battle_event_flags[index] = false
  559.         end
  560.       end
  561.       # ターン数カウント
  562.       $game_temp.battle_turn += 1
  563.       @action_count = 0
  564.     end
  565.     # アクターを非選択状態に設定
  566.     @actor_index = -1
  567.     @active_battler = nil
  568.     # パーティコマンドウィンドウを有効化
  569.     @party_command_window.active = false
  570.     @party_command_window.visible = false
  571.     # アクターコマンドウィンドウを無効化
  572.     @actor_command_window.active = false
  573.     @actor_command_window.visible = false
  574.     # メインフェーズフラグをセット
  575.     $game_temp.battle_main_phase = true
  576.     # エネミーアクション作成
  577.     for enemy in $game_troop.enemies
  578.       enemy.make_action
  579.     end
  580.     # 行動順序作成
  581.     make_action_orders
  582.     # ステップ 1 に移行
  583.     @phase4_step = 1
  584.   end
  585.   #--------------------------------------------------------------------------
  586.   # ● 行動順序作成
  587.   #--------------------------------------------------------------------------
  588.   def make_action_orders
  589.     # 配列 @action_battlers を初期化
  590.     @action_battlers = []
  591.     if @pre_action_battlers != []
  592.       for i in 0..@actor_array_index
  593.         # アクターを配列 @action_battlers に追加
  594.         @action_battlers.push(@pre_action_battlers[0])
  595.         @pre_action_battlers.shift
  596.       end
  597.       if @pre_action_battlers.size != 0
  598.       loop do
  599.         if $game_troop.enemies.include?(@pre_action_battlers[0])
  600.           # エネミーを配列 @action_battlers に追加
  601.           @action_battlers.push(@pre_action_battlers[0])
  602.           @pre_action_battlers.shift
  603.         else
  604.           break
  605.         end
  606.       end
  607.       end
  608.     end
  609.   end
  610.   #--------------------------------------------------------------------------
  611.   # ● フレーム更新 (メインフェーズ ステップ 1 : アクション準備)
  612.   #--------------------------------------------------------------------------
  613.   alias ctb_update_phase4_step1 update_phase4_step1
  614.   def update_phase4_step1
  615.     @countup = true
  616.     # ヘルプウィンドウを隠す
  617.     @help_window.visible = false
  618.     # 勝敗判定
  619.     if judge
  620.       # 勝利または敗北の場合 : メソッド終了
  621.       return
  622.     end
  623.     # 未行動バトラーが存在しない場合 (全員行動した)
  624.     if @action_battlers.size == 0
  625.       # アクターコマンドフェーズ開始
  626.       start_phase3
  627.       return
  628.     end
  629.     ctb_update_phase4_step1
  630.   end
  631.   #--------------------------------------------------------------------------
  632.   # ● フレーム更新 (メインフェーズ ステップ 2 : アクション開始)
  633.   #--------------------------------------------------------------------------
  634.   alias ctb_update_phase4_step2 update_phase4_step2
  635.   def update_phase4_step2
  636.     # 強制アクションでなければ
  637.     unless @active_battler.current_action.forcing
  638.       # 制約が [行動できない] の場合
  639.       if @active_battler.restriction == 4
  640.         # CTをクリア
  641.         clear_ct(@active_battler)
  642.         # アクション強制対象のバトラーをクリア
  643.         $game_temp.forcing_battler = nil
  644.         # ステップ 1 に移行
  645.         @phase4_step = 1
  646.         return
  647.       end
  648.     end
  649.     # アニメーション再生中にCTをカウントするか
  650.     @countup = PARA_CTB::ANIMATION_WAIT ? false : true
  651.     ctb_update_phase4_step2
  652.   end
  653.   #--------------------------------------------------------------------------
  654.   # ● 基本アクション 結果作成
  655.   #--------------------------------------------------------------------------
  656.   alias make_basic_action_result_ctb make_basic_action_result
  657.   def make_basic_action_result
  658.     # 何もしないの場合
  659.     if @active_battler.current_action.basic == 3
  660.       # CTをクリア
  661.       clear_ct(@active_battler)
  662.       # アクション強制対象のバトラーをクリア
  663.       $game_temp.forcing_battler = nil
  664.       # ステップ 1 に移行
  665.       @phase4_step = 1
  666.       return
  667.     end
  668.     make_basic_action_result_ctb
  669.   end
  670.   #--------------------------------------------------------------------------
  671.   # ● スキルアクション 結果作成
  672.   #--------------------------------------------------------------------------
  673.   def make_skill_action_result
  674.     # スキルを取得
  675.     @skill = $data_skills[@active_battler.current_action.skill_id]
  676.     # 強制アクションでなければ
  677.     unless @active_battler.current_action.forcing
  678.       # SP 切れなどで使用できなくなった場合
  679.       unless @active_battler.skill_can_use?(@skill.id)
  680.         # アクション強制対象のバトラーをクリア
  681.         $game_temp.forcing_battler = nil
  682.         # CTをクリア
  683.         declease_ct(@active_battler,100-PARA_CTB::ACT_SKILL_CT)
  684.         # ステップ 1 に移行
  685.         @phase4_step = 1
  686.         return
  687.       end
  688.     end
  689.     # SP 消費
  690.     @active_battler.sp -= @skill.sp_cost
  691.     # ステータスウィンドウをリフレッシュ
  692.     @status_window.refresh
  693.     # ヘルプウィンドウにスキル名を表示
  694.     @help_window.set_text(@skill.name, 1)
  695.     # アニメーション ID を設定
  696.     @animation1_id = @skill.animation1_id
  697.     @animation2_id = @skill.animation2_id
  698.     # コモンイベント ID を設定
  699.     @common_event_id = @skill.common_event_id
  700.     # 対象側バトラーを設定
  701.     set_target_battlers(@skill.scope)
  702.     # スキルの効果を適用
  703.     for target in @target_battlers
  704.       target.skill_effect(@active_battler, @skill)
  705.     end
  706.   end
  707.   #--------------------------------------------------------------------------
  708.   # ● アイテムアクション 結果作成
  709.   #--------------------------------------------------------------------------
  710.   alias ctb_make_item_action_result make_item_action_result
  711.   def make_item_action_result
  712.     # アイテムを取得
  713.     @item = $data_items[@active_battler.current_action.item_id]
  714.     # アイテム切れなどで使用できなくなった場合
  715.     unless $game_party.item_can_use?(@item.id)
  716.       # CTをクリア
  717.       declease_ct(@active_battler,100-PARA_CTB::ACT_ITEM_CT)
  718.       # ステップ 1 に移行
  719.       @phase4_step = 1
  720.       return
  721.     end
  722.     ctb_make_item_action_result
  723.   end
  724.   #--------------------------------------------------------------------------
  725.   # ● フレーム更新 (メインフェーズ ステップ 5 : ダメージ表示)
  726.   #--------------------------------------------------------------------------
  727.   alias update_phase4_step5_ctb update_phase4_step5
  728.   def update_phase4_step5
  729.     # ダメージを記録
  730.     for target in @target_battlers
  731.       if target.damage != nil
  732.         target.damage_backup = target.damage
  733.       end
  734.     end
  735.     update_phase4_step5_ctb
  736.   end
  737.   #--------------------------------------------------------------------------
  738.   # ● フレーム更新 (メインフェーズ ステップ 6 : リフレッシュ)
  739.   #--------------------------------------------------------------------------
  740.   alias update_phase4_step6_ctb update_phase4_step6
  741.   def update_phase4_step6
  742.     @active_battler.countup = true
  743.     if @active_battler.current_action.basic == 1
  744.       # 防御
  745.       declease_ct(@active_battler,100-PARA_CTB::ACT_GUARD_CT)
  746.     else
  747.       case @active_battler.current_action.kind
  748.       # 攻撃
  749.       when 0
  750.         declease_ct(@active_battler,100-PARA_CTB::ACT_ATTACK_CT)
  751.       # スキル
  752.       when 1
  753.         declease_ct(@active_battler,100-PARA_CTB::ACT_SKILL_CT)
  754.       # アイテム
  755.       when 2
  756.         declease_ct(@active_battler,100-PARA_CTB::ACT_ITEM_CT)
  757.       else
  758.         clear_ct(@active_battler)
  759.       end
  760.     end
  761.     # ターゲットが行動不能になったらCTを0に
  762.     for target in @target_battlers
  763.       if target.movable? == false and target.damage_backup != "Miss"
  764.         clear_ct(target)
  765.         @status_window.refresh_ct
  766.       end
  767.     end
  768.     # エネミー名リストを更新
  769.     @status_window2.refresh
  770.     update_phase4_step6_ctb
  771.   end
  772.   #--------------------------------------------------------------------------
  773.   # ● アフターバトルフェーズ開始
  774.   #--------------------------------------------------------------------------
  775.   alias ctb_start_phase5 start_phase5
  776.   def start_phase5
  777.     @countup = false
  778.     ctb_start_phase5
  779.   end
  780. end

  781. #==============================================================================
  782. # ■ Window_BattleStatus
  783. #==============================================================================

  784. class Window_BattleStatus < Window_Base
  785.   #--------------------------------------------------------------------------
  786.   # ● オブジェクト初期化
  787.   #--------------------------------------------------------------------------
  788.   def initialize
  789.     super(160, 320, 480, 160)
  790.     self.contents = Bitmap.new(width - 32, height - 32)
  791.     @level_up_flags = [false, false, false, false]
  792.     @before_hp = []
  793.     @before_sp = []
  794.     @before_states = []
  795.     @now_hp = []
  796.     @now_sp = []
  797.     @now_states = []
  798.     refresh
  799.   end
  800.   #--------------------------------------------------------------------------
  801.   # ● リフレッシュ
  802.   #--------------------------------------------------------------------------
  803.   def refresh
  804.     @item_max = $game_party.actors.size
  805.     for i in 0...$game_party.actors.size
  806.       actor = $game_party.actors[i]
  807.       line_height = 120 / PARA_CTB::PARTY_SIZE
  808.       actor_y = i * line_height + 4
  809.       # 現在のステータスを配列に
  810.       @now_hp[i] = actor.hp
  811.       @now_sp[i] = actor.sp
  812.       @now_states[i] = actor.states
  813.       # レベルアップ
  814.       if @level_up_flags[i]
  815.         self.contents.fill_rect(344, actor_y+14, 100, 8, Color.new(0, 0, 0, 0))
  816.         self.contents.font.color = normal_color
  817.         self.contents.draw_text(344, actor_y, 120, 32, "LEVEL UP!")
  818.       end
  819.     end
  820.     # バトルステータスの軽量化処理
  821.     # ステータスの配列が変化したときのみ描画処理
  822.     if @before_hp == nil or @before_sp == nil or @before_states == nil or
  823.     @before_hp != @now_hp or @before_sp != @now_sp or @before_states != @now_states
  824.       self.contents.clear
  825.       for i2 in 0...$game_party.actors.size
  826.         actor = $game_party.actors[i2]
  827.         line_height = 120 / PARA_CTB::PARTY_SIZE
  828.         actor_y = i2 * line_height + 4
  829.         self.contents.font.size = PARA_CTB::NAME_FONT_SIZE
  830.         # 名前を描画
  831.         draw_actor_name(actor, 4, actor_y+16-PARA_CTB::NAME_FONT_SIZE)
  832.         # HPを描画
  833.         hp_color1 = PARA_CTB::HP_COLOR_LEFT
  834.         hp_color2 = PARA_CTB::HP_COLOR_RIGHT
  835.         draw_meter(actor.hp, actor.maxhp, 125, actor_y+14, 80, 8, hp_color1, hp_color2)
  836.         draw_actor_hp(actor, 102, actor_y+16-PARA_CTB::HPSP_FONT_SIZE, 100)
  837.         # SPを描画
  838.         sp_color1 = PARA_CTB::SP_COLOR_LEFT
  839.         sp_color2 = PARA_CTB::SP_COLOR_RIGHT
  840.         draw_meter(actor.sp, actor.maxsp, 245, actor_y+14, 80, 8, sp_color1, sp_color2)
  841.         draw_actor_sp(actor, 222, actor_y+16-PARA_CTB::HPSP_FONT_SIZE, 100)
  842.         # 変化後のステータスを配列に
  843.         @before_hp[i2] = actor.hp
  844.         @before_sp[i2] = actor.sp
  845.         @before_states[i2] = actor.states
  846.         # レベルアップ
  847.         if @level_up_flags[i2]
  848.           self.contents.fill_rect(344, actor_y, 100, 8, Color.new(0, 0, 0, 0))
  849.           self.contents.font.color = normal_color
  850.           self.contents.draw_text(344, actor_y, 120, 32, "LEVEL UP!")
  851.         end
  852.       end
  853.     end
  854.     refresh_ct
  855.   end
  856.   #--------------------------------------------------------------------------
  857.   # ● CTゲージのリフレッシュ
  858.   #--------------------------------------------------------------------------
  859.   def refresh_ct
  860.     for i in 0...$game_party.actors.size
  861.       actor = $game_party.actors[i]
  862.       line_height = 120 / PARA_CTB::PARTY_SIZE
  863.       actor_y = i * line_height + 4
  864.       # CTが満タンになったときのゲージの色
  865.       ct_color_full = PARA_CTB::COLOR_FULL
  866.       # CTゲージの色(左端)
  867.       ct_color_start = actor.full_ct ? ct_color_full : PARA_CTB::COLOR_LEFT
  868.       # CTゲージの色(右端)
  869.       ct_color_end = actor.full_ct ? ct_color_full : PARA_CTB::COLOR_RIGHT
  870.       if @level_up_flags[i] != true and actor.ct_visible
  871.         draw_meter(actor.now_ct, actor.max_ct, 344, actor_y+14, 100, 8, ct_color_start, ct_color_end)
  872.       elsif @level_up_flags[i] != true
  873.         draw_meter(0, actor.max_ct, 344, actor_y+14, 100, 8, ct_color_start, ct_color_end)
  874.       end
  875.     end
  876.   end
  877.   #--------------------------------------------------------------------------
  878.   # ● フレーム更新
  879.   #--------------------------------------------------------------------------
  880.   def update
  881.     super
  882.   end
  883.   #--------------------------------------------------------------------------
  884.   # ● HP の描画
  885.   #     actor : アクター
  886.   #     x     : 描画先 X 座標
  887.   #     y     : 描画先 Y 座標
  888.   #     width : 描画先の幅
  889.   #--------------------------------------------------------------------------
  890.   def draw_actor_hp(actor, x, y, width = 144)
  891.     # 文字列 "HP" を描画
  892.     self.contents.font.color = system_color
  893.     self.contents.font.size = 16
  894.     self.contents.draw_text(x, y+2, 32, 32, $data_system.words.hp)
  895.     self.contents.font.color = normal_color
  896.     self.contents.font.size = PARA_CTB::HPSP_FONT_SIZE
  897.     if PARA_CTB::MAX_DRAW
  898.       # MaxHP を描画
  899.       self.contents.draw_text(x, y, width, 32, actor.maxhp.to_s, 2)
  900.       text_size = self.contents.text_size(actor.maxhp.to_s)
  901.       text_x = x + width - text_size.width - 12
  902.       self.contents.draw_text(text_x, y, 12, 32, "/", 1)
  903.       # HP を描画
  904.       self.contents.font.color = actor.hp == 0 ? knockout_color :
  905.         actor.hp <= actor.maxhp / 4 ? crisis_color : normal_color
  906.       text_x = text_x - text_size.width
  907.       self.contents.draw_text(text_x, y, text_size.width, 32, actor.hp.to_s, 2)
  908.     else
  909.       self.contents.font.color = actor.hp == 0 ? knockout_color :
  910.         actor.hp <= actor.maxhp / 4 ? crisis_color : normal_color
  911.       self.contents.draw_text(x, y, width, 32, actor.hp.to_s, 2)
  912.     end
  913.   end
  914.   #--------------------------------------------------------------------------
  915.   # ● SP の描画
  916.   #     actor : アクター
  917.   #     x     : 描画先 X 座標
  918.   #     y     : 描画先 Y 座標
  919.   #     width : 描画先の幅
  920.   #--------------------------------------------------------------------------
  921.   def draw_actor_sp(actor, x, y, width = 144)
  922.     # 文字列 "SP" を描画
  923.     self.contents.font.color = system_color
  924.     self.contents.font.size = 16
  925.     self.contents.draw_text(x, y+2, 32, 32, $data_system.words.sp)


复制代码
回复 支持 反对

使用道具 举报

Lv3.寻梦者 (暗夜天使)

名侦探小柯

梦石
0
星屑
3299
在线时间
3619 小时
注册时间
2006-9-6
帖子
37400

开拓者贵宾第3届短篇游戏大赛主流游戏组亚军第5届短篇游戏比赛亚军

7
发表于 2008-1-30 21:30:21 | 只看该作者
下部分……
  1.     self.contents.font.color = normal_color
  2.     self.contents.font.size = PARA_CTB::HPSP_FONT_SIZE
  3.     if PARA_CTB::MAX_DRAW
  4.     # MaxSP を描画
  5.       self.contents.draw_text(x, y, width, 32, actor.maxsp.to_s, 2)
  6.       text_size = self.contents.text_size(actor.maxsp.to_s)
  7.       text_x = x + width - text_size.width - 12
  8.       self.contents.draw_text(text_x, y, 12, 32, "/", 1)
  9.       # SP を描画
  10.       self.contents.font.color = actor.sp == 0 ? knockout_color :
  11.         actor.sp <= actor.maxsp / 4 ? crisis_color : normal_color
  12.       text_x = text_x - text_size.width
  13.       self.contents.draw_text(text_x, y, text_size.width, 32, actor.sp.to_s, 2)
  14.     else
  15.       self.contents.font.color = actor.sp == 0 ? knockout_color :
  16.         actor.sp <= actor.maxsp / 4 ? crisis_color : normal_color
  17.       self.contents.draw_text(x, y, width, 32, actor.sp.to_s, 2)
  18.     end
  19.   end
  20. end

  21. #==============================================================================
  22. # □ 敵の名前を表示するウインドウ
  23. #==============================================================================

  24. class Window_BattleStatus_enemy < Window_Base
  25.   #--------------------------------------------------------------------------
  26.   # ○ オブジェクト初期化
  27.   #--------------------------------------------------------------------------
  28.   def initialize
  29.     super(0, 320, 160, 160)
  30.     self.contents = Bitmap.new(width - 32, height - 32)
  31.     refresh
  32.   end
  33.   #--------------------------------------------------------------------------
  34.   # ○ リフレッシュ
  35.   #--------------------------------------------------------------------------
  36.   def refresh
  37.     self.contents.clear
  38.     self.contents.font.color = normal_color
  39.     self.contents.font.size = PARA_CTB::ENEMY_FONT_SIZE
  40.     @exist_enemies = []
  41.     if $game_troop.enemies != nil
  42.       if PARA_CTB::ENEMY_GROUPING
  43.         ememy_list = []
  44.         ememy_list_index = []
  45.         # エネミーをグループ化
  46.         for i in 0...$game_troop.enemies.size
  47.           enemy = $game_troop.enemies[i]
  48.           if enemy.exist?
  49.             if ememy_list.include?(enemy.name)
  50.               ememy_list_index[ememy_list.index(enemy.name)] += 1
  51.             else
  52.               # エネミー名を記録
  53.               ememy_list.push(enemy.name)
  54.               ememy_list_index[ememy_list.index(enemy.name)] = 1
  55.             end
  56.           end
  57.         end
  58.         # エネミーの名前と数を描画
  59.         enemy_index = 0
  60.         for enemy_name in ememy_list
  61.           enemy_y = enemy_index * (PARA_CTB::ENEMY_FONT_SIZE+6) + 4
  62.           if ememy_list_index[enemy_index] > 1
  63.             enemy_name = enemy_name + " " + ememy_list_index[enemy_index].to_s
  64.           end
  65.           self.contents.draw_text(4, enemy_y, 160, 20, enemy_name)
  66.           enemy_index += 1
  67.         end
  68.       else
  69.         # エネミーの名前を描画
  70.         enemy_index = 0
  71.         for i in 0...$game_troop.enemies.size
  72.           enemy = $game_troop.enemies[i]
  73.           if enemy.exist?
  74.             @exist_enemies.push(enemy)
  75.             line_height = PARA_CTB::ENEMY_FONT_SIZE + 6
  76.             if PARA_CTB::ENEMY_DRAWING_MATER != 0
  77.               line_height += 10
  78.             end
  79.             enemy_y = enemy_index * line_height + 4
  80.             self.contents.draw_text(4, enemy_y, 160, 20, enemy.name)
  81.             enemy_index += 1
  82.             if PARA_CTB::ENEMY_DRAWING_MATER == 1
  83.               hp_color1 = PARA_CTB::HP_COLOR_LEFT
  84.               hp_color2 = PARA_CTB::HP_COLOR_RIGHT
  85.               y = enemy_y + PARA_CTB::ENEMY_FONT_SIZE + 3
  86.               draw_meter(enemy.hp, enemy.maxhp, 4, y, 80, 8, hp_color1, hp_color2)
  87.             end
  88.           end
  89.         end
  90.       end
  91.     end
  92.     refresh_ct
  93.   end
  94.   #--------------------------------------------------------------------------
  95.   # ● CTゲージのリフレッシュ
  96.   #--------------------------------------------------------------------------
  97.   def refresh_ct
  98.     if PARA_CTB::ENEMY_DRAWING_MATER == 2 and @exist_enemies != nil
  99.       enemy_index = 0
  100.       for enemy in @exist_enemies
  101.         line_height = PARA_CTB::ENEMY_FONT_SIZE + 16
  102.         enemy_y = enemy_index * line_height + 4
  103.         y = enemy_y + PARA_CTB::ENEMY_FONT_SIZE + 3
  104.         # CTが満タンになったときのゲージの色
  105.         ct_color_full = PARA_CTB::COLOR_FULL
  106.         # CTゲージの色(左端)
  107.         ct_color_start = enemy.full_ct ? ct_color_full : PARA_CTB::COLOR_LEFT
  108.         # CTゲージの色(右端)
  109.         ct_color_end = enemy.full_ct ? ct_color_full : PARA_CTB::COLOR_RIGHT
  110.         if enemy.ct_visible
  111.           draw_meter(enemy.now_ct, enemy.max_ct, 4, y, 100, 8, ct_color_start, ct_color_end)
  112.         else
  113.           draw_meter(0, enemy.max_ct, 4, y, 100, 8, ct_color_start, ct_color_end)
  114.         end
  115.         enemy_index += 1
  116.       end
  117.     end
  118.   end
  119. end

  120. #==============================================================================
  121. # ■ Window_Base
  122. #==============================================================================

  123. class Window_Base < Window
  124.   
  125.   #--------------------------------------------------------------------------
  126.   # ○ ゲージを描画
  127.   #--------------------------------------------------------------------------
  128.   def draw_meter(now, max, x, y, width, height, start_color, end_color=start_color )
  129.     self.contents.fill_rect(x, y, width, height, PARA_CTB::FRAME_COLOR)
  130.     self.contents.fill_rect(x+PARA_CTB::FRAME_BORDER, y+PARA_CTB::FRAME_BORDER, width-

  131. PARA_CTB::FRAME_BORDER*2, height-PARA_CTB::FRAME_BORDER*2, PARA_CTB::BACK_COLOR)
  132.     now = now > max ? max : now
  133.     percentage = max != 0 ? (width-2) * now / max.to_f : 0
  134.     if start_color == end_color
  135.       self.contents.fill_rect(x+1, y+1, percentage, height-2, start_color)
  136.     else
  137.       for i in 1..percentage
  138.         r = start_color.red + (end_color.red - start_color.red) / percentage * i
  139.         g = start_color.green + (end_color.green - start_color.green) / percentage * i
  140.         b = start_color.blue + (end_color.blue - start_color.blue) / percentage * i
  141.         a = start_color.alpha + (end_color.alpha - start_color.alpha) / percentage * i
  142.         self.contents.fill_rect(x+i, y+1, 1, height-2, Color.new(r, g, b, a))
  143.       end
  144.     end
  145.   end
  146. end

  147. #==============================================================================
  148. # ■ Game_Battler
  149. #==============================================================================

  150. class Game_Battler
  151.   #--------------------------------------------------------------------------
  152.   # ● 公開インスタンス変数
  153.   #--------------------------------------------------------------------------
  154.   attr_accessor :max_ct
  155.   attr_accessor :now_ct
  156.   attr_accessor :full_ct
  157.   attr_accessor :countup
  158.   attr_accessor :ct_visible
  159.   attr_accessor :damage_backup
  160.   #--------------------------------------------------------------------------
  161.   # ● オブジェクト初期化
  162.   #--------------------------------------------------------------------------
  163.   alias ctb_initialize initialize
  164.   def initialize
  165.     ctb_initialize
  166.     @max_ct = 0
  167.     @now_ct = 0
  168.     @full_ct = false
  169.     @countup = true
  170.     @ct_visible = true
  171.   end
  172. end

  173. #==============================================================================
  174. # ■ Sprite_Battler
  175. #==============================================================================

  176. class Sprite_Battler < RPG::Sprite
  177.   #--------------------------------------------------------------------------
  178.   # ● フレーム更新
  179.   #--------------------------------------------------------------------------
  180.   alias ctb_update update
  181.   def update
  182.     ctb_update
  183.     if @battler != nil
  184.       if @battler.full_ct and @battler.ct_visible
  185.         # CTが溜まったバトラーの色調を変化させる
  186.         fullct_color = PARA_CTB::FULL_CT_COLOR
  187.         self.tone = fullct_color
  188.       else
  189.         fullct_color = Tone.new(0,0,0)
  190.         self.tone = fullct_color
  191.       end
  192.     end
  193.   end
  194. end

  195. #==============================================================================
  196. # ■ Window_Help
  197. #==============================================================================

  198. class Window_Help < Window_Base
  199.   #--------------------------------------------------------------------------
  200.   # ● アクター設定
  201.   #     actor : ステータスを表示するアクター
  202.   #--------------------------------------------------------------------------
  203.   alias set_actor_ctb set_actor
  204.   def set_actor(actor)
  205.     if PARA_CTB::HELP_DRAWING_MATER_ACTOR
  206.       self.contents.clear
  207.       draw_actor_name(actor, 4, 0)
  208.       draw_actor_state(actor, 140, 0)
  209.       hp_color1 = PARA_CTB::HP_COLOR_LEFT
  210.       hp_color2 = PARA_CTB::HP_COLOR_RIGHT
  211.       draw_meter(actor.hp, actor.maxhp, 316, 18, 112, 8, hp_color1, hp_color2)
  212.       draw_actor_hp(actor, 284, 0)
  213.       sp_color1 = PARA_CTB::SP_COLOR_LEFT
  214.       sp_color2 = PARA_CTB::SP_COLOR_RIGHT
  215.       draw_meter(actor.sp, actor.maxsp, 492, 18, 112, 8, sp_color1, sp_color2)
  216.       draw_actor_sp(actor, 460, 0)
  217.       @actor = actor
  218.       @text = nil
  219.       self.visible = true
  220.     else
  221.       set_actor_ctb(actor)
  222.     end
  223.   end
  224.   #--------------------------------------------------------------------------
  225.   # ● エネミー設定
  226.   #     enemy : 名前とステートを表示するエネミー
  227.   #--------------------------------------------------------------------------
  228.   alias set_enemy_ctb set_enemy
  229.   def set_enemy(enemy)
  230.     if PARA_CTB::HELP_DRAWING_MATER_ENEMY
  231.       self.contents.clear
  232.       draw_actor_name(enemy, 4, 0)
  233.       draw_actor_state(enemy, 140, 0)
  234.       hp_color1 = PARA_CTB::HP_COLOR_LEFT
  235.       hp_color2 = PARA_CTB::HP_COLOR_RIGHT
  236.       draw_meter(enemy.hp, enemy.maxhp, 316, 18, 112, 8, hp_color1, hp_color2)
  237.       draw_actor_hp(enemy, 284, 0)
  238.       sp_color1 = PARA_CTB::SP_COLOR_LEFT
  239.       sp_color2 = PARA_CTB::SP_COLOR_RIGHT
  240.       draw_meter(enemy.sp, enemy.maxsp, 492, 18, 112, 8, sp_color1, sp_color2)
  241.       draw_actor_sp(enemy, 460, 0)
  242.       self.visible = true
  243.     else
  244.       set_enemy_ctb(enemy)
  245.     end
  246.   end
  247. end
复制代码
回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
35
在线时间
35 小时
注册时间
2008-1-29
帖子
611
8
发表于 2008-1-30 21:33:40 | 只看该作者
看不懂~~{/ll}
回复 支持 反对

使用道具 举报

头像被屏蔽

Lv1.梦旅人 (禁止发言)

梦石
0
星屑
50
在线时间
0 小时
注册时间
2008-1-30
帖子
13
9
 楼主| 发表于 2008-1-30 22:42:03 | 只看该作者
提示: 作者被禁止或删除 内容自动屏蔽
签名被屏蔽
回复 支持 反对

使用道具 举报

Lv3.寻梦者 (暗夜天使)

名侦探小柯

梦石
0
星屑
3299
在线时间
3619 小时
注册时间
2006-9-6
帖子
37400

开拓者贵宾第3届短篇游戏大赛主流游戏组亚军第5届短篇游戏比赛亚军

10
发表于 2008-1-30 23:22:26 | 只看该作者
re:主题:《脚本里有很多项,不知道哪个才是改战斗横版!》 [LINE]1,#dddddd[/LINE]看一下注释吧,

类的最上面有类的注释。
回复 支持 反对

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2024-12-2 23:38

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

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