Вход Регистрация
Файл: pages/progress/medal.php
Строк: 80
<?php
/* Полностью переработанная система трофеев medal.php: by Метриум (Стэлп) */
declare(strict_types=1);
// Physical module map v50.6: public URL stays clean while code lives in /pages.
if (!defined('GAME_ROOT')) define('GAME_ROOT'dirname(__DIR__2));
chdir(GAME_ROOT);
if (
PHP_SAPI !== 'cli') { $_SERVER['PHP_SELF']='/medal.php'$_SERVER['SCRIPT_NAME']='/medal.php'; }


include 
'./system/common.php';
include 
'./system/functions.php';
include 
'./system/user.php';
include 
'./system/menu.php';

if(!
$user){ header('Location:/'); exit; }

$title='Трофеи';
include 
'./system/h.php';

$trophyNames=[
  
1=>'Трофей бойца',
  
2=>'Трофей воина',
  
3=>'Трофей избранного',
  
4=>'Трофей идущего к славе',
  
5=>'Трофей несокрушимого',
  
6=>'Трофей силы',
  
7=>'Трофей могущества',
  
8=>'Трофей титана',
  
9=>'Трофей полубога',
];

$owned=0;
for(
$i=1;$i<=9;$i++){
  if((int)(
$user['troph'.$i]??0)===1$owned++;
}

/* По умолчанию показываем текущий трофей, который ещё не получен.
 * При переходе по иконке можно открыть любой трофей и увидеть его собственные требования.
 */
$active=1;
while(
$active<=&& (int)($user['troph'.$active]??0)===1$active++;
if(
$active>9$active=9;

if(isset(
$_GET['id'])){
  
$requested=(int)$_GET['id'];
  if(
$requested>=&& $requested<=9$active=$requested;
}

$tasks=function_exists('game_trophy_tasks_v36') ? game_trophy_tasks_v36($user,$active) : [];
$done=0;
foreach(
$tasks as $task){
  if((int)(
$task['progress']??0) >= (int)($task['goal']??1)) $done++;
}

/* Информационный итог бонусов уже полученных трофеев. Бонусы в самой игре
 * продолжают начисляться старой проверенной системой system/user.php.
 */
$totalStr=$totalVit=$totalAgi=$totalDef=$totalMana=0;
for(
$i=1;$i<=9;$i++){
  if((int)(
$user['troph'.$i]??0)!==1) continue;
  switch(
$i){
    case 
1$totalStr+=50$totalVit+=50$totalDef+=50; break;
    case 
2$totalStr+=75$totalDef+=75; break;
    case 
3$totalStr+=75$totalVit+=75$totalAgi+=75$totalDef+=75; break;
    case 
4$totalStr+=85$totalVit+=85$totalAgi+=85$totalDef+=85; break;
    case 
5$totalDef+=250; break;
    case 
6$totalStr+=250; break;
    case 
7$totalMana+=500; break;
    case 
8$totalDef+=350; break;
    case 
9$totalStr+=300$totalVit+=300$totalAgi+=300$totalDef+=300; break;
  }
}
?>
<div class="trophy-v36">
  <div class="trophy-intro center">
    Собирай трофеи и становись сильнее<br>
    <span class="blue">У Великого титана должны быть все трофеи!</span>
  </div>

  <div class="trophy-main-icon">
    <img src="/images/medals/50x50/<?=$active?>.png" alt="<?=security_html($trophyNames[$active])?>">
  </div>

  <div class="trophy-name"><?=security_html($trophyNames[$active])?></div>
  <div class="trophy-count">
    Выполнено заданий: <b><?=$done?></b> из <b><?=count($tasks)?></b>
  </div>

  <?php foreach($tasks as $task):
    
$goal=max(1,(int)($task['goal']??1));
    
$progress=max(0,(int)($task['progress']??0));
    
$ok=$progress >= $goal;
    
$pct=min(100,(int)round(($progress/$goal)*100));
  
?>
    <div class="trophy-task <?=$ok?'done':''?>">
      <div class="trophy-task-title">
        <?=$ok?'✓':'🏆'?> <?=security_html((string)($task['text']??''))?>
      </div>
      <div class="trophy-task-progress">
        Прогресс:
        <?=$ok
          
'задание выполнено!'
          
n_f($progress).' из '.n_f($goal)
        
?>
      </div>
      <div class="trophy-progress"><span style="width:<?=$pct?>%"></span></div>
      <?php if(!$ok): ?>
        <div class="center">
          <a class="old-btn" href="<?=security_html((string)($task['link']??'/'))?>">Перейти к выполнению</a>
        </div>
      <?php endif; ?>
    </div>
  <?php endforeach; ?>

  <div class="trophy-owned-title">Мои трофеи:</div>
  <div class="trophy-owned">
    <?php for($i=1;$i<=9;$i++): ?>
      <a href="/medal/?id=<?=$i?>">
        <img
          class="<?=((int)($user['troph'.$i]??0)===1?'':'locked')?>"
          src="/images/medals/50x50/<?=$i?>.png"
          alt="<?=security_html($trophyNames[$i])?>"
          title="<?=security_html($trophyNames[$i])?>"
        >
      </a>
    <?php endfor; ?>
  </div>

  <div class="trophy-bonus">
    <b>Бонус трофеев:</b><br>
    Получено: <?=$owned?> из 9<br>
    <?php if($totalStr || $totalVit || $totalAgi || $totalDef): ?>
      Сила +<?=n_f($totalStr)?> · Жизнь +<?=n_f($totalVit)?> · Удача +<?=n_f($totalAgi)?> · Защита +<?=n_f($totalDef)?><br>
    <?php endif; ?>
    <?php if($totalMana): ?>Мана +<?=n_f($totalMana)?><br><?php endif; ?>
    <span class="orange">Каждый следующий трофей имеет собственные, более сложные требования.</span>
  </div>
</div>

<?php include './system/f.php'?>
Онлайн: 2
Реклама