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

Project1

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

[已经过期] 幫改RGSS.....

[复制链接]

Lv4.逐梦者

梦石
0
星屑
9058
在线时间
1860 小时
注册时间
2010-7-18
帖子
974
跳转到指定楼层
1
发表于 2010-9-9 17:21:56 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

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

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

x

這個RGSS是進入戰斗執行攻擊的時候上面才會出現狀態信息
哪位可以改成一進入戰斗就顯示阿....
  1. #_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/
  2. #_/    ◆ オンスクリーンステータス - KGC_OnScreenStatus ◆ VX ◆
  3. #_/    ◇ Last update : 2009/01/02 ◇
  4. #_/----------------------------------------------------------------------------
  5. #_/  戦闘行動中、画面上にアクターのステータスを表示します。
  6. #_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/

  7. #==============================================================================
  8. # ★ カスタマイズ項目 - Customize BEGIN ★
  9. #==============================================================================

  10. module KGC
  11. module OnScreenStatus
  12.   # ◆ ウィンドウの配置
  13.   #   0..左揃え、1..中央揃え、2..右揃え
  14.   WINDOW_ALIGN    = 0
  15.   # ◆ アクター一人分の横幅
  16.   WIDTH_PER_ACTOR = 92

  17.   # ◆ MP を表示する
  18.   SHOW_MP    = true
  19.   # ◆ ステートを表示する
  20.   SHOW_STATE = false

  21.   # ◆ 消費した MP を反映するタイミング
  22.   #   0..スキル発動時  1..行動終了後
  23.   #  0 にしてバグる場合は 1 を使用してください。
  24.   SKILL_MP_COST_APPLY_TIMING = 0
  25. end
  26. end

  27. #==============================================================================
  28. # ☆ カスタマイズ項目終了 - Customize END ☆
  29. #==============================================================================

  30. $imported = {} if $imported == nil
  31. $imported["OnScreenStatus"] = true

  32. #==============================================================================
  33. # □ Window_OnScreenBattleStatus
  34. #------------------------------------------------------------------------------
  35. #  戦闘行動中にパーティメンバーのステータスを表示するウィンドウです。
  36. #==============================================================================

  37. class Window_OnScreenBattleStatus < Window_Selectable
  38.   #--------------------------------------------------------------------------
  39.   # ● オブジェクト初期化
  40.   #--------------------------------------------------------------------------
  41.   def initialize
  42.     wh = 32 + WLH * 2
  43.     wh += WLH if KGC::OnScreenStatus::SHOW_MP
  44.     wh += WLH if KGC::OnScreenStatus::SHOW_STATE
  45.     super(0, 0, 64, wh, 8)
  46.     @item_max = 0
  47.     @column_max = 1
  48.     refresh
  49.     self.back_opacity = 160
  50.     self.openness = 0
  51.     self.active = false
  52.   end
  53.   #--------------------------------------------------------------------------
  54.   # ● 名前の描画
  55.   #     actor : アクター
  56.   #     x     : 描画先 X 座標
  57.   #     y     : 描画先 Y 座標
  58.   #     width : 幅
  59.   #--------------------------------------------------------------------------
  60.   def draw_actor_name(actor, x, y, width = 108)
  61.     if $imported["OverDrive"]
  62.       draw_actor_od_gauge(actor, x, y, width)
  63.     end
  64.     self.contents.font.color = hp_color(actor)
  65.     self.contents.draw_text(x, y, width, WLH, actor.name)
  66.   end
  67.   #--------------------------------------------------------------------------
  68.   # ● 項目を描画する矩形の取得
  69.   #     index : 項目番号
  70.   #--------------------------------------------------------------------------
  71.   def item_rect(index)
  72.     rect = Rect.new(0, 0, KGC::OnScreenStatus::WIDTH_PER_ACTOR, height - 32)
  73.     rect.x = index % @column_max * (rect.width + @spacing)
  74.     return rect
  75.   end
  76.   #--------------------------------------------------------------------------
  77.   # ● リフレッシュ
  78.   #--------------------------------------------------------------------------
  79.   def refresh
  80.     last_item_max = @item_max
  81.     @item_max = $game_party.members.size
  82.     if @item_max != last_item_max
  83.       # メンバー数が変化したらウィンドウサイズ変更
  84.       self.width =
  85.         (KGC::OnScreenStatus::WIDTH_PER_ACTOR + @spacing) * @item_max + 32
  86.       @column_max = @item_max
  87.       create_contents
  88.     else
  89.       self.contents.clear
  90.     end
  91.     @item_max.times { |i| draw_item(i) }
  92.     # 表示座標調整
  93.     case KGC::OnScreenStatus::WINDOW_ALIGN
  94.     when 0
  95.       self.x = 0
  96.     when 1
  97.       self.x = (Graphics.width - self.width) / 2
  98.     when 2
  99.       self.x = Graphics.width - self.width
  100.     end
  101.   end
  102.   #--------------------------------------------------------------------------
  103.   # ● 項目の描画
  104.   #     index   : 項目番号
  105.   #--------------------------------------------------------------------------
  106.   def draw_item(index)
  107.     rect = item_rect(index)
  108.     self.contents.clear_rect(rect)
  109.     self.contents.font.color = normal_color
  110.     actor = $game_party.members[index]
  111.     cw = KGC::OnScreenStatus::WIDTH_PER_ACTOR
  112.     draw_actor_name(actor, rect.x, rect.y, cw)
  113.     rect.y += WLH
  114.     draw_actor_hp(actor, rect.x, rect.y, cw)
  115.     if KGC::OnScreenStatus::SHOW_MP
  116.       rect.y += WLH
  117.       draw_actor_mp(actor, rect.x, rect.y, cw)
  118.     end
  119.     if KGC::OnScreenStatus::SHOW_STATE
  120.       rect.y += WLH
  121.       draw_actor_state(actor, rect.x, rect.y, cw)
  122.     end
  123.   end
  124.   #--------------------------------------------------------------------------
  125.   # ○ 再描画
  126.   #     actor : 対象アクター
  127.   #--------------------------------------------------------------------------
  128.   def redraw(actor)
  129.     draw_item(actor.index)
  130.   end
  131. end

  132. #★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★

  133. #==============================================================================
  134. # ■ Scene_Battle
  135. #==============================================================================

  136. class Scene_Battle < Scene_Base
  137.   #--------------------------------------------------------------------------
  138.   # ● 開始処理
  139.   #--------------------------------------------------------------------------
  140.   alias start_KGC_OnScreenStatus start
  141.   def start
  142.     # オンスクリーンウィンドウを作成
  143.     @onscreen_status_window = Window_OnScreenBattleStatus.new
  144.     @onscreen_status_refresh_request = false

  145.     start_KGC_OnScreenStatus
  146.   end
  147.   #--------------------------------------------------------------------------
  148.   # ● 終了処理
  149.   #--------------------------------------------------------------------------
  150.   alias terminate_KGC_OnScreenStatus terminate
  151.   def terminate
  152.     @onscreen_status_window.dispose

  153.     terminate_KGC_OnScreenStatus
  154.   end
  155.   #--------------------------------------------------------------------------
  156.   # ● 基本更新処理
  157.   #     main : メインの update メソッドからの呼び出し
  158.   #--------------------------------------------------------------------------
  159.   alias update_basic_KGC_OnScreenStatus update_basic
  160.   def update_basic(main = false)
  161.     update_basic_KGC_OnScreenStatus(main)

  162.     if $game_troop.interpreter.running?
  163.       @onscreen_status_window.close
  164.       @onscreen_status_refresh_request = true
  165.     end
  166.     @onscreen_status_window.update
  167.   end
  168.   #--------------------------------------------------------------------------
  169.   # ● 戦闘処理の実行開始
  170.   #--------------------------------------------------------------------------
  171.   alias start_main_KGC_OnScreenStatus start_main
  172.   def start_main
  173.     @onscreen_status_window.refresh

  174.     start_main_KGC_OnScreenStatus
  175.   end
  176.   #--------------------------------------------------------------------------
  177.   # ● 戦闘行動の処理
  178.   #--------------------------------------------------------------------------
  179.   alias process_action_KGC_OnScreenStatus process_action
  180.   def process_action
  181.     if @onscreen_status_refresh_request
  182.       @onscreen_status_window.refresh
  183.       @onscreen_status_refresh_request = false
  184.     end
  185.     @onscreen_status_window.open

  186.     process_action_KGC_OnScreenStatus

  187.     update_onscreen_status(@active_battler)
  188.   end
  189.   #--------------------------------------------------------------------------
  190.   # ● ターン終了
  191.   #--------------------------------------------------------------------------
  192.   alias turn_end_KGC_OnScreenStatus turn_end
  193.   def turn_end
  194.     @onscreen_status_window.close

  195.     turn_end_KGC_OnScreenStatus
  196.   end
  197.   #--------------------------------------------------------------------------
  198.   # ● 戦闘行動の実行 : スキル
  199.   #--------------------------------------------------------------------------
  200.   alias execute_action_skill_KGC_OnScreenStatus execute_action_skill
  201.   def execute_action_skill
  202.     # 行動前に MP を反映する場合
  203.     if KGC::OnScreenStatus::SKILL_MP_COST_APPLY_TIMING == 0
  204.       # MP を仮消費してステータスを更新
  205.       last_mp = @active_battler.mp
  206.       skill = @active_battler.action.skill
  207.       @active_battler.mp -= @active_battler.calc_mp_cost(skill)
  208.       update_onscreen_status(@active_battler)
  209.       # 消費前に戻す
  210.       @active_battler.mp = last_mp
  211.     end

  212.     execute_action_skill_KGC_OnScreenStatus

  213.     # 行動後に MP を反映する場合
  214.     if KGC::OnScreenStatus::SKILL_MP_COST_APPLY_TIMING == 1
  215.       update_onscreen_status(@active_battler)
  216.     end
  217.   end
  218.   #--------------------------------------------------------------------------
  219.   # ○ オンスクリーンステータスを更新
  220.   #     target : 対象者
  221.   #--------------------------------------------------------------------------
  222.   def update_onscreen_status(target)
  223.     if target.is_a?(Game_Actor)
  224.       @onscreen_status_window.redraw(target)
  225.     elsif $imported["CooperationSkill"] &&
  226.         target.is_a?(Game_CooperationBattler)
  227.       @onscreen_status_window.refresh
  228.     end
  229.   end
  230.   #--------------------------------------------------------------------------
  231.   # ● HP ダメージ表示
  232.   #     target : 対象者
  233.   #     obj    : スキルまたはアイテム
  234.   #--------------------------------------------------------------------------
  235.   alias display_hp_damage_KGC_OnScreenStatus display_hp_damage
  236.   def display_hp_damage(target, obj = nil)
  237.     update_onscreen_status(target)
  238.     if target.absorbed
  239.       # 吸収の場合は行動者も更新
  240.       update_onscreen_status(@active_battler)
  241.     end

  242.     display_hp_damage_KGC_OnScreenStatus(target, obj)
  243.   end
  244.   #--------------------------------------------------------------------------
  245.   # ● MP ダメージ表示
  246.   #     target : 対象者
  247.   #     obj    : スキルまたはアイテム
  248.   #--------------------------------------------------------------------------
  249.   alias display_mp_damage_KGC_OnScreenStatus display_mp_damage
  250.   def display_mp_damage(target, obj = nil)
  251.     update_onscreen_status(target)
  252.     if target.absorbed
  253.       # 吸収の場合は行動者も更新
  254.       update_onscreen_status(@active_battler)
  255.     end

  256.     display_mp_damage_KGC_OnScreenStatus(target, obj)
  257.   end
  258.   #--------------------------------------------------------------------------
  259.   # ● ステート変化の表示
  260.   #     target : 対象者
  261.   #     obj    : スキルまたはアイテム
  262.   #--------------------------------------------------------------------------
  263.   alias display_state_changes_KGC_OnScreenStatus display_state_changes
  264.   def display_state_changes(target, obj = nil)
  265.     update_onscreen_status(target)

  266.     display_state_changes_KGC_OnScreenStatus(target, obj)
  267.   end
  268. end
复制代码

Lv3.寻梦者

梦石
0
星屑
1357
在线时间
677 小时
注册时间
2009-11-11
帖子
2790
2
发表于 2010-9-9 19:20:05 | 只看该作者
- -这个还是外包比较好,学好脚本比较难挨

嘿。嘿。嘿
回复 支持 反对

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2025-1-13 10:53

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

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