Does it ever rain?
I have not seen any yet.
|
If the zone has a weather type of 1-3 it will eventually happen. You can also force it with a script.
|
The weather is on a random timer in the eqemu code, but the timer is coded in a way so the timer will never go off early after a zone starts, so unless your zone has been booted up for a while chances are you wont see weather effects. The code has been designed for zones that are booted up for hours. open up the source and search for the "weather_timer" and take a look and change it however you see fit. Reducing the timer to suit your server needs is the best way to go
|
Not really sure how to edit the server source or search for data so I may leave it as it is, although I'd prefer it to rain more often, or ever.
Does the timer reset every time I enter a zone? Or do I just need enough consecutive time there to trigger the rains? |
Scratch that. I installed everything I needed and am looking at the source in Visual C++
Found weather_timer entries in zone.cpp But there are many of them and it's not really clear what to do. Anyone able to help? Is it this one autoshutdown_timer.Start(AUTHENTICATION_TIMEOUT * 1000, false); Weather_Timer = new Timer((MakeRandomInt(1800, 7200) + 30) * 2000); Weather_Timer->Start(); LogFile->write(EQEMuLog::Debug, "The next weather check for zone: %s will be in %i seconds.", short_name, Weather_Timer->GetRemainingTime()/1000); weather_type = 0; zone_weather = 0; blocked_spells = NULL; totalBS = 0; aas = NULL; totalAAs = 0; gottime = false; What happens if I set all the numbers to 0? What I want to do is just disable the time a zone waits before the random weather rules kick in. Going to set the numbers in Weather_Timer = new Timer((MakeRandomInt(1800, 7200) + 30) * 2000); to all 1 and see what happens. |
Those are milliseconds, so anywhere from 3660 seconds to 14460 seconds, as it would put in the log when the zone starts up.
Those seem like some fairly arbitrary numbers, so making them smaller shouldn't cause you any issues. 1 will be instant pretty much assuming the random check passes. You'll also probably want to change the calculation just above Code:
Weather_Timer->Start(weatherTime); |
Changing everything to 0 just makes it flicker rapidly between rain, fog, and clear over and over. Not really sure I know what I'm doing. It looks like the server won't open a zone to random weather until it has been booted for 240 minutes. Does that reset every time I leave the zone or log out? Or does it keep a running track of how long a zone has been booted and after a few hours logged, opens it up?
And is there any way in the database to force random weather? |
Well, the values set when the zone is loaded determine when the first check is. The second set determine when the next check is. You'd need to find a balance for those that does what you're looking for. If you set them all to very low values then the changes will be frequent. The values are in milliseconds, so if you set them to something between 300000 and 600000 it would change every 5-10 minutes.
You can also change the weather from a script if that is easier. |
Is there a place I can read up on how to set up scripts? I have no idea what I'm doing.
|
heres a decent weather setup for a private server-
in zone.cpp line 818 should read: Code:
Weather_Timer = new Timer((MakeRandomInt(1, 2700000))); Code:
if(zone->zone_weather != zone->weather_type) I noticed however, on line 2018, Code:
if(zone_weather>0) |
EDIT:
in the beginning, change Quote:
to Quote:
this should start the random weather check immediately once the zone starts, (which is a 1 in 5 chance i think) |
Will test out and report back. Thanks.
|
Still no rain. I walked around the Rathe Mountains for about 45 mins using your numbers.
|
it works, ive tested it,
remember that the code i modified is to make the random checks more frequent, when the zone boots there is a 1 in 5 chance for immediate weather change, and then another 1 in 5 chance occurs within a random amount of time of up to 45 minutes. If that check fails or passes, there is another 1 in 5 chance after that in another random amount of time, and another after that and so on for as long as the zone is booted I'm still not sure if the intensity check is working 100%, so far it seems like it is but i have to test a little more to be sure |
Sounds like I just wasn't understanding how the code worked. I probably ran through the zone for a half hour or more, but if it takes at least 45 minutes to even get another 1 in 5 chance to change the weather, then I wasn't doing it long enough. Does that mean 2700000 is the upper limit for the random time interval? If that's miliseconds, I believe that would be 45 minutes.
I think I'm going to play with much much shorter intervals just to test it out. Also, I've seen on the boards, and am having some trouble compiling the whole source code. It runs into issues compiling queryseve, which I think compiles the chatserver exe. If I'm using all of the other files it compiles and getting the server up and running, that won't cause any issues, will it? |
All times are GMT -4. The time now is 07:33 AM. |
Powered by vBulletin®, Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.