• 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.
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...
 

Ulithium_Dragon

Trainer
Member
Joined
Sep 6, 2017
Posts
56
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!
 

boonzeet

Developer of Pokemon: Secrets of the Ages
Member
Joined
Mar 13, 2019
Posts
70
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!
 

MishaKozlovacki

Novice
Member
Joined
Dec 11, 2020
Posts
23
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
 

KernowBeard

Rookie
Member
Joined
Feb 3, 2021
Posts
1
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?
 

dogproblems

Rookie
Member
Joined
Feb 9, 2021
Posts
1
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?
 
PurpleZaffre updated Location Signposts with Background Image (compatible for v16, v17 AND v18!) with a new update entry:

Fixes jarring text pop-up!

With the help of @Golisopod User, the map's name no longer weirdly pops up. It now comes and goes with the graphic, just like in the official games. Any kind of bug you might've experience before is fixed now, which also includes a window popping up above the graphic when playing in Large or Full Screen. The download link has been updated, everything you need will be found there! :)

Read the rest of this update entry...
 

Fobby

local weirdo
Member
Joined
Oct 21, 2020
Posts
61
My real question is, how did you make the soot in thew gif for mount chimney
 

Mashirosakura

With my wishes frozen in time and long forgotten
Discord Mod
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)
 

SkyArmyRecru1t

Pokémon Master
Member
Joined
Aug 25, 2017
Posts
167
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