Merge pull request 'dev-php74-utf8' (#31) from dev-php74-utf8 into master

Reviewed-on: new-combats.com/game#31
This commit was merged in pull request #31.
This commit is contained in:
2023-01-11 13:51:55 +00:00
3588 changed files with 36001 additions and 397318 deletions
+2 -32
View File
@@ -1,12 +1,4 @@
DefaultLanguage ru
AddDefaultCharset windows-1251
<IfModule mod_php5.c>
php_value session.use_trans_sid 0
php_value register_globals 1
<Directory "/usr/local/bin/php">
php_admin_value open_basedir none
</Directory>
</IfModule>
<IfModule mod_rewrite.c>
#Options +FollowSymLinks -MultiViews
@@ -24,15 +16,6 @@ RewriteCond %{HTTP:HTTP_PC_REMOTE_ADDR} !^$ [OR]
RewriteCond %{HTTP:HTTP_CLIENT_IP} !^$
RewriteRule (.+) https://new-combats.com/proxy/
#RewriteCond %{HTTP_HOST} ^new-combats\.ru [NC]
#RewriteCond %{SERVER_PORT} 80
#RewriteRule ^(.*)$ https://new-combats.com/$1 [R,L]
#RewriteCond %{HTTP_HOST} ^demonscity\.ru [NC]
#RewriteCond %{SERVER_PORT} 80
#RewriteRule ^(.*)$ https://new-combats.com/$1 [R,L]
#RewriteCond %{HTTP_HOST} ^new-combats\.com [NC]
RewriteCond %{SERVER_PORT} 80
RewriteRule ^(.*)$ https://new-combats.com/$1 [R,L]
@@ -59,9 +42,6 @@ RewriteRule ^rating_pers/(.*)/?$ /reting_pers.php?$1 [L]
RewriteRule ^rating_clans/?$ /reting_clans.php [L]
RewriteRule ^rating_clans/(.*)/?$ /reting_clans.php?$1 [L]
#RewriteRule ^support/(.*)/?$ /support/index.php?$1 [L]
#RewriteRule ^support/?$ /support/index.php [L]
RewriteRule ^clan/(.*)/?$ /clans_inf.php?$1 [L]
RewriteRule ^clan/?$ /clans_inf.php [L]
@@ -70,18 +50,12 @@ RewriteRule ^ruins/?$ /ruins.php [L]
RewriteRule ^exp/(.*)/?$ /exp.php?$1 [L]
RewriteRule ^exp/?$ /exp.php [L]
#
#
RewriteRule ^news/(.*)/?$ /n/$1 [R=301,L]
RewriteRule ^news/?$ /n [R=301,L]
RewriteRule ^n/(.*)/?$ /news_script/index.php?$1 [L]
RewriteRule ^n/?$ /news_script/index.php [L]
#
#
#RewriteRule ^news/(.*)/?$ /news_script/index.php?$1 [L]
#RewriteRule ^news/?$ /news_script/index.php [L]
RewriteRule ^forum/(.*)/?$ /forum_script/index.php?$1 [L]
RewriteRule ^forum/?$ /forum_script/index.php [L]
@@ -101,10 +75,7 @@ RewriteRule ^rating/?$ /rating_script/index.php [L]
RewriteRule ^item/(.*)/?$ /items_info.php?$1 [L]
RewriteRule ^item/?$ /items_info.php [L]
RewriteRule ^repass/?$ /repass.php [L]
#
#
#
#
RewriteRule ^mail/(.*)/?$ /mailconf.php?$1 [L]
RewriteRule ^register/?$ /register.php [L]
@@ -126,4 +97,3 @@ RewriteRule . /index.php [L]
Order Allow,Deny
Allow from all
-1
View File
@@ -1 +0,0 @@
---
+8 -8
View File
@@ -2,15 +2,15 @@
/*
ßäðî äëÿ îáðàáîòêè äàííûõ.
Îáðàáîòêà ïîåäèíêîâ, îáðàáîòêà çàÿâîê, îáðàáîòêà áîòîâ, îáðàáîòêà ïåùåð, îáðàáîòêà òóðíèðîâ, îáðàáîòêà âðåìåííûõ ãåíåðàöèé
Ядро для обработки данных.
Обработка поединков, обработка заявок, обработка ботов, обработка пещер, обработка турниров, обработка временных генераций
*/
if (isset($_GET['m1'])) {
define('GAME', true);
setlocale(LC_CTYPE, "ru_RU.CP1251");
include_once '_incl_data/__config.php';
include_once '_incl_data/class/__db_connect.php';
@@ -22,13 +22,13 @@ if (isset($_GET['m1'])) {
} elseif (isset($_GET['bk1'])) {
define('GAME', true);
setlocale(LC_CTYPE, "ru_RU.CP1251");
include('_incl_data/__config.php');
include('_incl_data/class/__db_connect.php');
$u = User::start();
$ins = 'Âåùè ÁÊ-1:<hr>';
$ins = 'Вещи БК-1:<hr>';
$sp = mysql_query('SELECT * FROM `items_main` WHERE `geni` = 1');
while ($pl = mysql_fetch_array($sp)) {
@@ -149,7 +149,7 @@ if (!isset($_GET['robot']) && UserIp::get() != $_SERVER['SERVER_ADDR'] && UserIp
const GAME = true;
setlocale(LC_CTYPE, "ru_RU.CP1251");
include('_incl_data/__config.php');
include('_incl_data/class/__db_connect.php');
@@ -216,7 +216,7 @@ while ($pl = mysql_fetch_array($sp)) {
echo '*';
}
echo '+';
echo '[' . $pl['login'] . '] -> Äåéñòâèå: ' . $pl['ipreg'] . ' , îæèäàåì: ' . ($pl['timeMain'] - time(
)) . ' ñåê., çàÿâêà: ' . $pl['zv'] . ', ïîåäèíîê: ' . $pl['battle'] . '';
echo '[' . $pl['login'] . '] -> Действие: ' . $pl['ipreg'] . ' , ожидаем: ' . ($pl['timeMain'] - time(
)) . ' сек., заявка: ' . $pl['zv'] . ', поединок: ' . $pl['battle'] . '';
echo '<hr>';
}
-1
View File
@@ -5,7 +5,6 @@ use Insallah\Tournaments\Tournament;
error_reporting(E_ALL ^ E_NOTICE);
ini_set('display_errors', 'Off');
setlocale(LC_CTYPE, "ru_RU.CP1251");
date_default_timezone_set('Europe/Moscow');
header('Cache-Control: no-cache, no-store, must-revalidate');
+1
View File
@@ -26,6 +26,7 @@ spl_autoload_register(function (string $classname) {
$classMap = [
'NewCombats' => __DIR__ . '/class/',
'Insallah' => __DIR__ . '/class/Insallah/',
'DarksLight2' => __DIR__ . '/class/DarksLight2/',
];
$parts = explode('\\', $classname);
$namespace = array_shift($parts);
+1197 -1197
View File
File diff suppressed because it is too large Load Diff
+110 -110
View File
@@ -21,7 +21,7 @@ class BotLogic
static function battle_priems()
{
//èñïîëüçóåì ïðèåìû â áîþ
//используем приемы в бою
if (self::$st['hpNow'] > 0 && self::$bot['battle'] > 0) {
$pr = explode('|', self::$bot['priems']);
@@ -36,7 +36,7 @@ class BotLogic
$i = 0;
while ($i < count($pr)) {
if ($rz[$i] < 1 && $pr[$i] > 0) {
//Ìîæíî èñïîëüçîâàòü ïðèåì, ïîäêëþ÷àåì ëîãèêó
//Можно использовать прием, подключаем логику
BotPriemLogic::start($i, $pr[$i]);
}
$i++;
@@ -48,15 +48,15 @@ class BotLogic
static function clear_bot()
{
//Î÷èñòêà áîòà, îáíóëÿåì åãî äî [0], óäàëÿåì ýôôåêòû, ïðåäìåòû è ò.ä, à òåêóùåìó ñòàâèì ëîãèí delete
//Очистка бота, обнуляем его до [0], удаляем эффекты, предметы и т.д, а текущему ставим логин delete
//Óäàëÿåì ñîîáùåíèÿ â ÷àòå
//Удаляем сообщения в чате
mysql_query('DELETE FROM `chat` WHERE `to` = "' . self::$bot['login'] . '"');
//Óäàëÿåì øìîòêè è ýôôåêòû
//Удаляем шмотки и эффекты
mysql_query('DELETE FROM `items_users` WHERE `uid` = "' . self::$bot['id'] . '"');
mysql_query('DELETE FROM `eff_users` WHERE `uid` = "' . self::$bot['id'] . '"');
//Óäàëÿåì ñòàòû è ïîëå â þçåðñ
//Удаляем статы и поле в юзерс
mysql_query('DELETE FROM `users` WHERE `id` = "' . self::$bot['id'] . '" LIMIT 1');
mysql_query('DELETE FROM `stats` WHERE `id` = "' . self::$bot['id'] . '" LIMIT 1');
mysql_query('DELETE FROM `online` WHERE `uid` = "' . self::$bot['id'] . '" LIMIT 1');
@@ -80,13 +80,13 @@ class BotLogic
}
}
//ÏÐîâåðêà íà ôàéòðóì
//ПРоверка на файтрум
static function test_fr($id, $city = 'capitalcity')
{
return $city != 'capitalcity' || $id == 0 || $id == 2 || $id == 4 || $id == 5 || $id == 7 || $id == 377;
}
//Äåéñòâèÿ áîòà âíå áîÿ
//Действия бота вне боя
static function actions()
{
@@ -94,9 +94,9 @@ class BotLogic
if (self::$bot['battle'] == 0 && self::$bot['zv'] == 0 && self::$bot['pass'] == 'saintlucia') {
//Ìîæíî: ñìåíèòü ôóëë, ïåðåéòè â äðóãóþ êîìíàòó, âõîäèòü íàéìîì, äåëàòü áàôû
//Можно: сменить фулл, перейти в другую комнату, входить наймом, делать бафы
//Ïåðåõîäèì â äðóãóþ êîìíàòó
//Переходим в другую комнату
if (true == false && self::$bot['a1'] != 0 && self::$bot['a1'] != self::$bot['room']) {
self::_loc(self::$bot['a1']);
@@ -116,22 +116,22 @@ class BotLogic
mysql_query('UPDATE `stats` SET `exp` = "3500000" WHERE `id` = "' . self::$bot['id'] . '" LIMIT 1');
}
//Äåéñòâèå â êîìíàòå
//Ìàãàçèí
//Ïîêóïàåì êðèñòàëë âå÷íîñòè
//Действие в комнате
//Магазин
//Покупаем кристалл вечности
if (self::$bot['room'] == 10 && self::$bot['level'] == 5 && self::$bot['exp'] >= 12499) {
$cr = mysql_fetch_array(mysql_query('SELECT `id` FROM `items_users` WHERE `item_id` = "1204" AND `uid` = "' . self::$bot['id'] . '" AND `delete` = "0" LIMIT 1'));
if (!isset($cr['id'])) {
//Ïîêóïàåì êðèñòàëë
//Покупаем кристалл
$u->addItem(1204, self::$bot['id']);
}
}
//Ïåðåõîäèì â êîìíàòó äëÿ ñðàæåíèé
//Переходим в комнату для сражений
self::_loc(self::_loc_zv());
}
}
//Åñëè áîò óæå íàáðàë îïûò äëÿ ïåðåõîäà íà 6-îé
//Если бот уже набрал опыт для перехода на 6-ой
if (self::$bot['level'] == 5 && self::$bot['exp'] >= 12499) {
$cr = mysql_fetch_array(mysql_query('SELECT `id` FROM `items_users` WHERE `item_id` = "1204" AND `uid` = "' . self::$bot['id'] . '" AND `delete` = "0" LIMIT 1'));
if (!isset($cr['id'])) {
@@ -139,12 +139,12 @@ class BotLogic
}
}
//Ïîõîæå ÷òî áîòó ïîðà ñìåíèòü êîìïëåêò ))
//Похоже что боту пора сменить комплект ))
if (self::$bot['clss'] == 0) {
//Âûáèðàåì íîâûé êëàññ è øìîòêè :)
//Выбираем новый класс и шмотки :)
//Ìåíÿåì êëàññ
//Меняем класс
self::$bot['clss'] = rand(1, 4);
$x = mysql_fetch_array(mysql_query('SELECT COUNT(*) FROM `a_bot_tree` WHERE `level` = "' . (self::$bot['level']) . '" '));
@@ -154,7 +154,7 @@ class BotLogic
if ($x[0] > 1) {
$x = rand(1, $x[0]);
//âûáèðàåì 1 èç íåñêîëüêèõ
//выбираем 1 из нескольких
$da = ['ASC', 'DESC', 'DESC', 'ASC'];
$da = $da[rand(0, 5)];
$com = mysql_fetch_array(mysql_query('SELECT * FROM `a_bot_tree` WHERE `level` = "' . (self::$bot['level']) . '" ORDER BY `id` ' . $da . ' LIMIT ' . ($x - 1) . ',1'));
@@ -172,12 +172,12 @@ class BotLogic
mysql_query('UPDATE `users` SET `clss` = "' . self::$bot['clss'] . '" WHERE `id` = "' . self::$bot['id'] . '" LIMIT 1');
/* Çàáèðàåì ñòàðûå øìîòêè è ýôôåêòû */
/* Забираем старые шмотки и эффекты */
mysql_query('UPDATE `items_users` SET `delete` = "' . time() . '" WHERE `gift` = "" AND `item_id` != "1204" AND `uid` = "' . self::$bot['id'] . '" AND `delete` = "0"');
mysql_query('UPDATE `items_users` SET `iznosNOW` = "0" WHERE `uid` = "' . self::$bot['id'] . '" AND `delete` = "0"');
mysql_query('UPDATE `eff_users` SET `delete` = "' . time() . '" WHERE `uid` = "' . self::$bot['id'] . '" AND `delete` = "0"');
/* Îáíîâëÿåì ñòàòû è ïðèåìû */
/* Обновляем статы и приемы */
if ($com['pr'] == '') {
$i = 1;
@@ -193,7 +193,7 @@ class BotLogic
$i = 1;
while ($i <= 20) {
if ($com['e' . $i] > 0) {
//Âûäàåì è íàäåâàåì ïðåäìåò
//Выдаем и надеваем предмет
//$it = $u->addItem($com['e'.$i],self::$bot['id']);
$eff = mysql_fetch_array(mysql_query('SELECT * FROM `eff_main` WHERE `id2` = "' . $com['e' . $i] . '" LIMIT 1'));
mysql_query('INSERT INTO `eff_users` (`overType`,`id_eff`,`uid`,`name`,`timeUse`,`data`,`no_Ace`) VALUES ("' . $eff['oneType'] . '","' . $eff['id2'] . '","' . self::$bot['id'] . '","' . $eff['mname'] . '","' . (time() + 9640000) . '","' . $eff['mdata'] . '","' . $eff['noAce'] . '")');
@@ -204,7 +204,7 @@ class BotLogic
$i = 1;
while ($i <= 20) {
if ($com['w' . $i] > 0) {
//Âûäàåì è íàäåâàåì ïðåäìåò
//Выдаем и надеваем предмет
$it = $u->addItem($com['w' . $i], self::$bot['id']);
$eff1 = mysql_fetch_array(mysql_query('SELECT * FROM `items_shop` WHERE `item_id` = "' . $com['w' . $i] . '" LIMIT 1'));
if ($it > 0) {
@@ -217,7 +217,7 @@ class BotLogic
}
}
//åñëè áîò óæå 1-ûé óðîâåíü, à ñèäèò â íîâè÷êàõ :) êèäàåì åãî â çàëû
//если бот уже 1-ый уровень, а сидит в новичках :) кидаем его в залы
if (self::$bot['city'] == 'capitalcity' && self::$bot['level'] < 2 && self::$bot['room'] == 0 && self::$bot['a1'] == 0) {
self::_loc(self::_loc_zv());
}
@@ -226,7 +226,7 @@ class BotLogic
public $bot_last_action = [];
//Âêëþ÷àåì ëîãèêó áîòà
//Включаем логику бота
static function start($id)
{
if (!isset($bot_last_action[$id])) {
@@ -238,12 +238,12 @@ class BotLogic
self::$st = $u->getStats(self::$bot, 0);
//Çàõîäèì áîòîì â îíëàéí
//Заходим ботом в онлайн
self::_online();
if (self::$bot['battle'] > 0) {
//Äåéñòâèÿ áîòà â ïîåäèíêå
//Действия бота в поединке
self::$btl = mysql_fetch_array(mysql_query('SELECT * FROM `battle` WHERE `id` = "' . mysql_real_escape_string(self::$bot['battle']) . '" AND `team_win` = "-1" LIMIT 1'));
if (isset(self::$btl['id'])) {
@@ -252,16 +252,16 @@ class BotLogic
$a1 = mysql_fetch_array(mysql_query('SELECT `id`,`uid1`,`uid2`,`time` FROM `battle_act` WHERE `battle` = "' . self::$btl['id'] . '" AND `uid1` = "' . self::$bot['id'] . '" ORDER BY `time` ASC LIMIT 1'));
//Ïðîâåðÿåì âîçìîæíîñòü èñïîëüçîâàíèÿ ïðèåìîâ è äåëàåì ñïèñîê ÷òî èñïîëüçîâàòü
//èñïîëüçóåì ïðèåìû
//Проверяем возможность использования приемов и делаем список что использовать
//используем приемы
self::battle_priems();
//Áîò ñäåëàë óäàð, íî íèêòî íå îòâåòèë, ïðîâåðÿåì òàéìàóò è åñëè ÷òî çàõîäèì
//Бот сделал удар, но никто не ответил, проверяем таймаут и если что заходим
if (isset($a1['id']) && $a1['time'] + self::$btl['timeout'] < time()) {
$go_bot = true;
}
//ÒÓÒ test
//ТУТ test
$a2 = mysql_fetch_array(mysql_query('SELECT `id`,`uid1`,`uid2`,`time` FROM `battle_act` WHERE `battle` = "' . self::$btl['id'] . '" AND `uid2` = "' . self::$bot['id'] . '" ORDER BY `time` ASC LIMIT 1'));
if (isset($a2['uid1'])) {
mysql_query('UPDATE `stats` SET `enemy` = "' . $a2['uid1'] . '" WHERE `id` = "' . self::$bot['id'] . '" LIMIT 1');
@@ -270,41 +270,41 @@ class BotLogic
if (isset($a3['uid2'])) {
mysql_query('UPDATE `stats` SET `enemy` = "' . $a3['uid2'] . '" WHERE `id` = "' . self::$bot['id'] . '" LIMIT 1');
}
//Ðàçìåí ñ ïðîòèâíèêîì
//Размен с противником
self::$enemy = mysql_fetch_array(mysql_query('SELECT * FROM `stats` WHERE `id` = "' . self::$bot['enemy'] . '" LIMIT 1'));
} else {
//Çàõîäèì íà ïåðñîíàæà
//Заходим на персонажа
self::inuser_go_btl(self::$bot);
//Ïîåäèíîê óæå çàâåðøèëñÿ, âûêèäûâàåì èç áîÿ
//Поединок уже завершился, выкидываем из боя
self::$bot['battle'] = 0;
mysql_query('UPDATE `users` SET `battle` = "' . self::$bot['battle'] . '" WHERE `id` = "' . mysql_real_escape_string(self::$bot['id']) . '" LIMIT 1 ');
}
} else {
//Äåéñòâèÿ áîòà âíå ïîåäèíêà
//Действия бота вне поединка
if (self::$bot['timeMain'] < time()) {
mysql_query('UPDATE `chat` SET `time` = "' . time() . '" WHERE `to` = "' . self::$bot['login'] . '" AND `time` = "-1"');
//Äåéñòâèå âîçìîæíî ïðîèçâåñòè
//Действие возможно произвести
if (self::$bot['ipreg'] == 1 || self::$bot['ipreg'] == 2 || self::$bot['ipreg'] == 4) {
//Ïðèíèìàåì òîëüêî õàîòû
//Принимаем только хаоты
self::$bot['ipreg'] = 3;
}
if (self::$bot['ipreg'] == 5) {
//Ïîäàåì òîëüêî õàîòû
//Подаем только хаоты
self::$bot['ipreg'] = 7;
}
//
if (self::$bot['ipreg'] == 0 || !self::test_fr(self::$bot['room'])) {
//Îáíîâëÿåì ýôôåêòû
//Обновляем эффекты
$com = mysql_fetch_array(mysql_query('SELECT * FROM `a_bot_tree` WHERE `level` = "' . (self::$bot['level']) . '" LIMIT 1'));
if (isset($com['id'])) {
$eft = mysql_fetch_array(mysql_query('SELECT `id` FROM `eff_users` WHERE `uid` = "' . self::$bot['id'] . '" AND `delete` = "0" LIMIT 1'));
@@ -313,7 +313,7 @@ class BotLogic
$i = 1;
while ($i <= 20) {
if ($com['e' . $i] > 0) {
//Âûäàåì è íàäåâàåì ïðåäìåò
//Выдаем и надеваем предмет
//$it = $u->addItem($com['e'.$i],self::$bot['id']);
$eff = mysql_fetch_array(mysql_query('SELECT * FROM `eff_main` WHERE `id2` = "' . $com['e' . $i] . '" LIMIT 1'));
mysql_query('INSERT INTO `eff_users` (`overType`,`id_eff`,`uid`,`name`,`timeUse`,`data`,`no_Ace`) VALUES ("' . $eff['oneType'] . '","' . $eff['id2'] . '","' . self::$bot['id'] . '","' . $eff['mname'] . '","' . (time() + 86400 * 7) . '","' . $eff['mdata'] . '","' . $eff['noAce'] . '")');
@@ -324,25 +324,25 @@ class BotLogic
}
if (self::$bot['level'] >= 13 && self::$bot['clan'] == 0 && self::$bot['align'] == 0) {
//îáíóëÿåì áîòà
//обнуляем бота
self::clear_bot();
}
//Òîëüêî-÷òî èç ïîåäèíêà, õèëÿåòñÿ
//Только-что из поединка, хиляется
if (!self::test_fr(self::$bot['room'])) {
//Â êàêîé-òî ëîêàöèè, âèäèìî ÷òî-òî äåëàåì
//В какой-то локации, видимо что-то делаем
} elseif (self::$st['hpNow'] >= self::$st['hpAll']) {
echo 1;
//Ïðèñòóïàåì ê àêòèâíîé äåÿòåëüíîñòè :)
//Приступаем к активной деятельности :)
mysql_query('UPDATE `stats` SET `zv`= "0",`team`= "0",`hpNow` = "' . self::$st['hpNow'] . '",`mpNow` = "' . self::$st['mpNow'] . '" WHERE `id` = "' . self::$bot['id'] . '" LIMIT 1');
mysql_query('UPDATE `users` SET `ipreg` = "' . self::new_action() . '",`mod_zvanie` = "Ñòàæåð" WHERE `id` = "' . self::$bot['id'] . '" LIMIT 1');
mysql_query('UPDATE `users` SET `ipreg` = "' . self::new_action() . '",`mod_zvanie` = "Стажер" WHERE `id` = "' . self::$bot['id'] . '" LIMIT 1');
} else {
if (self::$bot['mod_zvanie'] == 'Ñòàæåð100500') {
//Íàäåâàåì êîìïëåêò + îáíîâëÿåì ýôôåêòû
if (self::$bot['mod_zvanie'] == 'Стажер100500') {
//Надеваем комплект + обновляем эффекты
mysql_query('UPDATE `eff_users` SET `timeUse` = "' . (time() + 7200) . '" WHERE `uid` = "' . self::$bot['id'] . '" AND `delete` = "0" AND `v1` != "priem" LIMIT 12');
mysql_query('UPDATE `items_users` SET `inOdet` = "0" WHERE `uid` = "' . self::$bot['id'] . '" AND `inOdet` > 0 AND `delete` = "0"');
$sp = mysql_query('SELECT `u`.`id`,`st`.`inslot`,`st`.`2too` FROM `items_users` AS `u` LEFT JOIN `items_main` AS `st` ON `st`.`id` = `u`.`item_id` WHERE `u`.`inOdet` = 0 AND `st`.`inslot` > 0 AND `st`.`inSlot` <= 20');
@@ -373,10 +373,10 @@ class BotLogic
mysql_query('UPDATE `items_users` SET `inOdet` = "' . $od . '" WHERE `id` = "' . $pl['id'] . '" AND `uid` = "' . self::$bot['id'] . '" LIMIT 1');
}
}
mysql_query('UPDATE `items_users` SET `mod_zvanie` = "Còaæåð" WHERE `id` = "' . self::$bot['id'] . '" LIMIT 1');
mysql_query('UPDATE `items_users` SET `mod_zvanie` = "Cтaжер" WHERE `id` = "' . self::$bot['id'] . '" LIMIT 1');
}
//Õèëÿåìñÿ äàëüøå
//Хиляемся дальше
if (self::$bot['regHP'] == 0 || self::$bot['regMP'] == 0) {
mysql_query('UPDATE `stats` SET `regHP` = "' . time() . '", `regMP` = "' . time() . '",`hpNow` = "' . self::$st['hpNow'] . '",`mpNow` = "' . self::$st['mpNow'] . '" WHERE `id` = "' . self::$bot['id'] . '" LIMIT 1');
}
@@ -390,10 +390,10 @@ class BotLogic
} elseif (self::$bot['ipreg'] == 1) {
//Ïðèíÿòü çàÿâêó íà áîé (ôèç.)
//Принять заявку на бой (физ.)
if (self::$bot['zv'] == 0) {
//Âûäåëÿåì ïîäõîäÿùóþ çàÿâêó â ôèç. ïîåäèíêå
//Выделяем подходящую заявку в физ. поединке
$rz = 2;
$zv = 0;
$nozv = 0;
@@ -415,13 +415,13 @@ class BotLogic
if ($uz1st['reting'] <= floor(self::$st['reting'] * 1.27)) {
//Ïðèíèìàåì çàÿâêó
//Принимаем заявку
$sa = '';
if (self::$bot['sex'] == 2) {
$sa = 'à';
$sa = 'а';
}
$text = ' [login:' . self::$bot['login'] . '] ïðèíÿë' . $sa . ' âàøó çàÿâêó íà áîé.[reflesh_main_zv_priem:' . self::$bot['id'] . ']';
$text = ' [login:' . self::$bot['login'] . '] принял' . $sa . ' вашу заявку на бой.[reflesh_main_zv_priem:' . self::$bot['id'] . ']';
mysql_query("INSERT INTO `chat` (`new`,`city`,`room`,`login`,`to`,`text`,`time`,`type`,`toChat`) VALUES ('1','" . $uz1['city'] . "','','','" . $uz1['login'] . "','" . $text . "','" . time() . "','6','0')");
mysql_query('UPDATE `stats` SET `zv` = "' . $zv['id'] . '",`team` = "2" WHERE `id` = "' . self::$bot['id'] . '" LIMIT 1');
mysql_query('UPDATE `users` SET `ipreg` = "8",`timeMain` = "' . self::rnd() . '" WHERE `id` = "' . self::$bot['id'] . '" LIMIT 1');
@@ -449,19 +449,19 @@ class BotLogic
} elseif (self::$bot['ipreg'] == 2) {
//Ïðèíÿòü çàÿâêó íà áîé (ãðóï.)
//Принять заявку на бой (груп.)
self::bot_group_haot_zv(6);
} elseif (self::$bot['ipreg'] == 3) {
//Ïðèíÿòü çàÿâêó íà áîé (õàîò.)
//Принять заявку на бой (хаот.)
self::bot_group_haot_zv(7);
} elseif (self::$bot['ipreg'] == 4) {
//Ïðèíÿòü çàÿâêó íà áîé (òóðíèð.)
self::e('' . self::$bot['login'] . ', ÿ õî÷ó ïðèíÿòü òóðíèð...');
//Принять заявку на бой (турнир.)
self::e('' . self::$bot['login'] . ', я хочу принять турнир...');
} elseif (self::$bot['ipreg'] == 5) {
//Ïîäàòü çàÿâêó (ôèç.)
//Подать заявку (физ.)
if (self::$bot['zv'] == 0) {
$rz = 2;
@@ -531,34 +531,34 @@ class BotLogic
} elseif (self::$bot['ipreg'] == 8) {
//Îæèäàíèå íà÷àëà ïîåäèíêà
//Ожидание начала поединка
if (self::$bot['zv'] == 0) {
//Ïîåäèíîê íå óäàëîñü íà÷àòü
//Поединок не удалось начать
mysql_query('UPDATE `users` SET `ipreg` = "0",`timeMain` = "' . self::rnd() . '" WHERE `id` = "' . self::$bot['id'] . '" LIMIT 1');
} else {
$zv = mysql_fetch_array(mysql_query('SELECT * FROM `zayvki` WHERE `id` = "' . self::$bot['zv'] . '" AND `cancel` = "0" AND `start` = "0" LIMIT 1'));
if (!isset($zv['id'])) {
//Îáíóëÿåì äåéñòâèÿ
//Обнуляем действия
mysql_query('UPDATE `users` SET `ipreg` = "0",`timeMain` = "' . self::rnd() . '" WHERE `id` = "' . self::$bot['id'] . '" LIMIT 1');
} elseif ($zv['razdel'] == 4 || $zv['razdel'] == 5) {
//õàîò èëè ãðóïïà
//хаот или группа
if ($zv['time_start'] + $zv['time'] <= time()) {
self::inuser_go_zv(self::$bot);
}
} else {
//ôèç
//физ
if ($zv['creator'] == self::$bot['id']) {
$uz2 = mysql_fetch_array(mysql_query('SELECT `u`.`sex`,`u`.`id`,`u`.`login`,`u`.`align`,`u`.`clan`,`u`.`admin`,`u`.`city`,`u`.`room`,`u`.`online`,`u`.`level`,`u`.`battle`,`u`.`money`,`st`.* FROM `stats` AS `st` LEFT JOIN `users` AS `u` ON (`st`.`id` = `u`.`id`) WHERE `st`.`zv`="' . $zv['id'] . '" AND `st`.`team`="2" LIMIT 1'));
if (isset($uz2['id'])) {
//Çàÿâêó êòî-òî ïðèíÿë, ðåàãèðóåì! :)
//Заявку кто-то принял, реагируем! :)
$pr = -1;
$uz2st = $u->getStats($uz2, 0);
@@ -566,12 +566,12 @@ class BotLogic
//btl-cof
if ($uz2st['reting'] > floor(self::$st['reting'] * 1.27)) {
//Îòêàçûâàåì, â 95% ñëó÷àåâ, ïðîòèâíèê ñëèøêîì ñèëåí
//Отказываем, в 95% случаев, противник слишком силен
if (rand(0, 100) > 95) {
//îòïðàâëÿåì áîòà íà èçáèåíèå :D
//отправляем бота на избиение :D
$pr = 1;
} else {
//îòêàç
//отказ
$pr = 0;
}
@@ -579,13 +579,13 @@ class BotLogic
$pr = 1;
}
//Ìîæíî ïðèíÿòü çàÿâêó
//Можно принять заявку
//$pr = 0;
if ($pr == 1) {
//Ïðèåì çàÿâêè
//ñîçäàåì ïîåäèíîê ñ áîòîì
//Прием заявки
//создаем поединок с ботом
$expB = 0;
$btl = ['players' => '', 'timeout' => $zv['timeout'], 'type' => $zv['type'], 'invis' => $zv['invis'], 'noinc' => 0, 'travmChance' => 0, 'typeBattle' => 0, 'addExp' => $expB, 'money' => 0];
$ins = mysql_query('INSERT INTO `battle` (`time_over`,`city`,`time_start`,`players`,`timeout`,`type`,`invis`,`noinc`,`travmChance`,`typeBattle`,`addExp`,`money`,`team_win`) VALUES (
@@ -604,13 +604,13 @@ class BotLogic
"-1")');
if ($ins) {
$btl_id = mysql_insert_id();
//îáíîâëÿåì äàííûå î ïîåäèíêå
//обновляем данные о поединке
mysql_query('UPDATE `users` SET `battle`="' . $btl_id . '" WHERE `id` = "' . $uz2['id'] . '" LIMIT 1');
mysql_query('UPDATE `users` SET `battle`="' . $btl_id . '",`ipreg` = "0" WHERE `id` = "' . self::$bot['id'] . '" LIMIT 1');
mysql_query('UPDATE `stats` SET `zv` = "0",`team`="1" WHERE `id` = "' . self::$bot['id'] . '" LIMIT 1');
mysql_query('UPDATE `stats` SET `zv` = "0",`team`="2" WHERE `id` = "' . $uz2['id'] . '" LIMIT 1');
//Åñëè áîé êóëà÷íûé, òî ñíèìàåì âåùè
//Если бой кулачный, то снимаем вещи
if ($btl['type'] == 1) {
mysql_query('UPDATE `items_users` SET `inOdet`="0" WHERE `uid` = "' . self::$bot['id'] . '" AND `inOdet`!=0');
mysql_query('UPDATE `items_users` SET `inOdet`="0" WHERE `uid` = "' . $uz2['id'] . '" AND `inOdet`!=0');
@@ -618,21 +618,21 @@ class BotLogic
mysql_query('UPDATE `zayvki` SET `start` = "' . time() . '",`btl_id` = "' . $btl_id . '" WHERE `id` = "' . $zv['id'] . '" LIMIT 1');
//îáíîâëÿåì çàÿâêó, ÷òî áîé íà÷àëñÿ
//обновляем заявку, что бой начался
self::$bot['battle'] = $btl_id;
//Îòïðàâëÿåì ñîîáùåíèå â ÷àò âñåì áîéöàì
//Отправляем сообщение в чат всем бойцам
mysql_query("INSERT INTO `chat` (`city`,`room`,`to`,`time`,`type`,`toChat`,`sound`) VALUES ('" . $u->info['city'] . "','" . $u->info['room'] . "','" . $uz2['login'] . "','" . time() . "','11','0','117')");
}
} elseif ($pr == 0) {
//Îòêàç
//Отказ
$sa = '';
if (self::$bot['sex'] == 2) {
$sa = 'à';
$sa = 'а';
}
$text = ' [login:' . self::$bot['login'] . '] îòêàçàë' . $sa . ' âàì â ïîåäèíêå.';
$text = ' [login:' . self::$bot['login'] . '] отказал' . $sa . ' вам в поединке.';
mysql_query("INSERT INTO `chat` (`new`,`city`,`room`,`login`,`to`,`text`,`time`,`type`,`toChat`) VALUES ('1','" . $uz2['city'] . "','','','" . $uz2['login'] . "','" . $text . "','" . time() . "','6','0')");
mysql_query('UPDATE `stats` SET `zv` = "0",`team` = "1" WHERE `id` = "' . $uz2['id'] . '" LIMIT 1');
mysql_query('UPDATE `zayvki` SET `otk` = ( `otk` + 1 ),`bcs` = "' . (time() + rand(30, rand(60, 180))) . '" WHERE `id` = "' . $zv['id'] . '" LIMIT 1');
@@ -640,7 +640,7 @@ class BotLogic
} else {
//Çàÿâêó íèêòî íå ïðèíÿë, âîçìîæíî ñòîèò îòìåíèòü çàÿâêó âîîáùå!
//Заявку никто не принял, возможно стоит отменить заявку вообще!
if (self::$bot['timeMain'] < time() - 30 - rand((7 / $zv['otk']), (3 * 49 / $zv['otk']))) {
mysql_query('UPDATE `stats` SET `zv` = "0" WHERE `id` = "' . self::$bot['id'] . '" LIMIT 1');
@@ -655,7 +655,7 @@ class BotLogic
}
//Áîò óæå ñëèøêîì äîëãî æäåò îòâåòà èãðîêà, îòêàçûâàåìñÿ îò çàÿâêè
//Бот уже слишком долго ждет ответа игрока, отказываемся от заявки
if (self::$bot['timeMain'] < time() - rand((30 / $zv['otk']), (135 / $zv['otk'])) && $zv['creator'] != self::$bot['id'] && ($zv['razdel'] == 1 || $zv['razdel'] == 2)) {
$uz1 = mysql_fetch_array(mysql_query('SELECT `u`.`sex`,`u`.`id`,`u`.`login`,`u`.`align`,`u`.`clan`,`u`.`admin`,`u`.`city`,`u`.`room`,`u`.`online`,`u`.`level`,`u`.`battle`,`u`.`money`,`st`.* FROM `stats` AS `st` LEFT JOIN `users` AS `u` ON (`st`.`id` = `u`.`id`) WHERE `st`.`zv`="' . $zv['id'] . '" AND `st`.`team`="1" LIMIT 1'));
@@ -663,10 +663,10 @@ class BotLogic
$sa = '';
if (self::$bot['sex'] == 2) {
$sa = 'à';
$sa = 'а';
}
$text = ' [login:' . self::$bot['login'] . '] îòîçâàë' . $sa . ' ñâîé çàïðîñ íà áîé.';
$text = ' [login:' . self::$bot['login'] . '] отозвал' . $sa . ' свой запрос на бой.';
mysql_query("INSERT INTO `chat` (`new`,`city`,`room`,`login`,`to`,`text`,`time`,`type`,`toChat`) VALUES ('1','" . $uz1['city'] . "','','','" . $uz1['login'] . "','" . $text . "','" . time() . "','6','0')");
}
@@ -709,18 +709,18 @@ class BotLogic
if (self::$bot['level'] < 2) {
if ($r == 2 || $r == 3 || $r == 6 || $r == 7 || $r == 8) {
if (rand(0, 1) == 1) {
$r = 1; //ïðèíèìàåì ôèç
$r = 1; //принимаем физ
} elseif (rand(0, 1) == 0) {
$r = 4; //ïðèíèìàåì òóðíèð
$r = 4; //принимаем турнир
} else {
$r = 5; //ïîäàåì ôèç
$r = 5; //подаем физ
}
}
} elseif (self::$bot['level'] == 0) {
if (rand(0, 1) == 1) {
$r = 1; //ïðèíèìàåì ôèç
$r = 1; //принимаем физ
} else {
$r = 5; //ïîäàåì ôèç
$r = 5; //подаем физ
}
}
@@ -734,9 +734,9 @@ class BotLogic
/*/
Áàçîâûå ôóíêöèè îáó÷åíèÿ áîòà
Базовые функции обучения бота
/*/
//Áîò èùåò çàÿâêó â ãðóïïû èëè õàîò äëÿ ñâîåãî óðîâíÿ è ïîäõîäÿùóþ åìó
//Бот ищет заявку в группы или хаот для своего уровня и подходящую ему
static function bot_group_haot_zv($id)
{
$rz = 5;
@@ -783,7 +783,7 @@ class BotLogic
}
//Ëîãèêà ïðèåìà çàÿâêè
//Логика приема заявки
if ((self::team_zv_cf($pl, $atm) > (self::team_zv_cf($pl, $tmr) + self::$st['reting']) * 1.67 || ($zv['tm2max'] < $zv['tm1max'] / 2) || ($zv['tm1max'] < $zv['tm2max'] / 2)) && rand(0, 100) < 90) {
$go = 0;
}
@@ -840,7 +840,7 @@ class BotLogic
if ($tm > 0 || $rz == 5) {
//Ïðèíèìàåì ó÷àñòèå â çàÿâêå
//Принимаем участие в заявке
mysql_query('UPDATE `stats` SET `zv` = "' . $pl['id'] . '",`team` = "' . $tm . '" WHERE `id` = "' . self::$bot['id'] . '" LIMIT 1');
mysql_query('UPDATE `users` SET `login2` = "' . self::$bot['login2'] . '",`ipreg` = "8" WHERE `id` = "' . self::$bot['id'] . '" LIMIT 1');
self::$bot['zv'] = $pl['id'];
@@ -856,7 +856,7 @@ class BotLogic
}
//Äîáàâëÿåì íîâîãî áîòà
//Добавляем нового бота
static function createNewBot($login, $sex)
{
if ($sex != 1) {
@@ -872,7 +872,7 @@ class BotLogic
'real_bot_user',
'0',
'" . mysql_real_escape_string($login) . "',
'" . md5('regnxt#$%^à0.' . time()) . "',
'" . md5('regnxt#$%^а0.' . time()) . "',
'127.0.0.1',
'127.0.0.1',
'capitalcity',
@@ -890,11 +890,11 @@ class BotLogic
}
//Áîò íàõîäèòñÿ â îíëàéíå
//Бот находится в онлайне
static function _online()
{
if (self::$bot['online'] < time() - 60) {
//óðîâåíü/àïï
//уровень/апп
if (self::$bot['battle'] == 0 && self::$bot['zv'] == 0) {
self::_level();
}
@@ -903,7 +903,7 @@ class BotLogic
}
}
//Áîò ìåíÿåò ëîêàöèþ
//Бот меняет локацию
static function _loc_A($a, $b)
{
return $b;
@@ -918,28 +918,28 @@ class BotLogic
$r = rand(1, 4);
}
//áóäóàð
//будуар
if ($r == 4 && self::$bot['sex'] != 1) {
$r = rand(1, 3);
}
if (self::$bot['city'] == 'capitalcity') {
if ($r == 4) {
//áóäóàð
//будуар
$r = 7;
} elseif ($r == 3) {
//ÇÂ 3
//ЗВ 3
$r = 5;
} elseif ($r == 2) {
//ÇÂ 2
//ЗВ 2
$r = 2;
} else {
//ÇÂ 1
//ЗВ 1
$r = 4;
}
if (self::$bot['level'] == 0) {
//Íîâè÷êè
//Новички
$r = 0;
}
@@ -952,20 +952,20 @@ class BotLogic
{
if ($id == self::$bot['room']) {
//íè÷åãî, óæå ïðèøëè
//ничего, уже пришли
self::update('a1', 0);
} else {
//Ïðîêëàäûâàåì ìàðøðóò èç òåêóùåé êîìíàòû
//Прокладываем маршрут из текущей комнаты
$rid_next = self::_loc_A(self::$bot['room'], $id);
if ($rid_next > 0) {
//Èäåì òóäà
//Идем туда
//$rid_next = 377;
mysql_query('UPDATE `users` SET `room` = "' . $rid_next . '" WHERE `id` = "' . self::$bot['id'] . '" LIMIT 1');
return true;
} else {
//Íåâîçìîæíî äîéòè òóäà
//Невозможно дойти туда
return false;
}
@@ -973,7 +973,7 @@ class BotLogic
}
//Áîò ïîëó÷èë óðîâåíü, ëèáî àïï
//Бот получил уровень, либо апп
static function _level()
{
global $u;
@@ -999,11 +999,11 @@ class BotLogic
}
//Âñïîìîãàòåëüíûå ôóíêöèè
//Вспомогательные функции
static function e($t)
{
mysql_query('INSERT INTO `chat` (`text`,`city`,`to`,`type`,`new`,`time`) VALUES ("core #' . date('d.m.Y') . ' %' . date('H:i:s') . ' (Êðèòè÷åñêàÿ îøèáêà): <b>' . mysql_real_escape_string($t) . '</b>","capitalcity",
mysql_query('INSERT INTO `chat` (`text`,`city`,`to`,`type`,`new`,`time`) VALUES ("core #' . date('d.m.Y') . ' %' . date('H:i:s') . ' (Критическая ошибка): <b>' . mysql_real_escape_string($t) . '</b>","capitalcity",
"LEL","6","1","-1")');
}
+57 -57
View File
@@ -13,85 +13,85 @@ class BotPriemLogic
$test = self::testpriem(self::$p);
if (isset(self::$p['id']) && $test == 0) {
//Èñïîëüçóåì ïðèåì ïîä íîìåðîì $id
//Используем прием под номером $id
if ($id == 1) {
self::priem1($i);
} //Ïðèêðûòüñÿ 1|2|3|4|5|6|7|8|9|10|11|13|14|45|47|48|49|188|204|211|217|220|223|232|235|240|0|0|0|0|0|0|0|0|0|0|0|0|0|0
} //Прикрыться 1|2|3|4|5|6|7|8|9|10|11|13|14|45|47|48|49|188|204|211|217|220|223|232|235|240|0|0|0|0|0|0|0|0|0|0|0|0|0|0
elseif ($id == 2) {
self::priem2($i);
} //Âëîìèòü
} //Вломить
elseif ($id == 3) {
self::priem3($i);
} //Ñîáðàòü çóáû
} //Собрать зубы
elseif ($id == 4) {
self::priem4($i);
} //Ñèëüíûé óäàð
} //Сильный удар
elseif ($id == 5) {
self::priem5($i);
} //Óòåðåòü ïîò
} //Утереть пот
elseif ($id == 6) {
self::priem6($i);
} //Âîëÿ ê ïîáåäå
} //Воля к победе
elseif ($id == 7) {
self::priem7($i);
} //Àêòèâíàÿ çàùèòà
} //Активная защита
elseif ($id == 8) {
self::priem8($i);
} //Òàíåö âåòðà
} //Танец ветра
elseif ($id == 9) {
self::priem9($i);
} //Äèêàÿ óäà÷à
} //Дикая удача
elseif ($id == 10) {
self::priem10($i);
} //Ïðåäâèäèíèå
} //Предвидиние
elseif ($id == 11) {
self::priem11($i);
} //Óäà÷íûé óäàð
} //Удачный удар
elseif ($id == 13) {
self::priem13($i);
} //Ñòîéêîñòü
} //Стойкость
elseif ($id == 14) {
self::priem14($i);
} //ßðîñòü
} //Ярость
elseif ($id == 45) {
self::priem45($i);
} //Ïîëíàÿ çàùèòà
} //Полная защита
elseif ($id == 47) {
self::priem47($i);
} //Ñëåïàÿ óäà÷à
} //Слепая удача
elseif ($id == 48) {
self::priem48($i);
} //Òàíåö ëåçâèé
} //Танец лезвий
elseif ($id == 49) {
self::priem49($i);
} //Âòîðîå äûõàíèå
} //Второе дыхание
elseif ($id == 188) {
self::priem188($i);
} //Æàæäà êðîâè
} //Жажда крови
elseif ($id == 204) {
self::priem204($i);
} //Îáðå÷åííîñòü
} //Обреченность
elseif ($id == 211) {
self::priem211($i);
} //Àãðåññèâíàÿ çàùèòà
} //Агрессивная защита
elseif ($id == 217) {
self::priem217($i);
} //Ðàçãàäàòü òàêòèêó
} //Разгадать тактику
elseif ($id == 220) {
self::priem220($i);
} //Ñòàâêà íà îïåðåæåíèå
} //Ставка на опережение
elseif ($id == 223) {
self::priem223($i);
} //Ðûâîê
} //Рывок
elseif ($id == 232) {
self::priem232($i);
} //Âûæèòü
} //Выжить
elseif ($id == 235) {
self::priem235($i);
} //Øîêèðóþùèé óäàð
} //Шокирующий удар
elseif ($id == 240) {
self::priem240($i);
} //Õëåáíóòü êðîâè
} //Хлебнуть крови
elseif ($id >= 175 && $id <= 179) {
self::priem175($i);
}
@@ -110,7 +110,7 @@ class BotPriemLogic
BotLogic::inuser_go_btl(BotLogic::$bot, $go_txt);
}
//Ñòàâêà íà îïåðåæåíèå
//Ставка на опережение
private static function priem220($i)
{
if (rand(0, 100) < 30) {
@@ -118,7 +118,7 @@ class BotPriemLogic
}
}
//Ðàçãàäàòü òàêòèêó
//Разгадать тактику
private static function priem217($i)
{
if (rand(0, 100) < 30) {
@@ -126,7 +126,7 @@ class BotPriemLogic
}
}
//Îáðå÷åííîñòü
//Обреченность
private static function priem204($i)
{
if (rand(0, 100) < 30) {
@@ -134,7 +134,7 @@ class BotPriemLogic
}
}
//Âûæèòü
//Выжить
private static function priem232($i)
{
if (self::hp() <= 30 && rand(0, 100) < 50) {
@@ -142,7 +142,7 @@ class BotPriemLogic
}
}
//Æàæäà êðîâè
//Жажда крови
private static function priem188($i)
{
if (rand(0, 100) < 30) {
@@ -150,7 +150,7 @@ class BotPriemLogic
}
}
//Øîê óäàð
//Шок удар
private static function priem235($i)
{
if (rand(0, 100) < 50) {
@@ -158,7 +158,7 @@ class BotPriemLogic
}
}
//Õëåáíóòü êðîâè
//Хлебнуть крови
private static function priem240($i)
{
if (self::hp() <= 70) {
@@ -166,13 +166,13 @@ class BotPriemLogic
}
}
//Ñèëîâîå ïîëå
//Силовое поле
private static function priem175($i)
{
self::usePriem($i);
}
//Ïðèêðûòüñÿ
//Прикрыться
private static function priem1($i)
{
if (rand(0, 100) < 50) {
@@ -180,7 +180,7 @@ class BotPriemLogic
}
}
//Âëîìèòü
//Вломить
private static function priem2($i)
{
if (rand(0, 100) < 50) {
@@ -188,7 +188,7 @@ class BotPriemLogic
}
}
//Ñîáðàòü çóáû
//Собрать зубы
private static function priem3($i)
{
if (self::hp() <= 70 && rand(0, 100) < 50) {
@@ -196,7 +196,7 @@ class BotPriemLogic
}
}
//Âîëÿ ê ïîáåäå
//Воля к победе
private static function priem6($i)
{
if (self::hp() <= 40 && rand(0, 100) < 50) {
@@ -204,7 +204,7 @@ class BotPriemLogic
}
}
//Òàíåö âåòðà
//Танец ветра
private static function priem8($i)
{
if (rand(0, 100) < 30) {
@@ -212,7 +212,7 @@ class BotPriemLogic
}
}
//Òàíåö ëåçâèé
//Танец лезвий
private static function priem48($i)
{
if (rand(0, 100) < 70) {
@@ -220,7 +220,7 @@ class BotPriemLogic
}
}
//Äèêàÿ óäà÷à
//Дикая удача
private static function priem9($i)
{
if (rand(0, 100) < 30) {
@@ -228,7 +228,7 @@ class BotPriemLogic
}
}
//Ñëåïàÿ óäà÷à
//Слепая удача
private static function priem47($i)
{
if (rand(0, 100) < 50) {
@@ -236,7 +236,7 @@ class BotPriemLogic
}
}
//Ïðåäâèäåíüå
//Предвиденье
private static function priem10($i)
{
if (rand(0, 100) < 30) {
@@ -244,7 +244,7 @@ class BotPriemLogic
}
}
//Âòîðîå äûõàíèå
//Второе дыхание
private static function priem49($i)
{
if (rand(0, 100) < 80 && self::hp() <= 60) {
@@ -252,7 +252,7 @@ class BotPriemLogic
}
}
//Ðûâîê
//Рывок
private static function priem223($i)
{
if (self::hp() <= 50 && rand(0, 100) < 50) {
@@ -260,7 +260,7 @@ class BotPriemLogic
}
}
//Óäà÷íûé óäàð
//Удачный удар
private static function priem11($i)
{
if (rand(0, 100) < 30) {
@@ -268,7 +268,7 @@ class BotPriemLogic
}
}
//Ñòîéêîñòü
//Стойкость
private static function priem13($i)
{
if (rand(0, 100) < 50) {
@@ -276,7 +276,7 @@ class BotPriemLogic
}
}
//ßðîñòü
//Ярость
private static function priem14($i)
{
if (rand(0, 100) < 50) {
@@ -284,7 +284,7 @@ class BotPriemLogic
}
}
//Ñèëüíûé óäàð
//Сильный удар
private static function priem4($i)
{
if (rand(0, 100) < 60) {
@@ -292,7 +292,7 @@ class BotPriemLogic
}
}
//Óòåðåòü ïîò
//Утереть пот
private static function priem5($i)
{
if (self::hp() <= 95) {
@@ -301,7 +301,7 @@ class BotPriemLogic
}
//Àãðåññèâíàÿ çàùèòà
//Агрессивная защита
private static function priem211($i)
{
if (rand(0, 100) < 80) {
@@ -310,7 +310,7 @@ class BotPriemLogic
}
//Ïîëíàÿ çàùèòà
//Полная защита
private static function priem45($i)
{
if (rand(0, 100) < 50) {
@@ -319,7 +319,7 @@ class BotPriemLogic
}
//Àêòèâíàÿ çàùèòà
//Активная защита
private static function priem7($i)
{
if (rand(0, 100) < 30) {
@@ -333,7 +333,7 @@ class BotPriemLogic
return round((BotLogic::$st['hpNow'] / BotLogic::$st['hpAll'] * 100), 2);
}
//Òåñò íà âîçìîæíîñòü èñïîëüçîâàíèÿ
//Тест на возможность использования
private static function testpriem($pl)
{
global $u;
@@ -382,14 +382,14 @@ class BotPriemLogic
}
if ($pl['trUser'] == 1) {
//òðåáóåò ÷òîáû ïîëüçîâàòåëü ñ êåì-òî ðàçìåíèâàëñÿ (ïðè îæèäàíèè ïðèåì ãàñíèò)
//требует чтобы пользователь с кем-то разменивался (при ожидании прием гаснит)
$ga = mysql_fetch_array(mysql_query('SELECT `id` FROM `battle_act` WHERE `battle` = "' . BotLogic::$bot['battle'] . '" AND `uid1` = "' . BotLogic::$bot['id'] . '" AND `uid2` = "' . BotLogic::$bot['enemy'] . '" LIMIT 1'));
if (isset($ga['id'])) {
$notr++;
}
}
//Åñëè ïðèåì óæå èñïîëüçîâàëè
//Если прием уже использовали
if (BotLogic::$st['prsu'][$pl['id']] > 0) {
$notr++;
}
File diff suppressed because one or more lines are too long
+575
View File
@@ -0,0 +1,575 @@
<?php
class ComissionShop
{
public function commisionShop($sid, $preview = "full")
{
global $c, $code, $sid;
switch ((int)$_GET['otdel']) {
case 1:
$typeOtdel = 18;
break;
case 2:
$typeOtdel = 19;
break;
case 3:
$typeOtdel = 20;
break;
case 4:
$typeOtdel = 21;
break;
case 5:
$typeOtdel = 22;
break;
case 6:
$typeOtdel = 15;
break;
case 7:
$typeOtdel = 12;
break;
case 8:
$typeOtdel = 4;
break;
case 9:
$typeOtdel = 5;
break;
case 10:
$typeOtdel = 6;
break;
case 11:
$typeOtdel = 1;
break;
case 12:
$typeOtdel = 3;
break;
case 13:
$typeOtdel = 8;
break;
case 14:
$typeOtdel = 14;
break;
case 15:
$typeOtdel = 13;
break;
case 16:
$typeOtdel = 9;
break;
case 17:
$typeOtdel = 10;
break;
case 18:
$typeOtdel = 11;
break;
case 19:
$typeOtdel = 29;
break;
case 20:
$typeOtdel = 30;
break;
case 1050:
$typeOtdel = 1050;
break;
default :
$typeOtdel = 18;
}
if ($typeOtdel != 1050) {
if ($preview == "full") {
$cl = mysql_query(
'SELECT `items_users`.`id`,`items_users`.`item_id`,`items_users`.`1price`,`items_users`.`2price`,`items_users`.`uid`,`items_users`.`use_text`,`items_users`.`data`,`items_users`.`inOdet`,`items_users`.`inShop`,`items_users`.`delete`,`items_users`.`iznosNOW`,`items_users`.`iznosMAX`,`items_users`.`gift`,`items_users`.`gtxt1`,`items_users`.`gtxt2`,`items_users`.`kolvo`,`items_users`.`geniration`,`items_users`.`magic_inc`,`items_users`.`maidin`,`items_users`.`lastUPD`,`items_users`.`timeOver`,`items_users`.`overType`,`items_users`.`secret_id`,`items_users`.`time_create`,`items_users`.`inGroup`,`items_users`.`dn_delete`,`items_users`.`inTransfer`,`items_users`.`post_delivery`,`items_users`.`lbtl_`,`items_users`.`bexp`,`items_users`.`so`,`items_users`.`blvl`,`items_main`.`id`,`items_main`.`name`,`items_main`.`img`,`items_main`.`type`,`items_main`.`inslot`,`items_main`.`2h`,`items_main`.`2too`,`items_main`.`iznosMAXi`,`items_main`.`inRazdel`,`items_main`.`price1`,`items_main`.`price2`,`items_main`.`magic_chance`,`items_main`.`info`,`items_main`.`massa`,`items_main`.`level`,`items_main`.`magic_inci`,`items_main`.`overTypei`,`items_main`.`group`,`items_main`.`group_max`,`items_main`.`geni`,`items_main`.`ts`,`items_main`.`srok`,`items_main`.`class`,`items_main`.`class_point`,`items_main`.`anti_class`,`items_main`.`anti_class_point`,`items_main`.`max_text`,`items_main`.`useInBattle`,`items_main`.`lbtl`,`items_main`.`lvl_itm`,`items_main`.`lvl_exp`,`items_main`.`lvl_aexp`, count(`items_users`.`id`) as inGroupCount
FROM `items_users` LEFT JOIN `items_main` ON (`items_main`.`id` = `items_users`.`item_id`)
WHERE (( `items_users`.time_create + `items_main`.srok) > unix_timestamp() OR `items_main`.srok = "0") AND `items_users`.`delete`="0" AND `items_users`.`inOdet`="0" AND `items_users`.`inShop`="30" and `items_main`.`type` = "' . mysql_real_escape_string(
$typeOtdel
) . '" and `items_users`.`item_id` = "' . (int)$_GET['itemid'] . '" GROUP BY `items_users`.`inGroup`, `items_users`.`uid`,`items_users`.`1price` HAVING `items_users`.inGroup > 0
UNION ALL SELECT `items_users`.`id`,`items_users`.`item_id`,`items_users`.`1price`,`items_users`.`2price`,`items_users`.`uid`,`items_users`.`use_text`,`items_users`.`data`,`items_users`.`inOdet`,`items_users`.`inShop`,`items_users`.`delete`,`items_users`.`iznosNOW`,`items_users`.`iznosMAX`,`items_users`.`gift`,`items_users`.`gtxt1`,`items_users`.`gtxt2`,`items_users`.`kolvo`,`items_users`.`geniration`,`items_users`.`magic_inc`,`items_users`.`maidin`,`items_users`.`lastUPD`,`items_users`.`timeOver`,`items_users`.`overType`,`items_users`.`secret_id`,`items_users`.`time_create`,`items_users`.`inGroup`,`items_users`.`dn_delete`,`items_users`.`inTransfer`,`items_users`.`post_delivery`,`items_users`.`lbtl_`,`items_users`.`bexp`,`items_users`.`so`,`items_users`.`blvl`,`items_main`.`id`,`items_main`.`name`,`items_main`.`img`,`items_main`.`type`,`items_main`.`inslot`,`items_main`.`2h`,`items_main`.`2too`,`items_main`.`iznosMAXi`,`items_main`.`inRazdel`,`items_main`.`price1`,`items_main`.`price2`,`items_main`.`magic_chance`,`items_main`.`info`,`items_main`.`massa`,`items_main`.`level`,`items_main`.`magic_inci`,`items_main`.`overTypei`,`items_main`.`group`,`items_main`.`group_max`,`items_main`.`geni`,`items_main`.`ts`,`items_main`.`srok`,`items_main`.`class`,`items_main`.`class_point`,`items_main`.`anti_class`,`items_main`.`anti_class_point`,`items_main`.`max_text`,`items_main`.`useInBattle`,`items_main`.`lbtl`,`items_main`.`lvl_itm`,`items_main`.`lvl_exp`,`items_main`.`lvl_aexp`, count(`items_users`.`id`) as inGroupCount
FROM `items_users` LEFT JOIN `items_main` ON (`items_main`.`id` = `items_users`.`item_id`)
WHERE (( `items_users`.time_create + `items_main`.srok) > unix_timestamp() OR `items_main`.srok = "0") AND `items_users`.`delete`="0" AND `items_users`.`inOdet`="0" AND `items_users`.`inShop`="30" and `items_main`.`type` = "' . mysql_real_escape_string(
$typeOtdel
) . '" and `items_users`.`item_id` = "' . (int)$_GET['itemid'] . '" GROUP BY `items_users`.`uid`, `items_users`.`1price` HAVING `items_users`.inGroup = 0
ORDER BY `1price`ASC , inGroupCount DESC'
);
} else {
$cl = mysql_query(
'SELECT `items_users`.`id`,`items_users`.`item_id`,`items_users`.`1price`,`items_users`.`2price`,`items_users`.`uid`,`items_users`.`use_text`,`items_users`.`data`,`items_users`.`inOdet`,`items_users`.`inShop`,`items_users`.`delete`,`items_users`.`iznosNOW`,`items_users`.`iznosMAX`,`items_users`.`gift`,`items_users`.`gtxt1`,`items_users`.`gtxt2`,`items_users`.`kolvo`,`items_users`.`geniration`,`items_users`.`magic_inc`,`items_users`.`maidin`,`items_users`.`lastUPD`,`items_users`.`timeOver`,`items_users`.`overType`,`items_users`.`secret_id`,`items_users`.`time_create`,`items_users`.`inGroup`,`items_users`.`dn_delete`,`items_users`.`inTransfer`,`items_users`.`post_delivery`,`items_users`.`lbtl_`,`items_users`.`bexp`,`items_users`.`so`,`items_users`.`blvl`,`items_main`.`id`,`items_main`.`name`,`items_main`.`img`,`items_main`.`type`,`items_main`.`inslot`,`items_main`.`2h`,`items_main`.`2too`,`items_main`.`iznosMAXi`,`items_main`.`inRazdel`,`items_main`.`price1`,`items_main`.`price2`,`items_main`.`magic_chance`,`items_main`.`info`,`items_main`.`massa`,`items_main`.`level`,`items_main`.`magic_inci`,`items_main`.`overTypei`,`items_main`.`group`,`items_main`.`group_max`,`items_main`.`geni`,`items_main`.`ts`,`items_main`.`srok`,`items_main`.`class`,`items_main`.`class_point`,`items_main`.`anti_class`,`items_main`.`anti_class_point`,`items_main`.`max_text`,`items_main`.`useInBattle`,`items_main`.`lbtl`,`items_main`.`lvl_itm`,`items_main`.`lvl_exp`,`items_main`.`lvl_aexp` FROM `items_users` LEFT JOIN `items_main` ON (`items_main`.`id` = `items_users`.`item_id`) WHERE (( `items_users`.time_create + `items_main`.srok) > unix_timestamp() OR `items_main`.srok = "0") AND `items_users`.`delete`="0" AND `items_users`.`inOdet`="0" AND `items_users`.`inShop`="30" and `items_main`.`type` = "' . mysql_real_escape_string(
$typeOtdel
) . '" GROUP BY `items_users`.`item_id` ORDER BY `items_main`.`id` DESC'
);
}
} else {
if ($preview == "full") {
$cl = mysql_query(
'SELECT
`items_users`.`id` as id, `items_users`.`id` AS `idu`,`items_users`.`item_id` as item_id,`items_users`.`1price`,`items_users`.`2price`,`items_users`.`uid`,`items_users`.`use_text`,
`items_users`.`data`,`items_users`.`inOdet`,`items_users`.`inShop`,`items_users`.`delete`,`items_users`.`iznosNOW`,`items_users`.`iznosMAX`,
`items_users`.`gift`,`items_users`.`gtxt1`,`items_users`.`gtxt2`,`items_users`.`kolvo`,`items_users`.`geniration`,`items_users`.`magic_inc`,`items_users`.`maidin`,
`items_users`.`lastUPD`,`items_users`.`timeOver`,`items_users`.`overType`,`items_users`.`secret_id`,`items_users`.`time_create`,`items_users`.`inGroup`,`items_users`.`dn_delete`,
`items_users`.`inTransfer`,`items_users`.`post_delivery`,`items_users`.`lbtl_`,`items_users`.`bexp`,`items_users`.`so`,`items_users`.`blvl`,`items_main`.`id` as item_id,`items_main`.`name`,
`items_main`.`img`,`items_main`.`type`,`items_main`.`inslot`,`items_main`.`2h`,`items_main`.`2too`,`items_main`.`iznosMAXi`,`items_main`.`inRazdel`,`items_main`.`price1`,
`items_main`.`price2`,`items_main`.`magic_chance`,`items_main`.`info`,`items_main`.`massa`,`items_main`.`level`,`items_main`.`magic_inci`,`items_main`.`overTypei`,
`items_main`.`group`,`items_main`.`group_max`,`items_main`.`geni`,`items_main`.`ts`,`items_main`.`srok`,`items_main`.`class`,`items_main`.`class_point`,`items_main`.`anti_class`,
`items_main`.`anti_class_point`,`items_main`.`max_text`,`items_main`.`useInBattle`,`items_main`.`lbtl`,`items_main`.`lvl_itm`,`items_main`.`lvl_exp`,
`items_main`.`lvl_aexp` , count(`items_users`.`id`) as inGroupCount
FROM `items_users` LEFT JOIN `items_main` ON (`items_main`.`id` = `items_users`.`item_id`)
WHERE (( `items_users`.time_create + `items_main`.srok) > unix_timestamp() OR `items_main`.srok = "0") AND `items_users`.`delete`="0" AND `items_users`.`item_id` = "' . (int)$_GET['itemid'] . '"
AND `items_users`.`inOdet`="0" AND `items_users`.`inShop`="30" and `items_main`.`type` != "18" AND `items_main`.`type` != "19" AND `items_main`.`type` != "20" AND `items_main`.`type` != "21" AND `items_main`.`type` != "22" AND `items_main`.`type` != "15" AND `items_main`.`type` != "12" AND `items_main`.`type` != "4" AND `items_main`.`type` != "5" AND `items_main`.`type` != "6" AND `items_main`.`type` != "1" AND `items_main`.`type` != "3" AND `items_main`.`type` != "8" AND `items_main`.`type` != "14" AND `items_main`.`type` != "13" AND `items_main`.`type` != "9" AND `items_main`.`type` != "10" AND `items_main`.`type` != "11" AND `items_main`.`type` != "29" AND `items_main`.`type` != "30"
GROUP BY `items_users`.`inGroup`, `items_users`.`uid`,`items_users`.`1price` HAVING `items_users`.inGroup > 0
UNION ALL
SELECT `items_users`.`id` as id, `items_users`.`id` AS `idu`,`items_users`.`item_id` as item_id,`items_users`.`1price`,`items_users`.`2price`,`items_users`.`uid`,`items_users`.`use_text`,
`items_users`.`data`,`items_users`.`inOdet`,`items_users`.`inShop`,`items_users`.`delete`,`items_users`.`iznosNOW`,`items_users`.`iznosMAX`,
`items_users`.`gift`,`items_users`.`gtxt1`,`items_users`.`gtxt2`,`items_users`.`kolvo`,`items_users`.`geniration`,`items_users`.`magic_inc`,`items_users`.`maidin`,
`items_users`.`lastUPD`,`items_users`.`timeOver`,`items_users`.`overType`,`items_users`.`secret_id`,`items_users`.`time_create`,`items_users`.`inGroup`,`items_users`.`dn_delete`,
`items_users`.`inTransfer`,`items_users`.`post_delivery`,`items_users`.`lbtl_`,`items_users`.`bexp`,`items_users`.`so`,`items_users`.`blvl`,`items_main`.`id` as item_id,`items_main`.`name`,
`items_main`.`img`,`items_main`.`type`,`items_main`.`inslot`,`items_main`.`2h`,`items_main`.`2too`,`items_main`.`iznosMAXi`,`items_main`.`inRazdel`,`items_main`.`price1`,
`items_main`.`price2`,`items_main`.`magic_chance`,`items_main`.`info`,`items_main`.`massa`,`items_main`.`level`,`items_main`.`magic_inci`,`items_main`.`overTypei`,
`items_main`.`group`,`items_main`.`group_max`,`items_main`.`geni`,`items_main`.`ts`,`items_main`.`srok`,`items_main`.`class`,`items_main`.`class_point`,`items_main`.`anti_class`,
`items_main`.`anti_class_point`,`items_main`.`max_text`,`items_main`.`useInBattle`,`items_main`.`lbtl`,`items_main`.`lvl_itm`,`items_main`.`lvl_exp`,
`items_main`.`lvl_aexp`, count(`items_users`.`id`) as inGroupCount
FROM `items_users` LEFT JOIN `items_main` ON (`items_main`.`id` = `items_users`.`item_id`)
WHERE (( `items_users`.time_create + `items_main`.srok) > unix_timestamp() OR `items_main`.srok = "0") AND `items_users`.`delete`="0" AND `items_users`.`item_id` = "' . (int)$_GET['itemid'] . '"
AND `items_users`.`inOdet`="0" AND `items_users`.`inShop`="30" and `items_main`.`type` != "18" AND `items_main`.`type` != "19" AND `items_main`.`type` != "20" AND `items_main`.`type` != "21" AND `items_main`.`type` != "22" AND `items_main`.`type` != "15" AND `items_main`.`type` != "12" AND `items_main`.`type` != "4" AND `items_main`.`type` != "5" AND `items_main`.`type` != "6" AND `items_main`.`type` != "1" AND `items_main`.`type` != "3" AND `items_main`.`type` != "8" AND `items_main`.`type` != "14" AND `items_main`.`type` != "13" AND `items_main`.`type` != "9" AND `items_main`.`type` != "10" AND `items_main`.`type` != "11" AND `items_main`.`type` != "29" AND `items_main`.`type` != "30"
GROUP BY `items_users`.`uid`,`items_users`.`1price` HAVING `items_users`.inGroup = 0
ORDER BY `1price`ASC , inGroupCount DESC'
);
} else {
$cl = mysql_query(
'SELECT `items_users`.`id`, `items_users`.`id` AS `idu`,`items_users`.`item_id`,`items_users`.`1price`,`items_users`.`2price`,`items_users`.`uid`,`items_users`.`use_text`,`items_users`.`data`,`items_users`.`inOdet`,`items_users`.`inShop`,`items_users`.`delete`,`items_users`.`iznosNOW`,`items_users`.`iznosMAX`,`items_users`.`gift`,`items_users`.`gtxt1`,`items_users`.`gtxt2`,`items_users`.`kolvo`,`items_users`.`geniration`,`items_users`.`magic_inc`,`items_users`.`maidin`,`items_users`.`lastUPD`,`items_users`.`timeOver`,`items_users`.`overType`,`items_users`.`secret_id`,`items_users`.`time_create`,`items_users`.`inGroup`,`items_users`.`dn_delete`,`items_users`.`inTransfer`,`items_users`.`post_delivery`,`items_users`.`lbtl_`,`items_users`.`bexp`,`items_users`.`so`,`items_users`.`blvl`,`items_main`.`id`,`items_main`.`name`,`items_main`.`img`,`items_main`.`type`,`items_main`.`inslot`,`items_main`.`2h`,`items_main`.`2too`,`items_main`.`iznosMAXi`,`items_main`.`inRazdel`,`items_main`.`price1`,`items_main`.`price2`,`items_main`.`magic_chance`,`items_main`.`info`,`items_main`.`massa`,`items_main`.`level`,`items_main`.`magic_inci`,`items_main`.`overTypei`,`items_main`.`group`,`items_main`.`group_max`,`items_main`.`geni`,`items_main`.`ts`,`items_main`.`srok`,`items_main`.`class`,`items_main`.`class_point`,`items_main`.`anti_class`,`items_main`.`anti_class_point`,`items_main`.`max_text`,`items_main`.`useInBattle`,`items_main`.`lbtl`,`items_main`.`lvl_itm`,`items_main`.`lvl_exp`,`items_main`.`lvl_aexp` FROM `items_users` LEFT JOIN `items_main` ON (`items_main`.`id` = `items_users`.`item_id`) WHERE (( `items_users`.time_create + `items_main`.srok) > unix_timestamp() OR `items_main`.srok = "0") AND `items_users`.`delete`="0" AND `items_users`.`inOdet`="0" AND `items_users`.`inShop`="30" and `items_main`.`type` != "18" AND `items_main`.`type` != "19" AND `items_main`.`type` != "20" AND `items_main`.`type` != "21" AND `items_main`.`type` != "22" AND `items_main`.`type` != "15" AND `items_main`.`type` != "12" AND `items_main`.`type` != "4" AND `items_main`.`type` != "5" AND `items_main`.`type` != "6" AND `items_main`.`type` != "1" AND `items_main`.`type` != "3" AND `items_main`.`type` != "8" AND `items_main`.`type` != "14" AND `items_main`.`type` != "13" AND `items_main`.`type` != "9" AND `items_main`.`type` != "10" AND `items_main`.`type` != "11" AND `items_main`.`type` != "29" AND `items_main`.`type` != "30" GROUP BY `items_users`.`item_id` ORDER BY `items_main`.`id` DESC'
);
}
}
$cr = 'c8c8c8';
$i = 0;
$steckCikl = 1;
while ($pl = mysql_fetch_array($cl)) {
// количетсво одинаковых предметов в комке
if ($preview == "preview") {
$steck = ['--', '--', '--', '--'];
}
if ($cr == 'd4d4d4') {
$cr = 'c8c8c8';
} else {
$cr = 'd4d4d4';
}
if ($preview == "preview" && ($steck[0] > 1 && $steck[0] > $steckCikl)) {
++$steckCikl;
} else {
$steckCikl = 1;
$d = mysql_fetch_array(
mysql_query(
'SELECT `id`,`items_id`,`data` FROM `items_main_data` WHERE `items_id` = "' . $pl['item_id'] . '" LIMIT 1'
)
);
if ($steck[0] > 1 && $preview == "preview") {
$po = $this->lookStats($d['data']);
} else {
$po = $this->lookStats($pl['data']);
}
if (($pl['type'] >= 18 && $pl['type'] <= 24) || $pl['type'] == 26 || $pl['type'] == 27) {
//Зоны блока +
if ($pl['inOdet'] != 14) {
$po['zonb']++;
}
}
$is2 = '';
$is1 = '<img src="https://img.new-combats.com/i/items/' . $pl['img'] . '"><br>';
if ($preview == "full") {
$is1 .= '<a href="?otdel=' . ((int)$_GET['otdel']) . '&toRent=3&itemid=' . (int)$_GET['itemid'] . '&buy=' . $pl[0] . '&sd4=' . $this->info['nextAct'] . '&rnd=' . $code . ' " >купить</a> ';
} elseif ($preview == "preview") {
$is1 .= '<a href="?otdel=' . ((int)$_GET['otdel']) . '&toRent=3&itemid=' . $pl['item_id'] . ' " >Просмотреть</a> ';
}
//название
$col = $this->itemsX($pl[0]);
if ($col > 1 && $pl['inGroup'] != 0 && $pl['inGroupCount'] > 1) {
$pl['kolvo'] = $col;
$pl['name'] .= ' (x' . $col . ')';
}
$is2 .= '<a href="https://new-combats.com/item/' . $pl['item_id'] . '" target="_blank">' . $pl['name'] . '</a> &nbsp; &nbsp;';
if ($pl['massa'] > 0 && $preview == "full") {
$is2 .= '(Масса: ' . round($pl['massa'], 2) . ')';
if ($pl['gift'] != '') {
$ttl = '';
if ($pl['gift'] == 1) {
$ttl = 'Вы не можете передать этот предмет кому-либо';
} else {
$ttl = 'Этот предмет подарил ' . $pl['gift'] . '. Вы не сможете передать этот предмет кому-либо еще';
}
$is2 .= ' <img title="' . $ttl . '" src="https://img.new-combats.com/i/podarok.gif">';
}
if (isset($po['art'])) {
$is2 .= ' <img title="Артефакт" src="https://img.new-combats.com/i/artefact.gif">';
}
if (isset($po['sudba'])) {
if ($po['sudba'] == '0') {
$is2 .= ' <img title="Этот предмет будет связан общей судьбой с первым, кто наденет его. Никто другой не сможет его использовать." src="https://img.new-combats.com/i/destiny0.gif">';
} elseif ($po['sudba'] == '1') {
$is2 .= ' <img title="Этот предмет будет связан общей судьбой с первым, кто возьмет предмет. Никто другой не сможет его использовать." src="https://img.new-combats.com/i/destiny0.gif">';
} else {
$is2 .= ' <img title="Этот предмет связан общей судьбой с ' . $po['sudba'] . '. Никто другой не сможет его использовать." src="https://img.new-combats.com/i/desteny.gif">';
}
}
}
//цена
$is2 .= '<br><strong>Цена: ';
if ($steck[0] > 1 && $preview == "preview") {
$is2 .= $steck[3] . '-' . $steck[4] . ' кр.</strong> ';
} else {
$is2 .= $pl['1price'] . ' кр.</strong> ';
}
if ($pl['pricerep'] > 0) {
$is2 .= ' <small><strong>(' . round($pl['pricerep'], 2) . ' Воинственности)</strong></small>';
}
//долговечность
if ($pl['iznosMAX'] > 0) {
$izcol = '';
if (floor($pl['iznosNOW']) >= (floor($pl['iznosMAX']) - ceil($pl['iznosMAX']) / 100 * 20)) {
$izcol = 'brown';
}
}
if ($preview == "preview") {
$is2 .= '<br>Долговечность: <font color="' . $izcol . '">' . floor($steck[1]) . '/' . ceil(
$steck[2]
) . '</font>';
} else {
if ($pl['iznosMAXi'] == 999999999) {
$is2 .= '<br>Долговечность: <font color="brown">неразрушимо</font>';
} else {
$is2 .= '<br>Долговечность: <font color="' . $izcol . '">' . floor(
$pl['iznosNOW']
) . '/' . ceil($pl['iznosMAX']) . '</font>';
}
}
//Срок годности предмета
if ($po['srok'] > 0) {
$pl['srok'] = $po['srok'];
}
if ($pl['srok'] > 0 and $preview != "preview") {
if ($pl['time_create'] + $pl['srok'] < time()) {
$is2 .= '<br>Срок годности: ' . $this->timeOut($pl['srok']) . ' (испорчен)';
} else {
$is2 .= '<br>Срок годности: ' . $this->timeOut($pl['srok']) . ' (до ' . date(
'd.m.Y H:i', $pl['time_create'] + $pl['srok']
) . ')';
}
} elseif ($pl['srok'] > 0) {
$is2 .= '<br>Срок годности: ' . $this->timeOut($pl['srok']);
}
if ($pl['magic_chance'] > 0) {
$is2 .= '<br>Вероятность срабатывания: ' . min([$pl['magic_chance'], 100]) . '%';
}
//Продолжительность действия магии:
if ((int)$pl['magic_inci'] > 0) {
$efi = mysql_fetch_array(
mysql_query(
'SELECT `id2`,`mname`,`type1`,`img`,`mdata`,`actionTime`,`type2`,`type3`,`onlyOne`,`oneType`,`noAce`,`see`,`info`,`overch`,`bp`,`noch` FROM `eff_main` WHERE `id2` = "' . ((int)$pl['magic_inci']) . '" LIMIT 1'
)
);
if (isset($efi['id2']) && $efi['actionTime'] > 0) {
$is2 .= '<br>Продолжительность действия: ' . $this->timeOut($efi['actionTime']);
}
}
if ($preview == "full" || $preview == "preview") {
//<strong>Требуется минимальное:</strong>
$tr = '';
$t = $this->items['tr'];
$x = 0;
while ($x < count($t)) {
$n = $t[$x];
if (isset($po['tr_' . $n]) && $po['tr_' . $n] != 0) {
if ($po['tr_' . $n] > $this->stats[$n]) {
if ($n == 'rep') {
$temp = explode('::', $po['tr_' . $n]);
if ($this->rep['rep' . $temp[1]] < $temp[0]) {
$tr .= '<font color="red">';
$notr++;
}
unset($temp);
} elseif ($n != 'align' || floor($this->info['align']) != $po['tr_' . $n]) {
$tr .= '<font color="red">';
$notr++;
}
}
$tr .= '<br>• ';
if ($n == 'rep') {
$temp = explode('::', $po['tr_' . $n]);
$tr .= $this->is[$n] . ' ' . ucfirst(
str_replace('city', ' city', $temp[1])
) . ': ' . $temp[0];
unset($temp);
} elseif ($n != 'align') {
if ($n == 'sex') {
if ($po['tr_' . $n] == 1) {
$tr .= $this->is[$n] . ': Женский';
} else {
$tr .= $this->is[$n] . ': Мужской';
}
} else {
$tr .= $this->is[$n] . ': ' . $po['tr_' . $n];
}
} else {
$tr .= $this->is[$n] . ': ' . $this->align_nm[$po['tr_' . $n]];
}
if ($po['tr_' . $n] > $this->stats[$n]) {
if ($n != 'align' || floor($this->info['align']) != $po['tr_' . $n]) {
$tr .= '</font>';
}
}
}
$x++;
}
if ($tr != '') {
$is2 .= '<br><strong>Требуется минимальное:</strong>' . $tr;
}
//<strong>Действует на:</strong>
$tr = '';
$t = $this->items['add'];
$x = 0;
while ($x < count($t)) {
$n = $t[$x];
if (isset($po['add_' . $n], $this->is[$n])) {
$z = '+';
if ($po['add_' . $n] < 0) {
$z = '';
}
$tr .= '<br>• ' . $this->is[$n] . ': ' . $z . '' . $po['add_' . $n];
}
$x++;
}
//действует на (броня)
$i = 1;
$bn = [1 => 'головы', 2 => 'корпуса', 3 => 'пояса', 4 => 'ног'];
while ($i <= 4) {
if (isset($po['add_mab' . $i])) {
if ($po['add_mab' . $i] == $po['add_mib' . $i] && $pl['geniration'] == 1) {
$z = '+';
if ($po['add_mab' . $i] < 0) {
$z = '';
}
$tr .= '<br>• Броня ' . $bn[$i] . ': ' . $z . '' . $po['add_mab' . $i];
} else {
$tr .= '<br>• Броня ' . $bn[$i] . ': ' . $po['add_mib' . $i] . '-' . $po['add_mab' . $i] . ' (' . $this->bronFx(
[$po['add_mib' . $i], $po['add_mab' . $i]]
) . ')';
}
}
$i++;
}
if ($tr != '') {
$is2 .= '<br><strong>Действует на:</strong>' . $tr;
}
//<strong>Свойства предмета:</strong>
$tr = '';
$t = $this->items['sv'];
if (isset($po['sv_yron_min'], $po['sv_yron_max'])) {
$tr .= '<br>• Урон: ' . $po['sv_yron_min'] . ' - ' . $po['sv_yron_max'];
}
$x = 0;
while ($x < count($t)) {
$n = $t[$x];
if (isset($po['sv_' . $n])) {
$z = '+';
if ($po['sv_' . $n] < 0) {
$z = '';
}
$tr .= '<br>• ' . $this->is[$n] . ': ' . $z . '' . $po['sv_' . $n];
}
$x++;
}
if ($pl['2too'] == 1) {
$tr .= '<br>• Второе оружие';
}
if ($pl['2h'] == 1) {
$tr .= '<br>• Двуручное оружие';
}
if (isset($po['zonb'])) {
$tr .= '<br>• Зоны блокирования: ';
if ($po['zonb'] > 0) {
$x = 1;
while ($x <= $po['zonb']) {
$tr .= '+';
$x++;
}
} else {
$tr .= '—';
}
}
if ($tr != '') {
$is2 .= '<br><strong>Свойства предмета:</strong>' . $tr;
}
$tr = '';
if (isset($po['imposed']) && $po['imposed'] > 0) {
if ($po['imposed_lvl'] == 0) {
$rnc = 'maroon';
} elseif ($po['imposed_lvl'] == 1) {
$rnc = '#624542';
} elseif ($po['imposed_lvl'] == 2) {
$rnc = '#77090b';
} elseif ($po['imposed_lvl'] == 3) {
$rnc = '#d99800';
} else {
$rnc = '#282828';
}
$po['imposed_name'] = str_replace('Чары ', '', $po['imposed_name']);
$tr .= '<br>&bull; <font color=' . $rnc . '>Наложены заклятия:</font> ' . $po['imposed_name'] . ' ';
unset($rnc);
}
if ($tr != '') {
$is2 .= '<br><strong>Улучшения предмета:</strong>';
$is2 .= $tr;
}
if ($notr == 0) {
$d[0] = 1;
if ($pl['magic_inc'] != '') {
$d[2] = 1;
}
}
if (isset($po['free_stats']) && $po['free_stats'] > 0) {
$is2 .= '<br><strong>Распределение статов:</strong>';
$is2 .= '&bull; Возможных распределений: ' . $po['free_stats'] . '';
}
if (floor($pl['iznosNOW']) >= ceil($pl['iznosMAX'])) {
$d[0] = 0;
$d[2] = 0;
}
if (isset($po['complect']) || isset($po['complect2'])) {
$is2 .= '<br><i>Дополнительная информация:</i>';
}
if (isset($po['complect'])) {
//не отображается
$com1 = ['name' => 'Неизвестный Комплект', 'x' => 0, 'text' => ''];
$spc = mysql_query(
'SELECT `id`,`com`,`name`,`x`,`data` FROM `complects` WHERE `com` = "' . $po['complect'] . '" ORDER BY `x` ASC LIMIT 20'
);
while ($plc = mysql_fetch_array($spc)) {
$com1['name'] = $plc['name'];
$com1['text'] .= '&nbsp; &nbsp; &bull; <font color="green">' . $plc['x'] . '</font>: ';
//действие комплекта
$i1c = 0;
$i2c = 0;
$i1e = $this->lookStats($plc['data']);
while ($i1c < count($this->items['add'])) {
if (isset($i1e[$this->items['add'][$i1c]])) {
$i3c = $i1e[$this->items['add'][$i1c]];
if ($i3c > 0) {
$i3c = '+' . $i3c;
}
if ($i2c > 0) {
$com1['text'] .= '&nbsp; &nbsp; ' . $this->is[$this->items['add'][$i1c]] . ': ' . $i3c;
} else {
$com1['text'] .= $this->is[$this->items['add'][$i1c]] . ': ' . $i3c;
}
$com1['text'] .= '<br>';
$i2c++;
}
$i1c++;
}
unset($i1c, $i2c, $i3c);
$com1['x']++;
}
$is2 .= '<br>&bull; Часть комплекта: <strong>' . $com1['name'] . '</strong><br><small>';
$is2 .= $com1['text'];
$is2 .= '</small>';
}
if (isset($po['complect2'])) {
//не отображается
$com1 = ['name' => 'Неизвестный Комплект', 'x' => 0, 'text' => ''];
$spc = mysql_query(
'SELECT `id`,`com`,`name`,`x`,`data` FROM `complects` WHERE `com` = "' . $po['complect2'] . '" ORDER BY `x` ASC LIMIT 20'
);
while ($plc = mysql_fetch_array($spc)) {
$com1['name'] = $plc['name'];
$com1['text'] .= '&nbsp; &nbsp; &bull; <font color="green">' . $plc['x'] . '</font>: ';
//действие комплекта
$i1c = 0;
$i2c = 0;
$i1e = $this->lookStats($plc['data']);
while ($i1c < count($this->items['add'])) {
if (isset($i1e[$this->items['add'][$i1c]])) {
$i3c = $i1e[$this->items['add'][$i1c]];
if ($i3c > 0) {
$i3c = '+' . $i3c;
}
if ($i2c > 0) {
$com1['text'] .= '&nbsp; &nbsp; ' . $this->is[$this->items['add'][$i1c]] . ': ' . $i3c;
} else {
$com1['text'] .= $this->is[$this->items['add'][$i1c]] . ': ' . $i3c;
}
$com1['text'] .= '<br>';
$i2c++;
}
$i1c++;
}
unset($i1c, $i2c, $i3c);
$com1['x']++;
}
$is2 .= '<br>&bull; Часть комплекта (подгонка): <strong>' . $com1['name'] . '</strong><br><small>';
$is2 .= $com1['text'];
$is2 .= '</small>';
}
$is2 .= '<small style="">';
if (isset($po['gravi'])) {
$is2 .= '<br>На поверхности выгравирована надпись: <strong>' . $po['gravi'] . '</strong>';
}
if ($pl['info'] != '') {
$is2 .= '<div><strong>Рекомендации:</strong></div><div>' . $pl['info'] . '</div>';
}
if ($po['info'] != '') {
$is2 .= '<div>' . $po['info'] . '</div>';
}
if ($pl['max_text'] - $pl['use_text'] > 0) {
$is2 .= '<div>Количество символов: ' . ($pl['max_text'] - $pl['use_text']) . '</div>';
}
if (isset($po['noremont'])) {
$is2 .= '<div style="color:brown;">Предмет не подлежит ремонту</div>';
}
if (isset($po['nosale'])) {
$is2 .= '<div style="color:brown;">Предмет нельзя продать</div>';
}
if (isset($po['nomodif'])) {
$is2 .= '<div style="color:brown;">Предмет нельзя улучшать</div>';
}
if (isset($po['nodelete'])) {
$is2 .= '<div style="color:brown;">Предмет нельзя выбросить</div>';
}
if (isset($po['frompisher']) && $po['frompisher'] > 0) {
$is2 .= '<div style="color:brown;">Предмет из подземелья</div>';
}
if (isset($po['sleep_moroz']) && $po['sleep_moroz'] > 0) {
$is2 .= '<div style="color:brown;">Предмет не портится во время сна</div>';
}
if (isset($po['fromlaba']) && $po['fromlaba'] > 0) {
$is2 .= '<div style="color:brown;">Предмет из лабиринта</div>';
}
if (isset($po['vip_sale']) && $po['vip_sale'] > 0) {
$is2 .= '<div style="color:brown;">Предмет куплен за 10% от стоимости</div>';
}
if ($pl['dn_delete'] > 0) {
$is2 .= '<div style="color:brown;">Предмет будет удален при выходе из подземелья</div>';
}
if ($this->pokol > $pl['geni']) {
$is2 .= '<div style="color:brown">Предмет устарел</div>';
}
if (isset($po['zazuby']) && $po['zazuby'] > 0) {
$is2 .= '<div style="color:brown;">Предмет куплен за зубы</div>';
}
$is2 .= '</small>';
}
if ($preview == "preview") {
$kolvoprint = "<small style=\"float:right; color:grey;\" align=\"right\">Количество: <strong>$steck[0]</strong> шт.</small>";
}
echo '<tr style="background-color:#' . $cr . ';"><td width="100" style="padding:7px;" valign="middle" align="center">' . $is1 . '</td><td style="padding:7px;" valign="top">' . $kolvoprint . $is2 . '</td></tr>';
$i++;
}
}
if ($i == 0) {
echo '<tr style="background-color:#' . $cr . ';"><td style="padding:7px;" align="center" valign="top">Прилавок магазина пуст</td></tr>';
}
}
}
+42 -44
View File
@@ -8,10 +8,8 @@ class Config
private function __construct()
{
error_reporting(E_ALL ^ E_NOTICE);
setlocale(LC_CTYPE, "ru_RU.CP1251");
ini_set('display_errors', 'Off');
ini_set('default_charset', 'windows-1251');
ini_set('date.timezone', 'Europe/Moscow');
header('Cache-Control: no-cache, no-store, must-revalidate');
@@ -22,16 +20,16 @@ class Config
public static function get(?string $key = null)
{
$c['ver'] = '1.8.3.7';
/* Конфигурации игры */
$c['name'] = 'Бойцовский Клуб';
$c['title'] = 'Новый «' . $c['name'] . '» - Бесплатная,браузерная онлайн игра'; //Название игры
$c['title2'] = ' - Бесплатная, онлайн игра посвященная сражениям и магии!';
/* Конфигурации игры */
$c['name'] = 'Бойцовский Клуб';
$c['title'] = 'Новый «' . $c['name'] . '» - Бесплатная,браузерная онлайн игра'; //Название игры
$c['title2'] = ' - Бесплатная, онлайн игра посвященная сражениям и магии!';
$c['title3'] = $c['name'];
$c['keys'] = $c['name'] . ', combats.com, ' . $c['name'] . ' игра, ' . $c['name'] . ' играть, игра ' . $c['name'] . ', старый ' . $c['name'] . ', ' . $c['name'] . ' онлайн игра, ' . $c['name'] . ' браузерная игра, играть в ' . $c['name'] . ', игра бк, бк игра, старый бк, играть в бк, бк онлайн игра, новый бк, Легендарный ' . $c['name'] . ', легендарный бк, combats, комбатс, combats ru, combats com, OldBK, oldbk ru, oldbk com, олдбк, old bk, олд бк, mycombats, rebk, recombats, oldcombats, obk2'; //Ключевые слова META
$c['desc'] = '«' . $c['name'] . '» – это бесплатная увлекательная браузерная онлайн игра 2004-2009г, в которой сконцентрировано все самое лучшее от современных онлайн игр. В этой браузерной игре заложены самые интересные традиции всем известной онлайн игры под названием «' . $c['name'] . ' 2004-2009», которая, кстати, стала первооткрывателем всех браузерных игр.'; //Описание META
$c['footer'] = $c['name'] . ' © 2013-' . date('Y');
$c['keys'] = $c['name'] . ', combats.com, ' . $c['name'] . ' игра, ' . $c['name'] . ' играть, игра ' . $c['name'] . ', старый ' . $c['name'] . ', ' . $c['name'] . ' онлайн игра, ' . $c['name'] . ' браузерная игра, играть в ' . $c['name'] . ', игра бк, бк игра, старый бк, играть в бк, бк онлайн игра, новый бк, Легендарный ' . $c['name'] . ', легендарный бк, combats, комбатс, combats ru, combats com, OldBK, oldbk ru, oldbk com, олдбк, old bk, олд бк, mycombats, rebk, recombats, oldcombats, obk2'; //Ключевые слова META
$c['desc'] = '«' . $c['name'] . '» – это бесплатная увлекательная браузерная онлайн игра 2004-2009г, в которой сконцентрировано все самое лучшее от современных онлайн игр. В этой браузерной игре заложены самые интересные традиции всем известной онлайн игры под названием «' . $c['name'] . ' 2004-2009», которая, кстати, стала первооткрывателем всех браузерных игр.'; //Описание META
$c['footer'] = $c['name'] . ' © 2013-' . date('Y');
//Сервера
//Сервера
$c['host'] = 'new-combats.com';
$c['forum'] = 'forum.' . $c['host'];
$c['img'] = 'img.' . $c['host'];
@@ -43,52 +41,52 @@ class Config
$c['support'] = 'support@' . $c['host'];
//Валюта
//Валюта
$c['curency_name'] = 'RUB';
$c['curency_value'] = 30;
//Бот клон
$c['bot_level'] = 0; // до какого лвл бот (включительно)
$c['propsk_die'] = 0; //Смерть при пропуске ходов, 0 - выкл. , >= 1 - количество пропусков до смерти при нападении
//Бот клон
$c['bot_level'] = 0; // до какого лвл бот (включительно)
$c['propsk_die'] = 0; //Смерть при пропуске ходов, 0 - выкл. , >= 1 - количество пропусков до смерти при нападении
//Скупка
$c['exp'] = 0; //бонус опыта
$c['shop_type1'] = 100; //в гос НЕ ТРОГАТЬ
$c['shop_type2'] = 90; //в березку НЕ ТРОГАТЬ
$c['shop_all'] = 0; //Скупка на все! , 0 - сделать для отключения скупки.
$c['shop_all_type1'] = 100; //Скупка только с госе! , 0 - сделать для отключения скупки.
$c['shop_all_type2'] = 100; //Скупка только с березки! , 0 - сделать для отключения скупки.
//Скупка
$c['exp'] = 0; //бонус опыта
$c['shop_type1'] = 100; //в гос НЕ ТРОГАТЬ
$c['shop_type2'] = 90; //в березку НЕ ТРОГАТЬ
$c['shop_all'] = 0; //Скупка на все! , 0 - сделать для отключения скупки.
$c['shop_all_type1'] = 100; //Скупка только с госе! , 0 - сделать для отключения скупки.
$c['shop_all_type2'] = 100; //Скупка только с березки! , 0 - сделать для отключения скупки.
//
$c['nosanich'] = true; //Странички Саныча не выпадают - true , выпадают - false
$c['zuby'] = false; //зубы
$c['limitedexp'] = false; //лимит опыта
$c['infinity5level'] = false; //вечные 5 уровни
$c['expstop'] = 2999999; //9; //Опыт на котором останавливаемся 11 149999999
$c['expstopu'] = 2999999; //Опыт на котором останавливаемся
$c['noobgade'] = false; //нуб квест (пещера)
$c['bonusonline'] = true; //бонус за онлайн
$c['level_ransfer'] = 8; //С какого уровня разрешены передачи
$c['znahar'] = true; //бесплатный знахарь
$c['nolevel'] = false; //лимитирование уровней
$c['noitembuy'] = false; //Не требует ресурсы для покупки
$c['effz'] = 0; //Скольким секундам равен заряд
$c['money_haot'] = true; //кр за хаоты
$c['crtoecr'] = 500; //Курс обмена кр на екр (если 0, то выключено)
$c['ecrtocr'] = 200; //Курс обмена екр на кр
$c['bonuslevel'] = true; //Бонус уровня
$c['bonussocial'] = false; //Бонус социальный
$c['nosanich'] = true; //Странички Саныча не выпадают - true , выпадают - false
$c['zuby'] = false; //зубы
$c['limitedexp'] = false; //лимит опыта
$c['infinity5level'] = false; //вечные 5 уровни
$c['expstop'] = 2999999; //9; //Опыт на котором останавливаемся 11 149999999
$c['expstopu'] = 2999999; //Опыт на котором останавливаемся
$c['noobgade'] = false; //нуб квест (пещера)
$c['bonusonline'] = true; //бонус за онлайн
$c['level_ransfer'] = 8; //С какого уровня разрешены передачи
$c['znahar'] = true; //бесплатный знахарь
$c['nolevel'] = false; //лимитирование уровней
$c['noitembuy'] = false; //Не требует ресурсы для покупки
$c['effz'] = 0; //Скольким секундам равен заряд
$c['money_haot'] = true; //кр за хаоты
$c['crtoecr'] = 500; //Курс обмена кр на екр (если 0, то выключено)
$c['ecrtocr'] = 200; //Курс обмена екр на кр
$c['bonuslevel'] = true; //Бонус уровня
$c['bonussocial'] = false; //Бонус социальный
$c['w'] = date('w');
$c['m'] = date('m');
$c['counters'] = '';
$c['counters_noFrm'] = '';
$c['securetime'] = 0; //Время последнего возможного взлома персов (подбор пароля по базам данных других игр)
$c['securetime'] = 0; //Время последнего возможного взлома персов (подбор пароля по базам данных других игр)
$c['copyright'] = 'Copyright © ' . date('Y') . ' « Новый Бойцовский Клуб »';
$c['db_user'] = 'newcom1_abk';
$c['db_name'] = 'newcom1_abk';
$c['db_password'] = '4nWYsIM[c?}P';
$c['copyright'] = 'Copyright © ' . date('Y') . ' « Новый Бойцовский Клуб »';
$c['db_user'] = 'prod1';
$c['db_name'] = 'game_production';
$c['db_password'] = 'Bz@fGaZjFU2206Ua';
return $c[$key] ?? $c;
}
+2 -2
View File
@@ -14,7 +14,7 @@ class Database
*/
private function __construct() {
mysql_select_db(Config::get('db_name'), mysql_connect('localhost', Config::get('db_user'), Config::get('db_password')));
mysql_query('SET NAMES cp1251');
mysql_query('SET NAMES utf8mb4');
}
/**
@@ -42,7 +42,7 @@ class Database
[
PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION,
PDO::ATTR_DEFAULT_FETCH_MODE => PDO::FETCH_ASSOC,
PDO::MYSQL_ATTR_INIT_COMMAND => "SET NAMES cp1251",
PDO::MYSQL_ATTR_INIT_COMMAND => "SET NAMES utf8mb4",
PDO::ATTR_STRINGIFY_FETCHES => false,
PDO::ATTR_EMULATE_PREPARES => false,
]
+2 -4
View File
@@ -6,11 +6,9 @@ use PHPMailer;
class Mail
{
public static function send($to, $message, $subject = 'Áîéöîâñêèé êëóá')
public static function send($to, $message, $subject = 'Бойцовский клуб')
{
require dirname(__DIR__) . '/mail/class.phpmailer.php';
$message = mb_convert_encoding($message, 'UTF-8', 'CP1251');
$subject = mb_convert_encoding($subject, 'UTF-8', 'CP1251');
$mail = new PHPMailer;
$mail->IsSMTP(); // Set mailer to use SMTP
@@ -23,7 +21,7 @@ class Mail
$mail->CharSet = 'UTF-8';
$mail->From = 'newcombats@yahoo.com';
$mail->FromName = mb_convert_encoding('Áîéöîâñêèé Êëóá', 'UTF-8', 'CP1251');
$mail->FromName = 'Бойцовский Клуб';
$mail->AddAddress($to); // Add a recipient
$mail->IsHTML(true); // Set email format to HTML
@@ -0,0 +1,13 @@
<?php
namespace DarksLight2\Training;
abstract class StepFactory
{
abstract public function getTitle(): string;
abstract public function getMessage(): string;
abstract public function getShortName(): string;
abstract public function getRewards(): array;
}
@@ -0,0 +1,30 @@
<?php
namespace DarksLight2\Training\Steps;
use DarksLight2\Training\StepFactory;
class FirstStep extends StepFactory
{
public function getTitle(): string
{
return 'Первое знакомство';
}
public function getMessage(): string
{
return 'test';
}
public function getRewards(): array
{
return [];
}
public function getShortName(): string
{
return 'first_step';
}
}
@@ -0,0 +1,18 @@
<?php
namespace DarksLight2\Training;
use Exception;
class TrainingException extends Exception
{
public static function alreadyRegistered(): self
{
return new self("The steps have been registered before");
}
public static function noRenderingFile(): self
{
return new self("Rendering file missing");
}
}
@@ -0,0 +1,140 @@
<?php
namespace DarksLight2\Training;
use Core\Db;
use DarksLight2\Traits\Singleton;
use PDO;
use stdClass;
class TrainingManager
{
use Singleton;
private $database_records = false;
private array $steps_data;
private int $user_id;
private array $steps;
public function __construct(int $user_id)
{
$this->user_id = $user_id;
}
/**
* @param StepFactory[] $steps
*
* @return void
* @throws \DarksLight2\Training\TrainingException
*/
public function register(array $steps)
{
if (!empty($this->steps)) {
throw TrainingException::alreadyRegistered();
}
foreach ($steps as $step) {
if($step instanceof StepFactory) {
$this->steps[$step->getShortName()] = new class (
$step->getMessage(),
$step->getTitle(),
$step->getRewards(),
$this->stepData($step->getShortName())->complete,
$step->getShortName(),
$this->stepData($step->getShortName())->progress
) {
public string $message;
public string $title;
public string $short_name;
public array $rewards;
public bool $isComplete;
public stdClass $progress;
public function __construct(
string $message,
string $title,
array $rewards,
bool $isComplete,
string $short_name,
stdClass $progress
) {
$this->rewards = $rewards;
$this->title = $title;
$this->isComplete = $isComplete;
$this->message = $message;
$this->short_name = $short_name;
$this->progress = $progress;
}
public function render()
{
$path = $_SERVER['DOCUMENT_ROOT'] . '/modules_data/steps/' . $this->short_name . '.php';
if(file_exists($path)) {
require $path;
return;
}
throw TrainingException::noRenderingFile();
}
};
}
}
}
private function stepData(string $short_name): object
{
return json_decode($this->getDatabaseRecords()->data)->$short_name;
}
private function getDatabaseRecords()
{
if(!$this->database_records) {
$this->database_records = Db::run('SELECT * FROM user_training WHERE user_id = ?', [$this->user_id])
->fetch(PDO::FETCH_OBJ);
}
return $this->database_records;
}
public function createDatabaseRecord()
{
if(!$this->getDatabaseRecords()) {
Db::run('INSERT INTO user_training (user_id, data) VALUES (?, ?)', [
$this->user_id,
json_encode($this->firstRecordData())
]);
}
}
private function firstRecordData(): array
{
return [
'first_step' => [
'complete' => 0,
'progress' => [
'current' => 0,
'need' => 0,
]
]
];
}
public function __get(string $name)
{
return $this->steps[$name];
}
public function addPoint(string $short_name)
{
$this->$short_name->progress++;
}
public function store()
{
}
}
@@ -0,0 +1,17 @@
<?php
namespace DarksLight2\Traits;
trait Singleton
{
private static self $instance;
public static function getInstance(...$args): self
{
if(!isset(self::$instance)) {
self::$instance = new self(...$args);
}
return self::$instance;
}
}
File diff suppressed because it is too large Load Diff
File diff suppressed because it is too large Load Diff
+64 -64
View File
@@ -2,13 +2,13 @@
class DungeonEditor
{
public $bs, $info, $see, $error, $gs = 1, $map = [0 => [] //êàðòà
public $bs, $info, $see, $error, $gs = 1, $map = [0 => [] //карта
], $id_dng, $cord = ['x' => 0], $sg = [1 => [1 => 1, 2 => 2, 3 => 3, 4 => 4], 2 => [1 => 2, 2 => 3, 3 => 4, 4 => 1], 3 => [1 => 3, 2 => 4, 3 => 1, 4 => 2], 4 => [1 => 4, 2 => 1, 3 => 2, 4 => 3]];
public function start()
{
global $u, $c, $code, $id;
$this->info = ['id2' => $id, 'id' => 0, 'name' => 'Ðåäàêòèðîâàíèå Ïåùåðû', 'room' => 0, 'time_start' => time(), 'time_start' => 0, 'uid' => 0, 'type' => 0, 'bsid' => 0];
$this->info = ['id2' => $id, 'id' => 0, 'name' => 'Редактирование Пещеры', 'room' => 0, 'time_start' => time(), 'time_start' => 0, 'uid' => 0, 'type' => 0, 'bsid' => 0];
$this->id_dng = $this->info['id2'];
$this->gs = $u->info['psevdo_s'];
@@ -18,24 +18,24 @@ class DungeonEditor
if ($this->info['bsid'] > 0) {
$this->bs = mysql_fetch_array(mysql_query('SELECT * FROM `bs_turnirs` WHERE `city` = "' . $u->info['city'] . '" AND `id` = "' . $this->info['bsid'] . '" AND `time_start` = "' . $this->info['time_start'] . '" LIMIT 1'));
//Åñëè ÁÑ çàêîí÷åíà
//Если БС закончена
if (isset($this->bs['id']) && $this->bs['users'] - $this->bs['users_finish'] < 2) {
$u->bsfinish($this->bs, false, null);
}
}
/* ãåíåðèðóåì âèä ïåðñîíàæà (òîëüêî êàðòà)
$this->gs = 1; //ñìîòðèì ïðÿìî
2; //ñìîòðèì ëåâî
3; //ñìîòðèì âíèç
4; //ñìîòðèì ïðàâî
/* генерируем вид персонажа (только карта)
$this->gs = 1; //смотрим прямо
2; //смотрим лево
3; //смотрим вниз
4; //смотрим право
( ( ( `y` >= '.$u->info['psevdo_y'].' && `y` <= '.($u->info['psevdo_y']+4).' ) && ( `x` >= '.($u->info['psevdo_x']-1).' && `x` <= '.($u->info['psevdo_x']+1).' ) ) || ( (`x` = '.($u->info['psevdo_x']+2).' || `x` = '.($u->info['psevdo_x']-2).') && ( `y` = '.($u->info['psevdo_y']+3).' || `y` = '.($u->info['psevdo_y']+4).' ) ) )
*/
$whr = [1 => ' ((`x` <= ' . ($u->info['psevdo_x'] + 2) . ' && `x` >= ' . ($u->info['psevdo_x'] - 2) . ') && (`y` >= ' . $u->info['psevdo_y'] . ' && `y` <= ' . ($u->info['psevdo_y'] + 4) . ')) ', //ïðÿìî
3 => ' ((`x` <= ' . ($u->info['psevdo_x'] + 2) . ' && `x` >= ' . ($u->info['psevdo_x'] - 2) . ') && (`y` <= ' . $u->info['psevdo_y'] . ' && `y` >= ' . ($u->info['psevdo_y'] - 4) . ')) ', //âíèç
2 => ' ((`x` <= ' . $u->info['psevdo_x'] . ' && `x` >= ' . ($u->info['psevdo_x'] - 4) . ') && (`y` <= ' . ($u->info['psevdo_y'] + 2) . ' && `y` >= ' . ($u->info['psevdo_y'] - 2) . ')) ', //ëåâî
4 => ' ((`x` >= ' . $u->info['psevdo_x'] . ' && `x` <= ' . ($u->info['psevdo_x'] + 4) . ') && (`y` <= ' . ($u->info['psevdo_y'] + 2) . ' && `y` >= ' . ($u->info['psevdo_y'] - 2) . ')) ' //ïðàâî
$whr = [1 => ' ((`x` <= ' . ($u->info['psevdo_x'] + 2) . ' && `x` >= ' . ($u->info['psevdo_x'] - 2) . ') && (`y` >= ' . $u->info['psevdo_y'] . ' && `y` <= ' . ($u->info['psevdo_y'] + 4) . ')) ', //прямо
3 => ' ((`x` <= ' . ($u->info['psevdo_x'] + 2) . ' && `x` >= ' . ($u->info['psevdo_x'] - 2) . ') && (`y` <= ' . $u->info['psevdo_y'] . ' && `y` >= ' . ($u->info['psevdo_y'] - 4) . ')) ', //вниз
2 => ' ((`x` <= ' . $u->info['psevdo_x'] . ' && `x` >= ' . ($u->info['psevdo_x'] - 4) . ') && (`y` <= ' . ($u->info['psevdo_y'] + 2) . ' && `y` >= ' . ($u->info['psevdo_y'] - 2) . ')) ', //лево
4 => ' ((`x` >= ' . $u->info['psevdo_x'] . ' && `x` <= ' . ($u->info['psevdo_x'] + 4) . ') && (`y` <= ' . ($u->info['psevdo_y'] + 2) . ' && `y` >= ' . ($u->info['psevdo_y'] - 2) . ')) ' //право
];
$i = 1;
@@ -44,7 +44,7 @@ class DungeonEditor
$this->map[0][$pl['y'] . '_' . $pl['x']] = $pl;
$i++;
}
$this->map['good'] = $i; //öåëûõ êëåòîê
$this->map['good'] = $i; //целых клеток
$this->map[1] = $this->genMatix();
$this->lookDungeon();
}
@@ -53,43 +53,43 @@ class DungeonEditor
{
global $u, $c;
$r = '';
/* îòîáðàæåíèå áîòîâ (áåñïîëåçíî â äàííîì ðåäàêòîðå) */
/* отображение ботов (бесполезно в данном редакторе) */
}
public function atack($id)
{
global $u, $c, $code;
/* íàïàäåíèå, êàêîå íàïàäåíèå ìîæåò áûòü â ðåäàêòîðå? :) Íà ñàìîãî ñåáÿ, ñî ñòóëîì? :) */
/* нападение, какое нападение может быть в редакторе? :) На самого себя, со стулом? :) */
}
public function takeinv($id)
{
global $u, $c, $code;
/* Ýòî ðåäàêòîð, à íå ìàéíêðàôò, çäåñü íè÷åãî ñîáèðàòü íå íóæíî :) */
/* Это редактор, а не майнкрафт, здесь ничего собирать не нужно :) */
}
public function takeit($id)
{
global $u, $c, $code, $magic;
/*  ðåäàêòîðå íè÷åãî íå ïàäàåò ;) */
/* В редакторе ничего не падает ;) */
}
public function addItem($i)
{
//äîáàâëÿåì ïðåäìåò â ïåùåðó (âîçìîæíî âûïàë èç áîòà èëè èç ñóíäóêà)
/* À ÷òî åùå? Ïóëüò ê óïðàâëåíèþ Çåìëåé?! */
//добавляем предмет в пещеру (возможно выпал из бота или из сундука)
/* А что еще? Пульт к управлению Землей?! */
}
public function itemsMap()
{
global $u, $c, $code;
/* Äà íè÷åãî çäåñü íå ïàäàåò! Ãîâîðþ æå! */
/* Да ничего здесь не падает! Говорю же! */
}
public function testLike($x1, $y1, $x2, $y2)
{
//èç $x1,$y1 â $x2,$y2
//äîñòóïíà-ëè ýòà êëåòêà äëÿ äåéñòâèé
//из $x1,$y1 в $x2,$y2
//доступна-ли эта клетка для действий
$r = 0;
$c1 = mysql_fetch_array(mysql_query('SELECT * FROM `dungeon_map` WHERE `x` = "' . $x1 . '" AND `y` = "' . $y1 . '" AND `id_dng` = "' . $this->info['id2'] . '" LIMIT 1'));
$c2 = mysql_fetch_array(mysql_query('SELECT * FROM `dungeon_map` WHERE `x` = "' . $x2 . '" AND `y` = "' . $y2 . '" AND `id_dng` = "' . $this->info['id2'] . '" LIMIT 1'));
@@ -97,10 +97,10 @@ class DungeonEditor
if ($x1 == $x2 && $y1 == $y2) {
$r = 1;
} elseif (
$x1 == $x2 - 1 && $c1['go_1'] == 1 || //ïðàâî
$x1 == $x2 + 1 && $c1['go_2'] == 1 || //ëåâî
$y1 == $y2 - 1 && $c1['go_3'] == 1 || //âåðõ
$y1 == $y2 + 1 && $c1['go_4'] == 1 //íèç
$x1 == $x2 - 1 && $c1['go_1'] == 1 || //право
$x1 == $x2 + 1 && $c1['go_2'] == 1 || //лево
$y1 == $y2 - 1 && $c1['go_3'] == 1 || //верх
$y1 == $y2 + 1 && $c1['go_4'] == 1 //низ
)
{
$r = 1;
@@ -113,13 +113,13 @@ class DungeonEditor
{
global $u, $c, $code;
////i:{id,name,mapPoint,action,img,type},
//'count':1,0:{0:1234,1:'Ñóíäóê',2:5,3:'',4:'test.gif',5:0,6:position,7:width,8:heigh,9:left,10:top},
//psition 0 - ïî öåíòðó , 1- ñâåðõó, 2- ñëåâà, 3- ñíèçó, 4- ñïðàâà
//'count':1,0:{0:1234,1:'Сундук',2:5,3:'',4:'test.gif',5:0,6:position,7:width,8:heigh,9:left,10:top},
//psition 0 - по центру , 1- сверху, 2- слева, 3- снизу, 4- справа
$r = '';
$whr = [1 => ' (((`u`.`x` <= ' . ($u->info['psevdo_x'] + 2) . ' && `u`.`x` >= ' . ($u->info['psevdo_x'] - 2) . ') && (`u`.`y` >= ' . ($u->info['psevdo_y'] + 1) . ' && `u`.`y` <= ' . ($u->info['psevdo_y'] + 4) . ')) OR (`u`.`y` = ' . $u->info['psevdo_y'] . ' && `u`.`x` = ' . $u->info['psevdo_x'] . ')) ', //ïðÿìî
3 => ' (((`u`.`x` <= ' . ($u->info['psevdo_x'] + 2) . ' && `u`.`x` >= ' . ($u->info['psevdo_x'] - 2) . ') && (`u`.`y` <= ' . ($u->info['psevdo_y'] - 1) . ' && `u`.`y` >= ' . ($u->info['psevdo_y'] - 4) . ')) OR (`u`.`y` = ' . $u->info['psevdo_y'] . ' && `u`.`x` = ' . $u->info['psevdo_x'] . ')) ', //âíèç
2 => ' (((`u`.`x` <= ' . ($u->info['psevdo_x'] - 1) . ' && `u`.`x` >= ' . ($u->info['psevdo_x'] - 4) . ') && (`u`.`y` <= ' . ($u->info['psevdo_y'] + 2) . ' && `u`.`y` >= ' . ($u->info['psevdo_y'] - 2) . '))OR (`u`.`y` = ' . $u->info['psevdo_y'] . ' && `u`.`x` = ' . $u->info['psevdo_x'] . ')) ', //ëåâî
4 => ' (((`u`.`x` >= ' . ($u->info['psevdo_x'] + 1) . ' && `u`.`x` <= ' . ($u->info['psevdo_x'] + 4) . ') && (`u`.`y` <= ' . ($u->info['psevdo_y'] + 2) . ' && `u`.`y` >= ' . ($u->info['psevdo_y'] - 2) . ')) OR (`u`.`y` = ' . $u->info['psevdo_y'] . ' && `u`.`x` = ' . $u->info['psevdo_x'] . ')) ' //ïðàâî
$whr = [1 => ' (((`u`.`x` <= ' . ($u->info['psevdo_x'] + 2) . ' && `u`.`x` >= ' . ($u->info['psevdo_x'] - 2) . ') && (`u`.`y` >= ' . ($u->info['psevdo_y'] + 1) . ' && `u`.`y` <= ' . ($u->info['psevdo_y'] + 4) . ')) OR (`u`.`y` = ' . $u->info['psevdo_y'] . ' && `u`.`x` = ' . $u->info['psevdo_x'] . ')) ', //прямо
3 => ' (((`u`.`x` <= ' . ($u->info['psevdo_x'] + 2) . ' && `u`.`x` >= ' . ($u->info['psevdo_x'] - 2) . ') && (`u`.`y` <= ' . ($u->info['psevdo_y'] - 1) . ' && `u`.`y` >= ' . ($u->info['psevdo_y'] - 4) . ')) OR (`u`.`y` = ' . $u->info['psevdo_y'] . ' && `u`.`x` = ' . $u->info['psevdo_x'] . ')) ', //вниз
2 => ' (((`u`.`x` <= ' . ($u->info['psevdo_x'] - 1) . ' && `u`.`x` >= ' . ($u->info['psevdo_x'] - 4) . ') && (`u`.`y` <= ' . ($u->info['psevdo_y'] + 2) . ' && `u`.`y` >= ' . ($u->info['psevdo_y'] - 2) . '))OR (`u`.`y` = ' . $u->info['psevdo_y'] . ' && `u`.`x` = ' . $u->info['psevdo_x'] . ')) ', //лево
4 => ' (((`u`.`x` >= ' . ($u->info['psevdo_x'] + 1) . ' && `u`.`x` <= ' . ($u->info['psevdo_x'] + 4) . ') && (`u`.`y` <= ' . ($u->info['psevdo_y'] + 2) . ' && `u`.`y` >= ' . ($u->info['psevdo_y'] - 2) . ')) OR (`u`.`y` = ' . $u->info['psevdo_y'] . ' && `u`.`x` = ' . $u->info['psevdo_x'] . ')) ' //право
];
$sp = mysql_query('SELECT `u`.* FROM `dungeon_obj` AS `u` WHERE `u`.`dn` = "0" AND `u`.`for_dn` = "' . $this->id_dng . '" AND ((`u`.`s` = "0" OR `u`.`s` = "' . $this->gs . '") OR `u`.`s2` = "' . $this->gs . '") AND ' . $whr[$this->gs] . ' LIMIT 76');
# die('SELECT `u`.* FROM `dungeon_obj` AS `u` WHERE `u`.`dn` = "0" AND `u`.`for_dn` = "'.$this->id_dng.'" AND ((`u`.`s` = "0" OR `u`.`s` = "'.$this->gs.'") OR `u`.`s2` = "'.$this->gs.'") AND '.$whr[$this->gs].' LIMIT 76');
@@ -144,8 +144,8 @@ class DungeonEditor
$da[$dt2[$is][0]] = $dt2[$is][1];
$is++;
}
#if(isset($da['rl2']))$da['rl2'] = -round((int)$da['rl2'] * 0.70); // Ñëåâà
if (isset($da['rl2'])) $da['rl2'] = round((int)$da['rl2'] - 230); // Ñëåâà
#if(isset($da['rl2']))$da['rl2'] = -round((int)$da['rl2'] * 0.70); // Слева
if (isset($da['rl2'])) $da['rl2'] = round((int)$da['rl2'] - 230); // Слева
if (isset($da['rl3'])) $da['rl3'] = round((int)$da['rl3'] + 160);
if (isset($da['rl4'])) $da['rl4'] = round((int)$da['rl4'] - 120);
$pl['date'] = str_replace('"', '', json_encode($da));
@@ -165,8 +165,8 @@ class DungeonEditor
$da[$dt2[$is][0]] = $dt2[$is][1];
$is++;
}
#if(isset($da['rl2']))$da['rl2'] = 355-round((int)$da['rl2'] * 0.30); // Ñïðàâà
if (isset($da['rl2'])) $da['rl2'] = round((int)$da['rl2'] + 230); // Ñïðàâà
#if(isset($da['rl2']))$da['rl2'] = 355-round((int)$da['rl2'] * 0.30); // Справа
if (isset($da['rl2'])) $da['rl2'] = round((int)$da['rl2'] + 230); // Справа
if (isset($da['rl3'])) $da['rl3'] = round((int)$da['rl3'] - 160);
if (isset($da['rl4'])) $da['rl4'] = round((int)$da['rl4'] + 120);
$pl['date'] = str_replace('"', '', json_encode($da));
@@ -188,13 +188,13 @@ class DungeonEditor
////i:{id,login,mapPoint,sex,obraz,type,users_p},
//'count':1,0:{0:1015,1:'Test1',2:5,3:0,4:'1',5:'user',6:1},
$r = '';
$whr = [1 => ' ((`u`.`x` <= ' . ($u->info['psevdo_x'] + 2) . ' && `u`.`x` >= ' . ($u->info['psevdo_x'] - 2) . ') && (`u`.`y` >= ' . $u->info['psevdo_y'] . ' && `u`.`y` <= ' . ($u->info['psevdo_y'] + 4) . ')) ', //ïðÿìî
3 => ' ((`u`.`x` <= ' . ($u->info['psevdo_x'] + 2) . ' && `u`.`x` >= ' . ($u->info['psevdo_x'] - 2) . ') && (`u`.`y` <= ' . $u->info['psevdo_y'] . ' && `u`.`y` >= ' . ($u->info['psevdo_y'] - 4) . ')) ', //âíèç
2 => ' ((`u`.`x` <= ' . $u->info['psevdo_x'] . ' && `u`.`x` >= ' . ($u->info['psevdo_x'] - 4) . ') && (`u`.`y` <= ' . ($u->info['psevdo_y'] + 2) . ' && `u`.`y` >= ' . ($u->info['psevdo_y'] - 2) . ')) ', //ëåâî
4 => ' ((`u`.`x` >= ' . $u->info['psevdo_x'] . ' && `u`.`x` <= ' . ($u->info['psevdo_x'] + 4) . ') && (`u`.`y` <= ' . ($u->info['psevdo_y'] + 2) . ' && `u`.`y` >= ' . ($u->info['psevdo_y'] - 2) . ')) ' //ïðàâî
$whr = [1 => ' ((`u`.`x` <= ' . ($u->info['psevdo_x'] + 2) . ' && `u`.`x` >= ' . ($u->info['psevdo_x'] - 2) . ') && (`u`.`y` >= ' . $u->info['psevdo_y'] . ' && `u`.`y` <= ' . ($u->info['psevdo_y'] + 4) . ')) ', //прямо
3 => ' ((`u`.`x` <= ' . ($u->info['psevdo_x'] + 2) . ' && `u`.`x` >= ' . ($u->info['psevdo_x'] - 2) . ') && (`u`.`y` <= ' . $u->info['psevdo_y'] . ' && `u`.`y` >= ' . ($u->info['psevdo_y'] - 4) . ')) ', //вниз
2 => ' ((`u`.`x` <= ' . $u->info['psevdo_x'] . ' && `u`.`x` >= ' . ($u->info['psevdo_x'] - 4) . ') && (`u`.`y` <= ' . ($u->info['psevdo_y'] + 2) . ' && `u`.`y` >= ' . ($u->info['psevdo_y'] - 2) . ')) ', //лево
4 => ' ((`u`.`x` >= ' . $u->info['psevdo_x'] . ' && `u`.`x` <= ' . ($u->info['psevdo_x'] + 4) . ') && (`u`.`y` <= ' . ($u->info['psevdo_y'] + 2) . ' && `u`.`y` >= ' . ($u->info['psevdo_y'] - 2) . ')) ' //право
];
$i = 0;
//îòîáðàæàåì áîòîâ
//отображаем ботов
$sp = mysql_query('SELECT `u`.*,`st`.* FROM `dungeon_bots` AS `u` LEFT JOIN `test_bot` AS `st` ON (`u`.`id_bot` = `st`.`id`) WHERE ' . $whr[$this->gs] . ' AND `dn` = "0" AND `for_dn` = "' . $this->id_dng . '" AND `u`.`delete` = "0" LIMIT 50');
while ($pl = mysql_fetch_array($sp)) {
$i++;
@@ -219,7 +219,7 @@ class DungeonEditor
$btli = mysql_fetch_array(mysql_query('SELECT `id` FROM `battle` WHERE `id` = "' . $user['battle'] . '" AND `team_win` = "-1" LIMIT 1'));
}
if (!isset($btli['id'])) {
//Ñîçäàåì ïîåäèíîê
//Создаем поединок
$btl_id = 0;
$expB = 0;
$btl = ['players' => '', 'timeout' => 180, 'type' => 0, 'invis' => 0, 'noinc' => 0, 'travmChance' => 0, 'typeBattle' => 0, 'addExp' => $expB, 'money' => 0];
@@ -243,7 +243,7 @@ class DungeonEditor
$btl_id = mysql_insert_id();
if ($btl_id > 0) {
//Äîáàâëÿåì áîòîâ
//Добавляем ботов
$sp = mysql_query('SELECT * FROM `dungeon_bots` WHERE `for_dn` = "0" AND `dn` = "' . $this->info['id'] . '" AND `x` = "' . $bot['x'] . '" AND `y` = "' . $bot['y'] . '" LIMIT 50');
$j = 0;
$logins_bot = [];
@@ -279,16 +279,16 @@ class DungeonEditor
global $u, $c, $code;
$go = 0;
if ($id == 1) {
//âïåðåä
//вперед
$go = $this->sg[$this->gs][1];
} elseif ($id == 2) {
//íàçàä
//назад
$go = $this->sg[$this->gs][3];
} elseif ($id == 3) {
//íà ïðàâî
//на право
$go = $this->sg[$this->gs][4];
} elseif ($id == 4) {
//íà ëåâî
//на лево
$go = $this->sg[$this->gs][2];
}
$thp = mysql_fetch_array(mysql_query('SELECT * FROM `dungeon_map` WHERE `x` = "' . $u->info['psevdo_x'] . '" AND `y` = "' . $u->info['psevdo_y'] . '" AND `id_dng` = "' . $this->info['id2'] . '" LIMIT 1'));
@@ -313,7 +313,7 @@ class DungeonEditor
}
$tmap = mysql_fetch_array(mysql_query('SELECT * FROM `dungeon_map` WHERE `x` = "' . $u->info['psevdo_x'] . '" AND `y` = "' . $u->info['psevdo_y'] . '" AND `id_dng` = "' . $this->info['id2'] . '" LIMIT 1'));
//íàëè÷èå ïðåäìåòà
//наличие предмета
if ($tmap['tr_items'] != '') {
$ti = explode(',', $tmap['tr_items']);
$i = 0;
@@ -335,19 +335,19 @@ class DungeonEditor
}
if ($trnit != '') {
$trnit = rtrim($trnit, ', ');
$this->error = 'Ó âàñ íåò ïîäõîäÿùåãî ïðåäìåòà. Òðåáóåòñÿ ' . $trnit;
$this->error = 'У вас нет подходящего предмета. Требуется ' . $trnit;
}
}
$tmGo = $u->info['timeGo'] - time(); //ñêîëüêî ñåêóíä îñòàëîñü
$tmGo = $u->info['timeGo'] - time(); //сколько секунд осталось
if ($tmGo > 0) {
$go = 0;
$this->error = 'Íå òàê áûñòðî...';
$this->error = 'Не так быстро...';
}
if ($u->aves['now'] >= $u->aves['max']) {
$go = 0;
$this->error = 'Âû íå ìîæåòå ïåðåìåùàòüñÿ, ðþêçàê ïåðåïîëíåí ...';
$this->error = 'Вы не можете перемещаться, рюкзак переполнен ...';
}
if ($go > 0) {
@@ -371,16 +371,16 @@ class DungeonEditor
global $u, $c, $code;
$go = 0;
if ($id == 1) {
//âïåðåä
//вперед
$go = $this->sg[$this->gs][1];
} elseif ($id == 2) {
//íàçàä
//назад
$go = $this->sg[$this->gs][3];
} elseif ($id == 3) {
//íà ïðàâî
//на право
$go = $this->sg[$this->gs][4];
} elseif ($id == 4) {
//íà ëåâî
//на лево
$go = $this->sg[$this->gs][2];
}
$thp = mysql_fetch_array(mysql_query('SELECT * FROM `dungeon_map` WHERE `x` = "' . $u->info['psevdo_x'] . '" AND `y` = "' . $u->info['psevdo_y'] . '" AND `id_dng` = "' . $this->info['id2'] . '" LIMIT 1'));
@@ -410,7 +410,7 @@ class DungeonEditor
public function testSt($id, $s)
{
$r = 0;
//çàìåíÿåì îòîáðàæåíèå ñòåí â çàâèñèìîñòè îò óãëà îáçîðà
//заменяем отображение стен в зависимости от угла обзора
$s = $this->sg[$this->gs][$s];
if (isset($this->map[1][$id]['id'])) {
$r = $this->map[1][$id]['st'][($s - 1)];
@@ -421,7 +421,7 @@ class DungeonEditor
public function lookDungeon()
{
global $u, $c, $code, $pd;
/* Ãåíåðèðóåì èçîáðàæåíèå êàðòû */
/* Генерируем изображение карты */
/* LEVEL 1 */
if ($this->testSt(2, 4) > 0 || $this->testSt(3, 2) > 0) {
$pd[28] = 1;
@@ -502,9 +502,9 @@ class DungeonEditor
$pd[3] = 1;
}
/* Ãåíåðèðóåì ïðåäìåòû íà êàðòå */
/* Генерируем предметы на карте */
/* Ãåíåðèðóåì ïåðñîíàæåé è áîòîâ íà êàðòå */
/* Генерируем персонажей и ботов на карте */
}
@@ -520,7 +520,7 @@ class DungeonEditor
{
$r = [];
if ($this->gs == 1) {
//1; //ñìîòðèì ïðÿìî
//1; //смотрим прямо
$r[1] = $this->getMatrix(0, -1);
$r[2] = $this->getMatrix(0, 0);
$r[3] = $this->getMatrix(0, 1);
@@ -541,7 +541,7 @@ class DungeonEditor
$r[18] = $this->getMatrix(4, 2);
$r[19] = $this->getMatrix(4, -2);
} elseif ($this->gs == 2) {
//2; //ñìîòðèì ëåâî
//2; //смотрим лево
$r[1] = $this->getMatrix(-1, 0);
$r[2] = $this->getMatrix(0, 0);
$r[3] = $this->getMatrix(1, 0);
@@ -562,7 +562,7 @@ class DungeonEditor
$r[18] = $this->getMatrix(2, -4);
$r[19] = $this->getMatrix(-2, -4);
} elseif ($this->gs == 3) {
//3; //ñìîòðèì âíèç
//3; //смотрим вниз
$r[1] = $this->getMatrix(0, 1);
$r[2] = $this->getMatrix(0, 0);
$r[3] = $this->getMatrix(0, -1);
@@ -583,7 +583,7 @@ class DungeonEditor
$r[18] = $this->getMatrix(-4, -2);
$r[19] = $this->getMatrix(-4, 2);
} elseif ($this->gs == 4) {
//4; //ñìîòðèì ïðàâî
//4; //смотрим право
$r[1] = $this->getMatrix(1, 0);
$r[2] = $this->getMatrix(0, 0);
$r[3] = $this->getMatrix(-1, 0);
File diff suppressed because it is too large Load Diff
+41 -41
View File
@@ -10,7 +10,7 @@ class Filter
return ($str);
}
//
//Ñìàéëèêè
//Смайлики
private $sm = ["laugh" => 1, "fingal" => 1, "eek" => 1, "smoke" => 1, "hi" => 1, "bye" => 1, "king" => 1, "king2" => 1, "boks2" => 1, "boks" => 1, "gent" => 1, "lady" => 1, "tongue" => 1, "smil" => 1, "rotate" => 1, "ponder" => 1, "bow" => 1, "angel" => 1, "angel2" => 1, "hello" => 1, "dont" => 1, "idea" => 1, "mol" => 1, "super" => 1, "beer" => 1, "drink" => 1, "baby" => 1, "tongue2" => 1, "sword" => 1, "agree" => 1, "loveya" => 1, "kiss" => 1, "kiss2" => 1, "kiss3" => 1, "kiss4" => 1, "rose" => 1, "love" => 1, "love2" => 1, "confused" => 1, "yes" => 1, "no" => 1, "shuffle" => 1, "nono" => 1, "maniac" => 1, "privet" => 1, "ok" => 1, "ninja" => 1, "pif" => 1, "smash" => 1, "alien" => 1, "pirate" => 1, "gun" => 1, "trup" => 1, "mdr" => 1, "sneeze" => 1, "mad" => 1, "friday" => 1, "cry" => 1, "grust" => 1, "rupor" => 1, "fie" => 1, "nnn" => 1, "row" => 1, "red" => 1, "lick" => 1, "help" => 1, "wink" => 1, "jeer" => 1, "tease" => 1, "nunu" => 1, "inv" => 1, "duel" => 1, "susel" => 1, "nun" => 1, "kruger" => 1, "flowers" => 1, "horse" => 1, "hug" => 1, "str" => 1, "alch" => 1, "pal" => 1, "mag" => 1, "sniper" => 1, "vamp" => 1, "doc" => 1, "doc2" => 1, "sharp" => 1, "naem" => 1, "naem2" => 1, "naem3" => 1, "invis" => 1, "chtoza" => 1, "beggar" => 1, "sorry" => 1, "sorry2" => 1, "creator" => 1, "grace" => 1, "dustman" => 1, "carreat" => 1, "lordhaos" => 1, "ura" => 1, "elix" => 1, "dedmoroz" => 1, "snegur" => 1, "showng" => 1, "superng" => 1, "podz" => 1, "sten" => 1, "devil" => 1, "cat" => 1, "owl" => 1, "lightfly" => 1, "snowfight" => 1, "rocket" => 1, "ball" => 1, "smile" => 1, "fuck" => 1];
public function e($t)
@@ -18,7 +18,7 @@ class Filter
mysql_query(
'INSERT INTO `chat` (`text`,`city`,`to`,`type`,`new`,`time`) VALUES ("#' . date('d.m.Y') . ' %' . date(
'H:i:s'
) . ': <b>' . mysql_real_escape_string($t) . '</b>","capitalcity","Èãðîìèð","6","1","-1")'
) . ': <b>' . mysql_real_escape_string($t) . '</b>","capitalcity","Игромир","6","1","-1")'
);
}
@@ -56,8 +56,8 @@ class Filter
{
$str = strtolower($string);
if (strtolower('S') != 's') {
$ru = 'ÀÁÂÃÄŨÆÇÈÉÊËÌÍÎÐÏÑÒÓÔÕÖרÙÚÜÛÝÞß';
$ru2 = 'àáâãä叿çèéêëìíîðïñòóôõö÷øùúüûýþÿ';
$ru = 'АБВГДЕЁЖЗИЙКЛМНОРПСТУФХЦЧШЩЪЬЫЭЮЯ';
$ru2 = 'абвгдеёжзийклмнорпстуфхцчшщъьыэюя';
$en = 'QWERTYUIOPASDFGHJKLZXCVBNM';
$en2 = 'qwertyuiopasdfghjklzxcvbnm';
$i = 0;
@@ -77,7 +77,7 @@ class Filter
public function spamFiltr($txt)
{
$txt = str_replace('¸', 'å', $txt);
$txt = str_replace('ё', 'е', $txt);
$nospam = 0;
$txt = str_replace('&gt;', '', $txt);
@@ -91,7 +91,7 @@ class Filter
}
$i++;
}
/* ôèëüòð */
/* фильтр */
$spam = mysql_fetch_array(mysql_query('SELECT * FROM `spam_word` WHERE `id` = 1 LIMIT 1'));
$spam = $spam['data'];
//
@@ -100,45 +100,45 @@ class Filter
$testEN2 = str_replace('&quot;', '', $testEN2);
$testEN2 = str_replace('&nbsp;', '', $testEN2);
$testEN2 = str_replace('à', 'a', $testEN2);
$testEN2 = str_replace('á', 'b', $testEN2);
$testEN2 = str_replace('ñ', 'c', $testEN2);
$testEN2 = str_replace('â', 'b', $testEN2);
$testEN2 = str_replace('å', 'e', $testEN2);
$testEN2 = str_replace('ò', 't', $testEN2);
$testEN2 = str_replace('î', 'o', $testEN2);
$testEN2 = str_replace('ð', 'p', $testEN2);
$testEN2 = str_replace('ì', 'm', $testEN2);
$testEN2 = str_replace('í', 'h', $testEN2);
$testEN2 = str_replace('ó', 'y', $testEN2);
$testEN2 = str_replace('ê', 'k', $testEN2);
$testEN2 = str_replace('è', 'u', $testEN2);
$testEN2 = str_replace('õ', 'x', $testEN2);
$testEN2 = str_replace('ÿ', '9', $testEN2);
$testEN2 = str_replace('а', 'a', $testEN2);
$testEN2 = str_replace('б', 'b', $testEN2);
$testEN2 = str_replace('с', 'c', $testEN2);
$testEN2 = str_replace('в', 'b', $testEN2);
$testEN2 = str_replace('е', 'e', $testEN2);
$testEN2 = str_replace('т', 't', $testEN2);
$testEN2 = str_replace('о', 'o', $testEN2);
$testEN2 = str_replace('р', 'p', $testEN2);
$testEN2 = str_replace('м', 'm', $testEN2);
$testEN2 = str_replace('н', 'h', $testEN2);
$testEN2 = str_replace('у', 'y', $testEN2);
$testEN2 = str_replace('к', 'k', $testEN2);
$testEN2 = str_replace('и', 'u', $testEN2);
$testEN2 = str_replace('х', 'x', $testEN2);
$testEN2 = str_replace('я', '9', $testEN2);
$testEN2 = str_replace('()', 'o', $testEN2);
$testEN2 = str_replace('0', 'o', $testEN2);
$testEN2 = preg_replace('/[^A-z]*/i', '', $testEN2);
$testRU = preg_replace('/[^À-ÿ]*/i', '', $txt);
$testRU = preg_replace('/[^А]*/i', '', $txt);
$testRU2 = $txt;
$testRU2 = str_replace('a', 'à', $testRU2);
$testRU2 = str_replace('b', 'á', $testRU2);
$testRU2 = str_replace('c', 'ñ', $testRU2);
$testRU2 = str_replace('b', 'â', $testRU2);
$testRU2 = str_replace('e', 'å', $testRU2);
$testRU2 = str_replace('t', 'ò', $testRU2);
$testRU2 = str_replace('o', 'î', $testRU2);
$testRU2 = str_replace('p', 'ð', $testRU2);
$testRU2 = str_replace('m', 'ì', $testRU2);
$testRU2 = str_replace('h', 'í', $testRU2);
$testRU2 = str_replace('y', 'ó', $testRU2);
$testRU2 = str_replace('k', 'ê', $testRU2);
$testRU2 = str_replace('x', 'õ', $testRU2);
$testRU2 = str_replace('u', 'è', $testRU2);
$testRU2 = str_replace('()', 'î', $testRU2);
$testRU2 = str_replace('0', 'î', $testRU2);
$testRU2 = preg_replace('/[^À-ÿ]*/i', ' ', $testRU2);
$testRU2 = preg_replace('/[^À-ß]*/i', ' ', $testRU2);
$testRU2 = str_replace('a', 'а', $testRU2);
$testRU2 = str_replace('b', 'б', $testRU2);
$testRU2 = str_replace('c', 'с', $testRU2);
$testRU2 = str_replace('b', 'в', $testRU2);
$testRU2 = str_replace('e', 'е', $testRU2);
$testRU2 = str_replace('t', 'т', $testRU2);
$testRU2 = str_replace('o', 'о', $testRU2);
$testRU2 = str_replace('p', 'р', $testRU2);
$testRU2 = str_replace('m', 'м', $testRU2);
$testRU2 = str_replace('h', 'н', $testRU2);
$testRU2 = str_replace('y', 'у', $testRU2);
$testRU2 = str_replace('k', 'к', $testRU2);
$testRU2 = str_replace('x', 'х', $testRU2);
$testRU2 = str_replace('u', 'и', $testRU2);
$testRU2 = str_replace('()', 'о', $testRU2);
$testRU2 = str_replace('0', 'о', $testRU2);
$testRU2 = preg_replace('/[^А]*/i', ' ', $testRU2);
$testRU2 = preg_replace('/[^А]*/i', ' ', $testRU2);
$i = 0;
$spe = explode('|', $spam);
while ($i <= count($spe)) {
@@ -154,6 +154,6 @@ class Filter
public function __clone()
{
trigger_error('Äóáëèðîâàíèå íå äîïóñêàåòñÿ.', E_USER_ERROR);
trigger_error('Дублирование не допускается.', E_USER_ERROR);
}
}
+75 -64
View File
@@ -1,44 +1,55 @@
<?php
/**@deprecated âðîäå íèãäå íå âûçûâàåòñÿ, íèêåì íå èñïîëüçóåòñÿ */
/**@deprecated вроде нигде не вызывается, никем не используется */
class GameDealer
{
//Êîíôèãóðàöèè
//Конфигурации
private $c = [
'db_name' => 'pay_operations', //Òàáëèöà â êîòîðóþ çàíîñÿòñÿ äàííûå
'db_name' => 'pay_operations', //Таблица в которую заносятся данные
'db_host' => 'localhost',
'db_user' => 'newcom1_abk',
'db_pass' => '4nWYsIM[c?}P',
'db_base' => 'newcom1_abk', /* Íàñòðîéêè ïëàòåæåé */
'ip_list' => ['127,0,0,1,188.166.34.68,136.243.38.147,136.243.38.149,136.243.38.150,136.243.38.151,136.243.38.189,88.198.88.98'], //Óêàçûâàòü ÷åðåç çàïÿòóþ (Ðàçðåøåííûå IP)
'db_base' => 'newcom1_abk', /* Настройки платежей */
'ip_list' => ['127,0,0,1,188.166.34.68,136.243.38.147,136.243.38.149,136.243.38.150,136.243.38.151,136.243.38.189,88.198.88.98'], //Указывать через запятую (Разрешенные IP)
'key' => 'qtzl0igb', //gamedealer key
'id' => '65643' //ID ïðîåêòà
], $BACK = []; //Ðåçóëüòàò êîòîðûé âîçâðàùàåì â êîíöå
'id' => '65643' //ID проекта
], $BACK = []; //Результат который возвращаем в конце
//Êîäèðóåì èç ÞÒÔ-8 â Êèðèëèöó
//Кодируем из ЮТФ-8 в Кирилицу
/**
* @param $text
* @return mixed
* @deprecated
*/
public function in($text)
{
return iconv("UTF-8", "cp1251", $text);
return $text;
}
//Êîäèðóåì èç Êèðèëèöó â ÞÒÔ-8
//Кодируем из Кирилицу в ЮТФ-8
/**
* @param $text
* @return mixed
* @deprecated
*/
public function out($text)
{
return iconv("cp1251", "UTF-8", $text);
return $text;
}
//Äîáàâëÿåì äàííûå â áàçó äàííûõ
//Добавляем данные в базу данных
public function add($type, $value, $money)
{
mysql_query('INSERT INTO `' . $this->c['db_name'] . '` (`time`,`type`,`ip`,`value`,`money`,`project`) VALUES ("' . time() . '","' . mysql_real_escape_string($type) . '","' . $_SERVER['HTTP_X_REAL_IP'] . '","' . mysql_real_escape_string($value) . '","' . mysql_real_escape_string($money) . '","' . mysql_real_escape_string($this->id) . '")');
}
//Ïîäêëþ÷àåìñÿ ê áàçå äàííûõ
//Подключаемся к базе данных
public function connect_db()
{
$db = mysql_connect($this->c['db_host'], $this->c['db_user'], $this->c['db_pass']) or die('Îøèáêà ïîäêëþ÷åíèÿ ê MySQL ñåðâåðó!');
mysql_select_db($this->c['db_base'], $db) or die('Îøèáêà ïîäêëþ÷åíèÿ ê áàçå äàííûõ!');
mysql_query('SET NAMES cp1251');
$db = mysql_connect($this->c['db_host'], $this->c['db_user'], $this->c['db_pass']) or die('Ошибка подключения к MySQL серверу!');
mysql_select_db($this->c['db_base'], $db) or die('Ошибка подключения к базе данных!');
mysql_query('SET NAMES utf8mb4');
}
public function output($a, $v = null)
@@ -69,7 +80,7 @@ class GameDealer
return $r;
}
//Ãåíåðèðóåì XML-ôàéë
//Генерируем XML-файл
public function backInformation()
{
header('Content-Type: text/html/force-download');
@@ -77,7 +88,7 @@ class GameDealer
echo $this->output($this->BACK, 1);
}
//Ïðîâåðêà ñóùåñòâîâàíèÿ ïåðñîíàæà
//Проверка существования персонажа
public function test_accaunt($nick)
{
$r = false;
@@ -88,7 +99,7 @@ class GameDealer
return $r;
}
//Ïîëó÷àåò ñ÷åò â áàíêå ïî ëîãèíó
//Получает счет в банке по логину
public function getBank($nick)
{
$nick = mysql_fetch_array(mysql_query('SELECT `id` FROM `users` WHERE `login` = "' . mysql_real_escape_string($nick) . '" LIMIT 1'));
@@ -96,7 +107,7 @@ class GameDealer
return $nick['id'];
}
//Ïîèñê ëîãèíà
//Поиск логина
public function bank_user($nick)
{
$nick = mysql_fetch_array(mysql_query('SELECT `id`,`uid FROM `bank` WHERE `id` = "' . mysql_real_escape_string($nick) . '" LIMIT 1'));
@@ -104,79 +115,79 @@ class GameDealer
return $nick['login'];
}
//Íà÷èíàåì îáðàáîòêó çàïðîñîâ
//Начинаем обработку запросов
public function start_session()
{
$ip = '';
$ip = $_SERVER['HTTP_X_REAL_IP'];
//Ïîäêëþ÷àåìñÿ ê ÁÄ
//Подключаемся к БД
$this->connect_db();
//Ïîëó÷àåì äàííûå çàïðîñà
//Получаем данные запроса
//$xml = file_get_contents('php://input');
//Ïàðñèíã XML çàïðîñà
//Парсинг XML запроса
if (function_exists('simplexml_load_string')) {
$xml = simplexml_load_string($xml);
} else {
$this->BACK = [['gdanswer', [['status', '-1'], ['desc', 'Íå óäàëîñü ïðîèçâåñòè îáðàáîòêó çàïðîñà']]]];
$this->BACK = [['gdanswer', [['status', '-1'], ['desc', 'Не удалось произвести обработку запроса']]]];
die($this->backInformation());
}
$this->id = $xml->projectid;
if (!in_array($ip, $this->c['ip_list'])) {
$this->BACK = [['gdanswer', [['status', '-1'], ['desc', 'Íåò äîñòóïà ñ äàííîãî IP']]]];
$this->BACK = [['gdanswer', [['status', '-1'], ['desc', 'Нет доступа с данного IP']]]];
die($this->backInformation());
}
//Îáðàáîòêà çàïðîñîâ
//Обработка запросов
if ($xml->method == 'check_balance') {
//<sign>MD5(method+MD5(gdKey))</sign>
$sign = md5($xml->method . md5($this->c['key']));
if ($sign == $xml->sign) {
//Áàëàíñ äèëåðà
//Баланс дилера
$balance = 1000000;
$this->BACK = [['gdanswer', [['status', '1'], ['desc', 'Áàëàíñ äèëåðà: ' . $balance], ['balance', $balance]]]];
$this->BACK = [['gdanswer', [['status', '1'], ['desc', 'Баланс дилера: ' . $balance], ['balance', $balance]]]];
$this->add('4', 'check:' . $xml->nick . ':1' . $r, 0);
}
} elseif ($xml->method == 'check') {
/*
nick - ëîãèí ïåðñîíàæà <sign>MD5(nick+method+MD5(gdKey))</sign> */
nick - логин персонажа <sign>MD5(nick+method+MD5(gdKey))</sign> */
$sign = md5($xml->nick . $xml->method . md5($this->c['key']));
if ($sign == $xml->sign) {
$xml->nick = $this->in($xml->nick);
if ($this->test_accaunt($xml->nick) == true) {
//Ïåðñîíàæ íàéäåí è çà÷èñëÿåì åìó èãðîâóþ âàëþòó
$this->BACK = [['gdanswer', [['status', '1'], ['desc', 'Áàíêîâñêèé ñ÷åò íàéäåí']]]];
//Персонаж найден и зачисляем ему игровую валюту
$this->BACK = [['gdanswer', [['status', '1'], ['desc', 'Банковский счет найден']]]];
$this->add('3', 'check:' . $xml->nick . ':1' . $r, 0);
} else {
//Ïåðñîíàæ íå íàéäåí
$this->BACK = [['gdanswer', [['status', '-1'], ['desc', 'Ïëàòåæ íå îáðàáîòàí. Áàíêîâñêèé ñ÷åò íå íàéäåí.']]]];
$this->add('-1', 'Ïåðñîíàæ íå íàéäåí:pay:' . $xml->nick . ':0', 0);
//Персонаж не найден
$this->BACK = [['gdanswer', [['status', '-1'], ['desc', 'Платеж не обработан. Банковский счет не найден.']]]];
$this->add('-1', 'Персонаж не найден:pay:' . $xml->nick . ':0', 0);
}
}
} elseif ($xml->method == 'pay') {
/* Ïðîâîäèì ïëàòåæ
nick - ëîãèí àêêàóíòà , projectid - id ïðîåêòà , sign , amount - äåíüãè , payid - id ïëàòåæà */
/* Проводим платеж
nick - логин аккаунта , projectid - id проекта , sign , amount - деньги , payid - id платежа */
$sign = md5($xml->nick . $xml->projectid . $xml->amount . $xml->payid . $xml->method . md5($this->c['key']));
if ($sign == $xml->sign) {
$xml->nick = $this->in($xml->nick);
if ($this->test_accaunt($xml->nick)) {
//Ïåðñîíàæ íàéäåí è çà÷èñëÿåì åìó èãðîâóþ âàëþòó
//Персонаж найден и зачисляем ему игровую валюту
$bank = $this->test_accaunt($xml->nick);
if ($bank > 0) {
mysql_query('UPDATE `bank` SET `money2` = `money2` + ' . mysql_real_escape_string($xml->amount) . ' WHERE `id` = "' . mysql_real_escape_string($xml->nick) . '" LIMIT 1');
$this->BACK = [['gdanswer', [['status', '1'], ['desc', 'Ïëàòåæ ïðîøåë óñïåøíî'], ['id', $this->c['id']]]]];
$this->BACK = [['gdanswer', [['status', '1'], ['desc', 'Платеж прошел успешно'], ['id', $this->c['id']]]]];
$this->add('2', 'pay:' . $xml->nick . ':' . $xml->projectid . ':' . $xml->sign . ':' . $xml->amount . ':' . $xml->payid . ':' . $bank['id'], $xml->amount);
$user = mysql_fetch_array(mysql_query('SELECT `id`,`uid` FROM `bank` WHERE `id` = "' . mysql_real_escape_string($xml->nick) . '" LIMIT 1'));
@@ -184,59 +195,59 @@ class GameDealer
mysql_query('UPDATE `users` SET `catch` = `catch` + ' . mysql_real_escape_string(floor($xml->amount)) . ' WHERE `id` = "' . mysql_real_escape_string($xml->nick) . '" LIMIT 1');
$r = '<span class=date>' . date('d.m.Y H:i') . '</span> Àëõèìèê <img src=https://img.new-combats.com/i/align/align50.gif width=12 height=15 /><u><b>Enchanter</b> / Àâòîìàòè÷åñêàÿ îïëàòà</u> ñîîáùàåò: ';
$r = '<span class=date>' . date('d.m.Y H:i') . '</span> Алхимик <img src=https://img.new-combats.com/i/align/align50.gif width=12 height=15 /><u><b>Enchanter</b> / Автоматическая оплата</u> сообщает: ';
if ($user['sex'] == 1) {
$r .= 'Óâàæàåìàÿ';
$r .= 'Уважаемая';
} else {
$r .= 'Óâàæàåìûé';
$r .= 'Уважаемый';
}
$r .= ' <b>' . $user['login'] . '</b>, íà Âàø áàíêîâñêèé ñ÷åò ¹' . $bank . ' çà÷èñëåíî ' . $xml->amount . ' Ekr. Áëàãîäàðèì Âàñ çà ïîêóïêó!';
$r .= ' <b>' . $user['login'] . '</b>, на Ваш банковский счет №' . $bank . ' зачислено ' . $xml->amount . ' Ekr. Благодарим Вас за покупку!';
mysql_query("INSERT INTO `chat` (`new`,`city`,`room`,`login`,`to`,`text`,`time`,`type`,`toChat`) VALUES ('1','" . $user['city'] . "','" . $user['room'] . "','','" . $user['login'] . "','" . $r . "','-1','5','0')");
} else {
$this->BACK = [['gdanswer', [['status', '-1'], ['desc', 'Ó ïîëüçîâàòåëÿ îòñóòñòâóåò áàíê'], ['id', $this->c['id']]]]];
$this->add('-1', 'Ó ïåðñîíàæà îòñóòñòâóåò áàíê:pay:' . $xml->nick . ':' . $xml->projectid . ':' . $xml->sign . ':' . $xml->amount . ':' . $xml->payid . ':' . $bank['id'], $xml->amount);
$this->BACK = [['gdanswer', [['status', '-1'], ['desc', 'У пользователя отсутствует банк'], ['id', $this->c['id']]]]];
$this->add('-1', 'У персонажа отсутствует банк:pay:' . $xml->nick . ':' . $xml->projectid . ':' . $xml->sign . ':' . $xml->amount . ':' . $xml->payid . ':' . $bank['id'], $xml->amount);
}
} else {
//Ïåðñîíàæ íå íàéäåí
$this->BACK = [['gdanswer', [['status', '-1'], ['desc', 'Ïëàòåæ íå îáðàáîòàí. Ïåðñîíàæ íå íàéäåí.']]]];
$this->add('-1', 'Ïåðñîíàæ íå íàéäåí:pay:' . $xml->nick . ':0', 0);
//Персонаж не найден
$this->BACK = [['gdanswer', [['status', '-1'], ['desc', 'Платеж не обработан. Персонаж не найден.']]]];
$this->add('-1', 'Персонаж не найден:pay:' . $xml->nick . ':0', 0);
}
} else {
//Îøèáêà ñèãíàòóðû
$this->BACK = [['gdanswer', [['status', '-1'], ['desc', 'Îøèáêà ñèãíàòóðû']]]];
$this->add('-1', 'Îøèáêà ñèãíàòóðû:pay:' . $xml->nick . ':0', 0);
//Ошибка сигнатуры
$this->BACK = [['gdanswer', [['status', '-1'], ['desc', 'Ошибка сигнатуры']]]];
$this->add('-1', 'Ошибка сигнатуры:pay:' . $xml->nick . ':0', 0);
}
} elseif ($xml->method == 'check_login') {
/* Ïðîâåðêà àêêàóíòà
nick - ëîãèí àêêàóíòà , projectid - id ïðîåêòà , sign */
/* Проверка аккаунта
nick - логин аккаунта , projectid - id проекта , sign */
$sign = md5($xml->nick . $xml->method . md5($this->c['key']));
if ($sign == $xml->sign) {
$xml->nick = $this->in($xml->nick);
if ($this->test_accaunt($xml->nick)) {
//Ïåðñîíàæ íàéäåí
$this->BACK = [['gdanswer', [['status', '1'], ['desc', 'Ñ÷åò íàéäåí'], ['addinfo', $this->bank_user($xml->nick)]]]];
//Персонаж найден
$this->BACK = [['gdanswer', [['status', '1'], ['desc', 'Счет найден'], ['addinfo', $this->bank_user($xml->nick)]]]];
$this->add('1', 'check_login:' . $xml->nick . ':1' . $r, 0);
} else {
//Ïåðñîíàæ íå íàéäåí
$this->BACK = [['gdanswer', [['status', '-1'], ['desc', 'Ñ÷åò íå íàéäåí']]]];
$this->add('-1', 'Ïåðñîíàæ íå íàéäåí:check_login:' . $xml->nick . ':0', 0);
//Персонаж не найден
$this->BACK = [['gdanswer', [['status', '-1'], ['desc', 'Счет не найден']]]];
$this->add('-1', 'Персонаж не найден:check_login:' . $xml->nick . ':0', 0);
}
} else {
//Îøèáêà ñèãíàòóðû
$this->BACK = [['gdanswer', [['status', '-1'], ['desc', 'Îøèáêà ñèãíàòóðû']]]];
$this->add('-1', 'Îøèáêà ñèãíàòóðû:pay:' . $xml->nick . ':0', 0);
//Ошибка сигнатуры
$this->BACK = [['gdanswer', [['status', '-1'], ['desc', 'Ошибка сигнатуры']]]];
$this->add('-1', 'Ошибка сигнатуры:pay:' . $xml->nick . ':0', 0);
}
} else {
$this->BACK = [['gdanswer', [['status', '-1'], ['desc', 'Íåèçâåñòíûé òèï çàïðîñà']]]];
$this->add('-1', 'Íåèçâåñòíûé òèï çàïðîñà:error_method:gamedealer', 0);
$this->BACK = [['gdanswer', [['status', '-1'], ['desc', 'Неизвестный тип запроса']]]];
$this->add('-1', 'Неизвестный тип запроса:error_method:gamedealer', 0);
}
//Âîçâðàùàåì ðåçóëüòàò
//Возвращаем результат
$this->backInformation();
}
}
+64 -64
View File
@@ -11,87 +11,87 @@ class Achievements
private $info;
private array $data = [
'zb' => [
'questname' => 'Åæåäí.Çàäàíèÿ',
'quest' => 'Âûïîëíèòü çàäàíèÿ áàáêè.',
'check' => ['Çàäàíèé', 5, 25, 50, 100, 250],
'prize' => ['Æåòîí <br>óñïåõà <br>', 5, 20, 40, 60, 100],
'questname' => 'Ежедн.Задания',
'quest' => 'Выполнить задания бабки.',
'check' => ['Заданий', 5, 25, 50, 100, 250],
'prize' => ['Жетон <br>успеха <br>', 5, 20, 40, 60, 100],
'startlink' => 11
],
'vx' => [
'questname' => 'Õàîòè÷åñêèå áîè',
'quest' => 'Ïîáåäèòü â õàîòè÷åñêèõ áîÿõ.',
'check' => ['Ïîáåä', 50, 300, 400, 500, 1000],
'prize' => ['åêð.', 25, 50, 75, 100, 200],
'questname' => 'Хаотические бои',
'quest' => 'Победить в хаотических боях.',
'check' => ['Побед', 50, 300, 400, 500, 1000],
'prize' => ['екр.', 25, 50, 75, 100, 200],
'startlink' => 21
],
'snt' => [
'questname' => 'Ñóíäóê òðóïîæîðà',
'quest' => 'Îòêðûòü ñóíäóê òðóïîæîðà.',
'check' => ['Îòêðûòèé', 5, 25, 50, 100, 250],
'prize' => ['åêð.', 10, 25, 50, 75, 200],
'questname' => 'Сундук трупожора',
'quest' => 'Открыть сундук трупожора.',
'check' => ['Открытий', 5, 25, 50, 100, 250],
'prize' => ['екр.', 10, 25, 50, 75, 200],
'startlink' => 31
],
'rp' => [
'questname' => 'Ðóíû 8 ëâë.',
'quest' => 'Ïîëó÷èòü ðóíó ïðè ïëàâêå ïëîõèõ çàãîòîâîê. [S]',
'check' => ['Ðóí', 5, 10, 25, 50, 100],
'prize' => ['Ïëîõèå <br> çàãîòîâêè <br>', 5, 7, 10, 12, 15],
'questname' => 'Руны 8 лвл.',
'quest' => 'Получить руну при плавке плохих заготовок. [S]',
'check' => ['Рун', 5, 10, 25, 50, 100],
'prize' => ['Плохие <br> заготовки <br>', 5, 7, 10, 12, 15],
'startlink' => 41
],
'rn' => [
'questname' => 'Ðóíû 9 ëâë.',
'quest' => 'Ïîëó÷èòü ðóíó ïðè ïëàâêå íîðìàëüíûõ çàãîòîâîê. [M]',
'check' => ['Ðóí', 5, 10, 15, 25, 50],
'prize' => ['Íîðìàëüíûå <br> çàãîòîâêè <br>', 5, 7, 9, 12, 15],
'questname' => 'Руны 9 лвл.',
'quest' => 'Получить руну при плавке нормальных заготовок. [M]',
'check' => ['Рун', 5, 10, 15, 25, 50],
'prize' => ['Нормальные <br> заготовки <br>', 5, 7, 9, 12, 15],
'startlink' => 51
],
'rb' => [
'questname' => 'Ðóíû 10 ëâë.',
'quest' => 'Ïîëó÷èòü ðóíó ïðè ïëàâêå èäåàëüíûõ çàãîòîâîê. [L]',
'check' => ['Ðóí', 2, 5, 8, 11, 15],
'prize' => ['Èäåàëüíûå <br> çàãîòîâêè <br>', 2, 4, 6, 10, 15],
'questname' => 'Руны 10 лвл.',
'quest' => 'Получить руну при плавке идеальных заготовок. [L]',
'check' => ['Рун', 2, 5, 8, 11, 15],
'prize' => ['Идеальные <br> заготовки <br>', 2, 4, 6, 10, 15],
'startlink' => 61
],
'pg' => [
'questname' => 'Ãåðîè÷. Ñðàæåíèÿ',
'quest' => 'Ïîó÷àñòâîâàòü â ãåðîè÷åñêîì ñðàæåíèè.',
'check' => ['Ó÷àñòèé', 100, 200, 400, 600, 1000],
'prize' => ['Æåòîí <br>óñïåõà <br>', 10, 20, 40, 60, 80],
'questname' => 'Героич. Сражения',
'quest' => 'Поучаствовать в героическом сражении.',
'check' => ['Участий', 100, 200, 400, 600, 1000],
'prize' => ['Жетон <br>успеха <br>', 10, 20, 40, 60, 80],
'startlink' => 71
],
'bv' => [
'questname' => 'Ïðîäàæè Áàáóøêå',
'quest' => 'Ïðîäàòü áàáóøêå íàéäåííûå âåùè â ïåùåðå.',
'check' => ['Ïðîäàæ', 5, 25, 50, 100, 250],
'prize' => ['êð.', 500, 1000, 2000, 4000, 5000],
'questname' => 'Продажи Бабушке',
'quest' => 'Продать бабушке найденные вещи в пещере.',
'check' => ['Продаж', 5, 25, 50, 100, 250],
'prize' => ['кр.', 500, 1000, 2000, 4000, 5000],
'startlink' => 81
],
'kw' => [
'questname' => 'Êëàí Ïîåäèíêè',
'quest' => 'Ïîáåäèòü â êëàíîâîé âîéíå.',
'check' => ['Ïîáåä', 5, 10, 15, 20, 25],
'prize' => ['Ñâèòîê <br> êëàíîâîãî<br> îïûòà ', 1, 2, 5, 10, 15],
'questname' => 'Клан Поединки',
'quest' => 'Победить в клановой войне.',
'check' => ['Побед', 5, 10, 15, 20, 25],
'prize' => ['Свиток <br> кланового<br> опыта ', 1, 2, 5, 10, 15],
'startlink' => 91
],
'pa' => [ # not implemented!
'questname' => 'Ïîêðîâèòåëüñòâî',
'quest' => 'Ïîëó÷èòü ïîêðîâèòåëüñòâî Àíãåëà.',
'check' => ['Ïîëó÷åíî', 5, 25, 50, 100, 250],
'questname' => 'Покровительство',
'quest' => 'Получить покровительство Ангела.',
'check' => ['Получено', 5, 25, 50, 100, 250],
'prize' => null,
'startlink' => null
],
'bs' => [
'questname' => 'Áàøíÿ ñìåðòè',
'quest' => 'Ïîáåäû â áàøíå ñìåðòè.',
'check' => ['Ïîáåä', 1, 5, 10, 50, 500],
'prize' => ['åêð.', 1, 5, 10, 50, 200],
'questname' => 'Башня смерти',
'quest' => 'Победы в башне смерти.',
'check' => ['Побед', 1, 5, 10, 50, 500],
'prize' => ['екр.', 1, 5, 10, 50, 200],
'startlink' => 101
],
'trn' => [ # not implemented!
'questname' => 'Òóðíèðû',
'quest' => 'Ïîó÷àâñòâîâàòü â òóðíèðàõ.',
'check' => ['Ïîáåä', 25, 50, 100, 200, 500],
'prize' => ['åêð.', 25, 25, 25, 25, 50],
'questname' => 'Турниры',
'quest' => 'Поучавствовать в турнирах.',
'check' => ['Побед', 25, 50, 100, 200, 500],
'prize' => ['екр.', 25, 25, 25, 25, 50],
'startlink' => 111
],
];
@@ -102,19 +102,19 @@ class Achievements
$this->info = Db::getRow('select * from users_achiv where id = ?', [$user->info['id']]);
}
//fixme: ñþäà èíîãäà ïðèõîäèò (NULL, NULL).
//fixme: сюда иногда приходит (NULL, NULL).
private function prizeName(?int $int, ?string $string): string
{
return in_array($string, ['åêð.', 'êð.']) ? $int . ' ' . $string : $string . ' ' . $int;
return in_array($string, ['екр.', 'кр.']) ? $int . ' ' . $string : $string . ' ' . $int;
}
private function drawSunduk($nagr, $whatInside, $tier): string
{
return vsprintf(
'<img onclick="%s" onmouseover="%s" onmouseout="%s" onmousedown="%s" class="cp" src="%s" alt="Ñóíäóê">',
'<img onclick="%s" onmouseover="%s" onmouseout="%s" onmousedown="%s" class="cp" src="%s" alt="Сундук">',
[
"location.href='\main.php?titul&nagr=$nagr'",
"top.hi(this, '<b>Ñóíäóê $tier ðàíãà<hr>Ñîäåðæèò:<hr> $whatInside</b>', event, 2, 0, 1, 1, 'max-width:307px')",
"top.hi(this, '<b>Сундук $tier ранга<hr>Содержит:<hr> $whatInside</b>', event, 2, 0, 1, 1, 'max-width:307px')",
"top.hic();",
"top.hic();",
"https://img.new-combats.com/i/titul/nagr$tier.gif"
@@ -129,15 +129,15 @@ class Achievements
foreach ($this->data as $key => $value) {
//Áëÿ, êàêóþ õåðíþ ïðèõîäèòñÿ ãîðîäèòü!
//Ïåðâîå ÷èñëî = òðåáîâàíèå ñëåäóþùåãî òèðà ìèíóñ òðåáîâàíèå òåêóùåãî òèðà (íàäî íàáðàòü)
//Âòîðîå ÷èñëî = êîëè÷åñòâî äîñòèæåíèé ìèíóñ òðåáîâàíèå òåêóùåãî òèðà (íàáðàë)
//Òðåáîâàíèÿ òåêóùåãî òèðà îòíèìàþòñÿ ÷òîáû êàæäûé òèð íà÷èíàë ñ÷èòàòü ïðîöåíò ñ 0.
//Ïèçäû äàòü òîìó, êòî òàê óåáàíñêè íàçûâàåò ïåðåìåííûå, ÷òî íóæíî ïîëäíÿ âúåçæàòü ÷òî ïðîèñõîäèò.
//È õåð ïîìåíÿåøü - âñ¸ ñëîìàåòñÿ. FFUUUUUUUUUUUUUU!!! Ins.
//Бля, какую херню приходится городить!
//Первое число = требование следующего тира минус требование текущего тира (надо набрать)
//Второе число = количество достижений минус требование текущего тира (набрал)
//Требования текущего тира отнимаются чтобы каждый тир начинал считать процент с 0.
//Пизды дать тому, кто так уебански называет переменные, что нужно полдня въезжать что происходит.
//И хер поменяешь - всё сломается. FFUUUUUUUUUUUUUU!!! Ins.
if (!is_numeric($value['check'][$this->info['klas' . $key]])) {
// Ïîòîìû ÷òî ïåðâûé ýëåìåíò ìàññèâà - ñëîâî. Â ÐÍÐ5.4 ïðîêàòûâàëî, â ÐÍÐ7.4 - íåò.
// Потомы что первый элемент массива - слово. В РНР5.4 прокатывало, в РНР7.4 - нет.
$value['check'][$this->info['klas' . $key]] = 0;
}
@@ -148,15 +148,15 @@ class Achievements
$questname = empty($value['questname']) ? $value['quest'] : $value['questname'];
$string .= '<h4>' . $questname . '</h4>';
$string .= '<strong>' . $value['quest'] . '</strong><br>';
$string .= 'Òåêóùèé Ðàíã: <strong>' . $this->info['klas' . $key] . '</strong> ';
$string .= 'Êîëè÷åñòâî ' . mb_strtolower($value['check'][0]) . ': <strong>' . $this->info[$key] . ' = ' . $percentToSuccess . '%</strong>';
$string .= 'Текущий Ранг: <strong>' . $this->info['klas' . $key] . '</strong> ';
$string .= 'Количество ' . mb_strtolower($value['check'][0]) . ': <strong>' . $this->info[$key] . ' = ' . $percentToSuccess . '%</strong>';
//$string .= '<progress value="' . $percentToSuccess . '" max="100" style="accent-color:green; appearance: none;">' . $percentToSuccess . '</progress>';
$string .= Table::get([
['Ðàíãè', 1, 2, 3, 4, 5],
['Ранги', 1, 2, 3, 4, 5],
$value['check'],
[
'Íàãðàäà',
'Награда',
$this->prizeName($value['prize'][1], $value['prize'][0]),
$this->prizeName($value['prize'][2], $value['prize'][0]),
$this->prizeName($value['prize'][3], $value['prize'][0]),
@@ -171,7 +171,7 @@ class Achievements
!empty($value['prize']) &&
!empty($value['startlink'])
) {
$string .= '<br>Íàãðàäà:<br>';
$string .= '<br>Награда:<br>';
$string .= $this->drawSunduk(
$this->info[$key . '_n'] + $value['startlink'],
$this->prizeName($value['prize'][$this->info[$key . '_n'] + 1], $value['prize'][0]),
@@ -208,7 +208,7 @@ class Achievements
if ($this->info[$k] >= $this->data[$k]['check'][$i]) {
$this->info["klas$k"] = $i;
if ($i === 5) {
# Íà 5 ðàíãå äîëæíî îòäàâàòü ìàêñèìóì.
# На 5 ранге должно отдавать максимум.
$this->info["klasP$k"] = 100;
} else {
$this->info["klasP$k"] = Math::get100Percentage(
+1 -1
View File
@@ -10,7 +10,7 @@ require_once 'Runes/Runes.php';
//require_once 'Tournament/TournamentModel.php';
require_once 'Achievements.php';
//Âìåñòî êðîíà äëÿ òóðíèðà.
//Вместо крона для турнира.
//if (Tournament::IS_ENABLED) {
// (new Tournament())->startAllBattles();
//}
+3 -3
View File
@@ -12,15 +12,15 @@ use PDOStatement;
class DbOld
{
/**
* Íàñòðîéêè ïîäêëþ÷åíèÿ
* Ëó÷øå âûíîñèòü â êîíôèã
* Настройки подключения
* Лучше выносить в конфиг
* self::DB_HOST -> Config::DB_HOST
*/
const DB_HOST = '127.0.0.1'; // localhost
const DB_USER = 'newcom1_abk';
const DB_PASSWORD = '4nWYsIM[c?}P';
const DB_NAME = 'newcom1_abk';
const CHARSET = 'cp1251';
const CHARSET = 'utf8mb4';
const DB_PREFIX = '';
/**
+28 -28
View File
@@ -4,7 +4,7 @@ namespace Insallah;
class Runes
{
/** Ñîçäà¸ì ðóíó â çàâèñèìîñòè îò óðîâíÿ.
/** Создаём руну в зависимости от уровня.
* @param $level
*
* @return array
@@ -26,24 +26,24 @@ class Runes
['s5', 'm11', 'mpAll', 'pzm']
];
$vars = [
's1' => ['Ñèëà', mt_rand(1, $stats[$level])],
's2' => ['Ëîâêîñòü', mt_rand(1, $stats[$level])],
's3' => ['Èíòóèöèÿ', mt_rand(1, $stats[$level])],
's5' => ['Èíòåëëåêò', mt_rand(1, $stats[$level])],
'pa1' => ['Ìîùíîñòè Êîëþùåãî óðîíà', mt_rand(1, $power[$level])],
'pa2' => ['Ìîùíîñòè Ðóáÿùåãî óðîíà', mt_rand(1, $power[$level])],
'pa3' => ['Ìîùíîñòè Äðîáÿùåãî óðîíà', mt_rand(1, $power[$level])],
'pa4' => ['Ìîùíîñòè Ðåæóùåãî óðîíà', mt_rand(1, $power[$level])],
'm2' => ['ìô. Ïðîòèâ Êðèòè÷åñêîãî Óäàðà', mt_rand(5, 15)],
'm3' => ['ÌÊ', mt_rand(1, 3)],
'antm3' => ['ÏÌÊ', mt_rand(1, 3)],
'm5' => ['ìô. Ïðîòèâ Óâåðòûâàíèÿ', mt_rand(5, 10)],
'm11' => ['Ìîùíîñòè Ìàãèè ñòèõèè', mt_rand(1, $power[$level])],
's1' => ['Сила', mt_rand(1, $stats[$level])],
's2' => ['Ловкость', mt_rand(1, $stats[$level])],
's3' => ['Интуиция', mt_rand(1, $stats[$level])],
's5' => ['Интеллект', mt_rand(1, $stats[$level])],
'pa1' => ['Мощности Колющего урона', mt_rand(1, $power[$level])],
'pa2' => ['Мощности Рубящего урона', mt_rand(1, $power[$level])],
'pa3' => ['Мощности Дробящего урона', mt_rand(1, $power[$level])],
'pa4' => ['Мощности Режущего урона', mt_rand(1, $power[$level])],
'm2' => ['мф. Против Критического Удара', mt_rand(5, 15)],
'm3' => ['МК', mt_rand(1, 3)],
'antm3' => ['ПМК', mt_rand(1, 3)],
'm5' => ['мф. Против Увертывания', mt_rand(5, 10)],
'm11' => ['Мощности Магии стихии', mt_rand(1, $power[$level])],
'hpAll' => ['HP', mt_rand(5, 15)],
'mpAll' => ['MP', mt_rand(10, 20)],
'pzm' => ['Ïîäàâëåíèå çàùèòû îò ìàãèè', 1],
'za' => ['Çàùèòà îò Óðîíà', mt_rand(5, 10)],
'zma' => ['Çàùèòà îò Ìàãèè', mt_rand(5, 10)]
'pzm' => ['Подавление защиты от магии', 1],
'za' => ['Защита от Урона', mt_rand(5, 10)],
'zma' => ['Защита от Магии', mt_rand(5, 10)]
];
$rune = $runes[array_rand($runes)]; // arr (s, pa\m, rand9\mpAll, other)
@@ -51,40 +51,40 @@ class Runes
$runeVals = [$vars[$rune[0]][1], $vars[$rune[1]][1], $vars[$rune[2]][1], $vars[$rune[3]][1]];
$resultRune = array_combine($rune, $runeVals);
$resultText = array_combine($runeTxt, $runeVals);
if ($level < 10) { // Îòðåçàåì ïàðàìåòð 4.
if ($level < 10) { // Отрезаем параметр 4.
array_pop($resultRune);
array_pop($resultText);
}
if ($level < 9) { // Îòðåçàåì ïàðàìåòð 3.
if ($level < 9) { // Отрезаем параметр 3.
array_pop($resultRune);
array_pop($resultText);
}
//Ñòðî÷êà data â áàçó
//Строчка data в базу
$returnData = '|' . http_build_query($resultRune, '', '|');
$returnData = str_replace('|', '|add_', $returnData);
//Ñòðî÷êà ÷åëîâåêîïîíÿòíûõ ïàðàìåòðîâ â ñòàòóñ.
//Строчка человекопонятных параметров в статус.
$returnText = urldecode(http_build_query($resultText, '', ', '));
$returnText = 'Õàðàêòåðèñòèêè Ðóíû: ' . str_replace('=', ': +', $returnText) . '.';
$returnText = 'Характеристики Руны: ' . str_replace('=', ': +', $returnText) . '.';
return [$returnData, $returnText];
}
/** Âûêóñûâàåò ðóíó èç ïðåäìåòà.
/** Выкусывает руну из предмета.
*
* @param array $itemDataArray
* data ïðåäìåòà
* data предмета
*
* @return array ìàññèâ, item - ïðåäìåò, rune - ðóíà èç ïðåäìåòà, rune_id - id ðóíû.
* Îáà â ïîäãîòîâëåííîì ñòðî÷íîì ôîðìàòå äëÿ data
* @return array массив, item - предмет, rune - руна из предмета, rune_id - id руны.
* Оба в подготовленном строчном формате для data
*/
public static function removeRuneData($itemDataArray)
{
# Èùåì åñòü ëè â ïðåäìåòå ðóíà îïðåäåë¸ííîãî òèïà.
# Ищем есть ли в предмете руна определённого типа.
$runeid = array_search('rune_id', array_flip($itemDataArray));
if (!in_array($runeid, [6001, 6002, 6003])) {
return [];
}
$bonusArgs = 0;
#  çàâèñèìîñòè îò òèïà ðóíû ñ÷èòàåì êîëè÷åñòâî ýëåìåíòîâ-áîíóñîâ.
# В зависимости от типа руны считаем количество элементов-бонусов.
if ($runeid === 6001) {
$bonusArgs = 2;
}
@@ -11,13 +11,13 @@ class Tournament
private const PRIZE2 = 10;
private const PRIZE3 = 5;
const MIN_EXP = 175000;
private const CHAT_MESSAGE = 'Âíèìàíèå! Òóðíèð äëÿ %d óðîâíÿ îòêðûò! Ïîñïåøèòå ïðèíÿòü ó÷àñòèå â Çàëå Âîèíîâ!';
private const VICTORY_MESSAGE = 'Òóðíèð äëÿ %d óðîâíåé çàâåðø¸í! Ïåðâîå ìåñòî: %s. Âòîðîå ìåñòî: %s. Òðåòüå ìåñòî: %s.';
private const CHAT_MESSAGE = 'Внимание! Турнир для %d уровня открыт! Поспешите принять участие в Зале Воинов!';
private const VICTORY_MESSAGE = 'Турнир для %d уровней завершён! Первое место: %s. Второе место: %s. Третье место: %s.';
private const DELAY1 = '+12hour';
private const DELAY2 = '+6hour';
private const DELAY3 = '+3hour';
/** Ôîðìóëà ðàññ÷¸òà ðàçðåø¸ííîé ñòîèìîñòè îäåòûõ ïðåäìåòîâ.
/** Формула рассчёта разрешённой стоимости одетых предметов.
*
* @param int $int
*
@@ -29,7 +29,7 @@ class Tournament
}
/**
* Ïðîâåðÿåì ìîæåò ëè èãðîê ó÷àâñòâîâàòü â òóðíèðå è ëèáî ïðèñîåäèíÿåì åãî, ëèáî îáëàìûâàåì.
* Проверяем может ли игрок учавствовать в турнире и либо присоединяем его, либо обламываем.
*
* @param int $uid
*
@@ -37,7 +37,7 @@ class Tournament
*/
public function join(int $uid): void
{
/** Âîçâðàùàåò level, èëè 0 åñëè ïðîâàëåíû ïðîâåðêè. */
/** Возвращает level, или 0 если провалены проверки. */
$userLevel = TournamentModel::getUserLevel($uid);
if (
$userLevel === 0 ||
@@ -67,7 +67,7 @@ class Tournament
}
/**
* Ïðîâåðêà äëÿ êðîíà\êîíôèãà. Âûáèâàåò ïðîèãðàâøèõ è ïåðåçàïóñêàåò ïîåäèíêè âî âñåõ òóðíèðàõ.
* Проверка для крона\конфига. Выбивает проигравших и перезапускает поединки во всех турнирах.
* @return void
*/
public function startAllBattles(): void
@@ -91,7 +91,7 @@ class Tournament
}
/**
* Ïîëó÷àåì ïàðû áîéöîâ è íà÷èíàåì èõ ïîåäèíêè.
* Получаем пары бойцов и начинаем их поединки.
*
* @param array $fightersList
*
@@ -108,7 +108,7 @@ class Tournament
}
/**
* Íàãðàæäàåì ïîáåäèòåëåé òóðíèðà, ÷èñòèì áàçó.
* Награждаем победителей турнира, чистим базу.
*
* @param int $tid
*
@@ -6,8 +6,8 @@ class TournamentModel
{
/**
* ïðîâåðêà óðîâíÿ, ñòîèìîñòè ýêâèïà, ïðî÷èå ïðîâåðêè, ÷òî ïåðñîíàæ ñâîáîäåí
* òàéìåð îæèäàíèÿ 30 ìèíóò
* проверка уровня, стоимости эквипа, прочие проверки, что персонаж свободен
* таймер ожидания 30 минут
*
* @param int $uid
*
@@ -70,7 +70,7 @@ class TournamentModel
}
/**
* Ñ÷èòàåì ñêîëüêî èãðîêîâ æäóò â çàÿâêå íà òóðíèð.
* Считаем сколько игроков ждут в заявке на турнир.
*
* @param int $tid
*
@@ -83,7 +83,7 @@ class TournamentModel
}
/**
* Ñîçäàíèå íîâîãî òóðíèðà.
* Создание нового турнира.
*
* @param int $tid
*
@@ -96,7 +96,7 @@ class TournamentModel
}
/**
* Èãðîê ïðèñîåäèíÿåòñÿ ê òóðíèðó è òåëåïîðòèðóåòñÿ â òóðíèðíóþ êîìíàòó.
* Игрок присоединяется к турниру и телепортируется в турнирную комнату.
*
* @param int $uid
* @param int $tid
@@ -105,7 +105,7 @@ class TournamentModel
*/
public static function joinTournament(int $uid, int $tid): void
{
/** Êàñòîìíûå êîìíàòû 25008 - 25012. */
/** Кастомные комнаты 25008 - 25012. */
$roomId = 25000 + $tid;
$db = new Db();
$db::sql('insert into tournaments_users (tid, uid) values (?, ?)', [$tid, $uid]);
@@ -113,7 +113,7 @@ class TournamentModel
}
/**
* Ñòàðò òóðíèðà.
* Старт турнира.
*
* @param int $tid
*
@@ -126,7 +126,7 @@ class TournamentModel
}
/**
* ×èñòèì áàçû îò ïðîøåäøåãî òóðíèðà.
* Чистим базы от прошедшего турнира.
*
* @param int $tid
*
@@ -135,12 +135,12 @@ class TournamentModel
public static function destroyTournament(int $tid): void
{
$db = new Db();
//Óáåäèòüñÿ ÷òî â áàçå íàñòðîåí foreign_keys è ïîñëåäóåò àâòîî÷èñòêà tournaments_users !!!
//Убедиться что в базе настроен foreign_keys и последует автоочистка tournaments_users !!!
$db::sql('delete from tournaments where tid = ?', [$tid]);
}
/**
* Ïîëó÷àåì ñïèñîê áîéöîâ è áü¸ì èõ íà ïàðû. Âîçâðàùàåì ñïèñêè ïàð + 1 ïîñëåäíèé áåç ïàðû åñëè åñòü.
* Получаем список бойцов и бьём их на пары. Возвращаем списки пар + 1 последний без пары если есть.
*
* @param array $fightersList
*
@@ -154,7 +154,7 @@ class TournamentModel
}
/**
* Âûáèðàåì æèâûõ áîéöîâ íå ñðàæàþùèõñÿ â äàííûé ìîìåíò.
* Выбираем живых бойцов не сражающихся в данный момент.
*
* @param int $tid
*
@@ -167,7 +167,7 @@ class TournamentModel
}
/**
* Âûáèðàåì ïîáåäèòåëåé. Ñìåùàåì ìàññèâ, ÷òîáû âîçâðàò ø¸ë ñ åäèíèöû.
* Выбираем победителей. Смещаем массив, чтобы возврат шёл с единицы.
*
* @param int $tid
*
@@ -185,7 +185,7 @@ class TournamentModel
}
/**
* Ïðîáóåì âûêóñèòü ïðîèãðàâøåãî â ïîñëåäíåé òóðíèðíîé áèòâå è óäàëèòü ýòó ñàìóþ áèòâó âî èçáåæàíèå.
* Пробуем выкусить проигравшего в последней турнирной битве и удалить эту самую битву во избежание.
* @return mixed
*/
public static function getLooser()
@@ -216,7 +216,7 @@ class TournamentModel
}
/**
* Âûáûâøèé èç òóðíèðà ïîêèäàåò êîìíàòó è ïîëó÷àåò âðåìÿ ñìåðòè.
* Выбывший из турнира покидает комнату и получает время смерти.
*
* @param int $uid
* @param bool $winner
@@ -227,17 +227,17 @@ class TournamentModel
if (!$uid) {
return;
}
//$winner_timer_add = $winner? 500 : 0; # Ïîñëåäíûé ÄÎËÆÅÍ áûòü ïîñëåäíèì.
//$winner_timer_add = $winner? 500 : 0; # Последный ДОЛЖЕН быть последним.
$db = new Db();
$db::sql('update tournaments_users set death_time = unix_timestamp() + 500 where death_time = 0 and uid = ?', [$uid]);
self::teleport($uid, 9);
//fixme: Êëàññû íå ïîäêëþ÷àþòñÿ äðóã ê äðóãó. Íóæíî ìåíÿòü àðõèòåêòóðó èãðû. :(
//fixme: Классы не подключаются друг к другу. Нужно менять архитектуру игры. :(
Db::sql("update users_achiv set trn = trn + 1 where id = ?", [$uid]);
//(new Achievements(\user::start()))->updateCounter('trn');
}
/**
* Óçíà¸ì id òóðíèðà ïî id èãðîêà.
* Узнаём id турнира по id игрока.
*
* @param int $uid
*
@@ -250,10 +250,10 @@ class TournamentModel
}
/**
* Ïîïðîáóåì ñòàðòîíóòü ïîåäèíîê.
* 25000 - Óíèêàëüíûé id ïîåäèíêà ïîä òóðíèðû.
* noinc - çàïðåò íà âìåøàòåëüñòâî
* invis - íåâèäèìûé áîé
* Попробуем стартонуть поединок.
* 25000 - Уникальный id поединка под турниры.
* noinc - запрет на вмешательство
* invis - невидимый бой
*
* @param int $uid1
* @param int $uid2
@@ -270,14 +270,14 @@ class TournamentModel
$db::exec('insert into battle (city, time_start, timeout, type, invis, noinc, travmChance, typeBattle)
values (\'capitalcity\', unix_timestamp(), 60, 0, 1, 1, 0, 25000)');
$bid = $db::lastInsertId(); // ÂÀÆÍÎ!
$bid = $db::lastInsertId(); // ВАЖНО!
$db::sql('update stats set team = 1, hpNow = hpAll, mpNow = mpAll where id = ?', [$uid1]);
$db::sql('update stats set team = 2, hpNow = hpAll, mpNow = mpAll where id = ?', [$uid2]);
$db::sql('update users set battle = ? where id in (?, ?)', [$bid, $uid1, $uid2]);
}
/**
* Óçíà¸ì ëîãèí ïåðñîíàæà ïî åãî id.
* Узнаём логин персонажа по его id.
*
* @param int $uid
*
@@ -290,7 +290,7 @@ class TournamentModel
}
/**
* Òåëåïîðò ïî êîìíàòàì.
* Телепорт по комнатам.
*
* @param int $uid
* @param int $roomId
@@ -304,7 +304,7 @@ class TournamentModel
}
/**
* Íåò ïðîâåðîê $message ïîòîìó ÷òî îíî âñåãäà çàäà¸òñÿ â êîäå è èãðîê íà íåãî íå âëèÿåò.
* Нет проверок $message потому что оно всегда задаётся в коде и игрок на него не влияет.
*
* @param string $message
*
@@ -320,7 +320,7 @@ class TournamentModel
}
/**
* Ãåíåðèðóåò ìíîæåñòâåííûé çàïðîñ ñðàçó íà $quantity îäíîòèïíûõ ïðåäìåòîâ â èíâåíòàðü ïîëüçîâàòåëÿ $uid.
* Генерирует множественный запрос сразу на $quantity однотипных предметов в инвентарь пользователя $uid.
*
* @param int $uid
* @param int $quantity
@@ -342,7 +342,7 @@ class TournamentModel
}
}
/** Ýôôåêò-îãðàíè÷èòåëü íà ó÷àñòèå â òóðíèðå.
/** Эффект-ограничитель на участие в турнире.
* @param int $uid
* @param int $unixtime
*
@@ -352,7 +352,7 @@ class TournamentModel
{
$db = new Db();
$query = 'insert into eff_users (id_eff, uid, name, timeUse) VALUES (?,?,?,?)';
$args = [486, $uid, 'Ïðèç¸ð ãîðîäñêîãî òóðíèðà!', $unixtime];
$args = [486, $uid, 'Призёр городского турнира!', $unixtime];
$db::sql($query, $args);
}
}
@@ -11,8 +11,8 @@ class Config
const PRIZE2 = 10;
const PRIZE3 = 5;
const MIN_EXP = 175000;
const CHAT_MESSAGE = 'Âíèìàíèå! Òóðíèð äëÿ %d óðîâíÿ îòêðûò! Ïîñïåøèòå ïðèíÿòü ó÷àñòèå â Çàëå Âîèíîâ!';
const VICTORY_MESSAGE = 'Òóðíèð äëÿ %d óðîâíåé çàâåðø¸í! Ïåðâîå ìåñòî: %s. Âòîðîå ìåñòî: %s. Òðåòüå ìåñòî: %s.';
const CHAT_MESSAGE = 'Внимание! Турнир для %d уровня открыт! Поспешите принять участие в Зале Воинов!';
const VICTORY_MESSAGE = 'Турнир для %d уровней завершён! Первое место: %s. Второе место: %s. Третье место: %s.';
const DELAY1 = '+12hour';
const DELAY2 = '+6hour';
const DELAY3 = '+3hour';
@@ -23,7 +23,7 @@ class Config
const RETURN_ROOM = 9;
const MINIMUM_USER_LEVEL = 8;
/** Ôîðìóëà ðàññ÷¸òà ðàçðåø¸ííîé ñòîèìîñòè îäåòûõ ïðåäìåòîâ.
/** Формула рассчёта разрешённой стоимости одетых предметов.
*
* @param $level
* @return float|int
@@ -48,7 +48,7 @@ class GameConnector
}
/**
* Óçíà¸ì ëîãèí ïåðñîíàæà ïî åãî id.
* Узнаём логин персонажа по его id.
*
* @return mixed
*/
@@ -58,9 +58,9 @@ class GameConnector
}
/**
* Òåëåïîðò ïî êîìíàòàì.
* Телепорт по комнатам.
*
* @param bool $out - îáðàòíûé òåëåïîðò.
* @param bool $out - обратный телепорт.
*
* @return void
*/
@@ -71,9 +71,9 @@ class GameConnector
}
/**
* Ïîëó÷àåì ñïèñîê áîéöîâ è áü¸ì èõ íà ïàðû, ìåæäó êîòîðûìè ñòàðòóþò ïîåäèíêè 1õ1.
* noinc - çàïðåò íà âìåøàòåëüñòâî
* invis - íåâèäèìûé áîé
* Получаем список бойцов и бьём их на пары, между которыми стартуют поединки 1х1.
* noinc - запрет на вмешательство
* invis - невидимый бой
*
* @param array $fightersList
*
@@ -100,7 +100,7 @@ class GameConnector
}
/**
* Ãåíåðèðóåò ìíîæåñòâåííûé çàïðîñ ñðàçó íà $quantity îäíîòèïíûõ ïðåäìåòîâ â èíâåíòàðü ïîëüçîâàòåëÿ $uid.
* Генерирует множественный запрос сразу на $quantity однотипных предметов в инвентарь пользователя $uid.
*
* @param int $quantity
*
@@ -120,7 +120,7 @@ class GameConnector
}
}
/** Ýôôåêò-îãðàíè÷èòåëü íà ó÷àñòèå â òóðíèðå.
/** Эффект-ограничитель на участие в турнире.
*
* @param int $unixtime
*
@@ -134,7 +134,7 @@ class GameConnector
}
/**
* Ïðîáóåì âûêóñèòü ïðîèãðàâøåãî â ïîñëåäíåé òóðíèðíîé áèòâå è óäàëèòü ýòó ñàìóþ áèòâó âî èçáåæàíèå.
* Пробуем выкусить проигравшего в последней турнирной битве и удалить эту самую битву во избежание.
* @return mixed
*/
public static function getLooser(): int
@@ -157,7 +157,7 @@ class GameConnector
}
/**
* Íåò ïðîâåðîê $message ïîòîìó ÷òî îíî âñåãäà çàäà¸òñÿ â êîäå è èãðîê íà íåãî íå âëèÿåò.
* Нет проверок $message потому что оно всегда задаётся в коде и игрок на него не влияет.
*
* @param string $message
*
@@ -39,19 +39,19 @@ class Tournament
$list = '';
$tournamentMembersId = new User();
foreach ($this->t as $row) {
$time = $row['start_time'] === -1 ? 'Òóðíèð óæå íà÷àëñÿ!' : date('G:i', $row['start_time']);
$time = $row['start_time'] === -1 ? 'Турнир уже начался!' : date('G:i', $row['start_time']);
$members = [];
foreach ($tournamentMembersId->getAlive($row['tid']) as $member) {
$members[] = (new GameConnector())->setUser($member)->uidToLogin();
}
$list .= sprintf(
"<li>Òóðíèð äëÿ %d óðîâíåé.<br>Âðåìÿ ïîäà÷è çàÿâêè: %s<br>Ó÷àñòíèêè: %s</li>",
"<li>Турнир для %d уровней.<br>Время подачи заявки: %s<br>Участники: %s</li>",
$row['tid'],
$time,
implode(', ', $members)
);
}
return $list ? "<div><strong>Àêòèâíûå òóðíèðû.</strong><br><ul>$list</ul></div>" : '';
return $list ? "<div><strong>Активные турниры.</strong><br><ul>$list</ul></div>" : '';
}
public function getOne(int $tid): string
@@ -60,13 +60,13 @@ class Tournament
$tournamentMembersId = new User();
foreach ($this->t as $row) {
if ($this->t['tid'] === $tid) {
$time = $row['start_time'] === -1 ? 'Òóðíèð óæå íà÷àëñÿ!' : date('G:i', $row['start_time']);
$time = $row['start_time'] === -1 ? 'Турнир уже начался!' : date('G:i', $row['start_time']);
$members = [];
foreach ($tournamentMembersId->getAlive($row['tid']) as $member) {
$members[] = (new GameConnector())->setUser($member)->uidToLogin();
}
$str = sprintf(
"<div>Òóðíèð äëÿ %d óðîâíåé.<br>Âðåìÿ ïîäà÷è çàÿâêè: %s<br>Ó÷àñòíèêè: %s</div>",
"<div>Турнир для %d уровней.<br>Время подачи заявки: %s<br>Участники: %s</div>",
$row['tid'],
$time,
implode(', ', $members)
@@ -77,7 +77,7 @@ class Tournament
}
/**
* Ñîçäàíèå íîâîãî òóðíèðà.
* Создание нового турнира.
*
* @param int $tid
*
@@ -89,7 +89,7 @@ class Tournament
}
/**
* Ñòàðò òóðíèðà.
* Старт турнира.
*
* @param int $tid
*
@@ -101,7 +101,7 @@ class Tournament
}
/**
* ×èñòèì áàçû îò ïðîøåäøåãî òóðíèðà.
* Чистим базы от прошедшего турнира.
*
* @param int $tid
*
@@ -16,7 +16,7 @@ class User
/**
* Ñ÷èòàåì ñêîëüêî èãðîêîâ æäóò â çàÿâêå íà òóðíèð.
* Считаем сколько игроков ждут в заявке на турнир.
*
* @param int $tid
*
@@ -38,7 +38,7 @@ class User
}
/**
* Èãðîê ïðèñîåäèíÿåòñÿ ê òóðíèðó è òåëåïîðòèðóåòñÿ â òóðíèðíóþ êîìíàòó.
* Игрок присоединяется к турниру и телепортируется в турнирную комнату.
*
* @param int $uid
* @param int $tid
@@ -52,10 +52,10 @@ class User
}
/**
* Âûáèðàåì æèâûõ áîéöîâ íå ñðàæàþùèõñÿ â äàííûé ìîìåíò.
* Выбираем живых бойцов не сражающихся в данный момент.
*
* @param int $tid
* @param bool $shuffle - óñòàíîâèòü true åñëè íóæíî ïåðåòàñîâàòü ìàññèâ.
* @param bool $shuffle - установить true если нужно перетасовать массив.
*
* @return array
*/
@@ -74,7 +74,7 @@ class User
}
/**
* Âûáèðàåì ïîáåäèòåëåé.
* Выбираем победителей.
*
* @param int $tid
*
@@ -102,7 +102,7 @@ class User
}
/**
* Âûáûâøèé èç òóðíèðà ïîêèäàåò êîìíàòó è ïîëó÷àåò âðåìÿ ñìåðòè.
* Выбывший из турнира покидает комнату и получает время смерти.
*
* @param int $uid
*
@@ -115,7 +115,7 @@ class User
}
/**
* Óçíà¸ì id òóðíèðà ïî id èãðîêà.
* Узнаём id турнира по id игрока.
*
* @param int $uid
*
@@ -5,7 +5,7 @@ namespace Insallah\Tournaments;
class Tournament
{
/**
* Ïðîâåðÿåì ìîæåò ëè èãðîê ó÷àâñòâîâàòü â òóðíèðå è ëèáî ïðèñîåäèíÿåì åãî, ëèáî îáëàìûâàåì.
* Проверяем может ли игрок учавствовать в турнире и либо присоединяем его, либо обламываем.
*
* @param int $uid
*
@@ -13,7 +13,7 @@ class Tournament
*/
public function join(int $uid)
{
/** Âîçâðàùàåò level, èëè 0 åñëè ïðîâàëåíû ïðîâåðêè. */
/** Возвращает level, или 0 если провалены проверки. */
$checks = new Model\GameConnector();
$tournament = new Model\Tournament();
$userLevel = $checks->setUser($uid)->getAllowedLevel();
@@ -47,7 +47,7 @@ class Tournament
}
/**
* Ïðîâåðêà äëÿ êðîíà\êîíôèãà. Âûáèâàåò ïðîèãðàâøèõ è ïåðåçàïóñêàåò ïîåäèíêè âî âñåõ òóðíèðàõ.
* Проверка для крона\конфига. Выбивает проигравших и перезапускает поединки во всех турнирах.
* @return void
*/
public static function startAllBattles()
@@ -70,7 +70,7 @@ class Tournament
}
/**
* Íàãðàæäàåì ïîáåäèòåëåé òóðíèðà, ÷èñòèì áàçó.
* Награждаем победителей турнира, чистим базу.
*
* @param int $tid
*
@@ -14,34 +14,34 @@ class TList
public function __construct($user)
{
if (!Config::IS_ENABLED) {
$this->str = '<div><strong style="color: crimson;">Â äàííûé ìîìåíò òóðíèðû íå ïðîâîäÿòñÿ!</strong></div>';
$this->str = '<div><strong style="color: crimson;">В данный момент турниры не проводятся!</strong></div>';
return;
}
$tournamentstatus = new Tournament();
$this->str = '<div>
<strong style="color: crimson;">Âíèìàíèå!</strong>
<strong style="color: crimson;">Внимание!</strong>
<ul>
<li>Ïðèñîåäèíÿÿñü ê òóðíèðó ïîêèíóòü çàÿâêó <u>íåâîçìîæíî</u>!</li>';
<li>Присоединяясь к турниру покинуть заявку <u>невозможно</u>!</li>';
if ((new GameConnector())->setUser($user->info['id'])->isEkrOverpriced()) {
$this->str .= '<li>Ñòîèìîñòü ïðåäìåòîâ, îäåòûõ íà âàñ íå äîëæíà
ïðåâûøàòü ' . Config::ekrOverpriceFormula($user->info['level']) . ' åâðîêðåäèòîâ.
$this->str .= '<li>Стоимость предметов, одетых на вас не должна
превышать ' . Config::ekrOverpriceFormula($user->info['level']) . ' еврокредитов.
</li>';
}
if ($user->info['exp'] < Config::MIN_EXP) {
$this->str .= '<li>Ó âàñ äîëæíî áûòü íå ìåíåå ' . Config::MIN_EXP . ' îïûòà.</li>';
$this->str .= '<li>У вас должно быть не менее ' . Config::MIN_EXP . ' опыта.</li>';
}
$this->str .= '<li>Òóðíèð íà÷í¸òñÿ, êîãäà â çàÿâêå
íàáåð¸òñÿ ' . Config::START_TOURNAMENT . ' ÷åëîâåê.</li>
$this->str .= '<li>Турнир начнётся, когда в заявке
наберётся ' . Config::START_TOURNAMENT . ' человек.</li>
</ul>
</div>';
$this->str .= $tournamentstatus->getList();
if (!User::getTournamentIdByUserId($user->info['id']) || !$tournamentstatus->isStarted($user->info['level'])) {
$this->str .= '<form method="post">
<input type="submit" name="tournament_start" value="Ïðèíÿòü ó÷àñòèå â òóðíèðå">
<input type="submit" name="tournament_start" value="Принять участие в турнире">
<input type="hidden" name="key" value="' . $_SESSION['bypass'] . '">
</form>';
} else {
$this->str .= 'Âû ó÷àâñòâóåòå.';
$this->str .= 'Вы учавствуете.';
}
}
+383 -383
View File
File diff suppressed because it is too large Load Diff
File diff suppressed because it is too large Load Diff
+121 -121
View File
@@ -4,7 +4,7 @@ class Quests
{
private $free_x = 28;
/* Проверка доступности квеста */
/* Проверка доступности квеста */
public function testGood($pl)
{
global $u;
@@ -17,12 +17,12 @@ class Quests
$d1 = 0;
$sp1 = mysql_fetch_array(mysql_query('SELECT COUNT(`id`) FROM `actions` WHERE `vars` LIKE "%start_quest%" AND `vals` = "go" AND `uid` = "' . $u->info['id'] . '" LIMIT 100'));
$pl1 = $pl1[0];
//Если уже более 5 квестов взяли
//Если уже более 5 квестов взяли
if ($d1 >= $this->free_x) {
$r = 0;
}
unset($d1, $pl1, $sp1);
//Если квест уже взяли
//Если квест уже взяли
$qlst = mysql_fetch_array(mysql_query('SELECT `id`,`vals` FROM `actions` WHERE `uid` = "' . $u->info['id'] . '" AND `vars` = "start_quest' . $pl['id'] . '" ORDER BY `id` DESC LIMIT 1'));
if (isset($qlst['id']) && $qlst['vals'] != 'win' && $qlst['vals'] != 'end' && $qlst['vals'] != 'bad') {
$r = 0;
@@ -30,7 +30,7 @@ class Quests
unset($qlst, $qlst2);
$d = $this->expl($pl['tr_date']);
//Завершить квесты [ 1,2,3,4,5 ...
//Завершить квесты [ 1,2,3,4,5 ...
if (isset($d['tr_endq'])) {
$i = 0;
$e = explode(',', $d['tr_endq']);
@@ -43,7 +43,7 @@ class Quests
}
unset($qn, $qlst, $qlst2);
}
//Задержка между выполнением квеста
//Задержка между выполнением квеста
if (isset($d['tr_zdr'])) {
$qlst = mysql_fetch_array(mysql_query('SELECT * FROM `actions` WHERE `uid` = "' . $u->info['id'] . '" AND `vars` = "start_quest' . $pl['id'] . '" AND `vals` != "go" ORDER BY `time` DESC LIMIT 1'));
if ($qlst['time'] + ($d['tr_zdr'] * 60 * 60) - time() > 0) {
@@ -51,7 +51,7 @@ class Quests
}
unset($qlst);
}
//Переодичность квеста
//Переодичность квеста
if (isset($d['tr_tm1'])) {
$d['tr_tm1'] = str_replace('d', date('d'), $d['tr_tm1']);
$d['tr_tm1'] = str_replace('m', date('m'), $d['tr_tm1']);
@@ -59,9 +59,9 @@ class Quests
$d['tr_tm2'] = str_replace('d', date('d'), $d['tr_tm2']);
$d['tr_tm2'] = str_replace('m', date('m'), $d['tr_tm2']);
$d['tr_tm2'] = str_replace('y', date('y'), $d['tr_tm2']);
//проверка интервалов
//проверка интервалов
}
//Сколько раз можно пройти квест
//Сколько раз можно пройти квест
if (isset($d['tr_raz'])) {
$qlst = $u->testAction('SELECT `id` FROM `actions` WHERE `uid` = "' . $u->info['id'] . '" AND `vars` = "start_quest' . $pl['id'] . '" LIMIT ' . $d['tr_raz'], 2);
if ($d['tr_raz'] > 0 && $d['tr_raz'] - $qlst[0] <= 0) {
@@ -69,7 +69,7 @@ class Quests
}
unset($qlst);
}
//Попыток пройти квест
//Попыток пройти квест
if (isset($d['tr_raz2'])) {
$qlst = $u->testAction('SELECT `id` FROM `actions` WHERE `uid` = "' . $u->info['id'] . '" AND `vars` = "start_quest' . $pl['id'] . '" AND `vals` != "go" AND `vals` != "win" LIMIT ' . $d['tr_raz2'], 2);
if ($d['tr_raz2'] - $qlst[0] <= 0) {
@@ -81,7 +81,7 @@ class Quests
}
public function onlyOnceQuest($quests, $uid)
{ // Отсеиваем одноразовые квесты
{ // Отсеиваем одноразовые квесты
$result = [];
$rep = mysql_fetch_array(mysql_query('SELECT * FROM `rep` WHERE `id` = "' . $uid));
foreach ($quests as $quest) {
@@ -117,20 +117,20 @@ class Quests
return $result;
}
/* Взять квест */
/* Взять квест */
public function startq($id, $val = null)
{
global $c, $u;
$pl = mysql_fetch_array(mysql_query('SELECT * FROM `quests` WHERE (`city` = "" OR `city` = "' . $u->info['city'] . '") AND `delete` = "0" AND `min_lvl` <= ' . $u->info['level'] . ' AND `max_lvl` >= ' . $u->info['level'] . ' AND (`align` = "0" OR `align` = "' . floor($u->info['align']) . '") AND `id` = "' . mysql_real_escape_string($id) . '" LIMIT 1'));
if (isset($pl['id'])) {
$u->addAction(time(), 'start_quest' . $pl['id'], 'go', null, $val);
$u->error = 'Вы успешно получили задание &quot;' . $pl['name'] . '&quot;';
$u->error = 'Вы успешно получили задание &quot;' . $pl['name'] . '&quot;';
} else {
$u->error = 'Не удалось получить данное задание';
$u->error = 'Не удалось получить данное задание';
}
}
/* Взять квест в пещере */
/* Взять квест в пещере */
public function startq_dn($id, $val = null)
{
global $c, $u;
@@ -140,13 +140,13 @@ class Quests
$u->addAction(time(), 'start_quest' . $pl['id'], 'go');
else
$u->addAction(time(), 'start_quest' . $pl['id'], 'go', $u->info['id'], $val);
$u->error = 'Вы успешно получили задание &quot;' . $pl['name'] . '&quot;';
$u->error = 'Вы успешно получили задание &quot;' . $pl['name'] . '&quot;';
} else {
$u->error = 'Не удалось получить данное задание';
$u->error = 'Не удалось получить данное задание';
}
}
/* Отказаться от квеста */
/* Отказаться от квеста */
public function endq($id, $tp)
{
global $u;
@@ -155,28 +155,28 @@ class Quests
if (isset($qlst['id'])) {
if ($tp == 'end') {
mysql_query('UPDATE `actions` SET `vals` = "end" WHERE `id` = "' . $qlst['id'] . '" LIMIT 1');
$u->error = 'Вы успешно отказались от задания &quot;' . $pl['name'] . '&quot;';
$u->error = 'Вы успешно отказались от задания &quot;' . $pl['name'] . '&quot;';
} elseif ($tp == 'win') {
mysql_query('UPDATE `actions` SET `vals` = "win" ,`time` = "' . time() . '" WHERE `id` = "' . $qlst['id'] . '" LIMIT 1');
}
} else {
$u->error = 'Не удалось отказаться от задания ';
$u->error = 'Не удалось отказаться от задания ';
}
}
/* Инфо о квесте в пещерах */
/* Инфо о квесте в пещерах */
public function infoDng($pl)
{
global $u;
$r = 0;
$xrz = 0;
$qst = mysql_fetch_array(mysql_query('SELECT * FROM `actions` WHERE `uid` = "' . $u->info['id'] . '" AND `vars` = "start_quest' . $pl['id'] . '" AND `vals` = "go" LIMIT 1'));
//Условия задания которые должны удовлетворять текущим характеристикам
//Условия задания которые должны удовлетворять текущим характеристикам
//$d = $this->expl($pl['tr_date']);
//Действия квеста
//Действия квеста
$d = $this->expl($pl['act_date']);
//Поговорить с NPS
//Поговорить с NPS
if (isset($d['dlg_nps'])) {
$i7 = 0;
$x3 = explode(',', $d['dlg_nps']);
@@ -190,12 +190,12 @@ class Quests
unset($x1, $x3, $x4, $i7);
}
//Убить игроков
//Убить игроков
if (isset($d['kill_user'])) {
$r += $d['kill_user'];
}
//Убить ботов
//Убить ботов
if (isset($d['kill_bot'])) {
$x = '';
$ex = explode(',', $d['kill_bot']);
@@ -221,7 +221,7 @@ class Quests
unset($x, $ex, $x2, $bot2, $ex2);
}
//Собрать ресурсы
//Собрать ресурсы
if (isset($d['tk_itm'])) {
$ex = explode(',', $d['tk_itm']);
$i = 0;
@@ -237,7 +237,7 @@ class Quests
}
}
//Собрать трофеи
//Собрать трофеи
if (isset($d['tkill_itm'])) {
$ex = explode(',', $d['tkill_itm']);
$i = 0;
@@ -263,27 +263,27 @@ class Quests
$xrz = $r;
}
$r = '<table style="display:inline-block;" border="0" cellspacing="0" cellpadding="0" height="10"><tr><td valign="middle" width="120" style="padding-top:12px">
<div style="position:relative;"><div id="vhp-1234500000' . $pl['id'] . '" title="Выполнение задания" align="left" class="seehp" style="position:absolute; top:-10px; width:120px; height:10px; z-index:12;"> ' . $xrz . '/' . $r . '</div>
<div title="Выполнение задания" class="hpborder" style="position:absolute; top:-10px; width:120px; height:9px; z-index:13;"><img src="https://img.new-combats.com/1x1.gif" height="9" width="1"></div>
<div style="position:relative;"><div id="vhp-1234500000' . $pl['id'] . '" title="Выполнение задания" align="left" class="seehp" style="position:absolute; top:-10px; width:120px; height:10px; z-index:12;"> ' . $xrz . '/' . $r . '</div>
<div title="Выполнение задания" class="hpborder" style="position:absolute; top:-10px; width:120px; height:9px; z-index:13;"><img src="https://img.new-combats.com/1x1.gif" height="9" width="1"></div>
<div class="hp_3 senohp" style="height:9px; width:120px; position:absolute; top:-10px; z-index:11;" id="lhp-1234500000' . $pl['id'] . '"><img src="https://img.new-combats.com/1x1.gif" height="9" width="1"></div>
<div title="Выполнение задания" class="hp_none" style="position:absolute; top:-10px; width:120px; height:10px; z-index:10;"><img src="https://img.new-combats.com/1x1.gif" height="10"></div>
<div title="Выполнение задания" class="hp_none" style="position:absolute; top:-10px; width:120px; height:10px; z-index:10;"><img src="https://img.new-combats.com/1x1.gif" height="10"></div>
</div></td></tr></table><br><script>top.startHpRegen("main",-1234500000' . $pl['id'] . ',' . $xrz . ',' . $r . ',0,0,0,0,0,0,1);</script>';
}
return $r;
}
/* Информация о квесте */
/* Информация о квесте */
public function info($pl)
{
global $u;
$r = '';
$t = '';
$qst = mysql_fetch_array(mysql_query('SELECT * FROM `actions` WHERE `uid` = "' . $u->info['id'] . '" AND `vars` = "start_quest' . $pl['id'] . '" AND `vals` = "go" LIMIT 1'));
//Условия задания которые должны удовлетворять текущим характеристикам
//Условия задания которые должны удовлетворять текущим характеристикам
$d = $this->expl($pl['tr_date']);
//Завершить квесты [ 1,2,3,4,5 ...
//Завершить квесты [ 1,2,3,4,5 ...
if (isset($d['tr_endq'])) {
$t .= 'Завершить квесты: ';
$t .= 'Завершить квесты: ';
$i = 0;
$e = explode(',', $d['tr_endq']);
while ($i <= count($e)) {
@@ -299,26 +299,26 @@ class Quests
$t .= '<br>';
unset($qn);
}
//Из ботов падают предметы [ idbot-itm1=%,itm2=%|
//Из ботов падают предметы [ idbot-itm1=%,itm2=%|
if (isset($d['tr_botitm'])) {
$t .= 'Из ботов выпадают предметы:<ul>';
$t .= 'Из ботов выпадают предметы:<ul>';
$e = explode('|', $d['tr_botitm']);
$i = 0;
while ($i < count($e)) {
$j = 0;
$e2 = explode('-', $e[$i]);
//$e2[0] - id бота
//$e2[0] - id бота
if ($e2[0] > 0) {
$qn = mysql_fetch_array(mysql_query('SELECT `login` FROM `test_bot` WHERE `id` = "' . $e2[0] . '" LIMIT 1'));
$t .= '&nbsp; &nbsp; &bull; Из &quot;' . $qn['login'] . '&quot; выпадает: ';
$t .= '&nbsp; &nbsp; &bull; Из &quot;' . $qn['login'] . '&quot; выпадает: ';
} else {
$t .= '&nbsp; &nbsp; &bull; Из любых ботов выпадает: ';
$t .= '&nbsp; &nbsp; &bull; Из любых ботов выпадает: ';
}
//$e2[1] - предметы
//$e2[1] - предметы
$e3 = explode(',', $e2[1]);
while ($j < count($e3)) {
$e4 = explode('=', $e3[$j]);
//$e4[0] - предмет , $e4[1] - шанс
//$e4[0] - предмет , $e4[1] - шанс
$qi = mysql_fetch_array(mysql_query('SELECT `id`,`name`,`img` FROM `items_main` WHERE `id` = "' . $e4[0] . '" LIMIT 1'));
$t .= '<img src="https://img.new-combats.com/i/items/' . $qi['img'] . '" style="max-height:12px"> <a href="items_info.php?id=' . $qi['id'] . '" target="_blank">' . $qi['name'] . '</a>, ';
$j++;
@@ -329,26 +329,26 @@ class Quests
$t .= '<br>';
unset($qn, $qi, $e2, $e3, $e4);
}
//При выйгрыше падают предметы [ type-itm1=%,itm2=%|
//При выйгрыше падают предметы [ type-itm1=%,itm2=%|
if (isset($d['tr_winitm'])) {
$t .= 'После победы выпадают предметы:<br>';
$t .= 'После победы выпадают предметы:<br>';
$e = explode('|', $d['tr_winitm']);
$i = 0;
while ($i < count($e)) {
$e2 = explode('-', $e[$i]);
$t .= '&nbsp; &nbsp; &bull; ';
//$e2[0] - id бота
//$e2[0] - id бота
if ($e2[0] > 0) {
$t .= 'Из людей выпадает: ';
$t .= 'Из людей выпадает: ';
} else {
$t .= 'Из ботов выпадает: ';
$t .= 'Из ботов выпадает: ';
}
//$e2[1] - предметы
//$e2[1] - предметы
$j = 0;
$e3 = explode(',', $e2[1]);
while ($j < count($e3)) {
$e4 = explode('=', $e3[$j]);
//$e4[0] - предмет , $e4[1] - шанс
//$e4[0] - предмет , $e4[1] - шанс
$qi = mysql_fetch_array(mysql_query('SELECT `id`,`name`,`img` FROM `items_main` WHERE `id` = "' . $e4[0] . '" LIMIT 1'));
$t .= '<img src="https://img.new-combats.com/i/items/' . $qi['img'] . '" style="max-height:12px"> <a href="items_info.php?id=' . $qi['id'] . '" target="_blank">' . $qi['name'] . '</a>, ';
$j++;
@@ -359,17 +359,17 @@ class Quests
}
unset($qn, $qi, $e2, $e3, $e4);
}
//Задержка между выполнением квеста
//Задержка между выполнением квеста
if (isset($d['tr_zdr'])) {
$qlst = mysql_fetch_array(mysql_query('SELECT * FROM `actions` WHERE `uid` = "' . $u->info['id'] . '" AND `vars` = "start_quest' . $pl['id'] . '" AND `vals` != "go" LIMIT 1'));
$t .= 'Задержка между выполнением задания: ' . $u->timeOut($d['tr_zdr'] * 60 * 60);
$t .= 'Задержка между выполнением задания: ' . $u->timeOut($d['tr_zdr'] * 60 * 60);
if ($qlst['time'] + ($d['tr_zdr'] * 60 * 60) - time() > 0) {
$t .= '<small>(Осталось: ' . $u->timeOut($qlst['time'] + ($d['tr_zdr'] * 60 * 60) - time()) . ' ч.)</small>';
$t .= '<small>(Осталось: ' . $u->timeOut($qlst['time'] + ($d['tr_zdr'] * 60 * 60) - time()) . ' ч.)</small>';
}
$t .= '<br>';
unset($qlst);
}
//Переодичность квеста
//Переодичность квеста
if (isset($d['tr_tm1'])) {
$d['tr_tm1'] = str_replace('d', date('d'), $d['tr_tm1']);
$d['tr_tm1'] = str_replace('m', date('m'), $d['tr_tm1']);
@@ -379,31 +379,31 @@ class Quests
$d['tr_tm2'] = str_replace('m', date('m'), $d['tr_tm2']);
$d['tr_tm2'] = str_replace('y', date('y'), $d['tr_tm2']);
$t .= 'Период квеста: ' . $d['tr_tm1'] . ' - ' . $d['tr_tm2'] . '<br>';
$t .= 'Период квеста: ' . $d['tr_tm1'] . ' - ' . $d['tr_tm2'] . '<br>';
}
//Сколько раз можно пройти квест
//Сколько раз можно пройти квест
if (isset($d['tr_raz'])) {
if ($d['tr_raz'] == -1) {
$t .= 'Сколько еще раз можно выполнить задание: <b><small>бесконечно</small></b><br>';
$t .= 'Сколько еще раз можно выполнить задание: <b><small>бесконечно</small></b><br>';
} else {
$qlst = $u->testAction('SELECT `id` FROM `actions` WHERE `uid` = "' . $u->info['id'] . '" AND `vars` = "start_quest' . $pl['id'] . '" LIMIT ' . $d['tr_raz'], 2);
$t .= 'Сколько раз можно выполнить задание: ' . ($d['tr_raz'] - $qlst[0]) . '<br>';
$t .= 'Сколько раз можно выполнить задание: ' . ($d['tr_raz'] - $qlst[0]) . '<br>';
}
unset($qlst);
}
//Попыток пройти квест
//Попыток пройти квест
if (isset($d['tr_raz2'])) {
$qlst = $u->testAction('SELECT `id` FROM `actions` WHERE `uid` = "' . $u->info['id'] . '" AND `vars` = "start_quest' . $pl['id'] . '" AND `vals` != "go" AND `vals` != "win" LIMIT ' . $d['tr_raz2'], 2);
$t .= 'Осталось попыток выполнить задание: ' . ($d['tr_raz2'] - $qlst[0]) . '<br>';
$t .= 'Осталось попыток выполнить задание: ' . ($d['tr_raz2'] - $qlst[0]) . '<br>';
unset($qlst);
}
if ($t != '') {
$r .= '<b>Условия задания:</b><br>' . $t . '<br>';
$r .= '<b>Условия задания:</b><br>' . $t . '<br>';
$t = '';
}
//Награда за квест
//Награда за квест
$d = $this->expl($pl['win_date']);
if (isset($d['add_eff'])) {
@@ -415,7 +415,7 @@ class Quests
$x6 = mysql_fetch_array(mysql_query('SELECT `id2`,`mname`,`img` FROM `eff_main` WHERE `id2` = "' . $x7[0] . '" LIMIT 1'));
if (isset($x6['id2'])) {
$x5 .= '<img width="40" height="25" src="https://img.new-combats.com/i/eff/' . $x6['img'] . '" title="' . $x6['mname'] . '
Время действия: ' . $u->timeOut($x7[1]) . '"> ';
Время действия: ' . $u->timeOut($x7[1]) . '"> ';
}
$x4++;
}
@@ -426,25 +426,25 @@ class Quests
}
if (isset($d['add_rep'])) {
$t .= 'Репутация ' . $u->city_name[$pl['city']] . ': ' . $d['add_rep'] . '<br>';
$t .= 'Репутация ' . $u->city_name[$pl['city']] . ': ' . $d['add_rep'] . '<br>';
}
if (isset($d['add_repizlom'])) {
$t .= 'Репутация Излом Хаоса: ' . $d['add_repizlom'] . '<br>';
$t .= 'Репутация Излом Хаоса: ' . $d['add_repizlom'] . '<br>';
}
if (isset($d['add_cr'])) {
$t .= 'Деньги: ' . $d['add_cr'] . ' кр.<br>';
$t .= 'Деньги: ' . $d['add_cr'] . ' кр.<br>';
}
if ($t != '') {
$r = '<b>Награда:</b><br>' . $t . '<br>' . $r;
$r = '<b>Награда:</b><br>' . $t . '<br>' . $r;
$t = '';
}
//Действия квеста
//Действия квеста
$d = $this->expl($pl['act_date']);
//Поговорить с NPS
//Поговорить с NPS
if (isset($d['dlg_nps'])) {
$i7 = 0;
$x3 = explode(',', $d['dlg_nps']);
@@ -453,30 +453,30 @@ class Quests
if ($x4[0] > 0) {
$x1 = mysql_fetch_array(mysql_query('SELECT `text` FROM `dungeon_dialog` WHERE `id` = "' . $x4[0] . '" LIMIT 1'));
if (!isset($x1['text'])) {
$x1 = '<i>незивестно</i>';
$x1 = '<i>незивестно</i>';
} else {
$x1 = $x1['text'];
}
$x = 0;
$t .= 'Поговорить с <b>' . $x1 . '</b>: ' . $x . '/1<br>';
$t .= 'Поговорить с <b>' . $x1 . '</b>: ' . $x . '/1<br>';
}
$i7++;
}
unset($x1, $x3, $x4, $i7);
}
//Убить игроков
//Убить игроков
if (isset($d['kill_user'])) {
$t .= 'Убить игроков: 0/' . $d['kill_user'] . '<br>';
$t .= 'Убить игроков: 0/' . $d['kill_user'] . '<br>';
}
//Убить ботов
//Убить ботов
if (isset($d['kill_bot'])) {
if (isset($d['all_kill']) && (int)$d['all_kill'] > 0) {
$x = '';
$ex = explode(',', $d['kill_bot']);
$i = 0; # Количество циклов для каждого типа бота.
$i = 0; # Количество циклов для каждого типа бота.
$q = '';
while ($i < count($ex)) {
$ex2 = explode('=', $ex[$i]);
@@ -516,12 +516,12 @@ class Quests
if ($x != '') {
$x = trim($x, ', ');
$t .= 'Убить ботов: <br>' . $x;
$t .= 'Убить ботов: <br>' . $x;
}
unset($x, $ex, $x2, $bot2, $ex2);
}
//Собрать ресурсы
//Собрать ресурсы
if (isset($d['tk_itm'])) {
$ex = explode(',', $d['tk_itm']);
$i = 0;
@@ -538,11 +538,11 @@ class Quests
}
if ($x != '') {
$x = trim($x, ', ');
$t .= 'Собрать ресурсы: <br>' . $x;
$t .= 'Собрать ресурсы: <br>' . $x;
}
}
//Собирание трофеев
//Собирание трофеев
if (isset($d['tkill_itm'])) {
$ex = explode(',', $d['tkill_itm']);
$i = 0;
@@ -559,17 +559,17 @@ class Quests
}
if ($x != '') {
$x = trim($x, ', ');
$t .= 'Собрать трофеи: <br>' . $x;
$t .= 'Собрать трофеи: <br>' . $x;
}
}
if ($t != '') {
$r = '<br><b>Действия задания:</b><br>' . $t . '<br>' . $r;
$r = '<br><b>Действия задания:</b><br>' . $t . '<br>' . $r;
$t = '';
}
if ($r == '') {
$r = 'Дополнительная информация по заданию отсутствует';
$r = 'Дополнительная информация по заданию отсутствует';
}
return $r;
}
@@ -577,35 +577,35 @@ class Quests
public function testquest()
{
global $u;
if ($u->info['battle'] == 0 && $u->room['name'] != 'Башня Смерти') {
if ($u->info['battle'] == 0 && $u->room['name'] != 'Башня Смерти') {
$sp = mysql_query('SELECT * FROM `actions` WHERE `uid` = "' . $u->info['id'] . '" AND `vars` LIKE "%start_quest%" AND `vals` = "go" LIMIT 100');
while ($pl2 = mysql_fetch_array($sp)) {
$pl = mysql_fetch_array(mysql_query('SELECT * FROM `quests` WHERE `id` = "' . (str_replace('start_quest', '', $pl2['vars'])) . '" LIMIT 1'));
$g = 1;
//Действия квеста
//Действия квеста
$d = $this->expl($pl['act_date']);
//Поговорить с NPS
//Поговорить с NPS
if (isset($d['dlg_nps'])) {
$g = 0;
unset($x);
}
//Убить игроков
//Убить игроков
if (isset($d['kill_user'])) {
$x = 0;
if ($x < $d['kill_user']) {
$g = 0;
}
//$d['kill_user'] - стольких нужно убить
//$d['kill_user'] - стольких нужно убить
unset($x);
}
//Убить ботов
//Убить ботов
if (isset($d['kill_bot'])) {
$ex = explode(',', $d['kill_bot']);
$ii = 0; // Количество циклов для каждого типа бота.
$ii = 0; // Количество циклов для каждого типа бота.
$q = '';
while ($ii < count($ex)) {
$ex2 = explode('=', $ex[$ii]);
@@ -629,11 +629,11 @@ class Quests
unset($x, $ex, $x2, $x3, $bot2, $ex2);
}
//Собрать ресурсы
//Собрать ресурсы
if (isset($d['tk_itm'])) {
$g = $this->collect_01(explode(',', $d['tk_itm']), $u);
}
//Собирание трофеев
//Собирание трофеев
if (isset($d['tkill_itm'])) {
$g = $this->collect_01(explode(',', $d['tkill_itm']), $u);
}
@@ -647,7 +647,7 @@ class Quests
}
}
private function collect_01($arr, $u){ // убираю дублирование. хер пойми что проверяем, хз как назвать.
private function collect_01($arr, $u){ // убираю дублирование. хер пойми что проверяем, хз как назвать.
$i = 0;
while ($i < count($arr)) {
$ex2 = explode('=', $arr[$i]);
@@ -660,7 +660,7 @@ class Quests
return 1;
}
private function collect_02($ex, $u, $pl) { // убираю дублирование. хер пойми что проверяем, хз как назвать.
private function collect_02($ex, $u, $pl) { // убираю дублирование. хер пойми что проверяем, хз как назвать.
$i = 0;
while ($i < count($ex)) {
$ex2 = explode('=', $ex[$i]);
@@ -680,25 +680,25 @@ class Quests
return 1;
}
# Функция отвечает за ПРОВЕРКУ на ЗАВЕРШЕНИЕ квестов для ПОДЗЕМОК
# Функция отвечает за ПРОВЕРКУ на ЗАВЕРШЕНИЕ квестов для ПОДЗЕМОК
public function questCheckEnd($pl)
{
global $u;
$quest = mysql_fetch_array(mysql_query('SELECT * FROM `actions` WHERE `uid` = "' . $u->info['id'] . '" AND `vars` = "start_quest' . $pl['id'] . '" ORDER BY `time` DESC LIMIT 1'));
#Проверяем квест, завершен = 0 нет, 1 да.
#Проверяем квест, завершен = 0 нет, 1 да.
$r = 0;
if ($u->info['battle'] == 0 && $u->room['name'] != 'Башня Смерти') {
if ($u->info['battle'] == 0 && $u->room['name'] != 'Башня Смерти') {
$g = 1;
# Действия квеста
# Действия квеста
$d = $this->expl($pl['act_date']);
# Поговорить с NPS
# Поговорить с NPS
if (isset($d['dlg_nps'])) {
$g = 0;
unset($x);
}
# Убить игроков
# Убить игроков
if (isset($d['kill_user'])) {
$x = 0;
if ($x < $d['kill_user']) {
@@ -707,10 +707,10 @@ class Quests
unset($x);
}
# Убить ботов
# Убить ботов
if (isset($d['kill_bot'])) {
$ex = explode(',', $d['kill_bot']);
$i = 0; # Количество циклов для каждого типа бота.
$i = 0; # Количество циклов для каждого типа бота.
$q = '';
while ($i < count($ex)) {
$ex2 = explode('=', $ex[$i]);
@@ -740,11 +740,11 @@ class Quests
unset($x, $ex, $x2, $x3, $bot2, $ex2);
}
# Собрать ресурсы
# Собрать ресурсы
if (isset($d['tk_itm'])) {
$g = $this->collect_02(explode(',', $d['tk_itm']), $u, $pl);
}
# Собирание трофеев
# Собирание трофеев
if (isset($d['tkill_itm'])) {
$g = $this->collect_02(explode(',', $d['tkill_itm']), $u, $pl);
}
@@ -753,7 +753,7 @@ class Quests
return $r;
}
/** Выдача наград за пещеры */
/** Выдача наград за пещеры */
public function questSuccesEnd($quest, $action)
{
global $u, $c, $magic;
@@ -765,7 +765,7 @@ class Quests
$d = $this->expl($quest['act_date']);
$d = array_merge($d, $this->expl($quest['win_date']));
// Забираем ресурсы или трофеи
// Забираем ресурсы или трофеи
if (isset($d['tk_itm']) || isset($d['tkill_itm'])) {
$ex = [];
if (isset($d['tk_itm'])) {
@@ -793,9 +793,9 @@ class Quests
}
$t = '';
# Получаем репутацию за квест,
# Получаем репутацию за квест,
if (isset($d['add_rep'])) {
# если это убийства ботов.
# если это убийства ботов.
if (isset($d['kill_bot']) && isset($d['all_kill']) && $d['add_rep'] > 0) {
$ex = explode(',', $d['kill_bot']);
$ii = 0;
@@ -825,7 +825,7 @@ class Quests
if ($this->stats['more_awards'] >= 0) {
$d['add_rep'] += $d['add_rep'] / 100 * 50;
}
$t .= '' . $d['add_rep'] . ' ед. репутации ' . $u->city_name[$quest['city']] . ', ';
$t .= '' . $d['add_rep'] . ' ед. репутации ' . $u->city_name[$quest['city']] . ', ';
if (
$rep['rep' . $quest['city']] < 24999 &&
$rep['rep' . $quest['city']] + $d['add_rep'] >= 24999 &&
@@ -840,7 +840,7 @@ class Quests
}
}
if (isset($d['add_repizlom'])) {
$t .= '' . $d['add_repizlom'] . ' ед. репутации Излома Хаоса, ';
$t .= '' . $d['add_repizlom'] . ' ед. репутации Излома Хаоса, ';
$rep = mysql_fetch_array(mysql_query('SELECT * FROM `rep` WHERE `id` = "' . $u->info['id'] . '" LIMIT 1'));
$rep['repizlom'] += $d['add_repizlom'];
if ($rep['repizlom'] > 24999) {
@@ -859,18 +859,18 @@ class Quests
}
}
if (isset($d['add_cr'])) {
$t .= '' . $d['add_cr'] . ' кр., ';
$t .= '' . $d['add_cr'] . ' кр., ';
mysql_query('UPDATE `users` SET `money` = `money`+' . $d['add_cr'] . ' WHERE `id` = "' . $u->info['id'] . '" LIMIT 1');
}
if ($t != '') {
$t = rtrim($t, ', ');
$r = 'Задание <b>' . $quest['name'] . '</b> было успешно выполнено! Вы получили награду: ' . $t . '.';
$r = 'Задание <b>' . $quest['name'] . '</b> было успешно выполнено! Вы получили награду: ' . $t . '.';
unset($t);
} else {
$r = 'Задание <b>' . $quest['name'] . '</b> было успешно выполнено!';
$r = 'Задание <b>' . $quest['name'] . '</b> было успешно выполнено!';
}
$r = '<small>' . $r . '</small>';
//Отправляем сообщение в чат
//Отправляем сообщение в чат
mysql_query('UPDATE `actions` SET `vals` = "win" , `time` = "' . time() . '" WHERE `id` = "' . $action['id'] . '" AND `vals` = "go" LIMIT 1');
mysql_query("INSERT INTO `chat` (`new`,`city`,`room`,`login`,`to`,`text`,`time`,`type`,`toChat`) VALUES ('1','" . $u->info['city'] . "','" . $u->info['room'] . "','','" . $u->info['login'] . "','" . $r . "','-1','5','0')");
@@ -894,7 +894,7 @@ class Quests
die();
}
// Забираем ресурсы
// Забираем ресурсы
if (isset($d['tk_itm'])) {
$ex = explode(',', $d['tk_itm']);
$i = 0;
@@ -906,7 +906,7 @@ class Quests
$i++;
}
}
// Забираем трофеи
// Забираем трофеи
if (isset($d['tkill_itm'])) {
$ex = explode(',', $d['tkill_itm']);
$i = 0;
@@ -920,7 +920,7 @@ class Quests
}
$t = '';
if (isset($d['add_rep'])) { // Получаем репутацию за квест, если это убийства ботов.
if (isset($d['add_rep'])) { // Получаем репутацию за квест, если это убийства ботов.
if (isset($d['kill_bot']) && isset($d['all_kill']) && $d['add_rep'] > 0) {
$ex = explode(',', $d['kill_bot']);
$ii = 0;
@@ -939,9 +939,9 @@ class Quests
}
unset($x, $i, $ii, $ex, $x2, $bot2, $ex2);
if ($pl['city'] != '') {
$t .= '' . $d['add_rep'] . ' ед. репутации ' . $u->city_name[$pl['city']] . ', ';
$t .= '' . $d['add_rep'] . ' ед. репутации ' . $u->city_name[$pl['city']] . ', ';
$rep = mysql_fetch_array(mysql_query('SELECT * FROM `rep` WHERE `id` = "' . $u->info['id'] . '" LIMIT 1'));
// Рыцарки
// Рыцарки
/*if($rep['rep'.$pl['city']] < 10000 && $rep['rep'.$pl['city']] + $d['add_rep'] >= 10000 && $pl['kin'] != 1) {
$rep['rep'.$pl['city']] = 9999;
} else*/
@@ -955,7 +955,7 @@ class Quests
}
if (isset($d['add_repizlom'])) {
$t .= '' . $d['add_repizlom'] . ' ед. репутации Излома Хаоса, ';
$t .= '' . $d['add_repizlom'] . ' ед. репутации Излома Хаоса, ';
$rep = mysql_fetch_array(mysql_query('SELECT * FROM `rep` WHERE `id` = "' . $u->info['id'] . '" LIMIT 1'));
$rep['repizlom'] += $d['add_repizlom'];
if ($rep['repizlom'] > 24999) {
@@ -976,19 +976,19 @@ class Quests
}
if (isset($d['add_cr'])) {
$t .= '' . $d['add_cr'] . ' кр., ';
$t .= '' . $d['add_cr'] . ' кр., ';
mysql_query('UPDATE `users` SET `money` = `money`+' . $d['add_cr'] . ' WHERE `id` = "' . $u->info['id'] . '" LIMIT 1');
}
if ($t != '') {
$t = rtrim($t, ', ');
$r = 'Задание <b>' . $pl['name'] . '</b> было успешно выполнено! Вы получили награду: ' . $t . '.';
$r = 'Задание <b>' . $pl['name'] . '</b> было успешно выполнено! Вы получили награду: ' . $t . '.';
unset($t);
} else {
$r = 'Задание <b>' . $pl['name'] . '</b> было успешно выполнено!';
$r = 'Задание <b>' . $pl['name'] . '</b> было успешно выполнено!';
}
$r = '<small>' . $r . '</small>';
//Отправляем сообщение в чат
//Отправляем сообщение в чат
mysql_query("INSERT INTO `chat` (`new`,`city`,`room`,`login`,`to`,`text`,`time`,`type`,`toChat`) VALUES ('1','" . $u->info['city'] . "','" . $u->info['room'] . "','','" . $u->info['login'] . "','" . $r . "','-1','5','0')");
}
}
+12 -12
View File
@@ -5,18 +5,18 @@ use Core\Db;
class Season
{
public static $yy = [
1 => [1, '01', 'ίνβΰπό', 'ίνβΰπόρκθι'],
2 => [2, '02', 'Τεβπΰλό', 'Τεβπΰλόρκθι'],
3 => [3, '03', 'Μΰπς', 'Μΰπςξβρκθι'],
4 => [4, '04', 'ΐοπελό', 'ΐοπελόρκθι'],
5 => [5, '05', 'Μΰι', 'Μΰιρκθι'],
6 => [6, '06', 'Θώνό', 'Θώνόρκθι'],
7 => [7, '07', 'Θώλό', 'Θώλόρκθι'],
8 => [8, '08', 'ΐβγσρς', 'ΐβγσρςξβρκθι'],
9 => [9, '09', 'Ρενςαπό', 'Ρενςαπόρκθι'],
10 => [10, '10', 'Ξκςαπό', 'Ξκςαπόρκθι'],
11 => [11, '11', 'Νξαπό', 'Νξαπόρκθι'],
12 => [12, '12', 'Δεκΰαπό', 'Δεκΰαπόρκθι'],
1 => [1, '01', 'Январь', 'Январьский'],
2 => [2, '02', 'Февраль', 'Февральский'],
3 => [3, '03', 'Март', 'Мартовский'],
4 => [4, '04', 'Апрель', 'Апрельский'],
5 => [5, '05', 'Май', 'Майский'],
6 => [6, '06', 'Июнь', 'Июньский'],
7 => [7, '07', 'Июль', 'Июльский'],
8 => [8, '08', 'Август', 'Августовский'],
9 => [9, '09', 'Сентябрь', 'Сентябрьский'],
10 => [10, '10', 'Октябрь', 'Октябрьский'],
11 => [11, '11', 'Ноябрь', 'Ноябрьский'],
12 => [12, '12', 'Декабрь', 'Декабрьский'],
];
public static $date = [];
public static $m = [];
+13 -13
View File
@@ -16,7 +16,7 @@ class Telegram
private function send($to, $from, $text, $fromType)
{
mysql_query('START TRANSACTION');
$ins = mysql_query("INSERT INTO `telegram` (`uid`,`from`,`fromType`,`text`,`time`) VALUES ('" . $to . "','" . $from . "','" . $fromType . "','" . mysql_real_escape_string(AddSlashes(HtmlSpecialChars($text, null, 'cp1251'))) . "','" . time() . "')");
$ins = mysql_query("INSERT INTO `telegram` (`uid`,`from`,`fromType`,`text`,`time`) VALUES ('" . $to . "','" . $from . "','" . $fromType . "','" . mysql_real_escape_string(AddSlashes(HtmlSpecialChars($text, null))) . "','" . time() . "')");
mysql_query('COMMIT');
if ($ins) {
return mysql_insert_id();
@@ -89,7 +89,7 @@ class Telegram
}
if ($fromType == 1) {
$from = '<a href="info/login=' . $from . '" target="_blank" title="Èíô. î ' . $from . '">' . $from . '</a>';
$from = '<a href="info/login=' . $from . '" target="_blank" title="Инф. о ' . $from . '">' . $from . '</a>';
} elseif ($read == 0) {
$from = '<b id="tablePostTxtB' . $id . '">' . $from . '</b>';
}
@@ -98,10 +98,10 @@ class Telegram
<tr>
<td width="30" class="underLine2"><div align="center">' . $i1 . '</div></td>
<td width="200" id="tablePostTxt' . $id . '" class="underLine2">' . $from . '</td>
<td width="290" class="underLine2"><a onClick="openPost(' . $id . '); return false;" href="#read' . $id . '" title="Ïðî÷èòàòü ñîîáùåíèå">' . substr($ttl, 0, 30) . '...</a></td>
<td width="290" class="underLine2"><a onClick="openPost(' . $id . '); return false;" href="#read' . $id . '" title="Прочитать сообщение">' . substr($ttl, 0, 30) . '...</a></td>
<td width="120" class="underLine2">' . date('d.m.y H:i', $time) . '</td>
<td width="30" class="underLine2"><div align="center"><IMG style="cursor:pointer;" onClick="lockPost(' . $id . ');" title="Áëîêèðîâêà ñîîáùåíèÿ" src="https://img.new-combats.com/i/locked.gif"></div></td>
<td width="30" class="underLine2"><div align="center"><IMG style="cursor:pointer;" onClick="deletePost(' . $id . ',' . $pg . ');" title="Óäàëèòü ñîîáùåíèå" src="https://img.new-combats.com/i/clear.gif" width="11" height="11"></div></td>
<td width="30" class="underLine2"><div align="center"><IMG style="cursor:pointer;" onClick="lockPost(' . $id . ');" title="Блокировка сообщения" src="https://img.new-combats.com/i/locked.gif"></div></td>
<td width="30" class="underLine2"><div align="center"><IMG style="cursor:pointer;" onClick="deletePost(' . $id . ',' . $pg . ');" title="Удалить сообщение" src="https://img.new-combats.com/i/clear.gif" width="11" height="11"></div></td>
</tr>
</table>
<div id="readMSG' . $id . '" style="display:none;" class="unreadMSG">' . $ttl . '</div>';
@@ -114,11 +114,11 @@ class Telegram
<table width="100%" border="0" cellspacing="0" cellpadding="0">
<tr>
<td width="30" class="underLine"><div align="center"></div></td>
<td width="200" class="underLine"><b>Îò êîãî</b></td>
<td width="290" class="underLine"><b>Çàãîëîâîê ñîîáùåíèÿ</b></td>
<td width="120" class="underLine"><b>Êîãäà</b></td>
<td width="30" class="underLine"><div align="center"><IMG alt="Áëîêèðîâêà ñîîáùåíèé" src="https://img.new-combats.com/i/lock_message.gif"></div></td>
<td width="30" class="underLine"><div align="center"><IMG style="cursor:pointer;" onClick="deletePostAll(' . $page . ');" alt="Óäàëèòü âñå ïðî÷èòàííûå ñîîáùåíèÿ" src="https://img.new-combats.com/i/clear.gif" width="11" height="11"></div></td>
<td width="200" class="underLine"><b>От кого</b></td>
<td width="290" class="underLine"><b>Заголовок сообщения</b></td>
<td width="120" class="underLine"><b>Когда</b></td>
<td width="30" class="underLine"><div align="center"><IMG alt="Блокировка сообщений" src="https://img.new-combats.com/i/lock_message.gif"></div></td>
<td width="30" class="underLine"><div align="center"><IMG style="cursor:pointer;" onClick="deletePostAll(' . $page . ');" alt="Удалить все прочитанные сообщения" src="https://img.new-combats.com/i/clear.gif" width="11" height="11"></div></td>
</tr>
</table>';
@@ -138,7 +138,7 @@ class Telegram
}
if ($i[0] == 0) {
echo '<div class="noMsg" align="center">Ñîîáùåíèé íåò</div>';
echo '<div class="noMsg" align="center">Сообщений нет</div>';
} elseif ($i[0] > $maxPages) {
$pages = '';
$i = 1;
@@ -153,7 +153,7 @@ class Telegram
echo '<table width="100%" border="0" cellspacing="0" cellpadding="0">
<tr>
<td width="30"><div align="center"></div></td>
<td width="200">Ñòðàíèöû: ' . $pages . '</td>
<td width="200">Страницы: ' . $pages . '</td>
<td width="240"></td>
<td width="170"></td>
<td width="30"></td>
@@ -165,6 +165,6 @@ class Telegram
public function __clone()
{
trigger_error('Äóáëèðîâàíèå íå äîïóñêàåòñÿ.', E_USER_ERROR);
trigger_error('Дублирование не допускается.', E_USER_ERROR);
}
}
+35 -35
View File
@@ -7,7 +7,7 @@ class Tournir
private User $u;
private array $info;
private array $user;
private array $name = [0 => 'Выжить любой ценой', 1 => 'Каждый сам за себя', 2 => 'Захват ключа',];
private array $name = [0 => 'Выжить любой ценой', 1 => 'Каждый сам за себя', 2 => 'Захват ключа',];
public function __construct()
{
@@ -31,13 +31,13 @@ class Tournir
}
} else {
Db::sql('update turnirs set status = 3 where id = ?', [$this->info['id']]);
//Создание поединка
//Создание поединка
Db::sql('insert into battle (city, time_start, timeout, type, turnir) values (?,unix_timestamp(),60,1,?)', [$this->u->info['city'], $this->info['id']]);
$uri = Db::lastInsertId();
//Закидываем персонажей в поединок
//Закидываем персонажей в поединок
Db::sql('update users set battle = ? where inUser = 0 and inTurnirnew = ?', [$uri, $this->info['id']]);
//Обозначаем завершение турнира при выходе
die('Перейтиде в раздел "поединки"...');
//Обозначаем завершение турнира при выходе
die('Перейтиде в раздел "поединки"...');
}
}
@@ -53,7 +53,7 @@ class Tournir
$inf = mysql_fetch_array(mysql_query('SELECT * FROM `users` WHERE `id` = "' . $pl['uid'] . '" LIMIT 1'));
$bot = mysql_fetch_array(mysql_query('SELECT * FROM `users` WHERE `id` = "' . $pl['bot'] . '" LIMIT 1'));
if (isset($inf['id'], $bot['id'])) {
//выдаем призы и т.д
//выдаем призы и т.д
mysql_query('DELETE FROM `users` WHERE `id` = "' . $bot['id'] . '" LIMIT 1');
mysql_query('DELETE FROM `stats` WHERE `id` = "' . $bot['id'] . '" LIMIT 1');
mysql_query('DELETE FROM `items_users` WHERE `uid` = "' . $bot['id'] . '" LIMIT 1000');
@@ -63,7 +63,7 @@ class Tournir
if ($pl['team'] == $this->info['winner'] && $this->info['winner'] != 0) {
$inf['add_expp'] = [0, 1, 5, 10, 15, 25, 35, 70, 100, 150, 200, 300, 500, 700, 1000];
//получаем опыт (с 0 по 12 лвл)
//получаем опыт (с 0 по 12 лвл)
$inf['add_expn'] = [10, 30, 55, 62, 92, 180, 350, 1350, 4500, 7000, 21000, 30000, 35000];
$inf['add_expn'] = $inf['add_expn'][$inf['level']];
@@ -71,7 +71,7 @@ class Tournir
mysql_query('UPDATE `stats` SET `exp` = `exp` + ' . $inf['add_expn'] . ' WHERE `id` = "' . $inf['id'] . '" LIMIT 1');
$win .= '<b>' . $inf['login'] . '</b>, ';
$r = 'Турнир завершен. Вы являетесь победителем турнира, получено опыта: <b>' . $inf['add_expn'] . '</b>.';
$r = 'Турнир завершен. Вы являетесь победителем турнира, получено опыта: <b>' . $inf['add_expn'] . '</b>.';
mysql_query("INSERT INTO `chat` (`new`,`city`,`room`,`login`,`to`,`text`,`time`,`type`,`toChat`) VALUES ('1','capitalcity','" . $inf['room'] . "','','" . $inf['login'] . "','" . $r . "','" . time() . "','6','0')");
} elseif ($pl['team'] != $this->info['winner'] && $this->info['winner'] != 0) {
@@ -89,11 +89,11 @@ class Tournir
if ($win != '') {
$win = rtrim($win, ', ');
$lose = rtrim($lose, ', ');
$win = 'Победители турнира: ' . $win . '. Проигравшая сторона: ' . $lose . '. Следующий турнир начнется через ' . $this->u->timeOut($this->info['time2']) . ' (' . date('d.m.Y H:i', (time() + $this->info['time2'])) . ').';
$win = 'Победители турнира: ' . $win . '. Проигравшая сторона: ' . $lose . '. Следующий турнир начнется через ' . $this->u->timeOut($this->info['time2']) . ' (' . date('d.m.Y H:i', (time() + $this->info['time2'])) . ').';
} else {
$win = 'Победители турнира отсутствует. Следующий турнир начнется через ' . $this->u->timeOut($this->info['time2']) . ' (' . date('d.m.Y H:i', (time() + $this->info['time2'])) . ').';
$win = 'Победители турнира отсутствует. Следующий турнир начнется через ' . $this->u->timeOut($this->info['time2']) . ' (' . date('d.m.Y H:i', (time() + $this->info['time2'])) . ').';
}
$r = '<font color=black><b>Турнир завершен.</b></font> ' . $win;
$r = '<font color=black><b>Турнир завершен.</b></font> ' . $win;
mysql_query("INSERT INTO `chat` (`new`,`city`,`room`,`login`,`to`,`text`,`time`,`type`,`toChat`) VALUES ('1','capitalcity','','','','" . $r . "','" . time() . "','6','0')");
}
}
@@ -105,7 +105,7 @@ class Tournir
$tm2 = '';
$noitm = [869 => 1, 1246 => 1, 155 => 1, 1245 => 1, 678 => 1];
//получение комплекта
//получение комплекта
if ($this->info['step'] != 3 && $this->info['step'] != 0 && isset($_GET['gocomplect']) && $this->user['points'] < 2) {
$aso = explode(',', $this->user['items']);
$ast = explode('-', $_GET['gocomplect']);
@@ -150,19 +150,19 @@ class Tournir
}
if ($noitm > 0) {
echo 'Использование багов карается законом!';
echo 'Использование багов карается законом!';
$addi = 0;
} elseif (count($asg[3]) > 2) {
echo 'Вы выбрали слишком много предметов, выберите только два оружия и один щит';
echo 'Вы выбрали слишком много предметов, выберите только два оружия и один щит';
$addi = 0;
} elseif (count($asg[10]) > 3) {
echo 'Вы выбрали слишком много предметов, выберите только три кольца';
echo 'Вы выбрали слишком много предметов, выберите только три кольца';
$addi = 0;
} elseif ($j > 16) {
echo 'Вы выбрали слишком много предметов';
echo 'Вы выбрали слишком много предметов';
$addi = 0;
} elseif ($j < 1) {
echo 'Выберите хотя бы один предмет';
echo 'Выберите хотя бы один предмет';
$addi = 0;
}
@@ -211,7 +211,7 @@ class Tournir
if ($this->info['step'] == 3) {
$this->finishTurnir();
} elseif ($this->info['step'] == 0) {
//распределяем команды
//распределяем команды
$po = [0, 0];
$sp = mysql_query('SELECT * FROM `users_turnirs` WHERE `turnir` = "' . $this->info['id'] . '" AND `points` > 3 ORDER BY `points` DESC LIMIT ' . $this->info['users_in']);
$tmr = rand(1, 2);
@@ -252,7 +252,7 @@ class Tournir
${'tm' . $bot['team']} .= $this->u->microLogin($bot, 2) . '<br>';
}
}
$r .= '<style>/* цвета команд */
$r .= '<style>/* цвета команд */
.CSSteam0 { font-weight: bold; cursor:pointer; }
.CSSteam1 { font-weight: bold; color: #6666CC; cursor:pointer; }
.CSSteam2 { font-weight: bold; color: #B06A00; cursor:pointer; }
@@ -264,33 +264,33 @@ class Tournir
.CSSteam8 { font-weight: bold; color: #842B61; cursor:pointer; }
.CSSteam9 { font-weight: bold; color: navy; cursor:pointer; }
.CSSvs { font-weight: bold; }</style>';
$r .= '<h3>&laquo;' . $this->name[$this->info['type']] . '&raquo;</h3><br>Начало турнира через ' . $this->u->timeOut($this->info['time'] - time()) . '! ';
$r .= '<h3>&laquo;' . $this->name[$this->info['type']] . '&raquo;</h3><br>Начало турнира через ' . $this->u->timeOut($this->info['time'] - time()) . '! ';
if (isset($_GET['hpregenNowTurnir']) && ($this->u->stats['hpNow'] < $this->u->stats['hpAll'] || $this->u->stats['mpNow'] < $this->u->stats['mpAll'])) {
mysql_query('UPDATE `stats` SET `hpNow` = "' . $this->u->stats['hpAll'] . '",`mpNow` = "' . $this->u->stats['mpAll'] . '" WHERE `id` = "' . $this->u->info['id'] . '" LIMIT 1');
}
if ($this->user['points'] < 3) {
//Еще не получили обмундирование
//Еще не получили обмундирование
if ($this->user['points'] < 2) {
$r .= '<INPUT class=\'btn_grey\' onClick="selectItmSave()" TYPE=button name=tmp value="Получить обмундирование">';
$r .= '<INPUT class=\'btn_grey\' onClick="selectItmSave()" TYPE=button name=tmp value="Получить обмундирование">';
} else {
$r .= ' <INPUT class=\'btn_grey\' onClick="location=\'main.php\';" TYPE=button name=tmp value="Я готов';
$r .= ' <INPUT class=\'btn_grey\' onClick="location=\'main.php\';" TYPE=button name=tmp value="Я готов';
if ($this->u->info['sex'] == 1) {
$r .= 'а';
$r .= 'а';
}
$r .= '!">';
}
} else {
$r .= '<small><b>Вы участвуете в турнире!</b></small>';
$r .= ' &nbsp; <INPUT class=\'btn_grey\' onClick="location.href=\'main.php?hpregenNowTurnir=1\'" TYPE=button name=tmp value="Восстановить HP и MP">';
$r .= '<small><b>Вы участвуете в турнире!</b></small>';
$r .= ' &nbsp; <INPUT class=\'btn_grey\' onClick="location.href=\'main.php?hpregenNowTurnir=1\'" TYPE=button name=tmp value="Восстановить HP и MP">';
}
$r .= '<div style="float:right"><INPUT onClick="location=\'main.php\';" TYPE=button name=tmp value="Обновить"></div>';
$r .= '<div style="float:right"><INPUT onClick="location=\'main.php\';" TYPE=button name=tmp value="Обновить"></div>';
if ($this->user['points'] < 3 && $this->user['items'] != '0') {
$r .= '<div align="left" style="height:1px; width:100%; margin:10px 0 10px 0; border-top:1px solid #999999;"></div>';
if ($this->user['items'] == '') {
//Выдаем предметы для выбора
//Выдаем предметы для выбора
$ai = '';
$sp = mysql_query('SELECT `a`.*,`b`.* FROM `items_shop` AS `a` LEFT JOIN `items_main` AS `b` ON (`a`.`item_id` = `b`.`id`) WHERE `a`.`sid` = 1 AND
@@ -311,10 +311,10 @@ class Tournir
//
$com[$i] = $aso[$i][rand(0, count($aso[$i]) - 1)];
} elseif ($i == 14) {
//правая рука
//правая рука
$com[$i] = $aso[$i][rand(0, count($aso[$i]) - 1)];
} else {
//обмундирование
//обмундирование
$com[$i] = $aso[$i][rand(0, count($aso[$i]) - 1)];
if ($i == 10) {
$ai .= $com[$i]['id'] . ',';
@@ -338,7 +338,7 @@ class Tournir
mysql_query('UPDATE `users_turnirs` SET `items` = "' . $ai . '" WHERE `id` = "' . $this->user['id'] . '" LIMIT 1');
}
//Выводим предметы чтобы надеть их
//Выводим предметы чтобы надеть их
$ai = explode(',', $this->user['items']);
$i = 0;
$ia = [];
@@ -352,7 +352,7 @@ class Tournir
}
unset($ai);
$r .= '<b>Выберите предметы для турнира:</b><br>';
$r .= '<b>Выберите предметы для турнира:</b><br>';
?>
<style>
.its0 {
@@ -466,8 +466,8 @@ class Tournir
$r .= '<div align="left" style="height:1px; width:100%; margin:10px 0 10px 0; border-top:1px solid #999999;"></div>';
$r .= '<table style="border:1px solid #99cccc" width="700" bgcolor="#bbdddd" border="0" align="center" cellpadding="5" cellspacing="0">
<tr>
<td width="350" align="center" bgcolor="#99cccc"><b class="CSSteam1">Команда 1</b></td>
<td align="center" bgcolor="#99cccc"><b class="CSSteam2">Команда 2</b></td>
<td width="350" align="center" bgcolor="#99cccc"><b class="CSSteam1">Команда 1</b></td>
<td align="center" bgcolor="#99cccc"><b class="CSSteam2">Команда 2</b></td>
</tr>
<tr>
<td align="center" style="border-right:1px solid #99cccc">' . rtrim($tm1, ', ') . '</td>
@@ -476,7 +476,7 @@ class Tournir
</table>';
if (($this->info['time'] - time() < 0) && $this->info['step'] == 1) {
//начинаем турнир
//начинаем турнир
$this->startTurnir();
}
echo $r;
+10 -10
View File
@@ -1,7 +1,7 @@
<?php
/**
* Единая функция для заливки файлов на сервер.
* Единая функция для заливки файлов на сервер.
*
* @author Ivor Barhansky <me@lopar.space>
* @version 1
@@ -60,7 +60,7 @@ class Uploader
}
/**
* @param string $path путь от корня до конечной папки без открывающего слеша.
* @param string $path путь от корня до конечной папки без открывающего слеша.
* @return void
*/
public function setSavePath($path)
@@ -100,19 +100,19 @@ class Uploader
{
list($width, $height) = getimagesize($this->FILE['tmp_name']);
if (!$width || !$height) {
self::$error = 'Не подтянулись размеры файла.';
self::$error = 'Не подтянулись размеры файла.';
return false;
}
if (
($width < $this->width['min'] || $width > $this->width['max']) ||
($height < $this->height['min'] || $height > $this->height['max'])
) {
self::$error = 'Требования к размеру: ';
self::$error = 'Требования к размеру: ';
if ($this->width['min'] !== $this->width['max'] || $this->height['min'] !== $this->height['max']) {
self::$error .= "от [{$this->width['min']} x {$this->height['min']}] до ";
self::$error .= "от [{$this->width['min']} x {$this->height['min']}] до ";
}
self::$error .= "[{$this->width['max']} x {$this->height['max']}].";
self::$error .= " Текущий размер [$width x $height]";
self::$error .= " Текущий размер [$width x $height]";
return false;
}
return true;
@@ -124,7 +124,7 @@ class Uploader
$this->setMaxFileSize(2);
}
if ($this->FILE['size'] > $this->maxFileSizeMb * (1024 * 1024) || $this->FILE['size'] <= 0) {
self::$error = 'Неверный размер файла. Максимальный размер файла ' . $this->maxFileSizeMb . ' МБ';
self::$error = 'Неверный размер файла. Максимальный размер файла ' . $this->maxFileSizeMb . ' МБ';
return false;
}
return true;
@@ -136,7 +136,7 @@ class Uploader
!preg_match('/\.(' . $this->extensions . ')$/i', $this->FILE['name'], $this->extMatches) ||
!preg_match('/image/i', $this->FILE['type'])
) {
self::$error = 'Неверный тип файла. Допустимые типы : ' . $this->extensions;
self::$error = 'Неверный тип файла. Допустимые типы : ' . $this->extensions;
return false;
}
return true;
@@ -145,7 +145,7 @@ class Uploader
private function hasNormalFilePath()
{
if (!$this->savePath || !is_dir($this->savePath)) {
self::$error = 'Ошибка загрузки: нет такой папки.';
self::$error = 'Ошибка загрузки: нет такой папки.';
return false;
}
return true;
@@ -161,7 +161,7 @@ class Uploader
$fn2 = $this->cnm;
}
if (!move_uploaded_file($this->FILE['tmp_name'], $this->savePath . $fn)) {
self::$error = 'Ошибка загрузки файла';
self::$error = 'Ошибка загрузки файла';
return false;
}
return [$fn2, $fn, $this->savePath . $fn];
+1813 -1894
View File
File diff suppressed because it is too large Load Diff
+25 -25
View File
@@ -10,11 +10,11 @@ use UserIp;
class Confirmation
{
/**
* Для однотипных писем с подтверждением.
* @param array $userinfo Данные из (User)->info.
* @param mixed $value Новое значение
* @param ?int $code Проверочный код
* @param string $type Тип меняемого значения. С маленькой буквы, именительный падеж.
* Для однотипных писем с подтверждением.
* @param array $userinfo Данные из (User)->info.
* @param mixed $value Новое значение
* @param ?int $code Проверочный код
* @param string $type Тип меняемого значения. С маленькой буквы, именительный падеж.
* @return void
*/
public static function byEmail(array $userinfo, string $type, $value, ?int $code = null)
@@ -34,23 +34,23 @@ class Confirmation
$userinfo['mail'],
<<<HTML
<html lang="ru">
<head><title>Сменить $type</title></head>
<head><title>Сменить $type</title></head>
<body>
$date<br>
Кто-то с IP: $ip пытается сменить $type к персонажу $fulllogin.<br>
Т.к. в анкете у этого персонажа указан email: {$userinfo['mail']}, то вы и получили это письмо.<br>
Кто-то с IP: $ip пытается сменить $type к персонажу $fulllogin.<br>
Т.к. в анкете у этого персонажа указан email: {$userinfo['mail']}, то вы и получили это письмо.<br>
login: {$userinfo['login']}<br>
Новый $type: <span style="background-color: wheat; font-family: Consolas, monospace;">$value</span><br><br>
Для того чтобы сменить $type, перейдите по ссылке:<br>
Новый $type: <span style="background-color: wheat; font-family: Consolas, monospace;">$value</span><br><br>
Для того чтобы сменить $type, перейдите по ссылке:<br>
$activationLink<br>
<br>--<br>
Бойцовский Клуб $https<br>
Администрация Бойцовского Клуба: $support<br>
P.S. Данное письмо сгенерировано автоматически, отвечать на него не нужно.
Бойцовский Клуб $https<br>
Администрация Бойцовского Клуба: $support<br>
P.S. Данное письмо сгенерировано автоматически, отвечать на него не нужно.
</body>
</html>
HTML,
"Смена $type у персонажа $fulllogin"
"Смена $type у персонажа $fulllogin"
);
}
@@ -63,18 +63,18 @@ class Confirmation
$userinfo['mail'],
<<<HTML
<html lang="ru">
<head><title>Второй пароль от персонажа $fulllogin.</title></head>
<head><title>Второй пароль от персонажа $fulllogin.</title></head>
<body>
Вами, с IP адреса - $ip, был установлен второй пароль в игре Бойцовский Клуб.<br>
Если это были не Вы, свяжитесь с администрацией сайта.<br><br>
Вами, с IP адреса - $ip, был установлен второй пароль в игре Бойцовский Клуб.<br>
Если это были не Вы, свяжитесь с администрацией сайта.<br><br>
------------------------------------------------------------------<br>
Ваш логин | {$userinfo['login']}<br>
Второй пароль | ' . $pass2 . '<br>
Ваш логин | {$userinfo['login']}<br>
Второй пароль | ' . $pass2 . '<br>
------------------------------------------------------------------<br>
<br><br>Желаем Вам приятной игры.<br><br><i>Администрация</i>
<br><br>Желаем Вам приятной игры.<br><br><i>Администрация</i>
</body>
HTML,
"Второй пароль от персонажа $fulllogin"
"Второй пароль от персонажа $fulllogin"
);
}
@@ -91,25 +91,25 @@ class Confirmation
[$uid, $code]
);
if (!$codes['id']) {
$status = 'Ссылка устарела!';
$status = 'Ссылка устарела!';
} elseif ($codes['active'] === 1) {
Db::sql(
'update users set emailconfirmation = 1, securetime = unix_timestamp() + 259200 where id = ?',
[$codes['id']]
);
$status = "Подтверждение смены пароля/email через почту включено";
$status = "Подтверждение смены пароля/email через почту включено";
} elseif ($codes['pass'] === 1) {
Db::sql(
'update users as u inner join emailconfirmation as e on u.id = e.id set u.pass = e.pa_em, u.securetime = unix_timestamp() + 259200 where u.id = ?',
[$codes['id']]
);
$status = "Удачно сменили пароль<";
$status = "Удачно сменили пароль<";
} elseif ($codes['email'] === 1) {
Db::sql(
'update users as u inner join emailconfirmation as e on u.id = e.id set u.mail = e.pa_em, u.securetime = unix_timestamp() + 259200 where u.id = ?',
[$codes['id']]
);
$status = "Удачно сменили email";
$status = "Удачно сменили email";
}
Db::sql('delete from emailconfirmation where id = ? and code = ?', [$_GET['id'], $_GET['code']]);
if ($status) {
+1 -1
View File
@@ -25,7 +25,7 @@ class Password
PassGen::intCode(10),
password_hash($new, PASSWORD_DEFAULT)
];
Confirmation::byEmail($this->info, 'ïàðîëü', $new, $args[1]);
Confirmation::byEmail($this->info, 'пароль', $new, $args[1]);
$hashedPass = $args[2];
} else {
$query = 'update users set pass = ?, repass = 0, securetime = unix_timestamp() + 259200 where id = ?';
+180 -53
View File
@@ -1,119 +1,246 @@
<?php
use Core\Config;
use Core\Db;
class UserRegister
{
private string $error = '';
private string $login = '';
private string $email = '';
private string $password = '';
private int $class = 0;
private array $classBonuses = [
1 => [
's1=62|s2=3|s3=3|s4=30|rinv=40|m9=5|m6=10|s7=0|a1=0|a2=9|a3=0|a4=0|a5=0|mg1=0|mg2=0|mg3=0|mg4=0|mg5=0|mg6=0|mg7=0|s5=0|s6=0|a6=0|s8=0|s9=0|s10=0|s11=0|s12=0|s13=0|s14=0|s15=0',
'items' => [6433],
'effects' => [1, 20, 25, 37, 38, 283, 296, 412, 472],
],
2 => [
's1=21|s2=31|s3=16|s4=30|rinv=40|m9=5|m6=10|s7=0|a1=9|a2=0|a3=0|a4=0|a5=0|mg1=0|mg2=0|mg3=0|mg4=0|mg5=0|mg6=0|mg7=0|s5=0|s6=0',
'items' => [6431],
'effects' => [8, 20, 25, 37, 38, 283, 296, 412, 472],
],
3 => [
's1=42|s2=3|s3=3|s4=50|rinv=40|m9=5|m6=10|s7=0|a1=0|a2=0|a3=9|a4=0|a5=0|mg1=0|mg2=0|mg3=0|mg4=0|mg5=0|mg6=0|mg7=0|s5=0|s6=0|a6=0|s8=0|s9=0|s10=0|s11=0|s12=0|s13=0|s14=0|s15=0',
'items' => [6432],
'effects' => [1, 20, 25, 37, 38, 283, 296, 412, 472],
],
4 => [
's1=24|s2=15|s3=29|s4=30|rinv=40|m9=5|m6=10|s7=0|a1=0|a2=0|a3=0|a4=9|a5=0|mg1=0|mg2=0|mg3=0|mg4=0|mg5=0|mg6=0|mg7=0|s5=0|s6=0|a6=0|s8=0|s9=0|s10=0|s11=0|s12=0|s13=0|s14=0|s15=0',
'items' => [6430],
'effects' => [7, 20, 25, 37, 38, 283, 296, 412, 472],
],
5 => [
's1=14|s2=3|s3=3|s4=25|rinv=40|m9=5|m6=10|s7=0|a1=0|a2=0|a3=0|a4=0|a5=3|mg1=0|mg2=6|mg3=0|mg4=0|mg5=0|mg6=0|mg7=0|s5=13|s6=40|a6=0|s8=0|s9=0|s10=0|s11=0|s12=0|s13=0|s14=0|s15=0',
'items' => [6435],
'effects' => [9, 32, 53, 439, 25, 37, 38, 283, 296, 412, 472],
],
6 => [
's1=14|s2=3|s3=3|s4=25|rinv=40|m9=5|m6=10|s7=0|a1=0|a2=0|a3=0|a4=0|a5=3|mg1=6|mg2=0|mg3=0|mg4=0|mg5=0|mg6=0|mg7=0|s5=13|s6=40|a6=0|s8=0|s9=0|s10=0|s11=0|s12=0|s13=0|s14=0|s15=0',
'items' => [6447],
'effects' => [9, 32, 51, 439, 25, 37, 38, 283, 296, 412, 472],
],
7 => [
's1=14|s2=3|s3=3|s4=25|rinv=40|m9=5|m6=10|s7=0|a1=0|a2=0|a3=0|a4=0|a5=3|mg1=0|mg2=0|mg3=0|mg4=6|mg5=0|mg6=0|mg7=0|s5=13|s6=40|a6=0|s8=0|s9=0|s10=0|s11=0|s12=0|s13=0|s14=0|s15=0',
'items' => [6436],
'effects' => [9, 32, 54, 439, 25, 37, 38, 283, 296, 412, 472],
],
8 => [
's1=14|s2=3|s3=3|s4=25|rinv=40|m9=5|m6=10|s7=0|a1=0|a2=0|a3=0|a4=0|a5=3|mg1=0|mg2=0|mg3=6|mg4=0|mg5=0|mg6=0|mg7=0|s5=13|s6=40|a6=0|s8=0|s9=0|s10=0|s11=0|s12=0|s13=0|s14=0|s15=0',
'items' => [6448],
'effects' => [9, 32, 52, 439, 25, 37, 38, 283, 296, 412, 472],
],
9 => [
's1=15|s2=23|s3=30|s4=30|rinv=40|m9=5|m6=10|s7=0|a1=9|a2=0|a3=0|a4=0|a5=0|mg1=0|mg2=0|mg3=0|mg4=0|mg5=0|mg6=0|mg7=0|s5=0|s6=0',
'items' => [6530],
'effects' => [8, 20, 25, 37, 38, 283, 296, 412, 472],
],
];
private array $restrictedLogins = [
'ангел', 'angel', 'администрация', 'administration', 'Комментатор',
'Мироздатель', 'Мусорщик', 'Падальщик', 'Повелитель',
'Архивариус', 'Пересмешник', 'Волынщик', 'Лорд Разрушитель',
'Милосердие', 'Справедливость', 'Искушение', 'Вознесение',
];
public function hasMixedLatCur(string $txt): bool
{
$en = preg_match("/^(([0-9A-z -])+)$/i", $txt);
$ru = preg_match("/^(([0-9А-я _-])+)$/i", $txt);
$ru = preg_match("/^(([0-9А-я _-])+)$/i", $txt);
return ($ru && $en) || (!$ru && !$en);
}
public function hasGoodLogin(string $login): string
public function hasGoodLogin(string $login): bool
{
$isRestricted = in_array(
$login,
[
'ангел', 'angel', 'администрация', 'administration', 'Комментатор',
'Мироздатель', 'Мусорщик', 'Падальщик', 'Повелитель',
'Архивариус', 'Пересмешник', 'Волынщик', 'Лорд Разрушитель',
'Милосердие', 'Справедливость', 'Искушение', 'Вознесение',
]
);
$isRestricted = in_array($login, $this->restrictedLogins);
$isRegistered = Db::getValue('select count(*) from users where login = ?', [$login]);
//Бывшие в употреблении логины. Дичь, но ладно.
//Бывшие в употреблении логины. Дичь, но ладно.
$wasRegistered = Db::getValue('select count(*) from lastnames where login = ?', [$login]);
$login = str_replace(' ', ' ', $login);
//Логин от 4 до 20 символов
if (strlen($login) > 20) {
$error = 'Логин должен содержать не более 20 символов.';
$this->error = 'Логин должен содержать не более 20 символов.';
}
if (strlen($login) < 4) {
$error = 'Логин должен содержать не менее 4 символов.';
$this->error = 'Логин должен содержать не менее 4 символов.';
}
if ($this->hasMixedLatCur($login)) {
$error = 'В логине разрешено использовать только буквы одного алфавита русского или английского. Нельзя смешивать.';
$this->error = 'В логине разрешено использовать только буквы одного алфавита русского или английского. Нельзя смешивать.';
}
//Разделители
if (substr_count($login, ' ') + substr_count($login, '-') + substr_count($login, '_') > 2) {
$error = 'Не более двух разделителей одновременно (пробел, тире, нижнее подчеркивание).';
$this->error = 'Не более двух разделителей одновременно (пробел, тире, нижнее подчеркивание).';
}
if (!empty($error)) {
$error .= '<br> Пример правильного никнейма: Петя Убиватор, Коля, xalop. <br> Пример неправильного никнейма: )))), kolя)=-/.';
if (!empty($this->error)) {
$this->error .= '<br>Пример правильного никнейма: Петя Убиватор, Коля, xalop.<br>Пример неправильного никнейма: )))), kolя)=-/.';
}
if ($isRegistered || $wasRegistered || $isRestricted) {
$error = 'Логин ' . $login . ' уже занят, выберите другой.';
$this->error = 'Логин ' . $login . ' уже занят, выберите другой.';
}
return $error ?? '';
return !$this->error;
}
public function hasGoodEmail(string $email): string
public function hasGoodEmail(string $email): bool
{
$isRegistered = Db::getValue('select count(*) from users where mail = ?', [$email]);
$isBlocked = Db::getValue('select count(*) from ban_email where email = ?', [$email]);
$allowedDomains = Db::getColumn('select email from trust_email');
if (!filter_var($email, FILTER_VALIDATE_EMAIL) || $isRegistered) {
$error = 'Неправильный email.';
$this->error = 'Неправильный email.';
}
if ($isBlocked) {
$error = 'Адрес заблокирован.';
$this->error = 'Адрес заблокирован.';
}
$allowedDomains = Db::getColumn('select email from trust_email');
$domain = explode('@', $email)[1];
if (!in_array($domain, $allowedDomains)) {
$error = 'Данный почтовый сервис использовать нельзя.';
if (!in_array(explode('@', $email)[1], $allowedDomains)) {
$this->error = 'Данный почтовый сервис использовать нельзя.';
}
return $error ?? '';
return !$this->error;
}
public function hasGoodEmailCode(string $email, int $code): string
public function hasGoodEmailCode(string $email, int $code): bool
{
$check = Db::getValue('select code from secure_code where email = ?', [$email]);
$check = Db::getValue('select code from secure_code where email = ? order by time desc limit 1', [$email]);
if ($code !== $check) {
return 'Неверный проверочный код.';
$this->error = 'Неверный проверочный код.';
} else {
Db::sql('delete from secure_code where email = ?', [$email]);
}
return '';
return !$this->error;
}
public function hasGoodPassword(string $password1, string $password2): string
public function hasGoodPassword(string $password1, string $password2): bool
{
if ($password1 !== $password2) {
$error = 'Пароли не совпадают';
$this->error = 'Пароли не совпадают';
}
if (strlen($password1 < 8)) {
$error = 'Пароль должен быть больше 8 символов';
$error .= 'Можете использовать сгенерированный пароль: ' . PassGen::new();
if (strlen($password1) < 8) {
$this->error = 'Пароль должен быть больше 8 символов';
}
return $error ?? '';
return !$this->error;
}
public static function new(string $login, string $password, string $email, $ref, $birthday, $sex): string
public function new(string $login, string $password, string $email, $ref, $birthday, int $sex, int $class): string
{
$password = password_hash($password, PASSWORD_DEFAULT);
if (!$this->hasGoodLogin($login)) { //fixme: грязный хак, но лучше не придумывается с этой пошаговостью.
return 0;
}
$this->class = $class;
$ip = UserIp::get();
$sex = (int)$sex - 10; //На входе 10\11, а передать надо 0\1.
$sex -= 10; //На входе 10\11, а передать надо 0\1.
Db::sql(
'insert into users (users.real,login,host_reg,pass,ip,ipreg,room,timereg,mail,bithday,sex,fnq,molch2,level,hobby,clan_zv) values (1,?,?,?,?,?,9,unix_timestamp(),?,?,?,0,unix_timestamp() + 86400,8,\'\',0)',
'insert into users
(`real`,login,host_reg,pass,ip,ipreg,room,timereg,mail,bithday,sex,fnq,molch2,level,clan_zv,money,online)
values (1,?,?,?,?,?,9,unix_timestamp(),?,?,?,0,unix_timestamp() + 86400,8,0,200,unix_timestamp())',
[
$login,
$this->login,
$ref ?? '',
$password,
$this->password,
$ip,
$ip,
$email,
$this->email,
date('d.m.Y', strtotime($birthday)),
$sex,
]
);
$uid = Db::lastInsertId();
$this->login = $login;
$this->setCookies();
$this->setStatsItemsEffects();
User::setOnline($uid);
Db::sql('insert into online (uid, timeStart) values (?,unix_timestamp())', [$uid]);
return $uid;
}
return Db::lastInsertId();
private function setCookies()
{
setcookie('login', 1, 1, '/', Config::get('host'), true);
setcookie('registrationModal', 1, 1, '/', Config::get('host'), true);
setcookie('login', $this->login, strtotime('+7 days'), '/', Config::get('host'), true);
setcookie('registrationModal', 'true', strtotime('+7 days'), '/', Config::get('host'), true);
}
private function setStatsItemsEffects()
{
$u = User::start();
$uid = (int)Db::lastInsertId();
if ($_SESSION['ref'] === 1) {
$this->classBonuses[$this->class]['items'][] = 4811;
}
Db::sql(
'insert into stats (id,stats,ability,skills,exp) values (?,?,-75,-9,100000)',
[
$uid,
$this->classBonuses[$this->class][0],
]
);
foreach ($this->classBonuses[$this->class]['items'] as $item) {
$itemId = $u->addItem($item, $uid);
Db::sql(
'update items_users
set `1price` = (select price_1 from items_shop where items_shop.item_id = ? and sid = 1)
where id = ?',
[$item, $itemId]
);
}
$this->addEffects($uid, $this->classBonuses[$this->class]['effects']);
}
private function addEffects(int $uid, int ...$eids)
{
$in = implode(',', $eids);
$q =
"insert into eff_users (
overType,
id_eff,
uid,
name,
timeUse,
data
)
select
oneType,
id2,
$uid,
mname,
unix_timestamp(),
mdata
from
eff_main
where
id2 in ($in)";
Db::sql($q);
}
/**
* @return string
*/
public function getError(): string
{
return $this->error;
}
}
+1 -1
View File
@@ -5,7 +5,7 @@ use Core\Db;
class UserStats
{
/**
* Собирает суммы всех бонусов с одетых предметов и активных эфектов.
* Собирает суммы всех бонусов с одетых предметов и активных эфектов.
* @param int $userId
* @param bool $showAll
* @return array
+4 -4
View File
@@ -5,9 +5,9 @@ if (!defined('GAME')) {
$db = [
's' => 'localhost', // server
'd' => 'newcom1_abk', // database
'u' => 'newcom1_abk', // user
'p' => '4nWYsIM[c?}P' // password
'd' => 'game_production', // database
'u' => 'prod1', // user
'p' => 'Bz@fGaZjFU2206Ua' // password
];
$dsn = 'mysql:host=' . $db['s'] . ';dbname=' . $db['d'];
@@ -15,4 +15,4 @@ include_once dirname(__DIR__) . DIRECTORY_SEPARATOR . 'mysql_override.php';
$dbgo = mysql_connect($db['s'], $db['u'], $db['p']);
mysql_select_db($db['d'], $dbgo);
mysql_query('SET NAMES cp1251');
mysql_query('set names utf8mb4');
+6 -6
View File
@@ -1,22 +1,22 @@
<?
if( isset($s[1]) && $s[1] == '1/hramstok1' ) {
/*
Сундук: Водосток для сбора проб
* Заменяет предмет Пустая склянка (4693) на (4694) Склянка с пробами
Сундук: Водосток для сбора проб
* Заменяет предмет Пустая склянка (4693) на (4694) Склянка с пробами
*/
//Все переменные сохранять в массиве $vad !
//Все переменные сохранять в массиве $vad !
$vad = array(
'go' => true
);
$vad['test1'] = mysql_fetch_array(mysql_query('SELECT COUNT(*) FROM `dungeon_actions` WHERE `dn` = "'.$u->info['dnow'].'" AND `vars` = "obj_act'.$obj['id'].'" LIMIT 1'));
if( $vad['test1'][0] > 0 ) {
$r = 'Кто-то обыскал &quot;'.$obj['name'].'&quot; до вас...';
$r = 'Кто-то обыскал &quot;'.$obj['name'].'&quot; до вас...';
$vad['go'] = false;
}
$vad['itm'] = mysql_fetch_array(mysql_query('SELECT * FROM `items_users` WHERE `item_id` = 4693 AND `uid` = "'.$u->info['id'].'" AND `delete` = 0 AND `inShop` = 0 AND `inTransfer` = 0 LIMIT 1'));
if(!isset($vad['itm']['id'])) {
$r = 'У вас нет подходящего предмета для хранения проб... Все руки в каком-то говне...';
$r = 'У вас нет подходящего предмета для хранения проб... Все руки в каком-то говне...';
$vad['go'] = false;
}
@@ -25,7 +25,7 @@ if( isset($s[1]) && $s[1] == '1/hramstok1' ) {
"'.$u->info['dnow'].'","'.time().'","'.$obj['x'].'","'.$obj['y'].'","'.$u->info['id'].'","obj_act'.$obj['id'].'","'.$vad['bad'].'"
)');
mysql_query('UPDATE `items_users` SET `item_id` = 4694 WHERE `id` = "'.$vad['itm']['id'].'" LIMIT 1');
$r = 'Вы успешно взяли пробы с водостока! Набранную склянку нужно отнести обратно, к Арквиерро в Храм Знаний.';
$r = 'Вы успешно взяли пробы с водостока! Набранную склянку нужно отнести обратно, к Арквиерро в Храм Знаний.';
}
unset($vad);
+5 -5
View File
@@ -1,16 +1,16 @@
<?
if( isset($s[1]) && $s[1] == '1/podogrevatel' ) {
/*
Сундук: Обогреватель
* падает гайка
Сундук: Обогреватель
* падает гайка
*/
//Все переменные сохранять в массиве $vad !
//Все переменные сохранять в массиве $vad !
$vad = array(
'go' => true
);
$vad['test1'] = mysql_fetch_array(mysql_query('SELECT COUNT(*) FROM `dungeon_actions` WHERE `dn` = "'.$u->info['dnow'].'" AND `vars` = "obj_act'.$obj['id'].'" LIMIT 1'));
if( $vad['test1'][0] > 0 ) {
$r = 'Кто-то обыскал &quot;'.$obj['name'].'&quot; до вас...';
$r = 'Кто-то обыскал &quot;'.$obj['name'].'&quot; до вас...';
$vad['go'] = false;
}
@@ -23,7 +23,7 @@ if( isset($s[1]) && $s[1] == '1/podogrevatel' ) {
$vad['itm'] = $vad['itm'][rand(0,count($vad['itm'])-1)];
$vad['itm'] = mysql_fetch_array(mysql_query('SELECT * FROM `items_main` WHERE `id` = "'.$vad['itm'].'" LIMIT 1'));
$this->pickitem($obj,$vad['itm']['id'],0,'',false);
$r = 'Вы обнаружили предмет &quot;'.$vad['itm']['name'].'&quot;.';
$r = 'Вы обнаружили предмет &quot;'.$vad['itm']['name'].'&quot;.';
}
unset($vad);
+6 -6
View File
@@ -1,22 +1,22 @@
<?
if( isset($s[1]) && $s[1] == '1/rjav' ) {
/*
Сундук: Ржавые трубы
* Обмен ключчиииика на вентиль
Сундук: Ржавые трубы
* Обмен ключчиииика на вентиль
*/
//Все переменные сохранять в массиве $vad !
//Все переменные сохранять в массиве $vad !
$vad = array(
'go' => true
);
$vad['test1'] = mysql_fetch_array(mysql_query('SELECT COUNT(*) FROM `dungeon_actions` WHERE `dn` = "'.$u->info['dnow'].'" AND `vars` = "obj_act'.$obj['id'].'" LIMIT 1'));
if( $vad['test1'][0] > 0 ) {
$r = 'Кто-то обыскал &quot;'.$obj['name'].'&quot; до вас...';
$r = 'Кто-то обыскал &quot;'.$obj['name'].'&quot; до вас...';
$vad['go'] = false;
}
$vad['itm'] = mysql_fetch_array(mysql_query('SELECT * FROM `items_users` WHERE `item_id` = 1004 AND `uid` = "'.$u->info['id'].'" AND `delete` = 0 AND `inShop` = 0 AND `inTransfer` = 0 LIMIT 1'));
if(!isset($vad['itm']['id'])) {
$r = 'У вас нет подходящего предмета чтобы открутить вентиль...';
$r = 'У вас нет подходящего предмета чтобы открутить вентиль...';
$vad['go'] = false;
}
@@ -26,7 +26,7 @@ if( isset($s[1]) && $s[1] == '1/rjav' ) {
)');
mysql_query('UPDATE `items_users` SET `delete` = "'.time().'" WHERE `id` = "'.$vad['itm']['id'].'" LIMIT 1');
$this->pickitem($obj,1005,$u->info['id'],'',false);
$r = 'Вы успешно открутили вентиль! (Предмет &quot;Ключииик&quot; был изьят)';
$r = 'Вы успешно открутили вентиль! (Предмет &quot;Ключииик&quot; был изьят)';
}
unset($vad);
+5 -5
View File
@@ -1,16 +1,16 @@
<?
if( isset($s[1]) && $s[1] == '1/vods1' ) {
/*
Сундук: Водосток
* падает гайка
Сундук: Водосток
* падает гайка
*/
//Все переменные сохранять в массиве $vad !
//Все переменные сохранять в массиве $vad !
$vad = array(
'go' => true
);
$vad['test1'] = mysql_fetch_array(mysql_query('SELECT COUNT(*) FROM `dungeon_actions` WHERE `dn` = "'.$u->info['dnow'].'" AND `vars` = "obj_act'.$obj['id'].'" LIMIT 1'));
if( $vad['test1'][0] > 0 ) {
$r = 'Кто-то обыскал &quot;'.$obj['name'].'&quot; до вас...';
$r = 'Кто-то обыскал &quot;'.$obj['name'].'&quot; до вас...';
$vad['go'] = false;
}
@@ -20,7 +20,7 @@ if( isset($s[1]) && $s[1] == '1/vods1' ) {
)');
//mysql_query('UPDATE `items_users` SET `delete` = "'.time().'" WHERE `id` = "'.$vad['itm']['id'].'" LIMIT 1');
$this->pickitem($obj,1002,0,'',false);
$r = 'Вы обнаружили предмет &quot;Гайка&quot;.';
$r = 'Вы обнаружили предмет &quot;Гайка&quot;.';
}
unset($vad);
+10 -10
View File
@@ -1,34 +1,34 @@
<?
if( isset($s[1]) && $s[1] == '101/altar' ) {
/*
Алтарь
* Телепортирует на необходимую клетку х -3 , у 7
* Для прохода требуется 1 камень типа 881 или 878
Алтарь
* Телепортирует на необходимую клетку х -3 , у 7
* Для прохода требуется 1 камень типа 881 или 878
*/
//Все переменные сохранять в массиве $vad !
//Все переменные сохранять в массиве $vad !
$vad = array(
'go' => false
);
//Проверяем камни
//Проверяем камни
$vad['sp'] = mysql_fetch_array(mysql_query('SELECT * FROM `items_users` WHERE (`item_id` = "881" OR `item_id` = "878") AND `uid` = "'.$u->info['id'].'" AND `delete` = "0" AND `inOdet` = "0" AND `inShop` = "0" AND `inTransfer` = "0" LIMIT 1'));
if( isset($vad['sp']['id']) ) {
// Удалена проверка на группировку предметов 13.10.2015
// Удалена проверка на группировку предметов 13.10.2015
$vad['pl'] = mysql_fetch_array(mysql_query('SELECT * FROM `items_main` WHERE `id` = "'.$vad['sp']['item_id'].'" LIMIT 1'));
$vad['go'] = true;
}
if( $vad['go'] == true ) {
mysql_query('UPDATE `stats` SET `x` = "-3",`y` = "7",`s` = "1" WHERE `id` = "'.$u->info['id'].'" LIMIT 1');
// $u->deleteItem(,$u->info['id'],1); // Убрано 14.10.2015
// $u->deleteItem(,$u->info['id'],1); // Убрано 14.10.2015
$upd = mysql_query('UPDATE `items_users` SET `lastUPD`="'.time().'",`delete`="'.time().'" WHERE `id`="'.$vad['sp']['id'].'" LIMIT 1');
if($upd){
$r = 'Вы растворили &quot;'.$vad['pl']['name'].'&quot; в алтаре и произошел взрыв. Алтарь переместил вас в тайную комнату';
$r = 'Вы растворили &quot;'.$vad['pl']['name'].'&quot; в алтаре и произошел взрыв. Алтарь переместил вас в тайную комнату';
echo '<script>location.href="main.php"</script>';
} else {
$r = 'Что-то пошло не так, попробуйте позже.';
$r = 'Что-то пошло не так, попробуйте позже.';
}
}elseif( !isset($vad['sp']['id']) ) {
$r = 'Для перемещения требуется один из драгоценных камней';
$r = 'Для перемещения требуется один из драгоценных камней';
}
unset($vad);
}
+7 -7
View File
@@ -1,10 +1,10 @@
<?
if( isset($s[1]) && $s[1] == '101/i9' ) {
/*
Ñóíäóê: ëîâóøêà
* Ñíèìàåò äî 1000 ÍÐ îäèí ðàç
Сундук: ловушка
* Снимает до 1000 НР один раз
*/
//Âñå ïåðåìåííûå ñîõðàíÿòü â ìàññèâå $vad !
//Все переменные сохранять в массиве $vad !
$vad = array(
'go' => false
);
@@ -13,23 +13,23 @@ if( isset($s[1]) && $s[1] == '101/i9' ) {
if( !isset($vad['test']['id']) ) {
$vad['go'] = true;
}else{
$r = ' ñóíäóêå áûëà ëîâóøêà, å¸ àêòèâèðîâàë ïåðñîíàæ '.$u->microLogin($vad['test']['uid'],1);
$r = 'В сундуке была ловушка, её активировал персонаж '.$u->microLogin($vad['test']['uid'],1);
}
if( $vad['go'] == true ) {
mysql_query('INSERT INTO `dungeon_actions` (`dn`,`time`,`x`,`y`,`uid`,`vars`,`vals`) VALUES (
"'.$u->info['dnow'].'","'.time().'","'.$obj['x'].'","'.$obj['y'].'","'.$u->info['id'].'","obj_act'.$obj['id'].'",""
)');
$r = 'Â ñóíäóêå áûëà ëîâóøêà óñòàíîâëåííàÿ îäíèì èç îáèòàòåëåé ïîäçåìåëüÿ!';
$r = 'В сундуке была ловушка установленная одним из обитателей подземелья!';
$vad['min_hp'] = rand(100,1000);
$u->stats['hpNow'] -= $vad['min_hp'];
if( $u->stats['hpNow'] < 0 ) {
$u->stats['hpNow'] = 0;
}
if($u->info['sex'] == 0) {
$vad['text'] = '[img[items/trap.gif]] <b>'.$u->info['login'].'</b> óãîäèë â ëîâóøêó îñòàâëåííóþ â &quot;'.$obj['name'].'&quot;. <b>-'.$vad['min_hp'].'</b> ['.floor($u->stats['hpNow']).'/'.round($u->stats['hpAll']).']';
$vad['text'] = '[img[items/trap.gif]] <b>'.$u->info['login'].'</b> угодил в ловушку оставленную в &quot;'.$obj['name'].'&quot;. <b>-'.$vad['min_hp'].'</b> ['.floor($u->stats['hpNow']).'/'.round($u->stats['hpAll']).']';
}else{
$vad['text'] = '[img[items/trap.gif]] <b>'.$u->info['login'].'</b> óãîäèëà â ëîâóøêó îñòàâëåííóþ â &quot;'.$obj['name'].'&quot;. <b>-'.$vad['min_hp'].'</b> ['.floor($u->stats['hpNow']).'/'.round($u->stats['hpAll']).']';
$vad['text'] = '[img[items/trap.gif]] <b>'.$u->info['login'].'</b> угодила в ловушку оставленную в &quot;'.$obj['name'].'&quot;. <b>-'.$vad['min_hp'].'</b> ['.floor($u->stats['hpNow']).'/'.round($u->stats['hpAll']).']';
}
$this->sys_chat($vad['text']);
$u->info['hpNow'] = $u->stats['hpNow'];
+7 -7
View File
@@ -1,17 +1,17 @@
<?
if( isset($s[1]) && $s[1] == '101/kotel' ) {
/*
Сундук: Котел
* Можно найти Сущность щита
* Может отнять 100-1000 НР
Сундук: Котел
* Можно найти Сущность щита
* Может отнять 100-1000 НР
*/
//Все переменные сохранять в массиве $vad !
//Все переменные сохранять в массиве $vad !
$vad = array(
'go' => true
);
$vad['test1'] = mysql_fetch_array(mysql_query('SELECT COUNT(*) FROM `dungeon_actions` WHERE `dn` = "'.$u->info['dnow'].'" AND `vars` = "obj_act'.$obj['id'].'" LIMIT 1'));
if( $vad['test1'][0] > 0 ) {
$r = 'Кто-то перевернул котел...';
$r = 'Кто-то перевернул котел...';
$vad['go'] = false;
}
@@ -19,9 +19,9 @@ if( isset($s[1]) && $s[1] == '101/kotel' ) {
mysql_query('INSERT INTO `dungeon_actions` (`dn`,`time`,`x`,`y`,`uid`,`vars`,`vals`) VALUES (
"'.$u->info['dnow'].'","'.time().'","'.$obj['x'].'","'.$obj['y'].'","'.$u->info['id'].'","obj_act'.$obj['id'].'","'.$vad['bad'].'"
)');
//Награда
//Награда
$this->pickitem($obj,5239,$u->info['id']);
$r = 'Обыскав &quot;'.$obj['name'].'&quot; вы обнаружили предмет &quot;Амброзия подмастерья Владык&quot;';
$r = 'Обыскав &quot;'.$obj['name'].'&quot; вы обнаружили предмет &quot;Амброзия подмастерья Владык&quot;';
}
unset($vad);
}
+5 -5
View File
@@ -1,16 +1,16 @@
<?
if( isset($s[1]) && $s[1] == '101/krovat' ) {
/*
Сундук: Кровать
* Можно получить один из двух ресурсов
Сундук: Кровать
* Можно получить один из двух ресурсов
*/
//Все переменные сохранять в массиве $vad !
//Все переменные сохранять в массиве $vad !
$vad = array(
'go' => true
);
$vad['test1'] = mysql_fetch_array(mysql_query('SELECT COUNT(*) FROM `dungeon_actions` WHERE `dn` = "'.$u->info['dnow'].'" AND `vars` = "obj_act'.$obj['id'].'" LIMIT 1'));
if( $vad['test1'][0] > 0 ) {
$r = 'Кто-то обыскал &quot;'.$obj['name'].'&quot; до вас...';
$r = 'Кто-то обыскал &quot;'.$obj['name'].'&quot; до вас...';
$vad['go'] = false;
}
@@ -20,7 +20,7 @@ if( isset($s[1]) && $s[1] == '101/krovat' ) {
)');
$vad['items'] = array(472,473,474,475,476,477,478,479,481,485,486,487,692,693,1153,1179,2079,2177,2090);
$vad['items'] = mysql_fetch_array(mysql_query('SELECT * FROM `items_main` WHERE `id` = "'.mysql_real_escape_string($vad['items'][rand(0,count($vad['items'])-1)]).'" LIMIT 1'));
$r = 'Обыскав &quot;'.$obj['name'].'&quot; вы обнаружили &quot;'.$vad['items']['name'].'&quot;';
$r = 'Обыскав &quot;'.$obj['name'].'&quot; вы обнаружили &quot;'.$vad['items']['name'].'&quot;';
$this->pickitem($obj,$vad['items']['id'],$u->info['id'],'',$vad['dn_delete'][$vad['items']['id']]);
}
+66 -66
View File
@@ -1,90 +1,90 @@
<?
if( isset($s[1]) && $s[1] == '101/laba1' ) {
/*
Сундук: Лаболатория
* Можно собрать случайную тактику, но не более 3 на человека за поход и не более 10 на команду
* 897 - Слиток пустынной руды
* 903 - Тысячелетний камень
* 888 - Шепот гор
* 892 - Эссенция чистоты
* 950 - Кожа Общего Врага
* 904 - Кристалл времен
* 878 - Лучистый топаз
* 880 - Эссенция глубины
* 879 - Ралиэль
* 899 - Корень змеиного дерева
* 882 - Глубинный камень
* 908 - Камень затаенного солнца
* 909 - Эссенция праведного гнева
* 902 - Плод змеиного дерева
* 881 - Лучистый Рубин
* 893 - Эссенция лунного света
* 898 - Троекорень
* 890 - Сгусток астрала
* 907 - Кристалл стабильности
* 905 - Стихиалия
-- Боя
4243 - 897 х3
4244 - 903 х2
4245 - 888 х2
4246 - 892 х1
4247 - 879 х1 , 892 х1
-- Защиты
4248 - 950 х3
4249 - 904 х2
4250 - 878 х2
4251 - 880 х1
4252 - 880 х1 , 892 х1
-- Крови
4253 - 899 х3
4254 - 882 х2
4255 - 908 х2
4256 - 909 х1
4257 - 909 х1 , 892 х1
-- Ответа
4258 - 899 х3
4259 - 902 х2
4260 - 881 х2
4261 - 893 х1
4262 - 893 х1 , 892 х1
-- Отражения
4263 - 898 х3
4264 - 890 х2
4265 - 907 х2
4266 - 905 х1
4267 - 905 х1 , 892 х1
Сундук: Лаболатория
* Можно собрать случайную тактику, но не более 3 на человека за поход и не более 10 на команду
* 897 - Слиток пустынной руды
* 903 - Тысячелетний камень
* 888 - Шепот гор
* 892 - Эссенция чистоты
* 950 - Кожа Общего Врага
* 904 - Кристалл времен
* 878 - Лучистый топаз
* 880 - Эссенция глубины
* 879 - Ралиэль
* 899 - Корень змеиного дерева
* 882 - Глубинный камень
* 908 - Камень затаенного солнца
* 909 - Эссенция праведного гнева
* 902 - Плод змеиного дерева
* 881 - Лучистый Рубин
* 893 - Эссенция лунного света
* 898 - Троекорень
* 890 - Сгусток астрала
* 907 - Кристалл стабильности
* 905 - Стихиалия
-- Боя
4243 - 897 х3
4244 - 903 х2
4245 - 888 х2
4246 - 892 х1
4247 - 879 х1 , 892 х1
-- Защиты
4248 - 950 х3
4249 - 904 х2
4250 - 878 х2
4251 - 880 х1
4252 - 880 х1 , 892 х1
-- Крови
4253 - 899 х3
4254 - 882 х2
4255 - 908 х2
4256 - 909 х1
4257 - 909 х1 , 892 х1
-- Ответа
4258 - 899 х3
4259 - 902 х2
4260 - 881 х2
4261 - 893 х1
4262 - 893 х1 , 892 х1
-- Отражения
4263 - 898 х3
4264 - 890 х2
4265 - 907 х2
4266 - 905 х1
4267 - 905 х1 , 892 х1
*/
//Все переменные сохранять в массиве $vad !
//Все переменные сохранять в массиве $vad !
$vad = array(
'go' => true
);
$vad['recept'] = array(
//Б
//Б
array( 897, 3 ),
array( 903, 2 ),
array( 888, 2 ),
array( 892, 1 ),
array( 892, 1, 892, 1 ),
//З
//З
array( 950, 3 ),
array( 904, 2 ),
array( 878, 2 ),
array( 880, 1 ),
array( 880, 1, 892, 1 ),
//К
//К
array( 899, 3 ),
array( 882, 2 ),
array( 908, 2 ),
array( 909, 1 ),
array( 909, 1, 892, 1 ),
//Ответа
//Ответа
array( 899, 3 ),
array( 902, 2 ),
array( 881, 2 ),
array( 893, 1 ),
array( 893, 1, 892, 1 ),
//Отражения
//Отражения
array( 898, 3 ),
array( 890, 2 ),
array( 907, 2 ),
@@ -110,7 +110,7 @@ if( isset($s[1]) && $s[1] == '101/laba1' ) {
if( $vad['recept'][$vad['i']][2] > 0 && $vad['tr_itm'] == true ) {
$vad['tr_itm'] = mysql_fetch_array(mysql_query('SELECT COUNT(*) FROM `items_users` WHERE `item_id` = "'.$vad['recept'][$vad['i']][2].'" AND (`delete` = "0" OR `delete` = "1000") AND `inShop` = "0" AND `inTransfer` = "0" AND `uid` = "'.$u->info['id'].'" LIMIT 1'));
if( $vad['tr_itm'][2] >= $vad['recept'][$vad['i']][3] ) {
//все ок
//все ок
}else{
$vad['tr_itm'] = false;
}
@@ -125,20 +125,20 @@ if( isset($s[1]) && $s[1] == '101/laba1' ) {
$vad['itm'] = $vad['itm'][rand(0,count($vad['itm'])-1)];
if( $vad['test2'][0] >= 10 ) {
$r = 'Не удалось воспользоваться лабораторией, не более 10 раз на команду за один поход';
$r = 'Не удалось воспользоваться лабораторией, не более 10 раз на команду за один поход';
$vad['go'] = false;
}elseif( $vad['test1'][0] >= 3 ) {
$r = 'Не удалось воспользоваться лабораторией, не более 3 раз на персонажа за один поход';
$r = 'Не удалось воспользоваться лабораторией, не более 3 раз на персонажа за один поход';
$vad['go'] = false;
}elseif(!isset($vad['itm']['id'])) {
$r = 'Недостаточно ингридиентов...';
$r = 'Недостаточно ингридиентов...';
$vad['go'] = false;
}
if( $vad['go'] == true ) {
//Выдаем предмет
//Выдаем предмет
if( $vad['tr'][$vad['itm']['id']][1] > 0 ) {
$u->deleteItemID($vad['tr'][$vad['itm']['id']][0],$u->info['id'],$vad['tr'][$vad['itm']['id']][1]);
}
@@ -149,11 +149,11 @@ if( isset($s[1]) && $s[1] == '101/laba1' ) {
"'.$u->info['dnow'].'","'.$u->info['id'].'","'.time().'","obj_act'.$obj['id'].'_lab","'.$obj['x'].'","'.$obj['y'].'"
)');
$u->addItem($vad['itm']['id'],$u->info['id'],'|frompisher=101');
$r = 'Вы создали предмет &quot;'.$vad['itm']['name'].'&quot;! Расплавив ресурсы ...';
$r = 'Вы создали предмет &quot;'.$vad['itm']['name'].'&quot;! Расплавив ресурсы ...';
if($u->info['sex'] == 0) {
$vad['text'] = '<b>'.$u->info['login'].'</b> создал предмет &quot;'.$vad['itm']['name'].'&quot; при помощи &quot;'.$obj['name'].'&quot;.';
$vad['text'] = '<b>'.$u->info['login'].'</b> создал предмет &quot;'.$vad['itm']['name'].'&quot; при помощи &quot;'.$obj['name'].'&quot;.';
}else{
$vad['text'] = '<b>'.$u->info['login'].'</b> создала предмет &quot;'.$vad['itm']['name'].'&quot; при помощи &quot;'.$obj['name'].'&quot;.';
$vad['text'] = '<b>'.$u->info['login'].'</b> создала предмет &quot;'.$vad['itm']['name'].'&quot; при помощи &quot;'.$obj['name'].'&quot;.';
}
$this->sys_chat($vad['text']);
}
+7 -7
View File
@@ -1,16 +1,16 @@
<?
if( isset($s[1]) && $s[1] == '101/nakova' ) {
/*
Сундук: Наковальня
* Можно создать сущность х2 с судьбой
Сундук: Наковальня
* Можно создать сущность х2 с судьбой
*/
//Все переменные сохранять в массиве $vad !
//Все переменные сохранять в массиве $vad !
$vad = array(
'go' => true
);
$vad['test1'] = mysql_fetch_array(mysql_query('SELECT COUNT(*) FROM `dungeon_actions` WHERE `dn` = "'.$u->info['dnow'].'" AND `vars` = "obj_act'.$obj['id'].'" LIMIT 1'));
if( $vad['test1'][0] > 0 ) {
$r = 'Кто-то уже разбил сущность за этот поход, наковальня сломана...';
$r = 'Кто-то уже разбил сущность за этот поход, наковальня сломана...';
$vad['go'] = false;
}
@@ -25,14 +25,14 @@ if( isset($s[1]) && $s[1] == '101/nakova' ) {
mysql_query('INSERT INTO `dungeon_actions` (`dn`,`time`,`x`,`y`,`uid`,`vars`,`vals`) VALUES (
"'.$u->info['dnow'].'","'.time().'","'.$obj['x'].'","'.$obj['y'].'","'.$u->info['id'].'","obj_act'.$obj['id'].'","'.$vad['bad'].'"
)');
//Награда
//Награда
$u->deleteItem($vad['sp']['id'],$u->info['id'],1);
mysql_query('UPDATE `items_users` SET `delete` = "'.time().'" WHERE `id` = "'.$vad['sp']['id'].'" LIMIT 1');
$this->pickitem($obj,1035,$u->info['id'],'|sudba=-1');
$this->pickitem($obj,1035,$u->info['id'],'|sudba=-1');
$r = 'Вы использовали &quot;'.$obj['name'].'&quot; и разбили &quot;Сущность&quot; на две части';
$r = 'Вы использовали &quot;'.$obj['name'].'&quot; и разбили &quot;Сущность&quot; на две части';
}elseif( !isset($vad['sp']['id']) ) {
$r = 'Для использования необходим предмет &quot;Сущность Ресурса&quot;';
$r = 'Для использования необходим предмет &quot;Сущность Ресурса&quot;';
}
}
+4 -4
View File
@@ -1,17 +1,17 @@
<?
if( isset($s[1]) && $s[1] == '101/nakova2' ) {
/*
Наковальня 2
* Телепортирует на необходимую клетку х 3 , у 42
Наковальня 2
* Телепортирует на необходимую клетку х 3 , у 42
*/
//Все переменные сохранять в массиве $vad !
//Все переменные сохранять в массиве $vad !
$vad = array(
'go' => true
);
if( $vad['go'] == true ) {
mysql_query('UPDATE `stats` SET `x` = "3",`y` = "42",`s` = "3" WHERE `id` = "'.$u->info['id'].'" LIMIT 1');
$r = 'Вы подошли к наковальне...';
$r = 'Вы подошли к наковальне...';
echo '<script>location.href="main.php"</script>';
}
unset($vad);
+6 -6
View File
@@ -1,18 +1,18 @@
<?
if( isset($s[1]) && $s[1] == '101/reshetka1' ) {
/*
Решетка
* Телепортирует на необходимую клетку
Решетка
* Телепортирует на необходимую клетку
*/
//Все переменные сохранять в массиве $vad !
//Все переменные сохранять в массиве $vad !
$vad = array(
'go' => false
);
//Проверяем камни
//Проверяем камни
$vad['sp'] = mysql_fetch_array(mysql_query('SELECT * FROM `items_users` WHERE `item_id` = "1189" AND `uid` = "'.$u->info['id'].'" AND `delete` = "0" AND `inOdet` = "0" AND `inShop` = "0" AND `inTransfer` = "0" LIMIT 1'));
if( isset($vad['sp']['id']) ) {
// Удалена проверка на группировку предметов 14.10.2015
// Удалена проверка на группировку предметов 14.10.2015
// $vad['pl'] = mysql_fetch_array(mysql_query('SELECT * FROM `items_main` WHERE `id` = "'.$vad['sp']['item_id'].'" LIMIT 1'));
$vad['go'] = true;
}
@@ -21,7 +21,7 @@ if( isset($s[1]) && $s[1] == '101/reshetka1' ) {
//$u->deleteItem($vad['sp']['id'],$u->info['id'],1);
echo '<script>location.href="main.php"</script>';
}elseif( !isset($vad['sp']['id']) ) {
$r = 'Для прохода требуется предмет &quot;Мерцающий ключ №3&quot;';
$r = 'Для прохода требуется предмет &quot;Мерцающий ключ №3&quot;';
}
unset($vad);
}
+9 -9
View File
@@ -1,9 +1,9 @@
<?
if( isset($s[1]) && $s[1] == '101/sunduk0' ) {
/*
Сундук: Сундук
Сундук: Сундук
*/
//Все переменные сохранять в массиве $vad !
//Все переменные сохранять в массиве $vad !
$vad = array(
'go' => true
);
@@ -11,20 +11,20 @@ if( isset($s[1]) && $s[1] == '101/sunduk0' ) {
$vad['test1'] = mysql_fetch_array(mysql_query('SELECT COUNT(*) FROM `dungeon_actions` WHERE `vars` = "obj_act'.$obj['id'].'" AND `dn` = "'.$u->info['dnow'].'" LIMIT 1'));
$vad['test2'] = mysql_fetch_array(mysql_query('SELECT COUNT(*) FROM `dungeon_actions` WHERE `vars` = "obj_act'.$obj['id'].'" AND `dn` = "'.$u->info['dnow'].'" AND `uid` = "'.$u->info['id'].'" LIMIT 1'));
if( $vad['test2'][0] > 0 ) {
$r = 'Вы уже обыскали &quot;'.$obj['name'].'&quot;...';
$r = 'Вы уже обыскали &quot;'.$obj['name'].'&quot;...';
$vad['go'] = false;
}elseif( $vad['test1'][0] > 1 ) {
$r = 'Кто-то обыскал &quot;'.$obj['name'].'&quot; раньше вас...';
$r = 'Кто-то обыскал &quot;'.$obj['name'].'&quot; раньше вас...';
$vad['go'] = false;
}
if( $vad['go'] == true ) {
//Выкидываем Лучистый топаз
//Выкидываем Лучистый топаз
$vad['items'] = array(878);
$vad['items'] = $vad['items'][rand(0,count($vad['items'])-1)];
if( $vad['items'] != 0 ) {
//Выбрасываем предмет
//Выбрасываем предмет
mysql_query('INSERT INTO `dungeon_actions` (`dn`,`time`,`x`,`y`,`uid`,`vars`,`vals`) VALUES (
"'.$u->info['dnow'].'","'.time().'","'.$obj['x'].'","'.$obj['y'].'","'.$u->info['id'].'","obj_act'.$obj['id'].'",""
)');
@@ -32,12 +32,12 @@ if( isset($s[1]) && $s[1] == '101/sunduk0' ) {
$vad['dn_delete'][$vad['items']] = false;
}
if( $this->pickitem($obj,$vad['items'],$u->info['id'],'',$vad['dn_delete'][$vad['items']]) ) {
$r = 'Вы обнаружили предметы...';
$r = 'Вы обнаружили предметы...';
}else{
$r = 'Что-то пошло не так, предметы растворились...';
$r = 'Что-то пошло не так, предметы растворились...';
}
}else{
$r = 'Вы не нашли ничего полезного...';
$r = 'Вы не нашли ничего полезного...';
}
}
+10 -10
View File
@@ -1,10 +1,10 @@
<?
if( isset($s[1]) && $s[1] == '101/sunduk1' ) {
/*
Сундук: Сундук
* Можно найти Сталь , Мифрил , Пустые бутылки
Сундук: Сундук
* Можно найти Сталь , Мифрил , Пустые бутылки
*/
//Все переменные сохранять в массиве $vad !
//Все переменные сохранять в массиве $vad !
$vad = array(
'go' => true
);
@@ -12,15 +12,15 @@ if( isset($s[1]) && $s[1] == '101/sunduk1' ) {
$vad['test1'] = mysql_fetch_array(mysql_query('SELECT COUNT(*) FROM `dungeon_actions` WHERE `vars` = "obj_act'.$obj['id'].'" AND `dn` = "'.$u->info['dnow'].'" LIMIT 1'));
$vad['test2'] = mysql_fetch_array(mysql_query('SELECT COUNT(*) FROM `dungeon_actions` WHERE `vars` = "obj_act'.$obj['id'].'" AND `dn` = "'.$u->info['dnow'].'" AND `uid` = "'.$u->info['id'].'" LIMIT 1'));
if( $vad['test2'][0] > 0 ) {
$r = 'Вы уже обыскали &quot;'.$obj['name'].'&quot;...';
$r = 'Вы уже обыскали &quot;'.$obj['name'].'&quot;...';
$vad['go'] = false;
}elseif( $vad['test1'][0] > 1 ) {
$r = 'Кто-то обыскал &quot;'.$obj['name'].'&quot; раньше вас...';
$r = 'Кто-то обыскал &quot;'.$obj['name'].'&quot; раньше вас...';
$vad['go'] = false;
}
if( $vad['go'] == true ) {
//Выкидываем бутылку, мифрил, либо сталь
//Выкидываем бутылку, мифрил, либо сталь
$vad['items'] = array(4272,1189);
$vad['dn_delete'] = array(
1189 => true
@@ -28,7 +28,7 @@ if( isset($s[1]) && $s[1] == '101/sunduk1' ) {
$vad['items'] = $vad['items'][rand(0,count($vad['items'])-1)];
if( $vad['items'] != 0 ) {
//Выбрасываем предмет
//Выбрасываем предмет
mysql_query('INSERT INTO `dungeon_actions` (`dn`,`time`,`x`,`y`,`uid`,`vars`,`vals`) VALUES (
"'.$u->info['dnow'].'","'.time().'","'.$obj['x'].'","'.$obj['y'].'","'.$u->info['id'].'","obj_act'.$obj['id'].'",""
)');
@@ -36,12 +36,12 @@ if( isset($s[1]) && $s[1] == '101/sunduk1' ) {
$vad['dn_delete'][$vad['items']] = false;
}
if( $this->pickitem($obj,$vad['items'],$u->info['id'],'',$vad['dn_delete'][$vad['items']]) ) {
$r = 'Вы обнаружили предметы...';
$r = 'Вы обнаружили предметы...';
}else{
$r = 'Что-то пошло не так, предметы растворились...';
$r = 'Что-то пошло не так, предметы растворились...';
}
}else{
$r = 'Вы не нашли ничего полезного...';
$r = 'Вы не нашли ничего полезного...';
}
}
+12 -12
View File
@@ -1,52 +1,52 @@
<?
if( isset($s[1]) && $s[1] == '101/sunduk2' ) {
/*
Сундук: Сундук
* Можно найти Отворяющая печать №3 1175
Сундук: Сундук
* Можно найти Отворяющая печать №3 1175
*/
//Все переменные сохранять в массиве $vad !
//Все переменные сохранять в массиве $vad !
$vad = array(
'go' => true
);
$vad['test1'] = mysql_fetch_array(mysql_query('SELECT COUNT(*) FROM `dungeon_actions` WHERE `vars` = "obj_act'.$obj['id'].'" AND `dn` = "'.$u->info['dnow'].'" LIMIT 1'));
if( $vad['test1'][0] > 0 ) {
$r = 'Кто-то обыскал &quot;'.$obj['name'].'&quot; раньше вас...';
$r = 'Кто-то обыскал &quot;'.$obj['name'].'&quot; раньше вас...';
$vad['go'] = false;
}
if( $vad['go'] == true ) {
//Выкидываем Отворяющая печать №3
//Выкидываем Отворяющая печать №3
$vad['items'] = array(1175);
$vad['items'] = $vad['items'][rand(0,count($vad['items'])-1)];
if( $vad['items'] != 0 && rand(1,100) < 80) {
// Выбрасываем предмет
// Выбрасываем предмет
mysql_query('INSERT INTO `dungeon_actions` (`dn`,`time`,`x`,`y`,`uid`,`vars`,`vals`) VALUES (
"'.$u->info['dnow'].'","'.time().'","'.$obj['x'].'","'.$obj['y'].'","'.$u->info['id'].'","obj_act'.$obj['id'].'",""
)');
/*
//откуда тут сущности? обломятся!
//откуда тут сущности? обломятся!
if( rand(0,100) < 10 ) {
//Сущность сапог
//Сущность сапог
$this->pickitem($obj,4279,0);
}
if( rand(0,100) < 10 ) {
//Сущность щита
//Сущность щита
$this->pickitem($obj,4269,0);
}
*/
if( $this->pickitem($obj,$vad['items'],0) ) {
$r = 'Вы обнаружили предметы...';
$r = 'Вы обнаружили предметы...';
}else{
$r = 'Что-то пошло не так, предметы растворились...';
$r = 'Что-то пошло не так, предметы растворились...';
}
} else {
mysql_query('INSERT INTO `dungeon_actions` (`dn`,`time`,`x`,`y`,`uid`,`vars`,`vals`) VALUES (
"'.$u->info['dnow'].'","'.time().'","'.$obj['x'].'","'.$obj['y'].'","'.$u->info['id'].'","obj_act'.$obj['id'].'","false"
)');
$r = 'Вы не нашли ничего полезного...';
$r = 'Вы не нашли ничего полезного...';
}
}
+5 -5
View File
@@ -1,15 +1,15 @@
<?
if( isset($s[1]) && $s[1] == '101/sunduk3' ) {
/*
Сундук: Сундук
Сундук: Сундук
*/
//Все переменные сохранять в массиве $vad !
//Все переменные сохранять в массиве $vad !
$vad = array(
'go' => true
);
$vad['test1'] = mysql_fetch_array(mysql_query('SELECT COUNT(*) FROM `dungeon_actions` WHERE `dn` = "'.$u->info['dnow'].'" AND `vars` = "obj_act'.$obj['id'].'" LIMIT 1'));
if( $vad['test1'][0] > 0 ) {
$r = 'Кто-то обыскал &quot;'.$obj['name'].'&quot; до вас...';
$r = 'Кто-то обыскал &quot;'.$obj['name'].'&quot; до вас...';
$vad['go'] = false;
}
@@ -18,7 +18,7 @@ if( isset($s[1]) && $s[1] == '101/sunduk3' ) {
"'.$u->info['dnow'].'","'.time().'","'.$obj['x'].'","'.$obj['y'].'","'.$u->info['id'].'","obj_act'.$obj['id'].'","'.$vad['bad'].'"
)');
if( rand(1,100) > 20 ) {
$r = 'Обыскав &quot;'.$obj['name'].'&quot; вы ничего не обнаружили...';
$r = 'Обыскав &quot;'.$obj['name'].'&quot; вы ничего не обнаружили...';
}else{
$vad['items'] = array(4279,4269);
if( rand(1,100) < 9 ) {
@@ -28,7 +28,7 @@ if( isset($s[1]) && $s[1] == '101/sunduk3' ) {
if( !isset($vad['dn_delete'][$vad['items']['id']]) ) {
$vad['dn_delete'][$vad['items']['id']] = false;
}
$r = 'Обыскав &quot;'.$obj['name'].'&quot; вы обнаружили &quot;'.$vad['items']['name'].'&quot;';
$r = 'Обыскав &quot;'.$obj['name'].'&quot; вы обнаружили &quot;'.$vad['items']['name'].'&quot;';
$this->pickitem($obj,$vad['items']['id'],0,'',$vad['dn_delete'][$vad['items']['id']]);
}
}
+5 -5
View File
@@ -1,15 +1,15 @@
<?
if( isset($s[1]) && $s[1] == '101/sunduk4' ) {
/*
Сундук: Сундук
Сундук: Сундук
*/
//Все переменные сохранять в массиве $vad !
//Все переменные сохранять в массиве $vad !
$vad = array(
'go' => true
);
$vad['test1'] = mysql_fetch_array(mysql_query('SELECT COUNT(*) FROM `dungeon_actions` WHERE `dn` = "'.$u->info['dnow'].'" AND `vars` = "obj_act'.$obj['id'].'" LIMIT 1'));
if( $vad['test1'][0] > 0 ) {
$r = 'Кто-то обыскал &quot;'.$obj['name'].'&quot; до вас...';
$r = 'Кто-то обыскал &quot;'.$obj['name'].'&quot; до вас...';
$vad['go'] = false;
}
@@ -18,7 +18,7 @@ if( isset($s[1]) && $s[1] == '101/sunduk4' ) {
"'.$u->info['dnow'].'","'.time().'","'.$obj['x'].'","'.$obj['y'].'","'.$u->info['id'].'","obj_act'.$obj['id'].'","'.$vad['bad'].'"
)');
if( rand(1,100) > 50 ) {
$r = 'Обыскав &quot;'.$obj['name'].'&quot; вы ничего не обнаружили...';
$r = 'Обыскав &quot;'.$obj['name'].'&quot; вы ничего не обнаружили...';
}else{
$vad['items'] = array(882);
if( rand(1,40) < 16 ) {
@@ -28,7 +28,7 @@ if( isset($s[1]) && $s[1] == '101/sunduk4' ) {
if( !isset($vad['dn_delete'][$vad['items']['id']]) ) {
$vad['dn_delete'][$vad['items']['id']] = false;
}
$r = 'Обыскав &quot;'.$obj['name'].'&quot; вы обнаружили &quot;'.$vad['items']['name'].'&quot;';
$r = 'Обыскав &quot;'.$obj['name'].'&quot; вы обнаружили &quot;'.$vad['items']['name'].'&quot;';
$this->pickitem($obj,$vad['items']['id'],0,'',$vad['dn_delete'][$vad['items']['id']]);
}
}
+7 -7
View File
@@ -1,16 +1,16 @@
<?
if( isset($s[1]) && $s[1] == '101/telejka' ) {
/*
Сундук: Тележка
* Можно получить один из двух ресурсов
Сундук: Тележка
* Можно получить один из двух ресурсов
*/
//Все переменные сохранять в массиве $vad !
//Все переменные сохранять в массиве $vad !
$vad = array(
'go' => true
);
$vad['test1'] = mysql_fetch_array(mysql_query('SELECT COUNT(*) FROM `dungeon_actions` WHERE `dn` = "'.$u->info['dnow'].'" AND `vars` = "obj_act'.$obj['id'].'" AND `uid` = "'.$u->info['id'].'" LIMIT 1'));
if( $vad['test1'][0] > 0 ) {
$r = 'Кто-то обыскал &quot;'.$obj['name'].'&quot; до вас...';
$r = 'Кто-то обыскал &quot;'.$obj['name'].'&quot; до вас...';
$vad['go'] = false;
}
@@ -20,14 +20,14 @@ if( isset($s[1]) && $s[1] == '101/telejka' ) {
)');
if( rand(0,100) < 80 ) {
if( rand(0,100) < 51 ) {
$r = 'Обыскав &quot;'.$obj['name'].'&quot; вы обнаружили &quot;Лучистое серебро&quot;';
$r = 'Обыскав &quot;'.$obj['name'].'&quot; вы обнаружили &quot;Лучистое серебро&quot;';
$this->pickitem($obj,895,$u->info['id']);
}else{
$r = 'Обыскав &quot;'.$obj['name'].'&quot; вы обнаружили &quot;Серебро&quot;';
$r = 'Обыскав &quot;'.$obj['name'].'&quot; вы обнаружили &quot;Серебро&quot;';
$this->pickitem($obj,875,$u->info['id']);
}
}else{
$r = 'Вы ничего не смогли найти...';
$r = 'Вы ничего не смогли найти...';
}
}
+19 -19
View File
@@ -1,12 +1,12 @@
<?
if( isset($s[1]) && $s[1] == '101/viboina' ) {
/*
Сундук: Выбоина
* Можно найти Сталь , Мифрил , Пустые бутылки
* Может отнять 100-1000 НР
* Могут использовать только 2 человека из команды
Сундук: Выбоина
* Можно найти Сталь , Мифрил , Пустые бутылки
* Может отнять 100-1000 НР
* Могут использовать только 2 человека из команды
*/
//Все переменные сохранять в массиве $vad !
//Все переменные сохранять в массиве $vad !
$vad = array(
'go' => true
);
@@ -18,7 +18,7 @@ if( isset($s[1]) && $s[1] == '101/viboina' ) {
$vad['test5'] = mysql_fetch_array(mysql_query('SELECT COUNT(*) FROM `dungeon_actions` WHERE `dn` = "'.$u->info['dnow'].'" AND `vars` = "obj_act'.$obj['id'].'_bad_use" AND `uid` != "'.$u->info['id'].'" LIMIT 1'));
if( !isset($vad['test3']['id']) ) {
//Определяем ловушка или нет
//Определяем ловушка или нет
if( rand(0,100) < 50 ) {
$vad['bad'] = 1;
}else{
@@ -32,33 +32,33 @@ if( isset($s[1]) && $s[1] == '101/viboina' ) {
}
if( $vad['test2'][0] > 0 ) {
//$r = 'Вы уже обыскали здесь все...';
$r = 'Кажется, вы здесь побывали раньше...';
//$r = 'Вы уже обыскали здесь все...';
$r = 'Кажется, вы здесь побывали раньше...';
$vad['go'] = false;
}elseif( $vad['test1'][0] > 1 || ( $vad['test4'] == 0 && $vad['test5'] >= 2 ) ) {
$r = 'Кажется, кто-то здесь побывал раньше вас...';
$r = 'Кажется, кто-то здесь побывал раньше вас...';
$vad['go'] = false;
}
if( $vad['bad'] == 1 && $vad['go'] == true ) {
//Вы угодили в ловушку
//Вы угодили в ловушку
$vad['test3'] = mysql_fetch_array(mysql_query('SELECT `id`,`vals` FROM `dungeon_actions` WHERE `dn` = "'.$u->info['dnow'].'" AND `vars` = "obj_act'.$obj['id'].'_bad_use" AND `uid` = "'.$u->info['id'].'" LIMIT 1'));
if( !isset($vad['test3']['id']) ) {
//Ловушка на 50% НР , Если НР баольше 2 ед.
//Ловушка на 50% НР , Если НР баольше 2 ед.
$vad['go'] = false;
mysql_query('INSERT INTO `dungeon_actions` (`dn`,`time`,`x`,`y`,`uid`,`vars`,`vals`) VALUES (
"'.$u->info['dnow'].'","'.time().'","'.$obj['x'].'","'.$obj['y'].'","'.$u->info['id'].'","obj_act'.$obj['id'].'_bad_use",""
)');
$r = 'В сундуке была ловушка установленная одним из обитателей подземелья!';
$r = 'В сундуке была ловушка установленная одним из обитателей подземелья!';
$vad['min_hp'] = round(2+$u->stats['hpNow']/4);
$u->stats['hpNow'] -= $vad['min_hp'];
if( $u->stats['hpNow'] < 0 ) {
$u->stats['hpNow'] = 0;
}
if($u->info['sex'] == 0) {
$vad['text'] = '[img[items/trap.gif]] <b>'.$u->info['login'].'</b> угодил в ловушку оставленную в &quot;'.$obj['name'].'&quot;. <b>-'.$vad['min_hp'].'</b> ['.floor($u->stats['hpNow']).'/'.round($u->stats['hpAll']).']';
$vad['text'] = '[img[items/trap.gif]] <b>'.$u->info['login'].'</b> угодил в ловушку оставленную в &quot;'.$obj['name'].'&quot;. <b>-'.$vad['min_hp'].'</b> ['.floor($u->stats['hpNow']).'/'.round($u->stats['hpAll']).']';
}else{
$vad['text'] = '[img[items/trap.gif]] <b>'.$u->info['login'].'</b> угодила в ловушку оставленную в &quot;'.$obj['name'].'&quot;. <b>-'.$vad['min_hp'].'</b> ['.floor($u->stats['hpNow']).'/'.round($u->stats['hpAll']).']';
$vad['text'] = '[img[items/trap.gif]] <b>'.$u->info['login'].'</b> угодила в ловушку оставленную в &quot;'.$obj['name'].'&quot;. <b>-'.$vad['min_hp'].'</b> ['.floor($u->stats['hpNow']).'/'.round($u->stats['hpAll']).']';
}
$this->sys_chat($vad['text']);
$u->info['hpNow'] = $u->stats['hpNow'];
@@ -69,22 +69,22 @@ if( isset($s[1]) && $s[1] == '101/viboina' ) {
}
if( $vad['go'] == true ) {
//Выкидываем бутылку, мифрил, либо сталь
//Выкидываем бутылку, мифрил, либо сталь
$vad['items'] = array(2,877,896);
$vad['items'] = $vad['items'][rand(0,count($vad['items'])-1)];
if( $vad['items'] != 0 ) {
//Выбрасываем предмет
//Выбрасываем предмет
mysql_query('INSERT INTO `dungeon_actions` (`dn`,`time`,`x`,`y`,`uid`,`vars`,`vals`) VALUES (
"'.$u->info['dnow'].'","'.time().'","'.$obj['x'].'","'.$obj['y'].'","'.$u->info['id'].'","obj_act'.$obj['id'].'",""
)');
if( $this->pickitem($obj,$vad['items'],$u->info['id']) ) {
$r = 'Вы обнаружили предметы...';
$r = 'Вы обнаружили предметы...';
}else{
$r = 'Что-то пошло не так, предметы растворились...';
$r = 'Что-то пошло не так, предметы растворились...';
}
}else{
$r = 'Вы не нашли ничего полезного...';
$r = 'Вы не нашли ничего полезного...';
}
}
+11 -11
View File
@@ -1,34 +1,34 @@
<?
if( isset($s[1]) && $s[1] == '101/viboina2' ) {
/*
Выбоина
* Телепортирует на необходимую клетку х 4 , у 26
* Для прохода требуется 1 Линза Портала - 4298
Выбоина
* Телепортирует на необходимую клетку х 4 , у 26
* Для прохода требуется 1 Линза Портала - 4298
*/
//Все переменные сохранять в массиве $vad !
//Все переменные сохранять в массиве $vad !
$vad = array(
'go' => false
);
//Проверяем камни
//Проверяем камни
$vad['sp'] = mysql_fetch_array(mysql_query('SELECT * FROM `items_users` WHERE `item_id` = "4298" AND `uid` = "'.$u->info['id'].'" AND `delete` = "0" AND `inOdet` = "0" AND `inShop` = "0" AND `inTransfer` = "0" LIMIT 1'));
if( isset($vad['sp']['id']) ) {
// Удалена проверка на группировку предметов 14.10.2015
// $vad['pl'] = mysql_fetch_array(mysql_query('SELECT * FROM `items_main` WHERE `id` = "'.$vad['sp']['item_id'].'" LIMIT 1')); // Берем название "Линза Портала" и все.. смысл запроса... статика.
// Удалена проверка на группировку предметов 14.10.2015
// $vad['pl'] = mysql_fetch_array(mysql_query('SELECT * FROM `items_main` WHERE `id` = "'.$vad['sp']['item_id'].'" LIMIT 1')); // Берем название "Линза Портала" и все.. смысл запроса... статика.
$vad['go'] = true;
}
if( $vad['go'] == true ) {
mysql_query('UPDATE `stats` SET `x` = "4",`y` = "26",`s` = "4" WHERE `id` = "'.$u->info['id'].'" LIMIT 1');
//$u->deleteItem($vad['sp']['id'],$u->info['id'],1);// Убрано 14.10.2015
//$u->deleteItem($vad['sp']['id'],$u->info['id'],1);// Убрано 14.10.2015
$upd = mysql_query('UPDATE `items_users` SET `lastUPD`="'.time().'",`delete`="'.time().'" WHERE `id`="'.$vad['sp']['id'].'" LIMIT 1');
if($upd){
$r = 'Вы переместились при помощи &quot;Линза Портала&quot; на другую сторону';
$r = 'Вы переместились при помощи &quot;Линза Портала&quot; на другую сторону';
echo '<script>location.href="main.php"</script>';
} else {
$r = 'Что-то пошло не так, попробуйте позже.';
$r = 'Что-то пошло не так, попробуйте позже.';
}
}elseif( !isset($vad['sp']['id']) ) {
$r = 'Для перемещения требуется &quot;Линза Портала&quot;';
$r = 'Для перемещения требуется &quot;Линза Портала&quot;';
}
unset($vad);
}
+4 -4
View File
@@ -1,17 +1,17 @@
<?
if( isset($s[1]) && $s[1] == '101/viboina3' ) {
/*
Выбоина
* Телепортирует на необходимую клетку х 4 , у 25
Выбоина
* Телепортирует на необходимую клетку х 4 , у 25
*/
//Все переменные сохранять в массиве $vad !
//Все переменные сохранять в массиве $vad !
$vad = array(
'go' => true
);
if( $vad['go'] == true ) {
mysql_query('UPDATE `stats` SET `x` = "4",`y` = "25",`s` = "2" WHERE `id` = "'.$u->info['id'].'" LIMIT 1');
$r = 'Вы перешли на другую сторону завала';
$r = 'Вы перешли на другую сторону завала';
echo '<script>location.href="main.php"</script>';
}
unset($vad);
+4 -4
View File
@@ -1,17 +1,17 @@
<?
if( isset($s[1]) && $s[1] == '101/viboina4' ) {
/*
Выбоина
* Телепортирует на необходимую клетку х 4 , у 27
Выбоина
* Телепортирует на необходимую клетку х 4 , у 27
*/
//Все переменные сохранять в массиве $vad !
//Все переменные сохранять в массиве $vad !
$vad = array(
'go' => true
);
if( $vad['go'] == true ) {
mysql_query('UPDATE `stats` SET `x` = "4",`y` = "27",`s` = "2" WHERE `id` = "'.$u->info['id'].'" LIMIT 1');
$r = 'Вы перешли на другую сторону завала';
$r = 'Вы перешли на другую сторону завала';
echo '<script>location.href="main.php"</script>';
}
unset($vad);
+10 -10
View File
@@ -1,10 +1,10 @@
<?
if( isset($s[1]) && $s[1] == '104/sunduk1' ) {
/*
Сундук: Сундук
* Можно найти Сталь , Мифрил , Пустые бутылки
Сундук: Сундук
* Можно найти Сталь , Мифрил , Пустые бутылки
*/
//Все переменные сохранять в массиве $vad !
//Все переменные сохранять в массиве $vad !
$vad = array(
'go' => true
);
@@ -12,15 +12,15 @@ if( isset($s[1]) && $s[1] == '104/sunduk1' ) {
$vad['test1'] = mysql_fetch_array(mysql_query('SELECT COUNT(*) FROM `dungeon_actions` WHERE `vars` = "obj_act'.$obj['id'].'" AND `dn` = "'.$u->info['dnow'].'" LIMIT 1'));
$vad['test2'] = mysql_fetch_array(mysql_query('SELECT COUNT(*) FROM `dungeon_actions` WHERE `vars` = "obj_act'.$obj['id'].'" AND `dn` = "'.$u->info['dnow'].'" AND `uid` = "'.$u->info['id'].'" LIMIT 1'));
if( $vad['test2'][0] > 0 ) {
$r = 'Вы уже обыскали &quot;'.$obj['name'].'&quot;...';
$r = 'Вы уже обыскали &quot;'.$obj['name'].'&quot;...';
$vad['go'] = false;
}elseif( $vad['test1'][0] > 1 ) {
$r = 'Кто-то обыскал &quot;'.$obj['name'].'&quot; раньше вас...';
$r = 'Кто-то обыскал &quot;'.$obj['name'].'&quot; раньше вас...';
$vad['go'] = false;
}
if( $vad['go'] == true ) {
//Выкидываем бутылку, мифрил, либо сталь
//Выкидываем бутылку, мифрил, либо сталь
$vad['items'] = array(
724,724,724,724,724,724,724,724,724,724,724,724,724,724,
2390,2390,2390,2390,2390,2390,2390,2390,2390,2390,2390,2390,2390,2390,
@@ -37,7 +37,7 @@ if( isset($s[1]) && $s[1] == '104/sunduk1' ) {
$vad['items'] = 724;
}
if( $vad['items'] != 0 ) {
//Выбрасываем предмет
//Выбрасываем предмет
mysql_query('INSERT INTO `dungeon_actions` (`dn`,`time`,`x`,`y`,`uid`,`vars`,`vals`) VALUES (
"'.$u->info['dnow'].'","'.time().'","'.$obj['x'].'","'.$obj['y'].'","'.$u->info['id'].'","obj_act'.$obj['id'].'",""
)');
@@ -45,12 +45,12 @@ if( isset($s[1]) && $s[1] == '104/sunduk1' ) {
$vad['dn_delete'][$vad['items']] = false;
}
if( $this->pickitem($obj,$vad['items'],$u->info['id'],'') ) {
$r = 'Вы обнаружили предметы...';
$r = 'Вы обнаружили предметы...';
}else{
$r = 'Что-то пошло не так, предметы растворились...';
$r = 'Что-то пошло не так, предметы растворились...';
}
}else{
$r = 'Вы не нашли ничего полезного...';
$r = 'Вы не нашли ничего полезного...';
}
}
+4 -4
View File
@@ -1,15 +1,15 @@
<?
if( isset($s[1]) && $s[1] == '106/btn1' ) {
/*
Сундук: Кровавый подземник (4561)
Сундук: Кровавый подземник (4561)
*/
//Все переменные сохранять в массиве $vad !
//Все переменные сохранять в массиве $vad !
$vad = array(
'go' => true
);
$vad['test1'] = mysql_fetch_array(mysql_query('SELECT COUNT(*) FROM `dungeon_actions` WHERE `dn` = "'.$u->info['dnow'].'" AND `vars` = "obj_act'.$obj['id'].'" LIMIT 1'));
if( $vad['test1'][0] > 0 ) {
$r = 'Вы уже нажали на &quot;'.$obj['name'].'&quot;...';
$r = 'Вы уже нажали на &quot;'.$obj['name'].'&quot;...';
$vad['go'] = false;
}
@@ -22,7 +22,7 @@ if( isset($s[1]) && $s[1] == '106/btn1' ) {
if( !isset($vad['dn_delete'][$vad['items']['id']]) ) {
$vad['dn_delete'][$vad['items']['id']] = false;
}
$r = 'Нажав на &quot;'.$obj['name'].'&quot; вы получили &quot;'.$vad['items']['name'].'&quot;.';
$r = 'Нажав на &quot;'.$obj['name'].'&quot; вы получили &quot;'.$vad['items']['name'].'&quot;.';
$this->pickitem($obj,$vad['items']['id'],0,'',$vad['dn_delete'][$vad['items']['id']]);
}
+3 -3
View File
@@ -1,9 +1,9 @@
<?
if( isset($s[1]) && $s[1] == '106/door1' ) {
/*
Сундук: Кровавый подземник (4561)
Сундук: Кровавый подземник (4561)
*/
//Все переменные сохранять в массиве $vad !
//Все переменные сохранять в массиве $vad !
$vad = array(
'go' => true
);
@@ -14,7 +14,7 @@ if( isset($s[1]) && $s[1] == '106/door1' ) {
)');
$vad['qst'] = mysql_fetch_array(mysql_query('SELECT * FROM `dialog_act` WHERE `uid` = "'.$u->info['id'].'" AND `var` = "noobqst1" AND `val` = 1 LIMIT 1'));
if(!isset($vad['qst']['id'])) {
$r = 'Дверь закрыта. Сначала выполните задания Учителя.';
$r = 'Дверь закрыта. Сначала выполните задания Учителя.';
}else{
mysql_query('UPDATE `stats` SET `x` = -2,`y` = 6,`s` = 1 WHERE `id` = "'.$u->info['id'].'" LIMIT 1');
header('location: main.php');
+3 -3
View File
@@ -1,9 +1,9 @@
<?
if( isset($s[1]) && $s[1] == '106/door2' ) {
/*
Сундук: Кровавый подземник (4561)
Сундук: Кровавый подземник (4561)
*/
//Все переменные сохранять в массиве $vad !
//Все переменные сохранять в массиве $vad !
$vad = array(
'go' => true
);
@@ -14,7 +14,7 @@ if( isset($s[1]) && $s[1] == '106/door2' ) {
)');
$vad['qst'] = mysql_fetch_array(mysql_query('SELECT * FROM `dialog_act` WHERE `uid` = "'.$u->info['id'].'" AND `var` = "noobqst1" AND `val` = 1 LIMIT 1'));
if(!isset($vad['qst']['id'])) {
$r = 'Дверь закрыта. Сначала выполните задания Учителя.';
$r = 'Дверь закрыта. Сначала выполните задания Учителя.';
}else{
mysql_query('UPDATE `stats` SET `x` = -2,`y` = 1,`s` = 3 WHERE `id` = "'.$u->info['id'].'" LIMIT 1');
header('location: main.php');
+12 -12
View File
@@ -1,9 +1,9 @@
<?
if( isset($s[1]) && $s[1] == '106/door3' ) {
/*
Сундук: Кровавый подземник (4561)
Сундук: Кровавый подземник (4561)
*/
//Все переменные сохранять в массиве $vad !
//Все переменные сохранять в массиве $vad !
$vad = array(
'go' => true
);
@@ -17,29 +17,29 @@ if( isset($s[1]) && $s[1] == '106/door3' ) {
$vad['itm'] = mysql_fetch_array(mysql_query('SELECT * FROM `items_users` WHERE `uid` = "'.$u->info['id'].'" AND (`item_id` = 724 OR `item_id` = 4704) LIMIT 1'));
if(!isset($vad['qst']['id']) || !isset($vad['itm']['id'])) {
$r = 'Дверь закрыта. Сначала выполните задания Учителя и купите Футболку с Эликсиром.';
$r = 'Дверь закрыта. Сначала выполните задания Учителя и купите Футболку с Эликсиром.';
}else{
//Начало обучения
//Начало обучения
$humor = array(
0 => array(
':maniac: Сильно не бейте ;)',':beggar: Будет попрошайничать - бейте!',':pal: Возможно светлый!',
':vamp: Возможно темный!',':susel: Судя по здоровенному бицепсу - это мужик!',':duel: И сразу же кинулся в бой!',
':friday: Не долго думав он начал искать собутыльника!',':doc: Лекарь: Новичок! Да, да! Ты! Если тебя сломают - у знахаря тебя соберут обратно!'
':maniac: Сильно не бейте ;)',':beggar: Будет попрошайничать - бейте!',':pal: Возможно светлый!',
':vamp: Возможно темный!',':susel: Судя по здоровенному бицепсу - это мужик!',':duel: И сразу же кинулся в бой!',
':friday: Не долго думав он начал искать собутыльника!',':doc: Лекарь: Новичок! Да, да! Ты! Если тебя сломают - у знахаря тебя соберут обратно!'
),
1 => array(
':maniac: Помните! Девочек не бьем ;)',':nail: Она красит ногти, не отвлекайте все сразу ;)',':pal: Возможно светлая!',
':vamp: Возможно темная!',':rev: Судя по красивой одежде - это женщина!',':hug: И сразу же кинулась всех целовать!',
':angel2: Ангел сошел с небес...'
':maniac: Помните! Девочек не бьем ;)',':nail: Она красит ногти, не отвлекайте все сразу ;)',':pal: Возможно светлая!',
':vamp: Возможно темная!',':rev: Судя по красивой одежде - это женщина!',':hug: И сразу же кинулась всех целовать!',
':angel2: Ангел сошел с небес...'
)
);
$humor = $humor[$u->info['sex']];
//$u->info['fnq'] = 1;
//mysql_query('UPDATE `users` SET `fnq` = "'.$u->info['fnq'].'" WHERE `id` = "'.$u->info['id'].'" LIMIT 1');
//Отправляем сообщение в чат о новичке
//Отправляем сообщение в чат о новичке
mysql_query('UPDATE `items_users` SET `delete` = "'.time().'" WHERE `uid` = "'.$u->info['id'].'" AND `delete` = 0 AND `item_id` = 4703');
mysql_query('UPDATE `users` SET `room` = 4 WHERE `id` = "'.$u->info['id'].'" LIMIT 1');
mysql_query('UPDATE `stats` SET `hpNow` = 1000,`mpNow` = 1000,`dn` = 0 , `dnow` = 0 , `x` = 0 , `y` = 0 , `s` = 0 WHERE `id` = "'.$u->info['id'].'" LIMIT 1');
$u->send('','','','','','В нашем мире появился новый игрок &quot;<b>' . $u->info['login'] . '</b>&quot;! '.$humor[rand(0,count($humor)-1)].'',time(),6,0,0,0,1,0);
$u->send('','','','','','В нашем мире появился новый игрок &quot;<b>' . $u->info['login'] . '</b>&quot;! '.$humor[rand(0,count($humor)-1)].'',time(),6,0,0,0,1,0);
//mysql_query('UPDATE `stats` SET `x` = 0,`y` = 5 WHERE `id` = "'.$u->info['id'].'" LIMIT 1');
header('location: main.php');
die();
+3 -3
View File
@@ -1,9 +1,9 @@
<?
if( isset($s[1]) && $s[1] == '106/door4' ) {
/*
Сундук: Кровавый подземник (4561)
Сундук: Кровавый подземник (4561)
*/
//Все переменные сохранять в массиве $vad !
//Все переменные сохранять в массиве $vad !
$vad = array(
'go' => true
);
@@ -15,7 +15,7 @@ if( isset($s[1]) && $s[1] == '106/door4' ) {
$vad['qst'] = mysql_fetch_array(mysql_query('SELECT * FROM `dialog_act` WHERE `uid` = "'.$u->info['id'].'" AND `var` = "noobqst1" AND `val` = 1 LIMIT 1'));
$vad['qst2'] = mysql_fetch_array(mysql_query('SELECT COUNT(*) FROM `items_users` WHERE `uid` = "'.$u->info['id'].'" AND `item_id` = "4703" AND `delete` = 0 LIMIT 1'));
if(!isset($vad['qst']['id']) && $vad['qst2'][0] > 0) {
$r = 'Дверь закрыта. Сначала выполните задания Учителя и потратьте все свои Жетоны.';
$r = 'Дверь закрыта. Сначала выполните задания Учителя и потратьте все свои Жетоны.';
}else{
mysql_query('UPDATE `stats` SET `x` = 0,`y` = 5 WHERE `id` = "'.$u->info['id'].'" LIMIT 1');
header('location: main.php');
+2 -2
View File
@@ -3,7 +3,7 @@ if(isset($s[1]) && $s[1] == '108/door1') {
$vad = array('go' => true);
$vad['test1'] = mysql_fetch_array(mysql_query('SELECT COUNT(*) FROM `dungeon_actions` WHERE `dn` = "'.$u->info['dnow'].'" AND `vars` = "obj_act'.$obj['id'].'" LIMIT 1'));
if($vad['test1'][0] > 0) {
$r = 'Кто-то вас опередил...';
$r = 'Кто-то вас опередил...';
$vad['go'] = false;
}
if($vad['go'] == 'true') {
@@ -12,7 +12,7 @@ if(isset($s[1]) && $s[1] == '108/door1') {
$vad['items'] = array(4914, 4915, 4916, 4917, 4918);
$vad['items'] = mysql_fetch_array(mysql_query('SELECT * FROM `items_main` WHERE `id` = "'.mysql_real_escape_string($vad['items'][rand(0, count($vad['items'])-1)]).'" LIMIT 1'));
$vad['dn_delete'][$vad['items']['id']] = true;
$r = 'Вы обнаружили &quot;'.$vad['items']['name'].'&quot;';
$r = 'Вы обнаружили &quot;'.$vad['items']['name'].'&quot;';
$this->pickitem($obj, $vad['items']['id'], 1,'',true, 1);
}
unset($vad);
+4 -4
View File
@@ -3,24 +3,24 @@ if(isset($s[1]) && $s[1] == '108/fontan1') {
$vad = array('go' => true);
$bots = mysql_fetch_array(mysql_query('SELECT `id2` FROM `dungeon_bots` WHERE `dn` = "'.$u->info['dnow'].'" AND ((`x` = "-7" AND `y` = "9") OR (`x` = "-5" AND `y` = "9") OR (`x` = "-7" AND `y` = "8") OR (`x` = "-6" AND `y` = "8") OR (`x` = "-5" AND `y` = "6")) AND `delete` = "0" LIMIT 1'));
if(isset($bots['id2'])) {
$r = 'Не все боты убиты ...';
$r = 'Не все боты убиты ...';
$vad['go'] = false;
}
$vad['test1'] = mysql_fetch_array(mysql_query('SELECT COUNT(*) FROM `dungeon_actions` WHERE `dn` = "'.$u->info['dnow'].'" AND `vars` = "obj_act'.$obj['id'].'" LIMIT 1'));
if($vad['test1'][0] > 2) {
$r = 'Фонтан пуст ...';
$r = 'Фонтан пуст ...';
$vad['go'] = false;
}
$vad['test2'] = mysql_fetch_array(mysql_query('SELECT COUNT(*) FROM `dungeon_actions` WHERE `dn` = "'.$u->info['dnow'].'" AND `vars` = "obj_act'.$obj['id'].'" AND `uid` = "'.$u->info['id'].'" LIMIT 1'));
if($vad['test2'][0] > 0) {
$r = 'Вы уже пользовались фонтаном ...';
$r = 'Вы уже пользовались фонтаном ...';
$vad['go'] = false;
}
if($vad['go'] == 'true') {
$vad['items'] = array(4911, 4912, 4913);
$vad['items'] = mysql_fetch_array(mysql_query('SELECT * FROM `items_main` WHERE `id` = "'.mysql_real_escape_string($vad['items'][rand(0, count($vad['items'])-1)]).'" LIMIT 1'));
$vad['dn_delete'][$vad['items']['id']] = false;
$r = 'Вы обнаружили &quot;'.$vad['items']['name'].'&quot;';
$r = 'Вы обнаружили &quot;'.$vad['items']['name'].'&quot;';
$this->pickitem($obj, $vad['items']['id'], 1,'',false, 1);
mysql_query('INSERT INTO `dungeon_actions` (`dn`, `time`, `x`, `y`, `uid`, `vars`, `vals`) VALUES (
"'.$u->info['dnow'].'","'.time().'","'.$obj['x'].'","'.$obj['y'].'","'.$u->info['id'].'","obj_act'.$obj['id'].'","'.$vad['bad'].'")');
+5 -5
View File
@@ -4,13 +4,13 @@ if(isset($s[1]) && $s[1] == '108/fontan2') {
$vad['test1'] = mysql_fetch_array(mysql_query('SELECT COUNT(*) FROM `dungeon_actions` WHERE `dn` = "'.$u->info['dnow'].'" AND `vars` = "obj_act'.$obj['id'].'" LIMIT 1'));
if($vad['test1'][0] > 1) {
$r = 'Фонтан пуст ...';
$r = 'Фонтан пуст ...';
$vad['go'] = false;
}
$vad['test2'] = mysql_fetch_array(mysql_query('SELECT COUNT(*) FROM `dungeon_actions` WHERE `dn` = "'.$u->info['dnow'].'" AND `vars` = "obj_act'.$obj['id'].'" AND `uid` = "'.$u->info['id'].'" LIMIT 1'));
if($vad['test2'][0] > 0) {
$r = 'Вы уже пользовались фонтаном ...';
$r = 'Вы уже пользовались фонтаном ...';
$vad['go'] = false;
}
@@ -18,13 +18,13 @@ if(isset($s[1]) && $s[1] == '108/fontan2') {
$vad['bt'] = mysql_fetch_array(mysql_query('SELECT * FROM `items_users` WHERE `item_id` = "2" AND `uid` = "'.$u->info['id'].'" AND `delete` = "0" AND `inOdet` = "0" AND `inShop` = "0" AND `inTransfer` = "0" LIMIT 1'));
if(isset($vad['bt']['id'])) {
if($vad['bt']['inGroup'] > 1) {
$r = 'Предмет не должен находиться в группе';
$r = 'Предмет не должен находиться в группе';
$vad['go'] = false;
} else {
$vad['go'] = true;
}
} else {
$r = 'У вас нет пустой бутылки.';
$r = 'У вас нет пустой бутылки.';
$vad['go'] = false;
}
}
@@ -32,7 +32,7 @@ if(isset($s[1]) && $s[1] == '108/fontan2') {
if( $vad['go'] == true ) {
mysql_query('INSERT INTO `dungeon_actions` (`dn`, `time`, `x`, `y`, `uid`, `vars`, `vals`) VALUES (
"'.$u->info['dnow'].'","'.time().'","'.$obj['x'].'","'.$obj['y'].'","'.$u->info['id'].'","obj_act'.$obj['id'].'","'.$vad['bad'].'")');
$r = 'Опустив пустую бутылку в фонтан вы наполнили её.';
$r = 'Опустив пустую бутылку в фонтан вы наполнили её.';
$u->deleteItem(intval($vad['bt']['id']),$u->info['id'],1);
$u->addItem(round(2417),$u->info['id'],'|musor=2|noremont=1|nosale=1',108, 3);
}
+4 -4
View File
@@ -3,19 +3,19 @@ if(isset($s[1]) && $s[1] == '108/fontan3') {
$vad = array('go' => true);
$vad['test1'] = mysql_fetch_array(mysql_query('SELECT COUNT(*) FROM `dungeon_actions` WHERE `dn` = "'.$u->info['dnow'].'" AND `vars` = "obj_act'.$obj['id'].'" LIMIT 1'));
if($vad['test1'][0] > 0) {
$r = 'Фонтан пуст ...';
$r = 'Фонтан пуст ...';
$vad['go'] = false;
}
$bots = mysql_fetch_array(mysql_query('SELECT `id2` FROM `dungeon_bots` WHERE `dn` = "'.$u->info['dnow'].'" AND ((`x` = "-6" AND `y` = "32") OR (`x` = "-6" AND `y` = "31") OR (`x` = "-5" AND `y` = "32") OR (`x` = "-5" AND `y` = "31") OR (`x` = "-5" AND `y` = "30")) AND `delete` = "0" LIMIT 1'));
if(isset($bots['id2'])) {
$r = 'Не все боты убиты ...';
$r = 'Не все боты убиты ...';
$vad['go'] = false;
}
$vad['test2'] = mysql_fetch_array(mysql_query('SELECT `id2` FROM `dungeon_bots` WHERE `dn` = "'.$u->info['dnow'].'" AND `id_bot` = "484" AND `delete` = "0" LIMIT 1'));
if(isset($vad['test2']['id2'])) {
$r = 'Король всё еще жив ...';
$r = 'Король всё еще жив ...';
$vad['go'] = false;
}
@@ -24,7 +24,7 @@ if(isset($s[1]) && $s[1] == '108/fontan3') {
"'.$u->info['dnow'].'","'.time().'","'.$obj['x'].'","'.$obj['y'].'","'.$u->info['id'].'","obj_act'.$obj['id'].'","'.$vad['bad'].'")');
//4041
$u->addItem(round(4041),$u->info['id'],'|musor=2|noremont=1|nosale=1',108, 1);
$r = 'Вы получили Снадобье Забытых Мастеров';
$r = 'Вы получили Снадобье Забытых Мастеров';
}
unset($vad);
@@ -1,11 +1,11 @@
<?
if( isset($s[1]) && $s[1] == '12/altar_1_5stage' ) {
/*
Сундук: Алтарь Осколков
Сундук: Алтарь Осколков
# '4443', '4444', '4445' = 4446
# '4517', '4518', '4519', '4520', '4521' = 4522
*/
//Все переменные сохранять в массиве $vad !
//Все переменные сохранять в массиве $vad !
$vad = array(
'go_p' => true,
'go_r' => true,
@@ -56,7 +56,7 @@ if( isset($s[1]) && $s[1] == '12/altar_1_5stage' ) {
$u->deleteItem($vad['row'],$u->info['id'],1);
}
$this->pickitem($obj,4446,$u->info['id'],'|sudba=-1');
$r = 'Вы использовали &quot;'.$obj['name'].'&quot; и собрали &quot;Ключ Портала&quot; из трех частей...';
$r = 'Вы использовали &quot;'.$obj['name'].'&quot; и собрали &quot;Ключ Портала&quot; из трех частей...';
} else {
$vad['go_p'] == false;
}
@@ -69,12 +69,12 @@ if( isset($s[1]) && $s[1] == '12/altar_1_5stage' ) {
}
$this->pickitem($obj,4522,$u->info['id'],'|sudba=-1', true);
if( !isset($r) ) $r ='';
$r .= 'Вы использовали &quot;'.$obj['name'].'&quot; и собрали &quot;Отпирающая руна&quot; из пяти частей...';
$r .= 'Вы использовали &quot;'.$obj['name'].'&quot; и собрали &quot;Отпирающая руна&quot; из пяти частей...';
} else {
$vad['go_r'] == false;
}
if( $vad['go_r']==false && $vad['go_p']==false ) {
$r = 'Ничего не получилось... ';
$r = 'Ничего не получилось... ';
}
unset($vad);
+7 -7
View File
@@ -1,19 +1,19 @@
<?
if( isset($s[1]) && $s[1] == '12/door_01' ) {
/*
Решетка
* Телепортирует на необходимую клетку
Решетка
* Телепортирует на необходимую клетку
*/
//Все переменные сохранять в массиве $vad !
//Все переменные сохранять в массиве $vad !
$vad = array(
'go' => false
);
//Проверяем камни
//Проверяем камни
$vad['sp'] = mysql_fetch_array(mysql_query('SELECT * FROM `items_users` WHERE `item_id` = "4516" AND `uid` = "'.$u->info['id'].'" AND `delete` = "0" AND `inOdet` = "0" AND `inShop` = "0" AND `inTransfer` = "0" LIMIT 1'));
if( isset($vad['sp']['id']) ) {
if( $vad['sp']['inGroup'] > 0 ) {
$r = 'Предмет не должен находиться в группе';
$r = 'Предмет не должен находиться в группе';
}else{
$vad['pl'] = mysql_fetch_array(mysql_query('SELECT * FROM `items_main` WHERE `id` = "'.$vad['sp']['item_id'].'" LIMIT 1'));
$vad['go'] = true;
@@ -23,9 +23,9 @@ if( isset($s[1]) && $s[1] == '12/door_01' ) {
mysql_query('UPDATE `stats` SET `x` = "-3",`y` = "63" WHERE `id` = "'.$u->info['id'].'" LIMIT 1');
header('location: main.php');
}elseif( $u->info['x'] == '-3' && $u->info['y'] == '63') {
$r = 'Решетка уже открыта';
$r = 'Решетка уже открыта';
}elseif( !isset($vad['sp']['id']) ) {
$r = 'Для прохода требуется предмет &quot;Ключ от Сокровищницы&quot;';
$r = 'Для прохода требуется предмет &quot;Ключ от Сокровищницы&quot;';
}
unset($vad);
}
+3 -3
View File
@@ -4,7 +4,7 @@ if(isset($s[1]) && $s[1] == '12/door_02') {
$vad['sp'] = mysql_fetch_array(mysql_query('SELECT * FROM `items_users` WHERE `item_id` = "4522" AND `uid` = "'.$u->info['id'].'" AND `delete` = "0" AND `inOdet` = "0" AND `inShop` = "0" AND `inTransfer` = "0" LIMIT 1'));
if(isset($vad['sp']['id'])) {
if($vad['sp']['inGroup'] > 0) {
$r = 'Предмет не должен находиться в группе';
$r = 'Предмет не должен находиться в группе';
} else {
$vad['pl'] = mysql_fetch_array(mysql_query('SELECT * FROM `items_main` WHERE `id` = "'.$vad['sp']['item_id'].'" LIMIT 1'));
$vad['go'] = true;
@@ -14,9 +14,9 @@ if(isset($s[1]) && $s[1] == '12/door_02') {
mysql_query('UPDATE `stats` SET `x` = "0", `y` = "66" WHERE `id` = "'.$u->info['id'].'" LIMIT 1');
header('Location: main.php');
} elseif($u->info['x'] == '0' && $u->info['y'] == '66') {
$r = 'Дверь уже открыта';
$r = 'Дверь уже открыта';
} elseif(!isset($vad['sp']['id'])) {
$r = 'Для прохода требуется предмет &quot;Отпирающая руна&quot;';
$r = 'Для прохода требуется предмет &quot;Отпирающая руна&quot;';
}
unset($vad);
}
+5 -5
View File
@@ -9,17 +9,17 @@ if(isset($s[1]) && $s[1] == '12/fontan1') {
if(isset($vad['bottle']['id'])) {
$vad['go'] = true;
} else {
$r = 'Для использования требуется &quot;Пустая Бутылка&quot;';
$r = 'Для использования требуется &quot;Пустая Бутылка&quot;';
}
} else {
$r = 'Для использования требуется &quot;Мерцающий Ключ №1&quot;';
$r = 'Для использования требуется &quot;Мерцающий Ключ №1&quot;';
}
} else {
if($u->info['sex'] == 1) { $a = 'а'; } else { $a = ''; }
$r = 'Мне кажется, что здесь я уже был'.$a.'..';
if($u->info['sex'] == 1) { $a = 'а'; } else { $a = ''; }
$r = 'Мне кажется, что здесь я уже был'.$a.'..';
}
if($vad['go'] == true) {
$r = 'Вы воспользовались &quot;Ключ №1&quot;. Опустив пустую бутылку в фонтан вы наполнили её.';
$r = 'Вы воспользовались &quot;Ключ №1&quot;. Опустив пустую бутылку в фонтан вы наполнили её.';
$u->deleteItem(intval($vad['key']['id']), $u->info['id'], 1);
$u->deleteItem(intval($vad['bottle']['id']), $u->info['id'], 1);
$u->addItem(round(4403), $u->info['id'], '|musor=2|noremont=1|nosale=1',12);
+14 -14
View File
@@ -1,43 +1,43 @@
<?
if( isset($s[1]) && $s[1] == '12/fontan2' ) {
//Все переменные сохранять в массиве $vad !
//Все переменные сохранять в массиве $vad !
$vad = array(
'go' => false
);
// Требуется добавить на проверку Не больше 4 игроков из группы.
// Требуется добавить на проверку Не больше 4 игроков из группы.
$vad['use_fontan'] = mysql_fetch_array(mysql_query('SELECT * FROM `dungeon_actions` WHERE `uid` = "'.$u->info['id'].'" AND `dn` = "'.$u->info['dnow'].'" AND `vars` = "use_fontan" AND `vals` = "2" LIMIT 1')); // Проверка на использованее ранее.
$vad['use_fontan'] = mysql_fetch_array(mysql_query('SELECT * FROM `dungeon_actions` WHERE `uid` = "'.$u->info['id'].'" AND `dn` = "'.$u->info['dnow'].'" AND `vars` = "use_fontan" AND `vals` = "2" LIMIT 1')); // Проверка на использованее ранее.
if(!isset($vad['use_fontan']['id'])) {
$vad['all_uses'] = mysql_num_rows(mysql_query('SELECT * FROM `dungeon_actions` WHERE `dn` = "'.$u->info['dnow'].'" AND `vars` = "use_fontan" AND `vals` = "2" LIMIT 5'));
if($vad['all_uses']>=4){
$r = 'Ничего не осталось, кто-то побывал здесь раньше.';
$r = 'Ничего не осталось, кто-то побывал здесь раньше.';
} else {
$vad['kill_dk'] = mysql_fetch_array(mysql_query('SELECT * FROM `dungeon_bots` WHERE `id_bot` = "123" AND `dn` = "'.$u->info['dnow'].'" AND `for_dn` = "0" LIMIT 1')); //Проверяем убита ли Дарьяна Корт
$vad['kill_dk'] = mysql_fetch_array(mysql_query('SELECT * FROM `dungeon_bots` WHERE `id_bot` = "123" AND `dn` = "'.$u->info['dnow'].'" AND `for_dn` = "0" LIMIT 1')); //Проверяем убита ли Дарьяна Корт
if( isset($vad['kill_dk']['id2']) ) {
if( $vad['kill_dk']['delete'] > 0 ) {
$vad['bt'] = mysql_fetch_array(mysql_query('SELECT * FROM `items_users` WHERE `item_id` = "2" AND `uid` = "'.$u->info['id'].'" AND `delete` = "0" AND `inOdet` = "0" AND `inShop` = "0" AND `inTransfer` = "0" LIMIT 1'));
if( isset($vad['bt']['id']) ) {
$vad['go'] = true;
} else {
$r = 'У вас нет пустой бутылки.';
$r = 'У вас нет пустой бутылки.';
}
} else {
$r = 'Вы не можете воспользоваться фонтаном, пока Дарьяна Корт жива.';
$r = 'Вы не можете воспользоваться фонтаном, пока Дарьяна Корт жива.';
}
} else {
$r = 'Вы уверены что Дарьяна Корт мертва? Нигде нет ее останков..';
$r = 'Вы уверены что Дарьяна Корт мертва? Нигде нет ее останков..';
}
}
} else {
if($u->info['sex']==1)$a='а'; else $a='';
$r = 'Мне кажется, что здесь я уже был'.$a.'..';
if($u->info['sex']==1)$a='а'; else $a='';
$r = 'Мне кажется, что здесь я уже был'.$a.'..';
}
if( $vad['go'] == true ) {
mysql_query('INSERT INTO `dungeon_actions` (`uid`,`dn`,`x`,`y`,`time`,`vars`,`vals`) VALUES ( "'.$u->info['id'].'","'.$u->info['dnow'].'","'.$u->info['x'].'","'.$u->info['y'].'","'.time().'", "use_fontan","2" )'); // Выпили раз, вот и хватит с вас!
$r = 'Опустив пустую бутылку в фонтан вы наполнили её.';
$u->deleteItem(intval($vad['bt']['id']),$u->info['id'],1); // Удаляем Пустая Бутылка = 2.
$u->addItem(round(1186),$u->info['id'],'|musor=2|noremont=1|nosale=1',12, 3); // Великое зелье Стойкости 1186
mysql_query('INSERT INTO `dungeon_actions` (`uid`,`dn`,`x`,`y`,`time`,`vars`,`vals`) VALUES ( "'.$u->info['id'].'","'.$u->info['dnow'].'","'.$u->info['x'].'","'.$u->info['y'].'","'.time().'", "use_fontan","2" )'); // Выпили раз, вот и хватит с вас!
$r = 'Опустив пустую бутылку в фонтан вы наполнили её.';
$u->deleteItem(intval($vad['bt']['id']),$u->info['id'],1); // Удаляем Пустая Бутылка = 2.
$u->addItem(round(1186),$u->info['id'],'|musor=2|noremont=1|nosale=1',12, 3); // Великое зелье Стойкости 1186
}
unset($vad);
}
+16 -16
View File
@@ -1,57 +1,57 @@
<?
if( isset($s[1]) && $s[1] == '12/fontan3' ) {
//Âñå ïåðåìåííûå ñîõðàíÿòü â ìàññèâå $vad !
//Все переменные сохранять в массиве $vad !
$vad = array(
'go' => false
);
// Òðåáóåòñÿ äîáàâèòü ïðîâåðêó Íå áîëüøå 2 èãðîêîâ èç ãðóïïû.
// Требуется добавить проверку Не больше 2 игроков из группы.
$vad['use_fontan'] = mysql_fetch_array(mysql_query('SELECT * FROM `dungeon_actions` WHERE `uid` = "'.$u->info['id'].'" AND `dn` = "'.$u->info['dnow'].'" AND `vars` = "use_fontan" AND `vals` = "3" LIMIT 1')); // Ïðîâåðêà íà èñïîëüçîâàíåå ðàíåå.
$vad['use_fontan'] = mysql_fetch_array(mysql_query('SELECT * FROM `dungeon_actions` WHERE `uid` = "'.$u->info['id'].'" AND `dn` = "'.$u->info['dnow'].'" AND `vars` = "use_fontan" AND `vals` = "3" LIMIT 1')); // Проверка на использованее ранее.
if(!isset($vad['use_fontan']['id'])) {
$vad['all_uses'] = mysql_num_rows(mysql_query('SELECT * FROM `dungeon_actions` WHERE `dn` = "'.$u->info['dnow'].'" AND `vars` = "use_fontan" AND `vals` = "3" LIMIT 5'));
if($vad['all_uses']>=2){
$r = 'Íè÷åãî íå îñòàëîñü, êòî-òî ïîáûâàë çäåñü ðàíüøå.';
$r = 'Ничего не осталось, кто-то побывал здесь раньше.';
} else {
$vad['kill_monsters'] = mysql_fetch_array(mysql_query('SELECT * FROM `dungeon_bots` WHERE ((`id_bot` = "370" && `x` = "-2" && `y` = "31") OR (`id_bot` = "374" && `x` = "-2" && `y` = "31") OR (`id_bot` = "375" && `x` = "-3" && `y` = "32") OR (`id_bot` = "375" && `x` = "-3" && `y` = "32") OR (`id_bot` = "373" && `x` = "-1" && `y` = "32") OR (`id_bot` = "373" && `x` = "-3" && `y` = "32") OR (`id_bot` = "373" && `x` = "-3" && `y` = "31")) AND `delete` = "0" AND `dn` = "'.$u->info['dnow'].'" AND `for_dn` = "0" LIMIT 10')); //Ïðîâåðÿåì óáèòà ëè ãðóïïà ìîíñòðîâ
$vad['kill_monsters'] = mysql_fetch_array(mysql_query('SELECT * FROM `dungeon_bots` WHERE ((`id_bot` = "370" && `x` = "-2" && `y` = "31") OR (`id_bot` = "374" && `x` = "-2" && `y` = "31") OR (`id_bot` = "375" && `x` = "-3" && `y` = "32") OR (`id_bot` = "375" && `x` = "-3" && `y` = "32") OR (`id_bot` = "373" && `x` = "-1" && `y` = "32") OR (`id_bot` = "373" && `x` = "-3" && `y` = "32") OR (`id_bot` = "373" && `x` = "-3" && `y` = "31")) AND `delete` = "0" AND `dn` = "'.$u->info['dnow'].'" AND `for_dn` = "0" LIMIT 10')); //Проверяем убита ли группа монстров
if( !isset($vad['kill_monsters']['0']['id2']) ) {
$vad['bt'] = mysql_fetch_array(mysql_query('SELECT * FROM `items_users` WHERE `item_id` = "2" AND `uid` = "'.$u->info['id'].'" AND `delete` = "0" AND `inOdet` = "0" AND `inShop` = "0" AND `inTransfer` = "0" LIMIT 1'));
if( isset($vad['bt']['id']) ) {
//if( $vad['bt']['inGroup'] > 0 ) {
// $r = 'Ïðåäìåò íå äîëæåí íàõîäèòüñÿ â ãðóïïå';
// $r = 'Предмет не должен находиться в группе';
//}else{
// Âûáèðàåì êàìíè
// Выбираем камни
$vad['gems']['query'] = mysql_query('SELECT `id`,`inGroup` FROM `items_users` WHERE (`item_id` = "908" OR `item_id` = "906" OR `item_id` = "907" OR `item_id` = "881" OR `item_id` = "878" OR `item_id` = "888") AND `uid` = "'.$u->info['id'].'" AND `delete` = "0" AND `inOdet` = "0" AND `inShop` = "0" AND `inTransfer` = "0" LIMIT 99');
// Âûáèðàåì ðàíäîìíûé êàìåíü èç...
// Выбираем рандомный камень из...
$vad['gems']['query'] = mysql_result($vad['gems']['query'], (rand(0, (mysql_num_rows($vad['gems']['query'])-1))),0);
if( $vad['gems']['query'] != "" ) {
$vad['go'] = true;
} else {
$r = '×òî-òî ïîøëî íå òàê, íåîáõîäèì äðàãîöåííûé êàìåíü...';
$r = 'Что-то пошло не так, необходим драгоценный камень...';
}
//}
} else {
$r = 'Ó âàñ íåò ïóñòîé áóòûëêè.';
$r = 'У вас нет пустой бутылки.';
}
} else {
$r = 'Âû óâåðåíû ÷òî óáèëè âñþ ãðóïïó ìîíñòðîâ?';
$r = 'Вы уверены что убили всю группу монстров?';
}
}
} else {
if($u->info['sex']==1)$a='à'; else $a='';
$r = 'Ìíå êàæåòñÿ, ÷òî çäåñü ÿ óæå áûë'.$a.'..';
if($u->info['sex']==1)$a='а'; else $a='';
$r = 'Мне кажется, что здесь я уже был'.$a.'..';
}
if( $vad['go'] == true ) {
mysql_query('INSERT INTO `dungeon_actions` (`uid`,`dn`,`x`,`y`,`time`,`vars`,`vals`) VALUES ( "'.$u->info['id'].'","'.$u->info['dnow'].'","'.$u->info['x'].'","'.$u->info['y'].'","'.time().'", "use_fontan","3" )'); // Âûïèëè ðàç, âîò è õâàòèò ñ âàñ!
$r = 'Îïóñòèâ ïóñòóþ áóòûëêó â ôîíòàí âû íàïîëíèëè å¸.';
mysql_query('INSERT INTO `dungeon_actions` (`uid`,`dn`,`x`,`y`,`time`,`vars`,`vals`) VALUES ( "'.$u->info['id'].'","'.$u->info['dnow'].'","'.$u->info['x'].'","'.$u->info['y'].'","'.time().'", "use_fontan","3" )'); // Выпили раз, вот и хватит с вас!
$r = 'Опустив пустую бутылку в фонтан вы наполнили её.';
mysql_query('DELETE FROM `items_users` WHERE `id` = "'.mysql_real_escape_string(intval($vad['gems']['query'])).'" LIMIT 1');
mysql_query('DELETE FROM `items_users` WHERE `id` = "'.mysql_real_escape_string(intval($vad['bt']['id'])).'" LIMIT 1');
$u->addItem(round(1188),$u->info['id'],'|musor=2|noremont=1|nosale=1',12, 3); // Âåëèêîå çåëüå Îòðèöàíèÿ 1188
$u->addItem(round(1188),$u->info['id'],'|musor=2|noremont=1|nosale=1',12, 3); // Великое зелье Отрицания 1188
}
unset($vad);
}
+8 -8
View File
@@ -5,37 +5,37 @@ if(isset($s[1]) && $s[1] == '12/fontan4') {
if(!isset($vad['use_fontan']['id'])) {
$vad['all_uses'] = mysql_num_rows(mysql_query('SELECT * FROM `dungeon_actions` WHERE `dn` = "'.$u->info['dnow'].'" AND `vars` = "use_fontan" AND `vals` = "4" LIMIT 5'));
if($vad['all_uses'] >= 3) {
$r = 'Ничего не осталось, кто-то побывал здесь раньше.';
$r = 'Ничего не осталось, кто-то побывал здесь раньше.';
} else {
$vad['kill_monsters'] = mysql_fetch_array(mysql_query('SELECT * FROM `dungeon_bots` WHERE ((`id_bot` = "121" && `x` = "-5" && `y` = "30") OR (`id_bot` = "118" && `x` = "-6" && `y` = "30") OR (`id_bot` = "114" && `x` = "-5" && `y` = "29") OR (`id_bot` = "112" && `x` = "-7" && `y` = "29") OR (`id_bot` = "122" && `x` = "-7" && `y` = "30")) AND `delete` = "0" AND `dn` = "'.$u->info['dnow'].'" AND `for_dn` = "0" LIMIT 10'));
if(!isset($vad['kill_monsters']['id2'])) {
$vad['bottle'] = mysql_fetch_array(mysql_query('SELECT * FROM `items_users` WHERE `item_id` = "2" AND `uid` = "'.$u->info['id'].'" AND `delete` = "0" AND `inOdet` = "0" AND `inShop` = "0" AND `inTransfer` = "0" ORDER BY `id` DESC LIMIT 1'));
if(isset($vad['bottle']['id'])) {
// if($vad['bottle']['inGroup'] > 0) {
// $r = 'Пустая бутылка не должена находиться в группе...';
// $r = 'Пустая бутылка не должена находиться в группе...';
// } else {
$vad['gems']['query'] = mysql_query('SELECT `id`, `inGroup` FROM `items_users` WHERE (`item_id` = "908" OR `item_id` = "906" OR `item_id` = "907" OR `item_id` = "881" OR `item_id` = "878" OR `item_id` = "888") AND `uid` = "'.$u->info['id'].'" AND `delete` = "0" AND `inOdet` = "0" AND `inShop` = "0" AND `inTransfer` = "0" LIMIT 99');
$vad['gems']['query'] = mysql_result($vad['gems']['query'], (rand(0, (mysql_num_rows($vad['gems']['query'])-1))),0);
if($vad['gems']['query'] != '') {
$vad['go'] = true;
} else {
$r = 'У вас нет драгоценных камней...';
$r = 'У вас нет драгоценных камней...';
}
// }
} else {
$r = 'У вас нет пустой бутылки.';
$r = 'У вас нет пустой бутылки.';
}
} else {
$r = 'Вы уверены что убили всю группу монстров?';
$r = 'Вы уверены что убили всю группу монстров?';
}
}
} else {
if($u->info['sex'] == 1) { $a = 'а'; } else { $a = ''; }
$r = 'Мне кажется, что здесь я уже был'.$a.'..';
if($u->info['sex'] == 1) { $a = 'а'; } else { $a = ''; }
$r = 'Мне кажется, что здесь я уже был'.$a.'..';
}
if($vad['go'] == true) {
mysql_query('INSERT INTO `dungeon_actions` (`uid`, `dn`, `x`, `y`, `time`, `vars`, `vals`) VALUES ( "'.$u->info['id'].'", "'.$u->info['dnow'].'", "'.$u->info['x'].'", "'.$u->info['y'].'", "'.time().'", "use_fontan", "4" )');
$r = 'Опустив пустую бутылку в фонтан вы наполнили её.';
$r = 'Опустив пустую бутылку в фонтан вы наполнили её.';
$vad['drug'] = array(0 => 2588, 1 => 2590, 2 => 2589, 3 => 2145);
mysql_query('DELETE FROM `items_users` WHERE `id` = "'.mysql_real_escape_string(intval($vad['bottle']['id'])).'" LIMIT 1');
$u->addItem(round($vad['drug'][rand(0,3)]), $u->info['id'], '|musor=2|nosale=1|noremont=1', 12, 3);
+4 -4
View File
@@ -3,7 +3,7 @@ if(isset($s[1]) && $s[1] == '12/s1') {
$vad = array('go' => true);
$vad['test1'] = mysql_fetch_array(mysql_query('SELECT COUNT(*) FROM `dungeon_actions` WHERE `vars` = "obj_act'.$obj['id'].'" AND `dn` = "'.$u->info['dnow'].'" LIMIT 1'));
if($vad['test1'][0] > 0) {
$r = 'Кто-то обыскал &quot;'.$obj['name'].'&quot; раньше вас...';
$r = 'Кто-то обыскал &quot;'.$obj['name'].'&quot; раньше вас...';
$vad['go'] = false;
}
if($vad['go'] == true) {
@@ -14,7 +14,7 @@ if(isset($s[1]) && $s[1] == '12/s1') {
$vad['i'] = 0;
$vad['items'] = array(array(888, 15), array(4759, 15), array(4523, 8), array(4524, 8), array(4525, 8), array(4526, 8), array(4527, 8), array(4528, 8), array(4529, 8), array(4530, 8), array(4531, 8));
if(rand(0,100) < 50) {
$r = 'Вы ничего не нашли...';
$r = 'Вы ничего не нашли...';
} else {
while($vad['i'] < count($vad['items'])) {
$vad['j'] = $vad['items'][$vad['i']];
@@ -30,10 +30,10 @@ if(isset($s[1]) && $s[1] == '12/s1') {
$vad['itm'] = $vad['items'][rand(0, count(($vad['items']))-1)];
$this->pickitem($obj, $vad['itm'][0], 0);
}
$r = 'Вы обнаружили предметы...';
$r = 'Вы обнаружили предметы...';
}
} else {
$r = 'Вы не нашли ничего полезного...';
$r = 'Вы не нашли ничего полезного...';
}
}
unset($vad);
@@ -1,10 +1,10 @@
<?
if( isset($s[1]) && $s[1] == '12/sunduk_01_4stage' ) {
/*
Сундук: Сундук Стража, можно найти
"Верхняя Часть Ключа Портала" - 4443
Сундук: Сундук Стража, можно найти
"Верхняя Часть Ключа Портала" - 4443
*/
//Все переменные сохранять в массиве $vad !
//Все переменные сохранять в массиве $vad !
$vad = array(
'go' => true
);
@@ -12,10 +12,10 @@ if( isset($s[1]) && $s[1] == '12/sunduk_01_4stage' ) {
$vad['test1'] = mysql_fetch_array(mysql_query('SELECT COUNT(*) FROM `dungeon_actions` WHERE `vars` = "obj_act'.$obj['id'].'" AND `dn` = "'.$u->info['dnow'].'" LIMIT 5'));
$vad['test2'] = mysql_fetch_array(mysql_query('SELECT COUNT(*) FROM `dungeon_actions` WHERE `vars` = "obj_act'.$obj['id'].'" AND `dn` = "'.$u->info['dnow'].'" AND `uid` = "'.$u->info['id'].'" LIMIT 1'));
if( $vad['test2'][0] > 0 ) {
$r = 'Вы уже обыскали &quot;'.$obj['name'].'&quot;...';
$r = 'Вы уже обыскали &quot;'.$obj['name'].'&quot;...';
$vad['go'] = false;
}elseif( $vad['test1'][0] > 5 ) {
$r = 'Кто-то обыскал &quot;'.$obj['name'].'&quot; раньше вас...';
$r = 'Кто-то обыскал &quot;'.$obj['name'].'&quot; раньше вас...';
$vad['go'] = false;
}
@@ -24,7 +24,7 @@ if( isset($s[1]) && $s[1] == '12/sunduk_01_4stage' ) {
$vad['items'] = $vad['items'][rand(0,count($vad['items'])-1)];
if( $vad['items'] != 0 ) {
# Выбрасываем предмет
# Выбрасываем предмет
mysql_query('INSERT INTO `dungeon_actions` (`dn`,`time`,`x`,`y`,`uid`,`vars`,`vals`) VALUES (
"'.$u->info['dnow'].'","'.time().'","'.$obj['x'].'","'.$obj['y'].'","'.$u->info['id'].'","obj_act'.$obj['id'].'",""
)');
@@ -32,12 +32,12 @@ if( isset($s[1]) && $s[1] == '12/sunduk_01_4stage' ) {
$vad['dn_delete'][$vad['items']] = false;
}
if( $this->pickitem($obj,$vad['items'],$u->info['id'],'',$vad['dn_delete'][$vad['items']]) ) {
$r = 'Вы обнаружили предметы...';
$r = 'Вы обнаружили предметы...';
}else{
$r = 'Что-то пошло не так, предметы растворились...';
$r = 'Что-то пошло не так, предметы растворились...';
}
}else{
$r = 'Вы не нашли ничего полезного...';
$r = 'Вы не нашли ничего полезного...';
}
}
@@ -1,10 +1,10 @@
<?
if( isset($s[1]) && $s[1] == '12/sunduk_01_5stage' ) {
/*
Сундук: Потерянный сундук
Ключ от Сокровищницы - 4516
Сундук: Потерянный сундук
Ключ от Сокровищницы - 4516
*/
//Все переменные сохранять в массиве $vad !
//Все переменные сохранять в массиве $vad !
$vad = array(
'go' => true
);
@@ -12,10 +12,10 @@ if( isset($s[1]) && $s[1] == '12/sunduk_01_5stage' ) {
$vad['test1'] = mysql_fetch_array(mysql_query('SELECT COUNT(*) FROM `dungeon_actions` WHERE `vars` = "obj_act'.$obj['id'].'" AND `dn` = "'.$u->info['dnow'].'" LIMIT 5'));
$vad['test2'] = mysql_fetch_array(mysql_query('SELECT COUNT(*) FROM `dungeon_actions` WHERE `vars` = "obj_act'.$obj['id'].'" AND `dn` = "'.$u->info['dnow'].'" AND `uid` = "'.$u->info['id'].'" LIMIT 1'));
if( $vad['test2'][0] > 0 ) {
$r = 'Вы уже обыскали &quot;'.$obj['name'].'&quot;...';
$r = 'Вы уже обыскали &quot;'.$obj['name'].'&quot;...';
$vad['go'] = false;
}elseif( $vad['test1'][0] > 5 ) {
$r = 'Кто-то обыскал &quot;'.$obj['name'].'&quot; раньше вас...';
$r = 'Кто-то обыскал &quot;'.$obj['name'].'&quot; раньше вас...';
$vad['go'] = false;
}
@@ -24,17 +24,17 @@ if( isset($s[1]) && $s[1] == '12/sunduk_01_5stage' ) {
$vad['items'] = $vad['items'][rand(0,count($vad['items'])-1)];
if( $vad['items'] != 0 ) {
# Выбрасываем предмет
# Выбрасываем предмет
mysql_query('INSERT INTO `dungeon_actions` (`dn`,`time`,`x`,`y`,`uid`,`vars`,`vals`) VALUES (
"'.$u->info['dnow'].'","'.time().'","'.$obj['x'].'","'.$obj['y'].'","'.$u->info['id'].'","obj_act'.$obj['id'].'",""
)');
if( $this->pickitem($obj,$vad['items'],$u->info['id'],'', true) ) {
$r = 'Вы обнаружили предметы...';
$r = 'Вы обнаружили предметы...';
}else{
$r = 'Что-то пошло не так, предметы растворились...';
$r = 'Что-то пошло не так, предметы растворились...';
}
}else{
$r = 'Вы не нашли ничего полезного...';
$r = 'Вы не нашли ничего полезного...';
}
}
@@ -1,10 +1,10 @@
<?
if( isset($s[1]) && $s[1] == '12/sunduk_02_4stage' ) {
/*
Сундук: Сундук Стража, можно найти
Правая Часть Ключа Портала - 4444
Сундук: Сундук Стража, можно найти
Правая Часть Ключа Портала - 4444
*/
//Все переменные сохранять в массиве $vad !
//Все переменные сохранять в массиве $vad !
$vad = array(
'go' => true
);
@@ -12,10 +12,10 @@ if( isset($s[1]) && $s[1] == '12/sunduk_02_4stage' ) {
$vad['test1'] = mysql_fetch_array(mysql_query('SELECT COUNT(*) FROM `dungeon_actions` WHERE `vars` = "obj_act'.$obj['id'].'" AND `dn` = "'.$u->info['dnow'].'" LIMIT 5'));
$vad['test2'] = mysql_fetch_array(mysql_query('SELECT COUNT(*) FROM `dungeon_actions` WHERE `vars` = "obj_act'.$obj['id'].'" AND `dn` = "'.$u->info['dnow'].'" AND `uid` = "'.$u->info['id'].'" LIMIT 1'));
if( $vad['test2'][0] > 0 ) {
$r = 'Вы уже обыскали &quot;'.$obj['name'].'&quot;...';
$r = 'Вы уже обыскали &quot;'.$obj['name'].'&quot;...';
$vad['go'] = false;
}elseif( $vad['test1'][0] > 5 ) {
$r = 'Кто-то обыскал &quot;'.$obj['name'].'&quot; раньше вас...';
$r = 'Кто-то обыскал &quot;'.$obj['name'].'&quot; раньше вас...';
$vad['go'] = false;
}
@@ -24,7 +24,7 @@ if( isset($s[1]) && $s[1] == '12/sunduk_02_4stage' ) {
$vad['items'] = $vad['items'][rand(0,count($vad['items'])-1)];
if( $vad['items'] != 0 ) {
# Выбрасываем предмет
# Выбрасываем предмет
mysql_query('INSERT INTO `dungeon_actions` (`dn`,`time`,`x`,`y`,`uid`,`vars`,`vals`) VALUES (
"'.$u->info['dnow'].'","'.time().'","'.$obj['x'].'","'.$obj['y'].'","'.$u->info['id'].'","obj_act'.$obj['id'].'",""
)');
@@ -32,12 +32,12 @@ if( isset($s[1]) && $s[1] == '12/sunduk_02_4stage' ) {
$vad['dn_delete'][$vad['items']] = false;
}
if( $this->pickitem($obj,$vad['items'],$u->info['id'],'',$vad['dn_delete'][$vad['items']]) ) {
$r = 'Вы обнаружили предметы...';
$r = 'Вы обнаружили предметы...';
}else{
$r = 'Что-то пошло не так, предметы растворились...';
$r = 'Что-то пошло не так, предметы растворились...';
}
}else{
$r = 'Вы не нашли ничего полезного...';
$r = 'Вы не нашли ничего полезного...';
}
}
@@ -1,10 +1,10 @@
<?
if( isset($s[1]) && $s[1] == '12/sunduk_03_4stage' ) {
/*
Сундук: Сундук Стража, можно найти
Левая Часть Ключа Портала - 4445
Сундук: Сундук Стража, можно найти
Левая Часть Ключа Портала - 4445
*/
//Все переменные сохранять в массиве $vad !
//Все переменные сохранять в массиве $vad !
$vad = array(
'go' => true
);
@@ -12,10 +12,10 @@ if( isset($s[1]) && $s[1] == '12/sunduk_03_4stage' ) {
$vad['test1'] = mysql_fetch_array(mysql_query('SELECT COUNT(*) FROM `dungeon_actions` WHERE `vars` = "obj_act'.$obj['id'].'" AND `dn` = "'.$u->info['dnow'].'" LIMIT 5'));
$vad['test2'] = mysql_fetch_array(mysql_query('SELECT COUNT(*) FROM `dungeon_actions` WHERE `vars` = "obj_act'.$obj['id'].'" AND `dn` = "'.$u->info['dnow'].'" AND `uid` = "'.$u->info['id'].'" LIMIT 1'));
if( $vad['test2'][0] > 0 ) {
$r = 'Вы уже обыскали &quot;'.$obj['name'].'&quot;...';
$r = 'Вы уже обыскали &quot;'.$obj['name'].'&quot;...';
$vad['go'] = false;
}elseif( $vad['test1'][0] > 5 ) {
$r = 'Кто-то обыскал &quot;'.$obj['name'].'&quot; раньше вас...';
$r = 'Кто-то обыскал &quot;'.$obj['name'].'&quot; раньше вас...';
$vad['go'] = false;
}
@@ -24,7 +24,7 @@ if( isset($s[1]) && $s[1] == '12/sunduk_03_4stage' ) {
$vad['items'] = $vad['items'][rand(0,count($vad['items'])-1)];
if( $vad['items'] != 0 ) {
# Выбрасываем предмет
# Выбрасываем предмет
mysql_query('INSERT INTO `dungeon_actions` (`dn`,`time`,`x`,`y`,`uid`,`vars`,`vals`) VALUES (
"'.$u->info['dnow'].'","'.time().'","'.$obj['x'].'","'.$obj['y'].'","'.$u->info['id'].'","obj_act'.$obj['id'].'",""
)');
@@ -32,12 +32,12 @@ if( isset($s[1]) && $s[1] == '12/sunduk_03_4stage' ) {
$vad['dn_delete'][$vad['items']] = false;
}
if( $this->pickitem($obj,$vad['items'],$u->info['id'],'',$vad['dn_delete'][$vad['items']]) ) {
$r = 'Вы обнаружили предметы...';
$r = 'Вы обнаружили предметы...';
}else{
$r = 'Что-то пошло не так, предметы растворились...';
$r = 'Что-то пошло не так, предметы растворились...';
}
}else{
$r = 'Вы не нашли ничего полезного...';
$r = 'Вы не нашли ничего полезного...';
}
}
@@ -1,14 +1,14 @@
<?
if( isset($s[1]) && $s[1] == '12/sunduk_04_4stage' ) {
/*
Сундук: Потерянный сундук, можно найти ключ портала
# Тактики
Сундук: Потерянный сундук, можно найти ключ портала
# Тактики
# `id` IN ('4243', '4244', '4245', '4246', '4247', '4248', '4249', '4250', '4251', '4252', '4253', '4254', '4255', '4256', '4257', '4258', '4259', '4260', '4261', '4262', '4263', '4264', '4265', '4266', '4267')
# Элики 15%
# Элики 15%
#'4514', '4515')
*/
//Все переменные сохранять в массиве $vad !
//Все переменные сохранять в массиве $vad !
$vad = array(
'go' => true
);
@@ -16,35 +16,35 @@ if( isset($s[1]) && $s[1] == '12/sunduk_04_4stage' ) {
$vad['test1'] = mysql_fetch_array(mysql_query('SELECT COUNT(*) FROM `dungeon_actions` WHERE `vars` = "obj_act'.$obj['id'].'" AND `dn` = "'.$u->info['dnow'].'" LIMIT 1'));
$vad['test2'] = mysql_fetch_array(mysql_query('SELECT COUNT(*) FROM `dungeon_actions` WHERE `vars` = "obj_act'.$obj['id'].'" AND `dn` = "'.$u->info['dnow'].'" AND `uid` = "'.$u->info['id'].'" LIMIT 1'));
if( $vad['test2'][0] > 0 ) {
$r = 'Вы уже обыскали &quot;'.$obj['name'].'&quot;...';
$r = 'Вы уже обыскали &quot;'.$obj['name'].'&quot;...';
$vad['go'] = false;
}elseif( $vad['test1'][0] > 0 ) {
$r = 'Кто-то обыскал &quot;'.$obj['name'].'&quot; раньше вас...';
$r = 'Кто-то обыскал &quot;'.$obj['name'].'&quot; раньше вас...';
$vad['go'] = false;
}
if( $vad['go'] == true ) {
if(rand(0,100) > 85){ # Элики
if(rand(0,100) > 85){ # Элики
$vad['items'] = array(4514,4515);
} else{ # Тактики
} else{ # Тактики
$vad['repcent'] = rand(0,100);
if( $vad['repcent'] <= 60 ) { # Тактики [1,2] 60%
if( $vad['repcent'] <= 60 ) { # Тактики [1,2] 60%
$vad['items'] = array(4243, 4244, 4248, 4249, 4253, 4254, 4258, 4259, 4263, 4264);
} elseif( $vad['repcent'] > 60 AND $vad['repcent'] <= 83 ) {# Тактики [3] 23%
} elseif( $vad['repcent'] > 60 AND $vad['repcent'] <= 83 ) {# Тактики [3] 23%
$vad['items'] = array(4245, 4250, 4255, 4260, 4265);
} elseif( $vad['repcent'] > 83 AND $vad['repcent'] <= 95 ) {# Тактики [4] 12%
} elseif( $vad['repcent'] > 83 AND $vad['repcent'] <= 95 ) {# Тактики [4] 12%
$vad['items'] = array(4246, 4251, 4256, 4261, 4266);
}elseif( $vad['repcent'] > 95 ) { # Тактики [5] 5%
}elseif( $vad['repcent'] > 95 ) { # Тактики [5] 5%
$vad['items'] = array(4247, 4252, 4257, 4262, 4267);
}
if($vad['repcent'] < 87){ # Элики
if($vad['repcent'] < 87){ # Элики
$vad['items'] = array_merge(array(4514,4515), $vad['items']);
}
}
$vad['items'] = $vad['items'][rand(0,count($vad['items'])-1)];
if( $vad['items'] != 0 ) {
//Выбрасываем предмет
//Выбрасываем предмет
mysql_query('INSERT INTO `dungeon_actions` (`dn`,`time`,`x`,`y`,`uid`,`vars`,`vals`) VALUES (
"'.$u->info['dnow'].'","'.time().'","'.$obj['x'].'","'.$obj['y'].'","'.$u->info['id'].'","obj_act'.$obj['id'].'",""
)');
@@ -52,12 +52,12 @@ if( isset($s[1]) && $s[1] == '12/sunduk_04_4stage' ) {
$vad['dn_delete'][$vad['items']] = false;
}
if( $this->pickitem($obj,$vad['items'],$u->info['id'],'',$vad['dn_delete'][$vad['items']]) ) {
$r = 'Вы обнаружили предметы...';
$r = 'Вы обнаружили предметы...';
}else{
$r = 'Что-то пошло не так, предметы растворились...';
$r = 'Что-то пошло не так, предметы растворились...';
}
}else{
$r = 'Вы не нашли ничего полезного...';
$r = 'Вы не нашли ничего полезного...';
}
}
@@ -1,10 +1,10 @@
<?
if( isset($s[1]) && $s[1] == '12/sunduk_11_5stage' ) {
/*
Сундук: Сундук Стража, можно найти
"Первая часть руны" - 4517
Сундук: Сундук Стража, можно найти
"Первая часть руны" - 4517
*/
//Все переменные сохранять в массиве $vad !
//Все переменные сохранять в массиве $vad !
$vad = array(
'go' => true
);
@@ -12,10 +12,10 @@ if( isset($s[1]) && $s[1] == '12/sunduk_11_5stage' ) {
$vad['test1'] = mysql_fetch_array(mysql_query('SELECT COUNT(*) FROM `dungeon_actions` WHERE `vars` = "obj_act'.$obj['id'].'" AND `dn` = "'.$u->info['dnow'].'" LIMIT 5'));
$vad['test2'] = mysql_fetch_array(mysql_query('SELECT COUNT(*) FROM `dungeon_actions` WHERE `vars` = "obj_act'.$obj['id'].'" AND `dn` = "'.$u->info['dnow'].'" AND `uid` = "'.$u->info['id'].'" LIMIT 1'));
if( $vad['test2'][0] > 0 ) {
$r = 'Вы уже обыскали &quot;'.$obj['name'].'&quot;...';
$r = 'Вы уже обыскали &quot;'.$obj['name'].'&quot;...';
$vad['go'] = false;
} elseif( $vad['test1'][0] > 5 ) {
$r = 'Кто-то обыскал &quot;'.$obj['name'].'&quot; раньше вас...';
$r = 'Кто-то обыскал &quot;'.$obj['name'].'&quot; раньше вас...';
$vad['go'] = false;
}
@@ -24,17 +24,17 @@ if( isset($s[1]) && $s[1] == '12/sunduk_11_5stage' ) {
$vad['items'] = $vad['items'][rand(0,count($vad['items'])-1)];
if( $vad['items'] != 0 ) {
# Выбрасываем предмет
# Выбрасываем предмет
mysql_query('INSERT INTO `dungeon_actions` (`dn`,`time`,`x`,`y`,`uid`,`vars`,`vals`) VALUES (
"'.$u->info['dnow'].'","'.time().'","'.$obj['x'].'","'.$obj['y'].'","'.$u->info['id'].'","obj_act'.$obj['id'].'",""
)');
if( $this->pickitem($obj,$vad['items'],$u->info['id'],'', true) ) {
$r = 'Вы обнаружили предметы...';
$r = 'Вы обнаружили предметы...';
}else{
$r = 'Что-то пошло не так, предметы растворились...';
$r = 'Что-то пошло не так, предметы растворились...';
}
}else{
$r = 'Вы не нашли ничего полезного...';
$r = 'Вы не нашли ничего полезного...';
}
}
@@ -1,10 +1,10 @@
<?
if( isset($s[1]) && $s[1] == '12/sunduk_12_5stage' ) {
/*
Сундук: Сундук Стража, можно найти
"Вторая часть руны" - 4518
Сундук: Сундук Стража, можно найти
"Вторая часть руны" - 4518
*/
//Все переменные сохранять в массиве $vad !
//Все переменные сохранять в массиве $vad !
$vad = array(
'go' => true
);
@@ -12,10 +12,10 @@ if( isset($s[1]) && $s[1] == '12/sunduk_12_5stage' ) {
$vad['test1'] = mysql_fetch_array(mysql_query('SELECT COUNT(*) FROM `dungeon_actions` WHERE `vars` = "obj_act'.$obj['id'].'" AND `dn` = "'.$u->info['dnow'].'" LIMIT 5'));
$vad['test2'] = mysql_fetch_array(mysql_query('SELECT COUNT(*) FROM `dungeon_actions` WHERE `vars` = "obj_act'.$obj['id'].'" AND `dn` = "'.$u->info['dnow'].'" AND `uid` = "'.$u->info['id'].'" LIMIT 1'));
if( $vad['test2'][0] > 0 ) {
$r = 'Вы уже обыскали &quot;'.$obj['name'].'&quot;...';
$r = 'Вы уже обыскали &quot;'.$obj['name'].'&quot;...';
$vad['go'] = false;
}elseif( $vad['test1'][0] > 5 ) {
$r = 'Кто-то обыскал &quot;'.$obj['name'].'&quot; раньше вас...';
$r = 'Кто-то обыскал &quot;'.$obj['name'].'&quot; раньше вас...';
$vad['go'] = false;
}
@@ -24,7 +24,7 @@ if( isset($s[1]) && $s[1] == '12/sunduk_12_5stage' ) {
$vad['items'] = $vad['items'][rand(0,count($vad['items'])-1)];
if( $vad['items'] != 0 ) {
# Выбрасываем предмет
# Выбрасываем предмет
mysql_query('INSERT INTO `dungeon_actions` (`dn`,`time`,`x`,`y`,`uid`,`vars`,`vals`) VALUES (
"'.$u->info['dnow'].'","'.time().'","'.$obj['x'].'","'.$obj['y'].'","'.$u->info['id'].'","obj_act'.$obj['id'].'",""
)');
@@ -32,12 +32,12 @@ if( isset($s[1]) && $s[1] == '12/sunduk_12_5stage' ) {
$vad['dn_delete'][$vad['items']] = false;
}
if( $this->pickitem($obj,$vad['items'],$u->info['id'],'', true) ) {
$r = 'Вы обнаружили предметы...';
$r = 'Вы обнаружили предметы...';
}else{
$r = 'Что-то пошло не так, предметы растворились...';
$r = 'Что-то пошло не так, предметы растворились...';
}
}else{
$r = 'Вы не нашли ничего полезного...';
$r = 'Вы не нашли ничего полезного...';
}
}
@@ -1,10 +1,10 @@
<?
if( isset($s[1]) && $s[1] == '12/sunduk_13_5stage' ) {
/*
Сундук: Сундук Стража, можно найти
"Третья часть руны" - 4519
Сундук: Сундук Стража, можно найти
"Третья часть руны" - 4519
*/
//Все переменные сохранять в массиве $vad !
//Все переменные сохранять в массиве $vad !
$vad = array(
'go' => true
);
@@ -12,10 +12,10 @@ if( isset($s[1]) && $s[1] == '12/sunduk_13_5stage' ) {
$vad['test1'] = mysql_fetch_array(mysql_query('SELECT COUNT(*) FROM `dungeon_actions` WHERE `vars` = "obj_act'.$obj['id'].'" AND `dn` = "'.$u->info['dnow'].'" LIMIT 5'));
$vad['test2'] = mysql_fetch_array(mysql_query('SELECT COUNT(*) FROM `dungeon_actions` WHERE `vars` = "obj_act'.$obj['id'].'" AND `dn` = "'.$u->info['dnow'].'" AND `uid` = "'.$u->info['id'].'" LIMIT 1'));
if( $vad['test2'][0] > 0 ) {
$r = 'Вы уже обыскали &quot;'.$obj['name'].'&quot;...';
$r = 'Вы уже обыскали &quot;'.$obj['name'].'&quot;...';
$vad['go'] = false;
}elseif( $vad['test1'][0] > 5 ) {
$r = 'Кто-то обыскал &quot;'.$obj['name'].'&quot; раньше вас...';
$r = 'Кто-то обыскал &quot;'.$obj['name'].'&quot; раньше вас...';
$vad['go'] = false;
}
@@ -24,17 +24,17 @@ if( isset($s[1]) && $s[1] == '12/sunduk_13_5stage' ) {
$vad['items'] = $vad['items'][rand(0,count($vad['items'])-1)];
if( $vad['items'] != 0 ) {
# Выбрасываем предмет
# Выбрасываем предмет
mysql_query('INSERT INTO `dungeon_actions` (`dn`,`time`,`x`,`y`,`uid`,`vars`,`vals`) VALUES (
"'.$u->info['dnow'].'","'.time().'","'.$obj['x'].'","'.$obj['y'].'","'.$u->info['id'].'","obj_act'.$obj['id'].'",""
)');
if( $this->pickitem($obj,$vad['items'],$u->info['id'],'',true) ) {
$r = 'Вы обнаружили предметы...';
$r = 'Вы обнаружили предметы...';
}else{
$r = 'Что-то пошло не так, предметы растворились...';
$r = 'Что-то пошло не так, предметы растворились...';
}
}else{
$r = 'Вы не нашли ничего полезного...';
$r = 'Вы не нашли ничего полезного...';
}
}
@@ -1,10 +1,10 @@
<?
if( isset($s[1]) && $s[1] == '12/sunduk_14_5stage' ) {
/*
Сундук: Сундук Стража, можно найти
"Четвертая часть руны" - 4520
Сундук: Сундук Стража, можно найти
"Четвертая часть руны" - 4520
*/
//Все переменные сохранять в массиве $vad !
//Все переменные сохранять в массиве $vad !
$vad = array(
'go' => true
);
@@ -12,10 +12,10 @@ if( isset($s[1]) && $s[1] == '12/sunduk_14_5stage' ) {
$vad['test1'] = mysql_fetch_array(mysql_query('SELECT COUNT(*) FROM `dungeon_actions` WHERE `vars` = "obj_act'.$obj['id'].'" AND `dn` = "'.$u->info['dnow'].'" LIMIT 5'));
$vad['test2'] = mysql_fetch_array(mysql_query('SELECT COUNT(*) FROM `dungeon_actions` WHERE `vars` = "obj_act'.$obj['id'].'" AND `dn` = "'.$u->info['dnow'].'" AND `uid` = "'.$u->info['id'].'" LIMIT 1'));
if( $vad['test2'][0] > 0 ) {
$r = 'Вы уже обыскали &quot;'.$obj['name'].'&quot;...';
$r = 'Вы уже обыскали &quot;'.$obj['name'].'&quot;...';
$vad['go'] = false;
}elseif( $vad['test1'][0] > 5 ) {
$r = 'Кто-то обыскал &quot;'.$obj['name'].'&quot; раньше вас...';
$r = 'Кто-то обыскал &quot;'.$obj['name'].'&quot; раньше вас...';
$vad['go'] = false;
}
@@ -24,17 +24,17 @@ if( isset($s[1]) && $s[1] == '12/sunduk_14_5stage' ) {
$vad['items'] = $vad['items'][rand(0,count($vad['items'])-1)];
if( $vad['items'] != 0 ) {
# Выбрасываем предмет
# Выбрасываем предмет
mysql_query('INSERT INTO `dungeon_actions` (`dn`,`time`,`x`,`y`,`uid`,`vars`,`vals`) VALUES (
"'.$u->info['dnow'].'","'.time().'","'.$obj['x'].'","'.$obj['y'].'","'.$u->info['id'].'","obj_act'.$obj['id'].'",""
)');
if( $this->pickitem($obj,$vad['items'],$u->info['id'],'',true) ) {
$r = 'Вы обнаружили предметы...';
$r = 'Вы обнаружили предметы...';
}else{
$r = 'Что-то пошло не так, предметы растворились...';
$r = 'Что-то пошло не так, предметы растворились...';
}
}else{
$r = 'Вы не нашли ничего полезного...';
$r = 'Вы не нашли ничего полезного...';
}
}
@@ -1,10 +1,10 @@
<?
if( isset($s[1]) && $s[1] == '12/sunduk_15_5stage' ) {
/*
Сундук: Сундук Стража, можно найти
"Пятая часть руны" - 4521
Сундук: Сундук Стража, можно найти
"Пятая часть руны" - 4521
*/
//Все переменные сохранять в массиве $vad !
//Все переменные сохранять в массиве $vad !
$vad = array(
'go' => true
);
@@ -12,10 +12,10 @@ if( isset($s[1]) && $s[1] == '12/sunduk_15_5stage' ) {
$vad['test1'] = mysql_fetch_array(mysql_query('SELECT COUNT(*) FROM `dungeon_actions` WHERE `vars` = "obj_act'.$obj['id'].'" AND `dn` = "'.$u->info['dnow'].'" LIMIT 5'));
$vad['test2'] = mysql_fetch_array(mysql_query('SELECT COUNT(*) FROM `dungeon_actions` WHERE `vars` = "obj_act'.$obj['id'].'" AND `dn` = "'.$u->info['dnow'].'" AND `uid` = "'.$u->info['id'].'" LIMIT 1'));
if( $vad['test2'][0] > 0 ) {
$r = 'Вы уже обыскали &quot;'.$obj['name'].'&quot;...';
$r = 'Вы уже обыскали &quot;'.$obj['name'].'&quot;...';
$vad['go'] = false;
}elseif( $vad['test1'][0] > 5 ) {
$r = 'Кто-то обыскал &quot;'.$obj['name'].'&quot; раньше вас...';
$r = 'Кто-то обыскал &quot;'.$obj['name'].'&quot; раньше вас...';
$vad['go'] = false;
}
@@ -24,17 +24,17 @@ if( isset($s[1]) && $s[1] == '12/sunduk_15_5stage' ) {
$vad['items'] = $vad['items'][rand(0,count($vad['items'])-1)];
if( $vad['items'] != 0 ) {
# Выбрасываем предмет
# Выбрасываем предмет
mysql_query('INSERT INTO `dungeon_actions` (`dn`,`time`,`x`,`y`,`uid`,`vars`,`vals`) VALUES (
"'.$u->info['dnow'].'","'.time().'","'.$obj['x'].'","'.$obj['y'].'","'.$u->info['id'].'","obj_act'.$obj['id'].'",""
)');
if($this->pickitem($obj, $vad['items'], $u->info['id'], '', true)) {
$r = 'Вы обнаружили предметы...';
$r = 'Вы обнаружили предметы...';
}else{
$r = 'Что-то пошло не так, предметы растворились...';
$r = 'Что-то пошло не так, предметы растворились...';
}
}else{
$r = 'Вы не нашли ничего полезного...';
$r = 'Вы не нашли ничего полезного...';
}
}
+8 -8
View File
@@ -1,25 +1,25 @@
<?
if( isset($s[1]) && $s[1] == '15/shaiba' ) {
/*
Сундук: Сундук Стража, можно найти
"Верхняя Часть Ключа Портала" - 4443
Сундук: Сундук Стража, можно найти
"Верхняя Часть Ключа Портала" - 4443
*/
//Все переменные сохранять в массиве $vad !
//Все переменные сохранять в массиве $vad !
$vad = array(
'go' => true
);
$r = 'Шайба у вас! Забейте её в ворота противника!';
$r = 'Шайба у вас! Забейте её в ворота противника!';
//Удаляем шайбу
//Удаляем шайбу
mysql_query('DELETE FROM `dungeon_obj` WHERE `id` = "'.$obj['id'].'" LIMIT 1');
//Добавляем шайбу в инвентарь игрока
//Добавляем шайбу в инвентарь игрока
$vad['itm'] = $u->addItem(4910,$u->info['id']);
if($vad['itm'] > 0) {
mysql_query('UPDATE `items_users` SET `gift` = "Шайба" WHERE `id` = "'.$vad['itm'].'" LIMIT 1');
mysql_query('UPDATE `items_users` SET `gift` = "Шайба" WHERE `id` = "'.$vad['itm'].'" LIMIT 1');
}
$this->sys_chat('<b>'.$u->info['login'].'</b> перехватил Шайбу!');
$this->sys_chat('<b>'.$u->info['login'].'</b> перехватил Шайбу!');
unset($vad);
}

Some files were not shown because too many files have changed in this diff Show More