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

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

#5917 Edrard 17 июл 2012, 13:21
Сложно, что-то сказать, боюсь, что придется вам импортировать базу в ручную, находится она в папке admin/sql/
#6002 mashtab 20 июл 2012, 13:53
Спасибо за модуль!

Но у меня возникла проблема:

При обработке через SetCronJob ( настроенного по вашей инструкции) выдает ошибку :
br />
<b>Notice</b>: Undefined variable: new in <b>/home/host1254513/clanalfa.ru/htdocs/www/stats/cron.php</b> on line <b>93</b><br />
И данные в модулях пропали :-(

Уф! Заработал! Были проблемы у хостинга! :-)
#6036 vsa 23 июл 2012, 23:48
Здравствуйте, в процессе эксплуатации модуля, нашел пару моментов. Я правда не знаю, это ошибка модуля или каких моих настроек.
на скрине ниже, показана информация о заблокированном танке. Заморозка произошла 23го числа, а вот в информации, якобы разморозка произойдет на следующий день. хотя при этом, отчет дней до разблокирования идет нормально.
Изображение
Далее есть такой момент:
1. прошел бой на ГК с владельцем, я пытаюсь загрузить реплей, мне
"Устаревший или неверный реплей: игрок tyndanik не состоит в этом клане."
2. Человек действительно вышел.
Является ли это критическим моментом? Можно ли отключить проверку нахождения в клане? А то получается, бой прошел, пока командир провозюкался, человек вышел и все - инфы с поморожеными танками нету. А такое уже дважды было.
#6037 Exinaus 24 июл 2012, 00:28
vsa писал(а):Здравствуйте, в процессе эксплуатации модуля, нашел пару моментов. Я правда не знаю, это ошибка модуля или каких моих настроек.
на скрине ниже, показана информация о заблокированном танке. Заморозка произошла 23го числа, а вот в информации, якобы разморозка произойдет на следующий день. хотя при этом, отчет дней до разблокирования идет нормально.

Хм. Интересный момент. Проблема может быть в нескольких пунктах.
Первое. Время отображается серверное, т.е. если сервер находится в США то будет отображено время разблокировки танка в США. Но разница в неделю это скорее нереально.
Второе. Для корректировки этого времени есть в админке настройка time - это сдвиг между серверным временем и удобным вам. Он может быть как положительным так и отрицательным кстати. Я предугадывал что тут могут быть проблемы, и добавил небольшое средство проверки в вкладку. Если хотите проверить и серверное время, и этот сдвиг, добавьте в адресную строку параметр checkdate, для примера: /main.php?checkdate=1
Тогда на вкладке с заблокированной техникой выведут и серверное время, и время с учетом этого сдвига. Проверьте, может в этом проблема, попробуйте поиграться с этим параметром. Сделать так, что бы время с учетом time совпадало с вашим временем.

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

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

vsa писал(а):Далее есть такой момент:
1. прошел бой на ГК с владельцем, я пытаюсь загрузить реплей, мне
"Устаревший или неверный реплей: игрок tyndanik не состоит в этом клане."
2. Человек действительно вышел.
Является ли это критическим моментом? Можно ли отключить проверку нахождения в клане? А то получается, бой прошел, пока командир провозюкался, человек вышел и все - инфы с поморожеными танками нету.. А такое уже дважды было...

Да, есть такое. это была одна из первых проверок на правильность реплея, дабы случайно не загружали ротные бои, промахнувшись реплеем.
В принципе это можно отключить, уже есть другие способы проверки, и в этом способе нет особой необходимости. Технически это не очень большое изменение в коде, я постараюсь добавить это к моменту выхода следующего патча, когда огласят сроки блокировки ст10, пт10 и лт8 ... в модуле таких данных пока нет, ждем пока их огласят.
Если это необходимо срочно, я могу сказать что и где надо изменить, но чуть пожже. Как доберусь до возможности взглянуть в код.
#6038 vsa 24 июл 2012, 01:24
Exinaus писал(а): добавьте в адресную строку параметр checkdate, для примера: /main.php?checkdate=1
Тогда на вкладке с заблокированной техникой выведут и серверное время, и время с учетом этого сдвига. Проверьте, может в этом проблема, попробуйте поиграться с этим параметром. Сделать так, что бы время с учетом time совпадало с вашим временем.

Сделал, результат:
Время на сервере: 24.07.2012 03:03:23
Время с учетом TIME: 18.08.2012 03:03:23
это ж сколько корректировки, я пробовал в админке можно выставить значение не более 600 единиц.
Может не там смотреть надо? но и на хосте все настроено.

Exinaus писал(а):Я надеюсь я вас правильно понял, и такое происходит абсолютно со всем временем, а не только с некоторыми танками.
Если я не угадал, скажите, будем думать дальше. Пока проверяем самый простой вариант.

Ну если вы имеете ввиду именно эту вкладку, то да, на все танки наводишь, и все одно и то же. так же на вкладке с боями, время не мое, разница эдак часов в 19, в роди, уже не помню.

Exinaus писал(а):Если это необходимо срочно, я могу сказать что и где надо изменить, но чуть пожже. Как доберусь до возможности взглянуть в код.

Срочно ли, ну скажем так, клан воюет, техника замороженная есть, если будет время, помогите, пожалуйста, так сказать временный вариант. А то ведь неизвестно нам когда следующая версия модуля.
#6040 Exinaus 24 июл 2012, 07:46
vsa писал(а):Сделал, результат:
Время на сервере: 24.07.2012 03:03:23
Время с учетом TIME: 18.08.2012 03:03:23
это ж сколько корректировки, я пробовал в админке можно выставить значение не более 600 единиц.
Может не там смотреть надо? но и на хосте все настроено..

Вы поймите, разница там в часах. Если вы ставите туда 600, это значит что к серверному времени будет добавлено 600 часов, а это на секундочку 25 дней.
Ну если все настроено, какой логический вывод? Значит ничего туда писать не надо, поставьте 0.
Это же разница в часах, она максимум в диапазоне от -24 до +24 может быть ... поставить туда 600 часов это весело.

vsa писал(а):Срочно ли, ну скажем так, клан воюет, техника замороженная есть, если будет время, помогите, пожалуйста, так сказать временный вариант. А то ведь неизвестно нам когда следующая версия модуля..

Ладно, откройте в папке function файл func_gk.php. найдите там код:
Код: Выделить всё    foreach(array_keys($teams[$team_id]) as $name) {
    if(!in_array($name, $res)) {
    $file_error .= $lang['gk_error_7'].$name.$lang['gk_error_8'];
    }
    }

Удалите его. Дальше, будет код:
Код: Выделить всё      if(!$value['isAlive']) {
        gk_insert_tanks($value,$eb,$db);  // запись в бд
      }


Замените его на:

Код: Выделить всё      if(!$value['isAlive'] and in_array($name, $res)) {
        gk_insert_tanks($value,$eb,$db);  // запись в бд
      }
#6043 vsa 24 июл 2012, 10:14
Exinaus писал(а):Вы поймите, разница там в часах. Если вы ставите туда 600, это значит что к серверному времени будет добавлено 600 часов, а это на секундочку 25 дней.
Ну если все настроено, какой логический вывод? Значит ничего туда писать не надо, поставьте 0.
Это же разница в часах, она максимум в диапазоне от -24 до +24 может быть . поставить туда 600 часов это весело.

Видите ли в чем прикол, оно может и должно выставляться в часах, а на деле в минутах! Если стоит 0, то у меня бои за провинцию по моему времени 19:30+, отображается в модуле 03:30+, разница в 14 часов. лезим в админку ставим в то самое поле 14 и получаем 03:44+
Ставим там 600 (я уже говорил, это максимум что модуль воспринимает) получаем бои за провинцию 13:30+
Поэтому я уж и не знаю что думать, раз вы говорите что там в часах!
По коду, спасибо, попробую. Я хоть и не настаивал на скорости, но тут отдельное спасибо что уделили время :)
#6044 vsa 24 июл 2012, 10:17
Буквально сейчас попробовал выставить 14 часов, он мне показывает 04:30 бои за провинции. с 600 = 14:30.
#6046 Exinaus 24 июл 2012, 11:59
vsa писал(а):Видите ли в чем прикол, оно может и должно выставляться в часах, а на деле в минутах!!! Если стоит 0, то у меня бои за провинцию по моему времени 19:30+, отображается в модуле 03:30+, разница в 14 часов.. лезим в админку ставим в то самое поле 14 и получаем 03:44+

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

Похоже на пальцах придется объяснять.
Итак, ставите эту саму настройку в 0, и открываете модуль с checkdate. Оно вам напишет:
Время на сервере: 24.07.2012 03:03:23
Время с учетом TIME: 24.07.2012 03:03:23

Да, эти цифры будут одинаковы, при time = 0. После чего вы опускаете глаза в правый нижний угол монитора, там обычно отображается время. Вот если нажать на это время левой кнопкой мыши, вам еще и календарик покажет.
Вот смотрите в этот календарик и сравниваете для начала дату которую покажут вам, и которая у вас сейчас. Если не догадались о формате, в котором модуль показывает дату, то это день.месяц.год часы:минуты:секунды. В конкретном примере, может быть у вас 9 вечера 23го числа все еще.
А вот теперь надо начинать думать. Да, да, думать, а не подбирать числа.

Итак, допустим у вас 23 число и 21 час вечера. Это значит что серверное время опережает ваше. На сколько? На 6 часов. Я надеюсь не надо обьяснять как я получил число 6 часов? Значит что надо сделать? Правильно, убрать время в настройках. Как? Поставить -6 в настройках. Да, шесть и с минусом спереди.
Обновляем страницу с checkdate, и должны увидеть:
Время на сервере: 24.07.2012 03:03:23
Время с учетом TIME: 23.07.2012 21:03:23

Вот теперь сверяем вторую строку, с тем что отображается в нижнем правом углу монитора. Все совпало? Поздравляю.

Так, второй пример, допустим дата правильная, но время сервера отстает от вашего на скажем 10 часов. Что надо сделать? Правильно, в настройках поставить 10. Получим:
Время на сервере: 24.07.2012 03:03:23
Время с учетом TIME: 24.07.2012 13:03:23

Опять сверяем вторую строку с часами в углу монитора.

Если же вы поставили ноль, и у вас с первого раза совпала и дата и время, то все так и надо оставлять. Проще говоря, вам надо добиться что бы "Время с учетом TIME" полностью совпадало с тем что у вас на часах и в календаре.

А если вы и дальше будете тулить туда по 600, то и будете получать результаты вроде:
Время на сервере: 24.07.2012 03:03:23
Время с учетом TIME: 18.08.2012 03:03:23

Утверждать что там время в минутах, и в упор не видеть что "Время с учетом TIME" это 18 АВГУСТА!!!!!, путешествие во времени епт. И это не шутка, это время из вашего вчерашнего поста: viewtopic.php?f=30&t=2572&p=6046#p6038
#6056 shw 25 июл 2012, 14:00
Прикручиваю модуль к phpBB, вставил два блока из функции get_last_roster();
И наблюдаю интересный глюк:
При выполнении

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


и затем

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


то print_r($players) показывает всего 4 первых записи в базе.
Но, если добавить
unset($q);
между этими двумя блоками, то все отрабатывает на ура.

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

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

Реклама | Adv