Ver Resposta Única
  #1 (permalink)  
Antigo 09-04-2008, 06:31
Avatar de Falco
Falco Falco está offline
Doing a barrel roll!
Pontos: 26,367, Nível: 23 Pontos: 26,367, Nível: 23 Pontos: 26,367, Nível: 23
Atividade: 94% Atividade: 94% Atividade: 94%
 
Data de Entrada: Jan 2008
Posts: 1,505
Reputação: 79
Falco é bem famoso nesta comunidade
Enviar mensagem via MSN para Falco Enviar mensagem via Yahoo para Falco
Exclamation Bug das variáveis com valor errado

Pessoal, existe um bug muito chato no RPG Maker VX que causa alguns problemas durante o gerenciamento de variáveis do jogo. Acontece que algumas variáveis pegam valores errados e continuam a execução, causando vários problemas no jogo. Enfim, para corrigir este problema, basta copiar o código abaixo e criar um novo script na seção de Scripts Adicionais.

Código:
class Game_Interpreter
  def command_122
    value = 0
    case @params[3]  # Operador
    when 0  # Constante
      value = @params[4]
    when 1  # Variável
      value = $game_variables[@params[4]]
    when 2  # Aleatório
      value = @params[4] + rand(@params[5] - @params[4] + 1)
    when 3  # Item
      value = $game_party.item_number($data_items[@params[4]])
    when 4  # Personagem
      actor = $game_actors[@params[4]]
      if actor != nil
        case @params[5]
        when 0  # Nível
          value = actor.level
        when 1  # EXP
          value = actor.exp
        when 2  # HP
          value = actor.hp
        when 3  # MP
          value = actor.mp
        when 4  # HP Máximo
          value = actor.maxhp
        when 5  # MP Máximo
          value = actor.maxmp
        when 6  # Ataque
          value = actor.atk
        when 7  # Defesa
          value = actor.def
        when 8  # Inteligência
          value = actor.spi
        when 9  # Agilidade
          value = actor.agi
        end
      end
    when 5  # Inimigo
      enemy = $game_troop.members[@params[4]]
      if enemy != nil
        case @params[5]
        when 0  # HP
          value = enemy.hp
        when 1  # MP
          value = enemy.mp
        when 2  # HP Máximo
          value = enemy.maxhp
        when 3  # MP Màximo
          value = enemy.maxmp
        when 4  # Ataque
          value = enemy.atk
        when 5  # Defesa
          value = enemy.def
        when 6  # Inteligência
          value = enemy.spi
        when 7  # Agilidade
          value = enemy.agi
        end
      end
    when 6  # Jogador
      character = get_character(@params[4])
      if character != nil
        case @params[5]
        when 0  # Coordenada X
          value = character.x
        when 1  # Coordenada Y
          value = character.y
        when 2  # Direção
          value = character.direction
        when 3  # Coordenada X da tela
          value = character.screen_x
        when 4  # Coordenada Y da tela
          value = character.screen_y
        end
      end
    when 7  # Outros
      case @params[4]
      when 0  # ID do mapa
        value = $game_map.map_id
      when 1  # Número de personagens no grupo
        value = $game_party.members.size
      when 2  # Dinheiro
        value = $game_party.gold
      when 3  # Passos
        value = $game_party.steps
      when 4  # Tempo de jogo
        value = Graphics.frame_count / Graphics.frame_rate
      when 5  # Timer
        value = $game_system.timer / Graphics.frame_rate
      when 6  # Número de saves
        value = $game_system.save_count
      end
    end
    for i in @params[0] .. @params[1]   # Batch control
      case @params[2]  # Operação
      when 0  # Igual
        $game_variables[i] = value
      when 1  # Adicionar
        $game_variables[i] += value
      when 2  # Subtrair
        $game_variables[i] -= value
      when 3  # Multiplicar
        $game_variables[i] *= value
      when 4  # Dividir
        $game_variables[i] /= value if value != 0
      when 5  # Porcentagem
        $game_variables[i] %= value if value != 0
      end
      if $game_variables[i] > 99999999    # Limite
        $game_variables[i] = 99999999
      end
      if $game_variables[i] < -99999999   # Limite
        $game_variables[i] = -99999999
      end
    end
    $game_map.need_refresh = true
    return true
  end
end
Responder com Quote