I heard it sing only today. Maybe the time between songs is just longer randoms.
If you (and just you) wanted to hear it more often you could use something like:
The min/max times can be set to whatever doesn't annoy you (8, 12 seconds is very short but you don't have to wait long to test.)
Lua Code:
-- More music for Sunflower pet
local minTime, maxTime = 8, 12 -- min/max times between songs in seconds
local castID = 93823
local guids = { -- add additional guids here
["BattlePet-0-0000121FED47"] = true,
["BattlePet-0-0000121FED42"] = true,
}
local soundIDs = {
567354,
567327,
567317,
567338,
567374,
567295,
}
local summoned
local function SingFlowerSing()
local id = C_PetJournal.GetSummonedPetGUID()
if not guids[id] then
summoned = false
return
end
PlaySoundFile(soundIDs[random(1, #soundIDs)])
C_Timer.After(random(minTime, maxTime), SingFlowerSing)
end
local f = CreateFrame("Frame")
f:RegisterUnitEvent("UNIT_SPELLCAST_SUCCEEDED", "player")
f:RegisterUnitEvent("UNIT_LEVEL", "player")
f:RegisterEvent("PLAYER_ENTERING_WORLD")
f:SetScript("OnEvent", function(self, event, ...)
local unit, _, spellid = ...
if event == "UNIT_SPELLCAST_SUCCEEDED" and spellid == castID then
if not summoned then
summoned = true
C_Timer.After(random(minTime, maxTime), SingFlowerSing)
end
elseif event == "PLAYER_ENTERING_WORLD" or event == "UNIT_LEVEL" then
local id = C_PetJournal.GetSummonedPetGUID()
if guids[id] then
self:GetScript("OnEvent")(self, "UNIT_SPELLCAST_SUCCEEDED", "player", nil, castID)
self:UnregisterEvent("UNIT_LEVEL")
end
self:UnregisterEvent("PLAYER_ENTERING_WORLD")
if event == "UNIT_LEVEL" then
self:UnregisterEvent("UNIT_LEVEL")
end
end
end)
Copy/paste the code to the website
addon.bool.no to create download as an addon.