This site works best with JavaScript enabled. Please enable JavaScript to get the best experience from this site.
It would be nice to be able to use time-based triggers:Event: Every X seconds logged in.Event: I have been idle for X seconds.Event: Despite all the stuff I've been doing, and SpeakinSpell being turned on all this time, absolutely nothing has actually triggered it because I have all the proc chances set way too low!
Event: Despite all the stuff I've been doing, and SpeakinSpell being turned on all this time, absolutely nothing has actually triggered it because I have all the proc chances set way too low!
Brainstorming a short label for this one... Event: SpeakinSpell has been quiet for X minutes
This inspired me to spin off ticket 65 - <time> and <date> substitutions
These events should support substitutions for <seconds> and <minutes>, but it's context-sensitive to this idea, so it doesn't merit it's own ticket. Event-specific substitutions are supported, these events only need to add data to the DetectedEventStub:
local DetectedEventStub = { -- System Event: Once per minute name = "Once per minute", type = "EVENT", minutes = some_variable_calculated_above, } SpeakinSpell:OnSpeechEvent( DetectedEventStub )
I see 2 basic approaches for defining the interval, X.
1) Choose several intervals that make sense Event: Every 1 minute logged in Event: Every 5 minutes logged in Event: Every 15 minutes logged in Event: Every 30 minutes logged in Event: Every 1 hour logged in
Event: Every 1 minute after exiting combat Event: Every 5 minutes after exiting combat Event: Every 15 minutes after exiting combat Event: Every 30 minutes after exiting combat Event: Every 1 hour after exiting combat
Event: Every 1 minute after entering combat Event: Every 5 minutes after entering combat Event: Every 10 minutes after entering combat
Event: Every 1 minute after the last SpeakinSpell speech Event: Every 5 minutes after the last SpeakinSpell speech Event: Every 15 minutes after the last SpeakinSpell speech Event: Every 30 minutes after the last SpeakinSpell speech Event: Every 1 hour after the last SpeakinSpell speech
2) Create a GUI with 2 drop-down lists Timed Event: Event [select] minutes after [select]
[Create Button] create the timed event data in your settings, and I only create the timer thread if an event is defined, and I can probably set the timeout in the thread so that it only runs as needed.
Should use option 2 for performance reasons.
Option 1 is more expedient for purposes of an experimental or initial release of this feature prior to creating a GUI, but would result in a lot of throw-away code which would have to be recycled/revamped for use under option 2.
Duerma added some new ideas along these lines as ticket 121: http://www.wowace.com/addons/speakinspell/tickets/121-random-timer-events/
quoting the entire post (with some manual formatting to fix copy-paste vs. wikicreole markup)
What is the enhancement in mind? How should it look and feel?
Allow users to create events that do not fire based on an in-game trigger, but rather fire regularly after defined periods of time.
Please provide any additional information below.
The UI would be like this -
Timer Event 1
The example above would fire every 7-13 minutes. This feature would be most useful to roleplayers who had a nervous tic, for instance. With a more limited appeal, this feature should be implemented as a module, to be loaded on demand.
Thinking out loud...
My biggest concern is still the event key, and how to find the EventTableEntry for this in the EventTable.
The existence of this event will require spinning off a thread or timer - TBH I don't know how that works in lua. When the timer fires, we need to create a DetectedEventStub. It can use the name "Timer Event N" which can also be the event key.
Then i guess timer options can vary and be stored as optional data in the EventTableEntry in order to reset the timer.
Building on my code fragment below...
function OnTimer( ... ) -- when the timer fires for one of these events local DetectedEventStub = { -- timer event name = "Timer Event N", -- identified by the parameters type = "TIMER", --new event type minutes = some_variable_calculated_above, } SpeakinSpell:OnSpeechEvent( DetectedEventStub ) end
I'm not sure if this is a good idea. Especially "every X seconds logged in" gives me headaches. It just too much sounds like trade- and goldspam.
Additionally... I'm not sure what these triggers should be good for.
If you could give me any exaple what these triggers might do positive I'll probably reconsider...
Currently I'll have to give this Ticket a -3 voting...
I can think of 2 useful applications:
and I think a few other possibilities are touched on below.
I'll define one of the ways I was using a work-around to get this effect, and why I was using it: I had an event set up to fire when I first logged in, 100% chance, that triggered a macro "/in 30 /ss macro voices", relying on Chronos for the time-delay command.
That one also had a 100% chance to fire, and it also called /ss macros, which were set lower, and were all on the self-speech mode "Mysterious Voice whispers". It also called itself again, "/in 30 /ss macro voices", ensuring that the event would run again.
Over all, this generated the effect that the character this was running on had voices in his head, cropping up at semi-random intervals. In this case, it would be an "every X seconds" trigger, with the intent being purely personal entertainment and an attempt to help myself stay in-character while playing a truly insane warlock.
I'm re-assigning all my tickets to Duerma
Unassigning tickets that are not actively being worked on
To post a comment, please login or register a new account.