More Awesome Than You!

TS2: Burnination => The Podium => Topic started by: syberspunk on 2005 October 03, 00:42:53



Title: Help with modding and Error Log from Abduction
Post by: syberspunk on 2005 October 03, 00:42:53
Oh most more awesome than me, and any modder who has the time to take a look at this... I've tried to update almecho's abduction pregnancy for males and females hack on my own, with a few personal tweaks such as making pregnancy random rather than the default. I extracted the BHAV from the NL objects.package basically starting from scratch and slowly adding my changes line by line and it seemed to work fine. Testing with twojeffs' increased abductions, sims are successfully abducted and sims get pregnant randomly (25% of the time), it works for both males And females and the births turn out fine (no errors).

However, I AM getting a strange error regarding a 'Send to Work' BHAV. This happened one of the first times that I was testing, and I thought it was related to my changes that I placed incorrecty, but it seemed like I fixed that problem and now I have no clue why this is happening. I had all other hacks disabled and the only ones that I was using were mine (which is basically almecho's hack with some of my minor tweaks), twojeffs' increased abductions, and numenor's blur hack (which is not bhav based if i understand correctly and shouldn't interfere).

I've tried duplicating the error with all hacks disabled and so far have not yet managed to get it to happen again. It looks like it happens with the Caliente house, after getting Nina a slacker job, and then her being abducted. It "looks" like it might happen when she is abducted and misses her carpool. But I couldn't remember exactly what was happening the two times that this error occurred.

I just looked through my objects package both in the C:/Program Files/EA GAMES/The Sims 2 Nightlife/TSData/Res/Objects/objects.package

And the one I copied separately so I can extract BHAVs from and play with. They are the same size, same timestamp and I was able to locate the 0x49D BHAV in 0x7FD46CD0 set of globals. It looks like when I view the CarGlobals 0x7F4EA230 and the instance 0x200C, that  is the BHAV that calls 0x49D. If I open this in SimPE, it shows up as an unknown global, but I can open the BHAV directly and it shows up fine? This looked something similar to when I opened up any BHAV that referenced some Uni specific BHAVs like the "Am I a Young Adult?" check, which shows up as an unknown global, but if I filter for that group and specific instance, I can find it fine. It seems like this was a limitation of SimPE, but I'm not sure and I have the latest 0.48c non Q/A release. I've checked if there was an update, and there isn't one yet.

Anyways, I am now pleading for someone with more experience to take a look at the error log that I've attached and if anyone can offer advice as to what is going on, please let me know if there is something I can do to fix it.

This is my original code:

Quote
###########################
# Group = 0x7FB1E9C7
# SemiGlobal = 0x7F4EA230 CarGlobals

###
# Group = 0x7FB1E9C7, Instance = 0x100B
# Title = Get Out - Make Pregnant
#
# Format = 8007, Params = 0, Locals = 2
# Tree type = 0, Header flag = 2, Tree version = FFFF8010 (-32752)

     0: Age - Am I a Young Adult?; true: false, false: 1
     1: Pregnancy - Is Sim Pregnant?; true: false, false: 2

     2: Age - Am I an Adult?; true: 3, false: false
     3: my person data Gender(0=male/1=female) (0x41) == 0; true: 4, false: 4

     4: NPC - Get Alien Dad - NID; true: 5, false: false
     5: Local 0 := Temp 0; true: 6, false: error
     6: .0x1011(Local 0, Stack Object, Stack Object, Stack Object); true: false, false: 7
     7: Local 1 := random from 0 to < 100 (0x64); true: 8, false: error
     8: Local 1 < 25 (0x19); true: 9, false: false

     9: Pregnancy - Make Pregnant(my person data neighbor id (0x1F), Local 0); true: true, false: false

I tried to meticulous check all the params to be sure that I didn't set anything incorrectly, and I've mostly just copied what I had seen in other BHAVs and other mods. I'm not sure what exactly could be the problem... unless somehow some global value is getting screwed up? But I can't see what it could be. I used a Local arg instead of a temp since I thought that would be safer. I've made the lines that I added/changed bold. As far as I can tell, there shouldn't be nothing that should be referencing this "Send to Work" bhav. Jase (of InTeen fame) was kind enough to take a look at it and he had this to say:

Quote
--- Jason B <jase439@excite.com> wrote:

>
>
> I don't have too much time to look into this, Steve,
> but I can tell you briefly that the error appears
> unrelated.  Sub - Send To Work is trying to call one
> of the new Nightlife globals (0x49D) and it simply
> isn't there.  I don't know if you're picking up a
> university version of objects.package somewhere, or
> if you have a mod installed which alters the Go To
> Work behavior - and it's calling something that
> isn't there.  But the "reference to tree table that
> doesn't exist" means just that, there was a call to
> a BHAV that is simply undefined anywhere. 0x49D
> exists for me here, so maybe your Nightlife
> installation has become corrupted.  This error is
> definitely alarming.
>
> J
>

But as I said above, I checked my objects.package and it all seems fine. I pretty much scrapped my old neighborhoods and I've been working on an entirely separate user account in Windows XP which I specifically dedicated as a TS2 Hack Testings account.

It is most likely something wrong with my hack, but what it is, I can't tell. And I don't know why it would reference any other BHAV. And so far, the two times I received the error involved Nina Caliente after getting her a slacker job. It looks like something funky might happen with the carpool, but I'm not quite sure what's going on. If anyone could help, I'd greatly appreciate it. For any non-modders, if you happen to play the Caliente house or any sim with a slacker job, if you could test what happens when a sim misses their carpool while they are being abducted, I'd greatly appreciate it if the error is reproduceable Without any hacks involved (or at least without my hack, then I know it can't be my hack that's the problem. :P ).

Ste


[attachment deleted by admin]


Title: Re: Help with modding and Error Log from Abduction
Post by: dizzy on 2005 October 03, 05:17:31
Weird. I took the error to mean there was something wrong in the Push Interaction. If the problem were with line 6 in "Send to Work", then the error would have been "Undefined Transition" or something like that. Judging by the Local values, the problem can't be in the Set to Next, so it really has to be something going on in Push Interaction.

The PI itself is trying to push #0 of 516(Car - Spaceship - Locator - STUB id) onto 210(N001_User00012 - Nina id).

It could be that the TTAB is pointing to a nonexistent tree (my best guess right now).


Title: Re: Help with modding and Error Log from Abduction
Post by: syberspunk on 2005 October 03, 05:59:11
How very strange... thanks for taking a look at it btw, I really appreciate that. Is there any reason this would be related to my hack in particular? I can't see how any of the changes that I added should cause this since none of the lines of code I added should affect any temps or stack objects, as far as I can tell. But then again, I have a pretty limited understanding as it is.

Could this error simply a consequence of a sim being abducted while a carpool comes and they are not there? I would have to test more to see if it is possible. It might be just an unforeseen consequence that might not have been caught since the original Maxis code pretty much has very low odds for getting abducted to begin with. I had an issue with getting abducted as well way back when I was testing twojeffs' increased abduction odds when he first released it. Only that issue was with teen sims getting abducted and then a "carpool" showing up for when they were supposed to sneak out.

What happened was that I would have a teen call to sneak out earlier in the evening, and while they were waiting for their friend to pick them up, I had the teen stargaze. When they got abducted and the friend showed up at 1:00 AM to pick them up, I would get a pop up error, and after reseting, the abducted teen would "teleport" home and end up in the foyer. No sneak out and no met aliens/abducted by aliens memory. One time, this resulted in the "invisible" jet/carpool issue I had, which I posted way back on VS in Pescado's now defunct forums. I had an invisible object, most like a spaceship vehicle/portal that never got deleted properly. As per Pescado's advice, I had my sims run/walk down the street and they ran into an invisible object they couldn't walk through, and complained with spaceships in their thought bubbles. I burninated it with buyable fire and it became floating ash. I finally "fixed" the household by moving my family into the sim bin and then back into the house, basically reseting the lot. It was only later that it seems people figured out something was going on with car portals getting deleted. I'm not sure how it works, if the portals are always supposed to be present, or if they get created and then deleted once vehicles show up and leave, but perhaps that is what went wrong with the teen. Once that event happened, I tried Several days (almost two weeks plus in sims time) to get Any of those sims abducted and it Never worked. Prior to that, I had abductions at least once an evening, if not every other evening. I had my sims stargazing almost all night from 7pm to 7am, so usually one of them got abducted. But after that error happened, no one got abducted, until I reset the lot and it went back to "normal" again. I did get the error again, just to confirm what I thought, and it did happen again, when a teen was supposed to sneak out, but got abducted and wasn't hope, the error dialog popped up. That time, I did not save to avoid fubaring the lot. :P

Anyways, with the Caliente house and this error, which I've only gotten twice by chance and haven't figured out how to consistently reproduce yet... I did not get a problem with spaceship/carpool portals. I was still able to get sims abducted, both just by stargazing and by the boolprop cheat. I don't know/can't see why my hack would cause this, so I'm hoping it's unrelated, and maybe just because the game probably doesn't count on sims getting abducted so often, that this scenario was never caught by Maxis as far as testing things out. Maybe the error comes from trying to push this interaction onto the sim's queue, but fails because the sim is abducted but still considered to be on the lot? I don't know exactly how that works either, but that's my guess. I definately need to do more testing, but I never got this error before.

Unless it really is my hack and I somehow, somewhere do not have something set correctly and somehow, some parameter is getting changed or set improperly? When adding my lines of code, I pretty much looked at other existing BHAVs in the objects.package and other mods/hacks as examples. I'm not quite sure what are valid parameters and what all those individual boxes mean, but I pretty much just copied what I saw and barely made any changes myself. Oh well... back to the drawing board huh? Lol.

Ste





Title: Re: Help with modding and Error Log from Abduction
Post by: dizzy on 2005 October 03, 09:34:48
Upon further reflection, I noticed that the "Sub - Send to Work" was the wrong one. (I was looking at CarGlobals.)  :P

The "JobDataGlobals" Send to Work tree (Group = 0x7F8F4EB6, Instance = 0x200F), is rather complicated and easy to see how it could produce an error.

The issue, however, still seems to be an erroneous Push Interaction, which obviously expects a 0 interaction in an object that does not contain one.

I think the issue you are experiencing here is that the "Send to Work" uses the first object of category 0x106:0x3 (carpool) if it does not find an ownable car. Spaceship is also categorized as 0x106:0x3, so the sim is told to "Get In" (action 0) the spaceship (which it doesn't have). And there you go.


Title: Re: Help with modding and Error Log from Abduction
Post by: syberspunk on 2005 October 03, 19:21:53
Okay, so if I understood that correctly, it is an inherent bug that my hack exposes but does not cause directly. In otherwords, theoretically, this would happen with any abduction. So... if I keep trying without hacks and just use the testingcheat, then this could still happen. Whenever a push interaction for Send to Work occurs while the spaceship is around, this error could potentially occur. It doesn't seem like this would happen because of something I changed.

Would the only way to fix it would be to hack the Send to Work bhav and make it check if the vehicle is NOT a spaceship? Right?

I went and looked at that bhav:

Quote
    1C: Stack Object's category (0x3B) != Const 0x106:0x67(103 (0x67)); true: 1D, false: 1E
    1D: Stack Object's category (0x3B) != Const 0x106:0x3(3); true: 1, false: 1E

It looks like these lines above might be related to what you are talking about? I'm still not quite sure about how attributes work, how to relate attributes to a specific/kind of stack object and how to look up what are valid values for each. I guess if there was a way to distinguish a spaceship from other vehicles, one could add a test for that, which should return false if it was a spaceship?

Ste


Title: Re: Help with modding and Error Log from Abduction
Post by: J. M. Pescado on 2005 October 03, 21:19:54
Making sure that the car found is specifically not a spaceship is a good way to counteract the problem, albeit clumsy. I'm not going to actually issue a fix for this because it's such an obscure corner case that it's not worth the increased maintenance overhead to add it to our existing menu. It's just not a common enough problem.


Title: Re: Help with modding and Error Log from Abduction
Post by: dizzy on 2005 October 03, 23:04:54
In this case, you'd have to check for not just the Spaceship but also the Locator object (which is the one in your error log if you notice).

0x6C501691 (Spaceship)
0xCC501689 (Spaceship Locator)

Age Controller has a good example of the type of check you could do:

# Group = 0x7F07FBBC, Instance = 0x1042
# Title = Selectable - Ok To Select?

2: Test Object Type: type of Stack Object == GUID 0xACA2F7D8 (0x7F118C4F: NPC - Template - Social Worker) Checking against original, not current GUID; true: 3, false: 1


Title: Re: Help with modding and Error Log from Abduction
Post by: syberspunk on 2005 October 04, 04:54:18
Making sure that the car found is specifically not a spaceship is a good way to counteract the problem, albeit clumsy. I'm not going to actually issue a fix for this because it's such an obscure corner case that it's not worth the increased maintenance overhead to add it to our existing menu. It's just not a common enough problem.

Well, there may be a more elegant solution, perhaps improving the search/Set to Next call or something else, but due to my lack of experience and knowledge, I can't think of a better one right now. And I know it's pretty obscure, and as I suspected, the problem only seems to be exposed if you use any hacks related to abductions to begin with. I'm surprised this error wouldn't have shown up for people more often for those who may be using twojeffs' increased abduction odds hack. This is probably similar to the hottub errors that occur "normally" in the game, but get exposed and show up more frequently if you use hacks involving the hottub, such as LizzLoves' stuff, which I think she even warns about. I don't know if the source of that issue has ever been determined or solved. Anyways, it seems that the more abductions you have, the more likely you might get this error, and in that case, I'd like to correct it, at least for my own game, since I would like to have these abduction related hacks.


@dizzy-two: Thanks dizz, I'll take a look at your recommendations and see if I can make a fix and test if it works.

What is the Spaceship Locator? Where would a test for this be necessary?

In the JobDataGlobals" Send to Work tree (Group = 0x7F8F4EB6, Instance = 0x200F) BHAV, would it be sufficient to add a check for the Spaceship after finding a carpool? I'm assuming that the category test that is getting checked in that line:

Quote
1D: Stack Object's category (0x3B) != Const 0x106:0x3(3); true: 1, false: 1E

is to make sure the Stack Object is a valid carpool vehicle. So... if this is true, then I can add in a check after this to see if the Stack Object itself is a Spaceship. This seems logical to me.

But where would I need a check for the Spaceship Locator? Does the Spaceship Locator also have a category (0x3B) that matches the carpool? And therefore it will erroneously return a true state causing the same error? Is that what happened in my error log?

Hopefully I'll have a bit of time to play around with this sometime tomorrow after class. :)

Ste


Title: Re: Help with modding and Error Log from Abduction
Post by: dizzy on 2005 October 04, 07:15:26
What is the Spaceship Locator? Where would a test for this be necessary?

Spaceship Locator is probably just an object that the telescope can use to prevent more than one spaceship from appearing. Since it's a clone of the spaceship, however, it will also be confused for a carpool.

I would just check for both Spaceship and Spaceship locator one after the other. If you change line 1F to go to line 20 on true and put in the GUID checks on line 20 and 21 (going to line 7 only if both checks are false and line 1 otherwise) that should work.


Title: Re: Help with modding and Error Log from Abduction
Post by: syberspunk on 2005 October 06, 05:43:59
Thanks once again dizzy, for all your awesome help and guidance. I added the changes as you noted and did a bit of testing, and so far so good. I know I need to do a lot more testing to be sure, however, since I don't know exactly what are the conditions required to reproduce the error, since it did not always happen. I suspect it has to do with timing, perhaps either the spaceship showing up at the time a sim's carpool is also supposed to show up. The two times it happened was when Nina Caliente returned from her abduction. I didn't note the time, but it seems logical that perhaps the return coincided with the moment that her carpool to take her to work shows up. And perhaps the spaceship or spaceship locator object gets found first before the real carpool and the code gets confused and pops up that error. Hopefully after some more rigorous testing, I'll have a better idea if this solves the problem. :)

I noticed that Maxis left in a non-function Point Break.  ::) I don't see why they don't bother cleaning up their code. I guess it's theoretically harmless but wouldn't it be better to leave unnecessary lines of code, both to avoid confusion and to cut down on file size (and therefore, theoretically loading times as well)? I looked at one of the other Send to Work BHAVs, I think it was in the CarGlobals, and there's like a whole section of code that never gets used at all. It was either intentionally disconnected or it is accidentally broken. I didn't bother to really look into it and figure out what it did, or was supposed to do, but it looked like it was supposed to handle school buses differently than work carpools. *shrugs* If it was disconnected and not used on purpose, they should just delete all of those lines of junk code! Unless they purposely leave this junk code in, perhaps as afterthought of something that was unfinished and maybe they will later finish it in other expansions? If this is common practice of Maxis, or game developers in general, I find that a bit discouraging, if not altogether unsettling. :P But meh, I don't know jack about the game development process, so who am I to complain? Hehe.  ;D

Ste



Title: Re: Help with modding and Error Log from Abduction
Post by: Process Denied on 2005 October 07, 18:29:44
I'm not a modder and can't offer help,but I also had a spaceship error when using boolprop to get a teen abducted.  She arrived back at the same time that her mom got back from work and she didn't get credit for the abduction and everyone cried about the spaceship being in their way and nobody could get abducted after that.  It didn't mess with carpools though, probably because it wasn't her carpool and they were arriving home and not leaving.  Just wanted to state another circumstance.