b9b4c01cf0
Signed-off-by: lopar <lopar.4ever@gmail.com>
473 lines
20 KiB
PHP
473 lines
20 KiB
PHP
<?php
|
||
/**
|
||
* Copyright (c) 2019.
|
||
* Author: Igor Barkov <lopar.4ever@gmail.com>
|
||
* Project name: Battles-Game
|
||
* One file to rule 'em all!
|
||
*/
|
||
|
||
use Battles\Database\Db;
|
||
use Battles\Template;
|
||
use Battles\User;
|
||
|
||
require_once 'functions.php';
|
||
if (!empty($_GET['teleport']) && User::getInstance()->getAdmin() == 1) {
|
||
Db::getInstance()->execute('update users, online set users.room = 20, online.room = 20 where user_id = id and user_id = ?', User::getInstance()->getId());
|
||
}
|
||
|
||
# ORDEN PHP
|
||
$_POST['use'] ??= null;
|
||
|
||
if (User::getInstance()->getAdmin()) {
|
||
$abil = Db::getInstance()->execute('SELECT 1 FROM users WHERE id = ?', User::getInstance()->getId())->fetchColumn();
|
||
//$abil = unserialize($abil['abil']);
|
||
switch ($_POST['use']) {
|
||
case "healing":
|
||
include_once("./magic/Healing.php");
|
||
break;
|
||
case "ct1":
|
||
if ($abil[0] > 0 && User::getInstance()->getAlign() == 6) {
|
||
//Заменён на CureInjury.php class. Придумать вызов.
|
||
//include("./magic/ct1.php");
|
||
if ($outok == 1) {
|
||
$abil[0] -= 1;
|
||
Db::getInstance()->execute('update users set abil = ? where id = ?', [serialize($abil), User::getInstance()->getId()]);
|
||
}
|
||
} elseif (User::getInstance()->getAlign() != 6) {
|
||
//Заменён на CureInjury.php class. Придумать вызов.
|
||
//include("./magic/ct1.php");
|
||
}
|
||
break;
|
||
case "ct2":
|
||
if ($abil[1] > 0 && User::getInstance()->getAlign() == 6) {
|
||
//Заменён на CureInjury.php class. Придумать вызов.
|
||
//include("./magic/ct2.php");
|
||
if ($outok == 1) {
|
||
$abil[1] -= 1;
|
||
Db::getInstance()->execute('update users set abil = ? where id = ?', [serialize($abil), User::getInstance()->getId()]);
|
||
}
|
||
} elseif (User::getInstance()->getAlign() != 6) {
|
||
//Заменён на CureInjury.php class. Придумать вызов.
|
||
//include("./magic/ct2.php");
|
||
}
|
||
break;
|
||
case "ct3":
|
||
if ($abil[2] > 0 && User::getInstance()->getAlign() == 6) {
|
||
//Заменён на CureInjury.php class. Придумать вызов.
|
||
//include("./magic/ct3.php");
|
||
if ($outok == 1) {
|
||
$abil[2] -= 1;
|
||
Db::getInstance()->execute('update users set abil = ? where id = ?', [serialize($abil), User::getInstance()->getId()]);
|
||
}
|
||
} elseif (User::getInstance()->getAlign() != 6) {
|
||
//Заменён на CureInjury.php class. Придумать вызов.
|
||
//include("./magic/ct3.php");
|
||
}
|
||
break;
|
||
case "ct_all":
|
||
//Заменён на CureInjury.php class. Придумать вызов.
|
||
//include("./magic/ct_all.php");
|
||
break;
|
||
case "attack":
|
||
include_once("./magic/eattack.php");
|
||
break;
|
||
case "attack_t":
|
||
include_once("./magic/attack_t.php");
|
||
if ($skipper == 1) {
|
||
header("Location:fbattle.php");
|
||
exit();
|
||
}
|
||
break;
|
||
case "battack":
|
||
include_once("./magic/ebattack.php");
|
||
break;
|
||
|
||
case "attackk_close":
|
||
if ($abil[1] > 0 && User::getInstance()->getAlign() == 2) {
|
||
include_once("./magic/attackk_close.php");
|
||
if ($outok == 1) {
|
||
$abil[1] -= 1;
|
||
Db::getInstance()->execute('update users set abil = ? where id = ?', [serialize($abil), User::getInstance()->getId()]);
|
||
header("Location:fbattle.php");
|
||
exit();
|
||
}
|
||
} else {
|
||
include_once("./magic/attackk_close.php");
|
||
header("Location:fbattle.php");
|
||
exit();
|
||
}
|
||
break;
|
||
|
||
case "attackk_open":
|
||
if ($abil[1] > 0 && User::getInstance()->getAlign() == 2) {
|
||
include_once("./magic/attackk_open.php");
|
||
if ($outok == 1) {
|
||
$abil[2] -= 1;
|
||
Db::getInstance()->execute('update users set abil = ? where id = ?', [serialize($abil), User::getInstance()->getId()]);
|
||
header("Location:fbattle.php");
|
||
exit();
|
||
}
|
||
} else {
|
||
include_once("./magic/attackk_open.php");
|
||
header("Location:fbattle.php");
|
||
exit();
|
||
}
|
||
break;
|
||
|
||
case "brat":
|
||
include_once("./magic/brat.php");
|
||
if ($skipper == 1) {
|
||
header("Location:fbattle.php");
|
||
exit();
|
||
}
|
||
break;
|
||
|
||
case "vampir":
|
||
include_once("./magic/vampir.php");
|
||
break;
|
||
case "crush":
|
||
include_once("./magic/devastate.php");
|
||
break;
|
||
case "def":
|
||
include_once("./magic/defence.php");
|
||
break;
|
||
case "bexit":
|
||
include_once("./magic/bexit.php");
|
||
break;
|
||
}
|
||
}
|
||
|
||
|
||
function show_byu($type): string
|
||
{
|
||
$type = $type + 20;
|
||
$typeName = [
|
||
21 => '15 минут тишины',
|
||
22 => '30 минут тишины',
|
||
23 => 'изоляция поединка',
|
||
24 => 'исцеление 20%',
|
||
25 => 'исцеление 35%',
|
||
26 => 'исцеление 50%',
|
||
27 => 'лечение тяжёлой травмы',
|
||
28 => 'нападение',
|
||
29 => 'кровавое нападение',
|
||
30 => 'объятия смерти',
|
||
31 => 'оставить запись в лог боя',
|
||
32 => 'снятие изоляции поединка',
|
||
33 => 'воскрешение',
|
||
34 => 'порождение клона',
|
||
35 => 'эфирное воздействие',
|
||
];
|
||
$typeImage = [
|
||
21 => 'silence15',
|
||
22 => 'silence30',
|
||
23 => 'closebattle',
|
||
24 => 'cureHP15',
|
||
25 => 'cureHP45',
|
||
26 => 'cureHP60',
|
||
27 => 'cure3',
|
||
28 => 'attack',
|
||
29 => 'attackb',
|
||
30 => 'poison_e',
|
||
31 => 'note',
|
||
32 => 'unlockbattle',
|
||
33 => 'reanimationD',
|
||
34 => 'mirror',
|
||
35 => 'antimirror',
|
||
];
|
||
if (User::getInstance()->getClan()) {
|
||
$clan_owner = Db::getInstance()->fetchColumn('select owner_id from clans where short_name = ?', User::getInstance()->getClan());
|
||
if ($clan_owner === User::getInstance()->getId()) {
|
||
$r = '<span><a href="javascript:void(0);" class="byu_klan" id="' . $type . '">купить 1 шт.</a></span>';
|
||
} else {
|
||
$r = '<span><a href="javascript:void(0);">Вы не глава</a></span>';
|
||
}
|
||
} else {
|
||
$r = '<span><a href="javascript:void(0);">Вы не состоите в клане</a></span>';
|
||
}
|
||
return <<<FFFF
|
||
<div class="items" style="padding: 2px;">
|
||
<img style="vertical-align: middle;" class="slot valign halign" src="/i/sh/$typeImage[$type].gif" alt="$typeName[$type]"> <span>$typeName[$type]</span> [$r]
|
||
</div>
|
||
FFFF;
|
||
}
|
||
|
||
|
||
Template::header('user_abilities');
|
||
echo <<<RELICTS
|
||
<span class='legend'>Клановые и личные реликты</span><br>
|
||
<button disabled>sleep15</button>
|
||
<button disabled>sleep30</button>
|
||
<button disabled>closebattle</button>
|
||
<button disabled>heal20</button>
|
||
<button disabled>heal35</button>
|
||
<button disabled>heal50</button>
|
||
<button disabled>travmoff</button>
|
||
<button disabled>attack</button>
|
||
<button disabled>bloodattack</button>
|
||
<button disabled>death</button>
|
||
<button disabled>comment</button>
|
||
<button disabled>openbattle</button>
|
||
<button disabled>reamdeath</button>
|
||
<button disabled>clone</button>
|
||
<button disabled>unclone</button>
|
||
RELICTS;
|
||
if (User::getInstance()->getAdmin()) {
|
||
echo <<<A
|
||
<button onclick="location.href='?teleport=1'">Телепорт на ЦП</button>
|
||
A;
|
||
}
|
||
?>
|
||
<div style="float: right;">
|
||
<input type="button" onClick="location.href='main.php';" value="Вернуться">
|
||
</div>
|
||
<h2>Особые умения</h2>
|
||
<div style="text-align: center;" id=hint3></div>
|
||
<div>
|
||
<?php
|
||
if (User::getInstance()->getAlign() == 2 || User::getInstance()->getAdmin()) // Нейтралы
|
||
{
|
||
$abil = [null, null, null];
|
||
//$abil = db::c()->query('SELECT 1 FROM `users` WHERE `id`= ?i', $_SESSION['uid'])->fetch_assoc();
|
||
//$abil = unserialize($abil['abil']);
|
||
for ($i = 0; $i < 3; $i++) {
|
||
if (!$abil[$i]) {
|
||
$abil[$i] = 0;
|
||
}
|
||
}
|
||
echo("<br />Осталось использований:<br />");
|
||
echo("<img src='i/magic/al_neut_power.gif' title='Сила нейтралитета'> Сила нейтралитета - " . $abil[0] . "<br />");
|
||
echo("<img src='i/magic/attackk_close.gif' title='Кулачное закрытое кровавое нападение'> Кулачное закрытое кровавое нападение - " . $abil[1] . "<br />");
|
||
echo("<img src='i/magic/attackk_open.gif' title='Кулачное закрытое нападение'> Кулачное закрытое нападение - " . $abil[2] . "<br />");
|
||
}
|
||
|
||
if (User::getInstance()->getAlign() == 6 || User::getInstance()->getAdmin()) // Свет
|
||
{
|
||
$abil = [null, null, null];
|
||
//$abil = db::c()->query('SELECT 1 FROM `users` WHERE `id`= ?i', $_SESSION['uid'])->fetch_assoc();
|
||
//$abil = unserialize($abil['abil']);
|
||
for ($i = 0; $i < 3; $i++) {
|
||
if (!$abil[$i]) {
|
||
$abil[$i] = 0;
|
||
}
|
||
}
|
||
echo("<br />Осталось использований:<br />");
|
||
echo("<img src='i/magic/ct1.gif' title='Исцелить легкую травму'> Исцелить легкую травму - " . $abil[0] . "<br />");
|
||
echo("<img src='i/magic/ct2.gif' title='Исцелить среднюю травму'> Исцелить среднюю травму - " . $abil[1] . "<br />");
|
||
echo("<img src='i/magic/ct3.gif' title='Исцелить тяжелую травму'> Исцелить тяжелую травму - " . $abil[2] . "<br />");
|
||
}
|
||
?>
|
||
</div>
|
||
<h2>Реликты</h2>
|
||
<div class="contentContainer">
|
||
<div>
|
||
<fieldset style="width: 400px;">
|
||
<legend id="personal" class="box_user" href="#inlin" style="cursor: pointer;"
|
||
title="Магазин персональных реликтов">Персональные :
|
||
</legend>
|
||
[список в шапке]
|
||
</fieldset>
|
||
</div>
|
||
<div style="padding-top: 15px;">
|
||
<fieldset style="width: 400px;">
|
||
<legend id="klans" class="box_klan" href="#inlines" style="cursor: pointer;"
|
||
title="Магазин клановых реликтов">Клановые :
|
||
</legend>
|
||
[список в шапке]
|
||
</fieldset>
|
||
</div>
|
||
<div style="padding-top: 13px; padding-bottom: 13px;">
|
||
<fieldset style="width: 400px;">
|
||
<legend>Счёт</legend>
|
||
На счету <b><?= User::getInstance()->money()->getBank() ?></b>
|
||
</fieldset>
|
||
</div>
|
||
</div>
|
||
|
||
<div id="inlin">
|
||
<div class="items">
|
||
<div class="title">Заклятие молчания</div>
|
||
<div class="img"><img class="slot valign halign" src="/i/sh/silence15.gif"/></div>
|
||
<div class="control">
|
||
Цена: 1.00 екр.
|
||
<div style="text-align: center;"><a href="javascript:void(0);" class="byu" id="1">купить 1 шт.</a></div>
|
||
</div>
|
||
</div>
|
||
|
||
<div class="items">
|
||
<div class="title">Заклятие молчания</div>
|
||
<div class="img"><img class="slot valign halign" src="/i/sh/silence30.gif"/></div>
|
||
<div class="control">
|
||
Цена: 2.00 екр.
|
||
<div style="text-align: center;"><a href="javascript:void(0);" class="byu" id="2">купить 1 шт.</a></div>
|
||
</div>
|
||
</div>
|
||
|
||
<div class="items">
|
||
<div class="title">Закрыть бой</div>
|
||
<div class="img"><img class="slot valign halign" src="/i/sh/closebattle.gif"/></div>
|
||
<div class="control">
|
||
Цена: 10.00 екр.
|
||
<div style="text-align: center;"><a href="javascript:void(0);" class="byu" id="3">купить 1 шт.</a></div>
|
||
</div>
|
||
</div>
|
||
<div class="items">
|
||
<div class="title">Исцеление +20%</div>
|
||
<div class="img"><img class="slot valign halign" src="/i/sh/cureHP15.gif"/></div>
|
||
<div class="control">
|
||
Цена: 0.50 екр.
|
||
<div style="text-align: center;"><a href="javascript:void(0);" class="byu" id="4">купить 1 шт.</a></div>
|
||
</div>
|
||
</div>
|
||
|
||
<div class="items">
|
||
<div class="title">Исцеление +35%</div>
|
||
<div class="img"><img class="slot valign halign" src="/i/sh/cureHP45.gif"/></div>
|
||
<div class="control">
|
||
Цена: 0.80 екр.
|
||
<div style="text-align: center;"><a href="javascript:void(0);" class="byu" id="5">купить 1 шт.</a></div>
|
||
</div>
|
||
</div>
|
||
|
||
<div class="items">
|
||
<div class="title">Исцеление +50%</div>
|
||
<div class="img"><img class="slot valign halign" src="/i/sh/cureHP60.gif"/></div>
|
||
<div class="control">
|
||
Цена: 1.00 екр.
|
||
<div style="text-align: center;"><a href="javascript:void(0);" class="byu" id="6">купить 1 шт.</a></div>
|
||
</div>
|
||
</div>
|
||
<div class="items">
|
||
<div class="title">Лечение тяжелой травмы</div>
|
||
<div class="img"><img class="slot valign halign" src="/i/sh/cure3.gif"/></div>
|
||
<div class="control">
|
||
Цена: 1.00 екр.
|
||
<div style="text-align: center;"><a href="javascript:void(0);" class="byu" id="7">купить 1 шт.</a></div>
|
||
</div>
|
||
</div>
|
||
|
||
<div class="items">
|
||
<div class="title">Нападение</div>
|
||
<div class="img"><img class="slot valign halign" src="/i/sh/attack.gif"/></div>
|
||
<div class="control">
|
||
Цена: 0.10 екр.
|
||
<div style="text-align: center;"><a href="javascript:void(0);" class="byu" id="8">купить 1 шт.</a></div>
|
||
</div>
|
||
</div>
|
||
|
||
<div class="items">
|
||
<div class="title">Нападение (кровавое)</div>
|
||
<div class="img"><img class="slot valign halign" src="/i/sh/attackb.gif"/></div>
|
||
<div class="control">
|
||
Цена: 0.20 екр.
|
||
<div style="text-align: center;"><a href="javascript:void(0);" class="byu" id="9">купить 1 шт.</a></div>
|
||
</div>
|
||
</div>
|
||
<div class="items" style="display: none;">
|
||
<div class="title">Объятия смерти</div>
|
||
<div class="img"><img class="slot valign halign" src="/i/sh/poison_e.gif"/></div>
|
||
<div class="control">
|
||
Цена: 4.00 екр.
|
||
<div style="text-align: center;"><a href="javascript:void(0);" class="byu" id="10">купить 1 шт.</a></div>
|
||
</div>
|
||
</div>
|
||
<div class="items">
|
||
<div class="title">Оставить запись в логе боя</div>
|
||
<div class="img"><img class="slot valign halign" src="/i/sh/note.gif"/></div>
|
||
<div class="control">
|
||
Цена: 0.02 екр.
|
||
<div style="text-align: center;"><a href="javascript:void(0);" class="byu" id="11">купить 1 шт.</a></div>
|
||
</div>
|
||
</div>
|
||
<div class="items">
|
||
<div class="title">Открыть бой</div>
|
||
<div class="img"><img class="slot valign halign" src="/i/sh/unlockbattle.gif"/></div>
|
||
<div class="control">
|
||
Цена: 20.00 екр.
|
||
<div style="text-align: center;"><a href="javascript:void(0);" class="byu" id="12">купить 1 шт.</a></div>
|
||
</div>
|
||
</div>
|
||
<div class="items" style="display: none;">
|
||
<div class="title">Поднять мертвого</div>
|
||
<div class="img"><img class="slot valign halign" src="/i/sh/reanimationD.gif"/></div>
|
||
<div class="control">
|
||
Цена: 10.00 екр.
|
||
<div style="text-align: center;"><a href="javascript:void(0);" class="byu" id="13">купить 1 шт.</a></div>
|
||
</div>
|
||
</div>
|
||
<div class="items">
|
||
<div class="title">Порождение клона</div>
|
||
<div class="img"><img class="slot valign halign" src="/i/sh/mirror.gif"/></div>
|
||
<div class="control">
|
||
Цена: 1.00 екр.
|
||
<div style="text-align: center;"><a href="javascript:void(0);" class="byu" id="14">купить 1 шт.</a></div>
|
||
</div>
|
||
</div>
|
||
<div class="items">
|
||
<div class="title">Эфирное воздействие</div>
|
||
<div class="img"><img class="slot valign halign" src="/i/sh/antimirror.gif"/></div>
|
||
<div class="control">
|
||
Цена: 1.00 екр.
|
||
<div style="text-align: center;"><a href="javascript:void(0);" class="byu" id="15">купить 1 шт.</a></div>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
|
||
<div id="inlines">
|
||
<?php
|
||
foreach (range(1, 15) as $item) {
|
||
echo show_byu($item);
|
||
}
|
||
?>
|
||
</div>
|
||
|
||
<script>
|
||
$(document).ready(function () {
|
||
|
||
const types_user = ['Заклятие молчания 15 мин', 'Заклятие молчания 30 мин', 'Закрыть бой', 'Исцеление 20%', 'Исцеление 35%', 'Исцеление 50%', 'Лечение', 'Нападение', 'Кровавое нападение', 'Объятия смерти', 'Записки Комментатора', 'Открыть бой', 'Поднять мертвого', 'Клонирование', 'Переманить клона'];
|
||
const types_klan = ['Заклятие молчания 15 мин', 'Заклятие молчания 30 мин', 'Закрыть бой', 'Исцеление 20%', 'Исцеление 35%', 'Исцеление 50%', 'Лечение', 'Нападение', 'Клановое нападение', 'Объятия смерти', 'Записки Комментатора', 'Открыть бой', 'Поднять мертвого', 'Клонирование', 'Переманить клона'];
|
||
|
||
$(".box_klan").fancybox();
|
||
$(".box_user").fancybox();
|
||
|
||
$(".byu").on("click", function () {
|
||
const type = $(this).attr('id');
|
||
$.ajax({
|
||
type: 'POST',
|
||
url: 'fancy/buy.php',
|
||
data: "type=" + type + "&user=" + <?= User::getInstance()->getId() ?> + "",
|
||
success: function (data) {
|
||
if (data === 'success') {
|
||
$(".child").html('<b style="color: Red;">' + types_user[type - 1] + ' успешно куплено</b>');
|
||
$("#" + type + "").html('Купить еще?');
|
||
setTimeout(function () {
|
||
$(".child").html('Магазин персональных реликтов');
|
||
}, 500)
|
||
} else {
|
||
$("#" + type + "").html(data);
|
||
}
|
||
}
|
||
});
|
||
});
|
||
|
||
$(".byu_klan").on("click", function () {
|
||
const type = $(this).attr('id');
|
||
$.ajax({
|
||
type: 'POST',
|
||
url: 'fancy/buy_klan.php',
|
||
data: "type=" + type + "&user=" + <?= User::getInstance()->getId() ?> + "",
|
||
success: function (data) {
|
||
if (data === 'success') {
|
||
$(".child").html('<b style="color: Red;">' + types_klan[type - 21] + ' успешно куплено</b>');
|
||
$("#" + type + "").html('Купить еще?');
|
||
setTimeout(function () {
|
||
$(".child").html('Магазин клановых реликтов');
|
||
}, 500)
|
||
} else {
|
||
$("#" + type + "").html(data);
|
||
}
|
||
}
|
||
});
|
||
});
|
||
});
|
||
</script>
|