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

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

#1164 AntohaDj 14 ноя 2011, 17:24
А можно ли добавить вкладку со статистикой арты? Есть же стата по технике 9-10 лвл. Мне кажется, что было бы не плохо :)
Возможно сложно отсеять среди 8 лвл только арту. но все же. Может это возможно?
#1166 Exinaus 14 ноя 2011, 22:49
Это очень легко. Если знать php.
По крайней мере у меня на это ушло минут 5, не больше. Вот пример: http://m9co.16mb.com/
Не знаю, стоит ли писать об этом тут ... если автор статистики разрешит, прямо в теме могу написать что, как и где добавлять.
#1168 Exinaus 14 ноя 2011, 23:21
Прошу прощения если где-что не понятно.

1. Открываем файл body.php, в самом низу файла ищем текст:
Код: Выделить всё                </tbody> 
            </table>
        </div>
    </div>
// <-- Место вставки кода
</div>
<?php
    if( function_exists('memory_get_usage') ) {

Символами // я отметил место, куда нужно будет вставлять код.

2. В указанное место вставляем:
Код: Выделить всё    <div id="tabs-10">
        <div align="center">
            <table id="stat10" class="tablesorter" cellspacing="1" style="width: 70%;">             
                <thead>
                    <tr>
                        <th><?php echo $lang['name']; ?></th>
                        <th>Обьект 261</th>
                        <th>GW Typ E</th>
                        <th>T92</th>
                    </tr> 
                </thead>
                <tbody>
                    <?php foreach($res as $name => $val){ ?>
                        <tr>
                            <td><a href="<?php echo $config['base'].$name.'/'; ?>" target="_blank"><?php echo $name; ?></a></td>
                                <td><?php
                                        if(isset($val['tank']['8']['Объект 261'])){
                                            if($val['tank']['8']['Объект 261']['total'] == 0){
                                                $percent = 0;   
                                            }else{
                                                $percent = round($val['tank']['8']['Объект 261']['win']*100/$val['tank']['8']['Объект 261']['total'],2);
                                            }

                                            echo $percent.'% ('.$val['tank']['8']['Объект 261']['total'].'/'.$val['tank']['8']['Объект 261']['win'].')';
                                        }else{
                                            echo '0% (0/0)';
                                        }

                                ?></td>
                                 <td><?php
                                        if(isset($val['tank']['8']['GW Typ E'])){
                                            if($val['tank']['8']['GW Typ E']['total'] == 0){
                                                $percent = 0;   
                                            }else{
                                                $percent = round($val['tank']['8']['GW Typ E']['win']*100/$val['tank']['8']['GW Typ E']['total'],2);
                                            }

                                            echo $percent.'% ('.$val['tank']['8']['GW Typ E']['total'].'/'.$val['tank']['8']['GW Typ E']['win'].')';
                                        }else{
                                            echo '0% (0/0)';
                                        }

                                ?></td> 
                                <td><?php
                                        if(isset($val['tank']['8']['T92'])){
                                            if($val['tank']['8']['T92']['total'] == 0){
                                                $percent = 0;   
                                            }else{
                                                $percent = round($val['tank']['8']['T92']['win']*100/$val['tank']['8']['T92']['total'],2);
                                            }

                                            echo $percent.'% ('.$val['tank']['8']['T92']['total'].'/'.$val['tank']['8']['T92']['win'].')';
                                        }else{
                                            echo '0% (0/0)';
                                        }

                                ?></td>
                        </tr>
                        <?php } ?>
                </tbody> 
            </table>
          </div>
        </div>


3. В том-же файле находим код:
Код: Выделить всё        <li><a href="#tabs-6"><?php echo $lang['tank']; ?> 10</a></li>

В следующей строке добавляем:
Код: Выделить всё        <li><a href="#tabs-10">Артиллерия 8</a></li>


Должно выглядеть вот так:
Код: Выделить всё        <li><a href="#tabs-6"><?php echo $lang['tank']; ?> 10</a></li>
        <li><a href="#tabs-10">Артиллерия 8</a></li>
        <li><a href="./poss.php"><?php echo $lang['poss']; ?></a></li>


4. Сохраняем файл body.php. Закрываем. Открываем header.php. Находим:
Код: Выделить всё            $("#stat6").tablesorter({sortList:[[0,0]], widgets: ['zebra']});
        }

Перед "}" вставляем:
Код: Выделить всё            $("#stat10").tablesorter({sortList:[[0,0]], widgets: ['zebra']}); 

Должно получится вот так:
Код: Выделить всё            $("#stat6").tablesorter({sortList:[[0,0]], widgets: ['zebra']});
            $("#stat10").tablesorter({sortList:[[0,0]], widgets: ['zebra']});
        }


Сохраняем изменения. Заливаем на сервер. Должно работать. Если заметите ошибки или исправления или неточности, пишите о них.
#1169 Exinaus 14 ноя 2011, 23:28
По аналогии желающие могут добавить статистику арты 7 уровня:
Код: Выделить всё    <div id="tabs-9">
        <div align="center">
            <table id="stat9" class="tablesorter" cellspacing="1" style="width: 70%;">             
                <thead>
                    <tr>
                        <th><?php echo $lang['name']; ?></th>
                        <th>Обьект 212</th>
                        <th>Gw-Tiger</th>
                        <th>M40/M43</th>
                    </tr> 
                </thead>
                <tbody>
                    <?php foreach($res as $name => $val){ ?>
                        <tr>
                            <td><a href="<?php echo $config['base'].$name.'/'; ?>" target="_blank"><?php echo $name; ?></a></td>
                                <td><?php
                                        if(isset($val['tank']['7']['Объект 212'])){
                                            if($val['tank']['7']['Объект 212']['total'] == 0){
                                                $percent = 0;   
                                            }else{
                                                $percent = round($val['tank']['7']['Объект 212']['win']*100/$val['tank']['7']['Объект 212']['total'],2);
                                            }

                                            echo $percent.'% ('.$val['tank']['7']['Объект 212']['total'].'/'.$val['tank']['7']['Объект 212']['win'].')';
                                        }else{
                                            echo '0% (0/0)';
                                        }

                                ?></td> 
                                <td><?php
                                        if(isset($val['tank']['7']['GW Tiger'])){
                                            if($val['tank']['7']['GW Tiger']['total'] == 0){
                                                $percent = 0;   
                                            }else{
                                                $percent = round($val['tank']['7']['GW Tiger']['win']*100/$val['tank']['7']['GW Tiger']['total'],2);
                                            }

                                            echo $percent.'% ('.$val['tank']['7']['GW Tiger']['total'].'/'.$val['tank']['7']['GW Tiger']['win'].')';
                                        }else{
                                            echo '0% (0/0)';
                                        }

                                ?></td>
                                <td><?php
                                        if(isset($val['tank']['7']['M40/M43'])){
                                            if($val['tank']['7']['M40/M43']['total'] == 0){
                                                $percent = 0;   
                                            }else{
                                                $percent = round($val['tank']['7']['M40/M43']['win']*100/$val['tank']['7']['M40/M43']['total'],2);
                                            }

                                            echo $percent.'% ('.$val['tank']['7']['M40/M43']['total'].'/'.$val['tank']['7']['M40/M43']['win'].')';
                                        }else{
                                            echo '0% (0/0)';
                                        }

                                ?></td>
                        </tr>
                        <?php } ?>
                </tbody> 
            </table>
          </div>
        </div>


В пунктах 3, 4 меняется только то, что вместо "#stat10" и "#tabs-10" необходимо вставлять "#stat9" и "#tabs-9"
#1175 AntohaDj 17 ноя 2011, 19:49
Огромное спасибо.
Все сделал - все работает норм! :)
Админ, ты тогда учти этот код в следующих обновлениях, пожалуйста.
Заранее благодарю.
#1334 webkeeper 12 янв 2012, 14:01
Уважаемый Exinaus а не подскажете как в модуле рейтинг реализовать? Админ говорит вы делали. По поводу арты - огромное спасибо
#1340 Exinaus 12 янв 2012, 15:11
webkeeper писал(а):Уважаемый Exinaus а не подскажете как в модуле рейтинг реализовать? Админ говорит вы делали. По поводу арты - огромное спасибо


Подсказать то можно, но вам нужен совет, или готовый код?
#1342 Exinaus 12 янв 2012, 15:52
Формула известна:

Admin писал(а):Вот формула по рейтингу -

$feff = $effect['dmg']*(10/$fmid)*(0.15+2*$fmid/100) + $effect['des']*(0.35-2*$fmid/100)*1000 + $effect['det']*0.2*1000 + $effect['cap']*0.15*1000 + $effect['def']*0.15*1000;

где $effect['dmg'] - средний дамаг, $effect['des'] - в среднем уничтожено, $effect['det'] - в среднем засек, $effect['cap'] - в среднем захват, $effect['def'] - в среднем защита.

и fmid - средний уровень танков игрока.


Средний урон и пр. используя код модуля получить легко: все данные есть в $val['perform'] а количество проведенных боев в $val['overall'].
Для примера, в среднем захват: $val['perform']['Очки захвата базы']/$val['overall']['Проведено боёв'].

Загвоздка в среднем уровне танков. Для начала прочитайте как считать средний уровень танков.
Если математика не врет, то высчитывать средний уровень техники можно и так: для каждого танка высчитываем (уровень танка)*(кол. боев на танке)/(кол. боев всего), и потом суммируем для всех танков.
Как известно данные о количестве боев конкретного танка находятся $val['tank']['уровень танка']['название танка']['total'].

Я поступил так: цикл for от 1 до 10, соотв. если использовать $val['tank'][$i], то $i будет уровнем танка. Ну суммируем по формуле, для каждого танка.
Название танка, можете или руками для каждого танка, одну баааальшую формулу :D или foreach для каждого уровня танков.

Достаточно понятно? :)

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

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

Реклама | Adv