示例#1
0
 private void btZoomOut_Click(object sender, RoutedEventArgs e)
 {
     RadarViewOrder.ZoomOut();
     if (callbackSaveSetting != null)
     {
         callbackSaveSetting();
     }
 }
示例#2
0
        override protected bool AnalyzeProc03(string logLine)
        {
            mobName.Length = 0;
            mobName.Append(logLine.Substring(hitIndex + "03:Added new combatant ".Length));

            foreach (string zoneList in RadardataInstance.radarData.ZoneList())
            {
                if (zoneList == RadardataInstance.Zone)
                {
                    RadardataInstance.radarData.getMobList(zoneList);
                    ZoneMobData rm = RadardataInstance.radarData.getMobList(zoneList);
                    if (rm != null)
                    {
                        foreach (string mob in rm.s)
                        {
                            if (mobName.ToString().IndexOf(mob) > -1)
                            {
                                RadarViewOrder.AddHitMobfromLog(new RadarViewOrder.HitMobdata(mob, "s"));
                                RadarViewOrder.LuckUpS = true;
                                return(false);
                            }
                        }
                        foreach (string mob in rm.a)
                        {
                            if (mobName.ToString().IndexOf(mob) > -1)
                            {
                                RadarViewOrder.AddHitMobfromLog(new RadarViewOrder.HitMobdata(mob, "a"));
                                return(false);
                            }
                        }
                        foreach (string mob in rm.b)
                        {
                            if (mobName.ToString().IndexOf(mob) > -1)
                            {
                                RadarViewOrder.AddHitMobfromLog(new RadarViewOrder.HitMobdata(mob, "b"));
                                return(false);
                            }
                        }
                        foreach (string mob in rm.etc)
                        {
                            if (mobName.ToString().IndexOf(mob) > -1)
                            {
                                RadarViewOrder.AddHitMobfromLog(new RadarViewOrder.HitMobdata(mob, "e"));
                                return(false);
                            }
                        }
                    }
                }
            }
            return(false);
        }
示例#3
0
        private void DrawingArea(DrawingContext dc, Rect rect, int r1Value, int r2Value, Pen pen, Color color)
        {
            Rect area;

            if (r1Value > 0)
            {
                area = RadarViewOrder.AreaRect(r1Value);
                dc.DrawEllipse(null, pen, new Point(rect.Left, rect.Top + 2), (double)area.X / 2, (double)area.Y / 2);
            }
            if (r2Value > 0)
            {
                area = RadarViewOrder.AreaRect(r2Value);
                SolidColorBrush mySolidColorBrush = new SolidColorBrush();
                mySolidColorBrush.Color = color;
                dc.DrawEllipse(mySolidColorBrush, null, new Point(rect.Left, rect.Top + 2), (double)area.X / 2, (double)area.Y / 2);
            }
        }
示例#4
0
        private void namePlate(List <Combatant> searchObjects, DrawingContext dc)
        {
            foreach (Combatant mob in searchObjects)
            {
                bool flag      = isFlag(mob.ID);
                int  hpPar     = (mob.CurrentHP * 100 / mob.MaxHP);
                bool shortName = true;
                if (model.SelectChecked)
                {
                    shortName = false;
                }
                else if (!RadardataInstance.viewOptionData.IsShortNameView(RadarViewOrder.radarZoomSelect))
                {
                    shortName = false;
                }

                Rect rect = RadarViewOrder.MobRect(RadarViewOrder.myData.PosX, RadarViewOrder.myData.PosY, mob.PosX, mob.PosY);
                if (mob.ID != RadarViewOrder.myData.ID)
                {
                    if (rect.X < 20)
                    {
                        continue;
                    }
                    if (rect.Y < 20)
                    {
                        continue;
                    }
                    if (rect.X > img.Width - (40 + (RadarViewOrder.FontSize * 5)))
                    {
                        continue;
                    }
                    if (rect.Y > img.Height)
                    {
                        continue;
                    }

                    if (model.IdModeCheckrd && mob.type == 1)
                    {
                        dc.DrawEllipse(getBrush(hpPar, true), null, new Point(rect.Left, rect.Top), (double)rect.Width, (double)rect.Height);
                    }
                    else
                    {
                        if (model.IdModeCheckrd && mob.Name == "トラップ")
                        {
                            if (mob.CurrentHP > 0)
                            {
                                dc.DrawRectangle(Brushes.Yellow, null, rect);
                            }
                            else
                            {
                                dc.DrawRectangle(Brushes.Brown, null, rect);
                            }
                            this.TextOut(dc, mob.type.ToString(), Brushes.LightGray, rect.X - 4, rect.Y + RadarViewOrder.fontTop, flag, false);
                        }
                        else
                        {
                            dc.DrawEllipse(getBrush(hpPar, flag), null, new Point(rect.Left, rect.Top), (double)rect.Width, (double)rect.Height);
                        }
                    }
                }

                if (RadardataInstance.viewOptionData.IsNameView(RadarViewOrder.radarZoomSelect))
                {
                    if (model.IdModeCheckrd)
                    {
                        if (mob.type != 1)
                        {
                            this.TextOut(dc, mob.Name, Brushes.LightGray, rect.X - 4, rect.Y + RadarViewOrder.fontTop, flag, shortName);
                        }
                    }
                    else
                    {
                        this.TextOut(dc, mob.Name, Brushes.LightGray, rect.X - 4, rect.Y + RadarViewOrder.fontTop, flag, shortName);
                    }
                }
                float vX = 0;
                float vY = 0;

                if (mob.PosX < 0)
                {
                    vX = 22 - 22 * ((mob.PosX * -1) / 1100);
                }
                else
                {
                    vX = 22 + 22 * ((mob.PosX) / 1100);
                }
                if (mob.PosY < 0)
                {
                    vY = 22 - 22 * ((mob.PosY * -1) / 1100);
                }
                else
                {
                    vY = 22 + 22 * ((mob.PosY) / 1100);
                }


                if (RadardataInstance.viewOptionData.IsPositionView(RadarViewOrder.radarZoomSelect))
                {
                    dc.DrawText(new FormattedText(((int)(vX)).ToString() + "," + ((int)(vY)).ToString(),
                                                  System.Globalization.CultureInfo.CurrentUICulture,
                                                  FlowDirection.LeftToRight, new Typeface("Verdana"),
                                                  RadarViewOrder.FontSize + 2, Brushes.Red), new Point(rect.X - 4, rect.Y + 4));
                }


                if (model.IdModeCheckrd)
                {
                    if (model.ViewAreaCheckrd && RadarViewOrder.myData.ID != mob.ID)
                    {
                        switch (mob.Job)
                        {
                        case 24:
                        case 28:
                        case 33: DrawingArea(dc, rect, 30, 15, areaPen, Color.FromArgb(100, 40, 148, 80)); break;   //ケアル、メディカラ
                        }
                    }
                    continue;
                }

                if (RadardataInstance.viewOptionData.IsJobView(RadarViewOrder.radarZoomSelect))
                {
                    jobTextLayout job = GetJobTextLayout(mob.Job, rect, mob.IsCasting);
                    // JOBテキスト

                    //HP表示と重なるときは、Job表示をずらす
                    int plusX = 2;
                    if (RadardataInstance.viewOptionData.IsHpView(RadarViewOrder.radarZoomSelect))
                    {
                        plusX = -28;
                    }

                    dc.DrawText(new FormattedText(job.job,
                                                  System.Globalization.CultureInfo.CurrentUICulture,
                                                  FlowDirection.LeftToRight, new Typeface("Verdana"),
                                                  RadarViewOrder.FontSize, job.brush), new Point(job.left + plusX, rect.Y - 4));
                }
                if (RadardataInstance.viewOptionData.IsHpView(RadarViewOrder.radarZoomSelect))
                {
                    dc.DrawText(new FormattedText(mob.MaxHP.ToString(),
                                                  System.Globalization.CultureInfo.CurrentUICulture,
                                                  FlowDirection.LeftToRight, new Typeface("Verdana"),
                                                  RadarViewOrder.FontSize, Brushes.Aqua), new Point(rect.X + 4, rect.Y - 4));
                }
            }
        }
示例#5
0
        private void DrowMyCharacter(Combatant myData, DrawingContext dc)
        {
            Rect rect = RadarViewOrder.PlayerRect();//


            Point areaPos = RadarViewOrder.AreaPos();

            if (model.IdModeCheckrd)
            {
                myIcon.Height = 0;
                myIcon.Width  = 0;
                dc.DrawLine(myAreaPen, new Point(rect.X, rect.Y - 3 + 2), new Point(rect.X, rect.Y + 3 + 2));
                dc.DrawLine(myAreaPen, new Point(rect.X - 3, rect.Y + 2), new Point(rect.X + 3, rect.Y + 2));
            }
            else
            {
                dc.DrawEllipse(Brushes.Black, null, new Point(rect.Left + 2.5, rect.Top + 2.5), (double)rect.Width, (double)rect.Height);

                if (RadardataInstance.viewOptionData.IsLinkView(RadarViewOrder.radarZoomSelect))
                {
                    dc.DrawEllipse(null, circlePen, new Point(rect.Left, rect.Top + 2), (double)areaPos.X / 2, (double)areaPos.Y / 2);
                }
                else
                {
                    dc.DrawEllipse(null, circleOffPen, new Point(rect.Left, rect.Top + 2), (double)areaPos.X / 2, (double)areaPos.Y / 2);
                }
                float sf = (180f * (float)RadarViewOrder.myRadian) / (float)3.1415;


                myIcon.Height = 8;
                myIcon.Width  = 8;

                RotateTransform rt = new RotateTransform(sf + 90);
                myIcon.LayoutTransform = rt;
            }
            if (model.ViewAreaCheckrd)
            {
                switch (myData.Job)
                {
                case 19:                                                                                //knight
                case 32:                                                                                //暗黒
                    DrawingArea(dc, rect, 15, 5, myAreaPen, Color.FromArgb(100, 106, 48, 80)); break;   //Flash

                case 21:                                                                                //戦士
                    DrawingArea(dc, rect, 15, 0, myAreaPen, Color.FromArgb(100, 106, 48, 80)); break;   //Flash

                case 23:                                                                                //詩人
                    DrawingArea(dc, rect, 25, 20, myAreaPen, Color.FromArgb(100, 106, 148, 80)); break; //Flash

                case 31:                                                                                //機工
                    DrawingArea(dc, rect, 25, 0, myAreaPen, Color.FromArgb(100, 106, 48, 80)); break;   //Flash

                case 25:                                                                                //黒
                case 27:                                                                                //召喚
                    DrawingArea(dc, rect, 25, 0, myAreaPen, Color.FromArgb(100, 106, 48, 80)); break;   //30

                case 24:                                                                                //白
                case 28:                                                                                //学
                case 33:                                                                                //占
                                                                                                        //ケアル、メディカラ
                    DrawingArea(dc, rect, 30, 15, areaPen, Color.FromArgb(100, 40, 148, 80)); break;    //30 15
                }
            }
        }
示例#6
0
        private void Render()
        {
            using (var dc = dg.Open())
            {
                dc.DrawRectangle(null, new Pen(windowRectBrush, 1), new Rect(0, 0, img.Width - 1, img.Height - 1));

                if (ActData.AllCharactor == null)
                {
                    return;
                }
                if (ActData.AllCharactor.Count == 0)
                {
                    return;
                }
                if (!isOpen)
                {
                    return;
                }

                if (RadarViewOrder.LuckUpS)
                {
                }
                RadarViewOrder.SetBasePosition((int)this.Left, (int)this.Top, (int)img.Width - 1, (int)img.Height - 1);
                RadarViewOrder.myData = ActData.AllCharactor[0];

                //Zoom
                dc.DrawText(new FormattedText((RadarViewOrder.RadarZoom).ToString(), System.Globalization.CultureInfo.CurrentUICulture,
                                              FlowDirection.LeftToRight, new Typeface("Verdana"), 7, Brushes.LightGray), new Point(136, 10));

                lock (ActData.AllCharactor)
                {
                    List <Combatant> searchObjects = new List <Combatant>();
                    if (model.SelectChecked)
                    {
                        foreach (Combatant mob in ActData.AllCharactor)
                        {
                            if (RadardataInstance.radarData.Search(RadardataInstance.Zone, mob.Name) > 0)
                            {
                                searchObjects.Add(mob);
                            }
                        }
                    }
                    else
                    {
                        SelectAll(ref searchObjects);
                    }

                    if (searchObjects.Count > 0)
                    {
                        if (this.Height == CLOSE_WINDOW_SET_HEIGHT)
                        {
                            FirstOpenWindowAnimetion();
                        }

                        if (OpenWindowAnimetion(dc, RadarViewOrder.keepWindowHeight))
                        {
                            //場所
                            if (RadardataInstance.Zone != "")
                            {
                                dc.DrawText(new FormattedText(RadardataInstance.Zone,
                                                              System.Globalization.CultureInfo.CurrentUICulture,
                                                              FlowDirection.LeftToRight, new Typeface("Times New Roman"),
                                                              14, Brushes.White), new Point(2, 22));
                            }
                            if (RadarViewOrder.windowsStatus == false)
                            {
                                RadarViewOrder.windowsStatus = true;
                            }
                            namePlate(searchObjects, dc);
                        }
                    }
                    else
                    {
                        this.Height = CLOSE_WINDOW_SET_HEIGHT;
                        //this.Opacity = HIDE_OPACITY;
                        RadarViewOrder.windowsStatus = false;
                        keepWidth  = model.WindowWidth;
                        keepHeight = model.WindowHeight;
                    }

                    if (RadarViewOrder.windowsStatus)
                    {
                        DrowMyCharacter(searchObjects[0], dc);
                    }
                }
            }
        }
示例#7
0
        private void OnTimedEvent(Object source, ElapsedEventArgs e)
        {
            if (RadarViewOrder.hitMobdatasFromLog != null)
            {
                if (RadarViewOrder.hitMobdatasFromLog.Count > 0)
                {
                    RadarViewOrder.HitMobdata mob = RadarViewOrder.hitMobdatasFromLog[RadarViewOrder.hitMobdatasFromLog.Count - 1];
                    mob.RemoveAt(RadarViewOrder.hitMobdatasFromLog.Count - 1);
                    lbMessage.Text = mob.rank.ToUpper() + ":" + mob.mobName;
                    viewCount      = 3;
                    if (RadarViewOrder.SoundEnable)
                    {
                        if (mob.rank == "s" && viewCount == 3)
                        {
                            RadarViewOrder.PlaySeS();
                        }
                        if (mob.rank == "a" && viewCount == 3)
                        {
                            RadarViewOrder.PlaySeA();
                        }
                        if (mob.rank == "b" && viewCount == 3)
                        {
                            RadarViewOrder.PlaySeB();
                        }
                        if (mob.rank == "e" && viewCount == 3)
                        {
                            RadarViewOrder.PlaySeB();
                        }
                    }
                }

                /*
                 * // CP & GP //
                 * ;
                 * if (RadarViewOrder.myData.CurrentGP == RadarViewOrder.myData.MaxGP && RadarViewOrder.myData.CurrentGP > 0)
                 * {
                 *  GPSound = GPSound < 1 ? 1 : GPSound;
                 * }
                 * else
                 * {
                 *  GPSound = 0;
                 * }
                 *
                 * if (newMyData.CurrentCP == newMyData.MaxCP && newMyData.CurrentCP > 0)
                 * {
                 *  CPSound = CPSound < 1 ? 1 : CPSound;
                 * }
                 * else
                 * {
                 *  CPSound = 0;
                 * }
                 * // CP & GP //
                 *
                 *
                 * if (RadarViewOrder.GPSound==1)
                 * {
                 *  RadarViewOrder.PlaySeGP();
                 *  RadarViewOrder.GPSound = 2;
                 * }
                 * if (RadarViewOrder.CPSound == 1)
                 * {
                 *  RadarViewOrder.PlaySeCP();
                 *  RadarViewOrder.CPSound = 2;
                 * }
                 */
            }
            else
            {
                switch (viewCount)
                {
                case 9: lbMessage.Text = "M-u-l-t-i Radar Act Plug-in for Final Fantasy XIV"; break;

                case 8: lbMessage.Text = "Alert Window And Sound. Catch to log"; break;

                case 7: lbMessage.Text = "---Panel---"; break;

                case 6: lbMessage.Text = "■ Green Button Player or Mob."; break;

                case 5: lbMessage.Text = "▶ Marking (Front Line Used.) +/- Zoom."; break;

                case 4: lbMessage.Text = "■ Blue Button Select or All."; break;

                case 3: lbMessage.Text = "■ Yellow Button ID mode."; break;

                case 2: lbMessage.Text = "Good Luck!"; break;
                }
            }
            switch (viewCount)
            {
            case 6: lbMessage.ForeColor = Color.Lime; break;

            case 5: lbMessage.ForeColor = Color.LightCyan; break;

            case 4: lbMessage.ForeColor = Color.LightSkyBlue; break;

            case 3: lbMessage.ForeColor = Color.Yellow; break;

            case 2: lbMessage.ForeColor = Color.White; break;
            }
            viewCount -= 1;
            if (viewCount > 0)
            {
                if (this != null)
                {
                    this.Visible = true;
                }
            }
            else
            {
                viewCount    = 0;
                this.Visible = false;
            }
        }