private void btZoomOut_Click(object sender, RoutedEventArgs e) { RadarViewOrder.ZoomOut(); if (callbackSaveSetting != null) { callbackSaveSetting(); } }
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); }
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); } }
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)); } } }
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 } } }
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); } } } }
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; } }