Script De Auto Combate Para O RPG Maker XP

27 de setembro de 2011

Segue um script que insere a opção para ter o combate automático nas batalhas de um projeto/game no RPG Maker XP. O script é de fácil implementação, basta inserir em qualquer lugar em cima do Main, que quando qualquer batalha for chamada, já vai aparecer a opção “Auto-Combate” do lado de “Fugir”.

O código foi editado a partir do original de Thousand Dragoon Link e Sir_KnightDragoon e foi traduzido por Kodama Phanton.

#==============================================================================
# ¦ Auto-Luta
#------------------------------------------------------------------------------
#---########################################################################
#-Editado dos scripts normais de Thousand Dragoon Link e Sir_KnightDragoon##
#-Comentários por Thousand Dragoon Link#####################################
#-Traduzido por Kodama Phanton##############################################
#==============================================================================
class Scene_Battle
#--------------------------------------------------------------------------
#  #Renovacão de um frame (Commando de batalha)############################
#--------------------------------------------------------------------------
def update_phase2
if Input.trigger?(Input::C)
case @party_command_window.index
when 0 # Lutar
# Determinar se o SE é tocado.
$game_system.se_play($data_system.decision_se)
start_phase3
when 1 # Escapar.
# não foi possivel escapar.
if $game_temp.battle_can_escape == false
$game_system.se_play($data_system.buzzer_se)
return
end
$game_system.se_play($data_system.decision_se)
update_phase2_escape
when 2 # Auto-Luta
$game_system.se_play($data_system.decision_se)
update_phase2_auto
end
return
end
end
#--------------------------------------------------------------------------
# Renovação de um frame (Comando de Batalha: Auto)
#--------------------------------------------------------------------------
def update_phase2_auto
loop do
if @actor_index == $game_party.actors.size-1
start_phase4
return
end
@actor_index += 1
$game_party.actors[@actor_index].current_action.kind = 0
$game_party.actors[@actor_index].current_action.basic = 0
$game_party.actors[@actor_index].current_action.decide_random_target_for_actor
end
end
end

class Window_PartyCommand < Window_Selectable
#--------------------------------------------------------------------------
# inicialização de um objeto
#--------------------------------------------------------------------------
def initialize
super(0, 0, 640, 64)
self.contents = Bitmap.new(width - 32, height - 32)
self.back_opacity = 160
self.contents.font.name = $fontface
self.contents.font.size = $fontsize
#trocar os comandos para oque voce quer para eles falarem#
@commands = ["Lutar", "Fugir", "Auto-Combate"]
@item_max = 3
@column_max = 3
draw_item(0, normal_color)
draw_item(1, $game_temp.battle_can_escape ? normal_color : disabled_color)
draw_item(2, normal_color)
self.active = false
self.visible = false
self.index = 0
end
#--------------------------------------------------------------------------
def draw_item(index, color)
self.contents.font.color = color
rect = Rect.new(80 + index * 160 + 4, 0, 128 - 10, 32)
self.contents.fill_rect(rect, Color.new(0, 0, 0, 0))
self.contents.draw_text(rect, @commands[index], 1)
end
#--------------------------------------------------------------------------
# Renovação do cursor retangular#
#--------------------------------------------------------------------------
def update_cursor_rect
self.cursor_rect.set(80 + index * 160, 0, 128, 32)
end
end

Informações adicionais

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!

Deixe um comentário

Inscreva-se na nossa newsletter!