ShootersForever.com Forum Index

GoldenEye 007 Nintendo 64 Community, GoldenEye X, Nintendo 64 Games Discussion
GoldenEye Cheats, GoldenEye X Codes, Tips, Help, Nintendo 64 Gaming Community


Simple Hostage Tutorial

 
Post new topic   Reply to topic    ShootersForever.com Forum Index -> Q-Lab Hacking Department
View previous topic :: View next topic  

Is this tutorial easy to follow?
Yes
75%
 75%  [ 3 ]
No
25%
 25%  [ 1 ]
Other (Specify)
0%
 0%  [ 0 ]
Total Votes : 4

Dragonsbrethren
Hacker
Hacker


Joined: 23 Mar 2007
Posts: 3058

 PostPosted: Tue Oct 23, 2007 9:05 am    Post subject: Simple Hostage Tutorial Reply with quote Back to top

I decided to write a hostage tutorial for anyone else interested in adding them to their mission. This tutorial provides simplified copies of the same action blocks I'm using in my Silo mission. Before reading this tutorial it is suggested you read both of SubDrag's action block tutorials available at Goldeneye Vault, this tutorial assumes basic knowledge of action blocks.

Let's begin. Open the setup editor and select a level you'd like to edit, for this tutorial I'm using Runway. After opening it go to Tools -> Make Level Bare-Bones to remove everything from the level.

Open the visual editor and place two different guards in the level a small distance away from each other. Make sure they are not visible from the start point or that will cause problems later. Give one guard a gun, he will end up holding the other hostage. From this point on I will refer to the guard with the gun as the terrorist and the guard without as the hostage.

Go to Edit Setup -> Edit Intro Block and select 01 Start Weapon. Add a weapon, and select PP7 as the right gun. Now select 02 start ammo, add ammo, select 9mm ammo, and give yourself 50 rounds. You'll need a gun later when you're playtesting.

Go to Edit Setup -> Edit Action Blocks and add action block 0401. Add the following actions:

Code:
51001000
0200
 03
 14002400FC01
 0100

  • 51001000: This sets the guard within 10 units of the terrorist as writable actor ID FC. This allows us to reuse this same block for multiple terrorists instead of having to write separate blocks for each one.
  • 14002400FC01: This tells the terrorist to target FC (the hostage) in style 24 and return value loop to 0201. Style 24 is the "holding at gunpoint" pose.


Code:
0201
 03
 30FC05
 3202
 0101

  • 30FC05: Checks if FC is dead, and if so return value loop to 0205. Just a precaution in case Bond killed the hostage by mistake.
  • 3202: Return value loop to 0202 when Bond is in the terrorist's sight.


Code:
0202
 03
 B1
 B4009003
 0102

  • B1: Enables the cycle counter. We are going to use it to determine when the terrorist should shoot the hostage.
  • B4009004: In this example I'm using 90 cycles, when the cycle counter is higher than that it'll return value loop to 0203.


Code:
0203
 03
 16000400FD04
 0103

  • 16000400FD04: Changes the targeting to style 04. If you omit this there won't be a visible muzzle flash when the terrorist shoots the hostage.


Code:
0204
 03
 30FC05
 19FDFC08
 0104

  • 30FC05: Just another check to make sure the hostage isn't already dead. This is also used after the terrorist shoots the hostage to return value loop to 0205.
  • 19FDFC08: Guard ID FD (the terrorist) shoots guard ID FC (the hostage) in style 08 (a headshot).


Code:
0205
 060002
 05FD0008
 04

  • 06002: I don't think this was covered in either tutorial. Some action blocks work as subroutines and can JAL to another action block once they are completed. This will JAL to 0002 (random animations until detection) once the next action completes.
  • 05FD0008: Guard ID FD will JAL to 0008 (jog to Bond). Paired with the above action it will result in the terrorist jogging to Bond and then acting like a normal guard.


Here is everything put together as one action block:

Code:
51001000
0200
 03
 14002400FC01
 0100
0201
 03
 30FC05
 3202
 0101
0202
 03
 B1
 B4009003
 0102
0203
 03
 16000400FC04
 0103
0204
 03
 30FC05
 19FDFC08
 0104
0205
 060002
 05FD0008
 04


Now return to the visual editor and assign this block to the terrorist. Hit F5 to quick convert your ROM and playtest it. When you get in terrorist's line of sight he should shoot the hostage after a short time. Now we'll need to make the hostage act more like a hostage.

Go back into the action block editor and add block 0402:

Code:
51001000
0200
 03
 21
 30FC01
 0100

  • 51001000: This works the exact same way it did in the other block, except for the hostage FC is the terrorist, not himself.
  • 21: Self-explanatory, the guard surrenders. If you give him something to hold, be it a gun, object, or key, he'll drop it.
  • 30FC01: Check if the terrorist is dead, return value loop to 0201 if so.


Code:
0201
 03
 1C000C
 4DFD0010000C02
 0101

  • 1C000C: Hostage jogs to preset 000C. Make sure you change the preset to one near your hostage or you'll probably end up blowing his brains out when he can't handle finding his way to it.
  • 4DFD0010000C02: Return value loop to 0202 when FD is within 10 units of preset 000C. Remember to change the preset here too. If you hostage is acting especially stupid change the 10 units to a higher value.


Code:
0202
 22
 05FD0001
 04

  • 22: You should be familiar with this from the other tutorials, this makes the hostage fade out.
  • 05FD0001: You should be familiar with this as well, it ends the routine.


And here is this as a single block:

Code:
51001000
0200
 03
 21
 30FC01
 0100
0201
 03
 1C000C
 4DFD0010000C02
 0101
0202
 22
 05FD0001
 04


Assign this block to your hostage, hit F5 to quick convert, and playtest again. If you don't interfere the terrorist should shoot the hostage and then turn to attack you. If you kill the terrorist the hostage will run off.

Anyway, now you have a functioning terrorist and hostage pair but what about an objective? Making your hostages count as hostages is very simple, first go to Edit Setup -> Edit Objectives and add an objective. Change the text string to one that appears in the level you're editing so the game doesn't crash when it tries to display text that isn't loaded. Now add a 1A Condition True sub component to your objective and change the data to 00000001. Add a 1B Condition False sub component and change the data to 00000002. We're now ready to start writing our next action block.

Go back to the action block editor and add block 1000:

Code:
A00100100000
0200
 03
 F70001
 0100

  • A00100100000: The byte you set as 10 tells the game that this guy is a hostage and/or scientist. Make sure you select the right ID for your hostage it will either be 00 or 01 depending on which order you inserted your guards in.
  • F70001: The 00 byte determines how many hostages/scientists can die before it return value loops to 0201. The byte is always one less than the number, so in this case 00 is equal to one hostage.


Code:
0201
 9A00000002
 05FD0001
 04

  • 9A00000002: This sets the objective bits to 00000002. This was the value we used for the condition false sub component in our objective, when this is set the objective is failed.


And as a single block:

Code:
A00100100000
0200
 03
 F70001
 0100
0201
 9A00000002
 05FD0001
 04


You could playtest this now but let's make it so you can complete the objective as well as fail it. Go back to this loop in 0402:

Code:
0202
 22
 05FD0001
 04


And add this to it:

Code:
0202
 22
 9A00000001
 05FD0001
 04

  • 9A00000001: After fading out the hostage will set the objective bits to 00000001 before the routine ends. This will complete the objective.


Now quick convert and playtest. If all went well you should fail the objective when the hostage is killed and complete it when he escapes. As I mentioned at the beginning of this tutorial this is a simplified copy of the action blocks I use, normally you'd want more than one terrorist and hostage pair in a mission. In that case you need to add an additional condition true sub component to your objective for each hostage and check which bits have already been set each time a hostage escapes, once all the condition trues are set the objective will be completed. It would also be a good idea to add additional ways for the terrorist to be alerted other than seeing you, such as hearing gunfire.

Let me know what you think of this tutorial and if you have any questions.


Last edited by Dragonsbrethren on Wed Oct 24, 2007 5:56 pm; edited 1 time in total
 
View user's profile Send private message
00Dark
007
007


Joined: 21 Nov 2006
Posts: 637

 PostPosted: Tue Oct 23, 2007 10:26 pm    Post subject: Reply with quote Back to top

great job on this tutorial, dragonsbrethren Smile . i'm actually glad you posted this because sometimes it seems like SubDrag doesn't tell enough in his tutorials for me to figure out. this is a great in-depth explanation.

thanks! Wink
 
View user's profile Send private message
Dragonsbrethren
Hacker
Hacker


Joined: 23 Mar 2007
Posts: 3058

 PostPosted: Wed Oct 24, 2007 3:10 pm    Post subject: Reply with quote Back to top

Thanks for the compliment. I'm considering a few more of these tutorials, how to make gadgets, buttons, alarms, etc. They're fun for me to make and I get to learn action blocks a little better, plus I'll be helping other people improve their skill with them as well.

It's funny, when I first started my Silo mission I was dreading doing the action blocks but once I read SubDrag's tutorials and started playing around I got really confident in my ability to make them. I'm just afraid that if I make my tutorials too detailed people won't bother experimenting on their own, that's why I purposely left parts of my terrorist and hostage actions out. What I posted is just enough to make them work, it's up to you to go through and add on to them to make them unique. Smile
 
View user's profile Send private message
SubDrag
Administrator
Administrator


Joined: 16 Aug 2006
Posts: 6125

 PostPosted: Wed Oct 24, 2007 4:18 pm    Post subject: Reply with quote Back to top

The reason I never included 06 is because I never really quite was sure it was working right, so I never made it in my levels. You're quite right about what it does though.

If you put your tutorial in pdf format I'll definitely add it to the vault. It's very helpful, and point by point.

My tutorials are designed to be introductions so you understand the concepts of action blocks, and finish it off yourself. They're not quite as in-depth as this one, but they shouldn't be bad.

Does this work well enough?
3202: Return value loop to 0202 when Bond is in the terrorist's sight.

All of those action blocks are sort of semi-unclear. What if he's facing another direction? I usually use if guard within units of Bond, but one of those seems to fail. The one that's a byte usually works, but the other one that's 16-bits fails me for some reason.
 
View user's profile Send private message
Dragonsbrethren
Hacker
Hacker


Joined: 23 Mar 2007
Posts: 3058

 PostPosted: Wed Oct 24, 2007 5:35 pm    Post subject: Reply with quote Back to top

SubDrag wrote:
The reason I never included 06 is because I never really quite was sure it was working right, so I never made it in my levels. You're quite right about what it does though.

I'm not sure if it works in every situation but the one I have in my tutorial works perfectly fine, Rare uses it in their blocks. I always use it for guards that are supposed to be alerted, for example I have a room with guards that ambush you as soon as you walk in, their action blocks wait for Bond to step on a preset near the door, then return to 0002 after the JAL to 0008. Works great, especially when there are obstructions that would stop them from seeing Bond, such as a railing.

SubDrag wrote:
If you put your tutorial in pdf format I'll definitely add it to the vault. It's very helpful, and point by point.

I've never done a PDF, do you need the full version of Acrobat to do them? I only have the reader, I'll have to look into it later.

SubDrag wrote:
My tutorials are designed to be introductions so you understand the concepts of action blocks, and finish it off yourself. They're not quite as in-depth as this one, but they shouldn't be bad.

Your tutorials really helped me, I still wouldn't have a clue what I was doing if I tried learning from Rare's blocks alone. Rare's blocks are such a mess, it's really hard to figure out what they're doing sometimes, such as the hostage block in the Frigate, I still have no clue how or why it works. I try to do all my blocks myself now and only look at Rare's if I really have absolutely no idea how to get something working.

One thing though, in your tutorial about having a guard run to a preset, did you have any trouble with him "getting lost" as he was running? My guards run into walls, go the opposite way they're supposed to, etc. At first I thought it was just a problem with Silo's narrow walkways but the exact same thing happened with my example in Runway.

SubDrag wrote:
Does this work well enough?
3202: Return value loop to 0202 when Bond is in the terrorist's sight.

All of those action blocks are sort of semi-unclear. What if he's facing another direction? I usually use if guard within units of Bond, but one of those seems to fail. The one that's a byte usually works, but the other one that's 16-bits fails me for some reason.

It works but you're right, it'll only trigger if Bond is seen by the terrorist, if you come up from behind him he won't be alerted, seems to work fine from the side though. This was how I intended for it to work, it lets you sneak up behind them and save the hostage. If you pair it with a few other conditions, like hearing gunfire or seeing another guard killed, it works really good, which is why I encouraged people to build on it.


Edit: I just noticed a small mistake in the tutorial. I've fixed it, but if anyone already entered these blocks change the following:

Code:
0203
 03
 16000400FC04
 0103


To this:

Code:
0203
 03
 16000400FD04
 0103


The way I had it worked fine but it didn't accomplish what it was supposed to (the muzzle flash).
 
View user's profile Send private message
SubDrag
Administrator
Administrator


Joined: 16 Aug 2006
Posts: 6125

 PostPosted: Wed Oct 24, 2007 5:59 pm    Post subject: Reply with quote Back to top

With the guards running to preset, you should perform the "run to preset", then loop to see if the guard stopped moving. If he does, then have him run to preset again. I haven't had any problems though, you might want to check out the new complex mission - Paddington has a very simple end routine to run.
 
View user's profile Send private message
SubDrag
Administrator
Administrator


Joined: 16 Aug 2006
Posts: 6125

 PostPosted: Wed Oct 24, 2007 6:00 pm    Post subject: Reply with quote Back to top

Also, can you export the file to .act and post it? Can include with action blocks built in to editor. Could even add a section on Goldeneyevault.com
 
View user's profile Send private message
Dragonsbrethren
Hacker
Hacker


Joined: 23 Mar 2007
Posts: 3058

 PostPosted: Wed Oct 24, 2007 6:05 pm    Post subject: Reply with quote Back to top

SubDrag wrote:
With the guards running to preset, you should perform the "run to preset", then loop to see if the guard stopped moving. If he does, then have him run to preset again. I haven't had any problems though, you might want to check out the new complex mission - Paddington has a very simple end routine to run.


That's what I'm doing in my current Silo block, it works better than just telling them to run but they still get lost pretty easily, maybe it is the walkways as I originally suspected. I'll take a look at the Complex mission in a few minutes.

Edit: I was using 1C jog to preset instead of 1F run to preset. Changing it improved it greatly, but two still had trouble. They eventually did make it out, which never happened using 1C.


By the way, I just found Adobe's PDF converter, I'll copy this into a Word document and convert it to PDF later on.


Last edited by Dragonsbrethren on Wed Oct 24, 2007 6:48 pm; edited 1 time in total
 
View user's profile Send private message
Dragonsbrethren
Hacker
Hacker


Joined: 23 Mar 2007
Posts: 3058

 PostPosted: Wed Oct 24, 2007 6:15 pm    Post subject: Reply with quote Back to top

SubDrag wrote:
Also, can you export the file to .act and post it? Can include with action blocks built in to editor. Could even add a section on Goldeneyevault.com

http://dragonsbrethren.elazulspad.net/files/hostagetutorialactions.zip
 
View user's profile Send private message
SubDrag
Administrator
Administrator


Joined: 16 Aug 2006
Posts: 6125

 PostPosted: Thu Oct 25, 2007 4:19 am    Post subject: Reply with quote Back to top

Thanks, I got 'em. When you've got the pdf pop it up too.
 
View user's profile Send private message
Dragonsbrethren
Hacker
Hacker


Joined: 23 Mar 2007
Posts: 3058

 PostPosted: Thu Oct 25, 2007 7:47 pm    Post subject: Reply with quote Back to top

http://dragonsbrethren.elazulspad.net/files/simplehostagetutorial.pdf

I prettied it up a bit, adding italic text to emphasize a few things and colored text for the loops to mimic the setup editor's display. I also changed a few things to read clearer and added the setup editor's descriptions after each action.
 
View user's profile Send private message
SubDrag
Administrator
Administrator


Joined: 16 Aug 2006
Posts: 6125

 PostPosted: Fri Oct 26, 2007 4:13 am    Post subject: Reply with quote Back to top

Good work, I'll add it tonight. Hopefully people can get good use out of it.
 
View user's profile Send private message
Display posts from previous:   
Post new topic   Reply to topic    ShootersForever.com Forum Index -> Q-Lab Hacking Department All times are GMT - 8 Hours
Page 1 of 1

 
Jump to:  
You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot vote in polls in this forum

Cobalt 2.0 BB theme/template by Jakob Persson.
Copyright © 2002-2004 Jakob Persson


Powered by BB © 01, 02 BB Group

 


Please Visit My Other Sites: GoldenEyeForever.com | GrandTheftAutoForever.com

Got kids? Check out my Dora The Explorer site with games and coloring pages!

Our forums feature Nintendo 64 games, GoldenEye 007 N64 New Maps and Missions, GoldenEye Cheats, N64 Emulator, Gameshark, GoldenEye Multiplayer and more!

[ Privacy Policy ]