diff --git a/_incl_data/class/Core/Config.php b/_incl_data/class/Core/Config.php index 8c75cd9e..8dd03a02 100644 --- a/_incl_data/class/Core/Config.php +++ b/_incl_data/class/Core/Config.php @@ -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'; diff --git a/_incl_data/class/Model/EkrExchangeRates.php b/_incl_data/class/Model/EkrExchangeRates.php new file mode 100644 index 00000000..7bd783c7 --- /dev/null +++ b/_incl_data/class/Model/EkrExchangeRates.php @@ -0,0 +1,37 @@ +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']; + } +} + diff --git a/_incl_data/crons/UpdateEkrPrices.php b/_incl_data/crons/UpdateEkrPrices.php new file mode 100644 index 00000000..433db8ae --- /dev/null +++ b/_incl_data/crons/UpdateEkrPrices.php @@ -0,0 +1,28 @@ +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); diff --git a/_incl_data/crons/bank_updateExchangeRates.php b/_incl_data/crons/bank_updateExchangeRates.php deleted file mode 100644 index d5758435..00000000 --- a/_incl_data/crons/bank_updateExchangeRates.php +++ /dev/null @@ -1,101 +0,0 @@ -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]); -} diff --git a/ekr.php b/ekr.php index 35c496e0..2777f674 100644 --- a/ekr.php +++ b/ekr.php @@ -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 Внимание! Вы успешно пополнили свой игровой счїт на 0.13 ЕКР. Приятной Вам игры! +$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 Внимание! Вы успешно пополнили свой игровой счїт на 0.13 екр. Приятной Вам игры! 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 "" . - "
"; - die(); } ?> - +- |
-
-
- Ваш баланс счёта:
- = $u->info['money2'] ?> ЕКР и
- = $u->info['money'] ?> КР.
-
+
info['id']]);
if (isset($ba['id'])) {
@@ -78,11 +79,11 @@ if (isset($ba['id'])) {
= $ba['ekr'] ?> ЕКР
+ Ваш баланс: = $u->info['money2'] ?> екр и = $u->info['money'] ?> кр.
-= $c['counters']; ?>
-
diff --git a/modules_data/_alhp.php b/modules_data/_alhp.php
index bacdd4e6..457e0b1d 100644
--- a/modules_data/_alhp.php
+++ b/modules_data/_alhp.php
@@ -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')) {
oneEkrInUSD() / 100 * (100 - $ba['procent']), 2); ?> Персональный курс: = $ucur ?> $ = 1 Еврокредит. - |