CHAPTER 10

image

Treasure Hunting and Other Hidden Things

Who doesn’t like finding hidden things and ancient treasure? This chapter will be all about finding hidden treasure with the help of special items provided by nonplayer characters (NPCs) or found in different locations. We’ll apply what you have learned in the previous chapter to come up with all sorts of relevant things for the aspiring explorer and treasure hunter. First of all, we have to create a new establishment in Seaside. A treasure hunter is coming to town! You can see the treasure hunter’s shop in Figure 10-1.

9781484207857_Fig10-01.jpg

Figure 10-1. The treasure hunter’s shop is the building on the right

I reworked the last building on the lower end of the port town to reflect its special status. The interior map is a tweaked premade Item Shop. We want the door to remain locked until Gemini has been defeated. Inside, behind the counter, we have the treasure hunter, who urges the player to pick up the sack at the nearby table when spoken to. The sack will contain this chapter’s first item: The Compass.

The Compass

This item will be used to determine the player’s current location, as well as enable the player to find hidden treasure chests in dungeons. The former can be accomplished with a three-line common event, while the latter will rely on the hidden chest events to require that the player possess the Compass (Item exists conditional). You can see the Compass item in Figure 10-2 and its associated common event immediately thereafter.

9781484207857_Fig10-02.jpg

Figure 10-2. The Compass Key Item to be used for treasure hunts

  • Name: Compass
  • Trigger: None
    @>Control Variables: [0002:X] = Player's Map X
    @>Control Variables: [0003:Y] = Player's Map Y
    @>Text: -, -, Normal, Bottom
    :     : Your current position is V[2], V[3].
    @>

When the player uses the Compass from the menu, the game will poll the player’s current X and Y position and display it in a text box. How will the player know where those chests are? The simplest way, and the one I’ll be covering, is to have treasure notes that give the exact location of hidden chests, which makes it so that the player only needs to use the Compass to find them. That, of course, leaves the question of how the player will find those treasure notes. We can have the treasure hunter sell them! Or, rather, we can have him sell most of them, and make it so that the player can find certain notes from other treasure chests. As already established in Chapter 7, eventing a shop with Show Choices is a pain, at best. Yet, we know that we want the treasure hunter to sell treasure notes that will lead the player to special loot. I have an alternate solution to our little quandary. We’re going to use an event command we have not touched up to now: Input Number. First, let’s come up with five hidden treasure locations. (See Figure 10-3).

9781484207857_Fig10-03.jpg

Figure 10-3. The locations for the hidden treasure we are going to add to our game

The ones listed in Figure 10-3 will do. I have marked the precise treasure locations with Region #5. From top left to bottom right, they are as follows:

  • (75,7) at the first dungeon’s basement
  • (85,25) at the first dungeon’s basement
  • (10,14) at Tower of the Void F1F
  • (18,35) at Tower of the Void F4F. Southwestern pair of pillars
  • (31,17) at Tower of the Void F5F

How to Change Whether a Map Displays Its Name

For the sake of this exercise, it’s time to give our dungeons proper names, so I’ll call the first dungeon the Dark Cave. The second dungeon will be the Dark Spire. Unoriginal, I know, but it serves our purposes. You can make it so that the game displays a location’s name once and then no more (good for the first time a player reaches a new location). Displaying it is as easy as giving the location a name (by default, an RPG Maker VX Ace [RMVXA] game will display a location’s name every time the player arrives at the area). I’ll leave this as an exercise for you; however, if you decide to go through with this, you’ll need switches for each location you would like to do this for. Additionally, you will have to have conditionals to make sure that the map name display is disabled on subsequent visits. Here’s the example eventing for the first dungeon:

@>Conditional Branch: Variable [0002:X] == 28
   @>Conditional Branch: Variable [0003:Y] == 82
      @>Control Variables: [0011:DungeonLocation] = 1
      @>Conditional Branch: Switch [0024:Dungeon1Visit] == ON
         @>Change Map Name Display: $s
         @>
      : Branch End
      @>Conditional Branch: Switch [0024:Dungeon1Visit] == OFF
         @>Control Switches: [0024:Dungeon1Visit] = ON
         @>
      : Branch End
      @>Transfer Player:[005:Goblin CaveF1F] (020,043), Up
      @>
   : Branch End
   @>
: Branch End

I expanded the relevant transfer event to include the new content. If Dungeon1Visit is on, we disable the map name display. This event command is victim to the same text bug that HP/MP conditionals suffer from in RMVXA. Instead of actually seeing Enable or Disable, you see $s. Rest assured that it will work as intended, despite the textual hiccup. If Dungeon1Visit is off, we flip it on. This allows the dungeon’s name to be displayed one time. You’ll want to make sure you have an Enable Map Name Display command for any transfer events leading out of that dungeon. Personally, I feel this is more of a hassle than it is worth and would rather either leave the map name blank or just let it display, no matter what. In any case, now you know, and learning is why you’re here!

Creating Hidden Treasure Chests That Require the Compass to Be Found

So, back to the topic at hand. We want to make hidden treasure chests that require the player to have the Compass. Once the player does have the Compass, he/she can press the Action Button while standing directly over the spot in question and uncover hidden loot! I’ll write out how the actual event should look like shortly, but I’ll summarize it first.

  • We can start from the Quick Treasure Chest Event template. From there, remove the chest graphic from page 1 of the event. We want to fade out the screen, give the player a message that he/she is digging, and then have the player take a step back. That last part is arguably the most important. If you don’t move the player’s character out of the chest’s square, he or she will be stuck once the chest is dug up.
  • Before we fade the screen back in, use Set Move Route to change the chest graphic from None to our desired sprite set. I chose the wooden chest graphic located below the default red chest set.
  • We fade in the screen and announce that the player has found a hidden chest. The rest of the event plays out normally.

With that said and done, here’s the promised code:

@>Fadeout Screen
@>Text: -, -, Normal, Bottom
:     : You dig under your feet.
@>Set Move Route: Player (Wait)
:               : $>1 Step Backward
@>Set Move Route: This event (Wait)
:               : $>Graphic: '!Chest', 4
@>Wait: 30 frame(s)
@>Fadein Screen
@>Text: -, -, Normal, Bottom
:     : You found a hidden chest!
@>Play SE: 'Chest', 80, 100
@>Set Move Route: This event (Wait)
:               : $>Direction Fix OFF
:               : $>Turn Left
:               : $>Wait: 3 frame(s)
:               : $>Turn Right
:               : $>Wait: 3 frame(s)
@>Control Self Switch: A =ON
@>Change Items: [Elixir], + 1
@>Text: -, -, Normal, Bottom
:     : Elixir was found!

You can copy-paste that same event for all of your hidden treasure needs.

The Treasure Hunter

Next, let’s head back to Seaside and set up the treasure hunter NPC. We want him to do the following:

  • Greet the player when talked to for the first time. He will tell him/her to check the sack on the nearby table.
  • Once the player has grabbed the Compass, talking to the NPC again will prompt the character to talk about the shop that he has set up for aspiring treasure hunters. He will sell treasure notes.
  • We run a common event to see which treasure notes the player already has. Then, if the player is still missing notes from the shop, the NPC will offer to sell treasure notes.
  • If the player says yes, we call the common event for the treasure note shop.

Here’s page 1 of the treasure hunter event:

@>Conditional Branch: [Compass] in Inventory
   @>Text: -, -, Normal, Bottom
   :     : Neat little instrument, that Compass. Follow it
   :     : and you'll never be lost again.
   @>Text: -, -, Normal, Bottom
   :     : Okay, fine. You still have to mind your
   :     : surroundings. But, it will help you find hidden
   :     : treasure. Isn't that exciting?
   @>Show Choices: Yes, No
   : When [Yes]
      @>Text: -, -, Normal, Bottom
      :     : I knew you'd say yes!
      @>Jump to Label: Continue
      @>
   : When [No]
      @>Text: -, -, Normal, Bottom
      :     : You only say that because you haven't done it before.
      @>Jump to Label: Continue
      @>
   : Branch End
   @>Label: Continue
   @>Text: -, -, Normal, Bottom
   :     : I'm running a Treasure Note shop. It will tell you
   :     : where to dig for treasure. Use that Compass to find
   :     : out your current location.
   @>Text: -, -, Normal, Bottom
   :     : Talk to me again if you want to buy Treasure Notes.
   @>Control Self Switch: A =ON
   @>

: Else
   @>Text: -, -, Normal, Bottom
   :     : Hello there! I have never seen you before, traveler
   :     : Do you wish to embrace the path of the explorer?
   :     : Sure you do! Take a look at the sack over there.
   @>Control Switches: [0025:THunterTalk] = ON
   @>
 : Branch End
@>

As is usually the case for item-based conditionals, I leave “Set handling when conditions do not apply” on, so that I can use that Else. In this case, we want to see if the player has the Compass in his/her inventory. If the player does not, the text box at the very end of the event will be shown, along with a switch being flipped on that we’ll use later for the sack that contains the Compass. If the player does have the key item, the treasure hunter will talk a little and give the player a false choice (as in, it doesn’t matter what is answered). Then, he’ll talk about his treasure note shop and urge the player to talk to him again, if he/she wants to buy treasure notes. We flip self-switch A, which allows page 2 of this NPC event to be processed. Page 2 contains a greeting for the player and immediately calls a common event. As there are a few things to process for the shop we wish to make, it’s better to use common events to reduce clutter.

The Treasure Hunter’s Treasure Note Shop

For the first common event, we start by checking if the player has any treasure notes sold by the NPC already. To do that, we create a new variable called TreasureNotesForSale and set it to 5 within the common event (as the NPC will have five notes for sale). Then, we create a conditional branch to check if the player has each of the treasure notes. For each note in the player’s inventory, the value of TreasureNotesForSale is reduced by 1. If the player has all five treasure notes sold by the NPC, he will say as much via a message: “I don’t have any treasure notes for sale!” Otherwise, he will say that he has X treasure notes for sale, where X is equal to the value of TreasureNotesForSale. Then, he will ask the player if he/she wishes to buy a treasure note. If the player says yes, we call the second common event. If he/she says no, we end the conversation.

Here’s the event code for the first common event:

  • Name: Treasure Note Check
  • Trigger: None
@>Control Variables: [0015:TreasureNotesForSale] = 5
@>Conditional Branch: [Treasure Note 1] in Inventory
   @>Control Variables: [0015:TreasureNotesForSale] -= 1
   @>
: Branch End
@>Conditional Branch: [Treasure Note 2] in Inventory
   @>Control Variables: [0015:TreasureNotesForSale] -= 1
   @>
: Branch End
@>Conditional Branch: [Treasure Note 3] in Inventory
   @>Control Variables: [0015:TreasureNotesForSale] -= 1
   @>
: Branch End
@>Conditional Branch: [Treasure Note 4] in Inventory
   @>Control Variables: [0015:TreasureNotesForSale] -= 1
   @>
: Branch End
@>Conditional Branch: [Treasure Note 5] in Inventory
   @>Control Variables: [0015:TreasureNotesForSale] -= 1
   @>
: Branch End
@>Conditional Branch: Variable [0015:TreasureNotesForSale] == 0
   @>Text: -, -, Normal, Bottom
   :     : I don't have any Treasure Notes for sale!
   @>
: Else
    @>Text: -, -, Normal, Bottom
    :     : I have V[15] Treasure Notes for sale. Would you
    :     : like to purchase one?
   @>Show Choices: Yes, No
   : When [Yes]
      @>Call Common Event: [Treasure Note Purchase]
      @>
   : When [No]
       @>Text: -, -, Normal, Bottom
       :     : Take care!
      @>
   : Branch End
   @>
: Branch End
@>

For the second event, we have the player input a number from 1 to 5. If the NPC has that particular treasure note in stock, he’ll give his price and ask if the player wants it. If the player already has that treasure note, the NPC will say as much. Check the following code to see the framework for the second common event:

  @>Text: -, -, Normal, Bottom
  :     : C[3]Please input the Treasure Note number you would
  :     : like to purchase (1-5 are valid). Input 0 to cancel.
@>Input Number: [0014:TreasureNoteNumber], 1 digit(s)
@>Conditional Branch: Variable [0014:TreasureNoteNumber] == 0
   @>
: Branch End
@>Conditional Branch: Variable [0014: TreasureNoteNumber] == 1
   @>Conditional Branch: [Treasure Note 1] in Inventory
      @>Text: -, -, Normal, Bottom
      :     : You already own that Treasure Note!
      @>
   : Else
        @>Text: -, -, Normal, Bottom
        :     : That'll be 200 Gold, if you will.
      @>Show Choices: Yes, No
      : When [Yes]
         @>Conditional Branch: Gold is 200 or more
            @>Change Gold: - 200
            @>Change Items: [Treasure Note 1], +1
               @>Text: -, -, Normal, Bottom
               :     : Thank you for your custom!
            @>Play SE: 'Item1', 80, 100
            @>Text: -, -, Normal, Bottom
            :     : Received C[2]Treasure Note 1C[0]!
            @>
         : Else
            @>Text: -, -, Normal, Bottom
            :     : You don't have enough gold!
            @>
            : Branch End
            @>
      : When [No]
            @>
      : Branch End
   @>
   : Branch End
@>
: Branch End
@>Conditional Branch: Variable [0014:TreasureNoteNumber] == 2
   @>
: Branch End
@>Conditional Branch: Variable [0014:TreasureNoteNumber] == 3
   @>
: Branch End
@>Conditional Branch: Variable [0014:TreasureNoteNumber] == 4
   @>
: Branch End
@>Conditional Branch: Variable [0014:TreasureNoteNumber] == 5
   @>
: Branch End
@>Conditional Branch: Variable [0014:TreasureNoteNumber] > 5
    @>Text: -, -, Normal, Bottom
    :     : I don't have a Treasure Note of so high a number!
    @>
: Branch End
@>

I left the branches for treasure notes 2 through 5 empty, to save space, but they should also follow the structure laid out in treasure note 1.

Image Note  C[n] is one of the various modifiers you can apply to text. It changes the color of text placed after the modifier when used. C[0] is white. The colors I have used in the preceding event are two of my favorite available in RMVXA. (I’ve already used C[2] quite a few times in this book).

Following is a list of the colors I’ve most used in RMVXA:

  • C[2] is orange. I like to use this for important/key items.
  • C[3] is green. I prefer to use this color when I’m writing messages that break the fourth wall, as it were. Because the initial message tells the player directly how to use the input box, it makes sense to differentiate it from what the NPC would say in-game.
  • C[18] is red. If you want to draw the player’s attention to a particular word or phrase, you can’t get much more emphatic than red.
  • Incidentally, C[32] and above are also white.

Giving the Player the Compass

That, of course, leaves us with creating the sack event that will give the player a Compass and actually add the treasure note items to the Database. As we need the Compass to actually access the shop in-game, let’s make that event first.

@>Conditional Branch: Switch [0025:THunterTalk] == OFF
    @>Text: -, -, Normal, Bottom
    :     : Oh, does that sack on the table intrigue you?
    :     : It used to belong to an old treasure hunter, but
    :     : he retired recently. Why don't you take it?
    @>
: Branch End
@>Conditional Branch: Switch [0025:THunterTalk] == ON
   @>Text: -, -, Normal, Bottom
   :     : There you go. Take it!
   @>
: Branch End
@>Text: -, -, Normal, Bottom
:     : Will you take it?
@>Show Choices: Yes, No
: When [Yes]
   @>Text: -, -, Normal, Bottom
   :     : Take a look inside. It's not the sack that's
   :     : important!
   @>Text: -, -, Normal, Bottom
   :     : You open the sack.
   @>Play SE: 'Item1', 80, 100
   @>Text: -, -, Normal, Bottom
   :     : Eric finds a C[2]CompassC[0]!
   @>Change Items: [Compass], + 1
   @>
: When [No]
   @>
: Branch End
@>

We check to see if the player has talked to the treasure hunter before. If he/she has, the NPC will urge him/her to take the sack. If not, he will give a little backstory to the sack and then urge the player to take it all the same. When the player does, he/she receives the Compass.

Creating the Treasure Notes

As for the treasure notes, there are two ways to make them. Both ways are easy, but one of them is more efficient than the other.

  • We can put the relevant treasure information in the Item description box.
  • We can use a short common event to use Show Text commands for the same effect.

One way requires the additional use of common events, while the other requires only the item itself, so we’ll be using the first option. See Figure 10-4 for the treasure notes, with their respective descriptions. As they share the same general settings, I copied the settings box once and just have screenshots of the different descriptions.

9781484207857_Fig10-04.jpg

Figure 10-4. The five treasure notes, with their location descriptions

That just about sums up hidden treasure chests and how we can have the player find them. Of course, we can hide all sorts of things besides treasure. When the second boss was defeated by Eric and Noah back in Chapter 6, we had him mention a dark castle far to the north. We have already added a bridge that the player can cross after defeating the first boss. However, to get the player from the second landmass to the third, let’s make a hidden dungeon that requires the player to have the Compass to find. Instead of using a treasure note to hide the location, we can have an NPC at the arena tell the player about it.

A Hidden Location

We’ll have our new NPC require the player to have cleared out Rank C before she’ll tell them the exact location of the dungeon. Since different players have different play styles, we have to accommodate both of the following possibilities:

  • The player talks to the NPC as soon as he/she notices her on a first visit to the arena.
  • The player talks to the NPC for the first time after having cleared out Rank C of the arena.

A Page of Evented Plot

While we’re at it, we might as well have her drop some plot tidbits. (Seems like so long ago that we last had something relevant to the main plot, right?) On that note, here’s the first part of page 1 of the new NPC’s event, full of juicy plot:

@>Text: -, -, Normal, Bottom
:     : Oh, hello there. Haven't seen either of you before!
@>Text: 'Actor4', 0, Normal, Bottom
:     : My name is Eric.
@>Text: 'Actor5', 6, Normal, Bottom
:     : I am Noah.
@>Text: -, -, Normal, Bottom
:     : Nice to meet you! I'm Amanda. I've been here
:     : for the better part of two years, honing my skills
:     : to be able to protect the villagers of Rocksdale.
@>Text: 'Actor4', 0, Normal, Bottom
:     : Rocksdale?
@>Text: -, -, Normal, Bottom
:     : It's a hidden mountain town on the small continent
:     : to the north of here. Where are you two from,
:     : anyway?
@>Text: 'Actor5', 6, Normal, Bottom
:     : We hail from Seaside.
@>Text: -, -, Normal, Bottom
:     : Wait, isn't that the port town to the far south?
@>Text: 'Actor4', 0, Normal, Bottom
:     : Not THAT far south, but yes.
@>Text: -, -, Normal, Bottom
:     : Amanda ponders her choice of words carefully.
@>Text: -, -, Normal, Bottom
:     : I do not wish to call you two liars, but no one has
:     : left the southern continent in over fifteen years.
@>Show Balloon Icon: Player, Exclamation, Wait
@>Text: 'Actor5', 6, Normal, Bottom
:     : Truly?
@>Text: -, -, Normal, Bottom
:     : I'm afraid so.
@>Text: -, -, Normal, Bottom
:     : Noah thinks on Amanda's words.
@>Text: 'Actor5', 6, Normal, Bottom
:     : Both continents are connected by a stone bridge.
@>Text: -, -, Normal, Bottom
:     : Which no one could cross. A strange force would repel all attempts.
@>Text: 'Actor4', 0, Normal, Bottom
:     : I think we stopped the source of that.
@>Text: -, -, Normal, Bottom
:     : So it would seem.

Not much to say here. Plot is plot. Check the next page to see the final parts of page 1.

@>Conditional Branch: Switch [0009:RankCClear] == OFF
   @>Text: -, -, Normal, Bottom
   :     : Tell you what: If you can clear Rank C of the Arena,
   :     : I'll tell you where the entrance to the forest maze
   :     : lies. You can reach the northern continent through
   :     : there.
   @>
: Branch End
@>Conditional Branch: Switch [0009:RankCClear] == ON
   @>Text: -, -, Normal, Bottom
   :     : You two have already cleared Rank C, so I think
   :     : it's safe to trust you.
   @>Text: -, -, Normal, Bottom
   :     : Go to (21,66) and examine the area. You should find
   :     : a secret entrance. You'll need a Compass. So, if you
   :     : don't already have one, you'd better find one.
@>Conditional Branch: Self Switch B == OFF
   @>Control Self Switch: B =ON
   @>Text: 'Actor4', 0, Normal, Bottom
   :     : Many thanks!
   @>Text: 'Actor5', 6, Normal, Bottom
   :     : Your assistance is appreciated.
   @>Text: -, -, Normal, Bottom
   :     : No problem. Just do me a single favor.
   @>Text: 'Actor4', 0, Normal, Bottom
   :     : Sure. What do you need?
   @>Text: -, -, Normal, Bottom
   :     : Stay safe. A nefarious monster lives in the castle
   :     : past the mountain range.
   @>
   : Branch End
   @>
: Branch End
@>Control Self Switch: A =ON
@>

Making Sure That the Player Has Progressed in the Arena

Here, we have the NPC check if the player has already cleared out Rank C of the arena. If he/she has, then the NPC will give the location of the hidden location on the world map. Eric and Noah will thank the NPC and self-switch B will be flipped on. Self-switch A is flipped at the end of page 1, regardless of what happens. Page 2 requires that self-switch A be flipped. If the player talked to Amanda for the first time before completing Rank C, page 2 is where he/she will land when he/she talks to her again (otherwise, the player will skip to page 3).

@>Conditional Branch: Switch [0009:RankCClear] == OFF
   @>Text: -, -, Normal, Bottom
   :     : Oh hi there! Go clear Rank C, would ya?
   @>
: Branch End
@>Conditional Branch: Switch [0009:RankCClear] == ON
   @>Text: -, -, Normal, Bottom
   :     : Congratulations on clearing Rank C!
   :     : I think it's safe to trust you two.
   @>Text: -, -, Normal, Bottom
   :     : Go to (21,66) and examine the area. You should find
   :     : a secret entrance. You'll need a Compass. So, if you
   :     : don't already have one, you'd better find one.
@>Conditional Branch: Self Switch B == OFF
   @>Control Self Switch: B =ON
   @>Text: 'Actor4', 0, Normal, Bottom
   :     : Many thanks!
   @>Text: 'Actor5', 6, Normal, Bottom
   :     : Your assistance is appreciated.
   @>Text: -, -, Normal, Bottom
   :     : No problem. Just do me a single favor.
   @>Text: 'Actor4', 0, Normal, Bottom
   :     : Sure. What do you need?
   @>Text: -, -, Normal, Bottom
   :     : Stay safe. A nefarious monster lives in the castle
   :     : past the mountain range.
   @>
   : Branch End
  @>
: Branch End
@>

If the player has yet to clear Rank C when he/she talks to Amanda again, she’ll urge him/her to go do so. If the player has cleared Rank C, we have a similar sequence play out, in which Amanda tells the player where to press the Action Button to find the hidden dungeon. Page 3 is processed when self-switch B has been turned on and consists of Amanda asking if the party needs her to repeat her directions. If they say yes, she will do so.

Image Note  In lieu of having page 3 work in this manner, you could have Amanda give the party a note that repeats her words via calling a common event. In that case, you could just have her say some form of greeting when self-switch B is on instead.

@>Text: -, -, Normal, Bottom
:     : Hello there! Do you need me to repeat my directions?
@>Show Choices: Yes, No
: When [Yes]
   @>Text: -, -, Normal, Bottom
   :     : Go to (21,66) and examine the area. You should find
   :     : a secret entrance, so long as you have a Compass.
   @>
: When [No]
   @>Text: -, -, Normal, Bottom
   :     : Ok. Stay safe, you two!
   @>
: Branch End
@>

The player now knows to look at 21,66 in the world map to find a hidden dungeon.

Creating Our Hidden Location

Using Load Sample Map, add Cave Entrance to our map list. Then, let’s place an event triggered by the Action Button at that location that leads to that new area. We want to make sure that the player cannot find the location without having the Compass, so you’ll want to set the Item: Compass Exists condition on page 1 of the event. As for the transfer event, it looks like this:

@>Text: -, -, Normal, Bottom
 :     : You found a hidden location!
@>Transfer Player:[015:Cave Entrance] (008,026), Up
@>

On that map, you’ll want to set up the appropriate transfer events. The player arrives at the area on the left picture in Figure 10-5.

9781484207857_Fig10-05.jpg

Figure 10-5. Pictures of the exit to the world map and the entrance into the third dungeon

You’ll want a Parallel Process event to cover the transfer locations behind that area. They should lead back to the world map. The cave entrance displayed on the right should lead into our third dungeon, where I will take the time to talk about the last type of hidden thing that I will cover in this chapter.

Hidden Passages

For those times when you want players to explore off the beaten path or otherwise flex their minds to figure out how to reach the end of the dungeon, hidden passages do the trick. For this exercise, we will require the following:

  1. Go to the Tilesets tab in the Database. Then, find the Dungeon tileset and add Dungeon_A4 to slot D. This will allow us to use certain tiles from tileset A for eventing purposes.
  2. Click over to tileset A in Dungeon, making sure that Passage is selected on the right-hand side of the page, and set the Transparent tile to passable. Passable tiles have a circle instead of an x.
  3. Add the three Abandoned Mine levels to your project. Make it so that the cave entrance transfers the player to Abandoned Mine F1F.

I used a screenshot (Figure 10-6) to show the greater extent of the changes that we will be making to the stock dungeon. Mainly, we want to seal off most of the side passages, such that the player has to find and use the secret passages to progress through the floor. Additionally, I completely removed the left-most stairs on this floor.

9781484207857_Fig10-06.jpg

Figure 10-6. The first floor of the Abandoned Mines, tweaked to include various secret passages

You can probably see sequences of blocks right on top of the secret passages. Those are specific events used to hide the passages from plain sight. Let me zoom in on the first passage the player will probably find. (See Figure 10-7).

9781484207857_Fig10-07.jpg

Figure 10-7. One of the secret passages in the first floor of the dungeon

Once you have Dungeon_A4 in Dungeon’s D tileset, you can use wall and roof tiles to complement your event graphics. Here, we have four individual events. From top to bottom, they are as follows:

  • The two roof tiles are Above Characters. That means that the player will walk under them in the game.
  • The first wall tile is also Above Characters.
  • The second wall tile is Same As Characters. You can have it so that the player effortlessly passes through the tile by checking Through in that event. What I do is ever so slightly more involved.
    @>Text: -, -, Normal, Bottom
    :     : You find a secret passage!
    @>Control Self Switch: A =ON
    @>

Mainly, I have a two-page event, in which page 1 announces that the player has found a secret passage. Then, I flip on self-switch A, which causes the tile to disappear, leaving behind a transparent tile (which appears black in-game) that allows the player to continue forth. On that note, you’ll want to make sure that there are transparent tiles beneath each of the secret passage events. That will allow the player to actually walk through one side to reach the next. For side-facing secret passages, such as the one in Figure 10-8, you can assign a Same As Characters priority to the tile connecting the passage to the dungeon.

9781484207857_Fig10-08.jpg

Figure 10-8. A side-facing secret passage

When the player presses the Action Button, we can display the same text message as in the previous event and change that event’s priority to Above Characters. In any case, it’s a good time to note that you will notice small graphical discrepancies, as RMVXA won’t try to meld the roof and wall event graphics as it would if you had drawn them with the Map Editor. Figure 10-9 is an example of what I mean. Notice the vertical lines on either side of the secret passage.

9781484207857_Fig10-09.jpg

Figure 10-9. A picture of the visible discrepancy when terrain tiles are used as event graphics

Given that we have to use a bare minimum of two events (you can get away with a single roof for the side-facing passages) per passage created in this way (one roof and one wall), this is highly taxing on the map event cap. It’s best to use this type of eventing sparingly.

Image Tip  Another cool use of passable transparent tiles in Darkness is to make areas without illumination. You could just have corridors that end into nothingness and start into new areas unexpectedly.

Additional Exercises

That just about concludes this chapter. As is typical, however, here are a few exercises to apply your learned knowledge:

  1. Create a new item that can be used to detect secret passages.
    • You could have secret passage events require the player to have said item in his/her inventory to actually find it, much like we had the hidden location require the Compass.
  2. Make it so that the player must learn of the dungeon’s location from Amanda before he/she can go find it.
    • You would want to do this to stop sequence breaking (that is, players doing things out of an intended order). I don’t mind sequence breaking at all, but I’m sure there are people out there who do.
    • All you would have to do is have a switch that is flipped on when Amanda’s self-switch B is on. Then, you require the player to have the Compass and to have flipped on that switch to progress.

Summary

This chapter covered hidden things that can be implemented throughout the course of a game, such as treasure and passages. The knowledge of common events gained in Chapter 9 was used to great effect for the hidden treasure. In addition, we have placed the foundation for our third dungeon. In the next chapter, we will be discussing puzzles and how to create them within RMVXA.

..................Content has been hidden....................

You can't read the all page of ebook, please click here login for view all page.
Reset