Sistema De Guia de Monstros
Publicado em 27 de dezembro de 2012.Este é um script criado por SephirothSpawn para o RPG Maker XP, que cria um Guia de Monstros estilo Poke-DEX com informações sobre os inimigos como HP, MP, GOLD, itens, fraquezas… Enfim, um perfil razoavelmente completo de cada monstro.
Screenshots
Instruções
Cole o script acima do Main. Para ativar, chame-o com: $scene = Scene_Beastairy.new
Código
#==============================================================================
# Sistema de Guia de Monstros
#--------------------------------------------------------------------------
# Criado por SephirothSpawn (11.18.05)
# Ultima Atualização: 11.18.05
# class.rgss
#==============================================================================
# DESCRIÇÃO
#==============================================================================
# Este Script cria um Guia de Monstros estilo Poke-DEX com informações
# sobre os inimigos como hp, mp, gold, itens, fraquesas um perfil completo
#==============================================================================
# INSTRUÇÕES
#==============================================================================
# Cole este Script Acima do main!
# Para Ativalo chame-o com: $scene = Scene_Beastairy.new
#==============================================================================
# ** Classe Scene Title
#==============================================================================
class Scene_Title
#--------------------------------------------------------------------------
# * Alias' Novo Game / Metodo
#--------------------------------------------------------------------------
alias new_game command_new_game
#--------------------------------------------------------------------------
# * Adiciona ao Game Variaveis do Beastairy
#--------------------------------------------------------------------------
def command_new_game
# Sets Up Smithery List
$game_beastairy = Game_Beastairy.new
new_game
end
end
#==============================================================================
# ** Game_Temp
#==============================================================================
class Game_Temp
#--------------------------------------------------------------------------
# * Publica Variavies de Instancia
#--------------------------------------------------------------------------
attr_accessor :beastairy_return
#--------------------------------------------------------------------------
# * Inicialização Alias
#--------------------------------------------------------------------------
alias beastairy_initialize initialize
#--------------------------------------------------------------------------
# * Inicialização de Objetos
#--------------------------------------------------------------------------
def initialize
beastairy_initialize
@beastairy_return = false
end
end
#==============================================================================
# ** Classe Game Guia de Monstros
#==============================================================================
class Game_Beastairy
#--------------------------------------------------------------------------
# * Publica Variavies de Instancia
#--------------------------------------------------------------------------
attr_accessor :monster_groups
#--------------------------------------------------------------------------
# * Inicialização de Objetos
#--------------------------------------------------------------------------
def initialize
@monster_groups = []
for i in 1...$data_enemies.size
$data_enemies[i].beastairy_setup
unless @monster_groups.include?($data_enemies[i].group)
@monster_groups.push($data_enemies[i].group)
end
end
end
end
#==============================================================================
# ** Modulo RPG
#==============================================================================
module RPG
#=========================================================================
# ** Classe Inimigo
#=========================================================================
class Enemy
#--------------------------------------------------------------------------
# * Publica Variavies de Instancia
#--------------------------------------------------------------------------
# Detectors
attr_accessor :seen, :defeated, :group
# Counters
attr_accessor :seen_times, :defeated_times
#--------------------------------------------------------------------------
# * Setup do Guia de Monstros
#--------------------------------------------------------------------------
def beastairy_setup
@seen_times, @defeated_times = 0, 0
@seen, @defeated = false, false
if @name.include?('(')
a, b = @name.index('('), @name.index(')')
@group = @name.slice!(a..b)
@group.delete!('(')
@group.delete!(')')
else
@group = "Sem Classificação"
end
end
#--------------------------------------------------------------------------
# * Viu Inimigo
#--------------------------------------------------------------------------
def see
@seen = true
@seen_times += 1
end
#--------------------------------------------------------------------------
# * Matou o Inimigo
#--------------------------------------------------------------------------
def defeat
@defeated = true
@defeated_times += 1
end
end
end
#==============================================================================
# ** Scene_Save
#==============================================================================
class Scene_Save < Scene_File
#--------------------------------------------------------------------------
# * Alias Salva Dados
#--------------------------------------------------------------------------
alias new_save write_save_data
#--------------------------------------------------------------------------
# * Escreve Dados Salvos
#--------------------------------------------------------------------------
def write_save_data(file)
new_save(file)
Marshal.dump($game_beastairy, file)
end
end
#==============================================================================
# ** Scene_Load
#==============================================================================
class Scene_Load < Scene_File
#--------------------------------------------------------------------------
# * Alias Lê Dados salvos
#--------------------------------------------------------------------------
alias new_load read_save_data
#--------------------------------------------------------------------------
# * Lê Arquivos Salvos
#--------------------------------------------------------------------------
def read_save_data(file)
new_load(file)
$game_beastairy = Marshal.load(file)
end
end
#==============================================================================
# ** Classe Window Base
#==============================================================================
class Window_Base < Window
#--------------------------------------------------------------------------
# * Pega O Sprite Inimigo
#--------------------------------------------------------------------------
def draw_enemy_sprite(x, y, enemy_name, enemy_hue, pose, frame)
bitmap = RPG::Cache.character(enemy_name, enemy_hue)
cw = bitmap.width / 4
ch = bitmap.height / 4
# Olhando para:
case pose
when 0 ;a = 0 # Baixo
when 1 ;a = ch # Esquerda
when 2 ;a = ch * 3 # Cima
when 3 ;a = ch * 2 # Direita
end
# Animação decorrente
case frame
when 0 ;b = 0
when 1 ;b = cw
when 2 ;b = cw * 2
when 3 ;b = cw * 3
end
# Bitmap Rectange
src_rect = Rect.new(b, a, cw, ch)
# Pega o Bitmap
self.contents.blt(x - cw / 2, y - ch, bitmap, src_rect)
end
end
#==============================================================================
# Janela de Informações sobre o Grupo dos Monstros
#==============================================================================
class Window_Monster_Group_Info < Window_Base
#--------------------------------------------------------------------------
# * Inicialização de Objetos
#--------------------------------------------------------------------------
def initialize
super(200, 0, 440, 480)
self.contents = Bitmap.new(width - 32, height - 32)
refresh(0, 0, 0)
end
#--------------------------------------------------------------------------
# * Atualiza
# index : Index dos grupos do Game_Beastairy.Groups
# pose : Pose do Character do Inimigo
# frame : Quadro da Pose
#--------------------------------------------------------------------------
def refresh(index, pose, frame)
# Limpa Janelas
contents.clear
# Seta o nome do grupo
group_name = $game_beastairy.monster_groups[index]
# Seta o inimigo no grupo
enemies = []
for i in 1...$data_enemies.size
if $data_enemies[i].group == group_name
enemies.push($data_enemies[i])
end
end
group_name = "Sair" if index == $game_beastairy.monster_groups.size
# Puxa o nome do Grupo do Inimigo
contents.font.color = system_color
contents.draw_text(0, 0, self.width - 32, 32, group_name, 1)
unless index == $game_beastairy.monster_groups.size
# Graficos Offsets / Posição X
graphics_offset = contents.width / (enemies.size + 1)
# Pega os Graficos do Inimigo
for i in 0...enemies.size
draw_enemy_sprite(graphics_offset * (i + 1), 124, enemies[i].battler_name , enemies[i].battler_hue , pose, frame)
end
# HP, SP, e Palavra Gold
hp_word = $data_system.words.hp
sp_word = $data_system.words.sp
gold_word = $data_system.words.gold
# Escreve os titulos dos atributos
contents.draw_text(4, 128, width, 24, "Nome")
contents.draw_text(0, 128, 200, 24, "Max #{hp_word}", 2)
contents.draw_text(0, 128, 300, 24, "Max #{sp_word}", 2)
contents.draw_text(-4, 128, contents.width, 24, "#{gold_word}old Ganho", 2)
# Pega os Status do Inimigo
contents.font.color = normal_color
for i in 0...enemies.size
# Seta os Status do Inimigo
name, hp, sp, gold = "??????????", "???", "???", "?????"
name, hp, sp = enemies[i].name, enemies[i].maxhp, enemies[i].maxsp if enemies[i].seen
gold = enemies[i].gold if enemies[i].defeated
# Desenha o Status
contents.draw_text(4, 152 + (i * 24), width, 24, name)
contents.draw_text(0, 152 + (i * 24), 200, 24, "#{hp}", 2)
contents.draw_text(0, 152 + (i * 24), 300, 24, "#{sp}", 2)
contents.draw_text(-4, 152 + (i * 24), contents.width, 24, "#{gold}", 2)
end
end
end
end
#==============================================================================
# Janela de Informação do Monstro
#==============================================================================
class Window_Monster_Info < Window_Base
#--------------------------------------------------------------------------
# * Inicialização de Objetos
#--------------------------------------------------------------------------
def initialize
super(200, 0, 440, 480)
self.contents = Bitmap.new(width - 32, height - 32)
end
#--------------------------------------------------------------------------
# * Atualização
# index : Index do inmigo do $data_enemies
# Pose do Character do Inimigo
# frame : Quadro da Pose
#--------------------------------------------------------------------------
def refresh(index, pose, frame)
# Limpa Janelas
contents.clear
# Inimigo
enemy = $data_enemies[index]
# Imagens dos Graficos
draw_enemy_sprite(52, 100, enemy.battler_name , enemy.battler_hue, pose, frame)
# Falta de informaçoes
name = "??????????"
maxhp = maxsp = str = dex = agi = int = atk = pdef = mdef = eva = "???"
exp = gold = item_id = weapon_id = armor_id = treasure_prob = "?????"
item_icon = weapon_icon = armor_icon = "049-Skill06"
armor_type = 2
# Se o inimigo já tiver sido encontrado(visto)
if enemy.seen
name = enemy.name
maxhp = enemy.maxhp.to_s
maxsp = enemy.maxsp.to_s
str = enemy.str.to_s
dex = enemy.dex.to_s
agi = enemy.agi.to_s
int = enemy.int.to_s
atk = enemy.atk.to_s
pdef = enemy.pdef.to_s
mdef = enemy.mdef.to_s
eva = enemy.eva.to_s
end
# Se o Inimigo foi Derrotado
if enemy.defeated
exp = enemy.exp.to_s
gold = enemy.gold.to_s
if enemy.item_id == 0
item_id = "Nenhum"
item_icon = "032-Item01"
else
item_id = $data_items[enemy.item_id].name
item_icon = $data_items[enemy.item_id].icon_name
end
if enemy.weapon_id == 0
weapon_id = "Nenhum"
weapon_icon = "032-Item01"
else
weapon_id = $data_weapons[enemy.weapon_id].name
weapon_icon = $data_weapons[enemy.weapon_id].icon_name
end
if enemy.armor_id == 0
armor_id = "Nenhum"
armor_icon = "032-Item01"
else
armor_id = $data_armors[enemy.armor_id].name
armor_icon = $data_armors[enemy.armor_id].icon_name
armor_type = $data_armors[enemy.armor_id].type
end
treasure_prob = enemy.treasure_prob.to_s
end
# Sistemas de Palavras
g_word = $data_system.words.gold
hp_word = $data_system.words.hp
sp_word = $data_system.words.sp
str_word = $data_system.words.str
dex_word = $data_system.words.dex
agi_word = $data_system.words.agi
int_word = $data_system.words.int
atk_word = $data_system.words.atk
pdef_word = $data_system.words.pdef
mdef_word = $data_system.words.mdef
weapon_word = $data_system.words.weapon
case armor_type
when 0 ;armor_type = $data_system.words.armor1
when 1 ;armor_type = $data_system.words.armor2
when 2 ;armor_type = $data_system.words.armor3
when 3 ;armor_type = $data_system.words.armor4
end
item_word = $data_system.words.item
# Pega os nomes
contents.font.color = normal_color
contents.draw_text(116, 0, contents.width - 116, 32, name)
# Pega as vezes que viu e que derrotou
contents.font.color = system_color
contents.draw_text(116, 32, contents.width - 116, 32, "Vezes que viu:")
contents.draw_text(116, 64, contents.width - 116, 32, "Tempo de batalha:")
contents.font.color = normal_color
contents.draw_text(0, 32, contents.width, 32, "#{enemy.seen_times}", 2)
contents.draw_text(0, 64, contents.width, 32, "#{enemy.defeated_times}", 2)
# Organiza Status
colomn_a_left = ["Max #{hp_word}", "Max #{sp_word}", str_word, dex_word,
agi_word, int_word, atk_word, pdef_word, mdef_word, "Escapou"]
colomn_a_right = [maxhp, maxsp, str,dex , agi, int, atk, pdef, mdef, eva]
# Colocações de Vitória organizadas
column_b_left = ["Experiencia Dada:", "#{g_word}old Pego:", "#{item_word} Pega:", "",
"#{weapon_word} Pega:", "", "#{armor_type} Pega:", "", "Itens Probabilidade:"]
column_b_right = [exp, gold, "", item_id, "", weapon_id, "", armor_id, treasure_prob]
# Pega Status
for i in 0...colomn_a_left.size
contents.font.color = system_color
contents.draw_text(4, 160 + i * 32, 160, 32, colomn_a_left[i])
contents.font.color = normal_color
contents.draw_text(-4, 160 + i * 32, 160, 32, colomn_a_right[i], 2)
end
# Pega Colocações de Vitória
for i in 0...column_b_left.size
contents.font.color = system_color
contents.draw_text(168, 160 + i * 32, contents.width, 32, column_b_left[i])
x = -4
x = -30 if i == 3 or i == 5 or i == 7
contents.font.color = normal_color
contents.draw_text(x, 160 + i * 32, contents.width, 32, column_b_right[i], 2)
end
# Pega o Icones dos intens
bitmap = RPG::Cache.icon(item_icon)
self.contents.blt(contents.width - 24, 260, bitmap, Rect.new(0, 0, 24, 24))
bitmap = RPG::Cache.icon(weapon_icon)
self.contents.blt(contents.width - 24, 324, bitmap, Rect.new(0, 0, 24, 24))
bitmap = RPG::Cache.icon(armor_icon)
self.contents.blt(contents.width - 24, 388, bitmap, Rect.new(0, 0, 24, 24))
end
end
#==============================================================================
# Janela dos Controles do Guia dos Monstros
#==============================================================================
class Window_Beastairy_Controls < Window_Base
#--------------------------------------------------------------------------
# * Inicialização de Objetos
#--------------------------------------------------------------------------
def initialize
super(0, 288, 200, 192)
self.contents = Bitmap.new(width - 32, height - 32)
self.z = 999
refresh(0)
end
#--------------------------------------------------------------------------
# * Atualiza
#--------------------------------------------------------------------------
def refresh(phase)
# Limpa Janelas
contents.clear
disabled_system_color = Color.new(192, 224, 255, 128)
contents.font.color = normal_color
contents.draw_text(0, 0, contents.width, 24, "L / R : Mudar a Posição")
# Controles principais
contents.font.color = phase == 0 ? system_color : disabled_system_color
contents.draw_text(4, 24, contents.width, 24, "Menu")
contents.font.color = phase == 0 ? normal_color : disabled_color
contents.draw_text(8, 48, contents.width, 24, "B : Retornar ao Mapa")
contents.draw_text(8, 72, contents.width, 24, "C : Selecionar")
# Inimigo Selecionado Controles
contents.font.color = phase == 1 ? system_color : disabled_system_color
contents.draw_text(4, 96, contents.width, 24, "Menu")
contents.font.color = phase == 1 ? normal_color : disabled_color
contents.draw_text(8, 120, contents.width, 24, "B : Retornar")
contents.draw_text(8, 140, contents.width, 24, "C : Batalhar(Teste)")
end
end
#==============================================================================
# ** Classe Scene Guia dos Monstros
#==============================================================================
class Scene_Beastairy
#--------------------------------------------------------------------------
# * Processo Principal
#--------------------------------------------------------------------------
def main
# Seta Fase do menu
@phase = 0
# Animação grafica dos inimigos
@pose, @frame, @counting_frame= 0, 0, 0
# Janela / Fase atual
@phase_window = Window_Base.new(0, 0, width = 200, height = 64)
@phase_window.contents = contents = Bitmap.new(width - 32, height - 32)
@phase_window.contents.draw_text(0, 0, 168, 32, "Menu Principal", 1)
# Janela Principal (Janela dos Grupos)
commands = $game_beastairy.monster_groups.dup
commands.push("Sair")
@enemy_groups = Window_Command.new(200, commands)
@enemy_groups.y = 64
@enemy_groups.height = 224
# Controles da Janela
@controls = Window_Beastairy_Controls.new
# Grupo de monstros / Janela de informação
@monster_window = Window_Monster_Group_Info.new
@monster_window.refresh(0, 0, 0)
# Janela de Informação do Inimigo
@enemy_window = Window_Monster_Info.new
@enemy_window.visible = false
# Scene Obejto
@objects = [@phase_window, @enemy_groups, @controls, @monster_window, @enemy_window]
# Executar Transitions
Graphics.transition
# Loop do Processo
loop do
# Atualize tela de jogo
Graphics.update
# Atualiza Informações inseridas
Input.update
# Atualiza os Objetos
@objects.each {|x| x.update}
# Atualiza os Quadros (Frames)
update
# Cancela a Tela Mudada
break if $scene != self
end
# Prepara Transição
Graphics.freeze
# Disponha de Objetos
@objects.each {|x| x.dispose unless x.disposed?}
end
#--------------------------------------------------------------------------
# * Atualização de Quadros (Frames)
#--------------------------------------------------------------------------
def update
# Visualisa Mudança entre os Metodos
case @phase
# Fase Principal
when 0
[@enemy_window].each {|x| x.visible = false if x.visible}
[@enemy_groups, @monster_window].each {|x| x.visible = true unless x.visible}
@enemy_groups.active = true
when 1
[@enemy_window].each {|x| x.visible = true unless x.visible}
[@enemy_groups, @monster_window].each {|x| x.visible = false if x.visible}
@enemy_groups.active = false
end
# Atualiza a Animação do Inimigo
@counting_frame += 1
if @counting_frame == 8
@counting_frame = 0
@frame += 1
@frame = 0 if @frame == 4
if @phase == 0
@monster_window.refresh(@enemy_groups.index, @pose, @frame)
else
enemy_id = @enemies[@groups_enemies.index].id
@enemy_window.refresh(enemy_id, @pose, @frame)
end
end
# Atualização da Fase atual
case @phase
when 0; main_update
when 1; enemy_select
end
end
#--------------------------------------------------------------------------
# * Atualização principal de quadros (frames)
#--------------------------------------------------------------------------
def main_update
# Siar da Scena
if Input.trigger?(Input::B)
$game_system.se_play($data_system.cancel_se)
$game_temp.beastairy_return = false
$scene = Scene_Map.new
# Selecionar o Inimigo
elsif Input.trigger?(Input::C)
$game_system.se_play($data_system.decision_se)
if @enemy_groups.index == $game_beastairy.monster_groups.size
$game_temp.beastairy_return = false
$scene = Scene_Map.new
else
commands, @enemies = [], []
group = $game_beastairy.monster_groups[@enemy_groups.index]
for i in 1...$data_enemies.size
if $data_enemies[i].group == group
commands.push($data_enemies[i].name)
@enemies.push($data_enemies[i])
end
end
@groups_enemies = Window_Command.new(200, commands)
@groups_enemies.y = 64
@groups_enemies.height = 224
# Atualização da Fase do Menu
@phase_window.contents.clear
@phase_window.contents.draw_text(0, 0, 168, 32, "Inimigo Selecionado", 1)
# Soma Objeto (Por Atualizar)
@objects.push(@groups_enemies)
# Atualiza Janela de Controles
@controls.refresh(1)
enemy_id = @enemies[@groups_enemies.index].id
@enemy_window.refresh(enemy_id, @pose, @frame)
# Muda de Fase
@phase = 1
end
# Muda de Poses
elsif Input.trigger?(Input::LEFT)
$game_system.se_play($data_system.cursor_se)
@pose == 0 ? @pose = 3 : @pose -= 1
elsif Input.trigger?(Input::RIGHT)
$game_system.se_play($data_system.cursor_se)
@pose == 3 ? @pose = 0 : @pose += 1
end
end
#--------------------------------------------------------------------------
# * Atualização dos Quadros(Frame) do inmigo
#--------------------------------------------------------------------------
def enemy_select
# Sair da Fase
if Input.trigger?(Input::B)
$game_system.se_play($data_system.cancel_se)
@groups_enemies.dispose
@objects.delete(@groups_enemies)
# Atualização da Janela de Fases
@phase_window.contents.clear
@phase_window.contents.draw_text(0, 0, 168, 32, "Menu Principal", 1)
# Atualiza Janela dos controles
@controls.refresh(0)
# Muda de Fase
@phase = 0
# Inimigo Selecionado
elsif Input.trigger?(Input::C)
enemy = @enemies[@groups_enemies.index]
if enemy.seen
$game_system.se_play($data_system.decision_se)
enemy_name = enemy.name
for i in 1...$data_troops.size
if $data_troops[i].name == enemy_name
$game_temp.beastairy_return = true
$game_temp.battle_troop_id = i
$game_temp.battle_can_escape = true
$game_temp.battle_can_lose = false
$game_temp.battle_proc = nil
# Memorize mapa BGM e para BGM
$game_temp.map_bgm = $game_system.playing_bgm
$game_system.bgm_stop
# Toca SE (batalha começada)
$game_system.se_play($data_system.battle_start_se)
# Toca BGM da batalha
$game_system.bgm_play($game_system.battle_bgm)
# Arruma posição do jogador
$game_player.straighten
# Ativa Tela de Batalha
$scene = Scene_Battle.new
end
end
else
$game_system.se_play($data_system.buzzer_se)
end
elsif Input.trigger?(Input::LEFT)
$game_system.se_play($data_system.cursor_se)
@pose == 0 ? @pose = 3 : @pose -= 1
elsif Input.trigger?(Input::RIGHT)
$game_system.se_play($data_system.cursor_se)
@pose == 3 ? @pose = 0 : @pose += 1
end
end
end
#==============================================================================
# ** Scene_Battle
#==============================================================================
class Scene_Battle
#--------------------------------------------------------------------------
# * Alias Processo Principal
#--------------------------------------------------------------------------
alias beastairy_main main
#--------------------------------------------------------------------------
# * Main Processo
#--------------------------------------------------------------------------
def main
unless $game_temp.beastairy_return
@beastairy_troop = []
troop = $data_troops[$game_temp.battle_troop_id]
for i in 0...troop.members.size
enemy = $data_enemies[troop.members[i].enemy_id]
@beastairy_troop.push(enemy)
enemy.see
end
else
@beastairy_troop = []
end
beastairy_main
end
#--------------------------------------------------------------------------
# * Batalha Terminada
# result : resultado (0:ganhou 1:perdeu 2:escapau)
#--------------------------------------------------------------------------
def battle_end(result)
# Limpa bandeira de Batalha
$game_temp.in_battle = false
# Limpa todo o grupo de açaõ
$game_party.clear_actions
# Remove Status da Batalha
for actor in $game_party.actors
actor.remove_states_battle
end
# Limpa Inimigos
$game_troop.enemies.clear
# Chama a Volta da BAtalha
if $game_temp.battle_proc != nil
$game_temp.battle_proc.call(result)
$game_temp.battle_proc = nil
end
if $game_temp.beastairy_return
$scene = Scene_Beastairy.new
else
if result == 0
for enemy in @beastairy_troop
enemy.defeat
end
end
$scene = Scene_Map.new
end
end
#--------------------------------------------------------------------------
# * Atualização de Quadros (Frames)
#--------------------------------------------------------------------------
def update
# Se Fugiu na batalha
if $game_system.battle_interpreter.running?
# Atualiza interpretador
$game_system.battle_interpreter.update
# Se um battler que está forçando ações não existe
if $game_temp.forcing_battler == nil
# Se evento de batalha terminou
unless $game_system.battle_interpreter.running?
# Retorna ao Evento de Batalha se a batalha continua
unless judge
setup_battle_event
end
end
# Se não depois da fase da batalha
if @phase != 5
# Atualiza a Janela de Status
@status_window.refresh
end
end
end
# Atualiza sistema e tela
$game_system.update
$game_screen.update
# Se cronômetro alcançou 0
if $game_system.timer_working and $game_system.timer == 0
# Cancela a Batalha
$game_temp.battle_abort = true
end
# Atualiza Janelas
@help_window.update
@party_command_window.update
@actor_command_window.update
@status_window.update
@message_window.update
# Atualiza setagem do personagem
@spriteset.update
# Se é processada a transition
if $game_temp.transition_processing
# Limpa o processo de transition
$game_temp.transition_processing = false
# Executa a transition
if $game_temp.transition_name == ""
Graphics.transition(20)
else
Graphics.transition(40, "Graphics/Transitions/" +
$game_temp.transition_name)
end
end
# Se a mensagem for mostrada / Janela
if $game_temp.message_window_showing
return
end
# Se o Efeito for mostrado
if @spriteset.effect?
return
end
# Se for game over
if $game_temp.gameover
# Liga Tela de Game Over
if $game_temp.beastairy_return
$scene = Scene_Beastairy.new
else
$scene = Scene_Gameover.new
end
end
# Se retorna a Tela de Titulo
if $game_temp.to_title
# Liga Tela de Titulo
$scene = Scene_Title.new
return
end
# Se a batalha for cancelada
if $game_temp.battle_abort
# Retorna para a BGM que foi usado antes da batalha
$game_system.bgm_play($game_temp.map_bgm)
# Terminou a Batalha
battle_end(1)
return
end
# Se esperou
if @wait_count > 0
# Diminui a Contagem de esperar
@wait_count -= 1
return
end
# Se batatalha força uma ação não inexistente,
# e o evento de batalha foge
if $game_temp.forcing_battler == nil and
$game_system.battle_interpreter.running?
return
end
# Se ramifique de acordo com fase
case @phase
when 1 # Fase Antes da Batalha
update_phase1
when 2 # Fase de Comando do Grupo
update_phase2
when 3 # Fase do comando do personagem
update_phase3
when 4 # Fase Principal
update_phase4
when 5 # Depois da fase da batalha
update_phase5
end
end
#--------------------------------------------------------------------------
# * Depois da Fase da Batalha
#--------------------------------------------------------------------------
def start_phase5
# Shift para fase 5
@phase = 5
# Batalha de jogo mE termina
$game_system.me_play($game_system.battle_end_me)
# Retorna a BGM de antes da batalha
$game_system.bgm_play($game_temp.map_bgm)
# Inizializa EXP, aumenta o gold, e o tresouro
exp = 0
gold = 0
treasures = []
# Loop
for enemy in $game_troop.enemies
# Se o inimigo não é escondido
unless enemy.hidden
unless $game_temp.beastairy_return
# Soma EXP e a quantia de ouro obtidas
exp += enemy.exp
gold += enemy.gold
# Determine se tesouro apareceu
if rand(100) < enemy.treasure_prob
if enemy.item_id > 0
treasures.push($data_items[enemy.item_id])
end
if enemy.weapon_id > 0
treasures.push($data_weapons[enemy.weapon_id])
end
if enemy.armor_id > 0
treasures.push($data_armors[enemy.armor_id])
end
end
end
end
end
# Tesouro é limitado a um máximo de 6 artigos
treasures = treasures[0..5]
# Obtem EXP
for i in 0...$game_party.actors.size
actor = $game_party.actors[i]
if actor.cant_get_exp? == false
last_level = actor.level
actor.exp += exp
if actor.level > last_level
@status_window.level_up(i)
end
end
end
# Obtem Gold
$game_party.gain_gold(gold)
# Obtem Tesouro
for item in treasures
case item
when RPG::Item
$game_party.gain_item(item.id, 1)
when RPG::Weapon
$game_party.gain_weapon(item.id, 1)
when RPG::Armor
$game_party.gain_armor(item.id, 1)
end
end
# Faz a janela do resultado da batalha
@result_window = Window_BattleResult.new(exp, gold, treasures)
# Espera a contagem
@phase5_wait_count = 100
end
endDownload e ficha técnica
- Download (clique com o botão esquerdo do mouse ou toque no link)
- Desenvolvedor, publisher e/ou distribuidor: SephirothSpawn
- Sistema(s): Windows 98/98SE/Me/2000/XP/Vista/7
- Tamanho: 1,046KB (pacote de instalação e/ou espaço em disco)
- Licença: Grátis
- Categoria: Programação XP
- Tag: Pokémon
- Adicionado por: LichKing
- Acessos: 65
Observação: se você gostou deste post ou ele lhe foi útil de alguma forma, por favor considere apoiar financeiramente a Gaming Room. Fico feliz só de ajudar, mas a contribuição do visitante é muito importante para que este site continua existindo e para que eu possa continuar provendo este tipo de conteúdo e melhorar cada vez mais. Acesse aqui e saiba como. Obrigado!




