Вход Регистрация
Файл: 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<=9 && (int)($user['troph'.$active]??0)===1) $active++;
if(
$active>9) $active=9;

if(isset(
$_GET['id'])){
  
$requested=(int)$_GET['id'];
  if(
$requested>=1 && $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'; ?>
Онлайн: 0
Реклама