Custom Rules Per-Zone
I think it would be nice to have the option to enable or disable the BestZ stuff on a per-zone basis. In most zones, the bestZ rules work really nicely, but in some cases (especially in zones with a lot of objects that haven't been added to the .map file), the BestZ rules can cause NPCs to fall through places that they shouldn't.
I don't know the best way to do this, though the easiest way would probably be to add another field to the zones table to enable or disable it per zone. Possibly a better alternate would be to make an option that would let zones load particular rule sets. This way, you could have any set of rules used for any zone you want. It would make for more flexibility and might open up some pretty cool possibilities. By doing that, I think you could probably set some interesting stuff like special level caps for zones by setting the maxlevel down (or even up) for the ruleset applied to that zone and so on.
This would probably not be too hard to code if it is possible, but it could definitely cause the rule_values table to get a bit overwhelming to manage. Maybe having a secondary table to use just for non-default sets would be good. Also, if possible, it would be nice if you could just have the option to use all default rules other than just certain ones you want to adjust in certain zones. So, maybe having a second table named zone_rule_values, where you could just set a few fields like zoneid (or zonename), rule_name, and rule_value. And, when a zone boots up, it loads the default rule set, and then loads any rules in the zone_rule_values table. I think by loading a rule a second time with a different value, it should overwrite the first time it was loaded from the default rule set. If not, maybe it could be coded to just replace that rule when it is loading all of them.
I just thought up the idea of being able to set custom rule sets per zone while writing this, but the more I think about it, the nicer it is sounding. Not sure on the best way to handle it though. I know that the default rule set gets loaded when the world is loaded, but each zone also loads the rule set as well when they boot. I figure that since you can do a #rules reload in a zone and it will be the only one that takes the rule changes, it should be possible to have different sets in each zone.
Last edited by trevius; 09-19-2009 at 09:08 AM..
|