various fixes

This commit is contained in:
infinitefusion
2022-10-29 17:27:55 -04:00
parent 49f7edb06a
commit cd906e7f1c
52 changed files with 40802 additions and 39072 deletions

Binary file not shown.

Before

Width:  |  Height:  |  Size: 9.2 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 8.4 KiB

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

BIN
Data/Map768.rxdata Normal file

Binary file not shown.

Binary file not shown.

Binary file not shown.

View File

@@ -6,7 +6,7 @@
module Settings
# The version of your game. It has to adhere to the MAJOR.MINOR.PATCH format.
GAME_VERSION = '5.0.0'
GAME_VERSION_NUMBER = "5.0.35.2"
GAME_VERSION_NUMBER = "5.0.35.3"
POKERADAR_LIGHT_ANIMATION_RED_ID = 17
POKERADAR_LIGHT_ANIMATION_GREEN_ID = 18

View File

@@ -432,7 +432,7 @@ module PluginManager
#-----------------------------------------------------------------------------
def self.pluginErrorMsg(name, script)
# begin message formatting
message = "[Pokémon Essentials version #{Essentials::VERSION}]\r\n"
message = "[Infinite Fusion version #{Settings::GAME_VERSION_NUMBER}]\r\n"
message += "#{Essentials::ERROR_TEXT}\r\n" # For third party scripts to add to
message += "Error in Plugin [#{name}]:\r\n"
message += "#{$!.class} occurred.\r\n"

View File

@@ -642,12 +642,12 @@ Events.onEndBattle += proc { |_sender,e|
end
}
def pbEvolutionCheck(currentLevels)
def pbEvolutionCheck(currentLevels,scene=nil)
for i in 0...currentLevels.length
pkmn = $Trainer.party[i]
next if !pkmn || (pkmn.hp==0 && !Settings::CHECK_EVOLUTION_FOR_FAINTED_POKEMON)
next if currentLevels[i] && pkmn.level==currentLevels[i]
newSpecies = pkmn.check_evolution_on_level_up
newSpecies = pkmn.check_evolution_on_level_up()
next if !newSpecies
evo = PokemonEvolutionScene.new
evo.pbStartScreen(pkmn,newSpecies)

View File

@@ -173,7 +173,7 @@ def pbChangeLevel(pkmn, newlevel, scene)
pbLearnMove(pkmn, i[1], true) { scene.pbUpdate }
end
# Check for evolution
newspecies = pkmn.check_evolution_on_level_up
newspecies = pkmn.check_evolution_on_level_up(scene)
if newspecies
pbFadeOutInWithMusic {
evo = PokemonEvolutionScene.new

View File

@@ -222,12 +222,12 @@ class Pokemon
end
def form=(value)
oldForm = @form
@form = value
@ability = nil
MultipleForms.call("onSetForm", self, value, oldForm)
calc_stats
$Trainer.pokedex.register(self)
# oldForm = @form
# @form = value
# @ability = nil
# MultipleForms.call("onSetForm", self, value, oldForm)
# calc_stats
# $Trainer.pokedex.register(self)
end
# The same as def form=, but yields to a given block in the middle so that a

View File

@@ -491,6 +491,7 @@ class PokemonEvolutionScene
def pbStartScreen(pokemon,newspecies,reversing=false)
@pokemon = pokemon
@newspecies = newspecies
@sprites = {}
@bgviewport = Viewport.new(0,0,Graphics.width,Graphics.height)

View File

@@ -77,7 +77,7 @@ off Pokémon Red and Blue, as well as
Pokémon Gold and Silver.
Both games are made by Game Freak.
ALl of the custom fused Pokémon sprites
All of the custom fused Pokémon sprites
were madeby various members of the sp
Pokémon Infinite Fusion Discord

View File

@@ -246,6 +246,7 @@ class PokemonPokedexInfo_Scene
#if @dexlist[@index][4] > 0
indexNumber = @dexlist[@index][4]
indexNumber -= 1 if @dexlist[@index][5]
indexNumber = GameData::Species.get(@species).id_number
indexText = sprintf("%03d", indexNumber)
# end
textpos = [
@@ -586,7 +587,7 @@ class PokemonPokedexInfoScreen
else
region = $PokemonGlobal.pokedexDex # National Dex -1, regional Dexes 0, 1, etc.
end
dexnum = pbGetRegionalNumber(region,species)
dexnum = GameData::Species.get(species).id_number#pbGetRegionalNumber(region,species)
dexnumshift = Settings::DEXES_WITH_OFFSETS.include?(region)
dexlist = [[species,GameData::Species.get(species).name,0,0,dexnum,dexnumshift]]
@scene.pbStartScene(dexlist,0,region)

View File

@@ -422,12 +422,12 @@ class PokemonSummary_Scene
# break
# end
# end
# if dexnum <= 0
# textpos.push(["???", 435, 74, 2, dexNumBase, dexNumShadow])
# else
# dexnum -= 1 if dexnumshift
# textpos.push([sprintf("%03d", dexnum), 435, 74, 2, dexNumBase, dexNumShadow])
# end
if dexnum <= 0
textpos.push(["???", 435, 74, 2, dexNumBase, dexNumShadow])
else
dexnum -= 1 if dexnumshift
textpos.push([sprintf("%03d", dexnum), 435, 74, 2, dexNumBase, dexNumShadow])
end
# Write Original Trainer's name and ID number
if @pokemon.owner.name.empty?
textpos.push([_INTL("RENTAL"), 435, 170, 2, Color.new(64, 64, 64), Color.new(176, 176, 176)])

View File

@@ -37,7 +37,7 @@ class StorageSystemPC
command = 0
loop do
command = pbShowCommandsWithHelp(nil,
[_INTL("Organize Boxes"),
[_INTL("Organize / Fuse"),
_INTL("Withdraw Pokémon"),
_INTL("Deposit Pokémon"),
_INTL("See ya!")],

View File

@@ -806,6 +806,9 @@ PokemonDebugMenuCommands.register("speciesform", {
species = pbChooseSpeciesList(pkmn.species)
if species && species != pkmn.species
pkmn.species = species
if pkmn.shiny?
pkmn.debug_shiny=true
end
pkmn.calc_stats
$Trainer.pokedex.register(pkmn) if !settingUpBattle
screen.pbRefreshSingle(pkmnid)

View File

@@ -1055,7 +1055,6 @@ module Compiler
slots.compact!
slots.sort! { |a, b| (a[0] == b[0]) ? a[1].to_s <=> b[1].to_s : b[0] <=> a[0] }
end
p encounter_hash
GameData::Encounter.register(encounter_hash)
end
# Save all data

View File

@@ -20,7 +20,7 @@ HELD_ITEMS = [:AIRBALLOON, :BRIGHTPOWDER, :EVIOLITE, :FLOATSTONE, :DESTINYKNOT,
:PETAYABERRY, :APICOTBERRY, :LANSATBERRY, :STARFBERRY, :ENIGMABERRY, :MICLEBERRY, :CUSTAPBERRY,
:JABOCABERRY, :ROWAPBERRY, :FAIRYGEM]
INVALID_ITEMS = [:COVERFOSSIL, :PLUMEFOSSIL, :ACCURACYUP, :DAMAGEUP, :ANCIENTSTONE, :ODDKEYSTONE_FULL, :TM00]
INVALID_ITEMS = [:COVERFOSSIL, :PLUMEFOSSIL, :ACCURACYUP, :DAMAGEUP, :ANCIENTSTONE, :ODDKEYSTONE_FULL, :TM00,:DEVOLUTIONSPRAY]
RANDOM_ITEM_EXCEPTIONS = [:DNASPLICERS]
def getRandomGivenTM(item)

File diff suppressed because it is too large Load Diff

View File

@@ -1,4 +1,139 @@
def pbGetTerrainTag()
return $game_player.pbTerrainTag().id
end
def getLevelAtWhichSpeciesEvolved(species)
levelAtWhichCurrentSpeciesEvolved=1
evosArray = species.get_family_evolutions
for entry in evosArray
if entry[0] == species.id && entry[1] == :Level
if entry[2] && entry[2] < levelAtWhichCurrentSpeciesEvolved
levelAtWhichCurrentSpeciesEvolved = entry[2]
end
end
end
end
def getNextEvolutions(species, evolutions)
if !evolutions
evolutions = species.get_evolutions
end
nextEvolutions = []
currentLowestEvolution = nil
for evolution in evolutions
if evolution[1]== :Level
evoLevel = evolution[2]
currentLowestLevel = currentLowestEvolution ? currentLowestEvolution[2] : Settings::MAXIMUM_LEVEL
if evoLevel < currentLowestLevel
currentLowestEvolution = evolution
end
else
nextEvolutions << evolution
end
end
if currentLowestEvolution != nil
nextEvolutions << currentLowestEvolution
end
return nextEvolutions
end
def extract_custom_sprites_that_evolve_into_non_customs(includeOnlyNextEvos=true)
outfile = "nonCustomEvos.txt"
customSpecies = getCustomSpeciesList()
alreadyWritten = []
File.open(outfile,"wb") { |f|
for dexNum in customSpecies
species = GameData::Species.get(dexNum)
dex_body = getBodyID(species)
dex_head = getHeadID(species,dex_body)
evolutions = species.get_evolutions
nextEvolutions=evolutions
if includeOnlyNextEvos
nextEvolutions = getNextEvolutions(species,evolutions)
end
next if nextEvolutions.empty?
for evolution in nextEvolutions
evoSpecies = evolution[0]
if !customSpriteExists(evoSpecies) && !alreadyWritten.include?(evoSpecies)
body = getBodyID(evoSpecies)
head = getHeadID(evoSpecies,body)
f.write((evoSpecies.to_s) +";")
f.write((head.to_s) +";")
f.write(".;")
f.write((body.to_s) +";")
f.write("evolves from ;")
f.write(species.id.to_s) + ";"
f.write((dex_head.to_s) +";")
f.write(".;")
f.write((dex_body.to_s) +";")
f.write("\n")
alreadyWritten << evoSpecies
end
end
end
}
end
def extract_incomplete_evolution_lines
outfile = "incompleteLines.txt"
pokeList = []
for i in NB_POKEMON+1..PBSpecies.maxValue
pokeList << i
end
to_skip=[]
File.open(outfile,"wb") { |f|
for i in pokeList
next if to_skip.include?(i)
species = GameData::Species.get(i)
evolutions = []
for evoArray in species.get_family_evolutions
evolutions << evoArray[1]
end
non_customs = []
nbCustoms=0
for stage in evolutions
if !customSpriteExists(stage)
non_customs << stage
else
nbCustoms+=1
end
end
#write non customs
if !non_customs.empty? && nbCustoms > 0
for missing_sprite in non_customs
f.write((missing_sprite.to_s) +";")
end
f.write((missing_sprite.to_s) +"\n")
end
#remove evos from list
for evo in evolutions
species = GameData::Species.get(evo)
to_skip << species.id_number
end
end
}
end

View File

@@ -25,10 +25,36 @@ module GameData
MINIMUM_OFFSET=40
ADDITIONAL_OFFSET_WHEN_TOO_CLOSE=40
MINIMUM_DEX_DIF=20
def self.calculateShinyHueOffset(dex_number, isBodyShiny = false, isHeadShiny = false)
if dex_number <= NB_POKEMON
if SHINY_COLOR_OFFSETS[dex_number]
return SHINY_COLOR_OFFSETS[dex_number]
end
body_number = dex_number
head_number=dex_number
else
body_number = getBodyID(dex_number)
head_number=getHeadID(dex_number,body_number)
end
if isBodyShiny && isHeadShiny && SHINY_COLOR_OFFSETS[body_number] && SHINY_COLOR_OFFSETS[head_number]
offset = SHINY_COLOR_OFFSETS[body_number] + SHINY_COLOR_OFFSETS[head_number]
elsif isHeadShiny && SHINY_COLOR_OFFSETS[head_number]
offset = SHINY_COLOR_OFFSETS[head_number]
elsif isBodyShiny && SHINY_COLOR_OFFSETS[body_number]
offset = SHINY_COLOR_OFFSETS[body_number]
else
offset = calculateShinyHueOffsetDefaultMethod(body_number,head_number,dex_number,isBodyShiny,isHeadShiny)
end
return offset
end
def self.calculateShinyHueOffsetDefaultMethod(body_number,head_number,dex_number, isBodyShiny = false, isHeadShiny = false)
dex_offset = dex_number
body_number = getBodyID(dex_number)
head_number=getHeadID(dex_number,body_number)
#body_number = getBodyID(dex_number)
#head_number=getHeadID(dex_number,body_number)
dex_diff = (body_number-head_number).abs
if isBodyShiny && isHeadShiny
dex_offset = dex_number

View File

@@ -0,0 +1,189 @@
# #==============================================================================#
# # Map Exporter #
# # by Marin #
# #==============================================================================#
# # Manually export a map using `pbExportMap(id)`, or go into the Debug menu and #
# # choose the `Export a Map` option that is now in there. #
# # #
# # `pbExportMap(id, options)`, where `options` is an array that can contain: #
# # - :events -> This will alsoEXPORTED_FILENAME = "export/"
# #
# # def exportAllMaps
# # options = [:events]
# # for id in 1..768
# # pbExportMap(id, options)
# # end
# # end export all events present on the map #
# # - :player -> This will also export the player if they're on that map #
# # `id` can be nil, which case it will use the current map the player is on. #
# #==============================================================================#
# # Please give credit when using this. #
# #==============================================================================#
#
# # This is where the map will be exported to once it has been created.
# # If this file already exists, it is overwritten.
# ExportedMapFilename = "export/"
#
# def exportAllMaps
# options = [:events]
# for id in 1..768
# begin
# pbExportMap(id,options)
# rescue
# echo "error in " +(id.to_s) +"\n"
# end
# end
# end
#
#
# def pbExportMap(id = nil, options = [])
# MarinMapExporter.new(id, options)
# end
#
# def pbExportAMap
# vp = Viewport.new(0, 0, Graphics.width, Graphics.height)
# vp.z = 99999
# s = Sprite.new(vp)
# s.bitmap = Bitmap.new(Graphics.width, Graphics.height)
# s.bitmap.fill_rect(0, 0, Graphics.width, Graphics.height, Color.new(0,0,0))
# mapid = pbListScreen(_INTL("Export Map"),MapLister.new(pbDefaultMap))
# if mapid > 0
# player = $game_map.map_id == mapid
# if player
# cmds = ["Export", "[ ] Events", "[ ] Player", "Cancel"]
# else
# cmds = ["Export", "[ ] Events", "Cancel"]
# end
# cmd = 0
# loop do
# cmd = pbShowCommands(nil,cmds,-1,cmd)
# if cmd == 0
# Graphics.update
# options = []
# options << :events if cmds[1].split("")[1] == "X"
# options << :player if player && cmds[2].split("")[1] == "X"
# msgwindow = Window_AdvancedTextPokemon.newWithSize(
# _INTL("Saving... Please be patient."),
# 0, Graphics.height - 96, Graphics.width, 96, vp
# )
# msgwindow.setSkin(MessageConfig.pbGetSpeechFrame)
# Graphics.update
# pbExportMap(mapid, options)
# msgwindow.setText(_INTL("Successfully exported the map."))
# 60.times { Graphics.update; Input.update }
# pbDisposeMessageWindow(msgwindow)
# break
# elsif cmd == 1
# if cmds[1].split("")[1] == " "
# cmds[1] = "[X] Events"
# else
# cmds[1] = "[ ] Events"
# end
# elsif cmd == 2 && player
# if cmds[2].split("")[1] == " "
# cmds[2] = "[X] Player"
# else
# cmds[2] = "[ ] Player"
# end
# elsif cmd == 3 || cmd == 2 && !player || cmd == -1
# break
# end
# end
# end
# s.bitmap.dispose
# s.dispose
# vp.dispose
# end
#
# DebugMenuCommands.register("exportmap", {
# "parent" => "fieldmenu",
# "name" => _INTL("Export a Map"),
# "description" => _INTL("Choose a map to export it to a PNG."),
# "effect" => proc { |sprites, viewport|
# pbExportAMap
# }
# })
#
# class MarinMapExporter
# def initialize(id = nil, options = [])
# mapinfos = load_data("Data/MapInfos.rxdata")
# filename = id.to_s + "_" + mapinfos[id].name
#
#
#
# @id = id || $game_map.map_id
# @options = options
# @data = load_data("Data/Map#{@id.to_digits}.rxdata")
# @tiles = @data.data
# @result = Bitmap.new(32 * @tiles.xsize, 32 * @tiles.ysize)
# @tilesetdata = load_data("Data/Tilesets.rxdata")
# tilesetname = @tilesetdata[@data.tileset_id].tileset_name
# @tileset = Bitmap.new("Graphics/Tilesets/#{tilesetname}")
# @autotiles = @tilesetdata[@data.tileset_id].autotile_names
# .filter { |e| e && e.size > 0 }
# .map { |e| Bitmap.new("Graphics/Autotiles/#{e}") }
# for z in 0..2
# for y in 0...@tiles.ysize
# for x in 0...@tiles.xsize
# id = @tiles[x, y, z]
# next if id == 0
# if id < 384 # Autotile
# build_autotile(@result, x * 32, y * 32, id)
# else # Normal tile
# @result.blt(x * 32, y * 32, @tileset,
# Rect.new(32 * ((id - 384) % 8),32 * ((id - 384) / 8).floor,32,32))
# end
# end
# end
# end
# if @options.include?(:events)
# keys = @data.events.keys.sort { |a, b| @data.events[a].y <=> @data.events[b].y }
# keys.each do |id|
# event = @data.events[id]
# page = pbGetActiveEventPage(event, @id)
# if page && page.graphic && page.graphic.character_name && page.graphic.character_name.size > 0
# bmp = Bitmap.new("Graphics/Characters/#{page.graphic.character_name}")
# if bmp
# bmp = bmp.clone
# bmp.hue_change(page.graphic.character_hue) unless page.graphic.character_hue == 0
# ex = bmp.width / 4 * page.graphic.pattern
# ey = bmp.height / 4 * (page.graphic.direction / 2 - 1)
# @result.blt(event.x * 32 + 16 - bmp.width / 8, (event.y + 1) * 32 - bmp.height / 4, bmp,
# Rect.new(ex, ey, bmp.width / 4, bmp.height / 4))
# end
# bmp = nil
# end
# end
# end
# if @options.include?(:player) && $game_map.map_id == @id && $game_player.character_name &&
# $game_player.character_name.size > 0
# bmp = Bitmap.new("Graphics/Characters/#{$game_player.character_name}")
# dir = $game_player.direction
# @result.blt($game_player.x * 32 + 16 - bmp.width / 8, ($game_player.y + 1) * 32 - bmp.height / 4,
# bmp, Rect.new(0, bmp.height / 4 * (dir / 2 - 1), bmp.width / 4, bmp.height / 4))
# end
# @result.save_to_png(ExportedMapFilename + filename + ".png")
# echo (id.to_s) +"\n"
# Input.update
# end
#
# def build_autotile(bitmap, x, y, id)
# autotile = @autotiles[id / 48 - 1]
# return unless autotile
# if autotile.height == 32
# bitmap.blt(x,y,autotile,Rect.new(0,0,32,32))
# else
# id %= 48
# tiles = CustomTilemap::Autotiles[id >> 3][id & 7]
# src = Rect.new(0,0,0,0)
# halfTileWidth = halfTileHeight = halfTileSrcWidth = halfTileSrcHeight = 32 >> 1
# for i in 0...4
# tile_position = tiles[i] - 1
# src.set((tile_position % 6) * halfTileSrcWidth,
# (tile_position / 6) * halfTileSrcHeight, halfTileSrcWidth, halfTileSrcHeight)
# bitmap.blt(i % 2 * halfTileWidth + x, i / 2 * halfTileHeight + y,
# autotile, src)
# end
# end
# end
# end

View File

@@ -0,0 +1,422 @@
SHINY_COLOR_OFFSETS = {
1 => -30,
2 => -85,
3 => -50,
4 => 40,
5 => 60,
6 => 130,
7 => 25,
8 => 15,
9 => 50,
10 => -50,
11 => -80,
12 => 95,
#13 => -1,
#14 => -1,
#15 => -1,
#16 => -1,
#17 => -1,
#18 => -1,
#19 => -1,
#20 => -1,
#21 => -1,
#22 => -1,
#23 => -1,
#24 => -1,
#25 => -1,
#26 => -1,
#27 => -1,
#28 => -1,
#29 => -1,
#30 => -1,
#31 => -1,
#32 => -1,
#33 => -1,
#34 => -1,
#35 => -1,
#36 => -1,
#37 => -1,
#38 => -1,
#39 => -1,
#40 => -1,
#41 => -1,
#42 => -1,
#43 => -1,
#44 => -1,
#45 => -1,
#46 => -1,
#47 => -1,
#48 => -1,
#49 => -1,
#50 => -1,
#51 => -1,
#52 => -1,
#53 => -1,
#54 => -1,
#55 => -1,
#56 => -1,
#57 => -1,
#58 => -1,
#59 => -1,
#60 => -1,
#61 => -1,
#62 => -1,
#63 => -1,
#64 => -1,
#65 => -1,
#66 => -1,
#67 => -1,
#68 => -1,
#69 => -1,
#70 => -1,
#71 => -1,
#72 => -1,
#73 => -1,
#74 => -1,
#75 => -1,
#76 => -1,
#77 => -1,
#78 => -1,
#79 => -1,
#80 => -1,
#81 => -1,
#82 => -1,
#83 => -1,
#84 => -1,
#85 => -1,
#86 => -1,
#87 => -1,
#88 => -1,
#89 => -1,
#90 => -1,
#91 => -1,
#92 => -1,
#93 => -1,
#94 => -1,
#95 => -1,
#96 => -1,
#97 => -1,
#98 => -1,
#99 => -1,
#100 => -1,
#101 => -1,
#102 => -1,
#103 => -1,
#104 => -1,
#105 => -1,
#106 => -1,
#107 => -1,
#108 => -1,
#109 => -1,
#110 => -1,
#111 => -1,
#112 => -1,
#113 => -1,
#114 => -1,
#115 => -1,
#116 => -1,
#117 => -1,
#118 => -1,
#119 => -1,
#120 => -1,
#121 => -1,
#122 => -1,
#123 => -1,
#124 => -1,
#125 => -1,
#126 => -1,
#127 => -1,
#128 => -1,
129 => 36,
130 => 150,
#131 => -1,
#132 => -1,
#133 => -1,
#134 => -1,
#135 => -1,
#136 => -1,
#137 => -1,
#138 => -1,
#139 => -1,
#140 => -1,
#141 => -1,
#142 => -1,
#143 => -1,
#144 => -1,
#145 => -1,
#146 => -1,
#147 => -1,
#148 => -1,
#149 => -1,
#150 => -1,
#151 => -1,
#152 => -1,
#153 => -1,
#154 => -1,
#155 => -1,
#156 => -1,
#157 => -1,
#158 => -1,
#159 => -1,
#160 => -1,
#161 => -1,
#162 => -1,
#163 => -1,
#164 => -1,
#165 => -1,
#166 => -1,
#167 => -1,
#168 => -1,
#169 => -1,
#170 => -1,
#171 => -1,
#172 => -1,
#173 => -1,
#174 => -1,
#175 => -1,
#176 => -1,
#177 => -1,
#178 => -1,
#179 => -1,
#180 => -1,
#181 => -1,
#182 => -1,
#183 => -1,
#184 => -1,
#185 => -1,
#186 => -1,
#187 => -1,
#188 => -1,
#189 => -1,
#190 => -1,
#191 => -1,
#192 => -1,
#193 => -1,
#194 => -1,
#195 => -1,
#196 => -1,
#197 => -1,
#198 => -1,
#199 => -1,
#200 => -1,
#201 => -1,
#202 => -1,
#203 => -1,
#204 => -1,
#205 => -1,
#206 => -1,
#207 => -1,
#208 => -1,
#209 => -1,
#210 => -1,
#211 => -1,
#212 => -1,
#213 => -1,
#214 => -1,
#215 => -1,
#216 => -1,
#217 => -1,
#218 => -1,
#219 => -1,
#220 => -1,
#221 => -1,
#222 => -1,
#223 => -1,
#224 => -1,
#225 => -1,
#226 => -1,
#227 => -1,
#228 => -1,
#229 => -1,
#230 => -1,
#231 => -1,
#232 => -1,
#233 => -1,
#234 => -1,
#235 => -1,
#236 => -1,
#237 => -1,
#238 => -1,
#239 => -1,
#240 => -1,
#241 => -1,
#242 => -1,
#243 => -1,
#244 => -1,
#245 => -1,
#246 => -1,
#247 => -1,
#248 => -1,
#249 => -1,
#250 => -1,
#251 => -1,
#252 => -1,
#253 => -1,
#254 => -1,
#255 => -1,
#256 => -1,
#257 => -1,
#258 => -1,
#259 => -1,
#260 => -1,
#261 => -1,
#262 => -1,
#263 => -1,
#264 => -1,
#265 => -1,
#266 => -1,
#267 => -1,
#268 => -1,
#269 => -1,
#270 => -1,
#271 => -1,
#272 => -1,
#273 => -1,
#274 => -1,
#275 => -1,
#276 => -1,
#277 => -1,
#278 => -1,
#279 => -1,
#280 => -1,
#281 => -1,
#282 => -1,
#283 => -1,
#284 => -1,
#285 => -1,
#286 => -1,
#287 => -1,
#288 => -1,
#289 => -1,
#290 => -1,
#291 => -1,
#292 => -1,
#293 => -1,
#294 => -1,
#295 => -1,
#296 => -1,
#297 => -1,
#298 => -1,
#299 => -1,
#300 => -1,
#301 => -1,
#302 => -1,
#303 => -1,
#304 => -1,
#305 => -1,
#306 => -1,
#307 => -1,
#308 => -1,
#309 => -1,
#310 => -1,
#311 => -1,
#312 => -1,
#313 => -1,
#314 => -1,
#315 => -1,
#316 => -1,
#317 => -1,
#318 => -1,
#319 => -1,
#320 => -1,
#321 => -1,
#322 => -1,
#323 => -1,
#324 => -1,
#325 => -1,
#326 => -1,
#327 => -1,
#328 => -1,
#329 => -1,
#330 => -1,
#331 => -1,
#332 => -1,
#333 => -1,
#334 => -1,
#335 => -1,
#336 => -1,
#337 => -1,
#338 => -1,
#339 => -1,
#340 => -1,
#341 => -1,
342 => 50,
#343 => -1,
#344 => -1,
#345 => -1,
#346 => -1,
#347 => -1,
#348 => -1,
#349 => -1,
#350 => -1,
#351 => -1,
#352 => -1,
#353 => -1,
#354 => -1,
#355 => -1,
#356 => -1,
#357 => -1,
#358 => -1,
#359 => -1,
#360 => -1,
#361 => -1,
#362 => -1,
#363 => -1,
#364 => -1,
#365 => -1,
#366 => -1,
#367 => -1,
#368 => -1,
#369 => -1,
#370 => -1,
#371 => -1,
#372 => -1,
#373 => -1,
#374 => -1,
#375 => -1,
#376 => -1,
#377 => -1,
#378 => -1,
#379 => -1,
#380 => -1,
#381 => -1,
#382 => -1,
#383 => -1,
#384 => -1,
#385 => -1,
#386 => -1,
#387 => -1,
#388 => -1,
#389 => -1,
#390 => -1,
#391 => -1,
#392 => -1,
#393 => -1,
#394 => -1,
#395 => -1,
#396 => -1,
#397 => -1,
#398 => -1,
#399 => -1,
#400 => -1,
#401 => -1,
#402 => -1,
#403 => -1,
#404 => -1,
#405 => -1,
#406 => -1,
#407 => -1,
#408 => -1,
#409 => -1,
#410 => -1,
#411 => -1,
#412 => -1,
#413 => -1,
#414 => -1,
#415 => -1,
#416 => -1,
#417 => -1,
#418 => -1,
#419 => -1,
#420 => -1,
}

File diff suppressed because it is too large Load Diff

View File

@@ -0,0 +1,518 @@
def exportAllMaps
for id in 725..768
begin
MapExporter.export(id, [:Events])
rescue
echo "error in " +(id.to_s) +"\n"
end
end
end
module MapExporter
@@map = nil
@@bitmap = nil
@@helper = nil
module_function
def export(map_id, options)
map_name = pbGetMapNameFromId(map_id)
begin
@@map = $MapFactory.getMapForExport(map_id)
rescue
error("Map #{map_id} (#{map_name}) could not be loaded.")
end
@@bitmap = Bitmap.new(@@map.width * Game_Map::TILE_HEIGHT, @@map.height * Game_Map::TILE_WIDTH)
@@helper = TileDrawingHelper.fromTileset($data_tilesets[@@map.tileset_id])
set_map_options(options)
if options.include?(:Panorama)
if !nil_or_empty?(@@map.panorama_name)
draw_panorama
else
echoln "Map #{map_id} (#{map_name}) doesn't have a Panorama."
end
end
draw_reflective_tiles
draw_all_reflections(options)
draw_regular_tiles
if !draw_all_events(options)
draw_low_priority_tiles
end
draw_high_priority_tiles
draw_all_top_events(options)
if options.include?(:Fog)
if nil_or_empty?(@@map.fog_name)
echoln "Map #{map_id} (#{map_name}) doesn't have a Fog."
else
draw_fog
end
end
draw_watermark(options)
save_map_image
end
def draw_all_events(options)
include_player = options.include?(:Player) && $game_map.map_id == @@map.map_id
include_dep = options.include?(:DependentEvents) && $game_map.map_id == @@map.map_id
include_event = true#options.include?(:Events)
return false if !(include_player || include_dep || include_event)
for y in 0...@@map.height
for x in 0...@@map.width
event = nil
if include_event
event_hash = @@map.events.select {|_,e| e.x == x && e.y == y && !e.always_on_top }
event = event_hash.values.first if !event_hash.empty?
end
event = $game_player if !event && include_player && $game_player.x == x && $game_player.y == y && !$game_player.always_on_top
if include_dep
$PokemonTemp.dependentEvents.realEvents.each do |e|
next if !e || e.x != x || e.y != y
event = e
break
end
end
if event
deep_bush = @@map.bush?(x, y)
draw_event_bitmap(event, deep_bush)
end
for z in 0..2
tile_id = @@map.data[x, y, z] || 0
priority = @@map.priorities[tile_id]
next if priority != 1
tag_data = GameData::TerrainTag.try_get(@@map.terrain_tags[tile_id])
next if !tag_data || tag_data.shows_reflections
@@helper.bltTile(@@bitmap, x * Game_Map::TILE_WIDTH, y * Game_Map::TILE_HEIGHT, tile_id)
end
end
end
return true
end
def draw_all_top_events(options)
include_player = options.include?(:Player) && $game_map.map_id == @@map.map_id
include_event = options.include?(:Events)
return false if !(include_player || include_event)
for y in 0...@@map.height
for x in 0...@@map.width
event = nil
if include_event
event_hash = @@map.events.select {|_,e| e.x == x && e.y == y && e.always_on_top }
event = event_hash.values.first if !event_hash.empty?
end
event = $game_player if !event && include_player && $game_player.x == x && $game_player.y == y && $game_player.always_on_top
if event
deep_bush = @@map.bush?(x, y)
draw_event_bitmap(event, deep_bush)
end
end
end
return true
end
def draw_all_reflections(options)
include_player = options.include?(:Player) && $game_map.map_id == @@map.map_id
include_dep = options.include?(:DependentEvents) && $game_map.map_id == @@map.map_id
include_event = options.include?(:Events)
return false if !(include_player || include_dep || include_event)
for y in 0...@@map.height
for x in 0...@@map.width
dep = false
event = nil
if include_event
event_hash = @@map.events.select {|_,e| e.x == x && e.y == y }
event = event_hash.values.first if !event_hash.empty?
end
event = $game_player if !event && include_player && $game_player.x == x && $game_player.y == y
if include_dep && !event
$PokemonTemp.dependentEvents.realEvents.each do |e|
next if !e || e.x != x || e.y != y
event = e
dep = true
break
end
end
draw_event_reflection(event, dep) if event
end
end
return true
end
def draw_reflective_tiles
for y in 0...@@map.height
for x in 0...@@map.width
for z in 0..2
tile_id = @@map.data[x, y, z] || 0
tag_data = GameData::TerrainTag.try_get(@@map.terrain_tags[tile_id])
next if !tag_data || !tag_data.shows_reflections
@@helper.bltTile(@@bitmap, x * Game_Map::TILE_WIDTH, y * Game_Map::TILE_HEIGHT, tile_id)
end
end
end
end
def draw_regular_tiles
for y in 0...@@map.height
for x in 0...@@map.width
for z in 0..2
tile_id = @@map.data[x, y, z] || 0
priority = @@map.priorities[tile_id]
next if priority >= 1
tag_data = GameData::TerrainTag.try_get(@@map.terrain_tags[tile_id])
next if !tag_data || tag_data.shows_reflections
@@helper.bltTile(@@bitmap, x * Game_Map::TILE_WIDTH, y * Game_Map::TILE_HEIGHT, tile_id)
end
end
end
end
def draw_low_priority_tiles
for y in 0...@@map.height
for x in 0...@@map.width
for z in 0..2
tile_id = @@map.data[x, y, z] || 0
priority = @@map.priorities[tile_id]
next unless priority == 1
tag_data = GameData::TerrainTag.try_get(@@map.terrain_tags[tile_id])
next if !tag_data || tag_data.shows_reflections
@@helper.bltTile(@@bitmap, x * Game_Map::TILE_WIDTH, y * Game_Map::TILE_HEIGHT, tile_id)
end
end
end
end
def draw_high_priority_tiles
for y in 0...@@map.height
for x in 0...@@map.width
for z in 0..2
tile_id = @@map.data[x, y, z] || 0
priority = @@map.priorities[tile_id]
next if priority < 2
tag_data = GameData::TerrainTag.try_get(@@map.terrain_tags[tile_id])
next if !tag_data || tag_data.shows_reflections
@@helper.bltTile(@@bitmap, x * Game_Map::TILE_WIDTH, y * Game_Map::TILE_HEIGHT, tile_id)
end
end
end
end
def draw_event_bitmap(event, deep_bush)
hued = false
tile_bmp = false
if event.tile_id >= 384
bmp = pbGetTileBitmap(@@map.tileset_name, event.tile_id, event.character_hue, event.width, event.height)
hued = true
tile_bmp = true
elsif deep_bush
event.calculate_bush_depth
temp_bmp = AnimatedBitmap.new("Graphics/Characters/" + "#{event.character_name}", event.character_hue)
bushmap = BushBitmap.new(temp_bmp, false, event.bush_depth)
bmp = bushmap.bitmap.clone
bushmap.dispose
temp_bmp.dispose
hued = true
else
bmp = RPG::Cache.load_bitmap("Graphics/Characters/", "#{event.character_name}") rescue Bitmap.new(32,32)
end
if bmp
bmp = bmp.clone
bmp.hue_change(event.character_hue) if event.character_hue != 0 && !hued
final_x = (event.x * Game_Map::TILE_WIDTH) + ((event.width * Game_Map::TILE_WIDTH)/2) - bmp.width / 8
final_y = (event.y + 1) * Game_Map::TILE_HEIGHT - bmp.height / 4 + (event.bob_height)
final_y += 16 if event.character_name[/offset/i]
draw_event_shadow(event) if defined?(OWShadowSettings)
draw_surf_base(event) if event == $game_player
if !tile_bmp
ex = (bmp.width/4) * event.pattern
ey = (bmp.height/4) * (event.direction/2 - 1)
rect = Rect.new(ex, ey, bmp.width / 4, bmp.height / 4)
else
final_x += (bmp.width/8 - ((event.width * Game_Map::TILE_WIDTH)/2))
final_y += (bmp.height/4) - (Game_Map::TILE_HEIGHT * event.height)
rect = Rect.new(0, 0, bmp.width, bmp.height)
end
@@bitmap.blt(final_x, final_y, bmp, rect, event.opacity)
bmp.dispose
end
bmp = nil
end
def draw_event_shadow(event)
if OWShadowSettings::CASE_SENSITIVE_BLACKLISTS
remove = true if OWShadowSettings::SHADOWLESS_CHARACTER_NAME.any?{|e| event.character_name[/#{e}/]}
remove = true if event != $game_player && OWShadowSettings::SHADOWLESS_EVENT_NAME.any? {|e| event.name[/#{e}/]}
else
remove = true if OWShadowSettings::SHADOWLESS_CHARACTER_NAME.any?{|e| event.character_name[/#{e}/i]}
remove = true if event != $game_player && OWShadowSettings::SHADOWLESS_EVENT_NAME.any? {|e| event.name[/#{e}/i]}
end
terrain = @@map.terrain_tag(event.x, event.y)
remove = true if OWShadowSettings::SHADOWLESS_TERRAIN_NAME.any? {|e| terrain == e} if terrain
if !(nil_or_empty?(event.character_name) || event.transparent || remove)
if event == $game_player
shadow_name = OWShadowSettings::PLAYER_SHADOW_FILENAME
else
shadow_name = $~[1] if event.name[/shdw\((.*?)\)/]
end
shadow_name = OWShadowSettings::DEFAULT_SHADOW_FILENAME if nil_or_empty?(shadow_name)
shadow_bmp = RPG::Cache.load_bitmap("Graphics/Characters/Shadows/", "#{shadow_name}")
shadow_x = (event.x * Game_Map::TILE_WIDTH) + ((event.width * Game_Map::TILE_WIDTH)/2) - shadow_bmp.width/2
shadow_y = (event.y + 1) * Game_Map::TILE_HEIGHT - shadow_bmp.height + 2
@@bitmap.blt(shadow_x, shadow_y, shadow_bmp, Rect.new(0, 0, shadow_bmp.width, shadow_bmp.height), event.opacity)
shadow_bmp.dispose
end
end
def draw_event_reflection(event, forced = true)
tile_bmp = false
if event.tile_id >= 384
bmp = pbGetTileBitmap(@@map.tileset_name, event.tile_id, event.character_hue, event.width, event.height)
tile_bmp = true
else
bmp = RPG::Cache.load_bitmap("Graphics/Characters/", "#{event.character_name}") rescue Bitmap.new(32,32)
end
if bmp
bmp = bmp.clone
bmp.hue_change(event.character_hue) if event.character_hue != 0 && !tile_bmp
height = nil
fixed = false
if event == $game_player || forced
height = $PokemonGlobal.bridge
elsif event.name[/reflection/i]
height = 0
if event.name[/reflection\((\d+)\)/i]
height = $~[1].to_i || 0
else
height = $PokemonGlobal.bridge
end
end
if height
final_x = (event.x * Game_Map::TILE_WIDTH) + ((event.width * Game_Map::TILE_WIDTH)/2) - bmp.width/8
final_y = (event.y + 1) * Game_Map::TILE_HEIGHT - 3 - (event.bob_height)
final_y -= 32 if event.character_name[/offset/i]
if !tile_bmp
ex = (bmp.width/4) * event.pattern
ey = (bmp.height/4) * (event.direction/2 - 1)
rect = Rect.new(ex, ey, bmp.width/4, bmp.height/4)
else
final_x += (bmp.width/8 - ((event.width * Game_Map::TILE_WIDTH)/2))
rect = Rect.new(0, 0, bmp.width, bmp.height)
end
if height > 0
new_bmp = colorize_and_flip_bitmap(bmp, Color.new(48,96,160), 255, rect)
opacity = event.opacity
else
new_bmp = colorize_and_flip_bitmap(bmp, Color.new(224,224,224), 96, rect)
opacity = event.opacity*3/4
end
offset = [1.0, 0.95, 1.0, 1.05][(Graphics.frame_count%40)/10]
@@bitmap.stretch_blt(Rect.new(final_x, final_y, (new_bmp.width * offset), new_bmp.height), new_bmp, Rect.new(0, 0, new_bmp.width, new_bmp.height), opacity)
new_bmp.dispose
end
bmp.dispose
end
bmp = nil
end
def draw_surf_base(event)
return if !$PokemonGlobal.surfing && !$PokemonGlobal.diving
bmp = nil
if $PokemonGlobal.surfing
bmp = RPG::Cache.load_bitmap("Graphics/Characters/", "base_surf") rescue Bitmap.new(32,32)
elsif $PokemonGlobal.diving
bmp = RPG::Cache.load_bitmap("Graphics/Characters/", "base_dive") rescue Bitmap.new(32,32)
end
return if !bmp
sx = event.pattern_surf * bmp.width/4
sy = ((event.direction - 2)/2) * bmp.height/4
final_x = (event.x * Game_Map::TILE_WIDTH) + ((event.width * Game_Map::TILE_WIDTH)/2) - bmp.width/8
final_y = (event.y + 1) * Game_Map::TILE_HEIGHT - bmp.height / 4 + 16 + (event.bob_height)
@@bitmap.blt(final_x, final_y, bmp, Rect.new(sx,sy, bmp.width/4, bmp.height/4), event.opacity)
end
def draw_fog
fog_bmp = create_tiled_bitmap("Graphics/Fogs/#{@@map.fog_name}", @@map.fog_hue, @@map.fog_zoom/100.0)
@@bitmap.blt(0, 0, fog_bmp, Rect.new(0, 0, fog_bmp.width, fog_bmp.height), @@map.fog_opacity)
fog_bmp.dispose
end
def draw_panorama
pan_bmp = create_tiled_bitmap("Graphics/Panoramas/#{@@map.panorama_name}", @@map.panorama_hue)
@@bitmap.blt(0, 0, pan_bmp, Rect.new(0, 0, pan_bmp.width, pan_bmp.height))
pan_bmp.dispose
end
def draw_watermark(options)
return if !options.include?(:GameName) && !options.include?(:MapName)
map_name = nil_or_empty?(@@map.name)? pbGetMapNameFromId(@@map.map_id) : @@map.name
game_name = System.game_title
base_color = Color.new(248, 248, 248)
shadow_color = Color.new(64, 64, 64)
new_bmp = Bitmap.new(@@bitmap.width, @@bitmap.height)
if options.include?(:GameName)
if options.include?(:MapName)
pbSetSmallFont(new_bmp)
else
pbSetSystemFont(new_bmp)
end
pbDrawTextPositions(new_bmp, [[game_name, new_bmp.width - 8, new_bmp.height - 32, 1, base_color, shadow_color, true]])
new_font = (@@bitmap.text_size(map_name).height + 6)
else
new_font = 0
end
if options.include?(:MapName)
pbSetSystemFont(new_bmp)
pbDrawTextPositions(new_bmp, [[map_name, new_bmp.width - 8, new_bmp.height - new_font - 38, 1, base_color, shadow_color, true]])
end
scale_factor = get_name_scale
x = @@bitmap.width - (new_bmp.width * scale_factor) - (8 * (scale_factor - 1))
y = @@bitmap.height - (new_bmp.height * scale_factor) - (8 * (scale_factor - 1))
rect = Rect.new(x, y, (new_bmp.width * scale_factor), (new_bmp.height * scale_factor))
@@bitmap.stretch_blt(rect, new_bmp, Rect.new(0, 0, new_bmp.width, new_bmp.height))
new_bmp.dispose
end
def save_map_image
Dir.mkdir("Exported Maps/") if !safeExists?("Exported Maps/")
filestart = Time.now.strftime("[%Y-%m-%d %H-%M]")
map_name = nil_or_empty?(@@map.name)? pbGetMapNameFromId(@@map.map_id) : @@map.name
filename = sprintf("%03d - #{map_name} #{filestart}", @@map.map_id)
min_exists = 0
if safeExists?("Exported Maps/" + filename + ".png")
min_exists = 1
loop do
break if !safeExists?("Exported Maps/" + "#{filename}(#{min_exists})" + ".png")
min_exists += 1
end
end
filename = "#{filename}(#{min_exists})" if min_exists > 0
@@bitmap.to_file("Exported Maps/" + filename + ".png")
@@bitmap.dispose
@@bitmap = nil
@@map = nil
@@helper = nil
end
def create_tiled_bitmap(filename, hue, zoom = 1.0)
begin
bmp = RPG::Cache.load_bitmap("", filename)
rescue
error("Could not load image file at #{filename}")
end
new_bmp = Bitmap.new(@@map.width * Game_Map::TILE_HEIGHT, @@map.height * Game_Map::TILE_WIDTH)
i = 0
while i <= new_bmp.width
j = 0
while j <= new_bmp.height
new_bmp.stretch_blt(Rect.new(i, j, (bmp.width * zoom), (bmp.height * zoom)), bmp, Rect.new(0, 0, bmp.width, bmp.height))
j += (bmp.height * zoom)
end
i += (bmp.width * zoom)
end
bmp.dispose
new_bmp.hue_change(hue)
return new_bmp
end
def get_name_scale
scale = @@map.width/3
d = [0, -1 , -2, 2, 1, 0, -1, -2, 2, 1][scale%10]
scale = (scale + d)/10.0
return (scale < 1.0) ? 1.0 : scale
end
def colorize_and_flip_bitmap(bitmap, color, alpha = 255, rect = nil)
blankcolor = bitmap.get_pixel(0,0)
new_bmp = Bitmap.new(rect.width, rect.height)
temp_bmp = Bitmap.new(rect.width, rect.height)
temp_bmp.blt(0, 0, bitmap, rect)
for x in 0...temp_bmp.width
for y2 in 0...temp_bmp.height
y = temp_bmp.height - y2
newcolor = temp_bmp.get_pixel(x, y2)
new_bmp.set_pixel(x, y, newcolor) if newcolor
end
end
temp_bmp.dispose
shadowcolor = (color ? color : blankcolor)
colorlayer = Bitmap.new(new_bmp.width, new_bmp.height)
colorlayer.fill_rect(colorlayer.rect, shadowcolor)
new_bmp.blt(0, 0, colorlayer, colorlayer.rect, alpha)
shadowcolor = new_bmp.get_pixel(0,0)
for x in 0...new_bmp.width
for y in 0...new_bmp.height
if new_bmp.get_pixel(x,y) == shadowcolor
new_bmp.set_pixel(x, y, blankcolor)
end
end
end
colorlayer.dispose
return new_bmp
end
def set_map_options(options)
return if !options.include?(:Panorama) && !options.include?(:Fog)
@@map.events.each do |key, event|
for page in event.event.pages.reverse
c = page.condition
next if c.switch1_valid && !event.switchIsOn?(c.switch1_id)
next if c.switch2_valid && !event.switchIsOn?(c.switch2_id)
next if c.variable_valid && $game_variables[c.variable_id] < c.variable_value
if c.self_switch_valid
key = [event.map_id, event.id, c.self_switch_ch]
next if $game_self_switches[key] != true
end
page.list.each do |command|
if command.code == 204
case command.parameters[0]
when 0
next if !options.include?(:Panorama)
@@map.panorama_name = command.parameters[1] if !nil_or_empty?(@@map.panorama_name)
@@map.panorama_hue = command.parameters[2] if @@map.panorama_hue <= 0
when 1
next if !options.include?(:Fog)
@@map.fog_name = command.parameters[1] if nil_or_empty?(@@map.fog_name)
@@map.fog_hue = command.parameters[2] if @@map.fog_hue <= 0
@@map.fog_opacity = command.parameters[3] if @@map.fog_opacity < command.parameters[3]
@@map.fog_zoom = command.parameters[5]
end
elsif command.code == 205
next if !options.include?(:Fog)
@@map.fog_tone = command.parameters[0]
elsif command.code == 206
next if !options.include?(:Fog)
@@map.fog_opacity = command.parameters[0] if command.parameters[0] != 0
end
end
break
end
end
end
def error(message)
emessage = "Map Exporter EX Error:\n\n" + message
print(_INTL(emessage))
exit!
end
end
class Game_Map
def tileset_id; return @map.tileset_id; end
end
class DependentEvents
attr_accessor :realEvents
end
class Game_Character
attr_reader :event
attr_reader :always_on_top
end
class PokemonMapFactory
def getMapForExport(id)
map = Game_Map.new
map.setup(id)
return map
end
end

View File

@@ -0,0 +1,74 @@
#
# DebugMenuCommands.register("exportmap", {
# "parent" => "fieldmenu",
# "name" => _INTL("Export Map Image"),
# "description" => _INTL("Select a map and save its image as a png."),
# "effect" => proc {
# pbExportMapSelection
# }
# })
#
# def pbExportMapSelection
# loop do
# map_id = pbListScreen(_INTL("Export Map"), MapLister.new(pbDefaultMap))
# break if map_id <= 0
# commands = ["Events", "Player", "Dependent Events", "Fog", "Panorama", "Map Name", "Game Name"]
# if $game_map.map_id != map_id
# commands.delete("Player")
# commands.delete("Dependent Events")
# end
# options = pbShowMapExportOptions(commands)
# if !options.include?(:Cancel)
# ret = MapExporter.export(map_id, options)
# mapname = pbGetMapNameFromId(map_id)
# pbMessage(_INTL("Sucessfully exported map image of Map {1} ({2}) to the Exported Maps folder in the games's root.", map_id, mapname))
# return
# end
# end
# end
#
# def pbShowMapExportOptions(commands)
# sel_commands = []
# sym_commands = [:MapName, :GameName]
# cmdwindow = Window_CommandPokemonEx.new([])
# cmdwindow.z = 99999
# cmdwindow.visible = true
# cmdwindow.index = 0
# need_refresh = true
# loop do
# if need_refresh
# sel_commands = []
# commands.each_with_index do |s, i|
# cmd_sym = s.gsub(/\s+/, "").to_sym
# x = sym_commands.include?(cmd_sym) ? "[x]" : "[ ]"
# sel_commands.push(_INTL("{1} {2}",x, s))
# end
# sel_commands.push("Export Map...")
# cmdwindow.commands = sel_commands
# cmdwindow.resizeToFit(cmdwindow.commands)
# need_refresh = false
# end
# Graphics.update
# Input.update
# cmdwindow.update
# yield if block_given?
# if Input.trigger?(Input::USE)
# break if cmdwindow.index == sel_commands.length - 1
# cmd_sym = commands[cmdwindow.index].gsub(/\s+/, "").to_sym
# if sym_commands.include?(cmd_sym)
# sym_commands.delete(cmd_sym)
# else
# sym_commands.push(cmd_sym)
# end
# sym_commands.uniq!
# need_refresh = true
# elsif Input.trigger?(Input::BACK)
# sym_commands = [:Cancel]
# break
# end
# pbUpdateSceneMap
# end
# cmdwindow.dispose
# Input.update
# return sym_commands
# end

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

File diff suppressed because it is too large Load Diff

View File

@@ -1,4 +1,4 @@
1,REPEL,Repel,Repels,1,300,"An item that prevents weak wild Pokémon from appearing for 100 steps after its use.",2,0,0,
1,REPEL,Repel,Repels,1,300,"An item that prevents weak wild Pokémon from appearing for 100 steps after its use.",2,0,0,
2,SUPERREPEL,Super Repel,Super Repels,1,500,"An item that prevents weak wild Pokémon from appearing for 200 steps after its use.",2,0,0,
3,MAXREPEL,Max Repel,Max Repels,1,700,"An item that prevents weak wild Pokémon from appearing for 250 steps after its use.",2,0,0,
4,BLACKFLUTE,Black Flute,Black Flutes,1,400,"A black flute made from blown glass. Its melody makes wild Pokémon less likely to appear.",2,0,0,
@@ -102,12 +102,12 @@
102,METRONOME,Metronome,Metronomes,1,4000,"A Pokémon held item that boosts a move used consecutively. Its effect is reset if another move is used.",0,0,0,
103,MUSCLEBAND,Muscle Band,Muscle Bands,1,4000,"An item to be held by a Pokémon. It is a headband that slightly boosts the power of physical moves.",0,0,0,
104,WISEGLASSES,Wise Glasses,Wise Glasses,1,4000,"An item to be held by a Pokémon. It is a thick pair of glasses that slightly boosts the power of special moves.",0,0,0,
105,RAZORCLAW,Razor Claw,Razor Claws,1,5000,"An item to be held by a Pokémon. It is a sharply hooked claw that ups the holder's critical-hit ratio.",0,0,0,
105,RAZORCLAW,Razor Claw,Razor Claws,1,5000,"An item to be held by a Pokémon. It is a sharply hooked claw that ups the holder's critical-hit ratio.",1,0,7,
106,SCOPELENS,Scope Lens,Scope Lenses,1,4000,"An item to be held by a Pokémon. It is a lens that boosts the holder's critical-hit ratio.",0,0,0,
107,WIDELENS,Wide Lens,Wide Lenses,1,4000,"An item to be held by a Pokémon. It is a magnifying lens that slightly boosts the accuracy of moves.",0,0,0,
108,ZOOMLENS,Zoom Lens,Zoom Lenses,1,4000,"An item to be held by a Pokémon. If the holder moves after its target, its accuracy will be boosted.",0,0,0,
109,KINGSROCK,King's Rock,King's Rocks,1,5000,"An item to be held by a Pokémon. When the holder inflicts damage, the target may flinch.",0,0,0,
110,RAZORFANG,Razor Fang,Razor Fangs,1,5000,"An item to be held by a Pokémon. It may make foes and allies flinch when the holder inflicts damage.",0,0,0,
109,KINGSROCK,King's Rock,King's Rocks,1,5000,"An item to be held by a Pokémon. When the holder inflicts damage, the target may flinch.",1,0,7,
110,RAZORFANG,Razor Fang,Razor Fangs,1,5000,"An item to be held by a Pokémon. It may make foes and allies flinch when the holder inflicts damage.",1,0,7,
111,LAGGINGTAIL,Lagging Tail,Lagging Tails,1,4000,"An item to be held by a Pokémon. It is tremendously heavy and makes the holder move slower than usual.",0,0,0,
112,QUICKCLAW,Quick Claw,Quick Claws,1,4000,"An item to be held by a Pokémon. A light, sharp claw that lets the bearer move first occasionally.",0,0,0,
113,FOCUSBAND,Focus Band,Focus Bands,1,4000,"An item to be held by a Pokémon. The holder may endure a potential KO attack, leaving it with just 1 HP.",0,0,0,
@@ -146,9 +146,9 @@
146,SILVERPOWDER,Silver Powder,Silver Powders,1,1000,"An item to be held by a Pokémon. It is a shiny, silver powder that ups the power of Bug-type moves.",0,0,0,
147,HARDSTONE,Hard Stone,Hard Stones,1,1000,"An item to be held by a Pokémon. It is an unbreakable stone that ups the power of Rock-type moves.",0,0,0,
148,SPELLTAG,Spell Tag,Spell Tags,1,1000,"An item to be held by a Pokémon. It is a sinister, eerie tag that boosts the power of Ghost-type moves.",0,0,0,
149,DRAGONFANG,Dragon Fang,Dragon Fangs,1,1000,"An item to be held by a Pokémon. It is a hard and sharp fang that ups the power of Dragon-type moves.",0,0,0,
149,DRAGONFANG,Dragon Fang,Dragon Fangs,1,1000,"An item to be held by a Pokémon. It is a hard and sharp fang that ups the power of Dragon-type moves.",1,0,0,
150,BLACKGLASSES,Black Glasses,Black Glasses,1,1000,"An item to be held by a Pokémon. It is a shady-looking pair of glasses that boosts Dark-type moves.",0,0,0,
151,METALCOAT,Metal Coat,Metal Coats,1,2000,"An item to be held by a Pokémon. It is a special metallic film that ups the power of Steel-type moves.",0,0,0,
151,METALCOAT,Metal Coat,Metal Coats,1,2000,"An item to be held by a Pokémon. It is a special metallic film that ups the power of Steel-type moves.",1,0,7,
152,SILKSCARF,Silk Scarf,Silk Scarves,1,1000,"An item to be held by a Pokémon. It is a sumptuous scarf that boosts the power of Normal-type moves.",0,0,0,
153,FLAMEPLATE,Flame Plate,Flame Plates,1,1000,"An item to be held by a Pokémon. It is a stone tablet that boosts the power of Fire-type moves.",0,0,0,
154,SPLASHPLATE,Splash Plate,Splash Plates,1,1000,"An item to be held by a Pokémon. It is a stone tablet that boosts the power of Water-type moves.",0,0,0,
@@ -200,15 +200,15 @@
200,BURNDRIVE,Burn Drive,Burn Drives,1,1000,"A cassette to be held by Genesect. It changes Techno Blast to a Fire-type move.",0,0,0,
201,CHILLDRIVE,Chill Drive,Chill Drives,1,1000,"A cassette to be held by Genesect. It changes Techno Blast to an Ice-type move.",0,0,0,
202,EVERSTONE,Everstone,Everstones,1,300,"An item to be held by a Pokémon. The Pokémon holding this peculiar stone is prevented from evolving.",0,0,0,
203,DRAGONSCALE,Dragon Scale,Dragon Scales,1,2000,"A thick and tough scale. Dragon-type Pokémon may be holding this item when caught.",0,0,0,
203,DRAGONSCALE,Dragon Scale,Dragon Scales,1,2000,"A thick and tough scale. Dragon-type Pokémon may be holding this item when caught.",1,0,7,
204,UPGRADE,Upgrade,Upgrades,1,2000,"A transparent device filled with all sorts of data. It was produced by Silph Co.",1,0,7,
205,DUBIOUSDISC,Dubious Disc,Dubious Discs,1,2000,"A transparent device overflowing with dubious data. Its producer is unknown.",1,0,7,
206,PROTECTOR,Protector,Protectors,1,2000,"A protective item of some sort. It is extremely stiff and heavy. It is loved by a certain Pokémon.",0,0,0,
207,ELECTIRIZER,Electirizer,Electirizers,1,2000,"A box packed with a tremendous amount of electric energy. It is loved by a certain Pokémon.",0,0,0,
208,MAGMARIZER,Magmarizer,Magmarizers,1,2000,"A box packed with a tremendous amount of magma energy. It is loved by a certain Pokémon.",0,0,0,
209,REAPERCLOTH,Reaper Cloth,Reaper Cloths,1,2000,"A cloth imbued with horrifyingly strong spiritual energy. It is loved by a certain Pokémon.",0,0,0,
210,PRISMSCALE,Prism Scale,Prism Scales,1,2000,"A mysterious scale that evolves certain Pokémon. It shines in rainbow colors.",0,0,0,
211,OVALSTONE,Oval Stone,Oval Stones,1,2000,"A peculiar stone that makes certain species of Pokémon evolve. It is shaped like an egg.",0,0,0,
206,PROTECTOR,Protector,Protectors,1,2000,"A protective item of some sort. It is extremely stiff and heavy. It is loved by a certain Pokémon.",1,0,7,
207,ELECTIRIZER,Electirizer,Electirizers,1,2000,"A box packed with a tremendous amount of electric energy. It is loved by a certain Pokémon.",1,0,7,
208,MAGMARIZER,Magmarizer,Magmarizers,1,2000,"A box packed with a tremendous amount of magma energy. It is loved by a certain Pokémon.",1,0,7,
209,REAPERCLOTH,Reaper Cloth,Reaper Cloths,1,2000,"A cloth imbued with horrifyingly strong spiritual energy. It is loved by a certain Pokémon.",1,0,7,
210,PRISMSCALE,Prism Scale,Prism Scales,1,2000,"A mysterious scale that evolves certain Pokémon. It shines in rainbow colors.",1,0,7,
211,OVALSTONE,Oval Stone,Oval Stones,1,2000,"A peculiar stone that makes certain species of Pokémon evolve. It is shaped like an egg.",1,0,7,
212,REDSCARF,Red Scarf,Red Scarves,1,100,"An item to be held by a Pokémon. It boosts the Cool aspect of the holder in a Contest.",0,0,0,
213,BLUESCARF,Blue Scarf,Blue Scarves,1,100,"An item to be held by a Pokémon. It boosts the Beauty aspect of the holder in a Contest.",0,0,0,
214,PINKSCARF,Pink Scarf,Pink Scarves,1,100,"An item to be held by a Pokémon. It boosts the Cute aspect of the holder in a Contest.",0,0,0,
@@ -665,5 +665,6 @@
657,TM120,TM120,TM120s,4,30000,"The user attacks the target's throat. The target cannot use sound-based moves for two turns.",3,0,0,THROATCHOP
658,TM00,TM00,TM00s,4,0,"A strange TM developped by Team Rocket. It appears to be related to Pokémon fusion.",3,0,0,FUSIONSWAP
659,TM121,TM121,TM121s,4,10000,"The user shoots boiling hot water at its target. It may also leave the target with a burn.",3,0,0,SCALD
660,LINKINGCORD,Linking Cord,Linking Cords,1,6000,"A cable exuding a mysterious energy. Its loved by certain Pokémon.",1,0,7,

View File

@@ -172,7 +172,7 @@ Point=7,16,"Union Cave",,,,,
Point=6,15,"Route 33",,,,,
Point=5,15,"Route 33",,,,,
#sevii islands
#sevii islandsd
Point=22,24,KnotIsland,,526,27,12,
Point=21,27,"Treasure Beach",,,,,
@@ -186,8 +186,10 @@ Point=23,20,"Kindle Road",,,,,
Point=23,19,"Kindle Road",,,,,
Point=23,18,"Kindle Road",,,,,
Point=23,17,"Mt. Ember",,,,,
Point=23,17,"Mt. Ember",,,,,
Point=23,25,"Battle Factory",,559,46,74,
Point=23,21,"Brine Road",,,,,
Point=23,22,"Brine Road",,,,,

View File

@@ -2563,7 +2563,7 @@ Pokemon = B149H269,84 #Togenite,
[CHAMPION,Blue,0]
Items = FULLRESTORE,FULLRESTORE,FULLRESTORE,FULLRESTORE
Pokemon = B18H105,59 #Maroeot,
Pokemon = B18H34,59 #Maroeot,
Moves = EARTHQUAKE,WINGATTACK,DOUBLETEAM,SWORDSDANCE
AbilityIndex = 1
Item = LAXINCENSE
@@ -2590,7 +2590,7 @@ Pokemon = MEW,64 #Blastizard,
[CHAMPION,Blue,3]
Items = FULLRESTORE,FULLRESTORE,FULLRESTORE,FULLRESTORE
Pokemon = B18H105,75 #Maroeot,
Pokemon = B18H34,75 #Maroeot,
Moves = EARTHQUAKE,WINGATTACK,DOUBLETEAM,SWORDSDANCE
AbilityIndex = 1
Item = LAXINCENSE
@@ -2617,7 +2617,7 @@ Pokemon = MEW,82 #Blastizard,
[CHAMPION,Blue,6]
Items = FULLRESTORE,FULLRESTORE,FULLRESTORE,FULLRESTORE
Pokemon = B18H105,85 #Maroeot,
Pokemon = B18H34,85 #Maroeot,
Moves = EARTHQUAKE,WINGATTACK,DOUBLETEAM,SWORDSDANCE
AbilityIndex = 1
Item = LAXINCENSE
@@ -2645,7 +2645,7 @@ Pokemon = MEW,92 #Blastizard,
[CHAMPION,Blue,1]
Items = FULLRESTORE,FULLRESTORE,FULLRESTORE,FULLRESTORE
Pokemon = B18H105,59 #Maroeot,
Pokemon = B18H34,59 #Maroeot,
Moves = EARTHQUAKE,WINGATTACK,DOUBLETEAM,SWORDSDANCE
AbilityIndex = 1
Item = LAXINCENSE
@@ -2672,7 +2672,7 @@ Pokemon = MEW,64 #Venutoise,
[CHAMPION,Blue,4]
Items = FULLRESTORE,FULLRESTORE,FULLRESTORE,FULLRESTORE
Pokemon = B18H105,75 #Maroeot,
Pokemon = B18H34,75 #Maroeot,
Moves = EARTHQUAKE,WINGATTACK,DOUBLETEAM,SWORDSDANCE
AbilityIndex = 1
Item = LAXINCENSE
@@ -2699,7 +2699,7 @@ Pokemon = MEW,82 #Venutoise,
[CHAMPION,Blue,7]
Items = FULLRESTORE,FULLRESTORE,FULLRESTORE,FULLRESTORE
Pokemon = B18H105,85 #Maroeot,
Pokemon = B18H34,85 #Maroeot,
Moves = EARTHQUAKE,WINGATTACK,DOUBLETEAM,SWORDSDANCE
AbilityIndex = 1
Item = LAXINCENSE
@@ -2728,7 +2728,7 @@ Pokemon = MEW,92 #Venutoise,
[CHAMPION,Blue,2]
Items = FULLRESTORE,FULLRESTORE,FULLRESTORE,FULLRESTORE
Pokemon = B18H105,59 #Maroeot,
Pokemon = B18H34,59 #Maroeot,
Moves = EARTHQUAKE,WINGATTACK,DOUBLETEAM,SWORDSDANCE
AbilityIndex = 1
Item = LAXINCENSE
@@ -2755,7 +2755,7 @@ Pokemon = MEW,64 #Charusaur,
[CHAMPION,Blue,5]
Items = FULLRESTORE,FULLRESTORE,FULLRESTORE,FULLRESTORE
Pokemon = B18H105,75 #Maroeot,
Pokemon = B18H34,75 #Maroeot,
Moves = EARTHQUAKE,WINGATTACK,DOUBLETEAM,SWORDSDANCE
AbilityIndex = 1
Item = LAXINCENSE
@@ -2782,7 +2782,7 @@ Pokemon = MEW,82 #Charusaur,
[CHAMPION,Blue,8]
Items = FULLRESTORE,FULLRESTORE,FULLRESTORE,FULLRESTORE
Pokemon = B18H105,85 #Maroeot,
Pokemon = B18H34,85 #Maroeot,
Moves = EARTHQUAKE,WINGATTACK,DOUBLETEAM,SWORDSDANCE
AbilityIndex = 1
Item = LAXINCENSE
@@ -3223,21 +3223,21 @@ Pokemon = MEW,5 #bulbmander,
#Blue encounter 2 (Viridian) starter=bulbasaur
[RIVAL1,Blue,3]
Pokemon = PIDGEY,7
Pokemon = B16H32,7
Pokemon = MEW,8 #squirtmander,
#Blue encounter 2 (Viridian) #starter=charmander
[RIVAL1,Blue,4]
Pokemon = PIDGEY,7
Pokemon = B16H32,7 #pidgey nidoranM
Pokemon = MEW,8 #bulbtle,
#Blue encounter 2 (Viridian) #starter=squirtle
[RIVAL1,Blue,5]
Pokemon = PIDGEY,7
Pokemon = B16H32,7
Pokemon = MEW,8 #bulbmander,
######################
@@ -3245,7 +3245,7 @@ Pokemon = MEW,8 #bulbmander,
[RIVAL1,Blue,6]
Items = SUPERPOTION
Pokemon = PIDGEOTTO,18
Pokemon = B17H33,18
Pokemon = ABRA,15
Pokemon = B19H56,16
Pokemon = MEW,19 #squirtmeleon,
@@ -3255,7 +3255,7 @@ Pokemon = MEW,19 #squirtmeleon,
[RIVAL1,Blue,7]
Items = SUPERPOTION
Pokemon = PIDGEOTTO,18
Pokemon = B17H33,18
Pokemon = ABRA,15
Pokemon = B19H56,16
Pokemon = MEW,19 #bulborttle,
@@ -3266,7 +3266,7 @@ Pokemon = MEW,19 #bulborttle,
[RIVAL1,Blue,8]
Items = SUPERPOTION
Pokemon = PIDGEOTTO,18
Pokemon = B17H33,18
Pokemon = ABRA,15
Pokemon = B19H56,16
Pokemon = MEW,19 #CHARYSAUR,
@@ -3277,7 +3277,7 @@ Pokemon = MEW,19 #CHARYSAUR,
[RIVAL1,Blue,9]
Items = SUPERPOTION
Pokemon = PIDGEOTTO,22
Pokemon = B17H33,22
Pokemon = B20H56,20 #Manicate,
Pokemon = B64H120,18 #Starbra,
Pokemon = MEW,22 #Warmeleon,
@@ -3287,7 +3287,7 @@ Pokemon = MEW,22 #Warmeleon,
[RIVAL1,Blue,10]
Items = SUPERPOTION
Pokemon = PIDGEOTTO,22
Pokemon = B17H33,22
Pokemon = B20H56,20 #Manicate,
Pokemon = B64H120,18 #Starbra,
Pokemon = MEW,22 #Ivytortle,
@@ -3297,7 +3297,7 @@ Pokemon = MEW,22 #Ivytortle,
[RIVAL1,Blue,11]
Items = SUPERPOTION
Pokemon = PIDGEOTTO,22
Pokemon = B17H33,22
Pokemon = B20H56,20 #Manicate,
Pokemon = B64H120,18 #Starbra,
Pokemon = MEW,22 #Charysaur,
@@ -3308,7 +3308,7 @@ Pokemon = MEW,22 #Charysaur,
[RIVAL1,Blue,12]
Items = SUPERPOTION,SUPERPOTION
Pokemon = B17H104,25 #Cueotto,
Pokemon = B17H34,25 #pidgeooto nidoking,
Pokemon = GYARADOS,23
Pokemon = B64H120,22 #Starbra,
Pokemon = MEW,25 #Warmeleon,
@@ -3317,7 +3317,7 @@ Pokemon = MEW,25 #Warmeleon,
[RIVAL1,Blue,13]
Items = SUPERPOTION,SUPERPOTION
Pokemon = B17H104,25 #Cueotto,
Pokemon = B17H34,25 #pidgeooto nidoking,
Pokemon = GYARADOS,23
Pokemon = B64H120,22 #Starbra,
Pokemon = MEW,25 #Ivytortle,
@@ -3336,7 +3336,7 @@ Pokemon = MEW,25 #Charysaur,
[RIVAL1,Blue,15]
Items = SUPERPOTION,SUPERPOTION
Pokemon = B18H104,36 #Cueot,
Pokemon = B18H34,36 #Cueot,
Pokemon = TAUROS,39 #Taucute,
Pokemon = B130H125,37 #Electados,
Pokemon = B65H121,36 #Starkazam,
@@ -3346,7 +3346,7 @@ Pokemon = MEW,41 #Warizard,
[RIVAL1,Blue,16]
Items = SUPERPOTION,SUPERPOTION
Pokemon = B18H104,36 #Cueot,
Pokemon = B18H34,36 #Cueot,
Pokemon = TAUROS,39 #Taucute,
Pokemon = B130H125,37 #Electados,
Pokemon = B65H121,36 #Starkazam,
@@ -3356,7 +3356,7 @@ Pokemon = MEW,41 #Warizard,
[RIVAL1,Blue,17]
Items = SUPERPOTION,SUPERPOTION
Pokemon = B18H104,36 #Cueot,
Pokemon = B18H34,36 #Cueot,
Pokemon = TAUROS,39 #Taucute,
Pokemon = B130H125,37 #Electados,
Pokemon = B65H121,36 #Starkazam,
@@ -3366,7 +3366,7 @@ Pokemon = MEW,41 #Warizard,
#starter=bulbasaur
[RIVAL1,Blue,18]
Pokemon = B18H104,44 #Cueot,
Pokemon = B18H34,44 #Cueot,
Pokemon = TAUROS,45 #Taucute,
Pokemon = B130H125,42 #Electados,
Pokemon = B64H121,42 #Starkazam,
@@ -3375,7 +3375,7 @@ Pokemon = MEW,45 #Warizard,
#starter=charmander
[RIVAL1,Blue,19]
Pokemon = B18H104,44 #Cueot,
Pokemon = B18H34,44 #Cueot,
Pokemon = TAUROS,45 #Taucute,
Pokemon = B130H125,42 #Electados,
Pokemon = B65H120,42 #Starkazam,
@@ -3385,7 +3385,7 @@ Pokemon = MEW,45 #Ivytoise,
#starter=squirtle
[RIVAL1,Blue,20]
Pokemon = B18H104,44 #Cueot,
Pokemon = B18H34,44 #Cueot,
Pokemon = TAUROS,45 #Taucute,
Pokemon = B130H125,42 #Electados,
Pokemon = B65H120,42 #Starkazam,
@@ -3395,7 +3395,7 @@ Pokemon = MEW,45 #Charusaur,
#starter=bulbasaur
[RIVAL1,Blue,21]
Pokemon = B18H105,47 #Maroeot,
Pokemon = B18H34,47 #Maroeot,
Pokemon = B102H128,45 #Taucute,
Pokemon = B111H126,45 #Maghorn,
Pokemon = B130H125,47 #Electados,
@@ -3405,7 +3405,7 @@ Pokemon = MEW,53 #Blastizard,
#starter=charmander
[RIVAL1,Blue,22]
Pokemon = B18H105,47 #Maroeot,
Pokemon = B18H34,47 #Maroeot,
Pokemon = B102H128,45 #Taucute,
Pokemon = B111H126,45 #Maghorn,
Pokemon = B130H125,47 #Electados,
@@ -3415,7 +3415,7 @@ Pokemon = MEW,53 #Venutoise,
#starter=squirtle
[RIVAL1,Blue,23]
Pokemon = B18H105,47 #Maroeot,
Pokemon = B18H34,47 #Maroeot,
Pokemon = B102H128,45 #Taucute,
Pokemon = B111H126,45 #Maghorn,
Pokemon = B130H125,47 #Electados,