Beispiel #1
0
        private void TimersFileLines(string line)
        {
            var count = 0;

            try
            {
                Spawntimer st = new Spawntimer(line)
                {
                    zone = mapName.ToLower()
                };

                st.ZoneSpawnLoc = st.zone + st.SpawnLoc;

                count++;

                if (mobsTimer.ContainsKey(st.ZoneSpawnLoc))

                {
                    // We already know about this mob. Copy some of the information.

                    GetKnownMobInfo(st);
                }
                else if (st.SpawnCount > 1)
                {
                    SetNewMobTimeInfo(st);

                    mobsTimer.Add(st.ZoneSpawnLoc, st);
                }
            }
            catch (Exception ex) { LogLib.WriteLine($"Error in LoadTimers(), processing line:\r\n{line}", ex); }

            LogLib.WriteLine($"Spawns read: {count}", LogLevel.Debug);
        }
Beispiel #2
0
        // We're pretty positive that the mob has been processed before, here.
        // This updates KillTime and NextSpawn.
        public void Kill(Spawninfo mob)

        {
            if (Settings.Default.SaveSpawnLogs || (mapName.Length > 0))
            {
                LogSpawns($"[KILL] Loc: {mob.SpawnLoc} Name: {mob.Name}");
            }

            if (mobsTimer.ContainsKey(mob.ZoneSpawnLoc))
            {
                Spawntimer stold = (Spawntimer)mobsTimer[mob.ZoneSpawnLoc];

                var log = stold.Kill(DateTime.Now);

                // update mobsTimer2 also with kill info
                if (mobsTimer2.ContainsKey(stold.ZoneSpawnLoc))
                {
                    Spawntimer st2 = (Spawntimer)mobsTimer2[stold.ZoneSpawnLoc];

                    st2.KillTimeDT   = stold.KillTimeDT;
                    st2.KillTimeStr  = stold.KillTimeStr;
                    st2.NextSpawnDT  = stold.NextSpawnDT;
                    st2.NextSpawnStr = stold.NextSpawnStr;
                }

                if (log != string.Empty && Settings.Default.MaxLogLevel > 0)
                {
                    SpawnTimerLog($"Updating Kill Time for Spawn: {mob.SpawnLoc} Name: {mob.Name} Killed: {log}");
                }
            }

            MustSave = true;
        }
Beispiel #3
0
        private void AddRespawned(Spawninfo si, Spawntimer st)
        {
            if (st.SpawnCount > 1 && st.SpawnTimer > 10)

            {
                // The mob was known to spawn once, and is now re-spawning for the first
                // time... so copy it to the other hash
                if (!mobsTimer2.ContainsKey(si.ZoneSpawnLoc))
                {
                    mobsTimer2.Add(si.ZoneSpawnLoc, st);
                }

                MustSave = true;
            }
        }
Beispiel #4
0
 private void MnuStickyTimer_Click(object sender, EventArgs e)
 {
     // Set or unset the sticky flag for the timer selected
     ListView.SelectedIndexCollection sel = listView.SelectedIndices;
     // We only do this for the Spawn Timer List
     if (sel.Count > 0 && ListType == 1)
     {
         // This returns mobsTimer2
         Spawntimer st = eq.FindListViewTimer(listView.Items[sel[0]]);
         if (st != null)
         {
             mnuStickyTimer.Checked = st.sticky;
             st.sticky = !st.sticky;
         }
     }
 }
Beispiel #5
0
 private void StickyTimer(Spawntimer st)
 {
     mnuStickyTimer.Checked = st.sticky;
     foreach (var name in st.AllNames.Split(','))
     {
         var bname = name.TrimName();
         if (bname.RegexMatch())
         {
             mobname = bname;
             mnuAddZoneFilter.Text = $"'{mobname}'";
             f1.alertX             = st.X;
             f1.alertY             = st.Y;
             f1.alertZ             = st.Z;
             break;
         }
     }
 }
Beispiel #6
0
        private void GetKnownMobInfo(Spawntimer st)
        {
            Spawntimer oldTimer = (Spawntimer)mobsTimer[st.ZoneSpawnLoc];

            // check if we add names in the merge.  If so, make sure we save.
            var startlen = oldTimer.AllNames.Length;

            oldTimer.Merge(st);
            if (oldTimer.AllNames.Length > startlen)
            {
                MustSave = true;
            }

            if (oldTimer.SpawnCount > 1 && oldTimer.SpawnTimer > 10 && !mobsTimer2.ContainsKey(oldTimer.ZoneSpawnLoc))
            {
                mobsTimer2.Add(oldTimer.ZoneSpawnLoc, oldTimer);
            }
        }
Beispiel #7
0
        private void TrueRespawn(Spawninfo si)
        {
            LogSpawns($"[SPAWN] Loc: {si.SpawnLoc} Name: {si.Name}");

            Spawntimer st = (Spawntimer)mobsTimer[si.ZoneSpawnLoc];

            Spawntimer st2 = null;

            if (mobsTimer2.ContainsKey(si.ZoneSpawnLoc))
            {
                st2 = (Spawntimer)mobsTimer2[si.ZoneSpawnLoc];
            }

            string log;

            if (st2 != null)
            {
                log = st2.ReSpawn(si.Name);
                // since we updated from st2, update st values
                st.LastSpawnName = st2.LastSpawnName;
                st.SpawnCount    = st2.SpawnCount;
                st.SpawnTimer    = st2.SpawnTimer;
                st.NextSpawnDT   = st2.NextSpawnDT;
                st.NextSpawnStr  = st2.NextSpawnStr;
                st.SpawnTimeDT   = st2.SpawnTimeDT;
                st.SpawnTimeStr  = st2.SpawnTimeStr;
                st.AllNames      = st2.AllNames;
                st.KillTimeDT    = st2.KillTimeDT;
                st.KillTimeStr   = st2.KillTimeStr;
            }
            else
            {
                log = st.ReSpawn(si.Name);
            }

            if (Settings.Default.MaxLogLevel > 0)
            {
                SpawnTimerLog($"Found Spawn: {si.SpawnLoc} Name: {si.Name} Timer {log} ");
            }

            AddRespawned(si, st);
        }
Beispiel #8
0
        private void FirstSpawn(Spawninfo si)
        {
            Spawntimer st = new Spawntimer(si, DateTime.Now)
            {
                zone = mapName
            };

            try
            {
                mobsTimer.Add(si.ZoneSpawnLoc, st);

                if (Settings.Default.MaxLogLevel > 0)
                {
                    SpawnTimerLog($"Added Spawn: {si.SpawnLoc} Name: {si.Name}");
                }
            }
            catch (Exception ex)
            {
                LogLib.WriteLine($"Error adding new SPAWNTIMER for {si.Name}: ", ex);
                throw;
            }
        }
Beispiel #9
0
        private void SetNewMobTimeInfo(Spawntimer st)
        {
            if (st.SpawnTimer > 10)
            {
                TimeSpan Diff = new TimeSpan(0, 0, 0, st.SpawnTimer);

                if (DateTime.Now > st.KillTimeDT.Add(Diff))
                {
                    st.KillTimeDT = DateTime.MinValue;
                }

                if (DateTime.Now > st.NextSpawnDT)

                {
                    st.NextSpawnDT = DateTime.MinValue;

                    st.KillTimeDT = DateTime.MinValue;

                    st.NextSpawnStr = "";
                }

                mobsTimer2.Add(st.ZoneSpawnLoc, st);
            }
        }
Beispiel #10
0
        private void MnuContext_Opened(object sender, EventArgs e)
        {
            mobname = "";

            ListView.SelectedIndexCollection sel = listView.SelectedIndices;
            mnuStickyTimer.Visible = ListType == 1;
            if (sel.Count > 0)
            {
                if (ListType == 0)
                {
                    ListType0(sel);
                }
                else if (ListType == 1)
                {
                    ListType1(sel);
                }
                else
                {
                    mobname = listView.Items[sel[0]].SubItems[0].Text;
                }
            }

            if ((sel.Count > 0) && (mobname.Length > 0))

            {
                mnuAddGlobalFilter.Text = $"Add '{mobname}' &Global Alert Filter";

                mnuAddZoneFilter.Text = $"'{mobname}'";

                toolStriConcolor.Text    = $"Base Concolor on '{mobname}' ({smoblevel})";
                mnuAddZoneFilter.Visible = true;

                mnuSep3.Visible = true;

                mnuAddZoneFilter.Enabled = true;

                mnuAddGlobalFilter.Enabled = true;

                mnuAddZoneHuntFilter.Enabled = true;

                mnuAddZoneCautionFilter.Enabled = true;

                mnuAddZoneDangerFilter.Enabled = true;

                mnuAddZoneRareFilter.Enabled = true;

                //                addZoneEmailAlertFilter.Enabled = ListType != 2; // Not for ground items

                mnuEditZoneFilters.Enabled = true;

                mnuEditGlobalFilters.Enabled = true;

                mnuReloadZoneFilters.Enabled = true;

                mnuSearchAllakhazam.Enabled = true;
                if (ListType == 0)
                {
                    addMapLabelToolStripMenuItem.Enabled = true;
                    f1.alertX = float.Parse(listView.Items[sel[0]].SubItems[13].Text);
                    f1.alertY = float.Parse(listView.Items[sel[0]].SubItems[14].Text);
                    f1.alertZ = float.Parse(listView.Items[sel[0]].SubItems[15].Text);
                }
                else if (ListType == 1)
                {
                    // add what is in the menu showing
                    addMapLabelToolStripMenuItem.Enabled = true;
                    f1.alertX = float.Parse(listView.Items[sel[0]].SubItems[4].Text);
                    f1.alertY = float.Parse(listView.Items[sel[0]].SubItems[5].Text);
                    f1.alertZ = float.Parse(listView.Items[sel[0]].SubItems[6].Text);
                    // search for a better name to use for this spawn point
                    Spawntimer st = eq.FindListViewTimer(listView.Items[sel[0]]);

                    if (st != null)
                    {
                        StickyTimer(st);
                    }
                }
            }
            else
            {
                NoSelection();
            }
        }