Gw Temp

Menu

Tutorial - 'Reputation System' by deluge

An item about RPGMaker 2000 posted on

Blurb

How to create a reputation system which incorperates titles, much in the way of M&M

Body

This tutorial will teach you how to create a surprisingly easy-to-make reputation system for your game like the one in Skies of Arcadia. This is what you need to know:

- How to use variables
- How to use fork conditions
- Other extremely obvious things, such as naming a hero in the database

First, create 2 variables. Name one of them something like “Reputation” and the other “Score.” Wherever you want the score to go up, choose the “Change Variable” event, and make it +1 to the Score variable. If you have a CBS, you can make it go up every time a battle is won. If you want to make it go down, put it where you want to make it go down, then create a “Change Variable” event and make it –1 to the Score variable (You don’t have to just use 1; if it’s very important you can use larger numbers). If you have a CBS you can make it lower when you run or die.

Example:
<>Messg:Will you save the world?
<>Show choice: Yes/No
: [Yes] case
<>Messg:Of course I will!
<>Variable Ch:[####:Score] +, 3
<>(optional success sound effect here)
<>
: [No] case
<>Messg:No way!
<>Variable Ch:[####:Score] -, 3
<>

See how simple it is?

Now for the database portion… Create as many heroes as how many ranks you want. Now name each hero with a reputation, from worst to best (ex: Hero 0012:Loser, Hero 0022:Indestructable). Remember the number of the first and last hero… Make it so in the first event in your game makes it so the Reputation variable starts out right in the middle (if you have the reputations go from Hero 12 to Hero 22, make the Reputation variable start out at 17)…

Now create a common event called “Reputation” or something, it doesn’t really matter. Make the common event parallel process, and put in a fork conditions event (with an else case). Make it check if the Score variable is 50 or above (you can change the number if you want). Now create another Fork conditions event (with an else case) under it that checks if the Reputation variable is the same as the highest reputation’s hero number (for me, it was 22). Under the else case create a change variable event and make it subtract 50 from the Score variable, then add one to the Reputation variable. Under the else case of the first fork conditions event, create another fork conditions event (with else case) and make it check if the Score variable is –50 or below. Then create one more fork conditions event under it, and make it check if the Reputation variable is the same as the lowest reputation’s hero number (was 12 for me). Under the else case, make it add 50 to the Score variable, and then subtract one from the Reputation variable. The coding should look something like this:

<>FORK Optn:Varbl[####:Score], 50 above
<>FORK Optn:Varbl[####:Reputation], 22*
<>
: ELSE case
<>Variable Ch:[####:Score] - , 50
<>Variable Ch:[####:Reputation] + , 1
<>
:END case
<>
: ELSE case
<>FORK Optn:Varbl[####:Score], -50 below
<>FORK Optn: Varbl[####:Reputation], 12**
<>
: ELSE case
<>Variable Ch:[####:Score] + , 50
<>Variable Ch:[####:Reputation] - , 1
<>
:END case
<>
:END case

*= Highest reputation’s hero number
**= Lowest reputation’s hero number

And that should do it.

Now put this text in a message (let’s say that the Reputation variable is variable number 9999)

(Hero name) the \n[\v[9999]].

When you have that in your message, it should work, and you can copy and paste it into any message you want to.