Utf8 convert
This commit is contained in:
@@ -11,87 +11,87 @@ class Achievements
|
||||
private $info;
|
||||
private array $data = [
|
||||
'zb' => [
|
||||
'questname' => 'Åæåäí.Çàäàíèÿ',
|
||||
'quest' => 'Âûïîëíèòü çàäàíèÿ áàáêè.',
|
||||
'check' => ['Çàäàíèé', 5, 25, 50, 100, 250],
|
||||
'prize' => ['Æåòîí <br>óñïåõà <br>', 5, 20, 40, 60, 100],
|
||||
'questname' => 'Ежедн.Задания',
|
||||
'quest' => 'Выполнить задания бабки.',
|
||||
'check' => ['Заданий', 5, 25, 50, 100, 250],
|
||||
'prize' => ['Жетон <br>успеха <br>', 5, 20, 40, 60, 100],
|
||||
'startlink' => 11
|
||||
],
|
||||
'vx' => [
|
||||
'questname' => 'Õàîòè÷åñêèå áîè',
|
||||
'quest' => 'Ïîáåäèòü â õàîòè÷åñêèõ áîÿõ.',
|
||||
'check' => ['Ïîáåä', 50, 300, 400, 500, 1000],
|
||||
'prize' => ['åêð.', 25, 50, 75, 100, 200],
|
||||
'questname' => 'Хаотические бои',
|
||||
'quest' => 'Победить в хаотических боях.',
|
||||
'check' => ['Побед', 50, 300, 400, 500, 1000],
|
||||
'prize' => ['екр.', 25, 50, 75, 100, 200],
|
||||
'startlink' => 21
|
||||
],
|
||||
'snt' => [
|
||||
'questname' => 'Ñóíäóê òðóïîæîðà',
|
||||
'quest' => 'Îòêðûòü ñóíäóê òðóïîæîðà.',
|
||||
'check' => ['Îòêðûòèé', 5, 25, 50, 100, 250],
|
||||
'prize' => ['åêð.', 10, 25, 50, 75, 200],
|
||||
'questname' => 'Сундук трупожора',
|
||||
'quest' => 'Открыть сундук трупожора.',
|
||||
'check' => ['Открытий', 5, 25, 50, 100, 250],
|
||||
'prize' => ['екр.', 10, 25, 50, 75, 200],
|
||||
'startlink' => 31
|
||||
],
|
||||
'rp' => [
|
||||
'questname' => 'Ðóíû 8 ëâë.',
|
||||
'quest' => 'Ïîëó÷èòü ðóíó ïðè ïëàâêå ïëîõèõ çàãîòîâîê. [S]',
|
||||
'check' => ['Ðóí', 5, 10, 25, 50, 100],
|
||||
'prize' => ['Ïëîõèå <br> çàãîòîâêè <br>', 5, 7, 10, 12, 15],
|
||||
'questname' => 'Руны 8 лвл.',
|
||||
'quest' => 'Получить руну при плавке плохих заготовок. [S]',
|
||||
'check' => ['Рун', 5, 10, 25, 50, 100],
|
||||
'prize' => ['Плохие <br> заготовки <br>', 5, 7, 10, 12, 15],
|
||||
'startlink' => 41
|
||||
],
|
||||
'rn' => [
|
||||
'questname' => 'Ðóíû 9 ëâë.',
|
||||
'quest' => 'Ïîëó÷èòü ðóíó ïðè ïëàâêå íîðìàëüíûõ çàãîòîâîê. [M]',
|
||||
'check' => ['Ðóí', 5, 10, 15, 25, 50],
|
||||
'prize' => ['Íîðìàëüíûå <br> çàãîòîâêè <br>', 5, 7, 9, 12, 15],
|
||||
'questname' => 'Руны 9 лвл.',
|
||||
'quest' => 'Получить руну при плавке нормальных заготовок. [M]',
|
||||
'check' => ['Рун', 5, 10, 15, 25, 50],
|
||||
'prize' => ['Нормальные <br> заготовки <br>', 5, 7, 9, 12, 15],
|
||||
'startlink' => 51
|
||||
],
|
||||
'rb' => [
|
||||
'questname' => 'Ðóíû 10 ëâë.',
|
||||
'quest' => 'Ïîëó÷èòü ðóíó ïðè ïëàâêå èäåàëüíûõ çàãîòîâîê. [L]',
|
||||
'check' => ['Ðóí', 2, 5, 8, 11, 15],
|
||||
'prize' => ['Èäåàëüíûå <br> çàãîòîâêè <br>', 2, 4, 6, 10, 15],
|
||||
'questname' => 'Руны 10 лвл.',
|
||||
'quest' => 'Получить руну при плавке идеальных заготовок. [L]',
|
||||
'check' => ['Рун', 2, 5, 8, 11, 15],
|
||||
'prize' => ['Идеальные <br> заготовки <br>', 2, 4, 6, 10, 15],
|
||||
'startlink' => 61
|
||||
],
|
||||
'pg' => [
|
||||
'questname' => 'Ãåðîè÷. Ñðàæåíèÿ',
|
||||
'quest' => 'Ïîó÷àñòâîâàòü â ãåðîè÷åñêîì ñðàæåíèè.',
|
||||
'check' => ['Ó÷àñòèé', 100, 200, 400, 600, 1000],
|
||||
'prize' => ['Æåòîí <br>óñïåõà <br>', 10, 20, 40, 60, 80],
|
||||
'questname' => 'Героич. Сражения',
|
||||
'quest' => 'Поучаствовать в героическом сражении.',
|
||||
'check' => ['Участий', 100, 200, 400, 600, 1000],
|
||||
'prize' => ['Жетон <br>успеха <br>', 10, 20, 40, 60, 80],
|
||||
'startlink' => 71
|
||||
],
|
||||
'bv' => [
|
||||
'questname' => 'Ïðîäàæè Áàáóøêå',
|
||||
'quest' => 'Ïðîäàòü áàáóøêå íàéäåííûå âåùè â ïåùåðå.',
|
||||
'check' => ['Ïðîäàæ', 5, 25, 50, 100, 250],
|
||||
'prize' => ['êð.', 500, 1000, 2000, 4000, 5000],
|
||||
'questname' => 'Продажи Бабушке',
|
||||
'quest' => 'Продать бабушке найденные вещи в пещере.',
|
||||
'check' => ['Продаж', 5, 25, 50, 100, 250],
|
||||
'prize' => ['кр.', 500, 1000, 2000, 4000, 5000],
|
||||
'startlink' => 81
|
||||
],
|
||||
'kw' => [
|
||||
'questname' => 'Êëàí Ïîåäèíêè',
|
||||
'quest' => 'Ïîáåäèòü â êëàíîâîé âîéíå.',
|
||||
'check' => ['Ïîáåä', 5, 10, 15, 20, 25],
|
||||
'prize' => ['Ñâèòîê <br> êëàíîâîãî<br> îïûòà ', 1, 2, 5, 10, 15],
|
||||
'questname' => 'Клан Поединки',
|
||||
'quest' => 'Победить в клановой войне.',
|
||||
'check' => ['Побед', 5, 10, 15, 20, 25],
|
||||
'prize' => ['Свиток <br> кланового<br> опыта ', 1, 2, 5, 10, 15],
|
||||
'startlink' => 91
|
||||
],
|
||||
'pa' => [ # not implemented!
|
||||
'questname' => 'Ïîêðîâèòåëüñòâî',
|
||||
'quest' => 'Ïîëó÷èòü ïîêðîâèòåëüñòâî Àíãåëà.',
|
||||
'check' => ['Ïîëó÷åíî', 5, 25, 50, 100, 250],
|
||||
'questname' => 'Покровительство',
|
||||
'quest' => 'Получить покровительство Ангела.',
|
||||
'check' => ['Получено', 5, 25, 50, 100, 250],
|
||||
'prize' => null,
|
||||
'startlink' => null
|
||||
],
|
||||
'bs' => [
|
||||
'questname' => 'Áàøíÿ ñìåðòè',
|
||||
'quest' => 'Ïîáåäû â áàøíå ñìåðòè.',
|
||||
'check' => ['Ïîáåä', 1, 5, 10, 50, 500],
|
||||
'prize' => ['åêð.', 1, 5, 10, 50, 200],
|
||||
'questname' => 'Башня смерти',
|
||||
'quest' => 'Победы в башне смерти.',
|
||||
'check' => ['Побед', 1, 5, 10, 50, 500],
|
||||
'prize' => ['екр.', 1, 5, 10, 50, 200],
|
||||
'startlink' => 101
|
||||
],
|
||||
'trn' => [ # not implemented!
|
||||
'questname' => 'Òóðíèðû',
|
||||
'quest' => 'Ïîó÷àâñòâîâàòü â òóðíèðàõ.',
|
||||
'check' => ['Ïîáåä', 25, 50, 100, 200, 500],
|
||||
'prize' => ['åêð.', 25, 25, 25, 25, 50],
|
||||
'questname' => 'Турниры',
|
||||
'quest' => 'Поучавствовать в турнирах.',
|
||||
'check' => ['Побед', 25, 50, 100, 200, 500],
|
||||
'prize' => ['екр.', 25, 25, 25, 25, 50],
|
||||
'startlink' => 111
|
||||
],
|
||||
];
|
||||
@@ -102,19 +102,19 @@ class Achievements
|
||||
$this->info = Db::getRow('select * from users_achiv where id = ?', [$user->info['id']]);
|
||||
}
|
||||
|
||||
//fixme: ñþäà èíîãäà ïðèõîäèò (NULL, NULL).
|
||||
//fixme: сюда иногда приходит (NULL, NULL).
|
||||
private function prizeName(?int $int, ?string $string): string
|
||||
{
|
||||
return in_array($string, ['åêð.', 'êð.']) ? $int . ' ' . $string : $string . ' ' . $int;
|
||||
return in_array($string, ['екр.', 'кр.']) ? $int . ' ' . $string : $string . ' ' . $int;
|
||||
}
|
||||
|
||||
private function drawSunduk($nagr, $whatInside, $tier): string
|
||||
{
|
||||
return vsprintf(
|
||||
'<img onclick="%s" onmouseover="%s" onmouseout="%s" onmousedown="%s" class="cp" src="%s" alt="Ñóíäóê">',
|
||||
'<img onclick="%s" onmouseover="%s" onmouseout="%s" onmousedown="%s" class="cp" src="%s" alt="Сундук">',
|
||||
[
|
||||
"location.href='\main.php?titul&nagr=$nagr'",
|
||||
"top.hi(this, '<b>Ñóíäóê $tier ðàíãà<hr>Ñîäåðæèò:<hr> $whatInside</b>', event, 2, 0, 1, 1, 'max-width:307px')",
|
||||
"top.hi(this, '<b>Сундук $tier ранга<hr>Содержит:<hr> $whatInside</b>', event, 2, 0, 1, 1, 'max-width:307px')",
|
||||
"top.hic();",
|
||||
"top.hic();",
|
||||
"https://img.new-combats.com/i/titul/nagr$tier.gif"
|
||||
@@ -129,15 +129,15 @@ class Achievements
|
||||
|
||||
foreach ($this->data as $key => $value) {
|
||||
|
||||
//Áëÿ, êàêóþ õåðíþ ïðèõîäèòñÿ ãîðîäèòü!
|
||||
//Ïåðâîå ÷èñëî = òðåáîâàíèå ñëåäóþùåãî òèðà ìèíóñ òðåáîâàíèå òåêóùåãî òèðà (íàäî íàáðàòü)
|
||||
//Âòîðîå ÷èñëî = êîëè÷åñòâî äîñòèæåíèé ìèíóñ òðåáîâàíèå òåêóùåãî òèðà (íàáðàë)
|
||||
//Òðåáîâàíèÿ òåêóùåãî òèðà îòíèìàþòñÿ ÷òîáû êàæäûé òèð íà÷èíàë ñ÷èòàòü ïðîöåíò ñ 0.
|
||||
//Ïèçäû äàòü òîìó, êòî òàê óåáàíñêè íàçûâàåò ïåðåìåííûå, ÷òî íóæíî ïîëäíÿ âúåçæàòü ÷òî ïðîèñõîäèò.
|
||||
//È õåð ïîìåíÿåøü - âñ¸ ñëîìàåòñÿ. FFUUUUUUUUUUUUUU!!! Ins.
|
||||
//Бля, какую херню приходится городить!
|
||||
//Первое число = требование следующего тира минус требование текущего тира (надо набрать)
|
||||
//Второе число = количество достижений минус требование текущего тира (набрал)
|
||||
//Требования текущего тира отнимаются чтобы каждый тир начинал считать процент с 0.
|
||||
//Пизды дать тому, кто так уебански называет переменные, что нужно полдня въезжать что происходит.
|
||||
//И хер поменяешь - всё сломается. FFUUUUUUUUUUUUUU!!! Ins.
|
||||
|
||||
if (!is_numeric($value['check'][$this->info['klas' . $key]])) {
|
||||
// Ïîòîìû ÷òî ïåðâûé ýëåìåíò ìàññèâà - ñëîâî. Â ÐÍÐ5.4 ïðîêàòûâàëî, â ÐÍÐ7.4 - íåò.
|
||||
// Потомы что первый элемент массива - слово. В РНР5.4 прокатывало, в РНР7.4 - нет.
|
||||
$value['check'][$this->info['klas' . $key]] = 0;
|
||||
}
|
||||
|
||||
@@ -148,15 +148,15 @@ class Achievements
|
||||
$questname = empty($value['questname']) ? $value['quest'] : $value['questname'];
|
||||
$string .= '<h4>' . $questname . '</h4>';
|
||||
$string .= '<strong>' . $value['quest'] . '</strong><br>';
|
||||
$string .= 'Òåêóùèé Ðàíã: <strong>' . $this->info['klas' . $key] . '</strong> ';
|
||||
$string .= 'Êîëè÷åñòâî ' . mb_strtolower($value['check'][0]) . ': <strong>' . $this->info[$key] . ' = ' . $percentToSuccess . '%</strong>';
|
||||
$string .= 'Текущий Ранг: <strong>' . $this->info['klas' . $key] . '</strong> ';
|
||||
$string .= 'Количество ' . mb_strtolower($value['check'][0]) . ': <strong>' . $this->info[$key] . ' = ' . $percentToSuccess . '%</strong>';
|
||||
//$string .= '<progress value="' . $percentToSuccess . '" max="100" style="accent-color:green; appearance: none;">' . $percentToSuccess . '</progress>';
|
||||
|
||||
$string .= Table::get([
|
||||
['Ðàíãè', 1, 2, 3, 4, 5],
|
||||
['Ранги', 1, 2, 3, 4, 5],
|
||||
$value['check'],
|
||||
[
|
||||
'Íàãðàäà',
|
||||
'Награда',
|
||||
$this->prizeName($value['prize'][1], $value['prize'][0]),
|
||||
$this->prizeName($value['prize'][2], $value['prize'][0]),
|
||||
$this->prizeName($value['prize'][3], $value['prize'][0]),
|
||||
@@ -171,7 +171,7 @@ class Achievements
|
||||
!empty($value['prize']) &&
|
||||
!empty($value['startlink'])
|
||||
) {
|
||||
$string .= '<br>Íàãðàäà:<br>';
|
||||
$string .= '<br>Награда:<br>';
|
||||
$string .= $this->drawSunduk(
|
||||
$this->info[$key . '_n'] + $value['startlink'],
|
||||
$this->prizeName($value['prize'][$this->info[$key . '_n'] + 1], $value['prize'][0]),
|
||||
@@ -208,7 +208,7 @@ class Achievements
|
||||
if ($this->info[$k] >= $this->data[$k]['check'][$i]) {
|
||||
$this->info["klas$k"] = $i;
|
||||
if ($i === 5) {
|
||||
# Íà 5 ðàíãå äîëæíî îòäàâàòü ìàêñèìóì.
|
||||
# На 5 ранге должно отдавать максимум.
|
||||
$this->info["klasP$k"] = 100;
|
||||
} else {
|
||||
$this->info["klasP$k"] = Math::get100Percentage(
|
||||
|
||||
@@ -10,7 +10,7 @@ require_once 'Runes/Runes.php';
|
||||
//require_once 'Tournament/TournamentModel.php';
|
||||
require_once 'Achievements.php';
|
||||
|
||||
//Âìåñòî êðîíà äëÿ òóðíèðà.
|
||||
//Вместо крона для турнира.
|
||||
//if (Tournament::IS_ENABLED) {
|
||||
// (new Tournament())->startAllBattles();
|
||||
//}
|
||||
@@ -12,8 +12,8 @@ use PDOStatement;
|
||||
class DbOld
|
||||
{
|
||||
/**
|
||||
* Íàñòðîéêè ïîäêëþ÷åíèÿ
|
||||
* Ëó÷øå âûíîñèòü â êîíôèã
|
||||
* Настройки подключения
|
||||
* Лучше выносить в конфиг
|
||||
* self::DB_HOST -> Config::DB_HOST
|
||||
*/
|
||||
const DB_HOST = '127.0.0.1'; // localhost
|
||||
|
||||
@@ -4,7 +4,7 @@ namespace Insallah;
|
||||
|
||||
class Runes
|
||||
{
|
||||
/** Ñîçäà¸ì ðóíó â çàâèñèìîñòè îò óðîâíÿ.
|
||||
/** Создаём руну в зависимости от уровня.
|
||||
* @param $level
|
||||
*
|
||||
* @return array
|
||||
@@ -26,24 +26,24 @@ class Runes
|
||||
['s5', 'm11', 'mpAll', 'pzm']
|
||||
];
|
||||
$vars = [
|
||||
's1' => ['Ñèëà', mt_rand(1, $stats[$level])],
|
||||
's2' => ['Ëîâêîñòü', mt_rand(1, $stats[$level])],
|
||||
's3' => ['Èíòóèöèÿ', mt_rand(1, $stats[$level])],
|
||||
's5' => ['Èíòåëëåêò', mt_rand(1, $stats[$level])],
|
||||
'pa1' => ['Ìîùíîñòè Êîëþùåãî óðîíà', mt_rand(1, $power[$level])],
|
||||
'pa2' => ['Ìîùíîñòè Ðóáÿùåãî óðîíà', mt_rand(1, $power[$level])],
|
||||
'pa3' => ['Ìîùíîñòè Äðîáÿùåãî óðîíà', mt_rand(1, $power[$level])],
|
||||
'pa4' => ['Ìîùíîñòè Ðåæóùåãî óðîíà', mt_rand(1, $power[$level])],
|
||||
'm2' => ['ìô. Ïðîòèâ Êðèòè÷åñêîãî Óäàðà', mt_rand(5, 15)],
|
||||
'm3' => ['ÌÊ', mt_rand(1, 3)],
|
||||
'antm3' => ['ÏÌÊ', mt_rand(1, 3)],
|
||||
'm5' => ['ìô. Ïðîòèâ Óâåðòûâàíèÿ', mt_rand(5, 10)],
|
||||
'm11' => ['Ìîùíîñòè Ìàãèè ñòèõèè', mt_rand(1, $power[$level])],
|
||||
's1' => ['Сила', mt_rand(1, $stats[$level])],
|
||||
's2' => ['Ловкость', mt_rand(1, $stats[$level])],
|
||||
's3' => ['Интуиция', mt_rand(1, $stats[$level])],
|
||||
's5' => ['Интеллект', mt_rand(1, $stats[$level])],
|
||||
'pa1' => ['Мощности Колющего урона', mt_rand(1, $power[$level])],
|
||||
'pa2' => ['Мощности Рубящего урона', mt_rand(1, $power[$level])],
|
||||
'pa3' => ['Мощности Дробящего урона', mt_rand(1, $power[$level])],
|
||||
'pa4' => ['Мощности Режущего урона', mt_rand(1, $power[$level])],
|
||||
'm2' => ['мф. Против Критического Удара', mt_rand(5, 15)],
|
||||
'm3' => ['МК', mt_rand(1, 3)],
|
||||
'antm3' => ['ПМК', mt_rand(1, 3)],
|
||||
'm5' => ['мф. Против Увертывания', mt_rand(5, 10)],
|
||||
'm11' => ['Мощности Магии стихии', mt_rand(1, $power[$level])],
|
||||
'hpAll' => ['HP', mt_rand(5, 15)],
|
||||
'mpAll' => ['MP', mt_rand(10, 20)],
|
||||
'pzm' => ['Ïîäàâëåíèå çàùèòû îò ìàãèè', 1],
|
||||
'za' => ['Çàùèòà îò Óðîíà', mt_rand(5, 10)],
|
||||
'zma' => ['Çàùèòà îò Ìàãèè', mt_rand(5, 10)]
|
||||
'pzm' => ['Подавление защиты от магии', 1],
|
||||
'za' => ['Защита от Урона', mt_rand(5, 10)],
|
||||
'zma' => ['Защита от Магии', mt_rand(5, 10)]
|
||||
];
|
||||
|
||||
$rune = $runes[array_rand($runes)]; // arr (s, pa\m, rand9\mpAll, other)
|
||||
@@ -51,40 +51,40 @@ class Runes
|
||||
$runeVals = [$vars[$rune[0]][1], $vars[$rune[1]][1], $vars[$rune[2]][1], $vars[$rune[3]][1]];
|
||||
$resultRune = array_combine($rune, $runeVals);
|
||||
$resultText = array_combine($runeTxt, $runeVals);
|
||||
if ($level < 10) { // Îòðåçàåì ïàðàìåòð 4.
|
||||
if ($level < 10) { // Отрезаем параметр 4.
|
||||
array_pop($resultRune);
|
||||
array_pop($resultText);
|
||||
}
|
||||
if ($level < 9) { // Îòðåçàåì ïàðàìåòð 3.
|
||||
if ($level < 9) { // Отрезаем параметр 3.
|
||||
array_pop($resultRune);
|
||||
array_pop($resultText);
|
||||
}
|
||||
//Ñòðî÷êà data â áàçó
|
||||
//Строчка data в базу
|
||||
$returnData = '|' . http_build_query($resultRune, '', '|');
|
||||
$returnData = str_replace('|', '|add_', $returnData);
|
||||
//Ñòðî÷êà ÷åëîâåêîïîíÿòíûõ ïàðàìåòðîâ â ñòàòóñ.
|
||||
//Строчка человекопонятных параметров в статус.
|
||||
$returnText = urldecode(http_build_query($resultText, '', ', '));
|
||||
$returnText = 'Õàðàêòåðèñòèêè Ðóíû: ' . str_replace('=', ': +', $returnText) . '.';
|
||||
$returnText = 'Характеристики Руны: ' . str_replace('=', ': +', $returnText) . '.';
|
||||
return [$returnData, $returnText];
|
||||
}
|
||||
|
||||
/** Âûêóñûâàåò ðóíó èç ïðåäìåòà.
|
||||
/** Выкусывает руну из предмета.
|
||||
*
|
||||
* @param array $itemDataArray
|
||||
* data ïðåäìåòà
|
||||
* data предмета
|
||||
*
|
||||
* @return array ìàññèâ, item - ïðåäìåò, rune - ðóíà èç ïðåäìåòà, rune_id - id ðóíû.
|
||||
* Îáà â ïîäãîòîâëåííîì ñòðî÷íîì ôîðìàòå äëÿ data
|
||||
* @return array массив, item - предмет, rune - руна из предмета, rune_id - id руны.
|
||||
* Оба в подготовленном строчном формате для data
|
||||
*/
|
||||
public static function removeRuneData($itemDataArray)
|
||||
{
|
||||
# Èùåì åñòü ëè â ïðåäìåòå ðóíà îïðåäåë¸ííîãî òèïà.
|
||||
# Ищем есть ли в предмете руна определённого типа.
|
||||
$runeid = array_search('rune_id', array_flip($itemDataArray));
|
||||
if (!in_array($runeid, [6001, 6002, 6003])) {
|
||||
return [];
|
||||
}
|
||||
$bonusArgs = 0;
|
||||
#  çàâèñèìîñòè îò òèïà ðóíû ñ÷èòàåì êîëè÷åñòâî ýëåìåíòîâ-áîíóñîâ.
|
||||
# В зависимости от типа руны считаем количество элементов-бонусов.
|
||||
if ($runeid === 6001) {
|
||||
$bonusArgs = 2;
|
||||
}
|
||||
|
||||
@@ -11,13 +11,13 @@ class Tournament
|
||||
private const PRIZE2 = 10;
|
||||
private const PRIZE3 = 5;
|
||||
const MIN_EXP = 175000;
|
||||
private const CHAT_MESSAGE = 'Âíèìàíèå! Òóðíèð äëÿ %d óðîâíÿ îòêðûò! Ïîñïåøèòå ïðèíÿòü ó÷àñòèå â Çàëå Âîèíîâ!';
|
||||
private const VICTORY_MESSAGE = 'Òóðíèð äëÿ %d óðîâíåé çàâåðø¸í! Ïåðâîå ìåñòî: %s. Âòîðîå ìåñòî: %s. Òðåòüå ìåñòî: %s.';
|
||||
private const CHAT_MESSAGE = 'Внимание! Турнир для %d уровня открыт! Поспешите принять участие в Зале Воинов!';
|
||||
private const VICTORY_MESSAGE = 'Турнир для %d уровней завершён! Первое место: %s. Второе место: %s. Третье место: %s.';
|
||||
private const DELAY1 = '+12hour';
|
||||
private const DELAY2 = '+6hour';
|
||||
private const DELAY3 = '+3hour';
|
||||
|
||||
/** Ôîðìóëà ðàññ÷¸òà ðàçðåø¸ííîé ñòîèìîñòè îäåòûõ ïðåäìåòîâ.
|
||||
/** Формула рассчёта разрешённой стоимости одетых предметов.
|
||||
*
|
||||
* @param int $int
|
||||
*
|
||||
@@ -29,7 +29,7 @@ class Tournament
|
||||
}
|
||||
|
||||
/**
|
||||
* Ïðîâåðÿåì ìîæåò ëè èãðîê ó÷àâñòâîâàòü â òóðíèðå è ëèáî ïðèñîåäèíÿåì åãî, ëèáî îáëàìûâàåì.
|
||||
* Проверяем может ли игрок учавствовать в турнире и либо присоединяем его, либо обламываем.
|
||||
*
|
||||
* @param int $uid
|
||||
*
|
||||
@@ -37,7 +37,7 @@ class Tournament
|
||||
*/
|
||||
public function join(int $uid): void
|
||||
{
|
||||
/** Âîçâðàùàåò level, èëè 0 åñëè ïðîâàëåíû ïðîâåðêè. */
|
||||
/** Возвращает level, или 0 если провалены проверки. */
|
||||
$userLevel = TournamentModel::getUserLevel($uid);
|
||||
if (
|
||||
$userLevel === 0 ||
|
||||
@@ -67,7 +67,7 @@ class Tournament
|
||||
}
|
||||
|
||||
/**
|
||||
* Ïðîâåðêà äëÿ êðîíà\êîíôèãà. Âûáèâàåò ïðîèãðàâøèõ è ïåðåçàïóñêàåò ïîåäèíêè âî âñåõ òóðíèðàõ.
|
||||
* Проверка для крона\конфига. Выбивает проигравших и перезапускает поединки во всех турнирах.
|
||||
* @return void
|
||||
*/
|
||||
public function startAllBattles(): void
|
||||
@@ -91,7 +91,7 @@ class Tournament
|
||||
}
|
||||
|
||||
/**
|
||||
* Ïîëó÷àåì ïàðû áîéöîâ è íà÷èíàåì èõ ïîåäèíêè.
|
||||
* Получаем пары бойцов и начинаем их поединки.
|
||||
*
|
||||
* @param array $fightersList
|
||||
*
|
||||
@@ -108,7 +108,7 @@ class Tournament
|
||||
}
|
||||
|
||||
/**
|
||||
* Íàãðàæäàåì ïîáåäèòåëåé òóðíèðà, ÷èñòèì áàçó.
|
||||
* Награждаем победителей турнира, чистим базу.
|
||||
*
|
||||
* @param int $tid
|
||||
*
|
||||
|
||||
@@ -6,8 +6,8 @@ class TournamentModel
|
||||
{
|
||||
|
||||
/**
|
||||
* ïðîâåðêà óðîâíÿ, ñòîèìîñòè ýêâèïà, ïðî÷èå ïðîâåðêè, ÷òî ïåðñîíàæ ñâîáîäåí
|
||||
* òàéìåð îæèäàíèÿ 30 ìèíóò
|
||||
* проверка уровня, стоимости эквипа, прочие проверки, что персонаж свободен
|
||||
* таймер ожидания 30 минут
|
||||
*
|
||||
* @param int $uid
|
||||
*
|
||||
@@ -70,7 +70,7 @@ class TournamentModel
|
||||
}
|
||||
|
||||
/**
|
||||
* Ñ÷èòàåì ñêîëüêî èãðîêîâ æäóò â çàÿâêå íà òóðíèð.
|
||||
* Считаем сколько игроков ждут в заявке на турнир.
|
||||
*
|
||||
* @param int $tid
|
||||
*
|
||||
@@ -83,7 +83,7 @@ class TournamentModel
|
||||
}
|
||||
|
||||
/**
|
||||
* Ñîçäàíèå íîâîãî òóðíèðà.
|
||||
* Создание нового турнира.
|
||||
*
|
||||
* @param int $tid
|
||||
*
|
||||
@@ -96,7 +96,7 @@ class TournamentModel
|
||||
}
|
||||
|
||||
/**
|
||||
* Èãðîê ïðèñîåäèíÿåòñÿ ê òóðíèðó è òåëåïîðòèðóåòñÿ â òóðíèðíóþ êîìíàòó.
|
||||
* Игрок присоединяется к турниру и телепортируется в турнирную комнату.
|
||||
*
|
||||
* @param int $uid
|
||||
* @param int $tid
|
||||
@@ -105,7 +105,7 @@ class TournamentModel
|
||||
*/
|
||||
public static function joinTournament(int $uid, int $tid): void
|
||||
{
|
||||
/** Êàñòîìíûå êîìíàòû 25008 - 25012. */
|
||||
/** Кастомные комнаты 25008 - 25012. */
|
||||
$roomId = 25000 + $tid;
|
||||
$db = new Db();
|
||||
$db::sql('insert into tournaments_users (tid, uid) values (?, ?)', [$tid, $uid]);
|
||||
@@ -113,7 +113,7 @@ class TournamentModel
|
||||
}
|
||||
|
||||
/**
|
||||
* Ñòàðò òóðíèðà.
|
||||
* Старт турнира.
|
||||
*
|
||||
* @param int $tid
|
||||
*
|
||||
@@ -126,7 +126,7 @@ class TournamentModel
|
||||
}
|
||||
|
||||
/**
|
||||
* ×èñòèì áàçû îò ïðîøåäøåãî òóðíèðà.
|
||||
* Чистим базы от прошедшего турнира.
|
||||
*
|
||||
* @param int $tid
|
||||
*
|
||||
@@ -135,12 +135,12 @@ class TournamentModel
|
||||
public static function destroyTournament(int $tid): void
|
||||
{
|
||||
$db = new Db();
|
||||
//Óáåäèòüñÿ ÷òî â áàçå íàñòðîåí foreign_keys è ïîñëåäóåò àâòîî÷èñòêà tournaments_users !!!
|
||||
//Убедиться что в базе настроен foreign_keys и последует автоочистка tournaments_users !!!
|
||||
$db::sql('delete from tournaments where tid = ?', [$tid]);
|
||||
}
|
||||
|
||||
/**
|
||||
* Ïîëó÷àåì ñïèñîê áîéöîâ è áü¸ì èõ íà ïàðû. Âîçâðàùàåì ñïèñêè ïàð + 1 ïîñëåäíèé áåç ïàðû åñëè åñòü.
|
||||
* Получаем список бойцов и бьём их на пары. Возвращаем списки пар + 1 последний без пары если есть.
|
||||
*
|
||||
* @param array $fightersList
|
||||
*
|
||||
@@ -154,7 +154,7 @@ class TournamentModel
|
||||
}
|
||||
|
||||
/**
|
||||
* Âûáèðàåì æèâûõ áîéöîâ íå ñðàæàþùèõñÿ â äàííûé ìîìåíò.
|
||||
* Выбираем живых бойцов не сражающихся в данный момент.
|
||||
*
|
||||
* @param int $tid
|
||||
*
|
||||
@@ -167,7 +167,7 @@ class TournamentModel
|
||||
}
|
||||
|
||||
/**
|
||||
* Âûáèðàåì ïîáåäèòåëåé. Ñìåùàåì ìàññèâ, ÷òîáû âîçâðàò ø¸ë ñ åäèíèöû.
|
||||
* Выбираем победителей. Смещаем массив, чтобы возврат шёл с единицы.
|
||||
*
|
||||
* @param int $tid
|
||||
*
|
||||
@@ -185,7 +185,7 @@ class TournamentModel
|
||||
}
|
||||
|
||||
/**
|
||||
* Ïðîáóåì âûêóñèòü ïðîèãðàâøåãî â ïîñëåäíåé òóðíèðíîé áèòâå è óäàëèòü ýòó ñàìóþ áèòâó âî èçáåæàíèå.
|
||||
* Пробуем выкусить проигравшего в последней турнирной битве и удалить эту самую битву во избежание.
|
||||
* @return mixed
|
||||
*/
|
||||
public static function getLooser()
|
||||
@@ -216,7 +216,7 @@ class TournamentModel
|
||||
}
|
||||
|
||||
/**
|
||||
* Âûáûâøèé èç òóðíèðà ïîêèäàåò êîìíàòó è ïîëó÷àåò âðåìÿ ñìåðòè.
|
||||
* Выбывший из турнира покидает комнату и получает время смерти.
|
||||
*
|
||||
* @param int $uid
|
||||
* @param bool $winner
|
||||
@@ -227,17 +227,17 @@ class TournamentModel
|
||||
if (!$uid) {
|
||||
return;
|
||||
}
|
||||
//$winner_timer_add = $winner? 500 : 0; # Ïîñëåäíûé ÄÎËÆÅÍ áûòü ïîñëåäíèì.
|
||||
//$winner_timer_add = $winner? 500 : 0; # Последный ДОЛЖЕН быть последним.
|
||||
$db = new Db();
|
||||
$db::sql('update tournaments_users set death_time = unix_timestamp() + 500 where death_time = 0 and uid = ?', [$uid]);
|
||||
self::teleport($uid, 9);
|
||||
//fixme: Êëàññû íå ïîäêëþ÷àþòñÿ äðóã ê äðóãó. Íóæíî ìåíÿòü àðõèòåêòóðó èãðû. :(
|
||||
//fixme: Классы не подключаются друг к другу. Нужно менять архитектуру игры. :(
|
||||
Db::sql("update users_achiv set trn = trn + 1 where id = ?", [$uid]);
|
||||
//(new Achievements(\user::start()))->updateCounter('trn');
|
||||
}
|
||||
|
||||
/**
|
||||
* Óçíà¸ì id òóðíèðà ïî id èãðîêà.
|
||||
* Узнаём id турнира по id игрока.
|
||||
*
|
||||
* @param int $uid
|
||||
*
|
||||
@@ -250,10 +250,10 @@ class TournamentModel
|
||||
}
|
||||
|
||||
/**
|
||||
* Ïîïðîáóåì ñòàðòîíóòü ïîåäèíîê.
|
||||
* 25000 - Óíèêàëüíûé id ïîåäèíêà ïîä òóðíèðû.
|
||||
* noinc - çàïðåò íà âìåøàòåëüñòâî
|
||||
* invis - íåâèäèìûé áîé
|
||||
* Попробуем стартонуть поединок.
|
||||
* 25000 - Уникальный id поединка под турниры.
|
||||
* noinc - запрет на вмешательство
|
||||
* invis - невидимый бой
|
||||
*
|
||||
* @param int $uid1
|
||||
* @param int $uid2
|
||||
@@ -270,14 +270,14 @@ class TournamentModel
|
||||
|
||||
$db::exec('insert into battle (city, time_start, timeout, type, invis, noinc, travmChance, typeBattle)
|
||||
values (\'capitalcity\', unix_timestamp(), 60, 0, 1, 1, 0, 25000)');
|
||||
$bid = $db::lastInsertId(); // ÂÀÆÍÎ!
|
||||
$bid = $db::lastInsertId(); // ВАЖНО!
|
||||
$db::sql('update stats set team = 1, hpNow = hpAll, mpNow = mpAll where id = ?', [$uid1]);
|
||||
$db::sql('update stats set team = 2, hpNow = hpAll, mpNow = mpAll where id = ?', [$uid2]);
|
||||
$db::sql('update users set battle = ? where id in (?, ?)', [$bid, $uid1, $uid2]);
|
||||
}
|
||||
|
||||
/**
|
||||
* Óçíà¸ì ëîãèí ïåðñîíàæà ïî åãî id.
|
||||
* Узнаём логин персонажа по его id.
|
||||
*
|
||||
* @param int $uid
|
||||
*
|
||||
@@ -290,7 +290,7 @@ class TournamentModel
|
||||
}
|
||||
|
||||
/**
|
||||
* Òåëåïîðò ïî êîìíàòàì.
|
||||
* Телепорт по комнатам.
|
||||
*
|
||||
* @param int $uid
|
||||
* @param int $roomId
|
||||
@@ -304,7 +304,7 @@ class TournamentModel
|
||||
}
|
||||
|
||||
/**
|
||||
* Íåò ïðîâåðîê $message ïîòîìó ÷òî îíî âñåãäà çàäà¸òñÿ â êîäå è èãðîê íà íåãî íå âëèÿåò.
|
||||
* Нет проверок $message потому что оно всегда задаётся в коде и игрок на него не влияет.
|
||||
*
|
||||
* @param string $message
|
||||
*
|
||||
@@ -320,7 +320,7 @@ class TournamentModel
|
||||
}
|
||||
|
||||
/**
|
||||
* Ãåíåðèðóåò ìíîæåñòâåííûé çàïðîñ ñðàçó íà $quantity îäíîòèïíûõ ïðåäìåòîâ â èíâåíòàðü ïîëüçîâàòåëÿ $uid.
|
||||
* Генерирует множественный запрос сразу на $quantity однотипных предметов в инвентарь пользователя $uid.
|
||||
*
|
||||
* @param int $uid
|
||||
* @param int $quantity
|
||||
@@ -342,7 +342,7 @@ class TournamentModel
|
||||
}
|
||||
}
|
||||
|
||||
/** Ýôôåêò-îãðàíè÷èòåëü íà ó÷àñòèå â òóðíèðå.
|
||||
/** Эффект-ограничитель на участие в турнире.
|
||||
* @param int $uid
|
||||
* @param int $unixtime
|
||||
*
|
||||
@@ -352,7 +352,7 @@ class TournamentModel
|
||||
{
|
||||
$db = new Db();
|
||||
$query = 'insert into eff_users (id_eff, uid, name, timeUse) VALUES (?,?,?,?)';
|
||||
$args = [486, $uid, 'Ïðèç¸ð ãîðîäñêîãî òóðíèðà!', $unixtime];
|
||||
$args = [486, $uid, 'Призёр городского турнира!', $unixtime];
|
||||
$db::sql($query, $args);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -11,8 +11,8 @@ class Config
|
||||
const PRIZE2 = 10;
|
||||
const PRIZE3 = 5;
|
||||
const MIN_EXP = 175000;
|
||||
const CHAT_MESSAGE = 'Âíèìàíèå! Òóðíèð äëÿ %d óðîâíÿ îòêðûò! Ïîñïåøèòå ïðèíÿòü ó÷àñòèå â Çàëå Âîèíîâ!';
|
||||
const VICTORY_MESSAGE = 'Òóðíèð äëÿ %d óðîâíåé çàâåðø¸í! Ïåðâîå ìåñòî: %s. Âòîðîå ìåñòî: %s. Òðåòüå ìåñòî: %s.';
|
||||
const CHAT_MESSAGE = 'Внимание! Турнир для %d уровня открыт! Поспешите принять участие в Зале Воинов!';
|
||||
const VICTORY_MESSAGE = 'Турнир для %d уровней завершён! Первое место: %s. Второе место: %s. Третье место: %s.';
|
||||
const DELAY1 = '+12hour';
|
||||
const DELAY2 = '+6hour';
|
||||
const DELAY3 = '+3hour';
|
||||
@@ -23,7 +23,7 @@ class Config
|
||||
const RETURN_ROOM = 9;
|
||||
const MINIMUM_USER_LEVEL = 8;
|
||||
|
||||
/** Ôîðìóëà ðàññ÷¸òà ðàçðåø¸ííîé ñòîèìîñòè îäåòûõ ïðåäìåòîâ.
|
||||
/** Формула рассчёта разрешённой стоимости одетых предметов.
|
||||
*
|
||||
* @param $level
|
||||
* @return float|int
|
||||
|
||||
@@ -48,7 +48,7 @@ class GameConnector
|
||||
}
|
||||
|
||||
/**
|
||||
* Óçíà¸ì ëîãèí ïåðñîíàæà ïî åãî id.
|
||||
* Узнаём логин персонажа по его id.
|
||||
*
|
||||
* @return mixed
|
||||
*/
|
||||
@@ -58,9 +58,9 @@ class GameConnector
|
||||
}
|
||||
|
||||
/**
|
||||
* Òåëåïîðò ïî êîìíàòàì.
|
||||
* Телепорт по комнатам.
|
||||
*
|
||||
* @param bool $out - îáðàòíûé òåëåïîðò.
|
||||
* @param bool $out - обратный телепорт.
|
||||
*
|
||||
* @return void
|
||||
*/
|
||||
@@ -71,9 +71,9 @@ class GameConnector
|
||||
}
|
||||
|
||||
/**
|
||||
* Ïîëó÷àåì ñïèñîê áîéöîâ è áü¸ì èõ íà ïàðû, ìåæäó êîòîðûìè ñòàðòóþò ïîåäèíêè 1õ1.
|
||||
* noinc - çàïðåò íà âìåøàòåëüñòâî
|
||||
* invis - íåâèäèìûé áîé
|
||||
* Получаем список бойцов и бьём их на пары, между которыми стартуют поединки 1х1.
|
||||
* noinc - запрет на вмешательство
|
||||
* invis - невидимый бой
|
||||
*
|
||||
* @param array $fightersList
|
||||
*
|
||||
@@ -100,7 +100,7 @@ class GameConnector
|
||||
}
|
||||
|
||||
/**
|
||||
* Ãåíåðèðóåò ìíîæåñòâåííûé çàïðîñ ñðàçó íà $quantity îäíîòèïíûõ ïðåäìåòîâ â èíâåíòàðü ïîëüçîâàòåëÿ $uid.
|
||||
* Генерирует множественный запрос сразу на $quantity однотипных предметов в инвентарь пользователя $uid.
|
||||
*
|
||||
* @param int $quantity
|
||||
*
|
||||
@@ -120,7 +120,7 @@ class GameConnector
|
||||
}
|
||||
}
|
||||
|
||||
/** Ýôôåêò-îãðàíè÷èòåëü íà ó÷àñòèå â òóðíèðå.
|
||||
/** Эффект-ограничитель на участие в турнире.
|
||||
*
|
||||
* @param int $unixtime
|
||||
*
|
||||
@@ -134,7 +134,7 @@ class GameConnector
|
||||
}
|
||||
|
||||
/**
|
||||
* Ïðîáóåì âûêóñèòü ïðîèãðàâøåãî â ïîñëåäíåé òóðíèðíîé áèòâå è óäàëèòü ýòó ñàìóþ áèòâó âî èçáåæàíèå.
|
||||
* Пробуем выкусить проигравшего в последней турнирной битве и удалить эту самую битву во избежание.
|
||||
* @return mixed
|
||||
*/
|
||||
public static function getLooser(): int
|
||||
@@ -157,7 +157,7 @@ class GameConnector
|
||||
}
|
||||
|
||||
/**
|
||||
* Íåò ïðîâåðîê $message ïîòîìó ÷òî îíî âñåãäà çàäà¸òñÿ â êîäå è èãðîê íà íåãî íå âëèÿåò.
|
||||
* Нет проверок $message потому что оно всегда задаётся в коде и игрок на него не влияет.
|
||||
*
|
||||
* @param string $message
|
||||
*
|
||||
|
||||
@@ -39,19 +39,19 @@ class Tournament
|
||||
$list = '';
|
||||
$tournamentMembersId = new User();
|
||||
foreach ($this->t as $row) {
|
||||
$time = $row['start_time'] === -1 ? 'Òóðíèð óæå íà÷àëñÿ!' : date('G:i', $row['start_time']);
|
||||
$time = $row['start_time'] === -1 ? 'Турнир уже начался!' : date('G:i', $row['start_time']);
|
||||
$members = [];
|
||||
foreach ($tournamentMembersId->getAlive($row['tid']) as $member) {
|
||||
$members[] = (new GameConnector())->setUser($member)->uidToLogin();
|
||||
}
|
||||
$list .= sprintf(
|
||||
"<li>Òóðíèð äëÿ %d óðîâíåé.<br>Âðåìÿ ïîäà÷è çàÿâêè: %s<br>Ó÷àñòíèêè: %s</li>",
|
||||
"<li>Турнир для %d уровней.<br>Время подачи заявки: %s<br>Участники: %s</li>",
|
||||
$row['tid'],
|
||||
$time,
|
||||
implode(', ', $members)
|
||||
);
|
||||
}
|
||||
return $list ? "<div><strong>Àêòèâíûå òóðíèðû.</strong><br><ul>$list</ul></div>" : '';
|
||||
return $list ? "<div><strong>Активные турниры.</strong><br><ul>$list</ul></div>" : '';
|
||||
}
|
||||
|
||||
public function getOne(int $tid): string
|
||||
@@ -60,13 +60,13 @@ class Tournament
|
||||
$tournamentMembersId = new User();
|
||||
foreach ($this->t as $row) {
|
||||
if ($this->t['tid'] === $tid) {
|
||||
$time = $row['start_time'] === -1 ? 'Òóðíèð óæå íà÷àëñÿ!' : date('G:i', $row['start_time']);
|
||||
$time = $row['start_time'] === -1 ? 'Турнир уже начался!' : date('G:i', $row['start_time']);
|
||||
$members = [];
|
||||
foreach ($tournamentMembersId->getAlive($row['tid']) as $member) {
|
||||
$members[] = (new GameConnector())->setUser($member)->uidToLogin();
|
||||
}
|
||||
$str = sprintf(
|
||||
"<div>Òóðíèð äëÿ %d óðîâíåé.<br>Âðåìÿ ïîäà÷è çàÿâêè: %s<br>Ó÷àñòíèêè: %s</div>",
|
||||
"<div>Турнир для %d уровней.<br>Время подачи заявки: %s<br>Участники: %s</div>",
|
||||
$row['tid'],
|
||||
$time,
|
||||
implode(', ', $members)
|
||||
@@ -77,7 +77,7 @@ class Tournament
|
||||
}
|
||||
|
||||
/**
|
||||
* Ñîçäàíèå íîâîãî òóðíèðà.
|
||||
* Создание нового турнира.
|
||||
*
|
||||
* @param int $tid
|
||||
*
|
||||
@@ -89,7 +89,7 @@ class Tournament
|
||||
}
|
||||
|
||||
/**
|
||||
* Ñòàðò òóðíèðà.
|
||||
* Старт турнира.
|
||||
*
|
||||
* @param int $tid
|
||||
*
|
||||
@@ -101,7 +101,7 @@ class Tournament
|
||||
}
|
||||
|
||||
/**
|
||||
* ×èñòèì áàçû îò ïðîøåäøåãî òóðíèðà.
|
||||
* Чистим базы от прошедшего турнира.
|
||||
*
|
||||
* @param int $tid
|
||||
*
|
||||
|
||||
@@ -16,7 +16,7 @@ class User
|
||||
|
||||
|
||||
/**
|
||||
* Ñ÷èòàåì ñêîëüêî èãðîêîâ æäóò â çàÿâêå íà òóðíèð.
|
||||
* Считаем сколько игроков ждут в заявке на турнир.
|
||||
*
|
||||
* @param int $tid
|
||||
*
|
||||
@@ -38,7 +38,7 @@ class User
|
||||
}
|
||||
|
||||
/**
|
||||
* Èãðîê ïðèñîåäèíÿåòñÿ ê òóðíèðó è òåëåïîðòèðóåòñÿ â òóðíèðíóþ êîìíàòó.
|
||||
* Игрок присоединяется к турниру и телепортируется в турнирную комнату.
|
||||
*
|
||||
* @param int $uid
|
||||
* @param int $tid
|
||||
@@ -52,10 +52,10 @@ class User
|
||||
}
|
||||
|
||||
/**
|
||||
* Âûáèðàåì æèâûõ áîéöîâ íå ñðàæàþùèõñÿ â äàííûé ìîìåíò.
|
||||
* Выбираем живых бойцов не сражающихся в данный момент.
|
||||
*
|
||||
* @param int $tid
|
||||
* @param bool $shuffle - óñòàíîâèòü true åñëè íóæíî ïåðåòàñîâàòü ìàññèâ.
|
||||
* @param bool $shuffle - установить true если нужно перетасовать массив.
|
||||
*
|
||||
* @return array
|
||||
*/
|
||||
@@ -74,7 +74,7 @@ class User
|
||||
}
|
||||
|
||||
/**
|
||||
* Âûáèðàåì ïîáåäèòåëåé.
|
||||
* Выбираем победителей.
|
||||
*
|
||||
* @param int $tid
|
||||
*
|
||||
@@ -102,7 +102,7 @@ class User
|
||||
}
|
||||
|
||||
/**
|
||||
* Âûáûâøèé èç òóðíèðà ïîêèäàåò êîìíàòó è ïîëó÷àåò âðåìÿ ñìåðòè.
|
||||
* Выбывший из турнира покидает комнату и получает время смерти.
|
||||
*
|
||||
* @param int $uid
|
||||
*
|
||||
@@ -115,7 +115,7 @@ class User
|
||||
}
|
||||
|
||||
/**
|
||||
* Óçíà¸ì id òóðíèðà ïî id èãðîêà.
|
||||
* Узнаём id турнира по id игрока.
|
||||
*
|
||||
* @param int $uid
|
||||
*
|
||||
|
||||
@@ -5,7 +5,7 @@ namespace Insallah\Tournaments;
|
||||
class Tournament
|
||||
{
|
||||
/**
|
||||
* Ïðîâåðÿåì ìîæåò ëè èãðîê ó÷àâñòâîâàòü â òóðíèðå è ëèáî ïðèñîåäèíÿåì åãî, ëèáî îáëàìûâàåì.
|
||||
* Проверяем может ли игрок учавствовать в турнире и либо присоединяем его, либо обламываем.
|
||||
*
|
||||
* @param int $uid
|
||||
*
|
||||
@@ -13,7 +13,7 @@ class Tournament
|
||||
*/
|
||||
public function join(int $uid)
|
||||
{
|
||||
/** Âîçâðàùàåò level, èëè 0 åñëè ïðîâàëåíû ïðîâåðêè. */
|
||||
/** Возвращает level, или 0 если провалены проверки. */
|
||||
$checks = new Model\GameConnector();
|
||||
$tournament = new Model\Tournament();
|
||||
$userLevel = $checks->setUser($uid)->getAllowedLevel();
|
||||
@@ -47,7 +47,7 @@ class Tournament
|
||||
}
|
||||
|
||||
/**
|
||||
* Ïðîâåðêà äëÿ êðîíà\êîíôèãà. Âûáèâàåò ïðîèãðàâøèõ è ïåðåçàïóñêàåò ïîåäèíêè âî âñåõ òóðíèðàõ.
|
||||
* Проверка для крона\конфига. Выбивает проигравших и перезапускает поединки во всех турнирах.
|
||||
* @return void
|
||||
*/
|
||||
public static function startAllBattles()
|
||||
@@ -70,7 +70,7 @@ class Tournament
|
||||
}
|
||||
|
||||
/**
|
||||
* Íàãðàæäàåì ïîáåäèòåëåé òóðíèðà, ÷èñòèì áàçó.
|
||||
* Награждаем победителей турнира, чистим базу.
|
||||
*
|
||||
* @param int $tid
|
||||
*
|
||||
|
||||
@@ -14,34 +14,34 @@ class TList
|
||||
public function __construct($user)
|
||||
{
|
||||
if (!Config::IS_ENABLED) {
|
||||
$this->str = '<div><strong style="color: crimson;">Â äàííûé ìîìåíò òóðíèðû íå ïðîâîäÿòñÿ!</strong></div>';
|
||||
$this->str = '<div><strong style="color: crimson;">В данный момент турниры не проводятся!</strong></div>';
|
||||
return;
|
||||
}
|
||||
$tournamentstatus = new Tournament();
|
||||
$this->str = '<div>
|
||||
<strong style="color: crimson;">Âíèìàíèå!</strong>
|
||||
<strong style="color: crimson;">Внимание!</strong>
|
||||
<ul>
|
||||
<li>Ïðèñîåäèíÿÿñü ê òóðíèðó ïîêèíóòü çàÿâêó <u>íåâîçìîæíî</u>!</li>';
|
||||
<li>Присоединяясь к турниру покинуть заявку <u>невозможно</u>!</li>';
|
||||
if ((new GameConnector())->setUser($user->info['id'])->isEkrOverpriced()) {
|
||||
$this->str .= '<li>Ñòîèìîñòü ïðåäìåòîâ, îäåòûõ íà âàñ íå äîëæíà
|
||||
ïðåâûøàòü ' . Config::ekrOverpriceFormula($user->info['level']) . ' åâðîêðåäèòîâ.
|
||||
$this->str .= '<li>Стоимость предметов, одетых на вас не должна
|
||||
превышать ' . Config::ekrOverpriceFormula($user->info['level']) . ' еврокредитов.
|
||||
</li>';
|
||||
}
|
||||
if ($user->info['exp'] < Config::MIN_EXP) {
|
||||
$this->str .= '<li>Ó âàñ äîëæíî áûòü íå ìåíåå ' . Config::MIN_EXP . ' îïûòà.</li>';
|
||||
$this->str .= '<li>У вас должно быть не менее ' . Config::MIN_EXP . ' опыта.</li>';
|
||||
}
|
||||
$this->str .= '<li>Òóðíèð íà÷í¸òñÿ, êîãäà â çàÿâêå
|
||||
íàáåð¸òñÿ ' . Config::START_TOURNAMENT . ' ÷åëîâåê.</li>
|
||||
$this->str .= '<li>Турнир начнётся, когда в заявке
|
||||
наберётся ' . Config::START_TOURNAMENT . ' человек.</li>
|
||||
</ul>
|
||||
</div>';
|
||||
$this->str .= $tournamentstatus->getList();
|
||||
if (!User::getTournamentIdByUserId($user->info['id']) || !$tournamentstatus->isStarted($user->info['level'])) {
|
||||
$this->str .= '<form method="post">
|
||||
<input type="submit" name="tournament_start" value="Ïðèíÿòü ó÷àñòèå â òóðíèðå">
|
||||
<input type="submit" name="tournament_start" value="Принять участие в турнире">
|
||||
<input type="hidden" name="key" value="' . $_SESSION['bypass'] . '">
|
||||
</form>';
|
||||
} else {
|
||||
$this->str .= 'Âû ó÷àâñòâóåòå.';
|
||||
$this->str .= 'Вы учавствуете.';
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user