Merge pull request 'dev-php74-utf8' (#31) from dev-php74-utf8 into master
Reviewed-on: new-combats.com/game#31
This commit is contained in:
commit
83fcf92ba0
34
.htaccess
34
.htaccess
@ -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
|
||||
|
||||
|
16
AI.php
16
AI.php
@ -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>';
|
||||
}
|
||||
|
@ -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');
|
||||
|
@ -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);
|
||||
|
File diff suppressed because it is too large
Load Diff
@ -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")');
|
||||
|
||||
}
|
||||
|
@ -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
_incl_data/class/ComissionShop.php
Normal file
575
_incl_data/class/ComissionShop.php
Normal 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> ';
|
||||
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>• <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 .= '• Возможных распределений: ' . $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'] .= ' • <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'] .= ' ' . $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>• Часть комплекта: <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'] .= ' • <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'] .= ' ' . $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>• Часть комплекта (подгонка): <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>';
|
||||
}
|
||||
}
|
||||
}
|
@ -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;
|
||||
}
|
||||
|
||||
|
@ -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,
|
||||
]
|
||||
|
@ -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
|
||||
|
13
_incl_data/class/DarksLight2/Training/StepFactory.php
Normal file
13
_incl_data/class/DarksLight2/Training/StepFactory.php
Normal file
@ -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;
|
||||
|
||||
}
|
30
_incl_data/class/DarksLight2/Training/Steps/FirstStep.php
Normal file
30
_incl_data/class/DarksLight2/Training/Steps/FirstStep.php
Normal file
@ -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';
|
||||
}
|
||||
|
||||
}
|
18
_incl_data/class/DarksLight2/Training/TrainingException.php
Normal file
18
_incl_data/class/DarksLight2/Training/TrainingException.php
Normal file
@ -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");
|
||||
}
|
||||
}
|
140
_incl_data/class/DarksLight2/Training/TrainingManager.php
Normal file
140
_incl_data/class/DarksLight2/Training/TrainingManager.php
Normal file
@ -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()
|
||||
{
|
||||
|
||||
}
|
||||
}
|
17
_incl_data/class/DarksLight2/Traits/Singleton.php
Normal file
17
_incl_data/class/DarksLight2/Traits/Singleton.php
Normal file
@ -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
@ -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
@ -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('>', '', $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('"', '', $testEN2);
|
||||
$testEN2 = str_replace(' ', '', $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);
|
||||
}
|
||||
}
|
||||
|
@ -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();
|
||||
}
|
||||
}
|
||||
|
@ -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(
|
||||
|
@ -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();
|
||||
//}
|
@ -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 = '';
|
||||
|
||||
/**
|
||||
|
@ -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 .= 'Вы учавствуете.';
|
||||
}
|
||||
}
|
||||
|
||||
|
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
@ -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 = 'Вы успешно получили задание "' . $pl['name'] . '"';
|
||||
$u->error = 'Вы успешно получили задание "' . $pl['name'] . '"';
|
||||
} 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 = 'Вы успешно получили задание "' . $pl['name'] . '"';
|
||||
$u->error = 'Вы успешно получили задание "' . $pl['name'] . '"';
|
||||
} 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 = 'Вы успешно отказались от задания "' . $pl['name'] . '"';
|
||||
$u->error = 'Вы успешно отказались от задания "' . $pl['name'] . '"';
|
||||
} 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 .= ' • Из "' . $qn['login'] . '" выпадает: ';
|
||||
$t .= ' • Из "' . $qn['login'] . '" выпадает: ';
|
||||
} else {
|
||||
$t .= ' • Из любых ботов выпадает: ';
|
||||
$t .= ' • Из любых ботов выпадает: ';
|
||||
}
|
||||
//$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 .= ' • ';
|
||||
//$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')");
|
||||
}
|
||||
}
|
||||
|
@ -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', 'Ρενς<EFBFBD>από', 'Ρενς<CEBD>απόρκθι'],
|
||||
10 => [10, '10', 'Ξκς<EFBFBD>από', 'Ξκς<CEBA>απόρκθι'],
|
||||
11 => [11, '11', 'Νξ<EFBFBD>από', 'Νξ<CE9D>απόρκθι'],
|
||||
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 = [];
|
||||
|
@ -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);
|
||||
}
|
||||
}
|
||||
|
@ -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>«' . $this->name[$this->info['type']] . '»</h3><br>Начало турнира через ' . $this->u->timeOut($this->info['time'] - time()) . '! ';
|
||||
$r .= '<h3>«' . $this->name[$this->info['type']] . '»</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 .= ' <INPUT class=\'btn_grey\' onClick="location.href=\'main.php?hpregenNowTurnir=1\'" TYPE=button name=tmp value="Восстановить HP и MP">';
|
||||
$r .= '<small><b>Вы участвуете в турнире!</b></small>';
|
||||
$r .= ' <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;
|
||||
|
@ -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];
|
||||
|
File diff suppressed because it is too large
Load Diff
@ -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) {
|
||||
|
@ -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 = ?';
|
||||
|
@ -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;
|
||||
}
|
||||
}
|
||||
|
@ -5,7 +5,7 @@ use Core\Db;
|
||||
class UserStats
|
||||
{
|
||||
/**
|
||||
* Собирает суммы всех бонусов с одетых предметов и активных эфектов.
|
||||
* Собирает суммы всех бонусов с одетых предметов и активных эфектов.
|
||||
* @param int $userId
|
||||
* @param bool $showAll
|
||||
* @return array
|
||||
|
@ -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');
|
||||
|
@ -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 = 'Кто-то обыскал "'.$obj['name'].'" до вас...';
|
||||
$r = 'Кто-то обыскал "'.$obj['name'].'" до вас...';
|
||||
$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);
|
||||
|
@ -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 = 'Кто-то обыскал "'.$obj['name'].'" до вас...';
|
||||
$r = 'Кто-то обыскал "'.$obj['name'].'" до вас...';
|
||||
$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 = 'Вы обнаружили предмет "'.$vad['itm']['name'].'".';
|
||||
$r = 'Вы обнаружили предмет "'.$vad['itm']['name'].'".';
|
||||
}
|
||||
|
||||
unset($vad);
|
||||
|
@ -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 = 'Кто-то обыскал "'.$obj['name'].'" до вас...';
|
||||
$r = 'Кто-то обыскал "'.$obj['name'].'" до вас...';
|
||||
$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 = 'Вы успешно открутили вентиль! (Предмет "Ключииик" был изьят)';
|
||||
$r = 'Вы успешно открутили вентиль! (Предмет "Ключииик" был изьят)';
|
||||
}
|
||||
|
||||
unset($vad);
|
||||
|
@ -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 = 'Кто-то обыскал "'.$obj['name'].'" до вас...';
|
||||
$r = 'Кто-то обыскал "'.$obj['name'].'" до вас...';
|
||||
$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 = 'Вы обнаружили предмет "Гайка".';
|
||||
$r = 'Вы обнаружили предмет "Гайка".';
|
||||
}
|
||||
|
||||
unset($vad);
|
||||
|
@ -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 = 'Вы растворили "'.$vad['pl']['name'].'" в алтаре и произошел взрыв. Алтарь переместил вас в тайную комнату';
|
||||
$r = 'Вы растворили "'.$vad['pl']['name'].'" в алтаре и произошел взрыв. Алтарь переместил вас в тайную комнату';
|
||||
echo '<script>location.href="main.php"</script>';
|
||||
} else {
|
||||
$r = 'Что-то пошло не так, попробуйте позже.';
|
||||
$r = 'Что-то пошло не так, попробуйте позже.';
|
||||
}
|
||||
}elseif( !isset($vad['sp']['id']) ) {
|
||||
$r = 'Для перемещения требуется один из драгоценных камней';
|
||||
$r = 'Для перемещения требуется один из драгоценных камней';
|
||||
}
|
||||
unset($vad);
|
||||
}
|
||||
|
@ -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> óãîäèë â ëîâóøêó îñòàâëåííóþ â "'.$obj['name'].'". <b>-'.$vad['min_hp'].'</b> ['.floor($u->stats['hpNow']).'/'.round($u->stats['hpAll']).']';
|
||||
$vad['text'] = '[img[items/trap.gif]] <b>'.$u->info['login'].'</b> угодил в ловушку оставленную в "'.$obj['name'].'". <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> óãîäèëà â ëîâóøêó îñòàâëåííóþ â "'.$obj['name'].'". <b>-'.$vad['min_hp'].'</b> ['.floor($u->stats['hpNow']).'/'.round($u->stats['hpAll']).']';
|
||||
$vad['text'] = '[img[items/trap.gif]] <b>'.$u->info['login'].'</b> угодила в ловушку оставленную в "'.$obj['name'].'". <b>-'.$vad['min_hp'].'</b> ['.floor($u->stats['hpNow']).'/'.round($u->stats['hpAll']).']';
|
||||
}
|
||||
$this->sys_chat($vad['text']);
|
||||
$u->info['hpNow'] = $u->stats['hpNow'];
|
||||
|
@ -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 = 'Обыскав "'.$obj['name'].'" вы обнаружили предмет "Амброзия подмастерья Владык"';
|
||||
$r = 'Обыскав "'.$obj['name'].'" вы обнаружили предмет "Амброзия подмастерья Владык"';
|
||||
}
|
||||
unset($vad);
|
||||
}
|
||||
|
@ -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 = 'Кто-то обыскал "'.$obj['name'].'" до вас...';
|
||||
$r = 'Кто-то обыскал "'.$obj['name'].'" до вас...';
|
||||
$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 = 'Обыскав "'.$obj['name'].'" вы обнаружили "'.$vad['items']['name'].'"';
|
||||
$r = 'Обыскав "'.$obj['name'].'" вы обнаружили "'.$vad['items']['name'].'"';
|
||||
$this->pickitem($obj,$vad['items']['id'],$u->info['id'],'',$vad['dn_delete'][$vad['items']['id']]);
|
||||
}
|
||||
|
||||
|
@ -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 = 'Вы создали предмет "'.$vad['itm']['name'].'"! Расплавив ресурсы ...';
|
||||
$r = 'Вы создали предмет "'.$vad['itm']['name'].'"! Расплавив ресурсы ...';
|
||||
if($u->info['sex'] == 0) {
|
||||
$vad['text'] = '<b>'.$u->info['login'].'</b> создал предмет "'.$vad['itm']['name'].'" при помощи "'.$obj['name'].'".';
|
||||
$vad['text'] = '<b>'.$u->info['login'].'</b> создал предмет "'.$vad['itm']['name'].'" при помощи "'.$obj['name'].'".';
|
||||
}else{
|
||||
$vad['text'] = '<b>'.$u->info['login'].'</b> создала предмет "'.$vad['itm']['name'].'" при помощи "'.$obj['name'].'".';
|
||||
$vad['text'] = '<b>'.$u->info['login'].'</b> создала предмет "'.$vad['itm']['name'].'" при помощи "'.$obj['name'].'".';
|
||||
}
|
||||
$this->sys_chat($vad['text']);
|
||||
}
|
||||
|
@ -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 = 'Вы использовали "'.$obj['name'].'" и разбили "Сущность" на две части';
|
||||
$r = 'Вы использовали "'.$obj['name'].'" и разбили "Сущность" на две части';
|
||||
}elseif( !isset($vad['sp']['id']) ) {
|
||||
$r = 'Для использования необходим предмет "Сущность Ресурса"';
|
||||
$r = 'Для использования необходим предмет "Сущность Ресурса"';
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -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);
|
||||
|
@ -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 = 'Для прохода требуется предмет "Мерцающий ключ №3"';
|
||||
$r = 'Для прохода требуется предмет "Мерцающий ключ №3"';
|
||||
}
|
||||
unset($vad);
|
||||
}
|
||||
|
@ -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 = 'Вы уже обыскали "'.$obj['name'].'"...';
|
||||
$r = 'Вы уже обыскали "'.$obj['name'].'"...';
|
||||
$vad['go'] = false;
|
||||
}elseif( $vad['test1'][0] > 1 ) {
|
||||
$r = 'Кто-то обыскал "'.$obj['name'].'" раньше вас...';
|
||||
$r = 'Кто-то обыскал "'.$obj['name'].'" раньше вас...';
|
||||
$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 = 'Вы не нашли ничего полезного...';
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -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 = 'Вы уже обыскали "'.$obj['name'].'"...';
|
||||
$r = 'Вы уже обыскали "'.$obj['name'].'"...';
|
||||
$vad['go'] = false;
|
||||
}elseif( $vad['test1'][0] > 1 ) {
|
||||
$r = 'Кто-то обыскал "'.$obj['name'].'" раньше вас...';
|
||||
$r = 'Кто-то обыскал "'.$obj['name'].'" раньше вас...';
|
||||
$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 = 'Вы не нашли ничего полезного...';
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -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 = 'Кто-то обыскал "'.$obj['name'].'" раньше вас...';
|
||||
$r = 'Кто-то обыскал "'.$obj['name'].'" раньше вас...';
|
||||
$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 = 'Вы не нашли ничего полезного...';
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -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 = 'Кто-то обыскал "'.$obj['name'].'" до вас...';
|
||||
$r = 'Кто-то обыскал "'.$obj['name'].'" до вас...';
|
||||
$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 = 'Обыскав "'.$obj['name'].'" вы ничего не обнаружили...';
|
||||
$r = 'Обыскав "'.$obj['name'].'" вы ничего не обнаружили...';
|
||||
}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 = 'Обыскав "'.$obj['name'].'" вы обнаружили "'.$vad['items']['name'].'"';
|
||||
$r = 'Обыскав "'.$obj['name'].'" вы обнаружили "'.$vad['items']['name'].'"';
|
||||
$this->pickitem($obj,$vad['items']['id'],0,'',$vad['dn_delete'][$vad['items']['id']]);
|
||||
}
|
||||
}
|
||||
|
@ -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 = 'Кто-то обыскал "'.$obj['name'].'" до вас...';
|
||||
$r = 'Кто-то обыскал "'.$obj['name'].'" до вас...';
|
||||
$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 = 'Обыскав "'.$obj['name'].'" вы ничего не обнаружили...';
|
||||
$r = 'Обыскав "'.$obj['name'].'" вы ничего не обнаружили...';
|
||||
}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 = 'Обыскав "'.$obj['name'].'" вы обнаружили "'.$vad['items']['name'].'"';
|
||||
$r = 'Обыскав "'.$obj['name'].'" вы обнаружили "'.$vad['items']['name'].'"';
|
||||
$this->pickitem($obj,$vad['items']['id'],0,'',$vad['dn_delete'][$vad['items']['id']]);
|
||||
}
|
||||
}
|
||||
|
@ -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 = 'Кто-то обыскал "'.$obj['name'].'" до вас...';
|
||||
$r = 'Кто-то обыскал "'.$obj['name'].'" до вас...';
|
||||
$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 = 'Обыскав "'.$obj['name'].'" вы обнаружили "Лучистое серебро"';
|
||||
$r = 'Обыскав "'.$obj['name'].'" вы обнаружили "Лучистое серебро"';
|
||||
$this->pickitem($obj,895,$u->info['id']);
|
||||
}else{
|
||||
$r = 'Обыскав "'.$obj['name'].'" вы обнаружили "Серебро"';
|
||||
$r = 'Обыскав "'.$obj['name'].'" вы обнаружили "Серебро"';
|
||||
$this->pickitem($obj,875,$u->info['id']);
|
||||
}
|
||||
}else{
|
||||
$r = 'Вы ничего не смогли найти...';
|
||||
$r = 'Вы ничего не смогли найти...';
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -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> угодил в ловушку оставленную в "'.$obj['name'].'". <b>-'.$vad['min_hp'].'</b> ['.floor($u->stats['hpNow']).'/'.round($u->stats['hpAll']).']';
|
||||
$vad['text'] = '[img[items/trap.gif]] <b>'.$u->info['login'].'</b> угодил в ловушку оставленную в "'.$obj['name'].'". <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> угодила в ловушку оставленную в "'.$obj['name'].'". <b>-'.$vad['min_hp'].'</b> ['.floor($u->stats['hpNow']).'/'.round($u->stats['hpAll']).']';
|
||||
$vad['text'] = '[img[items/trap.gif]] <b>'.$u->info['login'].'</b> угодила в ловушку оставленную в "'.$obj['name'].'". <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 = 'Вы не нашли ничего полезного...';
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -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 = 'Вы переместились при помощи "Линза Портала" на другую сторону';
|
||||
$r = 'Вы переместились при помощи "Линза Портала" на другую сторону';
|
||||
echo '<script>location.href="main.php"</script>';
|
||||
} else {
|
||||
$r = 'Что-то пошло не так, попробуйте позже.';
|
||||
$r = 'Что-то пошло не так, попробуйте позже.';
|
||||
}
|
||||
}elseif( !isset($vad['sp']['id']) ) {
|
||||
$r = 'Для перемещения требуется "Линза Портала"';
|
||||
$r = 'Для перемещения требуется "Линза Портала"';
|
||||
}
|
||||
unset($vad);
|
||||
}
|
||||
|
@ -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);
|
||||
|
@ -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);
|
||||
|
@ -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 = 'Вы уже обыскали "'.$obj['name'].'"...';
|
||||
$r = 'Вы уже обыскали "'.$obj['name'].'"...';
|
||||
$vad['go'] = false;
|
||||
}elseif( $vad['test1'][0] > 1 ) {
|
||||
$r = 'Кто-то обыскал "'.$obj['name'].'" раньше вас...';
|
||||
$r = 'Кто-то обыскал "'.$obj['name'].'" раньше вас...';
|
||||
$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 = 'Вы не нашли ничего полезного...';
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -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 = 'Вы уже нажали на "'.$obj['name'].'"...';
|
||||
$r = 'Вы уже нажали на "'.$obj['name'].'"...';
|
||||
$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 = 'Нажав на "'.$obj['name'].'" вы получили "'.$vad['items']['name'].'".';
|
||||
$r = 'Нажав на "'.$obj['name'].'" вы получили "'.$vad['items']['name'].'".';
|
||||
$this->pickitem($obj,$vad['items']['id'],0,'',$vad['dn_delete'][$vad['items']['id']]);
|
||||
}
|
||||
|
||||
|
@ -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');
|
||||
|
@ -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');
|
||||
|
@ -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('','','','','','В нашем мире появился новый игрок "<b>' . $u->info['login'] . '</b>"! '.$humor[rand(0,count($humor)-1)].'',time(),6,0,0,0,1,0);
|
||||
$u->send('','','','','','В нашем мире появился новый игрок "<b>' . $u->info['login'] . '</b>"! '.$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();
|
||||
|
@ -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');
|
||||
|
@ -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 = 'Вы обнаружили "'.$vad['items']['name'].'"';
|
||||
$r = 'Вы обнаружили "'.$vad['items']['name'].'"';
|
||||
$this->pickitem($obj, $vad['items']['id'], 1,'',true, 1);
|
||||
}
|
||||
unset($vad);
|
||||
|
@ -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 = 'Вы обнаружили "'.$vad['items']['name'].'"';
|
||||
$r = 'Вы обнаружили "'.$vad['items']['name'].'"';
|
||||
$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'].'")');
|
||||
|
@ -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);
|
||||
}
|
||||
|
@ -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 = 'Вы использовали "'.$obj['name'].'" и собрали "Ключ Портала" из трех частей...';
|
||||
$r = 'Вы использовали "'.$obj['name'].'" и собрали "Ключ Портала" из трех частей...';
|
||||
} 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 .= 'Вы использовали "'.$obj['name'].'" и собрали "Отпирающая руна" из пяти частей...';
|
||||
$r .= 'Вы использовали "'.$obj['name'].'" и собрали "Отпирающая руна" из пяти частей...';
|
||||
} else {
|
||||
$vad['go_r'] == false;
|
||||
}
|
||||
if( $vad['go_r']==false && $vad['go_p']==false ) {
|
||||
$r = 'Ничего не получилось... ';
|
||||
$r = 'Ничего не получилось... ';
|
||||
}
|
||||
|
||||
unset($vad);
|
||||
|
@ -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 = 'Для прохода требуется предмет "Ключ от Сокровищницы"';
|
||||
$r = 'Для прохода требуется предмет "Ключ от Сокровищницы"';
|
||||
}
|
||||
unset($vad);
|
||||
}
|
||||
|
@ -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 = 'Для прохода требуется предмет "Отпирающая руна"';
|
||||
$r = 'Для прохода требуется предмет "Отпирающая руна"';
|
||||
}
|
||||
unset($vad);
|
||||
}
|
||||
|
@ -9,17 +9,17 @@ if(isset($s[1]) && $s[1] == '12/fontan1') {
|
||||
if(isset($vad['bottle']['id'])) {
|
||||
$vad['go'] = true;
|
||||
} else {
|
||||
$r = 'Для использования требуется "Пустая Бутылка"';
|
||||
$r = 'Для использования требуется "Пустая Бутылка"';
|
||||
}
|
||||
} else {
|
||||
$r = 'Для использования требуется "Мерцающий Ключ №1"';
|
||||
$r = 'Для использования требуется "Мерцающий Ключ №1"';
|
||||
}
|
||||
} 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 = 'Вы воспользовались "Ключ №1". Опустив пустую бутылку в фонтан вы наполнили её.';
|
||||
$r = 'Вы воспользовались "Ключ №1". Опустив пустую бутылку в фонтан вы наполнили её.';
|
||||
$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);
|
||||
|
@ -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);
|
||||
}
|
||||
|
@ -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);
|
||||
}
|
||||
|
@ -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);
|
||||
|
@ -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 = 'Кто-то обыскал "'.$obj['name'].'" раньше вас...';
|
||||
$r = 'Кто-то обыскал "'.$obj['name'].'" раньше вас...';
|
||||
$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 = 'Вы уже обыскали "'.$obj['name'].'"...';
|
||||
$r = 'Вы уже обыскали "'.$obj['name'].'"...';
|
||||
$vad['go'] = false;
|
||||
}elseif( $vad['test1'][0] > 5 ) {
|
||||
$r = 'Кто-то обыскал "'.$obj['name'].'" раньше вас...';
|
||||
$r = 'Кто-то обыскал "'.$obj['name'].'" раньше вас...';
|
||||
$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 = 'Вы уже обыскали "'.$obj['name'].'"...';
|
||||
$r = 'Вы уже обыскали "'.$obj['name'].'"...';
|
||||
$vad['go'] = false;
|
||||
}elseif( $vad['test1'][0] > 5 ) {
|
||||
$r = 'Кто-то обыскал "'.$obj['name'].'" раньше вас...';
|
||||
$r = 'Кто-то обыскал "'.$obj['name'].'" раньше вас...';
|
||||
$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 = 'Вы уже обыскали "'.$obj['name'].'"...';
|
||||
$r = 'Вы уже обыскали "'.$obj['name'].'"...';
|
||||
$vad['go'] = false;
|
||||
}elseif( $vad['test1'][0] > 5 ) {
|
||||
$r = 'Кто-то обыскал "'.$obj['name'].'" раньше вас...';
|
||||
$r = 'Кто-то обыскал "'.$obj['name'].'" раньше вас...';
|
||||
$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 = 'Вы уже обыскали "'.$obj['name'].'"...';
|
||||
$r = 'Вы уже обыскали "'.$obj['name'].'"...';
|
||||
$vad['go'] = false;
|
||||
}elseif( $vad['test1'][0] > 5 ) {
|
||||
$r = 'Кто-то обыскал "'.$obj['name'].'" раньше вас...';
|
||||
$r = 'Кто-то обыскал "'.$obj['name'].'" раньше вас...';
|
||||
$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 = 'Вы уже обыскали "'.$obj['name'].'"...';
|
||||
$r = 'Вы уже обыскали "'.$obj['name'].'"...';
|
||||
$vad['go'] = false;
|
||||
}elseif( $vad['test1'][0] > 0 ) {
|
||||
$r = 'Кто-то обыскал "'.$obj['name'].'" раньше вас...';
|
||||
$r = 'Кто-то обыскал "'.$obj['name'].'" раньше вас...';
|
||||
$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 = 'Вы уже обыскали "'.$obj['name'].'"...';
|
||||
$r = 'Вы уже обыскали "'.$obj['name'].'"...';
|
||||
$vad['go'] = false;
|
||||
} elseif( $vad['test1'][0] > 5 ) {
|
||||
$r = 'Кто-то обыскал "'.$obj['name'].'" раньше вас...';
|
||||
$r = 'Кто-то обыскал "'.$obj['name'].'" раньше вас...';
|
||||
$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 = 'Вы уже обыскали "'.$obj['name'].'"...';
|
||||
$r = 'Вы уже обыскали "'.$obj['name'].'"...';
|
||||
$vad['go'] = false;
|
||||
}elseif( $vad['test1'][0] > 5 ) {
|
||||
$r = 'Кто-то обыскал "'.$obj['name'].'" раньше вас...';
|
||||
$r = 'Кто-то обыскал "'.$obj['name'].'" раньше вас...';
|
||||
$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 = 'Вы уже обыскали "'.$obj['name'].'"...';
|
||||
$r = 'Вы уже обыскали "'.$obj['name'].'"...';
|
||||
$vad['go'] = false;
|
||||
}elseif( $vad['test1'][0] > 5 ) {
|
||||
$r = 'Кто-то обыскал "'.$obj['name'].'" раньше вас...';
|
||||
$r = 'Кто-то обыскал "'.$obj['name'].'" раньше вас...';
|
||||
$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 = 'Вы уже обыскали "'.$obj['name'].'"...';
|
||||
$r = 'Вы уже обыскали "'.$obj['name'].'"...';
|
||||
$vad['go'] = false;
|
||||
}elseif( $vad['test1'][0] > 5 ) {
|
||||
$r = 'Кто-то обыскал "'.$obj['name'].'" раньше вас...';
|
||||
$r = 'Кто-то обыскал "'.$obj['name'].'" раньше вас...';
|
||||
$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 = 'Вы уже обыскали "'.$obj['name'].'"...';
|
||||
$r = 'Вы уже обыскали "'.$obj['name'].'"...';
|
||||
$vad['go'] = false;
|
||||
}elseif( $vad['test1'][0] > 5 ) {
|
||||
$r = 'Кто-то обыскал "'.$obj['name'].'" раньше вас...';
|
||||
$r = 'Кто-то обыскал "'.$obj['name'].'" раньше вас...';
|
||||
$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 = 'Вы не нашли ничего полезного...';
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -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
Loading…
Reference in New Issue
Block a user