SavedInstances

SavedInstances

11M Downloads

Add daily rare bosses for mounts at demand ingame.

strickland opened this issue ยท 15 comments

commented

Is your feature request related to a problem? Please describe.
It is not related to a problem.

Describe the solution you'd like
A clear and concise description of what you want to happen.

Describe alternatives you've considered
A clear and concise description of any alternative solutions or features you've considered.

Additional context

Hey, I've been adding soundless & arachnoid harvester, which are daily reset bosses with ID into the file progress to track which alts killed or not killed for the day, it is helpful if you do these two bosses on alot of alts to know which one didnt know without logging them, but thats a hassle to do everytime with an update, I would love to be able to add any daily rare that drop toy/mount or whatever from the ingame options.

This is what I do in the progress file.

-- Rares
{
name = "Soundless",
quest = 56298,
daily = true,
},
{
name = "Arachnoid_Harvester",
quest = 55512,
daily = true,
},

commented

I had previously asked for this but they denied it. But thank you for posting this, I can manually do it now.

The file to change is Interface\AddOns\SavedInstances\Modules\Progress.lua and go to around line 200. Copy in the Rares section at the end

commented

thank you dwinfield I did do this in the past but after this prepatch update it isn't working.

commented

thank you dwinfield I did do this in the past but after this prepatch update it isn't working.

More i look at it, I don't think it's working for me either. were you able to get back tosoundless tracking on alts?

commented

no i told you it used to work before the prepatch, after the release of this newer version for prepatch it isn't working anymore, thus I made this request.

commented

I think your code should be put in Quest.lua, not Progress.lua. Also related to #390 , but it still takes time to work on it :)

commented

I think your code should be put in Quest.lua, not Progress.lua. Also related to #390 , but it still takes time to work on it :)

Hi, I've added into Quest.lua instead of Progress.lua and followed the coding written but unfortunately it didn't work, here's what I wrote there, pls check maybe you got an idea.

Ill post the nazjatar and mechagon section you can see I added soundless + arachnoid as such.

-- Nazjatar
[55121] = "Weekly", -- The Laboratory of Mardivas
[56969] = "Weekly", -- Ancient Reefwalker Bark
[56050] = "Weekly", -- PvP Event: Battle for Nazjatar
[56298] = "Daily", -- Soundless
-- Mechagon
[56116] = "Regular", -- Even More Recycling
[55512] = "Daily", -- Arachnoid

commented

I'm still lost after what sentence do I add the manual stuff ?

commented

@strickland did you open a PR for that to get it added? I cannot see any liked PR. If you did not open one, care if I create one?

commented

@mjt91 What is PR? whatever it is, sure go ahead if this can help the feature to be added? Right now I am adding them manually into the lua files, myself I'm using the old method where I go to Progress.lua and it still works, but everytime I update I need to manually add all the daily rares that I need, the ones I need mount/toys/pets from ofc, I don't add everything in the game, only those that I need something from.

and whenever I get that something, then I remove the specific daily boss/rare, etc.

Hope this gets added ingame options where we can manually track whichever daily rare that we want, help for those with many alts.

commented

@strickland
I was able to sort of get this working. In Progress.lua I added these methods, I put them after the Torghast ones and before it listed the Module.TrackedQuest

local function RareMobUpdate(index)
  SI.db.Toons[SI.thisToon].Progress[index] = wipe(SI.db.Toons[SI.thisToon].Progress[index] or {})
  local data = {
    unlocked = true,
    isComplete = IsQuestFlaggedCompleted(Module.TrackedQuest[index].quest),
  }
  SI.db.Toons[SI.thisToon].Progress[index] = data

end

local function RareMobShow(toon, index)
  local t = SI.db.Toons[toon]
  if not t or not t.Progress or not t.Progress[index] then return end
  local data = t.Progress[index]
  local text
  if data.isComplete then
    text = "\124T" .. READY_CHECK_READY_TEXTURE .. ":0|t"
  else
    text = ""
  end
  return text
end

local function RareMobReset(toon, index)
  local t = SI.db.Toons[toon]
  if not t or not t.Progress or not t.Progress[index] then return end

  local prev = t.Progress[index]
  t.Progress[index] = {
    unlocked = prev.unlocked,
    isComplete = false,
  }
end

Then,at the end of Module.TrackedQuest I added the rares I knew the quest for.

-- Rares
  {
    name = "Steel Singer Freza",
    quest = 55854,
    daily = true,
    func = RareMobUpdate,
    showFunc = RareMobShow,
    resetFunc = RareMobReset,
  },
  {
      name = "Violet Mistake",
      quest = 61720,
      daily = true,
      func = RareMobUpdate,
      showFunc = RareMobShow,
      resetFunc = RareMobReset,
    },

This is not really a good solution but it'll do. Make sure to enable the ones you added in the options menu of SavedInstances

If I ever figure out how to kinda replicate what rarity does where it asks for a Quest ID and then starts tracking it, I'll put in a PR. Right now the hard part for me is figuring out the questID (not the npcID) of the rare

commented

If I ever figure out how to kinda replicate what rarity does where it asks for a Quest ID and then starts tracking it, I'll put in a PR.

What exactly are you looking for? Rarity only uses quest IDs for its defeat detection, where a simple query to IsQuestFlaggedCompleted() tells it whether the quest is completed. It doesn't actually "track" the quest in any meaningful capacity :)

commented

If I ever figure out how to kinda replicate what rarity does where it asks for a Quest ID and then starts tracking it, I'll put in a PR.

What exactly are you looking for? Rarity only uses quest IDs for its defeat detection, where a simple query to IsQuestFlaggedCompleted() tells it whether the quest is completed. It doesn't actually "track" the quest in any meaningful capacity :)

when I looked at rarity config, it went off of the npcID, not the questID associated with killing them.

edit: Just kidding, some of the quest ids were in the LUA for rarity. Looks like tahonta and hopecrusher was missing but I got a lot of other mobs showing up in SavedInstances now.

-- Rares
  {
    name = "Steel Singer Freza",
    quest = 55854,
    daily = true,
    func = RareMobUpdate,
    showFunc = RareMobShow,
    resetFunc = RareMobReset,
  },
  {
	name = "Famu",
	quest = 59869,
	daily = true,
	func = RareMobUpdate,
	showFunc = RareMobShow,
    resetFunc = RareMobReset,
  },       
  {
	name = "Nerissa (Gorespine)",
	quest = 58851,
	daily = true,
	func = RareMobUpdate,
	showFunc = RareMobShow,
    resetFunc = RareMobReset,
  },
  {
	name = "Warbringer",
	quest = 58889,
	daily = true,
	func = RareMobUpdate,
	showFunc = RareMobShow,
    resetFunc = RareMobReset,
  }, 
  {
	name = "Sabriel",
	quest = 58784,
	daily = true,
	func = RareMobUpdate,
	showFunc = RareMobShow,
    resetFunc = RareMobReset,
  },
  {
	name = "Gieger",
	quest = 58872,
	daily = true,
	func = RareMobUpdate,
	showFunc = RareMobShow,
    resetFunc = RareMobReset,
  },
  {
	name = "Violet Mistake",
	quest = 61720,
	daily = true,
	func = RareMobUpdate,
	showFunc = RareMobShow,
    resetFunc = RareMobReset,
  },
  {
	name = "Valfir",
	quest = 61632,
	daily = true,
	func = RareMobUpdate,
	showFunc = RareMobShow,
    resetFunc = RareMobReset,
  },  
  {
	name = "Harika",
	quest = 59612,
	daily = true,
	func = RareMobUpdate,
	showFunc = RareMobShow,
    resetFunc = RareMobReset,
  },
--  {
--	name = "Hopecrusher",
--	quest = ????,
--	daily = true,
--	func = RareMobUpdate,
--	showFunc = RareMobShow,
--    resetFunc = RareMobReset,
--  },
--  {
--	name = "Tahona",
--	quest = ?????,
--	daily = true,
--	func = RareMobUpdate,
--	showFunc = RareMobShow,
--    resetFunc = RareMobReset,
--  },
commented

That's two different things, though. Detecting attempts is independent of tracking when attempts should no longer be counted ("defeat detection", as in, the boss/rare is already defeated). The former can use NPC IDs but not quest IDs, while the latter can use quest IDs but not NPC IDs.

But either way, that's besides the point. If you want to replicate something Rarity does feel free to ask (I'm one of the maintainers). It's just that I don't understand what you were trying to do exactly :)

commented

What I want is to be able to do this in SavedInstances -- track the rare mob kills. Like Rarity has the ability to add custom npcs, I want to be able to do that in SavedInstances (that's what the rarity comments were about).

I've currently got SavedInstances working how I want it, until the addon updates and I gotta put the diff back in.

https://imgur.com/a/ENVhoK8

commented

@dwinfield
This is exactly what I would like to do, track the daily mobs that drop a mount or toy or some collectable that you can kill once a day. I added your code and it seems to be working

It would be great if there was an option to just type in the mob ID and how to track it, I.E. daily, weekly and whatnot