Pax sola in morte.
[bluealert]Locked Commands Fix[/bluealert]
Como podem ver, a única alteração do código é colocar os respectivos comandos dentro de condições. Qualquer incompatibilidade (provavelmente) pode ser resolvida da mesma forma.
Embora o modo como o script é feito pareça ridículo, o mesmo é bem efetivo. Por que digitar trezentas linhas se você pode simplesmente usar o que já está pronto? Para exemplificar, recriei um sistema do jogo The 7th Saga. Nele, sempre que o jogador morre uma quantia considerável de dinheiro é perdida. Para salvar suas economias, o jogador compra itens que não perdem valor ao serem revendidos (e não desaparecem ao morrer):
Para que um item não perca seu valor basta incluir "treasure" (sem aspas) na caixa de notas do mesmo. Aí está um sistema inteiro feito em três linhas. Se preferir tudo junto:
[okay]Agradecimentos:
Alisson / MayLeone / SoloLearn / Kyo Panda
Centro RPG Maker[/okay]
Introdução
Por padrão, O RM VX Ace apenas escurece as opções bloqueadas, deixando-as inacessíveis. Este código remove estas opções de seus respectivos menus.Termos de uso
Praticamente nenhum código extra foi acrescentado, então os termos de uso são os mesmos do RPG Maker.
Código:
#===============================================================================
# Locked Commands Fix
#===============================================================================
# This code removes locked options from several scenes, showing them normally
# when they are released.
#-------------------------------------------------------------------------------
# Continue, on Title.
class Window_TitleCommand
alias :add_command_Continue :add_command
def add_command(*args)
name, symbol = *args
return if symbol === :continue && !continue_enabled
add_command_Continue(*args)
end
end
#-------------------------------------------------------------------------------
# Sell, on Shop.
class Window_ShopCommand
alias :add_command_Sell :add_command
def add_command(*args)
name, symbol = *args
return if symbol === :sell && @purchase_only
add_command_Sell(*args)
end
end
#-------------------------------------------------------------------------------
# Save and Formation, on Menu.
class Window_MenuCommand
alias :add_command_Save :add_command
def add_command (*args)
name, symbol = *args
return if symbol === :save && !save_enabled
add_command_Save(*args)
end
alias :add_command_Formation :add_command
def add_command (*args)
name, symbol = *args
return if symbol === :formation && !formation_enabled
add_command_Formation(*args)
end
end
#-------------------------------------------------------------------------------
# Escape, on Battle.
class Window_PartyCommand
alias :add_command_Escape :add_command
def add_command (*args)
name, symbol = *args
return if symbol === :escape && !BattleManager.can_escape?
add_command_Escape(*args)
end
end
#-------------------------------------------------------------------------------
Como podem ver, a única alteração do código é colocar os respectivos comandos dentro de condições. Qualquer incompatibilidade (provavelmente) pode ser resolvida da mesma forma.
Bonus
Embora o modo como o script é feito pareça ridículo, o mesmo é bem efetivo. Por que digitar trezentas linhas se você pode simplesmente usar o que já está pronto? Para exemplificar, recriei um sistema do jogo The 7th Saga. Nele, sempre que o jogador morre uma quantia considerável de dinheiro é perdida. Para salvar suas economias, o jogador compra itens que não perdem valor ao serem revendidos (e não desaparecem ao morrer):
Código:
#===============================================================================
# Treasure System
#===============================================================================
# If in your game the player loses money, he may need a way to
# save his coins. Items with the tag "treasure" in the notes field are not
# devalued when sold.
#-------------------------------------------------------------------------------
class Scene_Shop
def selling_price
if @item.note.include?("treasure")
@item.price
else
@item.price / 2
end
end
end
#===============================================================================
Para que um item não perca seu valor basta incluir "treasure" (sem aspas) na caixa de notas do mesmo. Aí está um sistema inteiro feito em três linhas. Se preferir tudo junto:
Código:
#===============================================================================
# Treasure System
#===============================================================================
# If in your game the player loses money, he may need a way to
# save his coins. Items with the tag "treasure" in the notes field are not
# devalued when sold.
#-------------------------------------------------------------------------------
class Scene_Shop
def selling_price
if @item.note.include?("treasure")
@item.price
else
@item.price / 2
end
end
end
#===============================================================================
# Locked Commands Fix
#===============================================================================
# This code removes locked options from several scenes, showing them normally
# when they are released.
#-------------------------------------------------------------------------------
# Continue, on Title.
class Window_TitleCommand
alias :add_command_Continue :add_command
def add_command(*args)
name, symbol = *args
return if symbol === :continue && !continue_enabled
add_command_Continue(*args)
end
end
#-------------------------------------------------------------------------------
# Sell, on Shop.
class Window_ShopCommand
alias :add_command_Sell :add_command
def add_command(*args)
name, symbol = *args
return if symbol === :sell && @purchase_only
add_command_Sell(*args)
end
end
#-------------------------------------------------------------------------------
# Save and Formation, on Menu.
class Window_MenuCommand
alias :add_command_Save :add_command
def add_command (*args)
name, symbol = *args
return if symbol === :save && !save_enabled
add_command_Save(*args)
end
alias :add_command_Formation :add_command
def add_command (*args)
name, symbol = *args
return if symbol === :formation && !formation_enabled
add_command_Formation(*args)
end
end
#-------------------------------------------------------------------------------
# Escape, on Battle.
class Window_PartyCommand
alias :add_command_Escape :add_command
def add_command (*args)
name, symbol = *args
return if symbol === :escape && !BattleManager.can_escape?
add_command_Escape(*args)
end
end
#-------------------------------------------------------------------------------
[okay]Agradecimentos:
Alisson / MayLeone / SoloLearn / Kyo Panda
Centro RPG Maker[/okay]