On 4/24/98 3:13 AM, Patrick J. Dughi (dughi@IMAXX.NET) stated: > Of course, this wouldn't have much to do with a world-wide climate >would it? You could still have winter next to desert. Sigh. It would be >nice if there was some way to do that.. Well there is... have an "inheriting effect". To do this you would need to add to the zone file a list of zones it is "adjacent to" (inheriting from) for weather. This is where Pressure coms in handy - the MUD has to try to keep pressure balanced, so when a zone's pressure increases, it has to decrease at nearby zones, etc. Thus, zone 1 could have: inherit from zone 2: 20% of pressure change inherit from zone 3: 10% of humid change Zone 2: inherit from zone 1: 20% of pressure change inherit from zone 3: 1% of humid change Zone 3: inherit from zone 1: 20% of humid change // Who says they have to be equal? inherit from zone 2: 5% of pressure change // Or of the same category! Of course limits would be in effect too... and special "events" (perhaps imm-triggered, or not) could change an entire zone's stats, which would start to "disperse" out across the zones, such as: You would not want to start applying changes immediately, either: run through the list of zones, calculate all the changes and building linked lists of changes for each zone, then run through and apply all the buffered changes. Day zero: Zone 1 = 0 pressure, 0 humid Zone 2 = 5 pressure, 0 humid Zone 3 = -5 pressure, 30 humid Day one: (additions first) Zone 1 = 0 pressure += .2*5 (from zone 2) = +1 Zone 1 = 0 humid += .1*30 (from zone 3) = +3 Zone 2 = 20 pressure += .2*0 (from zone 1) = +0 Zone 2 = 0 humid += .01*30 (from zone 3) = +.3 Zone 3 = -5 pressure += .05*5 (from zone 2) = +.25 Zone 3 = 30 humid += .2*0 (from zone 1) = +0 (now subtractions - these built at same time as additions, since its just the inverse of the addition data) Zone 1 = 0 pressure -= .2*0 (to zone 2) = -0 Zone 1 = 0 humid -= .2*0 (to zone 3) = -0 Zone 2 = 20 pressure -= .2*5 (to zone 1) = -1 Zone 2 = 20 pressure -= .05*5 (to zone 3) = -.25 Zone 3 = 30 humid -= .1*30 (to zone 3) = -3 Zone 3 = 30 humid -= .01*30 (to zone 2) = -.3 Totalled: Zone 1, pressure = 0 + 1 = 1 Zone 1, humid = 0 + 3 = 3 Zone 2, pressure = 20 - 1 - .25 = 18.25 Zone 2, humid = 0 Zone 3, pressure = -5 + .25 = -4.75 Zone 3, humid = 30 - 3 - .3 = 26.7 (BTW using floats is good here, and you can round off later, but you want something with a greater precision than 1, like a precision of .1 - allowing you 3 digits to play with, rather than 2, and keeping it in a percentile format - or better, use a signed float, and keep it between -50.0 and 50.0, with 0.00 being avg!). Add events in to change things dramatically - say, a volcano eruption, which would cause a major increase in humidity, pressure, temperature, and dust/cloudiness, which would easily spread across several zones. Or if its just an active vent, constantly putting out minor changes. You can also apply weather effects, such as wind: lower pressure zones will have wind moving in (bringing nearby humidity), and higher pressure zones will have wind moving out (carrying away humidity). If one wanted, one could do this on an hourly or continuous effect! If you start out with some good default values, or randomized (best), or you start with NULL and cause several "random events" (rainstorm, etc), you could end up with good effects. Of course, over time things would start to "settle down" - of course, thats the way it is in the real world - or would be, if there was no change. Natural events, and gravity and changing sunlight affect the entire world. So, perhaps use a "nighttime cooling" effect, if you run the weather system by hour. When it is cool out, pressure drops (or was it the other way around - the standard physics laws of hot/cold can't quite apply, so it might be reversed). Apply monthly effects to certain zones, maybe even monthly changes to minimum/maximum. If you wanted to simulate a "warming pattern" occuring in certain zones, have the global minimum/maximum increase by X, and decrease by X-.1 or so over the course of a year. In time, the zone would have an extremely high min and max temperature! - Chris Jacobson +------------------------------------------------------------+ | Ensure that you have read the CircleMUD Mailing List FAQ: | | http://democracy.queensu.ca/~fletcher/Circle/list-faq.html | +------------------------------------------------------------+
This archive was generated by hypermail 2b30 : 12/15/00 PST