Table of Contents

Set Weather (0x65)

Moongate Packet Classes

  • SetWeatherPacket (Outgoing, Fixed, length 4) from src/Moongate.Network.Packets/Outgoing/World/SetWeatherPacket.cs

Current Moongate Behavior

Moongate currently has packet classes for this opcode.

Packet Build

Type Field
BYTE[1] cmd
BYTE[1] type (See Notes)
BYTE[1] num (number of weather effects on screen)
BYTE[1] temperature

Subcommand Build

N/A

Notes

Types: 0x00 - "It starts to rain", 0x01 - "A fierce storm approaches.", 0x02 - "It begins to snow", 0x03 - "A storm is brewing.", 0xFF - None (turns off sound effects), 0xFE (no effect?? Set temperature?)

Maximum number of weather effects on screen is 70.

If it is raining, you can add snow by setting the num to the num of rain currently going, plus the number of snow you want.

Weather messages are only displayed when weather starts.

With Old clients the weather will end automatically after 6 minutes.

With New clients ( unsure when changed ) the weather will end automatically after 10 minutes.

To avoid the weather to end automatically you have to resend the weather packet during that time.

If you resend weather packet 1 time it will reset the 6 or 10 minute timer and start it over again.

If you resend the weather packet more than once it will reset the time and start a timer with doubled time no matter how many times you resend, it always just doubled the timer in my tests.

You can totally end weather (to display a new message) by teleporting. I think it's either the 0x78 or 0x20 messages that reset it, havent checked it though.