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