Ejemplo n.º 1
0
        public ZoneIn(Player player, Zone zone, ushort sync)
        {
            id   = 0x00A;
            size = 0x82;

            // Player Info
            data.Set <uint>(0x04, player.PlayerId);
            data.Set <uint>(0x08, player.BaseInfo.TargetId);
            data.Set <byte[]>(0x0B, Utility.Serialize(player.MoveInfo));
            data.Set <byte[]>(0x1E, Utility.Serialize(player.DisplayInfo));
            data.Set <uint>(0x20, player.NameFlags.flags);
            byte dbyte = data.GetByte(0x21);
            byte val21 = (byte)(dbyte | (byte)(player.Gender * 128 + (1 << player.Look.Size)));

            data.Set <byte>(0x21, val21);

            // Zone Animation Info
            data.Set <byte>(0x27, zone.AnimationInfo.direction); // TODO: apparently this is actually a uint written at 0x24, but for now...
            data.Set <byte>(0x28, 0x01);
            data.Set <byte>(0x2A, zone.AnimationInfo.animation);

            // Zone Info
            data.Set <ushort>(0x30, zone.ZoneId);

            data.Set <uint>(0x38, Utility.Timestamp());
            data.Set <uint>(0x3C, VanaTime.GetInstance().VanaDate);


            Complete();
        }
Ejemplo n.º 2
0
        private void MoonPhaseForm_Load(object sender, EventArgs e)
        {
            this.Icon = Icon.FromHandle(Resources.IMAGE_MOON02.GetHicon());
            var v1 = new VanaTime()
            {
                Year   = api.VanaTime.CurrentYear,
                Month  = api.VanaTime.CurrentMonth,
                Day    = api.VanaTime.CurrentDay,
                Hour   = api.VanaTime.CurrentHour,
                Minute = api.VanaTime.CurrentMinute,
                Second = api.VanaTime.CurrentSecond,
            };

            MoonPhase lastMoonPhase = EliteAPIControl.GetMoonPhaseFromVanaTime(v1);

            for (int i = 0; i <= 4; i++)
            {
                gridMoonPhase.Columns[i].HeaderCell.Style.Alignment = DataGridViewContentAlignment.MiddleCenter;
                gridMoonPhase.Columns[i].HeaderCell.Style.Font      = new Font(gridMoonPhase.Font, gridMoonPhase.Font.Style | FontStyle.Bold);
            }
            MoonPhase last = EliteAPIControl.GetMoonPhaseFromVanaTime(v1);

            for (int i = 0; i < 360; i++)
            {
                var       v2 = EliteAPIControl.addVanaDay(v1, i);
                MoonPhase m  = EliteAPIControl.GetMoonPhaseFromVanaTime(v2);
                if (last != m)
                {
                    gridMoonPhase.Rows.Add();
                    gridMoonPhase.Rows[gridMoonPhase.Rows.Count - 1].Cells[0].Value = EliteAPIControl.GetEarthTimeFromVanaTime(v2).ToString("yyyy/MM/dd HH:mm");
                    gridMoonPhase.Rows[gridMoonPhase.Rows.Count - 1].Cells[1].Value = string.Format("{0:0000}/{1:00}/{2:00}", v2.Year, v2.Month, v2.Day);
                    gridMoonPhase.Rows[gridMoonPhase.Rows.Count - 1].Cells[2].Value = MainForm.dicWeekDayImage[EliteAPIControl.GetWeekdayFromVanaTime(v2)];
                    gridMoonPhase.Rows[gridMoonPhase.Rows.Count - 1].Cells[3].Value = MainForm.dicMoonPhaseImage[m];
                    gridMoonPhase.Rows[gridMoonPhase.Rows.Count - 1].Cells[4].Value = MainForm.dicMoonPhaseName[m];
                    //行の色変更
                    gridMoonPhase.Rows[gridMoonPhase.Rows.Count - 1].DefaultCellStyle.ForeColor          = Color.Black;
                    gridMoonPhase.Rows[gridMoonPhase.Rows.Count - 1].DefaultCellStyle.SelectionForeColor = Color.Black;
                    if (m == MoonPhase.New || m == MoonPhase.Full)
                    {
                        gridMoonPhase.Rows[gridMoonPhase.Rows.Count - 1].DefaultCellStyle.BackColor          = Color.FromArgb(0x80, 0xFF, 0xFF);
                        gridMoonPhase.Rows[gridMoonPhase.Rows.Count - 1].DefaultCellStyle.SelectionBackColor = Color.FromArgb(0x80, 0xFF, 0xFF);
                    }
                    else if (m == MoonPhase.FirstQuarter || m == MoonPhase.LastQuarter)
                    {
                        gridMoonPhase.Rows[gridMoonPhase.Rows.Count - 1].DefaultCellStyle.BackColor          = Color.LightGray;
                        gridMoonPhase.Rows[gridMoonPhase.Rows.Count - 1].DefaultCellStyle.SelectionBackColor = Color.LightGray;
                    }
                    else
                    {
                        gridMoonPhase.Rows[gridMoonPhase.Rows.Count - 1].DefaultCellStyle.BackColor          = Color.White;
                        gridMoonPhase.Rows[gridMoonPhase.Rows.Count - 1].DefaultCellStyle.SelectionBackColor = Color.White;
                    }
                }
                last = m;
            }
        }
Ejemplo n.º 3
0
        static void Main(string[] args)
        {
            string packetData = "1510C5122B8697C36C76FCBFA69BFC4300000300EC005201873F7B7800000000";

            byte[] packetBytes = Utility.StringToByteArray(packetData);
            Player testPlayer  = new Player();
            bool   success     = ClientUpdate.Instance.Handler(testPlayer, packetBytes);

            VanaTime.TYPE t      = VanaTime.GetInstance().Sync();
            uint          d      = VanaTime.GetInstance().VanaDate;
            uint          month  = VanaTime.GetInstance().Month;
            uint          day    = VanaTime.GetInstance().Day;
            uint          year   = VanaTime.GetInstance().Year;
            uint          hour   = VanaTime.GetInstance().Hour;
            uint          minute = VanaTime.GetInstance().Minute;

            Logger.SetLoggingLevel(LOGGINGLEVEL.ALL);

            //ConfigHandler.ReadConfigs();

            SessionHandler.Initialize();
            Logger.Info("Session Handler Initialized");

            //// TODO: change how configurations are loaded

            AuthServer.Initialize("127.0.0.1", 54231);
            Logger.Info("Auth Server Initialized");
            ViewServer.Initialize("127.0.0.1", 54001);
            Logger.Info("View Server Initialized");
            DataServer.Initialize("127.0.0.1", 54230);
            Logger.Info("Data Server Initialized");

            //ActiveSession ass = new ActiveSession()
            //{
            //    AccountID = 1234,
            //    PlayerID = 4321,
            //    EndPoint = "127.0.0.1:50301",
            //    CurrentZoneID = 245,
            //    NextZoneID = 245,
            //    Zoning = 0,
            //    SessionHash = "000000000000000000000000000000005CE05DAD"
            //};

            //DBClient.InsertOne(DBREQUESTTYPE.ACTIVESESSION, ass);

            //DBClient.UpdateOne<ActiveSession>(DBREQUESTTYPE.ACTIVESESSION, a => a.AccountID == 1234, new Dictionary<string, object> { { "CurrentZoneID", 206} });

            //DBClient.DeleteOne<ActiveSession>(DBREQUESTTYPE.ACTIVESESSION, a => a.AccountID == 1234);

            //long updated = DBClient.UpdateOne<Account>(DBREQUESTTYPE.ACCOUNT,a => a.AccountId == 1001,new Dictionary<string, object>() { {"PlayerVars.Test", 5 } } );
            //Console.WriteLine(updated);
        }
Ejemplo n.º 4
0
            } // @ public byte GetAbilityID(byte index)

            /// <summary>
            /// Gets the current Vana'Diel time information
            /// </summary>
            public VanaTime GetVanaTime()
            {
                // get the server time (in seconds)
                long baseTime = (long)GetVanaUTC(_InstanceID);

                // calculate the difference between server time and
                // 1/1/1970 00:00:00 unix time -> "Vana'Diel time in seconds"
                long timeInSeconds = ((long)baseTime + 92514960) * 25;

                // how many days
                decimal dayOfYear = Math.Floor((decimal)(timeInSeconds / (decimal)86400));

                VanaTime vanaTime = new VanaTime();

                vanaTime.DayType = (Weekday)(dayOfYear % 8);
                vanaTime.Day     = (byte)((dayOfYear % 30) + 1);
                vanaTime.Month   = (byte)(((dayOfYear % 360) / 30) + 1);
                vanaTime.Year    = (short)(dayOfYear / 360);
                vanaTime.Hour    = (byte)((timeInSeconds / 3600) % 24);
                vanaTime.Minute  = (byte)((timeInSeconds / 60) % 60);
                // can't floor on a long, so need to shrink it first
                vanaTime.Second = (byte)((timeInSeconds - (System.Math.Floor((decimal)(timeInSeconds / 60)) * 60)));

                // calculate moon phase/percent
                decimal moonPhase = (dayOfYear + (decimal)26) % 84;

                // calculate moon percent
                decimal moonPercent = (((42 - moonPhase) * 100) / 42);

                if (0 > moonPercent)
                {
                    moonPercent = Math.Abs(moonPercent);
                }

                // get final moon percent
                vanaTime.MoonPercent = (byte)Math.Floor((moonPercent + (decimal)0.5));

                // get final moon phase
                if (38 <= moonPhase)
                {
                    vanaTime.MoonPhase = (MoonPhase)Math.Floor((moonPhase - (decimal)38) / (decimal)7);
                }
                else
                {
                    vanaTime.MoonPhase = (MoonPhase)Math.Floor((moonPhase + (decimal)46) / (decimal)7);
                }

                return(vanaTime);
            } // @ public VanaTime GetVanaTime()
Ejemplo n.º 5
0
            } // @ public byte GetAbilityID(byte index)

            /// <summary>
            /// Gets the current Vana'Diel time information
            /// </summary>
            public VanaTime GetVanaTime ()
            {
                // get the server time (in seconds)
                long baseTime = (long)GetVanaUTC(_InstanceID);

                // calculate the difference between server time and 
                // 1/1/1970 00:00:00 unix time -> "Vana'Diel time in seconds"
                long timeInSeconds = ( (long)baseTime + 92514960 ) * 25;

                // how many days
                decimal dayOfYear = Math.Floor((decimal)( timeInSeconds / (decimal)86400 ));

                VanaTime vanaTime = new VanaTime();
                vanaTime.DayType = (Weekday)( dayOfYear % 8 );
                vanaTime.Day = (byte)( ( dayOfYear % 30 ) + 1 );
                vanaTime.Month = (byte)( ( ( dayOfYear % 360 ) / 30 ) + 1 );
                vanaTime.Year = (short)( dayOfYear / 360 );
                vanaTime.Hour = (byte)( ( timeInSeconds / 3600 ) % 24 );
                vanaTime.Minute = (byte)( ( timeInSeconds / 60 ) % 60 );
                // can't floor on a long, so need to shrink it first
                vanaTime.Second = (byte)( ( timeInSeconds - ( System.Math.Floor((decimal)( timeInSeconds / 60 )) * 60 ) ) );

                // calculate moon phase/percent
                decimal moonPhase = ( dayOfYear + (decimal)26 ) % 84;

                // calculate moon percent
                decimal moonPercent = ( ( ( 42 - moonPhase ) * 100 ) / 42 );
                if (0 > moonPercent)
                    moonPercent = Math.Abs(moonPercent);

                // get final moon percent
                vanaTime.MoonPercent = (byte)Math.Floor(( moonPercent + (decimal)0.5 ));

                // get final moon phase
                if (38 <= moonPhase)
                    vanaTime.MoonPhase = (MoonPhase)Math.Floor(( moonPhase - (decimal)38 ) / (decimal)7);
                else
                    vanaTime.MoonPhase = (MoonPhase)Math.Floor(( moonPhase + (decimal)46 ) / (decimal)7);

                return vanaTime;

            } // @ public VanaTime GetVanaTime()