Gw Temp

Menu

Tutorial - 'Multi-Tut IV' by Angroth

An item about RPGMaker 2000 posted on

Blurb

Includes custom menu system CBS (no picture version), advanced timer system, running mode and the changling ability.

Body

Finally there are a decent amount of tuts here! From custom battle system without using pictures, which is nice and easy! All the way to transforming into creatures and having an option whereby you can toggle between run and walk.
Here the are in order:
CBS (no pics)
Advanced Time System
Running Mode
The Changling Ability


Custom Battle System (no pictures)

Here we go again! But after I've done this I'm not stopping, oh no! I've got some more custom battle systems that defy the normal system. Wait and see next week (or the week after)!! Anyways, here I will show you an example from one of my games. Its not perfect but nothing is.
A - You're going to need to set variables for at least one hero. You'll need every statistic and its max version eg. Max HP, HP, Max MP, MP, Max Str, Str etc. You should also do one for level and another for exp.
B - For the enemies all you need is a variable for every stat (same as hero) name them Enemy 1 Max HP etc because if you have more than one enemy you can have another called Enemy 2 Max HP etc. This way you will be able to tell which one belongs to who. You don't need one for each creature!
C - On the battle map you will require an event for each character (if you can have them moving by a common/with stepping, then it would look great!). You’ll also need an event for each enemy.
D - Create an auto start event (this will be the main engine) on the battle map. To start off make each of the variables for the hero(s) be set by the default statistics eg. Set Alex's Str & max str as: Alex's Attack. On the same page you will want to set the enemies profiles (which you’ll have to put in numbers for).
E - Create a switch which activates the next page (something like 0001:Combat Begins).
F - The next page should be an autostart (again) and the coding would be best looking something like this:
1 - Resume animation of all characters in move event (you’ll find out later) and set hero’s toughness as their max toughness.
2 - Set label #4 next.
3 - Show Choice:Fight/Flee/Stats
4 - In fight you can have go to label #1 (but it shouldn’t be required).
5 - In flee you can either play a sound (Failure 1) and say that you could not escape (for bosses) or if you want to escape you can use a variable, generate a random number between 1 and 3. If the number is 1 then you escape, or something like that, you might want greater odds of escaping, who knows?!
6 - Use a fork condition for each character, IF Hero is in party then:
Message:Hero Hp=(current)/(max) MP=(current)/(max) etc
7 - After this choice box place a label #1.
8 - Use a fork, IF ‘hero unconscious’ switch is off.
If ‘hero is in party’.
Change switch ‘Control Hero’ ON.
Show choice Attack/Defend/Skills/Magic.
9 - In the attack choice, show choice (every enemy in combat, use multiple choices if need be) for now we’ll say Gladiator.
10 - In Gladiator case, show message: Hero attacks Gladiator.
11 - Move event to change hero into an invisible character then play a battle animation on him (of his character attacking). If you use a character set sized animation of the hero and on battle animation, place the character directly in the middle then the animation will be ontop of where the hero was (it should look good).
12 - Then show the damage battle animation on the enemy, eg Sword Swipe 1. And return hero’s look (move event)
13 - Set hero strength as hero max strength.
14 - Add a random 0 - 3 to hero’s strength. (for variation)
15 - hero strength - enemy toughness
16 - enemy toughness Set as enemy max toughness
17 - Fork (with else case), IF Hero strength is greater than 0.
True=Message:Gladiator loses (hero strength) HP.
Enemy HP - Hero Strength
False (else case)=Message:Gladiator was too tough!
18 - In Defend Choice:
Show message:Hero defends.
Move Event Hero:Stop Animation.
Hero Toughness +2
Hero MP +1
Fork: IF Hero Mp=Greater than Hero Max MP then set Hero Mp as Max Mp.
19 - In skills case put something like this (for the time being):
Play SE:Failure1
Message:Hero has yet to learn any skills
Goto Label #1
20 - Magic case should look something like this (you should put forks to check the hero’s level. IF Hero=level 6 show choice blah and so on. Do it for every level the hero gains a magic, this way you will gain magics as you level up, I’m missing this out but you will need to do it if you have an entire rpg of this combat)
Show Choice:Heal
In Heal case place label #2
If Hero is in the party:
Show Choice: Heal Hero? Heal someone else?
Heal Hero:
IF Hero’s MP is greater than his Mind/2 + Level (with else case)
Hero’s Mp - 8
Hero Mp - Hero Level
Change (default) MP - 8
Change (default) MP - Hero Level
Hero Mind/2 + Hero’s level
Move event to change hero into an invisible character then play a battle animation on him (of his character using magic).
Show the healing battle animation on the hero.
Return hero’s look (move event)
Message: Hero gains (mind variable) HP.
Hero HP + Hero’s Mind
If Hero’s HP is greater than his max, set it as his max.
Set hero’s Mind as his Max Mind
Else:
Message:Hero doesn’t have enough MP!
Goto label #2
Heal Someone Else? Case
(repeat above for every other character)
21 - Use cancel cases to go back to the labels #1 and #4 so you can choose options freely.
22 - For the enemies turn do this:
23 - Use a variable to produce a random number to decide who the enemy attacks!
24 - IF ‘Hero Unconscious’ Switch is OFF
IF Hero is in party
Message:Gladiator attacks Hero.
Move event (make enemy invisible)
Show battle animation of enemy attacking
Show battle animation of damage on the hero
Return enemy’s look (move event)
Set enemy’s str as enemy’s max str
Enemy’s str + random no. between 0 and 3
Enemy str - Hero’s toughness
IF enemy str = 0 or less (with else case)
MessageHero loses 0 HP.
Else:
Message:Hero loses (enemy str variable) HP.
Hero HP - enemy str
Hero (default) HP - enemy str
25 - At the end of the Event Commands turn Control Hero off. (when you have multiple people control hero will be able to show you who you are controlling, as demonstrated below!)
26 - On each of the hero events (on the battle map) create a new page which is activated by the ‘Control ?’ switch, eg. ‘Control Hero’. Inside this place:
Flash this event (white) 0.5sec
Wait 0.5sec
This should hopefully loop and the current (selected) character will flash (when you have multiple people), and it should look pretty cool!
27 - Create a new event that activates on 0001:Combat Begins.
28 - Inside it do the following code:
IF ‘Hero Unconscious’ is off
IF Hero hp (variable) = 0 or less
Change switch Hero Unconscious on
Set Hero HP variable as 0
Set Hero (default) HP as 0
29 - If it is your only hero it should say ‘GAMEOVER’ for you. If not, when all heros are at 0 it will say it. The reason there is IF ‘Hero Unconscious’ is off, before everything is because when they are unconscious you won’t be able to do things such as attack, be attacked and so on, which is what you want!
If you want a mini-demo of this you can email me at GW or at angroth@jerrycantrell.net
But be warned that there are a few things in this which I did not include in the engine at the time (insignificant but neccesary for full on rpgs, so refer to this also, thankyou!).


Advanced Time System

Hopefully this is a little more complex and a little more effective than your standard basic night and day system type thing.
A - Create two switches and activate one. 0001:Daytime and 0002:Night time
B - Firstly go onto common events and and create an new event named Timer System.
C - Make it a parellel process that is activated when the switch 0003:Clock ON is on.
D - The main coding should be like this (all forks are inside eachother):
1 - Create a loop function.
2 - Inside place wait 0.1sec.
3 - Change variable seconds +1.
4 - Fork condition: If seconds is 10 or more +1 minute.
5 - Fork condition: If minutes is 20 or more +1 hour.
6 - Fork condition: If hours is 5 or more set hours to 0, minutes to 0 and seconds to 0.
7 - Inside the fork put: If 0001:Daytime is on (and add else)
8 - If it is on then: Show a picture or message which says 'It is now night time'
9 - Set screen tone 80,70,70,100 & remove picture.
10 - Turn daytime off and night time switch on.
11 - In the else section show a picture or message which says 'It is now daytime'
12 - Set screen tone 100,100,100,100 & remove picture.
13 - +1 to a Weekday variable.
14 - Do a scan at this point. If variable = 0 show message saying 'It is Monday'
If variable = 1 show message saying 'It is Tuesday'
If variable = 2 show message saying 'It is Wednesday'
If variable = 3 show message saying 'It is Thursday'
If variable = 4 show message saying 'It is Friday'
If variable = 5 show message saying 'It is Saturday'
If variable = 6 show message saying 'It is Sunday'
If variable = 7 set variable to 0 and show message saying 'It is Monday' but +1 to a week variable.
15 - Do a variable check. If week variable = 3 + 1 to month variable.
16 - Do another scan. If month variable = 0 show a message saying 'It is January'.
If month variable = 1 show a message saying 'It is February'.
If month variable = 2 show a message saying 'It is March'.
If month variable = 3 show a message saying 'It is April'.
If month variable = 4 show a message saying 'It is May'.
If month variable = 5 show a message saying 'It is June'.
If month variable = 6 show a message saying 'It is July'.
If month variable = 7 show a message saying 'It is August'.
If month variable = 8 show a message saying 'It is September'.
If month variable = 9 show a message saying 'It is October'.
If month variable = 10 show a message saying 'It is November'.
If month variable = 11 show a message saying 'It is December'.
If month variable = 12 change the variable to 0 and show a message saying 'It is January'. but also +1 to a year variable.
E - If earlier in the game you set the year date to... 2003 for example, you could have some custom menu that access' the date and time. This way you could see literally how long you spend dithering in the game. Who knows, maybe you could include a character's age and all.
F - If you ever wish to stop the timer system simply turn 0003:Clock ON off. And you can re-colour the screen correctly by using a fork condition to check if it's daytime, if so set screen colour 100,100,100,100 if not set it 80,70,70,100.
G - You might find that the system takes too long to make a complete cyle from day to night and back to day. If this is the case make it so that seconds go up to 10, minutes go up to something like 20, hours up to 5. This way you will find the game time more reasonable and realistic to your game's playing time.


Running Mode

Generally there are many ways you could do this but personally I would only really tackle it one way (for an rpg and not some minigame type thing).
A - Make a common event which is a parallel process. It will need the Enter Password function.
B - Create a variable in which the commands from the Enter Password can be utilised.
C - Use a fork condition to check if that variable is number 6 (escape button). If so it will put up a choice box:
Default Menu
Run (on/off)
D - Inside the run (on/off) you shall need to do the following:
1 - Fork condition if the 0001:Run switch is on. IF SO:
2 - Decrease move speed and frequency by 2 (or 3 if you're feelin' lucky!).
3 - Turn 0001:Run off.
4 - IF NOT: Increase move speed and frequency by 2 (3 if you did it above).
5 - Turn 0001:Run on.
D - And there's the basics of it. Maybe you could include it within a custom menu or advance it so that you can choose the level of speed you wish to go (that would be groovey!). Experiment, you'll never know where it might lead you. What a short tut that was eh?


The Changling Ability

Ever thought you might want a changling? People who can morph and transform can often add a nice depth to gameplay. There are many alterations you can have on this ability, for instance, does the character have to learn forms from enemies or do they learn them at certain levels? All sorts of queries like these will be answered in time, now for the actual tutorial itself!
A - To start off, you’re going to have to make a character for each form that your character can transform into. Making be able to increase levels is up to you. Alternatively you could make it so on common events the hero is given a statistic boost.
B - If you want each transform to replace the last simply do the following:
If shifter==Wolf Form Learned
Change skills (Shifter) Bat Form forget
If Shifter==Bear Form Learned
Change skills (Shifter) Wolf Form forget
Following that system would make you replace all forms as you learnt new ones. Nevertheless you will need to create a switch for each transformation, eg. ‘0001:Bat Morph’ ‘0002:Wolf Morph’ etc.
C - Now create a skill (or more) called things such as Spectre's Wrath, Dragon Shift, Wolf Rage, I don't know... Just suggestions! And these skills will need to be switches that turn on the switch according to what they turn you into (as above) 0001:Bat Morph & 0002:Wolf Morph
D - Create a parellel process on common events which is activated when the switch is activated, in this case ‘0001:Bat Morph' is turned on.
E - Enter the following code in the coding section below if you are doing a swapping characters version:
1 - Remove the hero from your party who is transforming.
2 - Add the desired form to the party. (and give it a full recovery if you wish it to be at full health!)
3 - If you want to get the changling in the front of the party list, do this:
Create a fork condition for every character in the game (minus the transformer). The fork should check if they are in the party and IF they are you must make it REMOVE them and then ADD them back into the party. This way you will get your hero back in the front.
4 - Make a long wait, maybe about 2 minutes.
5 - Remove the form from the party.
6 - Add the hero back!
7 - Play SE: Power
8 - Put a message in saying:\S[2]Form has faded.\..\..\..\^
9 - Change the switch ‘0001:Bat Morph' off.
F - Enter the following code in the coding section below if you are doing a character profile enhancement:
1 - Change the stats of the hero (Bat Form could be +15 agility and +5 attack, make these permenant alterations!).
2 - Change hero's Walk Graphic to the creature's appropriate graphic.
3 - Make a long wait, maybe about 2 minutes.
4 - Change the stats back to what they should be.
7 - Play SE: Power
8 - Put a message in saying:\S[2]Form has faded.\..\..\..\^
9 - Change the switch ‘0001:Bat Morph' off.
G - And there you have it. If you want your creatures to level up you can give them skills and stuff too. You could also make some of them possible to wear and equip arms and armour.