##### by route # # Randomize encounter by routes # Script by Frogman # def Kernel.randomizeWildPokemonByRoute() bstRange = $game_variables[197] randomizeToFusions = $game_switches[953] $game_switches[829] = randomizeToFusions #unused mais probab. utile pour débugger les inévitables bugs quand les gens vont se partager leurs fichiers maxSpecies = randomizeToFusions ? PBSpecies.maxValue : NB_POKEMON data=load_data("Data/encounters.dat") map_index = 0 nb_maps= data.size if data.is_a?(Hash) for map in data map_index += 1 displayProgress(map_index,nb_maps,bstRange) map_id = map[0] encountersList = map[1][1] next if encountersList== nil type_index =-1 for encounterType in encountersList type_index +=1 next if encounterType == nil previousSpecies = -1 previousNewSpecies = -1 encounter_index = 0 for encounter in encounterType species = encounter[0] if species != previousSpecies newSpecies= getNewSpecies(species,bstRange,true,maxSpecies) previousSpecies = species previousNewSpecies = newSpecies else newSpecies = previousNewSpecies end if data[map_id][1][type_index][encounter_index] != nil data[map_id][1][type_index][encounter_index][0] = newSpecies end encounter_index +=1 end #for -encounter end #for encountertype end #for - map end #if filename = "Data/encounters_randomized.dat" save_data(Marshal.load(Marshal.dump(data)),filename) $PokemonEncounters.setup($game_map.map_id) end #file = File.new('Data/test.txt', 'w') #file.puts data.inspect def displayProgress(current,total,bst) return if bst >= 100 return if bst >= 20 && current % 10 != 0 Kernel.pbMessageNoSound(_INTL("\\ts[]Generating encounters file...\\n Map {1}/{2}\\^",current,total)) end # # class PokemonEncounters # # def setup(mapID) # @density=nil # @stepcount=0 # @enctypes=[] # begin # # data=load_data(getEncountersFilePath()) # if data.is_a?(Hash) && data[mapID] # @density=data[mapID][0] # @enctypes=data[mapID][1] # else # @density=nil # @enctypes=[] # end # rescue # @density=nil # @enctypes=[] # end # end # # def getEncountersFilePath() # if $game_switches[777] && $game_switches[778] #[777] = random-by-area [778] = wildpokerandom activated # return "Data/encounters_randomized.dat" # else # return "Data/encounters.dat" # end # end # # def pbMapEncounter(mapID,enctype) # if enctype<0 || enctype>EncounterTypes::EnctypeChances.length # raise ArgumentError.new(_INTL("Encounter type out of range")) # end # data=load_data(getEncountersFilePath()) # if data.is_a?(Hash) && data[mapID] # enctypes=data[mapID][1] # else # return nil # end # return nil if enctypes[enctype]==nil # chances=EncounterTypes::EnctypeChances[enctype] # chancetotal=0 # chances.each {|a| chancetotal+=a} # rnd=rand(chancetotal) # chosenpkmn=0 # chance=0 # for i in 0...chances.length # chance+=chances[i] # if rnd= bstMin && newPokeBST <= bstMax foundAPokemon = true end end return newPoke end def getBaseStatsTotal(species) baseStats=$pkmn_dex[species][5] baseStat_temp = 0 for i in 0...baseStats.length baseStat_temp+=baseStats[i] end return (baseStat_temp/range).floor end ######################################################