コード例 #1
0
        public void SendWeatherUpdateToPlayer(Player player)
        {
            WeatherPkt weather = new WeatherPkt(GetWeatherState(), m_grade);

            player.SendPacket(weather);
        }
コード例 #2
0
        public bool UpdateWeather()
        {
            Player player = Global.WorldMgr.FindPlayerInZone(m_zone);

            if (player == null)
            {
                return(false);
            }

            // Send the weather packet to all players in this zone
            if (m_grade >= 1)
            {
                m_grade = 0.9999f;
            }
            else if (m_grade < 0)
            {
                m_grade = 0.0001f;
            }

            WeatherState state = GetWeatherState();

            WeatherPkt weather = new WeatherPkt(state, m_grade);

            //- Returns false if there were no players found to update
            if (!Global.WorldMgr.SendZoneMessage(m_zone, weather))
            {
                return(false);
            }

            // Log the event
            string wthstr;

            switch (state)
            {
            case WeatherState.Fog:
                wthstr = "fog";
                break;

            case WeatherState.LightRain:
                wthstr = "light rain";
                break;

            case WeatherState.MediumRain:
                wthstr = "medium rain";
                break;

            case WeatherState.HeavyRain:
                wthstr = "heavy rain";
                break;

            case WeatherState.LightSnow:
                wthstr = "light snow";
                break;

            case WeatherState.MediumSnow:
                wthstr = "medium snow";
                break;

            case WeatherState.HeavySnow:
                wthstr = "heavy snow";
                break;

            case WeatherState.LightSandstorm:
                wthstr = "light sandstorm";
                break;

            case WeatherState.MediumSandstorm:
                wthstr = "medium sandstorm";
                break;

            case WeatherState.HeavySandstorm:
                wthstr = "heavy sandstorm";
                break;

            case WeatherState.Thunders:
                wthstr = "thunders";
                break;

            case WeatherState.BlackRain:
                wthstr = "blackrain";
                break;

            case WeatherState.Fine:
            default:
                wthstr = "fine";
                break;
            }
            Log.outInfo(LogFilter.Server, "Change the weather of zone {0} to {1}.", m_zone, wthstr);

            Global.ScriptMgr.OnWeatherChange(this, state, m_grade);
            return(true);
        }
コード例 #3
0
        public void SendFineWeatherUpdateToPlayer(Player player)
        {
            WeatherPkt weather = new WeatherPkt(WeatherState.Fine);

            player.SendPacket(weather);
        }