killers.php

main 74 lines · 1.8 KB Raw
Alex Alex Commit Initial commit 01/10/2026 09:20
1<?php
2require_once 'engine/init.php';
3theme_open();
4
5/**
6 * Kill statistics.
7 *
8 * TFS 0.3 exposes a different set of tables from the 1.x line, so the two
9 * engines produce different data. Which one applies is decided here and the
10 * view only has to read $killersMode - it never touches the database.
11 */
12
13$engine = znote_server_adapter()->normalizedEngine();
14
15if (in_array($engine, array('TFS_02', 'TFS_10', 'OTHIRE'), true)) {
16 $killersMode = 'modern';
17} elseif ($engine === 'TFS_03') {
18 $killersMode = 'legacy';
19} else {
20 $killersMode = 'unsupported';
21}
22
23$killers = false;
24$victims = false;
25$latests = false;
26$deaths = false;
27
28if ($killersMode === 'modern') {
29
30 $cache = new Cache('engine/cache/killers');
31 if ($cache->hasExpired()) {
32 $killers = fetchMurders();
33 $cache->setContent($killers);
34 $cache->save();
35 } else {
36 $killers = $cache->load();
37 }
38
39 $cache = new Cache('engine/cache/victims');
40 if ($cache->hasExpired()) {
41 $victims = fetchLoosers();
42 $cache->setContent($victims);
43 $cache->save();
44 } else {
45 $victims = $cache->load();
46 }
47
48 $cache = new Cache('engine/cache/lastkillers');
49 if ($cache->hasExpired()) {
50 $latests = db()->fetchAll("SELECT `p`.`name` AS `victim`, `d`.`killed_by` as `killed_by`, `d`.`time` as `time` FROM `player_deaths` as `d` INNER JOIN `players` as `p` ON d.player_id = p.id WHERE d.`is_player`='1' ORDER BY `time` DESC LIMIT 20;");
51 if ($latests !== false) {
52 $cache->setContent($latests);
53 $cache->save();
54 }
55 } else {
56 $latests = $cache->load();
57 }
58
59} elseif ($killersMode === 'legacy') {
60
61 $cache = new Cache('engine/cache/killers');
62 if ($cache->hasExpired()) {
63 $deaths = fetchLatestDeaths_03(30, true);
64 $cache->setContent($deaths);
65 $cache->save();
66 } else {
67 $deaths = $cache->load();
68 }
69}
70
71view('killers');
72
73theme_close();
74
Top