I run multiple pet casters and have been generally frustrated with the downtime caused by the pettoysplz scripting as it is faster to do it manually.
So, I made some changes to the kissassist macro that radically improve the performance of this code section. These changes make pettoysplz run in a few seconds instead of several minutes in some cases. I don't know the official process to submit a code change recommendation, so just thought I would post it here.
Problems with old script:
1) Slllloooooooowwwwwwww
>>> changed some hard timers to conditional loops with a small delay so that macro can move as soon as the system responds.
>>> batched item give so that 4 items at a time can transfer at a time. This also helps with pets popping in and out of combat so the mage can get done sooner and back to fighting.
2) Mage will summon items it doesn't need for 76+ mage pets
>>> corrected case sensitive item filters
>>> Added ${PetToySpell.Find[Plate]} to the list since all items in the mass plate summons are already on the pet.
3) Mounted Mage is likely to overshoot the target pet which causes lots of flying around in potentially dangerous areas while wasting valuable combat time.
>>> changed moveto to nav as nav is more responsive especially when you are on a mount.
4) Mage will get stuck in pettoys loops if a fight starts while the mage is summoning.
>>> The above speed improvements coupled with kissassist_charname.ini files minimzes this.
PetToys1=Grant Visor of Gobeker
PetToys2=Grant Ocoenydd's Plate
PetToys3=Grant Crystasia's Heirlooms
PetToys4=Grant Wirn's Armaments|Summoned: Gorstruck Fireblade|Summoned: Gorstruck Iceblade
Buffs25=command:/multiline ; /nav id ${Group.Member[char_name].Pet.ID} ; /pettoysplz ${Group.Member[char_name].Pet.CleanName}|Cond16
Cond16=${Group.Member[char_name].Pet.Secondary}!=12508 && ${Group.Member[char_name].Pet.Secondary}!=12505
So, the Cond checks to see if secondary is either Summoned: Gorstruck Fireblade -or- Summoned: Gorstruck Iceblade. Since I put the weapons at the end of the list, this check effectively ensures that the pet has all items or it will spawn a new instance of pettoysplz.
Anyway, run a diff on the attached file vs the old code and you'll find ~40 changed/new lines. Should be fairly simple to put through your code standards process and include it in an upcoming release if you think it might help others.
So, I made some changes to the kissassist macro that radically improve the performance of this code section. These changes make pettoysplz run in a few seconds instead of several minutes in some cases. I don't know the official process to submit a code change recommendation, so just thought I would post it here.
Problems with old script:
1) Slllloooooooowwwwwwww
>>> changed some hard timers to conditional loops with a small delay so that macro can move as soon as the system responds.
>>> batched item give so that 4 items at a time can transfer at a time. This also helps with pets popping in and out of combat so the mage can get done sooner and back to fighting.
2) Mage will summon items it doesn't need for 76+ mage pets
>>> corrected case sensitive item filters
>>> Added ${PetToySpell.Find[Plate]} to the list since all items in the mass plate summons are already on the pet.
3) Mounted Mage is likely to overshoot the target pet which causes lots of flying around in potentially dangerous areas while wasting valuable combat time.
>>> changed moveto to nav as nav is more responsive especially when you are on a mount.
4) Mage will get stuck in pettoys loops if a fight starts while the mage is summoning.
>>> The above speed improvements coupled with kissassist_charname.ini files minimzes this.
PetToys1=Grant Visor of Gobeker
PetToys2=Grant Ocoenydd's Plate
PetToys3=Grant Crystasia's Heirlooms
PetToys4=Grant Wirn's Armaments|Summoned: Gorstruck Fireblade|Summoned: Gorstruck Iceblade
Buffs25=command:/multiline ; /nav id ${Group.Member[char_name].Pet.ID} ; /pettoysplz ${Group.Member[char_name].Pet.CleanName}|Cond16
Cond16=${Group.Member[char_name].Pet.Secondary}!=12508 && ${Group.Member[char_name].Pet.Secondary}!=12505
So, the Cond checks to see if secondary is either Summoned: Gorstruck Fireblade -or- Summoned: Gorstruck Iceblade. Since I put the weapons at the end of the list, this check effectively ensures that the pet has all items or it will spawn a new instance of pettoysplz.
Anyway, run a diff on the attached file vs the old code and you'll find ~40 changed/new lines. Should be fairly simple to put through your code standards process and include it in an upcoming release if you think it might help others.

