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


GE's Action Blocks

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


Joined: 09 Nov 2007
Posts: 1142
Location: London, England

 PostPosted: Tue Nov 18, 2008 10:12 am    Post subject: GE's Action Blocks Reply with quote Back to top

No matter how much I try, I STILL can't get my head around action blocks for the more complex stuff, ie Baron Samedi's spawning action blocks. I really want to make a good solo mission, but action blocks really hold me back. Sad

I'm ok with everything else - just the action blocks. I know that I am not the only one, so any info would be great not only for me, but for everyone else that wants to learn them at a higher level.
 
View user's profile Send private message
GERage
00 Agent
00 Agent


Joined: 18 Nov 2007
Posts: 471
Location: Facility vents

 PostPosted: Tue Nov 18, 2008 10:56 am    Post subject: Reply with quote Back to top

OK, before you start doing really complex action blocks, it might help to try and break it down into several simpler parts.
Also, keep in mind that a lot of Rare's action blocks contain irrelevant actions, so I recommend looking at the blocks in our missions.
 
View user's profile Send private message
Kode-Z
Hacker
Hacker


Joined: 09 Nov 2007
Posts: 1142
Location: London, England

 PostPosted: Tue Nov 18, 2008 2:10 pm    Post subject: Reply with quote Back to top

GERage wrote:
Also, keep in mind that a lot of Rare's action blocks contain irrelevant actions, so I recommend looking at the blocks in our missions.


I thought as much. DB cleaned up those Scientist/Alarm action blocks a lot! I'm going to spend most of tonight studying action blocks. I really need to get to grips with them!!! Very Happy
 
View user's profile Send private message
SubDrag
Administrator
Administrator


Joined: 16 Aug 2006
Posts: 6171

 PostPosted: Tue Nov 18, 2008 3:47 pm    Post subject: Reply with quote Back to top

Rare did extremely complicated stuff. Most of our action blocks are must simpler, with less linkages. The tutorials should help start you off at least.
 
View user's profile Send private message
Kode-Z
Hacker
Hacker


Joined: 09 Nov 2007
Posts: 1142
Location: London, England

 PostPosted: Tue Nov 18, 2008 3:53 pm    Post subject: Reply with quote Back to top

SubDrag wrote:
Rare did extremely complicated stuff. Most of our action blocks are must simpler, with less linkages. The tutorials should help start you off at least.


I've read the tutorials. I also looked at the alarm action blocks that DB cleaned up and found 040F and 1001 really confusing! Confused

I guess it takes lots of practice!
 
View user's profile Send private message
Dragonsbrethren
Hacker
Hacker


Joined: 23 Mar 2007
Posts: 3058

 PostPosted: Tue Nov 18, 2008 8:32 pm    Post subject: Reply with quote Back to top

I'll break them down for you, maybe that'll help. 040F uses a lot of randomization:

Code:
040F:
33 Seed Random Byte
35C805 If Seeded Byte > Value, Go Into Return Value Loop  (C8)
72007805 Go To Return Value Loop, If Time < Value 72 (0078)
356402 If Seeded Byte > Value, Go Into Return Value Loop  (64)

This generates a random number, if the number is greater than $C8 or if the mission time is under 2 minutes it'll go to 0205. If the value is greater than $64 it'll go to 0202, otherwise it'll just do the next actions:

Code:
90003C Set Guard Armor Amount  (003C)
C000DE0000000000 Spawn Hat  (Special Forces Beret (Burgundy))
0200 Resume If Return Value Loop Met
BF00CD068000000001 Spawn Weapon  (DD44 Dostovei) (06 DD44)

This sets this guard to have medium-level armor, and a DD44 in his right hand.

Code:
0201 Resume If Return Value Loop Met
33 Seed Random Byte
356407 If Seeded Byte > Value, Go Into Return Value Loop  (64)
BF00CD069000000007 Spawn Weapon  (DD44 Dostovei) (06 DD44)

This one generates another random number, if it's over $64 it'll jump to 0207, otherwise it'll spawn another DD44 in his left hand, then jump to 0207.

Code:
0202 Resume If Return Value Loop Met
900050 Set Guard Armor Amount  (0050)
C000DD0000000003 Spawn Hat  (Special Forces Beret (Navy))
0203 Resume If Return Value Loop Met
BF00C1078000000004 Spawn Weapon  (Klobb) (07 Klobb)

Look familiar? This is the same as 0200, except a stronger guard with a Klobb.

Code:
0204 Resume If Return Value Loop Met
33 Seed Random Byte
356407 If Seeded Byte > Value, Go Into Return Value Loop  (64)
BF00C1079000000007 Spawn Weapon  (Klobb) (07 Klobb)

Same as 0201, except again with a Klobb.

Code:
0205 Resume If Return Value Loop Met
900014 Set Guard Armor Amount  (0014)
C000DC0000000006 Spawn Hat  (Special Forces Beret (Black))
0206 Resume If Return Value Loop Met
BF00B8088000000007 Spawn Weapon  (KF7 Soviet) (08 KF7)

This is our weak guy with a KF7. He doesn't have an option of holding two weapons, so there's no 0201/0204 equivalent loop for him, it just runs right into the final loop:

Code:
0207 Resume If Return Value Loop Met
060002 Set Return Subroutine From JAL  (JAL TO: 0002)
05FD0008 JAL To Function  (Guard [whatever called it]) (JAL TO: 0008)
04 Terminator

This is where all of the guards jump after their done spawning their hats and weapons. This one will take a bit more explaining:

Action $06 tells the guard which block to return to when it encounters an $07 action in another block. There are several built-in action blocks that work as subroutines, you call them for common actions and use this action to tell them what to do when they reach the end of that block.

What this action does is set the guard to act like a normal guard (block 0002) after catching Bond (block 0008 makes the guard jog to Bond, then jumps to whatever action you set with $06).

---

1001:

Code:
1001:
0200 Resume If Return Value Loop Met
03 Leave The Routine, But When Return Continue From Spot
3701 If Alarm Activated, Return Value Loop
0100 Go To Beginning, Then Return Value Loop

This one is simple, it just sits here until the alarm is going off, then jumps to 0201.

Code:
0201 Resume If Return Value Loop Met
F4003C4B Plays Value #1-Theme Slot (0-3) For Value #2 Seconds  F4 (003C4B)
960108 If Guard Type Value Is Set, Return Value Loop 96 (01)
9401 Mask Guard Type With Value  94 (01)

This one does two things. First it plays the stage's X track, then it checks whether the guard type value is set to 1 or not. If it is, it'll jump to 0208, otherwise the next action will set that (you'll see why in a bit).

Code:
0202 Resume If Return Value Loop Met
AE Reset Cycle Counter And Enable It
03 Leave The Routine, But When Return Continue From Spot
311A03 If Bond In Room With Guard ID, Return Value Loop  (Invalid Guard ID)
0004 Return Value Loop

First this activates the cycle counter, which will be used later. Now, if we read what action $31 says, if Bond is in the room with the guard ID it'll jump to 0203 and spawn that guard. We know this never happens from experience with the game, so I'm going to assume this action does the opposite of what it says, if Bond's not in the room with that guard ID it'll go to 0203, otherwise it'll skip this guard and go to 0204 and try the next one instead.

Code:
0203 Resume If Return Value Loop Met
F304 If Player Pickups Disabled, Return Value Loop  F3 (04)
BD04FF0000040C0000000104 Spawn Guard  (Janus Special Forces:Black) (Random Head)

Spawns the first guard, then goes to 0204. If you're curious about the check for whether pickups are disabled or not, that's an easy way for checking if we're in a cutscene (pickups are always disabled in Rare's cutscenes, and they should be in ours too), this prevents it from spawning guards during the mission ending scene.

Code:
0204 Resume If Return Value Loop Met
03 Leave The Routine, But When Return Continue From Spot
311B05 If Bond In Room With Guard ID, Return Value Loop  (Invalid Guard ID)
0006 Return Value Loop

Same as 0202, but without the cycle counter action and a different guard ID.

Code:
0205 Resume If Return Value Loop Met
F306 If Player Pickups Disabled, Return Value Loop  F3 (06)
BD04FF0000040D0000000106 Spawn Guard  (Janus Special Forces:Black) (Random Head)

Same as 0203, different guard ID.

Code:
0206 Resume If Return Value Loop Met
03 Leave The Routine, But When Return Continue From Spot
311C07 If Bond In Room With Guard ID, Return Value Loop  (Invalid Guard ID)
0008 Return Value Loop

Same as 0204, different guard ID.

Code:
0207 Resume If Return Value Loop Met
F308 If Player Pickups Disabled, Return Value Loop  F3 (08)
BD04FF0000040E0000000109 Spawn Guard  (Janus Special Forces:Black) (Random Head)


Okay, this one starts out the same as 0201/0203, but skips 0208 and jumps to 0209.

Code:
0208 Resume If Return Value Loop Met
03 Leave The Routine, But When Return Continue From Spot
B40004B009 If Cycle Counter > Value, Return Value Loop B4 (0004B0)
0108 Go To Beginning, Then Return Value Loop

This was called if the guard type value was set to 01. This adds a bit of delay between the guards, waiting for the cycle counter to exceed $B4 before calling in the next wave, this stops one wave from spawning immediately after the last one was defeated.

Code:
0209 Resume If Return Value Loop Met
0102 Go To Beginning, Then Return Value Loop
04 Terminator

Returns to 0202, starts this whole thing over again.
 
View user's profile Send private message
Kode-Z
Hacker
Hacker


Joined: 09 Nov 2007
Posts: 1142
Location: London, England

 PostPosted: Wed Nov 19, 2008 5:04 pm    Post subject: Reply with quote Back to top

Thanks! This helps a lot! Very Happy

I'm going to spend the next week or so getting to grips with action blocks. A new solo mission is in the pipeline!
 
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 ]