Home | Download | Discussion | Help | Site Map | New Posts | Sign in

Latest Site News

Nysha's New Creators for July - posted on 1st Aug 2018 at 9:00 AM
Replies: 3 (Who?), Viewed: 4361 times.
just a girl
Original Poster
#1 Old 10th Feb 2018 at 2:41 PM
Default BHAV & Node Versions: at what point each version was introduced?
So, I've heard that base game can only handle node version 0. I think I saw v.1 as early as in University objects package, although I have UC and it might not be strictly University code. I saw 2 at least in Pets, but never saw 3. The highest node version I saw anywhere is 4. I'm curious what game versions can handle it and all the other node versions. And what would happen if lower game version meets higher node version than it's supposed to. Error or crash?
Advertisement
*shrugs*
staff: moderator
#2 Old 11th Feb 2018 at 6:00 PM
I can't speak much for node versions, but I know some things about BHAV formats. As far as I know, you're right that base game node version is 0x00. The format is 0x8007. You may see formats of 0x8005,but those are out-dated.

Quote:
Originally Posted by Numenor
The main differences between an "original" base-game" object and an "EP" base-game object are the following:
3) NEW with the Nightlife: most of the BHAVs, including the many that were not changed/updated, have been re-coded with a new format: the old BHAV type 0x8007 has been updated to the new 0x8009, that is a format unknown to the base-game; though these BHAVs may contain the old instructions (i.e. the object behaviour is identical to the base-game version), they are unreadable. This is the case of Moon_Ez table: an old table, already existing in the base game, that still uses the same base-game INIT instructions... but in the new, unreadable format 0x8009. As a consequence, the table couldn't execute the INIT BHAV: it appeared in the catalog (because the code 0x8c was manually modified to 0x8b), but couldn't be placed in game.
(Source)


At least in my experience, you are more likely to get a "Bad gosub tree number" error than a crash. That error sometimes shows up when you have a BHAV in the 8009 format, but don't have NL or OFB installed.

I don't mind if you call me "MSD" or something for short.
Tumblr
Perhaps someday I'll have leisure time back...
Field Researcher
#3 Old 12th Feb 2018 at 12:15 PM
From what I recall node version 1 is often used in basegame but apart from primitive 0x001A (changing relationships) it's never used in primitives just global calls. That didn't change until OFB where node version 2 became common, I don't have a clue where node versions above 2 began to be used or if OFB can use higher versions but as version 2 handles everything I need if I'm working with stuff for lower EPs (above Nightlife) I restrict the node version to 2.
just a girl
Original Poster
#4 Old 12th Feb 2018 at 4:25 PM
Good to know that node version 2 goes back to OFB.

I recently discovered that node version for global calls can make a difference. Node version 1 allows to pass caller's params. For a long time, I was wondering why the hell they always make them v1 for no apparent reason.

About BHAV formats, I've read horrors about how you should be careful changing them from the drop-down list because you can bork the whole thing. Really scared me But I don't remember having problems myself.

A few times I had problems with BHAV behaving weird - it's when I imported semi-global BHAVs and turned them into private. I know it doesn't make sense, and maybe them being former semi-globals wasn't the reason of borkiness. But I learned the lesson that BHAVs can be broken and the solution is to create a new resource and rewrite it. So much pulled out hair.
Back to top