1<?php require_once 'engine/init.php';
2
3if (empty($config['queststatus_enabled'])) {
4 header('Location: index.php');
5 exit();
6}
7
8protect_page();
9theme_open();
10
11$characters = user_character_list($session_user_id);
12$selected = isset($_GET['name']) ? htmlspecialchars($_GET['name']) : false;
13
14$user_id = false;
15foreach ($characters as $char) {
16 if ($selected === false) { $selected = $char['name']; }
17 if ($char['name'] === $selected) { $user_id = (int)$char['id']; }
18}
19
20$quests = array(
21 'Bearslayer' => 1050,
22 'Sword Quest' => 1337,
23 'Postman Quest' => array(1338, 3),
24);
25
26$completed = '<font color="green">[' . t('quest.completed') . ']</font>';
27$notstarted = '';
28
29function queststatus_progress($min, $max) {
30 $percent = $max > 0 ? round(($min / $max) * 100) : 0;
31 return '<font color="orange">[' . $percent . '%]</font>';
32}
33?>
34<?php if ($characters !== false && count($characters) > 0): ?>
35<form method="get" action="queststatus.php" style="margin-bottom:10px;">
36 <select name="name" onchange="this.form.submit();">
37 <?php foreach ($characters as $char): ?>
38 <option value="<?= htmlspecialchars($char['name']) ?>"<?= $char['name'] === $selected ? ' selected' : '' ?>><?= htmlspecialchars($char['name']) ?></option>
39 <?php endforeach; ?>
40 </select>
41 <noscript><input type="submit" value="<?= t('common.go') ?>"></noscript>
42</form>
43<table id="questTable">
44 <tr class="yellow">
45 <td><?= t('quest.name') ?></td>
46 <td><?= t('quest.status') ?></td>
47 </tr>
48 <?php foreach ($quests as $key => $quest):
49 if (!is_array($quest)) {
50 $query = db()->fetchOne("SELECT `value` FROM `player_storage` WHERE `key` = ? AND `player_id` = ? AND `value` = 1 LIMIT 1;", [(int)$quest, (int)$user_id]);
51 $quest = ($query !== false) ? $completed : $notstarted;
52 } else {
53 $query = db()->fetchOne("SELECT `value` FROM `player_storage` WHERE `key` = ? AND `player_id` = ? AND `value` > 0 LIMIT 1;", [(int)$quest[0], (int)$user_id]);
54 if (!$query) $quest = $notstarted;
55 elseif ($query['value'] >= $quest[1]) $quest = $completed;
56 else $quest = queststatus_progress($query['value'], $quest[1]);
57 }
58 ?>
59 <tr>
60 <td><?= $key ?></td>
61 <td><?= $quest ?></td>
62 </tr>
63 <?php endforeach; ?>
64</table>
65<?php else: ?>
66<p><?= t('quest.no_characters') ?></p>
67<?php endif; ?>
68<?php
69theme_close();
70