O TEMA DO FÓRUM ESTÁ EM MANUTENÇÃO. FEEDBACKS AQUI: ACESSAR

Bug Fixes

Iniciado por Raizen, 17/01/2013 às 18:29

Bug Fixes

Compativel com: RMVXAce
Compatibilidade :boa
Facilidade de uso: fácil
Lag gerado: nulo
[box class=titlebg]
Condições de Uso
[/box]
  Pode ser modificado, e divulgado em outros lugares, mas peço que não retire os créditos.

[box class=titlebg]
Para que serve o script
[/box]

Corrigir bugs deixados por descuidos de programação.


[box class=titlebg]
Scripts
[/box]

[box class=titlebg]
Bug Fixes oficiais da Enterbrain
[/box]
Pacote de scripts oficial da Enterbrain para quem tem versões anteriores do Ace ( No caso praticamente todo mundo que baixa a versão em português do Ace), corrige alguns bugs muito importantes, como o dispose das imagens
Spoiler
#==============================================================================
# ■ VXAce_SP1
#------------------------------------------------------------------------------
#  プリセットスクリプトの不具合を修正します。ユーザー定義のスクリプト素材は、
# 原則としてこのセクションより下に配置してください。
#==============================================================================

#------------------------------------------------------------------------------
# 【修正内容】
#------------------------------------------------------------------------------
# ●イベントコマンド[ステートの変更]にて、同じステートの付加と解除を同時に実
#   行した際、二回目以降の付加が失敗する不具合を修正しました。
# ●イベントコマンド[アニメーションの表示]にて、表示中のアニメーションがマッ
#   プのスクロールに同期しない不具合を修正しました。
# ●自動戦闘の行動が正常に選択されない不具合を修正しました。
# ●装備できなくなった装備品が外れたことにより、さらに別の装備品が装備できなく
#   なったとき、その装備品が増殖してしまう不具合を修正しました。
# ●イベントコマンド[ピクチャの消去]を実行した後に余分な負荷がかかる不具合を
#   修正しました。
# ●移動ルートのオプション[移動できない場合は飛ばす]にチェックを入れた状態で
#   トリガー[プレイヤーから接触]のイベントに接触すると、イベントが実行中であ
#   っても起動予約がされてしまう不具合を修正しました。
# ●魔法反射されたスキルに対してステート有効度が反映されない不具合を修正しまし
#  た。
# ●フォントのデフォルト設定にて太字または斜体を有効にしていても、ステータス画
#   面を切り替えたとき等に無効な状態に戻ってしまう不具合を修正しました。
#------------------------------------------------------------------------------
class Game_Battler
  attr_accessor :magic_reflection
  #--------------------------------------------------------------------------
  # ● 敵対関係の判定
  #--------------------------------------------------------------------------
  alias vxace_sp1_opposite? opposite?
  def opposite?(battler)
    vxace_sp1_opposite?(battler) || battler.magic_reflection
  end
end
#------------------------------------------------------------------------------
class Game_Actor
  #--------------------------------------------------------------------------
  # ● 装備できない装備品を外す
  #     item_gain : 外した装備品をパーティに戻す
  #--------------------------------------------------------------------------
  alias vxace_sp1_release_unequippable_items release_unequippable_items
  def release_unequippable_items(item_gain = true)
    loop do
      last_equips = equips.dup
      vxace_sp1_release_unequippable_items(item_gain)
      return if equips == last_equips
    end
  end
  #--------------------------------------------------------------------------
  # ● 自動戦闘時の戦闘行動を作成
  #--------------------------------------------------------------------------
  def make_auto_battle_actions
    @actions.size.times do |i|
      @actions = make_action_list.max_by {|action| action.value }
    end
  end
end
#------------------------------------------------------------------------------
class Game_Player
  #--------------------------------------------------------------------------
  # ● マップイベントの起動
  #     triggers : トリガーの配列
  #     normal   : プライオリティ[通常キャラと同じ]かそれ以外か
  #--------------------------------------------------------------------------
  alias vxace_sp1_start_map_event start_map_event
  def start_map_event(x, y, triggers, normal)
    return if $game_map.interpreter.running?
    vxace_sp1_start_map_event(x, y, triggers, normal)
  end
end
#------------------------------------------------------------------------------
class Game_Picture
  #--------------------------------------------------------------------------
  # ● ピクチャの消去
  #--------------------------------------------------------------------------
  alias vxace_sp1_erase erase
  def erase
    vxace_sp1_erase
    @origin = 0
  end
end
#------------------------------------------------------------------------------
class Game_Interpreter
  #--------------------------------------------------------------------------
  # ● ステートの変更
  #--------------------------------------------------------------------------
  alias vxace_sp1_command_313 command_313
  def command_313
    vxace_sp1_command_313
    $game_party.clear_results
  end
end
#------------------------------------------------------------------------------
class Sprite_Character
  #--------------------------------------------------------------------------
  # ● 位置の更新
  #--------------------------------------------------------------------------
  alias vxace_sp1_update_position update_position
  def update_position
    move_animation(@character.screen_x - x, @character.screen_y - y)
    vxace_sp1_update_position
  end
  #--------------------------------------------------------------------------
  # ● アニメーションの移動
  #--------------------------------------------------------------------------
  def move_animation(dx, dy)
    if @animation && @animation.position != 3
      @ani_ox += dx
      @ani_oy += dy
      @ani_sprites.each do |sprite|
        sprite.x += dx
        sprite.y += dy
      end
    end
  end
end
#------------------------------------------------------------------------------
class Sprite_Picture
  #--------------------------------------------------------------------------
  # ● 転送元ビットマップの更新
  #--------------------------------------------------------------------------
  alias vxace_sp1_update_bitmap update_bitmap
  def update_bitmap
    if @picture.name.empty?
      self.bitmap = nil
    else
      vxace_sp1_update_bitmap
    end
  end
end
#------------------------------------------------------------------------------
class Window_Base
  #--------------------------------------------------------------------------
  # ● フォント設定のリセット
  #--------------------------------------------------------------------------
  alias vxace_sp1_reset_font_settings reset_font_settings
  def reset_font_settings
    vxace_sp1_reset_font_settings
    contents.font.bold = Font.default_bold
    contents.font.italic = Font.default_italic
  end
end
#------------------------------------------------------------------------------
class Scene_Battle
  #--------------------------------------------------------------------------
  # ● 魔法反射の発動
  #--------------------------------------------------------------------------
  alias vxace_sp1_invoke_magic_reflection invoke_magic_reflection
  def invoke_magic_reflection(target, item)
    @subject.magic_reflection = true
    vxace_sp1_invoke_magic_reflection(target, item)
    @subject.magic_reflection = false
  end
end
[close]

[box class=titlebg]
Face Bug Fix
[/box]
Corrige o dispose dos gráficos de faces, necessário caso utilize scripts com atualização pesada de faces, como sistemas de batalhas ou huds.
Spoiler
#=======================================================
#         Faces Bug Fix
# Autor : Raizen
# Comunidade : www.centrorpgmaker.com
# Corrige um bug ao usar o comando draw_face
#=======================================================

class Window_Base < Window
    def draw_face(face_name, face_index, x, y, enabled = true)
    bitmap = Cache.face(face_name)
    rect = Rect.new(face_index % 4 * 96, face_index / 4 * 96, 96, 96)
    contents.blt(x, y, bitmap, rect, enabled ? 255 : translucent_alpha)
  end
end
[close]

[box class=titlebg]
Declaração Múltipla
[/box]
Faz essa função abaixa que esta impossibilitado pelo Ace de fazer
Spoiler
[close]
Spoiler
#=======================================================
#        Declaração múltipla
# Autor: Raizen
# Compatibilidade: RMVXAce

# Devolve a função de fazer múltiplas declarações de variaveis.
# Que não está funcionando no Ace.

# Para usar é bem simples.
# Chamar Script: @get_max_variable = n
# Aonde n é a variavel limite que sofrerá as alterações
# e depois basta chamar o opções de variavel e colocar
# o valor inicial que o script fará as declarações restantes
# para o usuário.
#=======================================================

class Game_Interpreter
alias lune_command_122 command_122
  def command_122
    @params[1] = @get_max_variable unless @get_max_variable.nil?
    @get_max_variable = nil
    lune_command_122
  end
end
[close]


[box class=titlebg]
Download
[/box]

Não necessário

[box class=titlebg]
Créditos e Avisos
[/box]
Enterbrain pelo primeiro script
Raizen pelos script seguintes

Raizen, quais outros bugs o VXace_SP1 corrige? Pois você já fez um script de dispose de imagens, não foi?

Pode ser mais específico me caro? grato.

Citação de: Sourcecode online 12/06/2014 às 03:58
Pode ser mais específico me caro? grato.

eu ou o Raizen? o.O

Citação de: tiagoms online 12/06/2014 às 11:41
Citação de: Sourcecode online 12/06/2014 às 03:58
Pode ser mais específico me caro? grato.

eu ou o Raizen? o.O
Ah eu tinha a lista do que era corrigido, mas é simples, eles pegaram todos os vacilos que deixaram no rpg maker e arrumaram, e sim ta incluso aquele picture bug fix ai dentro :X, e tem outras coisas, mas os outros são bugs bem menores.

Gente o.O

Usei isso aí tirou todo o lag do meu jogo.
Não sabia que iria mudar tanto assim. Há alguma maneira de tipo deixar como um script principal?

Tipo ao criar um novo projeto já vir com ele além dos outros?