Check Tree (in)efficiency

(1/3) > >>

rufio:
I am having some problems with "Too Many Iterations" errors from wants check trees with my extented family hack - the hack is here, but if you don't feel like wading through simantics, I have attached a pseudocode summary of the four extended family BHAVs to this post.  The problem check tree is CT - Family Reunion, which runs through the neighborhood looking for 5 sims that are related to the want-roller.  Naturally, I have set it up to check for extended family relationships using the BHAVs detailed in the pseudocode.  Formerly, I was only having this problem when the want-roller was a certain dead sim who I suspect may be somewhat borked, so I put in a check to prevent the loop in CT - Family Reunion from starting when the want-roller was dead.  But now, I have two grandkids born to a pair of (alive, non-borky) family sims, and every time I reroll their wants it's "Too Many Iterations" and empty want slots.  One of these sims is a former townie with no parents, and thus most of the code blocks should have been skipped anyway. 

I don't think my algorithms are too involved; they don't call themselves, they don't call each other, and they don't call any BHAVs except the Verify - Neighbor ID BHAV and global 0x0337; everything else is primitives.  Am I wrong?  Is there a better way to do it?  Is global 0x0337 some kind of inefficient waste of space and I just had no idea?  I did try to call 0x0337 beforehand and simply pass the parent NIDS to the four functions, but that would mean I need 6 arguments, and SimPE doesn't seem to want to let me use more than 4.

Help?

Incidentally, I don't understand the first part of some of these error messages - something to do with Object Scripts and display cases?  I've attached an example.

tunaisafish:
The Script Errors are LUA errors.
I've posted the LUA source in Trogdor so you can search those function names an hopefully get a better idea of what is going on there.

As for passing more than 4 args;  You can store the arguments in Temps, and use the 'Pass Temps' button on the wizard.
This copies the necessary temp values into param for the called bhav (Temp0 -> Param 0, etc...)
So if that global bhav already uses more than 4, then you can supply them without having to edit it.

rufio:
Ah, thanks, I forgot about Temps.  Why is there a limit on four arguments, though?  Four arguments is only 8 operands, but in the editor you get 16.

J. M. Pescado:
Interesting, there is a horrible bug which occurs if a function seems to use more than 8 arguments. This is what causes the Apartment Door Bug, that more than 8 arguments will not pass successfully...and it seems this bug is shared, either by intent or accident, with SimPE. Weird.

rufio:
Tuna, I looked at your most recent thread in BoT, but it does not make much more sense to me than opening the Object Scripts/ObjectScripts.package in SimPE did, and I have no idea what display cases have to do with family relationships or the wants controller, especially since the only actual display cases in my game are in a community lot which I have placed but never used, including never having had any sims visit it.

Navigation

[0] Message Index

[#] Next page