smasherprog / EqTool

p99 everquest spell timer, dps and map
MIT License
24 stars 19 forks source link

Dynamic Spawn timers #93

Closed Kritoris closed 5 months ago

Kritoris commented 5 months ago

Something I made my GINA triggers do is a logic check on a timer if it is a named. Eg.

Normal Spawn trigger, 22m in Mistmoore: (?:you\s+have\sslain\s+(.+?)!|(.+?)\shas\s+been\sslain\s+by)

Cancel early Trigger: have\s+slain\s+An advisor|(An advisor\s+has\s+been\s+slain)

An Advisor Trigger, 2 hours: have\s+slain\s+An advisor|(An advisor\s+has\s+been\s+slain)

The behaviour is it cancels the generic timer for 22 mins and creates the named timer for 2 hours.

Lots of zones have these sort of named timers that can be put in, from BBM (Dwarf guards), Oasis zone timer of 6:40 mins, but A Spectre is (in Oasis only) is 16:30, right through to ToV etc. I'm happy to help collect exceptions as I am sure the community will for their favorite camp.

I have also been considering how I might be able to use an EXP message if there is no auto timer (because you are too far away to get slain message), or named timer. But it looks like the Slain message is before the EXP message.

So can't use the same format as above eg:

But maybe EQTool can do something GINA can't!?

smasherprog commented 5 months ago

Can you restate what your request is? I dont understand.

smasherprog commented 5 months ago

I am constantly adding timers for all mobs in game. If you find a spawn timer is different than the zone spawn timers, it can be added simply https://github.com/smasherprog/EqTool/blob/e87ebc09bd929861a7f76af4be036ca6e981089b/EQToolShared/Map/ZoneParser.cs#L1068 Do a PR or let me know of incorrect spawn timers

Kritoris commented 5 months ago

So does the tool allow for different timers in zones? Looking at the code it seems like an Advisor which is a 2 hour spawn (120 minutes) is showing as a 22 minute spawn?

Or where is the list of Notable NPCs and their specific timers held?

ZoneInfoMap.Add("mistmoore", new ZoneInfo { Name = "mistmoore", ShowAllMapLevels = false, ZoneLevelHeight = 10, NotableNPCs = new List<string>() { "an advisor","an avenging caitiff","Black Dire","Butler Syncall","a cloaked dhampyre","a deathly usher","Enynti","Garton Viswin","a glyphed ghoul","an imp familiar","Lasna Cheroon","Maid Issis","Mayong Mistmoore","Mynthi Davissi","Princess Cherista","Ssynthi","Xicotl", }, RespawnTime = new TimeSpan(0, 22, 00) });

Kritoris commented 5 months ago

I have just done some killing in Oasis for example, A Dune Tarantula had a 16:30 Spawn timer, so did a sand Giants which should be 6:40 spawn timer.

A Spectre did have 16:30 which is correct for the Oasis.

Tunare was just on the standard Zone timer also.

"sebilite protector", "Tolapumj" should be 2 hours 45 mins.

smasherprog commented 5 months ago

Fixed following timers: an advisor -> 4 hours oasis zone -> 6:40
Tolapumj -> 2:45 Sebilite protector -> 2:45

Code will be available in 5 minutes to update

smasherprog commented 5 months ago

let me know of any other timers that are not correct I want everything to just work with as little configuration as possible