查看: 3638|回复: 4

[已经解决] (已经解决)请问如何加快战斗速度?

[复制链接]
梦石
0
星屑
175
在线时间
59 小时
注册时间
2018-12-6
回帖
2
发表于 2019-7-6 18:33:27 | 显示全部楼层 |阅读模式

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

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

×
本帖最后由 WhiteBrowned 于 2019-7-8 10:16 编辑

(已经解决)

每一次动画后结算伤害速度太慢了(是电脑配置的原因?

比如我做了一个两次攻击效果的技能

使用技能→动画→结算第一次伤害(大概过1s)→结算第二次伤害

整体下来的战斗会非常慢,请问有没有办法 加快 伤害结算的速度   或者   使用技能产生效果的速度?
梦石
0
星屑
2920
在线时间
713 小时
注册时间
2010-7-25
回帖
659

开拓者

发表于 2019-7-6 19:43:31 | 显示全部楼层
按住shift可以加速
如果觉得还不够快可以用下面的脚本,然后按住ctrl就能大幅加速
脚本
[pre lang="ruby"]
#==============================================================================
# ■ RGSS3 戦闘超高速化  Ver1.01a by 星潟
#------------------------------------------------------------------------------
# 戦闘時の処理速度を超高速化します。
# 押したボタンによって挙動の違う高速化が行われます。
# それぞれ以下のようになります。
#
# Lボタン(Qキー)         : 処理のみ高速化
# CTRLキー               : 処理とアニメーションを高速化
# Aボタン(SHIFTキー)     : アニメーションのみ高速化
#
# また、テストモード限定化する機能を追加しました。
#------------------------------------------------------------------------------
# Ver1.01a テスト判定を修正。
#==============================================================================
module BATTLE_S_UP
  
  #戦闘超高速化ボタン1を設定します。
  #こちらでは、処理は高速化されますがアニメーション速度は変更しません。
  #無効にしたい場合は配列を空([]という風に、中身を消す)にして下さい。
  #複数設定したい場合は、ヘルプをInputで検索し
  #下部にある定数の項目から、設定したいボタンを選び、「,」で区切って
  #配列内に追加して下さい。

  #メッセージログと被るので変更
  
  KEY1 = [:Z]
  
  #戦闘超高速化ボタン2を設定します。
  #こちらでは、処理もアニメーション速度も変更されます。
  #無効にしたい場合は配列を空([]という風に、中身を消す)にして下さい。
  #複数設定したい場合は、ヘルプをInputで検索し
  #下部にある定数の項目から、設定したいボタンを選び、「,」で区切って
  #配列内に追加して下さい。
  
  KEY2 = [:CTRL]
  
  #戦闘超高速化ボタン3を設定します。
  #こちらでは、処理を高速化せずアニメーション速度のみ変更されます。
  #無効にしたい場合は配列を空([]という風に、中身を消す)にして下さい。
  #複数設定したい場合は、ヘルプをInputで検索し
  #下部にある定数の項目から、設定したいボタンを選び、「,」で区切って
  #配列内に追加して下さい。
  
  KEY3 = [:A]
  
  #アニメーション速度高速化時の倍率を設定します。
  
  ASPD = 4
  
  #テストモードのみ有効にするかどうかを設定します。
  #true:テストモードのみ/false:限定しない
  
  TEST = false
  
end

#テストモード限定化されている場合、テストモードでない場合は無効にする。

if !BATTLE_S_UP::TEST or (BATTLE_S_UP::TEST && ($TEST or $BTEST))
class Sprite_Base < Sprite
  #--------------------------------------------------------------------------
  # アニメーションの更新
  #--------------------------------------------------------------------------
  alias update_animation_speedup update_animation
  def update_animation
   
    #戦闘中であり、なおかつ高速化が可能であり
    #高速化ボタン2もしくはボタン3が押してある場合は
    #アニメーション高速化倍率に応じて処理を高速化する。
   
    number = SceneManager.scene_is?(Scene_Battle) &&
    $game_troop.show_fast_extra &&
    ($game_troop.show_fast_extra_flag2 or
    $game_troop.show_fast_extra_flag3) ? BATTLE_S_UP::ASPD : 1
    number.times {update_animation_speedup}
  end
end
class Scene_Battle < Scene_Base
  #--------------------------------------------------------------------------
  # 開始処理
  #--------------------------------------------------------------------------
  alias start_sup start
  def start
   
    #本来の処理を実行。
   
    start_sup
   
    #高速化を有効にする。
   
    $game_troop.show_fast_extra = true
  end
  #--------------------------------------------------------------------------
  # アニメーション表示が終わるまでウェイト
  #--------------------------------------------------------------------------
  alias wait_for_animation_speedup wait_for_animation
  def wait_for_animation
   
    #高速化中の場合はウェイトを5フレームに短縮する。
   
    show_fast_extra? ? wait(5) : wait_for_animation_speedup
  end
  #--------------------------------------------------------------------------
  # エフェクト実行が終わるまでウェイト
  #--------------------------------------------------------------------------
  alias wait_for_effect_speedup wait_for_effect
  def wait_for_effect
   
    #高速化中の場合はウェイトを5フレームに短縮する。
   
    show_fast_extra? ? wait(5) : wait_for_effect_speedup
  end
  #--------------------------------------------------------------------------
  # ウェイト
  #--------------------------------------------------------------------------
  alias wait_speedup wait
  def wait(duration)
   
    #高速化中の場合はウェイトを20分の1に短縮する。
   
    show_fast_extra? ? duration.times {|i| update_for_wait if i < duration / 20 } : wait_speedup(duration)
  end
  #--------------------------------------------------------------------------
  # 短時間ウェイト(早送り無効)
  #--------------------------------------------------------------------------
  alias abs_wait_short_speedup abs_wait_short
  def abs_wait_short
   
    #高速化中の場合はウェイトを5フレームに短縮する。
   
    show_fast_extra? ? abs_wait(5) : abs_wait_short_speedup
  end
  #--------------------------------------------------------------------------
  # 短時間ウェイト(早送り無効)
  #--------------------------------------------------------------------------
  alias abs_wait_speedup abs_wait
  def abs_wait(duration)
   
    #高速化中の場合はウェイトを20分の1に短縮する。
   
    show_fast_extra? ? duration.times {|i| update_for_wait if i < duration / 20} : abs_wait_speedup(duration)
  end
  #--------------------------------------------------------------------------
  # 超高速化判定
  #--------------------------------------------------------------------------
  def show_fast_extra?
   
    #高速化中が可能であり、なおかつ高速化ボタン1か2が押されている場合は
    #超高速化して処理を行う。
   
    $game_troop.show_fast_extra && ($game_troop.show_fast_extra_flag1 or $game_troop.show_fast_extra_flag2)
  end
end

#==============================================================================
# ■ Game_Troop
#------------------------------------------------------------------------------
#  敵グループおよび戦闘に関するデータを扱うクラスです。バトルイベントの処理も
# 行います。このクラスのインスタンスは $game_troop で参照されます。
#==============================================================================

class Game_Troop < Game_Unit
  attr_accessor   :show_fast_extra
  #--------------------------------------------------------------------------
  # オブジェクト初期化
  #--------------------------------------------------------------------------
  alias initialize_h_sp_battle initialize
  def initialize
   
    #本来の処理を実行する。
   
    initialize_h_sp_battle
   
    #高速化を可能にする。
   
    @show_fast_extra = true
  end
  #--------------------------------------------------------------------------
  # 高速表示フラグ1
  #--------------------------------------------------------------------------
  def show_fast_extra_flag1
   
    #高速化ボタン1が存在しない場合はfalseを返す。
    #そうでない場合、高速化ボタン1のどれかが押されている場合にtrueを返す。
   
    BATTLE_S_UP::KEY1.empty? ? false : BATTLE_S_UP::KEY1.each {|k| return true if Input.press?(k)};false
   
  end
  #--------------------------------------------------------------------------
  # 高速表示フラグ2
  #--------------------------------------------------------------------------
  def show_fast_extra_flag2
   
    #高速化ボタン2が存在しない場合はfalseを返す。
    #そうでない場合、高速化ボタン2のどれかが押されている場合にtrueを返す。
   
    BATTLE_S_UP::KEY2.empty? ? false : BATTLE_S_UP::KEY2.each {|k| return true if Input.press?(k)};false
   
  end
  #--------------------------------------------------------------------------
  # 高速表示フラグ3
  #--------------------------------------------------------------------------
  def show_fast_extra_flag3
   
    #高速化ボタン3が存在しない場合はfalseを返す。
    #そうでない場合、高速化ボタン3のどれかが押されている場合にtrueを返す。
   
    BATTLE_S_UP::KEY3.empty? ? false : BATTLE_S_UP::KEY3.each {|k| return true if Input.press?(k)};false
   
  end
end
class << BattleManager
  #--------------------------------------------------------------------------
  # [エイリアス]:勝利の処理
  #--------------------------------------------------------------------------
  alias process_victory_h_sp_battle process_victory
  def process_victory
   
    #高速化を無効にする。
   
    $game_troop.show_fast_extra = false
   
    #本来の処理を実行。
   
    process_victory_h_sp_battle
  end
  #--------------------------------------------------------------------------
  # [エイリアス]:逃走の処理
  #--------------------------------------------------------------------------
  alias process_escape_h_sp_battle process_escape
  def process_escape
   
    #高速化を無効にする。
   
    $game_troop.show_fast_extra = false
   
    #本来の処理を実行。
   
    process_escape_h_sp_battle
  end
  #--------------------------------------------------------------------------
  # [エイリアス]:敗北の処理
  #--------------------------------------------------------------------------
  alias process_defeat_h_sp_battle process_defeat
  def process_defeat
   
    #高速化を無効にする。
   
    $game_troop.show_fast_extra = false
   
    #本来の処理を実行。
   
    process_defeat_h_sp_battle
  end
end
end
[/pre]

评分

参与人数 2星屑 +50 赞 +1 收起 理由
VIPArcher + 50 认可答案
WhiteBrowned + 1 认可答案

查看全部评分

回复 1 0

使用道具 举报

梦石
0
星屑
175
在线时间
59 小时
注册时间
2018-12-6
回帖
2
 楼主| 发表于 2019-7-6 20:40:37 | 显示全部楼层
jianyulei 发表于 2019-7-6 19:43
按住shift可以加速
如果觉得还不够快可以用下面的脚本,然后按住ctrl就能大幅加速
[fold=脚本]

感谢回复,测试有效,就是速度快过头了...我电脑有点旧直接卡死了

请问能够修改战斗中默认速度吗? 或者说开关1打开,速度就上去了,无需按键
回复

使用道具 举报

梦石
0
星屑
2920
在线时间
713 小时
注册时间
2010-7-25
回帖
659

开拓者

发表于 2019-7-7 16:30:00 | 显示全部楼层
WhiteBrowned 发表于 2019-7-6 20:40
感谢回复,测试有效,就是速度快过头了...我电脑有点旧直接卡死了

请问能够修改战斗中默认速度 ...

我没研究过这个,不清楚,一般脚本效果不错我就只管用脚本了,话说你的电脑差过头了吧,我的老爷机也没说直接就卡死啊,你看看是不是什么脚本导致的变卡,例如某脸图战斗脚本就会导致很卡.
你先将工程复制一个,然后删除除了加速脚本以外的所有脚本试试卡机有无好转
回复

使用道具 举报

梦石
0
星屑
175
在线时间
59 小时
注册时间
2018-12-6
回帖
2
 楼主| 发表于 2019-7-8 09:30:58 | 显示全部楼层
jianyulei 发表于 2019-7-7 16:30
我没研究过这个,不清楚,一般脚本效果不错我就只管用脚本了,话说你的电脑差过头了吧,我的老爷机也没说直接 ...

确实我用了脸图战斗,说准确点是游戏很卡...抱歉,是我表述有点夸张。

不过脚本是不错的,感谢提供的脚本
回复

使用道具 举报

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

本版积分规则

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

在本版发帖返回顶部