查看: 5216|回复: 13

[已经解决] VA战斗时显示文章是否可以达到以下效果

[复制链接]

虚空人形

梦石
0
星屑
4866
在线时间
2037 小时
注册时间
2011-8-11
回帖
3260

贵宾

发表于 2012-12-20 13:49:23 | 显示全部楼层 |阅读模式

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

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

×
本帖最后由 hcm 于 2012-12-20 23:50 编辑

如图,显示文章和信息(在上方)时,我方的状态栏没有消失。
原本VA只有战斗时的行动信息才会在上方显示。
未命名.jpg
未命名2.jpg
未命名3.jpg
梦石
0
星屑
74
在线时间
154 小时
注册时间
2012-10-7
回帖
41
发表于 2012-12-20 20:59:44 | 显示全部楼层
在Scene_Battle脚本中135那行修改,把136行和138行的status_window.close修改成status_window.open就行了。
  1. Scene_Battle < Scene_Base
  2. def update_message_open
  3.     if $game_message.busy? && !@status_window.open?#close
  4.       @message_window.openness = 0
  5.       @status_window.open#close
  6.       @party_command_window.close
  7.       @actor_command_window.close
  8.     end
  9.   end
复制代码
回复

使用道具 举报

虚空人形

梦石
0
星屑
4866
在线时间
2037 小时
注册时间
2011-8-11
回帖
3260

贵宾

 楼主| 发表于 2012-12-20 21:50:15 | 显示全部楼层
uuiio797 发表于 2012-12-20 20:59
在Scene_Battle脚本中135那行修改,把136行和138行的status_window.close修改成status_window.open就行了。 ...

如果说是这样改的话没反应哦:
  1.   def update_message_open
  2.     if $game_message.busy? && !@status_window.close?
  3.       @message_window.openness = 0
  4.       @status_window.open
  5.       @party_command_window.close
  6.       @actor_command_window.open
  7.     end
  8.   end
复制代码
回复

使用道具 举报

梦石
0
星屑
74
在线时间
154 小时
注册时间
2012-10-7
回帖
41
发表于 2012-12-20 21:56:56 | 显示全部楼层
136那行最后的!@status_window.close?改成!@status_window.open?就行了

点评

hcm
把战斗画面的显示信息的全部效果截图了,可以再帮看一下吗?  发表于 2012-12-20 23:42
回复

使用道具 举报

虚空人形

梦石
0
星屑
4866
在线时间
2037 小时
注册时间
2011-8-11
回帖
3260

贵宾

 楼主| 发表于 2012-12-20 23:08:49 | 显示全部楼层
uuiio797 发表于 2012-12-20 21:56
136那行最后的!@status_window.close?改成!@status_window.open?就行了

这样是可以,但是在战斗开始的信息和战斗结束的信息显示状态栏也不消失,
是否可以改变这些信息提示的坐标?
回复

使用道具 举报

梦石
0
星屑
74
在线时间
154 小时
注册时间
2012-10-7
回帖
41
发表于 2012-12-21 14:36:39 | 显示全部楼层
本帖最后由 uuiio797 于 2012-12-21 14:47 编辑
hcm 发表于 2012-12-20 23:08
这样是可以,但是在战斗开始的信息和战斗结束的信息显示状态栏也不消失,
是否可以改变这些信息提示的坐 ...


复制该脚本到外挂脚本那就行了。
修改战斗显示文章信息的脚本:
[pre lang="ruby" line="1"]#encoding:utf-8
#==============================================================================
# ■ BattleManager
#------------------------------------------------------------------------------
#  战斗信息文章位置修改。
#==============================================================================

module BattleManager

  #--------------------------------------------------------------------------
  # ● 戰鬥開始 【再定义】
  #--------------------------------------------------------------------------
  def self.battle_start
    $game_system.battle_count += 1
    $game_party.on_battle_start
    $game_troop.on_battle_start
    $game_troop.enemy_names.each do |name|
      $game_message.add(sprintf(Vocab::Emerge, name))# 战斗开始显示的文章(普通遇敌)
      $game_message.position = 0 # 显示文章的位置:0上1中2下
    end
    if @preemptive
      $game_message.add(sprintf(Vocab::Preemptive, $game_party.name))# 战斗开始显示的文章(先发制人)
      $game_message.position = 0
    elsif @surprise
      $game_message.add(sprintf(Vocab::Surprise, $game_party.name))# 战斗开始显示的文章(被敌人偷袭)
      $game_message.position = 0
    end
    wait_for_message
  end
  #--------------------------------------------------------------------------
  # ● 勝利時的處理【再定义】
  #--------------------------------------------------------------------------
  def self.process_victory
    play_battle_end_me
    replay_bgm_and_bgs
    $game_message.add(sprintf(Vocab::Victory, $game_party.name))# 胜利显示的文章
    $game_message.position = 0
    display_exp
    gain_gold
    gain_drop_items
    gain_exp
    SceneManager.return
    battle_end(0)
    return true
  end
  #--------------------------------------------------------------------------
  # ● 撤退時的處理【再定义】
  #--------------------------------------------------------------------------
  def self.process_escape
    $game_message.add(sprintf(Vocab::EscapeStart, $game_party.name))# 撤退成功的文章
    $game_message.position = 0
    success = @preemptive ? true : (rand < @escape_ratio)
    Sound.play_escape
    if success
      process_abort
    else
      @escape_ratio += 0.1
      $game_message.add('\.' + Vocab::EscapeFailure)# 撤退失败的文章
      $game_message.position = 0
      $game_party.clear_actions
    end
    wait_for_message
    return success
  end
  #--------------------------------------------------------------------------
  # ● 全滅時的處理
  #--------------------------------------------------------------------------
  def self.process_defeat
    $game_message.add(sprintf(Vocab::Defeat, $game_party.name))
    $game_message.position = 0
    wait_for_message
    if @can_lose
      revive_battle_members
      replay_bgm_and_bgs
      SceneManager.return
    else
      SceneManager.goto(Scene_Gameover)
    end
    battle_end(2)
    return true
  end
  #--------------------------------------------------------------------------
  # ● 顯示獲得的經驗值【再定义】
  #--------------------------------------------------------------------------
  def self.display_exp
    if $game_troop.exp_total > 0
      text = sprintf(Vocab::ObtainExp, $game_troop.exp_total)
      $game_message.add('\.' + text)# 获得经验的文章
      $game_message.position = 0
    end
  end
  #--------------------------------------------------------------------------
  # ● 顯示獲得的金錢【再定义】
  #--------------------------------------------------------------------------
  def self.gain_gold
    if $game_troop.gold_total > 0
      text = sprintf(Vocab::ObtainGold, $game_troop.gold_total)
      $game_message.add('\.' + text)# 获得金钱的文章
      $game_message.position = 0
      $game_party.gain_gold($game_troop.gold_total)
    end
    wait_for_message
  end
  #--------------------------------------------------------------------------
  # ● 顯示獲得的物品【再定义】
  #--------------------------------------------------------------------------
  def self.gain_drop_items
    $game_troop.make_drop_items.each do |item|
      $game_party.gain_item(item, 1)
      $game_message.add(sprintf(Vocab::ObtainItem, item.name))# 获得物品的文章
      $game_message.position = 0
    end
    wait_for_message
  end
end[/pre]
回复

使用道具 举报

虚空人形

梦石
0
星屑
4866
在线时间
2037 小时
注册时间
2011-8-11
回帖
3260

贵宾

 楼主| 发表于 2012-12-21 16:01:02 | 显示全部楼层
uuiio797 发表于 2012-12-21 14:36
复制该脚本到外挂脚本那就行了。
修改战斗显示文章信息的脚本:
#encoding:utf-8


位置问题解决了,
本想继续按图上那样,先把窗口本身去掉或改为暗化,
按通常去掉窗口的方法是在初始化 end 前面加 self.opacity = 0后插入一段def draw_background...什么的
不过该脚本好像没有适合插入的地方。
回复

使用道具 举报

梦石
0
星屑
74
在线时间
154 小时
注册时间
2012-10-7
回帖
41
发表于 2012-12-21 16:46:06 | 显示全部楼层
插入外挂脚本下面就行了。
2012-12-21_164652.png
回复

使用道具 举报

虚空人形

梦石
0
星屑
4866
在线时间
2037 小时
注册时间
2011-8-11
回帖
3260

贵宾

 楼主| 发表于 2012-12-21 17:24:53 | 显示全部楼层
uuiio797 发表于 2012-12-21 16:46
插入外挂脚本下面就行了。

显然不可以直接插入啊
  1.   def initialize
  2.     super(0, 0, window_width, window_height)
  3.     self.z = 200
  4.     self.opacity = 0
  5.     @lines = []
  6.     @num_wait = 0
  7.     create_back_bitmap
  8.     create_back_sprite
  9.     refresh
  10.   end
  11. #————————————————————————————————
  12.   def create_back_sprite
  13.     @back_sprite = Sprite.new
  14.     @back_sprite.bitmap = @back_bitmap
  15.     @back_sprite.y = y
  16.     @back_sprite.z = z - 1
  17.   end
  18.   def dispose_back_bitmap
  19.     @back_bitmap.dispose
  20.   end
  21.   def dispose_back_sprite
  22.     @back_sprite.dispose
  23.   end
  24.   def clear
  25.     @num_wait = 0
  26.     @lines.clear
  27.     refresh
  28.   end
复制代码
回复

使用道具 举报

梦石
0
星屑
74
在线时间
154 小时
注册时间
2012-10-7
回帖
41
发表于 2012-12-21 19:05:30 | 显示全部楼层
hcm 发表于 2012-12-21 17:24
显然不可以直接插入啊

该脚本主要做什么?
回复

使用道具 举报

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

本版积分规则

Powered by Discuz! X5.0 © 2001-2026 Discuz! Team.

在本版发帖返回顶部