Site hosted by Angelfire.com: Build your free website today!

OHR Help

Come, drink from the Fountain of my Limited Knowledge and Questionable Experience!


Table of Contents
1-A. Fake Battlescripting-In-Battle
1-B. Fake Battlescripting-Fake-Battle
2-A. Cheating The Engine: Fake Plotscripting
2-B. Cheating The Engine: Less Walkabouts for Animation
2-C. Cheating The Engine: More Than 35 NPCs
3-A. Set Attacks: Healing 50 Every Time
3-B. Set Attacks: Status Effects
3-C. Set Attacks: Anti-Status Effects
4-A. Vehicles: Remembering Position
4-B. Vehicles: Fun with Vehicles
4-C. Vehicles: In The Boat



1-A. Fake Battlescripting-In-Battle

Okay, this may be more complicated than the other way, but wastes much less space when it comes to file size. First, you'll need the enemy to have a couple of normal attacks (too many gets it more complicated) that always chain to each other. Do NOT put them in the enemy attack section. Next, make an attack with a blank attack picture, 'null' attacker animation, a damage set to 0 and the 'do not show damage' bitset. Next, make a caption with the first line of text you want shown. (EX: Joe: Hey looky it's a talking monkey!). Next, repeat this process until you have the entire dialogue written out in different commands each, each one chaining to the next in the list. Have each attack after the first have a 'delay before attack' of however long you think it takes to read the line. Make it short, most people can read of one line of text in 2-3 or less seconds. This is in ticks, however, so make each second count as 15 ticks. Then have each caption display for the exact same amount you thought it would take to read it. This way, attack 1 will display the caption for, say, 4 seconds, and the next attack will not start until the caption is finished. Repeat this for every attack, so that the lines of text will display after each other fluently, not too fast and not too slow. Now add up all the ticks this will take and divide it by 15. Make a stun attack that stuns (with spread, also with no attack picture and 'null' attacker animation) for however much you came up with when you divided the ticks by 15. (Ex: 60 ticks = 4 seconds). You must do this because stun is in seconds but the delay and display are in ticks. Have this stun attack link to the first text line, which should have no 'delay before attack.' Make the final line of text link to any of the attacks that all chain to each other, and have each of these attacks have a delay before attack setting of how long you think it will take between the enemy's attacks. Put the stun attack (which starts everything) only into the enemy's attack list, and give the enemy normal stats except for a speed of 999. This way, your character will not be able to move until the text is over, if you did everything right, and the enemy will attack afterwards at the intervals you set in between the 'true' attacks. Now you have some in-battle dialogue. This is also doable after the enemy gets weak, with the stun being the only attack it it's desperation attack list, but not both... once the first starts, it will not let in any other attacks because all of its attacks chain to each other, thus letting nothing else happen. I hope that wasn't too confusing, but if it was just read it over a few times.


1-B. Fake Battlescripting-Fake-Battle

This is MUCH easier than the above example, but has the capability to take up MUCH for filesize space and raises some not-very-important-but-still-slightly-important issues... first just enter the battle and take a screen shot of it with print screen, and have an image of the backdrop handy. Paste the battle image you copied 'as a new image' in any good picture editor. Then you can import it as a .bmp with added text written on it or text in the text box it will be shown in. All you need is text-filled or blank text boxes to show this right before the battle starts. You can also have the characters doing different things, even full-screen summons and the like, that they couldn't do in battle. If you move a character, all you need to do is copy and past the missing section from the original backdrop you have onto the blank spot. Plenty of people use this, but the real problem here, that many people, even experienced users, sometimes don't take note of is this: it isn't flawless. For example, the HP bars/numbers will likely not be the same in the imported picture as when the character reaches this point, unless it is at the start at the game. Another important issue is the character could have moved their characters with Team. Even in a one person party, this raises issues because for any reason, by the user or when you took out characters, the character may be in a different place on the screen, including the name and stats. Next it is obvious it is not a battle as a fadeout/in occurs between the backdrops being shown and the actual battle. Finally, of course, it increases filesize. Let's face it, backdrops take up basically every shred of filesize, and the less you have the better... unless the game will be zipped MAXIMIZED. Personally I don't like downloading 10-20 megabyte game... I have a fairly good internet connection, and use a high-speed internet provider, but it can still take some time, depending on where you download the file from and if you are downloading multiple games at the same time.


2-A. Cheating The Engine: Fake Plotscripting

Fake plotscripting is necesary for a massive-world game, and pretty darned helpful anytime else. The use door command in text boxes is more useful then the teleport to map command in plotscripting because it automatically has fade in/out commands tacked on. It can be especially important with npcs. An example is Joe wants to have 20 npcs to pace back and forth for a long time. The problem is how to do this with plotscripting? Well, first we could use up twenty npcs with moving commands for each. But that leaves us with only fifteen more npcs and clogs up our script. What about npc reference? With multiple copies the same effect can still be achieved. But it still takes up a lot, in fact more space in the plotscript, although it saves us the npc loss. Or we could just have two npcs set to pace, at the same speed with the same picture, and the same tag for appearing. Make the first appear only once, at the front, and have nineteen of the other put behind it. Set the tag on in the script, and you already have them all moving. Just put in an if command and a command to check the first npc's position, and when it reaches somewhere turn the tag off command. The script is now much simpler and we only had to use one extra npc.


2-B. Cheating The Engine: Less Walkabouts for Animation

Let's say we have a character. For one part we want him to walk around, but in a later map have him stand still then display an animation. The way most people think is we'll have one walkabout for him walking, and at the other town the npc will be trapped by invisible npcs while set on wander with first a walkabout where every frame is the same, standing, and then we can switch its walkabout with a plotscript so that it now appears to be moving. I saved using multiple npcs and tags with plotscripting! Well, you did, but it can be simpler. I hate clogging up my game with multiple anything, including walkabouts. You actually only need two. You of course need one for walking. For the other, set the npc to stand or whatever. Make it's up look like standing, and place it as up. Set its right to the beginning animation, its down to mid-animation and its left to end animation. But you'll never see them, right? Unless you use the alter npc command. When you want it to happen, set the npc's movetype to righturns, and thus it will cycle through the animation until it goes back to normal, where the animation will start again. You may also want to use wander, in my in-the-works game Destiny's Cruelty, for example, there is a crowd of npcs that start out not moving. When set to wander, they all begin to switch between standing and cheering, fluidly enough. Because it is wander and not a set plotscripting set npc direction thing, they all change at different times to different direction, thus I only used four npcs for the crowd yet it appears as if each is seperate. You can see a screenshot of this scene in the projects section. It is the first 'scene' screenshot.


2-C. Cheating The Engine: More Than 35 NPCs

The other 'cheating the engine' sections, they are really just innovative ways to make it seem like you are cheating the engine, but all you do is make things take up less space. This really is cheating the supposed limits of the engine. Let's say your character has to find five objects in a dungeon, but the next in order won't appear until the previous was found, which has a clue to the next one's location. When they find the first, don't make the first disappear with a tag. First teleport it to the place the next object would be. Using multiple alter npc commands, you can change every factor of it until it becomes, at a glance, a completely different NPC, with a different picture, palette, movetype, display, anything. When he finds the 'new' object, have it transfer to the third place and so on, until the fifth, when you finally get rid of it with a tag. What have you done? You've made the one npc become five different ones, different, not copies, without causing any major problems with the engine. Using this you can create a seemingly infinite amount of npcs, so long as they are not supposed to appear at the same time.


3-A. Set Attacks: Healing 50 Every Time

First you need to know how to heal 100, which is simpler. First, fill in the attack name and give it an appearance, like you always do. Next, go to Damage Settings and change the Damage Math to Pure Damage. Scroll on through Base Attack Stat until you get to 100. Keep the Target Stat as HP and Extra Hits at one, and don't change anything else. From what you know about attack settings, you know setting something to Pure Damage ignores the base DEF stat and uses the base ATK stat. So it should be 100. But it isn't. The OHR damage function randomizes the damage slightly to make the game more interesting. So go to Bitsets, and turn on Cure instead of Harm. Then press up to land yourself at the very bottom of the page. Turn on Useable Outside of Battle (it's healing) and turn on Do Not Randomize. Now the attack will always heal 100, no matter what, except it won't exceed the maximum HP stat. Go back to Damage Settings. Go down to Extra Damage Percent and set it to 50. Now press the minus (-) button to make it negative. What's 100 minus 50% of 100? 50, obviously. Now it will always heal 50.


3-B. Set Attacks: Status Effects

This is quite simple, really. When the base targer stat is set to either Stun, Poison or Regen Counter, it will simulate a status effect. Regen and Poison both run for a set amount of times, and activate at a set time. Using the 100 base attack stat and pure damage setting, along with a positive or negative extra damage percent setting, when these are attacked, poison and regen remember it. Until they wear off, they will continually deal the damage you put in until it wears off. This is confusing however, as the player will think they will actually be doing damage. So instead, have a caption that says POISONING or REGENING, and turn on the bitset that says DO NOT SHOW DAMAGE. Now they'll know what's going on when the actual damage starts showing up. With stun it is the same concept, except stun is MUCH MORE POWERFUL than either. Set it low with do not randomize, to 4 or 5. The reason is this is how many seconds the person affected can not move, not even build up their speed bar. Obviously if an enemy is out for ten seconds it will be dead long before it recovers. You should also make bosses immune to this sort of thing.


3-C. Set Attacks: Anti-Status Effects

Have basically the same setting as above, except set the damage math to 100% of Maximum, and have on Cure Instead of Harm (or not, it doesn't really make a difference). When this attack is used it will cure whatever register it heals. Once again, use do not show damage and have a caption explaining it, like ANTIDOTE, CURSE or something.


4-A. Vehicles: Remembering Position

If you make a game with vehicles, you must have noticed when you left the town for the world map it was missing? You thought 'Hey! That's not fair! Piece of crap OHR, why did you screw me over!?' Maybe that was just me. Anyway, it's actually your fault for not paying attention. The OHR was just doing it's job and putting the NPC where you originally set it. This is how you avoid walking across a continent to get your vehicle just to fly back at a speed of one so you can cross a river. Make two scripts. For this example we'll have the names worldmap and vehicledismount. Worldmap will be the World Map's autorun script and vehicledismount will be the vehicle's dismount script. Between your first script and your 'define script' list, plug in this 'global variable (1,vehiclex)' and 'global variable (2,vehicley)'. You'll need to be familiar with three commands for our first script, vehicledismount. First there is 'set variable (name/#,#)'. The first argument is the variable you want to mess with and the second is what you want to set it to. The other two are 'npc x (#)' and 'npc y (#)'. The argument is the number of the npc you want to locate, so if you want to locate the x position of npc 2, you would say 'npc x (2)'. We'll use that for now (npc 2 is the vehicle). First you'll of course have 'script, vehicledismount, begin'. Beneath that have 'set variable (vehiclex,npc x (2))' and beneath that 'set variable (vehicley,npc y (2))'. Then the vehicle dismount script can 'end'. Next, make 'script, worldmap, begin.' For this you need to understand the 'set npc position (#,#,#)'. The first argument is the npc you want to change the position of, the second is the x value, and the third is the y value. So under the script begin line, put in this: 'set npc position (2,vehiclex,vehicley)'. Then 'end' it. Import the scripts and put them where I told you. Now the vehicle remembers where it should be! Yay. Credit for these two scripts goes to James 'SPAM MAN' Paige, who originally cleared up the confusion about vehicle parking for the public.


4-B. Vehicles: Fun with Vehicle Music

You can integrate these into the previous scripts, but you will need to make an extra one, vehiclemount, which is of course to be the vehicle mount script. You need to be familiar with the 'play song (#)' command, where the music to be played is identified in the only argument. For this example, your world map music is 1 and your vehicle music is 2. Have 'script, vehiclemount, begin' and then skip a line. The command to be put here is 'play song (2)', which makes it play the vehicle music. Then 'end' it. In the premade 'vehicledismount' script add in 'play song (1)' so it reverts to world map music. Simple, right? Well, if your going to have battles in the vehicle, like sea monsters on boats or air monster attacks on airships, which are in many games, when it comes back the vehiclemount script is not played again. Rather, the world map music is playing. To fix this, go first to edit vehicles in custom, and set the if riding part to setting a tag on. For this example the tag number is ten. Therefore, if you are in the vehicle, tag 10 is off, and if you are not on the vehicle, tag 10 is off. Now go back to the 'worldmap' script. You would put in this: 'if (tag (10)) then (play song (2)) else (play song (1))'. If you are in the vehicle it will play the song when you leave battle, and if you aren't it will still play the normal music. Yay, perfection!


4-C. Vehicles: In The Boat

There's often a slight problem with vehicles. How do you show the character is in them? You can always, of course, show them as something big... a covered airship where you wouldn't see the character. But what if you want a rowboat vehicle? The character OBVIOUSLY wouldn't be in it before you get there, so we'll leave the boat empty. And he OBVIOUSLY would be shown in after he got in, so we'll have the vehicle bitset for do not hide party leader off. And his feet OBVIOUSLY wouldn't be in the water like that so... uh-oh. Now what? Yes, draw the vehicle empty and don't have the character shown. Now draw an extra walkabout of the vehicle with the character sitting in it. See where this is going? Using the 'alter npc' command, you can change the appearance of the vehicle through vehiclemount and vehicledismount, and make it right after battles through another 'if' statement in worldmap. Alter npc is hard to explain, so you'll need to look it up yourself. It's better if you learn all of its functions at once, begin this is the second and won't be the last time I've mentioned it. When it's right, when you get in the boat, your character will be sitting in the boat, and when you get off, he won't again. You don't have to follow my advice, though. You can have your defective boat. Instead look up 'alter npc' in the good ol' plotdictionary.


Back to Homepage