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:
Ivor Barhansky 2023-01-11 13:51:55 +00:00
commit 83fcf92ba0
3588 changed files with 36001 additions and 397318 deletions

View File

@ -1,12 +1,4 @@
DefaultLanguage ru
AddDefaultCharset windows-1251
<IfModule mod_php5.c>
php_value session.use_trans_sid 0
php_value register_globals 1
<Directory "/usr/local/bin/php">
php_admin_value open_basedir none
</Directory>
</IfModule>
<IfModule mod_rewrite.c>
#Options +FollowSymLinks -MultiViews
@ -24,15 +16,6 @@ RewriteCond %{HTTP:HTTP_PC_REMOTE_ADDR} !^$ [OR]
RewriteCond %{HTTP:HTTP_CLIENT_IP} !^$
RewriteRule (.+) https://new-combats.com/proxy/
#RewriteCond %{HTTP_HOST} ^new-combats\.ru [NC]
#RewriteCond %{SERVER_PORT} 80
#RewriteRule ^(.*)$ https://new-combats.com/$1 [R,L]
#RewriteCond %{HTTP_HOST} ^demonscity\.ru [NC]
#RewriteCond %{SERVER_PORT} 80
#RewriteRule ^(.*)$ https://new-combats.com/$1 [R,L]
#RewriteCond %{HTTP_HOST} ^new-combats\.com [NC]
RewriteCond %{SERVER_PORT} 80
RewriteRule ^(.*)$ https://new-combats.com/$1 [R,L]
@ -59,9 +42,6 @@ RewriteRule ^rating_pers/(.*)/?$ /reting_pers.php?$1 [L]
RewriteRule ^rating_clans/?$ /reting_clans.php [L]
RewriteRule ^rating_clans/(.*)/?$ /reting_clans.php?$1 [L]
#RewriteRule ^support/(.*)/?$ /support/index.php?$1 [L]
#RewriteRule ^support/?$ /support/index.php [L]
RewriteRule ^clan/(.*)/?$ /clans_inf.php?$1 [L]
RewriteRule ^clan/?$ /clans_inf.php [L]
@ -70,18 +50,12 @@ RewriteRule ^ruins/?$ /ruins.php [L]
RewriteRule ^exp/(.*)/?$ /exp.php?$1 [L]
RewriteRule ^exp/?$ /exp.php [L]
#
#
RewriteRule ^news/(.*)/?$ /n/$1 [R=301,L]
RewriteRule ^news/?$ /n [R=301,L]
RewriteRule ^n/(.*)/?$ /news_script/index.php?$1 [L]
RewriteRule ^n/?$ /news_script/index.php [L]
#
#
#RewriteRule ^news/(.*)/?$ /news_script/index.php?$1 [L]
#RewriteRule ^news/?$ /news_script/index.php [L]
RewriteRule ^forum/(.*)/?$ /forum_script/index.php?$1 [L]
RewriteRule ^forum/?$ /forum_script/index.php [L]
@ -101,10 +75,7 @@ RewriteRule ^rating/?$ /rating_script/index.php [L]
RewriteRule ^item/(.*)/?$ /items_info.php?$1 [L]
RewriteRule ^item/?$ /items_info.php [L]
RewriteRule ^repass/?$ /repass.php [L]
#
#
#
#
RewriteRule ^mail/(.*)/?$ /mailconf.php?$1 [L]
RewriteRule ^register/?$ /register.php [L]
@ -126,4 +97,3 @@ RewriteRule . /index.php [L]
Order Allow,Deny
Allow from all

1
1
View File

@ -1 +0,0 @@
---

16
AI.php
View File

@ -2,15 +2,15 @@
/*
Ядро для обработки данных.
Обработка поединков, обработка заявок, обработка ботов, обработка пещер, обработка турниров, обработка временных генераций
Ядро для обработки данных.
Обработка поединков, обработка заявок, обработка ботов, обработка пещер, обработка турниров, обработка временных генераций
*/
if (isset($_GET['m1'])) {
define('GAME', true);
setlocale(LC_CTYPE, "ru_RU.CP1251");
include_once '_incl_data/__config.php';
include_once '_incl_data/class/__db_connect.php';
@ -22,13 +22,13 @@ if (isset($_GET['m1'])) {
} elseif (isset($_GET['bk1'])) {
define('GAME', true);
setlocale(LC_CTYPE, "ru_RU.CP1251");
include('_incl_data/__config.php');
include('_incl_data/class/__db_connect.php');
$u = User::start();
$ins = 'Вещи БК-1:<hr>';
$ins = 'Вещи БК-1:<hr>';
$sp = mysql_query('SELECT * FROM `items_main` WHERE `geni` = 1');
while ($pl = mysql_fetch_array($sp)) {
@ -149,7 +149,7 @@ if (!isset($_GET['robot']) && UserIp::get() != $_SERVER['SERVER_ADDR'] && UserIp
const GAME = true;
setlocale(LC_CTYPE, "ru_RU.CP1251");
include('_incl_data/__config.php');
include('_incl_data/class/__db_connect.php');
@ -216,7 +216,7 @@ while ($pl = mysql_fetch_array($sp)) {
echo '*';
}
echo '+';
echo '[' . $pl['login'] . '] -> Действие: ' . $pl['ipreg'] . ' , ожидаем: ' . ($pl['timeMain'] - time(
)) . ' сек., заявка: ' . $pl['zv'] . ', поединок: ' . $pl['battle'] . '';
echo '[' . $pl['login'] . '] -> Действие: ' . $pl['ipreg'] . ' , ожидаем: ' . ($pl['timeMain'] - time(
)) . ' сек., заявка: ' . $pl['zv'] . ', поединок: ' . $pl['battle'] . '';
echo '<hr>';
}

View File

@ -5,7 +5,6 @@ use Insallah\Tournaments\Tournament;
error_reporting(E_ALL ^ E_NOTICE);
ini_set('display_errors', 'Off');
setlocale(LC_CTYPE, "ru_RU.CP1251");
date_default_timezone_set('Europe/Moscow');
header('Cache-Control: no-cache, no-store, must-revalidate');

View File

@ -26,6 +26,7 @@ spl_autoload_register(function (string $classname) {
$classMap = [
'NewCombats' => __DIR__ . '/class/',
'Insallah' => __DIR__ . '/class/Insallah/',
'DarksLight2' => __DIR__ . '/class/DarksLight2/',
];
$parts = explode('\\', $classname);
$namespace = array_shift($parts);

File diff suppressed because it is too large Load Diff

View File

@ -21,7 +21,7 @@ class BotLogic
static function battle_priems()
{
//используем приемы в бою
//используем приемы в бою
if (self::$st['hpNow'] > 0 && self::$bot['battle'] > 0) {
$pr = explode('|', self::$bot['priems']);
@ -36,7 +36,7 @@ class BotLogic
$i = 0;
while ($i < count($pr)) {
if ($rz[$i] < 1 && $pr[$i] > 0) {
//Можно использовать прием, подключаем логику
//Можно использовать прием, подключаем логику
BotPriemLogic::start($i, $pr[$i]);
}
$i++;
@ -48,15 +48,15 @@ class BotLogic
static function clear_bot()
{
//Очистка бота, обнуляем его до [0], удаляем эффекты, предметы и т.д, а текущему ставим логин delete
//Очистка бота, обнуляем его до [0], удаляем эффекты, предметы и т.д, а текущему ставим логин delete
//Удаляем сообщения в чате
//Удаляем сообщения в чате
mysql_query('DELETE FROM `chat` WHERE `to` = "' . self::$bot['login'] . '"');
//Удаляем шмотки и эффекты
//Удаляем шмотки и эффекты
mysql_query('DELETE FROM `items_users` WHERE `uid` = "' . self::$bot['id'] . '"');
mysql_query('DELETE FROM `eff_users` WHERE `uid` = "' . self::$bot['id'] . '"');
//Удаляем статы и поле в юзерс
//Удаляем статы и поле в юзерс
mysql_query('DELETE FROM `users` WHERE `id` = "' . self::$bot['id'] . '" LIMIT 1');
mysql_query('DELETE FROM `stats` WHERE `id` = "' . self::$bot['id'] . '" LIMIT 1');
mysql_query('DELETE FROM `online` WHERE `uid` = "' . self::$bot['id'] . '" LIMIT 1');
@ -80,13 +80,13 @@ class BotLogic
}
}
//ПРоверка на файтрум
//ПРоверка на файтрум
static function test_fr($id, $city = 'capitalcity')
{
return $city != 'capitalcity' || $id == 0 || $id == 2 || $id == 4 || $id == 5 || $id == 7 || $id == 377;
}
//Действия бота вне боя
//Действия бота вне боя
static function actions()
{
@ -94,9 +94,9 @@ class BotLogic
if (self::$bot['battle'] == 0 && self::$bot['zv'] == 0 && self::$bot['pass'] == 'saintlucia') {
//Можно: сменить фулл, перейти в другую комнату, входить наймом, делать бафы
//Можно: сменить фулл, перейти в другую комнату, входить наймом, делать бафы
//Переходим в другую комнату
//Переходим в другую комнату
if (true == false && self::$bot['a1'] != 0 && self::$bot['a1'] != self::$bot['room']) {
self::_loc(self::$bot['a1']);
@ -116,22 +116,22 @@ class BotLogic
mysql_query('UPDATE `stats` SET `exp` = "3500000" WHERE `id` = "' . self::$bot['id'] . '" LIMIT 1');
}
//Действие в комнате
//Магазин
//Покупаем кристалл вечности
//Действие в комнате
//Магазин
//Покупаем кристалл вечности
if (self::$bot['room'] == 10 && self::$bot['level'] == 5 && self::$bot['exp'] >= 12499) {
$cr = mysql_fetch_array(mysql_query('SELECT `id` FROM `items_users` WHERE `item_id` = "1204" AND `uid` = "' . self::$bot['id'] . '" AND `delete` = "0" LIMIT 1'));
if (!isset($cr['id'])) {
//Покупаем кристалл
//Покупаем кристалл
$u->addItem(1204, self::$bot['id']);
}
}
//Переходим в комнату для сражений
//Переходим в комнату для сражений
self::_loc(self::_loc_zv());
}
}
//Если бот уже набрал опыт для перехода на 6-ой
//Если бот уже набрал опыт для перехода на 6-ой
if (self::$bot['level'] == 5 && self::$bot['exp'] >= 12499) {
$cr = mysql_fetch_array(mysql_query('SELECT `id` FROM `items_users` WHERE `item_id` = "1204" AND `uid` = "' . self::$bot['id'] . '" AND `delete` = "0" LIMIT 1'));
if (!isset($cr['id'])) {
@ -139,12 +139,12 @@ class BotLogic
}
}
//Похоже что боту пора сменить комплект ))
//Похоже что боту пора сменить комплект ))
if (self::$bot['clss'] == 0) {
//Выбираем новый класс и шмотки :)
//Выбираем новый класс и шмотки :)
//Меняем класс
//Меняем класс
self::$bot['clss'] = rand(1, 4);
$x = mysql_fetch_array(mysql_query('SELECT COUNT(*) FROM `a_bot_tree` WHERE `level` = "' . (self::$bot['level']) . '" '));
@ -154,7 +154,7 @@ class BotLogic
if ($x[0] > 1) {
$x = rand(1, $x[0]);
//выбираем 1 из нескольких
//выбираем 1 из нескольких
$da = ['ASC', 'DESC', 'DESC', 'ASC'];
$da = $da[rand(0, 5)];
$com = mysql_fetch_array(mysql_query('SELECT * FROM `a_bot_tree` WHERE `level` = "' . (self::$bot['level']) . '" ORDER BY `id` ' . $da . ' LIMIT ' . ($x - 1) . ',1'));
@ -172,12 +172,12 @@ class BotLogic
mysql_query('UPDATE `users` SET `clss` = "' . self::$bot['clss'] . '" WHERE `id` = "' . self::$bot['id'] . '" LIMIT 1');
/* Забираем старые шмотки и эффекты */
/* Забираем старые шмотки и эффекты */
mysql_query('UPDATE `items_users` SET `delete` = "' . time() . '" WHERE `gift` = "" AND `item_id` != "1204" AND `uid` = "' . self::$bot['id'] . '" AND `delete` = "0"');
mysql_query('UPDATE `items_users` SET `iznosNOW` = "0" WHERE `uid` = "' . self::$bot['id'] . '" AND `delete` = "0"');
mysql_query('UPDATE `eff_users` SET `delete` = "' . time() . '" WHERE `uid` = "' . self::$bot['id'] . '" AND `delete` = "0"');
/* Обновляем статы и приемы */
/* Обновляем статы и приемы */
if ($com['pr'] == '') {
$i = 1;
@ -193,7 +193,7 @@ class BotLogic
$i = 1;
while ($i <= 20) {
if ($com['e' . $i] > 0) {
//Выдаем и надеваем предмет
//Выдаем и надеваем предмет
//$it = $u->addItem($com['e'.$i],self::$bot['id']);
$eff = mysql_fetch_array(mysql_query('SELECT * FROM `eff_main` WHERE `id2` = "' . $com['e' . $i] . '" LIMIT 1'));
mysql_query('INSERT INTO `eff_users` (`overType`,`id_eff`,`uid`,`name`,`timeUse`,`data`,`no_Ace`) VALUES ("' . $eff['oneType'] . '","' . $eff['id2'] . '","' . self::$bot['id'] . '","' . $eff['mname'] . '","' . (time() + 9640000) . '","' . $eff['mdata'] . '","' . $eff['noAce'] . '")');
@ -204,7 +204,7 @@ class BotLogic
$i = 1;
while ($i <= 20) {
if ($com['w' . $i] > 0) {
//Выдаем и надеваем предмет
//Выдаем и надеваем предмет
$it = $u->addItem($com['w' . $i], self::$bot['id']);
$eff1 = mysql_fetch_array(mysql_query('SELECT * FROM `items_shop` WHERE `item_id` = "' . $com['w' . $i] . '" LIMIT 1'));
if ($it > 0) {
@ -217,7 +217,7 @@ class BotLogic
}
}
//если бот уже 1-ый уровень, а сидит в новичках :) кидаем его в залы
//если бот уже 1-ый уровень, а сидит в новичках :) кидаем его в залы
if (self::$bot['city'] == 'capitalcity' && self::$bot['level'] < 2 && self::$bot['room'] == 0 && self::$bot['a1'] == 0) {
self::_loc(self::_loc_zv());
}
@ -226,7 +226,7 @@ class BotLogic
public $bot_last_action = [];
//Включаем логику бота
//Включаем логику бота
static function start($id)
{
if (!isset($bot_last_action[$id])) {
@ -238,12 +238,12 @@ class BotLogic
self::$st = $u->getStats(self::$bot, 0);
//Заходим ботом в онлайн
//Заходим ботом в онлайн
self::_online();
if (self::$bot['battle'] > 0) {
//Действия бота в поединке
//Действия бота в поединке
self::$btl = mysql_fetch_array(mysql_query('SELECT * FROM `battle` WHERE `id` = "' . mysql_real_escape_string(self::$bot['battle']) . '" AND `team_win` = "-1" LIMIT 1'));
if (isset(self::$btl['id'])) {
@ -252,16 +252,16 @@ class BotLogic
$a1 = mysql_fetch_array(mysql_query('SELECT `id`,`uid1`,`uid2`,`time` FROM `battle_act` WHERE `battle` = "' . self::$btl['id'] . '" AND `uid1` = "' . self::$bot['id'] . '" ORDER BY `time` ASC LIMIT 1'));
//Проверяем возможность использования приемов и делаем список что использовать
//используем приемы
//Проверяем возможность использования приемов и делаем список что использовать
//используем приемы
self::battle_priems();
//Бот сделал удар, но никто не ответил, проверяем таймаут и если что заходим
//Бот сделал удар, но никто не ответил, проверяем таймаут и если что заходим
if (isset($a1['id']) && $a1['time'] + self::$btl['timeout'] < time()) {
$go_bot = true;
}
//ТУТ test
//ТУТ test
$a2 = mysql_fetch_array(mysql_query('SELECT `id`,`uid1`,`uid2`,`time` FROM `battle_act` WHERE `battle` = "' . self::$btl['id'] . '" AND `uid2` = "' . self::$bot['id'] . '" ORDER BY `time` ASC LIMIT 1'));
if (isset($a2['uid1'])) {
mysql_query('UPDATE `stats` SET `enemy` = "' . $a2['uid1'] . '" WHERE `id` = "' . self::$bot['id'] . '" LIMIT 1');
@ -270,41 +270,41 @@ class BotLogic
if (isset($a3['uid2'])) {
mysql_query('UPDATE `stats` SET `enemy` = "' . $a3['uid2'] . '" WHERE `id` = "' . self::$bot['id'] . '" LIMIT 1');
}
//Размен с противником
//Размен с противником
self::$enemy = mysql_fetch_array(mysql_query('SELECT * FROM `stats` WHERE `id` = "' . self::$bot['enemy'] . '" LIMIT 1'));
} else {
//Заходим на персонажа
//Заходим на персонажа
self::inuser_go_btl(self::$bot);
//Поединок уже завершился, выкидываем из боя
//Поединок уже завершился, выкидываем из боя
self::$bot['battle'] = 0;
mysql_query('UPDATE `users` SET `battle` = "' . self::$bot['battle'] . '" WHERE `id` = "' . mysql_real_escape_string(self::$bot['id']) . '" LIMIT 1 ');
}
} else {
//Действия бота вне поединка
//Действия бота вне поединка
if (self::$bot['timeMain'] < time()) {
mysql_query('UPDATE `chat` SET `time` = "' . time() . '" WHERE `to` = "' . self::$bot['login'] . '" AND `time` = "-1"');
//Действие возможно произвести
//Действие возможно произвести
if (self::$bot['ipreg'] == 1 || self::$bot['ipreg'] == 2 || self::$bot['ipreg'] == 4) {
//Принимаем только хаоты
//Принимаем только хаоты
self::$bot['ipreg'] = 3;
}
if (self::$bot['ipreg'] == 5) {
//Подаем только хаоты
//Подаем только хаоты
self::$bot['ipreg'] = 7;
}
//
if (self::$bot['ipreg'] == 0 || !self::test_fr(self::$bot['room'])) {
//Обновляем эффекты
//Обновляем эффекты
$com = mysql_fetch_array(mysql_query('SELECT * FROM `a_bot_tree` WHERE `level` = "' . (self::$bot['level']) . '" LIMIT 1'));
if (isset($com['id'])) {
$eft = mysql_fetch_array(mysql_query('SELECT `id` FROM `eff_users` WHERE `uid` = "' . self::$bot['id'] . '" AND `delete` = "0" LIMIT 1'));
@ -313,7 +313,7 @@ class BotLogic
$i = 1;
while ($i <= 20) {
if ($com['e' . $i] > 0) {
//Выдаем и надеваем предмет
//Выдаем и надеваем предмет
//$it = $u->addItem($com['e'.$i],self::$bot['id']);
$eff = mysql_fetch_array(mysql_query('SELECT * FROM `eff_main` WHERE `id2` = "' . $com['e' . $i] . '" LIMIT 1'));
mysql_query('INSERT INTO `eff_users` (`overType`,`id_eff`,`uid`,`name`,`timeUse`,`data`,`no_Ace`) VALUES ("' . $eff['oneType'] . '","' . $eff['id2'] . '","' . self::$bot['id'] . '","' . $eff['mname'] . '","' . (time() + 86400 * 7) . '","' . $eff['mdata'] . '","' . $eff['noAce'] . '")');
@ -324,25 +324,25 @@ class BotLogic
}
if (self::$bot['level'] >= 13 && self::$bot['clan'] == 0 && self::$bot['align'] == 0) {
//обнуляем бота
//обнуляем бота
self::clear_bot();
}
//Только-что из поединка, хиляется
//Только-что из поединка, хиляется
if (!self::test_fr(self::$bot['room'])) {
//В какой-то локации, видимо что-то делаем
//В какой-то локации, видимо что-то делаем
} elseif (self::$st['hpNow'] >= self::$st['hpAll']) {
echo 1;
//Приступаем к активной деятельности :)
//Приступаем к активной деятельности :)
mysql_query('UPDATE `stats` SET `zv`= "0",`team`= "0",`hpNow` = "' . self::$st['hpNow'] . '",`mpNow` = "' . self::$st['mpNow'] . '" WHERE `id` = "' . self::$bot['id'] . '" LIMIT 1');
mysql_query('UPDATE `users` SET `ipreg` = "' . self::new_action() . '",`mod_zvanie` = "Стажер" WHERE `id` = "' . self::$bot['id'] . '" LIMIT 1');
mysql_query('UPDATE `users` SET `ipreg` = "' . self::new_action() . '",`mod_zvanie` = "Стажер" WHERE `id` = "' . self::$bot['id'] . '" LIMIT 1');
} else {
if (self::$bot['mod_zvanie'] == 'Стажер100500') {
//Надеваем комплект + обновляем эффекты
if (self::$bot['mod_zvanie'] == 'Стажер100500') {
//Надеваем комплект + обновляем эффекты
mysql_query('UPDATE `eff_users` SET `timeUse` = "' . (time() + 7200) . '" WHERE `uid` = "' . self::$bot['id'] . '" AND `delete` = "0" AND `v1` != "priem" LIMIT 12');
mysql_query('UPDATE `items_users` SET `inOdet` = "0" WHERE `uid` = "' . self::$bot['id'] . '" AND `inOdet` > 0 AND `delete` = "0"');
$sp = mysql_query('SELECT `u`.`id`,`st`.`inslot`,`st`.`2too` FROM `items_users` AS `u` LEFT JOIN `items_main` AS `st` ON `st`.`id` = `u`.`item_id` WHERE `u`.`inOdet` = 0 AND `st`.`inslot` > 0 AND `st`.`inSlot` <= 20');
@ -373,10 +373,10 @@ class BotLogic
mysql_query('UPDATE `items_users` SET `inOdet` = "' . $od . '" WHERE `id` = "' . $pl['id'] . '" AND `uid` = "' . self::$bot['id'] . '" LIMIT 1');
}
}
mysql_query('UPDATE `items_users` SET `mod_zvanie` = "Cтaжер" WHERE `id` = "' . self::$bot['id'] . '" LIMIT 1');
mysql_query('UPDATE `items_users` SET `mod_zvanie` = "Cтaжер" WHERE `id` = "' . self::$bot['id'] . '" LIMIT 1');
}
//Хиляемся дальше
//Хиляемся дальше
if (self::$bot['regHP'] == 0 || self::$bot['regMP'] == 0) {
mysql_query('UPDATE `stats` SET `regHP` = "' . time() . '", `regMP` = "' . time() . '",`hpNow` = "' . self::$st['hpNow'] . '",`mpNow` = "' . self::$st['mpNow'] . '" WHERE `id` = "' . self::$bot['id'] . '" LIMIT 1');
}
@ -390,10 +390,10 @@ class BotLogic
} elseif (self::$bot['ipreg'] == 1) {
//Принять заявку на бой (физ.)
//Принять заявку на бой (физ.)
if (self::$bot['zv'] == 0) {
//Выделяем подходящую заявку в физ. поединке
//Выделяем подходящую заявку в физ. поединке
$rz = 2;
$zv = 0;
$nozv = 0;
@ -415,13 +415,13 @@ class BotLogic
if ($uz1st['reting'] <= floor(self::$st['reting'] * 1.27)) {
//Принимаем заявку
//Принимаем заявку
$sa = '';
if (self::$bot['sex'] == 2) {
$sa = 'а';
$sa = 'а';
}
$text = ' [login:' . self::$bot['login'] . '] принял' . $sa . ' вашу заявку на бой.[reflesh_main_zv_priem:' . self::$bot['id'] . ']';
$text = ' [login:' . self::$bot['login'] . '] принял' . $sa . ' вашу заявку на бой.[reflesh_main_zv_priem:' . self::$bot['id'] . ']';
mysql_query("INSERT INTO `chat` (`new`,`city`,`room`,`login`,`to`,`text`,`time`,`type`,`toChat`) VALUES ('1','" . $uz1['city'] . "','','','" . $uz1['login'] . "','" . $text . "','" . time() . "','6','0')");
mysql_query('UPDATE `stats` SET `zv` = "' . $zv['id'] . '",`team` = "2" WHERE `id` = "' . self::$bot['id'] . '" LIMIT 1');
mysql_query('UPDATE `users` SET `ipreg` = "8",`timeMain` = "' . self::rnd() . '" WHERE `id` = "' . self::$bot['id'] . '" LIMIT 1');
@ -449,19 +449,19 @@ class BotLogic
} elseif (self::$bot['ipreg'] == 2) {
//Принять заявку на бой (груп.)
//Принять заявку на бой (груп.)
self::bot_group_haot_zv(6);
} elseif (self::$bot['ipreg'] == 3) {
//Принять заявку на бой (хаот.)
//Принять заявку на бой (хаот.)
self::bot_group_haot_zv(7);
} elseif (self::$bot['ipreg'] == 4) {
//Принять заявку на бой (турнир.)
self::e('' . self::$bot['login'] . ', я хочу принять турнир...');
//Принять заявку на бой (турнир.)
self::e('' . self::$bot['login'] . ', я хочу принять турнир...');
} elseif (self::$bot['ipreg'] == 5) {
//Подать заявку (физ.)
//Подать заявку (физ.)
if (self::$bot['zv'] == 0) {
$rz = 2;
@ -531,34 +531,34 @@ class BotLogic
} elseif (self::$bot['ipreg'] == 8) {
//Ожидание начала поединка
//Ожидание начала поединка
if (self::$bot['zv'] == 0) {
//Поединок не удалось начать
//Поединок не удалось начать
mysql_query('UPDATE `users` SET `ipreg` = "0",`timeMain` = "' . self::rnd() . '" WHERE `id` = "' . self::$bot['id'] . '" LIMIT 1');
} else {
$zv = mysql_fetch_array(mysql_query('SELECT * FROM `zayvki` WHERE `id` = "' . self::$bot['zv'] . '" AND `cancel` = "0" AND `start` = "0" LIMIT 1'));
if (!isset($zv['id'])) {
//Обнуляем действия
//Обнуляем действия
mysql_query('UPDATE `users` SET `ipreg` = "0",`timeMain` = "' . self::rnd() . '" WHERE `id` = "' . self::$bot['id'] . '" LIMIT 1');
} elseif ($zv['razdel'] == 4 || $zv['razdel'] == 5) {
//хаот или группа
//хаот или группа
if ($zv['time_start'] + $zv['time'] <= time()) {
self::inuser_go_zv(self::$bot);
}
} else {
//физ
//физ
if ($zv['creator'] == self::$bot['id']) {
$uz2 = mysql_fetch_array(mysql_query('SELECT `u`.`sex`,`u`.`id`,`u`.`login`,`u`.`align`,`u`.`clan`,`u`.`admin`,`u`.`city`,`u`.`room`,`u`.`online`,`u`.`level`,`u`.`battle`,`u`.`money`,`st`.* FROM `stats` AS `st` LEFT JOIN `users` AS `u` ON (`st`.`id` = `u`.`id`) WHERE `st`.`zv`="' . $zv['id'] . '" AND `st`.`team`="2" LIMIT 1'));
if (isset($uz2['id'])) {
//Заявку кто-то принял, реагируем! :)
//Заявку кто-то принял, реагируем! :)
$pr = -1;
$uz2st = $u->getStats($uz2, 0);
@ -566,12 +566,12 @@ class BotLogic
//btl-cof
if ($uz2st['reting'] > floor(self::$st['reting'] * 1.27)) {
//Отказываем, в 95% случаев, противник слишком силен
//Отказываем, в 95% случаев, противник слишком силен
if (rand(0, 100) > 95) {
//отправляем бота на избиение :D
//отправляем бота на избиение :D
$pr = 1;
} else {
//отказ
//отказ
$pr = 0;
}
@ -579,13 +579,13 @@ class BotLogic
$pr = 1;
}
//Можно принять заявку
//Можно принять заявку
//$pr = 0;
if ($pr == 1) {
//Прием заявки
//создаем поединок с ботом
//Прием заявки
//создаем поединок с ботом
$expB = 0;
$btl = ['players' => '', 'timeout' => $zv['timeout'], 'type' => $zv['type'], 'invis' => $zv['invis'], 'noinc' => 0, 'travmChance' => 0, 'typeBattle' => 0, 'addExp' => $expB, 'money' => 0];
$ins = mysql_query('INSERT INTO `battle` (`time_over`,`city`,`time_start`,`players`,`timeout`,`type`,`invis`,`noinc`,`travmChance`,`typeBattle`,`addExp`,`money`,`team_win`) VALUES (
@ -604,13 +604,13 @@ class BotLogic
"-1")');
if ($ins) {
$btl_id = mysql_insert_id();
//обновляем данные о поединке
//обновляем данные о поединке
mysql_query('UPDATE `users` SET `battle`="' . $btl_id . '" WHERE `id` = "' . $uz2['id'] . '" LIMIT 1');
mysql_query('UPDATE `users` SET `battle`="' . $btl_id . '",`ipreg` = "0" WHERE `id` = "' . self::$bot['id'] . '" LIMIT 1');
mysql_query('UPDATE `stats` SET `zv` = "0",`team`="1" WHERE `id` = "' . self::$bot['id'] . '" LIMIT 1');
mysql_query('UPDATE `stats` SET `zv` = "0",`team`="2" WHERE `id` = "' . $uz2['id'] . '" LIMIT 1');
//Если бой кулачный, то снимаем вещи
//Если бой кулачный, то снимаем вещи
if ($btl['type'] == 1) {
mysql_query('UPDATE `items_users` SET `inOdet`="0" WHERE `uid` = "' . self::$bot['id'] . '" AND `inOdet`!=0');
mysql_query('UPDATE `items_users` SET `inOdet`="0" WHERE `uid` = "' . $uz2['id'] . '" AND `inOdet`!=0');
@ -618,21 +618,21 @@ class BotLogic
mysql_query('UPDATE `zayvki` SET `start` = "' . time() . '",`btl_id` = "' . $btl_id . '" WHERE `id` = "' . $zv['id'] . '" LIMIT 1');
//обновляем заявку, что бой начался
//обновляем заявку, что бой начался
self::$bot['battle'] = $btl_id;
//Отправляем сообщение в чат всем бойцам
//Отправляем сообщение в чат всем бойцам
mysql_query("INSERT INTO `chat` (`city`,`room`,`to`,`time`,`type`,`toChat`,`sound`) VALUES ('" . $u->info['city'] . "','" . $u->info['room'] . "','" . $uz2['login'] . "','" . time() . "','11','0','117')");
}
} elseif ($pr == 0) {
//Отказ
//Отказ
$sa = '';
if (self::$bot['sex'] == 2) {
$sa = 'а';
$sa = 'а';
}
$text = ' [login:' . self::$bot['login'] . '] отказал' . $sa . ' вам в поединке.';
$text = ' [login:' . self::$bot['login'] . '] отказал' . $sa . ' вам в поединке.';
mysql_query("INSERT INTO `chat` (`new`,`city`,`room`,`login`,`to`,`text`,`time`,`type`,`toChat`) VALUES ('1','" . $uz2['city'] . "','','','" . $uz2['login'] . "','" . $text . "','" . time() . "','6','0')");
mysql_query('UPDATE `stats` SET `zv` = "0",`team` = "1" WHERE `id` = "' . $uz2['id'] . '" LIMIT 1');
mysql_query('UPDATE `zayvki` SET `otk` = ( `otk` + 1 ),`bcs` = "' . (time() + rand(30, rand(60, 180))) . '" WHERE `id` = "' . $zv['id'] . '" LIMIT 1');
@ -640,7 +640,7 @@ class BotLogic
} else {
//Заявку никто не принял, возможно стоит отменить заявку вообще!
//Заявку никто не принял, возможно стоит отменить заявку вообще!
if (self::$bot['timeMain'] < time() - 30 - rand((7 / $zv['otk']), (3 * 49 / $zv['otk']))) {
mysql_query('UPDATE `stats` SET `zv` = "0" WHERE `id` = "' . self::$bot['id'] . '" LIMIT 1');
@ -655,7 +655,7 @@ class BotLogic
}
//Бот уже слишком долго ждет ответа игрока, отказываемся от заявки
//Бот уже слишком долго ждет ответа игрока, отказываемся от заявки
if (self::$bot['timeMain'] < time() - rand((30 / $zv['otk']), (135 / $zv['otk'])) && $zv['creator'] != self::$bot['id'] && ($zv['razdel'] == 1 || $zv['razdel'] == 2)) {
$uz1 = mysql_fetch_array(mysql_query('SELECT `u`.`sex`,`u`.`id`,`u`.`login`,`u`.`align`,`u`.`clan`,`u`.`admin`,`u`.`city`,`u`.`room`,`u`.`online`,`u`.`level`,`u`.`battle`,`u`.`money`,`st`.* FROM `stats` AS `st` LEFT JOIN `users` AS `u` ON (`st`.`id` = `u`.`id`) WHERE `st`.`zv`="' . $zv['id'] . '" AND `st`.`team`="1" LIMIT 1'));
@ -663,10 +663,10 @@ class BotLogic
$sa = '';
if (self::$bot['sex'] == 2) {
$sa = 'а';
$sa = 'а';
}
$text = ' [login:' . self::$bot['login'] . '] отозвал' . $sa . ' свой запрос на бой.';
$text = ' [login:' . self::$bot['login'] . '] отозвал' . $sa . ' свой запрос на бой.';
mysql_query("INSERT INTO `chat` (`new`,`city`,`room`,`login`,`to`,`text`,`time`,`type`,`toChat`) VALUES ('1','" . $uz1['city'] . "','','','" . $uz1['login'] . "','" . $text . "','" . time() . "','6','0')");
}
@ -709,18 +709,18 @@ class BotLogic
if (self::$bot['level'] < 2) {
if ($r == 2 || $r == 3 || $r == 6 || $r == 7 || $r == 8) {
if (rand(0, 1) == 1) {
$r = 1; //принимаем физ
$r = 1; //принимаем физ
} elseif (rand(0, 1) == 0) {
$r = 4; //принимаем турнир
$r = 4; //принимаем турнир
} else {
$r = 5; //подаем физ
$r = 5; //подаем физ
}
}
} elseif (self::$bot['level'] == 0) {
if (rand(0, 1) == 1) {
$r = 1; //принимаем физ
$r = 1; //принимаем физ
} else {
$r = 5; //подаем физ
$r = 5; //подаем физ
}
}
@ -734,9 +734,9 @@ class BotLogic
/*/
Базовые функции обучения бота
Базовые функции обучения бота
/*/
//Бот ищет заявку в группы или хаот для своего уровня и подходящую ему
//Бот ищет заявку в группы или хаот для своего уровня и подходящую ему
static function bot_group_haot_zv($id)
{
$rz = 5;
@ -783,7 +783,7 @@ class BotLogic
}
//Логика приема заявки
//Логика приема заявки
if ((self::team_zv_cf($pl, $atm) > (self::team_zv_cf($pl, $tmr) + self::$st['reting']) * 1.67 || ($zv['tm2max'] < $zv['tm1max'] / 2) || ($zv['tm1max'] < $zv['tm2max'] / 2)) && rand(0, 100) < 90) {
$go = 0;
}
@ -840,7 +840,7 @@ class BotLogic
if ($tm > 0 || $rz == 5) {
//Принимаем участие в заявке
//Принимаем участие в заявке
mysql_query('UPDATE `stats` SET `zv` = "' . $pl['id'] . '",`team` = "' . $tm . '" WHERE `id` = "' . self::$bot['id'] . '" LIMIT 1');
mysql_query('UPDATE `users` SET `login2` = "' . self::$bot['login2'] . '",`ipreg` = "8" WHERE `id` = "' . self::$bot['id'] . '" LIMIT 1');
self::$bot['zv'] = $pl['id'];
@ -856,7 +856,7 @@ class BotLogic
}
//Добавляем нового бота
//Добавляем нового бота
static function createNewBot($login, $sex)
{
if ($sex != 1) {
@ -872,7 +872,7 @@ class BotLogic
'real_bot_user',
'0',
'" . mysql_real_escape_string($login) . "',
'" . md5('regnxt#$%^а0.' . time()) . "',
'" . md5('regnxt#$%^а0.' . time()) . "',
'127.0.0.1',
'127.0.0.1',
'capitalcity',
@ -890,11 +890,11 @@ class BotLogic
}
//Бот находится в онлайне
//Бот находится в онлайне
static function _online()
{
if (self::$bot['online'] < time() - 60) {
//уровень/апп
//уровень/апп
if (self::$bot['battle'] == 0 && self::$bot['zv'] == 0) {
self::_level();
}
@ -903,7 +903,7 @@ class BotLogic
}
}
//Бот меняет локацию
//Бот меняет локацию
static function _loc_A($a, $b)
{
return $b;
@ -918,28 +918,28 @@ class BotLogic
$r = rand(1, 4);
}
//будуар
//будуар
if ($r == 4 && self::$bot['sex'] != 1) {
$r = rand(1, 3);
}
if (self::$bot['city'] == 'capitalcity') {
if ($r == 4) {
//будуар
//будуар
$r = 7;
} elseif ($r == 3) {
//ЗВ 3
//ЗВ 3
$r = 5;
} elseif ($r == 2) {
//ЗВ 2
//ЗВ 2
$r = 2;
} else {
//ЗВ 1
//ЗВ 1
$r = 4;
}
if (self::$bot['level'] == 0) {
//Новички
//Новички
$r = 0;
}
@ -952,20 +952,20 @@ class BotLogic
{
if ($id == self::$bot['room']) {
//ничего, уже пришли
//ничего, уже пришли
self::update('a1', 0);
} else {
//Прокладываем маршрут из текущей комнаты
//Прокладываем маршрут из текущей комнаты
$rid_next = self::_loc_A(self::$bot['room'], $id);
if ($rid_next > 0) {
//Идем туда
//Идем туда
//$rid_next = 377;
mysql_query('UPDATE `users` SET `room` = "' . $rid_next . '" WHERE `id` = "' . self::$bot['id'] . '" LIMIT 1');
return true;
} else {
//Невозможно дойти туда
//Невозможно дойти туда
return false;
}
@ -973,7 +973,7 @@ class BotLogic
}
//Бот получил уровень, либо апп
//Бот получил уровень, либо апп
static function _level()
{
global $u;
@ -999,11 +999,11 @@ class BotLogic
}
//Вспомогательные функции
//Вспомогательные функции
static function e($t)
{
mysql_query('INSERT INTO `chat` (`text`,`city`,`to`,`type`,`new`,`time`) VALUES ("core #' . date('d.m.Y') . ' %' . date('H:i:s') . ' (Критическая ошибка): <b>' . mysql_real_escape_string($t) . '</b>","capitalcity",
mysql_query('INSERT INTO `chat` (`text`,`city`,`to`,`type`,`new`,`time`) VALUES ("core #' . date('d.m.Y') . ' %' . date('H:i:s') . ' (Критическая ошибка): <b>' . mysql_real_escape_string($t) . '</b>","capitalcity",
"LEL","6","1","-1")');
}

View File

@ -13,85 +13,85 @@ class BotPriemLogic
$test = self::testpriem(self::$p);
if (isset(self::$p['id']) && $test == 0) {
//Используем прием под номером $id
//Используем прием под номером $id
if ($id == 1) {
self::priem1($i);
} //Прикрыться 1|2|3|4|5|6|7|8|9|10|11|13|14|45|47|48|49|188|204|211|217|220|223|232|235|240|0|0|0|0|0|0|0|0|0|0|0|0|0|0
} //Прикрыться 1|2|3|4|5|6|7|8|9|10|11|13|14|45|47|48|49|188|204|211|217|220|223|232|235|240|0|0|0|0|0|0|0|0|0|0|0|0|0|0
elseif ($id == 2) {
self::priem2($i);
} //Вломить
} //Вломить
elseif ($id == 3) {
self::priem3($i);
} //Собрать зубы
} //Собрать зубы
elseif ($id == 4) {
self::priem4($i);
} //Сильный удар
} //Сильный удар
elseif ($id == 5) {
self::priem5($i);
} //Утереть пот
} //Утереть пот
elseif ($id == 6) {
self::priem6($i);
} //Воля к победе
} //Воля к победе
elseif ($id == 7) {
self::priem7($i);
} //Активная защита
} //Активная защита
elseif ($id == 8) {
self::priem8($i);
} //Танец ветра
} //Танец ветра
elseif ($id == 9) {
self::priem9($i);
} //Дикая удача
} //Дикая удача
elseif ($id == 10) {
self::priem10($i);
} //Предвидиние
} //Предвидиние
elseif ($id == 11) {
self::priem11($i);
} //Удачный удар
} //Удачный удар
elseif ($id == 13) {
self::priem13($i);
} //Стойкость
} //Стойкость
elseif ($id == 14) {
self::priem14($i);
} //Ярость
} //Ярость
elseif ($id == 45) {
self::priem45($i);
} //Полная защита
} //Полная защита
elseif ($id == 47) {
self::priem47($i);
} //Слепая удача
} //Слепая удача
elseif ($id == 48) {
self::priem48($i);
} //Танец лезвий
} //Танец лезвий
elseif ($id == 49) {
self::priem49($i);
} //Второе дыхание
} //Второе дыхание
elseif ($id == 188) {
self::priem188($i);
} //Жажда крови
} //Жажда крови
elseif ($id == 204) {
self::priem204($i);
} //Обреченность
} //Обреченность
elseif ($id == 211) {
self::priem211($i);
} //Агрессивная защита
} //Агрессивная защита
elseif ($id == 217) {
self::priem217($i);
} //Разгадать тактику
} //Разгадать тактику
elseif ($id == 220) {
self::priem220($i);
} //Ставка на опережение
} //Ставка на опережение
elseif ($id == 223) {
self::priem223($i);
} //Рывок
} //Рывок
elseif ($id == 232) {
self::priem232($i);
} //Выжить
} //Выжить
elseif ($id == 235) {
self::priem235($i);
} //Шокирующий удар
} //Шокирующий удар
elseif ($id == 240) {
self::priem240($i);
} //Хлебнуть крови
} //Хлебнуть крови
elseif ($id >= 175 && $id <= 179) {
self::priem175($i);
}
@ -110,7 +110,7 @@ class BotPriemLogic
BotLogic::inuser_go_btl(BotLogic::$bot, $go_txt);
}
//Ставка на опережение
//Ставка на опережение
private static function priem220($i)
{
if (rand(0, 100) < 30) {
@ -118,7 +118,7 @@ class BotPriemLogic
}
}
//Разгадать тактику
//Разгадать тактику
private static function priem217($i)
{
if (rand(0, 100) < 30) {
@ -126,7 +126,7 @@ class BotPriemLogic
}
}
//Обреченность
//Обреченность
private static function priem204($i)
{
if (rand(0, 100) < 30) {
@ -134,7 +134,7 @@ class BotPriemLogic
}
}
//Выжить
//Выжить
private static function priem232($i)
{
if (self::hp() <= 30 && rand(0, 100) < 50) {
@ -142,7 +142,7 @@ class BotPriemLogic
}
}
//Жажда крови
//Жажда крови
private static function priem188($i)
{
if (rand(0, 100) < 30) {
@ -150,7 +150,7 @@ class BotPriemLogic
}
}
//Шок удар
//Шок удар
private static function priem235($i)
{
if (rand(0, 100) < 50) {
@ -158,7 +158,7 @@ class BotPriemLogic
}
}
//Хлебнуть крови
//Хлебнуть крови
private static function priem240($i)
{
if (self::hp() <= 70) {
@ -166,13 +166,13 @@ class BotPriemLogic
}
}
//Силовое поле
//Силовое поле
private static function priem175($i)
{
self::usePriem($i);
}
//Прикрыться
//Прикрыться
private static function priem1($i)
{
if (rand(0, 100) < 50) {
@ -180,7 +180,7 @@ class BotPriemLogic
}
}
//Вломить
//Вломить
private static function priem2($i)
{
if (rand(0, 100) < 50) {
@ -188,7 +188,7 @@ class BotPriemLogic
}
}
//Собрать зубы
//Собрать зубы
private static function priem3($i)
{
if (self::hp() <= 70 && rand(0, 100) < 50) {
@ -196,7 +196,7 @@ class BotPriemLogic
}
}
//Воля к победе
//Воля к победе
private static function priem6($i)
{
if (self::hp() <= 40 && rand(0, 100) < 50) {
@ -204,7 +204,7 @@ class BotPriemLogic
}
}
//Танец ветра
//Танец ветра
private static function priem8($i)
{
if (rand(0, 100) < 30) {
@ -212,7 +212,7 @@ class BotPriemLogic
}
}
//Танец лезвий
//Танец лезвий
private static function priem48($i)
{
if (rand(0, 100) < 70) {
@ -220,7 +220,7 @@ class BotPriemLogic
}
}
//Дикая удача
//Дикая удача
private static function priem9($i)
{
if (rand(0, 100) < 30) {
@ -228,7 +228,7 @@ class BotPriemLogic
}
}
//Слепая удача
//Слепая удача
private static function priem47($i)
{
if (rand(0, 100) < 50) {
@ -236,7 +236,7 @@ class BotPriemLogic
}
}
//Предвиденье
//Предвиденье
private static function priem10($i)
{
if (rand(0, 100) < 30) {
@ -244,7 +244,7 @@ class BotPriemLogic
}
}
//Второе дыхание
//Второе дыхание
private static function priem49($i)
{
if (rand(0, 100) < 80 && self::hp() <= 60) {
@ -252,7 +252,7 @@ class BotPriemLogic
}
}
//Рывок
//Рывок
private static function priem223($i)
{
if (self::hp() <= 50 && rand(0, 100) < 50) {
@ -260,7 +260,7 @@ class BotPriemLogic
}
}
//Удачный удар
//Удачный удар
private static function priem11($i)
{
if (rand(0, 100) < 30) {
@ -268,7 +268,7 @@ class BotPriemLogic
}
}
//Стойкость
//Стойкость
private static function priem13($i)
{
if (rand(0, 100) < 50) {
@ -276,7 +276,7 @@ class BotPriemLogic
}
}
//Ярость
//Ярость
private static function priem14($i)
{
if (rand(0, 100) < 50) {
@ -284,7 +284,7 @@ class BotPriemLogic
}
}
//Сильный удар
//Сильный удар
private static function priem4($i)
{
if (rand(0, 100) < 60) {
@ -292,7 +292,7 @@ class BotPriemLogic
}
}
//Утереть пот
//Утереть пот
private static function priem5($i)
{
if (self::hp() <= 95) {
@ -301,7 +301,7 @@ class BotPriemLogic
}
//Агрессивная защита
//Агрессивная защита
private static function priem211($i)
{
if (rand(0, 100) < 80) {
@ -310,7 +310,7 @@ class BotPriemLogic
}
//Полная защита
//Полная защита
private static function priem45($i)
{
if (rand(0, 100) < 50) {
@ -319,7 +319,7 @@ class BotPriemLogic
}
//Активная защита
//Активная защита
private static function priem7($i)
{
if (rand(0, 100) < 30) {
@ -333,7 +333,7 @@ class BotPriemLogic
return round((BotLogic::$st['hpNow'] / BotLogic::$st['hpAll'] * 100), 2);
}
//Тест на возможность использования
//Тест на возможность использования
private static function testpriem($pl)
{
global $u;
@ -382,14 +382,14 @@ class BotPriemLogic
}
if ($pl['trUser'] == 1) {
//требует чтобы пользователь с кем-то разменивался (при ожидании прием гаснит)
//требует чтобы пользователь с кем-то разменивался (при ожидании прием гаснит)
$ga = mysql_fetch_array(mysql_query('SELECT `id` FROM `battle_act` WHERE `battle` = "' . BotLogic::$bot['battle'] . '" AND `uid1` = "' . BotLogic::$bot['id'] . '" AND `uid2` = "' . BotLogic::$bot['enemy'] . '" LIMIT 1'));
if (isset($ga['id'])) {
$notr++;
}
}
//Если прием уже использовали
//Если прием уже использовали
if (BotLogic::$st['prsu'][$pl['id']] > 0) {
$notr++;
}

File diff suppressed because one or more lines are too long

View File

@ -0,0 +1,575 @@
<?php
class ComissionShop
{
public function commisionShop($sid, $preview = "full")
{
global $c, $code, $sid;
switch ((int)$_GET['otdel']) {
case 1:
$typeOtdel = 18;
break;
case 2:
$typeOtdel = 19;
break;
case 3:
$typeOtdel = 20;
break;
case 4:
$typeOtdel = 21;
break;
case 5:
$typeOtdel = 22;
break;
case 6:
$typeOtdel = 15;
break;
case 7:
$typeOtdel = 12;
break;
case 8:
$typeOtdel = 4;
break;
case 9:
$typeOtdel = 5;
break;
case 10:
$typeOtdel = 6;
break;
case 11:
$typeOtdel = 1;
break;
case 12:
$typeOtdel = 3;
break;
case 13:
$typeOtdel = 8;
break;
case 14:
$typeOtdel = 14;
break;
case 15:
$typeOtdel = 13;
break;
case 16:
$typeOtdel = 9;
break;
case 17:
$typeOtdel = 10;
break;
case 18:
$typeOtdel = 11;
break;
case 19:
$typeOtdel = 29;
break;
case 20:
$typeOtdel = 30;
break;
case 1050:
$typeOtdel = 1050;
break;
default :
$typeOtdel = 18;
}
if ($typeOtdel != 1050) {
if ($preview == "full") {
$cl = mysql_query(
'SELECT `items_users`.`id`,`items_users`.`item_id`,`items_users`.`1price`,`items_users`.`2price`,`items_users`.`uid`,`items_users`.`use_text`,`items_users`.`data`,`items_users`.`inOdet`,`items_users`.`inShop`,`items_users`.`delete`,`items_users`.`iznosNOW`,`items_users`.`iznosMAX`,`items_users`.`gift`,`items_users`.`gtxt1`,`items_users`.`gtxt2`,`items_users`.`kolvo`,`items_users`.`geniration`,`items_users`.`magic_inc`,`items_users`.`maidin`,`items_users`.`lastUPD`,`items_users`.`timeOver`,`items_users`.`overType`,`items_users`.`secret_id`,`items_users`.`time_create`,`items_users`.`inGroup`,`items_users`.`dn_delete`,`items_users`.`inTransfer`,`items_users`.`post_delivery`,`items_users`.`lbtl_`,`items_users`.`bexp`,`items_users`.`so`,`items_users`.`blvl`,`items_main`.`id`,`items_main`.`name`,`items_main`.`img`,`items_main`.`type`,`items_main`.`inslot`,`items_main`.`2h`,`items_main`.`2too`,`items_main`.`iznosMAXi`,`items_main`.`inRazdel`,`items_main`.`price1`,`items_main`.`price2`,`items_main`.`magic_chance`,`items_main`.`info`,`items_main`.`massa`,`items_main`.`level`,`items_main`.`magic_inci`,`items_main`.`overTypei`,`items_main`.`group`,`items_main`.`group_max`,`items_main`.`geni`,`items_main`.`ts`,`items_main`.`srok`,`items_main`.`class`,`items_main`.`class_point`,`items_main`.`anti_class`,`items_main`.`anti_class_point`,`items_main`.`max_text`,`items_main`.`useInBattle`,`items_main`.`lbtl`,`items_main`.`lvl_itm`,`items_main`.`lvl_exp`,`items_main`.`lvl_aexp`, count(`items_users`.`id`) as inGroupCount
FROM `items_users` LEFT JOIN `items_main` ON (`items_main`.`id` = `items_users`.`item_id`)
WHERE (( `items_users`.time_create + `items_main`.srok) > unix_timestamp() OR `items_main`.srok = "0") AND `items_users`.`delete`="0" AND `items_users`.`inOdet`="0" AND `items_users`.`inShop`="30" and `items_main`.`type` = "' . mysql_real_escape_string(
$typeOtdel
) . '" and `items_users`.`item_id` = "' . (int)$_GET['itemid'] . '" GROUP BY `items_users`.`inGroup`, `items_users`.`uid`,`items_users`.`1price` HAVING `items_users`.inGroup > 0
UNION ALL SELECT `items_users`.`id`,`items_users`.`item_id`,`items_users`.`1price`,`items_users`.`2price`,`items_users`.`uid`,`items_users`.`use_text`,`items_users`.`data`,`items_users`.`inOdet`,`items_users`.`inShop`,`items_users`.`delete`,`items_users`.`iznosNOW`,`items_users`.`iznosMAX`,`items_users`.`gift`,`items_users`.`gtxt1`,`items_users`.`gtxt2`,`items_users`.`kolvo`,`items_users`.`geniration`,`items_users`.`magic_inc`,`items_users`.`maidin`,`items_users`.`lastUPD`,`items_users`.`timeOver`,`items_users`.`overType`,`items_users`.`secret_id`,`items_users`.`time_create`,`items_users`.`inGroup`,`items_users`.`dn_delete`,`items_users`.`inTransfer`,`items_users`.`post_delivery`,`items_users`.`lbtl_`,`items_users`.`bexp`,`items_users`.`so`,`items_users`.`blvl`,`items_main`.`id`,`items_main`.`name`,`items_main`.`img`,`items_main`.`type`,`items_main`.`inslot`,`items_main`.`2h`,`items_main`.`2too`,`items_main`.`iznosMAXi`,`items_main`.`inRazdel`,`items_main`.`price1`,`items_main`.`price2`,`items_main`.`magic_chance`,`items_main`.`info`,`items_main`.`massa`,`items_main`.`level`,`items_main`.`magic_inci`,`items_main`.`overTypei`,`items_main`.`group`,`items_main`.`group_max`,`items_main`.`geni`,`items_main`.`ts`,`items_main`.`srok`,`items_main`.`class`,`items_main`.`class_point`,`items_main`.`anti_class`,`items_main`.`anti_class_point`,`items_main`.`max_text`,`items_main`.`useInBattle`,`items_main`.`lbtl`,`items_main`.`lvl_itm`,`items_main`.`lvl_exp`,`items_main`.`lvl_aexp`, count(`items_users`.`id`) as inGroupCount
FROM `items_users` LEFT JOIN `items_main` ON (`items_main`.`id` = `items_users`.`item_id`)
WHERE (( `items_users`.time_create + `items_main`.srok) > unix_timestamp() OR `items_main`.srok = "0") AND `items_users`.`delete`="0" AND `items_users`.`inOdet`="0" AND `items_users`.`inShop`="30" and `items_main`.`type` = "' . mysql_real_escape_string(
$typeOtdel
) . '" and `items_users`.`item_id` = "' . (int)$_GET['itemid'] . '" GROUP BY `items_users`.`uid`, `items_users`.`1price` HAVING `items_users`.inGroup = 0
ORDER BY `1price`ASC , inGroupCount DESC'
);
} else {
$cl = mysql_query(
'SELECT `items_users`.`id`,`items_users`.`item_id`,`items_users`.`1price`,`items_users`.`2price`,`items_users`.`uid`,`items_users`.`use_text`,`items_users`.`data`,`items_users`.`inOdet`,`items_users`.`inShop`,`items_users`.`delete`,`items_users`.`iznosNOW`,`items_users`.`iznosMAX`,`items_users`.`gift`,`items_users`.`gtxt1`,`items_users`.`gtxt2`,`items_users`.`kolvo`,`items_users`.`geniration`,`items_users`.`magic_inc`,`items_users`.`maidin`,`items_users`.`lastUPD`,`items_users`.`timeOver`,`items_users`.`overType`,`items_users`.`secret_id`,`items_users`.`time_create`,`items_users`.`inGroup`,`items_users`.`dn_delete`,`items_users`.`inTransfer`,`items_users`.`post_delivery`,`items_users`.`lbtl_`,`items_users`.`bexp`,`items_users`.`so`,`items_users`.`blvl`,`items_main`.`id`,`items_main`.`name`,`items_main`.`img`,`items_main`.`type`,`items_main`.`inslot`,`items_main`.`2h`,`items_main`.`2too`,`items_main`.`iznosMAXi`,`items_main`.`inRazdel`,`items_main`.`price1`,`items_main`.`price2`,`items_main`.`magic_chance`,`items_main`.`info`,`items_main`.`massa`,`items_main`.`level`,`items_main`.`magic_inci`,`items_main`.`overTypei`,`items_main`.`group`,`items_main`.`group_max`,`items_main`.`geni`,`items_main`.`ts`,`items_main`.`srok`,`items_main`.`class`,`items_main`.`class_point`,`items_main`.`anti_class`,`items_main`.`anti_class_point`,`items_main`.`max_text`,`items_main`.`useInBattle`,`items_main`.`lbtl`,`items_main`.`lvl_itm`,`items_main`.`lvl_exp`,`items_main`.`lvl_aexp` FROM `items_users` LEFT JOIN `items_main` ON (`items_main`.`id` = `items_users`.`item_id`) WHERE (( `items_users`.time_create + `items_main`.srok) > unix_timestamp() OR `items_main`.srok = "0") AND `items_users`.`delete`="0" AND `items_users`.`inOdet`="0" AND `items_users`.`inShop`="30" and `items_main`.`type` = "' . mysql_real_escape_string(
$typeOtdel
) . '" GROUP BY `items_users`.`item_id` ORDER BY `items_main`.`id` DESC'
);
}
} else {
if ($preview == "full") {
$cl = mysql_query(
'SELECT
`items_users`.`id` as id, `items_users`.`id` AS `idu`,`items_users`.`item_id` as item_id,`items_users`.`1price`,`items_users`.`2price`,`items_users`.`uid`,`items_users`.`use_text`,
`items_users`.`data`,`items_users`.`inOdet`,`items_users`.`inShop`,`items_users`.`delete`,`items_users`.`iznosNOW`,`items_users`.`iznosMAX`,
`items_users`.`gift`,`items_users`.`gtxt1`,`items_users`.`gtxt2`,`items_users`.`kolvo`,`items_users`.`geniration`,`items_users`.`magic_inc`,`items_users`.`maidin`,
`items_users`.`lastUPD`,`items_users`.`timeOver`,`items_users`.`overType`,`items_users`.`secret_id`,`items_users`.`time_create`,`items_users`.`inGroup`,`items_users`.`dn_delete`,
`items_users`.`inTransfer`,`items_users`.`post_delivery`,`items_users`.`lbtl_`,`items_users`.`bexp`,`items_users`.`so`,`items_users`.`blvl`,`items_main`.`id` as item_id,`items_main`.`name`,
`items_main`.`img`,`items_main`.`type`,`items_main`.`inslot`,`items_main`.`2h`,`items_main`.`2too`,`items_main`.`iznosMAXi`,`items_main`.`inRazdel`,`items_main`.`price1`,
`items_main`.`price2`,`items_main`.`magic_chance`,`items_main`.`info`,`items_main`.`massa`,`items_main`.`level`,`items_main`.`magic_inci`,`items_main`.`overTypei`,
`items_main`.`group`,`items_main`.`group_max`,`items_main`.`geni`,`items_main`.`ts`,`items_main`.`srok`,`items_main`.`class`,`items_main`.`class_point`,`items_main`.`anti_class`,
`items_main`.`anti_class_point`,`items_main`.`max_text`,`items_main`.`useInBattle`,`items_main`.`lbtl`,`items_main`.`lvl_itm`,`items_main`.`lvl_exp`,
`items_main`.`lvl_aexp` , count(`items_users`.`id`) as inGroupCount
FROM `items_users` LEFT JOIN `items_main` ON (`items_main`.`id` = `items_users`.`item_id`)
WHERE (( `items_users`.time_create + `items_main`.srok) > unix_timestamp() OR `items_main`.srok = "0") AND `items_users`.`delete`="0" AND `items_users`.`item_id` = "' . (int)$_GET['itemid'] . '"
AND `items_users`.`inOdet`="0" AND `items_users`.`inShop`="30" and `items_main`.`type` != "18" AND `items_main`.`type` != "19" AND `items_main`.`type` != "20" AND `items_main`.`type` != "21" AND `items_main`.`type` != "22" AND `items_main`.`type` != "15" AND `items_main`.`type` != "12" AND `items_main`.`type` != "4" AND `items_main`.`type` != "5" AND `items_main`.`type` != "6" AND `items_main`.`type` != "1" AND `items_main`.`type` != "3" AND `items_main`.`type` != "8" AND `items_main`.`type` != "14" AND `items_main`.`type` != "13" AND `items_main`.`type` != "9" AND `items_main`.`type` != "10" AND `items_main`.`type` != "11" AND `items_main`.`type` != "29" AND `items_main`.`type` != "30"
GROUP BY `items_users`.`inGroup`, `items_users`.`uid`,`items_users`.`1price` HAVING `items_users`.inGroup > 0
UNION ALL
SELECT `items_users`.`id` as id, `items_users`.`id` AS `idu`,`items_users`.`item_id` as item_id,`items_users`.`1price`,`items_users`.`2price`,`items_users`.`uid`,`items_users`.`use_text`,
`items_users`.`data`,`items_users`.`inOdet`,`items_users`.`inShop`,`items_users`.`delete`,`items_users`.`iznosNOW`,`items_users`.`iznosMAX`,
`items_users`.`gift`,`items_users`.`gtxt1`,`items_users`.`gtxt2`,`items_users`.`kolvo`,`items_users`.`geniration`,`items_users`.`magic_inc`,`items_users`.`maidin`,
`items_users`.`lastUPD`,`items_users`.`timeOver`,`items_users`.`overType`,`items_users`.`secret_id`,`items_users`.`time_create`,`items_users`.`inGroup`,`items_users`.`dn_delete`,
`items_users`.`inTransfer`,`items_users`.`post_delivery`,`items_users`.`lbtl_`,`items_users`.`bexp`,`items_users`.`so`,`items_users`.`blvl`,`items_main`.`id` as item_id,`items_main`.`name`,
`items_main`.`img`,`items_main`.`type`,`items_main`.`inslot`,`items_main`.`2h`,`items_main`.`2too`,`items_main`.`iznosMAXi`,`items_main`.`inRazdel`,`items_main`.`price1`,
`items_main`.`price2`,`items_main`.`magic_chance`,`items_main`.`info`,`items_main`.`massa`,`items_main`.`level`,`items_main`.`magic_inci`,`items_main`.`overTypei`,
`items_main`.`group`,`items_main`.`group_max`,`items_main`.`geni`,`items_main`.`ts`,`items_main`.`srok`,`items_main`.`class`,`items_main`.`class_point`,`items_main`.`anti_class`,
`items_main`.`anti_class_point`,`items_main`.`max_text`,`items_main`.`useInBattle`,`items_main`.`lbtl`,`items_main`.`lvl_itm`,`items_main`.`lvl_exp`,
`items_main`.`lvl_aexp`, count(`items_users`.`id`) as inGroupCount
FROM `items_users` LEFT JOIN `items_main` ON (`items_main`.`id` = `items_users`.`item_id`)
WHERE (( `items_users`.time_create + `items_main`.srok) > unix_timestamp() OR `items_main`.srok = "0") AND `items_users`.`delete`="0" AND `items_users`.`item_id` = "' . (int)$_GET['itemid'] . '"
AND `items_users`.`inOdet`="0" AND `items_users`.`inShop`="30" and `items_main`.`type` != "18" AND `items_main`.`type` != "19" AND `items_main`.`type` != "20" AND `items_main`.`type` != "21" AND `items_main`.`type` != "22" AND `items_main`.`type` != "15" AND `items_main`.`type` != "12" AND `items_main`.`type` != "4" AND `items_main`.`type` != "5" AND `items_main`.`type` != "6" AND `items_main`.`type` != "1" AND `items_main`.`type` != "3" AND `items_main`.`type` != "8" AND `items_main`.`type` != "14" AND `items_main`.`type` != "13" AND `items_main`.`type` != "9" AND `items_main`.`type` != "10" AND `items_main`.`type` != "11" AND `items_main`.`type` != "29" AND `items_main`.`type` != "30"
GROUP BY `items_users`.`uid`,`items_users`.`1price` HAVING `items_users`.inGroup = 0
ORDER BY `1price`ASC , inGroupCount DESC'
);
} else {
$cl = mysql_query(
'SELECT `items_users`.`id`, `items_users`.`id` AS `idu`,`items_users`.`item_id`,`items_users`.`1price`,`items_users`.`2price`,`items_users`.`uid`,`items_users`.`use_text`,`items_users`.`data`,`items_users`.`inOdet`,`items_users`.`inShop`,`items_users`.`delete`,`items_users`.`iznosNOW`,`items_users`.`iznosMAX`,`items_users`.`gift`,`items_users`.`gtxt1`,`items_users`.`gtxt2`,`items_users`.`kolvo`,`items_users`.`geniration`,`items_users`.`magic_inc`,`items_users`.`maidin`,`items_users`.`lastUPD`,`items_users`.`timeOver`,`items_users`.`overType`,`items_users`.`secret_id`,`items_users`.`time_create`,`items_users`.`inGroup`,`items_users`.`dn_delete`,`items_users`.`inTransfer`,`items_users`.`post_delivery`,`items_users`.`lbtl_`,`items_users`.`bexp`,`items_users`.`so`,`items_users`.`blvl`,`items_main`.`id`,`items_main`.`name`,`items_main`.`img`,`items_main`.`type`,`items_main`.`inslot`,`items_main`.`2h`,`items_main`.`2too`,`items_main`.`iznosMAXi`,`items_main`.`inRazdel`,`items_main`.`price1`,`items_main`.`price2`,`items_main`.`magic_chance`,`items_main`.`info`,`items_main`.`massa`,`items_main`.`level`,`items_main`.`magic_inci`,`items_main`.`overTypei`,`items_main`.`group`,`items_main`.`group_max`,`items_main`.`geni`,`items_main`.`ts`,`items_main`.`srok`,`items_main`.`class`,`items_main`.`class_point`,`items_main`.`anti_class`,`items_main`.`anti_class_point`,`items_main`.`max_text`,`items_main`.`useInBattle`,`items_main`.`lbtl`,`items_main`.`lvl_itm`,`items_main`.`lvl_exp`,`items_main`.`lvl_aexp` FROM `items_users` LEFT JOIN `items_main` ON (`items_main`.`id` = `items_users`.`item_id`) WHERE (( `items_users`.time_create + `items_main`.srok) > unix_timestamp() OR `items_main`.srok = "0") AND `items_users`.`delete`="0" AND `items_users`.`inOdet`="0" AND `items_users`.`inShop`="30" and `items_main`.`type` != "18" AND `items_main`.`type` != "19" AND `items_main`.`type` != "20" AND `items_main`.`type` != "21" AND `items_main`.`type` != "22" AND `items_main`.`type` != "15" AND `items_main`.`type` != "12" AND `items_main`.`type` != "4" AND `items_main`.`type` != "5" AND `items_main`.`type` != "6" AND `items_main`.`type` != "1" AND `items_main`.`type` != "3" AND `items_main`.`type` != "8" AND `items_main`.`type` != "14" AND `items_main`.`type` != "13" AND `items_main`.`type` != "9" AND `items_main`.`type` != "10" AND `items_main`.`type` != "11" AND `items_main`.`type` != "29" AND `items_main`.`type` != "30" GROUP BY `items_users`.`item_id` ORDER BY `items_main`.`id` DESC'
);
}
}
$cr = 'c8c8c8';
$i = 0;
$steckCikl = 1;
while ($pl = mysql_fetch_array($cl)) {
// количетсво одинаковых предметов в комке
if ($preview == "preview") {
$steck = ['--', '--', '--', '--'];
}
if ($cr == 'd4d4d4') {
$cr = 'c8c8c8';
} else {
$cr = 'd4d4d4';
}
if ($preview == "preview" && ($steck[0] > 1 && $steck[0] > $steckCikl)) {
++$steckCikl;
} else {
$steckCikl = 1;
$d = mysql_fetch_array(
mysql_query(
'SELECT `id`,`items_id`,`data` FROM `items_main_data` WHERE `items_id` = "' . $pl['item_id'] . '" LIMIT 1'
)
);
if ($steck[0] > 1 && $preview == "preview") {
$po = $this->lookStats($d['data']);
} else {
$po = $this->lookStats($pl['data']);
}
if (($pl['type'] >= 18 && $pl['type'] <= 24) || $pl['type'] == 26 || $pl['type'] == 27) {
//Зоны блока +
if ($pl['inOdet'] != 14) {
$po['zonb']++;
}
}
$is2 = '';
$is1 = '<img src="https://img.new-combats.com/i/items/' . $pl['img'] . '"><br>';
if ($preview == "full") {
$is1 .= '<a href="?otdel=' . ((int)$_GET['otdel']) . '&toRent=3&itemid=' . (int)$_GET['itemid'] . '&buy=' . $pl[0] . '&sd4=' . $this->info['nextAct'] . '&rnd=' . $code . ' " >купить</a> ';
} elseif ($preview == "preview") {
$is1 .= '<a href="?otdel=' . ((int)$_GET['otdel']) . '&toRent=3&itemid=' . $pl['item_id'] . ' " >Просмотреть</a> ';
}
//название
$col = $this->itemsX($pl[0]);
if ($col > 1 && $pl['inGroup'] != 0 && $pl['inGroupCount'] > 1) {
$pl['kolvo'] = $col;
$pl['name'] .= ' (x' . $col . ')';
}
$is2 .= '<a href="https://new-combats.com/item/' . $pl['item_id'] . '" target="_blank">' . $pl['name'] . '</a> &nbsp; &nbsp;';
if ($pl['massa'] > 0 && $preview == "full") {
$is2 .= '(Масса: ' . round($pl['massa'], 2) . ')';
if ($pl['gift'] != '') {
$ttl = '';
if ($pl['gift'] == 1) {
$ttl = 'Вы не можете передать этот предмет кому-либо';
} else {
$ttl = 'Этот предмет подарил ' . $pl['gift'] . '. Вы не сможете передать этот предмет кому-либо еще';
}
$is2 .= ' <img title="' . $ttl . '" src="https://img.new-combats.com/i/podarok.gif">';
}
if (isset($po['art'])) {
$is2 .= ' <img title="Артефакт" src="https://img.new-combats.com/i/artefact.gif">';
}
if (isset($po['sudba'])) {
if ($po['sudba'] == '0') {
$is2 .= ' <img title="Этот предмет будет связан общей судьбой с первым, кто наденет его. Никто другой не сможет его использовать." src="https://img.new-combats.com/i/destiny0.gif">';
} elseif ($po['sudba'] == '1') {
$is2 .= ' <img title="Этот предмет будет связан общей судьбой с первым, кто возьмет предмет. Никто другой не сможет его использовать." src="https://img.new-combats.com/i/destiny0.gif">';
} else {
$is2 .= ' <img title="Этот предмет связан общей судьбой с ' . $po['sudba'] . '. Никто другой не сможет его использовать." src="https://img.new-combats.com/i/desteny.gif">';
}
}
}
//цена
$is2 .= '<br><strong>Цена: ';
if ($steck[0] > 1 && $preview == "preview") {
$is2 .= $steck[3] . '-' . $steck[4] . ' кр.</strong> ';
} else {
$is2 .= $pl['1price'] . ' кр.</strong> ';
}
if ($pl['pricerep'] > 0) {
$is2 .= ' <small><strong>(' . round($pl['pricerep'], 2) . ' Воинственности)</strong></small>';
}
//долговечность
if ($pl['iznosMAX'] > 0) {
$izcol = '';
if (floor($pl['iznosNOW']) >= (floor($pl['iznosMAX']) - ceil($pl['iznosMAX']) / 100 * 20)) {
$izcol = 'brown';
}
}
if ($preview == "preview") {
$is2 .= '<br>Долговечность: <font color="' . $izcol . '">' . floor($steck[1]) . '/' . ceil(
$steck[2]
) . '</font>';
} else {
if ($pl['iznosMAXi'] == 999999999) {
$is2 .= '<br>Долговечность: <font color="brown">неразрушимо</font>';
} else {
$is2 .= '<br>Долговечность: <font color="' . $izcol . '">' . floor(
$pl['iznosNOW']
) . '/' . ceil($pl['iznosMAX']) . '</font>';
}
}
//Срок годности предмета
if ($po['srok'] > 0) {
$pl['srok'] = $po['srok'];
}
if ($pl['srok'] > 0 and $preview != "preview") {
if ($pl['time_create'] + $pl['srok'] < time()) {
$is2 .= '<br>Срок годности: ' . $this->timeOut($pl['srok']) . ' (испорчен)';
} else {
$is2 .= '<br>Срок годности: ' . $this->timeOut($pl['srok']) . ' (до ' . date(
'd.m.Y H:i', $pl['time_create'] + $pl['srok']
) . ')';
}
} elseif ($pl['srok'] > 0) {
$is2 .= '<br>Срок годности: ' . $this->timeOut($pl['srok']);
}
if ($pl['magic_chance'] > 0) {
$is2 .= '<br>Вероятность срабатывания: ' . min([$pl['magic_chance'], 100]) . '%';
}
//Продолжительность действия магии:
if ((int)$pl['magic_inci'] > 0) {
$efi = mysql_fetch_array(
mysql_query(
'SELECT `id2`,`mname`,`type1`,`img`,`mdata`,`actionTime`,`type2`,`type3`,`onlyOne`,`oneType`,`noAce`,`see`,`info`,`overch`,`bp`,`noch` FROM `eff_main` WHERE `id2` = "' . ((int)$pl['magic_inci']) . '" LIMIT 1'
)
);
if (isset($efi['id2']) && $efi['actionTime'] > 0) {
$is2 .= '<br>Продолжительность действия: ' . $this->timeOut($efi['actionTime']);
}
}
if ($preview == "full" || $preview == "preview") {
//<strong>Требуется минимальное:</strong>
$tr = '';
$t = $this->items['tr'];
$x = 0;
while ($x < count($t)) {
$n = $t[$x];
if (isset($po['tr_' . $n]) && $po['tr_' . $n] != 0) {
if ($po['tr_' . $n] > $this->stats[$n]) {
if ($n == 'rep') {
$temp = explode('::', $po['tr_' . $n]);
if ($this->rep['rep' . $temp[1]] < $temp[0]) {
$tr .= '<font color="red">';
$notr++;
}
unset($temp);
} elseif ($n != 'align' || floor($this->info['align']) != $po['tr_' . $n]) {
$tr .= '<font color="red">';
$notr++;
}
}
$tr .= '<br>• ';
if ($n == 'rep') {
$temp = explode('::', $po['tr_' . $n]);
$tr .= $this->is[$n] . ' ' . ucfirst(
str_replace('city', ' city', $temp[1])
) . ': ' . $temp[0];
unset($temp);
} elseif ($n != 'align') {
if ($n == 'sex') {
if ($po['tr_' . $n] == 1) {
$tr .= $this->is[$n] . ': Женский';
} else {
$tr .= $this->is[$n] . ': Мужской';
}
} else {
$tr .= $this->is[$n] . ': ' . $po['tr_' . $n];
}
} else {
$tr .= $this->is[$n] . ': ' . $this->align_nm[$po['tr_' . $n]];
}
if ($po['tr_' . $n] > $this->stats[$n]) {
if ($n != 'align' || floor($this->info['align']) != $po['tr_' . $n]) {
$tr .= '</font>';
}
}
}
$x++;
}
if ($tr != '') {
$is2 .= '<br><strong>Требуется минимальное:</strong>' . $tr;
}
//<strong>Действует на:</strong>
$tr = '';
$t = $this->items['add'];
$x = 0;
while ($x < count($t)) {
$n = $t[$x];
if (isset($po['add_' . $n], $this->is[$n])) {
$z = '+';
if ($po['add_' . $n] < 0) {
$z = '';
}
$tr .= '<br>• ' . $this->is[$n] . ': ' . $z . '' . $po['add_' . $n];
}
$x++;
}
//действует на (броня)
$i = 1;
$bn = [1 => 'головы', 2 => 'корпуса', 3 => 'пояса', 4 => 'ног'];
while ($i <= 4) {
if (isset($po['add_mab' . $i])) {
if ($po['add_mab' . $i] == $po['add_mib' . $i] && $pl['geniration'] == 1) {
$z = '+';
if ($po['add_mab' . $i] < 0) {
$z = '';
}
$tr .= '<br>• Броня ' . $bn[$i] . ': ' . $z . '' . $po['add_mab' . $i];
} else {
$tr .= '<br>• Броня ' . $bn[$i] . ': ' . $po['add_mib' . $i] . '-' . $po['add_mab' . $i] . ' (' . $this->bronFx(
[$po['add_mib' . $i], $po['add_mab' . $i]]
) . ')';
}
}
$i++;
}
if ($tr != '') {
$is2 .= '<br><strong>Действует на:</strong>' . $tr;
}
//<strong>Свойства предмета:</strong>
$tr = '';
$t = $this->items['sv'];
if (isset($po['sv_yron_min'], $po['sv_yron_max'])) {
$tr .= '<br>• Урон: ' . $po['sv_yron_min'] . ' - ' . $po['sv_yron_max'];
}
$x = 0;
while ($x < count($t)) {
$n = $t[$x];
if (isset($po['sv_' . $n])) {
$z = '+';
if ($po['sv_' . $n] < 0) {
$z = '';
}
$tr .= '<br>• ' . $this->is[$n] . ': ' . $z . '' . $po['sv_' . $n];
}
$x++;
}
if ($pl['2too'] == 1) {
$tr .= '<br>• Второе оружие';
}
if ($pl['2h'] == 1) {
$tr .= '<br>• Двуручное оружие';
}
if (isset($po['zonb'])) {
$tr .= '<br>• Зоны блокирования: ';
if ($po['zonb'] > 0) {
$x = 1;
while ($x <= $po['zonb']) {
$tr .= '+';
$x++;
}
} else {
$tr .= '—';
}
}
if ($tr != '') {
$is2 .= '<br><strong>Свойства предмета:</strong>' . $tr;
}
$tr = '';
if (isset($po['imposed']) && $po['imposed'] > 0) {
if ($po['imposed_lvl'] == 0) {
$rnc = 'maroon';
} elseif ($po['imposed_lvl'] == 1) {
$rnc = '#624542';
} elseif ($po['imposed_lvl'] == 2) {
$rnc = '#77090b';
} elseif ($po['imposed_lvl'] == 3) {
$rnc = '#d99800';
} else {
$rnc = '#282828';
}
$po['imposed_name'] = str_replace('Чары ', '', $po['imposed_name']);
$tr .= '<br>&bull; <font color=' . $rnc . '>Наложены заклятия:</font> ' . $po['imposed_name'] . ' ';
unset($rnc);
}
if ($tr != '') {
$is2 .= '<br><strong>Улучшения предмета:</strong>';
$is2 .= $tr;
}
if ($notr == 0) {
$d[0] = 1;
if ($pl['magic_inc'] != '') {
$d[2] = 1;
}
}
if (isset($po['free_stats']) && $po['free_stats'] > 0) {
$is2 .= '<br><strong>Распределение статов:</strong>';
$is2 .= '&bull; Возможных распределений: ' . $po['free_stats'] . '';
}
if (floor($pl['iznosNOW']) >= ceil($pl['iznosMAX'])) {
$d[0] = 0;
$d[2] = 0;
}
if (isset($po['complect']) || isset($po['complect2'])) {
$is2 .= '<br><i>Дополнительная информация:</i>';
}
if (isset($po['complect'])) {
//не отображается
$com1 = ['name' => 'Неизвестный Комплект', 'x' => 0, 'text' => ''];
$spc = mysql_query(
'SELECT `id`,`com`,`name`,`x`,`data` FROM `complects` WHERE `com` = "' . $po['complect'] . '" ORDER BY `x` ASC LIMIT 20'
);
while ($plc = mysql_fetch_array($spc)) {
$com1['name'] = $plc['name'];
$com1['text'] .= '&nbsp; &nbsp; &bull; <font color="green">' . $plc['x'] . '</font>: ';
//действие комплекта
$i1c = 0;
$i2c = 0;
$i1e = $this->lookStats($plc['data']);
while ($i1c < count($this->items['add'])) {
if (isset($i1e[$this->items['add'][$i1c]])) {
$i3c = $i1e[$this->items['add'][$i1c]];
if ($i3c > 0) {
$i3c = '+' . $i3c;
}
if ($i2c > 0) {
$com1['text'] .= '&nbsp; &nbsp; ' . $this->is[$this->items['add'][$i1c]] . ': ' . $i3c;
} else {
$com1['text'] .= $this->is[$this->items['add'][$i1c]] . ': ' . $i3c;
}
$com1['text'] .= '<br>';
$i2c++;
}
$i1c++;
}
unset($i1c, $i2c, $i3c);
$com1['x']++;
}
$is2 .= '<br>&bull; Часть комплекта: <strong>' . $com1['name'] . '</strong><br><small>';
$is2 .= $com1['text'];
$is2 .= '</small>';
}
if (isset($po['complect2'])) {
//не отображается
$com1 = ['name' => 'Неизвестный Комплект', 'x' => 0, 'text' => ''];
$spc = mysql_query(
'SELECT `id`,`com`,`name`,`x`,`data` FROM `complects` WHERE `com` = "' . $po['complect2'] . '" ORDER BY `x` ASC LIMIT 20'
);
while ($plc = mysql_fetch_array($spc)) {
$com1['name'] = $plc['name'];
$com1['text'] .= '&nbsp; &nbsp; &bull; <font color="green">' . $plc['x'] . '</font>: ';
//действие комплекта
$i1c = 0;
$i2c = 0;
$i1e = $this->lookStats($plc['data']);
while ($i1c < count($this->items['add'])) {
if (isset($i1e[$this->items['add'][$i1c]])) {
$i3c = $i1e[$this->items['add'][$i1c]];
if ($i3c > 0) {
$i3c = '+' . $i3c;
}
if ($i2c > 0) {
$com1['text'] .= '&nbsp; &nbsp; ' . $this->is[$this->items['add'][$i1c]] . ': ' . $i3c;
} else {
$com1['text'] .= $this->is[$this->items['add'][$i1c]] . ': ' . $i3c;
}
$com1['text'] .= '<br>';
$i2c++;
}
$i1c++;
}
unset($i1c, $i2c, $i3c);
$com1['x']++;
}
$is2 .= '<br>&bull; Часть комплекта (подгонка): <strong>' . $com1['name'] . '</strong><br><small>';
$is2 .= $com1['text'];
$is2 .= '</small>';
}
$is2 .= '<small style="">';
if (isset($po['gravi'])) {
$is2 .= '<br>На поверхности выгравирована надпись: <strong>' . $po['gravi'] . '</strong>';
}
if ($pl['info'] != '') {
$is2 .= '<div><strong>Рекомендации:</strong></div><div>' . $pl['info'] . '</div>';
}
if ($po['info'] != '') {
$is2 .= '<div>' . $po['info'] . '</div>';
}
if ($pl['max_text'] - $pl['use_text'] > 0) {
$is2 .= '<div>Количество символов: ' . ($pl['max_text'] - $pl['use_text']) . '</div>';
}
if (isset($po['noremont'])) {
$is2 .= '<div style="color:brown;">Предмет не подлежит ремонту</div>';
}
if (isset($po['nosale'])) {
$is2 .= '<div style="color:brown;">Предмет нельзя продать</div>';
}
if (isset($po['nomodif'])) {
$is2 .= '<div style="color:brown;">Предмет нельзя улучшать</div>';
}
if (isset($po['nodelete'])) {
$is2 .= '<div style="color:brown;">Предмет нельзя выбросить</div>';
}
if (isset($po['frompisher']) && $po['frompisher'] > 0) {
$is2 .= '<div style="color:brown;">Предмет из подземелья</div>';
}
if (isset($po['sleep_moroz']) && $po['sleep_moroz'] > 0) {
$is2 .= '<div style="color:brown;">Предмет не портится во время сна</div>';
}
if (isset($po['fromlaba']) && $po['fromlaba'] > 0) {
$is2 .= '<div style="color:brown;">Предмет из лабиринта</div>';
}
if (isset($po['vip_sale']) && $po['vip_sale'] > 0) {
$is2 .= '<div style="color:brown;">Предмет куплен за 10% от стоимости</div>';
}
if ($pl['dn_delete'] > 0) {
$is2 .= '<div style="color:brown;">Предмет будет удален при выходе из подземелья</div>';
}
if ($this->pokol > $pl['geni']) {
$is2 .= '<div style="color:brown">Предмет устарел</div>';
}
if (isset($po['zazuby']) && $po['zazuby'] > 0) {
$is2 .= '<div style="color:brown;">Предмет куплен за зубы</div>';
}
$is2 .= '</small>';
}
if ($preview == "preview") {
$kolvoprint = "<small style=\"float:right; color:grey;\" align=\"right\">Количество: <strong>$steck[0]</strong> шт.</small>";
}
echo '<tr style="background-color:#' . $cr . ';"><td width="100" style="padding:7px;" valign="middle" align="center">' . $is1 . '</td><td style="padding:7px;" valign="top">' . $kolvoprint . $is2 . '</td></tr>';
$i++;
}
}
if ($i == 0) {
echo '<tr style="background-color:#' . $cr . ';"><td style="padding:7px;" align="center" valign="top">Прилавок магазина пуст</td></tr>';
}
}
}

View File

@ -8,10 +8,8 @@ class Config
private function __construct()
{
error_reporting(E_ALL ^ E_NOTICE);
setlocale(LC_CTYPE, "ru_RU.CP1251");
ini_set('display_errors', 'Off');
ini_set('default_charset', 'windows-1251');
ini_set('date.timezone', 'Europe/Moscow');
header('Cache-Control: no-cache, no-store, must-revalidate');
@ -22,16 +20,16 @@ class Config
public static function get(?string $key = null)
{
$c['ver'] = '1.8.3.7';
/* Конфигурации игры */
$c['name'] = 'Бойцовский Клуб';
$c['title'] = 'Новый «' . $c['name'] . '» - Бесплатная,браузерная онлайн игра'; //Название игры
$c['title2'] = ' - Бесплатная, онлайн игра посвященная сражениям и магии!';
/* Конфигурации игры */
$c['name'] = 'Бойцовский Клуб';
$c['title'] = 'Новый «' . $c['name'] . '» - Бесплатная,браузерная онлайн игра'; //Название игры
$c['title2'] = ' - Бесплатная, онлайн игра посвященная сражениям и магии!';
$c['title3'] = $c['name'];
$c['keys'] = $c['name'] . ', combats.com, ' . $c['name'] . ' игра, ' . $c['name'] . ' играть, игра ' . $c['name'] . ', старый ' . $c['name'] . ', ' . $c['name'] . ' онлайн игра, ' . $c['name'] . ' браузерная игра, играть в ' . $c['name'] . ', игра бк, бк игра, старый бк, играть в бк, бк онлайн игра, новый бк, Легендарный ' . $c['name'] . ', легендарный бк, combats, комбатс, combats ru, combats com, OldBK, oldbk ru, oldbk com, олдбк, old bk, олд бк, mycombats, rebk, recombats, oldcombats, obk2'; //Ключевые слова META
$c['desc'] = '«' . $c['name'] . это бесплатная увлекательная браузерная онлайн игра 2004-2009г, в которой сконцентрировано все самое лучшее от современных онлайн игр. В этой браузерной игре заложены самые интересные традиции всем известной онлайн игры под названием «' . $c['name'] . ' 2004-2009», которая, кстати, стала первооткрывателем всех браузерных игр.'; //Описание META
$c['footer'] = $c['name'] . ' © 2013-' . date('Y');
$c['keys'] = $c['name'] . ', combats.com, ' . $c['name'] . ' игра, ' . $c['name'] . ' играть, игра ' . $c['name'] . ', старый ' . $c['name'] . ', ' . $c['name'] . ' онлайн игра, ' . $c['name'] . ' браузерная игра, играть в ' . $c['name'] . ', игра бк, бк игра, старый бк, играть в бк, бк онлайн игра, новый бк, Легендарный ' . $c['name'] . ', легендарный бк, combats, комбатс, combats ru, combats com, OldBK, oldbk ru, oldbk com, олдбк, old bk, олд бк, mycombats, rebk, recombats, oldcombats, obk2'; //Ключевые слова META
$c['desc'] = '«' . $c['name'] . это бесплатная увлекательная браузерная онлайн игра 2004-2009г, в которой сконцентрировано все самое лучшее от современных онлайн игр. В этой браузерной игре заложены самые интересные традиции всем известной онлайн игры под названием «' . $c['name'] . ' 2004-2009», которая, кстати, стала первооткрывателем всех браузерных игр.'; //Описание META
$c['footer'] = $c['name'] . ' © 2013-' . date('Y');
//Сервера
//Сервера
$c['host'] = 'new-combats.com';
$c['forum'] = 'forum.' . $c['host'];
$c['img'] = 'img.' . $c['host'];
@ -43,52 +41,52 @@ class Config
$c['support'] = 'support@' . $c['host'];
//Валюта
//Валюта
$c['curency_name'] = 'RUB';
$c['curency_value'] = 30;
//Бот клон
$c['bot_level'] = 0; // до какого лвл бот (включительно)
$c['propsk_die'] = 0; //Смерть при пропуске ходов, 0 - выкл. , >= 1 - количество пропусков до смерти при нападении
//Бот клон
$c['bot_level'] = 0; // до какого лвл бот (включительно)
$c['propsk_die'] = 0; //Смерть при пропуске ходов, 0 - выкл. , >= 1 - количество пропусков до смерти при нападении
//Скупка
$c['exp'] = 0; //бонус опыта
$c['shop_type1'] = 100; //в гос НЕ ТРОГАТЬ
$c['shop_type2'] = 90; //в березку НЕ ТРОГАТЬ
$c['shop_all'] = 0; //Скупка на все! , 0 - сделать для отключения скупки.
$c['shop_all_type1'] = 100; //Скупка только с госе! , 0 - сделать для отключения скупки.
$c['shop_all_type2'] = 100; //Скупка только с березки! , 0 - сделать для отключения скупки.
//Скупка
$c['exp'] = 0; //бонус опыта
$c['shop_type1'] = 100; //в гос НЕ ТРОГАТЬ
$c['shop_type2'] = 90; //в березку НЕ ТРОГАТЬ
$c['shop_all'] = 0; //Скупка на все! , 0 - сделать для отключения скупки.
$c['shop_all_type1'] = 100; //Скупка только с госе! , 0 - сделать для отключения скупки.
$c['shop_all_type2'] = 100; //Скупка только с березки! , 0 - сделать для отключения скупки.
//
$c['nosanich'] = true; //Странички Саныча не выпадают - true , выпадают - false
$c['zuby'] = false; //зубы
$c['limitedexp'] = false; //лимит опыта
$c['infinity5level'] = false; //вечные 5 уровни
$c['expstop'] = 2999999; //9; //Опыт на котором останавливаемся 11 149999999
$c['expstopu'] = 2999999; //Опыт на котором останавливаемся
$c['noobgade'] = false; //нуб квест (пещера)
$c['bonusonline'] = true; //бонус за онлайн
$c['level_ransfer'] = 8; //С какого уровня разрешены передачи
$c['znahar'] = true; //бесплатный знахарь
$c['nolevel'] = false; //лимитирование уровней
$c['noitembuy'] = false; //Не требует ресурсы для покупки
$c['effz'] = 0; //Скольким секундам равен заряд
$c['money_haot'] = true; //кр за хаоты
$c['crtoecr'] = 500; //Курс обмена кр на екр (если 0, то выключено)
$c['ecrtocr'] = 200; //Курс обмена екр на кр
$c['bonuslevel'] = true; //Бонус уровня
$c['bonussocial'] = false; //Бонус социальный
$c['nosanich'] = true; //Странички Саныча не выпадают - true , выпадают - false
$c['zuby'] = false; //зубы
$c['limitedexp'] = false; //лимит опыта
$c['infinity5level'] = false; //вечные 5 уровни
$c['expstop'] = 2999999; //9; //Опыт на котором останавливаемся 11 149999999
$c['expstopu'] = 2999999; //Опыт на котором останавливаемся
$c['noobgade'] = false; //нуб квест (пещера)
$c['bonusonline'] = true; //бонус за онлайн
$c['level_ransfer'] = 8; //С какого уровня разрешены передачи
$c['znahar'] = true; //бесплатный знахарь
$c['nolevel'] = false; //лимитирование уровней
$c['noitembuy'] = false; //Не требует ресурсы для покупки
$c['effz'] = 0; //Скольким секундам равен заряд
$c['money_haot'] = true; //кр за хаоты
$c['crtoecr'] = 500; //Курс обмена кр на екр (если 0, то выключено)
$c['ecrtocr'] = 200; //Курс обмена екр на кр
$c['bonuslevel'] = true; //Бонус уровня
$c['bonussocial'] = false; //Бонус социальный
$c['w'] = date('w');
$c['m'] = date('m');
$c['counters'] = '';
$c['counters_noFrm'] = '';
$c['securetime'] = 0; //Время последнего возможного взлома персов (подбор пароля по базам данных других игр)
$c['securetime'] = 0; //Время последнего возможного взлома персов (подбор пароля по базам данных других игр)
$c['copyright'] = 'Copyright © ' . date('Y') . ' « Новый Бойцовский Клуб »';
$c['db_user'] = 'newcom1_abk';
$c['db_name'] = 'newcom1_abk';
$c['db_password'] = '4nWYsIM[c?}P';
$c['copyright'] = 'Copyright © ' . date('Y') . ' « Новый Бойцовский Клуб »';
$c['db_user'] = 'prod1';
$c['db_name'] = 'game_production';
$c['db_password'] = 'Bz@fGaZjFU2206Ua';
return $c[$key] ?? $c;
}

View File

@ -14,7 +14,7 @@ class Database
*/
private function __construct() {
mysql_select_db(Config::get('db_name'), mysql_connect('localhost', Config::get('db_user'), Config::get('db_password')));
mysql_query('SET NAMES cp1251');
mysql_query('SET NAMES utf8mb4');
}
/**
@ -42,7 +42,7 @@ class Database
[
PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION,
PDO::ATTR_DEFAULT_FETCH_MODE => PDO::FETCH_ASSOC,
PDO::MYSQL_ATTR_INIT_COMMAND => "SET NAMES cp1251",
PDO::MYSQL_ATTR_INIT_COMMAND => "SET NAMES utf8mb4",
PDO::ATTR_STRINGIFY_FETCHES => false,
PDO::ATTR_EMULATE_PREPARES => false,
]

View File

@ -6,11 +6,9 @@ use PHPMailer;
class Mail
{
public static function send($to, $message, $subject = 'Áîéöîâñêèé êëóá')
public static function send($to, $message, $subject = 'Бойцовский клуб')
{
require dirname(__DIR__) . '/mail/class.phpmailer.php';
$message = mb_convert_encoding($message, 'UTF-8', 'CP1251');
$subject = mb_convert_encoding($subject, 'UTF-8', 'CP1251');
$mail = new PHPMailer;
$mail->IsSMTP(); // Set mailer to use SMTP
@ -23,7 +21,7 @@ class Mail
$mail->CharSet = 'UTF-8';
$mail->From = 'newcombats@yahoo.com';
$mail->FromName = mb_convert_encoding('Áîéöîâñêèé Êëóá', 'UTF-8', 'CP1251');
$mail->FromName = 'Бойцовский Клуб';
$mail->AddAddress($to); // Add a recipient
$mail->IsHTML(true); // Set email format to HTML

View 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;
}

View 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';
}
}

View 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");
}
}

View 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()
{
}
}

View 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

View File

@ -2,13 +2,13 @@
class DungeonEditor
{
public $bs, $info, $see, $error, $gs = 1, $map = [0 => [] //êàðòà
public $bs, $info, $see, $error, $gs = 1, $map = [0 => [] //карта
], $id_dng, $cord = ['x' => 0], $sg = [1 => [1 => 1, 2 => 2, 3 => 3, 4 => 4], 2 => [1 => 2, 2 => 3, 3 => 4, 4 => 1], 3 => [1 => 3, 2 => 4, 3 => 1, 4 => 2], 4 => [1 => 4, 2 => 1, 3 => 2, 4 => 3]];
public function start()
{
global $u, $c, $code, $id;
$this->info = ['id2' => $id, 'id' => 0, 'name' => 'Ðåäàêòèðîâàíèå Ïåùåðû', 'room' => 0, 'time_start' => time(), 'time_start' => 0, 'uid' => 0, 'type' => 0, 'bsid' => 0];
$this->info = ['id2' => $id, 'id' => 0, 'name' => 'Редактирование Пещеры', 'room' => 0, 'time_start' => time(), 'time_start' => 0, 'uid' => 0, 'type' => 0, 'bsid' => 0];
$this->id_dng = $this->info['id2'];
$this->gs = $u->info['psevdo_s'];
@ -18,24 +18,24 @@ class DungeonEditor
if ($this->info['bsid'] > 0) {
$this->bs = mysql_fetch_array(mysql_query('SELECT * FROM `bs_turnirs` WHERE `city` = "' . $u->info['city'] . '" AND `id` = "' . $this->info['bsid'] . '" AND `time_start` = "' . $this->info['time_start'] . '" LIMIT 1'));
//Åñëè ÁÑ çàêîí÷åíà
//Если БС закончена
if (isset($this->bs['id']) && $this->bs['users'] - $this->bs['users_finish'] < 2) {
$u->bsfinish($this->bs, false, null);
}
}
/* ãåíåðèðóåì âèä ïåðñîíàæà (òîëüêî êàðòà)
$this->gs = 1; //ñìîòðèì ïðÿìî
2; //ñìîòðèì ëåâî
3; //ñìîòðèì âíèç
4; //ñìîòðèì ïðàâî
/* генерируем вид персонажа (только карта)
$this->gs = 1; //смотрим прямо
2; //смотрим лево
3; //смотрим вниз
4; //смотрим право
( ( ( `y` >= '.$u->info['psevdo_y'].' && `y` <= '.($u->info['psevdo_y']+4).' ) && ( `x` >= '.($u->info['psevdo_x']-1).' && `x` <= '.($u->info['psevdo_x']+1).' ) ) || ( (`x` = '.($u->info['psevdo_x']+2).' || `x` = '.($u->info['psevdo_x']-2).') && ( `y` = '.($u->info['psevdo_y']+3).' || `y` = '.($u->info['psevdo_y']+4).' ) ) )
*/
$whr = [1 => ' ((`x` <= ' . ($u->info['psevdo_x'] + 2) . ' && `x` >= ' . ($u->info['psevdo_x'] - 2) . ') && (`y` >= ' . $u->info['psevdo_y'] . ' && `y` <= ' . ($u->info['psevdo_y'] + 4) . ')) ', //ïðÿìî
3 => ' ((`x` <= ' . ($u->info['psevdo_x'] + 2) . ' && `x` >= ' . ($u->info['psevdo_x'] - 2) . ') && (`y` <= ' . $u->info['psevdo_y'] . ' && `y` >= ' . ($u->info['psevdo_y'] - 4) . ')) ', //âíèç
2 => ' ((`x` <= ' . $u->info['psevdo_x'] . ' && `x` >= ' . ($u->info['psevdo_x'] - 4) . ') && (`y` <= ' . ($u->info['psevdo_y'] + 2) . ' && `y` >= ' . ($u->info['psevdo_y'] - 2) . ')) ', //ëåâî
4 => ' ((`x` >= ' . $u->info['psevdo_x'] . ' && `x` <= ' . ($u->info['psevdo_x'] + 4) . ') && (`y` <= ' . ($u->info['psevdo_y'] + 2) . ' && `y` >= ' . ($u->info['psevdo_y'] - 2) . ')) ' //ïðàâî
$whr = [1 => ' ((`x` <= ' . ($u->info['psevdo_x'] + 2) . ' && `x` >= ' . ($u->info['psevdo_x'] - 2) . ') && (`y` >= ' . $u->info['psevdo_y'] . ' && `y` <= ' . ($u->info['psevdo_y'] + 4) . ')) ', //прямо
3 => ' ((`x` <= ' . ($u->info['psevdo_x'] + 2) . ' && `x` >= ' . ($u->info['psevdo_x'] - 2) . ') && (`y` <= ' . $u->info['psevdo_y'] . ' && `y` >= ' . ($u->info['psevdo_y'] - 4) . ')) ', //вниз
2 => ' ((`x` <= ' . $u->info['psevdo_x'] . ' && `x` >= ' . ($u->info['psevdo_x'] - 4) . ') && (`y` <= ' . ($u->info['psevdo_y'] + 2) . ' && `y` >= ' . ($u->info['psevdo_y'] - 2) . ')) ', //лево
4 => ' ((`x` >= ' . $u->info['psevdo_x'] . ' && `x` <= ' . ($u->info['psevdo_x'] + 4) . ') && (`y` <= ' . ($u->info['psevdo_y'] + 2) . ' && `y` >= ' . ($u->info['psevdo_y'] - 2) . ')) ' //право
];
$i = 1;
@ -44,7 +44,7 @@ class DungeonEditor
$this->map[0][$pl['y'] . '_' . $pl['x']] = $pl;
$i++;
}
$this->map['good'] = $i; //öåëûõ êëåòîê
$this->map['good'] = $i; //целых клеток
$this->map[1] = $this->genMatix();
$this->lookDungeon();
}
@ -53,43 +53,43 @@ class DungeonEditor
{
global $u, $c;
$r = '';
/* îòîáðàæåíèå áîòîâ (áåñïîëåçíî â äàííîì ðåäàêòîðå) */
/* отображение ботов (бесполезно в данном редакторе) */
}
public function atack($id)
{
global $u, $c, $code;
/* íàïàäåíèå, êàêîå íàïàäåíèå ìîæåò áûòü â ðåäàêòîðå? :) Íà ñàìîãî ñåáÿ, ñî ñòóëîì? :) */
/* нападение, какое нападение может быть в редакторе? :) На самого себя, со стулом? :) */
}
public function takeinv($id)
{
global $u, $c, $code;
/* Ýòî ðåäàêòîð, à íå ìàéíêðàôò, çäåñü íè÷åãî ñîáèðàòü íå íóæíî :) */
/* Это редактор, а не майнкрафт, здесь ничего собирать не нужно :) */
}
public function takeit($id)
{
global $u, $c, $code, $magic;
/*  ðåäàêòîðå íè÷åãî íå ïàäàåò ;) */
/* В редакторе ничего не падает ;) */
}
public function addItem($i)
{
//äîáàâëÿåì ïðåäìåò â ïåùåðó (âîçìîæíî âûïàë èç áîòà èëè èç ñóíäóêà)
/* À ÷òî åùå? Ïóëüò ê óïðàâëåíèþ Çåìëåé?! */
//добавляем предмет в пещеру (возможно выпал из бота или из сундука)
/* А что еще? Пульт к управлению Землей?! */
}
public function itemsMap()
{
global $u, $c, $code;
/* Äà íè÷åãî çäåñü íå ïàäàåò! Ãîâîðþ æå! */
/* Да ничего здесь не падает! Говорю же! */
}
public function testLike($x1, $y1, $x2, $y2)
{
//èç $x1,$y1 â $x2,$y2
//äîñòóïíà-ëè ýòà êëåòêà äëÿ äåéñòâèé
//из $x1,$y1 в $x2,$y2
//доступна-ли эта клетка для действий
$r = 0;
$c1 = mysql_fetch_array(mysql_query('SELECT * FROM `dungeon_map` WHERE `x` = "' . $x1 . '" AND `y` = "' . $y1 . '" AND `id_dng` = "' . $this->info['id2'] . '" LIMIT 1'));
$c2 = mysql_fetch_array(mysql_query('SELECT * FROM `dungeon_map` WHERE `x` = "' . $x2 . '" AND `y` = "' . $y2 . '" AND `id_dng` = "' . $this->info['id2'] . '" LIMIT 1'));
@ -97,10 +97,10 @@ class DungeonEditor
if ($x1 == $x2 && $y1 == $y2) {
$r = 1;
} elseif (
$x1 == $x2 - 1 && $c1['go_1'] == 1 || //ïðàâî
$x1 == $x2 + 1 && $c1['go_2'] == 1 || //ëåâî
$y1 == $y2 - 1 && $c1['go_3'] == 1 || //âåðõ
$y1 == $y2 + 1 && $c1['go_4'] == 1 //íèç
$x1 == $x2 - 1 && $c1['go_1'] == 1 || //право
$x1 == $x2 + 1 && $c1['go_2'] == 1 || //лево
$y1 == $y2 - 1 && $c1['go_3'] == 1 || //верх
$y1 == $y2 + 1 && $c1['go_4'] == 1 //низ
)
{
$r = 1;
@ -113,13 +113,13 @@ class DungeonEditor
{
global $u, $c, $code;
////i:{id,name,mapPoint,action,img,type},
//'count':1,0:{0:1234,1:'Ñóíäóê',2:5,3:'',4:'test.gif',5:0,6:position,7:width,8:heigh,9:left,10:top},
//psition 0 - ïî öåíòðó , 1- ñâåðõó, 2- ñëåâà, 3- ñíèçó, 4- ñïðàâà
//'count':1,0:{0:1234,1:'Сундук',2:5,3:'',4:'test.gif',5:0,6:position,7:width,8:heigh,9:left,10:top},
//psition 0 - по центру , 1- сверху, 2- слева, 3- снизу, 4- справа
$r = '';
$whr = [1 => ' (((`u`.`x` <= ' . ($u->info['psevdo_x'] + 2) . ' && `u`.`x` >= ' . ($u->info['psevdo_x'] - 2) . ') && (`u`.`y` >= ' . ($u->info['psevdo_y'] + 1) . ' && `u`.`y` <= ' . ($u->info['psevdo_y'] + 4) . ')) OR (`u`.`y` = ' . $u->info['psevdo_y'] . ' && `u`.`x` = ' . $u->info['psevdo_x'] . ')) ', //ïðÿìî
3 => ' (((`u`.`x` <= ' . ($u->info['psevdo_x'] + 2) . ' && `u`.`x` >= ' . ($u->info['psevdo_x'] - 2) . ') && (`u`.`y` <= ' . ($u->info['psevdo_y'] - 1) . ' && `u`.`y` >= ' . ($u->info['psevdo_y'] - 4) . ')) OR (`u`.`y` = ' . $u->info['psevdo_y'] . ' && `u`.`x` = ' . $u->info['psevdo_x'] . ')) ', //âíèç
2 => ' (((`u`.`x` <= ' . ($u->info['psevdo_x'] - 1) . ' && `u`.`x` >= ' . ($u->info['psevdo_x'] - 4) . ') && (`u`.`y` <= ' . ($u->info['psevdo_y'] + 2) . ' && `u`.`y` >= ' . ($u->info['psevdo_y'] - 2) . '))OR (`u`.`y` = ' . $u->info['psevdo_y'] . ' && `u`.`x` = ' . $u->info['psevdo_x'] . ')) ', //ëåâî
4 => ' (((`u`.`x` >= ' . ($u->info['psevdo_x'] + 1) . ' && `u`.`x` <= ' . ($u->info['psevdo_x'] + 4) . ') && (`u`.`y` <= ' . ($u->info['psevdo_y'] + 2) . ' && `u`.`y` >= ' . ($u->info['psevdo_y'] - 2) . ')) OR (`u`.`y` = ' . $u->info['psevdo_y'] . ' && `u`.`x` = ' . $u->info['psevdo_x'] . ')) ' //ïðàâî
$whr = [1 => ' (((`u`.`x` <= ' . ($u->info['psevdo_x'] + 2) . ' && `u`.`x` >= ' . ($u->info['psevdo_x'] - 2) . ') && (`u`.`y` >= ' . ($u->info['psevdo_y'] + 1) . ' && `u`.`y` <= ' . ($u->info['psevdo_y'] + 4) . ')) OR (`u`.`y` = ' . $u->info['psevdo_y'] . ' && `u`.`x` = ' . $u->info['psevdo_x'] . ')) ', //прямо
3 => ' (((`u`.`x` <= ' . ($u->info['psevdo_x'] + 2) . ' && `u`.`x` >= ' . ($u->info['psevdo_x'] - 2) . ') && (`u`.`y` <= ' . ($u->info['psevdo_y'] - 1) . ' && `u`.`y` >= ' . ($u->info['psevdo_y'] - 4) . ')) OR (`u`.`y` = ' . $u->info['psevdo_y'] . ' && `u`.`x` = ' . $u->info['psevdo_x'] . ')) ', //вниз
2 => ' (((`u`.`x` <= ' . ($u->info['psevdo_x'] - 1) . ' && `u`.`x` >= ' . ($u->info['psevdo_x'] - 4) . ') && (`u`.`y` <= ' . ($u->info['psevdo_y'] + 2) . ' && `u`.`y` >= ' . ($u->info['psevdo_y'] - 2) . '))OR (`u`.`y` = ' . $u->info['psevdo_y'] . ' && `u`.`x` = ' . $u->info['psevdo_x'] . ')) ', //лево
4 => ' (((`u`.`x` >= ' . ($u->info['psevdo_x'] + 1) . ' && `u`.`x` <= ' . ($u->info['psevdo_x'] + 4) . ') && (`u`.`y` <= ' . ($u->info['psevdo_y'] + 2) . ' && `u`.`y` >= ' . ($u->info['psevdo_y'] - 2) . ')) OR (`u`.`y` = ' . $u->info['psevdo_y'] . ' && `u`.`x` = ' . $u->info['psevdo_x'] . ')) ' //право
];
$sp = mysql_query('SELECT `u`.* FROM `dungeon_obj` AS `u` WHERE `u`.`dn` = "0" AND `u`.`for_dn` = "' . $this->id_dng . '" AND ((`u`.`s` = "0" OR `u`.`s` = "' . $this->gs . '") OR `u`.`s2` = "' . $this->gs . '") AND ' . $whr[$this->gs] . ' LIMIT 76');
# die('SELECT `u`.* FROM `dungeon_obj` AS `u` WHERE `u`.`dn` = "0" AND `u`.`for_dn` = "'.$this->id_dng.'" AND ((`u`.`s` = "0" OR `u`.`s` = "'.$this->gs.'") OR `u`.`s2` = "'.$this->gs.'") AND '.$whr[$this->gs].' LIMIT 76');
@ -144,8 +144,8 @@ class DungeonEditor
$da[$dt2[$is][0]] = $dt2[$is][1];
$is++;
}
#if(isset($da['rl2']))$da['rl2'] = -round((int)$da['rl2'] * 0.70); // Ñëåâà
if (isset($da['rl2'])) $da['rl2'] = round((int)$da['rl2'] - 230); // Ñëåâà
#if(isset($da['rl2']))$da['rl2'] = -round((int)$da['rl2'] * 0.70); // Слева
if (isset($da['rl2'])) $da['rl2'] = round((int)$da['rl2'] - 230); // Слева
if (isset($da['rl3'])) $da['rl3'] = round((int)$da['rl3'] + 160);
if (isset($da['rl4'])) $da['rl4'] = round((int)$da['rl4'] - 120);
$pl['date'] = str_replace('"', '', json_encode($da));
@ -165,8 +165,8 @@ class DungeonEditor
$da[$dt2[$is][0]] = $dt2[$is][1];
$is++;
}
#if(isset($da['rl2']))$da['rl2'] = 355-round((int)$da['rl2'] * 0.30); // Ñïðàâà
if (isset($da['rl2'])) $da['rl2'] = round((int)$da['rl2'] + 230); // Ñïðàâà
#if(isset($da['rl2']))$da['rl2'] = 355-round((int)$da['rl2'] * 0.30); // Справа
if (isset($da['rl2'])) $da['rl2'] = round((int)$da['rl2'] + 230); // Справа
if (isset($da['rl3'])) $da['rl3'] = round((int)$da['rl3'] - 160);
if (isset($da['rl4'])) $da['rl4'] = round((int)$da['rl4'] + 120);
$pl['date'] = str_replace('"', '', json_encode($da));
@ -188,13 +188,13 @@ class DungeonEditor
////i:{id,login,mapPoint,sex,obraz,type,users_p},
//'count':1,0:{0:1015,1:'Test1',2:5,3:0,4:'1',5:'user',6:1},
$r = '';
$whr = [1 => ' ((`u`.`x` <= ' . ($u->info['psevdo_x'] + 2) . ' && `u`.`x` >= ' . ($u->info['psevdo_x'] - 2) . ') && (`u`.`y` >= ' . $u->info['psevdo_y'] . ' && `u`.`y` <= ' . ($u->info['psevdo_y'] + 4) . ')) ', //ïðÿìî
3 => ' ((`u`.`x` <= ' . ($u->info['psevdo_x'] + 2) . ' && `u`.`x` >= ' . ($u->info['psevdo_x'] - 2) . ') && (`u`.`y` <= ' . $u->info['psevdo_y'] . ' && `u`.`y` >= ' . ($u->info['psevdo_y'] - 4) . ')) ', //âíèç
2 => ' ((`u`.`x` <= ' . $u->info['psevdo_x'] . ' && `u`.`x` >= ' . ($u->info['psevdo_x'] - 4) . ') && (`u`.`y` <= ' . ($u->info['psevdo_y'] + 2) . ' && `u`.`y` >= ' . ($u->info['psevdo_y'] - 2) . ')) ', //ëåâî
4 => ' ((`u`.`x` >= ' . $u->info['psevdo_x'] . ' && `u`.`x` <= ' . ($u->info['psevdo_x'] + 4) . ') && (`u`.`y` <= ' . ($u->info['psevdo_y'] + 2) . ' && `u`.`y` >= ' . ($u->info['psevdo_y'] - 2) . ')) ' //ïðàâî
$whr = [1 => ' ((`u`.`x` <= ' . ($u->info['psevdo_x'] + 2) . ' && `u`.`x` >= ' . ($u->info['psevdo_x'] - 2) . ') && (`u`.`y` >= ' . $u->info['psevdo_y'] . ' && `u`.`y` <= ' . ($u->info['psevdo_y'] + 4) . ')) ', //прямо
3 => ' ((`u`.`x` <= ' . ($u->info['psevdo_x'] + 2) . ' && `u`.`x` >= ' . ($u->info['psevdo_x'] - 2) . ') && (`u`.`y` <= ' . $u->info['psevdo_y'] . ' && `u`.`y` >= ' . ($u->info['psevdo_y'] - 4) . ')) ', //вниз
2 => ' ((`u`.`x` <= ' . $u->info['psevdo_x'] . ' && `u`.`x` >= ' . ($u->info['psevdo_x'] - 4) . ') && (`u`.`y` <= ' . ($u->info['psevdo_y'] + 2) . ' && `u`.`y` >= ' . ($u->info['psevdo_y'] - 2) . ')) ', //лево
4 => ' ((`u`.`x` >= ' . $u->info['psevdo_x'] . ' && `u`.`x` <= ' . ($u->info['psevdo_x'] + 4) . ') && (`u`.`y` <= ' . ($u->info['psevdo_y'] + 2) . ' && `u`.`y` >= ' . ($u->info['psevdo_y'] - 2) . ')) ' //право
];
$i = 0;
//îòîáðàæàåì áîòîâ
//отображаем ботов
$sp = mysql_query('SELECT `u`.*,`st`.* FROM `dungeon_bots` AS `u` LEFT JOIN `test_bot` AS `st` ON (`u`.`id_bot` = `st`.`id`) WHERE ' . $whr[$this->gs] . ' AND `dn` = "0" AND `for_dn` = "' . $this->id_dng . '" AND `u`.`delete` = "0" LIMIT 50');
while ($pl = mysql_fetch_array($sp)) {
$i++;
@ -219,7 +219,7 @@ class DungeonEditor
$btli = mysql_fetch_array(mysql_query('SELECT `id` FROM `battle` WHERE `id` = "' . $user['battle'] . '" AND `team_win` = "-1" LIMIT 1'));
}
if (!isset($btli['id'])) {
//Ñîçäàåì ïîåäèíîê
//Создаем поединок
$btl_id = 0;
$expB = 0;
$btl = ['players' => '', 'timeout' => 180, 'type' => 0, 'invis' => 0, 'noinc' => 0, 'travmChance' => 0, 'typeBattle' => 0, 'addExp' => $expB, 'money' => 0];
@ -243,7 +243,7 @@ class DungeonEditor
$btl_id = mysql_insert_id();
if ($btl_id > 0) {
//Äîáàâëÿåì áîòîâ
//Добавляем ботов
$sp = mysql_query('SELECT * FROM `dungeon_bots` WHERE `for_dn` = "0" AND `dn` = "' . $this->info['id'] . '" AND `x` = "' . $bot['x'] . '" AND `y` = "' . $bot['y'] . '" LIMIT 50');
$j = 0;
$logins_bot = [];
@ -279,16 +279,16 @@ class DungeonEditor
global $u, $c, $code;
$go = 0;
if ($id == 1) {
//âïåðåä
//вперед
$go = $this->sg[$this->gs][1];
} elseif ($id == 2) {
//íàçàä
//назад
$go = $this->sg[$this->gs][3];
} elseif ($id == 3) {
//íà ïðàâî
//на право
$go = $this->sg[$this->gs][4];
} elseif ($id == 4) {
//íà ëåâî
//на лево
$go = $this->sg[$this->gs][2];
}
$thp = mysql_fetch_array(mysql_query('SELECT * FROM `dungeon_map` WHERE `x` = "' . $u->info['psevdo_x'] . '" AND `y` = "' . $u->info['psevdo_y'] . '" AND `id_dng` = "' . $this->info['id2'] . '" LIMIT 1'));
@ -313,7 +313,7 @@ class DungeonEditor
}
$tmap = mysql_fetch_array(mysql_query('SELECT * FROM `dungeon_map` WHERE `x` = "' . $u->info['psevdo_x'] . '" AND `y` = "' . $u->info['psevdo_y'] . '" AND `id_dng` = "' . $this->info['id2'] . '" LIMIT 1'));
//íàëè÷èå ïðåäìåòà
//наличие предмета
if ($tmap['tr_items'] != '') {
$ti = explode(',', $tmap['tr_items']);
$i = 0;
@ -335,19 +335,19 @@ class DungeonEditor
}
if ($trnit != '') {
$trnit = rtrim($trnit, ', ');
$this->error = 'Ó âàñ íåò ïîäõîäÿùåãî ïðåäìåòà. Òðåáóåòñÿ ' . $trnit;
$this->error = 'У вас нет подходящего предмета. Требуется ' . $trnit;
}
}
$tmGo = $u->info['timeGo'] - time(); //ñêîëüêî ñåêóíä îñòàëîñü
$tmGo = $u->info['timeGo'] - time(); //сколько секунд осталось
if ($tmGo > 0) {
$go = 0;
$this->error = 'Íå òàê áûñòðî...';
$this->error = 'Не так быстро...';
}
if ($u->aves['now'] >= $u->aves['max']) {
$go = 0;
$this->error = 'Âû íå ìîæåòå ïåðåìåùàòüñÿ, ðþêçàê ïåðåïîëíåí ...';
$this->error = 'Вы не можете перемещаться, рюкзак переполнен ...';
}
if ($go > 0) {
@ -371,16 +371,16 @@ class DungeonEditor
global $u, $c, $code;
$go = 0;
if ($id == 1) {
//âïåðåä
//вперед
$go = $this->sg[$this->gs][1];
} elseif ($id == 2) {
//íàçàä
//назад
$go = $this->sg[$this->gs][3];
} elseif ($id == 3) {
//íà ïðàâî
//на право
$go = $this->sg[$this->gs][4];
} elseif ($id == 4) {
//íà ëåâî
//на лево
$go = $this->sg[$this->gs][2];
}
$thp = mysql_fetch_array(mysql_query('SELECT * FROM `dungeon_map` WHERE `x` = "' . $u->info['psevdo_x'] . '" AND `y` = "' . $u->info['psevdo_y'] . '" AND `id_dng` = "' . $this->info['id2'] . '" LIMIT 1'));
@ -410,7 +410,7 @@ class DungeonEditor
public function testSt($id, $s)
{
$r = 0;
//çàìåíÿåì îòîáðàæåíèå ñòåí â çàâèñèìîñòè îò óãëà îáçîðà
//заменяем отображение стен в зависимости от угла обзора
$s = $this->sg[$this->gs][$s];
if (isset($this->map[1][$id]['id'])) {
$r = $this->map[1][$id]['st'][($s - 1)];
@ -421,7 +421,7 @@ class DungeonEditor
public function lookDungeon()
{
global $u, $c, $code, $pd;
/* Ãåíåðèðóåì èçîáðàæåíèå êàðòû */
/* Генерируем изображение карты */
/* LEVEL 1 */
if ($this->testSt(2, 4) > 0 || $this->testSt(3, 2) > 0) {
$pd[28] = 1;
@ -502,9 +502,9 @@ class DungeonEditor
$pd[3] = 1;
}
/* Ãåíåðèðóåì ïðåäìåòû íà êàðòå */
/* Генерируем предметы на карте */
/* Ãåíåðèðóåì ïåðñîíàæåé è áîòîâ íà êàðòå */
/* Генерируем персонажей и ботов на карте */
}
@ -520,7 +520,7 @@ class DungeonEditor
{
$r = [];
if ($this->gs == 1) {
//1; //ñìîòðèì ïðÿìî
//1; //смотрим прямо
$r[1] = $this->getMatrix(0, -1);
$r[2] = $this->getMatrix(0, 0);
$r[3] = $this->getMatrix(0, 1);
@ -541,7 +541,7 @@ class DungeonEditor
$r[18] = $this->getMatrix(4, 2);
$r[19] = $this->getMatrix(4, -2);
} elseif ($this->gs == 2) {
//2; //ñìîòðèì ëåâî
//2; //смотрим лево
$r[1] = $this->getMatrix(-1, 0);
$r[2] = $this->getMatrix(0, 0);
$r[3] = $this->getMatrix(1, 0);
@ -562,7 +562,7 @@ class DungeonEditor
$r[18] = $this->getMatrix(2, -4);
$r[19] = $this->getMatrix(-2, -4);
} elseif ($this->gs == 3) {
//3; //ñìîòðèì âíèç
//3; //смотрим вниз
$r[1] = $this->getMatrix(0, 1);
$r[2] = $this->getMatrix(0, 0);
$r[3] = $this->getMatrix(0, -1);
@ -583,7 +583,7 @@ class DungeonEditor
$r[18] = $this->getMatrix(-4, -2);
$r[19] = $this->getMatrix(-4, 2);
} elseif ($this->gs == 4) {
//4; //ñìîòðèì ïðàâî
//4; //смотрим право
$r[1] = $this->getMatrix(1, 0);
$r[2] = $this->getMatrix(0, 0);
$r[3] = $this->getMatrix(-1, 0);

File diff suppressed because it is too large Load Diff

View File

@ -10,7 +10,7 @@ class Filter
return ($str);
}
//
//Ñìàéëèêè
//Смайлики
private $sm = ["laugh" => 1, "fingal" => 1, "eek" => 1, "smoke" => 1, "hi" => 1, "bye" => 1, "king" => 1, "king2" => 1, "boks2" => 1, "boks" => 1, "gent" => 1, "lady" => 1, "tongue" => 1, "smil" => 1, "rotate" => 1, "ponder" => 1, "bow" => 1, "angel" => 1, "angel2" => 1, "hello" => 1, "dont" => 1, "idea" => 1, "mol" => 1, "super" => 1, "beer" => 1, "drink" => 1, "baby" => 1, "tongue2" => 1, "sword" => 1, "agree" => 1, "loveya" => 1, "kiss" => 1, "kiss2" => 1, "kiss3" => 1, "kiss4" => 1, "rose" => 1, "love" => 1, "love2" => 1, "confused" => 1, "yes" => 1, "no" => 1, "shuffle" => 1, "nono" => 1, "maniac" => 1, "privet" => 1, "ok" => 1, "ninja" => 1, "pif" => 1, "smash" => 1, "alien" => 1, "pirate" => 1, "gun" => 1, "trup" => 1, "mdr" => 1, "sneeze" => 1, "mad" => 1, "friday" => 1, "cry" => 1, "grust" => 1, "rupor" => 1, "fie" => 1, "nnn" => 1, "row" => 1, "red" => 1, "lick" => 1, "help" => 1, "wink" => 1, "jeer" => 1, "tease" => 1, "nunu" => 1, "inv" => 1, "duel" => 1, "susel" => 1, "nun" => 1, "kruger" => 1, "flowers" => 1, "horse" => 1, "hug" => 1, "str" => 1, "alch" => 1, "pal" => 1, "mag" => 1, "sniper" => 1, "vamp" => 1, "doc" => 1, "doc2" => 1, "sharp" => 1, "naem" => 1, "naem2" => 1, "naem3" => 1, "invis" => 1, "chtoza" => 1, "beggar" => 1, "sorry" => 1, "sorry2" => 1, "creator" => 1, "grace" => 1, "dustman" => 1, "carreat" => 1, "lordhaos" => 1, "ura" => 1, "elix" => 1, "dedmoroz" => 1, "snegur" => 1, "showng" => 1, "superng" => 1, "podz" => 1, "sten" => 1, "devil" => 1, "cat" => 1, "owl" => 1, "lightfly" => 1, "snowfight" => 1, "rocket" => 1, "ball" => 1, "smile" => 1, "fuck" => 1];
public function e($t)
@ -18,7 +18,7 @@ class Filter
mysql_query(
'INSERT INTO `chat` (`text`,`city`,`to`,`type`,`new`,`time`) VALUES ("#' . date('d.m.Y') . ' %' . date(
'H:i:s'
) . ': <b>' . mysql_real_escape_string($t) . '</b>","capitalcity","Èãðîìèð","6","1","-1")'
) . ': <b>' . mysql_real_escape_string($t) . '</b>","capitalcity","Игромир","6","1","-1")'
);
}
@ -56,8 +56,8 @@ class Filter
{
$str = strtolower($string);
if (strtolower('S') != 's') {
$ru = 'ÀÁÂÃÄŨÆÇÈÉÊËÌÍÎÐÏÑÒÓÔÕÖ×ØÙÚÜÛÝÞß';
$ru2 = 'àáâãäå¸æçèéêëìíîðïñòóôõö÷øùúüûýþÿ';
$ru = 'АБВГДЕЁЖЗИЙКЛМНОРПСТУФХЦЧШЩЪЬЫЭЮЯ';
$ru2 = 'абвгдеёжзийклмнорпстуфхцчшщъьыэюя';
$en = 'QWERTYUIOPASDFGHJKLZXCVBNM';
$en2 = 'qwertyuiopasdfghjklzxcvbnm';
$i = 0;
@ -77,7 +77,7 @@ class Filter
public function spamFiltr($txt)
{
$txt = str_replace('¸', ', $txt);
$txt = str_replace('ё', 'е', $txt);
$nospam = 0;
$txt = str_replace('&gt;', '', $txt);
@ -91,7 +91,7 @@ class Filter
}
$i++;
}
/* ôèëüòð */
/* фильтр */
$spam = mysql_fetch_array(mysql_query('SELECT * FROM `spam_word` WHERE `id` = 1 LIMIT 1'));
$spam = $spam['data'];
//
@ -100,45 +100,45 @@ class Filter
$testEN2 = str_replace('&quot;', '', $testEN2);
$testEN2 = str_replace('&nbsp;', '', $testEN2);
$testEN2 = str_replace('à', 'a', $testEN2);
$testEN2 = str_replace('á', 'b', $testEN2);
$testEN2 = str_replace('ñ', 'c', $testEN2);
$testEN2 = str_replace('â', 'b', $testEN2);
$testEN2 = str_replace('å', 'e', $testEN2);
$testEN2 = str_replace('ò', 't', $testEN2);
$testEN2 = str_replace('î', 'o', $testEN2);
$testEN2 = str_replace('ð', 'p', $testEN2);
$testEN2 = str_replace('ì', 'm', $testEN2);
$testEN2 = str_replace('í', 'h', $testEN2);
$testEN2 = str_replace('ó', 'y', $testEN2);
$testEN2 = str_replace('ê', 'k', $testEN2);
$testEN2 = str_replace('è', 'u', $testEN2);
$testEN2 = str_replace('õ', 'x', $testEN2);
$testEN2 = str_replace('ÿ', '9', $testEN2);
$testEN2 = str_replace('а', 'a', $testEN2);
$testEN2 = str_replace('б', 'b', $testEN2);
$testEN2 = str_replace('с', 'c', $testEN2);
$testEN2 = str_replace('в', 'b', $testEN2);
$testEN2 = str_replace('е', 'e', $testEN2);
$testEN2 = str_replace('т', 't', $testEN2);
$testEN2 = str_replace('о', 'o', $testEN2);
$testEN2 = str_replace('р', 'p', $testEN2);
$testEN2 = str_replace('м', 'm', $testEN2);
$testEN2 = str_replace('н', 'h', $testEN2);
$testEN2 = str_replace('у', 'y', $testEN2);
$testEN2 = str_replace('к', 'k', $testEN2);
$testEN2 = str_replace('и', 'u', $testEN2);
$testEN2 = str_replace('х', 'x', $testEN2);
$testEN2 = str_replace('я', '9', $testEN2);
$testEN2 = str_replace('()', 'o', $testEN2);
$testEN2 = str_replace('0', 'o', $testEN2);
$testEN2 = preg_replace('/[^A-z]*/i', '', $testEN2);
$testRU = preg_replace('/[^À-ÿ]*/i', '', $txt);
$testRU = preg_replace('/[^А]*/i', '', $txt);
$testRU2 = $txt;
$testRU2 = str_replace('a', 'à', $testRU2);
$testRU2 = str_replace('b', 'á', $testRU2);
$testRU2 = str_replace('c', 'ñ', $testRU2);
$testRU2 = str_replace('b', 'â', $testRU2);
$testRU2 = str_replace('e', 'å', $testRU2);
$testRU2 = str_replace('t', 'ò', $testRU2);
$testRU2 = str_replace('o', 'î', $testRU2);
$testRU2 = str_replace('p', 'ð', $testRU2);
$testRU2 = str_replace('m', 'ì', $testRU2);
$testRU2 = str_replace('h', 'í', $testRU2);
$testRU2 = str_replace('y', 'ó', $testRU2);
$testRU2 = str_replace('k', 'ê', $testRU2);
$testRU2 = str_replace('x', 'õ', $testRU2);
$testRU2 = str_replace('u', 'è', $testRU2);
$testRU2 = str_replace('()', 'î', $testRU2);
$testRU2 = str_replace('0', 'î', $testRU2);
$testRU2 = preg_replace('/[^À-ÿ]*/i', ' ', $testRU2);
$testRU2 = preg_replace('/[^À-ß]*/i', ' ', $testRU2);
$testRU2 = str_replace('a', 'а', $testRU2);
$testRU2 = str_replace('b', 'б', $testRU2);
$testRU2 = str_replace('c', 'с', $testRU2);
$testRU2 = str_replace('b', 'в', $testRU2);
$testRU2 = str_replace('e', 'е', $testRU2);
$testRU2 = str_replace('t', 'т', $testRU2);
$testRU2 = str_replace('o', 'о', $testRU2);
$testRU2 = str_replace('p', 'р', $testRU2);
$testRU2 = str_replace('m', 'м', $testRU2);
$testRU2 = str_replace('h', 'н', $testRU2);
$testRU2 = str_replace('y', 'у', $testRU2);
$testRU2 = str_replace('k', 'к', $testRU2);
$testRU2 = str_replace('x', 'х', $testRU2);
$testRU2 = str_replace('u', 'и', $testRU2);
$testRU2 = str_replace('()', 'о', $testRU2);
$testRU2 = str_replace('0', 'о', $testRU2);
$testRU2 = preg_replace('/[^А]*/i', ' ', $testRU2);
$testRU2 = preg_replace('/[^А]*/i', ' ', $testRU2);
$i = 0;
$spe = explode('|', $spam);
while ($i <= count($spe)) {
@ -154,6 +154,6 @@ class Filter
public function __clone()
{
trigger_error('Äóáëèðîâàíèå íå äîïóñêàåòñÿ.', E_USER_ERROR);
trigger_error('Дублирование не допускается.', E_USER_ERROR);
}
}

View File

@ -1,44 +1,55 @@
<?php
/**@deprecated вроде нигде не вызывается, никем не используется */
/**@deprecated вроде нигде не вызывается, никем не используется */
class GameDealer
{
//Конфигурации
//Конфигурации
private $c = [
'db_name' => 'pay_operations', //Таблица в которую заносятся данные
'db_name' => 'pay_operations', //Таблица в которую заносятся данные
'db_host' => 'localhost',
'db_user' => 'newcom1_abk',
'db_pass' => '4nWYsIM[c?}P',
'db_base' => 'newcom1_abk', /* Настройки платежей */
'ip_list' => ['127,0,0,1,188.166.34.68,136.243.38.147,136.243.38.149,136.243.38.150,136.243.38.151,136.243.38.189,88.198.88.98'], //Указывать через запятую (Разрешенные IP)
'db_base' => 'newcom1_abk', /* Настройки платежей */
'ip_list' => ['127,0,0,1,188.166.34.68,136.243.38.147,136.243.38.149,136.243.38.150,136.243.38.151,136.243.38.189,88.198.88.98'], //Указывать через запятую (Разрешенные IP)
'key' => 'qtzl0igb', //gamedealer key
'id' => '65643' //ID проекта
], $BACK = []; //Результат который возвращаем в конце
'id' => '65643' //ID проекта
], $BACK = []; //Результат который возвращаем в конце
//Кодируем из ЮТФ-8 в Кирилицу
//Кодируем из ЮТФ-8 в Кирилицу
/**
* @param $text
* @return mixed
* @deprecated
*/
public function in($text)
{
return iconv("UTF-8", "cp1251", $text);
return $text;
}
//Кодируем из Кирилицу в ЮТФ-8
//Кодируем из Кирилицу в ЮТФ-8
/**
* @param $text
* @return mixed
* @deprecated
*/
public function out($text)
{
return iconv("cp1251", "UTF-8", $text);
return $text;
}
//Добавляем данные в базу данных
//Добавляем данные в базу данных
public function add($type, $value, $money)
{
mysql_query('INSERT INTO `' . $this->c['db_name'] . '` (`time`,`type`,`ip`,`value`,`money`,`project`) VALUES ("' . time() . '","' . mysql_real_escape_string($type) . '","' . $_SERVER['HTTP_X_REAL_IP'] . '","' . mysql_real_escape_string($value) . '","' . mysql_real_escape_string($money) . '","' . mysql_real_escape_string($this->id) . '")');
}
//Подключаемся к базе данных
//Подключаемся к базе данных
public function connect_db()
{
$db = mysql_connect($this->c['db_host'], $this->c['db_user'], $this->c['db_pass']) or die('Ошибка подключения к MySQL серверу!');
mysql_select_db($this->c['db_base'], $db) or die('Ошибка подключения к базе данных!');
mysql_query('SET NAMES cp1251');
$db = mysql_connect($this->c['db_host'], $this->c['db_user'], $this->c['db_pass']) or die('Ошибка подключения к MySQL серверу!');
mysql_select_db($this->c['db_base'], $db) or die('Ошибка подключения к базе данных!');
mysql_query('SET NAMES utf8mb4');
}
public function output($a, $v = null)
@ -69,7 +80,7 @@ class GameDealer
return $r;
}
//Генерируем XML-файл
//Генерируем XML-файл
public function backInformation()
{
header('Content-Type: text/html/force-download');
@ -77,7 +88,7 @@ class GameDealer
echo $this->output($this->BACK, 1);
}
//Проверка существования персонажа
//Проверка существования персонажа
public function test_accaunt($nick)
{
$r = false;
@ -88,7 +99,7 @@ class GameDealer
return $r;
}
//Получает счет в банке по логину
//Получает счет в банке по логину
public function getBank($nick)
{
$nick = mysql_fetch_array(mysql_query('SELECT `id` FROM `users` WHERE `login` = "' . mysql_real_escape_string($nick) . '" LIMIT 1'));
@ -96,7 +107,7 @@ class GameDealer
return $nick['id'];
}
//Поиск логина
//Поиск логина
public function bank_user($nick)
{
$nick = mysql_fetch_array(mysql_query('SELECT `id`,`uid FROM `bank` WHERE `id` = "' . mysql_real_escape_string($nick) . '" LIMIT 1'));
@ -104,79 +115,79 @@ class GameDealer
return $nick['login'];
}
//Начинаем обработку запросов
//Начинаем обработку запросов
public function start_session()
{
$ip = '';
$ip = $_SERVER['HTTP_X_REAL_IP'];
//Подключаемся к БД
//Подключаемся к БД
$this->connect_db();
//Получаем данные запроса
//Получаем данные запроса
//$xml = file_get_contents('php://input');
//Парсинг XML запроса
//Парсинг XML запроса
if (function_exists('simplexml_load_string')) {
$xml = simplexml_load_string($xml);
} else {
$this->BACK = [['gdanswer', [['status', '-1'], ['desc', 'Не удалось произвести обработку запроса']]]];
$this->BACK = [['gdanswer', [['status', '-1'], ['desc', 'Не удалось произвести обработку запроса']]]];
die($this->backInformation());
}
$this->id = $xml->projectid;
if (!in_array($ip, $this->c['ip_list'])) {
$this->BACK = [['gdanswer', [['status', '-1'], ['desc', 'Нет доступа с данного IP']]]];
$this->BACK = [['gdanswer', [['status', '-1'], ['desc', 'Нет доступа с данного IP']]]];
die($this->backInformation());
}
//Обработка запросов
//Обработка запросов
if ($xml->method == 'check_balance') {
//<sign>MD5(method+MD5(gdKey))</sign>
$sign = md5($xml->method . md5($this->c['key']));
if ($sign == $xml->sign) {
//Баланс дилера
//Баланс дилера
$balance = 1000000;
$this->BACK = [['gdanswer', [['status', '1'], ['desc', 'Баланс дилера: ' . $balance], ['balance', $balance]]]];
$this->BACK = [['gdanswer', [['status', '1'], ['desc', 'Баланс дилера: ' . $balance], ['balance', $balance]]]];
$this->add('4', 'check:' . $xml->nick . ':1' . $r, 0);
}
} elseif ($xml->method == 'check') {
/*
nick - логин персонажа <sign>MD5(nick+method+MD5(gdKey))</sign> */
nick - логин персонажа <sign>MD5(nick+method+MD5(gdKey))</sign> */
$sign = md5($xml->nick . $xml->method . md5($this->c['key']));
if ($sign == $xml->sign) {
$xml->nick = $this->in($xml->nick);
if ($this->test_accaunt($xml->nick) == true) {
//Персонаж найден и зачисляем ему игровую валюту
$this->BACK = [['gdanswer', [['status', '1'], ['desc', 'Банковский счет найден']]]];
//Персонаж найден и зачисляем ему игровую валюту
$this->BACK = [['gdanswer', [['status', '1'], ['desc', 'Банковский счет найден']]]];
$this->add('3', 'check:' . $xml->nick . ':1' . $r, 0);
} else {
//Персонаж не найден
$this->BACK = [['gdanswer', [['status', '-1'], ['desc', 'Платеж не обработан. Банковский счет не найден.']]]];
$this->add('-1', 'Персонаж не найден:pay:' . $xml->nick . ':0', 0);
//Персонаж не найден
$this->BACK = [['gdanswer', [['status', '-1'], ['desc', 'Платеж не обработан. Банковский счет не найден.']]]];
$this->add('-1', 'Персонаж не найден:pay:' . $xml->nick . ':0', 0);
}
}
} elseif ($xml->method == 'pay') {
/* Проводим платеж
nick - логин аккаунта , projectid - id проекта , sign , amount - деньги , payid - id платежа */
/* Проводим платеж
nick - логин аккаунта , projectid - id проекта , sign , amount - деньги , payid - id платежа */
$sign = md5($xml->nick . $xml->projectid . $xml->amount . $xml->payid . $xml->method . md5($this->c['key']));
if ($sign == $xml->sign) {
$xml->nick = $this->in($xml->nick);
if ($this->test_accaunt($xml->nick)) {
//Персонаж найден и зачисляем ему игровую валюту
//Персонаж найден и зачисляем ему игровую валюту
$bank = $this->test_accaunt($xml->nick);
if ($bank > 0) {
mysql_query('UPDATE `bank` SET `money2` = `money2` + ' . mysql_real_escape_string($xml->amount) . ' WHERE `id` = "' . mysql_real_escape_string($xml->nick) . '" LIMIT 1');
$this->BACK = [['gdanswer', [['status', '1'], ['desc', 'Платеж прошел успешно'], ['id', $this->c['id']]]]];
$this->BACK = [['gdanswer', [['status', '1'], ['desc', 'Платеж прошел успешно'], ['id', $this->c['id']]]]];
$this->add('2', 'pay:' . $xml->nick . ':' . $xml->projectid . ':' . $xml->sign . ':' . $xml->amount . ':' . $xml->payid . ':' . $bank['id'], $xml->amount);
$user = mysql_fetch_array(mysql_query('SELECT `id`,`uid` FROM `bank` WHERE `id` = "' . mysql_real_escape_string($xml->nick) . '" LIMIT 1'));
@ -184,59 +195,59 @@ class GameDealer
mysql_query('UPDATE `users` SET `catch` = `catch` + ' . mysql_real_escape_string(floor($xml->amount)) . ' WHERE `id` = "' . mysql_real_escape_string($xml->nick) . '" LIMIT 1');
$r = '<span class=date>' . date('d.m.Y H:i') . '</span> Алхимик <img src=https://img.new-combats.com/i/align/align50.gif width=12 height=15 /><u><b>Enchanter</b> / Автоматическая оплата</u> сообщает: ';
$r = '<span class=date>' . date('d.m.Y H:i') . '</span> Алхимик <img src=https://img.new-combats.com/i/align/align50.gif width=12 height=15 /><u><b>Enchanter</b> / Автоматическая оплата</u> сообщает: ';
if ($user['sex'] == 1) {
$r .= 'Уважаемая';
$r .= 'Уважаемая';
} else {
$r .= 'Уважаемый';
$r .= 'Уважаемый';
}
$r .= ' <b>' . $user['login'] . '</b>, на Ваш банковский счет №' . $bank . ' зачислено ' . $xml->amount . ' Ekr. Благодарим Вас за покупку!';
$r .= ' <b>' . $user['login'] . '</b>, на Ваш банковский счет №' . $bank . ' зачислено ' . $xml->amount . ' Ekr. Благодарим Вас за покупку!';
mysql_query("INSERT INTO `chat` (`new`,`city`,`room`,`login`,`to`,`text`,`time`,`type`,`toChat`) VALUES ('1','" . $user['city'] . "','" . $user['room'] . "','','" . $user['login'] . "','" . $r . "','-1','5','0')");
} else {
$this->BACK = [['gdanswer', [['status', '-1'], ['desc', 'У пользователя отсутствует банк'], ['id', $this->c['id']]]]];
$this->add('-1', 'У персонажа отсутствует банк:pay:' . $xml->nick . ':' . $xml->projectid . ':' . $xml->sign . ':' . $xml->amount . ':' . $xml->payid . ':' . $bank['id'], $xml->amount);
$this->BACK = [['gdanswer', [['status', '-1'], ['desc', 'У пользователя отсутствует банк'], ['id', $this->c['id']]]]];
$this->add('-1', 'У персонажа отсутствует банк:pay:' . $xml->nick . ':' . $xml->projectid . ':' . $xml->sign . ':' . $xml->amount . ':' . $xml->payid . ':' . $bank['id'], $xml->amount);
}
} else {
//Персонаж не найден
$this->BACK = [['gdanswer', [['status', '-1'], ['desc', 'Платеж не обработан. Персонаж не найден.']]]];
$this->add('-1', 'Персонаж не найден:pay:' . $xml->nick . ':0', 0);
//Персонаж не найден
$this->BACK = [['gdanswer', [['status', '-1'], ['desc', 'Платеж не обработан. Персонаж не найден.']]]];
$this->add('-1', 'Персонаж не найден:pay:' . $xml->nick . ':0', 0);
}
} else {
//Ошибка сигнатуры
$this->BACK = [['gdanswer', [['status', '-1'], ['desc', 'Ошибка сигнатуры']]]];
$this->add('-1', 'Ошибка сигнатуры:pay:' . $xml->nick . ':0', 0);
//Ошибка сигнатуры
$this->BACK = [['gdanswer', [['status', '-1'], ['desc', 'Ошибка сигнатуры']]]];
$this->add('-1', 'Ошибка сигнатуры:pay:' . $xml->nick . ':0', 0);
}
} elseif ($xml->method == 'check_login') {
/* Проверка аккаунта
nick - логин аккаунта , projectid - id проекта , sign */
/* Проверка аккаунта
nick - логин аккаунта , projectid - id проекта , sign */
$sign = md5($xml->nick . $xml->method . md5($this->c['key']));
if ($sign == $xml->sign) {
$xml->nick = $this->in($xml->nick);
if ($this->test_accaunt($xml->nick)) {
//Персонаж найден
$this->BACK = [['gdanswer', [['status', '1'], ['desc', 'Счет найден'], ['addinfo', $this->bank_user($xml->nick)]]]];
//Персонаж найден
$this->BACK = [['gdanswer', [['status', '1'], ['desc', 'Счет найден'], ['addinfo', $this->bank_user($xml->nick)]]]];
$this->add('1', 'check_login:' . $xml->nick . ':1' . $r, 0);
} else {
//Персонаж не найден
$this->BACK = [['gdanswer', [['status', '-1'], ['desc', 'Счет не найден']]]];
$this->add('-1', 'Персонаж не найден:check_login:' . $xml->nick . ':0', 0);
//Персонаж не найден
$this->BACK = [['gdanswer', [['status', '-1'], ['desc', 'Счет не найден']]]];
$this->add('-1', 'Персонаж не найден:check_login:' . $xml->nick . ':0', 0);
}
} else {
//Ошибка сигнатуры
$this->BACK = [['gdanswer', [['status', '-1'], ['desc', 'Ошибка сигнатуры']]]];
$this->add('-1', 'Ошибка сигнатуры:pay:' . $xml->nick . ':0', 0);
//Ошибка сигнатуры
$this->BACK = [['gdanswer', [['status', '-1'], ['desc', 'Ошибка сигнатуры']]]];
$this->add('-1', 'Ошибка сигнатуры:pay:' . $xml->nick . ':0', 0);
}
} else {
$this->BACK = [['gdanswer', [['status', '-1'], ['desc', 'Неизвестный тип запроса']]]];
$this->add('-1', 'Неизвестный тип запроса:error_method:gamedealer', 0);
$this->BACK = [['gdanswer', [['status', '-1'], ['desc', 'Неизвестный тип запроса']]]];
$this->add('-1', 'Неизвестный тип запроса:error_method:gamedealer', 0);
}
//Возвращаем результат
//Возвращаем результат
$this->backInformation();
}
}

View File

@ -11,87 +11,87 @@ class Achievements
private $info;
private array $data = [
'zb' => [
'questname' => 'Ежедн.Задания',
'quest' => 'Выполнить задания бабки.',
'check' => ['Заданий', 5, 25, 50, 100, 250],
'prize' => ['Жетон <br>успеха <br>', 5, 20, 40, 60, 100],
'questname' => 'Ежедн.Задания',
'quest' => 'Выполнить задания бабки.',
'check' => ['Заданий', 5, 25, 50, 100, 250],
'prize' => ['Жетон <br>успеха <br>', 5, 20, 40, 60, 100],
'startlink' => 11
],
'vx' => [
'questname' => 'Хаотические бои',
'quest' => 'Победить в хаотических боях.',
'check' => ['Побед', 50, 300, 400, 500, 1000],
'prize' => ['екр.', 25, 50, 75, 100, 200],
'questname' => 'Хаотические бои',
'quest' => 'Победить в хаотических боях.',
'check' => ['Побед', 50, 300, 400, 500, 1000],
'prize' => ['екр.', 25, 50, 75, 100, 200],
'startlink' => 21
],
'snt' => [
'questname' => 'Сундук трупожора',
'quest' => 'Открыть сундук трупожора.',
'check' => ['Открытий', 5, 25, 50, 100, 250],
'prize' => ['екр.', 10, 25, 50, 75, 200],
'questname' => 'Сундук трупожора',
'quest' => 'Открыть сундук трупожора.',
'check' => ['Открытий', 5, 25, 50, 100, 250],
'prize' => ['екр.', 10, 25, 50, 75, 200],
'startlink' => 31
],
'rp' => [
'questname' => 'Руны 8 лвл.',
'quest' => 'Получить руну при плавке плохих заготовок. [S]',
'check' => ['Рун', 5, 10, 25, 50, 100],
'prize' => ['Плохие <br> заготовки <br>', 5, 7, 10, 12, 15],
'questname' => 'Руны 8 лвл.',
'quest' => 'Получить руну при плавке плохих заготовок. [S]',
'check' => ['Рун', 5, 10, 25, 50, 100],
'prize' => ['Плохие <br> заготовки <br>', 5, 7, 10, 12, 15],
'startlink' => 41
],
'rn' => [
'questname' => 'Руны 9 лвл.',
'quest' => 'Получить руну при плавке нормальных заготовок. [M]',
'check' => ['Рун', 5, 10, 15, 25, 50],
'prize' => ['Нормальные <br> заготовки <br>', 5, 7, 9, 12, 15],
'questname' => 'Руны 9 лвл.',
'quest' => 'Получить руну при плавке нормальных заготовок. [M]',
'check' => ['Рун', 5, 10, 15, 25, 50],
'prize' => ['Нормальные <br> заготовки <br>', 5, 7, 9, 12, 15],
'startlink' => 51
],
'rb' => [
'questname' => 'Руны 10 лвл.',
'quest' => 'Получить руну при плавке идеальных заготовок. [L]',
'check' => ['Рун', 2, 5, 8, 11, 15],
'prize' => ['Идеальные <br> заготовки <br>', 2, 4, 6, 10, 15],
'questname' => 'Руны 10 лвл.',
'quest' => 'Получить руну при плавке идеальных заготовок. [L]',
'check' => ['Рун', 2, 5, 8, 11, 15],
'prize' => ['Идеальные <br> заготовки <br>', 2, 4, 6, 10, 15],
'startlink' => 61
],
'pg' => [
'questname' => 'Героич. Сражения',
'quest' => 'Поучаствовать в героическом сражении.',
'check' => ['Участий', 100, 200, 400, 600, 1000],
'prize' => ['Жетон <br>успеха <br>', 10, 20, 40, 60, 80],
'questname' => 'Героич. Сражения',
'quest' => 'Поучаствовать в героическом сражении.',
'check' => ['Участий', 100, 200, 400, 600, 1000],
'prize' => ['Жетон <br>успеха <br>', 10, 20, 40, 60, 80],
'startlink' => 71
],
'bv' => [
'questname' => 'Продажи Бабушке',
'quest' => 'Продать бабушке найденные вещи в пещере.',
'check' => ['Продаж', 5, 25, 50, 100, 250],
'prize' => ['кр.', 500, 1000, 2000, 4000, 5000],
'questname' => 'Продажи Бабушке',
'quest' => 'Продать бабушке найденные вещи в пещере.',
'check' => ['Продаж', 5, 25, 50, 100, 250],
'prize' => ['кр.', 500, 1000, 2000, 4000, 5000],
'startlink' => 81
],
'kw' => [
'questname' => 'Клан Поединки',
'quest' => 'Победить в клановой войне.',
'check' => ['Побед', 5, 10, 15, 20, 25],
'prize' => ['Свиток <br> кланового<br> опыта ', 1, 2, 5, 10, 15],
'questname' => 'Клан Поединки',
'quest' => 'Победить в клановой войне.',
'check' => ['Побед', 5, 10, 15, 20, 25],
'prize' => ['Свиток <br> кланового<br> опыта ', 1, 2, 5, 10, 15],
'startlink' => 91
],
'pa' => [ # not implemented!
'questname' => 'Покровительство',
'quest' => 'Получить покровительство Ангела.',
'check' => ['Получено', 5, 25, 50, 100, 250],
'questname' => 'Покровительство',
'quest' => 'Получить покровительство Ангела.',
'check' => ['Получено', 5, 25, 50, 100, 250],
'prize' => null,
'startlink' => null
],
'bs' => [
'questname' => 'Башня смерти',
'quest' => 'Победы в башне смерти.',
'check' => ['Побед', 1, 5, 10, 50, 500],
'prize' => ['екр.', 1, 5, 10, 50, 200],
'questname' => 'Башня смерти',
'quest' => 'Победы в башне смерти.',
'check' => ['Побед', 1, 5, 10, 50, 500],
'prize' => ['екр.', 1, 5, 10, 50, 200],
'startlink' => 101
],
'trn' => [ # not implemented!
'questname' => 'Турниры',
'quest' => 'Поучавствовать в турнирах.',
'check' => ['Побед', 25, 50, 100, 200, 500],
'prize' => ['екр.', 25, 25, 25, 25, 50],
'questname' => 'Турниры',
'quest' => 'Поучавствовать в турнирах.',
'check' => ['Побед', 25, 50, 100, 200, 500],
'prize' => ['екр.', 25, 25, 25, 25, 50],
'startlink' => 111
],
];
@ -102,19 +102,19 @@ class Achievements
$this->info = Db::getRow('select * from users_achiv where id = ?', [$user->info['id']]);
}
//fixme: сюда иногда приходит (NULL, NULL).
//fixme: сюда иногда приходит (NULL, NULL).
private function prizeName(?int $int, ?string $string): string
{
return in_array($string, ['екр.', 'кр.']) ? $int . ' ' . $string : $string . ' ' . $int;
return in_array($string, ['екр.', 'кр.']) ? $int . ' ' . $string : $string . ' ' . $int;
}
private function drawSunduk($nagr, $whatInside, $tier): string
{
return vsprintf(
'<img onclick="%s" onmouseover="%s" onmouseout="%s" onmousedown="%s" class="cp" src="%s" alt="Сундук">',
'<img onclick="%s" onmouseover="%s" onmouseout="%s" onmousedown="%s" class="cp" src="%s" alt="Сундук">',
[
"location.href='\main.php?titul&nagr=$nagr'",
"top.hi(this, '<b>Сундук $tier ранга<hr>Содержит:<hr> $whatInside</b>', event, 2, 0, 1, 1, 'max-width:307px')",
"top.hi(this, '<b>Сундук $tier ранга<hr>Содержит:<hr> $whatInside</b>', event, 2, 0, 1, 1, 'max-width:307px')",
"top.hic();",
"top.hic();",
"https://img.new-combats.com/i/titul/nagr$tier.gif"
@ -129,15 +129,15 @@ class Achievements
foreach ($this->data as $key => $value) {
//Бля, какую херню приходится городить!
//Первое число = требование следующего тира минус требование текущего тира (надо набрать)
//Второе число = количество достижений минус требование текущего тира (набрал)
//Требования текущего тира отнимаются чтобы каждый тир начинал считать процент с 0.
//Пизды дать тому, кто так уебански называет переменные, что нужно полдня въезжать что происходит.
//И хер поменяешь - всё сломается. FFUUUUUUUUUUUUUU!!! Ins.
//Бля, какую херню приходится городить!
//Первое число = требование следующего тира минус требование текущего тира (надо набрать)
//Второе число = количество достижений минус требование текущего тира (набрал)
//Требования текущего тира отнимаются чтобы каждый тир начинал считать процент с 0.
//Пизды дать тому, кто так уебански называет переменные, что нужно полдня въезжать что происходит.
//И хер поменяешь - всё сломается. FFUUUUUUUUUUUUUU!!! Ins.
if (!is_numeric($value['check'][$this->info['klas' . $key]])) {
// Потомы что первый элемент массива - слово. В РНР5.4 прокатывало, в РНР7.4 - нет.
// Потомы что первый элемент массива - слово. В РНР5.4 прокатывало, в РНР7.4 - нет.
$value['check'][$this->info['klas' . $key]] = 0;
}
@ -148,15 +148,15 @@ class Achievements
$questname = empty($value['questname']) ? $value['quest'] : $value['questname'];
$string .= '<h4>' . $questname . '</h4>';
$string .= '<strong>' . $value['quest'] . '</strong><br>';
$string .= 'Текущий Ранг: <strong>' . $this->info['klas' . $key] . '</strong> ';
$string .= 'Количество ' . mb_strtolower($value['check'][0]) . ': <strong>' . $this->info[$key] . ' = ' . $percentToSuccess . '%</strong>';
$string .= 'Текущий Ранг: <strong>' . $this->info['klas' . $key] . '</strong> ';
$string .= 'Количество ' . mb_strtolower($value['check'][0]) . ': <strong>' . $this->info[$key] . ' = ' . $percentToSuccess . '%</strong>';
//$string .= '<progress value="' . $percentToSuccess . '" max="100" style="accent-color:green; appearance: none;">' . $percentToSuccess . '</progress>';
$string .= Table::get([
['Ранги', 1, 2, 3, 4, 5],
['Ранги', 1, 2, 3, 4, 5],
$value['check'],
[
'Награда',
'Награда',
$this->prizeName($value['prize'][1], $value['prize'][0]),
$this->prizeName($value['prize'][2], $value['prize'][0]),
$this->prizeName($value['prize'][3], $value['prize'][0]),
@ -171,7 +171,7 @@ class Achievements
!empty($value['prize']) &&
!empty($value['startlink'])
) {
$string .= '<br>Награда:<br>';
$string .= '<br>Награда:<br>';
$string .= $this->drawSunduk(
$this->info[$key . '_n'] + $value['startlink'],
$this->prizeName($value['prize'][$this->info[$key . '_n'] + 1], $value['prize'][0]),
@ -208,7 +208,7 @@ class Achievements
if ($this->info[$k] >= $this->data[$k]['check'][$i]) {
$this->info["klas$k"] = $i;
if ($i === 5) {
# На 5 ранге должно отдавать максимум.
# На 5 ранге должно отдавать максимум.
$this->info["klasP$k"] = 100;
} else {
$this->info["klasP$k"] = Math::get100Percentage(

View File

@ -10,7 +10,7 @@ require_once 'Runes/Runes.php';
//require_once 'Tournament/TournamentModel.php';
require_once 'Achievements.php';
//Вместо крона для турнира.
//Вместо крона для турнира.
//if (Tournament::IS_ENABLED) {
// (new Tournament())->startAllBattles();
//}

View File

@ -12,15 +12,15 @@ use PDOStatement;
class DbOld
{
/**
* Настройки подключения
* Лучше выносить в конфиг
* Настройки подключения
* Лучше выносить в конфиг
* self::DB_HOST -> Config::DB_HOST
*/
const DB_HOST = '127.0.0.1'; // localhost
const DB_USER = 'newcom1_abk';
const DB_PASSWORD = '4nWYsIM[c?}P';
const DB_NAME = 'newcom1_abk';
const CHARSET = 'cp1251';
const CHARSET = 'utf8mb4';
const DB_PREFIX = '';
/**

View File

@ -4,7 +4,7 @@ namespace Insallah;
class Runes
{
/** Создаём руну в зависимости от уровня.
/** Создаём руну в зависимости от уровня.
* @param $level
*
* @return array
@ -26,24 +26,24 @@ class Runes
['s5', 'm11', 'mpAll', 'pzm']
];
$vars = [
's1' => ['Сила', mt_rand(1, $stats[$level])],
's2' => ['Ловкость', mt_rand(1, $stats[$level])],
's3' => ['Интуиция', mt_rand(1, $stats[$level])],
's5' => ['Интеллект', mt_rand(1, $stats[$level])],
'pa1' => ['Мощности Колющего урона', mt_rand(1, $power[$level])],
'pa2' => ['Мощности Рубящего урона', mt_rand(1, $power[$level])],
'pa3' => ['Мощности Дробящего урона', mt_rand(1, $power[$level])],
'pa4' => ['Мощности Режущего урона', mt_rand(1, $power[$level])],
'm2' => ['мф. Против Критического Удара', mt_rand(5, 15)],
'm3' => ['МК', mt_rand(1, 3)],
'antm3' => ['ПМК', mt_rand(1, 3)],
'm5' => ['мф. Против Увертывания', mt_rand(5, 10)],
'm11' => ['Мощности Магии стихии', mt_rand(1, $power[$level])],
's1' => ['Сила', mt_rand(1, $stats[$level])],
's2' => ['Ловкость', mt_rand(1, $stats[$level])],
's3' => ['Интуиция', mt_rand(1, $stats[$level])],
's5' => ['Интеллект', mt_rand(1, $stats[$level])],
'pa1' => ['Мощности Колющего урона', mt_rand(1, $power[$level])],
'pa2' => ['Мощности Рубящего урона', mt_rand(1, $power[$level])],
'pa3' => ['Мощности Дробящего урона', mt_rand(1, $power[$level])],
'pa4' => ['Мощности Режущего урона', mt_rand(1, $power[$level])],
'm2' => ['мф. Против Критического Удара', mt_rand(5, 15)],
'm3' => ['МК', mt_rand(1, 3)],
'antm3' => ['ПМК', mt_rand(1, 3)],
'm5' => ['мф. Против Увертывания', mt_rand(5, 10)],
'm11' => ['Мощности Магии стихии', mt_rand(1, $power[$level])],
'hpAll' => ['HP', mt_rand(5, 15)],
'mpAll' => ['MP', mt_rand(10, 20)],
'pzm' => ['Подавление защиты от магии', 1],
'za' => ['Защита от Урона', mt_rand(5, 10)],
'zma' => ['Защита от Магии', mt_rand(5, 10)]
'pzm' => ['Подавление защиты от магии', 1],
'za' => ['Защита от Урона', mt_rand(5, 10)],
'zma' => ['Защита от Магии', mt_rand(5, 10)]
];
$rune = $runes[array_rand($runes)]; // arr (s, pa\m, rand9\mpAll, other)
@ -51,40 +51,40 @@ class Runes
$runeVals = [$vars[$rune[0]][1], $vars[$rune[1]][1], $vars[$rune[2]][1], $vars[$rune[3]][1]];
$resultRune = array_combine($rune, $runeVals);
$resultText = array_combine($runeTxt, $runeVals);
if ($level < 10) { // Отрезаем параметр 4.
if ($level < 10) { // Отрезаем параметр 4.
array_pop($resultRune);
array_pop($resultText);
}
if ($level < 9) { // Отрезаем параметр 3.
if ($level < 9) { // Отрезаем параметр 3.
array_pop($resultRune);
array_pop($resultText);
}
//Строчка data в базу
//Строчка data в базу
$returnData = '|' . http_build_query($resultRune, '', '|');
$returnData = str_replace('|', '|add_', $returnData);
//Строчка человекопонятных параметров в статус.
//Строчка человекопонятных параметров в статус.
$returnText = urldecode(http_build_query($resultText, '', ', '));
$returnText = 'Характеристики Руны: ' . str_replace('=', ': +', $returnText) . '.';
$returnText = 'Характеристики Руны: ' . str_replace('=', ': +', $returnText) . '.';
return [$returnData, $returnText];
}
/** Выкусывает руну из предмета.
/** Выкусывает руну из предмета.
*
* @param array $itemDataArray
* data предмета
* data предмета
*
* @return array массив, item - предмет, rune - руна из предмета, rune_id - id руны.
* Оба в подготовленном строчном формате для data
* @return array массив, item - предмет, rune - руна из предмета, rune_id - id руны.
* Оба в подготовленном строчном формате для data
*/
public static function removeRuneData($itemDataArray)
{
# Ищем есть ли в предмете руна определённого типа.
# Ищем есть ли в предмете руна определённого типа.
$runeid = array_search('rune_id', array_flip($itemDataArray));
if (!in_array($runeid, [6001, 6002, 6003])) {
return [];
}
$bonusArgs = 0;
# В зависимости от типа руны считаем количество элементов-бонусов.
# В зависимости от типа руны считаем количество элементов-бонусов.
if ($runeid === 6001) {
$bonusArgs = 2;
}

View File

@ -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
*

View File

@ -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);
}
}

View File

@ -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

View File

@ -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
*

View File

@ -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
*

View File

@ -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
*

View File

@ -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
*

View File

@ -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

View File

@ -4,7 +4,7 @@ class Quests
{
private $free_x = 28;
/* Проверка доступности квеста */
/* Проверка доступности квеста */
public function testGood($pl)
{
global $u;
@ -17,12 +17,12 @@ class Quests
$d1 = 0;
$sp1 = mysql_fetch_array(mysql_query('SELECT COUNT(`id`) FROM `actions` WHERE `vars` LIKE "%start_quest%" AND `vals` = "go" AND `uid` = "' . $u->info['id'] . '" LIMIT 100'));
$pl1 = $pl1[0];
//Если уже более 5 квестов взяли
//Если уже более 5 квестов взяли
if ($d1 >= $this->free_x) {
$r = 0;
}
unset($d1, $pl1, $sp1);
//Если квест уже взяли
//Если квест уже взяли
$qlst = mysql_fetch_array(mysql_query('SELECT `id`,`vals` FROM `actions` WHERE `uid` = "' . $u->info['id'] . '" AND `vars` = "start_quest' . $pl['id'] . '" ORDER BY `id` DESC LIMIT 1'));
if (isset($qlst['id']) && $qlst['vals'] != 'win' && $qlst['vals'] != 'end' && $qlst['vals'] != 'bad') {
$r = 0;
@ -30,7 +30,7 @@ class Quests
unset($qlst, $qlst2);
$d = $this->expl($pl['tr_date']);
//Завершить квесты [ 1,2,3,4,5 ...
//Завершить квесты [ 1,2,3,4,5 ...
if (isset($d['tr_endq'])) {
$i = 0;
$e = explode(',', $d['tr_endq']);
@ -43,7 +43,7 @@ class Quests
}
unset($qn, $qlst, $qlst2);
}
//Задержка между выполнением квеста
//Задержка между выполнением квеста
if (isset($d['tr_zdr'])) {
$qlst = mysql_fetch_array(mysql_query('SELECT * FROM `actions` WHERE `uid` = "' . $u->info['id'] . '" AND `vars` = "start_quest' . $pl['id'] . '" AND `vals` != "go" ORDER BY `time` DESC LIMIT 1'));
if ($qlst['time'] + ($d['tr_zdr'] * 60 * 60) - time() > 0) {
@ -51,7 +51,7 @@ class Quests
}
unset($qlst);
}
//Переодичность квеста
//Переодичность квеста
if (isset($d['tr_tm1'])) {
$d['tr_tm1'] = str_replace('d', date('d'), $d['tr_tm1']);
$d['tr_tm1'] = str_replace('m', date('m'), $d['tr_tm1']);
@ -59,9 +59,9 @@ class Quests
$d['tr_tm2'] = str_replace('d', date('d'), $d['tr_tm2']);
$d['tr_tm2'] = str_replace('m', date('m'), $d['tr_tm2']);
$d['tr_tm2'] = str_replace('y', date('y'), $d['tr_tm2']);
//проверка интервалов
//проверка интервалов
}
//Сколько раз можно пройти квест
//Сколько раз можно пройти квест
if (isset($d['tr_raz'])) {
$qlst = $u->testAction('SELECT `id` FROM `actions` WHERE `uid` = "' . $u->info['id'] . '" AND `vars` = "start_quest' . $pl['id'] . '" LIMIT ' . $d['tr_raz'], 2);
if ($d['tr_raz'] > 0 && $d['tr_raz'] - $qlst[0] <= 0) {
@ -69,7 +69,7 @@ class Quests
}
unset($qlst);
}
//Попыток пройти квест
//Попыток пройти квест
if (isset($d['tr_raz2'])) {
$qlst = $u->testAction('SELECT `id` FROM `actions` WHERE `uid` = "' . $u->info['id'] . '" AND `vars` = "start_quest' . $pl['id'] . '" AND `vals` != "go" AND `vals` != "win" LIMIT ' . $d['tr_raz2'], 2);
if ($d['tr_raz2'] - $qlst[0] <= 0) {
@ -81,7 +81,7 @@ class Quests
}
public function onlyOnceQuest($quests, $uid)
{ // Отсеиваем одноразовые квесты
{ // Отсеиваем одноразовые квесты
$result = [];
$rep = mysql_fetch_array(mysql_query('SELECT * FROM `rep` WHERE `id` = "' . $uid));
foreach ($quests as $quest) {
@ -117,20 +117,20 @@ class Quests
return $result;
}
/* Взять квест */
/* Взять квест */
public function startq($id, $val = null)
{
global $c, $u;
$pl = mysql_fetch_array(mysql_query('SELECT * FROM `quests` WHERE (`city` = "" OR `city` = "' . $u->info['city'] . '") AND `delete` = "0" AND `min_lvl` <= ' . $u->info['level'] . ' AND `max_lvl` >= ' . $u->info['level'] . ' AND (`align` = "0" OR `align` = "' . floor($u->info['align']) . '") AND `id` = "' . mysql_real_escape_string($id) . '" LIMIT 1'));
if (isset($pl['id'])) {
$u->addAction(time(), 'start_quest' . $pl['id'], 'go', null, $val);
$u->error = 'Вы успешно получили задание &quot;' . $pl['name'] . '&quot;';
$u->error = 'Вы успешно получили задание &quot;' . $pl['name'] . '&quot;';
} else {
$u->error = 'Не удалось получить данное задание';
$u->error = 'Не удалось получить данное задание';
}
}
/* Взять квест в пещере */
/* Взять квест в пещере */
public function startq_dn($id, $val = null)
{
global $c, $u;
@ -140,13 +140,13 @@ class Quests
$u->addAction(time(), 'start_quest' . $pl['id'], 'go');
else
$u->addAction(time(), 'start_quest' . $pl['id'], 'go', $u->info['id'], $val);
$u->error = 'Вы успешно получили задание &quot;' . $pl['name'] . '&quot;';
$u->error = 'Вы успешно получили задание &quot;' . $pl['name'] . '&quot;';
} else {
$u->error = 'Не удалось получить данное задание';
$u->error = 'Не удалось получить данное задание';
}
}
/* Отказаться от квеста */
/* Отказаться от квеста */
public function endq($id, $tp)
{
global $u;
@ -155,28 +155,28 @@ class Quests
if (isset($qlst['id'])) {
if ($tp == 'end') {
mysql_query('UPDATE `actions` SET `vals` = "end" WHERE `id` = "' . $qlst['id'] . '" LIMIT 1');
$u->error = 'Вы успешно отказались от задания &quot;' . $pl['name'] . '&quot;';
$u->error = 'Вы успешно отказались от задания &quot;' . $pl['name'] . '&quot;';
} elseif ($tp == 'win') {
mysql_query('UPDATE `actions` SET `vals` = "win" ,`time` = "' . time() . '" WHERE `id` = "' . $qlst['id'] . '" LIMIT 1');
}
} else {
$u->error = 'Не удалось отказаться от задания ';
$u->error = 'Не удалось отказаться от задания ';
}
}
/* Инфо о квесте в пещерах */
/* Инфо о квесте в пещерах */
public function infoDng($pl)
{
global $u;
$r = 0;
$xrz = 0;
$qst = mysql_fetch_array(mysql_query('SELECT * FROM `actions` WHERE `uid` = "' . $u->info['id'] . '" AND `vars` = "start_quest' . $pl['id'] . '" AND `vals` = "go" LIMIT 1'));
//Условия задания которые должны удовлетворять текущим характеристикам
//Условия задания которые должны удовлетворять текущим характеристикам
//$d = $this->expl($pl['tr_date']);
//Действия квеста
//Действия квеста
$d = $this->expl($pl['act_date']);
//Поговорить с NPS
//Поговорить с NPS
if (isset($d['dlg_nps'])) {
$i7 = 0;
$x3 = explode(',', $d['dlg_nps']);
@ -190,12 +190,12 @@ class Quests
unset($x1, $x3, $x4, $i7);
}
//Убить игроков
//Убить игроков
if (isset($d['kill_user'])) {
$r += $d['kill_user'];
}
//Убить ботов
//Убить ботов
if (isset($d['kill_bot'])) {
$x = '';
$ex = explode(',', $d['kill_bot']);
@ -221,7 +221,7 @@ class Quests
unset($x, $ex, $x2, $bot2, $ex2);
}
//Собрать ресурсы
//Собрать ресурсы
if (isset($d['tk_itm'])) {
$ex = explode(',', $d['tk_itm']);
$i = 0;
@ -237,7 +237,7 @@ class Quests
}
}
//Собрать трофеи
//Собрать трофеи
if (isset($d['tkill_itm'])) {
$ex = explode(',', $d['tkill_itm']);
$i = 0;
@ -263,27 +263,27 @@ class Quests
$xrz = $r;
}
$r = '<table style="display:inline-block;" border="0" cellspacing="0" cellpadding="0" height="10"><tr><td valign="middle" width="120" style="padding-top:12px">
<div style="position:relative;"><div id="vhp-1234500000' . $pl['id'] . '" title="Выполнение задания" align="left" class="seehp" style="position:absolute; top:-10px; width:120px; height:10px; z-index:12;"> ' . $xrz . '/' . $r . '</div>
<div title="Выполнение задания" class="hpborder" style="position:absolute; top:-10px; width:120px; height:9px; z-index:13;"><img src="https://img.new-combats.com/1x1.gif" height="9" width="1"></div>
<div style="position:relative;"><div id="vhp-1234500000' . $pl['id'] . '" title="Выполнение задания" align="left" class="seehp" style="position:absolute; top:-10px; width:120px; height:10px; z-index:12;"> ' . $xrz . '/' . $r . '</div>
<div title="Выполнение задания" class="hpborder" style="position:absolute; top:-10px; width:120px; height:9px; z-index:13;"><img src="https://img.new-combats.com/1x1.gif" height="9" width="1"></div>
<div class="hp_3 senohp" style="height:9px; width:120px; position:absolute; top:-10px; z-index:11;" id="lhp-1234500000' . $pl['id'] . '"><img src="https://img.new-combats.com/1x1.gif" height="9" width="1"></div>
<div title="Выполнение задания" class="hp_none" style="position:absolute; top:-10px; width:120px; height:10px; z-index:10;"><img src="https://img.new-combats.com/1x1.gif" height="10"></div>
<div title="Выполнение задания" class="hp_none" style="position:absolute; top:-10px; width:120px; height:10px; z-index:10;"><img src="https://img.new-combats.com/1x1.gif" height="10"></div>
</div></td></tr></table><br><script>top.startHpRegen("main",-1234500000' . $pl['id'] . ',' . $xrz . ',' . $r . ',0,0,0,0,0,0,1);</script>';
}
return $r;
}
/* Информация о квесте */
/* Информация о квесте */
public function info($pl)
{
global $u;
$r = '';
$t = '';
$qst = mysql_fetch_array(mysql_query('SELECT * FROM `actions` WHERE `uid` = "' . $u->info['id'] . '" AND `vars` = "start_quest' . $pl['id'] . '" AND `vals` = "go" LIMIT 1'));
//Условия задания которые должны удовлетворять текущим характеристикам
//Условия задания которые должны удовлетворять текущим характеристикам
$d = $this->expl($pl['tr_date']);
//Завершить квесты [ 1,2,3,4,5 ...
//Завершить квесты [ 1,2,3,4,5 ...
if (isset($d['tr_endq'])) {
$t .= 'Завершить квесты: ';
$t .= 'Завершить квесты: ';
$i = 0;
$e = explode(',', $d['tr_endq']);
while ($i <= count($e)) {
@ -299,26 +299,26 @@ class Quests
$t .= '<br>';
unset($qn);
}
//Из ботов падают предметы [ idbot-itm1=%,itm2=%|
//Из ботов падают предметы [ idbot-itm1=%,itm2=%|
if (isset($d['tr_botitm'])) {
$t .= 'Из ботов выпадают предметы:<ul>';
$t .= 'Из ботов выпадают предметы:<ul>';
$e = explode('|', $d['tr_botitm']);
$i = 0;
while ($i < count($e)) {
$j = 0;
$e2 = explode('-', $e[$i]);
//$e2[0] - id бота
//$e2[0] - id бота
if ($e2[0] > 0) {
$qn = mysql_fetch_array(mysql_query('SELECT `login` FROM `test_bot` WHERE `id` = "' . $e2[0] . '" LIMIT 1'));
$t .= '&nbsp; &nbsp; &bull; Из &quot;' . $qn['login'] . '&quot; выпадает: ';
$t .= '&nbsp; &nbsp; &bull; Из &quot;' . $qn['login'] . '&quot; выпадает: ';
} else {
$t .= '&nbsp; &nbsp; &bull; Из любых ботов выпадает: ';
$t .= '&nbsp; &nbsp; &bull; Из любых ботов выпадает: ';
}
//$e2[1] - предметы
//$e2[1] - предметы
$e3 = explode(',', $e2[1]);
while ($j < count($e3)) {
$e4 = explode('=', $e3[$j]);
//$e4[0] - предмет , $e4[1] - шанс
//$e4[0] - предмет , $e4[1] - шанс
$qi = mysql_fetch_array(mysql_query('SELECT `id`,`name`,`img` FROM `items_main` WHERE `id` = "' . $e4[0] . '" LIMIT 1'));
$t .= '<img src="https://img.new-combats.com/i/items/' . $qi['img'] . '" style="max-height:12px"> <a href="items_info.php?id=' . $qi['id'] . '" target="_blank">' . $qi['name'] . '</a>, ';
$j++;
@ -329,26 +329,26 @@ class Quests
$t .= '<br>';
unset($qn, $qi, $e2, $e3, $e4);
}
//При выйгрыше падают предметы [ type-itm1=%,itm2=%|
//При выйгрыше падают предметы [ type-itm1=%,itm2=%|
if (isset($d['tr_winitm'])) {
$t .= 'После победы выпадают предметы:<br>';
$t .= 'После победы выпадают предметы:<br>';
$e = explode('|', $d['tr_winitm']);
$i = 0;
while ($i < count($e)) {
$e2 = explode('-', $e[$i]);
$t .= '&nbsp; &nbsp; &bull; ';
//$e2[0] - id бота
//$e2[0] - id бота
if ($e2[0] > 0) {
$t .= 'Из людей выпадает: ';
$t .= 'Из людей выпадает: ';
} else {
$t .= 'Из ботов выпадает: ';
$t .= 'Из ботов выпадает: ';
}
//$e2[1] - предметы
//$e2[1] - предметы
$j = 0;
$e3 = explode(',', $e2[1]);
while ($j < count($e3)) {
$e4 = explode('=', $e3[$j]);
//$e4[0] - предмет , $e4[1] - шанс
//$e4[0] - предмет , $e4[1] - шанс
$qi = mysql_fetch_array(mysql_query('SELECT `id`,`name`,`img` FROM `items_main` WHERE `id` = "' . $e4[0] . '" LIMIT 1'));
$t .= '<img src="https://img.new-combats.com/i/items/' . $qi['img'] . '" style="max-height:12px"> <a href="items_info.php?id=' . $qi['id'] . '" target="_blank">' . $qi['name'] . '</a>, ';
$j++;
@ -359,17 +359,17 @@ class Quests
}
unset($qn, $qi, $e2, $e3, $e4);
}
//Задержка между выполнением квеста
//Задержка между выполнением квеста
if (isset($d['tr_zdr'])) {
$qlst = mysql_fetch_array(mysql_query('SELECT * FROM `actions` WHERE `uid` = "' . $u->info['id'] . '" AND `vars` = "start_quest' . $pl['id'] . '" AND `vals` != "go" LIMIT 1'));
$t .= 'Задержка между выполнением задания: ' . $u->timeOut($d['tr_zdr'] * 60 * 60);
$t .= 'Задержка между выполнением задания: ' . $u->timeOut($d['tr_zdr'] * 60 * 60);
if ($qlst['time'] + ($d['tr_zdr'] * 60 * 60) - time() > 0) {
$t .= '<small>(Осталось: ' . $u->timeOut($qlst['time'] + ($d['tr_zdr'] * 60 * 60) - time()) . ' ч.)</small>';
$t .= '<small>(Осталось: ' . $u->timeOut($qlst['time'] + ($d['tr_zdr'] * 60 * 60) - time()) . ' ч.)</small>';
}
$t .= '<br>';
unset($qlst);
}
//Переодичность квеста
//Переодичность квеста
if (isset($d['tr_tm1'])) {
$d['tr_tm1'] = str_replace('d', date('d'), $d['tr_tm1']);
$d['tr_tm1'] = str_replace('m', date('m'), $d['tr_tm1']);
@ -379,31 +379,31 @@ class Quests
$d['tr_tm2'] = str_replace('m', date('m'), $d['tr_tm2']);
$d['tr_tm2'] = str_replace('y', date('y'), $d['tr_tm2']);
$t .= 'Период квеста: ' . $d['tr_tm1'] . ' - ' . $d['tr_tm2'] . '<br>';
$t .= 'Период квеста: ' . $d['tr_tm1'] . ' - ' . $d['tr_tm2'] . '<br>';
}
//Сколько раз можно пройти квест
//Сколько раз можно пройти квест
if (isset($d['tr_raz'])) {
if ($d['tr_raz'] == -1) {
$t .= 'Сколько еще раз можно выполнить задание: <b><small>бесконечно</small></b><br>';
$t .= 'Сколько еще раз можно выполнить задание: <b><small>бесконечно</small></b><br>';
} else {
$qlst = $u->testAction('SELECT `id` FROM `actions` WHERE `uid` = "' . $u->info['id'] . '" AND `vars` = "start_quest' . $pl['id'] . '" LIMIT ' . $d['tr_raz'], 2);
$t .= 'Сколько раз можно выполнить задание: ' . ($d['tr_raz'] - $qlst[0]) . '<br>';
$t .= 'Сколько раз можно выполнить задание: ' . ($d['tr_raz'] - $qlst[0]) . '<br>';
}
unset($qlst);
}
//Попыток пройти квест
//Попыток пройти квест
if (isset($d['tr_raz2'])) {
$qlst = $u->testAction('SELECT `id` FROM `actions` WHERE `uid` = "' . $u->info['id'] . '" AND `vars` = "start_quest' . $pl['id'] . '" AND `vals` != "go" AND `vals` != "win" LIMIT ' . $d['tr_raz2'], 2);
$t .= 'Осталось попыток выполнить задание: ' . ($d['tr_raz2'] - $qlst[0]) . '<br>';
$t .= 'Осталось попыток выполнить задание: ' . ($d['tr_raz2'] - $qlst[0]) . '<br>';
unset($qlst);
}
if ($t != '') {
$r .= '<b>Условия задания:</b><br>' . $t . '<br>';
$r .= '<b>Условия задания:</b><br>' . $t . '<br>';
$t = '';
}
//Награда за квест
//Награда за квест
$d = $this->expl($pl['win_date']);
if (isset($d['add_eff'])) {
@ -415,7 +415,7 @@ class Quests
$x6 = mysql_fetch_array(mysql_query('SELECT `id2`,`mname`,`img` FROM `eff_main` WHERE `id2` = "' . $x7[0] . '" LIMIT 1'));
if (isset($x6['id2'])) {
$x5 .= '<img width="40" height="25" src="https://img.new-combats.com/i/eff/' . $x6['img'] . '" title="' . $x6['mname'] . '
Время действия: ' . $u->timeOut($x7[1]) . '"> ';
Время действия: ' . $u->timeOut($x7[1]) . '"> ';
}
$x4++;
}
@ -426,25 +426,25 @@ class Quests
}
if (isset($d['add_rep'])) {
$t .= 'Репутация ' . $u->city_name[$pl['city']] . ': ' . $d['add_rep'] . '<br>';
$t .= 'Репутация ' . $u->city_name[$pl['city']] . ': ' . $d['add_rep'] . '<br>';
}
if (isset($d['add_repizlom'])) {
$t .= 'Репутация Излом Хаоса: ' . $d['add_repizlom'] . '<br>';
$t .= 'Репутация Излом Хаоса: ' . $d['add_repizlom'] . '<br>';
}
if (isset($d['add_cr'])) {
$t .= 'Деньги: ' . $d['add_cr'] . ' кр.<br>';
$t .= 'Деньги: ' . $d['add_cr'] . ' кр.<br>';
}
if ($t != '') {
$r = '<b>Награда:</b><br>' . $t . '<br>' . $r;
$r = '<b>Награда:</b><br>' . $t . '<br>' . $r;
$t = '';
}
//Действия квеста
//Действия квеста
$d = $this->expl($pl['act_date']);
//Поговорить с NPS
//Поговорить с NPS
if (isset($d['dlg_nps'])) {
$i7 = 0;
$x3 = explode(',', $d['dlg_nps']);
@ -453,30 +453,30 @@ class Quests
if ($x4[0] > 0) {
$x1 = mysql_fetch_array(mysql_query('SELECT `text` FROM `dungeon_dialog` WHERE `id` = "' . $x4[0] . '" LIMIT 1'));
if (!isset($x1['text'])) {
$x1 = '<i>незивестно</i>';
$x1 = '<i>незивестно</i>';
} else {
$x1 = $x1['text'];
}
$x = 0;
$t .= 'Поговорить с <b>' . $x1 . '</b>: ' . $x . '/1<br>';
$t .= 'Поговорить с <b>' . $x1 . '</b>: ' . $x . '/1<br>';
}
$i7++;
}
unset($x1, $x3, $x4, $i7);
}
//Убить игроков
//Убить игроков
if (isset($d['kill_user'])) {
$t .= 'Убить игроков: 0/' . $d['kill_user'] . '<br>';
$t .= 'Убить игроков: 0/' . $d['kill_user'] . '<br>';
}
//Убить ботов
//Убить ботов
if (isset($d['kill_bot'])) {
if (isset($d['all_kill']) && (int)$d['all_kill'] > 0) {
$x = '';
$ex = explode(',', $d['kill_bot']);
$i = 0; # Количество циклов для каждого типа бота.
$i = 0; # Количество циклов для каждого типа бота.
$q = '';
while ($i < count($ex)) {
$ex2 = explode('=', $ex[$i]);
@ -516,12 +516,12 @@ class Quests
if ($x != '') {
$x = trim($x, ', ');
$t .= 'Убить ботов: <br>' . $x;
$t .= 'Убить ботов: <br>' . $x;
}
unset($x, $ex, $x2, $bot2, $ex2);
}
//Собрать ресурсы
//Собрать ресурсы
if (isset($d['tk_itm'])) {
$ex = explode(',', $d['tk_itm']);
$i = 0;
@ -538,11 +538,11 @@ class Quests
}
if ($x != '') {
$x = trim($x, ', ');
$t .= 'Собрать ресурсы: <br>' . $x;
$t .= 'Собрать ресурсы: <br>' . $x;
}
}
//Собирание трофеев
//Собирание трофеев
if (isset($d['tkill_itm'])) {
$ex = explode(',', $d['tkill_itm']);
$i = 0;
@ -559,17 +559,17 @@ class Quests
}
if ($x != '') {
$x = trim($x, ', ');
$t .= 'Собрать трофеи: <br>' . $x;
$t .= 'Собрать трофеи: <br>' . $x;
}
}
if ($t != '') {
$r = '<br><b>Действия задания:</b><br>' . $t . '<br>' . $r;
$r = '<br><b>Действия задания:</b><br>' . $t . '<br>' . $r;
$t = '';
}
if ($r == '') {
$r = 'Дополнительная информация по заданию отсутствует';
$r = 'Дополнительная информация по заданию отсутствует';
}
return $r;
}
@ -577,35 +577,35 @@ class Quests
public function testquest()
{
global $u;
if ($u->info['battle'] == 0 && $u->room['name'] != 'Башня Смерти') {
if ($u->info['battle'] == 0 && $u->room['name'] != 'Башня Смерти') {
$sp = mysql_query('SELECT * FROM `actions` WHERE `uid` = "' . $u->info['id'] . '" AND `vars` LIKE "%start_quest%" AND `vals` = "go" LIMIT 100');
while ($pl2 = mysql_fetch_array($sp)) {
$pl = mysql_fetch_array(mysql_query('SELECT * FROM `quests` WHERE `id` = "' . (str_replace('start_quest', '', $pl2['vars'])) . '" LIMIT 1'));
$g = 1;
//Действия квеста
//Действия квеста
$d = $this->expl($pl['act_date']);
//Поговорить с NPS
//Поговорить с NPS
if (isset($d['dlg_nps'])) {
$g = 0;
unset($x);
}
//Убить игроков
//Убить игроков
if (isset($d['kill_user'])) {
$x = 0;
if ($x < $d['kill_user']) {
$g = 0;
}
//$d['kill_user'] - стольких нужно убить
//$d['kill_user'] - стольких нужно убить
unset($x);
}
//Убить ботов
//Убить ботов
if (isset($d['kill_bot'])) {
$ex = explode(',', $d['kill_bot']);
$ii = 0; // Количество циклов для каждого типа бота.
$ii = 0; // Количество циклов для каждого типа бота.
$q = '';
while ($ii < count($ex)) {
$ex2 = explode('=', $ex[$ii]);
@ -629,11 +629,11 @@ class Quests
unset($x, $ex, $x2, $x3, $bot2, $ex2);
}
//Собрать ресурсы
//Собрать ресурсы
if (isset($d['tk_itm'])) {
$g = $this->collect_01(explode(',', $d['tk_itm']), $u);
}
//Собирание трофеев
//Собирание трофеев
if (isset($d['tkill_itm'])) {
$g = $this->collect_01(explode(',', $d['tkill_itm']), $u);
}
@ -647,7 +647,7 @@ class Quests
}
}
private function collect_01($arr, $u){ // убираю дублирование. хер пойми что проверяем, хз как назвать.
private function collect_01($arr, $u){ // убираю дублирование. хер пойми что проверяем, хз как назвать.
$i = 0;
while ($i < count($arr)) {
$ex2 = explode('=', $arr[$i]);
@ -660,7 +660,7 @@ class Quests
return 1;
}
private function collect_02($ex, $u, $pl) { // убираю дублирование. хер пойми что проверяем, хз как назвать.
private function collect_02($ex, $u, $pl) { // убираю дублирование. хер пойми что проверяем, хз как назвать.
$i = 0;
while ($i < count($ex)) {
$ex2 = explode('=', $ex[$i]);
@ -680,25 +680,25 @@ class Quests
return 1;
}
# Функция отвечает за ПРОВЕРКУ на ЗАВЕРШЕНИЕ квестов для ПОДЗЕМОК
# Функция отвечает за ПРОВЕРКУ на ЗАВЕРШЕНИЕ квестов для ПОДЗЕМОК
public function questCheckEnd($pl)
{
global $u;
$quest = mysql_fetch_array(mysql_query('SELECT * FROM `actions` WHERE `uid` = "' . $u->info['id'] . '" AND `vars` = "start_quest' . $pl['id'] . '" ORDER BY `time` DESC LIMIT 1'));
#Проверяем квест, завершен = 0 нет, 1 да.
#Проверяем квест, завершен = 0 нет, 1 да.
$r = 0;
if ($u->info['battle'] == 0 && $u->room['name'] != 'Башня Смерти') {
if ($u->info['battle'] == 0 && $u->room['name'] != 'Башня Смерти') {
$g = 1;
# Действия квеста
# Действия квеста
$d = $this->expl($pl['act_date']);
# Поговорить с NPS
# Поговорить с NPS
if (isset($d['dlg_nps'])) {
$g = 0;
unset($x);
}
# Убить игроков
# Убить игроков
if (isset($d['kill_user'])) {
$x = 0;
if ($x < $d['kill_user']) {
@ -707,10 +707,10 @@ class Quests
unset($x);
}
# Убить ботов
# Убить ботов
if (isset($d['kill_bot'])) {
$ex = explode(',', $d['kill_bot']);
$i = 0; # Количество циклов для каждого типа бота.
$i = 0; # Количество циклов для каждого типа бота.
$q = '';
while ($i < count($ex)) {
$ex2 = explode('=', $ex[$i]);
@ -740,11 +740,11 @@ class Quests
unset($x, $ex, $x2, $x3, $bot2, $ex2);
}
# Собрать ресурсы
# Собрать ресурсы
if (isset($d['tk_itm'])) {
$g = $this->collect_02(explode(',', $d['tk_itm']), $u, $pl);
}
# Собирание трофеев
# Собирание трофеев
if (isset($d['tkill_itm'])) {
$g = $this->collect_02(explode(',', $d['tkill_itm']), $u, $pl);
}
@ -753,7 +753,7 @@ class Quests
return $r;
}
/** Выдача наград за пещеры */
/** Выдача наград за пещеры */
public function questSuccesEnd($quest, $action)
{
global $u, $c, $magic;
@ -765,7 +765,7 @@ class Quests
$d = $this->expl($quest['act_date']);
$d = array_merge($d, $this->expl($quest['win_date']));
// Забираем ресурсы или трофеи
// Забираем ресурсы или трофеи
if (isset($d['tk_itm']) || isset($d['tkill_itm'])) {
$ex = [];
if (isset($d['tk_itm'])) {
@ -793,9 +793,9 @@ class Quests
}
$t = '';
# Получаем репутацию за квест,
# Получаем репутацию за квест,
if (isset($d['add_rep'])) {
# если это убийства ботов.
# если это убийства ботов.
if (isset($d['kill_bot']) && isset($d['all_kill']) && $d['add_rep'] > 0) {
$ex = explode(',', $d['kill_bot']);
$ii = 0;
@ -825,7 +825,7 @@ class Quests
if ($this->stats['more_awards'] >= 0) {
$d['add_rep'] += $d['add_rep'] / 100 * 50;
}
$t .= '' . $d['add_rep'] . ' ед. репутации ' . $u->city_name[$quest['city']] . ', ';
$t .= '' . $d['add_rep'] . ' ед. репутации ' . $u->city_name[$quest['city']] . ', ';
if (
$rep['rep' . $quest['city']] < 24999 &&
$rep['rep' . $quest['city']] + $d['add_rep'] >= 24999 &&
@ -840,7 +840,7 @@ class Quests
}
}
if (isset($d['add_repizlom'])) {
$t .= '' . $d['add_repizlom'] . ' ед. репутации Излома Хаоса, ';
$t .= '' . $d['add_repizlom'] . ' ед. репутации Излома Хаоса, ';
$rep = mysql_fetch_array(mysql_query('SELECT * FROM `rep` WHERE `id` = "' . $u->info['id'] . '" LIMIT 1'));
$rep['repizlom'] += $d['add_repizlom'];
if ($rep['repizlom'] > 24999) {
@ -859,18 +859,18 @@ class Quests
}
}
if (isset($d['add_cr'])) {
$t .= '' . $d['add_cr'] . ' кр., ';
$t .= '' . $d['add_cr'] . ' кр., ';
mysql_query('UPDATE `users` SET `money` = `money`+' . $d['add_cr'] . ' WHERE `id` = "' . $u->info['id'] . '" LIMIT 1');
}
if ($t != '') {
$t = rtrim($t, ', ');
$r = 'Задание <b>' . $quest['name'] . '</b> было успешно выполнено! Вы получили награду: ' . $t . '.';
$r = 'Задание <b>' . $quest['name'] . '</b> было успешно выполнено! Вы получили награду: ' . $t . '.';
unset($t);
} else {
$r = 'Задание <b>' . $quest['name'] . '</b> было успешно выполнено!';
$r = 'Задание <b>' . $quest['name'] . '</b> было успешно выполнено!';
}
$r = '<small>' . $r . '</small>';
//Отправляем сообщение в чат
//Отправляем сообщение в чат
mysql_query('UPDATE `actions` SET `vals` = "win" , `time` = "' . time() . '" WHERE `id` = "' . $action['id'] . '" AND `vals` = "go" LIMIT 1');
mysql_query("INSERT INTO `chat` (`new`,`city`,`room`,`login`,`to`,`text`,`time`,`type`,`toChat`) VALUES ('1','" . $u->info['city'] . "','" . $u->info['room'] . "','','" . $u->info['login'] . "','" . $r . "','-1','5','0')");
@ -894,7 +894,7 @@ class Quests
die();
}
// Забираем ресурсы
// Забираем ресурсы
if (isset($d['tk_itm'])) {
$ex = explode(',', $d['tk_itm']);
$i = 0;
@ -906,7 +906,7 @@ class Quests
$i++;
}
}
// Забираем трофеи
// Забираем трофеи
if (isset($d['tkill_itm'])) {
$ex = explode(',', $d['tkill_itm']);
$i = 0;
@ -920,7 +920,7 @@ class Quests
}
$t = '';
if (isset($d['add_rep'])) { // Получаем репутацию за квест, если это убийства ботов.
if (isset($d['add_rep'])) { // Получаем репутацию за квест, если это убийства ботов.
if (isset($d['kill_bot']) && isset($d['all_kill']) && $d['add_rep'] > 0) {
$ex = explode(',', $d['kill_bot']);
$ii = 0;
@ -939,9 +939,9 @@ class Quests
}
unset($x, $i, $ii, $ex, $x2, $bot2, $ex2);
if ($pl['city'] != '') {
$t .= '' . $d['add_rep'] . ' ед. репутации ' . $u->city_name[$pl['city']] . ', ';
$t .= '' . $d['add_rep'] . ' ед. репутации ' . $u->city_name[$pl['city']] . ', ';
$rep = mysql_fetch_array(mysql_query('SELECT * FROM `rep` WHERE `id` = "' . $u->info['id'] . '" LIMIT 1'));
// Рыцарки
// Рыцарки
/*if($rep['rep'.$pl['city']] < 10000 && $rep['rep'.$pl['city']] + $d['add_rep'] >= 10000 && $pl['kin'] != 1) {
$rep['rep'.$pl['city']] = 9999;
} else*/
@ -955,7 +955,7 @@ class Quests
}
if (isset($d['add_repizlom'])) {
$t .= '' . $d['add_repizlom'] . ' ед. репутации Излома Хаоса, ';
$t .= '' . $d['add_repizlom'] . ' ед. репутации Излома Хаоса, ';
$rep = mysql_fetch_array(mysql_query('SELECT * FROM `rep` WHERE `id` = "' . $u->info['id'] . '" LIMIT 1'));
$rep['repizlom'] += $d['add_repizlom'];
if ($rep['repizlom'] > 24999) {
@ -976,19 +976,19 @@ class Quests
}
if (isset($d['add_cr'])) {
$t .= '' . $d['add_cr'] . ' кр., ';
$t .= '' . $d['add_cr'] . ' кр., ';
mysql_query('UPDATE `users` SET `money` = `money`+' . $d['add_cr'] . ' WHERE `id` = "' . $u->info['id'] . '" LIMIT 1');
}
if ($t != '') {
$t = rtrim($t, ', ');
$r = 'Задание <b>' . $pl['name'] . '</b> было успешно выполнено! Вы получили награду: ' . $t . '.';
$r = 'Задание <b>' . $pl['name'] . '</b> было успешно выполнено! Вы получили награду: ' . $t . '.';
unset($t);
} else {
$r = 'Задание <b>' . $pl['name'] . '</b> было успешно выполнено!';
$r = 'Задание <b>' . $pl['name'] . '</b> было успешно выполнено!';
}
$r = '<small>' . $r . '</small>';
//Отправляем сообщение в чат
//Отправляем сообщение в чат
mysql_query("INSERT INTO `chat` (`new`,`city`,`room`,`login`,`to`,`text`,`time`,`type`,`toChat`) VALUES ('1','" . $u->info['city'] . "','" . $u->info['room'] . "','','" . $u->info['login'] . "','" . $r . "','-1','5','0')");
}
}

View File

@ -5,18 +5,18 @@ use Core\Db;
class Season
{
public static $yy = [
1 => [1, '01', 'ίνβΰπό', 'ίνβΰπόρκθι'],
2 => [2, '02', 'Τεβπΰλό', 'Τεβπΰλόρκθι'],
3 => [3, '03', 'Μΰπς', 'Μΰπςξβρκθι'],
4 => [4, '04', 'ΐοπελό', 'ΐοπελόρκθι'],
5 => [5, '05', 'Μΰι', 'Μΰιρκθι'],
6 => [6, '06', 'Θώνό', 'Θώνόρκθι'],
7 => [7, '07', 'Θώλό', 'Θώλόρκθι'],
8 => [8, '08', 'ΐβγσρς', 'ΐβγσρςξβρκθι'],
9 => [9, '09', 'Ρενς<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 = [];

View File

@ -16,7 +16,7 @@ class Telegram
private function send($to, $from, $text, $fromType)
{
mysql_query('START TRANSACTION');
$ins = mysql_query("INSERT INTO `telegram` (`uid`,`from`,`fromType`,`text`,`time`) VALUES ('" . $to . "','" . $from . "','" . $fromType . "','" . mysql_real_escape_string(AddSlashes(HtmlSpecialChars($text, null, 'cp1251'))) . "','" . time() . "')");
$ins = mysql_query("INSERT INTO `telegram` (`uid`,`from`,`fromType`,`text`,`time`) VALUES ('" . $to . "','" . $from . "','" . $fromType . "','" . mysql_real_escape_string(AddSlashes(HtmlSpecialChars($text, null))) . "','" . time() . "')");
mysql_query('COMMIT');
if ($ins) {
return mysql_insert_id();
@ -89,7 +89,7 @@ class Telegram
}
if ($fromType == 1) {
$from = '<a href="info/login=' . $from . '" target="_blank" title="Èíô. î ' . $from . '">' . $from . '</a>';
$from = '<a href="info/login=' . $from . '" target="_blank" title="Инф. о ' . $from . '">' . $from . '</a>';
} elseif ($read == 0) {
$from = '<b id="tablePostTxtB' . $id . '">' . $from . '</b>';
}
@ -98,10 +98,10 @@ class Telegram
<tr>
<td width="30" class="underLine2"><div align="center">' . $i1 . '</div></td>
<td width="200" id="tablePostTxt' . $id . '" class="underLine2">' . $from . '</td>
<td width="290" class="underLine2"><a onClick="openPost(' . $id . '); return false;" href="#read' . $id . '" title="Ïðî÷èòàòü ñîîáùåíèå">' . substr($ttl, 0, 30) . '...</a></td>
<td width="290" class="underLine2"><a onClick="openPost(' . $id . '); return false;" href="#read' . $id . '" title="Прочитать сообщение">' . substr($ttl, 0, 30) . '...</a></td>
<td width="120" class="underLine2">' . date('d.m.y H:i', $time) . '</td>
<td width="30" class="underLine2"><div align="center"><IMG style="cursor:pointer;" onClick="lockPost(' . $id . ');" title="Áëîêèðîâêà ñîîáùåíèÿ" src="https://img.new-combats.com/i/locked.gif"></div></td>
<td width="30" class="underLine2"><div align="center"><IMG style="cursor:pointer;" onClick="deletePost(' . $id . ',' . $pg . ');" title="Óäàëèòü ñîîáùåíèå" src="https://img.new-combats.com/i/clear.gif" width="11" height="11"></div></td>
<td width="30" class="underLine2"><div align="center"><IMG style="cursor:pointer;" onClick="lockPost(' . $id . ');" title="Блокировка сообщения" src="https://img.new-combats.com/i/locked.gif"></div></td>
<td width="30" class="underLine2"><div align="center"><IMG style="cursor:pointer;" onClick="deletePost(' . $id . ',' . $pg . ');" title="Удалить сообщение" src="https://img.new-combats.com/i/clear.gif" width="11" height="11"></div></td>
</tr>
</table>
<div id="readMSG' . $id . '" style="display:none;" class="unreadMSG">' . $ttl . '</div>';
@ -114,11 +114,11 @@ class Telegram
<table width="100%" border="0" cellspacing="0" cellpadding="0">
<tr>
<td width="30" class="underLine"><div align="center"></div></td>
<td width="200" class="underLine"><b>Îò êîãî</b></td>
<td width="290" class="underLine"><b>Çàãîëîâîê ñîîáùåíèÿ</b></td>
<td width="120" class="underLine"><b>Êîãäà</b></td>
<td width="30" class="underLine"><div align="center"><IMG alt="Áëîêèðîâêà ñîîáùåíèé" src="https://img.new-combats.com/i/lock_message.gif"></div></td>
<td width="30" class="underLine"><div align="center"><IMG style="cursor:pointer;" onClick="deletePostAll(' . $page . ');" alt="Óäàëèòü âñå ïðî÷èòàííûå ñîîáùåíèÿ" src="https://img.new-combats.com/i/clear.gif" width="11" height="11"></div></td>
<td width="200" class="underLine"><b>От кого</b></td>
<td width="290" class="underLine"><b>Заголовок сообщения</b></td>
<td width="120" class="underLine"><b>Когда</b></td>
<td width="30" class="underLine"><div align="center"><IMG alt="Блокировка сообщений" src="https://img.new-combats.com/i/lock_message.gif"></div></td>
<td width="30" class="underLine"><div align="center"><IMG style="cursor:pointer;" onClick="deletePostAll(' . $page . ');" alt="Удалить все прочитанные сообщения" src="https://img.new-combats.com/i/clear.gif" width="11" height="11"></div></td>
</tr>
</table>';
@ -138,7 +138,7 @@ class Telegram
}
if ($i[0] == 0) {
echo '<div class="noMsg" align="center">Ñîîáùåíèé íåò</div>';
echo '<div class="noMsg" align="center">Сообщений нет</div>';
} elseif ($i[0] > $maxPages) {
$pages = '';
$i = 1;
@ -153,7 +153,7 @@ class Telegram
echo '<table width="100%" border="0" cellspacing="0" cellpadding="0">
<tr>
<td width="30"><div align="center"></div></td>
<td width="200">Ñòðàíèöû: ' . $pages . '</td>
<td width="200">Страницы: ' . $pages . '</td>
<td width="240"></td>
<td width="170"></td>
<td width="30"></td>
@ -165,6 +165,6 @@ class Telegram
public function __clone()
{
trigger_error('Äóáëèðîâàíèå íå äîïóñêàåòñÿ.', E_USER_ERROR);
trigger_error('Дублирование не допускается.', E_USER_ERROR);
}
}

View File

@ -7,7 +7,7 @@ class Tournir
private User $u;
private array $info;
private array $user;
private array $name = [0 => 'Выжить любой ценой', 1 => 'Каждый сам за себя', 2 => 'Захват ключа',];
private array $name = [0 => 'Выжить любой ценой', 1 => 'Каждый сам за себя', 2 => 'Захват ключа',];
public function __construct()
{
@ -31,13 +31,13 @@ class Tournir
}
} else {
Db::sql('update turnirs set status = 3 where id = ?', [$this->info['id']]);
//Создание поединка
//Создание поединка
Db::sql('insert into battle (city, time_start, timeout, type, turnir) values (?,unix_timestamp(),60,1,?)', [$this->u->info['city'], $this->info['id']]);
$uri = Db::lastInsertId();
//Закидываем персонажей в поединок
//Закидываем персонажей в поединок
Db::sql('update users set battle = ? where inUser = 0 and inTurnirnew = ?', [$uri, $this->info['id']]);
//Обозначаем завершение турнира при выходе
die('Перейтиде в раздел "поединки"...');
//Обозначаем завершение турнира при выходе
die('Перейтиде в раздел "поединки"...');
}
}
@ -53,7 +53,7 @@ class Tournir
$inf = mysql_fetch_array(mysql_query('SELECT * FROM `users` WHERE `id` = "' . $pl['uid'] . '" LIMIT 1'));
$bot = mysql_fetch_array(mysql_query('SELECT * FROM `users` WHERE `id` = "' . $pl['bot'] . '" LIMIT 1'));
if (isset($inf['id'], $bot['id'])) {
//выдаем призы и т.д
//выдаем призы и т.д
mysql_query('DELETE FROM `users` WHERE `id` = "' . $bot['id'] . '" LIMIT 1');
mysql_query('DELETE FROM `stats` WHERE `id` = "' . $bot['id'] . '" LIMIT 1');
mysql_query('DELETE FROM `items_users` WHERE `uid` = "' . $bot['id'] . '" LIMIT 1000');
@ -63,7 +63,7 @@ class Tournir
if ($pl['team'] == $this->info['winner'] && $this->info['winner'] != 0) {
$inf['add_expp'] = [0, 1, 5, 10, 15, 25, 35, 70, 100, 150, 200, 300, 500, 700, 1000];
//получаем опыт (с 0 по 12 лвл)
//получаем опыт (с 0 по 12 лвл)
$inf['add_expn'] = [10, 30, 55, 62, 92, 180, 350, 1350, 4500, 7000, 21000, 30000, 35000];
$inf['add_expn'] = $inf['add_expn'][$inf['level']];
@ -71,7 +71,7 @@ class Tournir
mysql_query('UPDATE `stats` SET `exp` = `exp` + ' . $inf['add_expn'] . ' WHERE `id` = "' . $inf['id'] . '" LIMIT 1');
$win .= '<b>' . $inf['login'] . '</b>, ';
$r = 'Турнир завершен. Вы являетесь победителем турнира, получено опыта: <b>' . $inf['add_expn'] . '</b>.';
$r = 'Турнир завершен. Вы являетесь победителем турнира, получено опыта: <b>' . $inf['add_expn'] . '</b>.';
mysql_query("INSERT INTO `chat` (`new`,`city`,`room`,`login`,`to`,`text`,`time`,`type`,`toChat`) VALUES ('1','capitalcity','" . $inf['room'] . "','','" . $inf['login'] . "','" . $r . "','" . time() . "','6','0')");
} elseif ($pl['team'] != $this->info['winner'] && $this->info['winner'] != 0) {
@ -89,11 +89,11 @@ class Tournir
if ($win != '') {
$win = rtrim($win, ', ');
$lose = rtrim($lose, ', ');
$win = 'Победители турнира: ' . $win . '. Проигравшая сторона: ' . $lose . '. Следующий турнир начнется через ' . $this->u->timeOut($this->info['time2']) . ' (' . date('d.m.Y H:i', (time() + $this->info['time2'])) . ').';
$win = 'Победители турнира: ' . $win . '. Проигравшая сторона: ' . $lose . '. Следующий турнир начнется через ' . $this->u->timeOut($this->info['time2']) . ' (' . date('d.m.Y H:i', (time() + $this->info['time2'])) . ').';
} else {
$win = 'Победители турнира отсутствует. Следующий турнир начнется через ' . $this->u->timeOut($this->info['time2']) . ' (' . date('d.m.Y H:i', (time() + $this->info['time2'])) . ').';
$win = 'Победители турнира отсутствует. Следующий турнир начнется через ' . $this->u->timeOut($this->info['time2']) . ' (' . date('d.m.Y H:i', (time() + $this->info['time2'])) . ').';
}
$r = '<font color=black><b>Турнир завершен.</b></font> ' . $win;
$r = '<font color=black><b>Турнир завершен.</b></font> ' . $win;
mysql_query("INSERT INTO `chat` (`new`,`city`,`room`,`login`,`to`,`text`,`time`,`type`,`toChat`) VALUES ('1','capitalcity','','','','" . $r . "','" . time() . "','6','0')");
}
}
@ -105,7 +105,7 @@ class Tournir
$tm2 = '';
$noitm = [869 => 1, 1246 => 1, 155 => 1, 1245 => 1, 678 => 1];
//получение комплекта
//получение комплекта
if ($this->info['step'] != 3 && $this->info['step'] != 0 && isset($_GET['gocomplect']) && $this->user['points'] < 2) {
$aso = explode(',', $this->user['items']);
$ast = explode('-', $_GET['gocomplect']);
@ -150,19 +150,19 @@ class Tournir
}
if ($noitm > 0) {
echo 'Использование багов карается законом!';
echo 'Использование багов карается законом!';
$addi = 0;
} elseif (count($asg[3]) > 2) {
echo 'Вы выбрали слишком много предметов, выберите только два оружия и один щит';
echo 'Вы выбрали слишком много предметов, выберите только два оружия и один щит';
$addi = 0;
} elseif (count($asg[10]) > 3) {
echo 'Вы выбрали слишком много предметов, выберите только три кольца';
echo 'Вы выбрали слишком много предметов, выберите только три кольца';
$addi = 0;
} elseif ($j > 16) {
echo 'Вы выбрали слишком много предметов';
echo 'Вы выбрали слишком много предметов';
$addi = 0;
} elseif ($j < 1) {
echo 'Выберите хотя бы один предмет';
echo 'Выберите хотя бы один предмет';
$addi = 0;
}
@ -211,7 +211,7 @@ class Tournir
if ($this->info['step'] == 3) {
$this->finishTurnir();
} elseif ($this->info['step'] == 0) {
//распределяем команды
//распределяем команды
$po = [0, 0];
$sp = mysql_query('SELECT * FROM `users_turnirs` WHERE `turnir` = "' . $this->info['id'] . '" AND `points` > 3 ORDER BY `points` DESC LIMIT ' . $this->info['users_in']);
$tmr = rand(1, 2);
@ -252,7 +252,7 @@ class Tournir
${'tm' . $bot['team']} .= $this->u->microLogin($bot, 2) . '<br>';
}
}
$r .= '<style>/* цвета команд */
$r .= '<style>/* цвета команд */
.CSSteam0 { font-weight: bold; cursor:pointer; }
.CSSteam1 { font-weight: bold; color: #6666CC; cursor:pointer; }
.CSSteam2 { font-weight: bold; color: #B06A00; cursor:pointer; }
@ -264,33 +264,33 @@ class Tournir
.CSSteam8 { font-weight: bold; color: #842B61; cursor:pointer; }
.CSSteam9 { font-weight: bold; color: navy; cursor:pointer; }
.CSSvs { font-weight: bold; }</style>';
$r .= '<h3>&laquo;' . $this->name[$this->info['type']] . '&raquo;</h3><br>Начало турнира через ' . $this->u->timeOut($this->info['time'] - time()) . '! ';
$r .= '<h3>&laquo;' . $this->name[$this->info['type']] . '&raquo;</h3><br>Начало турнира через ' . $this->u->timeOut($this->info['time'] - time()) . '! ';
if (isset($_GET['hpregenNowTurnir']) && ($this->u->stats['hpNow'] < $this->u->stats['hpAll'] || $this->u->stats['mpNow'] < $this->u->stats['mpAll'])) {
mysql_query('UPDATE `stats` SET `hpNow` = "' . $this->u->stats['hpAll'] . '",`mpNow` = "' . $this->u->stats['mpAll'] . '" WHERE `id` = "' . $this->u->info['id'] . '" LIMIT 1');
}
if ($this->user['points'] < 3) {
//Еще не получили обмундирование
//Еще не получили обмундирование
if ($this->user['points'] < 2) {
$r .= '<INPUT class=\'btn_grey\' onClick="selectItmSave()" TYPE=button name=tmp value="Получить обмундирование">';
$r .= '<INPUT class=\'btn_grey\' onClick="selectItmSave()" TYPE=button name=tmp value="Получить обмундирование">';
} else {
$r .= ' <INPUT class=\'btn_grey\' onClick="location=\'main.php\';" TYPE=button name=tmp value="Я готов';
$r .= ' <INPUT class=\'btn_grey\' onClick="location=\'main.php\';" TYPE=button name=tmp value="Я готов';
if ($this->u->info['sex'] == 1) {
$r .= 'а';
$r .= 'а';
}
$r .= '!">';
}
} else {
$r .= '<small><b>Вы участвуете в турнире!</b></small>';
$r .= ' &nbsp; <INPUT class=\'btn_grey\' onClick="location.href=\'main.php?hpregenNowTurnir=1\'" TYPE=button name=tmp value="Восстановить HP и MP">';
$r .= '<small><b>Вы участвуете в турнире!</b></small>';
$r .= ' &nbsp; <INPUT class=\'btn_grey\' onClick="location.href=\'main.php?hpregenNowTurnir=1\'" TYPE=button name=tmp value="Восстановить HP и MP">';
}
$r .= '<div style="float:right"><INPUT onClick="location=\'main.php\';" TYPE=button name=tmp value="Обновить"></div>';
$r .= '<div style="float:right"><INPUT onClick="location=\'main.php\';" TYPE=button name=tmp value="Обновить"></div>';
if ($this->user['points'] < 3 && $this->user['items'] != '0') {
$r .= '<div align="left" style="height:1px; width:100%; margin:10px 0 10px 0; border-top:1px solid #999999;"></div>';
if ($this->user['items'] == '') {
//Выдаем предметы для выбора
//Выдаем предметы для выбора
$ai = '';
$sp = mysql_query('SELECT `a`.*,`b`.* FROM `items_shop` AS `a` LEFT JOIN `items_main` AS `b` ON (`a`.`item_id` = `b`.`id`) WHERE `a`.`sid` = 1 AND
@ -311,10 +311,10 @@ class Tournir
//
$com[$i] = $aso[$i][rand(0, count($aso[$i]) - 1)];
} elseif ($i == 14) {
//правая рука
//правая рука
$com[$i] = $aso[$i][rand(0, count($aso[$i]) - 1)];
} else {
//обмундирование
//обмундирование
$com[$i] = $aso[$i][rand(0, count($aso[$i]) - 1)];
if ($i == 10) {
$ai .= $com[$i]['id'] . ',';
@ -338,7 +338,7 @@ class Tournir
mysql_query('UPDATE `users_turnirs` SET `items` = "' . $ai . '" WHERE `id` = "' . $this->user['id'] . '" LIMIT 1');
}
//Выводим предметы чтобы надеть их
//Выводим предметы чтобы надеть их
$ai = explode(',', $this->user['items']);
$i = 0;
$ia = [];
@ -352,7 +352,7 @@ class Tournir
}
unset($ai);
$r .= '<b>Выберите предметы для турнира:</b><br>';
$r .= '<b>Выберите предметы для турнира:</b><br>';
?>
<style>
.its0 {
@ -466,8 +466,8 @@ class Tournir
$r .= '<div align="left" style="height:1px; width:100%; margin:10px 0 10px 0; border-top:1px solid #999999;"></div>';
$r .= '<table style="border:1px solid #99cccc" width="700" bgcolor="#bbdddd" border="0" align="center" cellpadding="5" cellspacing="0">
<tr>
<td width="350" align="center" bgcolor="#99cccc"><b class="CSSteam1">Команда 1</b></td>
<td align="center" bgcolor="#99cccc"><b class="CSSteam2">Команда 2</b></td>
<td width="350" align="center" bgcolor="#99cccc"><b class="CSSteam1">Команда 1</b></td>
<td align="center" bgcolor="#99cccc"><b class="CSSteam2">Команда 2</b></td>
</tr>
<tr>
<td align="center" style="border-right:1px solid #99cccc">' . rtrim($tm1, ', ') . '</td>
@ -476,7 +476,7 @@ class Tournir
</table>';
if (($this->info['time'] - time() < 0) && $this->info['step'] == 1) {
//начинаем турнир
//начинаем турнир
$this->startTurnir();
}
echo $r;

View File

@ -1,7 +1,7 @@
<?php
/**
* Единая функция для заливки файлов на сервер.
* Единая функция для заливки файлов на сервер.
*
* @author Ivor Barhansky <me@lopar.space>
* @version 1
@ -60,7 +60,7 @@ class Uploader
}
/**
* @param string $path путь от корня до конечной папки без открывающего слеша.
* @param string $path путь от корня до конечной папки без открывающего слеша.
* @return void
*/
public function setSavePath($path)
@ -100,19 +100,19 @@ class Uploader
{
list($width, $height) = getimagesize($this->FILE['tmp_name']);
if (!$width || !$height) {
self::$error = 'Не подтянулись размеры файла.';
self::$error = 'Не подтянулись размеры файла.';
return false;
}
if (
($width < $this->width['min'] || $width > $this->width['max']) ||
($height < $this->height['min'] || $height > $this->height['max'])
) {
self::$error = 'Требования к размеру: ';
self::$error = 'Требования к размеру: ';
if ($this->width['min'] !== $this->width['max'] || $this->height['min'] !== $this->height['max']) {
self::$error .= "от [{$this->width['min']} x {$this->height['min']}] до ";
self::$error .= "от [{$this->width['min']} x {$this->height['min']}] до ";
}
self::$error .= "[{$this->width['max']} x {$this->height['max']}].";
self::$error .= " Текущий размер [$width x $height]";
self::$error .= " Текущий размер [$width x $height]";
return false;
}
return true;
@ -124,7 +124,7 @@ class Uploader
$this->setMaxFileSize(2);
}
if ($this->FILE['size'] > $this->maxFileSizeMb * (1024 * 1024) || $this->FILE['size'] <= 0) {
self::$error = 'Неверный размер файла. Максимальный размер файла ' . $this->maxFileSizeMb . ' МБ';
self::$error = 'Неверный размер файла. Максимальный размер файла ' . $this->maxFileSizeMb . ' МБ';
return false;
}
return true;
@ -136,7 +136,7 @@ class Uploader
!preg_match('/\.(' . $this->extensions . ')$/i', $this->FILE['name'], $this->extMatches) ||
!preg_match('/image/i', $this->FILE['type'])
) {
self::$error = 'Неверный тип файла. Допустимые типы : ' . $this->extensions;
self::$error = 'Неверный тип файла. Допустимые типы : ' . $this->extensions;
return false;
}
return true;
@ -145,7 +145,7 @@ class Uploader
private function hasNormalFilePath()
{
if (!$this->savePath || !is_dir($this->savePath)) {
self::$error = 'Ошибка загрузки: нет такой папки.';
self::$error = 'Ошибка загрузки: нет такой папки.';
return false;
}
return true;
@ -161,7 +161,7 @@ class Uploader
$fn2 = $this->cnm;
}
if (!move_uploaded_file($this->FILE['tmp_name'], $this->savePath . $fn)) {
self::$error = 'Ошибка загрузки файла';
self::$error = 'Ошибка загрузки файла';
return false;
}
return [$fn2, $fn, $this->savePath . $fn];

File diff suppressed because it is too large Load Diff

View File

@ -10,11 +10,11 @@ use UserIp;
class Confirmation
{
/**
* Для однотипных писем с подтверждением.
* @param array $userinfo Данные из (User)->info.
* @param mixed $value Новое значение
* @param ?int $code Проверочный код
* @param string $type Тип меняемого значения. С маленькой буквы, именительный падеж.
* Для однотипных писем с подтверждением.
* @param array $userinfo Данные из (User)->info.
* @param mixed $value Новое значение
* @param ?int $code Проверочный код
* @param string $type Тип меняемого значения. С маленькой буквы, именительный падеж.
* @return void
*/
public static function byEmail(array $userinfo, string $type, $value, ?int $code = null)
@ -34,23 +34,23 @@ class Confirmation
$userinfo['mail'],
<<<HTML
<html lang="ru">
<head><title>Сменить $type</title></head>
<head><title>Сменить $type</title></head>
<body>
$date<br>
Кто-то с IP: $ip пытается сменить $type к персонажу $fulllogin.<br>
Т.к. в анкете у этого персонажа указан email: {$userinfo['mail']}, то вы и получили это письмо.<br>
Кто-то с IP: $ip пытается сменить $type к персонажу $fulllogin.<br>
Т.к. в анкете у этого персонажа указан email: {$userinfo['mail']}, то вы и получили это письмо.<br>
login: {$userinfo['login']}<br>
Новый $type: <span style="background-color: wheat; font-family: Consolas, monospace;">$value</span><br><br>
Для того чтобы сменить $type, перейдите по ссылке:<br>
Новый $type: <span style="background-color: wheat; font-family: Consolas, monospace;">$value</span><br><br>
Для того чтобы сменить $type, перейдите по ссылке:<br>
$activationLink<br>
<br>--<br>
Бойцовский Клуб $https<br>
Администрация Бойцовского Клуба: $support<br>
P.S. Данное письмо сгенерировано автоматически, отвечать на него не нужно.
Бойцовский Клуб $https<br>
Администрация Бойцовского Клуба: $support<br>
P.S. Данное письмо сгенерировано автоматически, отвечать на него не нужно.
</body>
</html>
HTML,
"Смена $type у персонажа $fulllogin"
"Смена $type у персонажа $fulllogin"
);
}
@ -63,18 +63,18 @@ class Confirmation
$userinfo['mail'],
<<<HTML
<html lang="ru">
<head><title>Второй пароль от персонажа $fulllogin.</title></head>
<head><title>Второй пароль от персонажа $fulllogin.</title></head>
<body>
Вами, с IP адреса - $ip, был установлен второй пароль в игре Бойцовский Клуб.<br>
Если это были не Вы, свяжитесь с администрацией сайта.<br><br>
Вами, с IP адреса - $ip, был установлен второй пароль в игре Бойцовский Клуб.<br>
Если это были не Вы, свяжитесь с администрацией сайта.<br><br>
------------------------------------------------------------------<br>
Ваш логин | {$userinfo['login']}<br>
Второй пароль | ' . $pass2 . '<br>
Ваш логин | {$userinfo['login']}<br>
Второй пароль | ' . $pass2 . '<br>
------------------------------------------------------------------<br>
<br><br>Желаем Вам приятной игры.<br><br><i>Администрация</i>
<br><br>Желаем Вам приятной игры.<br><br><i>Администрация</i>
</body>
HTML,
"Второй пароль от персонажа $fulllogin"
"Второй пароль от персонажа $fulllogin"
);
}
@ -91,25 +91,25 @@ class Confirmation
[$uid, $code]
);
if (!$codes['id']) {
$status = 'Ссылка устарела!';
$status = 'Ссылка устарела!';
} elseif ($codes['active'] === 1) {
Db::sql(
'update users set emailconfirmation = 1, securetime = unix_timestamp() + 259200 where id = ?',
[$codes['id']]
);
$status = "Подтверждение смены пароля/email через почту включено";
$status = "Подтверждение смены пароля/email через почту включено";
} elseif ($codes['pass'] === 1) {
Db::sql(
'update users as u inner join emailconfirmation as e on u.id = e.id set u.pass = e.pa_em, u.securetime = unix_timestamp() + 259200 where u.id = ?',
[$codes['id']]
);
$status = "Удачно сменили пароль<";
$status = "Удачно сменили пароль<";
} elseif ($codes['email'] === 1) {
Db::sql(
'update users as u inner join emailconfirmation as e on u.id = e.id set u.mail = e.pa_em, u.securetime = unix_timestamp() + 259200 where u.id = ?',
[$codes['id']]
);
$status = "Удачно сменили email";
$status = "Удачно сменили email";
}
Db::sql('delete from emailconfirmation where id = ? and code = ?', [$_GET['id'], $_GET['code']]);
if ($status) {

View File

@ -25,7 +25,7 @@ class Password
PassGen::intCode(10),
password_hash($new, PASSWORD_DEFAULT)
];
Confirmation::byEmail($this->info, 'ïàðîëü', $new, $args[1]);
Confirmation::byEmail($this->info, 'пароль', $new, $args[1]);
$hashedPass = $args[2];
} else {
$query = 'update users set pass = ?, repass = 0, securetime = unix_timestamp() + 259200 where id = ?';

View File

@ -1,119 +1,246 @@
<?php
use Core\Config;
use Core\Db;
class UserRegister
{
private string $error = '';
private string $login = '';
private string $email = '';
private string $password = '';
private int $class = 0;
private array $classBonuses = [
1 => [
's1=62|s2=3|s3=3|s4=30|rinv=40|m9=5|m6=10|s7=0|a1=0|a2=9|a3=0|a4=0|a5=0|mg1=0|mg2=0|mg3=0|mg4=0|mg5=0|mg6=0|mg7=0|s5=0|s6=0|a6=0|s8=0|s9=0|s10=0|s11=0|s12=0|s13=0|s14=0|s15=0',
'items' => [6433],
'effects' => [1, 20, 25, 37, 38, 283, 296, 412, 472],
],
2 => [
's1=21|s2=31|s3=16|s4=30|rinv=40|m9=5|m6=10|s7=0|a1=9|a2=0|a3=0|a4=0|a5=0|mg1=0|mg2=0|mg3=0|mg4=0|mg5=0|mg6=0|mg7=0|s5=0|s6=0',
'items' => [6431],
'effects' => [8, 20, 25, 37, 38, 283, 296, 412, 472],
],
3 => [
's1=42|s2=3|s3=3|s4=50|rinv=40|m9=5|m6=10|s7=0|a1=0|a2=0|a3=9|a4=0|a5=0|mg1=0|mg2=0|mg3=0|mg4=0|mg5=0|mg6=0|mg7=0|s5=0|s6=0|a6=0|s8=0|s9=0|s10=0|s11=0|s12=0|s13=0|s14=0|s15=0',
'items' => [6432],
'effects' => [1, 20, 25, 37, 38, 283, 296, 412, 472],
],
4 => [
's1=24|s2=15|s3=29|s4=30|rinv=40|m9=5|m6=10|s7=0|a1=0|a2=0|a3=0|a4=9|a5=0|mg1=0|mg2=0|mg3=0|mg4=0|mg5=0|mg6=0|mg7=0|s5=0|s6=0|a6=0|s8=0|s9=0|s10=0|s11=0|s12=0|s13=0|s14=0|s15=0',
'items' => [6430],
'effects' => [7, 20, 25, 37, 38, 283, 296, 412, 472],
],
5 => [
's1=14|s2=3|s3=3|s4=25|rinv=40|m9=5|m6=10|s7=0|a1=0|a2=0|a3=0|a4=0|a5=3|mg1=0|mg2=6|mg3=0|mg4=0|mg5=0|mg6=0|mg7=0|s5=13|s6=40|a6=0|s8=0|s9=0|s10=0|s11=0|s12=0|s13=0|s14=0|s15=0',
'items' => [6435],
'effects' => [9, 32, 53, 439, 25, 37, 38, 283, 296, 412, 472],
],
6 => [
's1=14|s2=3|s3=3|s4=25|rinv=40|m9=5|m6=10|s7=0|a1=0|a2=0|a3=0|a4=0|a5=3|mg1=6|mg2=0|mg3=0|mg4=0|mg5=0|mg6=0|mg7=0|s5=13|s6=40|a6=0|s8=0|s9=0|s10=0|s11=0|s12=0|s13=0|s14=0|s15=0',
'items' => [6447],
'effects' => [9, 32, 51, 439, 25, 37, 38, 283, 296, 412, 472],
],
7 => [
's1=14|s2=3|s3=3|s4=25|rinv=40|m9=5|m6=10|s7=0|a1=0|a2=0|a3=0|a4=0|a5=3|mg1=0|mg2=0|mg3=0|mg4=6|mg5=0|mg6=0|mg7=0|s5=13|s6=40|a6=0|s8=0|s9=0|s10=0|s11=0|s12=0|s13=0|s14=0|s15=0',
'items' => [6436],
'effects' => [9, 32, 54, 439, 25, 37, 38, 283, 296, 412, 472],
],
8 => [
's1=14|s2=3|s3=3|s4=25|rinv=40|m9=5|m6=10|s7=0|a1=0|a2=0|a3=0|a4=0|a5=3|mg1=0|mg2=0|mg3=6|mg4=0|mg5=0|mg6=0|mg7=0|s5=13|s6=40|a6=0|s8=0|s9=0|s10=0|s11=0|s12=0|s13=0|s14=0|s15=0',
'items' => [6448],
'effects' => [9, 32, 52, 439, 25, 37, 38, 283, 296, 412, 472],
],
9 => [
's1=15|s2=23|s3=30|s4=30|rinv=40|m9=5|m6=10|s7=0|a1=9|a2=0|a3=0|a4=0|a5=0|mg1=0|mg2=0|mg3=0|mg4=0|mg5=0|mg6=0|mg7=0|s5=0|s6=0',
'items' => [6530],
'effects' => [8, 20, 25, 37, 38, 283, 296, 412, 472],
],
];
private array $restrictedLogins = [
'ангел', 'angel', 'администрация', 'administration', 'Комментатор',
'Мироздатель', 'Мусорщик', 'Падальщик', 'Повелитель',
'Архивариус', 'Пересмешник', 'Волынщик', 'Лорд Разрушитель',
'Милосердие', 'Справедливость', 'Искушение', 'Вознесение',
];
public function hasMixedLatCur(string $txt): bool
{
$en = preg_match("/^(([0-9A-z -])+)$/i", $txt);
$ru = preg_match("/^(([0-9А-я _-])+)$/i", $txt);
$ru = preg_match("/^(([0-9А-я _-])+)$/i", $txt);
return ($ru && $en) || (!$ru && !$en);
}
public function hasGoodLogin(string $login): string
public function hasGoodLogin(string $login): bool
{
$isRestricted = in_array(
$login,
[
'ангел', 'angel', 'администрация', 'administration', 'Комментатор',
'Мироздатель', 'Мусорщик', 'Падальщик', 'Повелитель',
'Архивариус', 'Пересмешник', 'Волынщик', 'Лорд Разрушитель',
'Милосердие', 'Справедливость', 'Искушение', 'Вознесение',
]
);
$isRestricted = in_array($login, $this->restrictedLogins);
$isRegistered = Db::getValue('select count(*) from users where login = ?', [$login]);
//Бывшие в употреблении логины. Дичь, но ладно.
//Бывшие в употреблении логины. Дичь, но ладно.
$wasRegistered = Db::getValue('select count(*) from lastnames where login = ?', [$login]);
$login = str_replace(' ', ' ', $login);
//Логин от 4 до 20 символов
if (strlen($login) > 20) {
$error = 'Логин должен содержать не более 20 символов.';
$this->error = 'Логин должен содержать не более 20 символов.';
}
if (strlen($login) < 4) {
$error = 'Логин должен содержать не менее 4 символов.';
$this->error = 'Логин должен содержать не менее 4 символов.';
}
if ($this->hasMixedLatCur($login)) {
$error = 'В логине разрешено использовать только буквы одного алфавита русского или английского. Нельзя смешивать.';
$this->error = 'В логине разрешено использовать только буквы одного алфавита русского или английского. Нельзя смешивать.';
}
//Разделители
if (substr_count($login, ' ') + substr_count($login, '-') + substr_count($login, '_') > 2) {
$error = 'Не более двух разделителей одновременно (пробел, тире, нижнее подчеркивание).';
$this->error = 'Не более двух разделителей одновременно (пробел, тире, нижнее подчеркивание).';
}
if (!empty($error)) {
$error .= '<br> Пример правильного никнейма: Петя Убиватор, Коля, xalop. <br> Пример неправильного никнейма: )))), kolя)=-/.';
if (!empty($this->error)) {
$this->error .= '<br>Пример правильного никнейма: Петя Убиватор, Коля, xalop.<br>Пример неправильного никнейма: )))), kolя)=-/.';
}
if ($isRegistered || $wasRegistered || $isRestricted) {
$error = 'Логин ' . $login . ' уже занят, выберите другой.';
$this->error = 'Логин ' . $login . ' уже занят, выберите другой.';
}
return $error ?? '';
return !$this->error;
}
public function hasGoodEmail(string $email): string
public function hasGoodEmail(string $email): bool
{
$isRegistered = Db::getValue('select count(*) from users where mail = ?', [$email]);
$isBlocked = Db::getValue('select count(*) from ban_email where email = ?', [$email]);
$allowedDomains = Db::getColumn('select email from trust_email');
if (!filter_var($email, FILTER_VALIDATE_EMAIL) || $isRegistered) {
$error = 'Неправильный email.';
$this->error = 'Неправильный email.';
}
if ($isBlocked) {
$error = 'Адрес заблокирован.';
$this->error = 'Адрес заблокирован.';
}
$allowedDomains = Db::getColumn('select email from trust_email');
$domain = explode('@', $email)[1];
if (!in_array($domain, $allowedDomains)) {
$error = 'Данный почтовый сервис использовать нельзя.';
if (!in_array(explode('@', $email)[1], $allowedDomains)) {
$this->error = 'Данный почтовый сервис использовать нельзя.';
}
return $error ?? '';
return !$this->error;
}
public function hasGoodEmailCode(string $email, int $code): string
public function hasGoodEmailCode(string $email, int $code): bool
{
$check = Db::getValue('select code from secure_code where email = ?', [$email]);
$check = Db::getValue('select code from secure_code where email = ? order by time desc limit 1', [$email]);
if ($code !== $check) {
return 'Неверный проверочный код.';
$this->error = 'Неверный проверочный код.';
} else {
Db::sql('delete from secure_code where email = ?', [$email]);
}
return '';
return !$this->error;
}
public function hasGoodPassword(string $password1, string $password2): string
public function hasGoodPassword(string $password1, string $password2): bool
{
if ($password1 !== $password2) {
$error = 'Пароли не совпадают';
$this->error = 'Пароли не совпадают';
}
if (strlen($password1 < 8)) {
$error = 'Пароль должен быть больше 8 символов';
$error .= 'Можете использовать сгенерированный пароль: ' . PassGen::new();
if (strlen($password1) < 8) {
$this->error = 'Пароль должен быть больше 8 символов';
}
return $error ?? '';
return !$this->error;
}
public static function new(string $login, string $password, string $email, $ref, $birthday, $sex): string
public function new(string $login, string $password, string $email, $ref, $birthday, int $sex, int $class): string
{
$password = password_hash($password, PASSWORD_DEFAULT);
if (!$this->hasGoodLogin($login)) { //fixme: грязный хак, но лучше не придумывается с этой пошаговостью.
return 0;
}
$this->class = $class;
$ip = UserIp::get();
$sex = (int)$sex - 10; //На входе 10\11, а передать надо 0\1.
$sex -= 10; //На входе 10\11, а передать надо 0\1.
Db::sql(
'insert into users (users.real,login,host_reg,pass,ip,ipreg,room,timereg,mail,bithday,sex,fnq,molch2,level,hobby,clan_zv) values (1,?,?,?,?,?,9,unix_timestamp(),?,?,?,0,unix_timestamp() + 86400,8,\'\',0)',
'insert into users
(`real`,login,host_reg,pass,ip,ipreg,room,timereg,mail,bithday,sex,fnq,molch2,level,clan_zv,money,online)
values (1,?,?,?,?,?,9,unix_timestamp(),?,?,?,0,unix_timestamp() + 86400,8,0,200,unix_timestamp())',
[
$login,
$this->login,
$ref ?? '',
$password,
$this->password,
$ip,
$ip,
$email,
$this->email,
date('d.m.Y', strtotime($birthday)),
$sex,
]
);
$uid = Db::lastInsertId();
$this->login = $login;
$this->setCookies();
$this->setStatsItemsEffects();
User::setOnline($uid);
Db::sql('insert into online (uid, timeStart) values (?,unix_timestamp())', [$uid]);
return $uid;
}
return Db::lastInsertId();
private function setCookies()
{
setcookie('login', 1, 1, '/', Config::get('host'), true);
setcookie('registrationModal', 1, 1, '/', Config::get('host'), true);
setcookie('login', $this->login, strtotime('+7 days'), '/', Config::get('host'), true);
setcookie('registrationModal', 'true', strtotime('+7 days'), '/', Config::get('host'), true);
}
private function setStatsItemsEffects()
{
$u = User::start();
$uid = (int)Db::lastInsertId();
if ($_SESSION['ref'] === 1) {
$this->classBonuses[$this->class]['items'][] = 4811;
}
Db::sql(
'insert into stats (id,stats,ability,skills,exp) values (?,?,-75,-9,100000)',
[
$uid,
$this->classBonuses[$this->class][0],
]
);
foreach ($this->classBonuses[$this->class]['items'] as $item) {
$itemId = $u->addItem($item, $uid);
Db::sql(
'update items_users
set `1price` = (select price_1 from items_shop where items_shop.item_id = ? and sid = 1)
where id = ?',
[$item, $itemId]
);
}
$this->addEffects($uid, $this->classBonuses[$this->class]['effects']);
}
private function addEffects(int $uid, int ...$eids)
{
$in = implode(',', $eids);
$q =
"insert into eff_users (
overType,
id_eff,
uid,
name,
timeUse,
data
)
select
oneType,
id2,
$uid,
mname,
unix_timestamp(),
mdata
from
eff_main
where
id2 in ($in)";
Db::sql($q);
}
/**
* @return string
*/
public function getError(): string
{
return $this->error;
}
}

View File

@ -5,7 +5,7 @@ use Core\Db;
class UserStats
{
/**
* Собирает суммы всех бонусов с одетых предметов и активных эфектов.
* Собирает суммы всех бонусов с одетых предметов и активных эфектов.
* @param int $userId
* @param bool $showAll
* @return array

View File

@ -5,9 +5,9 @@ if (!defined('GAME')) {
$db = [
's' => 'localhost', // server
'd' => 'newcom1_abk', // database
'u' => 'newcom1_abk', // user
'p' => '4nWYsIM[c?}P' // password
'd' => 'game_production', // database
'u' => 'prod1', // user
'p' => 'Bz@fGaZjFU2206Ua' // password
];
$dsn = 'mysql:host=' . $db['s'] . ';dbname=' . $db['d'];
@ -15,4 +15,4 @@ include_once dirname(__DIR__) . DIRECTORY_SEPARATOR . 'mysql_override.php';
$dbgo = mysql_connect($db['s'], $db['u'], $db['p']);
mysql_select_db($db['d'], $dbgo);
mysql_query('SET NAMES cp1251');
mysql_query('set names utf8mb4');

View File

@ -1,22 +1,22 @@
<?
if( isset($s[1]) && $s[1] == '1/hramstok1' ) {
/*
Сундук: Водосток для сбора проб
* Заменяет предмет Пустая склянка (4693) на (4694) Склянка с пробами
Сундук: Водосток для сбора проб
* Заменяет предмет Пустая склянка (4693) на (4694) Склянка с пробами
*/
//Все переменные сохранять в массиве $vad !
//Все переменные сохранять в массиве $vad !
$vad = array(
'go' => true
);
$vad['test1'] = mysql_fetch_array(mysql_query('SELECT COUNT(*) FROM `dungeon_actions` WHERE `dn` = "'.$u->info['dnow'].'" AND `vars` = "obj_act'.$obj['id'].'" LIMIT 1'));
if( $vad['test1'][0] > 0 ) {
$r = 'Кто-то обыскал &quot;'.$obj['name'].'&quot; до вас...';
$r = 'Кто-то обыскал &quot;'.$obj['name'].'&quot; до вас...';
$vad['go'] = false;
}
$vad['itm'] = mysql_fetch_array(mysql_query('SELECT * FROM `items_users` WHERE `item_id` = 4693 AND `uid` = "'.$u->info['id'].'" AND `delete` = 0 AND `inShop` = 0 AND `inTransfer` = 0 LIMIT 1'));
if(!isset($vad['itm']['id'])) {
$r = 'У вас нет подходящего предмета для хранения проб... Все руки в каком-то говне...';
$r = 'У вас нет подходящего предмета для хранения проб... Все руки в каком-то говне...';
$vad['go'] = false;
}
@ -25,7 +25,7 @@ if( isset($s[1]) && $s[1] == '1/hramstok1' ) {
"'.$u->info['dnow'].'","'.time().'","'.$obj['x'].'","'.$obj['y'].'","'.$u->info['id'].'","obj_act'.$obj['id'].'","'.$vad['bad'].'"
)');
mysql_query('UPDATE `items_users` SET `item_id` = 4694 WHERE `id` = "'.$vad['itm']['id'].'" LIMIT 1');
$r = 'Вы успешно взяли пробы с водостока! Набранную склянку нужно отнести обратно, к Арквиерро в Храм Знаний.';
$r = 'Вы успешно взяли пробы с водостока! Набранную склянку нужно отнести обратно, к Арквиерро в Храм Знаний.';
}
unset($vad);

View File

@ -1,16 +1,16 @@
<?
if( isset($s[1]) && $s[1] == '1/podogrevatel' ) {
/*
Сундук: Обогреватель
* падает гайка
Сундук: Обогреватель
* падает гайка
*/
//Все переменные сохранять в массиве $vad !
//Все переменные сохранять в массиве $vad !
$vad = array(
'go' => true
);
$vad['test1'] = mysql_fetch_array(mysql_query('SELECT COUNT(*) FROM `dungeon_actions` WHERE `dn` = "'.$u->info['dnow'].'" AND `vars` = "obj_act'.$obj['id'].'" LIMIT 1'));
if( $vad['test1'][0] > 0 ) {
$r = 'Кто-то обыскал &quot;'.$obj['name'].'&quot; до вас...';
$r = 'Кто-то обыскал &quot;'.$obj['name'].'&quot; до вас...';
$vad['go'] = false;
}
@ -23,7 +23,7 @@ if( isset($s[1]) && $s[1] == '1/podogrevatel' ) {
$vad['itm'] = $vad['itm'][rand(0,count($vad['itm'])-1)];
$vad['itm'] = mysql_fetch_array(mysql_query('SELECT * FROM `items_main` WHERE `id` = "'.$vad['itm'].'" LIMIT 1'));
$this->pickitem($obj,$vad['itm']['id'],0,'',false);
$r = 'Вы обнаружили предмет &quot;'.$vad['itm']['name'].'&quot;.';
$r = 'Вы обнаружили предмет &quot;'.$vad['itm']['name'].'&quot;.';
}
unset($vad);

View File

@ -1,22 +1,22 @@
<?
if( isset($s[1]) && $s[1] == '1/rjav' ) {
/*
Сундук: Ржавые трубы
* Обмен ключчиииика на вентиль
Сундук: Ржавые трубы
* Обмен ключчиииика на вентиль
*/
//Все переменные сохранять в массиве $vad !
//Все переменные сохранять в массиве $vad !
$vad = array(
'go' => true
);
$vad['test1'] = mysql_fetch_array(mysql_query('SELECT COUNT(*) FROM `dungeon_actions` WHERE `dn` = "'.$u->info['dnow'].'" AND `vars` = "obj_act'.$obj['id'].'" LIMIT 1'));
if( $vad['test1'][0] > 0 ) {
$r = 'Кто-то обыскал &quot;'.$obj['name'].'&quot; до вас...';
$r = 'Кто-то обыскал &quot;'.$obj['name'].'&quot; до вас...';
$vad['go'] = false;
}
$vad['itm'] = mysql_fetch_array(mysql_query('SELECT * FROM `items_users` WHERE `item_id` = 1004 AND `uid` = "'.$u->info['id'].'" AND `delete` = 0 AND `inShop` = 0 AND `inTransfer` = 0 LIMIT 1'));
if(!isset($vad['itm']['id'])) {
$r = 'У вас нет подходящего предмета чтобы открутить вентиль...';
$r = 'У вас нет подходящего предмета чтобы открутить вентиль...';
$vad['go'] = false;
}
@ -26,7 +26,7 @@ if( isset($s[1]) && $s[1] == '1/rjav' ) {
)');
mysql_query('UPDATE `items_users` SET `delete` = "'.time().'" WHERE `id` = "'.$vad['itm']['id'].'" LIMIT 1');
$this->pickitem($obj,1005,$u->info['id'],'',false);
$r = 'Вы успешно открутили вентиль! (Предмет &quot;Ключииик&quot; был изьят)';
$r = 'Вы успешно открутили вентиль! (Предмет &quot;Ключииик&quot; был изьят)';
}
unset($vad);

View File

@ -1,16 +1,16 @@
<?
if( isset($s[1]) && $s[1] == '1/vods1' ) {
/*
Сундук: Водосток
* падает гайка
Сундук: Водосток
* падает гайка
*/
//Все переменные сохранять в массиве $vad !
//Все переменные сохранять в массиве $vad !
$vad = array(
'go' => true
);
$vad['test1'] = mysql_fetch_array(mysql_query('SELECT COUNT(*) FROM `dungeon_actions` WHERE `dn` = "'.$u->info['dnow'].'" AND `vars` = "obj_act'.$obj['id'].'" LIMIT 1'));
if( $vad['test1'][0] > 0 ) {
$r = 'Кто-то обыскал &quot;'.$obj['name'].'&quot; до вас...';
$r = 'Кто-то обыскал &quot;'.$obj['name'].'&quot; до вас...';
$vad['go'] = false;
}
@ -20,7 +20,7 @@ if( isset($s[1]) && $s[1] == '1/vods1' ) {
)');
//mysql_query('UPDATE `items_users` SET `delete` = "'.time().'" WHERE `id` = "'.$vad['itm']['id'].'" LIMIT 1');
$this->pickitem($obj,1002,0,'',false);
$r = 'Вы обнаружили предмет &quot;Гайка&quot;.';
$r = 'Вы обнаружили предмет &quot;Гайка&quot;.';
}
unset($vad);

View File

@ -1,34 +1,34 @@
<?
if( isset($s[1]) && $s[1] == '101/altar' ) {
/*
Алтарь
* Телепортирует на необходимую клетку х -3 , у 7
* Для прохода требуется 1 камень типа 881 или 878
Алтарь
* Телепортирует на необходимую клетку х -3 , у 7
* Для прохода требуется 1 камень типа 881 или 878
*/
//Все переменные сохранять в массиве $vad !
//Все переменные сохранять в массиве $vad !
$vad = array(
'go' => false
);
//Проверяем камни
//Проверяем камни
$vad['sp'] = mysql_fetch_array(mysql_query('SELECT * FROM `items_users` WHERE (`item_id` = "881" OR `item_id` = "878") AND `uid` = "'.$u->info['id'].'" AND `delete` = "0" AND `inOdet` = "0" AND `inShop` = "0" AND `inTransfer` = "0" LIMIT 1'));
if( isset($vad['sp']['id']) ) {
// Удалена проверка на группировку предметов 13.10.2015
// Удалена проверка на группировку предметов 13.10.2015
$vad['pl'] = mysql_fetch_array(mysql_query('SELECT * FROM `items_main` WHERE `id` = "'.$vad['sp']['item_id'].'" LIMIT 1'));
$vad['go'] = true;
}
if( $vad['go'] == true ) {
mysql_query('UPDATE `stats` SET `x` = "-3",`y` = "7",`s` = "1" WHERE `id` = "'.$u->info['id'].'" LIMIT 1');
// $u->deleteItem(,$u->info['id'],1); // Убрано 14.10.2015
// $u->deleteItem(,$u->info['id'],1); // Убрано 14.10.2015
$upd = mysql_query('UPDATE `items_users` SET `lastUPD`="'.time().'",`delete`="'.time().'" WHERE `id`="'.$vad['sp']['id'].'" LIMIT 1');
if($upd){
$r = 'Вы растворили &quot;'.$vad['pl']['name'].'&quot; в алтаре и произошел взрыв. Алтарь переместил вас в тайную комнату';
$r = 'Вы растворили &quot;'.$vad['pl']['name'].'&quot; в алтаре и произошел взрыв. Алтарь переместил вас в тайную комнату';
echo '<script>location.href="main.php"</script>';
} else {
$r = 'Что-то пошло не так, попробуйте позже.';
$r = 'Что-то пошло не так, попробуйте позже.';
}
}elseif( !isset($vad['sp']['id']) ) {
$r = 'Для перемещения требуется один из драгоценных камней';
$r = 'Для перемещения требуется один из драгоценных камней';
}
unset($vad);
}

View File

@ -1,10 +1,10 @@
<?
if( isset($s[1]) && $s[1] == '101/i9' ) {
/*
Ñóíäóê: ëîâóøêà
* Ñíèìàåò äî 1000 ÍÐ îäèí ðàç
Сундук: ловушка
* Снимает до 1000 НР один раз
*/
//Âñå ïåðåìåííûå ñîõðàíÿòü â ìàññèâå $vad !
//Все переменные сохранять в массиве $vad !
$vad = array(
'go' => false
);
@ -13,23 +13,23 @@ if( isset($s[1]) && $s[1] == '101/i9' ) {
if( !isset($vad['test']['id']) ) {
$vad['go'] = true;
}else{
$r = ' ñóíäóêå áûëà ëîâóøêà, å¸ àêòèâèðîâàë ïåðñîíàæ '.$u->microLogin($vad['test']['uid'],1);
$r = 'В сундуке была ловушка, её активировал персонаж '.$u->microLogin($vad['test']['uid'],1);
}
if( $vad['go'] == true ) {
mysql_query('INSERT INTO `dungeon_actions` (`dn`,`time`,`x`,`y`,`uid`,`vars`,`vals`) VALUES (
"'.$u->info['dnow'].'","'.time().'","'.$obj['x'].'","'.$obj['y'].'","'.$u->info['id'].'","obj_act'.$obj['id'].'",""
)');
$r = 'Â ñóíäóêå áûëà ëîâóøêà óñòàíîâëåííàÿ îäíèì èç îáèòàòåëåé ïîäçåìåëüÿ!';
$r = 'В сундуке была ловушка установленная одним из обитателей подземелья!';
$vad['min_hp'] = rand(100,1000);
$u->stats['hpNow'] -= $vad['min_hp'];
if( $u->stats['hpNow'] < 0 ) {
$u->stats['hpNow'] = 0;
}
if($u->info['sex'] == 0) {
$vad['text'] = '[img[items/trap.gif]] <b>'.$u->info['login'].'</b> óãîäèë â ëîâóøêó îñòàâëåííóþ â &quot;'.$obj['name'].'&quot;. <b>-'.$vad['min_hp'].'</b> ['.floor($u->stats['hpNow']).'/'.round($u->stats['hpAll']).']';
$vad['text'] = '[img[items/trap.gif]] <b>'.$u->info['login'].'</b> угодил в ловушку оставленную в &quot;'.$obj['name'].'&quot;. <b>-'.$vad['min_hp'].'</b> ['.floor($u->stats['hpNow']).'/'.round($u->stats['hpAll']).']';
}else{
$vad['text'] = '[img[items/trap.gif]] <b>'.$u->info['login'].'</b> óãîäèëà â ëîâóøêó îñòàâëåííóþ â &quot;'.$obj['name'].'&quot;. <b>-'.$vad['min_hp'].'</b> ['.floor($u->stats['hpNow']).'/'.round($u->stats['hpAll']).']';
$vad['text'] = '[img[items/trap.gif]] <b>'.$u->info['login'].'</b> угодила в ловушку оставленную в &quot;'.$obj['name'].'&quot;. <b>-'.$vad['min_hp'].'</b> ['.floor($u->stats['hpNow']).'/'.round($u->stats['hpAll']).']';
}
$this->sys_chat($vad['text']);
$u->info['hpNow'] = $u->stats['hpNow'];

View File

@ -1,17 +1,17 @@
<?
if( isset($s[1]) && $s[1] == '101/kotel' ) {
/*
Сундук: Котел
* Можно найти Сущность щита
* Может отнять 100-1000 НР
Сундук: Котел
* Можно найти Сущность щита
* Может отнять 100-1000 НР
*/
//Все переменные сохранять в массиве $vad !
//Все переменные сохранять в массиве $vad !
$vad = array(
'go' => true
);
$vad['test1'] = mysql_fetch_array(mysql_query('SELECT COUNT(*) FROM `dungeon_actions` WHERE `dn` = "'.$u->info['dnow'].'" AND `vars` = "obj_act'.$obj['id'].'" LIMIT 1'));
if( $vad['test1'][0] > 0 ) {
$r = 'Кто-то перевернул котел...';
$r = 'Кто-то перевернул котел...';
$vad['go'] = false;
}
@ -19,9 +19,9 @@ if( isset($s[1]) && $s[1] == '101/kotel' ) {
mysql_query('INSERT INTO `dungeon_actions` (`dn`,`time`,`x`,`y`,`uid`,`vars`,`vals`) VALUES (
"'.$u->info['dnow'].'","'.time().'","'.$obj['x'].'","'.$obj['y'].'","'.$u->info['id'].'","obj_act'.$obj['id'].'","'.$vad['bad'].'"
)');
//Награда
//Награда
$this->pickitem($obj,5239,$u->info['id']);
$r = 'Обыскав &quot;'.$obj['name'].'&quot; вы обнаружили предмет &quot;Амброзия подмастерья Владык&quot;';
$r = 'Обыскав &quot;'.$obj['name'].'&quot; вы обнаружили предмет &quot;Амброзия подмастерья Владык&quot;';
}
unset($vad);
}

View File

@ -1,16 +1,16 @@
<?
if( isset($s[1]) && $s[1] == '101/krovat' ) {
/*
Сундук: Кровать
* Можно получить один из двух ресурсов
Сундук: Кровать
* Можно получить один из двух ресурсов
*/
//Все переменные сохранять в массиве $vad !
//Все переменные сохранять в массиве $vad !
$vad = array(
'go' => true
);
$vad['test1'] = mysql_fetch_array(mysql_query('SELECT COUNT(*) FROM `dungeon_actions` WHERE `dn` = "'.$u->info['dnow'].'" AND `vars` = "obj_act'.$obj['id'].'" LIMIT 1'));
if( $vad['test1'][0] > 0 ) {
$r = 'Кто-то обыскал &quot;'.$obj['name'].'&quot; до вас...';
$r = 'Кто-то обыскал &quot;'.$obj['name'].'&quot; до вас...';
$vad['go'] = false;
}
@ -20,7 +20,7 @@ if( isset($s[1]) && $s[1] == '101/krovat' ) {
)');
$vad['items'] = array(472,473,474,475,476,477,478,479,481,485,486,487,692,693,1153,1179,2079,2177,2090);
$vad['items'] = mysql_fetch_array(mysql_query('SELECT * FROM `items_main` WHERE `id` = "'.mysql_real_escape_string($vad['items'][rand(0,count($vad['items'])-1)]).'" LIMIT 1'));
$r = 'Обыскав &quot;'.$obj['name'].'&quot; вы обнаружили &quot;'.$vad['items']['name'].'&quot;';
$r = 'Обыскав &quot;'.$obj['name'].'&quot; вы обнаружили &quot;'.$vad['items']['name'].'&quot;';
$this->pickitem($obj,$vad['items']['id'],$u->info['id'],'',$vad['dn_delete'][$vad['items']['id']]);
}

View File

@ -1,90 +1,90 @@
<?
if( isset($s[1]) && $s[1] == '101/laba1' ) {
/*
Сундук: Лаболатория
* Можно собрать случайную тактику, но не более 3 на человека за поход и не более 10 на команду
* 897 - Слиток пустынной руды
* 903 - Тысячелетний камень
* 888 - Шепот гор
* 892 - Эссенция чистоты
* 950 - Кожа Общего Врага
* 904 - Кристалл времен
* 878 - Лучистый топаз
* 880 - Эссенция глубины
* 879 - Ралиэль
* 899 - Корень змеиного дерева
* 882 - Глубинный камень
* 908 - Камень затаенного солнца
* 909 - Эссенция праведного гнева
* 902 - Плод змеиного дерева
* 881 - Лучистый Рубин
* 893 - Эссенция лунного света
* 898 - Троекорень
* 890 - Сгусток астрала
* 907 - Кристалл стабильности
* 905 - Стихиалия
-- Боя
4243 - 897 х3
4244 - 903 х2
4245 - 888 х2
4246 - 892 х1
4247 - 879 х1 , 892 х1
-- Защиты
4248 - 950 х3
4249 - 904 х2
4250 - 878 х2
4251 - 880 х1
4252 - 880 х1 , 892 х1
-- Крови
4253 - 899 х3
4254 - 882 х2
4255 - 908 х2
4256 - 909 х1
4257 - 909 х1 , 892 х1
-- Ответа
4258 - 899 х3
4259 - 902 х2
4260 - 881 х2
4261 - 893 х1
4262 - 893 х1 , 892 х1
-- Отражения
4263 - 898 х3
4264 - 890 х2
4265 - 907 х2
4266 - 905 х1
4267 - 905 х1 , 892 х1
Сундук: Лаболатория
* Можно собрать случайную тактику, но не более 3 на человека за поход и не более 10 на команду
* 897 - Слиток пустынной руды
* 903 - Тысячелетний камень
* 888 - Шепот гор
* 892 - Эссенция чистоты
* 950 - Кожа Общего Врага
* 904 - Кристалл времен
* 878 - Лучистый топаз
* 880 - Эссенция глубины
* 879 - Ралиэль
* 899 - Корень змеиного дерева
* 882 - Глубинный камень
* 908 - Камень затаенного солнца
* 909 - Эссенция праведного гнева
* 902 - Плод змеиного дерева
* 881 - Лучистый Рубин
* 893 - Эссенция лунного света
* 898 - Троекорень
* 890 - Сгусток астрала
* 907 - Кристалл стабильности
* 905 - Стихиалия
-- Боя
4243 - 897 х3
4244 - 903 х2
4245 - 888 х2
4246 - 892 х1
4247 - 879 х1 , 892 х1
-- Защиты
4248 - 950 х3
4249 - 904 х2
4250 - 878 х2
4251 - 880 х1
4252 - 880 х1 , 892 х1
-- Крови
4253 - 899 х3
4254 - 882 х2
4255 - 908 х2
4256 - 909 х1
4257 - 909 х1 , 892 х1
-- Ответа
4258 - 899 х3
4259 - 902 х2
4260 - 881 х2
4261 - 893 х1
4262 - 893 х1 , 892 х1
-- Отражения
4263 - 898 х3
4264 - 890 х2
4265 - 907 х2
4266 - 905 х1
4267 - 905 х1 , 892 х1
*/
//Все переменные сохранять в массиве $vad !
//Все переменные сохранять в массиве $vad !
$vad = array(
'go' => true
);
$vad['recept'] = array(
//Б
//Б
array( 897, 3 ),
array( 903, 2 ),
array( 888, 2 ),
array( 892, 1 ),
array( 892, 1, 892, 1 ),
//З
//З
array( 950, 3 ),
array( 904, 2 ),
array( 878, 2 ),
array( 880, 1 ),
array( 880, 1, 892, 1 ),
//К
//К
array( 899, 3 ),
array( 882, 2 ),
array( 908, 2 ),
array( 909, 1 ),
array( 909, 1, 892, 1 ),
//Ответа
//Ответа
array( 899, 3 ),
array( 902, 2 ),
array( 881, 2 ),
array( 893, 1 ),
array( 893, 1, 892, 1 ),
//Отражения
//Отражения
array( 898, 3 ),
array( 890, 2 ),
array( 907, 2 ),
@ -110,7 +110,7 @@ if( isset($s[1]) && $s[1] == '101/laba1' ) {
if( $vad['recept'][$vad['i']][2] > 0 && $vad['tr_itm'] == true ) {
$vad['tr_itm'] = mysql_fetch_array(mysql_query('SELECT COUNT(*) FROM `items_users` WHERE `item_id` = "'.$vad['recept'][$vad['i']][2].'" AND (`delete` = "0" OR `delete` = "1000") AND `inShop` = "0" AND `inTransfer` = "0" AND `uid` = "'.$u->info['id'].'" LIMIT 1'));
if( $vad['tr_itm'][2] >= $vad['recept'][$vad['i']][3] ) {
//все ок
//все ок
}else{
$vad['tr_itm'] = false;
}
@ -125,20 +125,20 @@ if( isset($s[1]) && $s[1] == '101/laba1' ) {
$vad['itm'] = $vad['itm'][rand(0,count($vad['itm'])-1)];
if( $vad['test2'][0] >= 10 ) {
$r = 'Не удалось воспользоваться лабораторией, не более 10 раз на команду за один поход';
$r = 'Не удалось воспользоваться лабораторией, не более 10 раз на команду за один поход';
$vad['go'] = false;
}elseif( $vad['test1'][0] >= 3 ) {
$r = 'Не удалось воспользоваться лабораторией, не более 3 раз на персонажа за один поход';
$r = 'Не удалось воспользоваться лабораторией, не более 3 раз на персонажа за один поход';
$vad['go'] = false;
}elseif(!isset($vad['itm']['id'])) {
$r = 'Недостаточно ингридиентов...';
$r = 'Недостаточно ингридиентов...';
$vad['go'] = false;
}
if( $vad['go'] == true ) {
//Выдаем предмет
//Выдаем предмет
if( $vad['tr'][$vad['itm']['id']][1] > 0 ) {
$u->deleteItemID($vad['tr'][$vad['itm']['id']][0],$u->info['id'],$vad['tr'][$vad['itm']['id']][1]);
}
@ -149,11 +149,11 @@ if( isset($s[1]) && $s[1] == '101/laba1' ) {
"'.$u->info['dnow'].'","'.$u->info['id'].'","'.time().'","obj_act'.$obj['id'].'_lab","'.$obj['x'].'","'.$obj['y'].'"
)');
$u->addItem($vad['itm']['id'],$u->info['id'],'|frompisher=101');
$r = 'Вы создали предмет &quot;'.$vad['itm']['name'].'&quot;! Расплавив ресурсы ...';
$r = 'Вы создали предмет &quot;'.$vad['itm']['name'].'&quot;! Расплавив ресурсы ...';
if($u->info['sex'] == 0) {
$vad['text'] = '<b>'.$u->info['login'].'</b> создал предмет &quot;'.$vad['itm']['name'].'&quot; при помощи &quot;'.$obj['name'].'&quot;.';
$vad['text'] = '<b>'.$u->info['login'].'</b> создал предмет &quot;'.$vad['itm']['name'].'&quot; при помощи &quot;'.$obj['name'].'&quot;.';
}else{
$vad['text'] = '<b>'.$u->info['login'].'</b> создала предмет &quot;'.$vad['itm']['name'].'&quot; при помощи &quot;'.$obj['name'].'&quot;.';
$vad['text'] = '<b>'.$u->info['login'].'</b> создала предмет &quot;'.$vad['itm']['name'].'&quot; при помощи &quot;'.$obj['name'].'&quot;.';
}
$this->sys_chat($vad['text']);
}

View File

@ -1,16 +1,16 @@
<?
if( isset($s[1]) && $s[1] == '101/nakova' ) {
/*
Сундук: Наковальня
* Можно создать сущность х2 с судьбой
Сундук: Наковальня
* Можно создать сущность х2 с судьбой
*/
//Все переменные сохранять в массиве $vad !
//Все переменные сохранять в массиве $vad !
$vad = array(
'go' => true
);
$vad['test1'] = mysql_fetch_array(mysql_query('SELECT COUNT(*) FROM `dungeon_actions` WHERE `dn` = "'.$u->info['dnow'].'" AND `vars` = "obj_act'.$obj['id'].'" LIMIT 1'));
if( $vad['test1'][0] > 0 ) {
$r = 'Кто-то уже разбил сущность за этот поход, наковальня сломана...';
$r = 'Кто-то уже разбил сущность за этот поход, наковальня сломана...';
$vad['go'] = false;
}
@ -25,14 +25,14 @@ if( isset($s[1]) && $s[1] == '101/nakova' ) {
mysql_query('INSERT INTO `dungeon_actions` (`dn`,`time`,`x`,`y`,`uid`,`vars`,`vals`) VALUES (
"'.$u->info['dnow'].'","'.time().'","'.$obj['x'].'","'.$obj['y'].'","'.$u->info['id'].'","obj_act'.$obj['id'].'","'.$vad['bad'].'"
)');
//Награда
//Награда
$u->deleteItem($vad['sp']['id'],$u->info['id'],1);
mysql_query('UPDATE `items_users` SET `delete` = "'.time().'" WHERE `id` = "'.$vad['sp']['id'].'" LIMIT 1');
$this->pickitem($obj,1035,$u->info['id'],'|sudba=-1');
$this->pickitem($obj,1035,$u->info['id'],'|sudba=-1');
$r = 'Вы использовали &quot;'.$obj['name'].'&quot; и разбили &quot;Сущность&quot; на две части';
$r = 'Вы использовали &quot;'.$obj['name'].'&quot; и разбили &quot;Сущность&quot; на две части';
}elseif( !isset($vad['sp']['id']) ) {
$r = 'Для использования необходим предмет &quot;Сущность Ресурса&quot;';
$r = 'Для использования необходим предмет &quot;Сущность Ресурса&quot;';
}
}

View File

@ -1,17 +1,17 @@
<?
if( isset($s[1]) && $s[1] == '101/nakova2' ) {
/*
Наковальня 2
* Телепортирует на необходимую клетку х 3 , у 42
Наковальня 2
* Телепортирует на необходимую клетку х 3 , у 42
*/
//Все переменные сохранять в массиве $vad !
//Все переменные сохранять в массиве $vad !
$vad = array(
'go' => true
);
if( $vad['go'] == true ) {
mysql_query('UPDATE `stats` SET `x` = "3",`y` = "42",`s` = "3" WHERE `id` = "'.$u->info['id'].'" LIMIT 1');
$r = 'Вы подошли к наковальне...';
$r = 'Вы подошли к наковальне...';
echo '<script>location.href="main.php"</script>';
}
unset($vad);

View File

@ -1,18 +1,18 @@
<?
if( isset($s[1]) && $s[1] == '101/reshetka1' ) {
/*
Решетка
* Телепортирует на необходимую клетку
Решетка
* Телепортирует на необходимую клетку
*/
//Все переменные сохранять в массиве $vad !
//Все переменные сохранять в массиве $vad !
$vad = array(
'go' => false
);
//Проверяем камни
//Проверяем камни
$vad['sp'] = mysql_fetch_array(mysql_query('SELECT * FROM `items_users` WHERE `item_id` = "1189" AND `uid` = "'.$u->info['id'].'" AND `delete` = "0" AND `inOdet` = "0" AND `inShop` = "0" AND `inTransfer` = "0" LIMIT 1'));
if( isset($vad['sp']['id']) ) {
// Удалена проверка на группировку предметов 14.10.2015
// Удалена проверка на группировку предметов 14.10.2015
// $vad['pl'] = mysql_fetch_array(mysql_query('SELECT * FROM `items_main` WHERE `id` = "'.$vad['sp']['item_id'].'" LIMIT 1'));
$vad['go'] = true;
}
@ -21,7 +21,7 @@ if( isset($s[1]) && $s[1] == '101/reshetka1' ) {
//$u->deleteItem($vad['sp']['id'],$u->info['id'],1);
echo '<script>location.href="main.php"</script>';
}elseif( !isset($vad['sp']['id']) ) {
$r = 'Для прохода требуется предмет &quot;Мерцающий ключ №3&quot;';
$r = 'Для прохода требуется предмет &quot;Мерцающий ключ №3&quot;';
}
unset($vad);
}

View File

@ -1,9 +1,9 @@
<?
if( isset($s[1]) && $s[1] == '101/sunduk0' ) {
/*
Сундук: Сундук
Сундук: Сундук
*/
//Все переменные сохранять в массиве $vad !
//Все переменные сохранять в массиве $vad !
$vad = array(
'go' => true
);
@ -11,20 +11,20 @@ if( isset($s[1]) && $s[1] == '101/sunduk0' ) {
$vad['test1'] = mysql_fetch_array(mysql_query('SELECT COUNT(*) FROM `dungeon_actions` WHERE `vars` = "obj_act'.$obj['id'].'" AND `dn` = "'.$u->info['dnow'].'" LIMIT 1'));
$vad['test2'] = mysql_fetch_array(mysql_query('SELECT COUNT(*) FROM `dungeon_actions` WHERE `vars` = "obj_act'.$obj['id'].'" AND `dn` = "'.$u->info['dnow'].'" AND `uid` = "'.$u->info['id'].'" LIMIT 1'));
if( $vad['test2'][0] > 0 ) {
$r = 'Вы уже обыскали &quot;'.$obj['name'].'&quot;...';
$r = 'Вы уже обыскали &quot;'.$obj['name'].'&quot;...';
$vad['go'] = false;
}elseif( $vad['test1'][0] > 1 ) {
$r = 'Кто-то обыскал &quot;'.$obj['name'].'&quot; раньше вас...';
$r = 'Кто-то обыскал &quot;'.$obj['name'].'&quot; раньше вас...';
$vad['go'] = false;
}
if( $vad['go'] == true ) {
//Выкидываем Лучистый топаз
//Выкидываем Лучистый топаз
$vad['items'] = array(878);
$vad['items'] = $vad['items'][rand(0,count($vad['items'])-1)];
if( $vad['items'] != 0 ) {
//Выбрасываем предмет
//Выбрасываем предмет
mysql_query('INSERT INTO `dungeon_actions` (`dn`,`time`,`x`,`y`,`uid`,`vars`,`vals`) VALUES (
"'.$u->info['dnow'].'","'.time().'","'.$obj['x'].'","'.$obj['y'].'","'.$u->info['id'].'","obj_act'.$obj['id'].'",""
)');
@ -32,12 +32,12 @@ if( isset($s[1]) && $s[1] == '101/sunduk0' ) {
$vad['dn_delete'][$vad['items']] = false;
}
if( $this->pickitem($obj,$vad['items'],$u->info['id'],'',$vad['dn_delete'][$vad['items']]) ) {
$r = 'Вы обнаружили предметы...';
$r = 'Вы обнаружили предметы...';
}else{
$r = 'Что-то пошло не так, предметы растворились...';
$r = 'Что-то пошло не так, предметы растворились...';
}
}else{
$r = 'Вы не нашли ничего полезного...';
$r = 'Вы не нашли ничего полезного...';
}
}

View File

@ -1,10 +1,10 @@
<?
if( isset($s[1]) && $s[1] == '101/sunduk1' ) {
/*
Сундук: Сундук
* Можно найти Сталь , Мифрил , Пустые бутылки
Сундук: Сундук
* Можно найти Сталь , Мифрил , Пустые бутылки
*/
//Все переменные сохранять в массиве $vad !
//Все переменные сохранять в массиве $vad !
$vad = array(
'go' => true
);
@ -12,15 +12,15 @@ if( isset($s[1]) && $s[1] == '101/sunduk1' ) {
$vad['test1'] = mysql_fetch_array(mysql_query('SELECT COUNT(*) FROM `dungeon_actions` WHERE `vars` = "obj_act'.$obj['id'].'" AND `dn` = "'.$u->info['dnow'].'" LIMIT 1'));
$vad['test2'] = mysql_fetch_array(mysql_query('SELECT COUNT(*) FROM `dungeon_actions` WHERE `vars` = "obj_act'.$obj['id'].'" AND `dn` = "'.$u->info['dnow'].'" AND `uid` = "'.$u->info['id'].'" LIMIT 1'));
if( $vad['test2'][0] > 0 ) {
$r = 'Вы уже обыскали &quot;'.$obj['name'].'&quot;...';
$r = 'Вы уже обыскали &quot;'.$obj['name'].'&quot;...';
$vad['go'] = false;
}elseif( $vad['test1'][0] > 1 ) {
$r = 'Кто-то обыскал &quot;'.$obj['name'].'&quot; раньше вас...';
$r = 'Кто-то обыскал &quot;'.$obj['name'].'&quot; раньше вас...';
$vad['go'] = false;
}
if( $vad['go'] == true ) {
//Выкидываем бутылку, мифрил, либо сталь
//Выкидываем бутылку, мифрил, либо сталь
$vad['items'] = array(4272,1189);
$vad['dn_delete'] = array(
1189 => true
@ -28,7 +28,7 @@ if( isset($s[1]) && $s[1] == '101/sunduk1' ) {
$vad['items'] = $vad['items'][rand(0,count($vad['items'])-1)];
if( $vad['items'] != 0 ) {
//Выбрасываем предмет
//Выбрасываем предмет
mysql_query('INSERT INTO `dungeon_actions` (`dn`,`time`,`x`,`y`,`uid`,`vars`,`vals`) VALUES (
"'.$u->info['dnow'].'","'.time().'","'.$obj['x'].'","'.$obj['y'].'","'.$u->info['id'].'","obj_act'.$obj['id'].'",""
)');
@ -36,12 +36,12 @@ if( isset($s[1]) && $s[1] == '101/sunduk1' ) {
$vad['dn_delete'][$vad['items']] = false;
}
if( $this->pickitem($obj,$vad['items'],$u->info['id'],'',$vad['dn_delete'][$vad['items']]) ) {
$r = 'Вы обнаружили предметы...';
$r = 'Вы обнаружили предметы...';
}else{
$r = 'Что-то пошло не так, предметы растворились...';
$r = 'Что-то пошло не так, предметы растворились...';
}
}else{
$r = 'Вы не нашли ничего полезного...';
$r = 'Вы не нашли ничего полезного...';
}
}

View File

@ -1,52 +1,52 @@
<?
if( isset($s[1]) && $s[1] == '101/sunduk2' ) {
/*
Сундук: Сундук
* Можно найти Отворяющая печать №3 1175
Сундук: Сундук
* Можно найти Отворяющая печать №3 1175
*/
//Все переменные сохранять в массиве $vad !
//Все переменные сохранять в массиве $vad !
$vad = array(
'go' => true
);
$vad['test1'] = mysql_fetch_array(mysql_query('SELECT COUNT(*) FROM `dungeon_actions` WHERE `vars` = "obj_act'.$obj['id'].'" AND `dn` = "'.$u->info['dnow'].'" LIMIT 1'));
if( $vad['test1'][0] > 0 ) {
$r = 'Кто-то обыскал &quot;'.$obj['name'].'&quot; раньше вас...';
$r = 'Кто-то обыскал &quot;'.$obj['name'].'&quot; раньше вас...';
$vad['go'] = false;
}
if( $vad['go'] == true ) {
//Выкидываем Отворяющая печать №3
//Выкидываем Отворяющая печать №3
$vad['items'] = array(1175);
$vad['items'] = $vad['items'][rand(0,count($vad['items'])-1)];
if( $vad['items'] != 0 && rand(1,100) < 80) {
// Выбрасываем предмет
// Выбрасываем предмет
mysql_query('INSERT INTO `dungeon_actions` (`dn`,`time`,`x`,`y`,`uid`,`vars`,`vals`) VALUES (
"'.$u->info['dnow'].'","'.time().'","'.$obj['x'].'","'.$obj['y'].'","'.$u->info['id'].'","obj_act'.$obj['id'].'",""
)');
/*
//откуда тут сущности? обломятся!
//откуда тут сущности? обломятся!
if( rand(0,100) < 10 ) {
//Сущность сапог
//Сущность сапог
$this->pickitem($obj,4279,0);
}
if( rand(0,100) < 10 ) {
//Сущность щита
//Сущность щита
$this->pickitem($obj,4269,0);
}
*/
if( $this->pickitem($obj,$vad['items'],0) ) {
$r = 'Вы обнаружили предметы...';
$r = 'Вы обнаружили предметы...';
}else{
$r = 'Что-то пошло не так, предметы растворились...';
$r = 'Что-то пошло не так, предметы растворились...';
}
} else {
mysql_query('INSERT INTO `dungeon_actions` (`dn`,`time`,`x`,`y`,`uid`,`vars`,`vals`) VALUES (
"'.$u->info['dnow'].'","'.time().'","'.$obj['x'].'","'.$obj['y'].'","'.$u->info['id'].'","obj_act'.$obj['id'].'","false"
)');
$r = 'Вы не нашли ничего полезного...';
$r = 'Вы не нашли ничего полезного...';
}
}

View File

@ -1,15 +1,15 @@
<?
if( isset($s[1]) && $s[1] == '101/sunduk3' ) {
/*
Сундук: Сундук
Сундук: Сундук
*/
//Все переменные сохранять в массиве $vad !
//Все переменные сохранять в массиве $vad !
$vad = array(
'go' => true
);
$vad['test1'] = mysql_fetch_array(mysql_query('SELECT COUNT(*) FROM `dungeon_actions` WHERE `dn` = "'.$u->info['dnow'].'" AND `vars` = "obj_act'.$obj['id'].'" LIMIT 1'));
if( $vad['test1'][0] > 0 ) {
$r = 'Кто-то обыскал &quot;'.$obj['name'].'&quot; до вас...';
$r = 'Кто-то обыскал &quot;'.$obj['name'].'&quot; до вас...';
$vad['go'] = false;
}
@ -18,7 +18,7 @@ if( isset($s[1]) && $s[1] == '101/sunduk3' ) {
"'.$u->info['dnow'].'","'.time().'","'.$obj['x'].'","'.$obj['y'].'","'.$u->info['id'].'","obj_act'.$obj['id'].'","'.$vad['bad'].'"
)');
if( rand(1,100) > 20 ) {
$r = 'Обыскав &quot;'.$obj['name'].'&quot; вы ничего не обнаружили...';
$r = 'Обыскав &quot;'.$obj['name'].'&quot; вы ничего не обнаружили...';
}else{
$vad['items'] = array(4279,4269);
if( rand(1,100) < 9 ) {
@ -28,7 +28,7 @@ if( isset($s[1]) && $s[1] == '101/sunduk3' ) {
if( !isset($vad['dn_delete'][$vad['items']['id']]) ) {
$vad['dn_delete'][$vad['items']['id']] = false;
}
$r = 'Обыскав &quot;'.$obj['name'].'&quot; вы обнаружили &quot;'.$vad['items']['name'].'&quot;';
$r = 'Обыскав &quot;'.$obj['name'].'&quot; вы обнаружили &quot;'.$vad['items']['name'].'&quot;';
$this->pickitem($obj,$vad['items']['id'],0,'',$vad['dn_delete'][$vad['items']['id']]);
}
}

View File

@ -1,15 +1,15 @@
<?
if( isset($s[1]) && $s[1] == '101/sunduk4' ) {
/*
Сундук: Сундук
Сундук: Сундук
*/
//Все переменные сохранять в массиве $vad !
//Все переменные сохранять в массиве $vad !
$vad = array(
'go' => true
);
$vad['test1'] = mysql_fetch_array(mysql_query('SELECT COUNT(*) FROM `dungeon_actions` WHERE `dn` = "'.$u->info['dnow'].'" AND `vars` = "obj_act'.$obj['id'].'" LIMIT 1'));
if( $vad['test1'][0] > 0 ) {
$r = 'Кто-то обыскал &quot;'.$obj['name'].'&quot; до вас...';
$r = 'Кто-то обыскал &quot;'.$obj['name'].'&quot; до вас...';
$vad['go'] = false;
}
@ -18,7 +18,7 @@ if( isset($s[1]) && $s[1] == '101/sunduk4' ) {
"'.$u->info['dnow'].'","'.time().'","'.$obj['x'].'","'.$obj['y'].'","'.$u->info['id'].'","obj_act'.$obj['id'].'","'.$vad['bad'].'"
)');
if( rand(1,100) > 50 ) {
$r = 'Обыскав &quot;'.$obj['name'].'&quot; вы ничего не обнаружили...';
$r = 'Обыскав &quot;'.$obj['name'].'&quot; вы ничего не обнаружили...';
}else{
$vad['items'] = array(882);
if( rand(1,40) < 16 ) {
@ -28,7 +28,7 @@ if( isset($s[1]) && $s[1] == '101/sunduk4' ) {
if( !isset($vad['dn_delete'][$vad['items']['id']]) ) {
$vad['dn_delete'][$vad['items']['id']] = false;
}
$r = 'Обыскав &quot;'.$obj['name'].'&quot; вы обнаружили &quot;'.$vad['items']['name'].'&quot;';
$r = 'Обыскав &quot;'.$obj['name'].'&quot; вы обнаружили &quot;'.$vad['items']['name'].'&quot;';
$this->pickitem($obj,$vad['items']['id'],0,'',$vad['dn_delete'][$vad['items']['id']]);
}
}

View File

@ -1,16 +1,16 @@
<?
if( isset($s[1]) && $s[1] == '101/telejka' ) {
/*
Сундук: Тележка
* Можно получить один из двух ресурсов
Сундук: Тележка
* Можно получить один из двух ресурсов
*/
//Все переменные сохранять в массиве $vad !
//Все переменные сохранять в массиве $vad !
$vad = array(
'go' => true
);
$vad['test1'] = mysql_fetch_array(mysql_query('SELECT COUNT(*) FROM `dungeon_actions` WHERE `dn` = "'.$u->info['dnow'].'" AND `vars` = "obj_act'.$obj['id'].'" AND `uid` = "'.$u->info['id'].'" LIMIT 1'));
if( $vad['test1'][0] > 0 ) {
$r = 'Кто-то обыскал &quot;'.$obj['name'].'&quot; до вас...';
$r = 'Кто-то обыскал &quot;'.$obj['name'].'&quot; до вас...';
$vad['go'] = false;
}
@ -20,14 +20,14 @@ if( isset($s[1]) && $s[1] == '101/telejka' ) {
)');
if( rand(0,100) < 80 ) {
if( rand(0,100) < 51 ) {
$r = 'Обыскав &quot;'.$obj['name'].'&quot; вы обнаружили &quot;Лучистое серебро&quot;';
$r = 'Обыскав &quot;'.$obj['name'].'&quot; вы обнаружили &quot;Лучистое серебро&quot;';
$this->pickitem($obj,895,$u->info['id']);
}else{
$r = 'Обыскав &quot;'.$obj['name'].'&quot; вы обнаружили &quot;Серебро&quot;';
$r = 'Обыскав &quot;'.$obj['name'].'&quot; вы обнаружили &quot;Серебро&quot;';
$this->pickitem($obj,875,$u->info['id']);
}
}else{
$r = 'Вы ничего не смогли найти...';
$r = 'Вы ничего не смогли найти...';
}
}

View File

@ -1,12 +1,12 @@
<?
if( isset($s[1]) && $s[1] == '101/viboina' ) {
/*
Сундук: Выбоина
* Можно найти Сталь , Мифрил , Пустые бутылки
* Может отнять 100-1000 НР
* Могут использовать только 2 человека из команды
Сундук: Выбоина
* Можно найти Сталь , Мифрил , Пустые бутылки
* Может отнять 100-1000 НР
* Могут использовать только 2 человека из команды
*/
//Все переменные сохранять в массиве $vad !
//Все переменные сохранять в массиве $vad !
$vad = array(
'go' => true
);
@ -18,7 +18,7 @@ if( isset($s[1]) && $s[1] == '101/viboina' ) {
$vad['test5'] = mysql_fetch_array(mysql_query('SELECT COUNT(*) FROM `dungeon_actions` WHERE `dn` = "'.$u->info['dnow'].'" AND `vars` = "obj_act'.$obj['id'].'_bad_use" AND `uid` != "'.$u->info['id'].'" LIMIT 1'));
if( !isset($vad['test3']['id']) ) {
//Определяем ловушка или нет
//Определяем ловушка или нет
if( rand(0,100) < 50 ) {
$vad['bad'] = 1;
}else{
@ -32,33 +32,33 @@ if( isset($s[1]) && $s[1] == '101/viboina' ) {
}
if( $vad['test2'][0] > 0 ) {
//$r = 'Вы уже обыскали здесь все...';
$r = 'Кажется, вы здесь побывали раньше...';
//$r = 'Вы уже обыскали здесь все...';
$r = 'Кажется, вы здесь побывали раньше...';
$vad['go'] = false;
}elseif( $vad['test1'][0] > 1 || ( $vad['test4'] == 0 && $vad['test5'] >= 2 ) ) {
$r = 'Кажется, кто-то здесь побывал раньше вас...';
$r = 'Кажется, кто-то здесь побывал раньше вас...';
$vad['go'] = false;
}
if( $vad['bad'] == 1 && $vad['go'] == true ) {
//Вы угодили в ловушку
//Вы угодили в ловушку
$vad['test3'] = mysql_fetch_array(mysql_query('SELECT `id`,`vals` FROM `dungeon_actions` WHERE `dn` = "'.$u->info['dnow'].'" AND `vars` = "obj_act'.$obj['id'].'_bad_use" AND `uid` = "'.$u->info['id'].'" LIMIT 1'));
if( !isset($vad['test3']['id']) ) {
//Ловушка на 50% НР , Если НР баольше 2 ед.
//Ловушка на 50% НР , Если НР баольше 2 ед.
$vad['go'] = false;
mysql_query('INSERT INTO `dungeon_actions` (`dn`,`time`,`x`,`y`,`uid`,`vars`,`vals`) VALUES (
"'.$u->info['dnow'].'","'.time().'","'.$obj['x'].'","'.$obj['y'].'","'.$u->info['id'].'","obj_act'.$obj['id'].'_bad_use",""
)');
$r = 'В сундуке была ловушка установленная одним из обитателей подземелья!';
$r = 'В сундуке была ловушка установленная одним из обитателей подземелья!';
$vad['min_hp'] = round(2+$u->stats['hpNow']/4);
$u->stats['hpNow'] -= $vad['min_hp'];
if( $u->stats['hpNow'] < 0 ) {
$u->stats['hpNow'] = 0;
}
if($u->info['sex'] == 0) {
$vad['text'] = '[img[items/trap.gif]] <b>'.$u->info['login'].'</b> угодил в ловушку оставленную в &quot;'.$obj['name'].'&quot;. <b>-'.$vad['min_hp'].'</b> ['.floor($u->stats['hpNow']).'/'.round($u->stats['hpAll']).']';
$vad['text'] = '[img[items/trap.gif]] <b>'.$u->info['login'].'</b> угодил в ловушку оставленную в &quot;'.$obj['name'].'&quot;. <b>-'.$vad['min_hp'].'</b> ['.floor($u->stats['hpNow']).'/'.round($u->stats['hpAll']).']';
}else{
$vad['text'] = '[img[items/trap.gif]] <b>'.$u->info['login'].'</b> угодила в ловушку оставленную в &quot;'.$obj['name'].'&quot;. <b>-'.$vad['min_hp'].'</b> ['.floor($u->stats['hpNow']).'/'.round($u->stats['hpAll']).']';
$vad['text'] = '[img[items/trap.gif]] <b>'.$u->info['login'].'</b> угодила в ловушку оставленную в &quot;'.$obj['name'].'&quot;. <b>-'.$vad['min_hp'].'</b> ['.floor($u->stats['hpNow']).'/'.round($u->stats['hpAll']).']';
}
$this->sys_chat($vad['text']);
$u->info['hpNow'] = $u->stats['hpNow'];
@ -69,22 +69,22 @@ if( isset($s[1]) && $s[1] == '101/viboina' ) {
}
if( $vad['go'] == true ) {
//Выкидываем бутылку, мифрил, либо сталь
//Выкидываем бутылку, мифрил, либо сталь
$vad['items'] = array(2,877,896);
$vad['items'] = $vad['items'][rand(0,count($vad['items'])-1)];
if( $vad['items'] != 0 ) {
//Выбрасываем предмет
//Выбрасываем предмет
mysql_query('INSERT INTO `dungeon_actions` (`dn`,`time`,`x`,`y`,`uid`,`vars`,`vals`) VALUES (
"'.$u->info['dnow'].'","'.time().'","'.$obj['x'].'","'.$obj['y'].'","'.$u->info['id'].'","obj_act'.$obj['id'].'",""
)');
if( $this->pickitem($obj,$vad['items'],$u->info['id']) ) {
$r = 'Вы обнаружили предметы...';
$r = 'Вы обнаружили предметы...';
}else{
$r = 'Что-то пошло не так, предметы растворились...';
$r = 'Что-то пошло не так, предметы растворились...';
}
}else{
$r = 'Вы не нашли ничего полезного...';
$r = 'Вы не нашли ничего полезного...';
}
}

View File

@ -1,34 +1,34 @@
<?
if( isset($s[1]) && $s[1] == '101/viboina2' ) {
/*
Выбоина
* Телепортирует на необходимую клетку х 4 , у 26
* Для прохода требуется 1 Линза Портала - 4298
Выбоина
* Телепортирует на необходимую клетку х 4 , у 26
* Для прохода требуется 1 Линза Портала - 4298
*/
//Все переменные сохранять в массиве $vad !
//Все переменные сохранять в массиве $vad !
$vad = array(
'go' => false
);
//Проверяем камни
//Проверяем камни
$vad['sp'] = mysql_fetch_array(mysql_query('SELECT * FROM `items_users` WHERE `item_id` = "4298" AND `uid` = "'.$u->info['id'].'" AND `delete` = "0" AND `inOdet` = "0" AND `inShop` = "0" AND `inTransfer` = "0" LIMIT 1'));
if( isset($vad['sp']['id']) ) {
// Удалена проверка на группировку предметов 14.10.2015
// $vad['pl'] = mysql_fetch_array(mysql_query('SELECT * FROM `items_main` WHERE `id` = "'.$vad['sp']['item_id'].'" LIMIT 1')); // Берем название "Линза Портала" и все.. смысл запроса... статика.
// Удалена проверка на группировку предметов 14.10.2015
// $vad['pl'] = mysql_fetch_array(mysql_query('SELECT * FROM `items_main` WHERE `id` = "'.$vad['sp']['item_id'].'" LIMIT 1')); // Берем название "Линза Портала" и все.. смысл запроса... статика.
$vad['go'] = true;
}
if( $vad['go'] == true ) {
mysql_query('UPDATE `stats` SET `x` = "4",`y` = "26",`s` = "4" WHERE `id` = "'.$u->info['id'].'" LIMIT 1');
//$u->deleteItem($vad['sp']['id'],$u->info['id'],1);// Убрано 14.10.2015
//$u->deleteItem($vad['sp']['id'],$u->info['id'],1);// Убрано 14.10.2015
$upd = mysql_query('UPDATE `items_users` SET `lastUPD`="'.time().'",`delete`="'.time().'" WHERE `id`="'.$vad['sp']['id'].'" LIMIT 1');
if($upd){
$r = 'Вы переместились при помощи &quot;Линза Портала&quot; на другую сторону';
$r = 'Вы переместились при помощи &quot;Линза Портала&quot; на другую сторону';
echo '<script>location.href="main.php"</script>';
} else {
$r = 'Что-то пошло не так, попробуйте позже.';
$r = 'Что-то пошло не так, попробуйте позже.';
}
}elseif( !isset($vad['sp']['id']) ) {
$r = 'Для перемещения требуется &quot;Линза Портала&quot;';
$r = 'Для перемещения требуется &quot;Линза Портала&quot;';
}
unset($vad);
}

View File

@ -1,17 +1,17 @@
<?
if( isset($s[1]) && $s[1] == '101/viboina3' ) {
/*
Выбоина
* Телепортирует на необходимую клетку х 4 , у 25
Выбоина
* Телепортирует на необходимую клетку х 4 , у 25
*/
//Все переменные сохранять в массиве $vad !
//Все переменные сохранять в массиве $vad !
$vad = array(
'go' => true
);
if( $vad['go'] == true ) {
mysql_query('UPDATE `stats` SET `x` = "4",`y` = "25",`s` = "2" WHERE `id` = "'.$u->info['id'].'" LIMIT 1');
$r = 'Вы перешли на другую сторону завала';
$r = 'Вы перешли на другую сторону завала';
echo '<script>location.href="main.php"</script>';
}
unset($vad);

View File

@ -1,17 +1,17 @@
<?
if( isset($s[1]) && $s[1] == '101/viboina4' ) {
/*
Выбоина
* Телепортирует на необходимую клетку х 4 , у 27
Выбоина
* Телепортирует на необходимую клетку х 4 , у 27
*/
//Все переменные сохранять в массиве $vad !
//Все переменные сохранять в массиве $vad !
$vad = array(
'go' => true
);
if( $vad['go'] == true ) {
mysql_query('UPDATE `stats` SET `x` = "4",`y` = "27",`s` = "2" WHERE `id` = "'.$u->info['id'].'" LIMIT 1');
$r = 'Вы перешли на другую сторону завала';
$r = 'Вы перешли на другую сторону завала';
echo '<script>location.href="main.php"</script>';
}
unset($vad);

View File

@ -1,10 +1,10 @@
<?
if( isset($s[1]) && $s[1] == '104/sunduk1' ) {
/*
Сундук: Сундук
* Можно найти Сталь , Мифрил , Пустые бутылки
Сундук: Сундук
* Можно найти Сталь , Мифрил , Пустые бутылки
*/
//Все переменные сохранять в массиве $vad !
//Все переменные сохранять в массиве $vad !
$vad = array(
'go' => true
);
@ -12,15 +12,15 @@ if( isset($s[1]) && $s[1] == '104/sunduk1' ) {
$vad['test1'] = mysql_fetch_array(mysql_query('SELECT COUNT(*) FROM `dungeon_actions` WHERE `vars` = "obj_act'.$obj['id'].'" AND `dn` = "'.$u->info['dnow'].'" LIMIT 1'));
$vad['test2'] = mysql_fetch_array(mysql_query('SELECT COUNT(*) FROM `dungeon_actions` WHERE `vars` = "obj_act'.$obj['id'].'" AND `dn` = "'.$u->info['dnow'].'" AND `uid` = "'.$u->info['id'].'" LIMIT 1'));
if( $vad['test2'][0] > 0 ) {
$r = 'Вы уже обыскали &quot;'.$obj['name'].'&quot;...';
$r = 'Вы уже обыскали &quot;'.$obj['name'].'&quot;...';
$vad['go'] = false;
}elseif( $vad['test1'][0] > 1 ) {
$r = 'Кто-то обыскал &quot;'.$obj['name'].'&quot; раньше вас...';
$r = 'Кто-то обыскал &quot;'.$obj['name'].'&quot; раньше вас...';
$vad['go'] = false;
}
if( $vad['go'] == true ) {
//Выкидываем бутылку, мифрил, либо сталь
//Выкидываем бутылку, мифрил, либо сталь
$vad['items'] = array(
724,724,724,724,724,724,724,724,724,724,724,724,724,724,
2390,2390,2390,2390,2390,2390,2390,2390,2390,2390,2390,2390,2390,2390,
@ -37,7 +37,7 @@ if( isset($s[1]) && $s[1] == '104/sunduk1' ) {
$vad['items'] = 724;
}
if( $vad['items'] != 0 ) {
//Выбрасываем предмет
//Выбрасываем предмет
mysql_query('INSERT INTO `dungeon_actions` (`dn`,`time`,`x`,`y`,`uid`,`vars`,`vals`) VALUES (
"'.$u->info['dnow'].'","'.time().'","'.$obj['x'].'","'.$obj['y'].'","'.$u->info['id'].'","obj_act'.$obj['id'].'",""
)');
@ -45,12 +45,12 @@ if( isset($s[1]) && $s[1] == '104/sunduk1' ) {
$vad['dn_delete'][$vad['items']] = false;
}
if( $this->pickitem($obj,$vad['items'],$u->info['id'],'') ) {
$r = 'Вы обнаружили предметы...';
$r = 'Вы обнаружили предметы...';
}else{
$r = 'Что-то пошло не так, предметы растворились...';
$r = 'Что-то пошло не так, предметы растворились...';
}
}else{
$r = 'Вы не нашли ничего полезного...';
$r = 'Вы не нашли ничего полезного...';
}
}

View File

@ -1,15 +1,15 @@
<?
if( isset($s[1]) && $s[1] == '106/btn1' ) {
/*
Сундук: Кровавый подземник (4561)
Сундук: Кровавый подземник (4561)
*/
//Все переменные сохранять в массиве $vad !
//Все переменные сохранять в массиве $vad !
$vad = array(
'go' => true
);
$vad['test1'] = mysql_fetch_array(mysql_query('SELECT COUNT(*) FROM `dungeon_actions` WHERE `dn` = "'.$u->info['dnow'].'" AND `vars` = "obj_act'.$obj['id'].'" LIMIT 1'));
if( $vad['test1'][0] > 0 ) {
$r = 'Вы уже нажали на &quot;'.$obj['name'].'&quot;...';
$r = 'Вы уже нажали на &quot;'.$obj['name'].'&quot;...';
$vad['go'] = false;
}
@ -22,7 +22,7 @@ if( isset($s[1]) && $s[1] == '106/btn1' ) {
if( !isset($vad['dn_delete'][$vad['items']['id']]) ) {
$vad['dn_delete'][$vad['items']['id']] = false;
}
$r = 'Нажав на &quot;'.$obj['name'].'&quot; вы получили &quot;'.$vad['items']['name'].'&quot;.';
$r = 'Нажав на &quot;'.$obj['name'].'&quot; вы получили &quot;'.$vad['items']['name'].'&quot;.';
$this->pickitem($obj,$vad['items']['id'],0,'',$vad['dn_delete'][$vad['items']['id']]);
}

View File

@ -1,9 +1,9 @@
<?
if( isset($s[1]) && $s[1] == '106/door1' ) {
/*
Сундук: Кровавый подземник (4561)
Сундук: Кровавый подземник (4561)
*/
//Все переменные сохранять в массиве $vad !
//Все переменные сохранять в массиве $vad !
$vad = array(
'go' => true
);
@ -14,7 +14,7 @@ if( isset($s[1]) && $s[1] == '106/door1' ) {
)');
$vad['qst'] = mysql_fetch_array(mysql_query('SELECT * FROM `dialog_act` WHERE `uid` = "'.$u->info['id'].'" AND `var` = "noobqst1" AND `val` = 1 LIMIT 1'));
if(!isset($vad['qst']['id'])) {
$r = 'Дверь закрыта. Сначала выполните задания Учителя.';
$r = 'Дверь закрыта. Сначала выполните задания Учителя.';
}else{
mysql_query('UPDATE `stats` SET `x` = -2,`y` = 6,`s` = 1 WHERE `id` = "'.$u->info['id'].'" LIMIT 1');
header('location: main.php');

View File

@ -1,9 +1,9 @@
<?
if( isset($s[1]) && $s[1] == '106/door2' ) {
/*
Сундук: Кровавый подземник (4561)
Сундук: Кровавый подземник (4561)
*/
//Все переменные сохранять в массиве $vad !
//Все переменные сохранять в массиве $vad !
$vad = array(
'go' => true
);
@ -14,7 +14,7 @@ if( isset($s[1]) && $s[1] == '106/door2' ) {
)');
$vad['qst'] = mysql_fetch_array(mysql_query('SELECT * FROM `dialog_act` WHERE `uid` = "'.$u->info['id'].'" AND `var` = "noobqst1" AND `val` = 1 LIMIT 1'));
if(!isset($vad['qst']['id'])) {
$r = 'Дверь закрыта. Сначала выполните задания Учителя.';
$r = 'Дверь закрыта. Сначала выполните задания Учителя.';
}else{
mysql_query('UPDATE `stats` SET `x` = -2,`y` = 1,`s` = 3 WHERE `id` = "'.$u->info['id'].'" LIMIT 1');
header('location: main.php');

View File

@ -1,9 +1,9 @@
<?
if( isset($s[1]) && $s[1] == '106/door3' ) {
/*
Сундук: Кровавый подземник (4561)
Сундук: Кровавый подземник (4561)
*/
//Все переменные сохранять в массиве $vad !
//Все переменные сохранять в массиве $vad !
$vad = array(
'go' => true
);
@ -17,29 +17,29 @@ if( isset($s[1]) && $s[1] == '106/door3' ) {
$vad['itm'] = mysql_fetch_array(mysql_query('SELECT * FROM `items_users` WHERE `uid` = "'.$u->info['id'].'" AND (`item_id` = 724 OR `item_id` = 4704) LIMIT 1'));
if(!isset($vad['qst']['id']) || !isset($vad['itm']['id'])) {
$r = 'Дверь закрыта. Сначала выполните задания Учителя и купите Футболку с Эликсиром.';
$r = 'Дверь закрыта. Сначала выполните задания Учителя и купите Футболку с Эликсиром.';
}else{
//Начало обучения
//Начало обучения
$humor = array(
0 => array(
':maniac: Сильно не бейте ;)',':beggar: Будет попрошайничать - бейте!',':pal: Возможно светлый!',
':vamp: Возможно темный!',':susel: Судя по здоровенному бицепсу - это мужик!',':duel: И сразу же кинулся в бой!',
':friday: Не долго думав он начал искать собутыльника!',':doc: Лекарь: Новичок! Да, да! Ты! Если тебя сломают - у знахаря тебя соберут обратно!'
':maniac: Сильно не бейте ;)',':beggar: Будет попрошайничать - бейте!',':pal: Возможно светлый!',
':vamp: Возможно темный!',':susel: Судя по здоровенному бицепсу - это мужик!',':duel: И сразу же кинулся в бой!',
':friday: Не долго думав он начал искать собутыльника!',':doc: Лекарь: Новичок! Да, да! Ты! Если тебя сломают - у знахаря тебя соберут обратно!'
),
1 => array(
':maniac: Помните! Девочек не бьем ;)',':nail: Она красит ногти, не отвлекайте все сразу ;)',':pal: Возможно светлая!',
':vamp: Возможно темная!',':rev: Судя по красивой одежде - это женщина!',':hug: И сразу же кинулась всех целовать!',
':angel2: Ангел сошел с небес...'
':maniac: Помните! Девочек не бьем ;)',':nail: Она красит ногти, не отвлекайте все сразу ;)',':pal: Возможно светлая!',
':vamp: Возможно темная!',':rev: Судя по красивой одежде - это женщина!',':hug: И сразу же кинулась всех целовать!',
':angel2: Ангел сошел с небес...'
)
);
$humor = $humor[$u->info['sex']];
//$u->info['fnq'] = 1;
//mysql_query('UPDATE `users` SET `fnq` = "'.$u->info['fnq'].'" WHERE `id` = "'.$u->info['id'].'" LIMIT 1');
//Отправляем сообщение в чат о новичке
//Отправляем сообщение в чат о новичке
mysql_query('UPDATE `items_users` SET `delete` = "'.time().'" WHERE `uid` = "'.$u->info['id'].'" AND `delete` = 0 AND `item_id` = 4703');
mysql_query('UPDATE `users` SET `room` = 4 WHERE `id` = "'.$u->info['id'].'" LIMIT 1');
mysql_query('UPDATE `stats` SET `hpNow` = 1000,`mpNow` = 1000,`dn` = 0 , `dnow` = 0 , `x` = 0 , `y` = 0 , `s` = 0 WHERE `id` = "'.$u->info['id'].'" LIMIT 1');
$u->send('','','','','','В нашем мире появился новый игрок &quot;<b>' . $u->info['login'] . '</b>&quot;! '.$humor[rand(0,count($humor)-1)].'',time(),6,0,0,0,1,0);
$u->send('','','','','','В нашем мире появился новый игрок &quot;<b>' . $u->info['login'] . '</b>&quot;! '.$humor[rand(0,count($humor)-1)].'',time(),6,0,0,0,1,0);
//mysql_query('UPDATE `stats` SET `x` = 0,`y` = 5 WHERE `id` = "'.$u->info['id'].'" LIMIT 1');
header('location: main.php');
die();

View File

@ -1,9 +1,9 @@
<?
if( isset($s[1]) && $s[1] == '106/door4' ) {
/*
Сундук: Кровавый подземник (4561)
Сундук: Кровавый подземник (4561)
*/
//Все переменные сохранять в массиве $vad !
//Все переменные сохранять в массиве $vad !
$vad = array(
'go' => true
);
@ -15,7 +15,7 @@ if( isset($s[1]) && $s[1] == '106/door4' ) {
$vad['qst'] = mysql_fetch_array(mysql_query('SELECT * FROM `dialog_act` WHERE `uid` = "'.$u->info['id'].'" AND `var` = "noobqst1" AND `val` = 1 LIMIT 1'));
$vad['qst2'] = mysql_fetch_array(mysql_query('SELECT COUNT(*) FROM `items_users` WHERE `uid` = "'.$u->info['id'].'" AND `item_id` = "4703" AND `delete` = 0 LIMIT 1'));
if(!isset($vad['qst']['id']) && $vad['qst2'][0] > 0) {
$r = 'Дверь закрыта. Сначала выполните задания Учителя и потратьте все свои Жетоны.';
$r = 'Дверь закрыта. Сначала выполните задания Учителя и потратьте все свои Жетоны.';
}else{
mysql_query('UPDATE `stats` SET `x` = 0,`y` = 5 WHERE `id` = "'.$u->info['id'].'" LIMIT 1');
header('location: main.php');

View File

@ -3,7 +3,7 @@ if(isset($s[1]) && $s[1] == '108/door1') {
$vad = array('go' => true);
$vad['test1'] = mysql_fetch_array(mysql_query('SELECT COUNT(*) FROM `dungeon_actions` WHERE `dn` = "'.$u->info['dnow'].'" AND `vars` = "obj_act'.$obj['id'].'" LIMIT 1'));
if($vad['test1'][0] > 0) {
$r = 'Кто-то вас опередил...';
$r = 'Кто-то вас опередил...';
$vad['go'] = false;
}
if($vad['go'] == 'true') {
@ -12,7 +12,7 @@ if(isset($s[1]) && $s[1] == '108/door1') {
$vad['items'] = array(4914, 4915, 4916, 4917, 4918);
$vad['items'] = mysql_fetch_array(mysql_query('SELECT * FROM `items_main` WHERE `id` = "'.mysql_real_escape_string($vad['items'][rand(0, count($vad['items'])-1)]).'" LIMIT 1'));
$vad['dn_delete'][$vad['items']['id']] = true;
$r = 'Вы обнаружили &quot;'.$vad['items']['name'].'&quot;';
$r = 'Вы обнаружили &quot;'.$vad['items']['name'].'&quot;';
$this->pickitem($obj, $vad['items']['id'], 1,'',true, 1);
}
unset($vad);

View File

@ -3,24 +3,24 @@ if(isset($s[1]) && $s[1] == '108/fontan1') {
$vad = array('go' => true);
$bots = mysql_fetch_array(mysql_query('SELECT `id2` FROM `dungeon_bots` WHERE `dn` = "'.$u->info['dnow'].'" AND ((`x` = "-7" AND `y` = "9") OR (`x` = "-5" AND `y` = "9") OR (`x` = "-7" AND `y` = "8") OR (`x` = "-6" AND `y` = "8") OR (`x` = "-5" AND `y` = "6")) AND `delete` = "0" LIMIT 1'));
if(isset($bots['id2'])) {
$r = 'Не все боты убиты ...';
$r = 'Не все боты убиты ...';
$vad['go'] = false;
}
$vad['test1'] = mysql_fetch_array(mysql_query('SELECT COUNT(*) FROM `dungeon_actions` WHERE `dn` = "'.$u->info['dnow'].'" AND `vars` = "obj_act'.$obj['id'].'" LIMIT 1'));
if($vad['test1'][0] > 2) {
$r = 'Фонтан пуст ...';
$r = 'Фонтан пуст ...';
$vad['go'] = false;
}
$vad['test2'] = mysql_fetch_array(mysql_query('SELECT COUNT(*) FROM `dungeon_actions` WHERE `dn` = "'.$u->info['dnow'].'" AND `vars` = "obj_act'.$obj['id'].'" AND `uid` = "'.$u->info['id'].'" LIMIT 1'));
if($vad['test2'][0] > 0) {
$r = 'Вы уже пользовались фонтаном ...';
$r = 'Вы уже пользовались фонтаном ...';
$vad['go'] = false;
}
if($vad['go'] == 'true') {
$vad['items'] = array(4911, 4912, 4913);
$vad['items'] = mysql_fetch_array(mysql_query('SELECT * FROM `items_main` WHERE `id` = "'.mysql_real_escape_string($vad['items'][rand(0, count($vad['items'])-1)]).'" LIMIT 1'));
$vad['dn_delete'][$vad['items']['id']] = false;
$r = 'Вы обнаружили &quot;'.$vad['items']['name'].'&quot;';
$r = 'Вы обнаружили &quot;'.$vad['items']['name'].'&quot;';
$this->pickitem($obj, $vad['items']['id'], 1,'',false, 1);
mysql_query('INSERT INTO `dungeon_actions` (`dn`, `time`, `x`, `y`, `uid`, `vars`, `vals`) VALUES (
"'.$u->info['dnow'].'","'.time().'","'.$obj['x'].'","'.$obj['y'].'","'.$u->info['id'].'","obj_act'.$obj['id'].'","'.$vad['bad'].'")');

View File

@ -4,13 +4,13 @@ if(isset($s[1]) && $s[1] == '108/fontan2') {
$vad['test1'] = mysql_fetch_array(mysql_query('SELECT COUNT(*) FROM `dungeon_actions` WHERE `dn` = "'.$u->info['dnow'].'" AND `vars` = "obj_act'.$obj['id'].'" LIMIT 1'));
if($vad['test1'][0] > 1) {
$r = 'Фонтан пуст ...';
$r = 'Фонтан пуст ...';
$vad['go'] = false;
}
$vad['test2'] = mysql_fetch_array(mysql_query('SELECT COUNT(*) FROM `dungeon_actions` WHERE `dn` = "'.$u->info['dnow'].'" AND `vars` = "obj_act'.$obj['id'].'" AND `uid` = "'.$u->info['id'].'" LIMIT 1'));
if($vad['test2'][0] > 0) {
$r = 'Вы уже пользовались фонтаном ...';
$r = 'Вы уже пользовались фонтаном ...';
$vad['go'] = false;
}
@ -18,13 +18,13 @@ if(isset($s[1]) && $s[1] == '108/fontan2') {
$vad['bt'] = mysql_fetch_array(mysql_query('SELECT * FROM `items_users` WHERE `item_id` = "2" AND `uid` = "'.$u->info['id'].'" AND `delete` = "0" AND `inOdet` = "0" AND `inShop` = "0" AND `inTransfer` = "0" LIMIT 1'));
if(isset($vad['bt']['id'])) {
if($vad['bt']['inGroup'] > 1) {
$r = 'Предмет не должен находиться в группе';
$r = 'Предмет не должен находиться в группе';
$vad['go'] = false;
} else {
$vad['go'] = true;
}
} else {
$r = 'У вас нет пустой бутылки.';
$r = 'У вас нет пустой бутылки.';
$vad['go'] = false;
}
}
@ -32,7 +32,7 @@ if(isset($s[1]) && $s[1] == '108/fontan2') {
if( $vad['go'] == true ) {
mysql_query('INSERT INTO `dungeon_actions` (`dn`, `time`, `x`, `y`, `uid`, `vars`, `vals`) VALUES (
"'.$u->info['dnow'].'","'.time().'","'.$obj['x'].'","'.$obj['y'].'","'.$u->info['id'].'","obj_act'.$obj['id'].'","'.$vad['bad'].'")');
$r = 'Опустив пустую бутылку в фонтан вы наполнили её.';
$r = 'Опустив пустую бутылку в фонтан вы наполнили её.';
$u->deleteItem(intval($vad['bt']['id']),$u->info['id'],1);
$u->addItem(round(2417),$u->info['id'],'|musor=2|noremont=1|nosale=1',108, 3);
}

View File

@ -3,19 +3,19 @@ if(isset($s[1]) && $s[1] == '108/fontan3') {
$vad = array('go' => true);
$vad['test1'] = mysql_fetch_array(mysql_query('SELECT COUNT(*) FROM `dungeon_actions` WHERE `dn` = "'.$u->info['dnow'].'" AND `vars` = "obj_act'.$obj['id'].'" LIMIT 1'));
if($vad['test1'][0] > 0) {
$r = 'Фонтан пуст ...';
$r = 'Фонтан пуст ...';
$vad['go'] = false;
}
$bots = mysql_fetch_array(mysql_query('SELECT `id2` FROM `dungeon_bots` WHERE `dn` = "'.$u->info['dnow'].'" AND ((`x` = "-6" AND `y` = "32") OR (`x` = "-6" AND `y` = "31") OR (`x` = "-5" AND `y` = "32") OR (`x` = "-5" AND `y` = "31") OR (`x` = "-5" AND `y` = "30")) AND `delete` = "0" LIMIT 1'));
if(isset($bots['id2'])) {
$r = 'Не все боты убиты ...';
$r = 'Не все боты убиты ...';
$vad['go'] = false;
}
$vad['test2'] = mysql_fetch_array(mysql_query('SELECT `id2` FROM `dungeon_bots` WHERE `dn` = "'.$u->info['dnow'].'" AND `id_bot` = "484" AND `delete` = "0" LIMIT 1'));
if(isset($vad['test2']['id2'])) {
$r = 'Король всё еще жив ...';
$r = 'Король всё еще жив ...';
$vad['go'] = false;
}
@ -24,7 +24,7 @@ if(isset($s[1]) && $s[1] == '108/fontan3') {
"'.$u->info['dnow'].'","'.time().'","'.$obj['x'].'","'.$obj['y'].'","'.$u->info['id'].'","obj_act'.$obj['id'].'","'.$vad['bad'].'")');
//4041
$u->addItem(round(4041),$u->info['id'],'|musor=2|noremont=1|nosale=1',108, 1);
$r = 'Вы получили Снадобье Забытых Мастеров';
$r = 'Вы получили Снадобье Забытых Мастеров';
}
unset($vad);

View File

@ -1,11 +1,11 @@
<?
if( isset($s[1]) && $s[1] == '12/altar_1_5stage' ) {
/*
Сундук: Алтарь Осколков
Сундук: Алтарь Осколков
# '4443', '4444', '4445' = 4446
# '4517', '4518', '4519', '4520', '4521' = 4522
*/
//Все переменные сохранять в массиве $vad !
//Все переменные сохранять в массиве $vad !
$vad = array(
'go_p' => true,
'go_r' => true,
@ -56,7 +56,7 @@ if( isset($s[1]) && $s[1] == '12/altar_1_5stage' ) {
$u->deleteItem($vad['row'],$u->info['id'],1);
}
$this->pickitem($obj,4446,$u->info['id'],'|sudba=-1');
$r = 'Вы использовали &quot;'.$obj['name'].'&quot; и собрали &quot;Ключ Портала&quot; из трех частей...';
$r = 'Вы использовали &quot;'.$obj['name'].'&quot; и собрали &quot;Ключ Портала&quot; из трех частей...';
} else {
$vad['go_p'] == false;
}
@ -69,12 +69,12 @@ if( isset($s[1]) && $s[1] == '12/altar_1_5stage' ) {
}
$this->pickitem($obj,4522,$u->info['id'],'|sudba=-1', true);
if( !isset($r) ) $r ='';
$r .= 'Вы использовали &quot;'.$obj['name'].'&quot; и собрали &quot;Отпирающая руна&quot; из пяти частей...';
$r .= 'Вы использовали &quot;'.$obj['name'].'&quot; и собрали &quot;Отпирающая руна&quot; из пяти частей...';
} else {
$vad['go_r'] == false;
}
if( $vad['go_r']==false && $vad['go_p']==false ) {
$r = 'Ничего не получилось... ';
$r = 'Ничего не получилось... ';
}
unset($vad);

View File

@ -1,19 +1,19 @@
<?
if( isset($s[1]) && $s[1] == '12/door_01' ) {
/*
Решетка
* Телепортирует на необходимую клетку
Решетка
* Телепортирует на необходимую клетку
*/
//Все переменные сохранять в массиве $vad !
//Все переменные сохранять в массиве $vad !
$vad = array(
'go' => false
);
//Проверяем камни
//Проверяем камни
$vad['sp'] = mysql_fetch_array(mysql_query('SELECT * FROM `items_users` WHERE `item_id` = "4516" AND `uid` = "'.$u->info['id'].'" AND `delete` = "0" AND `inOdet` = "0" AND `inShop` = "0" AND `inTransfer` = "0" LIMIT 1'));
if( isset($vad['sp']['id']) ) {
if( $vad['sp']['inGroup'] > 0 ) {
$r = 'Предмет не должен находиться в группе';
$r = 'Предмет не должен находиться в группе';
}else{
$vad['pl'] = mysql_fetch_array(mysql_query('SELECT * FROM `items_main` WHERE `id` = "'.$vad['sp']['item_id'].'" LIMIT 1'));
$vad['go'] = true;
@ -23,9 +23,9 @@ if( isset($s[1]) && $s[1] == '12/door_01' ) {
mysql_query('UPDATE `stats` SET `x` = "-3",`y` = "63" WHERE `id` = "'.$u->info['id'].'" LIMIT 1');
header('location: main.php');
}elseif( $u->info['x'] == '-3' && $u->info['y'] == '63') {
$r = 'Решетка уже открыта';
$r = 'Решетка уже открыта';
}elseif( !isset($vad['sp']['id']) ) {
$r = 'Для прохода требуется предмет &quot;Ключ от Сокровищницы&quot;';
$r = 'Для прохода требуется предмет &quot;Ключ от Сокровищницы&quot;';
}
unset($vad);
}

View File

@ -4,7 +4,7 @@ if(isset($s[1]) && $s[1] == '12/door_02') {
$vad['sp'] = mysql_fetch_array(mysql_query('SELECT * FROM `items_users` WHERE `item_id` = "4522" AND `uid` = "'.$u->info['id'].'" AND `delete` = "0" AND `inOdet` = "0" AND `inShop` = "0" AND `inTransfer` = "0" LIMIT 1'));
if(isset($vad['sp']['id'])) {
if($vad['sp']['inGroup'] > 0) {
$r = 'Предмет не должен находиться в группе';
$r = 'Предмет не должен находиться в группе';
} else {
$vad['pl'] = mysql_fetch_array(mysql_query('SELECT * FROM `items_main` WHERE `id` = "'.$vad['sp']['item_id'].'" LIMIT 1'));
$vad['go'] = true;
@ -14,9 +14,9 @@ if(isset($s[1]) && $s[1] == '12/door_02') {
mysql_query('UPDATE `stats` SET `x` = "0", `y` = "66" WHERE `id` = "'.$u->info['id'].'" LIMIT 1');
header('Location: main.php');
} elseif($u->info['x'] == '0' && $u->info['y'] == '66') {
$r = 'Дверь уже открыта';
$r = 'Дверь уже открыта';
} elseif(!isset($vad['sp']['id'])) {
$r = 'Для прохода требуется предмет &quot;Отпирающая руна&quot;';
$r = 'Для прохода требуется предмет &quot;Отпирающая руна&quot;';
}
unset($vad);
}

View File

@ -9,17 +9,17 @@ if(isset($s[1]) && $s[1] == '12/fontan1') {
if(isset($vad['bottle']['id'])) {
$vad['go'] = true;
} else {
$r = 'Для использования требуется &quot;Пустая Бутылка&quot;';
$r = 'Для использования требуется &quot;Пустая Бутылка&quot;';
}
} else {
$r = 'Для использования требуется &quot;Мерцающий Ключ №1&quot;';
$r = 'Для использования требуется &quot;Мерцающий Ключ №1&quot;';
}
} else {
if($u->info['sex'] == 1) { $a = 'а'; } else { $a = ''; }
$r = 'Мне кажется, что здесь я уже был'.$a.'..';
if($u->info['sex'] == 1) { $a = 'а'; } else { $a = ''; }
$r = 'Мне кажется, что здесь я уже был'.$a.'..';
}
if($vad['go'] == true) {
$r = 'Вы воспользовались &quot;Ключ №1&quot;. Опустив пустую бутылку в фонтан вы наполнили её.';
$r = 'Вы воспользовались &quot;Ключ №1&quot;. Опустив пустую бутылку в фонтан вы наполнили её.';
$u->deleteItem(intval($vad['key']['id']), $u->info['id'], 1);
$u->deleteItem(intval($vad['bottle']['id']), $u->info['id'], 1);
$u->addItem(round(4403), $u->info['id'], '|musor=2|noremont=1|nosale=1',12);

View File

@ -1,43 +1,43 @@
<?
if( isset($s[1]) && $s[1] == '12/fontan2' ) {
//Все переменные сохранять в массиве $vad !
//Все переменные сохранять в массиве $vad !
$vad = array(
'go' => false
);
// Требуется добавить на проверку Не больше 4 игроков из группы.
// Требуется добавить на проверку Не больше 4 игроков из группы.
$vad['use_fontan'] = mysql_fetch_array(mysql_query('SELECT * FROM `dungeon_actions` WHERE `uid` = "'.$u->info['id'].'" AND `dn` = "'.$u->info['dnow'].'" AND `vars` = "use_fontan" AND `vals` = "2" LIMIT 1')); // Проверка на использованее ранее.
$vad['use_fontan'] = mysql_fetch_array(mysql_query('SELECT * FROM `dungeon_actions` WHERE `uid` = "'.$u->info['id'].'" AND `dn` = "'.$u->info['dnow'].'" AND `vars` = "use_fontan" AND `vals` = "2" LIMIT 1')); // Проверка на использованее ранее.
if(!isset($vad['use_fontan']['id'])) {
$vad['all_uses'] = mysql_num_rows(mysql_query('SELECT * FROM `dungeon_actions` WHERE `dn` = "'.$u->info['dnow'].'" AND `vars` = "use_fontan" AND `vals` = "2" LIMIT 5'));
if($vad['all_uses']>=4){
$r = 'Ничего не осталось, кто-то побывал здесь раньше.';
$r = 'Ничего не осталось, кто-то побывал здесь раньше.';
} else {
$vad['kill_dk'] = mysql_fetch_array(mysql_query('SELECT * FROM `dungeon_bots` WHERE `id_bot` = "123" AND `dn` = "'.$u->info['dnow'].'" AND `for_dn` = "0" LIMIT 1')); //Проверяем убита ли Дарьяна Корт
$vad['kill_dk'] = mysql_fetch_array(mysql_query('SELECT * FROM `dungeon_bots` WHERE `id_bot` = "123" AND `dn` = "'.$u->info['dnow'].'" AND `for_dn` = "0" LIMIT 1')); //Проверяем убита ли Дарьяна Корт
if( isset($vad['kill_dk']['id2']) ) {
if( $vad['kill_dk']['delete'] > 0 ) {
$vad['bt'] = mysql_fetch_array(mysql_query('SELECT * FROM `items_users` WHERE `item_id` = "2" AND `uid` = "'.$u->info['id'].'" AND `delete` = "0" AND `inOdet` = "0" AND `inShop` = "0" AND `inTransfer` = "0" LIMIT 1'));
if( isset($vad['bt']['id']) ) {
$vad['go'] = true;
} else {
$r = 'У вас нет пустой бутылки.';
$r = 'У вас нет пустой бутылки.';
}
} else {
$r = 'Вы не можете воспользоваться фонтаном, пока Дарьяна Корт жива.';
$r = 'Вы не можете воспользоваться фонтаном, пока Дарьяна Корт жива.';
}
} else {
$r = 'Вы уверены что Дарьяна Корт мертва? Нигде нет ее останков..';
$r = 'Вы уверены что Дарьяна Корт мертва? Нигде нет ее останков..';
}
}
} else {
if($u->info['sex']==1)$a='а'; else $a='';
$r = 'Мне кажется, что здесь я уже был'.$a.'..';
if($u->info['sex']==1)$a='а'; else $a='';
$r = 'Мне кажется, что здесь я уже был'.$a.'..';
}
if( $vad['go'] == true ) {
mysql_query('INSERT INTO `dungeon_actions` (`uid`,`dn`,`x`,`y`,`time`,`vars`,`vals`) VALUES ( "'.$u->info['id'].'","'.$u->info['dnow'].'","'.$u->info['x'].'","'.$u->info['y'].'","'.time().'", "use_fontan","2" )'); // Выпили раз, вот и хватит с вас!
$r = 'Опустив пустую бутылку в фонтан вы наполнили её.';
$u->deleteItem(intval($vad['bt']['id']),$u->info['id'],1); // Удаляем Пустая Бутылка = 2.
$u->addItem(round(1186),$u->info['id'],'|musor=2|noremont=1|nosale=1',12, 3); // Великое зелье Стойкости 1186
mysql_query('INSERT INTO `dungeon_actions` (`uid`,`dn`,`x`,`y`,`time`,`vars`,`vals`) VALUES ( "'.$u->info['id'].'","'.$u->info['dnow'].'","'.$u->info['x'].'","'.$u->info['y'].'","'.time().'", "use_fontan","2" )'); // Выпили раз, вот и хватит с вас!
$r = 'Опустив пустую бутылку в фонтан вы наполнили её.';
$u->deleteItem(intval($vad['bt']['id']),$u->info['id'],1); // Удаляем Пустая Бутылка = 2.
$u->addItem(round(1186),$u->info['id'],'|musor=2|noremont=1|nosale=1',12, 3); // Великое зелье Стойкости 1186
}
unset($vad);
}

View File

@ -1,57 +1,57 @@
<?
if( isset($s[1]) && $s[1] == '12/fontan3' ) {
//Âñå ïåðåìåííûå ñîõðàíÿòü â ìàññèâå $vad !
//Все переменные сохранять в массиве $vad !
$vad = array(
'go' => false
);
// Òðåáóåòñÿ äîáàâèòü ïðîâåðêó Íå áîëüøå 2 èãðîêîâ èç ãðóïïû.
// Требуется добавить проверку Не больше 2 игроков из группы.
$vad['use_fontan'] = mysql_fetch_array(mysql_query('SELECT * FROM `dungeon_actions` WHERE `uid` = "'.$u->info['id'].'" AND `dn` = "'.$u->info['dnow'].'" AND `vars` = "use_fontan" AND `vals` = "3" LIMIT 1')); // Ïðîâåðêà íà èñïîëüçîâàíåå ðàíåå.
$vad['use_fontan'] = mysql_fetch_array(mysql_query('SELECT * FROM `dungeon_actions` WHERE `uid` = "'.$u->info['id'].'" AND `dn` = "'.$u->info['dnow'].'" AND `vars` = "use_fontan" AND `vals` = "3" LIMIT 1')); // Проверка на использованее ранее.
if(!isset($vad['use_fontan']['id'])) {
$vad['all_uses'] = mysql_num_rows(mysql_query('SELECT * FROM `dungeon_actions` WHERE `dn` = "'.$u->info['dnow'].'" AND `vars` = "use_fontan" AND `vals` = "3" LIMIT 5'));
if($vad['all_uses']>=2){
$r = 'Íè÷åãî íå îñòàëîñü, êòî-òî ïîáûâàë çäåñü ðàíüøå.';
$r = 'Ничего не осталось, кто-то побывал здесь раньше.';
} else {
$vad['kill_monsters'] = mysql_fetch_array(mysql_query('SELECT * FROM `dungeon_bots` WHERE ((`id_bot` = "370" && `x` = "-2" && `y` = "31") OR (`id_bot` = "374" && `x` = "-2" && `y` = "31") OR (`id_bot` = "375" && `x` = "-3" && `y` = "32") OR (`id_bot` = "375" && `x` = "-3" && `y` = "32") OR (`id_bot` = "373" && `x` = "-1" && `y` = "32") OR (`id_bot` = "373" && `x` = "-3" && `y` = "32") OR (`id_bot` = "373" && `x` = "-3" && `y` = "31")) AND `delete` = "0" AND `dn` = "'.$u->info['dnow'].'" AND `for_dn` = "0" LIMIT 10')); //Ïðîâåðÿåì óáèòà ëè ãðóïïà ìîíñòðîâ
$vad['kill_monsters'] = mysql_fetch_array(mysql_query('SELECT * FROM `dungeon_bots` WHERE ((`id_bot` = "370" && `x` = "-2" && `y` = "31") OR (`id_bot` = "374" && `x` = "-2" && `y` = "31") OR (`id_bot` = "375" && `x` = "-3" && `y` = "32") OR (`id_bot` = "375" && `x` = "-3" && `y` = "32") OR (`id_bot` = "373" && `x` = "-1" && `y` = "32") OR (`id_bot` = "373" && `x` = "-3" && `y` = "32") OR (`id_bot` = "373" && `x` = "-3" && `y` = "31")) AND `delete` = "0" AND `dn` = "'.$u->info['dnow'].'" AND `for_dn` = "0" LIMIT 10')); //Проверяем убита ли группа монстров
if( !isset($vad['kill_monsters']['0']['id2']) ) {
$vad['bt'] = mysql_fetch_array(mysql_query('SELECT * FROM `items_users` WHERE `item_id` = "2" AND `uid` = "'.$u->info['id'].'" AND `delete` = "0" AND `inOdet` = "0" AND `inShop` = "0" AND `inTransfer` = "0" LIMIT 1'));
if( isset($vad['bt']['id']) ) {
//if( $vad['bt']['inGroup'] > 0 ) {
// $r = 'Ïðåäìåò íå äîëæåí íàõîäèòüñÿ â ãðóïïå';
// $r = 'Предмет не должен находиться в группе';
//}else{
// Âûáèðàåì êàìíè
// Выбираем камни
$vad['gems']['query'] = mysql_query('SELECT `id`,`inGroup` FROM `items_users` WHERE (`item_id` = "908" OR `item_id` = "906" OR `item_id` = "907" OR `item_id` = "881" OR `item_id` = "878" OR `item_id` = "888") AND `uid` = "'.$u->info['id'].'" AND `delete` = "0" AND `inOdet` = "0" AND `inShop` = "0" AND `inTransfer` = "0" LIMIT 99');
// Âûáèðàåì ðàíäîìíûé êàìåíü èç...
// Выбираем рандомный камень из...
$vad['gems']['query'] = mysql_result($vad['gems']['query'], (rand(0, (mysql_num_rows($vad['gems']['query'])-1))),0);
if( $vad['gems']['query'] != "" ) {
$vad['go'] = true;
} else {
$r = '×òî-òî ïîøëî íå òàê, íåîáõîäèì äðàãîöåííûé êàìåíü...';
$r = 'Что-то пошло не так, необходим драгоценный камень...';
}
//}
} else {
$r = 'Ó âàñ íåò ïóñòîé áóòûëêè.';
$r = 'У вас нет пустой бутылки.';
}
} else {
$r = 'Âû óâåðåíû ÷òî óáèëè âñþ ãðóïïó ìîíñòðîâ?';
$r = 'Вы уверены что убили всю группу монстров?';
}
}
} else {
if($u->info['sex']==1)$a='à'; else $a='';
$r = 'Ìíå êàæåòñÿ, ÷òî çäåñü ÿ óæå áûë'.$a.'..';
if($u->info['sex']==1)$a='а'; else $a='';
$r = 'Мне кажется, что здесь я уже был'.$a.'..';
}
if( $vad['go'] == true ) {
mysql_query('INSERT INTO `dungeon_actions` (`uid`,`dn`,`x`,`y`,`time`,`vars`,`vals`) VALUES ( "'.$u->info['id'].'","'.$u->info['dnow'].'","'.$u->info['x'].'","'.$u->info['y'].'","'.time().'", "use_fontan","3" )'); // Âûïèëè ðàç, âîò è õâàòèò ñ âàñ!
$r = 'Îïóñòèâ ïóñòóþ áóòûëêó â ôîíòàí âû íàïîëíèëè å¸.';
mysql_query('INSERT INTO `dungeon_actions` (`uid`,`dn`,`x`,`y`,`time`,`vars`,`vals`) VALUES ( "'.$u->info['id'].'","'.$u->info['dnow'].'","'.$u->info['x'].'","'.$u->info['y'].'","'.time().'", "use_fontan","3" )'); // Выпили раз, вот и хватит с вас!
$r = 'Опустив пустую бутылку в фонтан вы наполнили её.';
mysql_query('DELETE FROM `items_users` WHERE `id` = "'.mysql_real_escape_string(intval($vad['gems']['query'])).'" LIMIT 1');
mysql_query('DELETE FROM `items_users` WHERE `id` = "'.mysql_real_escape_string(intval($vad['bt']['id'])).'" LIMIT 1');
$u->addItem(round(1188),$u->info['id'],'|musor=2|noremont=1|nosale=1',12, 3); // Âåëèêîå çåëüå Îòðèöàíèÿ 1188
$u->addItem(round(1188),$u->info['id'],'|musor=2|noremont=1|nosale=1',12, 3); // Великое зелье Отрицания 1188
}
unset($vad);
}

View File

@ -5,37 +5,37 @@ if(isset($s[1]) && $s[1] == '12/fontan4') {
if(!isset($vad['use_fontan']['id'])) {
$vad['all_uses'] = mysql_num_rows(mysql_query('SELECT * FROM `dungeon_actions` WHERE `dn` = "'.$u->info['dnow'].'" AND `vars` = "use_fontan" AND `vals` = "4" LIMIT 5'));
if($vad['all_uses'] >= 3) {
$r = 'Ничего не осталось, кто-то побывал здесь раньше.';
$r = 'Ничего не осталось, кто-то побывал здесь раньше.';
} else {
$vad['kill_monsters'] = mysql_fetch_array(mysql_query('SELECT * FROM `dungeon_bots` WHERE ((`id_bot` = "121" && `x` = "-5" && `y` = "30") OR (`id_bot` = "118" && `x` = "-6" && `y` = "30") OR (`id_bot` = "114" && `x` = "-5" && `y` = "29") OR (`id_bot` = "112" && `x` = "-7" && `y` = "29") OR (`id_bot` = "122" && `x` = "-7" && `y` = "30")) AND `delete` = "0" AND `dn` = "'.$u->info['dnow'].'" AND `for_dn` = "0" LIMIT 10'));
if(!isset($vad['kill_monsters']['id2'])) {
$vad['bottle'] = mysql_fetch_array(mysql_query('SELECT * FROM `items_users` WHERE `item_id` = "2" AND `uid` = "'.$u->info['id'].'" AND `delete` = "0" AND `inOdet` = "0" AND `inShop` = "0" AND `inTransfer` = "0" ORDER BY `id` DESC LIMIT 1'));
if(isset($vad['bottle']['id'])) {
// if($vad['bottle']['inGroup'] > 0) {
// $r = 'Пустая бутылка не должена находиться в группе...';
// $r = 'Пустая бутылка не должена находиться в группе...';
// } else {
$vad['gems']['query'] = mysql_query('SELECT `id`, `inGroup` FROM `items_users` WHERE (`item_id` = "908" OR `item_id` = "906" OR `item_id` = "907" OR `item_id` = "881" OR `item_id` = "878" OR `item_id` = "888") AND `uid` = "'.$u->info['id'].'" AND `delete` = "0" AND `inOdet` = "0" AND `inShop` = "0" AND `inTransfer` = "0" LIMIT 99');
$vad['gems']['query'] = mysql_result($vad['gems']['query'], (rand(0, (mysql_num_rows($vad['gems']['query'])-1))),0);
if($vad['gems']['query'] != '') {
$vad['go'] = true;
} else {
$r = 'У вас нет драгоценных камней...';
$r = 'У вас нет драгоценных камней...';
}
// }
} else {
$r = 'У вас нет пустой бутылки.';
$r = 'У вас нет пустой бутылки.';
}
} else {
$r = 'Вы уверены что убили всю группу монстров?';
$r = 'Вы уверены что убили всю группу монстров?';
}
}
} else {
if($u->info['sex'] == 1) { $a = 'а'; } else { $a = ''; }
$r = 'Мне кажется, что здесь я уже был'.$a.'..';
if($u->info['sex'] == 1) { $a = 'а'; } else { $a = ''; }
$r = 'Мне кажется, что здесь я уже был'.$a.'..';
}
if($vad['go'] == true) {
mysql_query('INSERT INTO `dungeon_actions` (`uid`, `dn`, `x`, `y`, `time`, `vars`, `vals`) VALUES ( "'.$u->info['id'].'", "'.$u->info['dnow'].'", "'.$u->info['x'].'", "'.$u->info['y'].'", "'.time().'", "use_fontan", "4" )');
$r = 'Опустив пустую бутылку в фонтан вы наполнили её.';
$r = 'Опустив пустую бутылку в фонтан вы наполнили её.';
$vad['drug'] = array(0 => 2588, 1 => 2590, 2 => 2589, 3 => 2145);
mysql_query('DELETE FROM `items_users` WHERE `id` = "'.mysql_real_escape_string(intval($vad['bottle']['id'])).'" LIMIT 1');
$u->addItem(round($vad['drug'][rand(0,3)]), $u->info['id'], '|musor=2|nosale=1|noremont=1', 12, 3);

View File

@ -3,7 +3,7 @@ if(isset($s[1]) && $s[1] == '12/s1') {
$vad = array('go' => true);
$vad['test1'] = mysql_fetch_array(mysql_query('SELECT COUNT(*) FROM `dungeon_actions` WHERE `vars` = "obj_act'.$obj['id'].'" AND `dn` = "'.$u->info['dnow'].'" LIMIT 1'));
if($vad['test1'][0] > 0) {
$r = 'Кто-то обыскал &quot;'.$obj['name'].'&quot; раньше вас...';
$r = 'Кто-то обыскал &quot;'.$obj['name'].'&quot; раньше вас...';
$vad['go'] = false;
}
if($vad['go'] == true) {
@ -14,7 +14,7 @@ if(isset($s[1]) && $s[1] == '12/s1') {
$vad['i'] = 0;
$vad['items'] = array(array(888, 15), array(4759, 15), array(4523, 8), array(4524, 8), array(4525, 8), array(4526, 8), array(4527, 8), array(4528, 8), array(4529, 8), array(4530, 8), array(4531, 8));
if(rand(0,100) < 50) {
$r = 'Вы ничего не нашли...';
$r = 'Вы ничего не нашли...';
} else {
while($vad['i'] < count($vad['items'])) {
$vad['j'] = $vad['items'][$vad['i']];
@ -30,10 +30,10 @@ if(isset($s[1]) && $s[1] == '12/s1') {
$vad['itm'] = $vad['items'][rand(0, count(($vad['items']))-1)];
$this->pickitem($obj, $vad['itm'][0], 0);
}
$r = 'Вы обнаружили предметы...';
$r = 'Вы обнаружили предметы...';
}
} else {
$r = 'Вы не нашли ничего полезного...';
$r = 'Вы не нашли ничего полезного...';
}
}
unset($vad);

View File

@ -1,10 +1,10 @@
<?
if( isset($s[1]) && $s[1] == '12/sunduk_01_4stage' ) {
/*
Сундук: Сундук Стража, можно найти
"Верхняя Часть Ключа Портала" - 4443
Сундук: Сундук Стража, можно найти
"Верхняя Часть Ключа Портала" - 4443
*/
//Все переменные сохранять в массиве $vad !
//Все переменные сохранять в массиве $vad !
$vad = array(
'go' => true
);
@ -12,10 +12,10 @@ if( isset($s[1]) && $s[1] == '12/sunduk_01_4stage' ) {
$vad['test1'] = mysql_fetch_array(mysql_query('SELECT COUNT(*) FROM `dungeon_actions` WHERE `vars` = "obj_act'.$obj['id'].'" AND `dn` = "'.$u->info['dnow'].'" LIMIT 5'));
$vad['test2'] = mysql_fetch_array(mysql_query('SELECT COUNT(*) FROM `dungeon_actions` WHERE `vars` = "obj_act'.$obj['id'].'" AND `dn` = "'.$u->info['dnow'].'" AND `uid` = "'.$u->info['id'].'" LIMIT 1'));
if( $vad['test2'][0] > 0 ) {
$r = 'Вы уже обыскали &quot;'.$obj['name'].'&quot;...';
$r = 'Вы уже обыскали &quot;'.$obj['name'].'&quot;...';
$vad['go'] = false;
}elseif( $vad['test1'][0] > 5 ) {
$r = 'Кто-то обыскал &quot;'.$obj['name'].'&quot; раньше вас...';
$r = 'Кто-то обыскал &quot;'.$obj['name'].'&quot; раньше вас...';
$vad['go'] = false;
}
@ -24,7 +24,7 @@ if( isset($s[1]) && $s[1] == '12/sunduk_01_4stage' ) {
$vad['items'] = $vad['items'][rand(0,count($vad['items'])-1)];
if( $vad['items'] != 0 ) {
# Выбрасываем предмет
# Выбрасываем предмет
mysql_query('INSERT INTO `dungeon_actions` (`dn`,`time`,`x`,`y`,`uid`,`vars`,`vals`) VALUES (
"'.$u->info['dnow'].'","'.time().'","'.$obj['x'].'","'.$obj['y'].'","'.$u->info['id'].'","obj_act'.$obj['id'].'",""
)');
@ -32,12 +32,12 @@ if( isset($s[1]) && $s[1] == '12/sunduk_01_4stage' ) {
$vad['dn_delete'][$vad['items']] = false;
}
if( $this->pickitem($obj,$vad['items'],$u->info['id'],'',$vad['dn_delete'][$vad['items']]) ) {
$r = 'Вы обнаружили предметы...';
$r = 'Вы обнаружили предметы...';
}else{
$r = 'Что-то пошло не так, предметы растворились...';
$r = 'Что-то пошло не так, предметы растворились...';
}
}else{
$r = 'Вы не нашли ничего полезного...';
$r = 'Вы не нашли ничего полезного...';
}
}

View File

@ -1,10 +1,10 @@
<?
if( isset($s[1]) && $s[1] == '12/sunduk_01_5stage' ) {
/*
Сундук: Потерянный сундук
Ключ от Сокровищницы - 4516
Сундук: Потерянный сундук
Ключ от Сокровищницы - 4516
*/
//Все переменные сохранять в массиве $vad !
//Все переменные сохранять в массиве $vad !
$vad = array(
'go' => true
);
@ -12,10 +12,10 @@ if( isset($s[1]) && $s[1] == '12/sunduk_01_5stage' ) {
$vad['test1'] = mysql_fetch_array(mysql_query('SELECT COUNT(*) FROM `dungeon_actions` WHERE `vars` = "obj_act'.$obj['id'].'" AND `dn` = "'.$u->info['dnow'].'" LIMIT 5'));
$vad['test2'] = mysql_fetch_array(mysql_query('SELECT COUNT(*) FROM `dungeon_actions` WHERE `vars` = "obj_act'.$obj['id'].'" AND `dn` = "'.$u->info['dnow'].'" AND `uid` = "'.$u->info['id'].'" LIMIT 1'));
if( $vad['test2'][0] > 0 ) {
$r = 'Вы уже обыскали &quot;'.$obj['name'].'&quot;...';
$r = 'Вы уже обыскали &quot;'.$obj['name'].'&quot;...';
$vad['go'] = false;
}elseif( $vad['test1'][0] > 5 ) {
$r = 'Кто-то обыскал &quot;'.$obj['name'].'&quot; раньше вас...';
$r = 'Кто-то обыскал &quot;'.$obj['name'].'&quot; раньше вас...';
$vad['go'] = false;
}
@ -24,17 +24,17 @@ if( isset($s[1]) && $s[1] == '12/sunduk_01_5stage' ) {
$vad['items'] = $vad['items'][rand(0,count($vad['items'])-1)];
if( $vad['items'] != 0 ) {
# Выбрасываем предмет
# Выбрасываем предмет
mysql_query('INSERT INTO `dungeon_actions` (`dn`,`time`,`x`,`y`,`uid`,`vars`,`vals`) VALUES (
"'.$u->info['dnow'].'","'.time().'","'.$obj['x'].'","'.$obj['y'].'","'.$u->info['id'].'","obj_act'.$obj['id'].'",""
)');
if( $this->pickitem($obj,$vad['items'],$u->info['id'],'', true) ) {
$r = 'Вы обнаружили предметы...';
$r = 'Вы обнаружили предметы...';
}else{
$r = 'Что-то пошло не так, предметы растворились...';
$r = 'Что-то пошло не так, предметы растворились...';
}
}else{
$r = 'Вы не нашли ничего полезного...';
$r = 'Вы не нашли ничего полезного...';
}
}

View File

@ -1,10 +1,10 @@
<?
if( isset($s[1]) && $s[1] == '12/sunduk_02_4stage' ) {
/*
Сундук: Сундук Стража, можно найти
Правая Часть Ключа Портала - 4444
Сундук: Сундук Стража, можно найти
Правая Часть Ключа Портала - 4444
*/
//Все переменные сохранять в массиве $vad !
//Все переменные сохранять в массиве $vad !
$vad = array(
'go' => true
);
@ -12,10 +12,10 @@ if( isset($s[1]) && $s[1] == '12/sunduk_02_4stage' ) {
$vad['test1'] = mysql_fetch_array(mysql_query('SELECT COUNT(*) FROM `dungeon_actions` WHERE `vars` = "obj_act'.$obj['id'].'" AND `dn` = "'.$u->info['dnow'].'" LIMIT 5'));
$vad['test2'] = mysql_fetch_array(mysql_query('SELECT COUNT(*) FROM `dungeon_actions` WHERE `vars` = "obj_act'.$obj['id'].'" AND `dn` = "'.$u->info['dnow'].'" AND `uid` = "'.$u->info['id'].'" LIMIT 1'));
if( $vad['test2'][0] > 0 ) {
$r = 'Вы уже обыскали &quot;'.$obj['name'].'&quot;...';
$r = 'Вы уже обыскали &quot;'.$obj['name'].'&quot;...';
$vad['go'] = false;
}elseif( $vad['test1'][0] > 5 ) {
$r = 'Кто-то обыскал &quot;'.$obj['name'].'&quot; раньше вас...';
$r = 'Кто-то обыскал &quot;'.$obj['name'].'&quot; раньше вас...';
$vad['go'] = false;
}
@ -24,7 +24,7 @@ if( isset($s[1]) && $s[1] == '12/sunduk_02_4stage' ) {
$vad['items'] = $vad['items'][rand(0,count($vad['items'])-1)];
if( $vad['items'] != 0 ) {
# Выбрасываем предмет
# Выбрасываем предмет
mysql_query('INSERT INTO `dungeon_actions` (`dn`,`time`,`x`,`y`,`uid`,`vars`,`vals`) VALUES (
"'.$u->info['dnow'].'","'.time().'","'.$obj['x'].'","'.$obj['y'].'","'.$u->info['id'].'","obj_act'.$obj['id'].'",""
)');
@ -32,12 +32,12 @@ if( isset($s[1]) && $s[1] == '12/sunduk_02_4stage' ) {
$vad['dn_delete'][$vad['items']] = false;
}
if( $this->pickitem($obj,$vad['items'],$u->info['id'],'',$vad['dn_delete'][$vad['items']]) ) {
$r = 'Вы обнаружили предметы...';
$r = 'Вы обнаружили предметы...';
}else{
$r = 'Что-то пошло не так, предметы растворились...';
$r = 'Что-то пошло не так, предметы растворились...';
}
}else{
$r = 'Вы не нашли ничего полезного...';
$r = 'Вы не нашли ничего полезного...';
}
}

View File

@ -1,10 +1,10 @@
<?
if( isset($s[1]) && $s[1] == '12/sunduk_03_4stage' ) {
/*
Сундук: Сундук Стража, можно найти
Левая Часть Ключа Портала - 4445
Сундук: Сундук Стража, можно найти
Левая Часть Ключа Портала - 4445
*/
//Все переменные сохранять в массиве $vad !
//Все переменные сохранять в массиве $vad !
$vad = array(
'go' => true
);
@ -12,10 +12,10 @@ if( isset($s[1]) && $s[1] == '12/sunduk_03_4stage' ) {
$vad['test1'] = mysql_fetch_array(mysql_query('SELECT COUNT(*) FROM `dungeon_actions` WHERE `vars` = "obj_act'.$obj['id'].'" AND `dn` = "'.$u->info['dnow'].'" LIMIT 5'));
$vad['test2'] = mysql_fetch_array(mysql_query('SELECT COUNT(*) FROM `dungeon_actions` WHERE `vars` = "obj_act'.$obj['id'].'" AND `dn` = "'.$u->info['dnow'].'" AND `uid` = "'.$u->info['id'].'" LIMIT 1'));
if( $vad['test2'][0] > 0 ) {
$r = 'Вы уже обыскали &quot;'.$obj['name'].'&quot;...';
$r = 'Вы уже обыскали &quot;'.$obj['name'].'&quot;...';
$vad['go'] = false;
}elseif( $vad['test1'][0] > 5 ) {
$r = 'Кто-то обыскал &quot;'.$obj['name'].'&quot; раньше вас...';
$r = 'Кто-то обыскал &quot;'.$obj['name'].'&quot; раньше вас...';
$vad['go'] = false;
}
@ -24,7 +24,7 @@ if( isset($s[1]) && $s[1] == '12/sunduk_03_4stage' ) {
$vad['items'] = $vad['items'][rand(0,count($vad['items'])-1)];
if( $vad['items'] != 0 ) {
# Выбрасываем предмет
# Выбрасываем предмет
mysql_query('INSERT INTO `dungeon_actions` (`dn`,`time`,`x`,`y`,`uid`,`vars`,`vals`) VALUES (
"'.$u->info['dnow'].'","'.time().'","'.$obj['x'].'","'.$obj['y'].'","'.$u->info['id'].'","obj_act'.$obj['id'].'",""
)');
@ -32,12 +32,12 @@ if( isset($s[1]) && $s[1] == '12/sunduk_03_4stage' ) {
$vad['dn_delete'][$vad['items']] = false;
}
if( $this->pickitem($obj,$vad['items'],$u->info['id'],'',$vad['dn_delete'][$vad['items']]) ) {
$r = 'Вы обнаружили предметы...';
$r = 'Вы обнаружили предметы...';
}else{
$r = 'Что-то пошло не так, предметы растворились...';
$r = 'Что-то пошло не так, предметы растворились...';
}
}else{
$r = 'Вы не нашли ничего полезного...';
$r = 'Вы не нашли ничего полезного...';
}
}

View File

@ -1,14 +1,14 @@
<?
if( isset($s[1]) && $s[1] == '12/sunduk_04_4stage' ) {
/*
Сундук: Потерянный сундук, можно найти ключ портала
# Тактики
Сундук: Потерянный сундук, можно найти ключ портала
# Тактики
# `id` IN ('4243', '4244', '4245', '4246', '4247', '4248', '4249', '4250', '4251', '4252', '4253', '4254', '4255', '4256', '4257', '4258', '4259', '4260', '4261', '4262', '4263', '4264', '4265', '4266', '4267')
# Элики 15%
# Элики 15%
#'4514', '4515')
*/
//Все переменные сохранять в массиве $vad !
//Все переменные сохранять в массиве $vad !
$vad = array(
'go' => true
);
@ -16,35 +16,35 @@ if( isset($s[1]) && $s[1] == '12/sunduk_04_4stage' ) {
$vad['test1'] = mysql_fetch_array(mysql_query('SELECT COUNT(*) FROM `dungeon_actions` WHERE `vars` = "obj_act'.$obj['id'].'" AND `dn` = "'.$u->info['dnow'].'" LIMIT 1'));
$vad['test2'] = mysql_fetch_array(mysql_query('SELECT COUNT(*) FROM `dungeon_actions` WHERE `vars` = "obj_act'.$obj['id'].'" AND `dn` = "'.$u->info['dnow'].'" AND `uid` = "'.$u->info['id'].'" LIMIT 1'));
if( $vad['test2'][0] > 0 ) {
$r = 'Вы уже обыскали &quot;'.$obj['name'].'&quot;...';
$r = 'Вы уже обыскали &quot;'.$obj['name'].'&quot;...';
$vad['go'] = false;
}elseif( $vad['test1'][0] > 0 ) {
$r = 'Кто-то обыскал &quot;'.$obj['name'].'&quot; раньше вас...';
$r = 'Кто-то обыскал &quot;'.$obj['name'].'&quot; раньше вас...';
$vad['go'] = false;
}
if( $vad['go'] == true ) {
if(rand(0,100) > 85){ # Элики
if(rand(0,100) > 85){ # Элики
$vad['items'] = array(4514,4515);
} else{ # Тактики
} else{ # Тактики
$vad['repcent'] = rand(0,100);
if( $vad['repcent'] <= 60 ) { # Тактики [1,2] 60%
if( $vad['repcent'] <= 60 ) { # Тактики [1,2] 60%
$vad['items'] = array(4243, 4244, 4248, 4249, 4253, 4254, 4258, 4259, 4263, 4264);
} elseif( $vad['repcent'] > 60 AND $vad['repcent'] <= 83 ) {# Тактики [3] 23%
} elseif( $vad['repcent'] > 60 AND $vad['repcent'] <= 83 ) {# Тактики [3] 23%
$vad['items'] = array(4245, 4250, 4255, 4260, 4265);
} elseif( $vad['repcent'] > 83 AND $vad['repcent'] <= 95 ) {# Тактики [4] 12%
} elseif( $vad['repcent'] > 83 AND $vad['repcent'] <= 95 ) {# Тактики [4] 12%
$vad['items'] = array(4246, 4251, 4256, 4261, 4266);
}elseif( $vad['repcent'] > 95 ) { # Тактики [5] 5%
}elseif( $vad['repcent'] > 95 ) { # Тактики [5] 5%
$vad['items'] = array(4247, 4252, 4257, 4262, 4267);
}
if($vad['repcent'] < 87){ # Элики
if($vad['repcent'] < 87){ # Элики
$vad['items'] = array_merge(array(4514,4515), $vad['items']);
}
}
$vad['items'] = $vad['items'][rand(0,count($vad['items'])-1)];
if( $vad['items'] != 0 ) {
//Выбрасываем предмет
//Выбрасываем предмет
mysql_query('INSERT INTO `dungeon_actions` (`dn`,`time`,`x`,`y`,`uid`,`vars`,`vals`) VALUES (
"'.$u->info['dnow'].'","'.time().'","'.$obj['x'].'","'.$obj['y'].'","'.$u->info['id'].'","obj_act'.$obj['id'].'",""
)');
@ -52,12 +52,12 @@ if( isset($s[1]) && $s[1] == '12/sunduk_04_4stage' ) {
$vad['dn_delete'][$vad['items']] = false;
}
if( $this->pickitem($obj,$vad['items'],$u->info['id'],'',$vad['dn_delete'][$vad['items']]) ) {
$r = 'Вы обнаружили предметы...';
$r = 'Вы обнаружили предметы...';
}else{
$r = 'Что-то пошло не так, предметы растворились...';
$r = 'Что-то пошло не так, предметы растворились...';
}
}else{
$r = 'Вы не нашли ничего полезного...';
$r = 'Вы не нашли ничего полезного...';
}
}

View File

@ -1,10 +1,10 @@
<?
if( isset($s[1]) && $s[1] == '12/sunduk_11_5stage' ) {
/*
Сундук: Сундук Стража, можно найти
"Первая часть руны" - 4517
Сундук: Сундук Стража, можно найти
"Первая часть руны" - 4517
*/
//Все переменные сохранять в массиве $vad !
//Все переменные сохранять в массиве $vad !
$vad = array(
'go' => true
);
@ -12,10 +12,10 @@ if( isset($s[1]) && $s[1] == '12/sunduk_11_5stage' ) {
$vad['test1'] = mysql_fetch_array(mysql_query('SELECT COUNT(*) FROM `dungeon_actions` WHERE `vars` = "obj_act'.$obj['id'].'" AND `dn` = "'.$u->info['dnow'].'" LIMIT 5'));
$vad['test2'] = mysql_fetch_array(mysql_query('SELECT COUNT(*) FROM `dungeon_actions` WHERE `vars` = "obj_act'.$obj['id'].'" AND `dn` = "'.$u->info['dnow'].'" AND `uid` = "'.$u->info['id'].'" LIMIT 1'));
if( $vad['test2'][0] > 0 ) {
$r = 'Вы уже обыскали &quot;'.$obj['name'].'&quot;...';
$r = 'Вы уже обыскали &quot;'.$obj['name'].'&quot;...';
$vad['go'] = false;
} elseif( $vad['test1'][0] > 5 ) {
$r = 'Кто-то обыскал &quot;'.$obj['name'].'&quot; раньше вас...';
$r = 'Кто-то обыскал &quot;'.$obj['name'].'&quot; раньше вас...';
$vad['go'] = false;
}
@ -24,17 +24,17 @@ if( isset($s[1]) && $s[1] == '12/sunduk_11_5stage' ) {
$vad['items'] = $vad['items'][rand(0,count($vad['items'])-1)];
if( $vad['items'] != 0 ) {
# Выбрасываем предмет
# Выбрасываем предмет
mysql_query('INSERT INTO `dungeon_actions` (`dn`,`time`,`x`,`y`,`uid`,`vars`,`vals`) VALUES (
"'.$u->info['dnow'].'","'.time().'","'.$obj['x'].'","'.$obj['y'].'","'.$u->info['id'].'","obj_act'.$obj['id'].'",""
)');
if( $this->pickitem($obj,$vad['items'],$u->info['id'],'', true) ) {
$r = 'Вы обнаружили предметы...';
$r = 'Вы обнаружили предметы...';
}else{
$r = 'Что-то пошло не так, предметы растворились...';
$r = 'Что-то пошло не так, предметы растворились...';
}
}else{
$r = 'Вы не нашли ничего полезного...';
$r = 'Вы не нашли ничего полезного...';
}
}

View File

@ -1,10 +1,10 @@
<?
if( isset($s[1]) && $s[1] == '12/sunduk_12_5stage' ) {
/*
Сундук: Сундук Стража, можно найти
"Вторая часть руны" - 4518
Сундук: Сундук Стража, можно найти
"Вторая часть руны" - 4518
*/
//Все переменные сохранять в массиве $vad !
//Все переменные сохранять в массиве $vad !
$vad = array(
'go' => true
);
@ -12,10 +12,10 @@ if( isset($s[1]) && $s[1] == '12/sunduk_12_5stage' ) {
$vad['test1'] = mysql_fetch_array(mysql_query('SELECT COUNT(*) FROM `dungeon_actions` WHERE `vars` = "obj_act'.$obj['id'].'" AND `dn` = "'.$u->info['dnow'].'" LIMIT 5'));
$vad['test2'] = mysql_fetch_array(mysql_query('SELECT COUNT(*) FROM `dungeon_actions` WHERE `vars` = "obj_act'.$obj['id'].'" AND `dn` = "'.$u->info['dnow'].'" AND `uid` = "'.$u->info['id'].'" LIMIT 1'));
if( $vad['test2'][0] > 0 ) {
$r = 'Вы уже обыскали &quot;'.$obj['name'].'&quot;...';
$r = 'Вы уже обыскали &quot;'.$obj['name'].'&quot;...';
$vad['go'] = false;
}elseif( $vad['test1'][0] > 5 ) {
$r = 'Кто-то обыскал &quot;'.$obj['name'].'&quot; раньше вас...';
$r = 'Кто-то обыскал &quot;'.$obj['name'].'&quot; раньше вас...';
$vad['go'] = false;
}
@ -24,7 +24,7 @@ if( isset($s[1]) && $s[1] == '12/sunduk_12_5stage' ) {
$vad['items'] = $vad['items'][rand(0,count($vad['items'])-1)];
if( $vad['items'] != 0 ) {
# Выбрасываем предмет
# Выбрасываем предмет
mysql_query('INSERT INTO `dungeon_actions` (`dn`,`time`,`x`,`y`,`uid`,`vars`,`vals`) VALUES (
"'.$u->info['dnow'].'","'.time().'","'.$obj['x'].'","'.$obj['y'].'","'.$u->info['id'].'","obj_act'.$obj['id'].'",""
)');
@ -32,12 +32,12 @@ if( isset($s[1]) && $s[1] == '12/sunduk_12_5stage' ) {
$vad['dn_delete'][$vad['items']] = false;
}
if( $this->pickitem($obj,$vad['items'],$u->info['id'],'', true) ) {
$r = 'Вы обнаружили предметы...';
$r = 'Вы обнаружили предметы...';
}else{
$r = 'Что-то пошло не так, предметы растворились...';
$r = 'Что-то пошло не так, предметы растворились...';
}
}else{
$r = 'Вы не нашли ничего полезного...';
$r = 'Вы не нашли ничего полезного...';
}
}

View File

@ -1,10 +1,10 @@
<?
if( isset($s[1]) && $s[1] == '12/sunduk_13_5stage' ) {
/*
Сундук: Сундук Стража, можно найти
"Третья часть руны" - 4519
Сундук: Сундук Стража, можно найти
"Третья часть руны" - 4519
*/
//Все переменные сохранять в массиве $vad !
//Все переменные сохранять в массиве $vad !
$vad = array(
'go' => true
);
@ -12,10 +12,10 @@ if( isset($s[1]) && $s[1] == '12/sunduk_13_5stage' ) {
$vad['test1'] = mysql_fetch_array(mysql_query('SELECT COUNT(*) FROM `dungeon_actions` WHERE `vars` = "obj_act'.$obj['id'].'" AND `dn` = "'.$u->info['dnow'].'" LIMIT 5'));
$vad['test2'] = mysql_fetch_array(mysql_query('SELECT COUNT(*) FROM `dungeon_actions` WHERE `vars` = "obj_act'.$obj['id'].'" AND `dn` = "'.$u->info['dnow'].'" AND `uid` = "'.$u->info['id'].'" LIMIT 1'));
if( $vad['test2'][0] > 0 ) {
$r = 'Вы уже обыскали &quot;'.$obj['name'].'&quot;...';
$r = 'Вы уже обыскали &quot;'.$obj['name'].'&quot;...';
$vad['go'] = false;
}elseif( $vad['test1'][0] > 5 ) {
$r = 'Кто-то обыскал &quot;'.$obj['name'].'&quot; раньше вас...';
$r = 'Кто-то обыскал &quot;'.$obj['name'].'&quot; раньше вас...';
$vad['go'] = false;
}
@ -24,17 +24,17 @@ if( isset($s[1]) && $s[1] == '12/sunduk_13_5stage' ) {
$vad['items'] = $vad['items'][rand(0,count($vad['items'])-1)];
if( $vad['items'] != 0 ) {
# Выбрасываем предмет
# Выбрасываем предмет
mysql_query('INSERT INTO `dungeon_actions` (`dn`,`time`,`x`,`y`,`uid`,`vars`,`vals`) VALUES (
"'.$u->info['dnow'].'","'.time().'","'.$obj['x'].'","'.$obj['y'].'","'.$u->info['id'].'","obj_act'.$obj['id'].'",""
)');
if( $this->pickitem($obj,$vad['items'],$u->info['id'],'',true) ) {
$r = 'Вы обнаружили предметы...';
$r = 'Вы обнаружили предметы...';
}else{
$r = 'Что-то пошло не так, предметы растворились...';
$r = 'Что-то пошло не так, предметы растворились...';
}
}else{
$r = 'Вы не нашли ничего полезного...';
$r = 'Вы не нашли ничего полезного...';
}
}

View File

@ -1,10 +1,10 @@
<?
if( isset($s[1]) && $s[1] == '12/sunduk_14_5stage' ) {
/*
Сундук: Сундук Стража, можно найти
"Четвертая часть руны" - 4520
Сундук: Сундук Стража, можно найти
"Четвертая часть руны" - 4520
*/
//Все переменные сохранять в массиве $vad !
//Все переменные сохранять в массиве $vad !
$vad = array(
'go' => true
);
@ -12,10 +12,10 @@ if( isset($s[1]) && $s[1] == '12/sunduk_14_5stage' ) {
$vad['test1'] = mysql_fetch_array(mysql_query('SELECT COUNT(*) FROM `dungeon_actions` WHERE `vars` = "obj_act'.$obj['id'].'" AND `dn` = "'.$u->info['dnow'].'" LIMIT 5'));
$vad['test2'] = mysql_fetch_array(mysql_query('SELECT COUNT(*) FROM `dungeon_actions` WHERE `vars` = "obj_act'.$obj['id'].'" AND `dn` = "'.$u->info['dnow'].'" AND `uid` = "'.$u->info['id'].'" LIMIT 1'));
if( $vad['test2'][0] > 0 ) {
$r = 'Вы уже обыскали &quot;'.$obj['name'].'&quot;...';
$r = 'Вы уже обыскали &quot;'.$obj['name'].'&quot;...';
$vad['go'] = false;
}elseif( $vad['test1'][0] > 5 ) {
$r = 'Кто-то обыскал &quot;'.$obj['name'].'&quot; раньше вас...';
$r = 'Кто-то обыскал &quot;'.$obj['name'].'&quot; раньше вас...';
$vad['go'] = false;
}
@ -24,17 +24,17 @@ if( isset($s[1]) && $s[1] == '12/sunduk_14_5stage' ) {
$vad['items'] = $vad['items'][rand(0,count($vad['items'])-1)];
if( $vad['items'] != 0 ) {
# Выбрасываем предмет
# Выбрасываем предмет
mysql_query('INSERT INTO `dungeon_actions` (`dn`,`time`,`x`,`y`,`uid`,`vars`,`vals`) VALUES (
"'.$u->info['dnow'].'","'.time().'","'.$obj['x'].'","'.$obj['y'].'","'.$u->info['id'].'","obj_act'.$obj['id'].'",""
)');
if( $this->pickitem($obj,$vad['items'],$u->info['id'],'',true) ) {
$r = 'Вы обнаружили предметы...';
$r = 'Вы обнаружили предметы...';
}else{
$r = 'Что-то пошло не так, предметы растворились...';
$r = 'Что-то пошло не так, предметы растворились...';
}
}else{
$r = 'Вы не нашли ничего полезного...';
$r = 'Вы не нашли ничего полезного...';
}
}

View File

@ -1,10 +1,10 @@
<?
if( isset($s[1]) && $s[1] == '12/sunduk_15_5stage' ) {
/*
Сундук: Сундук Стража, можно найти
"Пятая часть руны" - 4521
Сундук: Сундук Стража, можно найти
"Пятая часть руны" - 4521
*/
//Все переменные сохранять в массиве $vad !
//Все переменные сохранять в массиве $vad !
$vad = array(
'go' => true
);
@ -12,10 +12,10 @@ if( isset($s[1]) && $s[1] == '12/sunduk_15_5stage' ) {
$vad['test1'] = mysql_fetch_array(mysql_query('SELECT COUNT(*) FROM `dungeon_actions` WHERE `vars` = "obj_act'.$obj['id'].'" AND `dn` = "'.$u->info['dnow'].'" LIMIT 5'));
$vad['test2'] = mysql_fetch_array(mysql_query('SELECT COUNT(*) FROM `dungeon_actions` WHERE `vars` = "obj_act'.$obj['id'].'" AND `dn` = "'.$u->info['dnow'].'" AND `uid` = "'.$u->info['id'].'" LIMIT 1'));
if( $vad['test2'][0] > 0 ) {
$r = 'Вы уже обыскали &quot;'.$obj['name'].'&quot;...';
$r = 'Вы уже обыскали &quot;'.$obj['name'].'&quot;...';
$vad['go'] = false;
}elseif( $vad['test1'][0] > 5 ) {
$r = 'Кто-то обыскал &quot;'.$obj['name'].'&quot; раньше вас...';
$r = 'Кто-то обыскал &quot;'.$obj['name'].'&quot; раньше вас...';
$vad['go'] = false;
}
@ -24,17 +24,17 @@ if( isset($s[1]) && $s[1] == '12/sunduk_15_5stage' ) {
$vad['items'] = $vad['items'][rand(0,count($vad['items'])-1)];
if( $vad['items'] != 0 ) {
# Выбрасываем предмет
# Выбрасываем предмет
mysql_query('INSERT INTO `dungeon_actions` (`dn`,`time`,`x`,`y`,`uid`,`vars`,`vals`) VALUES (
"'.$u->info['dnow'].'","'.time().'","'.$obj['x'].'","'.$obj['y'].'","'.$u->info['id'].'","obj_act'.$obj['id'].'",""
)');
if($this->pickitem($obj, $vad['items'], $u->info['id'], '', true)) {
$r = 'Вы обнаружили предметы...';
$r = 'Вы обнаружили предметы...';
}else{
$r = 'Что-то пошло не так, предметы растворились...';
$r = 'Что-то пошло не так, предметы растворились...';
}
}else{
$r = 'Вы не нашли ничего полезного...';
$r = 'Вы не нашли ничего полезного...';
}
}

View File

@ -1,25 +1,25 @@
<?
if( isset($s[1]) && $s[1] == '15/shaiba' ) {
/*
Сундук: Сундук Стража, можно найти
"Верхняя Часть Ключа Портала" - 4443
Сундук: Сундук Стража, можно найти
"Верхняя Часть Ключа Портала" - 4443
*/
//Все переменные сохранять в массиве $vad !
//Все переменные сохранять в массиве $vad !
$vad = array(
'go' => true
);
$r = 'Шайба у вас! Забейте её в ворота противника!';
$r = 'Шайба у вас! Забейте её в ворота противника!';
//Удаляем шайбу
//Удаляем шайбу
mysql_query('DELETE FROM `dungeon_obj` WHERE `id` = "'.$obj['id'].'" LIMIT 1');
//Добавляем шайбу в инвентарь игрока
//Добавляем шайбу в инвентарь игрока
$vad['itm'] = $u->addItem(4910,$u->info['id']);
if($vad['itm'] > 0) {
mysql_query('UPDATE `items_users` SET `gift` = "Шайба" WHERE `id` = "'.$vad['itm'].'" LIMIT 1');
mysql_query('UPDATE `items_users` SET `gift` = "Шайба" WHERE `id` = "'.$vad['itm'].'" LIMIT 1');
}
$this->sys_chat('<b>'.$u->info['login'].'</b> перехватил Шайбу!');
$this->sys_chat('<b>'.$u->info['login'].'</b> перехватил Шайбу!');
unset($vad);
}

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