If found by grouping by character name you put a lot less stress on the armory. The current SQL Call to get the array of characters that needs to be updated will put the same character in multiple times.
By changing:
Code:
$res = $vbulletin->db->query("SELECT * FROM " . TABLE_PREFIX . "gwowevents WHERE `armorydata` != '1' ORDER BY `armorydata` ASC");
to:
Code:
$res = $vbulletin->db->query("SELECT * FROM " . TABLE_PREFIX . "gwowevents WHERE `armorydata` != '1' GROUP BY `realmchar` ORDER BY `armorydata` ASC");
It will only put each character to be updated once, but it will update the info for all events the character is signed up for.