Новая реализация курсов валют.

This commit is contained in:
Ivor Barhansky 2023-08-10 17:04:23 +03:00
parent f4a66a1147
commit deac9203bd
7 changed files with 421 additions and 509 deletions

View File

@ -4,19 +4,18 @@ namespace Core;
class Config
{
const EKR_RUB_PRICE = 30;
const KR_TO_EKR_EXCHANGE = 500;
const EKR_TO_KR_EXCHANGE = 200;
private static self $instance;
private static string $hostname = 'new-combats.tech';
private static string $gamename = 'Бойцовский Клуб';
private function __construct()
{
//singleton
}
private static function subdomain(string $name): string
{
return DIRECTORY_SEPARATOR . DIRECTORY_SEPARATOR . $name . '.' . self::$hostname;
}
/** Самый распространённый субдомен
* //img.{siteName}.
* @return string
@ -26,6 +25,11 @@ class Config
return self::subdomain('img');
}
private static function subdomain(string $name): string
{
return DIRECTORY_SEPARATOR . DIRECTORY_SEPARATOR . $name . '.' . self::$hostname;
}
public static function get(?string $key = null)
{
$c['ver'] = '1.8.3.7';

View File

@ -0,0 +1,37 @@
<?php
namespace Model;
use Core\Db;
class EkrExchangeRates
{
/**
* @var array|false
*/
private $today;
public function __construct()
{
$this->today = Db::getRow('select RUB, USD, from_unixtime(id, ?) as date from ekr_exchange_rates order by id desc limit 1', ['%d.%m.%Y']);
if (empty($this->today)) {
$this->today = ['RUB' => 0, 'USD' => 0, 'date' => '00.00.0000'];
}
}
public function oneEkrInUSD(): float
{
return round($this->today['RUB'] / $this->today['USD'], 2);
}
public function oneEkrInRUB(): float
{
return $this->today['RUB'];
}
public function date(): string
{
return $this->today['date'];
}
}

View File

@ -0,0 +1,28 @@
<?php
use Core\{Config, Db};
/**
* Парсинг данных ЦБ РФ.
* https://www.cbr-xml-daily.ru/#howto
* Раз в день в час ночи.
*/
require_once dirname(__DIR__) . DIRECTORY_SEPARATOR . 'autoload.php';
$todayExchangeRate = new class {
private const API = 'https://www.cbr-xml-daily.ru/daily_json.js';
public static function getUSDEkrPrice(): float
{
$rates = json_decode(file_get_contents(self::API));
return round(Config::EKR_RUB_PRICE / $rates->Valute->USD->Value, 2);
}
};
$sql = 'insert into ekr_exchange_rates (RUB, USD) values (?,?)';
$args = [
round(Config::EKR_RUB_PRICE, 2),
$todayExchangeRate::getUSDEkrPrice(),
];
Db::sql($sql, $args);

View File

@ -1,101 +0,0 @@
<?php
use Core\Config;
use Core\Db;
require_once dirname(__DIR__) . DIRECTORY_SEPARATOR . 'autoload.php';
/**
* Обновление данных о курсах валют из Центробанка РФ.
* Раз в день в час ночи.
*/
// Обнуление(?!) передач раз в сутки
Db::sql('update stats set transfers = 100 where transfers < 200');
function getCurs()
{
// создаем объект для работы с XML
$xml = new DOMDocument();
// ссылка на сайт банка
$url = 'https://www.cbr.ru/scripts/XML_daily.asp?date_req=' . date('d.m.Y');
// получаем xml с курсами всех валют
if (!$xml->load($url)) {
// если не получили xml возвращаем false
return false;
}
// массив для хранения курсов валют
$result = [];
// разбираем xml
$root = $xml->documentElement;
// берем все теги 'Valute' и их содержимое
$items = $root->getElementsByTagName('Valute');
// переберем теги 'Valute' по одному
foreach ($items as $item) {
// получаем код валюты
$code = $item->getElementsByTagName('CharCode')->item(0)->nodeValue;
// получаем значение курса валюты, относительно рубля
$value = $item->getElementsByTagName('Value')->item(0)->nodeValue;
// номинал
$nominal = $item->getElementsByTagName('Nominal')->item(0)->nodeValue;
// записываем в массив, предварительно заменив запятую на точку
$result[$code] = round(str_replace(',', '.', $value), 5) / $nominal;
}// возвращаем значение курса, для запрошенной валюты
return $result;
}
$get = getCurs();
if (Config::get('curency_name') === 'RUB') {
$curency = Config::get('curency_value');
} else {
$curency = round($get[Config::get('curency_name')] * Config::get('curency_value'), 4);
}
if ($get['USD'] > 0) {
$price = [
'AUD',
'AZN',
'AMD',
'BYR',
'BGN',
'BRL',
'HUF',
'KRW',
'DKK',
'USD',
'EUR',
'INR',
'KZT',
'CAD',
'KGS',
'CNY',
'LVL',
'LTL',
'MDL',
'RON',
'TMT',
'NOK',
'PLN',
'XDR',
'SGD',
'TJS',
'TRY',
'UZS',
'UAH',
'GBP',
'CZK',
'SEK',
'CHF',
'ZAR',
'JPY',
];
$r = '';
foreach ($price as $value) {
if (!$get[$value]) {
continue;
}
$r .= ',`' . $value . '`="' . $get[$value] . '"';
}
Db::sql('insert into bank_table set time = unix_timestamp(), cur = ?, data = ?', [$curency, date('d.m.Y') . $r]);
}

465
ekr.php
View File

@ -3,12 +3,40 @@
use Core\Config;
use Core\Database;
use Core\Db;
use Model\EkrExchangeRates;
if (!defined('GAME_VERSION')) {
require_once '_incl_data/autoload.php';
}
//10:05 Внимание! Вы успешно пополнили свой игровой счїт на <b>0.13 ЕКР</b>. Приятной Вам игры!
$ekrPrices = new class {
/**
* @var array|false
*/
private $data;
public function __construct()
{
$this->data = Db::getRow('select RUB, USD, from_unixtime(id, ?) as date from ekr_exchange_rates order by id desc limit 1', ['%d.%m.%Y']);
if (!$this->data) {
$this->data = ['RUB' => 0, 'USD' => 0];
}
}
public function getRUBPrice()
{
return $this->data['RUB'];
}
public function getUSDPrice()
{
return $this->data['USD'];
}
};
$exchangeToday = new EkrExchangeRates();
//10:05 Внимание! Вы успешно пополнили свой игровой счїт на <b>0.13 екр</b>. Приятной Вам игры!
Database::init();
@ -31,8 +59,8 @@ if ($day2 < 0) {
}
$timetoday = strtotime(date('d.m.Y'));
$dc1 = Db::getValue('select sum(money2) from user_operation where time >= unix_timestamp() and uid = ? and type = ?', [$u->info['id'], 'Обмен ЕКР на КР']);
$dc2 = Db::getValue('select sum(money) from user_operation where time >= unix_timestamp() and uid = ? and type = ?', [$u->info['id'], 'Обмен КР на ЕКР']);
$dc1 = Db::getValue('select sum(money2) from user_operation where time >= unix_timestamp() and uid = ? and type = ?', [$u->info['id'], 'Обмен екр на кр']);
$dc2 = Db::getValue('select sum(money) from user_operation where time >= unix_timestamp() and uid = ? and type = ?', [$u->info['id'], 'Обмен кр на екр']);
$day1 = round($day1 + $dc1, 2);
$day2 = round($day2 + $dc2, 2);
@ -47,9 +75,6 @@ if ($day2 < 0) {
$b1 = 0; //бонус накопительный
$bt = Db::getRow('select cur, USD from bank_table order by time desc limit 1');
$bns = [
[0, 0, 0],
[10, 1, 0],
@ -108,7 +133,7 @@ if (isset($_POST['do']) && $_POST['do'] == 'newShadow') {
if (!isset($o['id'])) {
$u->error = 'Данный образ не найден! Возможно он уже был подтвержден!';
} elseif ($o['price'] > $u->info['money2']) {
$u->error = 'На счету недостаточно ЕКР';
$u->error = 'На счету недостаточно екр';
} else {
//
$u->info['money2'] -= $o['price'];
@ -183,7 +208,7 @@ if (isset($_POST['do']) && $_POST['do'] == 'newShadow') {
//Личный образ
$ekr = 100;
if ($u->info['money2'] < $ekr) {
echo '{"err":"На счету недостаточно ЕКР"}';
echo '{"err":"На счету недостаточно екр"}';
} else {
$obraz = 'f_shadow1_' . $u->info['id'] . '-' . md5((time() - rand(0, 1000)) . '#shadow1') . '.gif';
$upload = new Uploader('img', $obraz);
@ -217,7 +242,7 @@ if (isset($_POST['do']) && $_POST['do'] == 'newShadow') {
$ekr = 10;
$ekr_smile = 10;
if ($u->info['money2'] < $ekr) {
echo '{"err":"На счету недостаточно ЕКР"}';
echo '{"err":"На счету недостаточно екр"}';
} else {
$obraz = 'f_smile_' . $u->info['id'] . '-' . md5((time() - rand(0, 1000)) . '#smile') . '.gif';
$upload = new Uploader('img5', $obraz);
@ -253,7 +278,7 @@ if (isset($_POST['do']) && $_POST['do'] == 'newShadow') {
if ($u->info['clan'] == 0) {
echo '{"err":"Вы должны состоять в клане"}';
} elseif ($u->info['money2'] < $ekr) {
echo '{"err":"На счету недостаточно ЕКР"}';
echo '{"err":"На счету недостаточно екр"}';
} else {
$obraz = 'f_shadow2_' . $u->info['id'] . '-' . md5((time() - rand(0, 1000)) . '#shadow2') . '.gif';
$upload = new Uploader('img2', $obraz);
@ -286,7 +311,7 @@ if (isset($_POST['do']) && $_POST['do'] == 'newShadow') {
//Питомец образ
$ekr = 4.99;
if ($u->info['money2'] < $ekr) {
echo '{"err":"На счету недостаточно ЕКР"}';
echo '{"err":"На счету недостаточно екр"}';
} else {
$obraz = 'f_shadow3_' . $u->info['id'] . '-' . md5((time() - rand(0, 1000)) . '#shadow3') . '.gif';
$upload = new Uploader('img4', $obraz);
@ -318,19 +343,19 @@ if (isset($_POST['do']) && $_POST['do'] == 'newShadow') {
} elseif (isset($_POST['kr001'])) {
//Обмен екр на кр.
$kr = round($_POST['kr001'], 2);
if ($c['crtoecr'] < 0.01) {
if (Config::KR_TO_EKR_EXCHANGE < 0.01) {
$u->error = 'Сегодня обменник закрыт.';
} elseif ($day2 < 0.01) {
$u->error = 'Сегодня для вас обмен закрыт, приходите завтра.';
} elseif ($kr < round($c['crtoecr'] / 100, 2)) {
$u->error = 'Минимальная сумма обмена ' . round($c['crtoecr'] / 100, 2) . ' КР.';
} elseif ($kr < round(Config::KR_TO_EKR_EXCHANGE / 100, 2)) {
$u->error = 'Минимальная сумма обмена ' . round(Config::KR_TO_EKR_EXCHANGE / 100, 2) . ' кр.';
} elseif ($kr > $day2) {
$u->error = 'Вы можете обменять еще ' . $day2 . ' КР сегодня.';
$u->error = 'Вы можете обменять еще ' . $day2 . ' кр сегодня.';
} elseif ($kr > $u->info['money']) {
$u->error = 'Недостаточно денег для обмена.';
} else {
$ekr = round($kr / $c['crtoecr'], 2);
$u->error = 'Вы успешно обменяли ' . $kr . ' КР на ' . $ekr . ' ЕКР.';
$ekr = round($kr / Config::KR_TO_EKR_EXCHANGE, 2);
$u->error = 'Вы успешно обменяли ' . $kr . ' кр на ' . $ekr . ' екр.';
//
$u->info['money'] -= $kr;
$u->info['money2'] += $ekr;
@ -342,18 +367,18 @@ if (isset($_POST['do']) && $_POST['do'] == 'newShadow') {
'INSERT INTO `user_operation` ( `uid`,`time`,`money`,`money2`,`type`,`b1`,`b2` ) VALUES (
"' . $u->info['id'] . '","' . time() . '","' . round(-$kr, 2) . '","' . round(
$ekr, 2
) . '","Обмен КР на ЕКР","' . $u->info['money'] . '","' . $u->info['money2'] . '"
) . '","Обмен кр на екр","' . $u->info['money'] . '","' . $u->info['money2'] . '"
)'
);
}
$dc1 = mysql_fetch_array(
mysql_query(
'SELECT SUM(`money2`) FROM `user_operation` WHERE `time` >= "' . $timetoday . '" AND `uid` = "' . $u->info['id'] . '" AND `type` = "Обмен ЕКР на КР" LIMIT 1'
'SELECT SUM(`money2`) FROM `user_operation` WHERE `time` >= "' . $timetoday . '" AND `uid` = "' . $u->info['id'] . '" AND `type` = "Обмен екр на кр" LIMIT 1'
)
);
$dc2 = mysql_fetch_array(
mysql_query(
'SELECT SUM(`money`) FROM `user_operation` WHERE `time` >= "' . $timetoday . '" AND `uid` = "' . $u->info['id'] . '" AND `type` = "Обмен КР на ЕКР" LIMIT 1'
'SELECT SUM(`money`) FROM `user_operation` WHERE `time` >= "' . $timetoday . '" AND `uid` = "' . $u->info['id'] . '" AND `type` = "Обмен кр на екр" LIMIT 1'
)
);
$dc1 = $dc1[0];
@ -363,19 +388,19 @@ if (isset($_POST['do']) && $_POST['do'] == 'newShadow') {
} elseif (isset($_POST['ekr2'])) {
//Обмен екр на кр.
$ekr = round($_POST['ekr2'], 2);
if ($c['ecrtocr'] * 2.5 < 0.01) {
if (Config::EKR_TO_KR_EXCHANGE < 0.01) {
$u->error = 'Сегодня обменник закрыт.';
} elseif ($day1 < 0.01) {
$u->error = 'Сегодня для вас обмен закрыт, приходите завтра.';
} elseif ($ekr < 0.01) {
$u->error = 'Минимальная сумма обмена 0.01 ЕКР.';
$u->error = 'Минимальная сумма обмена 0.01 екр.';
} elseif ($ekr > $day1) {
$u->error = 'Вы можете обменять еще ' . $day1 . ' ЕКР сегодня.';
$u->error = 'Вы можете обменять еще ' . $day1 . ' екр сегодня.';
} elseif ($ekr > $u->info['money2']) {
$u->error = 'Недостаточно денег для обмена.';
} else {
$kr = round($ekr * $c['ecrtocr'] * 2.5, 2);
$u->error = 'Вы успешно обменяли ' . $ekr . ' ЕКР на ' . $kr . ' КР.';
$kr = round($ekr * Config::EKR_TO_KR_EXCHANGE, 2);
$u->error = 'Вы успешно обменяли ' . $ekr . ' екр на ' . $kr . ' кр.';
//
$u->info['money'] += $kr;
$u->info['money2'] -= $ekr;
@ -387,18 +412,18 @@ if (isset($_POST['do']) && $_POST['do'] == 'newShadow') {
'INSERT INTO `user_operation` ( `uid`,`time`,`money`,`money2`,`type`,`b1`,`b2` ) VALUES (
"' . $u->info['id'] . '","' . time() . '","' . round($kr, 2) . '","' . round(
-$ekr, 2
) . '","Обмен ЕКР на КР","' . $u->info['money'] . '","' . $u->info['money2'] . '"
) . '","Обмен екр на кр","' . $u->info['money'] . '","' . $u->info['money2'] . '"
)'
);
}
$dc1 = mysql_fetch_array(
mysql_query(
'SELECT SUM(`money2`) FROM `user_operation` WHERE `time` >= "' . $timetoday . '" AND `uid` = "' . $u->info['id'] . '" AND `type` = "Обмен ЕКР на КР" LIMIT 1'
'SELECT SUM(`money2`) FROM `user_operation` WHERE `time` >= "' . $timetoday . '" AND `uid` = "' . $u->info['id'] . '" AND `type` = "Обмен екр на кр" LIMIT 1'
)
);
$dc2 = mysql_fetch_array(
mysql_query(
'SELECT SUM(`money`) FROM `user_operation` WHERE `time` >= "' . $timetoday . '" AND `uid` = "' . $u->info['id'] . '" AND `type` = "Обмен КР на ЕКР" LIMIT 1'
'SELECT SUM(`money`) FROM `user_operation` WHERE `time` >= "' . $timetoday . '" AND `uid` = "' . $u->info['id'] . '" AND `type` = "Обмен кр на екр" LIMIT 1'
)
);
$dc1 = $dc1[0];
@ -459,6 +484,7 @@ if (isset($_POST['do']) && $_POST['do'] == 'newShadow') {
'Мусорщик' => 1,
'Мироздатель' => 1,
];
//
$login_db = mysql_fetch_array(
mysql_query(
@ -554,7 +580,7 @@ if (isset($_POST['do']) && $_POST['do'] == 'newShadow') {
//
$out_ekr = 0;
}
$out_summ = round($out_ekr * $bt['cur'], 2);
$out_summ = round($out_ekr * $exchangeToday->oneEkrInRUB(), 2);
$inv_desc = 'Приобрести ' . $out_ekr . ' екр., персонаж №' . $u->info['id'] . ', дилер №' . round(
(int)$_POST['ref']
) . '';
@ -627,25 +653,10 @@ if (isset($_POST['do']) && $_POST['do'] == 'newShadow') {
header('location: ' . $url);
die();
print "<html>" .
"<script type=\"text/javascript\" src=\"js/jquery.js\"></script><form id=\'F1\' action='https://www.free-kassa.ru/merchant/cash.php' method=POST>" .
"Сумма платежа: " . $out_ekr . " Екр. " .
"<input type=hidden name=m value=$mrh_login>" .
"<input type=hidden name=oa value=$out_summ>" .
"<input type=hidden name=InvId value=$inv_id>" .
"<input type=hidden name=Desc value='$inv_desc'>" .
"<input type=hidden name=s value=$crc>" .
"<input type=hidden name=ovalue='$shp_item'>" .
"<input type=hidden name=i value=$in_curr>" .
"<input type=hidden name=lang value=$culture>" .
"<input type=submit value='Оплатить'><Br>" .
"(Все средства идут на развитие и улучшение игры)" .
"</form><script>$('#F1').sumbit();</script></html>";
die();
}
?>
<HTML>
<HTML lang="ru">
<HEAD>
<title>Покупка ЕвроКредитов - Бойцовский Клуб</title>
<script type="text/javascript" src="/res/js/jquery-1.7.1.min.js"></script>
@ -656,9 +667,8 @@ if (isset($_POST['do']) && $_POST['do'] == 'newShadow') {
<META Http-Equiv=Expires Content=0>
<style>
.t, .t tr, .t tr td {
font-family: Times New Roman;
font-family: "Trebuchet MS", serif;
font-size: 16px;
border: 1px solid black;
border-collapse: collapse;
@ -688,7 +698,7 @@ if (isset($_POST['do']) && $_POST['do'] == 'newShadow') {
}
.t .p {
padding: 0px 5px 0px 5px;
padding: 0 5px;
}
.t .btop {
@ -716,7 +726,6 @@ if (isset($_POST['do']) && $_POST['do'] == 'newShadow') {
color: green;
font-weight: bold;
}
</style>
</HEAD>
<body>
@ -735,164 +744,148 @@ if (isset($_POST['do']) && $_POST['do'] == 'newShadow') {
<?php if ($ball == 0): ?>
<div style='font-weight:bold; color:red; padding: 10px 0 10px 0; font-size: 1.2em; text-align: center;'>
Акция! При первом пополнении баланса,<br>
Вы получаете дополнительно 20% ЕКР к сумме покупки БЕСПЛАТНО.
Вы получаете дополнительно 20% екр к сумме покупки БЕСПЛАТНО.
</div>
<?php endif; ?>
<table style="width:98%; margin: auto;">
<tr>
<td style="width: 500px; padding: 10px; vertical-align: top;">
<fieldset style="border: 1px solid white; padding: 10px;margin-top:15px; font-weight: bold;">
<legend></legend>
<span style='color:#8F0000;'>Ваш накопительный бонус:</span>
<span style="color: green; "><?= $bns[$b1][1] ?>% (<?= $ball ?> ЕКР)</span>
<span style="color: green; "><?= $bns[$b1][1] ?>% (<?= $ball ?> екр)</span>
</fieldset>
<fieldset
style="width:480px; border: 1px solid white; margin-top:15px; padding: 10px;">
<legend style='font-weight:bold; color:#8F0000;'>Покупка ЕКР</legend>
<fieldset style="width:480px; border: 1px solid white; margin-top:15px; padding: 10px;">
<legend style='font-weight:bold; color:#8F0000;'>Покупка екр</legend>
<form method="post" id="ekrform" action="ekr.php?buy_ekr=1"
onsubmit="if(document.getElementById('ch_1').checked==false) {alert('Вы не согласились с пользовательским соглашением.');return false;} else {if(document.getElementById('ch_2').checked==false) {alert('Вы не согласились с условиями оплаты.');return false;}} if(document.getElementById('ekr').value<1) {alert('Нельзя купить менее 1 ЕКР!');return false;}">
<b>Сумма ЕКР:</b> <input type="text" name="ekr" id="ekr" value="" size="8"
onchange="calc();"
onkeyup="if(event.keyCode<35||event.keyCode>40) calc();"> &nbsp;
<form method="post" id="ekrform" action="/ekr.php?buy_ekr=1" onsubmit="if(document.getElementById('ekr').value<1) {alert('Нельзя купить менее 1 екр!'); return false;}">
<label for="ekr" style="font-weight: bold;">Сумма екр:</label>
<input type="number" name="ekr" id="ekr" min="1" max="99999" onchange="calc();" onkeyup="calc();"> &nbsp;
<input type="submit" class="btn btn-success" value="Пополнить баланс"><br/>
<div id="calc" style="font-weight: bold; width: 400px; margin: 10px auto;">
&nbsp;<br>&nbsp;<br>&nbsp;
</div>
<script>
function bonus_n(a) {
var pr = <?=($bns[$b1][1])?>;
return (Math.floor((a * pr / 100) * 100) / 100);
}
function bonus_s(a) {
if (a >= 100) {
pr = 20;
} else if (a >= 10) {
pr = 10;
} else {
pr = 0;
}
return (Math.floor((a * pr / 100) * 100) / 100);
}
function calc() {
document.getElementById('ekr').value = document.getElementById('ekr').value.replace(/[^\d\.]+/g, '');
var ekr = document.getElementById('ekr').value;
if (ekr.match(/^[-\+]?[\d]+\.?[\d]*$/) == null) {
ekr = 0;
}
ekr4 = ekr = Math.round(ekr * 100) / 100;
var ekr4 = ekr.toFixed(2);
if (document.getElementById('ekr').value != ekr) {
document.getElementById('ekr').value = ekr;
}
//alert(ekr);
var ekr2 = bonus_n(ekr); //alert(ekr2);
var ekr3 = bonus_s(ekr); //alert(ekr3);
var ekr7 = 0;
ekr2 = Math.floor(ekr2 * 100) / 100;
ekr3 = Math.floor(ekr3 * 100) / 100;
<?php if ($ball == 0): ?>
ekr7 = Math.floor((ekr / 5) * 100) / 100;
<?php endif; ?>
var ekrr = ekr + ekr2 + ekr3 + ekr7;
ekrr = Math.round(ekrr * 100) / 100;
document.getElementById('calc').innerHTML = 'Накопительный бонус: <font color=green>' + ekr2 + ' ЕКР</font><br />Оптовый бонус: <font color=green>' + ekr3 + ' ЕКР</font><?php if($ball == 0) { ?><br />Акция на 1-ое пополнение: <font color=red>' + ekr7 + ' ЕКР</font><?php } ?><br />Итого: <font color=green>' + ekrr + ' ЕКР</font>';
}
calc();
</script>
<table style="border: 1px solid white; margin: auto; width: 400px;">
<tr style="border-bottom: 1px solid white;">
<td style="border-right: 1px solid white;padding:2px;">1 ЕКР</td>
<td style="padding:2px;"><?= round($bt['cur'], 2) ?> Рублей</td>
</tr>
<tr style="border-bottom: 1px solid white;">
<td style="border-right: 1px solid white;padding:2px;">1 ЕКР</td>
<td style="padding:2px;"><?= round($bt['cur'] / $bt['USD'], 2) ?> Доллара *</td>
</tr>
</table>
<small>
* - зависит от текущих курсов валют<br/>
<b>Доставка игровой валюты производится в автоматическом режиме, сразу же после
оплаты!</b>
<br/><br/>
При оплате могут возникать задержки на пополнение, обычно не более 1 часа. Если по
истечению нескольких часов деньги так и не поступили на ваш баланс, то необходимо
обратиться в <a href="https://www.free-kassa.ru/support.php" target="_blank">службу
поддержки FREE-KASSA</a>.
</small>
<br/><br/>
</form>
<div id="calc" style="font-weight: bold; width: 400px; margin: 10px auto;">
&nbsp;<br>&nbsp;<br>&nbsp;
</div>
<small>
<label><input type="checkbox" name="ch1" id="ch_1"/> Внимание! При пополнении баланса вы
соглашаетесь с <a href="/encicl/law2.html" target="_blank">соглашением
о предоставлении сервиса игры &laquo; Бойцовский Клуб &raquo;</a>.</label><br>
<label><input type="checkbox" name="ch1" id="ch_1"/> Внимание! При пополнении баланса вы
соглашаетесь с <a href="/encicl/law3.html" target="_blank">Политикой
Конфиеденцальности проекта &laquo; Бойцовский Клуб &raquo;</a>.</label><br>
<label><input type="checkbox" name="ch1" id="ch_1"/> Внимание! При пополнении баланса вы
соглашаетесь с <a href="/encicl/law4.html" target="_blank">Договором
публичной оферты &laquo; Бойцовский Клуб &raquo;</a>.</label>
<br/>
Если Вы очень хотели бы положить деньги на игровой счїт, но нет подходящей платїжной
системы, обратитесь за помощью к <b> Администратору </b> проекта.
<br/><br/>
</small>
<script>
function bonus_n(a) {
const pr = <?=($bns[$b1][1])?>;
return (Math.floor((a * pr / 100) * 100) / 100);
}
function bonus_s(a) {
if (a >= 100) {
pr = 20;
} else if (a >= 10) {
pr = 10;
} else {
pr = 0;
}
return (Math.floor((a * pr / 100) * 100) / 100);
}
function calc() {
document.getElementById('ekr').value = document.getElementById('ekr').value.replace(/[^\d\.]+/g, '');
let ekr = document.getElementById('ekr').value;
if (ekr.match(/^[-\+]?[\d]+\.?[\d]*$/) == null) {
ekr = 0;
}
if (document.getElementById('ekr').value != ekr) {
document.getElementById('ekr').value = ekr;
}
//alert(ekr);
let ekr2 = bonus_n(ekr); //alert(ekr2);
let ekr3 = bonus_s(ekr); //alert(ekr3);
let ekr7 = 0;
ekr2 = Math.floor(ekr2 * 100) / 100;
ekr3 = Math.floor(ekr3 * 100) / 100;
<?php if ($ball == 0): ?>
ekr7 = Math.floor((ekr / 5) * 100) / 100;
<?php endif; ?>
let ekrr = ekr + ekr2 + ekr3 + ekr7;
ekrr = Math.round(ekrr * 100) / 100;
document.getElementById('calc').innerHTML = 'Накопительный бонус: <font color=green>' + ekr2 + ' екр</font><br />Оптовый бонус: <font color=green>' + ekr3 + ' екр</font><?php if($ball == 0) { ?><br />Акция на 1-ое пополнение: <font color=red>' + ekr7 + ' екр</font><?php } ?><br />Итого: <font color=green>' + ekrr + ' екр</font>';
}
calc();
</script>
<table style="border: 1px solid white; margin: auto; width: 400px;">
<tr style="border-bottom: 1px solid white;">
<td style="border-right: 1px solid white;padding:2px;">1 екр</td>
<td style="padding:2px;"><?= $exchangeToday->oneEkrInRUB() ?></td>
</tr>
<tr style="border-bottom: 1px solid white;">
<td style="border-right: 1px solid white;padding:2px;">1 екр</td>
<td style="padding:2px;">$<?= $exchangeToday->oneEkrInUSD() ?>
<sub style="font-size: xx-small; color: grey;">[курс ЦБ РФ]</sub>
</td>
</tr>
</table>
<div style="font-size: smaller; border-left: 4px dashed crimson; padding: 0 5px; background-color: silver; margin: 10px 0;">
<strong>Зачисление средств производится в автоматическом режиме, сразу же после оплаты.</strong><br>
В случае проблем с оплатой игровых бонусов обращайтесь в
<a href="https://www.free-kassa.ru/support.php" target="_blank">службу поддержки FREE-KASSA</a>.
</div>
<div style="font-size: smaller;">
Внимание! При пополнении баланса вы соглашаетесь с:
<div style="font-size: xx-small; margin: 10px 0;">
<a href="/encicl/law2.html" target="_blank">Cоглашением о предоставлении сервиса</a><br>
<a href="/encicl/law3.html" target="_blank">Политикой Конфиеденцальности</a><br>
<a href="/encicl/law4.html" target="_blank">Договором публичной оферты</a><br>
</div>
По вопросам использования других способов оплаты обратитесь к игровым
<img src="<?= Config::img() ?>/i/align/align50.gif" alt="Администратор">&nbsp;<strong>Администраторам</strong>.
</div>
</fieldset>
</td>
<td style="padding: 10px; vertical-align: top;">
<div style="border: 1px solid white; padding: 10px;margin-top:15px;">
<span style='color:#8F0000; font-weight: bold;'>
Ваш баланс счёта:
<b style="color: green"><?= $u->info['money2'] ?> ЕКР</b> и
<b style="color: black"><?= $u->info['money'] ?> КР</b>.
</span>
<div style="border: 1px solid white; padding: 10px;margin-top:15px; color:#8F0000; font-weight: bold;">
Ваш баланс: <span style="color: green"><?= $u->info['money2'] ?> екр</span> и <?= $u->info['money'] ?> кр.
</div>
<fieldset style="border: 1px solid white; padding: 10px;margin-top:15px;">
<legend style='font-weight:bold; color:#8F0000;'>Обмен</legend>
<form method="post" action="ekr.php"
onsubmit="if(document.getElementById('ekr2').value><?= $day1 ?>) {alert('Сегодня вы можете еще обменять не более <?= $day1 ?> ЕКР');return false;} else if(document.getElementById('ekr2').value<0.01||document.getElementById('ekr2').value><?= $day1 ?>) {alert('За 1 раз Вы можете обменять сумму от 0.01 до <?= $day1 ?> ЕКР.');return false;} else {return confirm('Вы действительно хотите обменять '+document.getElementById('ekr2').value+' ЕКР на '+(document.getElementById('ekr2').value*<?= $c['ecrtocr'] * 2.5 ?>)+' КР ? В обратном направлении обмен с КР на ЕКР будет невозможен.');}">
Обменять ЕКР на КР по курсу <b>1ЕКР=<?= $c['ecrtocr'] * 2.5 ?>КР</b>: &nbsp; <input
type="text" name="ekr2" id="ekr2" value="" size="5" placeholder="<?= $day1 ?> max"
onchange="calc22();" onkeyup="if(event.keyCode<35||event.keyCode>40) calc22();">
&nbsp; <input type="submit" class="btn btn-success" name="submit" id="calc2"
value="Обменять"><br/>
<form method="post"
onsubmit="if(document.getElementById('ekr2').value><?= $day1 ?>) {alert('Сегодня вы можете еще обменять не более <?= $day1 ?> екр');return false;} else if(document.getElementById('ekr2').value<0.01||document.getElementById('ekr2').value><?= $day1 ?>) {alert('За 1 раз Вы можете обменять сумму от 0.01 до <?= $day1 ?> екр.');return false;} else {return confirm('Вы действительно хотите обменять '+document.getElementById('ekr2').value+' екр на '+(document.getElementById('ekr2').value*<?= Config::EKR_TO_KR_EXCHANGE ?>)+' кр ? В обратном направлении обмен с кр на екр будет невозможен.');}">
<label for="ekr2">Обменять екр на кр по курсу <b>1 екр = <?= Config::EKR_TO_KR_EXCHANGE ?> кр</b>:</label>
<input type="number" name="ekr2" id="ekr2" min="1" max="<?= $day1 ?>" placeholder="<?= $day1 ?> max" onchange="calc22()" onkeyup="calc22()">
&nbsp; <input type="submit" class="btn btn-success" name="submit" id="calc2" value="Обменять"><br/>
</form>
<form method="post" action="ekr.php"
<form method="post"
onsubmit="if(document.getElementById('kr001').value<<?= round(
$c['crtoecr'] / 100, 2
Config::KR_TO_EKR_EXCHANGE / 100, 2
) ?>) {alert('Минимальная сумма обмена <?= round(
$c['crtoecr'] / 100, 2
) ?> КР');return false;}else if(document.getElementById('kr001').value><?= $day2 ?>) {alert('Сегодня вы можете еще обменять не более <?= $day2 ?> КР');return false;} else {return confirm('Вы действительно хотите обменять '+document.getElementById('kr001').value+' КР на '+(Math.round(document.getElementById('kr001').value/10)/50)+' ЕКР? Отменить операцию обмена будет невозможно.');}">
Обменять КР на ЕКР по курсу <b><?= $c['crtoecr'] ?>КР=1ЕКР</b>:
<input type="text" style="margin-left:1px;" name="kr001"
id="kr001" value="" placeholder="<?= $day2 ?> max" size="5" onchange="calc24();"
onkeyup="if(event.keyCode<35||event.keyCode>40) calc23();">
&nbsp;<input type="submit" class="btn btn-success" name="submit" id="calc3"
value="Обменять">
<br>
Config::KR_TO_EKR_EXCHANGE / 100, 2
) ?> кр');return false;}else if(document.getElementById('kr001').value><?= $day2 ?>) {alert('Сегодня вы можете еще обменять не более <?= $day2 ?> кр');return false;} else {return confirm('Вы действительно хотите обменять '+document.getElementById('kr001').value+' кр на '+(Math.round(document.getElementById('kr001').value/10)/50)+' екр? Отменить операцию обмена будет невозможно.');}">
<label for="kr001">Обменять кр на екр по курсу <b><?= Config::KR_TO_EKR_EXCHANGE ?> кр = 1 екр</b>:</label>
<input type="text" style="margin-left:1px;" name="kr001" id="kr001" value="" placeholder="<?= $day2 ?> max" size="5" onchange="calc24();" onkeyup="calc23();">
<input type="submit" class="btn btn-success" name="submit" id="calc3" value="Обменять"><br>
</form>
<script>
// Калькулятор kr->ekr.
function calc23() {
document.getElementById('kr001').value = document.getElementById('kr001').value.replace(/[^\d]+/g, '');
var kr001 = document.getElementById('kr001').value;
document.getElementById('kr001').value = document.getElementById('kr001').value.replace(/[^\d.]+/g, '');
let kr001 = document.getElementById('kr001').value;
kr001 = Math.floor(kr001 / 10) * 10;
var kr001ekr = kr001 / <?=$c['crtoecr']?>;
const kr001ekr = kr001 / <?= Config::KR_TO_EKR_EXCHANGE ?>;
document.getElementById('calc3').value = 'Обменять ' + kr001 + ' КР на ' + kr001ekr + ' ЕКР';
if (kr001 === 0) {
document.getElementById("calc3").className = document.getElementById("calc3").className.replace(/(?:^|\s)btn-success(?!\S)/g, '');
document.getElementById("calc3").className += " btn-danger";
document.getElementById('calc3').disabled = true;
document.getElementById('calc3').value = 'Введите количество';
} else {
document.getElementById("calc3").className = document.getElementById("calc3").className.replace(/(?:^|\s)btn-danger(?!\S)/g, '');
document.getElementById("calc3").className += " btn-success";
document.getElementById('calc3').disabled = false;
document.getElementById('calc3').value = 'Обменять ' + kr001 + ' кр на ' + kr001ekr + ' екр';
}
return kr001;
}
@ -903,22 +896,33 @@ if (isset($_POST['do']) && $_POST['do'] == 'newShadow') {
calc24();
// Калькулятор ekr->kr.
function calc22() {
document.getElementById('ekr2').value = document.getElementById('ekr2').value.replace(/[^\d\.]+/g, '');
var ekre = document.getElementById('ekr2').value;
document.getElementById('ekr2').value = document.getElementById('ekr2').value.replace(/[^\d.]+/g, '');
let ekre = document.getElementById('ekr2').value;
if (ekre.match(/^[-\+]?[\d]+\.?[\d]*$/) == null) {
ekre = 0;
}
ekre = Math.floor(ekre * 100) / 100;
var ekr4 = ekre.toFixed(2);
const ekr4 = ekre.toFixed(2);
if (document.getElementById('ekr2').value != ekre) {
document.getElementById('ekr2').value = ekr4;
}
var kre = parseFloat(ekre) * <?=$c['ecrtocr'] * 2.5?>;
var kre = parseFloat(ekre) * <?= Config::EKR_TO_KR_EXCHANGE ?>;
document.getElementById('calc2').value = 'Обменять ' + ekre + ' ЕКР на ' + kre.toFixed(0) + ' КР';
if (ekre === 0) {
document.getElementById("calc2").className = document.getElementById("calc3").className.replace(/(?:^|\s)btn-success(?!\S)/g, '');
document.getElementById("calc2").className += " btn-danger";
document.getElementById('calc2').disabled = true;
document.getElementById('calc2').value = 'Введите количество';
} else {
document.getElementById("calc2").className = document.getElementById("calc3").className.replace(/(?:^|\s)btn-danger(?!\S)/g, '');
document.getElementById("calc2").className += " btn-success";
document.getElementById('calc2').disabled = false;
document.getElementById('calc2').value = 'Обменять ' + ekre + ' екр на ' + kre.toFixed(0) + ' кр';
}
}
calc22();
@ -928,79 +932,71 @@ if (isset($_POST['do']) && $_POST['do'] == 'newShadow') {
<fieldset style="border: 1px solid white; padding: 20px 11px 21px 11px;margin-top:15px;">
<legend style='font-weight:bold; color:#8F0000;'>Накопительные бонусы</legend>
<table class="t" style="width: 500px; margin: auto;">
<caption></caption>
<tr class="b">
<td>ЕКР</td>
<td class="bright ">Бонус</td>
<td>ЕКР</td>
<td>Бонус</td>
<th>екр</th>
<th class="bright ">Бонус</th>
<th>екр</th>
<th>Бонус</th>
</tr>
<tr>
<td class="">800 ЕКР</td>
<td class="">800 екр</td>
<td class="bright ">10%</td>
<td class="">3 000 ЕКР <img src="/res/img/medals/vip.gif" title="VIP"
style="margin-top:2px; width: 20px;" alt="VIP"></td>
<td class="">3 000 екр <img src="/res/img/medals/vip.gif" title="VIP" style="margin-top:2px; width: 20px;" alt="VIP"></td>
<td class="">30%</td>
</tr>
<tr>
<td class="">700 ЕКР</td>
<td class="">700 екр</td>
<td class="bright ">9%</td>
<td class="">2 500 ЕКР <img src="/res/img/medals/vip.gif" title="VIP"
style="margin-top:2px; width: 20px;" alt="VIP"></td>
<td class="">2 500 екр <img src="/res/img/medals/vip.gif" title="VIP" style="margin-top:2px; width: 20px;" alt="VIP"></td>
<td class="">27%</td>
</tr>
<tr>
<td class="">600 ЕКР</td>
<td class="">600 екр</td>
<td class="bright ">8%</td>
<td class="">2 000 ЕКР <img src="/res/img/medals/vip.gif" title="VIP"
style="margin-top:2px; width: 20px;" alt="VIP"></td>
<td class="">2 000 екр <img src="/res/img/medals/vip.gif" title="VIP" style="margin-top:2px; width: 20px;" alt="VIP"></td>
<td class="">25%</td>
</tr>
<tr>
<td class="">500 ЕКР</td>
<td class="">500 екр</td>
<td class="bright ">7%</td>
<td class="">1 700 ЕКР <img src="/res/img/medals/vip.gif" title="VIP"
style="margin-top:2px; width: 20px;" alt="VIP"></td>
<td class="">1 700 екр <img src="/res/img/medals/vip.gif" title="VIP" style="margin-top:2px; width: 20px;" alt="VIP"></td>
<td class="">23%</td>
</tr>
<tr>
<td class="">400 ЕКР</td>
<td class="">400 екр</td>
<td class="bright ">6%</td>
<td class="">1 500 ЕКР <img src="/res/img/medals/vip.gif" title="VIP"
style="margin-top:2px; width: 20px;" alt="VIP"></td>
<td class="">1 500 екр <img src="/res/img/medals/vip.gif" title="VIP" style="margin-top:2px; width: 20px;" alt="VIP"></td>
<td class="">21%</td>
</tr>
<tr>
<td class="">300 ЕКР</td>
<td class="">300 екр</td>
<td class="bright ">5%</td>
<td class="">1 300 ЕКР <img src="/res/img/medals/vip.gif" title="VIP"
style="margin-top:2px; width: 20px;" alt="VIP"></td>
<td class="">1 300 екр <img src="/res/img/medals/vip.gif" title="VIP" style="margin-top:2px; width: 20px;" alt="VIP"></td>
<td class="">19%</td>
</tr>
<tr>
<td class="">200 ЕКР</td>
<td class="">200 екр</td>
<td class="bright ">4%</td>
<td class="">1 200 ЕКР <img src="/res/img/medals/vip.gif" title="VIP"
style="margin-top:2px; width: 20px;" alt="VIP"></td>
<td class="">1 200 екр <img src="/res/img/medals/vip.gif" title="VIP" style="margin-top:2px; width: 20px;" alt="VIP"></td>
<td class="">17%</td>
</tr>
<tr>
<td class="">100 ЕКР</td>
<td class="">100 екр</td>
<td class="bright ">3%</td>
<td class="">1 100 ЕКР <img src="/res/img/medals/vip.gif" title="VIP"
style="margin-top:2px; width: 20px;" alt="VIP"></td>
<td class="">1 100 екр <img src="/res/img/medals/vip.gif" title="VIP" style="margin-top:2px; width: 20px;" alt="VIP"></td>
<td class="">15%</td>
</tr>
<tr>
<td class="">50 ЕКР</td>
<td class="">50 екр</td>
<td class="bright ">2%</td>
<td class="">1 000 ЕКР <img src="/res/img/medals/vip.gif" title="VIP"
style="margin-top:2px; width: 20px;" alt="VIP"></td>
<td class="">1 000 екр <img src="/res/img/medals/vip.gif" title="VIP" style="margin-top:2px; width: 20px;" alt="VIP"></td>
<td class="">13%</td>
</tr>
<tr>
<td class="">10 ЕКР</td>
<td class="">10 екр</td>
<td class="bright ">1%</td>
<td class="">900 ЕКР</td>
<td class="">900 екр</td>
<td class="">11%</td>
</tr>
</table>
@ -1010,8 +1006,9 @@ if (isset($_POST['do']) && $_POST['do'] == 'newShadow') {
<legend style='font-weight:bold; color:#8F0000;'>Оптовые бонусы</legend>
<table class="t" style="width: 500px; margin: auto;">
<caption></caption>
<tr class="b light">
<td>Бонус</td>
<th scope="row">Бонус</th>
<td>10%</td>
<td>10%</td>
<td>10%</td>
@ -1019,15 +1016,15 @@ if (isset($_POST['do']) && $_POST['do'] == 'newShadow') {
<td>10%</td>
</tr>
<tr style="border-bottom: 2px solid black;">
<td class="b">Сумма</td>
<td>10 ЕКР</td>
<td>20 ЕКР</td>
<td>30 ЕКР</td>
<td>40 ЕКР</td>
<td>50 ЕКР</td>
<th scope="row" class="b">Сумма</th>
<td>10 екр</td>
<td>20 екр</td>
<td>30 екр</td>
<td>40 екр</td>
<td>50 екр</td>
</tr>
<tr class="b light">
<td class="b">Бонус</td>
<th scope="row" class="b">Бонус</th>
<td>10%</td>
<td>10%</td>
<td>10%</td>
@ -1035,12 +1032,12 @@ if (isset($_POST['do']) && $_POST['do'] == 'newShadow') {
<td>20%</td>
</tr>
<tr>
<td class="b">Сумма</td>
<td>60 ЕКР</td>
<td>70 ЕКР</td>
<td>80 ЕКР</td>
<td>90 ЕКР</td>
<td>100 ЕКР</td>
<th scope="row" class="b">Сумма</th>
<td>60 екр</td>
<td>70 екр</td>
<td>80 екр</td>
<td>90 екр</td>
<td>100 екр</td>
</tr>
</table>
</fieldset>
@ -1049,8 +1046,8 @@ if (isset($_POST['do']) && $_POST['do'] == 'newShadow') {
</tr>
<tr>
<td colspan="2" style='font-weight:bold; color:#8F0000; padding: 10px 0 10px 0; font-size: 1.5em;'>
<center>Коммерческие услуги</center>
<td colspan="2" style='font-weight:bold; color:#8F0000; padding: 10px 0 10px 0; font-size: 1.5em; text-align: center;'>
Коммерческие услуги
</td>
</tr>
<tr>
@ -1103,7 +1100,7 @@ if (isset($_POST['do']) && $_POST['do'] == 'newShadow') {
<fieldset style="width:480px; border: 1px solid white; padding: 10px;margin:15px;">
<legend style='font-weight:bold; color:#8F0000;'>Покупка личного образа</legend>
<small>
<b>Стоимость услуги: 100 ЕКР</b><br>
<b>Стоимость услуги: 100 екр</b><br>
Требования к персональному образу:<br/>
GIF-картинка размером 120x220 (ШхВ) и весом до 300 Кб.<br/>
<br>
@ -1179,7 +1176,7 @@ if (isset($_POST['do']) && $_POST['do'] == 'newShadow') {
<legend style='font-weight:bold; color:#8F0000;'>Покупка личного смайлика</legend>
<small>
<b>Стоимость услуги: <?php $ekr_smile = 10;
echo $ekr_smile; ?> ЕКР</b><br>
echo $ekr_smile; ?> екр</b><br>
Требования к смайлику:<br/>
GIF-картинка размером от 15x15 до 95x21 (ШхВ) и весом до 30 Кб.<br/>
<br>
@ -1217,7 +1214,7 @@ if (isset($_POST['do']) && $_POST['do'] == 'newShadow') {
<fieldset style="border: 1px solid white; padding: 10px;margin:15px;">
<legend style='font-weight:bold; color:#8F0000;'>Смена имени персонажа</legend>
<small>
<b>Стоимость услуги: 25 ЕКР</b><br>
<b>Стоимость услуги: 25 екр</b><br>
Текущее имя: <?= $u->info['login'] ?><br>
<form method="post" action="ekr.php" id="lform">
<input type="hidden" name="do" value="changeLogin"/>

View File

@ -1,175 +1,121 @@
<?php
if(!defined('GAME')) {
die();
}
?>
<script type="text/javascript" src="js/jquery.js"></script>
<script>
var nlevel = 0;
var from = Array('+', ' ', '#');
var to = Array('%2B', '+', '%23');
use Core\Config;
use Core\Db;
use Model\EkrExchangeRates;
function w(login,id,align,klan,level,online,city,battle){
var s='';
if(online != "") {
if (city!="") {
s+='<img src=//img.new-combats.tech/1x1.gif width="20" height="15" alt="В другом городе" />';
} else {
s+='<a href="javascript:top.chat.addto(\''+login+'\',\'private\');"><img src=//img.new-combats.tech/i/lock.gif width="20" height="15" alt="Приватно" /></a>';
}
if (city!="") {
s+='<img title="'+city+'" src="//img.new-combats.tech/i/city_ico/'+city+'.gif" width="17" height="15" />';
}
s+=' <img src="//img.new-combats.tech/i/align/align'+align+'.gif" width="12" height="15" />';
if (klan!='') {s+='<a href="/encicl/klan/'+klan+'.html" target="_blank"><img src="//img.new-combats.tech/i/clan/'+klan+'.gif" width="24" height="15" /></a>'}
s+='<a href="javascript:top.chat.addto(\''+login+'\',\'to\');">'+login+'</a>['+level+']<a href="/info/'+id+'" target="_blank"><img src="//img.new-combats.tech/i/inf_capitalcity.gif" width="12" height="11" alt="Информация о персонаже" /></a>';
if (city!="") {
s+=" - нет в этом городе";
} else {
s+=' - '+online;
}
} else {
s+='<img src="//img.new-combats.tech/i/offline.gif" width="20" height="15" border="0" alt="Нет в клубе" />';
if (city!="") {
s+='<img title="'+city+'" src="//img.new-combats.tech/i/city_ico/'+city+'.gif" width="17" height="15" />';
}
if (align == "") align="0";
s+=' <img src="//img.new-combats.tech/i/align/align'+align+'.gif" width="12" height="15" />';
if (klan!='') {s+='<a href="https://<?= $c['host']; ?>/encicl/clan/'+klan+'.html" target="_blank"><img src="//img.new-combats.tech/i/klan/'+klan+'.gif" width="24" height="15" /></a>'}
if (level) {
if (nlevel==0) {
nlevel=1; s="<br />"+s;
}
s+='<font color=gray><b>'+login+'</b>['+level+']<a href="/info/'+id+'" target="_blank"><img src="//img.new-combats.tech/i/inf.gif" width="12" height="11" alt="Информация о персонаже" /></a> - Нет в клубе';
} else {
if (nlevel==1) {
nlevel=2; s="<br />"+s;
}
mlogin = login;
for(var i=0;i<from.length;++i) while(mlogin.indexOf(from[i])>=0) mlogin= mlogin.replace(from[i],to[i]);
s+='<font color=gray><i>'+login+'</i> <a href="/info/'+mlogin+'" target="_blank"><img src="//img.new-combats.tech/i/inf_.gif" width="12" height="11" alt="Информация о персонаже" /></a> - нет в этом городе';
}
s+='</font>';
}
document.write(s+'<br />');
}
</script>
<div id=hint4 class=ahint></div>
<TABLE cellspacing=0 cellpadding=2 width=100%>
<TR>
<TD style="width: 40%; vertical-align: top; "><br />
<TABLE cellspacing=0 cellpadding=2 style="width: 100%; ">
<TR>
<TD align=center><h4>Алхимики</h4></TD>
</TR>
<TR>
<TD bgcolor=efeded nowrap><SCRIPT>
<?php
$data = mysql_query("SELECT `id`, `login`, `align`, `level`, `battle`, `online`, `city`, (select `name` from `room` WHERE `id` = users.`room`) as `room` FROM `users` WHERE `align` = '50' order by online DESC, login asc;");
$i = 0;
while($a = mysql_fetch_array($data))
function getAlchemistsAsJsString(): string
{
if ($a['online']>(time()-120))
{
$online = $a['room'];
$id = $a['id'];
$level = $a['level'];
$battle = $a['battle'];
}elseif($a['online']<(time()-120))
{
$online = '';
$id = '';
$level = '';
$battle = '';
}
//w( login, id, align, klan, level, online, city, battle){
$citya = $a['city'];
if($a['city']==$u->info['city'])
{
$citya = '';
}
echo 'w("'.$a['login'].'","'.$id.'","'.$a['align'].'","","'.$level.'","'.$online.'","'.$citya.'","'.$battle.'");';
$i++;
$result = '';
$sql = 'select id, login, align, level, online, (select name from room where id = room) as room from users where align = 50 order by online desc, align';
$rows = Db::getRows($sql);
foreach ($rows as $row) {
if ($row['online'] <= time() - 120) {
$row['id'] = '';
$row['level'] = '';
$row['online'] = '';
}
// generate: w(login,id,level,online);
$result .= "w({$row['login']},{$row['id']},{$row['level']},{$row['online']});";
}
return $result;
}
$pl = mysql_fetch_array(mysql_query('SELECT * FROM `bank_table` ORDER BY `time` DESC LIMIT 1'));
$exchangeToday = new EkrExchangeRates();
$alchemists = getAlchemistsAsJsString();
?>
</SCRIPT>
<?php
if( $i == 0 ) {
echo '<center>Нет ни одного назначенного Алхимика</cetner>';
}
?>
<TR>
<TD style="text-align: left; "><small>Курс покупки ЕвроКредитов: <b>1</b> р. = <b><?=round($pl['cur'],2)?> </b>руб.<br>
Курс обмена ЕвроКредитов: <b>1</b> екр = <b><?=$c['ecrtocr']?></b> кр.<br>
<?php
if($c['crtoecr']>0) {
?>
Курс обмена Кредитов: <?=$c['crtoecr']?> кр = 1 екр.<br>
<?php
}
?>Продают еврокредиты и прочие платные услуги сервиса<BR>Вы можете отправить им личное сообщение, даже если Вы и Алхимик находитесь в разных городах</small></div></TD>
</TR>
<TR>
<TD style="text-align: left; ">&nbsp;</TD>
</TR>
</TABLE>
<script src="/js/jquery.js"></script>
<script>
let nlevel = 0;
<br />
function w(login, id, level, online) {
let s = '';
const imagehost = '<?= Config::img() ?>';
const alchemistAlign = 50;
<table>
<tr>
<td valign="top"><fieldset>
<legend><b>Курс еврокредита к мировой валюте</b> </legend>
<table width="100%" border="0" cellpadding="2" cellspacing="0">
<?php
if(isset($pl['id'])) {
?>
<tr>
<td><small>Данные на <b><?=date('d.m.y H:i',$pl['time'])?></b> без учета комиссий</small></td>
</tr>
<?php
$pl['RUB'] = 40;
$i = 0;
$true = array(
array('USD', 'долларов США'),
array('EUR', 'ЕВРО'),
array('RUB','российских рублей'),
array('UAH','укр. гривен'),
array('BYR','белорусских рублей'),
array('AZN','азербайджанских манат'),
array('GBP','англ. фунтов стерлингов')
);
while($i < count($true)) {
?>
<tr>
<td><span>1 екр. = </span><span style="display:inline-block;width:100px"><b><?=round( ($pl['cur']/$pl[$true[$i][0]]) , 4 )?></b></span><span><?=$true[$i][1]?></span></td>
</tr>
<?php
$i++;
}
}else{
?>
<tr>
<td><small><center><font color=grey>Не удалось получить информацию</font></center></small></td>
</tr>
<?php } ?>
</table>
</fieldset></td>
</tr>
if (online) {
s += '<a href="javascript:top.chat.addto(\'' + login + '\',\'private\');"><img src="' + imagehost + '/i/lock.gif" alt="Приватно"></a>';
s += ' <img src="' + imagehost + '/i/align/align' + alchemistAlign + '.gif" alt="">';
s += '<a href="javascript:top.chat.addto(\'' + login + '\',\'to\');">' + login + '</a>[' + level + ']' +
'<a href="/info/' + id + '" target="_blank"><img src="' + imagehost + '/i/inf_capitalcity.gif" alt="Информация о персонаже"></a>';
s += ' - ' + online;
} else {
s += '<img src="' + imagehost + '/i/offline.gif" alt="Нет в клубе">';
s += ' <img src="' + imagehost + '/i/align/align' + alchemistAlign + '.gif" alt="">';
if (nlevel === 0) {
nlevel = 1;
s = "<br>" + s;
}
s += '<span style="color:gray;">' +
'<b>' + login + '</b>[' + level + ']<a href="/info/' + id + '" target="_blank"><img src="' + imagehost + '/i/inf.gif" alt="Информация о персонаже"></a> - Нет в клубе' +
'</span>';
}
document.write(s + '<br>');
}
</script>
<div id=hint4 class=ahint></div>
<table style="width: 100%;" role="none">
<tr>
<td style="width: 40%; vertical-align: top; "><br>
<table style="width: 100%;" role="none">
<TR>
<td style="text-align: center;"><h4>Алхимики</h4></td>
</TR>
<TR>
<td style="background-color: lavender; white-space: nowrap;">
<?php if (!empty($alchemists)): ?>
<script><?= getAlchemistsAsJsString() ?></script>
<?php else: ?>
<div style="text-align: center;">Нет ни одного назначенного Алхимика</div>
<?php endif; ?>
</td>
<tr>
<td>
<div style="font-size: xx-small;">
Курс покупки ЕвроКредитов: <b>1</b> р. = <b><?= $exchangeToday->oneEkrInRUB() ?> </b>руб.<br>
Курс обмена ЕвроКредитов: <b>1</b> екр = <b><?= Config::EKR_TO_KR_EXCHANGE ?></b> кр.<br>
<?php if (Config::KR_TO_EKR_EXCHANGE > 0): ?>
Курс обмена Кредитов: <?= Config::KR_TO_EKR_EXCHANGE ?> кр = 1 екр.<br>
<?php endif; ?>
Продают еврокредиты и прочие платные услуги сервиса<BR>
</div>
</td>
</tr>
<tr>
<td>&nbsp;</td>
</tr>
</table>
<br>
<table style="width: 100%; border: 0;">
<caption><b>Курс еврокредита к мировой валюте</b></caption>
<tr>
<th><small>Данные на <?= $exchangeToday->date() ?> без учета комиссий</small></th>
</tr>
<tr>
<td>
<span>1 екр. = </span>
<span style="display:inline-block;width:100px;font-weight: bold;"><?= $exchangeToday->oneEkrInUSD() ?></span>
<span>долларов США</span>
</td>
</tr>
<tr>
<td>
<span>1 екр. = </span>
<span style="display:inline-block;width:100px;font-weight: bold;"><?= $exchangeToday->oneEkrInRUB() ?></span>
<span>российских рублей</span>
</td>
</tr>
</table>
</td>
<td style="width: 5%; vertical-align: top; ">&nbsp;</td>
<td style="width: 25%; vertical-align: top; text-align: right;">
<button class="btn" onclick="location.href='/main.php?alh&rnd=<?= mt_rand() ?>'">Обновить</button>
<button class="btn" onclick="location.href='/main.php'">Вернуться</button>
</td>
</tr>
</table>
</TD>
<TD style="width: 5%; vertical-align: top; ">&nbsp;</TD>
<TD style="width: 25%; vertical-align: top; text-align: right; "><INPUT class="btn" type='button' value='Обновить' style='width: 100px' onclick='location="/main.php?alh&rnd=<?=$code?>"';'>
&nbsp;<INPUT TYPE=button value="Вернуться" class="btn" style="width: 100px" onclick='location="/main.php"'></TD>
</TR>
</TABLE>
<DIV>
<?= $c['counters']; ?>
</DIV>

View File

@ -4,6 +4,7 @@
use Core\Config;
use Core\Db;
use Model\EkrExchangeRates;
use User\UserIp;
if (!defined('GAME')) {
@ -66,7 +67,7 @@ if (!defined('GAME')) {
</div>
<?php
$pl = Db::getRow('select * from bank_table order by time desc limit 1');
$exchangeToday = new EkrExchangeRates();
$ba = Db::getRow('select * from bank_alh where uid = ?', [$u->info['id']]);
if (isset($ba['id'])) {
@ -78,11 +79,11 @@ if (isset($ba['id'])) {
<b><?= $ba['ekr'] ?></b> ЕКР
<hr/>
<?php
$ucur = round(round(($pl['cur'] / $pl['USD']), 4) / 100 * (100 - $ba['procent']), 2);
$ucur = round($exchangeToday->oneEkrInUSD() / 100 * (100 - $ba['procent']), 2);
?>
Персональный курс: <b><?= $ucur ?></b> $ = 1 Еврокредит.
<hr/>
<form method="post" action="main.php?alhp=1">
<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']]);
@ -185,7 +186,7 @@ if (isset($ba['id'])) {
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'] * $pl['cur'], 2);
$money = round($_POST['buy4ekr'] * $exchangeToday->oneEkrInRUB(), 2);
$money = round($money / 100 * (100 - $ba['procent']), 2);