Added some debug options, tweaked some console messages, changed required event names for Cut/Rock Smash/Strength

This commit is contained in:
Maruno17
2021-04-06 21:00:59 +01:00
parent 8d76ff2e89
commit 64d9b38605
13 changed files with 198 additions and 99 deletions

View File

@@ -4,24 +4,23 @@
module Console module Console
def self.setup_console def self.setup_console
return unless $DEBUG return unless $DEBUG
echo "#{System.game_title} Output Window\n" echoln "--------------------------------"
echo "-------------------------------\n" echoln "#{System.game_title} Output Window"
echo "If you are seeing this window, you are running\n" echoln "--------------------------------"
echo "#{System.game_title} in Debug Mode. This means\n" echoln "If you are seeing this window, you are running"
echo "that you're either playing a Debug Version, or\n" echoln "#{System.game_title} in Debug Mode. This means"
echo "you are playing from within RPG Maker XP.\n" echoln "that you're either playing a Debug Version, or"
echo "\n" echoln "you are playing from within RPG Maker XP."
echo "Closing this window will close the game. If \n" echoln ""
echo "you want to get rid of this window, run the\n" echoln "Closing this window will close the game. If"
echo "program from the Shell, or download a Release\n" echoln "you want to get rid of this window, run the"
echo "version.\n" echoln "program from the Shell, or download a Release"
echo "\n" echoln "version."
echo "Gameplay will be paused while the console has\n" echoln ""
echo "focus. To resume playing, switch to the Game\n" echoln "--------------------------------"
echo "Window.\n" echoln "Debug Output:"
echo "-------------------------------\n" echoln "--------------------------------"
echo "Debug Output:\n" echoln ""
echo "-------------------------------\n\n"
end end
def self.readInput def self.readInput
@@ -37,13 +36,9 @@ module Console
end end
end end
module Kernel module Kernel
def echo(string) def echo(string)
unless $DEBUG return unless $DEBUG
return
end
printf(string.is_a?(String) ? string : string.inspect) printf(string.is_a?(String) ? string : string.inspect)
end end
@@ -52,3 +47,5 @@ module Kernel
echo("\r\n") echo("\r\n")
end end
end end
Console.setup_console

View File

@@ -2,6 +2,19 @@ module Input
USE = C USE = C
BACK = B BACK = B
SPECIAL = A SPECIAL = A
unless defined?(update_KGC_ScreenCapture)
class << Input
alias update_KGC_ScreenCapture update
end
end
def self.update
update_KGC_ScreenCapture
if trigger?(Input::F8)
pbScreenCapture
end
end
end end
module Mouse module Mouse

View File

@@ -122,7 +122,6 @@ end
#Console::setup_console
class CustomTilemapSprite < Sprite class CustomTilemapSprite < Sprite
end end

View File

@@ -40,31 +40,31 @@ module MessageConfig
end end
def self.pbDefaultSystemFrame def self.pbDefaultSystemFrame
begin if $PokemonSystem
return pbResolveBitmap("Graphics/Windowskins/" + Settings::MENU_WINDOWSKINS[$PokemonSystem.frame]) || "" return pbResolveBitmap("Graphics/Windowskins/" + Settings::MENU_WINDOWSKINS[$PokemonSystem.frame]) || ""
rescue else
return pbResolveBitmap("Graphics/Windowskins/" + Settings::MENU_WINDOWSKINS[0]) || "" return pbResolveBitmap("Graphics/Windowskins/" + Settings::MENU_WINDOWSKINS[0]) || ""
end end
end end
def self.pbDefaultSpeechFrame def self.pbDefaultSpeechFrame
begin if $PokemonSystem
return pbResolveBitmap("Graphics/Windowskins/" + Settings::SPEECH_WINDOWSKINS[$PokemonSystem.textskin]) || "" return pbResolveBitmap("Graphics/Windowskins/" + Settings::SPEECH_WINDOWSKINS[$PokemonSystem.textskin]) || ""
rescue else
return pbResolveBitmap("Graphics/Windowskins/" + Settings::SPEECH_WINDOWSKINS[0]) || "" return pbResolveBitmap("Graphics/Windowskins/" + Settings::SPEECH_WINDOWSKINS[0]) || ""
end end
end end
def self.pbDefaultSystemFontName def self.pbDefaultSystemFontName
begin if $PokemonSystem
return MessageConfig.pbTryFonts(Settings::FONT_OPTIONS[$PokemonSystem.font], "Arial Narrow", "Arial") return MessageConfig.pbTryFonts(Settings::FONT_OPTIONS[$PokemonSystem.font], "Arial Narrow", "Arial")
rescue else
return MessageConfig.pbTryFonts(Settings::FONT_OPTIONS[0], "Arial Narrow", "Arial") return MessageConfig.pbTryFonts(Settings::FONT_OPTIONS[0], "Arial Narrow", "Arial")
end end
end end
def self.pbDefaultTextSpeed def self.pbDefaultTextSpeed
return pbSettingToTextSpeed(($PokemonSystem.textspeed rescue nil)) return ($PokemonSystem) ? pbSettingToTextSpeed($PokemonSystem.textspeed) : pbSettingToTextSpeed(nil)
end end
def self.pbSettingToTextSpeed(speed) def self.pbSettingToTextSpeed(speed)

View File

@@ -208,12 +208,12 @@ Events.onSpritesetCreate += proc { |_sender,e|
if map.events[i].name[/^outdoorlight\((\w+)\)$/i] if map.events[i].name[/^outdoorlight\((\w+)\)$/i]
filename = $~[1].to_s filename = $~[1].to_s
spriteset.addUserSprite(LightEffect_DayNight.new(map.events[i],viewport,map,filename)) spriteset.addUserSprite(LightEffect_DayNight.new(map.events[i],viewport,map,filename))
elsif map.events[i].name.downcase=="outdoorlight" elsif map.events[i].name[/^outdoorlight$/i]
spriteset.addUserSprite(LightEffect_DayNight.new(map.events[i],viewport,map)) spriteset.addUserSprite(LightEffect_DayNight.new(map.events[i],viewport,map))
elsif map.events[i].name[/^light\((\w+)\)$/i] elsif map.events[i].name[/^light\((\w+)\)$/i]
filename = $~[1].to_s filename = $~[1].to_s
spriteset.addUserSprite(LightEffect_Basic.new(map.events[i],viewport,map,filename)) spriteset.addUserSprite(LightEffect_Basic.new(map.events[i],viewport,map,filename))
elsif map.events[i].name.downcase=="light" elsif map.events[i].name[/^light$/i]
spriteset.addUserSprite(LightEffect_Basic.new(map.events[i],viewport,map)) spriteset.addUserSprite(LightEffect_Basic.new(map.events[i],viewport,map))
end end
end end

View File

@@ -205,7 +205,7 @@ end
HiddenMoveHandlers::CanUseMove.add(:CUT,proc { |move,pkmn,showmsg| HiddenMoveHandlers::CanUseMove.add(:CUT,proc { |move,pkmn,showmsg|
next false if !pbCheckHiddenMoveBadge(Settings::BADGE_FOR_CUT,showmsg) next false if !pbCheckHiddenMoveBadge(Settings::BADGE_FOR_CUT,showmsg)
facingEvent = $game_player.pbFacingEvent facingEvent = $game_player.pbFacingEvent
if !facingEvent || !facingEvent.name[/tree/i] if !facingEvent || !facingEvent.name[/cuttree/i]
pbMessage(_INTL("Can't use that here.")) if showmsg pbMessage(_INTL("Can't use that here.")) if showmsg
next false next false
end end
@@ -225,8 +225,10 @@ HiddenMoveHandlers::UseMove.add(:CUT,proc { |move,pokemon|
def pbSmashEvent(event) def pbSmashEvent(event)
return if !event return if !event
if event.name[/tree/i]; pbSEPlay("Cut",80) if event.name[/cuttree/i]
elsif event.name[/rock/i]; pbSEPlay("Rock Smash",80) pbSEPlay("Cut",80)
elsif event.name[/smashrock/i]
pbSEPlay("Rock Smash",80)
end end
pbMoveRoute(event,[ pbMoveRoute(event,[
PBMoveRoute::Wait,2, PBMoveRoute::Wait,2,
@@ -618,7 +620,7 @@ end
HiddenMoveHandlers::CanUseMove.add(:ROCKSMASH,proc { |move,pkmn,showmsg| HiddenMoveHandlers::CanUseMove.add(:ROCKSMASH,proc { |move,pkmn,showmsg|
next false if !pbCheckHiddenMoveBadge(Settings::BADGE_FOR_ROCKSMASH,showmsg) next false if !pbCheckHiddenMoveBadge(Settings::BADGE_FOR_ROCKSMASH,showmsg)
facingEvent = $game_player.pbFacingEvent facingEvent = $game_player.pbFacingEvent
if !facingEvent || !facingEvent.name[/rock/i] if !facingEvent || !facingEvent.name[/smashrock/i]
pbMessage(_INTL("Can't use that here.")) if showmsg pbMessage(_INTL("Can't use that here.")) if showmsg
next false next false
end end
@@ -667,7 +669,7 @@ end
Events.onAction += proc { |_sender,_e| Events.onAction += proc { |_sender,_e|
facingEvent = $game_player.pbFacingEvent facingEvent = $game_player.pbFacingEvent
pbStrength if facingEvent && facingEvent.name[/boulder/i] pbStrength if facingEvent && facingEvent.name[/strengthboulder/i]
} }
HiddenMoveHandlers::CanUseMove.add(:STRENGTH,proc { |move,pkmn,showmsg| HiddenMoveHandlers::CanUseMove.add(:STRENGTH,proc { |move,pkmn,showmsg|

View File

@@ -3,7 +3,7 @@ Events.onSpritesetCreate += proc { |_sender,e|
viewport = e[1] viewport = e[1]
map = spriteset.map map = spriteset.map
for i in map.events.keys for i in map.events.keys
if map.events[i].name.downcase=="berryplant" if map.events[i].name[/berryplant/i]
spriteset.addUserSprite(BerryPlantMoistureSprite.new(map.events[i],map,viewport)) spriteset.addUserSprite(BerryPlantMoistureSprite.new(map.events[i],map,viewport))
spriteset.addUserSprite(BerryPlantSprite.new(map.events[i],map,viewport)) spriteset.addUserSprite(BerryPlantSprite.new(map.events[i],map,viewport))
end end

View File

@@ -1,48 +0,0 @@
def pbChooseLanguage
commands=[]
for lang in Settings::LANGUAGES
commands.push(lang[0])
end
return pbShowCommands(nil,commands)
end
def pbScreenCapture
t = pbGetTimeNow
filestart = t.strftime("[%Y-%m-%d] %H_%M_%S.%L")
# capturefile = RTP.getSaveFileName(sprintf("%s.png", filestart))
# Graphics.snap_to_bitmap.save_to_png(capturefile)
capturefile = RTP.getSaveFileName(sprintf("%s.bmp", filestart))
Graphics.screenshot(capturefile)
pbSEPlay("Pkmn exp full") if FileTest.audio_exist?("Audio/SE/Pkmn exp full")
end
def pbDebugF7
if $DEBUG
Console::setup_console
begin
debugBitmaps
rescue
end
pbSEPlay("Pkmn exp full") if FileTest.audio_exist?("Audio/SE/Pkmn exp full")
end
end
module Input
unless defined?(update_KGC_ScreenCapture)
class << Input
alias update_KGC_ScreenCapture update
end
end
def self.update
update_KGC_ScreenCapture
if trigger?(Input::F8)
pbScreenCapture
end
if trigger?(Input::F7)
pbDebugF7
end
end
end

View File

@@ -624,3 +624,21 @@ def pbLoadRpgxpScene(scene)
pbShowObjects(visibleObjects) pbShowObjects(visibleObjects)
Graphics.transition(20) Graphics.transition(20)
end end
def pbChooseLanguage
commands=[]
for lang in Settings::LANGUAGES
commands.push(lang[0])
end
return pbShowCommands(nil,commands)
end
def pbScreenCapture
t = pbGetTimeNow
filestart = t.strftime("[%Y-%m-%d] %H_%M_%S.%L")
# capturefile = RTP.getSaveFileName(sprintf("%s.png", filestart))
# Graphics.snap_to_bitmap.save_to_png(capturefile)
capturefile = RTP.getSaveFileName(sprintf("%s.bmp", filestart))
Graphics.screenshot(capturefile)
pbSEPlay("Pkmn exp full") if FileTest.audio_exist?("Audio/SE/Pkmn exp full")
end

View File

@@ -433,6 +433,22 @@ DebugMenuCommands.register("roamers", {
} }
}) })
DebugMenuCommands.register("encounterversion", {
"parent" => "battlemenu",
"name" => _INTL("Set encounters version"),
"description" => _INTL("Choose which version of wild encounters should be used."),
"effect" => proc {
params = ChooseNumberParams.new
params.setRange(0, 99)
params.setInitialValue($PokemonGlobal.encounter_version)
params.setCancelValue(-1)
value = pbMessageChooseNumber(_INTL("Set encounters version to which value?"), params)
if value >= 0
$PokemonGlobal.encounter_version = value
end
}
})
#=============================================================================== #===============================================================================
# Item options # Item options
#=============================================================================== #===============================================================================
@@ -1059,19 +1075,66 @@ DebugMenuCommands.register("compiledata", {
"always_show" => true, "always_show" => true,
"effect" => proc { "effect" => proc {
msgwindow = pbCreateMessageWindow msgwindow = pbCreateMessageWindow
Compiler.compile_all(true) { |msg| pbMessageDisplay(msgwindow, msg, false) } Compiler.compile_all(true) { |msg| pbMessageDisplay(msgwindow, msg, false); echoln(msg) }
pbMessageDisplay(msgwindow, _INTL("All game data was compiled.")) pbMessageDisplay(msgwindow, _INTL("All game data was compiled."))
pbDisposeMessageWindow(msgwindow) pbDisposeMessageWindow(msgwindow)
} }
}) })
DebugMenuCommands.register("debugconsole", { DebugMenuCommands.register("createpbs", {
"parent" => "othermenu", "parent" => "othermenu",
"name" => _INTL("Debug Console"), "name" => _INTL("Create PBS file(s)"),
"description" => _INTL("Open the Debug Console."), "description" => _INTL("Choose one or all PBS files and create it."),
"always_show" => true, "always_show" => true,
"effect" => proc { "effect" => proc {
Console::setup_console cmd = 0
cmds = [
_INTL("[Create all]"),
"abilities.txt",
"berryplants.txt",
"connections.txt",
"encounters.txt",
"items.txt",
"metadata.txt",
"moves.txt",
"phone.txt",
"pokemon.txt",
"pokemonforms.txt",
"regionaldexes.txt",
"ribbons.txt",
"shadowmoves.txt",
"townmap.txt",
"trainerlists.txt",
"trainers.txt",
"trainertypes.txt",
"types.txt"
]
loop do
cmd = pbShowCommands(nil, cmds, -1, cmd)
case cmd
when 0 then Compiler.write_all
when 1 then Compiler.write_abilities
when 2 then Compiler.write_berry_plants
when 3 then Compiler.write_connections
when 4 then Compiler.write_encounters
when 5 then Compiler.write_items
when 6 then Compiler.write_metadata
when 7 then Compiler.write_moves
when 8 then Compiler.write_phone
when 9 then Compiler.write_pokemon
when 10 then Compiler.write_pokemon_forms
when 11 then Compiler.write_regional_dexes
when 12 then Compiler.write_ribbons
when 13 then Compiler.write_shadow_movesets
when 14 then Compiler.write_town_map
when 15 then Compiler.write_trainer_lists
when 16 then Compiler.write_trainers
when 17 then Compiler.write_trainer_types
when 18 then Compiler.write_types
else break
end
pbMessage(_INTL("File written."))
end
} }
}) })

View File

@@ -619,6 +619,39 @@ PokemonDebugMenuCommands.register("setinitialmoves", {
#=============================================================================== #===============================================================================
# Other options # Other options
#=============================================================================== #===============================================================================
PokemonDebugMenuCommands.register("setitem", {
"parent" => "main",
"name" => _INTL("Set item"),
"always_show" => true,
"effect" => proc { |pkmn, pkmnid, heldpoke, settingUpBattle, screen|
cmd = 0
commands = [
_INTL("Change item"),
_INTL("Remove item")
]
loop do
msg = (pkmn.hasItem?) ? _INTL("Item is {1}.", pkmn.item.name) : _INTL("No item.")
cmd = screen.pbShowCommands(msg, commands, cmd)
break if cmd < 0
case cmd
when 0 # Change item
item = pbChooseItemList(pkmn.item_id)
if item && item != pkmn.item_id
pkmn.item = item
screen.pbRefreshSingle(pkmnid)
end
when 1 # Remove item
if pkmn.hasItem?
pkmn.item = nil
screen.pbRefreshSingle(pkmnid)
end
else
break
end
end
}
})
PokemonDebugMenuCommands.register("setability", { PokemonDebugMenuCommands.register("setability", {
"parent" => "main", "parent" => "main",
"name" => _INTL("Set ability"), "name" => _INTL("Set ability"),
@@ -677,8 +710,8 @@ PokemonDebugMenuCommands.register("setnature", {
commands.push(_INTL("[Reset]")) commands.push(_INTL("[Reset]"))
cmd = ids.index(pkmn.nature_id || ids[0]) cmd = ids.index(pkmn.nature_id || ids[0])
loop do loop do
mag = _INTL("Nature is {1}.", pkmn.nature.name) msg = _INTL("Nature is {1}.", pkmn.nature.name)
cmd = screen.pbShowCommands(mag, commands, cmd) cmd = screen.pbShowCommands(msg, commands, cmd)
break if cmd < 0 break if cmd < 0
if cmd >= 0 && cmd < commands.length - 1 # Set nature if cmd >= 0 && cmd < commands.length - 1 # Set nature
pkmn.nature = ids[cmd] pkmn.nature = ids[cmd]

View File

@@ -681,6 +681,9 @@ module Compiler
MessageTypes.loadMessageFile("Data/messages.dat") MessageTypes.loadMessageFile("Data/messages.dat")
end end
if mustCompile if mustCompile
echoln ""
echoln _INTL("*** Starting full compile ***")
echoln ""
yield(_INTL("Compiling town map data")) yield(_INTL("Compiling town map data"))
compile_town_map # No dependencies compile_town_map # No dependencies
yield(_INTL("Compiling map connection data")) yield(_INTL("Compiling map connection data"))
@@ -728,6 +731,9 @@ module Compiler
MessageTypes.saveMessages MessageTypes.saveMessages
yield(_INTL("Renaming sprites and cries")) yield(_INTL("Renaming sprites and cries"))
convert_files convert_files
echoln ""
echoln _INTL("*** Finished full compile ***")
echoln ""
end end
pbSetWindowText(nil) pbSetWindowText(nil)
System.reload_cache System.reload_cache
@@ -798,13 +804,13 @@ module Compiler
if mustCompile if mustCompile
for i in 0...dataFiles.length for i in 0...dataFiles.length
begin begin
File.delete("Data/#{dataFiles[i]}") File.delete("Data/#{dataFiles[i]}") if File.exists?("Data/#{dataFiles[i]}")
rescue SystemCallError rescue SystemCallError
end end
end end
end end
# Recompile all data # Recompile all data
compile_all(mustCompile) { |msg| pbSetWindowText(msg) } compile_all(mustCompile) { |msg| pbSetWindowText(msg); echoln(msg) }
rescue Exception rescue Exception
e = $! e = $!
raise e if "#{e.class}"=="Reset" || e.is_a?(Reset) || e.is_a?(SystemExit) raise e if "#{e.class}"=="Reset" || e.is_a?(Reset) || e.is_a?(SystemExit)

View File

@@ -447,7 +447,7 @@ module Compiler
if isFirstCommand if isFirstCommand
if !event.name[/trainer/i] if !event.name[/trainer/i]
ret.name = "Trainer(3)" ret.name = "Trainer(3)"
elsif event.name[/^\s*trainer\s+\((\d+)\)\s*$/i] elsif event.name[/^\s*trainer\s*\((\d+)\)\s*$/i]
ret.name = "Trainer(#{$1})" ret.name = "Trainer(#{$1})"
end end
end end
@@ -680,12 +680,12 @@ module Compiler
ret.pages = [] ret.pages = []
itemName = "" itemName = ""
hidden = false hidden = false
if name[/^HiddenItem\:\s*(\w+)\s*$/] if name[/^hiddenitem\:\s*(\w+)\s*$/i]
itemName = $1 itemName = $1
return nil if !GameData::Item.exists?(itemName) return nil if !GameData::Item.exists?(itemName)
ret.name = "HiddenItem" ret.name = "HiddenItem"
hidden = true hidden = true
elsif name[/^Item\:\s*(\w+)\s*$/] elsif name[/^item\:\s*(\w+)\s*$/i]
itemName = $1 itemName = $1
return nil if !GameData::Item.exists?(itemName) return nil if !GameData::Item.exists?(itemName)
ret.name = "Item" ret.name = "Item"
@@ -835,6 +835,21 @@ module Compiler
return changed return changed
end end
def fix_event_name(event)
return false if !event
case event.name.downcase
when "tree"
event.name = "CutTree"
when "rock"
event.name = "SmashRock"
when "boulder"
event.name = "StrengthBoulder"
else
return false
end
return true
end
def fix_event_use(event,_mapID,mapData) def fix_event_use(event,_mapID,mapData)
return nil if event_is_empty?(event) return nil if event_is_empty?(event)
changed = false changed = false
@@ -1385,6 +1400,7 @@ module Compiler
map.events[key] = newevent map.events[key] = newevent
changed = true changed = true
end end
changed = true if fix_event_name(map.events[key])
newevent = fix_event_use(map.events[key],id,mapData) newevent = fix_event_use(map.events[key],id,mapData)
if newevent if newevent
map.events[key] = newevent map.events[key] = newevent