The weather system of Sociopolitical Ramifications was originally developed by Neikrad for Brazilian Dreams (hence the name). This document describes how you can install and maintain a new weather zone. - unci Other weather sources: news weather-use - How to use the weather system for your own building news weather-example - A detailed MUF example of a room with weather news weather-details - Details about the involved MUF programs. If you wish to install the weather system on another MUCK, please contact Neikrad (firmiss@cae.wisc.edu) directly for MUF sources and full documentations. ========================================================================== === Brazilian Dreams MUCK Weather System [ Installer's Guide ] === === Written by Neikrad of Brazilian Dreams and FurryMUCK, changed for === === SPR by unci (taking out the initial steps and adding dbrefs) === ========================================================================== A weather zone consists of a large region which should be roughly in the same location geographically. Because this keeps coming up I'll say it again... ALL the weather in a specific weather zone is the same. There is also no way to 'link' up zones so weather from one zone will move to another... It might be kinda neat, but it just didn't seem like it would ever prove to be useful. Anyway. How to install a new weather zone ( six major steps ) : 1: Create two objects with any names you like (one will be a barometer object and the other a recorder object). (actually, you only need one, but create two anyway.. things will make more sense). On the object you're using as a 'recorder object' set.. _weather/bar: where is the dbref number of the barometer object. ( e.g. @set #1234=_weather/bar:1235 ) 2: Find a good parent room for the whole weather zone... Set that room with.. _weather/bar: _weather/rec: where and are the barometer and recorder object's dbref numbers (you can actually do this to multiple parent rooms but things will be easiest if you choose one parent room) Although not used by any program yet, it's a good idea to set the following on the recorder object _parent: where is the dbref number (or list of dbrefs) of the parent room you set _weather/bar and _weather/rec properties on. This will help you keep track of who's getting what weather. 3: Set up RECORDER object properties... (First the necessary ones) Use LSEDIT to create a list with the named '_local/temp-mon'. The list must be 12 items long and will consist of numbers. These will be the 'average' temperatures (in farenheit) for each month in the weather zone. The first item on the list corresponds to January.. the last December. Use LSEDIT to create a list with the name '_local/temp-day'. The list should be at least 12 items long and will consist of numbers who's average should be '0'. A randomly picked item from this list is added to the current month's _local/temp-mon value. A typical list would contain values such as... -12, -9, -7, -5, -3, -1, 0, 0, 1, 3, 5, 7, 9, 12 ( Note.. it is assumed LSEDIT will create a list in the following form... lsedit object=list list#:3 list#/1:<1st line> list#/2:<2nd line> list#/3:<3rd line> If LSEDIT does NOT create lists like this.. the weather code's @recstr_mo and @recstr_rnd routines would need to be modified. Any routines using @recstr_rnd might also need to be modified. ) This is the absolute MINIMUM amount of properties you need to set on a barometer object to make a weather zone.. here are some optional properties which can be useful for tailoring weather in a zone. _local/precip: Quantity of precip when it happens. _local/sky: Cloudiness/Likelyhood of precipitation. _local/wind: Windiness. _local/temp-var: Temperature variation during day. Reasonable values for the first three are from -40 to 40. The default value for the last one is 20 (don't set this below zero). Question: How does _local/temp-day differ from _local/temp-var? "_local/temp-day" primarily affects how the temperature changes form day to day while "_local/temp-var" affects how the temperature changes in a SINGLE day. You may want to set _local/temp-var to a high number like 40 in a desert where it can get hot during the day and the temperature drops significantly at night while setting _local/temp-var to 10 in a jungle where it remains a rather steady temperature all day and night. On average.. a day's high_temp - low_temp will equal _local/temp-var. WEATHER SEASONS Instead of setting a constant value for the above four optional '_local' weather properties use 'LSEDIT' to add any of them to make monthly weather variations. These lists must be 12 items long. e.g. You want a rainy season in a zone in APRIL and SEPTEMBER... use 'LSEDIT' to make a list named '_local/precip' and put low values in all twelve lines EXCEPT the 4th (APR) and 9th (SEP). MORE OPTIONAL PROPERTIES _local/timezone: This value is an 'offset' to the MUCK's system time in MINUTES. Setting this to 120 will make the zone's day begin 2 hours earlier than in zones without this property set. Note.. this only affects weather. This doesn't affect any other programs reading the time. _delaytime: Because the weather program triggers all weather zones to update almost simultaneously, you can use this _delaytime prop to dealy the weather zone's updating for a few minutes. Set this value to anywhere from 0 to 13. DON'T set it to more than 15 and DON'T set it to a negative number. Its best if the value is different than any other weather zone's on a MUCK. 4: Properties to set on the Barometer Object. All the properties on the barometer object are set by the weather programs EXCEPT _zone: Only the forecaster.muf program tries to read this. 5: 'forward list' on Recorder Object. The 'forward' list is a list of 'outdoor' rooms within a zone to announce significant weather changes to. Since this is the most computatinally intensive part of the program it is best if the outdoor room list were kept to the most popular outdoor rooms. You can set this list manually with: _forward: (e.g. _forward:334 546 667 678 690 1102 1300 1450) Since the _forward list is the most likely property to have to be changed from time to time as people build within a zone, I've made a 'zone-editor' program to adjust this _forward list easier. Or you could use the 'zone editor' program described briefly earlier. Link an action to zone-editor.muf (#12875) (I usually find it convenient to attach it to the recorder object but it doesn't matter where it is attached as long as you're in the appropriate weather zone.) Just type the name of the action to start it up. The zone editor is 'menu driven' so I won't explain all its features here. (As of this writing the zone editor isn't very complete.. I was hoping to add more features to it). Right now all it can do is: 'add' a dbref number to the _forward list 'delete' a dbref number from the _forward list 'list' the dbref numbers (and room names) on a _forward list. As a safety precaution... ONLY a wizard or the owner of the recorder object may use this program. 6: Tell unci the recorder object's dbref number, so that he can add it to the @reclist property on the weather-start.muf (#9009) program. Like the _forward list, the @reclist property is simply a list of dbref numbers separated by spaces. IMPORTANT... _forward's and @reclist's dbref numbers should be separated by only a SINGLE space. You've done it. You've just added a new weather zone to the MUCK.