• Do not use Discord to host any images you post, these links expire quickly! You can learn how to add images to your posts here.
  • The Eevee Expo Game Jam has concluded! 🎉 Head on over to the game jam forum to play through the games.
    Don't forget to come back September 21st to vote for your favorites!
  • Reminder: AI-generated content is not allowed on the forums per the Rules and Regulations. Please contact us if you have any questions!
Location Signposts with Background Image (v20/v19/v18/v17/v16)

Resource Location Signposts with Background Image (v20/v19/v18/v17/v16) 1.2

PurpleZaffre submitted a new resource:

Location Signposts with Background Image (compatible for both v16 AND v17!) - A change in the Location Signpost default script so that it has a background image, like DPPt/HGSS.

This script is an edit of LostSoulsDev / carmaniac's original one back in 2013 (https://www.pokecommunity.com/showthread.php?t=298229), since that one was a bit outdated and when using it in v16 and v17, it lagged the game a lot.
This script adds the background image to location signposts, just like in gen. 4 games like DPPt and HGSS.
All you have to do is download the folder, and inside you'll find the instructions, graphics and the script itself.
This is also very customizable...

Read more about this resource...
 
I'd recommend lowering the z value of the sprites and text so that they don't play on top of menus like the party screen (like how they behave in default Essentials).

Great resource by the way!
 
This is a great script and the performance improvement is noticeable.

The text popping in was jarring, so instead of drawing the text every frame (as before) or drawing the text once the bitmap had scrolled in, it would be better to draw the text to the bitmap once on initialize. This allows us to have the text scroll in with the bitmap and doesn't affect performance.

Ruby:
Expand Collapse Copy
################################################################################
# Location signpost - Updated by LostSoulsDev / carmaniac & PurpleZaffre & Boonzeet
################################################################################
class LocationWindow
  def initialize(name)
    @sprites = {}
    @baseColor=Color.new(0,0,0)
    @shadowColor=Color.new(148,148,165)

    # Define words in titles to match to images here
    images = {
      "Route" => "Route_1",
      "Town" => "Town_1",
      "Village" => "Town_1",
      "Lake" => "Lake_1",
      "Cave" => "Cave_1",
      "City" => "City_1"
    }
    find = images.find { |key, value| name.include?(key) }
    bg = find.nil? ? "Blank" : find[1]
    
    @sprites["Image"] = Sprite.new
    @sprites["Image"].bitmap = BitmapCache.load_bitmap("Graphics/Maps/#{bg}")
    @sprites["Image"].x = 8
    @sprites["Image"].y = 0 - @sprites["Image"].bitmap.height
    @sprites["Image"].z = 99998
    @img = @sprites["Image"].bitmap
    
    pbSetSystemFont(@img)
    pbDrawTextPositions(@img,[[name,20,@img.height-44,0,@baseColor,@shadowColor]])
    
    @window=Window_AdvancedTextPokemon.new(name)
    @window.x=0
    @window.y=-@window.height
    @window.z=99998
    @currentmap=$game_map.map_id
    @frames=0
  end

  def disposed?
    @window.disposed?
  end

  def dispose
    @window.dispose
    @sprites["Image"].dispose
  end

  def update
    return if @window.disposed?
    @window.update
    if $game_temp.message_window_showing ||
      @currentmap!=$game_map.map_id
      @window.dispose
      @sprites["Image"].dispose
      return
    end
    if @frames>120 || $game_temp.in_menu==true
      @sprites["Image"].y-= ((@sprites["Image"].bitmap.height)/($game_temp.in_menu ? 8 : 10))
      @window.dispose if @sprites["Image"].y+@sprites["Image"].bitmap.height<0
      @sprites["Image"].dispose if @sprites["Image"].y+@sprites["Image"].bitmap.height<0
    else
      @sprites["Image"].y+= ((@sprites["Image"].bitmap.height)/10) if @sprites["Image"].y<0
      @frames+=1
    end
  end
end

I also rewrote some areas for concision and ease of use - a hash is perfect for assigning images to words, and the update was easy to trim down. Also - the script doesn't need to overwrite any code. If it's placed above Main, it overrides the original definition and makes it easier to edit/remove.

Great work!
 
oh
I'd assume so, since it says that "This is also very customizable, so you can use your own graphics if you want, you'll just have to edit the script in the right sections for it (instructions for that are in the Install Guide.txt file)."
ok. Thank you so much. I just wanted to be well informed of its capabilities. Looked interesting and i wanted to use it for my fangame soon enough
 
This is a great script and the performance improvement is noticeable.

The text popping in was jarring, so instead of drawing the text every frame (as before) or drawing the text once the bitmap had scrolled in, it would be better to draw the text to the bitmap once on initialize. This allows us to have the text scroll in with the bitmap and doesn't affect performance.

Ruby:
Expand Collapse Copy
################################################################################
# Location signpost - Updated by LostSoulsDev / carmaniac & PurpleZaffre & Boonzeet
################################################################################
class LocationWindow
  def initialize(name)
    @sprites = {}
    @baseColor=Color.new(0,0,0)
    @shadowColor=Color.new(148,148,165)

    # Define words in titles to match to images here
    images = {
      "Route" => "Route_1",
      "Town" => "Town_1",
      "Village" => "Town_1",
      "Lake" => "Lake_1",
      "Cave" => "Cave_1",
      "City" => "City_1"
    }
    find = images.find { |key, value| name.include?(key) }
    bg = find.nil? ? "Blank" : find[1]
   
    @sprites["Image"] = Sprite.new
    @sprites["Image"].bitmap = BitmapCache.load_bitmap("Graphics/Maps/#{bg}")
    @sprites["Image"].x = 8
    @sprites["Image"].y = 0 - @sprites["Image"].bitmap.height
    @sprites["Image"].z = 99998
    @img = @sprites["Image"].bitmap
   
    pbSetSystemFont(@img)
    pbDrawTextPositions(@img,[[name,20,@img.height-44,0,@baseColor,@shadowColor]])
   
    @window=Window_AdvancedTextPokemon.new(name)
    @window.x=0
    @window.y=-@window.height
    @window.z=99998
    @currentmap=$game_map.map_id
    @frames=0
  end

  def disposed?
    @window.disposed?
  end

  def dispose
    @window.dispose
    @sprites["Image"].dispose
  end

  def update
    return if @window.disposed?
    @window.update
    if $game_temp.message_window_showing ||
      @currentmap!=$game_map.map_id
      @window.dispose
      @sprites["Image"].dispose
      return
    end
    if @frames>120 || $game_temp.in_menu==true
      @sprites["Image"].y-= ((@sprites["Image"].bitmap.height)/($game_temp.in_menu ? 8 : 10))
      @window.dispose if @sprites["Image"].y+@sprites["Image"].bitmap.height<0
      @sprites["Image"].dispose if @sprites["Image"].y+@sprites["Image"].bitmap.height<0
    else
      @sprites["Image"].y+= ((@sprites["Image"].bitmap.height)/10) if @sprites["Image"].y<0
      @frames+=1
    end
  end
end

I also rewrote some areas for concision and ease of use - a hash is perfect for assigning images to words, and the update was easy to trim down. Also - the script doesn't need to overwrite any code. If it's placed above Main, it overrides the original definition and makes it easier to edit/remove.

Great work!
This altered version certainly makes the pop up smoother. However I'm encountering an issue.

I added an extra line to the list of defined words and their associated files. The first one I added worked fine but when I try adding another the game gives me a Syntax Error on the line that was added and immediately crashes the game.

Any thoughts?
 
I'm using a fresh v18.1 and the script works as intended but the original location signposts still pop up above. I've checked the wiki for help with the NOSIGNPOST tag but I haven't had much luck.

Any idea how to resolve this?
 
My real question is, how did you make the soot in thew gif for mount chimney
 
To make this work in v19.1 you need to change LIGHTTEXTSHADOW on line 20 to LIGHT_TEXT_SHADOW_COLOR (which is what the function was renamed to in v19)
 
I'll go ahead and confirm for anyone wondering that it works for v20, however the text is misaligned on the location window, so if you want to fix that, you also need to change the -44 to a different number in the pbDrawTextPositions on line 37, anything around -35 seems to be the perfect value
 

Attachments

  • platinumsignpost.png
    platinumsignpost.png
    453 bytes · Views: 119
Back
Top