Вопросы, советы, возможные модификации и вообще все про модуль статистики кланов

Модератор: Exinaus, shw

#102518 viktor6 23 дек 2014, 21:37
diesel2001 писал(а):

 Читать дальше


На сайте сегодня появилась вот такая ошибка, что это?

Обновись из github
#102522 Exinaus 23 дек 2014, 22:10
viktor6 писал(а):
Exinaus писал(а):
Lex_omsk писал(а):после обновления с github начал ругаться на function/auth.php, поставил старый файлик и заработало. (на 42 и 45 строки ругался).

Без текста ошибки ничего не получится сказать. В 42 и 45 строках этого файла нет исполняемого кода, который мог бы вызывать ошибку даже теоретически.
Я проверил авторизацию, у меня все работает нормально. Ошибка повторяется?

У меня осталась ошибка
http://stat.vik.ua-biz.info/index.php

Можно скриншот или текст ошибки? А то захожу по указанному адресу, а ошибки нет.
#102536 alex_lip 24 дек 2014, 08:02
Добрый день.
Очистил кеш игроков - исчезли ники в рота. Пересоздал роту - все равно пустые строчки!
Что делать?
И еще - добавил второй клан - не собирается статистика! Галка собирать стату выставлена.
Нужна ли галка мультиклан?
#102537 viktor6 24 дек 2014, 09:06
Exinaus писал(а):Можно скриншот или текст ошибки? А то захожу по указанному адресу, а ошибки нет.

После обновления с гита появилась другая ошибка. В поле Новые танки отображается не понятно что
http://stat.vik.ua-biz.info/
В админке не чего не делал, не чего не очищал.
#102543 Exinaus 24 дек 2014, 10:34
viktor6 писал(а):После обновления с гита появилась другая ошибка. В поле Новые танки отображается не понятно что

Это все следствие одной ошибки. По большинству игроков выдавали информацию в таком виде, как будто у них нет танков вообще.
Вот с такими данными их и обработала крон задача. А потом внезапно все заработало, и данные по танкам у них появились.
Как может машина интерпретировать такую ситуацию, в выставленный вами период времени для проверок: сначала танка не было, а потом вдруг появился? Правильно, как новый танк у человека. Что она вам и отображает.

Ждите, крон соберет данные еще пару раз, и все заработает нормально.
#102544 Exinaus 24 дек 2014, 10:37
alex_lip писал(а):Добрый день.
Очистил кеш игроков - исчезли ники в рота. Пересоздал роту - все равно пустые строчки!
Что делать??
И еще - добавил второй клан - не собирается статистика! Галка собирать стату выставлена.
Нужна ли галка мультиклан?

1) Без понятия. Очистка кэша игроков никак не влияет на данные о принадлежности к ротам. Вообще никак, они даже не связаны. И от очистки кэша игроков ничего произойти не могло. И я не могу ответить что именно надо сделать, т.к. не знаю что именно вы поломали.
2) В основном клане -конечно да.
#102552 alex_lip 24 дек 2014, 12:56
=== Очистка кэша игроков никак не влияет на данные о принадлежности к ротам.
Вообще никак, они даже не связаны. ===
Ники появились через некоторое время . Однако - заметил такую вещь - если игрок ушел из клана -
появляется пустая строчка в списке роты. И количество считает вместе с ушедшим игроком.
#102560 Exinaus 24 дек 2014, 14:03
если игрок ушел из клана -
появляется пустая строчка в списке роты.

Если выводить просто список рот, то надо делать дополнительную проверку, состоит ли данный игрок в клане в данный момент, потому что список рот обновляется только при его сохранении/обновлении из админки, и логично что он будет содержать ушедших игроков, т.к. список не обновляли.
И количество считает вместе с ушедшим игроком.

Не могу сообразить, где именно считает количество? Просто я не помню что такое делал.
И как и я писал выше - если вы сами сделали подсчет количества игроков, то просто считать количество не верно. Список принадлежности к ротам обновляется при сохранении его из админки, а изменение состава игроков в клане на его обновление никак не влияет.
Если вы хотите считать игроков в ротах, вам надо создать счетчики игроков для каждой роты, установить их на 0, а потом циклом перебирающим игроков в клане, если определенный игрок состоит в какой нибудь роте, увеличивать значение этих счетчиков. И так вы получите актуальное количество игроков в ротах.
#102568 alex_lip 24 дек 2014, 15:44
Я вот так считаю количество бойцов в роте.
Код: Выделить всё$clan_id = 111;

$company = $cache->get('company_'.$clan_id,0,ROOT_DIR.'/cache/other/');
$roster =  $cache->get('get_last_roster_'.$clan_id,0);
$roster = $roster['data'][$clan_id]['members'];
$cnt=count($company['list1']);
echo "<h4>Рота --- командир -----. Всего бойцов : $cnt  </h4>";
echo "<table border=1 align=left >";
foreach ($company['list1'] as $id){
   echo "<tr><td>";
   echo $roster[$id]['account_name'],'';
   echo "</tr></td>";
   }
echo "</table>";

Видимо неправильно. Странно, что если я очищаю базу от ушедших игроков - пустые строчки остаются. Видимо надо кеш чистить. Но тогда некоторое время все списки рот пустые показываются.
#102570 Exinaus 24 дек 2014, 16:39
Данные о составах рот хранятся в кэше, а не в базе. Поэтому очистка баз никак на это не влияет.

Что бы кардинально не менять код, из за этого, я бы что то на подобие такого:

$clan_id = 111;

$company = $cache->get('company_'.$clan_id,0,ROOT_DIR.'/cache/other/');
$roster = $cache->get('get_last_roster_'.$clan_id,0);
$roster = $roster['data'][$clan_id]['members'];

foreach ($company['list1'] as $t => $id){
if(!isset($roster[$id])) { unset($company['list1'][$t]); }
}

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 13

Реклама | Adv