Esempio n. 1
0
 private void GetSubLookup(Spawninfo sp, string search, bool filter, string rank)
 {
     if (search.Length > 1)
     {
         SubLookup(sp, search, filter, rank);
     }
 }
Esempio n. 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;
        }
Esempio n. 3
0
 private static void FilterHidden(Spawninfo sp, bool filter)
 {
     if (filter)
     {
         sp.hidden = true;
     }
 }
Esempio n. 4
0
        // Add a new spawn, or do a re-spawn
        public void Spawn(Spawninfo si)
        {
            try

            {
                // ignore players boats boxes corpses and invis man races of level 1
                // ignore ldon objects, mounts, pets, mercs, and familiars
                // ignore any mobs where name starts with "_"
                var various  = si.IsPlayer || (si.Race == 141) || (si.Race == 533) || si.Race == 376 || si.Type == 2 || si.Type == 3;
                var oddtypes = si.isLDONObject || si.isEventController || si.isPet || si.isMerc || si.isFamiliar || si.isMount;
                if (various || oddtypes || si.Name.IndexOf("_") == 0)
                {
                    return;
                }
                // If made it this far, then it is a mob that can perform alerts for proximity checks.

                si.alertMob = true;

                si.SpawnLoc = $"{si.Y:f3},{si.X:f3}";

                si.ZoneSpawnLoc = $"{mapName.ToLower()}{si.Y:f3},{si.X:f3}";

                if (mobsTimer.ContainsKey(si.ZoneSpawnLoc))
                {
                    // Process a true re-spawn
                    TrueRespawn(si);
                }
                else
                {
                    // First spawn ever
                    FirstSpawn(si);
                }
            }
            catch (Exception ex) { LogLib.WriteLine($"Error creating new SPAWNTIMER for {si.Name}: ", ex); }
        }
Esempio n. 5
0
        public Spawntimer(Spawninfo si, DateTime dt)

        {
            SpawnLoc = si.SpawnLoc;

            ZoneSpawnLoc = si.ZoneSpawnLoc;

            zone = "";

            X = si.X;

            Y = si.Y;

            Z = si.Z;

            SpawnTimeDT = dt;

            SpawnTimeStr = $"{dt.ToLongTimeString()} {dt.ToShortDateString()}";

            SpawnCount = 1;

            LastSpawnName = si.Name;

            AllNames = si.Name.TrimName();
        }
Esempio n. 6
0
        private static bool LevelCheck(Spawninfo sp, bool levelCheck, int searchLevel)
        {
            if (searchLevel != 0 && (sp.Level == searchLevel))
            {
                levelCheck = true;
            }

            return(levelCheck);
        }
Esempio n. 7
0
 public static void MakeVisOnWhite(this Spawninfo si)
 {
     if (Settings.Default.ListBackColor == Color.White)
     {
         if (si.listitem.ForeColor == Color.White)
         {
             si.listitem.ForeColor = Color.Black;
         }
         else if (si.listitem.ForeColor == Color.Yellow)
         {
             si.listitem.ForeColor = Color.Goldenrod;
         }
     }
 }
Esempio n. 8
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;
            }
        }
Esempio n. 9
0
        private void SubLookup(Spawninfo sp, string search, bool filter, string ln)
        {
            var levelCheck = false;

            if (search.Length > 2 && string.Equals(search.Substring(0, 2), "L:", StringComparison.OrdinalIgnoreCase))
            {
                int.TryParse(search.Substring(2), out var searchLevel);
                levelCheck = LevelCheck(sp, levelCheck, searchLevel);
            }
            if (levelCheck || search.GetRegex().Match(sp.Name).Success)
            {
                sp.isLookup     = true;
                sp.lookupNumber = ln;
                sp.hidden       = false;
                FilterHidden(sp, filter);
            }
        }
Esempio n. 10
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);
        }
Esempio n. 11
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;
            }
        }
Esempio n. 12
0
 public MobTrailPoint(Spawninfo sp)
 {
     X = (int)sp.X;
     Y = (int)sp.Y;
 }