Replies: 7 (Who?), Viewed: 3043 times.
Lab Assistant
Original Poster
#1 Old 7th Feb 2008 at 9:00 PM Last edited by seresv : 9th Feb 2008 at 1:18 PM.
Default My object attribute and stack obj id
Ok , im having a serious problem of getting my sims to remember anything they do for my object. I can't for the life of me do a memory interaction can someone plz tell me how to go about doing this.The interaction instance numbers are 1215,and 1218 . If you guys can help me figure this thing out i would be very appreciative.
Download - please read all instructions before downloading any files!
File Type: rar 2092008smoveheart.rar (158.9 KB, 17 downloads) - View custom content
One horse disagreer of the Apocalypse
#2 Old 8th Feb 2008 at 8:25 AM
I am confused by the way your thread title doesn't seem to relate to your question? I have a feeling you may be trying to do some work you are not really experienced enough for.

At least give some more context, like what is this object and what would you like it to be doing in terms of gameplay?

"You can do refraction by raymarching through the depth buffer" (c. Reddeyfish 2017)
#3 Old 8th Feb 2008 at 11:06 AM
There's no BHAVs with instances 1215 and 1218 in your package :-| 1213, then 1222, when sorted by instances.
There are three BHAVs named 'Memory - Play In', though - with instances 0x1995, 0x1997 and 0x1999. (By the way, it's bad idea to have multiple bhavs with the same name - it's easy to call/edit wrong one without noticing). Sorry, but I don't see major difference between them, though I didn't looked too carefully.

In general, memory addition should be done this way:
1) [prim 0x002A] Create New Object Instance (GUID <your memory guid>,
place: out of world (put new object id in Stack Object),
Create object normally,
fail if tile is non-empty: False,
pass Temp 0 to main: False,
move in a new Sim: False,
copying design mode materials from object in Temp 5: False)
2) [prim 0x001C] Run Tree by Name (Tree name: "CT - Add Memory" [NamedTree:0x54 (Global)],
Search for BHAV: Private SemiGlobal,
run in My stack,
<neighbor ID of the sim you are adding memory to>,
<ID of the object which should be memorized - for example, the bed>,
<was unused in the memory I cloned, look into your memory's CT-AddMemory to see what it supposed to be; probably quality?>)

Your calls seem to be correct - well, you seem to expect that StackObject is a sim, and pass his/her neighbor ID as the 2nd parameter - I'm not certain how it should be, I only added memory once and with object; and I'm not certain whether StackObject is really sim at the moment of this call - where are those bhavs called from? You have a ton of them, it's hard to guess

Anyway, another thought - you use Maxis memory, and not all of them are duplicatable. If a sim already has such memory - he/she wouldn't get another one. If you want them to be repeatable - you need to clone the memory, and in its Ct-AddMemory change the 4th argument to anything different from 1 and 2 (1 corresponds to 'don't add the same memory', 2 - 'may add the same memory if subject is different').
By the way - of the three memory guids you used, I found only one - 0x2C8CB358, Memory-Love-Woohoo (and it wouldn't add a memory between same subjects twice). The other two weren't found - either they are from addons, I have them unchecked (and it would mean that those addons are required for those memories), or those guids are nonexistent. What do they correspond to?
Lab Assistant
Original Poster
#4 Old 8th Feb 2008 at 12:29 PM Last edited by seresv : 8th Feb 2008 at 4:31 PM.
The only reason i have clones is because i thought that the same instance wouldnt be call more then once, but im glad that you told me i only need one. I tried making local variables and put one of them in the two args called ,but the memory still would not play between two sims that never were on the object together. I dont know what to do, everything work find without me adding memory but its when i add 1999 and others to my simantics that my whole thing just goes whackie. It wont even continue down line even if i have the memory line pointing to the next line. I dont want my sims not remembering the last thing they did while on the object. It would make the object pointless. So if you could break it down to me what im doing wrong, i would be very appreciative. Also for instance lets say you tried this in your game(warning it is an adult bed) the one that says vamp option 1 , then chose vamp me . The sim A and Sim b do turn into vamps after and doing interaction and they do get that want /fear, but when i try to called the memory like the vamp option it refuse to work. Why is that?
Lab Assistant
Original Poster
#5 Old 8th Feb 2008 at 5:05 PM
So the above instruction you left if i type them actually how u have in this object ,my memory should play correctly.
Lab Assistant
Original Poster
#6 Old 8th Feb 2008 at 5:15 PM Last edited by seresv : 8th Feb 2008 at 6:49 PM.
oh yea , mrs bug breeder how do i figure out my memory guid.
#7 Old 8th Feb 2008 at 8:17 PM
Originally Posted by seresv
The only reason i have clones is because i thought that the same instance wouldnt be call more then once, but im glad that you told me i only need one.
No, same bhavs can be called any number of times.
Sounds like you aren't familiar with BHAVs. Did you tried any tutorials on them, like Echo's ones? Trial-and-error is not a good method for dealing with them - some mistakes, and you get a braincracking spaghetti of code which is easier to rewrite from scratch then fix

Where did you get these bhavs - are they simply cloned with the bed, or you imported them from bed semiglobal, or anything else?

Originally Posted by seresv
how do i figure out my memory guid
In 'Memory - Play In' bhav, look for CreateNewObjectInstance calls, which are followed by RunTreebyName("CT - Add Memory"). There are 3 such calls there, each having guid of the memory which should be created. You can clone objects with such guids quickly (if those guids exist) by using OpenByGUID functionality of ObjectWorkshop (it's in Advanced block).
Originally Posted by seresv
Also for instance lets say you tried this in your game(warning it is an adult bed)
Sorry, but I'm not going to look at in in game until I figure out what's called and when in SimPE.
The bhavs called by 'vamp me' seem to be option settings, no actual interacting? No memory-setting bhav calls, certainly.
I found a bhav where such call is present - 'Interaction - Play XXX', instance 0x1400. I have to admit, I don't really get what's going on there 8-| and would appreciate other bhav-knowledgeable person look into it.

1: [prim 0x0002] Expression (Local 0x0000 := Stack Object ID 0x0000) -- ok, StackObject is probably the bed
2: [prim 0x0002] Expression (Local 0x0002 := Stack Object's slot 0x0001) -- that's sim in slot - either current sim, or the other one
3: [prim 0x0002] Expression (Stack Object ID 0x0000 := Stack Object's slot 0x0001) -- ok, assign Stack Object to that sim
4: [prim 0x0071] Snap Into (Object: My 0x000B (object id),
Target: Stack Object ID 0x0000,
Slot: 0x00,
Reset root bones: False) -- eek - snap a sim into sim's slot? is it possible at all? or stack object supposed to be the bed at this point?

Anyway, 'Memory - Play In' here has arguments Local 0x0004=bed id at this time, and Literal 0x0001. The 'Memory - Play In' 0x1999 has the following suspisious lines (numbers after sorting):
7: [prim 0x0002] Expression (Param 0x0002 == Literal 0x0001) -- this bhav has only 2 arguments - numbers start from 0 - so I have no idea what Param2 would be equal to
8: [private 0x1998] Sim - Is NPC? (1 arg:
Param 0x0000) -- because of it, I'd say that Param0 is supposed to be a sim id, and object id is passed

I can't be certain if 'Interaction - Play XXX' is used, though - you have mess in your TTAB as well

There's also 'Interaction - Use', instance 0x1300, which calls 'Memory - Play In' 0x1999 with a sim as first argument. The question about testing of Param2 in it still applies.

You have 0x38 entries in TTAB, and 132 bhavs - sorry, I don't have enough patience to track each possible route. Please give a TTAB row where to start from, at least.

And it's really better to clean up a bit - remove bhavs which aren't actually used, group some entries in TTAB - like options settings.
Lab Assistant
Original Poster
#8 Old 9th Feb 2008 at 12:32 PM Last edited by seresv : 9th Feb 2008 at 1:30 PM.
thank you very much i have taken what u have given me ,most of the bhavs are clones others are semi globals.. i someone what understand how to get things to happen in game , this was the only thing causing me so much trouble ,but from what i gather as usual its always something simple made complex. Thank you again. Also i clean the package. It now has 98 bhavs all the extra ones i wasn't using i removed. The instance num 1215-1220 are in there. 1215 ,and 1218 are the two bhavs that i need memory in. I erase 1997,1995 because they werent need, i am only using 1999 fior memory. The ttab's for bhavs above are (# 18- for 1215-1217 and #19 -for 1218-1220. The following are test for my interaction ( 1216,1217,1219,and 1220 )are test for interaction 1215 ,1218. I hope im making sense.
Back to top