Hi there! You are currently browsing as a guest. Why not create an account? Then you get less ads, can thank creators, post feedback, keep a list of your favourites, and more!
Lab Assistant
Original Poster
#1 Old 13th Dec 2005 at 6:00 PM Last edited by ebruere : 13th Dec 2005 at 6:09 PM.
Adding Social Interactions
We have already seen how to add Pie Menu Option using a controller and the "CT - Object Menu" bhav.

In fact, personglobals contains a special Interaction called " Interaction Plug In Social", the guardian of this interaction looks for objects with category = 56 (hexa) and uses a RTBN call to launch this "CT - Object Menu" bhav and the action calls "CT - Object Menu Command" of the same object.

Social interactions require some synchro between the two interacting sims and, in fact, running TWO interactions simultaneously with a special social object, and first running one immediate interaction to init the action.

The action in the "CT - Object Menu Command" bhav simply has to create an instance of this special object and launch the social interaction.
The special social object contains the code for both interactions ( Person A and person B, initiator and target ) and a SetResult bhav that tests ( and saves in attributes ) acceptance of the interaction by the target. Whatever the result, it will push the two interactions.

To make a new social interaction :
Clone one of the Social Objects and change the guid.
Edit the SetResult, Interaction Person A, Interaction Person B bhavs. There are special bhavs in the SocialGlobals to help you ( Entry Person A, Entry Person B, Common Exit ... )
Create a controller object (Is Global Object = 1 in the OBJD )
Set this object to use PersonGlobals
Set the category to 56 in it's Init bhav
Create the "CT - Object Menu Command" bhav
Create a guardian bhav with the tests for the Initiator Side.
Call this guardian in the "CT - Object Menu" bhav and use "Add/Change action string" to add the menu option if test is OK.
Create the "CT - Object Menu Command" bhav
this bhav will have 3 instructions :
0 : local0 := Param0 true 1, false error( yes, I know that in the social interactions in personglobals it is "local := StoID" but here it is Param0 )
1 : create object instance ( out of world with the guid of your interaction ) true 2, false error
2 : Social - Launch Social (local 0,literal 0, literal 1 ) (bhav 202F of personglobals ) true true, false false

Put in oven half an hour, and eat it hot !!! :banana:

You can have a look at my New interaction "Let's Undress" in the Gobal objects In Testing forum as an example of this.


Edit : forgot this :
The text that shows in the pie menu goes in the 12E text list in the controller
The texts that show when you move the mouse over the icons in the interaction queue for person A and B go in the Pie menu strings in the social object.
9 users say thanks for this. (Who?)
Advertisement
Field Researcher
#2 Old 18th Dec 2005 at 10:50 PM Last edited by syberspunk : 18th Dec 2005 at 11:33 PM.
Edit: Also, I just thought of another general, but related question - is there a general "standard" approach that most modders take if you are only planning to mod an existing social, to change how it works, rather than cloning it completely and adding a new one?

For example, if I wanted to mod an existing social, and add/use new BHAVs within the same "scope" I would have to "create" new BHAVs with the same Group ID and choose a new Instance. Is there a "standard" for choosing what Instance to use? Do most modders just take the next available one?

Or maybe start at something that is like 100 or 200 up in range? I was just wondering if such a general standard exists, or what might be unofficially considered or recommended to be common practice.

Hey ebruere, :wave:

I posted a question about this already, but I was wondering if maybe you might be able to answer it, since it is related to socials.

What are the 14 const values? And how can I access the BCONs that are higher than 0x86, since SimPE doesn't list them all (even with the latest version 0.52). Is this a limitation of SimPE itself? Or Maxis is hiding this information? I suspect that it is because of how SimPE interprets the BCON values. That it displays them as a flat list, when they really should be an array of arrays...?

Ste
One horse disagreer of the Apocalypse
#3 Old 19th Dec 2005 at 8:10 AM
Quote: Originally posted by syberspunk
What are the 14 const values? And how can I access the BCONs that are higher than 0x86, since SimPE doesn't list them all (even with the latest version 0.52). Is this a limitation of SimPE itself? Or Maxis is hiding this information? I suspect that it is because of how SimPE interprets the BCON values. That it displays them as a flat list, when they really should be an array of arrays...?
Ste


It was a SimPE plugin problem - based on outdated file format info. If you would like to download the latest test PJSE from http://simlogical.com/SMF/index.php...msg3317#msg3317 you will be able to access the higher numbered BCONs

"You can do refraction by raymarching through the depth buffer" (c. Reddeyfish 2017)
Lab Assistant
Original Poster
#4 Old 25th Dec 2005 at 6:46 PM
About social BCONs, I've not studied them.

About BHAV numbering, since Maxis is always using the next available index in the EPs, you don't want to use it. Using the 1100 range for locals and over 2200 for semiglobals should be fine. About compatibility with other hacks, I think that two hacks adding BHAVs to the same object have a very little chance to be compatible, even if not using the same range. BTW, there are not many modders able to design such hacks.

About modding an existing social, I think that the best approach for compatibility is to overwrite the original guardian with a bhav always returning false, and to create a new interaction using the method I describe. And if you have to change a semiglobal, use a local copy instead. Changing things in PersonGlobals or SocialGlobals is always risky.
Guest
#5 Old 28th Dec 2005 at 7:36 PM
Hej!!!
I have a question!!!!
How do we create objects in SimPE??
Test Subject
#6 Old 30th Dec 2005 at 6:52 PM
Default re
In regards to modding existing social functions, specifically the "Bite Neck" function: I can't seem to find where to alter the actual "Bite Neck" Pie Menu text.

I've edited the Pie Strings and Pie Functions, both as a mod in the Download folder and in the Objects folder itself. Neither actually changed the text or accepted any sub-Pie options.

Although the functions can be changed, the Pie Menu won't.

I've looked through all the Text Strings and can't find one that contains it.

Anyone have an idea as to where else I might find it?

Thanx.

Like the coldest winter will
Heaven beside you...Hell within
And you wish you had it still, Heaven inside you
Lab Assistant
Original Poster
#7 Old 5th Jan 2006 at 7:41 PM
The pie menu strings are in Person globals, But mods that change one or more of these strings will cause a major compatibility problem problem.
If you really want to change some of these strings and be compatible with other mods and future EPs, you can disable the original option using a guardian bhav that returns always false, build a clone of the social and use the method I describe to build a new interaction with your custom strings.
The strings in the social object will show when you move the mouse over the icon once the action is in the queue.
Original menu strings are in the pie menu strings in PersonGlobals, and your modified string will be in strings 12E of the controller you will create, and are referenced by the "Add/change action string" primitive in your "CT - Object Menu" bhav.
Field Researcher
#8 Old 6th Jan 2006 at 2:00 PM Last edited by syberspunk : 7th Jan 2006 at 8:22 AM.
EDIT: 1/7/2006

Ok... so I've been toying with this new social interaction, and so far so good. However, I have a fairly simple question, and I think I know the answer, but I just want to be sure: :P

Also, I suspect that there probably isn't a way to do this, but you can't save the "index" of the selected option (the value that is assigned to Temp0 in the "CT - Object Menu" BHAV and pass this forward to the interaction itself, can you? What I mean is the Person A and Person B interaction BHAVs in the interaction package. I was hoping there could be a way for me to store this value, pass it along, and read it within the Person A and Person B interactions so that I can do something different based on that value.

My guess is that you cannot do this? I tried setting Params, hoping that maybe Param 0 or Param 1 might silently get passed the value, but no dice. The only way I could get two interactions to work with the same "CT - Object Menu" is to have two separate interaction.packages with their own GUIDs.

I hope my question makes sense.

Thanks again! Cheers!

Ste

Quote: Originally posted by ebruere
About modding an existing social, I think that the best approach for compatibility is to overwrite the original guardian with a bhav always returning false, and to create a new interaction using the method I describe. And if you have to change a semiglobal, use a local copy instead. Changing things in PersonGlobals or SocialGlobals is always risky.


Yeah, I wasn't quite happy with the way I had to hack that Dance Social to allow Teens to dance with older, but at the time, it was the only way I could think to do it.

I tried using a "local" copy. By Local, I presume you mean a BHAV in the 1000 range? However, it appeared as if the SemiGlobal BHAV did not properly "see" the local BHAV. Is this merely a limitation of SimPE? It was my understanding that a SemiGlobal cannot call a private. From what I've been told and what I've read and from my experience, the "scope" of BHAVs is "upwards" in the sense that Private BHAVs can call other Privates, Semis, and Globals, and Semi BHAVs can call other Semis and Globals, and Globals can only call other Globals directly. To call BHAVs outside of the proper scope, you have to RTBN, which seems a lot more complicated to me (or I'm just too lazy to figure that out right now :P) and requires modding other files like Text STR# and whatever (so you can actually reference the BHAV in the RTBN).

Anyhew, I'm hoping in the next day or two, to tackle actually making a "new" social as well. So I'm definately gonna take a look at your "Let's Undress" mod.

Thanks for the info!

Ste
Test Subject
#9 Old 7th Jan 2006 at 7:57 PM
Quote: Originally posted by ebruere
The pie menu strings are in Person globals, But mods that change one or more of these strings will cause a major compatibility problem problem.
If you really want to change some of these strings and be compatible with other mods and future EPs, you can disable the original option using a guardian bhav that returns always false, build a clone of the social and use the method I describe to build a new interaction with your custom strings.
The strings in the social object will show when you move the mouse over the icon once the action is in the queue.
Original menu strings are in the pie menu strings in PersonGlobals, and your modified string will be in strings 12E of the controller you will create, and are referenced by the "Add/change action string" primitive in your "CT - Object Menu" bhav.


Thanx, mate. Found it now.
Here I thought I was being thorough and ended up looking right by it the first time. :sci:

Will definately take your advice and go that route, although I think some incompatibilities are going to be unavoidable.

Thanks again.

Like the coldest winter will
Heaven beside you...Hell within
And you wish you had it still, Heaven inside you
Test Subject
#10 Old 4th Feb 2006 at 4:59 PM Last edited by cederlina : 10th Feb 2006 at 7:11 PM.
thanks for the info!! but what are the social objects? can you clone them with the object workshop?
Lab Assistant
#11 Old 7th Jan 2011 at 8:04 PM
Default Is it possible...
to create a social interaction with the same exact animation and everything, but it just has another name on the pie menu and obviously for more realism different cloud thoughts and speech bubbles

sorry i know it's been 5 years

???
Retired Duck
retired moderator
#12 Old 7th Jan 2011 at 11:08 PM
Did you want to replace the existing interaction's name, or add an additional interaction?
Lab Assistant
#13 Old 12th Aug 2011 at 2:52 PM
Quote: Originally posted by Echo
Did you want to replace the existing interaction's name, or add an additional interaction?


To Echo,
I would like to make an additional interaction but with different speech bubbles and thought bubbles. But I don't know anything about Modding so could someone do this for me please
Retired Duck
retired moderator
#14 Old 13th Aug 2011 at 2:18 AM
I think you will have trouble finding someone who will take requests for complex mods like socials. Most of the people who are experienced enough to make them already have enough ideas of their own to make, without looking for additional inspiration. You can look through the "Creators who take requests" thread ( http://www.modthesims.info/showthread.php?t=392615 ) to see if you can find anyone with significant modding experience and ask them personally, but I don't think you'll have a lot of luck.

If you'd like to try to learn this stuff yourself, I'd definitely start with something smaller, like a recolour, then move on to a standard BHAV mod. Once you've got the hang of those, then this sort of tutorial will make a lot more sense.
Lab Assistant
#15 Old 20th Aug 2011 at 10:52 PM
Quote: Originally posted by Echo
I think you will have trouble finding someone who will take requests for complex mods like socials. Most of the people who are experienced enough to make them already have enough ideas of their own to make, without looking for additional inspiration. You can look through the "Creators who take requests" thread ( http://www.modthesims.info/showthread.php?t=392615 ) to see if you can find anyone with significant modding experience and ask them personally, but I don't think you'll have a lot of luck.

If you'd like to try to learn this stuff yourself, I'd definitely start with something smaller, like a recolour, then move on to a standard BHAV mod. Once you've got the hang of those, then this sort of tutorial will make a lot more sense.


Thanks, I will try that.
Back to top