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


Joined: 23 Mar 2007 Posts: 3058
 |
Posted: Sun May 31, 2009 2:53 pm Post subject: Knockout! |
 |
|
Earlier, I was conversing with Wreck and mentioned that I wished GE had a way of distinguishing between death by gunshot and "knockout" deaths by unarmed or the taser. A little while later, I decided to see if you could check for the weapon Bond used for the kill, and then set an objective bit if he "killed" that guard rather than knocking them out. It works, but there are a number of small problems you should be aware of:
1. A block is needed that checks for each civilian's death.
2. The default way of checking for civilian/scientist deaths, using action F7, is no longer valid.
3. The block that sets the objective to failed will grow to a ridiculously large size if more than one guard needs to be checked.
4. Civilians' bodies will still fade away as if they had died (because they are dying). It might be worth the trouble to respawn them after a few minutes, if you want them to get back up like knocked out guards did in TWINE.
As such, this is better suited to maps where only one person needs to be knocked out, rather than a map crammed with scientists, or worse yet, allowing any guard to be knocked out.
Here is a demo patch and the action files that can be imported. They can be placed in any 1XXX block, and should be usable in any mission once the objective bits are tweaked.
http://dragonsbrethren.slickproductions.org/files/goldeneye/misc/knockout.zip
Just choose Runway and try slapping a few guards. Then blast one with the PP7 and see what happens. You'll fail as soon as you kill one of the six civilians scattered about the map. |
|
|
|
|
|
 |
 |
 |
 |
 |
SubDrag Administrator

Joined: 16 Aug 2006 Posts: 6178
 |
Posted: Sun May 31, 2009 3:41 pm Post subject: |
 |
|
I like this a lot. So you modified F7 with new assembly code?[/code] |
|
|
|
|
|
 |
 |
 |
 |
 |
Dragonsbrethren Hacker


Joined: 23 Mar 2007 Posts: 3058
 |
Posted: Sun May 31, 2009 3:47 pm Post subject: |
 |
|
No, this is all done via action blocks. There is a block for each civilian, which checks if they're dead or not. If they are, it checks for Bond's current weapon, if it's anything other than unarmed or the taser it sets an objective bit unique to that guard. Despite what I originally thought, it seems to be impossible to fool the game by shooting someone and quickly switching to unarmed (or the opposite), the weapon switch is just too slow for that to work. Block 1006 simply checks if any of those unique objective bits have been set, and if so fails the objective. |
|
|
|
|
|
 |
 |
 |
 |
 |
SubDrag Administrator

Joined: 16 Aug 2006 Posts: 6178
 |
|
|
|
|
|
 |
 |
 |
 |
 |
radorn 007


Joined: 23 Sep 2007 Posts: 1424
 |
Posted: Sun May 31, 2009 9:19 pm Post subject: |
 |
|
Hey this is great!
It should really contribute a great deal to the depth of the missions.
It amazes me how you guys analize the AI system and come up with these things. |
|
|
|
|
|
 |
 |
 |
 |
 |
Wreck Administrator


Joined: 14 Dec 2005 Posts: 7254 Location: Ontario, Canada  |
Posted: Mon Jun 01, 2009 11:25 am Post subject: |
 |
|
Great to see that you figured out a way to utilize this idea. It's unfortunate that there's still an exploit involving explosives, though. If you set a timed or proximity mine, or toss a grenade, then switch to unarmed / taser quick enough, the person will be blown up without failing the objective. Even PD has an exploit similar to this in one mission. The panel in Carrington's office that you need to laser through to get to the sensitive information you must destroy. You can't damage it unless you have a laser equipped, right? Well, in multiplayer, only one person needs to have a laser armed, and the other can use whatever weapon they want to on the panel. Timed explosives may even work, I didn't check.
Anyways, that's still a really interesting setup you got going for rendering characters unconscious, rather than straight-up killing them. Sorry to point out that problem, but maybe it'll help you to think of a work-around.
Oh, by the way, there's a rather nasty comment on the page for this at the Vault. Hopefully Sub will remove it, once he sees it. _________________
YOUTUBE | TWITTER/X | FACEBOOK | VAULT | MOD DB | RHDN |
|
|
|
|
|
 |
 |
 |
 |
 |
monkeyface Moderator


Joined: 05 Apr 2008 Posts: 275
 |
Posted: Tue Jun 02, 2009 4:58 am Post subject: |
 |
|
These small things are great that could potentially make or break the "feeling" of a mission. I don't mind the bugs, only someone trying the break speed records will find a use for that, and honestly, that would make it a technique you'd have to master, instead of an inconvenient bug. |
|
|
|
|
|
 |
 |
 |
 |
 |
Dragonsbrethren Hacker


Joined: 23 Mar 2007 Posts: 3058
 |
Posted: Tue Jun 02, 2009 6:16 am Post subject: |
 |
|
I'm trying to create a more optimized version of this by taking advantage of the user byte, but I must be doing something wrong because either the objective fails outright or doesn't fail at all. Basically, I set the first user byte to FF at the start of the mission. When one of the civilians dies, the byte should be decreased by one. The fail check simply checks if the byte is less than FF, so it should be working. It doesn't make any sense to me. I'm going to redo it from scratch, sometimes there are little errors in these that I'll spend an entire day staring at without noticing...
Once done though, this will allow you to have an unlimited number of guards that can be knocked out with very little action block overhead. It's a shame explosives have to be a pain about this. I suppose the solution is to only use the blocks on maps where explosives will not be present, and set each guard to have no chance of using grenades. You could still cheat with all guns enabled...but you're already cheating, who really cares? |
|
|
|
|
|
 |
 |
 |
 |
 |
Wreck Administrator


Joined: 14 Dec 2005 Posts: 7254 Location: Ontario, Canada  |
Posted: Tue Jun 02, 2009 11:34 am Post subject: |
 |
|
The only other possible exception, would be exploding objects. If an enemy is firing at you, destroys a crate, and a civilian (or other) is near it at the time, they'll die. If you're armed during this scenario, it'll just think that they were killed. But if you aren't, it'll consider them having been rendered unconscious. The Enemy Rockets cheat would also be a nuissance. It's stupid little things like this that make you respect the work the programmers did with PD. _________________
YOUTUBE | TWITTER/X | FACEBOOK | VAULT | MOD DB | RHDN |
|
|
|
|
|
 |
 |
 |
 |
 |
Dragonsbrethren Hacker


Joined: 23 Mar 2007 Posts: 3058
 |
Posted: Tue Jun 02, 2009 3:43 pm Post subject: |
 |
|
I misunderstood how the user bytes work (I thought they were variables that anything in the mission could manipulate, and not tied to individual guards), so my optimized method, while I've got it working, is worthless unless you want to limit the player to killing one civilian. I suppose that would be alright, but we all know how annoying it'll be when you have to restart a mission for the Nth time because some idiot ran between you and the guard you were shooting at. I don't think I'm going to pursue this farther, as any way of expanding this to cover more than one guard would easily be as bad as my old method using objective bits. |
|
|
|
|
|
 |
 |
 |
 |
 |
SubDrag Administrator

Joined: 16 Aug 2006 Posts: 6178
 |
Posted: Tue Jun 02, 2009 4:09 pm Post subject: |
 |
|
I never realized that either - so it's localized to a block? |
|
|
|
|
|
 |
 |
 |
 |
 |
Dragonsbrethren Hacker


Joined: 23 Mar 2007 Posts: 3058
 |
Posted: Tue Jun 02, 2009 4:35 pm Post subject: |
 |
|
Yeah, and luckily it's not limited to 04XX blocks, it works fine in a 1XXX block. I had a thought right after my last post and managed to get this working using both the objective bits on the civilians and the user byte in a 1XXX block. Here's how it works:
04XX: The guards assigned this block, on death, check if they were killed with a weapon other than unarmed or the taser. If so, this sets objective bit 00000001.
1XXX: This block sets the user byte to FF, and checks for the objective bit to be set. If it is set, it decreases its user byte by 1, unsets the bit, and waits for it to be set again. If the user byte goes below FE (two kills), it sets objective bits 00000200 to fail the objective.
I've tested it, and the action blocks are processed fast enough that even two civilians killed "simultaneously" will be counted as two kills. My current civilian block is minimalist, it does nothing but check for the guard's death. For an actual civilian, this death check should be in every block that civilian can use, ideally after any 03 actions since you don't want the civilian caught in a loop and not checking for their death.
Please replace the blocks on the Vault with these:
http://dragonsbrethren.slickproductions.org/files/goldeneye/misc/knockout-new.zip
Last edited by Dragonsbrethren on Wed Jun 03, 2009 1:26 pm; edited 1 time in total |
|
|
|
|
|
 |
 |
 |
 |
 |
SubDrag Administrator

Joined: 16 Aug 2006 Posts: 6178
 |
Posted: Tue Jun 02, 2009 6:08 pm Post subject: |
 |
|
Ah. Done |
|
|
|
|
|
 |
 |
 |
 |
 |
|
 |
 |
 |
 |
|
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
|
|
|
 |