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!
Test Subject
Original Poster
#1 Old 18th Mar 2010 at 4:24 PM
Default Change where objects are placed on surfaces.
I made a new table mesh that was a bit higher than the original one so now all the objects that I place on the table don't fit, they are lower than the surface.
(using s3pe,s3oc,photoshop and milkshape if it helps to know)

Would be very happy if someone could tell me how I fix this,
Advertisement
#2 Old 18th Mar 2010 at 5:29 PM
I have a Sims 2 dresser in my Sims 2 game with the same issue. [I think I downloaded it.] If yours was a Sims 2 object, I`d say you need to edit the SLOT records to raise the vertical location of the slots. As I am unfamiliar with Sims 3 stuff, however, I can only say that you have to do something equivalent, and not give you the name of the item that needs editing.

This Space Intentionally Left Blank
Test Subject
Original Poster
#3 Old 18th Mar 2010 at 5:40 PM
It's a sims 3 object, but thanks anyway
Inventor
#4 Old 18th Mar 2010 at 5:42 PM
Alopex, if you want to use your new table as a dining table, make sure the hight of the table is exact the same as a TS3 table.
I have explained how to do that in Milkshape, in my (unfinished) tutorial here:
http://www.modthesims.info/showthread.php?p=2874941
scroll down to post 3
#5 Old 18th Mar 2010 at 5:54 PM
"It's a sims 3 object, but thanks anyway "
Yeah, I know that, and you`re welcome, but I was hoping that someone who knows what the Sims 3 equivalent of Sims 2 SLOT records is could fill in the blank. Good luck!

This Space Intentionally Left Blank
Test Subject
Original Poster
#6 Old 19th Mar 2010 at 4:55 PM
Quote: Originally posted by Cocomama
Alopex, if you want to use your new table as a dining table, make sure the hight of the table is exact the same as a TS3 table.
I have explained how to do that in Milkshape, in my (unfinished) tutorial here:
http://www.modthesims.info/showthread.php?p=2874941
scroll down to post 3


But the thing is that i want the table to be high, and just a normal table where u can place flowerpot and stuff like that. Looked at the tutorial but it only explained how to change a mesh and stuff, and I already know all that, that's not the thing i have problems with. But thanks anyway.

I want to change how the objects get placed on the surface without changing my table because i want it to be this height,
but since noone seems to know how it's done I guess it's not doable?
Me? Sarcastic? Never.
staff: administrator
#7 Old 19th Mar 2010 at 6:01 PM
Slots are currently unchangeable, er well mostly unchangeable. Changeable but completely useless. A way to be able to read and change another resource still needs to be figured out.
Lab Assistant
#8 Old 21st Mar 2010 at 3:42 PM
Quote: Originally posted by Alopex
I made a new table mesh that was a bit higher than the original one so now all the objects that I place on the table don't fit, they are lower than the surface.
(using s3pe,s3oc,photoshop and milkshape if it helps to know)

Would be very happy if someone could tell me how I fix this,


You have to edit the slots Y-axis data in a hex editor

Open your object in S3PE and select the VPXY & click the Edit VPXY button.
Look in the top right corner to find the bounding box coordinates and copy
down the largest Y-axis coordinate, that's the height the tables slots need to be at.

Now export the RSLT file and open it in a HEX Editor.
If you need one, I use a simple one called XVI32

Keep in mind that data values are written to a file in reverse hexidecimal,
so if a hex value is 0x125689CD it will be displayed as CD 89 56 12 in the
hex editor, so your new values will have to be reversed beforehand.

The values you need to change are Floats, so you need to either use a hex
editor that has a tool to convert decimal numbers into 32bit IEEE Single
Floats or find an online converter. XVI32 can do this for you.


The files format is as follows


Code:
This is the RCOL Header, don't worry about it.
03 00 00 00 
01 00 00 00 
00 00 00 00 
00 00 00 00 
01 00 00 00 
70 B3 EF 7E 2D A5 52 56 
21 45 04 D3 
00 00 00 00 


Code:
This is the RSLT Header
2C 00 00 00 
0C 05 00 00 
52 53 4C 54 -- Looking in the editor right window, this is equal to RSLT
04 00 00 00 


Code:
These 5 DWORDS tell the game how many of each slot the object has
0D 00 00 00 - Pathing
15 00 00 00 - Container
00 00 00 00 - Effect
00 00 00 00 - Kinetics
00 00 00 00 - Unknown
All slots are defined in the same order listed above.
All Pathing slots will defined together, before the Container slots are.
If the first DWORD is not zero, copy it down and reverse the order of
the bytes, in this case 0D 00 00 00 would be 00000015 , and the 
leading zeros can be ignored, just like in regular math, to be read as 0x0D
Keep in mind Hex numbers MUST atleast have 2 characters so 1 zero is kept.

Open the Windows calculator in scientific mode and use it to convert 0x0D
into Decimal. It equals 13.


Do the same for the second DWORD, this is the number of Container slots you need to change.
Converting the number in this example, it would have 21 slots to change.


Code:
This is the list of slot names
Since this example has 13 Path Slots (0x0D) it will have 13 Primary Names
followed by 13 Secondary Names
A6 F8 20 A8 
A7 F8 20 A8 
A2 F8 20 A8 
A3 F8 20 A8 
A0 F8 20 A8 
A1 F8 20 A8 
AE F8 20 A8 
AF F8 20 A8 
D5 6E E7 52 
D4 6E E7 52 
D7 6E E7 52 
D6 6E E7 52 
D3 6E E7 52 

D1 60 F5 A8 
6A 22 F3 A8 
8A 5F AA A4 
8B 5F AA A4 
88 5F AA A4 
89 5F AA A4 
86 5F AA A4 
87 5F AA A4 
2D 6E 34 C7 
2C 6E 34 C7 
2F 6E 34 C7 
2E 6E 34 C7 
2B 6E 34 C7 


Code:
This part would have 1 block of data for each Slot Named.
So it would have 13 blocks of data, each Block is 48 bytes long
which would be split into 12 DWORDS per block.
I won't list the entire contents of the file I'm using for this post, just
1 block as an example, so you know what to look for.
00 00 80 BF 
00 00 00 00 
00 00 00 00 
2D 5E 40 3F - X-Coordinate
00 00 00 00 
00 00 80 3F 
00 00 00 00 
00 00 00 00 - Y-Coordinate
00 00 00 00 
00 00 00 00 
00 00 80 BF 
B1 15 38 3F - Z-Coordinate

At the end of the very last block for the very last Path Slot will be an empty 
DWORD
00 00 00 00 - End of Slot Data for this slot type


Next is the Container Slots area
It follows a slightly different format.
Primary Name Block
Secondary Name Block
Container Type Block
Data Blocks

This example. remember, had 21 Container Slots
The Primary Name Block will have 1 DWORD or each slot (this one uses 21)
The Secondary Name Block will have 1 DWORD or each slot (this one uses 21)
Container Type Block will have 1 DWORD or each slot (this one uses 21)
Then It will have 1 Data Block per Slot and they will be the same size
as the Data Block for Path Slots.
IE. 48 bytes in 12 DWORDS per slot.

Code:
Data Block Example
00 00 80 3F 
00 00 00 00 
00 00 00 00 
00 00 00 3F - X-Coordinate
00 00 00 00 
00 00 80 3F 
00 00 00 00 
00 00 00 3F - Y-Coordinate
00 00 00 00 
00 00 00 00 
00 00 80 3F 
00 00 00 00 - Z-Coordinate


After editing, re-import into the package and try it out.

Good Luck
Alchemist
#9 Old 21st Mar 2010 at 6:34 PM
Wow...this sounds like a breakthrough!

Have you tried it and gotten it to work on anything?

I don't have the slightest clue how to use a hex editor but you're the first person yet that has an idea of where to go to change slots. This is pretty exciting.
Me? Sarcastic? Never.
staff: administrator
#10 Old 21st Mar 2010 at 6:58 PM
I've been working on slots/routes for months. I can get the routing values in rabbit holes to change, I have made several different versions of rabbit holes that are as small as 1 tile objects with the new entry/exit points using the values I put in. So far any objects slots do not fully work. The RSLT gets slot names from the _RIG and in most cases this overrides any value changes made in the RSLT. I say most cases since rabbit holes are the only thing I have found so far that the RSLT can override the _RIG.

I can get them to take the new slot values, but then the object in the slot won't move with the base object. Otherwise the new slots will move with the base object but won't take the new values. The primary and secondary names are the container name and then a hash of the slot name from the _RIG. This slot name can be viewed in the _RIG file, but this file is encrypted and as yet uneditable.
Alchemist
#11 Old 21st Mar 2010 at 8:16 PM
sigh...that is most annoying. Thank you though for explaining the situation HL. D*** EA anyhow. This game has got to be one of the most hostile to modding ever invented.
Lab Assistant
#12 Old 21st Mar 2010 at 8:33 PM
Yes I'm making wall shelves with a hand made rslt file.
Other then the 4th slot type, I can read every other slot type's data well enough
to use it as a template to make my own.
I don't know what all the values are and won't be the one to figure them out,
but I suspect some are binary values (like the Container Type Block above is most likely a list like the ROom Catagory value is),
but I can find the xyz data of any slot

HugeLunatic ,
I don't know how many _rigs I looked at, so I can honestly say that
the following is true for the average object.....
the Secondary Names are NOT bone names and are NOT found in the _rig

I admit that the 4th slot type (which the wikki lists as Inverted Kenetic slots),
are beyond me and may contain _rig references, otherwise, the other 3 slot types are not related to the _rig.
Me? Sarcastic? Never.
staff: administrator
#13 Old 21st Mar 2010 at 9:02 PM
They are in the _rig, you just can't edit or view them in a hex editor since that file is apparently encrypted and doesn't give you access to the entire part. It is like a part zip file inside there.

Look at the rig files in granny viewer. You will notice the values such as _deco_1_N is a FNV32 hashed value in the RSLT (0xD9899188 or rather 889189D). Those are the secondary names you refer to. The primary name I think is just a slot name and appear to go roughly in order. And I've seen them repeat in other RSLT's. There is also a third value, a flag, which I think defines the weight or what can be placed in it.

I've created new slots, with a new FNV32 hashed value to avoid using the value in the _rig. And this is where I say I can get new slot positions to work they just won't attach themselves to the host object and move with it.
Lab Assistant
#14 Old 21st Mar 2010 at 9:20 PM
that actually explans alot, HL
Yes the 3rd value indicates the container slots capacity (sm,med, large, sims only, etc.)
Lab Assistant
#15 Old 25th Mar 2010 at 3:11 AM
Well, I've found a file floating around (granny2.dll) that has been used by modders of other games that use granny 3d
Along with this explanation of it's purpose (but not it's use)

Think anyone would be willing to dig into to put it use in modding TS3?
Inventor
#16 Old 25th Mar 2010 at 11:03 AM
Great find Raven Shadow, could be usefull for WesHowe too for the custom animations.

LOL Did this piece of text reminds you of something too?
Quote
errors bring on numerous symptoms, such as: system locks on start up or shut down, softwares lock up, reduced computer speed, internal speaker beeps, trouble saving files, slow system behaviour and program installation trouble.
#17 Old 25th Mar 2010 at 7:43 PM
WHERE did you get that near-perfect description of the problems Sims 3 is having? Was it in the documentation on that 3D engine DLL?

This Space Intentionally Left Blank
Inventor
#18 Old 25th Mar 2010 at 8:19 PM
Yes, just follow the link from Raven Shadow. It is about errors from that .dll.
Lab Assistant
#19 Old 25th Mar 2010 at 9:40 PM
That is a generic AD for pc repair software that can be found on any of 40 trillion DLL info websites, the only thing that changes is the name of the DLL that they
claim causes those problems.
Lab Assistant
#20 Old 26th Mar 2010 at 1:21 AM
I've also found some source code for a modding tool, for an unralated game, the uses the dll, if it'll help
Lab Assistant
#21 Old 31st Mar 2010 at 6:53 PM
I have a question (perhaps stupid)
I need to add a routing slot and a container slot to a object (exactely a fountain). I saw it's impossible for the moment. Impossible in "hard", but in "soft" ?
It's possible to add or modify a slot with a custom script ? I tried in this way, but my knowledges, in language C and .dll, are too much limited.

(Sorry to my bad English)
Lab Assistant
#22 Old 31st Mar 2010 at 10:05 PM
No ones english beist goeth unto be verily goode for ye next 2 weeks, until they stop running missives thru an olde english translator.
If I understand thee correctly thee desire unto add a Pathing slot unto a fountain thus sims mayhap walk up unto it an interact with it?

If thus ye info I posted above beist enough unto remedies someone add a Path Slot.
Lab Assistant
#23 Old 1st Apr 2010 at 9:39 PM
Sorry,
My "Old English/Vieux François" translation was incorrect ; I thinked some problems was present.
But I have 2 questions :
Primary name is, for example, FXJoint_0 (0x318a282c) or RoutingSlot_0 (0x31229a4c), but what is secondary name ?
And, is it possible to do same things with a custom script, with some instructions in OnStartup() or .cctor() functions?
Lab Assistant
#24 Old 2nd Apr 2010 at 3:05 AM
Scripting is beyond me, someone else will have to answer.

As for the secondary name, it's believed that it is used by the _rig, and not much is known yet of the _rig
Lab Assistant
#25 Old 2nd Apr 2010 at 9:27 PM Last edited by atavera : 2nd Apr 2010 at 10:12 PM.
Quote: Originally posted by Raven Shadow
Well, I've found a file floating around (granny2.dll) that has been used by modders of other games that use granny 3d
Along with this explanation of it's purpose (but not it's use)


Nice find, with just a few lines of C# and that dll, I can read the rig data. Although the actual SDK is quite costly, the dll itself exposes the api barely enough to work with(you get the size of the parameters, but have to guess what they are).


P.S.
The 12 DWORD datablocks in the RSLT entries are in fact a 4x3 transform matrix(all 12 DWORDS are 32bit floats) as it says in the wiki. If you google that you can see that the first 3 rows are for the rotation, and the last is the offset.
Page 1 of 5
Back to top