I also am no java script programmer, but have managed to make some changes that work for myself and I thought I'd share.
First, I defined multiple symbols for the same profession so that I could prioritize (groups of) tasks within that profession as shown in the following example:
_private.professions = {
to_do: ['alchemy1', 'alchemy2', 'alchemy3'],
tasks: {
alchemy1: ['Research', 'Rank', 'Aqua Vitae'],
alchemy2: ['Mass Advanced Vitriol Extraction', 'Simple Vitriol Extraction', 'Rejuvenation'],
alchemy3: ['Gather Simple Components']
}
};
I had to add these new symbols to _private.selectors as follows:
_private.selectors = {
overview: '.professions-overview:visible',
leadership: '.professions-Leadership:visible',
leatherworking: '.professions-Leatherworking:visible',
tailoring: '.professions-Tailoring:visible',
mailsmithing: '.professions-Armorsmithing_Med:visible',
alchemy1: '.professions-Alchemy:visible',
alchemy2: '.professions-Alchemy:visible',
alchemy3: '.professions-Alchemy:visible',
platesmithing: '.professions-Armorsmithing_Heavy:visible',
doable_jobs: '.task-list-entry:not(.unmet):contains(' + _private.locale._continue + ')',
job_title:'h4 span',
reward_btn: '#modal .input-field button:visible'
};
_private.busy = false;
_private.cjob = 0;
Notice above that I added a new variable initialized to 0. This is used to order the use of the defined symbols rather than randomly select them.
I modified the 'collect' function to reset the _private.cjob value to 0. If I don't do that I think the jobs will just loop through my list of symbols. By setting it to 0 every time I collect I start back at the fist symbol.
collect: function() {
$(_private.selectors.reward_btn).trigger('click');
_private.busy = false;
_private.cjob = 0;
...
And finally I modified the to_do symbol selection using the following replacement:
// var to_do = _private.professions.to_do[((Math.random() * 10000)|0) % _private.professions.to_do.length];
var to_do = _private.professions.to_do[_private.cjob];
_private.cjob++;
if (_private.cjob == _private.professions.to_do.length)
_private.cjob = 0;
The basic behavior is that each time a new task is to be started, it will try each of the symbols in 'to_do' in order and will only move on to the next if one of the associated tasks couldn't be started.
Cheers