private void uiTimer_Tick(object sender, EventArgs e) { circleProgress1.Value = 0; string fishId = "0"; circleProgress1.Visible = false; if (fishCountToday >= settings.Fatigue && settings.UseFatigue) { fischer.Stop("Hit Fatigue Limit"); } if (ffxi.Fish.TimeRemaining == 0) { timeoutMax = 0; } if (timeoutMax == 0 && ffxi.Fish.TimeRemaining != 0) { timeoutMax = ffxi.Fish.TimeRemaining; } if (ffxi.Fish.FishOn) { circleProgress1.Visible = true; circleProgress1.Max = (int)timeoutMax; circleProgress1.Value = (int)ffxi.Fish.TimeRemaining; circleProgress1.Text = Convert.ToString(ffxi.Fish.TimeRemaining / 60); fishId = ffxi.Fish.ID1.ToString("X") + ffxi.Fish.ID2.ToString("X"); label4.Text = string.Format("HP: {0}/{1}\nID: {2} ({3})\nRod Position:{4}", ffxi.Fish.HP, ffxi.Fish.MaxHP, fishId, fischer.FishDict != null ? fischer.FishDict.GetFishName(int.Parse(fishId, NumberStyles.HexNumber)) : "" , ffxi.Fish.Position); } else { label4.Text = ""; } label1.Text = string.Format("{0} [{1:X}]\n{2}{3}/{4}{5}\nX:{6} Y:{7} Z:{8}", ffxi.Player.Name, ffxi.Player.ID, ffxi.Player.MainJob, ffxi.Player.MainJobLevel, ffxi.Player.SubJob, ffxi.Player.SubJobLevel, ffxi.Player.X, ffxi.Player.Y, ffxi.Player.Z); label2.Text = string.Format("Rotation: {0}\nStatus: {1}\nZone: {2} ({3:X2})", (int)(ffxi.Player.Rotation * (360 / Math.PI)), ffxi.Player.Status, ResourceParser.GetZoneName(ffxi.Player.ZoneID), ffxi.Player.ZoneID); label3.Text = string.Format("Inventory: {0}/{1}", ffxi.Inventory.GetBagCount(Bag.Inventory), ffxi.Inventory.GetBagSize(Bag.Inventory)); if (loadedZone != ffxi.Player.ZoneID) { LoadZoneList(); loadedZone = ffxi.Player.ZoneID; } DateTime then = Utils.ConvertDateTime("Tokyo Standard Time", startTime); DateTime now = Utils.ConvertDateTime("Tokyo Standard Time", DateTime.Now); if (then.Day != now.Day) { string path = Application.StartupPath + "/history/" + ffxi.Player.Name + "_chistory.dat"; List <CatchInfo> ci = catchHistory.Load(path); fishCountToday = GetTodaysFishCount(ci); startTime = DateTime.Now; } lblFishCaught.Text = string.Format("Fish Caught Today: {0}", fishCountToday); }
private void gearWorker() { while (isRunning) { if (ffxi.Inventory.GetEquipped().Ammo.ItemIndex == 0) { if (ffxi.Inventory.HasItem(baitID)) { while (ffxi.Player.Status != Status.Standing) { Thread.Sleep(1); } ffxi.Chat.SendString(string.Format("/equip ammo \"{0}\"", ResourceParser.GetWeaponName(baitID))); Thread.Sleep(1000); } else if (string.IsNullOrEmpty(settings.NoBaitScript)) { this.Stop("Out of Bait"); break; } else { try { if (!string.IsNullOrEmpty(settings.NoBaitScript)) { fishScript.Load(settings.NoBaitScript); fishScript.OnNoBait(); } } catch (Exception ex) { ErrorLog.OnError(ex); } } } if (ffxi.Inventory.GetEquipped().Range.ItemIndex == 0) { if (ffxi.Inventory.HasItem(rodID)) { while (ffxi.Player.Status != Status.Standing) { Thread.Sleep(1); } ffxi.Chat.SendString(string.Format("/equip range \"{0}\"", ResourceParser.GetWeaponName(rodID))); Thread.Sleep(1000); } else { if (string.IsNullOrEmpty(settings.NoRodScript)) { this.Stop("No Rod"); break; } else { try { if (!string.IsNullOrEmpty(settings.NoRodScript)) { fishScript.Load(settings.NoRodScript); fishScript.OnNoRod(); } } catch (Exception ex) { ErrorLog.OnError(ex); } } } } Thread.Sleep(1); } }
private void cmbProcs_SelectedIndexChanged(object sender, EventArgs e) { int pid = pol[cmbProcs.SelectedIndex].Pid; if (lastPid != pid) { List <CatchInfo> catchInfo = null; try { ffxi = new XiLib(pid, false); fischer = new Fischer(pid, ffxi); } catch (Exception ex) { ErrorLog.OnError(ex); } fischer.NewFish += new Fischer.NewFishHandler(fischer_NewFish); fischer.FishCaught += new Fischer.FishCaughtHandler(fischer_FishCaught); fischer.SkillUp += new Fischer.SkillUpHandler(fischer_SkillUp); fischer.RunStateChanged += new Fischer.RunStateChangeHandler(fischer_RunStateChanged); uiTimer.Start(); lastPid = pid; EquipmentStruct equip = ffxi.Inventory.GetEquipped(); if (equip.Range.ItemIndex != 0) { cmbRange.Text = ResourceParser.GetWeaponName(ffxi.Inventory.GetItemByIndex((Bag)equip.Range.BagID, equip.Range.ItemIndex).Value.ID); } if (equip.Ammo.ItemIndex != 0) { cmbAmmo.Text = ResourceParser.GetWeaponName(ffxi.Inventory.GetItemByIndex((Bag)equip.Ammo.BagID, equip.Ammo.ItemIndex).Value.ID); } if (equip.LeftRing.ItemIndex != 0) { cmbLeftRing.Text = ResourceParser.GetArmorName(ffxi.Inventory.GetItemByIndex((Bag)equip.LeftRing.BagID, equip.LeftRing.ItemIndex).Value.ID); } if (equip.RightRing.ItemIndex != 0) { cmbRightRing.Text = ResourceParser.GetArmorName(ffxi.Inventory.GetItemByIndex((Bag)equip.RightRing.BagID, equip.RightRing.ItemIndex).Value.ID); } this.Text = ffxi.Player.Name; //try //{ settings = FischerSettings.Load(ffxi.Player.Name); //} //catch (Exception ex) //{ // ErrorLog.OnError(ex); //} if (settings != null) { ApplySettings(settings); } else { settings = new FischerSettings(); settings.ReleaseDelayMax = 5000; settings.ReleaseDelayMin = 2000; settings.ReelInPercent = 0; settings.Fatigue = 200; settings.UseFatigue = true; settings.RecastDelay = 8000; settings.NewChatLineScript = "scripts/default.lua"; settings.ZoneChangeScript = "scripts/default.lua"; settings.FullInventoryScript = "scripts/default.lua"; settings.NoBaitScript = "scripts/default.lua"; settings.NoRodScript = "scripts/default.lua"; } string path = string.Format("{0}/history/{1}_chistory.dat", Application.StartupPath, ffxi.Player.Name); if (File.Exists(path)) { if (lvCatchHistory.Items.Count > 0) { lvCatchHistory.Items.Clear(); } //try //{ catchInfo = catchHistory.Load(path); foreach (CatchInfo ci in catchInfo) { string[] items = new string[3]; items[0] = ci.ID.ToString("X"); items[1] = ci.Name; items[2] = ci.TimeStamp.ToString(); try { lvCatchHistory.Items.Add(new ListViewItem(items)); } catch (Exception ex) { ErrorLog.OnError(ex); } } //} //catch (Exception ex) //{ // ErrorLog.OnError(ex); //} //try //{ lvCatchHistory.Items[lvCatchHistory.Items.Count - 1].EnsureVisible(); //} //catch (Exception ex) //{ // ErrorLog.OnError(ex); //} } string path2 = string.Format("{0}/history/{1}_shistory.dat", Application.StartupPath, ffxi.Player.Name); if (File.Exists(path2)) { if (lvSkillHistory.Items.Count > 0) { lvSkillHistory.Items.Clear(); } //try //{ List <SkillInfo> skillInfo = skillHistory.Load(path2); foreach (SkillInfo si in skillInfo) { string[] items = new string[2]; items[0] = si.Description; items[1] = si.TimeStamp.ToString(); //try //{ lvSkillHistory.Items.Add(new ListViewItem(items)); //} //catch (Exception ex) //{ // ErrorLog.OnError(ex); //} } //} //catch (Exception ex) //{ // ErrorLog.OnError(ex); //} try { lvSkillHistory.Items[lvSkillHistory.Items.Count - 1].EnsureVisible(); } catch (Exception ex) { ErrorLog.OnError(ex); } } try { if (catchHistory != null) { fishCountToday = GetTodaysFishCount(catchInfo); } } catch (Exception ex) { ErrorLog.OnError(ex); } } }