Replies: 273 (Who?), Viewed: 123469 times.
Page 5 of 11
The ModFather
retired moderator
#101 Old 27th Jul 2006 at 9:34 PM Last edited by Numenor : 27th Jul 2006 at 10:09 PM.
I'm not sure to get the idea of your object, but if it causes a floor tile to be removed, obviously that tile can't be walked over by the sims... So, yes, it will block the path, but not because the sims can't pass through the object; rather because the sims have no floor to walk on.

An example is the huge two-storey window from the base game: when you place it, two floor tiles are removed from the upper floor, and they can't be walked any more, of course...

I've finally started my Journal. Information only, no questions.

My latest activity: CEP 9.2.0! - AnyGameStarter 2.1.1 (UPD) - Scriptorium v.2.2f - Photo & Plaques hide with walls - Magazine Rack (UPD) - Animated Windows Hack (UPD) - Custom Instrument Hack (UPD) - Drivable Cars Without Nightlife (UPD) - Courtesy Lights (FIX) - Custom Fence-Arches - Painting-TV - Smarter Lights (UPD)


I *DON'T* accept requests, sorry.
Lab Assistant
#102 Old 27th Jul 2006 at 11:46 PM
Hmmm well there are two bhavs you can use, one is hide floor and the other is remove floor, I thought that if I used "hide" floor instead of remove floor it would work but it hasnt so far. So I am stuck with it I guess. thanks.
Lab Assistant
#103 Old 8th Aug 2006 at 9:34 PM
Echo,

I'd like to tell you the little problems I encountered the 1st time I followed your tutorial
- you say "Go to your Object Data list, and clone the last record." for me, the last record wasn't the one that was supposed to be cloned, and I hadn't thought to read the instance numbers. maybe you should say "click on Instance first so as to put the records in the good order" or something about instance numbers
- finally I didn't read the 1st part of the tut as my object had more than 1 OBJD record but I should have because my object had no master tile OBJD - fortunately you made a very helpful checklist

that's all, and I hope I'm not annoying you. :D

- Speech is silver but silence is gold -
Retired Duck
retired moderator
Original Poster
#104 Old 9th Aug 2006 at 12:19 PM
Quote:
Originally Posted by Ben♣
The last record wasn't the one that was supposed to be cloned, and I hadn't thought to read the instance numbers. maybe you should say "click on Instance first so as to put the records in the good order" or something about instance numbers
Good call, thanks. I'll put that in the next version (Hopefully I'll get on to that soon!)

Quote:
Originally Posted by Ben♣
finally I didn't read the 1st part of the tut as my object had more than 1 OBJD record but I should have because my object had no master tile OBJD
Really? What object was that? I'm genuinely curious. If it has multiple OBJDs, it should have a master...
Lab Assistant
#105 Old 9th Aug 2006 at 5:58 PM Last edited by Ben♣ : 9th Aug 2006 at 7:53 PM.
Quote:
Really? What object was that? I'm genuinely curious. If it has multiple OBJDs, it should have a master...
It was a 2-tile painting and I cloned another multi-tile painting and none of the OBJDs had its multi tile lead object set to 1.

I hope I'm not mistaken

Before I forget :
- remember the 1st problem, about instance numbers ? well, it's the same for OBJf (perhaps it's not important as the OBJfs seem to be all identical)
- I still don't know if I should change the BHAV of a painting, because Sims can't walk through it.

- Speech is silver but silence is gold -
Retired Duck
retired moderator
Original Poster
#106 Old 10th Aug 2006 at 10:47 AM
You don't need to change the BHAV of a painting, that step is only necessary if you want to stop sims from walking on the tile.

As for OBJfs, well that's a whole big mess that is going to take a long while for me to explain. But for deco objects, yes, the OBJfs should all be the same.
Space Pony
#107 Old 20th Aug 2006 at 4:44 AM
Hi!
First of all thank you for the wonderful tutorial. It really came in handy. Some of my question applies to this tutorial but other parts of it apply to some other tutorials that I dont' believe I've found yet.

I am making a 6 tile dresser (3 tiles wide). It looks like this and is based off of my real dresser which is here.

I cloned a 2 tile dresser and successfully added the two extra footprints. I followed the steps to make the tiles so they couldn't be walked through. The problem is, I want one of them to be able to be walked through. I just want to have the part with the dresser blocked out but the part in front of it that has a footprint to be accessible to Sims. I actually used Inge's InitLinker in one of the steps because I didn't know how to go and find the true thingies to trace them or whatever.

I know next to nothing about bhavs and so far haven't been able to figure out how to edit them. I'm just really slow I guess. I try to read the tutorials but much of it just boggles me.

In addition to having this as a dresser, I want to make it into a surface that objects can be placed on. (I found a tutorial on adding slots to an object but it seems to be about adding additional slots to an object that already has slots).

I also plan to make a mirror that will be placed on the middle section of it but will hopefully not stop other objects from being placed on that same tile.
I know i'm biting off more than I can chew, but I'm determined to get this thing done properly.

Any advice or suggestions?
Retired Duck
retired moderator
Original Poster
#108 Old 20th Aug 2006 at 7:42 AM
The first part (making some tiles traversable) is relatively easy. Here's how to do it:

- Clone your init function
- Give the init function an unused instance number and commit
- Find the line that sets the "Use Maya footprint" flag and change it to "Stack Object's 0x0008 (flags) Set Flag flag# Literal Value 0x0005". Commit.
- Go to the Object Data files and find the ones that represent the tiles you want to be able to walk through. Take a note of the instance numbers for those tiles.
- Go to the Object Functions files and find one with a instance number matching the OBJD. Open it and select the line that says "Init".
- In the "Action BHAV" box on the far right of the window, change the number to the instance of the cloned BHAV. Commit.
- Repeat the previous two steps for each of the tiles you want to allow person intersection.
- Save and test in game.

When it comes to slots, I really just use trial and error. However, if you read the tutorials and the InfoCenter thread you might find something of interest there about adding slots to unslotted objects?
Space Pony
#109 Old 20th Aug 2006 at 12:52 PM
Quote:
Originally Posted by Echo
The first part (making some tiles traversable) is relatively easy. Here's how to do it:

- Clone your init function
- Give the init function an unused instance number and commit
- Find the line that sets the "Use Maya footprint" flag and change it to "Stack Object's 0x0008 (flags) Set Flag flag# Literal Value 0x0005". Commit.
- Go to the Object Data files and find the ones that represent the tiles you want to be able to walk through. Take a note of the instance numbers for those tiles.
- Go to the Object Functions files and find one with a instance number matching the OBJD. Open it and select the line that says "Init".
- In the "Action BHAV" box on the far right of the window, change the number to the instance of the cloned BHAV. Commit.
- Repeat the previous two steps for each of the tiles you want to allow person intersection.
- Save and test in game.

When it comes to slots, I really just use trial and error. However, if you read the tutorials and the InfoCenter thread you might find something of interest there about adding slots to unslotted objects?


Thank you so much!
So I set it like this, right?
Operands: 08 00 05 00 FF 09 04 07
00 00 00 00 00 00 00 00

I forgot to mention that the original tiles that were set to be walking space for the Sims allow them to path through, its just the new tile that doesn't allow for it. Do I only need to set it for the new tile? Or should I go and set it for all of them?
Also, will any of this make the added portion that I don't want to be walked through clickable? I want the portion of the object on that tile to act just like the rest of the object.
Am I making sense?
Retired Duck
retired moderator
Original Poster
#110 Old 20th Aug 2006 at 1:30 PM Last edited by Echo : 20th Aug 2006 at 1:34 PM. Reason: Bad punctuation
Quote:
Originally Posted by suceress
Thank you so much!
So I set it like this, right?
Operands: 08 00 05 00 FF 09 04 07
00 00 00 00 00 00 00 00
That looks right to me

Quote:
Originally Posted by suceress
I forgot to mention that the original tiles that were set to be walking space for the Sims allow them to path through, its just the new tile that doesn't allow for it. Do I only need to set it for the new tile? Or should I go and set it for all of them?
Actually, if you already have tiles in your object that allow this, then you can probably skip the first four steps above. Because some of your tiles already allow sim intersection, then that means that a second init function already exists with those flags set. You just have to make your new tile point to that init.

Instead of creating a new init you could open one of the OBJf files for a tile that already allows the sim to walk through it. Copy the value from its init line, then paste that value into the same place in the OBJf for the tile you want to make traversable. Does that make sense?

Alternatively, you can just follow the same steps I provided above - they should still work. And yes, you'd only need to do it to the tiles you want to change. It won't affect any of the other tiles that are already working correctly.

Quote:
Originally Posted by suceress
Also, will any of this make the added portion that I don't want to be walked through clickable? I want the portion of the object on that tile to act just like the rest of the object.
Am I making sense?
Whichever tiles use the init which just has "Use Maya footprint" set will not allow sims to walk through them. Whichever tiles use the init which has the "Allow Sim intersection" set will allow sims to walk through them. The clickable area is completely unrelated to the footprint, and exists in the GMDC (mesh) part of the package. Hope that was a bit clearer! :D
Space Pony
#111 Old 20th Aug 2006 at 5:03 PM Last edited by suceress : 20th Aug 2006 at 5:15 PM. Reason: fixing stupid typo
Quote:
Originally Posted by Echo
That looks right to me

Actually, if you already have tiles in your object that allow this, then you can probably skip the first four steps above. Because some of your tiles already allow sim intersection, then that means that a second init function already exists with those flags set. You just have to make your new tile point to that init.

Instead of creating a new init you could open one of the OBJf files for a tile that already allows the sim to walk through it. Copy the value from its init line, then paste that value into the same place in the OBJf for the tile you want to make traversable. Does that make sense?

Alternatively, you can just follow the same steps I provided above - they should still work. And yes, you'd only need to do it to the tiles you want to change. It won't affect any of the other tiles that are already working correctly.

Whichever tiles use the init which just has "Use Maya footprint" set will not allow sims to walk through them. Whichever tiles use the init which has the "Allow Sim intersection" set will allow sims to walk through them. The clickable area is completely unrelated to the footprint, and exists in the GMDC (mesh) part of the package. Hope that was a bit clearer! :D


Thank you again!
When I cloned them all from the same one the new tile with the object on it was not clickable and could be walked through. When I added the bhav about no maya footprint it was still not clickable but neither of the new tiles could be walked through.
I went back and recloned the object functions. I cloned the one for 1,0 to make the one for 2,0 and the one for 1,1 for 2,1. I just tested it in game. The new tiles cannot go through a wall BUT the Sims can walk through both of the new tiles. In addition to that, the tile that has part of the object on it is now clickable.
I went and looked at the object functions and all of them seem to be completely identical. I can't seem to find where the hiddley-hay it tells them to act differently.
On the bright side, the part is clickable like I wanted. I suppose it doesn't matter too much if Sims walk through it. But I want this to be a quality object. Its bad enough I left in the animation of the sim trying to open and close a drawer (but I sort of nerfed the meshes for the clothing and shadows so nothing pops out).

I had no idea what part of the GMDC thingy to edit. I didn't know the mesh had any impact whatsoever on whether or not things were clickable or not.
Should I just upload my file to be looked at? Because this is really confusing me. I might just be daft, because I am not seeing any differences in the init thingies.

Again, thank you so much!
Retired Duck
retired moderator
Original Poster
#112 Old 21st Aug 2006 at 12:40 PM
Well done! Probably one of the lines was pointing to a slightly different numbered function. But if it works it works!

For future reference, if your clickable area gets "nerfed" again you can generally fix it by going into the GMDC, flicking over to the "Model" tab and clicking the "clear" link next to the "Bounding Mesh Control - Vertices" box. Then, go to the groups tab, select the subset(s) you want to be clickable, and click "Add to bounding mesh".

Note that this trick doesn't work too well with objects that do not already have values in the "Bounding Mesh Control - Vertices" box when you first go into it.
Space Pony
#113 Old 22nd Aug 2006 at 10:03 PM Last edited by suceress : 3rd Sep 2006 at 2:52 AM. Reason: deleting old file
Quote:
Originally Posted by Echo
Well done! Probably one of the lines was pointing to a slightly different numbered function. But if it works it works!

For future reference, if your clickable area gets "nerfed" again you can generally fix it by going into the GMDC, flicking over to the "Model" tab and clicking the "clear" link next to the "Bounding Mesh Control - Vertices" box. Then, go to the groups tab, select the subset(s) you want to be clickable, and click "Add to bounding mesh".

Note that this trick doesn't work too well with objects that do not already have values in the "Bounding Mesh Control - Vertices" box when you first go into it.


I must be doing something wrong still. It nerfed it again so I did what you said about the bounding mesh. I went to test it in game and it made the game crash. I had saved another copy of it in another spot before the changes so I restored to that one.
I'm going to upload the file to be looked at to see if it gives the same problems to other people (about being clickable and walked through).
I want to see if anyone else can spot any differences in the object function things. Because I couldn't find any.
Retired Duck
retired moderator
Original Poster
#114 Old 26th Aug 2006 at 2:28 PM
Is this the before or after version of the file?

I haven't been able to check it in game, but the things that I can tell from looking at it in SimPE are that:
a) The "Maya Footprint" flag hasn't been set anywhere
b) All the OBJf files are actually the same (odd that) so you'd have to use the original instructions for adding a second, walk through init
c) The "Bounding Mesh Control - Vertices" box is empty. If this is the before, then the technique I listed above will probably not help. If this is after things went wonky, then you need to go through the "Add to bounding mesh" process.
Space Pony
#115 Old 29th Aug 2006 at 12:54 AM
Quote:
Originally Posted by Echo
Is this the before or after version of the file?

I haven't been able to check it in game, but the things that I can tell from looking at it in SimPE are that:
a) The "Maya Footprint" flag hasn't been set anywhere
b) All the OBJf files are actually the same (odd that) so you'd have to use the original instructions for adding a second, walk through init
c) The "Bounding Mesh Control - Vertices" box is empty. If this is the before, then the technique I listed above will probably not help. If this is after things went wonky, then you need to go through the "Add to bounding mesh" process.


This is the before one.
I must've forgotten to change some of the things. I just couldn't figure out how to change the new Init (which I was going to call Init-Sub) to have a different number to be called on. I know how to change the instance number but I noticed that the object functions had something like 0x1001 for the first Init and 0x1002 for the main bhav, but I couldn't find a place to name an additional Init one as 0x1003 (or something that hasn't already been taken). I tried the bounding mesh in the later one but it was total SNAFU.
I just don't know why things are behaving differently unless they are calling on some hidden global/semi-global bhav that I don't know about.
I was going to work on it this weekend but my father had a heart attack and I spent the weekend in the hospital with him. Just got home awhile ago and am trying to catch up on things.
Retired Duck
retired moderator
Original Poster
#116 Old 29th Aug 2006 at 11:24 AM
Any 4 digit instance number is fine so long as it starts with a 1. As for how they're acting differently, it's probably using the proper maya footprint, and that will only cover the actual part which is in contact with the ground. That'll mean that if you change the code so that it doesn't use the maya footprint, you'll have to create an alternative init.

I'm so sorry to hear about your father... I hope he's feeling better soon. Take care of yourself too.
Space Pony
#117 Old 30th Aug 2006 at 3:34 AM
Quote:
Originally Posted by Echo
Any 4 digit instance number is fine so long as it starts with a 1. As for how they're acting differently, it's probably using the proper maya footprint, and that will only cover the actual part which is in contact with the ground. That'll mean that if you change the code so that it doesn't use the maya footprint, you'll have to create an alternative init.

I'm so sorry to hear about your father... I hope he's feeling better soon. Take care of yourself too.


Thanks. I think I'm not being clear about which number I'm talking about. In the obj functions they link to bhavs by number. As you see in the object I cloned they all link to the same init. But I can't seem to find where in the bhav that the init is calling itself by that number because its not the instance number (at least not as far as I can tell). So even when I created an init-sub and changed the instance, I didn't know how to give it a number to link it back to the obj function. Does that make sense?
I'm also wondering if the area of the object is somehow set in the resource node or slot file (or both) which is allowing certain parts to be clicked on and other parts to be walked over. But I know slots aren't your area of expertise.

My father is doing better. They said we got him to the ER just in time. I'm hoping he will be released from the hospital tomorrow.
Retired Duck
retired moderator
Original Poster
#118 Old 31st Aug 2006 at 11:42 AM
So you've given it a new instance number starting with a 0x1? Copy that instance number, then go to the OBJf for the tile you want to change. Open it up, then click on the line that says "init". When it's selected, look to the far right - you'll find a box labelled "Action BHAV". Paste the number in there then commit.

I doubt the slot file has anything to do with the clickable area. The resource node might, but I doubt it...
Lab Assistant
DELETED POST
31st Aug 2006 at 1:08 PM
This message has been deleted by atavera.
Part-time Hermit
#119 Old 31st Aug 2006 at 1:58 PM
Quote:
Clickable area is all defined in the GMDC when you import, if you don't have it, you need to import the mesh again.


This appears not to work with some objects that have joints. For example, I haven't managed to change the clickable area on beds.
Space Pony
#120 Old 3rd Sep 2006 at 3:14 AM Last edited by suceress : 7th Nov 2006 at 9:56 PM.
Echo, my brain just wasn't working for some reason. I suddenly realized just how easy it was to tell which bhav it was choosing. I wasn't clicking on the dropdown menu thing. Anyways, I made the changes to ignore maya footprint for the no-walk tiles and then to make it so they could walk through the walkable ones. Unfortunately when I put it in my game it causes the Sims to no longer move. It pauses time and I can't get them to move or do anything. I don't know why. It only happens after I buy the dresser and place it. With the bounding mesh thing it still crashes the game. I think because it says there are too many faces when I put the mesh into SimPE. I tried reducing the poly count in Milkshape but it caused the texture to not show up on it. I don't know what I'm doing wrong.

IgnorantBliss, I think maybe because this one has joints is why it might not be working. The clickable area did not show up even after I maded the footprint changes.

Atavera, thank you very much, but that went over my head. I'm more of a visual person and tend to need pictures. I'm having trouble visualizing. I guess my biggest problem is figuring out which coordinates apply to which tile and spot. Basically I want all of the spots in this picture that are outlined in red to be intersectable by the Sims but I don't know how to map out just where everything is exactly.

I don't know what is wrong with my file or if it creates the error for everyone or just me. but I'm including it with this post to see if anyone is getting the same results as me. I think even the image of it disappears in the catalog and all that shows up is the shadow.

Edit: removed file
Lab Assistant
#121 Old 3rd Sep 2006 at 3:52 AM Last edited by trezero : 3rd Sep 2006 at 4:04 AM.
o_O Wait, so let me get the footprint thing straight:

Each tile of an object, basically, is divided into a 16x16 grid. Each of the small squares can have either a 0 (permit walking) or a 1 (no walking)?

So once those values are there, you do all that conversion to hex stuff, and add it in?


That's incredible. Very finely detailed, too. 1/256th of a tile isn't much.

Just one clarification: would each tile-grid be orientated in the expected X/Y plane, with X being to the right and Y being the top?


This is good info to know....

EDIT: It also makes me wonder about overlapping footprints. The stairway I opened up to see what you meant had a tile footprints for a tile strip on each side of the staircase as well. Apparently these don't effect placement, so if you had two overlapping footprints from two different objects, are the footprints added?

The above post should be ingested with 1/4 Tbsp salt. In the event of an allergic reaction, panic and wait for the reaction to pass.
Retired Duck
retired moderator
Original Poster
#122 Old 3rd Sep 2006 at 4:11 AM
Eep! Game freezing is a sign of a particularly unhappy object. I think maybe this dresser just doesn't want its footprint changed this way?
Space Pony
#123 Old 3rd Sep 2006 at 4:24 AM
Quote:
Originally Posted by Echo
Eep! Game freezing is a sign of a particularly unhappy object. I think maybe this dresser just doesn't want its footprint changed this way?


I have no idea. I just know that when I placed the object it paused the action and the timer didn't go even though the pause icon was not there. But when I sold the object in buy mode and returned to play mode the time started moving again. I don't know how the minor changes I made could cause that to happen.. Unless I somehow accidentally changed something else.. I may just reclone the original object and start from scratch again. At least I got my mirror working. I think I might move on to my armoire next and save the dresser for last.
This current incarnation of the dresser seems to have no love for me.
Lab Assistant
DELETED POST
3rd Sep 2006 at 5:22 AM
This message has been deleted by atavera.
Retired Duck
retired moderator
Original Poster
#124 Old 3rd Sep 2006 at 5:57 AM
atavera: If you add more array elements/tiles to the CRES footprint node, does it automatically provide the green placement tiles as well, or do they still require the additional OBJDs/OBJfs?
Space Pony
#125 Old 3rd Sep 2006 at 6:24 AM Last edited by suceress : 3rd Sep 2006 at 10:17 AM.
ok. I ran it with the testingcheats on and got "An error occurred in object "Ashley Cataline Dresser- 0,1" #225, Error: reference to tree tree parameter when no parameter exists."

Not exactly sure what that means.
Edit: Ok, I've figured out how to lay out the map of zeros and ones and such, and how to convert it to hexadecimal, but I'm lost on the part about how to input it. I found the footprint (cDataListExtension) but in Plugin mode it won't let me edit it.
so I clicked on Hex thinking that might help but I see nothing about assigning the tiles and it looks like a bunch of garbled gibberish to me. Nothing about x and y as far as I can tell.
Is there any way that I can specify the width of the clickable surface in the resource node? Or somehow with the joint thing? I keep seeing things about joint and root_trans_ with various numbers afterwards. If I can figure out the full width of the object should I alter the resource node joints to reflect that?
Is there a way to figure out how far over something is from the binary code?

Good question Echo. I'm such a newb at this but I'm hoping to learn much more.
Page 5 of 11
Back to top