- 19
- Posts
- 2
- Years
- Age 22
- He/Him
- Seen yesterday
I tried to create new encounter types, and I managed to make new ones under desert, mud, and dirt tiles, but now that I'm able to play the game, not only do the encounters not work, but grass no longer works as well, even on routes separate from the map I was setting encounters on. However, water encounters still work perfectly fine. The version number is correct, I set my new terrain tags, and I have Pokemon on my team, so I don't know why it's acting like this. Here's all the code I added if you can see the problem. It took me a while to even figure out how to do it.
Spoiler:
attr_reader :desert_wild_encounters
attr_reader :dirt_wild_encounters
attr_reader :mud_wild_encounters
@land_wild_encounters = hash[:land_desert_encounters] || false
@land_wild_encounters = hash[:land_dirt_encounters] || false
@land_wild_encounters = hash[:land_mud_encounters] || false
GameData::TerrainTag.register({
:id => :Desert,
:id_number => 18,
:desert_wild_encounters => true,
:battle_environment => :Sand
})
GameData::TerrainTag.register({
:id => :Mud,
:id_number => 19,
:mud_wild_encounters => true,
:battle_environment => :Puddle
})
GameData::TerrainTag.register({
:id => :Dirt,
:id_number => 20,
:dirt_wild_encounters => true,
:battle_environment => :Sand
})
GameData::EncounterType.register({
:id => :Desert,
:type => :desert,
:trigger_chance => 10
})
GameData::EncounterType.register({
:id => :DesertDay,
:type => :desert,
:trigger_chance => 10
})
GameData::EncounterType.register({
:id => :DesertNight,
:type => :desert,
:trigger_chance => 10
})
GameData::EncounterType.register({
:id => :DesertMorning,
:type => :desert,
:trigger_chance => 10
})
GameData::EncounterType.register({
:id => :DesertAfternoon,
:type => :desert,
:trigger_chance => 10
})
GameData::EncounterType.register({
:id => :DesertEvening,
:type => :desert,
:trigger_chance => 10
})
GameData::EncounterType.register({
:id => :Mud,
:type => :mud,
:trigger_chance => 100
})
GameData::EncounterType.register({
:id => :MudDay,
:type => :mud,
:trigger_chance => 10
})
GameData::EncounterType.register({
:id => :MudNight,
:type => :mud,
:trigger_chance => 10
})
GameData::EncounterType.register({
:id => :MudMorning,
:type => :mud,
:trigger_chance => 10
})
GameData::EncounterType.register({
:id => :MudAfternoon,
:type => :mud,
:trigger_chance => 10
})
GameData::EncounterType.register({
:id => :MudEvening,
:type => :mud,
:trigger_chance => 10
})
GameData::EncounterType.register({
:id => :Dirt,
:type => :dirt,
:trigger_chance => 10
})
GameData::EncounterType.register({
:id => :DirtDay,
:type => :dirt,
:trigger_chance => 10
})
GameData::EncounterType.register({
:id => :DirtNight,
:type => :dirt,
:trigger_chance => 10
})
GameData::EncounterType.register({
:id => :DirtMorning,
:type => :dirt,
:trigger_chance => 10
})
GameData::EncounterType.register({
:id => :DirtAfternoon,
:type => :dirt,
:trigger_chance => 10
})
GameData::EncounterType.register({
:id => :DirtEvening,
:type => :dirt,
:trigger_chance => 10
})
# Returns whether land-like encounters have been defined for the current map.
# Applies only to encounters triggered by moving around.
def has_desert_encounters?
GameData::EncounterType.each do |enc_type|
next if ![:desert].include?(enc_type.type)
return true if has_encounter_type?(enc_type.id)
end
return false
end
# Returns whether land-like encounters have been defined for the current map.
# Applies only to encounters triggered by moving around.
def has_mud_encounters?
GameData::EncounterType.each do |enc_type|
next if ![:mud].include?(enc_type.type)
return true if has_encounter_type?(enc_type.id)
end
return false
end
# Returns whether land-like encounters have been defined for the current map.
# Applies only to encounters triggered by moving around.
def has_dirt_encounters?
GameData::EncounterType.each do |enc_type|
next if ![:dirt].include?(enc_type.type)
return true if has_encounter_type?(enc_type.id)
end
return false
end
return true if has_desert_encounters? && terrain_tag.desert_wild_encounters
return true if has_dirt_encounters? && terrain_tag.dirt_wild_encounters
return true if has_mud_encounters? && terrain_tag.mud_wild_encounters
if has_desert_encounters? && $game_map.terrain_tag($game_player.x, $game_player.y).desert_wild_encounters
ret = find_valid_encounter_type_for_time(:Desert, time) if !ret
end
if has_dirt_encounters? && $game_map.terrain_tag($game_player.x, $game_player.y).dirt_wild_encounters
ret = find_valid_encounter_type_for_time(:Dirt, time) if !ret
end
if has_mud_encounters? && $game_map.terrain_tag($game_player.x, $game_player.y).mud_wild_encounters
ret = find_valid_encounter_type_for_time(:Mud, time) if !ret
end
attr_reader :dirt_wild_encounters
attr_reader :mud_wild_encounters
@land_wild_encounters = hash[:land_desert_encounters] || false
@land_wild_encounters = hash[:land_dirt_encounters] || false
@land_wild_encounters = hash[:land_mud_encounters] || false
GameData::TerrainTag.register({
:id => :Desert,
:id_number => 18,
:desert_wild_encounters => true,
:battle_environment => :Sand
})
GameData::TerrainTag.register({
:id => :Mud,
:id_number => 19,
:mud_wild_encounters => true,
:battle_environment => :Puddle
})
GameData::TerrainTag.register({
:id => :Dirt,
:id_number => 20,
:dirt_wild_encounters => true,
:battle_environment => :Sand
})
GameData::EncounterType.register({
:id => :Desert,
:type => :desert,
:trigger_chance => 10
})
GameData::EncounterType.register({
:id => :DesertDay,
:type => :desert,
:trigger_chance => 10
})
GameData::EncounterType.register({
:id => :DesertNight,
:type => :desert,
:trigger_chance => 10
})
GameData::EncounterType.register({
:id => :DesertMorning,
:type => :desert,
:trigger_chance => 10
})
GameData::EncounterType.register({
:id => :DesertAfternoon,
:type => :desert,
:trigger_chance => 10
})
GameData::EncounterType.register({
:id => :DesertEvening,
:type => :desert,
:trigger_chance => 10
})
GameData::EncounterType.register({
:id => :Mud,
:type => :mud,
:trigger_chance => 100
})
GameData::EncounterType.register({
:id => :MudDay,
:type => :mud,
:trigger_chance => 10
})
GameData::EncounterType.register({
:id => :MudNight,
:type => :mud,
:trigger_chance => 10
})
GameData::EncounterType.register({
:id => :MudMorning,
:type => :mud,
:trigger_chance => 10
})
GameData::EncounterType.register({
:id => :MudAfternoon,
:type => :mud,
:trigger_chance => 10
})
GameData::EncounterType.register({
:id => :MudEvening,
:type => :mud,
:trigger_chance => 10
})
GameData::EncounterType.register({
:id => :Dirt,
:type => :dirt,
:trigger_chance => 10
})
GameData::EncounterType.register({
:id => :DirtDay,
:type => :dirt,
:trigger_chance => 10
})
GameData::EncounterType.register({
:id => :DirtNight,
:type => :dirt,
:trigger_chance => 10
})
GameData::EncounterType.register({
:id => :DirtMorning,
:type => :dirt,
:trigger_chance => 10
})
GameData::EncounterType.register({
:id => :DirtAfternoon,
:type => :dirt,
:trigger_chance => 10
})
GameData::EncounterType.register({
:id => :DirtEvening,
:type => :dirt,
:trigger_chance => 10
})
# Returns whether land-like encounters have been defined for the current map.
# Applies only to encounters triggered by moving around.
def has_desert_encounters?
GameData::EncounterType.each do |enc_type|
next if ![:desert].include?(enc_type.type)
return true if has_encounter_type?(enc_type.id)
end
return false
end
# Returns whether land-like encounters have been defined for the current map.
# Applies only to encounters triggered by moving around.
def has_mud_encounters?
GameData::EncounterType.each do |enc_type|
next if ![:mud].include?(enc_type.type)
return true if has_encounter_type?(enc_type.id)
end
return false
end
# Returns whether land-like encounters have been defined for the current map.
# Applies only to encounters triggered by moving around.
def has_dirt_encounters?
GameData::EncounterType.each do |enc_type|
next if ![:dirt].include?(enc_type.type)
return true if has_encounter_type?(enc_type.id)
end
return false
end
return true if has_desert_encounters? && terrain_tag.desert_wild_encounters
return true if has_dirt_encounters? && terrain_tag.dirt_wild_encounters
return true if has_mud_encounters? && terrain_tag.mud_wild_encounters
if has_desert_encounters? && $game_map.terrain_tag($game_player.x, $game_player.y).desert_wild_encounters
ret = find_valid_encounter_type_for_time(:Desert, time) if !ret
end
if has_dirt_encounters? && $game_map.terrain_tag($game_player.x, $game_player.y).dirt_wild_encounters
ret = find_valid_encounter_type_for_time(:Dirt, time) if !ret
end
if has_mud_encounters? && $game_map.terrain_tag($game_player.x, $game_player.y).mud_wild_encounters
ret = find_valid_encounter_type_for_time(:Mud, time) if !ret
end
Last edited: