game/modules_data/_alhp.php

344 lines
17 KiB
PHP
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

<?php
/* @var $u User */
use Core\Config;
use Core\Db;
use Model\EkrExchangeRates;
use User\UserIp;
if (!defined('GAME')) {
die();
}
?>
<script>
let elem = document.getElementById('se-pre-con');
elem.parentNode.removeChild(elem);
function openMod(title, dat) {
const d = document.getElementById('useMagic');
if (!d) {
return;
}
document.getElementById('modtitle').innerHTML = '<table width="100%" border="0" cellspacing="0" cellpadding="0"><tr><td valign="top">' + title + '</td><td width="30" valign="top"><div align="right"><a title="Закрыть окно" onClick="closeMod(); return false;" href="#">x</a></div></td></tr></table>';
document.getElementById('moddata').innerHTML = dat;
d.style.display = '';
}
function closeMod() {
const d = document.getElementById('useMagic');
if (!d) {
return;
}
document.getElementById('modtitle').innerHTML = '';
document.getElementById('moddata').innerHTML = '';
d.style.display = 'none';
}
</script>
<script src='<?= Config::img() ?>/js/commoninf.js'></script>
<style>
.modpow {
background-color: #ddd5bf;
border: solid 1px #776f59;
position: absolute;
left: 50px;
top: 186px;
}
.mt {
background-color: #b1a993;
padding: 5px 10px;
}
.md {
padding: 10px;
}
</style>
<div id="useMagic" style="display:none;" class="modpow">
<div class="mt" id="modtitle"></div>
<div class="md" id="moddata"></div>
</div>
<div style="text-align: right;">
<INPUT TYPE="button" onclick="location.href='main.php?alhp=1';" class="btn" value="Обновить" title="Обновить">
<INPUT TYPE="button" onclick="location.href='main.php';" class="btn" value="Вернуться" title="Вернуться">
</div>
<?php
$exchangeToday = new EkrExchangeRates();
$ba = Db::getRow('select * from bank_alh where uid = ?', [$u->info['id']]);
if (isset($ba['id'])) {
?>
<table style="width: 320px;">
<tr>
<td>
<h4>На алхимических счетах:</h4>
<b><?= $ba['ekr'] ?></b> ЕКР
<hr/>
<?php
$ucur = round($exchangeToday->oneEkrInUSD() / 100 * (100 - $ba['procent']), 2);
?>
Персональный курс: <b><?= $ucur ?></b> $ = 1 Еврокредит.
<hr/>
<form method="post" action="/main.php?alhp=1">
<?php
if (isset($_POST['buy_ekr'])) {
$uba = Db::getRow('select * from users where login = ? and banned = 0', [$_POST['buy_ekr']]);
$uba['uid'] = $uba['id'];
if (isset($uba['id'])) {
echo 'Покупатель: ' . User::getLogin($uba['uid']) . '<br>';
} else {
echo '<span style="color: red;">Персонаж заблокирован, либо не найден.</span><hr>';
unset($_POST['buy_ekr']);
}
echo '<hr>';
if (isset($uba['id'])) {
$_POST['buy4ekr'] = round($_POST['buy4ekr'], 2);
$bns = [
[0, 0, 0],
[10, 1, 0],
[50, 2, 0],
[100, 3, 0],
[200, 4, 0],
[300, 5, 0],
[400, 6, 0],
[500, 7, 0],
[600, 8, 0],
[700, 9, 0],
[800, 10, 0],
[900, 11, 0],
[1000, 13, 1],
[1100, 15, 2],
[1200, 17, 3],
[1300, 19, 4],
[1500, 21, 5],
[1700, 23, 6],
[2000, 25, 7],
[2500, 27, 8],
[3000, 30, 9],
];
$bns2 = [
[0, 0],
[10, 10],
[20, 10],
[30, 10],
[40, 10],
[50, 10],
[60, 10],
[70, 10],
[80, 10],
[90, 10],
[100, 20],
];
$ball = Db::getValue('select sum(ekr) from pay_operation where uid = ? and good > 0', [$uba['id']]);
$i = 0;
while ($i < count($bns)) {
if (isset($bns[$i][0]) && $ball > $bns[$i][0]) {
$b1 = $i;
}
$i++;
}
$i = 0;
while ($i < count($bns2)) {
if (isset($bns2[$i][0]) && $_POST['buy4ekr'] >= $bns2[$i][0]) {
$b2 = $i;
}
$i++;
}
//Бонус опытовый, первичный и накопительный
$out_ekr = $_POST['buy4ekr'];
$out_ekr0 = $_POST['buy4ekr'];
//
$out_ekr += round($out_ekr0 / 100 * $bns[$b1][1], 2);
$i = 0;
while ($i < count($bns2)) {
if (isset($bns2[$i][0]) && $out_ekr >= $bns2[$i][0]) {
$b2_2 = $i;
}
$i++;
}
$out_ekr += round($out_ekr0 / 100 * $bns2[$b2_2][1], 2);
if ($ball == 0) {
$out_ekr += round($out_ekr0 / 100 * 20, 2);
}
if (isset($_POST['buy4ekr']) && $_POST['buy4ekr'] < 0.01) {
echo '<span style="color: red;">Минимальная сумма продажи: 0.01 екр.</span><hr>';
unset($_POST['buy4ekr']);
} elseif ($_POST['buy4ekr'] > $ba['ekr']) {
echo '<span style="color: red;">Недостаточно средств на счете</span><hr>';
unset($_POST['buy4ekr']);
}
if (isset($_POST['buygoodluck'])) {
echo '<script>alert("Продажа на сумму ' . $_POST['buy4ekr'] . ' екр. была совершена успешно!");location.href="main.php?alhp=1";</script>';
$ba['ekr'] -= $_POST['buy4ekr'];
$ba['USD'] += round($_POST['buy4ekr'] * $ucur, 2);
Db::sql('update bank_alh set ekr = ?, USD = ? where id = ?', [$ba['ekr'], $ba['USD'], $ba['id']]);
$u->addEkr($out_ekr, $uba['id']);
$money = round($_POST['buy4ekr'] * $exchangeToday->oneEkrInRUB(), 2);
$money = round($money / 100 * (100 - $ba['procent']), 2);
$user = Db::getRow('select id, login, city, sex, room, host_reg from users where id = ?', [$uba['uid']]);
Db::sql('insert into pay_operation (uid, ekr, time, good, var, ref, ref2) values (?,?,unix_timestamp(),unix_timestamp(),?,?,0)',
[$uba['id'], $_POST['buy4ekr'], 'buy_ekr_alh' . $u->info['id'], $uba['host_reg']]);
$r = '<span class=date>' . date(
'd.m.Y H:i'
) . '</span> <img src="' . Config::img() . '/i/align/align50.gif" alt="Алхимик"><u> Алхимик <b>' . $u->info['login'] . '</b></u> сообщает: ';
if ($user['sex'] == 1) {
$r .= 'Уважаемая';
} else {
$r .= 'Уважаемый';
}
$bnss = '';
if (($out_ekr - round((int)$_POST['buy4ekr'], 2)) > 0) {
$bnss = ' (+' . ($out_ekr - round((int)$_POST['buy4ekr'], 2)) . ' ЕКР бонус!)';
}
$r .= ' <b>' . $user['login'] . '</b>, вам зачислено ' . $_POST['buy4ekr'] . ' ЕКР' . $bnss . '. Благодарим Вас за покупку!';
$cmsg = new ChatMessage();
$cmsg->setCity($user['city']);
$cmsg->setRoom($user['room']);
$cmsg->setTo($user['login']);
$cmsg->setType(5);
$cmsg->setText($r);
(new Chat())->sendMsg($cmsg);
$text_msg = 'Алхимик <b>' . $u->info['login'] . '</b> совершил продажу <b>' .
$_POST['buy4ekr'] . '</b> ЕКР. (скидка ' . $ba['procent'] . '% , задолжность ' . $ba['USD'] . '$). Покупатель: ' . User::getLogin($uba['uid']) . '.</b>.';
$balance = Db::getValue('select sum(money) from balance_money where cancel = 0');
$balance += $money;
Db::sql('insert into balance_money (time, money, ip, comment2, balance, cancel) values (unix_timestamp(),?,?,?,?,unix_timestamp())',
[$money, UserIp::get(), $text_msg, $balance]);
//Рейтинг по вкладам
$ub = [];
$ui = [];
$sp = Db::getRows('select * from pay_operation where good > 0 order by id desc');
foreach ($sp as $pl) {
if (empty($ub[$pl['uid']])) {
$ui[] = $pl['uid'];
}
$ub[$pl['uid']][date('d.m.Y', $pl['good'])] = $pl['ekr'];
}
$i = 0;
while ($i < count($ui)) {
if (!isset($ui[$i])) {
$i++;
continue;
}
$j = 1;
$k = 0;
$nj = 0;
while ($j <= 1000) {
$dt = date('d.m.Y', time() - (86400 * $j));
if (isset($ub[$ui[$i]][$dt])) {
$k++;
$nj = 0;
} elseif ($j > 0 && $nj >= 6) {
$j = 1000;
} else {
$nj++;
}
$j++;
}
Db::sql('replace into users_paybonus (id, level) values (?,?)', [$ui[$i], $k]);
$i++;
}
} else {
echo 'Сумма екр.:';
if (!isset($_POST['buy4ekr'])) {
echo '&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;&nbsp; <input name="buy4ekr" style="width:50px;" value="0.00" />
<input class="btn btn-danger" value="Далее" type="submit"><br>';
} else {
echo ' <b>' . round((int)$_POST['buy4ekr'], 2) . '</b> ЕКР +
<b>' . ($out_ekr - round((int)$_POST['buy4ekr'], 2)) . '</b> ЕКР бонус.
<input name="buy4ekr" type="hidden" value="' . $_POST['buy4ekr'] . '">';
echo ' &nbsp; <br><br><input type="submit" name="buygoodluck" class="btn btn-success" value="Совершить продажу">';
}
}
}
}
if (isset($_POST['buy_ekr'])) { ?>
<input name="buy_ekr" type="hidden" value="<?= $_POST['buy_ekr'] ?>"/>
<?php } else { ?>Перести екр. персонажу:
<input name="buy_ekr" style="width:50px;" value="<?= $_POST['buy_ekr'] ?>"/>
<input class="btn btn-danger" value="Далее" type="submit"/>
<?php } ?>
</form>
</td>
</tr>
</table>
<?php
}
echo "<br><h4><div align=left>Необходимые средства в работе алхимика</div></h4>";
$p['m1'] = 1;
$srok = [15 => '15 минут', 30 => '30 минут', 60 => 'один час', 180 => 'три часа', 360 => 'шесть часов', 720 => 'двенадцать часов', 1440 => 'одни сутки', 4320 => 'трое суток'];
if (isset($_GET['usemod']) && isset($_POST['usem1'])) {
//require_once('moder/usem1.php'); see Moderation->silence
}
if (isset($_POST['tologin'], $_POST['message'])) {
$cmsg = new ChatMessage();
$cmsg->setRoom(1);
$cmsg->setTo($_POST['tologin']);
$cmsg->setText(
'<span style="color: darkblue; ">Сообщение телеграфом от </span> <b>' . $u->info['login'] . '</b>: ' . $_POST['message']
);
$cmsg->setType(6);
(new Chat())->sendMsg($cmsg);
}
?>
<table>
<a href="#"
onClick="openMod('<b>Заклятие молчания</b>','<form action=\'main.php?<?= 'alhp&usemod=' . PassGen::intCode(); ?>\' method=\'post\'>Логин персонажа: <input type=\'text\' style=\'width:144px;\' id=\'logingo\' name=\'logingo\'><br>Время заклятия: &nbsp; <select style=\'margin-left:2px;\' name=\'time\'><option value=\'1440\'>Сутки</option></select> <input type=\'submit\' name=\'usem1\' value=\'Исп-ть\'></form>');"><img
src="<?= Config::img() ?>/i/items/sleep.gif" title="Заклятие молчания"/></a>
&nbsp;
<br><h4>Телеграф</h4>
<form method=post style="margin:5px;">
Логин персонажа <input type=text size=20 name="tologin">
сообщение <input type=text size=80 name="message">
&nbsp; <input type=submit class="btn btn-success" value="отправить">
</form>
<?php
echo '<br><h2>Список реальщиков:</h2><br>';
$sp = Db::getRows('select * from pay_operation where good > 0 group by uid');
foreach ($sp as $pl) {
$online = Db::getValue('select online from users where id = ?', [$pl['uid']]);
$lg = User::getLogin($pl['uid']);
if ($online > time() - 240) {
$lg = '<span style="color: green;">' . $lg . '</span>';
} else {
$lg .= ' (был тут ' . date('d.m.Y H:i', $online) . ')';
}
if ($u->info['admin'] > 0) {
$sum = Db::getValue('select sum(ekr) from pay_operation where good > 0 and uid = ?', [$pl['uid']]);
echo $lg . ' - ' . $sum . ' екр.<br>';
} else {
echo $lg . '<br>';
}
}