<?php use Core\Db; use User\Login; const GAME = true; include('_incl_data/__config.php'); include('_incl_data/class/__db_connect.php'); $u = User::start(); $logid = isset($_GET['log']) ? (int)$_GET['log'] : 0; $btl = Battle::get($logid); $based = 'battle_logs_save'; if (isset($btl['id'])) { $allprice = (int)Db::getValue('select sum(price1) from battle_users where battle = ? group by uid', [$btl['id']]); $allprice = Battle::getType($allprice, $btl['smert'] == 1); if ($btl['type'] == 99) { $allprice = '<span style="color: red;">' . str_replace(' ', ' ', $allprice[3]) . '</span>'; } else { $allprice = str_replace(' ', ' ', $allprice[2]); } } function replaceLogText(array $d, string $text): string { $d = [ 'login1' => $d['login1'] ?? '', 'login2' => $d['login2'] ?? '', 'prm' => $d['prm'] ?? '', 'time1' => $d['time1'] ?? 0, 'time2' => $d['time2'] ?? 0, 't1' => $d['t1'] ?? 0, 't2' => $d['t2'] ?? 0, ]; $rep1 = <<<HTML <span onclick="chat.addto('{$d['login1']}','to'); return false;" oncontextmenu="infoMenu('{$d['login1']}',event,'chat'); return false;" class="CSSteam{$d['t1']}">{$d['login1']}</span> HTML; $rep2 = <<<HTML <span onclick="chat.addto('{$d['login2']}','to'); return false;" oncontextmenu="infoMenu('{$d['login2']}',event,'chat'); return false;" class="CSSteam{$d['t2']}">{$d['login2']}</span> HTML; $search = [ '{u1}', '{u2}', '{pr}', '^^^^', '{tm1}', '{tm2}', '{tm3}', '{tm4}', ]; $replace = [ $rep1, $rep2, "<b>{$d['prm']}</b>", '=', '<span class="date">' . date('H:i', (int)$d['time1']) . '</span>', '<span class="date">' . date('H:i', (int)$d['time2']) . '</span>', '<span class="date">' . date('d.m.y H:i', (int)$d['time1']) . '</span>', '<span class="date">' . date('d.m.y H:i', (int)$d['time2']) . '</span>', ]; return str_replace($search, $replace, $text); } function testlog($pl) { global $log_text; if ($pl['type'] != 1 && $pl['type'] != 6) { return $pl['text']; } $d = []; foreach (explode('||', $pl['vars']) as $value) { $r = explode('=', $value); if (empty($r[0])) { continue; } $d[$r[0]] = $r[1]; } # По неведомой причине команды в базу падают с id 0 и 1, а не 1 и 2. Что ломает все логи. if (isset($d['t1'], $d['t2'])) { $d['t1']++; $d['t2']++; } //обычный удар $rt = replaceLogText($d, $pl['text']); $k01 = 1; $zb1 = [1 => 0, 2 => 0, 3 => 0, 4 => 0, 5 => 0]; $zb2 = [1 => 0, 2 => 0, 3 => 0, 4 => 0, 5 => 0]; if (isset($d['bl1']) && $d['bl1'] > 0) { $b11 = 1; $b12 = $d['bl1']; while ($b11 <= $d['zb1']) { $zb1[$b12] = 1; if ($b12 >= 5 || $b12 < 0) { $b12 = 0; } $b12++; $b11++; } } if (isset($d['bl2']) && $d['bl2'] > 0) { $b11 = 1; $b12 = $d['bl2']; while ($b11 <= $d['zb2']) { $zb2[$b12] = 1; if ($b12 >= 5 || $b12 < 0) { $b12 = 0; } $b12++; $b11++; } } if (isset($d['t1'], $d['t2'])) { while ($k01 <= 5) { $zns01 = ''; $zns02 = ''; $j01 = 1; while ($j01 <= 5) { $zab1 = '0'; $zab2 = '0'; if ($j01 == $k01) { $zab1 = '1'; $zab2 = '1'; } $zab1 .= $zb1[$j01]; $zab2 .= $zb2[$j01]; $zns01 .= '<img src="//img.new-combats.tech/i/zones/' . $d['t1'] . '/' . $d['t2'] . $zab1 . '.gif">'; $zns02 .= '<img src="//img.new-combats.tech/i/zones/' . $d['t2'] . '/' . $d['t1'] . $zab2 . '.gif">'; $j01++; } $rt = str_replace('{zn1_' . $k01 . '}', $zns01, $rt); $rt = str_replace('{zn2_' . $k01 . '}', $zns02, $rt); $k01++; } } $j = 1; while ($j <= 21) { //замена R - игрок 1 if (isset($d['s2'])) { $r = $log_text[$d['s1']][$j]; $k = 0; if (is_array($r)) { while ($k <= count($r)) { if (isset($log_text[$d['s1']][$j][$k])) { $rt = str_replace('{1x' . $j . 'x' . $k . '}', $log_text[$d['s1']][$j][$k], $rt); } $k++; } } } //замена R - игрок 2 if (isset($d['s2'])) { $r = $log_text[$d['s2']][$j]; $k = 0; if (is_array($r)) { while ($k <= count($r)) { if (isset($log_text[$d['s2']][$j][$k])) { $rt = str_replace('{2x' . $j . 'x' . $k . '}', $log_text[$d['s2']][$j][$k], $rt); } $k++; } } } $j++; } //заменяем данные повторно $rt = replaceLogText($d, $rt); //закончили заменять $pl['text'] = $rt; return $pl['text']; } function getTeamColoredLogin(array $us): string { $login = new Login($us['align'], $us['clan'], $us['level'], $us['login']); $us['team']++; return "<b class='CSSteam{$us['team']}'>$login->fullLogin</b>"; } $r = ''; $p = ''; $b = <<<HTML <table style="width: 100%; border: 0;" cellpadding="0" cellspacing="0"> <tbody> <tr style="vertical-align: top;"> <td style="vertical-align: bottom;"> <input onClick="window.location.reload();" type="submit" name="analiz2" class="btn" value="Обновить"> HTML; if ($btl['team_win'] != -1) { if (!isset($_GET['analiz'])) { $b .= <<<HTML <input onclick="location='/logs.php?log=$logid&analiz=1'" type="submit" name="analiz3" class="btn btn-success" value="Статистика"> <span style="margin-left: 25px;">Поиск : <form id="line_filter" style="display: inline;" onsubmit="return false;"> <input type="text" id="line_filter_input" autocomplete="off" style="padding:5px;"> <input type="submit" id="line_filter_input_submit" class="btn" value="Фильтр" onclick="return false"> <input type="button" id="line_filter_glow" class="btn" value="Подсветка"></form> </span> HTML; } else { $b .= <<<HTML <input onclick="location='/logs.php?log=$logid'" type="submit" name="analiz3" class="btn btn-danger" value="Лог боя"> HTML; } } $b .= "</td></tr></tbody></table>"; if (isset($btl['id']) && $btl['team_win'] != -1 && isset($_GET['analiz'])) { function rzv($v): string { $v = explode('.', $v); return isset($v[1]) ? "$v[0].$v[1]" : "$v[0].0"; } $tmStart = floor(($btl['time_over'] - $btl['time_start']) / 6) / 10; $tmStart = rzv($tmStart); $tbtl = '<img src="//img.new-combats.tech/i/fighttype' . $btl['type'] . '.gif" alt="">'; if ($btl['invis'] > 0) { $tbtl .= '<img src="//img.new-combats.tech/i/fighttypehidden0.gif" alt="">'; } $tbtl = "Тип боя: $tbtl (" . ($btl['type'] == 1 ? 'кулачный' : 'физический') . " поединок) "; if ($btl['izlom'] > 0) { $tbtl .= 'Волна: ' . $btl['izlomRoundSee'] . ' '; } $tbtl .= 'Продолжительность боя: ' . $tmStart . ' мин.<br>'; $users = []; $uids = []; //Поулчаем инфо $tpas = [ 1 => 'X', 2 => '<span style="color: #AAAAEE; ">•</span>', 3 => '<b>•</b>', 4 => '<span style="color: #FF0000; ">¤</span>', 5 => '<span style="color: #FF0000; ">X</span>', 6 => '<span style="color: #AAAAEE; ">•</span>', 7 => '<span style="color:#777777; "><B>•</B></span>', 8 => '<span style="color: #AAAAEE; ">•</span>', ]; $tpbs = [ 0 => '', 1 => '<B>•</B>', 2 => '<span style="color: #AAAAAA; "><B>•</B></span>', 3 => 'X', 4 => '<span style="color: #FFEEEE; "><B>X</B></span>', 5 => '<span style="color: #FFEEEE; "><B>•</B></span>', 6 => '<span style="color: #AAAAEE; "><B>•</B></span>', 7 => '<span style="color: #777777; "><B>•</B></span>', 8 => '<span style="color: #AAAAAA; "><B>•</B></span>', ]; $battleUsers = Db::getRows('select * from battle_users where battle = ?', [$btl['id']]); foreach ($battleUsers as $pl) { if (isset($uids[$pl['id']])) { continue; } $i = count($users); $users[$i] = $pl; $uids[$pl['uid']] = $i; $users[$i]['value'] = [ 'y' => 0, //уворотов+парирований+блоков щитом 'b' => 0, //успешных блоков 'p' => 0, //не успешных блоков, по персонажу попали 'zb' => [ //Список зон блока ], 'sa' => [ //Статистика ударов 0 => '', 1 => '', 2 => '', 3 => '', 4 => '', 5 => '', ], 'sb' => [ //Статистика блоков 0 => '', 1 => '', 2 => '', 3 => '', 4 => '', 5 => '', ], ]; $battleStatUser1 = Db::getRows('select * from battle_stat where battle = ? and uid1 = ? order by id', [$btl['id'], $pl['uid']]); foreach ($battleStatUser1 as $pl2) { if (!isset($users[$i]['yrn'])) { $users[$i]['yrn'] = 0; } if (!isset($users[$i]['yrn_krit'])) { $users[$i]['yrn_krit'] = 0; } if (!isset($users[$i]['ga'])) { $users[$i]['ga'] = 0; } if (!isset($users[$i]['gaa'])) { $users[$i]['gaa'] = 0; } if (!isset($users[$i]['gak'])) { $users[$i]['gak'] = 0; } if (!isset($users[$i]['zona'])) { $users[$i]['zona'] = []; } if (!isset($users[$i]['zonb'])) { $users[$i]['zonb'] = []; } //Обновляем данные $users[$i]['yrn'] += $pl2['yrn']; $users[$i]['yrn_krit'] += $pl2['yrn_krit']; //Статистика далее $users[$i]['gaa']++; if ($users[$i]['yrn'] > 0) { $users[$i]['ga']++; } if ($users[$i]['yrn_krit'] > 0) { $users[$i]['gak']++; } //Получаем куда бил игрок $j = 0; while ($j < $pl2['ma']) { if (!isset($pl2['a'][$j])) { $j++; continue; } if (!isset($users[$i]['zona'][$pl2['a'][$j]])) { $users[$i]['zona'][$pl2['a'][$j]] = 0; } $users[$i]['zona'][$pl2['a'][$j]]++; $za = $pl2['a'][$j]; $k = 1; while ($k <= 5) { if ($za == $k) { $tpa = $pl2['type_a'][$j]; $zag[$k] = true; $users[$i]['value']['sa'][$k] .= $tpas[$tpa]; } else { $zag[$k] = false; } $k++; } $j++; } $j = $pl2['b']; $k = 0; while ($k < $pl2['mb']) { if ($j > 5) { $j = 1; } $users[$i]['value']['zb'][] = [0 => $j, 1 => 0]; if (!isset($users[$i]['zonb'][$j])) { $users[$i]['zonb'][$j] = 0; } $users[$i]['zonb'][$j]++; $j++; $k++; } // $k = 1; while ($k <= 5) { if (empty($zag[$k])) { $users[$i]['value']['sa'][$k] .= ' '; } $k++; } // } // $battleStatUser2 = Db::getRows('select * from battle_stat where battle = ? and uid2 = ? order by id', [$btl['id'], $pl['uid']]); $k = 0; foreach ($battleStatUser2 as $pl2) { if (!isset($users[$i]['_yrn'])) { $users[$i]['_yrn'] = 0; } if (!isset($users[$i]['_yrn_krit'])) { $users[$i]['_yrn_krit'] = 0; } //Обновляем данные $users[$i]['_yrn'] -= $pl2['yrn']; $users[$i]['_yrn_krit'] -= $pl2['yrn_krit']; //Получаем куда били игрока $j = 0; $zag = []; while ($j < $pl2['ma']) { if (!isset($pl2['type_a'][$j])) { $pl2['type_a'][$j] = 0; } $users[$i]['value']['zb'][$k][1] = $pl2['type_a'][$j]; if ($pl2['type_a'][$j] == 2 || $pl2['type_a'][$j] == 6 || $pl2['type_a'][$j] == 7 || $pl2['type_a'][$j] == 8) { $users[$i]['value']['y']++; } elseif ($pl2['type_a'][$j] == 3) { $users[$i]['value']['b']++; } else { $users[$i]['value']['p']++; } $j++; } $k++; } //Статистика блоков $k = 0; $h = 0; $bjj = []; while ($k < count($users[$i]['value']['zb'])) { $zb = (int)$users[$i]['value']['zb'][$k][0]; $zt = (int)$users[$i]['value']['zb'][$k][1]; $bjj[$zb] = true; $users[$i]['value']['sb'][$zb] .= $tpbs[$zt]; if ($h < 1) { $h++; } else { $d = 1; while ($d <= 5) { if (empty($bjj[$d])) { $users[$i]['value']['sb'][$d] .= ' '; } $d++; } $bjj = []; $h = 0; } $k++; } } $usr = ''; $tm = []; $tm_u = []; $tm_v = []; $i = 0; while ($i < count($users)) { if ($users[$i] > 0) { $us = $users[$i]; if (!isset($tm[$us['team']])) { $tm[$us['team']] = ''; $tm_v[] = (int)$us['team']; } $tm_u[$us['team']][] = $i; $tm[$us['team']] .= getTeamColoredLogin($us); $tm[$us['team']] .= ', '; unset($us); } $i++; } $i = 0; while ($i < count($tm_v)) { $usr .= rtrim($tm[$tm_v[$i]], ', '); if ($i < count($tm_v) - 1) { $usr .= ' <b>против</b> '; } $i++; } $strroll = ''; foreach ($tm_v as $team) { $team_data = ['g' => false]; foreach ($tm_u[$team] as $teamuser) { if ($users[$teamuser]['id'] < 1) { continue; } $rh = "{$users[$teamuser]['value']['sa'][1]}<br>{$users[$teamuser]['value']['sa'][2]}<br> {$users[$teamuser]['value']['sa'][3]}<br>{$users[$teamuser]['value']['sa'][4]}<br> {$users[$teamuser]['value']['sa'][5]}"; $strroll .= '<tr>'; $strroll .= "<td style='text-align: center' nowrap> " . getTeamColoredLogin($users[$teamuser]) . "</td>"; $strroll .= "<td style='text-align: right' nowrap><pre>голову<br>грудь<br>живот<br>пояс<br>ноги</pre></td>"; $strroll .= "<td style='font-size: 16px;' nowrap><pre>$rh</pre></td>"; $strroll .= '</tr>'; } } $usr = '<H4>Участники поединка</H4>' . $usr . '<br><br>'; $r = <<<HTML <div>$b</div> <div> <span>$tbtl $p</span> <span style="float:right;">Статус битвы: <i>$allprice</i></span> </div> <br><br>$usr <div>$p</div> <h4>Последовательность ударов</h4> <table border=1 cellspacing=0 cellpadding=4> <tr><td style="text-align: center">Логин</td><td>Удар в</td><td>Последовательность ударов</td></tr> $strroll </table> (<b>X</b> - удачный удар, <b style="color: red;">¤</b> - критический удар пробив блок , <b style="color: red;">X</b> - критический удар, <b style="color: red;"><code>Ξ</code></b> - крит + инвалидность, <b style="color: #006600;">X</b> - доп. магический удар,<BR> <b>•</b> - противник блокировал удар, <b style="color: #aaaaaa;">•</b> - увернулся, <b style="color: #aaaaee;">•</b> - парировал, <b style="color: #777777;">•</b> - отбил щитом) <H4>Последовательность блоков</H4> <table border=1 cellspacing=0 cellpadding=4> <tr><td style="text-align: center;">Логин</td><td>Блок</td><td>Последовательность блоков</td></tr> $strroll </table> (<b>X</b> - удачный блок, <b style="color: red;">X</b> - пробили блок критом, <b>•</b> - пропустил удар, <b style="color: #aaaaaa;">•</b> - увернулся, <b style="color: #aaaaee;">•</b> - парировал, <b style="color: #777777;">•</b> - отбил щитом) <h4>Суммарно</h4> <table border=1 cellspacing=0 cellpadding=4> <tr> <td style="text-align: center;"></td> <td style="text-align: center;">Логин</td> <td>Удары</td> <td>Блоки</td> <td>Попадания</td> <td>Защита</td> <td>Урон</td> <td>Потери</td> <td>Вылечено</td> </tr> HTML; foreach ($tm_v as $team) { $team_data = [ 'g' => false, 'ga' => 0, 'gaa' => 0, 'gak' => 0, 'hp' => 0, 'hpAll' => 0, 'yrn' => 0, 'yrn_krit' => 0, '_yrn' => 0, '_yrn_krit' => 0, 'val_b' => 0, 'val_y' => 0, 'val_p' => 0, 'heal' => 0, ]; foreach ($tm_u[$team] as $teamuser) { if ($users[$teamuser]['id'] < 1) { continue; } foreach ($team_data as $k => $v) { if ($k == 'g') { continue; } if (!isset($users[$teamuser][$k])) { $users[$teamuser][$k] = $v; } } $team_data['g'] = true; $users[$teamuser]['heal'] = $users[$teamuser]['hp'] - $users[$teamuser]['hpAll'] - $users[$teamuser]['_yrn']; $users[$teamuser]['heal'] = max($users[$teamuser]['heal'], 0); $users[$teamuser]['hp'] = max($users[$teamuser]['hp'], 0); $users[$teamuser]['yrn'] = max($users[$teamuser]['yrn'], 0); $users[$teamuser]['yrn_krit'] = max($users[$teamuser]['yrn_krit'], 0); $users[$teamuser]['_yrn'] = min($users[$teamuser]['_yrn'], 0); $users[$teamuser]['_yrn_krit'] = min($users[$teamuser]['_yrn_krit'], 0); $team_data['ga'] += $users[$teamuser]['ga']; $team_data['gaa'] += $users[$teamuser]['gaa']; $team_data['gak'] += $users[$teamuser]['gak']; $team_data['hp'] += $users[$teamuser]['hp']; $team_data['hpAll'] += $users[$teamuser]['hpAll']; $team_data['yrn'] += $users[$teamuser]['yrn']; $team_data['yrn_krit'] += $users[$teamuser]['yrn_krit']; $team_data['_yrn'] += $users[$teamuser]['_yrn']; $team_data['_yrn_krit'] += $users[$teamuser]['_yrn_krit']; $team_data['val_b'] += $users[$teamuser]['val_b']; $team_data['val_y'] += $users[$teamuser]['val_y']; $team_data['val_p'] += $users[$teamuser]['val_p']; $team_data['heal'] += $users[$teamuser]['heal']; $winw = ''; if ($users[$teamuser]['hp'] === 0) { $users[$teamuser]['hp'] = '<span style="color: red;">0</span>'; $winw = '<img title="Погиб" src="//img.new-combats.tech/i/ico/looses.gif" alt="Погиб">'; } else { $winw = '<img title="Выжил" src="//img.new-combats.tech/i/ico/wins.gif" alt="Выжил">'; } $coloredLogin = getTeamColoredLogin($users[$teamuser]); if (!isset($users[$teamuser]['zona'][1])) { $users[$teamuser]['zona'][1] = 0; } if (!isset($users[$teamuser]['zona'][2])) { $users[$teamuser]['zona'][2] = 0; } if (!isset($users[$teamuser]['zona'][3])) { $users[$teamuser]['zona'][3] = 0; } if (!isset($users[$teamuser]['zona'][4])) { $users[$teamuser]['zona'][4] = 0; } if (!isset($users[$teamuser]['zona'][5])) { $users[$teamuser]['zona'][5] = 0; } if (!isset($users[$teamuser]['zonb'][1])) { $users[$teamuser]['zonb'][1] = 0; } if (!isset($users[$teamuser]['zonb'][2])) { $users[$teamuser]['zonb'][2] = 0; } if (!isset($users[$teamuser]['zonb'][3])) { $users[$teamuser]['zonb'][3] = 0; } if (!isset($users[$teamuser]['zonb'][4])) { $users[$teamuser]['zonb'][4] = 0; } if (!isset($users[$teamuser]['zonb'][5])) { $users[$teamuser]['zonb'][5] = 0; } $r .= <<<HTML <tr> <td style="text-align: center; vertical-align: middle;">$winw</td> <td style="text-align: right;">$coloredLogin [{$users[$teamuser]['hp']}/{$users[$teamuser]['hpAll']}]</td> <td>{$users[$teamuser]['zona'][1]}/{$users[$teamuser]['zona'][2]}/{$users[$teamuser]['zona'][3]}/{$users[$teamuser]['zona'][4]}/{$users[$teamuser]['zona'][5]}</td> <td>{$users[$teamuser]['zonb'][1]}/{$users[$teamuser]['zonb'][2]}/{$users[$teamuser]['zonb'][3]}/{$users[$teamuser]['zonb'][4]}/{$users[$teamuser]['zonb'][5]}</td> <td style="text-align: center;">{$users[$teamuser]['ga']}(<span style="color: red;">{$users[$teamuser]['gak']}</span>)/{$users[$teamuser]['gaa']}</td> <td style="text-align: center;">{$users[$teamuser]['value']['b']}/{$users[$teamuser]['value']['y']}/{$users[$teamuser]['value']['p']}</td> <td style="text-align: center;">{$users[$teamuser]['yrn']}/<span style="color: red;">{$users[$teamuser]['yrn_krit']}</span></td> <td style="text-align: center;">{$users[$teamuser]['_yrn']}</td> <td style="text-align: center;">{$users[$teamuser]['heal']}</td> </tr> HTML; } if (!$team_data['g']) { continue; } $winw = '--'; if ($team_data['hp'] < 1) { $team_data['hp'] = 0; } else { $winw = '<img src="//img.new-combats.tech/i/flag.gif" title="Победитель" alt="Победитель">'; } $r .= <<<HTML <tr style="background-color: #d2d0d0;"> <td style="text-align: center;">$winw</td> <td style="text-align: right;"><b class="CSSteam$team">Всего [{$team_data['hp']}/{$team_data['hpAll']}]</b></td> <td> </td> <td> </td> <td style="text-align: center;">{$team_data['ga']}(<span style="color: red;">{$team_data['gak']}</span>)/{$team_data['gaa']}</td> <td style="text-align: center;">{$team_data['val_b']}/{$team_data['val_y']}/{$team_data['val_p']}</td> <td style="text-align: center;">{$team_data['yrn']}/<span style="color: red;">{$team_data['yrn_krit']}</span></td> <td style="text-align: center;">{$team_data['_yrn']}</td> <td style="text-align: center;">{$team_data['heal']}</td> </tr> HTML; } $r .= <<<HTML </table> Логин - имя персонажа и уровень жизни: [сейчас/всего]<br> Удары - статистика ударов по областям: голова/грудь/живот/пояс/ноги<br> Блоки - статистика блоков по областям: голова/грудь/живот/пояс/ноги<br> Попадания - удачных попаданий <span style="color: red;">(из них критов)</span> / всего ударов<br> Защита - ударов заблокировано / уворотов / пропущено ударов<br> Урон - выбито HP из противников / из них <span style="color: red;">критами</span><br> Потери - получено повреждений <br> Вылечено - восстановлено HP<br> HTML; } elseif (!isset($btl['id'])) { $r = '<div style="text-align: center; margin-top: 16px;">Скорее всего Архивариус снова потерял пергамент с хрониками боев...</div>'; } else { include('jx/battle/log_text.php'); $getp = $_GET['p'] ?? 0; $getp = (int)$getp; //Получаем логи $min = max((int)round(12 * ($getp - 1)), 0); $max = $min + 11; $based = 'battle_logs_save'; $check = Db::getValue('select count(*) from battle_logs_save where battle = ? and id_hod between ? and ? order by id_hod, time', [$btl['id'], $min, $max]) < 1; if ($check) { $based = 'battle_logs'; } //генерируем страницы $pmax = Db::getValue("select id_hod from $based where battle = ? order by id_hod desc limit 1", [$btl['id']]); $pmax = ceil($pmax / 12); if ($min > round(12 * ($pmax - 1))) { $min = round(12 * ($pmax - 1)); $max = $min + 11; } $i = 1; $code = PassGen::intCode(); while ($i <= $pmax) { if ($getp == $i || $getp > $pmax && $i == $pmax || $getp < 1 && $i == 1) { $p .= ' <a style="color:maroon" href="?log=' . $btl['id'] . '&p=' . $i . '&rnd=' . $code . '">' . $i . '</a> '; } else { $p .= ' <a href="?log=' . $btl['id'] . '&p=' . $i . '&rnd=' . $code . '">' . $i . '</a> '; } $i++; } $h = 0; $clr = '#f2e5e0'; $cclr = ''; $savedbattlelogs = Db::getRows("select * from $based where battle = ? and id_hod between ? and ? order by id_hod, id limit 200", [$btl['id'], $min, $max + 1]); foreach ($savedbattlelogs as $pl) { $pl['text'] = testlog($pl); $pl['text'] = str_replace('\"', '"', $pl['text']); if ($h != $pl['id_hod']) { if ($h > 0) { $clr = $clr == '#f2e5e0' ? '#f2e5e5' : '#f2e5e0'; $cclr = 'border-top:1px solid #b1b1b1;'; } $h = $pl['id_hod']; } $r .= '<div class="logs_php_line" style="background-color:' . $clr . ';' . $cclr . 'padding:1px;">' . $pl['text'] . '</div>'; $cclr = ''; } //собираем страницу $p = 'Страницы: ' . $p; $usr = ''; if ($btl['team_win'] == -1) { $aliveusers = Db::getRows('select login, level, align, clan, team, hpNow, hpAll from users left join stats on users.id = stats.id where battle = ? and hpNow > 0', [$btl['id']]); $usrs = [-1 => []]; foreach ($aliveusers as $pl) { if (!isset($usrs[$pl['team']])) { $usrs[$pl['team']] = ''; $usrs[-1][count($usrs[-1])] = $pl['team']; } $hpnow = (int)ceil($pl['hpNow']); $hpall = (int)$pl['hpAll']; $usrs[$pl['team']] = getTeamColoredLogin($pl) . "[$hpnow/$hpall]"; } if (count($usrs[-1]) > 0) { $i = 0; while ($i < count($usrs[-1])) { $usr .= rtrim($usrs[$usrs[-1][$i]], ','); if (count($usrs[-1]) > $i + 1) { $usr .= ' <b>против</b> '; } $i++; } } if ($usr != '') { $usr = '<div style="text-align: center;">' . $usr . '</div><hr>'; } } $tbtl = '<img src="//img.new-combats.tech/i/fighttype' . $btl['type'] . '.gif" />'; if ($btl['invis'] > 0) { $tbtl .= '<img src="//img.new-combats.tech/i/fighttypehidden0.gif" alt="">'; } if ($btl['type'] == 0) { $tbtl = 'Тип боя: ' . $tbtl . ' (физический поединок) '; } elseif ($btl['type'] == 1) { $tbtl = 'Тип боя: ' . $tbtl . ' (кулачный поединок) '; } elseif ($btl['type'] == 250) { $tbtl = '<img src="//img.new-combats.tech/i/fighttype50.gif" alt="">'; $tbtl = 'Тип боя: ' . $tbtl . ' (Война Кланов) '; } elseif ($btl['smert'] == 1) { $tbtl = '<img src="//img.new-combats.tech/i/fighttype9.gif" alt="">'; $tbtl = 'Тип боя: ' . $tbtl . ' (Жесточайшее Сражение) '; } else { $tbtl = 'Тип боя: ' . $tbtl . ' (физический поединок) '; } if ($btl['izlom'] > 0) { $tbtl .= 'Волна: ' . $btl['izlomRoundSee'] . ' '; } $r = <<<HTML <div>$b</div> <div> <span>$tbtl $p</span> <span style="float:right;">Статус битвы: <i>$allprice</i></span> </div> <br><hr>$r <div id="not_found" style="display: none; font-style: italic; text-align: center;"> Ничего не найдено. Совсем не найдено... </div> <hr>$usr <div>$p</div> HTML; } ?> <!DOCTYPE html> <html lang="ru"> <head> <title>Архив: Поединки</title> <script src="js/jquery.js"></script> <script src="js/jqueryrotate.js"></script> <script src="js/jquery.zclip.js"></script> <script src="js/jquery.cookie.js"></script> <script src="js/title.js"></script> <script src="//img.new-combats.tech/js/gameEngine.js"></script> <script> hi_no_fm = 1; function maginfo(z, p, m, obj) { let r = ''; r += '<b>' + $(obj).attr('magelogin') + '</b><br><br>'; r += 'Мощь: ' + m + ', '; r += 'Защита: ' + z + ', '; r += 'Подавление: ' + p + ''; return r; } </script> <link href="//img.new-combats.tech/css/main.css" rel="stylesheet"> <style> body { background: url(/i/battle_log_04.jpg) right 0 repeat-x, url(/i/battle_log_16.jpg) left bottom repeat-x, url(/i/battle_log_08.jpg) left 0 repeat-y, url(/i/battle_log_11.jpg) right 0 repeat-y, #f2e5e0; min-height: 100vh; min-width: 400px; } h3 { text-align: center; } .ttl_css { position: absolute; padding: 2px 3px; background-color: #ffffcc; border: 1px solid #6F6B5E; } .CSSteam { font-weight: bold; cursor: pointer; } .CSSteam0 { font-weight: bold; cursor: pointer; } .CSSteam1 { font-weight: bold; color: #6666CC; cursor: pointer; } .CSSteam2 { font-weight: bold; color: #B06A00; cursor: pointer; } .CSSteam3 { font-weight: bold; color: #269088; cursor: pointer; } .CSSteam4 { font-weight: bold; color: #A0AF20; cursor: pointer; } .CSSteam5 { font-weight: bold; color: #0F79D3; cursor: pointer; } .CSSteam6 { font-weight: bold; color: #D85E23; cursor: pointer; } .CSSteam7 { font-weight: bold; color: #5C832F; cursor: pointer; } .CSSteam8 { font-weight: bold; color: #842B61; cursor: pointer; } .CSSteam9 { font-weight: bold; color: navy; cursor: pointer; } .CSSvs { font-weight: bold; } table { border: 1px solid black; } </style> </head> <body> <!--#E2E0E0 --> <div style="max-width:95%; min-height: 100%; margin:0 auto;"> <br><br> <div id="ttl" class="ttl_css" style="display:none;z-index:1111;"></div> </div> <div id="gi" class="gifin" style="display:none;z-index:1110;"></div> <div style="margin: 0 20px 60px;"> <h3> <IMG SRC="//img.new-combats.tech/i/fighttype2.gif" alt=""> Бойцовский Клуб<?= $based != 'battle_logs' ? ' (Архив поединков)' : '' ?> <IMG SRC="//img.new-combats.tech/i/fighttype2.gif" alt=""> </h3> <?= $r ?> </div> <br><br><br> <script> $('#line_filter').submit(function () { $('#line_filter_input_submit').trigger('click'); }); $('#line_filter_glow').click(function () { const val = $('#line_filter_input').val(); $(".logs_php_line").stop().css('background-color', '').show(); $('#not_found').css('display', 'none'); if (val) { $(".logs_php_line:contains('" + val + "')").css('background-color', '#f8f8ef'); //##f8f8ef ffff80 } }); $('#line_filter_input_submit').click(function () { $("#not_found").slideUp(); const val = $('#line_filter_input').val(); if (!val) { $(".logs_php_line").stop().css('background-color', '').show(); } else { if ($.browser.msie || !1) { $(".logs_php_line").stop().css('background-color', '').hide(); if (val) $(".logs_php_line:contains('" + val + "')").stop().show(); } else { $(".logs_php_line").stop().css('background-color', '').slideUp(); $(".logs_php_line:contains('" + val + "')").stop().slideDown(); } setInterval('if ($(".logs_php_line:visible").length == 0) $("#not_found").slideDown();', 300); } return false; }); $('#line_filter_input').keyup(function () { if ($('#line_filter_input').val() == '') { $('#line_filter_input_submit').trigger('click'); } }); jQuery.expr[":"].contains = function (elem, i, match, array) { return (elem.textContent || elem.innerText || jQuery.text(elem) || "").toLowerCase().indexOf(match[3].toLowerCase()) >= 0; } </script> </body> </html>