Оставляйте здесь свои закладки

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

#17324 viktor345 28 окт 2012, 12:19
Спасибо! Попробую. И еще почему то дублируются ушедшие можно глянуть здесь http://sibtiger.ru/index.php/nash-klan, время изменил но пришедшие новые игроки не появились, а дубликатов стало еще больше.
При увеличении времени в $we_loosed = went_players($roster,(now() - 604800),now()); появляются дубликаты одного и того же игрока(ов) к примеру -

vladar70 солдат 125 д
vladar70 солдат 125 д

т.е. чем больше время, тем больше одного и того же игрока.

А при увеличении времени в $new_players = new_players($roster,(now() - 7604800),now()); новые игроки так и не появляются. Хотя люди и 5 дней в клане.
С программированием не дружу, потому и глупые вопросы.
#17329 shw 28 окт 2012, 13:13
viktor345 писал(а):Спасибо! Попробую. И еще почему то дублируются ушедшие можно глянуть здесь http://sibtiger.ru/index.php/nash-klan, время изменил но пришедшие новые игроки не появились, а дубликатов стало еще больше.
При увеличении времени в $we_loosed = went_players($roster,(now() - 604800),now()); появляются дубликаты одного и того же игрока(ов) к примеру -

vladar70 солдат 125 д
vladar70 солдат 125 д

т.е. чем больше время, тем больше одного и того же игрока.

А при увеличении времени в $new_players = new_players($roster,(now() - 7604800),now()); новые игроки так и не появляются. Хотя люди и 5 дней в клане.
С программированием не дружу, потому и глупые вопросы.

как избавиться от дубликатов:
в func_time.php полностью заменить функцию went_players на ту, что под спойлером

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


новых игроков я посмотрю, но тестировать не на ком =(
#17332 viktor345 28 окт 2012, 13:29
Спасибо! С ушедшими наладилось, а с новыми почему-то не получается изменил в main.php - $new_players = new_players($roster,(now() - 7604800),now());. Но новые не появились.
#17340 shw 28 окт 2012, 16:07
viktor345 писал(а):Спасибо! С ушедшими наладилось, а с новыми почему-то не получается изменил в main.php - $new_players = new_players($roster,(now() - 7604800),now());. Но новые не появились.

Попробуй там же, в func_time.php полностью заменить функцию new_players на ту, что под спойлером

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

#17342 viktor345 28 окт 2012, 16:35
Все заработало. Спасибо за помощь! Теперь боюсь обновлять до новой версии, а видимо прийдется
#17343 McCleod 28 окт 2012, 16:39
Обновление вроде не затрагивает эти файлы. В любом случае вы можете потом всё снова сделать. Я менял уже после обновления - ушедшие работают, новые - проверить пока не смог
#17352 shw 28 окт 2012, 16:50
В предыдущий пост по новым игрокам внес кое-какие изменения, просьба обновить ваши файлы.
Проверялось на версии 2.1.4, но я думаю будет работать и на более старых версиях.
#17406 Exinaus 28 окт 2012, 17:39
Что то я совсем не понял логики.
Код: Выделить всё//Достаем из базы информацию по игрокам, записываем их в переменную $new_res.
        if(isset($new_res)){
            foreach($new_res as $name => $val){ //Потом делаем перебор переменной $new_res, т.е. перебор игроков состоящих или бывших в клане.
                if(isset($roster[$name])){ //Потом проверяем, если человек состоит в текущем списке клана с сайта.
                    $come[] = $val; //Добавляем информацию  о нем в итоговую переменную, если он состоит в клане.
                }
            }
        }

Т.е. как это избавит от дубликатов, никаких проверок на дубликаты нет.
И, вроде, это не отобразит новых игроков в клане, т.к. проверку пройдут все те кто состоит в клане, и был ранее в нем, а не новички.
#17408 shw 28 окт 2012, 18:00
Exinaus писал(а):Что то я совсем не понял логики.
Код: Выделить всё//Достаем из базы информацию по игрокам, записываем их в переменную $new_res.
        if(isset($new_res)){
            foreach($new_res as $name => $val){ //Потом делаем перебор переменной $new_res, т.е. перебор игроков состоящих или бывших в клане.
                if(isset($roster[$name])){ //Потом проверяем, если человек состоит в текущем списке клана с сайта.
                    $come[] = $val; //Добавляем информацию  о нем в итоговую переменную, если он состоит в клане.
                }
            }
        }

Т.е. как это избавит от дубликатов, никаких проверок на дубликаты нет.
И, вроде, это не отобразит новых игроков в клане, т.к. проверку пройдут все те кто состоит в клане, и был ранее в нем, а не новички.

Там два сообщения. В первом избавляемся в ушедших от дубликатов, во втором показываем новых за указанный период.
Рассмотрим вторую функцию более подробно:
Идет выборка из col_players где поле "member_since" попадает в период от $start до $end.
т.е. в $result попадут только игроки, пришедшие в клан в указанный период.
Еще через цикл мы увидим в $new_res тот же список новых игроков, но уже без дубликатов.
А вот последним циклом, который Вас смутил, мы проверяем следующее: если игрок пришел в указанный период, но уже в клане не состоит, то мы его не отображаем.
#17410 Exinaus 28 окт 2012, 18:06
shw писал(а):т.е. в $result попадут только игроки, пришедшие в клан в указанный период.

Мне казалось там будут состоявшие в клане в данный период. Это разные вещи.
Ну тогда ок.

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

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

Реклама | Adv