![]() |
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. ![]() |
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? |
Hey! great!
Thanks for your help, Pescado! ![]() |
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
|
To add some more:
0x106:0x37: Puddles 0x106:0x4C: HighChair |
Quote: Originally posted by Hidden Force
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. |
|
Cool!! Thanks a lot for the info, eric!
and thanks to dizzy for sharing that list! |
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 |
I'm trying to get my head round this - would this produce just one menu option per object of this type?
|
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. |
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... |
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? |
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. |
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. |
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. |
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. |
Quote: Originally posted by twojeffs
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. |
Quote: Originally posted by ebruere
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. |
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. |
Thanks Twojeffs.
|
All times are GMT +1. The time now is 4:47 AM. |
Powered by: vBulletin Version 3.0.14 · Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.