My Botched Attempt at Modding
dizzy:
Right. New package.
Make a new package and add what you extracted.
kutto:
If you don't mind me asking, what is the effect of the new package? It looks pretty much it was before.
Either way, I followed your instructions step by step. I'll be testing it soon. Hopefully, I did it right this time.
syberspunk:
Quote from: kutto on 2006 December 29, 23:17:34
I thought that was what I did. I started over. I extracted only the age contoller out of objects.package. What do you mean by new? New package? Wouldn't that have the same effect as deleting what I didn't change? Around step 3 and 4. That's where I'm having problems it seems.
This doesn't seem right. I think you are extracting far too much than you actually need to. You should just use the filter and put the Group # and Instance # (as dizzy provided in his other post I believe). In the resource window that lists all the resources in the object package, just click on BHAVs. Just extract that single BHAV. Then create a new package, and add that single BHAV.
Also... when we say delete all other BHAVs, we meant other complete BHAVs. We don't mean delete all the other lines inside the BHAV you are trying to edit. The semantics might be confusing. But I don't know how else to explain this.
When you click on a BHAV in the resource window, each BHAV consists of several lines. You can see these lines in the Plug-in View. You should edit the line that checks for whether a sim is a zombie or not. Theoretically you can do this in two ways:
1) Edit the line that checks for whether a sim is a zombie or not. It is probably called "Sim - Is a Zombie?" or whatever. Edit the true target to be the same as the false target. So... regardless of whether the sim is a zombie or not, it should do the same thing. Do this for all lines that test if a sim is a zombie.
2) Edit the line previous to the "Sim - Is a Zombie?" line. Change the target of the previous line that points to the "Sim - Is a Zombie" line to the false target of "Sim - Is a Zombie?" line.
This would be only slightly more complicated, but has the same effect. I would suggest the 1st option, since that would be simpler. If you sort the lines, then you can do the 2nd option, and hopefully the previous line will actually be the line just above it. When I say "previous" I mean the line that "points to" or has the "Sim - Is a Zombie?" line as one of it's targets, which could either be the true or false target. You would have to follow the red or green arrows to figure it out. If you click on a line, the arrows that point to it should light up. You can trace them back to the "previous" line(s). Sorting should make it less confusing, but not always. :P
Ste
kutto:
All I've kept in my new package is one BHAV: Process-Age. It has about 20 lines in it. I tried method one to begin with. It made it so no one aged at all. Then, I tried method two and its the one I tested most recently. It aged people normally and zombies didn't age at all. It's almost like it's not being read by the game. :(
syberspunk:
That is very strange...
Did you make sure to commit and save your changes? The file itself should be saved as a .package
Also... after placing your test hack into your downloads folder, I would run a hack conflict testing tool, just in case you may already have some hack that already overrides this particular BHAV.
I am looking at the AgeController globals... and the only two instances that I see which refer to Zombies relevant to aging are:
###
# Group = 0x7F07FBBC, Instance = 0x1054
# Title = Sub - Decrement Age Days Left
###
# Group = 0x7F07FBBC, Instance = 0x1055
# Title = Sub - Handle Aging Sims
So... I would guess that you would have to modify both of those BHAVs for zombies to be treated properly. I did not see any reference to zombies inside the "Process - Age BHAV. But then again... I'm looking at the Pets code. Older versions may handle this differently I suppose...
Ok wait... I'm looking at the OFB code:
Code:
###
# Group = 0x7F07FBBC, Instance = 0x1003
# Title = Process - Age
#
# Format = 8009, Params = 0, Locals = 1
# Tree type = 0, Header flag = 6, Tree version = 23 (35), Cache flags = 0
0: Global(Allow Aging) != 0; true: 11, false: true
1: My Attribute 0x0 != Global(Day of Month); true: 5, false: B
2: Stack Object := 0; true: 3, false: error
3: Set to Next: person; true: 6, false: B
4: stack obj's person data Age Days Left (0x5B) := -1 (0xFFFF); true: 14, false: error
5: My Attribute 0x0 := Global(Day of Month); true: 2, false: error
6: stack obj's person data Person Type (0x20) == Const 0x104(Person Types):0x0(0); true: 18, false: 3
7: Stack Object := 0; true: 8, false: error
8: Set to Next: person; true: 9, false: true
9: stack obj's person data Person Type (0x20) == Const 0x104(Person Types):0x0(0); true: 19, false: 8
A: .Sub - No Party?(Stack Object); true: 10, false: 8
B: My Attribute 0x1 != Global(Hour); true: C, false: true
C: My Attribute 0x1 := Global(Hour); true: 7, false: error
D: .Push - Age Transition(Stack Object); true: 8, false: 8
E: stack obj's motives Sleep state (0xB) == 0; true: D, false: 8
F: .Sub - Kill the Cake(Stack Object); true: E, false: error
10: .BirthdayCakeList - Remove(Stack Object, Me); true: F, false: error
11: Global(Hour) == Const 0x1000(Tuning):0xC(18 (0x12)); true: 1, false: B
12: Want Satisfy: GUID 0x0DF1C014 ($int days to Sim's Birthday) with person in Stack Object; true: 13, false: 13
13: Want Satisfy: GUID 0x8DFADE3E ($int days to Birthday) with value stack obj's person data Age Days Left (0x5B); true: 1A, false: 1A
14: Local 0 := stack obj's person data Age Days Left (0x5B); true: 15, false: error
15: Local 0 < 0; true: 16, false: 12
16: Local 0 := 0; true: 12, false: error
17: stack obj's person data Age Days Left (0x5B) -- and > -1 (0xFFFF); true: 14, false: 4
18: Zombie - Is Sim a Zombie?(Stack Object); true: 3, false: 1C
19: Zombie - Is Sim a Zombie?(Stack Object); true: 8, false: 1B
1A: .Sub - Age Days Left - Text Notification Barrage; true: 3, false: error
1B: Vampire - Is Sim a Vampire?(Stack Object); true: 8, false: 1E
1C: Vampire - Is Sim a Vampire?(Stack Object); true: 3, false: 1D
1D: Robot - Sim Is Servo?(Stack Object, 0); true: 3, false: 17
1E: Robot - Sim Is Servo?(Stack Object, 0); true: 8, false: A
Change:
Quote
18: Zombie - Is Sim a Zombie?(Stack Object); true: 3, false: 1C
19: Zombie - Is Sim a Zombie?(Stack Object); true: 8, false: 1B
to
Quote
18: Zombie - Is Sim a Zombie?(Stack Object); true: 1C, false: 1C
19: Zombie - Is Sim a Zombie?(Stack Object); true: 1B, false: 1B
Theoretically... that should work. But I can't guarantee it.
Assuming you have OFB. It looks like the NL code would be similar. If you only have Unii, that will be a slightly different story. You would still pretty much make the true and false targets the same for each line you change.
Turn debug mode on and see if you get any errors just in case. If this doesn't help... you may have to dig around further with the aging code, as perhaps some other BHAV may be responsible for daily aging. *shrugs*
Ste
Navigation
[0] Message Index
[#] Next page
[*] Previous page