View Full Version : Adding Social Interactions
ebruere
13th Dec 2005, 06:00 PM
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.
syberspunk
18th Dec 2005, 10:50 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 (http://www.modthesims2.com/showthread.php?t=112005) 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
Inge Jones
19th Dec 2005, 08:10 AM
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?topic=481.msg3317#msg3317 you will be able to access the higher numbered BCONs
ebruere
25th Dec 2005, 06: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.
Oakela
28th Dec 2005, 07:36 PM
Hej!!!
I have a question!!!!
How do we create objects in SimPE??
winterwill
30th Dec 2005, 06:52 PM
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.
ebruere
5th Jan 2006, 07: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.
syberspunk
6th Jan 2006, 02:00 PM
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! :beer:
Ste
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
winterwill
7th Jan 2006, 07:57 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.
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.
cederlina
4th Feb 2006, 04:59 PM
thanks for the info!! but what are the social objects? can you clone them with the object workshop?
Chrystali8
7th Jan 2011, 08:04 PM
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
???
Echo
7th Jan 2011, 11:08 PM
Did you want to replace the existing interaction's name, or add an additional interaction?
Chrystali8
12th Aug 2011, 02:52 PM
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
Echo
13th Aug 2011, 02: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. :)
Chrystali8
20th Aug 2011, 10:52 PM
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.
vBulletin v3.0.14, Copyright ©2000-2013, Jelsoft Enterprises Ltd.