Нашел еще один косяк в коде, связанный с пхп 5.3.х. Как будем вылавливать - не знаю. Видимо только по коду и логам.
Заключается косяк в том, что в некоторых функциях автор, не объявляя заранее массива, начинает пользоваться им в цикле. При этом не гарантируется, что цикл хотя бы раз в него что-нибудь запишет. А потом этот несуществующий массив подставляется в функцию, где он должен быть проинициализирован на 100% т.к. к нему добавляются еще данные.
Результат - функция не производит вычислений.
решение - перед использованием сделать присвоение пустого массива.
Пример:
Файл report_generator.php (строка 1636)
Цитата:
function castByCreature($creature)
{
global $wDB, $dDB;
$spell_list = array();
// By creature fields
for ($i=1;$i<5;$i++) if ($creature['spell'.$i]) $spell_list[] = $creature['spell'.$i];
// By event AI table
for ($i=1;$i<=3;$i++)
$spell_list = array_merge($spell_list, $dDB->selectCol('SELECT `action1_param'.$i.'` as `id` FROM `creature_ai_scripts` WHERE `creature_id` = ?d AND `action'.$i.'_type` = 11', $creature['entry']));
if (count($spell_list))
$this->doRequirest('`id` IN (?a)', array_unique($spell_list));
}
|
В этом примере косяк на функции array_merge. При добавлении "$spell_list = array();" - ошибка (нотис) уходит.