Quick Reply
Search this Thread
Instructor
Original Poster
#1 Old 23rd Jul 2005 at 6:18 PM Last edited by pinhead : 23rd Jul 2005 at 6:23 PM.
Default BCON = G - Category (Instance ID 0x0106) - Need Information
Hi all!

I'm trying to find information about this Global Behaviour Constant and the respective values stored there.
I tried to understand by myself but without success.
Anyone knows some of the category names for those values?

any help is appreciated.
Advertisement
Fat Obstreperous Jerk
#2 Old 23rd Jul 2005 at 6:56 PM
Here's the data I have compiled from random rummages over time:

0x106:0x01: Phone Base
0x106:0x03: Car
0x106:0x04: Bed
0x106:0x05: Terlet
0x106:0x06: Shower
0x106:0x07: Bathtub
0x106:0x0A: TV
0x106:0x0C: Social
0x106:0x0D: Chair - Dining/Office
0x106:0x0E: Chair - Living
0x106:0x0F: Stool
0x106:0x10: Chair - Recliner
0x106:0x11: Sofa/Couch
0x106:0x12: Counter?
0x106:0x14: Bookshelf
0x106:0x18: Standard Fridge
0x106:0x1A: Door?
0x106:0x1C: Sink
0x106:0x1E: Compooter
0x106:0x22: Coffee/End Table
0x106:0x23: Dining Table
0x106:0x24: Food Food
0x106:0x25: Food Dish
0x106:0x26: Showertub
0x106:0x28: Food Menu Item
0x106:0x29: Phone Call
0x106:0x2A: Trashcompactor
0x106:0x2B: Chess Set?
0x106:0x2C: Cashregister
0x106:0x2D: Kiosk Selection Item?
0x106:0x33: Desk
0x106:0x3A: Stove
0x106:0x3B: Mirror
0x106:0x3D: Hottub
0x106:0x3E: Grill
0x106:0x3F: Microwave
0x106:0x46: Trashcan
0x106:0x56: Plugin Social
0x106:0x57: UrnStone
0x106:0x5E: Telescope
0x106:0x5F: Motive Helper Unit?

Grant me the serenity to accept the things I cannot change, the courage to change the things I cannot accept, and the wisdom to hide the bodies of those I had to kill because they pissed me off.
Instructor
Original Poster
#3 Old 23rd Jul 2005 at 7:30 PM
Hey! great!

Thanks for your help, Pescado!
Test Subject
#4 Old 23rd Jul 2005 at 7:41 PM
Is there a central repository of information on all the internal data types and what the various values mean? The Wiki here is a good step in that direction, but it doesn't include things like JMP's nifty list for BCON values (at least that I could find). I've been trying to work with Sim BHAVs, but without knowing what various values mean, it makes things a tad difficult. heh
Instructor
Original Poster
#5 Old 28th Jul 2005 at 7:33 AM
To add some more:

0x106:0x37: Puddles
0x106:0x4C: HighChair
Systemic Anomaly
#6 Old 28th Jul 2005 at 8:39 AM
Quote: Originally posted by Hidden Force
Is there a central repository of information on all the internal data types and what the various values mean? The Wiki here is a good step in that direction, but it doesn't include things like JMP's nifty list for BCON values (at least that I could find). I've been trying to work with Sim BHAVs, but without knowing what various values mean, it makes things a tad difficult. heh

Have a look at disasim2 (search the tools forum). It isn't perfect but it takes you a long ways towards understanding how BCONs are referenced and what the different operands mean.

JM: Thanks for posting this list, man. Yours is more complete (and better organized than mine is). My notes are like scribbled across sixty sheets of paper littering my desk.
Instructor
#7 Old 28th Jul 2005 at 10:17 AM
Dizzy2 How To

Dizzy2 has posted a pretty thorough category list on variousimmers

Download the InSIMenator at InSIMenator.net
Instructor
Original Poster
#8 Old 28th Jul 2005 at 7:54 PM
Cool!! Thanks a lot for the info, eric!
and thanks to dizzy for sharing that list!
Lab Assistant
#9 Old 28th Nov 2005 at 8:53 PM
Hello,
There is one interesting feature for category 0x106:0x56: Plugin Social

Each time your mouse points to a sim in live mode, the game will scan for all objects of this category and try to call a bhav named "CT -Object Menu"
You can use this function to create pie menu options with the "Add/Change action string" primitive. Execution of the options is using a call to another bhav named "CT -Object Menu Command"
This works like interactions where "CT -Object Menu" is the guardian and "CT -Object Menu Command" is the action.
Targeted sim ID is in param 0
Caution : there is a space after CT
One horse disagreer of the Apocalypse
#10 Old 28th Nov 2005 at 11:11 PM
I'm trying to get my head round this - would this produce just one menu option per object of this type?

"You can do refraction by raymarching through the depth buffer" (c. Reddeyfish 2017)
Lab Assistant
#11 Old 29th Nov 2005 at 12:14 AM
No, you can have as many "add/change string" as you need in a single bhav and you can transmit a parameter
with these operands for "add/change string":
00 00 00 00 n+1 00 00 00
00 00 00 00 00 00 00 00
you use the string "n" and transmit the value contained in Temp0

When you select an option, the "CT -Object Menu Command" will receive the ID of the targeted Sim in param 0 and the value you sent in param 1 for this option.

If the "CT -Object Menu" bhav returns true, you can see the pie menu and if you select an option it will be executed.
If it returns false, you still can see the options, but even if you select one, it will not be executed.

These options are also availiable for autonomous sims. You have to implement the tests in the "CT -Object Menu" or "CT -Object Menu Command" for age,autonomy...

If you set the "Is global Sim object" to 1 in the OBJD of you object, it becomes a global object that the game will always load or create when you enter a lot. Then the pie menu is always used.
If you want the controler only on some lots, you have to implement a test at the beginning of the "main" bhav and remove instance if needed ( and end the bhav in a endless idle loop, not a return true )
If the options should work only if some special object is present on the lot, you could search for this object each time the "CT -Object Menu" is executed, but it will waste time with repeated "set to next" loops. It is better to create a bhav called with "start live mode" and set the correct link in the objf.
Lab Assistant
#12 Old 29th Nov 2005 at 12:35 AM
The "add/change string can also be used to create dynamic menus when used in a guardian in the standard menus.

An example that can be useful for your prison :

I'm working on a playable Boarding School.
An object in my school creates a token in the Global Inventory.
A controller checks for this token in it's "main" bhav to know if there is at least one Boarding School in the neighborhood. It deletes itself if false.
This controller adds an option to send a child to a boarding school when an autonomous adult chooses the option. This sends the child in a special family.
There is a register in the school, allowing the director to choose children, and I create a list of the children with "set to next" and "add/change action string" with the Nid as parameter.
The controller in the school adds all the menu options for special interactions, like "send to class", "send to bed", etc...
One horse disagreer of the Apocalypse
#13 Old 29th Nov 2005 at 12:35 PM
I am quite used to building a list of names, eg names of Sims on the lot, using Add/Change, and under those circumstances the Stack Object (the name displayed in the menu option using $Object) is available to the Menu Action as Param 0. That ties in with what you say about the targeted sim (who would of course be the stack object in that context). I wasn't previously aware of the role of Param 1, so that will be very helpful thank you!

As for parameters to the test BHAV, I know about Param 0 == 0 meaning the player clicked on the menu rather than the choice being autonomous. Is there anything further you could tell us about parameters for the test?

Also as you are probably aware, if a door's route-blocking flag is set and the Sim cannot use the door as per its portal test, menu options for objects the other side of the door are not available for autonomous selection. With a global object, is that a problem, or can the sim "find" the options no matter what room he is in?

"You can do refraction by raymarching through the depth buffer" (c. Reddeyfish 2017)
Lab Assistant
#14 Old 29th Nov 2005 at 10:32 PM
I didn't know about this param0 for autonomous in the test bhav.

I made some testing :

For the "CT -Object Menu", Stack object is the controller ID, Me is the initiator, Param 0 is the targeted sim and I just verified that Param 1 is this autonomous flag.

For the "CT -Object Menu Command", Stack object is the controller ID, Me is the initiator, Param 0 is the targeted sim and Param 1 is the value you had in Temp0

For Interaction Guardians, I use these operands :
00 00 01 00 n+1 00 00 00
00 00 00 00 00 00 00 00
To add string n, Local 0 is the index of the action in the interaction table ( yes, you can separate guardian and action and use different actions with a single guardian )
and Local 1 is the transmitted parameter that will be Param 0 in the action bhav

The $Object works for sims inside the lot, you can use $FullNameLocal:n with the neighbor ID in Local n for sims not present in the lot.

Since many social interactions are using a controller and the CT menu, I think that the route blocked test is made. I've never seen an autonomous sim complaining about a locked door.
My problem with locked doors is : How can I check that a route is not blocked BEFORE trying to push an interaction ? I know how to check the first and the last door with room numbers but cannot check intermediate doors.
One horse disagreer of the Apocalypse
#15 Old 30th Nov 2005 at 8:53 AM
I don't know, the fact that locked doors don't stop an interaction being pushed has rather been a benefit to me on the prison system. They are already inhibited from autonomous social interactions by locked doors, so I did need some way of getting them to do some stuff that was on objects they couldn't actually get to due to being locked in their cells.

I have a nasty feeling the route checking is all locked up in the "Find best interaction" type of primitives, otherwise the player wouldn't be able to see options on objects while a sim is selected who could not access them.

There are also some Flags I am interested in on the TTAB entries, known as "flags2" in PJSE TTAB editor. I don't know what they do, but wouldn't it be nice if it set whether an option could be "visible" to sims under various route circumstances.

"You can do refraction by raymarching through the depth buffer" (c. Reddeyfish 2017)
Field Researcher
#16 Old 1st Dec 2005 at 5:12 AM
If you want some examples of using the plug-in social controller type objects, quite of few of mine and Pescado's hacks use these to create dynamic menus without altering the semi-global pie menu. Some of mine that use them are trips & quads (for the adjustment controller), casual romance, NPC & Visitor zapper among others. All of Pescado's 'macro' hacks use these plug-ins also.

@ebruere - for CT - Object Menu Command: Stack object is the controller ID, Me is the initiator, Param 0 is the targeted sim and Param 1 is the index of the menu choice that was selected.

But now that I look again at what you wrote, you may have been saying this since you normally set temp0 to the index you want for the menu choice right before calling add/change the action string. Just wanted to clarify.

My mods for The Sims 2 can now be downloaded from this site.
Instructor
Original Poster
#17 Old 1st Dec 2005 at 2:59 PM
Just to include some info about the BCON of Categories: (not related to the new discussion here )

To get a category of an object, if exist a category for it, you will find it in the Init bhav of the Semi-Global of that object.

i was thinking that this information is important to someone who need other categories not listed in Pescado's and Dizzy's list.
Lab Assistant
#18 Old 1st Dec 2005 at 8:24 PM
Quote: Originally posted by twojeffs
@ebruere - for CT - Object Menu Command: Stack object is the controller ID, Me is the initiator, Param 0 is the targeted sim and Param 1 is the index of the menu choice that was selected.

But now that I look again at what you wrote, you may have been saying this since you normally set temp0 to the index you want for the menu choice right before calling add/change the action string. Just wanted to clarify.


Perhaps what I wrote was not clear. You call it an index, but values don't need to be consecutive. But yes, you associate each menu option with a different value in temp0, and the value transmitted in param 1 in the one associated with the selected option.
Field Researcher
#19 Old 8th Dec 2006 at 2:49 AM
Quote: Originally posted by ebruere
For the "CT -Object Menu Command", Stack object is the controller ID, Me is the initiator, Param 0 is the targeted sim and Param 1 is the value you had in Temp0


So for the object menu command, where does param 2 and 3 come from? I posted in modding discussion but found this relevant thread here. I need to use these parameters to pass extra info and at the moment, parameter 2 is passing the value 13 (I don't know where this comes from) but want to change it to the name of the diseased.
Field Researcher
#20 Old 8th Dec 2006 at 6:45 PM
You can't pass values with param 2 & 3 in CT - Object Menu Command. The values passed in if you try to declare them will be junk, ususally a stack obj id value.

There are ways around that limitation though depending on what you are trying to do. If all you need is the NID of the deceased sim, in CT - Object Menu set temp 0 to that sim's NID, then call add/change action string. That will then pass the NID to Command as param 1.

If that won't work because you've got multiple options in your menu besides a list of deceased sims, you can take a look at my Visitor Controller to see how I build the menu when clicking the active sim, specifically for how it builds the menu to unban specific sims that are in the banned sim array.

My mods for The Sims 2 can now be downloaded from this site.
Field Researcher
#21 Old 8th Dec 2006 at 10:31 PM
Thanks Twojeffs.
Back to top