Utf8 convert
This commit is contained in:
@@ -6,41 +6,41 @@ 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
|
||||
$xml = new DOMDocument();
|
||||
// ññûëêà íà ñàéò áàíêà
|
||||
// ссылка на сайт банка
|
||||
$url = 'https://www.cbr.ru/scripts/XML_daily.asp?date_req=' . date('d.m.Y');
|
||||
// ïîëó÷àåì xml ñ êóðñàìè âñåõ âàëþò
|
||||
// получаем xml с курсами всех валют
|
||||
if (!$xml->load($url)) {
|
||||
// åñëè íå ïîëó÷èëè xml âîçâðàùàåì false
|
||||
// если не получили xml возвращаем false
|
||||
return false;
|
||||
}
|
||||
// ìàññèâ äëÿ õðàíåíèÿ êóðñîâ âàëþò
|
||||
// массив для хранения курсов валют
|
||||
$result = [];
|
||||
// ðàçáèðàåì xml
|
||||
// разбираем xml
|
||||
$root = $xml->documentElement;
|
||||
// áåðåì âñå òåãè 'Valute' è èõ ñîäåðæèìîå
|
||||
// берем все теги 'Valute' и их содержимое
|
||||
$items = $root->getElementsByTagName('Valute');
|
||||
// ïåðåáåðåì òåãè '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;
|
||||
}
|
||||
|
||||
|
||||
@@ -5,8 +5,8 @@ use Core\Db;
|
||||
require_once dirname(__DIR__) . DIRECTORY_SEPARATOR . 'autoload.php';
|
||||
|
||||
/**
|
||||
* ×èñòêà è ñáðîñ ñ÷åò÷èêîâ ïðè îòñóòñòâèè áîåâ ÷òîá íå ëàìàëñÿ ëîã.
|
||||
* Çàïóñê êàæäûå òðè ÷àñà â Õ ÷àñîâ 20 ìèíóò?
|
||||
* Чистка и сброс счетчиков при отсутствии боев чтоб не ламался лог.
|
||||
* Запуск каждые три часа в Х часов 20 минут?
|
||||
*/
|
||||
|
||||
Db::sql('delete from battle_end where time < unix_timestamp() - 24 * 60 * 60');
|
||||
|
||||
@@ -4,9 +4,9 @@ use Core\Db;
|
||||
|
||||
require_once dirname(__DIR__) . DIRECTORY_SEPARATOR . 'autoload.php';
|
||||
|
||||
/* CRON Çàâåðøåíèå ïîåäèíêà è óäàëåíèå èç çàÿâîê */
|
||||
/* CRON Завершение поединка и удаление из заявок */
|
||||
|
||||
# Çàïóñê ðàç â ìèíóòó.
|
||||
# Запуск раз в минуту.
|
||||
|
||||
function getIds($query): string
|
||||
{
|
||||
@@ -46,10 +46,10 @@ Db::sql('delete from battle_cache where time < unix_timestamp() - 3600');
|
||||
|
||||
//$bid = getIds('select id from battle where type = 33 and (time_over < unix_timestamp() - 120 or time_over > unix_timestamp() - 360)');
|
||||
|
||||
////äè÷ü, íåâûïîëíèìîå óñëîâèå: `time_over` < "'.(time()-120).'" AND `time_over` > "'.(time() - 360).'" AND `time_over` != 0
|
||||
//// óòî÷íèòü ðåàëèçàöèþ
|
||||
////дичь, невыполнимое условие: `time_over` < "'.(time()-120).'" AND `time_over` > "'.(time() - 360).'" AND `time_over` != 0
|
||||
//// уточнить реализацию
|
||||
|
||||
//âûòàñêèâàåì ïåðñîâ èç ïðèç õàîòà åñëè çàñòðßëè (1-5 ìèíóò îêîí÷àíèå)
|
||||
//вытаскиваем персов из приз хаота если застрЯли (1-5 минут окончание)
|
||||
//$sp = mysql_fetch_array(mysql_query('SELECT * FROM `battle` WHERE `type` = 33 AND `time_over` < "'.(time()-120).'" AND `time_over` > "'.(time() - 360).'" AND `time_over` != 0 ORDER BY `battle`.`time_over` DESC LIMIT 1'));
|
||||
//if (isset($sp['id']))
|
||||
// {
|
||||
@@ -69,9 +69,9 @@ Db::sql('delete from battle_cache where time < unix_timestamp() - 3600');
|
||||
// }
|
||||
|
||||
|
||||
//‚ûòàñêèâàåì ïåðñîâ åñëè çàñòðßëè â áîßõ
|
||||
//‚ытаскиваем персов если застрЯли в боЯх
|
||||
|
||||
//todo, âñ¸, íè÷åãî íå ñîîáðàæàþ. äîäåëàòü çàïðîñ, ÷òîáû îí ó÷èòûâàë: || !isset($test['id']
|
||||
//todo, всё, ничего не соображаю. доделать запрос, чтобы он учитывал: || !isset($test['id']
|
||||
|
||||
//'update users
|
||||
// left join stats on users.id = stats.id
|
||||
@@ -96,6 +96,6 @@ while( $pl = mysql_fetch_array($sps))
|
||||
}
|
||||
}
|
||||
}
|
||||
//÷èñòèì ïàìßòü
|
||||
//чистим памЯть
|
||||
unset($sp,$sps,$pl,$test);
|
||||
|
||||
|
||||
@@ -5,11 +5,11 @@ use Insallah\Tournaments\Tournament;
|
||||
require_once dirname(__DIR__) . DIRECTORY_SEPARATOR . 'autoload.php';
|
||||
|
||||
/**
|
||||
* Проверяем и стартуем турниры (старые), групповые и хаотические поединки.
|
||||
* Дописал сюда и новые турниры тоже.
|
||||
* Проверяем и стартуем турниры (старые), групповые и хаотические поединки.
|
||||
* Дописал сюда и новые турниры тоже.
|
||||
*
|
||||
* Запускается каждые 10 милисекунд!!!
|
||||
* 5 раз в секунду с таймером в 10 милисекунд.
|
||||
* Запускается каждые 10 милисекунд!!!
|
||||
* 5 раз в секунду с таймером в 10 милисекунд.
|
||||
*/
|
||||
|
||||
(new FightRequest())->testCronZv();
|
||||
|
||||
@@ -5,12 +5,12 @@ use Core\Db;
|
||||
require_once dirname(__DIR__) . DIRECTORY_SEPARATOR . 'autoload.php';
|
||||
|
||||
/**
|
||||
* Çàïóñê ïðèçîâîãî õàîòà.
|
||||
* Çàïóñê êàæäûé ÷àñ â Õ ÷àñîâ 10 ìèíóò ñ 8 óòðà äî 2 íî÷è.
|
||||
* Î_Î
|
||||
* Запуск призового хаота.
|
||||
* Запуск каждый час в Х часов 10 минут с 8 утра до 2 ночи.
|
||||
* О_О
|
||||
*/
|
||||
|
||||
//Ïîäàåì òóðíèð (õàîò) äëÿ 8-11 óðîâíåé
|
||||
//Подаем турнир (хаот) для 8-11 уровней
|
||||
|
||||
Db::sql(
|
||||
'insert into zayvki (
|
||||
@@ -37,13 +37,13 @@ Db::sql(
|
||||
)
|
||||
values (?,1,1,\'capitalcity\',0,33,300,180,8,8,12,12,1,5,unix_timestamp(),1,1,40,0,0)',
|
||||
[
|
||||
"<i style='color: green;'>Àâòîçàÿâêà! <b>Òåñò ïðîøó íå çàõîäèòü</b></i>", 'capitalcity',
|
||||
"<i style='color: green;'>Автозаявка! <b>Тест прошу не заходить</b></i>", 'capitalcity',
|
||||
]
|
||||
);
|
||||
|
||||
Db::sql(
|
||||
'insert into chat (`text`,`type`,`new`,`time`) values (?,6,1,unix_timestamp())',
|
||||
[
|
||||
"<span style='color: red'>Âíèìàíèå!!!</span> <span style='color:#cb0000'><b>Ãåðîè÷åñêîå Ñðàæåíèå</b> íà÷àëîñü.</span>",
|
||||
"<span style='color: red'>Внимание!!!</span> <span style='color:#cb0000'><b>Героическое Сражение</b> началось.</span>",
|
||||
]
|
||||
);
|
||||
|
||||
@@ -1,9 +1,9 @@
|
||||
<?php
|
||||
|
||||
/**
|
||||
* Âûçîâ áîòîâ â èãðîâûå êîìíàòû.
|
||||
* Вызов ботов в игровые комнаты.
|
||||
*
|
||||
* Çàïóñê ðàç â ìèíóòó.
|
||||
* Запуск раз в минуту.
|
||||
*/
|
||||
|
||||
use Core\Db;
|
||||
@@ -21,7 +21,7 @@ function makeLogin(int $id, string $login, int $level): string
|
||||
HTML;
|
||||
}
|
||||
|
||||
function testMonster(array $mon): bool // ×ÒÎ ÒÛ ÁËßÒÜ ÒÀÊÎÅ? ×ÒÎ ÒÛ ÏÐÎÂÅÐßÅØÜ? ÊÀÊ ÒÛ ÐÀÁÎÒÀÅØÜ?
|
||||
function testMonster(array $mon): bool // ЧТО ТЫ БЛЯТЬ ТАКОЕ? ЧТО ТЫ ПРОВЕРЯЕШЬ? КАК ТЫ РАБОТАЕШЬ?
|
||||
{
|
||||
return
|
||||
(
|
||||
@@ -62,13 +62,13 @@ foreach ($rows as $row) {
|
||||
$mon = Db::getRow('select * from aaa_monsters where uid = ?', [$row['id']]);
|
||||
|
||||
if ($row['res_x'] < time()) {
|
||||
if (isset($mon['id'])) { //åñëè áîò â ñïåöèàëüíîì ñïèñêå
|
||||
// åñëè áîò ñïðÿòàí â äîìèêå (303) - âûïóñêàåì è ëå÷èì åãî
|
||||
if (isset($mon['id'])) { //если бот в специальном списке
|
||||
// если бот спрятан в домике (303) - выпускаем и лечим его
|
||||
if (testMonster($mon) && $row['room'] == 303) {
|
||||
Db::sql('update users set room = ? where id = ?', [$mon['start_room'], $row['id']]);
|
||||
Db::sql('update stats set hpNow = hpAll, mpNow = mpAll where id = ?', [$row['id']]);
|
||||
if ($mon['start_text']) {
|
||||
$str = '<span style="color: red">Âíèìàíèå!</span> ';
|
||||
$str = '<span style="color: red">Внимание!</span> ';
|
||||
$str .= str_replace('{b}', makeLogin($row['id'], $row['login'], $row['level']), $mon['start_text']);
|
||||
Db::sql(
|
||||
'insert into chat (text, city, type, new, time) values (?,?,6,1,unix_timestamp())',
|
||||
@@ -90,10 +90,10 @@ foreach ($rows as $row) {
|
||||
isset($mon['id']) &&
|
||||
testMonster($mon)
|
||||
) {
|
||||
// åñëè áîò íå â äîìèêå, îòïðàëÿåì â äîìèê (303).
|
||||
// если бот не в домике, отпраляем в домик (303).
|
||||
Db::sql('update users set room = 303 where id = ?', [$row['id']]);
|
||||
if ($mon['back_text']) {
|
||||
$str = '<span style="color: red">Âíèìàíèå!</span> ';
|
||||
$str = '<span style="color: red">Внимание!</span> ';
|
||||
$str .= str_replace('{b}', makeLogin($row['id'], $row['login'], $row['level']), $mon['back_text']);
|
||||
Db::sql(
|
||||
'insert into chat (text, city, type, new, time)
|
||||
|
||||
@@ -4,13 +4,13 @@ use Core\Db;
|
||||
|
||||
require_once dirname(__DIR__) . DIRECTORY_SEPARATOR . 'autoload.php';
|
||||
|
||||
# Êàêèå-òî îïåðàöèè íàä áîòàìè.
|
||||
## Ýòîò ôàéë óïðàâëÿåò âñåé ëîãèêîé âñåõ áîòîâ âåçäå.
|
||||
## BotLogic::start - î÷åíü òÿæåëûé íà çàïðîñû êëàññ.
|
||||
# Какие-то операции над ботами.
|
||||
## Этот файл управляет всей логикой всех ботов везде.
|
||||
## BotLogic::start - очень тяжелый на запросы класс.
|
||||
|
||||
# ðàç â ìèíóòó
|
||||
# Ðàíüøå â êðîíå áûë äîïîëíèòåëüíûé òàéìåð íà îáíîâëåíèå êàæäûå 4 ñåêóíäû.
|
||||
# Åñëè áîòàì áóäåò ìàëî ìèíóòû, èãðàòüñÿ òàéìåðîì.
|
||||
# раз в минуту
|
||||
# Раньше в кроне был дополнительный таймер на обновление каждые 4 секунды.
|
||||
# Если ботам будет мало минуты, играться таймером.
|
||||
|
||||
$uids = implode(
|
||||
',',
|
||||
@@ -30,7 +30,7 @@ Db::sql("update stats set bot = 2 where bot = 0 and id in ($uids)");
|
||||
|
||||
Db::sql("update stats set nextAct = unix_timestamp() where id in ($uids)");
|
||||
|
||||
# ×ÒÎ ÒÛ ÒÀÊÎÅ ÁËßÒÜ?!
|
||||
# ЧТО ТЫ ТАКОЕ БЛЯТЬ?!
|
||||
$btltest = [];
|
||||
$data = Db::getRows('select zv, stats.id, battle from users left join stats on users.id = stats.id where no_ip = ? or pass = ? order by nextAct', ['trupojor', 'saintlucia']);
|
||||
foreach ($data as $row) {
|
||||
|
||||
@@ -4,18 +4,18 @@ use Core\Db;
|
||||
|
||||
require_once dirname(__DIR__) . DIRECTORY_SEPARATOR . 'autoload.php';
|
||||
|
||||
/** Îïòèìèçèðîâàíî. Íî êàê-òî õåðîâàòî. Íàäî îòêàçàòüñÿ îò âûçîâà $u. È çàïðîñû êàêèå-òî âðàçíîáîé, íàäî ðàçáèðàòüñÿ.
|
||||
* CRON Êîìèññèîííîãî ìàãàçèíà
|
||||
* Åñëè ïðåäìåò âèñèò óæå 2 è áîëåå íåäåëü, ïðîäàâàòü ïðåäìåò çà 50% îò åãî ñòîèìîñòè ñ ó÷åòîì èçíîñà.
|
||||
* Äåíüãè îòñûëàþòñÿ íà ïî÷òó.
|
||||
/** Оптимизировано. Но как-то херовато. Надо отказаться от вызова $u. И запросы какие-то вразнобой, надо разбираться.
|
||||
* CRON Комиссионного магазина
|
||||
* Если предмет висит уже 2 и более недель, продавать предмет за 50% от его стоимости с учетом износа.
|
||||
* Деньги отсылаются на почту.
|
||||
* @author Insallah
|
||||
* @todo ïðîâåðèòü íà êîíôëèêòû ñ cshop_sellToShop.
|
||||
* @todo проверить на конфликты с cshop_sellToShop.
|
||||
*/
|
||||
|
||||
# Êàæäûé ïîíåäåëüíèê â 12 äíÿ.
|
||||
# Каждый понедельник в 12 дня.
|
||||
|
||||
const RETURN_GROUP = '"<span style="color: #C65F00;">Shop.capitalcity</span>": Âîçâðàò èç êîìèññèîííîãî ìàãàçèíà ïðåäìåò: [id="%s"/ Íàçâàíèå : "%s"/ Öåíà : "%s"/ Ãðóïïèðîâêà : "$s"].';
|
||||
const RETURN_ONE = '"<span style="color: #C65F00;">Shop.capitalcity</span>": Âîçâðàò èç êîìèññèîííîãî ìàãàçèíà ïðåäìåò: [id="%s"/ Íàçâàíèå : "%s"/ Öåíà : "%s"].';
|
||||
const RETURN_GROUP = '"<span style="color: #C65F00;">Shop.capitalcity</span>": Возврат из комиссионного магазина предмет: [id="%s"/ Название : "%s"/ Цена : "%s"/ Группировка : "$s"].';
|
||||
const RETURN_ONE = '"<span style="color: #C65F00;">Shop.capitalcity</span>": Возврат из комиссионного магазина предмет: [id="%s"/ Название : "%s"/ Цена : "%s"].';
|
||||
const SHOP_TYPE = 'Shop.comission';
|
||||
|
||||
$u = User::start();
|
||||
|
||||
@@ -5,26 +5,26 @@ use Core\Db;
|
||||
require_once dirname(__DIR__) . DIRECTORY_SEPARATOR . 'autoload.php';
|
||||
|
||||
/**
|
||||
* CRON Êîìèññèîííîãî ìàãàçèíà
|
||||
* Åñëè ïðåäìåò âèñèò óæå 2 è áîëåå íåäåëü, ïðîäàâàòü ïðåäìåò çà 50% îò åãî ñòîèìîñòè ñ ó÷åòîì èçíîñà.
|
||||
* Äåíüãè îòñûëàþòñÿ íà ïî÷òó.
|
||||
* CRON Комиссионного магазина
|
||||
* Если предмет висит уже 2 и более недель, продавать предмет за 50% от его стоимости с учетом износа.
|
||||
* Деньги отсылаются на почту.
|
||||
*
|
||||
* Ïðèìåðíî âîò òàê äîëæåí âûãëÿäåòü íîðìàëüíûé êðîí. Ìåíüøå ëåâûõ çàâèñèìîñòåé, íåò ïîäòÿãèâàíèþ ïîëîâèíû äâèæêà.
|
||||
* Âñ¸ åù¸ íå èäåàëüíî, íî óæå íåïëîõî.
|
||||
* Примерно вот так должен выглядеть нормальный крон. Меньше левых зависимостей, нет подтягиванию половины движка.
|
||||
* Всё ещё не идеально, но уже неплохо.
|
||||
*
|
||||
* Çàïóñê ðàç â ìèíóòó.
|
||||
* Запуск раз в минуту.
|
||||
*
|
||||
* @author Ivor Barhansky <me@lopar.space>
|
||||
* @todo ïðîâåðèòü íà êîíôëèêòû ñ cshop_returnToOwner.
|
||||
* @todo Âåðíóòü çàïðîñû âçàä è âûâåñòè èõ èç öèêëîâ. "íîðìàëüíûé êðîí", ¸ïò, ïîä êàêèìè âåùåñòâàìè ÿ ýòî äåëàë?
|
||||
* @todo проверить на конфликты с cshop_returnToOwner.
|
||||
* @todo Вернуть запросы взад и вывести их из циклов. "нормальный крон", ёпт, под какими веществами я это делал?
|
||||
*/
|
||||
|
||||
const TIME_LAST = 86400; // 1 day
|
||||
const AUC = '<span style="color: #009966;">Ôèëèàë Àóêöèîíà</span>';
|
||||
const AUC_WIN = 'Âû âûèãðàëè òîðãè. Ïðåäìåò "%s" çà <b>%s êð.</b> áûë äîáàâëåí ê âàì â èíâåíòàðü.';
|
||||
const AUC_SELL = 'Ïðåäìåò "%s" áûë ïðîäàí íà òîðãàõ, <b>%s</b> êð. çà òîâàð îòïðàâëåíû âàì ïî ïî÷òå.';
|
||||
const AUC_SELL_LOG = 'Ôèëèàë Àóêöèîíà: Ïðåäìåò "%s" áûë ïðîäàí çà <b>%s êð</b>.';
|
||||
const AUC_NOT_SELL = 'Ïðåäìåò "%s" íå áûë ïðîäàí, îí âîçâðàùåí âàì â èíâåíòàðü.';
|
||||
const AUC = '<span style="color: #009966;">Филиал Аукциона</span>';
|
||||
const AUC_WIN = 'Вы выиграли торги. Предмет "%s" за <b>%s кр.</b> был добавлен к вам в инвентарь.';
|
||||
const AUC_SELL = 'Предмет "%s" был продан на торгах, <b>%s</b> кр. за товар отправлены вам по почте.';
|
||||
const AUC_SELL_LOG = 'Филиал Аукциона: Предмет "%s" был продан за <b>%s кр</b>.';
|
||||
const AUC_NOT_SELL = 'Предмет "%s" не был продан, он возвращен вам в инвентарь.';
|
||||
|
||||
$query = [ //all queries
|
||||
'insert into chat (new, login, `to`, text, time, type) values (1, ?, ?, ?, unix_timestamp(), 6)',
|
||||
|
||||
@@ -5,18 +5,18 @@ use Core\Db;
|
||||
require_once dirname(__DIR__) . DIRECTORY_SEPARATOR . 'autoload.php';
|
||||
|
||||
/**
|
||||
* Ñêðèïò îòâå÷àåò çà ÷èñòêó ïåùåð êîòîðûå íå èñïîëüçóþòñÿ èãðîêîì â òå÷åíèè 3 ÷àñîâ
|
||||
* ïðè ó÷åòå ÷òî ïåùåðå áîëüøå 5 ÷àñîâ îò âðåìåíè ñîçäàíèÿ.
|
||||
* Скрипт отвечает за чистку пещер которые не используются игроком в течении 3 часов
|
||||
* при учете что пещере больше 5 часов от времени создания.
|
||||
*
|
||||
* Çàïóñê ðàç â ìèíóòó.
|
||||
* (3 ÷àñà îôôëàéíà íà 5 ÷àñîâ ñóùåñòâîâàíèÿ, çà÷åì òóò ïîìèíóòêà?)
|
||||
* Запуск раз в минуту.
|
||||
* (3 часа оффлайна на 5 часов существования, зачем тут поминутка?)
|
||||
*/
|
||||
|
||||
# Âûáèðàåì ïåùåðó (ÈÄ, ÃÎÐÎÄ), ãäå:
|
||||
# Èãðîê â ïåùåðå
|
||||
# Èãðîê îôôëàéí áîëåå 3õ ÷àñîâ
|
||||
# Ïåùåðà çàïóùåíà áîëåå 3õ ÷àñîâ íàçàä
|
||||
# Âðåìÿ ïåùåðû âûøëî (?!)
|
||||
# Выбираем пещеру (ИД, ГОРОД), где:
|
||||
# Игрок в пещере
|
||||
# Игрок оффлайн более 3х часов
|
||||
# Пещера запущена более 3х часов назад
|
||||
# Время пещеры вышло (?!)
|
||||
# ??? bsid
|
||||
|
||||
$dungeons = Db::getRows(
|
||||
@@ -42,7 +42,7 @@ foreach ($dungeons as $dungeon) {
|
||||
if (!$dungeon['did'] || $dungeon['did'] === 15) {
|
||||
continue;
|
||||
}
|
||||
# [1] Âûêèäûâàåì èãðîêîâ ñ ïîäçåìåëüÿ è ïåðåìåùàåì åãî â `382` ïîäâàëüíîå ïîìåùåíèå
|
||||
# [1] Выкидываем игроков с подземелья и перемещаем его в `382` подвальное помещение
|
||||
|
||||
$podvalRoom = 382;
|
||||
if ($dungeon['city'] === 'capitalcity') {
|
||||
@@ -52,29 +52,29 @@ foreach ($dungeons as $dungeon) {
|
||||
}
|
||||
|
||||
Db::sql('update stats set dnow = 0 where id in (select id from stats where dnow = ? limit 10)', [$dungeon['did']]);
|
||||
# Âûáðîñèëè èãðîêà ñ ïîäçåìåëüÿ è ïåðåìåñòèëè â ïîäâàëüíîå ïîìåùåíèå
|
||||
# Выбросили игрока с подземелья и переместили в подвальное помещение
|
||||
Db::sql(
|
||||
'update users set room = ? where id in (select id from stats where dnow = ? limit 10)',
|
||||
[$podvalRoom, $dungeon['did']]
|
||||
);
|
||||
# Âûáðàñûâàåì ïåùåðíûå ïðåäìåòû ó èãðîêà
|
||||
# Выбрасываем пещерные предметы у игрока
|
||||
Db::sql(
|
||||
'update items_users set `delete` = unix_timestamp() where dn_delete = 1 and uid in (select id from stats where dnow = ? limit 10)',
|
||||
[$dungeon['did']]
|
||||
);
|
||||
|
||||
# [2] Óäàëÿåì îáúåêòû.
|
||||
# [2] Удаляем объекты.
|
||||
Db::sql('delete from dungeon_obj where for_dn = 0 and dn = ?', [$dungeon['did']]);
|
||||
|
||||
# [3] Óäàëÿåì ìîíñòðîâ.
|
||||
# [3] Удаляем монстров.
|
||||
Db::sql('delete from dungeon_bots where for_dn = 0 and dn = ?', [$dungeon['did']]);
|
||||
|
||||
# [4] Óäàëÿåì ïðåäìåòû.
|
||||
# [4] Удаляем предметы.
|
||||
Db::sql('delete from dungeon_items where for_dn = 0 and dn = ?', [$dungeon['did']]);
|
||||
|
||||
# [5] Óäàëÿåì äåéñòâèÿ (actions)
|
||||
# [5] Удаляем действия (actions)
|
||||
Db::sql('delete from dungeon_actions where dn = ?', [$dungeon['did']]);
|
||||
|
||||
# [6] Çàêðûâàåì Ïîäçåìåëüå Dungeon_Now - time_finish = time();
|
||||
# [6] Закрываем Подземелье Dungeon_Now - time_finish = time();
|
||||
Db::sql('update dungeon_now set time_finish = unix_timestamp() where id = ?', [$dungeon['did']]);
|
||||
}
|
||||
|
||||
@@ -5,8 +5,8 @@ use Core\Db;
|
||||
require_once dirname(__DIR__) . DIRECTORY_SEPARATOR . 'autoload.php';
|
||||
|
||||
/**
|
||||
* Что-то для квестов.
|
||||
* Вызов раз в час
|
||||
* Что-то для квестов.
|
||||
* Вызов раз в час
|
||||
*/
|
||||
|
||||
$data = Db::getRows('select id, battle, room from users where `real` = 1');
|
||||
|
||||
@@ -5,8 +5,8 @@ use Core\Db;
|
||||
require_once dirname(__DIR__) . DIRECTORY_SEPARATOR . 'autoload.php';
|
||||
|
||||
/**
|
||||
* Îáíîâèòü ðåéòèíã êëàíîâ.
|
||||
* Ðàç â äåíü.
|
||||
* Обновить рейтинг кланов.
|
||||
* Раз в день.
|
||||
*/
|
||||
|
||||
$add_exp_list = [];
|
||||
@@ -71,8 +71,8 @@ foreach ($clans as $clan) {
|
||||
|
||||
$global_exp = idate('d') != 1 ? round($clan['global']) : 0;
|
||||
if ($clan['ucount'] > 0) {
|
||||
$add_exp_list[$clan['cid']] = $add_exp; //çàïèñûâàåì ñêîëüêî îïûòà ïîëó÷èë çà ñåãîäíÿ
|
||||
$all_exp_list[$clan['cid']] = $global_exp + $add_exp; //çàïèñûâàåì ñêîëüêî îïûòà ïîëó÷èë âñåãî + ñåãîäíÿøíèé
|
||||
$add_exp_list[$clan['cid']] = $add_exp; //записываем сколько опыта получил за сегодня
|
||||
$all_exp_list[$clan['cid']] = $global_exp + $add_exp; //записываем сколько опыта получил всего + сегодняшний
|
||||
}
|
||||
}
|
||||
|
||||
@@ -116,10 +116,10 @@ Db::sql(
|
||||
(?,\'capitalcity\',6,1,unix_timestamp()),
|
||||
(?,\'capitalcity\',6,1,unix_timestamp())',
|
||||
[
|
||||
'<span style="color: red; font-weight: bold;">Ðåéòèíã êëàíîâ ' . date('d-m-Y') . ' </span>',
|
||||
'Êëàí ' . $log_list[0] . ' ïîëó÷àåò ' . $xu_list[0] * 0.3 . ' Åêð. â êàçíó êëàíà çà 1-å ìåñòî â ðåéòèíãå!',
|
||||
'Êëàí ' . $log_list[1] . ' ïîëó÷àåò ' . $xu_list[1] * 0.2 . ' Åêð. â êàçíó êëàíà çà 2-å ìåñòî â ðåéòèíãå!',
|
||||
'Êëàí ' . $log_list[2] . ' ïîëó÷àåò ' . $xu_list[2] * 0.1 . ' Åêð. â êàçíó êëàíà çà 3-å ìåñòî â ðåéòèíãå!',
|
||||
'<span style="color: red; font-weight: bold;">Рейтинг кланов ' . date('d-m-Y') . ' </span>',
|
||||
'Клан ' . $log_list[0] . ' получает ' . $xu_list[0] * 0.3 . ' Екр. в казну клана за 1-е место в рейтинге!',
|
||||
'Клан ' . $log_list[1] . ' получает ' . $xu_list[1] * 0.2 . ' Екр. в казну клана за 2-е место в рейтинге!',
|
||||
'Клан ' . $log_list[2] . ' получает ' . $xu_list[2] * 0.1 . ' Екр. в казну клана за 3-е место в рейтинге!',
|
||||
]
|
||||
);
|
||||
|
||||
|
||||
@@ -5,11 +5,11 @@ use Core\Db;
|
||||
require_once dirname(__DIR__) . DIRECTORY_SEPARATOR . 'autoload.php';
|
||||
|
||||
/**
|
||||
* Обновить рейтинг игроков.
|
||||
* Раз в день.
|
||||
* Обновить рейтинг игроков.
|
||||
* Раз в день.
|
||||
*/
|
||||
|
||||
//Рейтинг по вкладам
|
||||
//Рейтинг по вкладам
|
||||
$ub = [];
|
||||
$ui = [];
|
||||
|
||||
@@ -21,7 +21,7 @@ foreach ($payOperations as $operation) {
|
||||
$ub[$operation['uid']][date('d.m.Y', $operation['good'])] = $operation['ekr'];
|
||||
}
|
||||
|
||||
// ЧТО ТЫ БЛЯТЬ ТАКОЕ?!
|
||||
// ЧТО ТЫ БЛЯТЬ ТАКОЕ?!
|
||||
foreach ($ui as $item) {
|
||||
if (!$item) {
|
||||
continue;
|
||||
@@ -74,13 +74,13 @@ foreach ($users as $user) {
|
||||
$log_list[$user['id']] = $user['login'];
|
||||
$add_exp = $user['sexp'];
|
||||
|
||||
if (idate('d') !== 1) { //значение рейтинга обнуляется 1го числа
|
||||
if (idate('d') !== 1) { //значение рейтинга обнуляется 1го числа
|
||||
$global_exp = round($user['global']);
|
||||
}
|
||||
|
||||
$global_exp = $global_exp + round($user['repexp']);
|
||||
$add_exp_list[$user['id']] = $add_exp; //записываем сколько опыта получил за сегодня
|
||||
$all_exp_list[$user['id']] = $global_exp;// + $add_exp; //записываем сколько опыта получил всего + сегодняшний
|
||||
$add_exp_list[$user['id']] = $add_exp; //записываем сколько опыта получил за сегодня
|
||||
$all_exp_list[$user['id']] = $global_exp;// + $add_exp; //записываем сколько опыта получил всего + сегодняшний
|
||||
}
|
||||
|
||||
arsort($all_exp_list);
|
||||
@@ -123,11 +123,11 @@ Db::sql(
|
||||
(?,\'capitalcity\',6,1,unix_timestamp()),
|
||||
(?,\'capitalcity\',6,1,unix_timestamp())',
|
||||
[
|
||||
'<span style="color: red; font-weight: bold;">Рейтинг игроков ' . date('d-m-Y') . ' </span>',
|
||||
'Игрок ' . $log_list[0] . ' получает 1 Екр. за 1-е место в рейтинге!',
|
||||
'Игрок ' . $log_list[1] . ' получает 0.75 Екр. за 2-е место в рейтинге!',
|
||||
'Игрок ' . $log_list[2] . ' получает 0.5 Екр. за 3-е место в рейтинге!',
|
||||
'Игрок ' . $log_list[3] . ' получает 0.25 Екр. за 4-е место в рейтинге!',
|
||||
'Игрок ' . $log_list[4] . ' получает 0.15 Екр. за 5-е место в рейтинге!',
|
||||
'<span style="color: red; font-weight: bold;">Рейтинг игроков ' . date('d-m-Y') . ' </span>',
|
||||
'Игрок ' . $log_list[0] . ' получает 1 Екр. за 1-е место в рейтинге!',
|
||||
'Игрок ' . $log_list[1] . ' получает 0.75 Екр. за 2-е место в рейтинге!',
|
||||
'Игрок ' . $log_list[2] . ' получает 0.5 Екр. за 3-е место в рейтинге!',
|
||||
'Игрок ' . $log_list[3] . ' получает 0.25 Екр. за 4-е место в рейтинге!',
|
||||
'Игрок ' . $log_list[4] . ' получает 0.15 Екр. за 5-е место в рейтинге!',
|
||||
]
|
||||
);
|
||||
|
||||
+11
-11
@@ -5,24 +5,24 @@ use Core\Db;
|
||||
require_once dirname(__DIR__) . DIRECTORY_SEPARATOR . 'autoload.php';
|
||||
|
||||
/**
|
||||
* Кричалка в чат.
|
||||
* Раз в 15 минут.
|
||||
* Кричалка в чат.
|
||||
* Раз в 15 минут.
|
||||
*/
|
||||
|
||||
$rupor = [
|
||||
'Открыв новости, справа можно найти игровые статьи, которые помогут Вам разобраться в игре и сделать её в разы проще.',
|
||||
'Раз в сутки, Вы можете покрутить бесплатную рулетку с крутыми призами на Центральной Площади, в здании Лото!',
|
||||
'С каждого доната Вашего реферала, Вы, будете получать 10% от чистой суммы покупки еврокредитов.',
|
||||
'Наша задача, предоставить игрокам комфорт в игре, а так же поднять онлайн свыше 100 человек.',
|
||||
'Общие турниры могут быть запущены любым игроком! Не стесняйтесь, учавствуйте в турнирах!',
|
||||
'По новому балансу: Критоуворот убивает - Танка, Топора и с 50% вероятностью Уворота/Крита/Мага ( в зависимости от распределенных статов )!',
|
||||
'По новому балансу: Маг убивает - Уворота, Танка, Топора и с 50% вероятностью Критоуворота ( в зависимости от распределенных статов )!',
|
||||
'В нашей игре только один игровой уровень, открытие следующего 9-го уровня возможно в случае, если среднесуточный онлайн будет на уровне 100 человек.',
|
||||
'Открыв новости, справа можно найти игровые статьи, которые помогут Вам разобраться в игре и сделать её в разы проще.',
|
||||
'Раз в сутки, Вы можете покрутить бесплатную рулетку с крутыми призами на Центральной Площади, в здании Лото!',
|
||||
'С каждого доната Вашего реферала, Вы, будете получать 10% от чистой суммы покупки еврокредитов.',
|
||||
'Наша задача, предоставить игрокам комфорт в игре, а так же поднять онлайн свыше 100 человек.',
|
||||
'Общие турниры могут быть запущены любым игроком! Не стесняйтесь, учавствуйте в турнирах!',
|
||||
'По новому балансу: Критоуворот убивает - Танка, Топора и с 50% вероятностью Уворота/Крита/Мага ( в зависимости от распределенных статов )!',
|
||||
'По новому балансу: Маг убивает - Уворота, Танка, Топора и с 50% вероятностью Критоуворота ( в зависимости от распределенных статов )!',
|
||||
'В нашей игре только один игровой уровень, открытие следующего 9-го уровня возможно в случае, если среднесуточный онлайн будет на уровне 100 человек.',
|
||||
];
|
||||
|
||||
shuffle($rupor);
|
||||
|
||||
Db::sql('insert into chat (new, text, time, type, da, color) values (1, ?, unix_timestamp(), 6, 1, ?)', [
|
||||
'Администрация: ' . $rupor[0],
|
||||
'Администрация: ' . $rupor[0],
|
||||
'#F00'
|
||||
]);
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
<?php
|
||||
|
||||
# Каждую полночь
|
||||
# Каждую полночь
|
||||
|
||||
const GAME = true;
|
||||
include('/home/newcom1/public_html/_incl_data/class/__db_connect.php');
|
||||
@@ -31,17 +31,17 @@ if( isset($_GET['actions']) ) {
|
||||
|
||||
/*
|
||||
|
||||
CRON Очистки сервера от ненужной информации
|
||||
Действия:
|
||||
1. Очистка чата
|
||||
2. Очистка заявок в поединки
|
||||
3. Очистка заявок в пещеры
|
||||
4. Очистка походов
|
||||
CRON Очистки сервера от ненужной информации
|
||||
Действия:
|
||||
1. Очистка чата
|
||||
2. Очистка заявок в поединки
|
||||
3. Очистка заявок в пещеры
|
||||
4. Очистка походов
|
||||
|
||||
*/
|
||||
|
||||
// ЕБИИИИИИИЧЕСКАЯ СИИИИЛА!!!!! (с) Инс.
|
||||
// forign_keys! Никто не знает про foreign_keys!
|
||||
// ЕБИИИИИИИЧЕСКАЯ СИИИИЛА!!!!! (с) Инс.
|
||||
// forign_keys! Никто не знает про foreign_keys!
|
||||
|
||||
function delete_user_all( $uid , $login ) {
|
||||
mysql_query('DELETE FROM `aaa_birthday` WHERE `uid` = "'.$uid.'"');
|
||||
@@ -123,16 +123,16 @@ function delete_user_all( $uid , $login ) {
|
||||
mysql_query('DELETE FROM `_clan` WHERE `uid` = "'.$uid.'"');
|
||||
}
|
||||
|
||||
//1. Очистка чата, остается чат только за последние 3 дня
|
||||
//1. Очистка чата, остается чат только за последние 3 дня
|
||||
mysql_query('DELETE FROM `chat` WHERE `time` < '.(time()-86400*3).'');
|
||||
|
||||
//2. Очистка заявок в поединки
|
||||
//2. Очистка заявок в поединки
|
||||
mysql_query('DELETE FROM `zayvki` WHERE `start` > 0 OR `cancel` > 0 OR `time` < "'.(time()-86400*1).'"');
|
||||
|
||||
//3. Очистка заявок в пещеры
|
||||
//3. Очистка заявок в пещеры
|
||||
mysql_query('DELETE FROM `dungeon_zv` WHERE `delete` > 0 OR `time` < "'.(time()-86400*1).'"');
|
||||
|
||||
//4. Очистка походов
|
||||
//4. Очистка походов
|
||||
$sp = mysql_query('SELECT * FROM `dungeon_now` WHERE `time_start` < "'.(time()-86400*1).'" OR `time_finish` > 0');
|
||||
while( $pl = mysql_fetch_array($sp) ) {
|
||||
mysql_query('DELETE FROM `dungeon_actions` WHERE `dn` = "'.$pl['id'].'"');
|
||||
@@ -142,14 +142,14 @@ while( $pl = mysql_fetch_array($sp) ) {
|
||||
mysql_query('DELETE FROM `dungeon_now` WHERE `id` = "'.$pl['id'].'"');
|
||||
}
|
||||
|
||||
//5. Очистка монстров
|
||||
//5. Очистка монстров
|
||||
$i = 0;
|
||||
$sp = mysql_query('SELECT * FROM `users` WHERE `real` = 0 ORDER BY `id` ASC LIMIT 100');
|
||||
while( $pl = mysql_fetch_array($sp) ) {
|
||||
$btl = mysql_fetch_array(mysql_query('SELECT * FROM `battle` WHERE `id` = "'.$pl['battle'].'" LIMIT 1'));
|
||||
$clon = mysql_fetch_array(mysql_query('SELECT `id` FROM `users` WHERE `inUser` = "'.$pl['id'].'" LIMIT 1'));
|
||||
if( (!isset($btl['id']) || $btl['team_win'] >= 0) && !isset($clon['id']) ) {
|
||||
//Очищаем бота
|
||||
//Очищаем бота
|
||||
delete_user_all( $pl['id'] , $pl['login'] );
|
||||
$i++;
|
||||
}
|
||||
@@ -160,9 +160,9 @@ $x = $x[0];
|
||||
mysql_query('DELETE FROM `stats` WHERE `id` NOT IN (SELECT `id` FROM `users`);');
|
||||
mysql_query('DELETE FROM `items_users` WHERE `delete` > `time_create` AND `delete` > 0');
|
||||
|
||||
//6. Очистка личного дела
|
||||
//6. Очистка личного дела
|
||||
mysql_query('DELETE FROM `users_delo` WHERE `time` < "'.(time()-86400*30).'" LIMIT 1000');
|
||||
|
||||
//7. сброс счетчика жетонов
|
||||
//7. сброс счетчика жетонов
|
||||
mysql_query('UPDATE `users` SET `ang_g` = 0 WHERE `ang_g` > 0');
|
||||
|
||||
|
||||
@@ -1,16 +1,16 @@
|
||||
<?php
|
||||
|
||||
/**
|
||||
* Скрипт отвечает за перемещения ботов по пещере и напедения, когда игрок рядом.
|
||||
* Скрипт отвечает за перемещения ботов по пещере и напедения, когда игрок рядом.
|
||||
*
|
||||
* Запуск раз в миниту
|
||||
* Запуск раз в миниту
|
||||
*/
|
||||
|
||||
require_once dirname(__DIR__) . DIRECTORY_SEPARATOR . 'autoload.php';
|
||||
|
||||
//todo: IN PROGRESS
|
||||
|
||||
# Совершаем действие -> Нападение на игрока.
|
||||
# Совершаем действие -> Нападение на игрока.
|
||||
function botAttack($bot, $user)
|
||||
{
|
||||
if ($user['userBattle'] > 0) {
|
||||
@@ -20,7 +20,7 @@ function botAttack($bot, $user)
|
||||
)
|
||||
);
|
||||
}
|
||||
if (!isset($battleID['id'])) { //Создаем поединок
|
||||
if (!isset($battleID['id'])) { //Создаем поединок
|
||||
$btl_id = 0;
|
||||
$expB = 0;
|
||||
$btl = ['players' => '', 'timeout' => 180, 'type' => 0, 'invis' => 0, 'noinc' => 0, 'travmChance' => 0, 'typeBattle' => 0, 'addExp' => $expB, 'money' => 0];
|
||||
@@ -48,7 +48,7 @@ function botAttack($bot, $user)
|
||||
);
|
||||
$btl_id = mysql_insert_id();
|
||||
|
||||
if ($btl_id > 0) { //Добавляем ботов
|
||||
if ($btl_id > 0) { //Добавляем ботов
|
||||
$j = 0;
|
||||
$logins_bot = [];
|
||||
mysql_query(
|
||||
@@ -79,7 +79,7 @@ function botAttack($bot, $user)
|
||||
mysql_query('UPDATE `stats` SET `team` = "1" WHERE `id` = "' . $user['userId'] . '" LIMIT 1');
|
||||
}
|
||||
}
|
||||
} else { # Вмешиваемся в поединок.
|
||||
} else { # Вмешиваемся в поединок.
|
||||
$j = 0;
|
||||
$logins_bot = [];
|
||||
$logins_bot_text = [];
|
||||
@@ -113,7 +113,7 @@ function botAttack($bot, $user)
|
||||
$jui++;
|
||||
}
|
||||
if ($j > 0) {
|
||||
$logins_bot_text = '{tm1} В поединок вмешались: ' . implode(', ', $logins_bot_text) . '.';
|
||||
$logins_bot_text = '{tm1} В поединок вмешались: ' . implode(', ', $logins_bot_text) . '.';
|
||||
$logins_bot_vars = implode('||', $logins_bot_vars);
|
||||
$battle_log = mysql_fetch_array(
|
||||
mysql_query(
|
||||
@@ -138,7 +138,7 @@ function botAttack($bot, $user)
|
||||
}
|
||||
}
|
||||
|
||||
# Совершаем нападение -> Добавляем Ботов в поединок
|
||||
# Совершаем нападение -> Добавляем Ботов в поединок
|
||||
function botAddBattle($bot, $logins_bot)
|
||||
{
|
||||
$add_bot = mysql_fetch_array(
|
||||
@@ -195,7 +195,7 @@ function botAddBattle($bot, $logins_bot)
|
||||
)'
|
||||
);
|
||||
|
||||
# Если бот успешно создан.
|
||||
# Если бот успешно создан.
|
||||
if ($ins1) {
|
||||
$uid = mysql_insert_id();
|
||||
$ins2 = mysql_query(
|
||||
@@ -206,7 +206,7 @@ function botAddBattle($bot, $logins_bot)
|
||||
$add_bot['logins_bot'] = $logins_bot;
|
||||
$ret = $add_bot;
|
||||
|
||||
//Выдаем предметы
|
||||
//Выдаем предметы
|
||||
//$this->addItem($item_id,$uid);
|
||||
$iu = explode(',', $add_bot['itemsUse']);
|
||||
$i = 0;
|
||||
@@ -250,7 +250,7 @@ function botAddBattle($bot, $logins_bot)
|
||||
}
|
||||
}
|
||||
|
||||
#Выдаем предметы Боту.
|
||||
#Выдаем предметы Боту.
|
||||
function botAddItem($item_id, $bot_uid, $city)
|
||||
{
|
||||
$i = mysql_fetch_array(
|
||||
@@ -266,7 +266,7 @@ function botAddItem($item_id, $bot_uid, $city)
|
||||
'SELECT `id`,`items_id`,`data` FROM `items_main_data` WHERE `items_id` = "' . $i['id'] . '" LIMIT 1'
|
||||
)
|
||||
);
|
||||
//новая дата
|
||||
//новая дата
|
||||
$data = $d['data'];
|
||||
$ins = mysql_query(
|
||||
'
|
||||
@@ -287,10 +287,10 @@ function botAddItem($item_id, $bot_uid, $city)
|
||||
)'
|
||||
);
|
||||
|
||||
# Если предмет успешно добавлен в базу данных.
|
||||
# Если предмет успешно добавлен в базу данных.
|
||||
if ($ins) {
|
||||
$rt = mysql_insert_id();
|
||||
# отключена запись получения предмета в Дело.
|
||||
# отключена запись получения предмета в Дело.
|
||||
} else {
|
||||
$rt = 0;
|
||||
}
|
||||
@@ -375,16 +375,16 @@ function moveBots($direction, $b)
|
||||
}
|
||||
|
||||
|
||||
# запуск скрипта.
|
||||
# запуск скрипта.
|
||||
function start()
|
||||
{
|
||||
# Страница создана 0.0000
|
||||
# Страница создана 0.0000
|
||||
$mtime = microtime();
|
||||
$mtime = explode(" ", $mtime);
|
||||
$tstart = $mtime[1] + $mtime[0];
|
||||
|
||||
# Выбираем всех ботов.
|
||||
# В выборку включено: Позиция бота, Направление куда он может идти, Существует ли рядом Игрок, его координаты и в поединке ли он.
|
||||
# Выбираем всех ботов.
|
||||
# В выборку включено: Позиция бота, Направление куда он может идти, Существует ли рядом Игрок, его координаты и в поединке ли он.
|
||||
$query = mysql_query(
|
||||
"SELECT
|
||||
`dn`.`id` as `this_dn`, `dn`.`id2` as `dn_id`, `db`.`id2`, `db`.`id_bot`, `tb`.`login` as login, `db`.`colvo`, `db`.`go_bot`, `db`.`x`, `db`.`y`, `db`.`s`, `db`.`atack`, `tb`.`agressor`,
|
||||
@@ -417,27 +417,27 @@ function start()
|
||||
if ($bot['go_bot'] > 0 && $bot['go_bot'] <= time()) {
|
||||
$sNext = true;
|
||||
$sTo = $bot['s'];
|
||||
$xFrom = $bot['x']; # текущие координаты X
|
||||
$yFrom = $bot['y']; # текущие координаты Y
|
||||
$xFrom = $bot['x']; # текущие координаты X
|
||||
$yFrom = $bot['y']; # текущие координаты Y
|
||||
|
||||
$return = moveBots($bot['s'], $bot);
|
||||
$xTo = $bot['x'] + $return['x'];
|
||||
$yTo = $bot['y'] + $return['y'];
|
||||
# Проверяем, имеется ли переход по клетке.
|
||||
# Проверяем, имеется ли переход по клетке.
|
||||
$inSight = 0;
|
||||
if (isset($bot['id2'])) {
|
||||
if ($xFrom == $xTo && $yFrom == $yTo) { # Если остаемся на месте.
|
||||
if ($xFrom == $xTo && $yFrom == $yTo) { # Если остаемся на месте.
|
||||
$inSight = 1;
|
||||
} elseif (isset($bot['goRight']) && $xFrom == $xTo - 1 && $bot['goRight'] == 1) { //право
|
||||
} elseif (isset($bot['goRight']) && $xFrom == $xTo - 1 && $bot['goRight'] == 1) { //право
|
||||
$sTo = 4;
|
||||
$inSight = 1;
|
||||
} elseif (isset($bot['goLeft']) && $xFrom == $xTo + 1 && $bot['goLeft'] == 1) { //лево
|
||||
} elseif (isset($bot['goLeft']) && $xFrom == $xTo + 1 && $bot['goLeft'] == 1) { //лево
|
||||
$sTo = 2;
|
||||
$inSight = 1;
|
||||
} elseif (isset($bot['goTop']) && $yFrom == $yTo - 1 && $bot['goTop'] == 1) { //верх
|
||||
} elseif (isset($bot['goTop']) && $yFrom == $yTo - 1 && $bot['goTop'] == 1) { //верх
|
||||
$sTo = 1;
|
||||
$inSight = 1;
|
||||
} elseif (isset($bot['goBottom']) && $yFrom == $yTo + 1 && $bot['goBottom'] == 1) { //низ
|
||||
} elseif (isset($bot['goBottom']) && $yFrom == $yTo + 1 && $bot['goBottom'] == 1) { //низ
|
||||
$sTo = 3;
|
||||
$inSight = 1;
|
||||
}
|
||||
@@ -457,7 +457,7 @@ function start()
|
||||
botAttack($bot, $bot);
|
||||
} elseif (isset($bot['userId'], $bot['userPosY'], $bot['userPosX']) && $bot['userId'] != '' && $inSight == 1 && $yTo == $bot['userPosY'] && $xTo == $bot['userPosX'] && $bot['atack'] == 1) {
|
||||
botAttack($bot, $bot);
|
||||
} elseif ($inSight == 1) { // Передвижение ботов.
|
||||
} elseif ($inSight == 1) { // Передвижение ботов.
|
||||
$bot['go_bot'] = time() + rand(7, 15);
|
||||
mysql_query(
|
||||
'UPDATE `dungeon_bots` SET `x` = "' . $xTo . '",`y` = "' . $yTo . '", `s` = "' . $sTo . '", `go_bot` = "' . $bot['go_bot'] . '" WHERE `id2` = "' . $bot['id2'] . '" LIMIT 1 '
|
||||
@@ -473,15 +473,15 @@ function start()
|
||||
$mtime = explode(" ", $mtime);
|
||||
$mtime = $mtime[1] + $mtime[0];
|
||||
$totaltime = ($mtime - $tstart);
|
||||
printf("Страница сгенерирована за %f секунд !", $totaltime);
|
||||
printf("Страница сгенерирована за %f секунд !", $totaltime);
|
||||
}
|
||||
|
||||
# Запускаем выполнение процесса.
|
||||
# Запускаем выполнение процесса.
|
||||
start();
|
||||
|
||||
|
||||
|
||||
/* Для оптимизации запроса обновлений позиций
|
||||
/* Для оптимизации запроса обновлений позиций
|
||||
|
||||
UPDATE dungeon_bots SET
|
||||
x = CASE
|
||||
|
||||
@@ -1,9 +1,9 @@
|
||||
<?php
|
||||
|
||||
/**
|
||||
* Башня смерти?
|
||||
* Башня смерти?
|
||||
*
|
||||
* Вызов раз в минуту.
|
||||
* Вызов раз в минуту.
|
||||
*/
|
||||
|
||||
require_once dirname(__DIR__) . DIRECTORY_SEPARATOR . 'autoload.php';
|
||||
@@ -61,7 +61,7 @@ function changeSleep($uid, $sleep_action)
|
||||
}
|
||||
}
|
||||
|
||||
//Время рестарта
|
||||
//Время рестарта
|
||||
$cnfg = [
|
||||
'time_restart' => 1,
|
||||
'time_puti' => 240,
|
||||
@@ -155,7 +155,7 @@ function addItem($id, $uid, $md = null, $dn = null, $mxiznos = null)
|
||||
'SELECT `id`,`items_id`,`data` FROM `items_main_data` WHERE `items_id` = "' . $i['id'] . '" LIMIT 1'
|
||||
)
|
||||
);
|
||||
//новая дата
|
||||
//новая дата
|
||||
$data = $d['data'];
|
||||
if ($i['ts'] > 0) {
|
||||
$ui = mysql_fetch_array(
|
||||
@@ -170,7 +170,7 @@ function addItem($id, $uid, $md = null, $dn = null, $mxiznos = null)
|
||||
}
|
||||
|
||||
|
||||
//предмет с настройками из подземелья
|
||||
//предмет с настройками из подземелья
|
||||
if ($dn != null && $dn['del'] > 0) {
|
||||
$i['dn_delete'] = 1;
|
||||
}
|
||||
@@ -210,7 +210,7 @@ function timeOut($ttm)
|
||||
if ($tmp > 0) {
|
||||
$id++;
|
||||
if ($id < 3) {
|
||||
$out .= $tmp . " мес. ";
|
||||
$out .= $tmp . " мес. ";
|
||||
}
|
||||
$time_still = $time_still - $tmp * 2592000;
|
||||
}
|
||||
@@ -218,7 +218,7 @@ function timeOut($ttm)
|
||||
if ($tmp > 0) {
|
||||
$id++;
|
||||
if ($id < 3) {
|
||||
$out .= $tmp . " дн. ";
|
||||
$out .= $tmp . " дн. ";
|
||||
}
|
||||
$time_still = $time_still - $tmp * 86400;
|
||||
}
|
||||
@@ -226,7 +226,7 @@ function timeOut($ttm)
|
||||
if ($tmp > 0) {
|
||||
$id++;
|
||||
if ($id < 3) {
|
||||
$out .= $tmp . " ч. ";
|
||||
$out .= $tmp . " ч. ";
|
||||
}
|
||||
$time_still = $time_still - $tmp * 3600;
|
||||
}
|
||||
@@ -234,14 +234,14 @@ function timeOut($ttm)
|
||||
if ($tmp > 0) {
|
||||
$id++;
|
||||
if ($id < 3) {
|
||||
$out .= $tmp . " мин. ";
|
||||
$out .= $tmp . " мин. ";
|
||||
}
|
||||
}
|
||||
if ($out == '') {
|
||||
if ($time_still < 0) {
|
||||
$time_still = 0;
|
||||
}
|
||||
$out = $time_still . ' сек.';
|
||||
$out = $time_still . ' сек.';
|
||||
}
|
||||
return $out;
|
||||
}
|
||||
@@ -260,11 +260,11 @@ function e2($t)
|
||||
mysql_query(
|
||||
'INSERT INTO `chat` (`text`,`city`,`to`,`type`,`new`,`time`) VALUES ("<font color=#cb0000>' . mysql_real_escape_string(
|
||||
$t
|
||||
) . '</font>","capitalcity","Мусорщик","6","1","-1")'
|
||||
) . '</font>","capitalcity","Мусорщик","6","1","-1")'
|
||||
);
|
||||
}
|
||||
|
||||
//Персонаж 1 нападает на 2
|
||||
//Персонаж 1 нападает на 2
|
||||
function bs_atack($bs, $u1, $u2)
|
||||
{
|
||||
global $magic;
|
||||
@@ -290,18 +290,18 @@ function bs_atack($bs, $u1, $u2)
|
||||
$me_real = $u1;
|
||||
}
|
||||
if ($u2['battle'] > 0) {
|
||||
//Заносим в лог БС
|
||||
//Заносим в лог БС
|
||||
if ($u1['sex'] == 0) {
|
||||
$text = '{u1} вмешался в поединок против {u2} <a target=_blank href=/logs.php?log=' . $btl_id . ' >»»</a>';
|
||||
$text = '{u1} вмешался в поединок против {u2} <a target=_blank href=/logs.php?log=' . $btl_id . ' >»»</a>';
|
||||
} else {
|
||||
$text = '{u1} вмешалась в поединок против {u2} <a target=_blank href=/logs.php?log=' . $btl_id . ' >»»</a>';
|
||||
$text = '{u1} вмешалась в поединок против {u2} <a target=_blank href=/logs.php?log=' . $btl_id . ' >»»</a>';
|
||||
}
|
||||
} else {
|
||||
//Заносим в лог БС
|
||||
//Заносим в лог БС
|
||||
if ($u1['sex'] == 0) {
|
||||
$text = '{u1} напал на {u2} завязался бой <a target=_blank href=/logs.php?log=' . $btl_id . ' >»»</a>';
|
||||
$text = '{u1} напал на {u2} завязался бой <a target=_blank href=/logs.php?log=' . $btl_id . ' >»»</a>';
|
||||
} else {
|
||||
$text = '{u1} напала на {u2} завязался бой <a target=_blank href=/logs.php?log=' . $btl_id . ' >»»</a>';
|
||||
$text = '{u1} напала на {u2} завязался бой <a target=_blank href=/logs.php?log=' . $btl_id . ' >»»</a>';
|
||||
}
|
||||
}
|
||||
if (isset($usr_real['id'])) {
|
||||
@@ -314,7 +314,7 @@ function bs_atack($bs, $u1, $u2)
|
||||
}
|
||||
$usrreal .= '<b>' . $usr_real['login'] . '</b>[' . $usr_real['level'] . ']<a target=_blank href=https://new-combats.com/info/' . $usr_real['id'] . ' ><img width=12 hiehgt=11 src=https://img.new-combats.com/i/inf_capitalcity.gif ></a>';
|
||||
} else {
|
||||
$mereal = '<i>Невидимка</i>[??]';
|
||||
$mereal = '<i>Невидимка</i>[??]';
|
||||
}
|
||||
if (isset($me_real['id'])) {
|
||||
$mereal = '';
|
||||
@@ -326,11 +326,11 @@ function bs_atack($bs, $u1, $u2)
|
||||
}
|
||||
$mereal .= '<b>' . $me_real['login'] . '</b>[' . $me_real['level'] . ']<a target=_blank href=https://new-combats.com/info/' . $me_real['id'] . ' ><img width=12 hiehgt=11 src=https://img.new-combats.com/i/inf_capitalcity.gif ></a>';
|
||||
} else {
|
||||
$mereal = '<i>Невидимка</i>[??]';
|
||||
$mereal = '<i>Невидимка</i>[??]';
|
||||
}
|
||||
$text = str_replace('{u1}', $mereal, $text);
|
||||
$text = str_replace('{u2}', $usrreal, $text);
|
||||
//Добавляем в лог БС
|
||||
//Добавляем в лог БС
|
||||
mysql_query(
|
||||
'INSERT INTO `bs_logs` (`type`,`text`,`time`,`id_bs`,`count_bs`,`city`,`m`,`u`) VALUES (
|
||||
"1", "' . mysql_real_escape_string($text) . '", "' . time(
|
||||
@@ -341,31 +341,31 @@ function bs_atack($bs, $u1, $u2)
|
||||
}
|
||||
}
|
||||
|
||||
//Турнир не состоялся
|
||||
//Турнир не состоялся
|
||||
function nostart($pl)
|
||||
{
|
||||
global $cnfg;
|
||||
$r = false;
|
||||
if ($pl['users'] < 4) {
|
||||
//Недостаточно игроков
|
||||
//Недостаточно игроков
|
||||
$r = true;
|
||||
$pl['time_start'] = time() + $cnfg['time_restart'] * (60 * 60);
|
||||
if ($pl['users'] > 0) {
|
||||
e(
|
||||
'Турнир Башни Смерти, для ' . $pl['to_lvl'] . ' уровней в <b>Башне Смерти</b> не начался по причине: Недостаточно участников ' . timeOut(
|
||||
'Турнир Башни Смерти, для ' . $pl['to_lvl'] . ' уровней в <b>Башне Смерти</b> не начался по причине: Недостаточно участников ' . timeOut(
|
||||
$pl['time_start'] - time()
|
||||
) . ' (<small>' . date('d.m.Y H:i', $pl['time_start']) . '</small>)'
|
||||
);
|
||||
} else {
|
||||
e(
|
||||
'Начало турнира Башни Смерти, для ' . $pl['to_lvl'] . ' уровней в <b>Башне Смерти</b> через ' . timeOut(
|
||||
'Начало турнира Башни Смерти, для ' . $pl['to_lvl'] . ' уровней в <b>Башне Смерти</b> через ' . timeOut(
|
||||
$pl['time_start'] - time()
|
||||
) . ' (<small>' . date(
|
||||
'd.m.Y H:i', $pl['time_start']
|
||||
) . '</small>), текущий призовой фонд: 0.00 кр., <b>1.00</b> Екр., заявок: 0'
|
||||
) . '</small>), текущий призовой фонд: 0.00 кр., <b>1.00</b> Екр., заявок: 0'
|
||||
);
|
||||
}
|
||||
//Возврат вкладов игроков
|
||||
//Возврат вкладов игроков
|
||||
$sp = mysql_query('SELECT * FROM `bs_zv` WHERE `bsid` = "' . $pl['id'] . '" AND `finish` = "0"');
|
||||
while ($pu = mysql_fetch_array($sp)) {
|
||||
mysql_query(
|
||||
@@ -373,7 +373,7 @@ function nostart($pl)
|
||||
);
|
||||
mysql_query('UPDATE `bs_zv` SET `finish` = "' . time() . '" WHERE `id` = "' . $pu['id'] . '" LIMIT 1');
|
||||
}
|
||||
//Обновление турнира
|
||||
//Обновление турнира
|
||||
mysql_query(
|
||||
'UPDATE `bs_turnirs` SET `ch1` = "0",`ch2` = "0", `status` = "0", `money` = "0", `time_start` = "' . $pl['time_start'] . '",`users` = "0",`users_finish` = "0" WHERE `id` = "' . $pl['id'] . '" LIMIT 1'
|
||||
);
|
||||
@@ -381,7 +381,7 @@ function nostart($pl)
|
||||
return $r;
|
||||
}
|
||||
|
||||
//Добавление "архивариуса"
|
||||
//Добавление "архивариуса"
|
||||
function add_arhiv($pl, $user)
|
||||
{
|
||||
$return = 0;
|
||||
@@ -406,24 +406,24 @@ function add_arhiv($pl, $user)
|
||||
return $return;
|
||||
}
|
||||
|
||||
//Завершаем текущий турнир
|
||||
//Завершаем текущий турнир
|
||||
function backusers($pl)
|
||||
{
|
||||
$sp = mysql_query('SELECT * FROM `bs_zv` WHERE `bsid` = "' . $pl['id'] . '" AND `off` = "0" AND `inBot` > 0');
|
||||
while ($pu = mysql_fetch_array($sp)) {
|
||||
//Удаление клона
|
||||
//Удаление клона
|
||||
mysql_query('DELETE FROM `users` WHERE `id` = "' . $pu['inBot'] . '" LIMIT 1');
|
||||
mysql_query('DELETE FROM `stats` WHERE `id` = "' . $pu['inBot'] . '" LIMIT 1');
|
||||
mysql_query('DELETE FROM `actions` WHERE `uid` = "' . $pu['inBot'] . '"');
|
||||
mysql_query('DELETE FROM `items_users` WHERE `uid` = "' . $pu['inBot'] . '"');
|
||||
mysql_query('DELETE FROM `eff_users` WHERE `uid` = "' . $pu['inBot'] . '"');
|
||||
mysql_query('DELETE FROM `users_delo` WHERE `uid` = "' . $pu['inBot'] . '"');
|
||||
//Обновление персонажа
|
||||
//Обновление персонажа
|
||||
mysql_query('UPDATE `users` SET `inUser` = "0" WHERE `id` = "' . $pu['uid'] . '" LIMIT 1');
|
||||
//Обновляем заявку
|
||||
//Обновляем заявку
|
||||
mysql_query('UPDATE `bs_zv` SET `off` = "' . time() . '" WHERE `id` = "' . $pu['id'] . '" LIMIT 1');
|
||||
}
|
||||
//Архивариусы
|
||||
//Архивариусы
|
||||
$sp = mysql_query(
|
||||
'SELECT * FROM `users` WHERE `pass` = "bstowerbot" AND `inTurnir` = "' . $pl['id'] . '" AND `room` = "362"'
|
||||
);
|
||||
@@ -435,11 +435,11 @@ function backusers($pl)
|
||||
mysql_query('DELETE FROM `eff_users` WHERE `uid` = "' . $pu['id'] . '"');
|
||||
mysql_query('DELETE FROM `users_delo` WHERE `uid` = "' . $pu['id'] . '"');
|
||||
}
|
||||
//Удаляем предметы раскиданные по БС
|
||||
//Удаляем предметы раскиданные по БС
|
||||
mysql_query('DELETE FROM `bs_items` WHERE `bid` = "' . $pl['id'] . '" AND `count` = "' . $pl['count'] . '"');
|
||||
//Удаляем события в БС
|
||||
//Удаляем события в БС
|
||||
mysql_query('DELETE FROM `bs_actions` WHERE `bid` = "' . $pl['id'] . '" AND `count` = "' . $pl['count'] . '"');
|
||||
//Удаляем ловушки в БС
|
||||
//Удаляем ловушки в БС
|
||||
mysql_query('DELETE FROM `bs_trap` WHERE `bid` = "' . $pl['id'] . '" AND `count` = "' . $pl['count'] . '"');
|
||||
}
|
||||
|
||||
@@ -467,7 +467,7 @@ while ($pl = mysql_fetch_array($sp)) {
|
||||
if ($pl['level'] != $pl['level_max']) {
|
||||
$pl['to_lvl'] .= '-' . $pl['level_max'] . '';
|
||||
}
|
||||
$pl['to_lvl'] = 'всех';
|
||||
$pl['to_lvl'] = 'всех';
|
||||
if ($pl['status'] == 1) {
|
||||
//
|
||||
$tcu = mysql_fetch_array(
|
||||
@@ -476,17 +476,17 @@ while ($pl = mysql_fetch_array($sp)) {
|
||||
$tcu = $tcu[0];
|
||||
//
|
||||
if ($pl['users'] != $tcu) {
|
||||
//Что-то сбилось
|
||||
//Что-то сбилось
|
||||
$pl['users'] = $tcu;
|
||||
}
|
||||
//
|
||||
//Турнир идет, проверяем живых игроков, либо завершаем через 6 часов
|
||||
//Турнир идет, проверяем живых игроков, либо завершаем через 6 часов
|
||||
if ($pl['time_start'] < time() - 6 * 60 * 60) {
|
||||
//Завершаем турнир по тайму
|
||||
//Добавляем в лог БС
|
||||
$text = 'Турнир завершен. Победитель: <i>Отсутствует</i> (Турнир завершился по таймауту). Призовой фонд: <b>' . round(
|
||||
//Завершаем турнир по тайму
|
||||
//Добавляем в лог БС
|
||||
$text = 'Турнир завершен. Победитель: <i>Отсутствует</i> (Турнир завершился по таймауту). Призовой фонд: <b>' . round(
|
||||
$pl['money'] * 0.85, 2
|
||||
) . '</b> кр.';
|
||||
) . '</b> кр.';
|
||||
mysql_query(
|
||||
'INSERT INTO `bs_logs` (`type`,`text`,`time`,`id_bs`,`count_bs`,`city`,`m`,`u`) VALUES (
|
||||
"1", "' . mysql_real_escape_string($text) . '", "' . time(
|
||||
@@ -495,7 +495,7 @@ while ($pl = mysql_fetch_array($sp)) {
|
||||
)'
|
||||
);
|
||||
//
|
||||
//Сохраняем статистику
|
||||
//Сохраняем статистику
|
||||
mysql_query(
|
||||
'INSERT INTO `bs_statistic` (`bsid`,`count`,`time_start`,`time_finish`,`time_sf`,`type_bs`,`money`,`wlogin`,`wuid`,`walign`,`wclan`) VALUES (
|
||||
"' . $pl['id'] . '","' . $pl['count'] . '","' . $pl['time_start'] . '","' . time() . '","' . (time(
|
||||
@@ -505,7 +505,7 @@ while ($pl = mysql_fetch_array($sp)) {
|
||||
);
|
||||
$pl['time_start'] = time() + $cnfg['time_restart'] * (60 * 60);
|
||||
e(
|
||||
'Турнир для ' . $pl['to_lvl'] . ' уровней в <b>Башне Смерти</b> завершился по таймауту. Начало нового турнира через ' . timeOut(
|
||||
'Турнир для ' . $pl['to_lvl'] . ' уровней в <b>Башне Смерти</b> завершился по таймауту. Начало нового турнира через ' . timeOut(
|
||||
$pl['time_start'] - time() - 3600
|
||||
) . ' (<small>' . date('d.m.Y H:i', $pl['time_start']) . '</small>)'
|
||||
);
|
||||
@@ -519,10 +519,10 @@ while ($pl = mysql_fetch_array($sp)) {
|
||||
'UPDATE `users` SET `online` = "' . (time(
|
||||
) + 60 * 60 * 6) . '" WHERE `inTurnir` = "' . $pl['id'] . '" OR (`room` >= 362 AND `room` <= 366) LIMIT ' . ($pl['users'] + $pl['arhiv'])
|
||||
);
|
||||
//Проверяем живых игроков
|
||||
//Проверяем живых игроков
|
||||
if ($pl['users'] < 2) {
|
||||
mysql_query(
|
||||
'DELEE FROM `users` WHERE `login` LIKE "%(клон%" AND `inTurnir` = "' . $pl['id'] . '" AND `room` = "362"'
|
||||
'DELEE FROM `users` WHERE `login` LIKE "%(клон%" AND `inTurnir` = "' . $pl['id'] . '" AND `room` = "362"'
|
||||
);
|
||||
if ($pl['users'] == 1) {
|
||||
$pl['usersn'] = mysql_fetch_array(
|
||||
@@ -535,11 +535,11 @@ while ($pl = mysql_fetch_array($sp)) {
|
||||
//$pl['users'] = $pl['usersn'];
|
||||
}
|
||||
}
|
||||
//Доп. проверка живых
|
||||
//Доп. проверка живых
|
||||
if ($pl['users'] == 1) {
|
||||
//Завершаем турнир, есть 1 победитель
|
||||
//Завершаем турнир, есть 1 победитель
|
||||
if ($pl['arhiv'] == 0) {
|
||||
//Архивариуса нет, завершаем турнир
|
||||
//Архивариуса нет, завершаем турнир
|
||||
$uwin_bot = mysql_fetch_array(
|
||||
mysql_query(
|
||||
'SELECT `id`,`money`,`login`,`level`,`align`,`clan` FROM `users` WHERE `inTurnir` = "' . $pl['id'] . '" AND `room` = "362" LIMIT 1'
|
||||
@@ -557,7 +557,7 @@ while ($pl = mysql_fetch_array($sp)) {
|
||||
mysql_query('SELECT `id`,`exp` FROM `stats` WHERE `id` = "' . $uwin['id'] . '" LIMIT 1')
|
||||
);
|
||||
|
||||
//Опыт
|
||||
//Опыт
|
||||
$swin_bot['exp'] -= 30000;
|
||||
$swin_bot['exp'] = round($swin_bot['exp'] / 2);
|
||||
if ($swin_bot['exp'] < 0) {
|
||||
@@ -565,7 +565,7 @@ while ($pl = mysql_fetch_array($sp)) {
|
||||
}
|
||||
$swin_bot['exp'] += 1500;
|
||||
|
||||
//Сохраняем статистику
|
||||
//Сохраняем статистику
|
||||
mysql_query(
|
||||
'INSERT INTO `bs_statistic` (`bsid`,`count`,`time_start`,`time_finish`,`time_sf`,`type_bs`,`money`,`wlogin`,`wuid`,`walign`,`wclan`,`wlevel`) VALUES (
|
||||
"' . $pl['id'] . '","' . $pl['count'] . '","' . $pl['time_start'] . '","' . time(
|
||||
@@ -586,13 +586,13 @@ while ($pl = mysql_fetch_array($sp)) {
|
||||
'UPDATE `stats` SET `exp` = "' . ($swin['exp'] + $swin_bot['exp']) . '" WHERE `id` = "' . $uwin['id'] . '" LIMIT 1'
|
||||
);
|
||||
e(
|
||||
'#' . $pl['usersn'] . ' Турнир для ' . $pl['to_lvl'] . ' уровней в <b>Башне Смерти</b> завершился. Победитель: ' . microLogin2(
|
||||
'#' . $pl['usersn'] . ' Турнир для ' . $pl['to_lvl'] . ' уровней в <b>Башне Смерти</b> завершился. Победитель: ' . microLogin2(
|
||||
$uwin
|
||||
) . '. Приз: <b>' . round(
|
||||
) . '. Приз: <b>' . round(
|
||||
$pl['money'] * 0.85, 2
|
||||
) . '</b> кр. и <b>1</b> екр.<b>' . round(
|
||||
) . '</b> кр. и <b>1</b> екр.<b>' . round(
|
||||
$swin_bot['exp']
|
||||
) . '</b> опыта. Начало нового турнира через ' . timeOut(
|
||||
) . '</b> опыта. Начало нового турнира через ' . timeOut(
|
||||
$pl['time_start'] - time()
|
||||
) . ' (<small>' . date('d.m.Y H:i', $pl['time_start']) . '</small>)'
|
||||
);
|
||||
@@ -606,10 +606,10 @@ while ($pl = mysql_fetch_array($sp)) {
|
||||
);
|
||||
}
|
||||
}
|
||||
//Добавляем в лог БС
|
||||
$text = 'Турнир завершен. Победитель: ' . microLogin2($uwin) . '. Приз: <b>' . round(
|
||||
//Добавляем в лог БС
|
||||
$text = 'Турнир завершен. Победитель: ' . microLogin2($uwin) . '. Приз: <b>' . round(
|
||||
$pl['money'] * 0.85, 2
|
||||
) . '</b> кр. и 1 екр.<b>' . round($swin_bot['exp']) . '</b> опыта.';
|
||||
) . '</b> кр. и 1 екр.<b>' . round($swin_bot['exp']) . '</b> опыта.';
|
||||
mysql_query(
|
||||
'INSERT INTO `bs_logs` (`type`,`text`,`time`,`id_bs`,`count_bs`,`city`,`m`,`u`) VALUES (
|
||||
"1", "' . mysql_real_escape_string($text) . '", "' . time(
|
||||
@@ -624,11 +624,11 @@ while ($pl = mysql_fetch_array($sp)) {
|
||||
'UPDATE `bs_turnirs` SET `money` = "0",`count` = "' . $pl['count'] . '",`status` = "0",`time_start` = "' . $pl['time_start'] . '",`users` = "0",`users_finish` = "0",`ch1` = "0",`arhiv` = "0" WHERE `id` = "' . $pl['id'] . '" LIMIT 1'
|
||||
);
|
||||
} else {
|
||||
//Ожидаем пока игрок убьет Архивариуса
|
||||
//Ожидаем пока игрок убьет Архивариуса
|
||||
|
||||
}
|
||||
} else {
|
||||
//Сохраняем статистику
|
||||
//Сохраняем статистику
|
||||
mysql_query(
|
||||
'INSERT INTO `bs_statistic` (`bsid`,`count`,`time_start`,`time_finish`,`time_sf`,`type_bs`,`money`,`wlogin`,`wuid`,`walign`,`wclan`) VALUES (
|
||||
"' . $pl['id'] . '","' . $pl['count'] . '","' . $pl['time_start'] . '","' . time(
|
||||
@@ -638,12 +638,12 @@ while ($pl = mysql_fetch_array($sp)) {
|
||||
"1","0","0","0"
|
||||
)'
|
||||
);
|
||||
//Просто завершаем турнир, ничья
|
||||
//Просто завершаем турнир, ничья
|
||||
$pl['time_start'] = time() + $cnfg['time_restart'] * (60 * 60);
|
||||
//Добавляем в лог БС
|
||||
$text = 'Турнир завершен. Победитель: <i>Отсутствует</i> (Никто не остался в живых). Призовой фонд: <b>' . round(
|
||||
//Добавляем в лог БС
|
||||
$text = 'Турнир завершен. Победитель: <i>Отсутствует</i> (Никто не остался в живых). Призовой фонд: <b>' . round(
|
||||
$pl['money'] * 0.85, 2
|
||||
) . '</b> кр.';
|
||||
) . '</b> кр.';
|
||||
mysql_query(
|
||||
'INSERT INTO `bs_logs` (`type`,`text`,`time`,`id_bs`,`count_bs`,`city`,`m`,`u`) VALUES (
|
||||
"1", "' . mysql_real_escape_string($text) . '", "' . time(
|
||||
@@ -655,9 +655,9 @@ while ($pl = mysql_fetch_array($sp)) {
|
||||
backusers($pl);
|
||||
$pl['count']++;
|
||||
e(
|
||||
'Турнир для ' . $pl['to_lvl'] . ' уровней в <b>Башне Смерти</b> завершился. Победитель: <i>Отсутствует</i> (Никто не остался в живых). Призовой фонд <b>' . round(
|
||||
'Турнир для ' . $pl['to_lvl'] . ' уровней в <b>Башне Смерти</b> завершился. Победитель: <i>Отсутствует</i> (Никто не остался в живых). Призовой фонд <b>' . round(
|
||||
$pl['money'] * 0.85, 2
|
||||
) . '</b> кр. Начало нового турнира через ' . timeOut(
|
||||
) . '</b> кр. Начало нового турнира через ' . timeOut(
|
||||
$pl['time_start'] - time() - 3600
|
||||
) . ' (<small>' . date('d.m.Y H:i', $pl['time_start']) . '</small>)'
|
||||
);
|
||||
@@ -668,7 +668,7 @@ while ($pl = mysql_fetch_array($sp)) {
|
||||
);
|
||||
}
|
||||
} else {
|
||||
//Все живы
|
||||
//Все живы
|
||||
if ($pl['arhiv'] > 0) {
|
||||
$a_sp = mysql_query(
|
||||
'SELECT `s`.`timeGo`,`u`.`align`,`u`.`clan`,`u`.`sex`,`u`.`pass`,`u`.`id`,`u`.`level`,`u`.`login`,`u`.`battle`,`s`.`x`,`s`.`y` FROM `users` AS `u` LEFT JOIN `stats` AS `s` ON `s`.`id` = `u`.`id` WHERE `u`.`pass` = "bstowerbot" AND `u`.`inTurnir` = "' . mysql_real_escape_string(
|
||||
@@ -683,13 +683,13 @@ while ($pl = mysql_fetch_array($sp)) {
|
||||
);
|
||||
if (isset($xy['id'])) {
|
||||
if ($a_pl['battle'] == 0) {
|
||||
//Поднимаем предметы
|
||||
//Поднимаем предметы
|
||||
$sp_itm = mysql_query(
|
||||
'SELECT * FROM `bs_items` WHERE `x` = "' . $a_pl['x'] . '" AND `y` = "' . $a_pl['y'] . '" AND `bid` = "' . $pl['id'] . '" AND `count` = "' . $pl['count'] . '" LIMIT 20'
|
||||
);
|
||||
while ($pl_itm = mysql_fetch_array($sp_itm)) {
|
||||
if (rand(0, 100) < 21) {
|
||||
//Поднимаем текущий предмет
|
||||
//Поднимаем текущий предмет
|
||||
$itm_id = mysql_fetch_array(
|
||||
mysql_query(
|
||||
'SELECT * FROM `items_main` WHERE `id` = "' . $pl_itm['item_id'] . '" LIMIT 1'
|
||||
@@ -701,7 +701,7 @@ while ($pl = mysql_fetch_array($sp)) {
|
||||
'DELETE FROM `bs_items` WHERE `id` = "' . $pl_itm['id'] . '" LIMIT 1'
|
||||
);
|
||||
if ($itm_id['level'] <= $a_pl['level'] && $itm_id['odevaem'] > 0) {
|
||||
//надеваем
|
||||
//надеваем
|
||||
if ($itm_id['inslot'] == 10) {
|
||||
$itm_id['inslot'] = rand(10, 12);
|
||||
}
|
||||
@@ -716,7 +716,7 @@ while ($pl = mysql_fetch_array($sp)) {
|
||||
}
|
||||
}
|
||||
unset($itm_id, $sp_itm, $pl_itm);
|
||||
//Нападаем/Вмешиваемся в поединок
|
||||
//Нападаем/Вмешиваемся в поединок
|
||||
if ($pl['time_start'] < time() - $cnfg['time_puti']) {
|
||||
$sp_usr = mysql_query(
|
||||
'SELECT `u`.`id`,`u`.`battle`,`u`.`login`,`u`.`level`,`u`.`align`,`u`.`clan`,`u`.`sex`,`s`.`team` FROM `stats` AS `s` LEFT JOIN `users` AS `u` ON `u`.`id` = `s`.`id` WHERE `s`.`x` = "' . $a_pl['x'] . '" AND `u`.`pass` != "' . $a_pl['pass'] . '" AND `s`.`y` = "' . $a_pl['y'] . '" ORDER BY `s`.`timeGo` ASC LIMIT 5'
|
||||
@@ -743,7 +743,7 @@ while ($pl = mysql_fetch_array($sp)) {
|
||||
unset($sp_usr, $pl_usr);
|
||||
|
||||
if ($a_pl['battle'] == 0 && rand(0, 100) < 71 && $a_pl['timeGo'] < time()) {
|
||||
//Передвигаемся
|
||||
//Передвигаемся
|
||||
$stor = [];
|
||||
if ($xy['up'] > 0) {
|
||||
$stor[] = 'up';
|
||||
@@ -801,10 +801,10 @@ while ($pl = mysql_fetch_array($sp)) {
|
||||
}
|
||||
}
|
||||
} elseif ($pl['status'] == 0 && $pl['time_start'] < time()) {
|
||||
//Начинаем турнир
|
||||
//Начинаем турнир
|
||||
if (!nostart($pl)) {
|
||||
|
||||
//Начинаем турнир!
|
||||
//Начинаем турнир!
|
||||
$spm = mysql_query('SELECT `x`,`y` FROM `bs_map` WHERE `mid` = "' . $pl['type_map'] . '"');
|
||||
$maps = [];
|
||||
while ($plm = mysql_fetch_array($spm)) {
|
||||
@@ -818,16 +818,16 @@ while ($pl = mysql_fetch_array($sp)) {
|
||||
'SELECT * FROM `bs_zv` WHERE `finish` = "0" AND `bsid` = "' . $pl['id'] . '" ORDER BY `money` DESC LIMIT 12'
|
||||
);
|
||||
//
|
||||
//Создаем поход
|
||||
//Создаем поход
|
||||
mysql_query(
|
||||
'INSERT INTO `dungeon_now` (
|
||||
`id2` , `name` , `time_start` , `time_finish` , `uid` , `city` , `type` , `bsid`
|
||||
) VALUES (
|
||||
"6" , "Башня Смерти" , "' . $pl['time_start'] . '" , "0" , "0" , "' . $pl['city'] . '" , "0" , "' . $pl['id'] . '"
|
||||
"6" , "Башня Смерти" , "' . $pl['time_start'] . '" , "0" , "0" , "' . $pl['city'] . '" , "0" , "' . $pl['id'] . '"
|
||||
)'
|
||||
);
|
||||
$dnew = mysql_insert_id();
|
||||
//Добавляем обьекты
|
||||
//Добавляем обьекты
|
||||
$vls32 = '';
|
||||
$sphj = mysql_query('SELECT * FROM `dungeon_obj` WHERE `for_dn` = "6"');
|
||||
while ($plhj = mysql_fetch_array($sphj)) {
|
||||
@@ -840,7 +840,7 @@ while ($pl = mysql_fetch_array($sp)) {
|
||||
);
|
||||
}
|
||||
unset($vls32, $ins232);
|
||||
//Добавляем предметы
|
||||
//Добавляем предметы
|
||||
$map = [];
|
||||
$mapsp = mysql_query('SELECT `x`,`y` FROM `dungeon_map` WHERE `id_dng` = 6');
|
||||
while ($mappl = mysql_fetch_array($mapsp)) {
|
||||
@@ -850,7 +850,7 @@ while ($pl = mysql_fetch_array($sp)) {
|
||||
//
|
||||
$ii1 = 0;
|
||||
while ($ii1 < count($map)) {
|
||||
//На каждой клетке в среднем 2 предмета
|
||||
//На каждой клетке в среднем 2 предмета
|
||||
$itbsrnd = $itbs[rand(0, count($itbs) - 1)];
|
||||
$mp = rand(0, count($map) - 1);
|
||||
//
|
||||
@@ -866,12 +866,12 @@ while ($pl = mysql_fetch_array($sp)) {
|
||||
$ii1++;
|
||||
}
|
||||
|
||||
//Добавляем чеки на кр. и на екр. на карту
|
||||
//Добавляем чеки на кр. и на екр. на карту
|
||||
$m1 = $maps[rand(0, count($maps) - 1)];
|
||||
$x1 = round($m1[0]);
|
||||
$y1 = round($m1[1]);
|
||||
//$itm1 = array( 4174 , 4175 , 4176 , 4177 , 4178 , 4179 , 4180 ); //Перечисление кр. чеков
|
||||
$itm1 = [4176, 4177]; //Перечисление кр. чеков
|
||||
//$itm1 = array( 4174 , 4175 , 4176 , 4177 , 4178 , 4179 , 4180 ); //Перечисление кр. чеков
|
||||
$itm1 = [4176, 4177]; //Перечисление кр. чеков
|
||||
$itm1 = $itm1[rand(0, count($itm1) - 1)];
|
||||
if ($itm1 > 0) {
|
||||
//
|
||||
@@ -888,11 +888,11 @@ while ($pl = mysql_fetch_array($sp)) {
|
||||
//
|
||||
}
|
||||
|
||||
//Добавляем монстров (Архивариусов)
|
||||
//Добавляем монстров (Архивариусов)
|
||||
$newkor = [];
|
||||
while ($pl_u = mysql_fetch_array($sp_u)) {
|
||||
if ($i < 12 && !isset($usrlst[$pl_u['uid']])) {
|
||||
//Действующие участники
|
||||
//Действующие участники
|
||||
$usrlst[$pl_u['uid']] = true;
|
||||
$bus = mysql_fetch_array(
|
||||
mysql_query(
|
||||
@@ -915,7 +915,7 @@ while ($pl = mysql_fetch_array($sp)) {
|
||||
$bus['login_BIG'] .= '' . $bus['login'] . '</b>[' . $bus['level'] . ']<a target=_blank href=https://new-combats.com/info/' . $bus['id'] . ' ><img width=12 hiehgt=11 src=https://img.new-combats.com/i/inf_capitalcity.gif ></a>';
|
||||
$ubss .= ', ' . $bus['login_BIG'];
|
||||
//
|
||||
//Вселяем персонажей в ботов
|
||||
//Вселяем персонажей в ботов
|
||||
if ($bus['align'] >= 1 && $bus['align'] < 2) {
|
||||
$bus['align'] = 1;
|
||||
} elseif ($bus['align'] >= 3 && $bus['align'] < 4) {
|
||||
@@ -932,9 +932,9 @@ while ($pl = mysql_fetch_array($sp)) {
|
||||
) . '")'
|
||||
);
|
||||
//
|
||||
$inbot = mysql_insert_id(); //айди бота
|
||||
$inbot = mysql_insert_id(); //айди бота
|
||||
if ($inbot > 0) {
|
||||
//Бот
|
||||
//Бот
|
||||
//
|
||||
$mp = rand(0, count($mapu) - 1);
|
||||
|
||||
@@ -991,16 +991,16 @@ while ($pl = mysql_fetch_array($sp)) {
|
||||
'UPDATE `users` SET `inUser` = "' . $inbot . '" WHERE `id` = "' . $bus['id'] . '" LIMIT 1'
|
||||
);
|
||||
}
|
||||
//Добавляем путы
|
||||
//Добавляем путы
|
||||
//
|
||||
mysql_query(
|
||||
'INSERT INTO `eff_users` (`id_eff`,`uid`,`name`,`data`,`overType`,`timeUse`,`img2`) VALUES (
|
||||
"2","' . $inbot . '","Путы","add_speedhp=30000|add_speedmp=30000|puti=' . (time(
|
||||
"2","' . $inbot . '","Путы","add_speedhp=30000|add_speedmp=30000|puti=' . (time(
|
||||
) + $cnfg['time_puti']) . '","1","' . (time() + $cnfg['time_puti']) . '","chains.gif"
|
||||
) '
|
||||
);
|
||||
//
|
||||
//Обновляем данные заявки БС
|
||||
//Обновляем данные заявки БС
|
||||
mysql_query(
|
||||
'UPDATE `bs_zv` SET `finish` = "' . time(
|
||||
) . '",`inBot` = "' . $inbot . '" WHERE `id` = "' . $pl_u['id'] . '" LIMIT 1'
|
||||
@@ -1012,7 +1012,7 @@ while ($pl = mysql_fetch_array($sp)) {
|
||||
$j++;
|
||||
}
|
||||
unset($sp_u, $pl_u, $bus, $usrlst, $testxy, $iii, $jj);
|
||||
//Выбираем тип БС
|
||||
//Выбираем тип БС
|
||||
$pl['type_btl'] = 0;
|
||||
//
|
||||
$m1 = $maps[rand(0, count($maps) - 1)];
|
||||
@@ -1023,7 +1023,7 @@ while ($pl = mysql_fetch_array($sp)) {
|
||||
//
|
||||
$ubss = ltrim($ubss, ', ');
|
||||
//
|
||||
//Обновление статуса Башни Смерти и удаление заявок
|
||||
//Обновление статуса Башни Смерти и удаление заявок
|
||||
mysql_query(
|
||||
'UPDATE `bs_turnirs` SET `type_btl` = "' . $pl['type_btl'] . '", `status` = "1", `users` = "' . $i . '", `arhiv` = "' . $pl['arhiv'] . '", `users_finish` = "0" WHERE `id` = "' . $pl['id'] . '" LIMIT 1'
|
||||
);
|
||||
@@ -1031,8 +1031,8 @@ while ($pl = mysql_fetch_array($sp)) {
|
||||
'UPDATE `bs_zv` SET `finish` = "' . time(
|
||||
) . '" WHERE `bsid` = "' . $pl['id'] . '" AND `finish` = "0" AND `inBot` = "0"'
|
||||
);
|
||||
//Добавляем в лог БС
|
||||
$text = 'Начало турнира. Участники: ' . $ubss;
|
||||
//Добавляем в лог БС
|
||||
$text = 'Начало турнира. Участники: ' . $ubss;
|
||||
mysql_query(
|
||||
'INSERT INTO `bs_logs` (`type`,`text`,`time`,`id_bs`,`count_bs`,`city`,`m`,`u`) VALUES (
|
||||
"1", "' . mysql_real_escape_string($text) . '", "' . time(
|
||||
@@ -1041,23 +1041,23 @@ while ($pl = mysql_fetch_array($sp)) {
|
||||
)'
|
||||
);
|
||||
//
|
||||
e('Начался турнир , для ' . $pl['to_lvl'] . ' уровней в <b>Башне Смерти</b>. Участники: ' . $ubss . '.');
|
||||
e('Начался турнир , для ' . $pl['to_lvl'] . ' уровней в <b>Башне Смерти</b>. Участники: ' . $ubss . '.');
|
||||
}
|
||||
} else {
|
||||
//Оповещаем участников о начале турнира за 60 мин., а так-же за 10 мин.
|
||||
//Оповещаем участников о начале турнира за 60 мин., а так-же за 10 мин.
|
||||
if ($pl['status'] == 0) {
|
||||
if ($pl['ch1'] == 0 && $pl['time_start'] - 60 * 60 < time()) {
|
||||
mysql_query('UPDATE `bs_turnirs` SET `ch1` = `ch1` + 1 WHERE `id` = "' . $pl['id'] . '" LIMIT 1');
|
||||
} elseif ($pl['ch1'] == 1 && $pl['time_start'] - 10 * 60 < time()) {
|
||||
mysql_query('UPDATE `bs_turnirs` SET `ch1` = `ch1` + 1 WHERE `id` = "' . $pl['id'] . '" LIMIT 1');
|
||||
e(
|
||||
'Начало турнира, для ' . $pl['to_lvl'] . ' уровней в <b>Башне Смерти</b> через ' . timeOut(
|
||||
'Начало турнира, для ' . $pl['to_lvl'] . ' уровней в <b>Башне Смерти</b> через ' . timeOut(
|
||||
$pl['time_start'] - time()
|
||||
) . ' (<small>' . date(
|
||||
'd.m.Y H:i', $pl['time_start']
|
||||
) . '</small>), текущий призовой фонд: ' . round(
|
||||
) . '</small>), текущий призовой фонд: ' . round(
|
||||
$pl['money'] * 0.85, 2
|
||||
) . ' кр., <b>1.00</b> Екр., заявок: ' . $pl['users'] . ''
|
||||
) . ' кр., <b>1.00</b> Екр., заявок: ' . $pl['users'] . ''
|
||||
);
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user