302 lines
18 KiB
PHP
302 lines
18 KiB
PHP
<?php
|
||
|
||
use Battles\Database\DBPDO;
|
||
use Battles\Item;
|
||
use Battles\Template;
|
||
use Battles\User;
|
||
use Battles\UserInfo;
|
||
|
||
require_once "functions.php";
|
||
require_once "startpodzemel.php";
|
||
const QUEST_ITEM_NAME = [
|
||
'g' => 'Гайка',
|
||
'v' => 'Вентиль',
|
||
'b' => 'Болт',
|
||
'z' => 'Жетон',
|
||
'k' => 'Ключиик',
|
||
];
|
||
$fd = DBPDO::$db->fetch('select location, name, glava from labirint where user_id = ?', User::$current->getId());
|
||
$vb = DBPDO::$db->fetch('select n18 from podzem3 where glava = ? and name = ?', [$fd['glava'], 'Канализация 1 этаж']);
|
||
if ($fd['location'] != '28' || $fd['name'] != 'Канализация 1 этаж' || $vb['n18'] != '8') {
|
||
return;
|
||
}
|
||
$userInfo = new UserInfo(User::$current->getId());
|
||
Template::header('Подземелье Луки');
|
||
?>
|
||
<div id=hint3 class=ahint></div>
|
||
<TABLE width=100% cellspacing=0 cellpadding=0 border=0>
|
||
<TR>
|
||
<TD valign=top>
|
||
<div style="width: 250px; text-align: center;">
|
||
<?php $userInfo->showUserDoll(); ?>
|
||
</div>
|
||
</TD>
|
||
<TD>
|
||
<i>
|
||
<?php
|
||
$gag = DBPDO::$db->fetchAll('select * from qwest where login = ?', User::$current->getLogin());
|
||
foreach ($gag as $qw) {
|
||
$name_qwest = $qw['name_items'];
|
||
if ($name_qwest === QUEST_ITEM_NAME['k']) {
|
||
$qwest = 1;
|
||
$name_qw = 'kluchiik';
|
||
}
|
||
}
|
||
|
||
$qwus = DBPDO::$db->fetch('select * from qwest where login = ? and name_qwest = ?', [User::$current->getLogin(), $name_qw]);
|
||
$qwest_status = $qwus["status"];
|
||
$qwesta = DBPDO::$db->fetch('select * from inventory where item_type = 200 and name = ? and owner_id = ?', [QUEST_ITEM_NAME['k'], User::$current->getId()]);
|
||
if ($qwesta) {
|
||
$ok_qwest = "1";
|
||
}
|
||
|
||
if (!$_GET['d']) {
|
||
print"Запах... ОНИ! Мою хороошую, мою чистую канализацию испортилиии...";
|
||
}
|
||
if ($_GET['d'] == '1') {
|
||
print"ОН... Он был тут первым... САМЫМ! Гайки, болты, вентили... чинииил... Лука помогал ему... А он... ОН! он ПРЕДАААЛ!! Луку... ЛУКУ ОБИИИИДЕЛ! Он... он теперь не с намиии... ПОМОЙКАаа... Запаааах... Найди.. УБЕЕЙ! а.. Лука, лука даст тебе новые жетоны. Целых 3!!";
|
||
}
|
||
if ($_GET['d'] == '1.1') {
|
||
print"Ты НАШООЛ их.? Лука хочет менять! Лука тебе даст жетоны, а ты дашь Луке ИХ! Согла-а-асен?";
|
||
}
|
||
|
||
if ($qwest_status != 'ok') {
|
||
if ($ok_qwest == '1' && $_GET['d'] == '1.2') {
|
||
print"Ооо... Лука рад... Лука очень благодарен тебе... Лука даст тебе подарок... Лука даст тебе одно из двух... Лука даст Гайку силы или Гайку мудрости... выбирай...";
|
||
}
|
||
|
||
if ($ok_qwest == '1' && $_GET['d'] == '1.3') {
|
||
$query = 'insert into inventory (owner_id, name, add_strength, add_criticals, item_type, durability) values (?,?,?,?,?,?)';
|
||
$item_name = 'Гайка силы';
|
||
}
|
||
if ($ok_qwest == '1' && $_GET['d'] == '1.4') {
|
||
$query = 'insert into inventory (owner_id, name, add_dexterity, add_evasion, item_type, durability) values (?,?,?,?,?,?)';
|
||
$item_name = 'Гайка ловкости';
|
||
}
|
||
if ($ok_qwest == 1 && ($_GET['d'] == 1.3 || $_GET['d'] == 1.4)) {
|
||
DBPDO::$db->execute($query, [User::$current->getId(), $item_name, 3, 30, Item::ITEM_TYPE_AMULET, 20]);
|
||
$query = 'delete from inventory where owner_id = ? and item_type = 200 and name = ?';
|
||
DBPDO::$db->execute($query, [User::$current->getId(), QUEST_ITEM_NAME['k']]);
|
||
$query = 'update qwest set status = ? where name_qwest = ? and login = ?';
|
||
DBPDO::$db->execute($query, ['ok', 'kluchiik', User::$current->getLogin()]);
|
||
echo sprintf('<span style="font-size: 11px; color: #f00">Вы получили предмет %s.</span><br><br>Лука говорит спасибо...', $item_name);
|
||
}
|
||
}
|
||
|
||
if (($_GET['d'] == '2') && ($user['level'] >= 4) && ($user['level'] < 7)) {
|
||
print"Цена-аа? У Луки много жетонов. Лука не жаадный. Лука берет 3 Гайки и отдает жетон. Лука дает жетон за целый болт. Лука дает ТРИ жетона за найденный вентиль.<br> Лука дает жетоны серебрянные, если Гайки и Вентили Чистые, а Болт Длинный! Лука дает золотые жетоны, если Гайки с Резьбой, Вентиль Рабочий, а Болт Нужный!";
|
||
}
|
||
if (($_GET['d'] == '2') && ($user['level'] >= 7) && ($user['level'] <= 8)) {
|
||
print"Цена-аа? У Луки много жетонов. Лука не жаадный. Лука берет 9 Гаек и отдает жетон. Лука дает жетон за три болта. Лука дает целый жетон за найденный вентиль.<br> Лука дает жетоны серебрянные, если Гайки и Вентили Чистые, а Болт Длинный! Лука дает золотые жетоны, если Гайки с Резьбой, Вентиль Рабочий, а Болт Нужный!";
|
||
}
|
||
/////////////////////
|
||
|
||
if ($_GET['d'] == '3') {
|
||
$query = 'select item_id, durability, name from inventory where item_type = 200 and name in (?,?,?) and owner_id = ?';
|
||
$a = DBPDO::$db->fetchAll($query, [QUEST_ITEM_NAME['g'], QUEST_ITEM_NAME['v'], QUEST_ITEM_NAME['b'], User::$current->getId()]);
|
||
unset($query);
|
||
|
||
foreach ($a as $row) {
|
||
if ($row['name'] == QUEST_ITEM_NAME['g']) {
|
||
$total_mass += $row['maxdur'];
|
||
$alls_id = $row['id'];
|
||
}
|
||
if ($row['name'] == QUEST_ITEM_NAME['b']) {
|
||
$total_mass_b += $row['maxdur'];
|
||
$vls_id = $row['id'];
|
||
}
|
||
if ($row['name'] == QUEST_ITEM_NAME['v']) {
|
||
$total_mass_v = +$row['maxdur'];
|
||
$bls_id = $row['id'];
|
||
}
|
||
}
|
||
|
||
if (in_array(User::$current->getLevel(), [4, 5, 6])) {
|
||
$lim = 3;
|
||
$max = 60;
|
||
|
||
$vsego_v = $total_mass_v;
|
||
$ziton_v = $total_mass_v * 3;
|
||
|
||
$vsego_b = $total_mass_b;
|
||
$ziton_b = $total_mass_b;
|
||
|
||
} elseif (in_array(User::$current->getLevel(), [7, 8])) {
|
||
$lim = 9;
|
||
$max = 200;
|
||
|
||
$vsego_v = $total_mass_v;
|
||
$ziton_v = $total_mass_v;
|
||
|
||
$lim_b = 9;
|
||
$max_b = 200;
|
||
|
||
}
|
||
|
||
$ziton = intval($total_mass / $lim);
|
||
if ($ziton > $max) {
|
||
$ziton = $max;
|
||
}
|
||
$vsego = $ziton * $lim;
|
||
|
||
$ziton_b = intval($total_mass_b / $lim_b);
|
||
if ($ziton_b > $max_b) {
|
||
$ziton_b = $max_b;
|
||
}
|
||
$vsego_b = $ziton_b * $lim_b;
|
||
|
||
$query1 = 'delete from inventory where name = ? and owner_id = ?';
|
||
$query2 = 'update inventory set durability = ?, weight = ? where item_id = ?';
|
||
|
||
$ostalos = intval($total_mass - $vsego);
|
||
$ostalos_v = intval($total_mass_v - $vsego_v);
|
||
$ostalos_b = intval($total_mass_b - $vsego_b);
|
||
|
||
if ($ostalos == 0) {
|
||
DBPDO::$db->execute($query1, [QUEST_ITEM_NAME['g'], User::$current->getId()]);
|
||
} else {
|
||
DBPDO::$db->execute($query2, [$ostalos, $ostalos * 0.1, $alls_id]);
|
||
}
|
||
|
||
if ($ostalos_v == 0) {
|
||
DBPDO::$db->execute($query1, [QUEST_ITEM_NAME['v'], User::$current->getId()]);
|
||
} else {
|
||
DBPDO::$db->execute($query2, [$ostalos_v, $ostalos_v * 0.2, $vls_id]);
|
||
}
|
||
|
||
if ($ostalos_b == 0) {
|
||
DBPDO::$db->execute($query1, [QUEST_ITEM_NAME['b'], User::$current->getId()]);
|
||
} else {
|
||
DBPDO::$db->execute($query2, [$ostalos_b, $ostalos_b * 0.1, $bls_id]);
|
||
}
|
||
|
||
unset($query1, $query2);
|
||
|
||
$query1 = 'select durability from inventory where owner_id = ? and item_type = 200 and name = ?';
|
||
$query2 = 'update inventory set durability = durability + ?, weight = weight + ?, present = ? where owner_id = ? and item_type = 200 and name = ?';
|
||
$query3 = 'insert into inventory (name, durability, owner_id, item_type, weight, present) values (?,?,?,?,?,?)';
|
||
|
||
$all_zitons = $ziton + $ziton_v + $ziton_b;
|
||
|
||
if (!empty($all_zitons)) {
|
||
$check = DBPDO::$db->fetch($query1, [User::$current->getId(), QUEST_ITEM_NAME['z']]);
|
||
if ($check['durability'] > 0) {
|
||
DBPDO::$db->execute($query2, [$all_zitons, $all_zitons * 0.1, 'Лука', User::$current->getId(), QUEST_ITEM_NAME['z']]);
|
||
} else {
|
||
DBPDO::$db->execute($query3, [QUEST_ITEM_NAME['z'], $all_zitons, User::$current->getId(), 200, $all_zitons * 0.1 . 'Лука']);
|
||
}
|
||
unset($query1, $query2, $query3);
|
||
} else {
|
||
print" ИХ больше у тебя нету... Неси еще, Луке нужно больше ИХ! ";
|
||
}
|
||
|
||
if ($ziton > 0) {
|
||
print" Вы отдали: <b>$vsego</b> шт.Гаек <br> Получили: <b>$ziton</b> шт.Жетонов.<br>";
|
||
}
|
||
if ($ziton_v > 0) {
|
||
print" Вы отдали: <b>$vsego_v</b> шт.Вентиль <br> Получили: <b>$ziton_v</b> шт.Жетонов.<br>";
|
||
}
|
||
if ($ziton_b > 0) {
|
||
print" Вы отдали: <b>$vsego_b</b> шт.Болтов <br> Получили: <b>$ziton_b</b> шт.Жетонов.";
|
||
}
|
||
}
|
||
//////////////////////
|
||
if ($_GET['d'] == '4') {
|
||
print"А?...";
|
||
}
|
||
if ($_GET['d'] == '5') {
|
||
echo 'Лука и Мартын тут живут давно... чииинят трубыы. Лука Чинит. Лука не любит пауков... Лука любит жетоны... Они красивые... Лука любит играть с ними... Мартын к паукам ушел... Теперь Лука один, чииинит...';
|
||
}
|
||
if ($qwest != '1') {
|
||
if ($_GET['d'] == '6') {
|
||
echo 'Да да! Мартын гаад... он украл у Луки важную вещь ' . QUEST_ITEM_NAME['k'] . '... убей Мартына... забери ' . QUEST_ITEM_NAME['k'] . '... принеси его к Луке... Лука вознаградит тебя...';
|
||
}
|
||
if ($_GET['d'] == '7') {
|
||
if ($qwest != '1') {
|
||
$T1 = DBPDO::$db->execute('insert into qwest (user_id,login,name_qwest,name_items,id_items,dlja,zadanie,kw,status) values (?,?,?,?,?,?,?,?,?)', [User::$current->getId(), User::$current->getLogin(), 'kluchiik', QUEST_ITEM_NAME['k'], '', 'Лука', 'Найти ключиик', 0, 'no']);
|
||
echo sprintf('<span style="font-size:11px; color:red;">Вы приняли задание.(Найти %s).</span><br><br>Хорошо... Лука будет ждать...', QUEST_ITEM_NAME['k']);
|
||
} else {
|
||
echo sprintf('<span style="font-size:11px; color:red;">Вы уже приняли задание.(Найти %s).</span><br><br>Ну что? Лука ждёт...', QUEST_ITEM_NAME['k']);
|
||
}
|
||
}
|
||
}
|
||
?>
|
||
</i><BR><BR>
|
||
<?php
|
||
//Вопросы)
|
||
if (!isset($_GET['d'])) {
|
||
print"•<A href='?act=luka&d=1'> Запах?? Ты вообще о чем? </A><BR>";
|
||
print"•<A href='?act=luka&d=1.1'> Я тут гайки-вентили нашел, тебе они случайно не нужны? </A><BR>";
|
||
if ($qwest_status != 'ok' && $ok_qwest == '1') {
|
||
print"•<A href='?act=luka&d=1.2'> Вот твой ключиик! </A><BR>";
|
||
}
|
||
print"•<A href='main.php?act=none'> Я, пожалуй, пойду.</A><BR>";
|
||
}
|
||
if ($_GET['d'] == '1') {
|
||
print"•<A href='?act=luka'> Понятно. Но я хотел поговорить о другом. </A><BR>";
|
||
print"•<A href='main.php?act=none'> Я, пожалуй, пойду.</A><BR>";
|
||
}
|
||
if ($_GET['d'] == '1.1') {
|
||
print"•<A href='?act=luka&d=2'> Я хочу знать, сколько жетонов ты мне дашь. </A><BR>";
|
||
print"•<A href='?act=luka&d=3'> Я хочу поменять ИХ на жетоны. </A><BR>";
|
||
print"•<A href='?act=luka'> С гайками все ясно. Вернемся назад. </A><BR>";
|
||
print"•<A href='main.php?act=none'> Я, пожалуй, пойду.</A><BR>";
|
||
}
|
||
if ($ok_qwest == '1' && $_GET['d'] == '1.2') {
|
||
print"•<A href='?act=luka&d=1.3'> Выбераю Гайку силы.</A><BR>";
|
||
print"•<A href='?act=luka&d=1.4'> Выбераю Гайку мудрости.</A><BR>";
|
||
print"•<A href='main.php?act=none'> Я, пожалуй, пойду..</A><BR>";
|
||
}
|
||
if ($_GET['d'] == '1.3') {
|
||
print"•<A href='main.php?act=none'> Я, пожалуй, пойду.</A><BR>";
|
||
}
|
||
if ($_GET['d'] == '1.4') {
|
||
print"•<A href='main.php?act=none'> Я, пожалуй, пойду.</A><BR>";
|
||
}
|
||
if ($_GET['d'] == '2') {
|
||
print"•<A href='?act=luka&d=3'> Я хочу поменять ИХ на жетоны. </A><BR>";
|
||
print"•<A href='?act=luka'> Спасибо, за прайс-лист. </A><BR>";
|
||
print"•<A href='main.php?act=none'> Я, пожалуй, пойду.</A><BR>";
|
||
}
|
||
if ($_GET['d'] == '3') {
|
||
print"•<A href='?act=luka&d=4'> Я хотел еще спросить... </A><BR>";
|
||
print"•<A href='main.php?act=none'> Хорошо, пойду еще принесу.</A><BR>";
|
||
}
|
||
if ($_GET['d'] == '4') {
|
||
print"•<A href='?act=luka&d=1.1'> Что ты там говорил про гайки-вентили? </A><BR>";
|
||
print"•<A href='?act=luka&d=5'> Расскажи мне о себе. </A><BR>";
|
||
print"•<A href='main.php?act=none'> Я, пожалуй, пойду.</A><BR>";
|
||
}
|
||
if ($_GET['d'] == '5') {
|
||
print"•<A href='?act=luka&d=1.1'> Что ты там говорил про гайки-вентили? </A><BR>";
|
||
}
|
||
if ($qwest != '1' && $_GET['d'] == '5') {
|
||
print"•<A href='?act=luka&d=6'> Может помочь чем? </A><BR>";
|
||
}
|
||
if ($_GET['d'] == '5') {
|
||
print"•<A href='main.php?act=none'> Я, пожалуй, пойду.</A><BR>";
|
||
}
|
||
if ($_GET['d'] == '6') {
|
||
print"•<A href='?act=luka&d=7'> Я помогу тебе... принесу я ключиик... жди! </A><BR>";
|
||
print"•<A href='main.php?act=none'> Да ну тя сам разберайся.</A><BR>";
|
||
}
|
||
if ($_GET['d'] == '7') {
|
||
print"•<A href='main.php?act=none'> Я, пойду.(конец диалога).</A><BR>";
|
||
}
|
||
print"</i>";
|
||
?>
|
||
<BR><BR>
|
||
</TD>
|
||
<TD>
|
||
<?php
|
||
$buser = DBPDO::$db->fetch('select * from users where login = ?', 'Лука');
|
||
//Этот класс не умеет работать с ботами! Этот вызов - заглушка!
|
||
$botInfo = new UserInfo('Лука');
|
||
$botInfo->showUserDoll();
|
||
?>
|
||
</TD>
|
||
</TR>
|
||
</TABLE>
|
||
<!-- <DIV ID=oMenu CLASS=menu onmouseout="closeMenu()"></DIV> -->
|
||
<DIV ID="oMenu" style="position:absolute; border:1px solid #666; background-color:#CCC; display:none; "></DIV>
|
||
<TEXTAREA ID=holdtext STYLE="display:none;"></TEXTAREA>
|