In this tutorial, I will discuss how to allow players to interact with NPC’s using different approaches and how to customize how the NPC responds depending on which approach was used. I will use a “card game challenge” where the NPC will mention that she’s a pretty strong card player and has been looking for a suitable opponent and then offer to play a game with you.
The story takes place in a world where a card game is extremely popular. In addition to the usual adventures that you go on, you also have the opportunity to participate in card battles and competitions that are held throughout the world as you progress through the game. You may be able to challenge NPC’s that you meet to a game, and the winner gets to take one of the loser’s cards as a reward.
In a particular city, you find yourself doing some work with the leader of the local guild. She offers guidance and sends you on important quests, such as the one shown below
However, she’s also an avid card player and is always looking for a challenge. Having won a number of tournaments in the past, she has collected a large number of rare cards that would be a great asset to your own card deck if you manage to defeat her.
When you approach her about the card game, she talks about her own skills
And then proceeds to offer you a match
Implementing the Event
If you choose to offer this type of mini-game where the player can challenge different NPC’s, as a game developer, you have to make a lot of decisions how to implement this for players.
You have several different ways to approach this depending on how you want to do it.
Using an Item
Suppose you wanted to trigger a card challenge by using an item. Maybe the item is a deck of cards.
One way to do this is assign a common event to the item that will
- Turn on a switch
- Check for any events in front of you that can be triggered
In order to perform an action trigger check using a common event, several approaches are available there as well. I will use the Scripted Action Trigger script to accomplish this. You might choose to just use an autorun event and check the player’s position.
With the script applied, the common event itself is straightforward: turn on the appropriate switch, then check for events. We assign the common event to the item we want to use.
The event will be set up so that if the switch is ON, it will run the card challenge commands. Otherwise, it will run the normal commands. We can use a two-page event for this: one of the pages is conditioned to activate only when the switch is ON. Because the purpose of the switch is simply to force the event to run a different page, the page should also remember to turn it off after it’s done with it.
Using a button
The above solution works, but it assumes that the player must open their inventory and then select a particular item. You may decide that it would be better to simply assign different interactions to different buttons.
There are many ways to accomplish this. First, you can use Event Trigger Labels, allowing you to have an event respond to action triggers differently depending on which button was pressed.
As you can see, when the C button is pressed, it will execute the “talking” sequence of events. When the X button is pressed, it will execute the card challenge sequence of events.
Alternatively, if you decide to use scripted action triggers, you may choose to bind a common event to one of your keys so that when you press the key, it will be the same as performing an action trigger except using a different key.
Just as there are many different choices that you have to make as a game developer, there are also many different ways to implement them given the various functionality available in RPG Maker. Some options may be easier to do, others might be more manageable. You should experiment with each approach to see which one you like best and which one is suitable for your needs.
Spread the Word
If you liked the post and feel that others could benefit from it, consider tweeting it or sharing it on whichever social media channels that you use. You can also follow @HimeWorks on Twitter or like my Facebook page to get the latest updates or suggest topics that you would like to read about.