You have alot of issues with that script, Im surprised it even runs(will have nothing to do with dynamic zones though).
Not sure why you use quotes in this function...
Code:
quest::rain("int(rand(80))"+1);
Reversed order of the rand/int operators
Code:
quest::rain("rand(int(80))"+1); }
I would do it like this(not saying this works but its cleaner at least):
Code:
sub EVENT_SPAWN {
quest::settimer("wc", 1);
}
sub EVENT_TIMER {
if ($timer eq "wc") {
quest::stoptimer("wc");
my $weather = int(rand(7));
my $rain = 1;
my $snow = 2;
my $weatherIntensity = int(rand(80)) + 1;
my $weatherTimer = int(rand(3000)) + 100;
if ($weather == $rain){
quest::snow(0);
quest::rain($weatherIntensity);
}
elsif ($weather == $snow) {
quest::rain(0);
quest::snow($weatherIntensity);
}
else {
quest::snow(0);
quest::rain(0);
}
quest::settimer("wc", $weatherTimer);
}
}