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 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> <IfModule mod_rewrite.c>
#Options +FollowSymLinks -MultiViews #Options +FollowSymLinks -MultiViews
@ -24,15 +16,6 @@ RewriteCond %{HTTP:HTTP_PC_REMOTE_ADDR} !^$ [OR]
RewriteCond %{HTTP:HTTP_CLIENT_IP} !^$ RewriteCond %{HTTP:HTTP_CLIENT_IP} !^$
RewriteRule (.+) https://new-combats.com/proxy/ 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 RewriteCond %{SERVER_PORT} 80
RewriteRule ^(.*)$ https://new-combats.com/$1 [R,L] 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 [L]
RewriteRule ^rating_clans/(.*)/?$ /reting_clans.php?$1 [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?$1 [L]
RewriteRule ^clan/?$ /clans_inf.php [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?$1 [L]
RewriteRule ^exp/?$ /exp.php [L] RewriteRule ^exp/?$ /exp.php [L]
#
#
RewriteRule ^news/(.*)/?$ /n/$1 [R=301,L] RewriteRule ^news/(.*)/?$ /n/$1 [R=301,L]
RewriteRule ^news/?$ /n [R=301,L] RewriteRule ^news/?$ /n [R=301,L]
RewriteRule ^n/(.*)/?$ /news_script/index.php?$1 [L] RewriteRule ^n/(.*)/?$ /news_script/index.php?$1 [L]
RewriteRule ^n/?$ /news_script/index.php [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?$1 [L]
RewriteRule ^forum/?$ /forum_script/index.php [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?$1 [L]
RewriteRule ^item/?$ /items_info.php [L] RewriteRule ^item/?$ /items_info.php [L]
RewriteRule ^repass/?$ /repass.php [L] RewriteRule ^repass/?$ /repass.php [L]
#
#
#
#
RewriteRule ^mail/(.*)/?$ /mailconf.php?$1 [L] RewriteRule ^mail/(.*)/?$ /mailconf.php?$1 [L]
RewriteRule ^register/?$ /register.php [L] RewriteRule ^register/?$ /register.php [L]
@ -126,4 +97,3 @@ RewriteRule . /index.php [L]
Order Allow,Deny Order Allow,Deny
Allow from all Allow from all

1
1
View File

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

16
AI.php
View File

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

View File

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

View File

@ -26,6 +26,7 @@ spl_autoload_register(function (string $classname) {
$classMap = [ $classMap = [
'NewCombats' => __DIR__ . '/class/', 'NewCombats' => __DIR__ . '/class/',
'Insallah' => __DIR__ . '/class/Insallah/', 'Insallah' => __DIR__ . '/class/Insallah/',
'DarksLight2' => __DIR__ . '/class/DarksLight2/',
]; ];
$parts = explode('\\', $classname); $parts = explode('\\', $classname);
$namespace = array_shift($parts); $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() static function battle_priems()
{ {
//используем приемы в бою //используем приемы в бою
if (self::$st['hpNow'] > 0 && self::$bot['battle'] > 0) { if (self::$st['hpNow'] > 0 && self::$bot['battle'] > 0) {
$pr = explode('|', self::$bot['priems']); $pr = explode('|', self::$bot['priems']);
@ -36,7 +36,7 @@ class BotLogic
$i = 0; $i = 0;
while ($i < count($pr)) { while ($i < count($pr)) {
if ($rz[$i] < 1 && $pr[$i] > 0) { if ($rz[$i] < 1 && $pr[$i] > 0) {
//Можно использовать прием, подключаем логику //Можно использовать прием, подключаем логику
BotPriemLogic::start($i, $pr[$i]); BotPriemLogic::start($i, $pr[$i]);
} }
$i++; $i++;
@ -48,15 +48,15 @@ class BotLogic
static function clear_bot() static function clear_bot()
{ {
//Очистка бота, обнуляем его до [0], удаляем эффекты, предметы и т.д, а текущему ставим логин delete //Очистка бота, обнуляем его до [0], удаляем эффекты, предметы и т.д, а текущему ставим логин delete
//Удаляем сообщения в чате //Удаляем сообщения в чате
mysql_query('DELETE FROM `chat` WHERE `to` = "' . self::$bot['login'] . '"'); 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 `items_users` WHERE `uid` = "' . self::$bot['id'] . '"');
mysql_query('DELETE FROM `eff_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 `users` WHERE `id` = "' . self::$bot['id'] . '" LIMIT 1');
mysql_query('DELETE FROM `stats` 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'); 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') static function test_fr($id, $city = 'capitalcity')
{ {
return $city != 'capitalcity' || $id == 0 || $id == 2 || $id == 4 || $id == 5 || $id == 7 || $id == 377; return $city != 'capitalcity' || $id == 0 || $id == 2 || $id == 4 || $id == 5 || $id == 7 || $id == 377;
} }
//Действия бота вне боя //Действия бота вне боя
static function actions() static function actions()
{ {
@ -94,9 +94,9 @@ class BotLogic
if (self::$bot['battle'] == 0 && self::$bot['zv'] == 0 && self::$bot['pass'] == 'saintlucia') { 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']) { if (true == false && self::$bot['a1'] != 0 && self::$bot['a1'] != self::$bot['room']) {
self::_loc(self::$bot['a1']); 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'); 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) { 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')); $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'])) { if (!isset($cr['id'])) {
//Покупаем кристалл //Покупаем кристалл
$u->addItem(1204, self::$bot['id']); $u->addItem(1204, self::$bot['id']);
} }
} }
//Переходим в комнату для сражений //Переходим в комнату для сражений
self::_loc(self::_loc_zv()); self::_loc(self::_loc_zv());
} }
} }
//Если бот уже набрал опыт для перехода на 6-ой //Если бот уже набрал опыт для перехода на 6-ой
if (self::$bot['level'] == 5 && self::$bot['exp'] >= 12499) { 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')); $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'])) { if (!isset($cr['id'])) {
@ -139,12 +139,12 @@ class BotLogic
} }
} }
//Похоже что боту пора сменить комплект )) //Похоже что боту пора сменить комплект ))
if (self::$bot['clss'] == 0) { if (self::$bot['clss'] == 0) {
//Выбираем новый класс и шмотки :) //Выбираем новый класс и шмотки :)
//Меняем класс //Меняем класс
self::$bot['clss'] = rand(1, 4); self::$bot['clss'] = rand(1, 4);
$x = mysql_fetch_array(mysql_query('SELECT COUNT(*) FROM `a_bot_tree` WHERE `level` = "' . (self::$bot['level']) . '" ')); $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) { if ($x[0] > 1) {
$x = rand(1, $x[0]); $x = rand(1, $x[0]);
//выбираем 1 из нескольких //выбираем 1 из нескольких
$da = ['ASC', 'DESC', 'DESC', 'ASC']; $da = ['ASC', 'DESC', 'DESC', 'ASC'];
$da = $da[rand(0, 5)]; $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')); $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 `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 `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 `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"'); mysql_query('UPDATE `eff_users` SET `delete` = "' . time() . '" WHERE `uid` = "' . self::$bot['id'] . '" AND `delete` = "0"');
/* Обновляем статы и приемы */ /* Обновляем статы и приемы */
if ($com['pr'] == '') { if ($com['pr'] == '') {
$i = 1; $i = 1;
@ -193,7 +193,7 @@ class BotLogic
$i = 1; $i = 1;
while ($i <= 20) { while ($i <= 20) {
if ($com['e' . $i] > 0) { if ($com['e' . $i] > 0) {
//Выдаем и надеваем предмет //Выдаем и надеваем предмет
//$it = $u->addItem($com['e'.$i],self::$bot['id']); //$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')); $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'] . '")'); 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; $i = 1;
while ($i <= 20) { while ($i <= 20) {
if ($com['w' . $i] > 0) { if ($com['w' . $i] > 0) {
//Выдаем и надеваем предмет //Выдаем и надеваем предмет
$it = $u->addItem($com['w' . $i], self::$bot['id']); $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')); $eff1 = mysql_fetch_array(mysql_query('SELECT * FROM `items_shop` WHERE `item_id` = "' . $com['w' . $i] . '" LIMIT 1'));
if ($it > 0) { 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) { if (self::$bot['city'] == 'capitalcity' && self::$bot['level'] < 2 && self::$bot['room'] == 0 && self::$bot['a1'] == 0) {
self::_loc(self::_loc_zv()); self::_loc(self::_loc_zv());
} }
@ -226,7 +226,7 @@ class BotLogic
public $bot_last_action = []; public $bot_last_action = [];
//Включаем логику бота //Включаем логику бота
static function start($id) static function start($id)
{ {
if (!isset($bot_last_action[$id])) { if (!isset($bot_last_action[$id])) {
@ -238,12 +238,12 @@ class BotLogic
self::$st = $u->getStats(self::$bot, 0); self::$st = $u->getStats(self::$bot, 0);
//Заходим ботом в онлайн //Заходим ботом в онлайн
self::_online(); self::_online();
if (self::$bot['battle'] > 0) { 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')); 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'])) { 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')); $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(); self::battle_priems();
//Бот сделал удар, но никто не ответил, проверяем таймаут и если что заходим //Бот сделал удар, но никто не ответил, проверяем таймаут и если что заходим
if (isset($a1['id']) && $a1['time'] + self::$btl['timeout'] < time()) { if (isset($a1['id']) && $a1['time'] + self::$btl['timeout'] < time()) {
$go_bot = true; $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')); $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'])) { if (isset($a2['uid1'])) {
mysql_query('UPDATE `stats` SET `enemy` = "' . $a2['uid1'] . '" WHERE `id` = "' . self::$bot['id'] . '" LIMIT 1'); 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'])) { if (isset($a3['uid2'])) {
mysql_query('UPDATE `stats` SET `enemy` = "' . $a3['uid2'] . '" WHERE `id` = "' . self::$bot['id'] . '" LIMIT 1'); 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')); self::$enemy = mysql_fetch_array(mysql_query('SELECT * FROM `stats` WHERE `id` = "' . self::$bot['enemy'] . '" LIMIT 1'));
} else { } else {
//Заходим на персонажа //Заходим на персонажа
self::inuser_go_btl(self::$bot); self::inuser_go_btl(self::$bot);
//Поединок уже завершился, выкидываем из боя //Поединок уже завершился, выкидываем из боя
self::$bot['battle'] = 0; self::$bot['battle'] = 0;
mysql_query('UPDATE `users` SET `battle` = "' . self::$bot['battle'] . '" WHERE `id` = "' . mysql_real_escape_string(self::$bot['id']) . '" LIMIT 1 '); mysql_query('UPDATE `users` SET `battle` = "' . self::$bot['battle'] . '" WHERE `id` = "' . mysql_real_escape_string(self::$bot['id']) . '" LIMIT 1 ');
} }
} else { } else {
//Действия бота вне поединка //Действия бота вне поединка
if (self::$bot['timeMain'] < time()) { if (self::$bot['timeMain'] < time()) {
mysql_query('UPDATE `chat` SET `time` = "' . time() . '" WHERE `to` = "' . self::$bot['login'] . '" AND `time` = "-1"'); 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) { if (self::$bot['ipreg'] == 1 || self::$bot['ipreg'] == 2 || self::$bot['ipreg'] == 4) {
//Принимаем только хаоты //Принимаем только хаоты
self::$bot['ipreg'] = 3; self::$bot['ipreg'] = 3;
} }
if (self::$bot['ipreg'] == 5) { if (self::$bot['ipreg'] == 5) {
//Подаем только хаоты //Подаем только хаоты
self::$bot['ipreg'] = 7; self::$bot['ipreg'] = 7;
} }
// //
if (self::$bot['ipreg'] == 0 || !self::test_fr(self::$bot['room'])) { 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')); $com = mysql_fetch_array(mysql_query('SELECT * FROM `a_bot_tree` WHERE `level` = "' . (self::$bot['level']) . '" LIMIT 1'));
if (isset($com['id'])) { 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')); $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; $i = 1;
while ($i <= 20) { while ($i <= 20) {
if ($com['e' . $i] > 0) { if ($com['e' . $i] > 0) {
//Выдаем и надеваем предмет //Выдаем и надеваем предмет
//$it = $u->addItem($com['e'.$i],self::$bot['id']); //$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')); $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'] . '")'); 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) { if (self::$bot['level'] >= 13 && self::$bot['clan'] == 0 && self::$bot['align'] == 0) {
//обнуляем бота //обнуляем бота
self::clear_bot(); self::clear_bot();
} }
//Только-что из поединка, хиляется //Только-что из поединка, хиляется
if (!self::test_fr(self::$bot['room'])) { if (!self::test_fr(self::$bot['room'])) {
//В какой-то локации, видимо что-то делаем //В какой-то локации, видимо что-то делаем
} elseif (self::$st['hpNow'] >= self::$st['hpAll']) { } elseif (self::$st['hpNow'] >= self::$st['hpAll']) {
echo 1; 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 `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 { } 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 `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"'); 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'); $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 `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) { 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'); 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) { } elseif (self::$bot['ipreg'] == 1) {
//Принять заявку на бой (физ.) //Принять заявку на бой (физ.)
if (self::$bot['zv'] == 0) { if (self::$bot['zv'] == 0) {
//Выделяем подходящую заявку в физ. поединке //Выделяем подходящую заявку в физ. поединке
$rz = 2; $rz = 2;
$zv = 0; $zv = 0;
$nozv = 0; $nozv = 0;
@ -415,13 +415,13 @@ class BotLogic
if ($uz1st['reting'] <= floor(self::$st['reting'] * 1.27)) { if ($uz1st['reting'] <= floor(self::$st['reting'] * 1.27)) {
//Принимаем заявку //Принимаем заявку
$sa = ''; $sa = '';
if (self::$bot['sex'] == 2) { 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("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 `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'); 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) { } elseif (self::$bot['ipreg'] == 2) {
//Принять заявку на бой (груп.) //Принять заявку на бой (груп.)
self::bot_group_haot_zv(6); self::bot_group_haot_zv(6);
} elseif (self::$bot['ipreg'] == 3) { } elseif (self::$bot['ipreg'] == 3) {
//Принять заявку на бой (хаот.) //Принять заявку на бой (хаот.)
self::bot_group_haot_zv(7); self::bot_group_haot_zv(7);
} elseif (self::$bot['ipreg'] == 4) { } elseif (self::$bot['ipreg'] == 4) {
//Принять заявку на бой (турнир.) //Принять заявку на бой (турнир.)
self::e('' . self::$bot['login'] . ', я хочу принять турнир...'); self::e('' . self::$bot['login'] . ', я хочу принять турнир...');
} elseif (self::$bot['ipreg'] == 5) { } elseif (self::$bot['ipreg'] == 5) {
//Подать заявку (физ.) //Подать заявку (физ.)
if (self::$bot['zv'] == 0) { if (self::$bot['zv'] == 0) {
$rz = 2; $rz = 2;
@ -531,34 +531,34 @@ class BotLogic
} elseif (self::$bot['ipreg'] == 8) { } elseif (self::$bot['ipreg'] == 8) {
//Ожидание начала поединка //Ожидание начала поединка
if (self::$bot['zv'] == 0) { if (self::$bot['zv'] == 0) {
//Поединок не удалось начать //Поединок не удалось начать
mysql_query('UPDATE `users` SET `ipreg` = "0",`timeMain` = "' . self::rnd() . '" WHERE `id` = "' . self::$bot['id'] . '" LIMIT 1'); mysql_query('UPDATE `users` SET `ipreg` = "0",`timeMain` = "' . self::rnd() . '" WHERE `id` = "' . self::$bot['id'] . '" LIMIT 1');
} else { } else {
$zv = mysql_fetch_array(mysql_query('SELECT * FROM `zayvki` WHERE `id` = "' . self::$bot['zv'] . '" AND `cancel` = "0" AND `start` = "0" LIMIT 1')); $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'])) { if (!isset($zv['id'])) {
//Обнуляем действия //Обнуляем действия
mysql_query('UPDATE `users` SET `ipreg` = "0",`timeMain` = "' . self::rnd() . '" WHERE `id` = "' . self::$bot['id'] . '" LIMIT 1'); mysql_query('UPDATE `users` SET `ipreg` = "0",`timeMain` = "' . self::rnd() . '" WHERE `id` = "' . self::$bot['id'] . '" LIMIT 1');
} elseif ($zv['razdel'] == 4 || $zv['razdel'] == 5) { } elseif ($zv['razdel'] == 4 || $zv['razdel'] == 5) {
//хаот или группа //хаот или группа
if ($zv['time_start'] + $zv['time'] <= time()) { if ($zv['time_start'] + $zv['time'] <= time()) {
self::inuser_go_zv(self::$bot); self::inuser_go_zv(self::$bot);
} }
} else { } else {
//физ //физ
if ($zv['creator'] == self::$bot['id']) { 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')); $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'])) { if (isset($uz2['id'])) {
//Заявку кто-то принял, реагируем! :) //Заявку кто-то принял, реагируем! :)
$pr = -1; $pr = -1;
$uz2st = $u->getStats($uz2, 0); $uz2st = $u->getStats($uz2, 0);
@ -566,12 +566,12 @@ class BotLogic
//btl-cof //btl-cof
if ($uz2st['reting'] > floor(self::$st['reting'] * 1.27)) { if ($uz2st['reting'] > floor(self::$st['reting'] * 1.27)) {
//Отказываем, в 95% случаев, противник слишком силен //Отказываем, в 95% случаев, противник слишком силен
if (rand(0, 100) > 95) { if (rand(0, 100) > 95) {
//отправляем бота на избиение :D //отправляем бота на избиение :D
$pr = 1; $pr = 1;
} else { } else {
//отказ //отказ
$pr = 0; $pr = 0;
} }
@ -579,13 +579,13 @@ class BotLogic
$pr = 1; $pr = 1;
} }
//Можно принять заявку //Можно принять заявку
//$pr = 0; //$pr = 0;
if ($pr == 1) { if ($pr == 1) {
//Прием заявки //Прием заявки
//создаем поединок с ботом //создаем поединок с ботом
$expB = 0; $expB = 0;
$btl = ['players' => '', 'timeout' => $zv['timeout'], 'type' => $zv['type'], 'invis' => $zv['invis'], 'noinc' => 0, 'travmChance' => 0, 'typeBattle' => 0, 'addExp' => $expB, 'money' => 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 ( $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")'); "-1")');
if ($ins) { if ($ins) {
$btl_id = mysql_insert_id(); $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 . '" 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 `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`="1" WHERE `id` = "' . self::$bot['id'] . '" LIMIT 1');
mysql_query('UPDATE `stats` SET `zv` = "0",`team`="2" WHERE `id` = "' . $uz2['id'] . '" LIMIT 1'); mysql_query('UPDATE `stats` SET `zv` = "0",`team`="2" WHERE `id` = "' . $uz2['id'] . '" LIMIT 1');
//Если бой кулачный, то снимаем вещи //Если бой кулачный, то снимаем вещи
if ($btl['type'] == 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` = "' . self::$bot['id'] . '" AND `inOdet`!=0');
mysql_query('UPDATE `items_users` SET `inOdet`="0" WHERE `uid` = "' . $uz2['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'); mysql_query('UPDATE `zayvki` SET `start` = "' . time() . '",`btl_id` = "' . $btl_id . '" WHERE `id` = "' . $zv['id'] . '" LIMIT 1');
//обновляем заявку, что бой начался //обновляем заявку, что бой начался
self::$bot['battle'] = $btl_id; 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')"); 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) { } elseif ($pr == 0) {
//Отказ //Отказ
$sa = ''; $sa = '';
if (self::$bot['sex'] == 2) { 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("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 `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'); 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 { } else {
//Заявку никто не принял, возможно стоит отменить заявку вообще! //Заявку никто не принял, возможно стоит отменить заявку вообще!
if (self::$bot['timeMain'] < time() - 30 - rand((7 / $zv['otk']), (3 * 49 / $zv['otk']))) { 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'); 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)) { 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')); $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 = ''; $sa = '';
if (self::$bot['sex'] == 2) { 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')"); 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 (self::$bot['level'] < 2) {
if ($r == 2 || $r == 3 || $r == 6 || $r == 7 || $r == 8) { if ($r == 2 || $r == 3 || $r == 6 || $r == 7 || $r == 8) {
if (rand(0, 1) == 1) { if (rand(0, 1) == 1) {
$r = 1; //принимаем физ $r = 1; //принимаем физ
} elseif (rand(0, 1) == 0) { } elseif (rand(0, 1) == 0) {
$r = 4; //принимаем турнир $r = 4; //принимаем турнир
} else { } else {
$r = 5; //подаем физ $r = 5; //подаем физ
} }
} }
} elseif (self::$bot['level'] == 0) { } elseif (self::$bot['level'] == 0) {
if (rand(0, 1) == 1) { if (rand(0, 1) == 1) {
$r = 1; //принимаем физ $r = 1; //принимаем физ
} else { } else {
$r = 5; //подаем физ $r = 5; //подаем физ
} }
} }
@ -734,9 +734,9 @@ class BotLogic
/*/ /*/
Базовые функции обучения бота Базовые функции обучения бота
/*/ /*/
//Бот ищет заявку в группы или хаот для своего уровня и подходящую ему //Бот ищет заявку в группы или хаот для своего уровня и подходящую ему
static function bot_group_haot_zv($id) static function bot_group_haot_zv($id)
{ {
$rz = 5; $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) { 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; $go = 0;
} }
@ -840,7 +840,7 @@ class BotLogic
if ($tm > 0 || $rz == 5) { 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 `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'); mysql_query('UPDATE `users` SET `login2` = "' . self::$bot['login2'] . '",`ipreg` = "8" WHERE `id` = "' . self::$bot['id'] . '" LIMIT 1');
self::$bot['zv'] = $pl['id']; self::$bot['zv'] = $pl['id'];
@ -856,7 +856,7 @@ class BotLogic
} }
//Добавляем нового бота //Добавляем нового бота
static function createNewBot($login, $sex) static function createNewBot($login, $sex)
{ {
if ($sex != 1) { if ($sex != 1) {
@ -872,7 +872,7 @@ class BotLogic
'real_bot_user', 'real_bot_user',
'0', '0',
'" . mysql_real_escape_string($login) . "', '" . mysql_real_escape_string($login) . "',
'" . md5('regnxt#$%^а0.' . time()) . "', '" . md5('regnxt#$%^а0.' . time()) . "',
'127.0.0.1', '127.0.0.1',
'127.0.0.1', '127.0.0.1',
'capitalcity', 'capitalcity',
@ -890,11 +890,11 @@ class BotLogic
} }
//Бот находится в онлайне //Бот находится в онлайне
static function _online() static function _online()
{ {
if (self::$bot['online'] < time() - 60) { if (self::$bot['online'] < time() - 60) {
//уровень/апп //уровень/апп
if (self::$bot['battle'] == 0 && self::$bot['zv'] == 0) { if (self::$bot['battle'] == 0 && self::$bot['zv'] == 0) {
self::_level(); self::_level();
} }
@ -903,7 +903,7 @@ class BotLogic
} }
} }
//Бот меняет локацию //Бот меняет локацию
static function _loc_A($a, $b) static function _loc_A($a, $b)
{ {
return $b; return $b;
@ -918,28 +918,28 @@ class BotLogic
$r = rand(1, 4); $r = rand(1, 4);
} }
//будуар //будуар
if ($r == 4 && self::$bot['sex'] != 1) { if ($r == 4 && self::$bot['sex'] != 1) {
$r = rand(1, 3); $r = rand(1, 3);
} }
if (self::$bot['city'] == 'capitalcity') { if (self::$bot['city'] == 'capitalcity') {
if ($r == 4) { if ($r == 4) {
//будуар //будуар
$r = 7; $r = 7;
} elseif ($r == 3) { } elseif ($r == 3) {
//ЗВ 3 //ЗВ 3
$r = 5; $r = 5;
} elseif ($r == 2) { } elseif ($r == 2) {
//ЗВ 2 //ЗВ 2
$r = 2; $r = 2;
} else { } else {
//ЗВ 1 //ЗВ 1
$r = 4; $r = 4;
} }
if (self::$bot['level'] == 0) { if (self::$bot['level'] == 0) {
//Новички //Новички
$r = 0; $r = 0;
} }
@ -952,20 +952,20 @@ class BotLogic
{ {
if ($id == self::$bot['room']) { if ($id == self::$bot['room']) {
//ничего, уже пришли //ничего, уже пришли
self::update('a1', 0); self::update('a1', 0);
} else { } else {
//Прокладываем маршрут из текущей комнаты //Прокладываем маршрут из текущей комнаты
$rid_next = self::_loc_A(self::$bot['room'], $id); $rid_next = self::_loc_A(self::$bot['room'], $id);
if ($rid_next > 0) { if ($rid_next > 0) {
//Идем туда //Идем туда
//$rid_next = 377; //$rid_next = 377;
mysql_query('UPDATE `users` SET `room` = "' . $rid_next . '" WHERE `id` = "' . self::$bot['id'] . '" LIMIT 1'); mysql_query('UPDATE `users` SET `room` = "' . $rid_next . '" WHERE `id` = "' . self::$bot['id'] . '" LIMIT 1');
return true; return true;
} else { } else {
//Невозможно дойти туда //Невозможно дойти туда
return false; return false;
} }
@ -973,7 +973,7 @@ class BotLogic
} }
//Бот получил уровень, либо апп //Бот получил уровень, либо апп
static function _level() static function _level()
{ {
global $u; global $u;
@ -999,11 +999,11 @@ class BotLogic
} }
//Вспомогательные функции //Вспомогательные функции
static function e($t) 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")'); "LEL","6","1","-1")');
} }

View File

@ -13,85 +13,85 @@ class BotPriemLogic
$test = self::testpriem(self::$p); $test = self::testpriem(self::$p);
if (isset(self::$p['id']) && $test == 0) { if (isset(self::$p['id']) && $test == 0) {
//Используем прием под номером $id //Используем прием под номером $id
if ($id == 1) { if ($id == 1) {
self::priem1($i); 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) { elseif ($id == 2) {
self::priem2($i); self::priem2($i);
} //Вломить } //Вломить
elseif ($id == 3) { elseif ($id == 3) {
self::priem3($i); self::priem3($i);
} //Собрать зубы } //Собрать зубы
elseif ($id == 4) { elseif ($id == 4) {
self::priem4($i); self::priem4($i);
} //Сильный удар } //Сильный удар
elseif ($id == 5) { elseif ($id == 5) {
self::priem5($i); self::priem5($i);
} //Утереть пот } //Утереть пот
elseif ($id == 6) { elseif ($id == 6) {
self::priem6($i); self::priem6($i);
} //Воля к победе } //Воля к победе
elseif ($id == 7) { elseif ($id == 7) {
self::priem7($i); self::priem7($i);
} //Активная защита } //Активная защита
elseif ($id == 8) { elseif ($id == 8) {
self::priem8($i); self::priem8($i);
} //Танец ветра } //Танец ветра
elseif ($id == 9) { elseif ($id == 9) {
self::priem9($i); self::priem9($i);
} //Дикая удача } //Дикая удача
elseif ($id == 10) { elseif ($id == 10) {
self::priem10($i); self::priem10($i);
} //Предвидиние } //Предвидиние
elseif ($id == 11) { elseif ($id == 11) {
self::priem11($i); self::priem11($i);
} //Удачный удар } //Удачный удар
elseif ($id == 13) { elseif ($id == 13) {
self::priem13($i); self::priem13($i);
} //Стойкость } //Стойкость
elseif ($id == 14) { elseif ($id == 14) {
self::priem14($i); self::priem14($i);
} //Ярость } //Ярость
elseif ($id == 45) { elseif ($id == 45) {
self::priem45($i); self::priem45($i);
} //Полная защита } //Полная защита
elseif ($id == 47) { elseif ($id == 47) {
self::priem47($i); self::priem47($i);
} //Слепая удача } //Слепая удача
elseif ($id == 48) { elseif ($id == 48) {
self::priem48($i); self::priem48($i);
} //Танец лезвий } //Танец лезвий
elseif ($id == 49) { elseif ($id == 49) {
self::priem49($i); self::priem49($i);
} //Второе дыхание } //Второе дыхание
elseif ($id == 188) { elseif ($id == 188) {
self::priem188($i); self::priem188($i);
} //Жажда крови } //Жажда крови
elseif ($id == 204) { elseif ($id == 204) {
self::priem204($i); self::priem204($i);
} //Обреченность } //Обреченность
elseif ($id == 211) { elseif ($id == 211) {
self::priem211($i); self::priem211($i);
} //Агрессивная защита } //Агрессивная защита
elseif ($id == 217) { elseif ($id == 217) {
self::priem217($i); self::priem217($i);
} //Разгадать тактику } //Разгадать тактику
elseif ($id == 220) { elseif ($id == 220) {
self::priem220($i); self::priem220($i);
} //Ставка на опережение } //Ставка на опережение
elseif ($id == 223) { elseif ($id == 223) {
self::priem223($i); self::priem223($i);
} //Рывок } //Рывок
elseif ($id == 232) { elseif ($id == 232) {
self::priem232($i); self::priem232($i);
} //Выжить } //Выжить
elseif ($id == 235) { elseif ($id == 235) {
self::priem235($i); self::priem235($i);
} //Шокирующий удар } //Шокирующий удар
elseif ($id == 240) { elseif ($id == 240) {
self::priem240($i); self::priem240($i);
} //Хлебнуть крови } //Хлебнуть крови
elseif ($id >= 175 && $id <= 179) { elseif ($id >= 175 && $id <= 179) {
self::priem175($i); self::priem175($i);
} }
@ -110,7 +110,7 @@ class BotPriemLogic
BotLogic::inuser_go_btl(BotLogic::$bot, $go_txt); BotLogic::inuser_go_btl(BotLogic::$bot, $go_txt);
} }
//Ставка на опережение //Ставка на опережение
private static function priem220($i) private static function priem220($i)
{ {
if (rand(0, 100) < 30) { if (rand(0, 100) < 30) {
@ -118,7 +118,7 @@ class BotPriemLogic
} }
} }
//Разгадать тактику //Разгадать тактику
private static function priem217($i) private static function priem217($i)
{ {
if (rand(0, 100) < 30) { if (rand(0, 100) < 30) {
@ -126,7 +126,7 @@ class BotPriemLogic
} }
} }
//Обреченность //Обреченность
private static function priem204($i) private static function priem204($i)
{ {
if (rand(0, 100) < 30) { if (rand(0, 100) < 30) {
@ -134,7 +134,7 @@ class BotPriemLogic
} }
} }
//Выжить //Выжить
private static function priem232($i) private static function priem232($i)
{ {
if (self::hp() <= 30 && rand(0, 100) < 50) { if (self::hp() <= 30 && rand(0, 100) < 50) {
@ -142,7 +142,7 @@ class BotPriemLogic
} }
} }
//Жажда крови //Жажда крови
private static function priem188($i) private static function priem188($i)
{ {
if (rand(0, 100) < 30) { if (rand(0, 100) < 30) {
@ -150,7 +150,7 @@ class BotPriemLogic
} }
} }
//Шок удар //Шок удар
private static function priem235($i) private static function priem235($i)
{ {
if (rand(0, 100) < 50) { if (rand(0, 100) < 50) {
@ -158,7 +158,7 @@ class BotPriemLogic
} }
} }
//Хлебнуть крови //Хлебнуть крови
private static function priem240($i) private static function priem240($i)
{ {
if (self::hp() <= 70) { if (self::hp() <= 70) {
@ -166,13 +166,13 @@ class BotPriemLogic
} }
} }
//Силовое поле //Силовое поле
private static function priem175($i) private static function priem175($i)
{ {
self::usePriem($i); self::usePriem($i);
} }
//Прикрыться //Прикрыться
private static function priem1($i) private static function priem1($i)
{ {
if (rand(0, 100) < 50) { if (rand(0, 100) < 50) {
@ -180,7 +180,7 @@ class BotPriemLogic
} }
} }
//Вломить //Вломить
private static function priem2($i) private static function priem2($i)
{ {
if (rand(0, 100) < 50) { if (rand(0, 100) < 50) {
@ -188,7 +188,7 @@ class BotPriemLogic
} }
} }
//Собрать зубы //Собрать зубы
private static function priem3($i) private static function priem3($i)
{ {
if (self::hp() <= 70 && rand(0, 100) < 50) { if (self::hp() <= 70 && rand(0, 100) < 50) {
@ -196,7 +196,7 @@ class BotPriemLogic
} }
} }
//Воля к победе //Воля к победе
private static function priem6($i) private static function priem6($i)
{ {
if (self::hp() <= 40 && rand(0, 100) < 50) { if (self::hp() <= 40 && rand(0, 100) < 50) {
@ -204,7 +204,7 @@ class BotPriemLogic
} }
} }
//Танец ветра //Танец ветра
private static function priem8($i) private static function priem8($i)
{ {
if (rand(0, 100) < 30) { if (rand(0, 100) < 30) {
@ -212,7 +212,7 @@ class BotPriemLogic
} }
} }
//Танец лезвий //Танец лезвий
private static function priem48($i) private static function priem48($i)
{ {
if (rand(0, 100) < 70) { if (rand(0, 100) < 70) {
@ -220,7 +220,7 @@ class BotPriemLogic
} }
} }
//Дикая удача //Дикая удача
private static function priem9($i) private static function priem9($i)
{ {
if (rand(0, 100) < 30) { if (rand(0, 100) < 30) {
@ -228,7 +228,7 @@ class BotPriemLogic
} }
} }
//Слепая удача //Слепая удача
private static function priem47($i) private static function priem47($i)
{ {
if (rand(0, 100) < 50) { if (rand(0, 100) < 50) {
@ -236,7 +236,7 @@ class BotPriemLogic
} }
} }
//Предвиденье //Предвиденье
private static function priem10($i) private static function priem10($i)
{ {
if (rand(0, 100) < 30) { if (rand(0, 100) < 30) {
@ -244,7 +244,7 @@ class BotPriemLogic
} }
} }
//Второе дыхание //Второе дыхание
private static function priem49($i) private static function priem49($i)
{ {
if (rand(0, 100) < 80 && self::hp() <= 60) { if (rand(0, 100) < 80 && self::hp() <= 60) {
@ -252,7 +252,7 @@ class BotPriemLogic
} }
} }
//Рывок //Рывок
private static function priem223($i) private static function priem223($i)
{ {
if (self::hp() <= 50 && rand(0, 100) < 50) { if (self::hp() <= 50 && rand(0, 100) < 50) {
@ -260,7 +260,7 @@ class BotPriemLogic
} }
} }
//Удачный удар //Удачный удар
private static function priem11($i) private static function priem11($i)
{ {
if (rand(0, 100) < 30) { if (rand(0, 100) < 30) {
@ -268,7 +268,7 @@ class BotPriemLogic
} }
} }
//Стойкость //Стойкость
private static function priem13($i) private static function priem13($i)
{ {
if (rand(0, 100) < 50) { if (rand(0, 100) < 50) {
@ -276,7 +276,7 @@ class BotPriemLogic
} }
} }
//Ярость //Ярость
private static function priem14($i) private static function priem14($i)
{ {
if (rand(0, 100) < 50) { if (rand(0, 100) < 50) {
@ -284,7 +284,7 @@ class BotPriemLogic
} }
} }
//Сильный удар //Сильный удар
private static function priem4($i) private static function priem4($i)
{ {
if (rand(0, 100) < 60) { if (rand(0, 100) < 60) {
@ -292,7 +292,7 @@ class BotPriemLogic
} }
} }
//Утереть пот //Утереть пот
private static function priem5($i) private static function priem5($i)
{ {
if (self::hp() <= 95) { if (self::hp() <= 95) {
@ -301,7 +301,7 @@ class BotPriemLogic
} }
//Агрессивная защита //Агрессивная защита
private static function priem211($i) private static function priem211($i)
{ {
if (rand(0, 100) < 80) { if (rand(0, 100) < 80) {
@ -310,7 +310,7 @@ class BotPriemLogic
} }
//Полная защита //Полная защита
private static function priem45($i) private static function priem45($i)
{ {
if (rand(0, 100) < 50) { if (rand(0, 100) < 50) {
@ -319,7 +319,7 @@ class BotPriemLogic
} }
//Активная защита //Активная защита
private static function priem7($i) private static function priem7($i)
{ {
if (rand(0, 100) < 30) { if (rand(0, 100) < 30) {
@ -333,7 +333,7 @@ class BotPriemLogic
return round((BotLogic::$st['hpNow'] / BotLogic::$st['hpAll'] * 100), 2); return round((BotLogic::$st['hpNow'] / BotLogic::$st['hpAll'] * 100), 2);
} }
//Тест на возможность использования //Тест на возможность использования
private static function testpriem($pl) private static function testpriem($pl)
{ {
global $u; global $u;
@ -382,14 +382,14 @@ class BotPriemLogic
} }
if ($pl['trUser'] == 1) { 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')); $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'])) { if (isset($ga['id'])) {
$notr++; $notr++;
} }
} }
//Если прием уже использовали //Если прием уже использовали
if (BotLogic::$st['prsu'][$pl['id']] > 0) { if (BotLogic::$st['prsu'][$pl['id']] > 0) {
$notr++; $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() private function __construct()
{ {
error_reporting(E_ALL ^ E_NOTICE); error_reporting(E_ALL ^ E_NOTICE);
setlocale(LC_CTYPE, "ru_RU.CP1251");
ini_set('display_errors', 'Off'); ini_set('display_errors', 'Off');
ini_set('default_charset', 'windows-1251');
ini_set('date.timezone', 'Europe/Moscow'); ini_set('date.timezone', 'Europe/Moscow');
header('Cache-Control: no-cache, no-store, must-revalidate'); header('Cache-Control: no-cache, no-store, must-revalidate');
@ -22,16 +20,16 @@ class Config
public static function get(?string $key = null) public static function get(?string $key = null)
{ {
$c['ver'] = '1.8.3.7'; $c['ver'] = '1.8.3.7';
/* Конфигурации игры */ /* Конфигурации игры */
$c['name'] = 'Бойцовский Клуб'; $c['name'] = 'Бойцовский Клуб';
$c['title'] = 'Новый «' . $c['name'] . '» - Бесплатная,браузерная онлайн игра'; //Название игры $c['title'] = 'Новый «' . $c['name'] . '» - Бесплатная,браузерная онлайн игра'; //Название игры
$c['title2'] = ' - Бесплатная, онлайн игра посвященная сражениям и магии!'; $c['title2'] = ' - Бесплатная, онлайн игра посвященная сражениям и магии!';
$c['title3'] = $c['name']; $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['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['desc'] = '«' . $c['name'] . это бесплатная увлекательная браузерная онлайн игра 2004-2009г, в которой сконцентрировано все самое лучшее от современных онлайн игр. В этой браузерной игре заложены самые интересные традиции всем известной онлайн игры под названием «' . $c['name'] . ' 2004-2009», которая, кстати, стала первооткрывателем всех браузерных игр.'; //Описание META
$c['footer'] = $c['name'] . ' © 2013-' . date('Y'); $c['footer'] = $c['name'] . ' © 2013-' . date('Y');
//Сервера //Сервера
$c['host'] = 'new-combats.com'; $c['host'] = 'new-combats.com';
$c['forum'] = 'forum.' . $c['host']; $c['forum'] = 'forum.' . $c['host'];
$c['img'] = 'img.' . $c['host']; $c['img'] = 'img.' . $c['host'];
@ -43,52 +41,52 @@ class Config
$c['support'] = 'support@' . $c['host']; $c['support'] = 'support@' . $c['host'];
//Валюта //Валюта
$c['curency_name'] = 'RUB'; $c['curency_name'] = 'RUB';
$c['curency_value'] = 30; $c['curency_value'] = 30;
//Бот клон //Бот клон
$c['bot_level'] = 0; // до какого лвл бот (включительно) $c['bot_level'] = 0; // до какого лвл бот (включительно)
$c['propsk_die'] = 0; //Смерть при пропуске ходов, 0 - выкл. , >= 1 - количество пропусков до смерти при нападении $c['propsk_die'] = 0; //Смерть при пропуске ходов, 0 - выкл. , >= 1 - количество пропусков до смерти при нападении
//Скупка //Скупка
$c['exp'] = 0; //бонус опыта $c['exp'] = 0; //бонус опыта
$c['shop_type1'] = 100; //в гос НЕ ТРОГАТЬ $c['shop_type1'] = 100; //в гос НЕ ТРОГАТЬ
$c['shop_type2'] = 90; //в березку НЕ ТРОГАТЬ $c['shop_type2'] = 90; //в березку НЕ ТРОГАТЬ
$c['shop_all'] = 0; //Скупка на все! , 0 - сделать для отключения скупки. $c['shop_all'] = 0; //Скупка на все! , 0 - сделать для отключения скупки.
$c['shop_all_type1'] = 100; //Скупка только с госе! , 0 - сделать для отключения скупки. $c['shop_all_type1'] = 100; //Скупка только с госе! , 0 - сделать для отключения скупки.
$c['shop_all_type2'] = 100; //Скупка только с березки! , 0 - сделать для отключения скупки. $c['shop_all_type2'] = 100; //Скупка только с березки! , 0 - сделать для отключения скупки.
// //
$c['nosanich'] = true; //Странички Саныча не выпадают - true , выпадают - false $c['nosanich'] = true; //Странички Саныча не выпадают - true , выпадают - false
$c['zuby'] = false; //зубы $c['zuby'] = false; //зубы
$c['limitedexp'] = false; //лимит опыта $c['limitedexp'] = false; //лимит опыта
$c['infinity5level'] = false; //вечные 5 уровни $c['infinity5level'] = false; //вечные 5 уровни
$c['expstop'] = 2999999; //9; //Опыт на котором останавливаемся 11 149999999 $c['expstop'] = 2999999; //9; //Опыт на котором останавливаемся 11 149999999
$c['expstopu'] = 2999999; //Опыт на котором останавливаемся $c['expstopu'] = 2999999; //Опыт на котором останавливаемся
$c['noobgade'] = false; //нуб квест (пещера) $c['noobgade'] = false; //нуб квест (пещера)
$c['bonusonline'] = true; //бонус за онлайн $c['bonusonline'] = true; //бонус за онлайн
$c['level_ransfer'] = 8; //С какого уровня разрешены передачи $c['level_ransfer'] = 8; //С какого уровня разрешены передачи
$c['znahar'] = true; //бесплатный знахарь $c['znahar'] = true; //бесплатный знахарь
$c['nolevel'] = false; //лимитирование уровней $c['nolevel'] = false; //лимитирование уровней
$c['noitembuy'] = false; //Не требует ресурсы для покупки $c['noitembuy'] = false; //Не требует ресурсы для покупки
$c['effz'] = 0; //Скольким секундам равен заряд $c['effz'] = 0; //Скольким секундам равен заряд
$c['money_haot'] = true; //кр за хаоты $c['money_haot'] = true; //кр за хаоты
$c['crtoecr'] = 500; //Курс обмена кр на екр (если 0, то выключено) $c['crtoecr'] = 500; //Курс обмена кр на екр (если 0, то выключено)
$c['ecrtocr'] = 200; //Курс обмена екр на кр $c['ecrtocr'] = 200; //Курс обмена екр на кр
$c['bonuslevel'] = true; //Бонус уровня $c['bonuslevel'] = true; //Бонус уровня
$c['bonussocial'] = false; //Бонус социальный $c['bonussocial'] = false; //Бонус социальный
$c['w'] = date('w'); $c['w'] = date('w');
$c['m'] = date('m'); $c['m'] = date('m');
$c['counters'] = ''; $c['counters'] = '';
$c['counters_noFrm'] = ''; $c['counters_noFrm'] = '';
$c['securetime'] = 0; //Время последнего возможного взлома персов (подбор пароля по базам данных других игр) $c['securetime'] = 0; //Время последнего возможного взлома персов (подбор пароля по базам данных других игр)
$c['copyright'] = 'Copyright © ' . date('Y') . ' « Новый Бойцовский Клуб »'; $c['copyright'] = 'Copyright © ' . date('Y') . ' « Новый Бойцовский Клуб »';
$c['db_user'] = 'newcom1_abk'; $c['db_user'] = 'prod1';
$c['db_name'] = 'newcom1_abk'; $c['db_name'] = 'game_production';
$c['db_password'] = '4nWYsIM[c?}P'; $c['db_password'] = 'Bz@fGaZjFU2206Ua';
return $c[$key] ?? $c; return $c[$key] ?? $c;
} }

View File

@ -14,7 +14,7 @@ class Database
*/ */
private function __construct() { private function __construct() {
mysql_select_db(Config::get('db_name'), mysql_connect('localhost', Config::get('db_user'), Config::get('db_password'))); 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_ERRMODE => PDO::ERRMODE_EXCEPTION,
PDO::ATTR_DEFAULT_FETCH_MODE => PDO::FETCH_ASSOC, 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_STRINGIFY_FETCHES => false,
PDO::ATTR_EMULATE_PREPARES => false, PDO::ATTR_EMULATE_PREPARES => false,
] ]

View File

@ -6,11 +6,9 @@ use PHPMailer;
class Mail class Mail
{ {
public static function send($to, $message, $subject = 'Áîéöîâñêèé êëóá') public static function send($to, $message, $subject = 'Бойцовский клуб')
{ {
require dirname(__DIR__) . '/mail/class.phpmailer.php'; 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 = new PHPMailer;
$mail->IsSMTP(); // Set mailer to use SMTP $mail->IsSMTP(); // Set mailer to use SMTP
@ -23,7 +21,7 @@ class Mail
$mail->CharSet = 'UTF-8'; $mail->CharSet = 'UTF-8';
$mail->From = 'newcombats@yahoo.com'; $mail->From = 'newcombats@yahoo.com';
$mail->FromName = mb_convert_encoding('Áîéöîâñêèé Êëóá', 'UTF-8', 'CP1251'); $mail->FromName = 'Бойцовский Клуб';
$mail->AddAddress($to); // Add a recipient $mail->AddAddress($to); // Add a recipient
$mail->IsHTML(true); // Set email format to HTML $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 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]]; ], $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() public function start()
{ {
global $u, $c, $code, $id; 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->id_dng = $this->info['id2'];
$this->gs = $u->info['psevdo_s']; $this->gs = $u->info['psevdo_s'];
@ -18,24 +18,24 @@ class DungeonEditor
if ($this->info['bsid'] > 0) { 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')); $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) { if (isset($this->bs['id']) && $this->bs['users'] - $this->bs['users_finish'] < 2) {
$u->bsfinish($this->bs, false, null); $u->bsfinish($this->bs, false, null);
} }
} }
/* ãåíåðèðóåì âèä ïåðñîíàæà (òîëüêî êàðòà) /* генерируем вид персонажа (только карта)
$this->gs = 1; //ñìîòðèì ïðÿìî $this->gs = 1; //смотрим прямо
2; //ñìîòðèì ëåâî 2; //смотрим лево
3; //ñìîòðèì âíèç 3; //смотрим вниз
4; //ñìîòðèì ïðàâî 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).' ) ) ) ( ( ( `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) . ')) ', //ïðÿìî $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) . ')) ', //âíèç 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) . ')) ', //ëåâî 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) . ')) ' //ïðàâî 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; $i = 1;
@ -44,7 +44,7 @@ class DungeonEditor
$this->map[0][$pl['y'] . '_' . $pl['x']] = $pl; $this->map[0][$pl['y'] . '_' . $pl['x']] = $pl;
$i++; $i++;
} }
$this->map['good'] = $i; //öåëûõ êëåòîê $this->map['good'] = $i; //целых клеток
$this->map[1] = $this->genMatix(); $this->map[1] = $this->genMatix();
$this->lookDungeon(); $this->lookDungeon();
} }
@ -53,43 +53,43 @@ class DungeonEditor
{ {
global $u, $c; global $u, $c;
$r = ''; $r = '';
/* îòîáðàæåíèå áîòîâ (áåñïîëåçíî â äàííîì ðåäàêòîðå) */ /* отображение ботов (бесполезно в данном редакторе) */
} }
public function atack($id) public function atack($id)
{ {
global $u, $c, $code; global $u, $c, $code;
/* íàïàäåíèå, êàêîå íàïàäåíèå ìîæåò áûòü â ðåäàêòîðå? :) Íà ñàìîãî ñåáÿ, ñî ñòóëîì? :) */ /* нападение, какое нападение может быть в редакторе? :) На самого себя, со стулом? :) */
} }
public function takeinv($id) public function takeinv($id)
{ {
global $u, $c, $code; global $u, $c, $code;
/* Ýòî ðåäàêòîð, à íå ìàéíêðàôò, çäåñü íè÷åãî ñîáèðàòü íå íóæíî :) */ /* Это редактор, а не майнкрафт, здесь ничего собирать не нужно :) */
} }
public function takeit($id) public function takeit($id)
{ {
global $u, $c, $code, $magic; global $u, $c, $code, $magic;
/*  ðåäàêòîðå íè÷åãî íå ïàäàåò ;) */ /* В редакторе ничего не падает ;) */
} }
public function addItem($i) public function addItem($i)
{ {
//äîáàâëÿåì ïðåäìåò â ïåùåðó (âîçìîæíî âûïàë èç áîòà èëè èç ñóíäóêà) //добавляем предмет в пещеру (возможно выпал из бота или из сундука)
/* À ÷òî åùå? Ïóëüò ê óïðàâëåíèþ Çåìëåé?! */ /* А что еще? Пульт к управлению Землей?! */
} }
public function itemsMap() public function itemsMap()
{ {
global $u, $c, $code; global $u, $c, $code;
/* Äà íè÷åãî çäåñü íå ïàäàåò! Ãîâîðþ æå! */ /* Да ничего здесь не падает! Говорю же! */
} }
public function testLike($x1, $y1, $x2, $y2) public function testLike($x1, $y1, $x2, $y2)
{ {
//èç $x1,$y1 â $x2,$y2 //из $x1,$y1 в $x2,$y2
//äîñòóïíà-ëè ýòà êëåòêà äëÿ äåéñòâèé //доступна-ли эта клетка для действий
$r = 0; $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')); $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')); $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) { if ($x1 == $x2 && $y1 == $y2) {
$r = 1; $r = 1;
} elseif ( } elseif (
$x1 == $x2 - 1 && $c1['go_1'] == 1 || //ïðàâî $x1 == $x2 - 1 && $c1['go_1'] == 1 || //право
$x1 == $x2 + 1 && $c1['go_2'] == 1 || //ëåâî $x1 == $x2 + 1 && $c1['go_2'] == 1 || //лево
$y1 == $y2 - 1 && $c1['go_3'] == 1 || //âåðõ $y1 == $y2 - 1 && $c1['go_3'] == 1 || //верх
$y1 == $y2 + 1 && $c1['go_4'] == 1 //íèç $y1 == $y2 + 1 && $c1['go_4'] == 1 //низ
) )
{ {
$r = 1; $r = 1;
@ -113,13 +113,13 @@ class DungeonEditor
{ {
global $u, $c, $code; global $u, $c, $code;
////i:{id,name,mapPoint,action,img,type}, ////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}, //'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- ñïðàâà //psition 0 - по центру , 1- сверху, 2- слева, 3- снизу, 4- справа
$r = ''; $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'] . ')) ', //ïðÿìî $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'] . ')) ', //âíèç 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'] . ')) ', //ëåâî 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'] . ')) ' //ïðàâî 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'); $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'); # 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]; $da[$dt2[$is][0]] = $dt2[$is][1];
$is++; $is++;
} }
#if(isset($da['rl2']))$da['rl2'] = -round((int)$da['rl2'] * 0.70); // Ñëåâà #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'] - 230); // Слева
if (isset($da['rl3'])) $da['rl3'] = round((int)$da['rl3'] + 160); if (isset($da['rl3'])) $da['rl3'] = round((int)$da['rl3'] + 160);
if (isset($da['rl4'])) $da['rl4'] = round((int)$da['rl4'] - 120); if (isset($da['rl4'])) $da['rl4'] = round((int)$da['rl4'] - 120);
$pl['date'] = str_replace('"', '', json_encode($da)); $pl['date'] = str_replace('"', '', json_encode($da));
@ -165,8 +165,8 @@ class DungeonEditor
$da[$dt2[$is][0]] = $dt2[$is][1]; $da[$dt2[$is][0]] = $dt2[$is][1];
$is++; $is++;
} }
#if(isset($da['rl2']))$da['rl2'] = 355-round((int)$da['rl2'] * 0.30); // Ñïðàâà #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'] = round((int)$da['rl2'] + 230); // Справа
if (isset($da['rl3'])) $da['rl3'] = round((int)$da['rl3'] - 160); if (isset($da['rl3'])) $da['rl3'] = round((int)$da['rl3'] - 160);
if (isset($da['rl4'])) $da['rl4'] = round((int)$da['rl4'] + 120); if (isset($da['rl4'])) $da['rl4'] = round((int)$da['rl4'] + 120);
$pl['date'] = str_replace('"', '', json_encode($da)); $pl['date'] = str_replace('"', '', json_encode($da));
@ -188,13 +188,13 @@ class DungeonEditor
////i:{id,login,mapPoint,sex,obraz,type,users_p}, ////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}, //'count':1,0:{0:1015,1:'Test1',2:5,3:0,4:'1',5:'user',6:1},
$r = ''; $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) . ')) ', //ïðÿìî $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) . ')) ', //âíèç 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) . ')) ', //ëåâî 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) . ')) ' //ïðàâî 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; $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'); $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)) { while ($pl = mysql_fetch_array($sp)) {
$i++; $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')); $btli = mysql_fetch_array(mysql_query('SELECT `id` FROM `battle` WHERE `id` = "' . $user['battle'] . '" AND `team_win` = "-1" LIMIT 1'));
} }
if (!isset($btli['id'])) { if (!isset($btli['id'])) {
//Ñîçäàåì ïîåäèíîê //Создаем поединок
$btl_id = 0; $btl_id = 0;
$expB = 0; $expB = 0;
$btl = ['players' => '', 'timeout' => 180, 'type' => 0, 'invis' => 0, 'noinc' => 0, 'travmChance' => 0, 'typeBattle' => 0, 'addExp' => $expB, 'money' => 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(); $btl_id = mysql_insert_id();
if ($btl_id > 0) { 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'); $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; $j = 0;
$logins_bot = []; $logins_bot = [];
@ -279,16 +279,16 @@ class DungeonEditor
global $u, $c, $code; global $u, $c, $code;
$go = 0; $go = 0;
if ($id == 1) { if ($id == 1) {
//âïåðåä //вперед
$go = $this->sg[$this->gs][1]; $go = $this->sg[$this->gs][1];
} elseif ($id == 2) { } elseif ($id == 2) {
//íàçàä //назад
$go = $this->sg[$this->gs][3]; $go = $this->sg[$this->gs][3];
} elseif ($id == 3) { } elseif ($id == 3) {
//íà ïðàâî //на право
$go = $this->sg[$this->gs][4]; $go = $this->sg[$this->gs][4];
} elseif ($id == 4) { } elseif ($id == 4) {
//íà ëåâî //на лево
$go = $this->sg[$this->gs][2]; $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')); $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')); $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'] != '') { if ($tmap['tr_items'] != '') {
$ti = explode(',', $tmap['tr_items']); $ti = explode(',', $tmap['tr_items']);
$i = 0; $i = 0;
@ -335,19 +335,19 @@ class DungeonEditor
} }
if ($trnit != '') { if ($trnit != '') {
$trnit = rtrim($trnit, ', '); $trnit = rtrim($trnit, ', ');
$this->error = 'Ó âàñ íåò ïîäõîäÿùåãî ïðåäìåòà. Òðåáóåòñÿ ' . $trnit; $this->error = 'У вас нет подходящего предмета. Требуется ' . $trnit;
} }
} }
$tmGo = $u->info['timeGo'] - time(); //ñêîëüêî ñåêóíä îñòàëîñü $tmGo = $u->info['timeGo'] - time(); //сколько секунд осталось
if ($tmGo > 0) { if ($tmGo > 0) {
$go = 0; $go = 0;
$this->error = 'Íå òàê áûñòðî...'; $this->error = 'Не так быстро...';
} }
if ($u->aves['now'] >= $u->aves['max']) { if ($u->aves['now'] >= $u->aves['max']) {
$go = 0; $go = 0;
$this->error = 'Âû íå ìîæåòå ïåðåìåùàòüñÿ, ðþêçàê ïåðåïîëíåí ...'; $this->error = 'Вы не можете перемещаться, рюкзак переполнен ...';
} }
if ($go > 0) { if ($go > 0) {
@ -371,16 +371,16 @@ class DungeonEditor
global $u, $c, $code; global $u, $c, $code;
$go = 0; $go = 0;
if ($id == 1) { if ($id == 1) {
//âïåðåä //вперед
$go = $this->sg[$this->gs][1]; $go = $this->sg[$this->gs][1];
} elseif ($id == 2) { } elseif ($id == 2) {
//íàçàä //назад
$go = $this->sg[$this->gs][3]; $go = $this->sg[$this->gs][3];
} elseif ($id == 3) { } elseif ($id == 3) {
//íà ïðàâî //на право
$go = $this->sg[$this->gs][4]; $go = $this->sg[$this->gs][4];
} elseif ($id == 4) { } elseif ($id == 4) {
//íà ëåâî //на лево
$go = $this->sg[$this->gs][2]; $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')); $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) public function testSt($id, $s)
{ {
$r = 0; $r = 0;
//çàìåíÿåì îòîáðàæåíèå ñòåí â çàâèñèìîñòè îò óãëà îáçîðà //заменяем отображение стен в зависимости от угла обзора
$s = $this->sg[$this->gs][$s]; $s = $this->sg[$this->gs][$s];
if (isset($this->map[1][$id]['id'])) { if (isset($this->map[1][$id]['id'])) {
$r = $this->map[1][$id]['st'][($s - 1)]; $r = $this->map[1][$id]['st'][($s - 1)];
@ -421,7 +421,7 @@ class DungeonEditor
public function lookDungeon() public function lookDungeon()
{ {
global $u, $c, $code, $pd; global $u, $c, $code, $pd;
/* Ãåíåðèðóåì èçîáðàæåíèå êàðòû */ /* Генерируем изображение карты */
/* LEVEL 1 */ /* LEVEL 1 */
if ($this->testSt(2, 4) > 0 || $this->testSt(3, 2) > 0) { if ($this->testSt(2, 4) > 0 || $this->testSt(3, 2) > 0) {
$pd[28] = 1; $pd[28] = 1;
@ -502,9 +502,9 @@ class DungeonEditor
$pd[3] = 1; $pd[3] = 1;
} }
/* Ãåíåðèðóåì ïðåäìåòû íà êàðòå */ /* Генерируем предметы на карте */
/* Ãåíåðèðóåì ïåðñîíàæåé è áîòîâ íà êàðòå */ /* Генерируем персонажей и ботов на карте */
} }
@ -520,7 +520,7 @@ class DungeonEditor
{ {
$r = []; $r = [];
if ($this->gs == 1) { if ($this->gs == 1) {
//1; //ñìîòðèì ïðÿìî //1; //смотрим прямо
$r[1] = $this->getMatrix(0, -1); $r[1] = $this->getMatrix(0, -1);
$r[2] = $this->getMatrix(0, 0); $r[2] = $this->getMatrix(0, 0);
$r[3] = $this->getMatrix(0, 1); $r[3] = $this->getMatrix(0, 1);
@ -541,7 +541,7 @@ class DungeonEditor
$r[18] = $this->getMatrix(4, 2); $r[18] = $this->getMatrix(4, 2);
$r[19] = $this->getMatrix(4, -2); $r[19] = $this->getMatrix(4, -2);
} elseif ($this->gs == 2) { } elseif ($this->gs == 2) {
//2; //ñìîòðèì ëåâî //2; //смотрим лево
$r[1] = $this->getMatrix(-1, 0); $r[1] = $this->getMatrix(-1, 0);
$r[2] = $this->getMatrix(0, 0); $r[2] = $this->getMatrix(0, 0);
$r[3] = $this->getMatrix(1, 0); $r[3] = $this->getMatrix(1, 0);
@ -562,7 +562,7 @@ class DungeonEditor
$r[18] = $this->getMatrix(2, -4); $r[18] = $this->getMatrix(2, -4);
$r[19] = $this->getMatrix(-2, -4); $r[19] = $this->getMatrix(-2, -4);
} elseif ($this->gs == 3) { } elseif ($this->gs == 3) {
//3; //ñìîòðèì âíèç //3; //смотрим вниз
$r[1] = $this->getMatrix(0, 1); $r[1] = $this->getMatrix(0, 1);
$r[2] = $this->getMatrix(0, 0); $r[2] = $this->getMatrix(0, 0);
$r[3] = $this->getMatrix(0, -1); $r[3] = $this->getMatrix(0, -1);
@ -583,7 +583,7 @@ class DungeonEditor
$r[18] = $this->getMatrix(-4, -2); $r[18] = $this->getMatrix(-4, -2);
$r[19] = $this->getMatrix(-4, 2); $r[19] = $this->getMatrix(-4, 2);
} elseif ($this->gs == 4) { } elseif ($this->gs == 4) {
//4; //ñìîòðèì ïðàâî //4; //смотрим право
$r[1] = $this->getMatrix(1, 0); $r[1] = $this->getMatrix(1, 0);
$r[2] = $this->getMatrix(0, 0); $r[2] = $this->getMatrix(0, 0);
$r[3] = $this->getMatrix(-1, 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); 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]; 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) public function e($t)
@ -18,7 +18,7 @@ class Filter
mysql_query( mysql_query(
'INSERT INTO `chat` (`text`,`city`,`to`,`type`,`new`,`time`) VALUES ("#' . date('d.m.Y') . ' %' . date( 'INSERT INTO `chat` (`text`,`city`,`to`,`type`,`new`,`time`) VALUES ("#' . date('d.m.Y') . ' %' . date(
'H:i:s' '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); $str = strtolower($string);
if (strtolower('S') != 's') { if (strtolower('S') != 's') {
$ru = 'ÀÁÂÃÄŨÆÇÈÉÊËÌÍÎÐÏÑÒÓÔÕÖרÙÚÜÛÝÞß'; $ru = 'АБВГДЕЁЖЗИЙКЛМНОРПСТУФХЦЧШЩЪЬЫЭЮЯ';
$ru2 = 'àáâãä叿çèéêëìíîðïñòóôõö÷øùúüûýþÿ'; $ru2 = 'абвгдеёжзийклмнорпстуфхцчшщъьыэюя';
$en = 'QWERTYUIOPASDFGHJKLZXCVBNM'; $en = 'QWERTYUIOPASDFGHJKLZXCVBNM';
$en2 = 'qwertyuiopasdfghjklzxcvbnm'; $en2 = 'qwertyuiopasdfghjklzxcvbnm';
$i = 0; $i = 0;
@ -77,7 +77,7 @@ class Filter
public function spamFiltr($txt) public function spamFiltr($txt)
{ {
$txt = str_replace('¸', ', $txt); $txt = str_replace('ё', 'е', $txt);
$nospam = 0; $nospam = 0;
$txt = str_replace('&gt;', '', $txt); $txt = str_replace('&gt;', '', $txt);
@ -91,7 +91,7 @@ class Filter
} }
$i++; $i++;
} }
/* ôèëüòð */ /* фильтр */
$spam = mysql_fetch_array(mysql_query('SELECT * FROM `spam_word` WHERE `id` = 1 LIMIT 1')); $spam = mysql_fetch_array(mysql_query('SELECT * FROM `spam_word` WHERE `id` = 1 LIMIT 1'));
$spam = $spam['data']; $spam = $spam['data'];
// //
@ -100,45 +100,45 @@ class Filter
$testEN2 = str_replace('&quot;', '', $testEN2); $testEN2 = str_replace('&quot;', '', $testEN2);
$testEN2 = str_replace('&nbsp;', '', $testEN2); $testEN2 = str_replace('&nbsp;', '', $testEN2);
$testEN2 = str_replace('à', 'a', $testEN2); $testEN2 = str_replace('а', 'a', $testEN2);
$testEN2 = str_replace('á', 'b', $testEN2); $testEN2 = str_replace('б', 'b', $testEN2);
$testEN2 = str_replace('ñ', 'c', $testEN2); $testEN2 = str_replace('с', 'c', $testEN2);
$testEN2 = str_replace('â', 'b', $testEN2); $testEN2 = str_replace('в', 'b', $testEN2);
$testEN2 = str_replace('å', 'e', $testEN2); $testEN2 = str_replace('е', 'e', $testEN2);
$testEN2 = str_replace('ò', 't', $testEN2); $testEN2 = str_replace('т', 't', $testEN2);
$testEN2 = str_replace('î', 'o', $testEN2); $testEN2 = str_replace('о', 'o', $testEN2);
$testEN2 = str_replace('ð', 'p', $testEN2); $testEN2 = str_replace('р', 'p', $testEN2);
$testEN2 = str_replace('ì', 'm', $testEN2); $testEN2 = str_replace('м', 'm', $testEN2);
$testEN2 = str_replace('í', 'h', $testEN2); $testEN2 = str_replace('н', 'h', $testEN2);
$testEN2 = str_replace('ó', 'y', $testEN2); $testEN2 = str_replace('у', 'y', $testEN2);
$testEN2 = str_replace('ê', 'k', $testEN2); $testEN2 = str_replace('к', 'k', $testEN2);
$testEN2 = str_replace('è', 'u', $testEN2); $testEN2 = str_replace('и', 'u', $testEN2);
$testEN2 = str_replace('õ', 'x', $testEN2); $testEN2 = str_replace('х', 'x', $testEN2);
$testEN2 = str_replace('ÿ', '9', $testEN2); $testEN2 = str_replace('я', '9', $testEN2);
$testEN2 = str_replace('()', 'o', $testEN2); $testEN2 = str_replace('()', 'o', $testEN2);
$testEN2 = str_replace('0', 'o', $testEN2); $testEN2 = str_replace('0', 'o', $testEN2);
$testEN2 = preg_replace('/[^A-z]*/i', '', $testEN2); $testEN2 = preg_replace('/[^A-z]*/i', '', $testEN2);
$testRU = preg_replace('/[^À-ÿ]*/i', '', $txt); $testRU = preg_replace('/[^А]*/i', '', $txt);
$testRU2 = $txt; $testRU2 = $txt;
$testRU2 = str_replace('a', 'à', $testRU2); $testRU2 = str_replace('a', 'а', $testRU2);
$testRU2 = str_replace('b', 'á', $testRU2); $testRU2 = str_replace('b', 'б', $testRU2);
$testRU2 = str_replace('c', 'ñ', $testRU2); $testRU2 = str_replace('c', 'с', $testRU2);
$testRU2 = str_replace('b', 'â', $testRU2); $testRU2 = str_replace('b', 'в', $testRU2);
$testRU2 = str_replace('e', 'å', $testRU2); $testRU2 = str_replace('e', 'е', $testRU2);
$testRU2 = str_replace('t', 'ò', $testRU2); $testRU2 = str_replace('t', 'т', $testRU2);
$testRU2 = str_replace('o', 'î', $testRU2); $testRU2 = str_replace('o', 'о', $testRU2);
$testRU2 = str_replace('p', 'ð', $testRU2); $testRU2 = str_replace('p', 'р', $testRU2);
$testRU2 = str_replace('m', 'ì', $testRU2); $testRU2 = str_replace('m', 'м', $testRU2);
$testRU2 = str_replace('h', 'í', $testRU2); $testRU2 = str_replace('h', 'н', $testRU2);
$testRU2 = str_replace('y', 'ó', $testRU2); $testRU2 = str_replace('y', 'у', $testRU2);
$testRU2 = str_replace('k', 'ê', $testRU2); $testRU2 = str_replace('k', 'к', $testRU2);
$testRU2 = str_replace('x', 'õ', $testRU2); $testRU2 = str_replace('x', 'х', $testRU2);
$testRU2 = str_replace('u', 'è', $testRU2); $testRU2 = str_replace('u', 'и', $testRU2);
$testRU2 = str_replace('()', 'î', $testRU2); $testRU2 = str_replace('()', 'о', $testRU2);
$testRU2 = str_replace('0', 'î', $testRU2); $testRU2 = str_replace('0', 'о', $testRU2);
$testRU2 = preg_replace('/[^À-ÿ]*/i', ' ', $testRU2); $testRU2 = preg_replace('/[^А]*/i', ' ', $testRU2);
$testRU2 = preg_replace('/[^À-ß]*/i', ' ', $testRU2); $testRU2 = preg_replace('/[^А]*/i', ' ', $testRU2);
$i = 0; $i = 0;
$spe = explode('|', $spam); $spe = explode('|', $spam);
while ($i <= count($spe)) { while ($i <= count($spe)) {
@ -154,6 +154,6 @@ class Filter
public function __clone() public function __clone()
{ {
trigger_error('Äóáëèðîâàíèå íå äîïóñêàåòñÿ.', E_USER_ERROR); trigger_error('Дублирование не допускается.', E_USER_ERROR);
} }
} }

View File

@ -1,44 +1,55 @@
<?php <?php
/**@deprecated вроде нигде не вызывается, никем не используется */ /**@deprecated вроде нигде не вызывается, никем не используется */
class GameDealer class GameDealer
{ {
//Конфигурации //Конфигурации
private $c = [ private $c = [
'db_name' => 'pay_operations', //Таблица в которую заносятся данные 'db_name' => 'pay_operations', //Таблица в которую заносятся данные
'db_host' => 'localhost', 'db_host' => 'localhost',
'db_user' => 'newcom1_abk', 'db_user' => 'newcom1_abk',
'db_pass' => '4nWYsIM[c?}P', 'db_pass' => '4nWYsIM[c?}P',
'db_base' => 'newcom1_abk', /* Настройки платежей */ '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) '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 'key' => 'qtzl0igb', //gamedealer key
'id' => '65643' //ID проекта 'id' => '65643' //ID проекта
], $BACK = []; //Результат который возвращаем в конце ], $BACK = []; //Результат который возвращаем в конце
//Кодируем из ЮТФ-8 в Кирилицу //Кодируем из ЮТФ-8 в Кирилицу
/**
* @param $text
* @return mixed
* @deprecated
*/
public function in($text) public function in($text)
{ {
return iconv("UTF-8", "cp1251", $text); return $text;
} }
//Кодируем из Кирилицу в ЮТФ-8 //Кодируем из Кирилицу в ЮТФ-8
/**
* @param $text
* @return mixed
* @deprecated
*/
public function out($text) public function out($text)
{ {
return iconv("cp1251", "UTF-8", $text); return $text;
} }
//Добавляем данные в базу данных //Добавляем данные в базу данных
public function add($type, $value, $money) 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) . '")'); 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() public function connect_db()
{ {
$db = mysql_connect($this->c['db_host'], $this->c['db_user'], $this->c['db_pass']) or die('Ошибка подключения к MySQL серверу!'); $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_select_db($this->c['db_base'], $db) or die('Ошибка подключения к базе данных!');
mysql_query('SET NAMES cp1251'); mysql_query('SET NAMES utf8mb4');
} }
public function output($a, $v = null) public function output($a, $v = null)
@ -69,7 +80,7 @@ class GameDealer
return $r; return $r;
} }
//Генерируем XML-файл //Генерируем XML-файл
public function backInformation() public function backInformation()
{ {
header('Content-Type: text/html/force-download'); header('Content-Type: text/html/force-download');
@ -77,7 +88,7 @@ class GameDealer
echo $this->output($this->BACK, 1); echo $this->output($this->BACK, 1);
} }
//Проверка существования персонажа //Проверка существования персонажа
public function test_accaunt($nick) public function test_accaunt($nick)
{ {
$r = false; $r = false;
@ -88,7 +99,7 @@ class GameDealer
return $r; return $r;
} }
//Получает счет в банке по логину //Получает счет в банке по логину
public function getBank($nick) public function getBank($nick)
{ {
$nick = mysql_fetch_array(mysql_query('SELECT `id` FROM `users` WHERE `login` = "' . mysql_real_escape_string($nick) . '" LIMIT 1')); $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']; return $nick['id'];
} }
//Поиск логина //Поиск логина
public function bank_user($nick) 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')); $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']; return $nick['login'];
} }
//Начинаем обработку запросов //Начинаем обработку запросов
public function start_session() public function start_session()
{ {
$ip = ''; $ip = '';
$ip = $_SERVER['HTTP_X_REAL_IP']; $ip = $_SERVER['HTTP_X_REAL_IP'];
//Подключаемся к БД //Подключаемся к БД
$this->connect_db(); $this->connect_db();
//Получаем данные запроса //Получаем данные запроса
//$xml = file_get_contents('php://input'); //$xml = file_get_contents('php://input');
//Парсинг XML запроса //Парсинг XML запроса
if (function_exists('simplexml_load_string')) { if (function_exists('simplexml_load_string')) {
$xml = simplexml_load_string($xml); $xml = simplexml_load_string($xml);
} else { } else {
$this->BACK = [['gdanswer', [['status', '-1'], ['desc', 'Не удалось произвести обработку запроса']]]]; $this->BACK = [['gdanswer', [['status', '-1'], ['desc', 'Не удалось произвести обработку запроса']]]];
die($this->backInformation()); die($this->backInformation());
} }
$this->id = $xml->projectid; $this->id = $xml->projectid;
if (!in_array($ip, $this->c['ip_list'])) { 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()); die($this->backInformation());
} }
//Обработка запросов //Обработка запросов
if ($xml->method == 'check_balance') { if ($xml->method == 'check_balance') {
//<sign>MD5(method+MD5(gdKey))</sign> //<sign>MD5(method+MD5(gdKey))</sign>
$sign = md5($xml->method . md5($this->c['key'])); $sign = md5($xml->method . md5($this->c['key']));
if ($sign == $xml->sign) { if ($sign == $xml->sign) {
//Баланс дилера //Баланс дилера
$balance = 1000000; $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); $this->add('4', 'check:' . $xml->nick . ':1' . $r, 0);
} }
} elseif ($xml->method == 'check') { } 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'])); $sign = md5($xml->nick . $xml->method . md5($this->c['key']));
if ($sign == $xml->sign) { if ($sign == $xml->sign) {
$xml->nick = $this->in($xml->nick); $xml->nick = $this->in($xml->nick);
if ($this->test_accaunt($xml->nick) == true) { 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); $this->add('3', 'check:' . $xml->nick . ':1' . $r, 0);
} else { } else {
//Персонаж не найден //Персонаж не найден
$this->BACK = [['gdanswer', [['status', '-1'], ['desc', 'Платеж не обработан. Банковский счет не найден.']]]]; $this->BACK = [['gdanswer', [['status', '-1'], ['desc', 'Платеж не обработан. Банковский счет не найден.']]]];
$this->add('-1', 'Персонаж не найден:pay:' . $xml->nick . ':0', 0); $this->add('-1', 'Персонаж не найден:pay:' . $xml->nick . ':0', 0);
} }
} }
} elseif ($xml->method == 'pay') { } 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'])); $sign = md5($xml->nick . $xml->projectid . $xml->amount . $xml->payid . $xml->method . md5($this->c['key']));
if ($sign == $xml->sign) { if ($sign == $xml->sign) {
$xml->nick = $this->in($xml->nick); $xml->nick = $this->in($xml->nick);
if ($this->test_accaunt($xml->nick)) { if ($this->test_accaunt($xml->nick)) {
//Персонаж найден и зачисляем ему игровую валюту //Персонаж найден и зачисляем ему игровую валюту
$bank = $this->test_accaunt($xml->nick); $bank = $this->test_accaunt($xml->nick);
if ($bank > 0) { 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'); 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); $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')); $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'); 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) { if ($user['sex'] == 1) {
$r .= 'Уважаемая'; $r .= 'Уважаемая';
} else { } 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')"); 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 { } else {
$this->BACK = [['gdanswer', [['status', '-1'], ['desc', 'У пользователя отсутствует банк'], ['id', $this->c['id']]]]]; $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->add('-1', 'У персонажа отсутствует банк:pay:' . $xml->nick . ':' . $xml->projectid . ':' . $xml->sign . ':' . $xml->amount . ':' . $xml->payid . ':' . $bank['id'], $xml->amount);
} }
} else { } else {
//Персонаж не найден //Персонаж не найден
$this->BACK = [['gdanswer', [['status', '-1'], ['desc', 'Платеж не обработан. Персонаж не найден.']]]]; $this->BACK = [['gdanswer', [['status', '-1'], ['desc', 'Платеж не обработан. Персонаж не найден.']]]];
$this->add('-1', 'Персонаж не найден:pay:' . $xml->nick . ':0', 0); $this->add('-1', 'Персонаж не найден:pay:' . $xml->nick . ':0', 0);
} }
} else { } else {
//Ошибка сигнатуры //Ошибка сигнатуры
$this->BACK = [['gdanswer', [['status', '-1'], ['desc', 'Ошибка сигнатуры']]]]; $this->BACK = [['gdanswer', [['status', '-1'], ['desc', 'Ошибка сигнатуры']]]];
$this->add('-1', 'Ошибка сигнатуры:pay:' . $xml->nick . ':0', 0); $this->add('-1', 'Ошибка сигнатуры:pay:' . $xml->nick . ':0', 0);
} }
} elseif ($xml->method == 'check_login') { } elseif ($xml->method == 'check_login') {
/* Проверка аккаунта /* Проверка аккаунта
nick - логин аккаунта , projectid - id проекта , sign */ nick - логин аккаунта , projectid - id проекта , sign */
$sign = md5($xml->nick . $xml->method . md5($this->c['key'])); $sign = md5($xml->nick . $xml->method . md5($this->c['key']));
if ($sign == $xml->sign) { if ($sign == $xml->sign) {
$xml->nick = $this->in($xml->nick); $xml->nick = $this->in($xml->nick);
if ($this->test_accaunt($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); $this->add('1', 'check_login:' . $xml->nick . ':1' . $r, 0);
} else { } else {
//Персонаж не найден //Персонаж не найден
$this->BACK = [['gdanswer', [['status', '-1'], ['desc', 'Счет не найден']]]]; $this->BACK = [['gdanswer', [['status', '-1'], ['desc', 'Счет не найден']]]];
$this->add('-1', 'Персонаж не найден:check_login:' . $xml->nick . ':0', 0); $this->add('-1', 'Персонаж не найден:check_login:' . $xml->nick . ':0', 0);
} }
} else { } else {
//Ошибка сигнатуры //Ошибка сигнатуры
$this->BACK = [['gdanswer', [['status', '-1'], ['desc', 'Ошибка сигнатуры']]]]; $this->BACK = [['gdanswer', [['status', '-1'], ['desc', 'Ошибка сигнатуры']]]];
$this->add('-1', 'Ошибка сигнатуры:pay:' . $xml->nick . ':0', 0); $this->add('-1', 'Ошибка сигнатуры:pay:' . $xml->nick . ':0', 0);
} }
} else { } else {
$this->BACK = [['gdanswer', [['status', '-1'], ['desc', 'Неизвестный тип запроса']]]]; $this->BACK = [['gdanswer', [['status', '-1'], ['desc', 'Неизвестный тип запроса']]]];
$this->add('-1', 'Неизвестный тип запроса:error_method:gamedealer', 0); $this->add('-1', 'Неизвестный тип запроса:error_method:gamedealer', 0);
} }
//Возвращаем результат //Возвращаем результат
$this->backInformation(); $this->backInformation();
} }
} }

View File

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

View File

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

View File

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

View File

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

View File

@ -11,13 +11,13 @@ class Tournament
private const PRIZE2 = 10; private const PRIZE2 = 10;
private const PRIZE3 = 5; private const PRIZE3 = 5;
const MIN_EXP = 175000; const MIN_EXP = 175000;
private const CHAT_MESSAGE = 'Внимание! Турнир для %d уровня открыт! Поспешите принять участие в Зале Воинов!'; private const CHAT_MESSAGE = 'Внимание! Турнир для %d уровня открыт! Поспешите принять участие в Зале Воинов!';
private const VICTORY_MESSAGE = 'Турнир для %d уровней завершён! Первое место: %s. Второе место: %s. Третье место: %s.'; private const VICTORY_MESSAGE = 'Турнир для %d уровней завершён! Первое место: %s. Второе место: %s. Третье место: %s.';
private const DELAY1 = '+12hour'; private const DELAY1 = '+12hour';
private const DELAY2 = '+6hour'; private const DELAY2 = '+6hour';
private const DELAY3 = '+3hour'; private const DELAY3 = '+3hour';
/** Формула рассчёта разрешённой стоимости одетых предметов. /** Формула рассчёта разрешённой стоимости одетых предметов.
* *
* @param int $int * @param int $int
* *
@ -29,7 +29,7 @@ class Tournament
} }
/** /**
* Проверяем может ли игрок учавствовать в турнире и либо присоединяем его, либо обламываем. * Проверяем может ли игрок учавствовать в турнире и либо присоединяем его, либо обламываем.
* *
* @param int $uid * @param int $uid
* *
@ -37,7 +37,7 @@ class Tournament
*/ */
public function join(int $uid): void public function join(int $uid): void
{ {
/** Возвращает level, или 0 если провалены проверки. */ /** Возвращает level, или 0 если провалены проверки. */
$userLevel = TournamentModel::getUserLevel($uid); $userLevel = TournamentModel::getUserLevel($uid);
if ( if (
$userLevel === 0 || $userLevel === 0 ||
@ -67,7 +67,7 @@ class Tournament
} }
/** /**
* Проверка для крона\конфига. Выбивает проигравших и перезапускает поединки во всех турнирах. * Проверка для крона\конфига. Выбивает проигравших и перезапускает поединки во всех турнирах.
* @return void * @return void
*/ */
public function startAllBattles(): void public function startAllBattles(): void
@ -91,7 +91,7 @@ class Tournament
} }
/** /**
* Получаем пары бойцов и начинаем их поединки. * Получаем пары бойцов и начинаем их поединки.
* *
* @param array $fightersList * @param array $fightersList
* *
@ -108,7 +108,7 @@ class Tournament
} }
/** /**
* Награждаем победителей турнира, чистим базу. * Награждаем победителей турнира, чистим базу.
* *
* @param int $tid * @param int $tid
* *

View File

@ -6,8 +6,8 @@ class TournamentModel
{ {
/** /**
* проверка уровня, стоимости эквипа, прочие проверки, что персонаж свободен * проверка уровня, стоимости эквипа, прочие проверки, что персонаж свободен
* таймер ожидания 30 минут * таймер ожидания 30 минут
* *
* @param int $uid * @param int $uid
* *
@ -70,7 +70,7 @@ class TournamentModel
} }
/** /**
* Считаем сколько игроков ждут в заявке на турнир. * Считаем сколько игроков ждут в заявке на турнир.
* *
* @param int $tid * @param int $tid
* *
@ -83,7 +83,7 @@ class TournamentModel
} }
/** /**
* Создание нового турнира. * Создание нового турнира.
* *
* @param int $tid * @param int $tid
* *
@ -96,7 +96,7 @@ class TournamentModel
} }
/** /**
* Игрок присоединяется к турниру и телепортируется в турнирную комнату. * Игрок присоединяется к турниру и телепортируется в турнирную комнату.
* *
* @param int $uid * @param int $uid
* @param int $tid * @param int $tid
@ -105,7 +105,7 @@ class TournamentModel
*/ */
public static function joinTournament(int $uid, int $tid): void public static function joinTournament(int $uid, int $tid): void
{ {
/** Кастомные комнаты 25008 - 25012. */ /** Кастомные комнаты 25008 - 25012. */
$roomId = 25000 + $tid; $roomId = 25000 + $tid;
$db = new Db(); $db = new Db();
$db::sql('insert into tournaments_users (tid, uid) values (?, ?)', [$tid, $uid]); $db::sql('insert into tournaments_users (tid, uid) values (?, ?)', [$tid, $uid]);
@ -113,7 +113,7 @@ class TournamentModel
} }
/** /**
* Старт турнира. * Старт турнира.
* *
* @param int $tid * @param int $tid
* *
@ -126,7 +126,7 @@ class TournamentModel
} }
/** /**
* Чистим базы от прошедшего турнира. * Чистим базы от прошедшего турнира.
* *
* @param int $tid * @param int $tid
* *
@ -135,12 +135,12 @@ class TournamentModel
public static function destroyTournament(int $tid): void public static function destroyTournament(int $tid): void
{ {
$db = new Db(); $db = new Db();
//Убедиться что в базе настроен foreign_keys и последует автоочистка tournaments_users !!! //Убедиться что в базе настроен foreign_keys и последует автоочистка tournaments_users !!!
$db::sql('delete from tournaments where tid = ?', [$tid]); $db::sql('delete from tournaments where tid = ?', [$tid]);
} }
/** /**
* Получаем список бойцов и бьём их на пары. Возвращаем списки пар + 1 последний без пары если есть. * Получаем список бойцов и бьём их на пары. Возвращаем списки пар + 1 последний без пары если есть.
* *
* @param array $fightersList * @param array $fightersList
* *
@ -154,7 +154,7 @@ class TournamentModel
} }
/** /**
* Выбираем живых бойцов не сражающихся в данный момент. * Выбираем живых бойцов не сражающихся в данный момент.
* *
* @param int $tid * @param int $tid
* *
@ -167,7 +167,7 @@ class TournamentModel
} }
/** /**
* Выбираем победителей. Смещаем массив, чтобы возврат шёл с единицы. * Выбираем победителей. Смещаем массив, чтобы возврат шёл с единицы.
* *
* @param int $tid * @param int $tid
* *
@ -185,7 +185,7 @@ class TournamentModel
} }
/** /**
* Пробуем выкусить проигравшего в последней турнирной битве и удалить эту самую битву во избежание. * Пробуем выкусить проигравшего в последней турнирной битве и удалить эту самую битву во избежание.
* @return mixed * @return mixed
*/ */
public static function getLooser() public static function getLooser()
@ -216,7 +216,7 @@ class TournamentModel
} }
/** /**
* Выбывший из турнира покидает комнату и получает время смерти. * Выбывший из турнира покидает комнату и получает время смерти.
* *
* @param int $uid * @param int $uid
* @param bool $winner * @param bool $winner
@ -227,17 +227,17 @@ class TournamentModel
if (!$uid) { if (!$uid) {
return; return;
} }
//$winner_timer_add = $winner? 500 : 0; # Последный ДОЛЖЕН быть последним. //$winner_timer_add = $winner? 500 : 0; # Последный ДОЛЖЕН быть последним.
$db = new Db(); $db = new Db();
$db::sql('update tournaments_users set death_time = unix_timestamp() + 500 where death_time = 0 and uid = ?', [$uid]); $db::sql('update tournaments_users set death_time = unix_timestamp() + 500 where death_time = 0 and uid = ?', [$uid]);
self::teleport($uid, 9); self::teleport($uid, 9);
//fixme: Классы не подключаются друг к другу. Нужно менять архитектуру игры. :( //fixme: Классы не подключаются друг к другу. Нужно менять архитектуру игры. :(
Db::sql("update users_achiv set trn = trn + 1 where id = ?", [$uid]); Db::sql("update users_achiv set trn = trn + 1 where id = ?", [$uid]);
//(new Achievements(\user::start()))->updateCounter('trn'); //(new Achievements(\user::start()))->updateCounter('trn');
} }
/** /**
* Узнаём id турнира по id игрока. * Узнаём id турнира по id игрока.
* *
* @param int $uid * @param int $uid
* *
@ -250,10 +250,10 @@ class TournamentModel
} }
/** /**
* Попробуем стартонуть поединок. * Попробуем стартонуть поединок.
* 25000 - Уникальный id поединка под турниры. * 25000 - Уникальный id поединка под турниры.
* noinc - запрет на вмешательство * noinc - запрет на вмешательство
* invis - невидимый бой * invis - невидимый бой
* *
* @param int $uid1 * @param int $uid1
* @param int $uid2 * @param int $uid2
@ -270,14 +270,14 @@ class TournamentModel
$db::exec('insert into battle (city, time_start, timeout, type, invis, noinc, travmChance, typeBattle) $db::exec('insert into battle (city, time_start, timeout, type, invis, noinc, travmChance, typeBattle)
values (\'capitalcity\', unix_timestamp(), 60, 0, 1, 1, 0, 25000)'); 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 = 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 stats set team = 2, hpNow = hpAll, mpNow = mpAll where id = ?', [$uid2]);
$db::sql('update users set battle = ? where id in (?, ?)', [$bid, $uid1, $uid2]); $db::sql('update users set battle = ? where id in (?, ?)', [$bid, $uid1, $uid2]);
} }
/** /**
* Узнаём логин персонажа по его id. * Узнаём логин персонажа по его id.
* *
* @param int $uid * @param int $uid
* *
@ -290,7 +290,7 @@ class TournamentModel
} }
/** /**
* Телепорт по комнатам. * Телепорт по комнатам.
* *
* @param int $uid * @param int $uid
* @param int $roomId * @param int $roomId
@ -304,7 +304,7 @@ class TournamentModel
} }
/** /**
* Нет проверок $message потому что оно всегда задаётся в коде и игрок на него не влияет. * Нет проверок $message потому что оно всегда задаётся в коде и игрок на него не влияет.
* *
* @param string $message * @param string $message
* *
@ -320,7 +320,7 @@ class TournamentModel
} }
/** /**
* Генерирует множественный запрос сразу на $quantity однотипных предметов в инвентарь пользователя $uid. * Генерирует множественный запрос сразу на $quantity однотипных предметов в инвентарь пользователя $uid.
* *
* @param int $uid * @param int $uid
* @param int $quantity * @param int $quantity
@ -342,7 +342,7 @@ class TournamentModel
} }
} }
/** Эффект-ограничитель на участие в турнире. /** Эффект-ограничитель на участие в турнире.
* @param int $uid * @param int $uid
* @param int $unixtime * @param int $unixtime
* *
@ -352,7 +352,7 @@ class TournamentModel
{ {
$db = new Db(); $db = new Db();
$query = 'insert into eff_users (id_eff, uid, name, timeUse) VALUES (?,?,?,?)'; $query = 'insert into eff_users (id_eff, uid, name, timeUse) VALUES (?,?,?,?)';
$args = [486, $uid, 'Призёр городского турнира!', $unixtime]; $args = [486, $uid, 'Призёр городского турнира!', $unixtime];
$db::sql($query, $args); $db::sql($query, $args);
} }
} }

View File

@ -11,8 +11,8 @@ class Config
const PRIZE2 = 10; const PRIZE2 = 10;
const PRIZE3 = 5; const PRIZE3 = 5;
const MIN_EXP = 175000; const MIN_EXP = 175000;
const CHAT_MESSAGE = 'Внимание! Турнир для %d уровня открыт! Поспешите принять участие в Зале Воинов!'; const CHAT_MESSAGE = 'Внимание! Турнир для %d уровня открыт! Поспешите принять участие в Зале Воинов!';
const VICTORY_MESSAGE = 'Турнир для %d уровней завершён! Первое место: %s. Второе место: %s. Третье место: %s.'; const VICTORY_MESSAGE = 'Турнир для %d уровней завершён! Первое место: %s. Второе место: %s. Третье место: %s.';
const DELAY1 = '+12hour'; const DELAY1 = '+12hour';
const DELAY2 = '+6hour'; const DELAY2 = '+6hour';
const DELAY3 = '+3hour'; const DELAY3 = '+3hour';
@ -23,7 +23,7 @@ class Config
const RETURN_ROOM = 9; const RETURN_ROOM = 9;
const MINIMUM_USER_LEVEL = 8; const MINIMUM_USER_LEVEL = 8;
/** Формула рассчёта разрешённой стоимости одетых предметов. /** Формула рассчёта разрешённой стоимости одетых предметов.
* *
* @param $level * @param $level
* @return float|int * @return float|int

View File

@ -48,7 +48,7 @@ class GameConnector
} }
/** /**
* Узнаём логин персонажа по его id. * Узнаём логин персонажа по его id.
* *
* @return mixed * @return mixed
*/ */
@ -58,9 +58,9 @@ class GameConnector
} }
/** /**
* Телепорт по комнатам. * Телепорт по комнатам.
* *
* @param bool $out - обратный телепорт. * @param bool $out - обратный телепорт.
* *
* @return void * @return void
*/ */
@ -71,9 +71,9 @@ class GameConnector
} }
/** /**
* Получаем список бойцов и бьём их на пары, между которыми стартуют поединки 1х1. * Получаем список бойцов и бьём их на пары, между которыми стартуют поединки 1х1.
* noinc - запрет на вмешательство * noinc - запрет на вмешательство
* invis - невидимый бой * invis - невидимый бой
* *
* @param array $fightersList * @param array $fightersList
* *
@ -100,7 +100,7 @@ class GameConnector
} }
/** /**
* Генерирует множественный запрос сразу на $quantity однотипных предметов в инвентарь пользователя $uid. * Генерирует множественный запрос сразу на $quantity однотипных предметов в инвентарь пользователя $uid.
* *
* @param int $quantity * @param int $quantity
* *
@ -120,7 +120,7 @@ class GameConnector
} }
} }
/** Эффект-ограничитель на участие в турнире. /** Эффект-ограничитель на участие в турнире.
* *
* @param int $unixtime * @param int $unixtime
* *
@ -134,7 +134,7 @@ class GameConnector
} }
/** /**
* Пробуем выкусить проигравшего в последней турнирной битве и удалить эту самую битву во избежание. * Пробуем выкусить проигравшего в последней турнирной битве и удалить эту самую битву во избежание.
* @return mixed * @return mixed
*/ */
public static function getLooser(): int public static function getLooser(): int
@ -157,7 +157,7 @@ class GameConnector
} }
/** /**
* Нет проверок $message потому что оно всегда задаётся в коде и игрок на него не влияет. * Нет проверок $message потому что оно всегда задаётся в коде и игрок на него не влияет.
* *
* @param string $message * @param string $message
* *

View File

@ -39,19 +39,19 @@ class Tournament
$list = ''; $list = '';
$tournamentMembersId = new User(); $tournamentMembersId = new User();
foreach ($this->t as $row) { 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 = []; $members = [];
foreach ($tournamentMembersId->getAlive($row['tid']) as $member) { foreach ($tournamentMembersId->getAlive($row['tid']) as $member) {
$members[] = (new GameConnector())->setUser($member)->uidToLogin(); $members[] = (new GameConnector())->setUser($member)->uidToLogin();
} }
$list .= sprintf( $list .= sprintf(
"<li>Турнир для %d уровней.<br>Время подачи заявки: %s<br>Участники: %s</li>", "<li>Турнир для %d уровней.<br>Время подачи заявки: %s<br>Участники: %s</li>",
$row['tid'], $row['tid'],
$time, $time,
implode(', ', $members) 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 public function getOne(int $tid): string
@ -60,13 +60,13 @@ class Tournament
$tournamentMembersId = new User(); $tournamentMembersId = new User();
foreach ($this->t as $row) { foreach ($this->t as $row) {
if ($this->t['tid'] === $tid) { 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 = []; $members = [];
foreach ($tournamentMembersId->getAlive($row['tid']) as $member) { foreach ($tournamentMembersId->getAlive($row['tid']) as $member) {
$members[] = (new GameConnector())->setUser($member)->uidToLogin(); $members[] = (new GameConnector())->setUser($member)->uidToLogin();
} }
$str = sprintf( $str = sprintf(
"<div>Турнир для %d уровней.<br>Время подачи заявки: %s<br>Участники: %s</div>", "<div>Турнир для %d уровней.<br>Время подачи заявки: %s<br>Участники: %s</div>",
$row['tid'], $row['tid'],
$time, $time,
implode(', ', $members) implode(', ', $members)
@ -77,7 +77,7 @@ class Tournament
} }
/** /**
* Создание нового турнира. * Создание нового турнира.
* *
* @param int $tid * @param int $tid
* *
@ -89,7 +89,7 @@ class Tournament
} }
/** /**
* Старт турнира. * Старт турнира.
* *
* @param int $tid * @param int $tid
* *
@ -101,7 +101,7 @@ class Tournament
} }
/** /**
* Чистим базы от прошедшего турнира. * Чистим базы от прошедшего турнира.
* *
* @param int $tid * @param int $tid
* *

View File

@ -16,7 +16,7 @@ class User
/** /**
* Считаем сколько игроков ждут в заявке на турнир. * Считаем сколько игроков ждут в заявке на турнир.
* *
* @param int $tid * @param int $tid
* *
@ -38,7 +38,7 @@ class User
} }
/** /**
* Игрок присоединяется к турниру и телепортируется в турнирную комнату. * Игрок присоединяется к турниру и телепортируется в турнирную комнату.
* *
* @param int $uid * @param int $uid
* @param int $tid * @param int $tid
@ -52,10 +52,10 @@ class User
} }
/** /**
* Выбираем живых бойцов не сражающихся в данный момент. * Выбираем живых бойцов не сражающихся в данный момент.
* *
* @param int $tid * @param int $tid
* @param bool $shuffle - установить true если нужно перетасовать массив. * @param bool $shuffle - установить true если нужно перетасовать массив.
* *
* @return array * @return array
*/ */
@ -74,7 +74,7 @@ class User
} }
/** /**
* Выбираем победителей. * Выбираем победителей.
* *
* @param int $tid * @param int $tid
* *
@ -102,7 +102,7 @@ class User
} }
/** /**
* Выбывший из турнира покидает комнату и получает время смерти. * Выбывший из турнира покидает комнату и получает время смерти.
* *
* @param int $uid * @param int $uid
* *
@ -115,7 +115,7 @@ class User
} }
/** /**
* Узнаём id турнира по id игрока. * Узнаём id турнира по id игрока.
* *
* @param int $uid * @param int $uid
* *

View File

@ -5,7 +5,7 @@ namespace Insallah\Tournaments;
class Tournament class Tournament
{ {
/** /**
* Проверяем может ли игрок учавствовать в турнире и либо присоединяем его, либо обламываем. * Проверяем может ли игрок учавствовать в турнире и либо присоединяем его, либо обламываем.
* *
* @param int $uid * @param int $uid
* *
@ -13,7 +13,7 @@ class Tournament
*/ */
public function join(int $uid) public function join(int $uid)
{ {
/** Возвращает level, или 0 если провалены проверки. */ /** Возвращает level, или 0 если провалены проверки. */
$checks = new Model\GameConnector(); $checks = new Model\GameConnector();
$tournament = new Model\Tournament(); $tournament = new Model\Tournament();
$userLevel = $checks->setUser($uid)->getAllowedLevel(); $userLevel = $checks->setUser($uid)->getAllowedLevel();
@ -47,7 +47,7 @@ class Tournament
} }
/** /**
* Проверка для крона\конфига. Выбивает проигравших и перезапускает поединки во всех турнирах. * Проверка для крона\конфига. Выбивает проигравших и перезапускает поединки во всех турнирах.
* @return void * @return void
*/ */
public static function startAllBattles() public static function startAllBattles()
@ -70,7 +70,7 @@ class Tournament
} }
/** /**
* Награждаем победителей турнира, чистим базу. * Награждаем победителей турнира, чистим базу.
* *
* @param int $tid * @param int $tid
* *

View File

@ -14,34 +14,34 @@ class TList
public function __construct($user) public function __construct($user)
{ {
if (!Config::IS_ENABLED) { if (!Config::IS_ENABLED) {
$this->str = '<div><strong style="color: crimson;">В данный момент турниры не проводятся!</strong></div>'; $this->str = '<div><strong style="color: crimson;">В данный момент турниры не проводятся!</strong></div>';
return; return;
} }
$tournamentstatus = new Tournament(); $tournamentstatus = new Tournament();
$this->str = '<div> $this->str = '<div>
<strong style="color: crimson;">Внимание!</strong> <strong style="color: crimson;">Внимание!</strong>
<ul> <ul>
<li>Присоединяясь к турниру покинуть заявку <u>невозможно</u>!</li>'; <li>Присоединяясь к турниру покинуть заявку <u>невозможно</u>!</li>';
if ((new GameConnector())->setUser($user->info['id'])->isEkrOverpriced()) { if ((new GameConnector())->setUser($user->info['id'])->isEkrOverpriced()) {
$this->str .= '<li>Стоимость предметов, одетых на вас не должна $this->str .= '<li>Стоимость предметов, одетых на вас не должна
превышать ' . Config::ekrOverpriceFormula($user->info['level']) . ' еврокредитов. превышать ' . Config::ekrOverpriceFormula($user->info['level']) . ' еврокредитов.
</li>'; </li>';
} }
if ($user->info['exp'] < Config::MIN_EXP) { if ($user->info['exp'] < Config::MIN_EXP) {
$this->str .= '<li>У вас должно быть не менее ' . Config::MIN_EXP . ' опыта.</li>'; $this->str .= '<li>У вас должно быть не менее ' . Config::MIN_EXP . ' опыта.</li>';
} }
$this->str .= '<li>Турнир начнётся, когда в заявке $this->str .= '<li>Турнир начнётся, когда в заявке
наберётся ' . Config::START_TOURNAMENT . ' человек.</li> наберётся ' . Config::START_TOURNAMENT . ' человек.</li>
</ul> </ul>
</div>'; </div>';
$this->str .= $tournamentstatus->getList(); $this->str .= $tournamentstatus->getList();
if (!User::getTournamentIdByUserId($user->info['id']) || !$tournamentstatus->isStarted($user->info['level'])) { if (!User::getTournamentIdByUserId($user->info['id']) || !$tournamentstatus->isStarted($user->info['level'])) {
$this->str .= '<form method="post"> $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'] . '"> <input type="hidden" name="key" value="' . $_SESSION['bypass'] . '">
</form>'; </form>';
} else { } 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; private $free_x = 28;
/* Проверка доступности квеста */ /* Проверка доступности квеста */
public function testGood($pl) public function testGood($pl)
{ {
global $u; global $u;
@ -17,12 +17,12 @@ class Quests
$d1 = 0; $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')); $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]; $pl1 = $pl1[0];
//Если уже более 5 квестов взяли //Если уже более 5 квестов взяли
if ($d1 >= $this->free_x) { if ($d1 >= $this->free_x) {
$r = 0; $r = 0;
} }
unset($d1, $pl1, $sp1); 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')); $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') { if (isset($qlst['id']) && $qlst['vals'] != 'win' && $qlst['vals'] != 'end' && $qlst['vals'] != 'bad') {
$r = 0; $r = 0;
@ -30,7 +30,7 @@ class Quests
unset($qlst, $qlst2); unset($qlst, $qlst2);
$d = $this->expl($pl['tr_date']); $d = $this->expl($pl['tr_date']);
//Завершить квесты [ 1,2,3,4,5 ... //Завершить квесты [ 1,2,3,4,5 ...
if (isset($d['tr_endq'])) { if (isset($d['tr_endq'])) {
$i = 0; $i = 0;
$e = explode(',', $d['tr_endq']); $e = explode(',', $d['tr_endq']);
@ -43,7 +43,7 @@ class Quests
} }
unset($qn, $qlst, $qlst2); unset($qn, $qlst, $qlst2);
} }
//Задержка между выполнением квеста //Задержка между выполнением квеста
if (isset($d['tr_zdr'])) { 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')); $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) { if ($qlst['time'] + ($d['tr_zdr'] * 60 * 60) - time() > 0) {
@ -51,7 +51,7 @@ class Quests
} }
unset($qlst); unset($qlst);
} }
//Переодичность квеста //Переодичность квеста
if (isset($d['tr_tm1'])) { if (isset($d['tr_tm1'])) {
$d['tr_tm1'] = str_replace('d', date('d'), $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']); $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('d', date('d'), $d['tr_tm2']);
$d['tr_tm2'] = str_replace('m', date('m'), $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']); $d['tr_tm2'] = str_replace('y', date('y'), $d['tr_tm2']);
//проверка интервалов //проверка интервалов
} }
//Сколько раз можно пройти квест //Сколько раз можно пройти квест
if (isset($d['tr_raz'])) { 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); $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) { if ($d['tr_raz'] > 0 && $d['tr_raz'] - $qlst[0] <= 0) {
@ -69,7 +69,7 @@ class Quests
} }
unset($qlst); unset($qlst);
} }
//Попыток пройти квест //Попыток пройти квест
if (isset($d['tr_raz2'])) { 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); $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) { if ($d['tr_raz2'] - $qlst[0] <= 0) {
@ -81,7 +81,7 @@ class Quests
} }
public function onlyOnceQuest($quests, $uid) public function onlyOnceQuest($quests, $uid)
{ // Отсеиваем одноразовые квесты { // Отсеиваем одноразовые квесты
$result = []; $result = [];
$rep = mysql_fetch_array(mysql_query('SELECT * FROM `rep` WHERE `id` = "' . $uid)); $rep = mysql_fetch_array(mysql_query('SELECT * FROM `rep` WHERE `id` = "' . $uid));
foreach ($quests as $quest) { foreach ($quests as $quest) {
@ -117,20 +117,20 @@ class Quests
return $result; return $result;
} }
/* Взять квест */ /* Взять квест */
public function startq($id, $val = null) public function startq($id, $val = null)
{ {
global $c, $u; 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')); $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'])) { if (isset($pl['id'])) {
$u->addAction(time(), 'start_quest' . $pl['id'], 'go', null, $val); $u->addAction(time(), 'start_quest' . $pl['id'], 'go', null, $val);
$u->error = 'Вы успешно получили задание &quot;' . $pl['name'] . '&quot;'; $u->error = 'Вы успешно получили задание &quot;' . $pl['name'] . '&quot;';
} else { } else {
$u->error = 'Не удалось получить данное задание'; $u->error = 'Не удалось получить данное задание';
} }
} }
/* Взять квест в пещере */ /* Взять квест в пещере */
public function startq_dn($id, $val = null) public function startq_dn($id, $val = null)
{ {
global $c, $u; global $c, $u;
@ -140,13 +140,13 @@ class Quests
$u->addAction(time(), 'start_quest' . $pl['id'], 'go'); $u->addAction(time(), 'start_quest' . $pl['id'], 'go');
else else
$u->addAction(time(), 'start_quest' . $pl['id'], 'go', $u->info['id'], $val); $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 { } else {
$u->error = 'Не удалось получить данное задание'; $u->error = 'Не удалось получить данное задание';
} }
} }
/* Отказаться от квеста */ /* Отказаться от квеста */
public function endq($id, $tp) public function endq($id, $tp)
{ {
global $u; global $u;
@ -155,28 +155,28 @@ class Quests
if (isset($qlst['id'])) { if (isset($qlst['id'])) {
if ($tp == 'end') { if ($tp == 'end') {
mysql_query('UPDATE `actions` SET `vals` = "end" WHERE `id` = "' . $qlst['id'] . '" LIMIT 1'); 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') { } elseif ($tp == 'win') {
mysql_query('UPDATE `actions` SET `vals` = "win" ,`time` = "' . time() . '" WHERE `id` = "' . $qlst['id'] . '" LIMIT 1'); mysql_query('UPDATE `actions` SET `vals` = "win" ,`time` = "' . time() . '" WHERE `id` = "' . $qlst['id'] . '" LIMIT 1');
} }
} else { } else {
$u->error = 'Не удалось отказаться от задания '; $u->error = 'Не удалось отказаться от задания ';
} }
} }
/* Инфо о квесте в пещерах */ /* Инфо о квесте в пещерах */
public function infoDng($pl) public function infoDng($pl)
{ {
global $u; global $u;
$r = 0; $r = 0;
$xrz = 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')); $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['tr_date']);
//Действия квеста //Действия квеста
$d = $this->expl($pl['act_date']); $d = $this->expl($pl['act_date']);
//Поговорить с NPS //Поговорить с NPS
if (isset($d['dlg_nps'])) { if (isset($d['dlg_nps'])) {
$i7 = 0; $i7 = 0;
$x3 = explode(',', $d['dlg_nps']); $x3 = explode(',', $d['dlg_nps']);
@ -190,12 +190,12 @@ class Quests
unset($x1, $x3, $x4, $i7); unset($x1, $x3, $x4, $i7);
} }
//Убить игроков //Убить игроков
if (isset($d['kill_user'])) { if (isset($d['kill_user'])) {
$r += $d['kill_user']; $r += $d['kill_user'];
} }
//Убить ботов //Убить ботов
if (isset($d['kill_bot'])) { if (isset($d['kill_bot'])) {
$x = ''; $x = '';
$ex = explode(',', $d['kill_bot']); $ex = explode(',', $d['kill_bot']);
@ -221,7 +221,7 @@ class Quests
unset($x, $ex, $x2, $bot2, $ex2); unset($x, $ex, $x2, $bot2, $ex2);
} }
//Собрать ресурсы //Собрать ресурсы
if (isset($d['tk_itm'])) { if (isset($d['tk_itm'])) {
$ex = explode(',', $d['tk_itm']); $ex = explode(',', $d['tk_itm']);
$i = 0; $i = 0;
@ -237,7 +237,7 @@ class Quests
} }
} }
//Собрать трофеи //Собрать трофеи
if (isset($d['tkill_itm'])) { if (isset($d['tkill_itm'])) {
$ex = explode(',', $d['tkill_itm']); $ex = explode(',', $d['tkill_itm']);
$i = 0; $i = 0;
@ -263,27 +263,27 @@ class Quests
$xrz = $r; $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"> $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 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 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 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>'; </div></td></tr></table><br><script>top.startHpRegen("main",-1234500000' . $pl['id'] . ',' . $xrz . ',' . $r . ',0,0,0,0,0,0,1);</script>';
} }
return $r; return $r;
} }
/* Информация о квесте */ /* Информация о квесте */
public function info($pl) public function info($pl)
{ {
global $u; global $u;
$r = ''; $r = '';
$t = ''; $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')); $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['tr_date']);
//Завершить квесты [ 1,2,3,4,5 ... //Завершить квесты [ 1,2,3,4,5 ...
if (isset($d['tr_endq'])) { if (isset($d['tr_endq'])) {
$t .= 'Завершить квесты: '; $t .= 'Завершить квесты: ';
$i = 0; $i = 0;
$e = explode(',', $d['tr_endq']); $e = explode(',', $d['tr_endq']);
while ($i <= count($e)) { while ($i <= count($e)) {
@ -299,26 +299,26 @@ class Quests
$t .= '<br>'; $t .= '<br>';
unset($qn); unset($qn);
} }
//Из ботов падают предметы [ idbot-itm1=%,itm2=%| //Из ботов падают предметы [ idbot-itm1=%,itm2=%|
if (isset($d['tr_botitm'])) { if (isset($d['tr_botitm'])) {
$t .= 'Из ботов выпадают предметы:<ul>'; $t .= 'Из ботов выпадают предметы:<ul>';
$e = explode('|', $d['tr_botitm']); $e = explode('|', $d['tr_botitm']);
$i = 0; $i = 0;
while ($i < count($e)) { while ($i < count($e)) {
$j = 0; $j = 0;
$e2 = explode('-', $e[$i]); $e2 = explode('-', $e[$i]);
//$e2[0] - id бота //$e2[0] - id бота
if ($e2[0] > 0) { if ($e2[0] > 0) {
$qn = mysql_fetch_array(mysql_query('SELECT `login` FROM `test_bot` WHERE `id` = "' . $e2[0] . '" LIMIT 1')); $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 { } else {
$t .= '&nbsp; &nbsp; &bull; Из любых ботов выпадает: '; $t .= '&nbsp; &nbsp; &bull; Из любых ботов выпадает: ';
} }
//$e2[1] - предметы //$e2[1] - предметы
$e3 = explode(',', $e2[1]); $e3 = explode(',', $e2[1]);
while ($j < count($e3)) { while ($j < count($e3)) {
$e4 = explode('=', $e3[$j]); $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')); $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>, '; $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++; $j++;
@ -329,26 +329,26 @@ class Quests
$t .= '<br>'; $t .= '<br>';
unset($qn, $qi, $e2, $e3, $e4); unset($qn, $qi, $e2, $e3, $e4);
} }
//При выйгрыше падают предметы [ type-itm1=%,itm2=%| //При выйгрыше падают предметы [ type-itm1=%,itm2=%|
if (isset($d['tr_winitm'])) { if (isset($d['tr_winitm'])) {
$t .= 'После победы выпадают предметы:<br>'; $t .= 'После победы выпадают предметы:<br>';
$e = explode('|', $d['tr_winitm']); $e = explode('|', $d['tr_winitm']);
$i = 0; $i = 0;
while ($i < count($e)) { while ($i < count($e)) {
$e2 = explode('-', $e[$i]); $e2 = explode('-', $e[$i]);
$t .= '&nbsp; &nbsp; &bull; '; $t .= '&nbsp; &nbsp; &bull; ';
//$e2[0] - id бота //$e2[0] - id бота
if ($e2[0] > 0) { if ($e2[0] > 0) {
$t .= 'Из людей выпадает: '; $t .= 'Из людей выпадает: ';
} else { } else {
$t .= 'Из ботов выпадает: '; $t .= 'Из ботов выпадает: ';
} }
//$e2[1] - предметы //$e2[1] - предметы
$j = 0; $j = 0;
$e3 = explode(',', $e2[1]); $e3 = explode(',', $e2[1]);
while ($j < count($e3)) { while ($j < count($e3)) {
$e4 = explode('=', $e3[$j]); $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')); $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>, '; $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++; $j++;
@ -359,17 +359,17 @@ class Quests
} }
unset($qn, $qi, $e2, $e3, $e4); unset($qn, $qi, $e2, $e3, $e4);
} }
//Задержка между выполнением квеста //Задержка между выполнением квеста
if (isset($d['tr_zdr'])) { 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')); $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) { 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>'; $t .= '<br>';
unset($qlst); unset($qlst);
} }
//Переодичность квеста //Переодичность квеста
if (isset($d['tr_tm1'])) { if (isset($d['tr_tm1'])) {
$d['tr_tm1'] = str_replace('d', date('d'), $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']); $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('m', date('m'), $d['tr_tm2']);
$d['tr_tm2'] = str_replace('y', date('y'), $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 (isset($d['tr_raz'])) {
if ($d['tr_raz'] == -1) { if ($d['tr_raz'] == -1) {
$t .= 'Сколько еще раз можно выполнить задание: <b><small>бесконечно</small></b><br>'; $t .= 'Сколько еще раз можно выполнить задание: <b><small>бесконечно</small></b><br>';
} else { } else {
$qlst = $u->testAction('SELECT `id` FROM `actions` WHERE `uid` = "' . $u->info['id'] . '" AND `vars` = "start_quest' . $pl['id'] . '" LIMIT ' . $d['tr_raz'], 2); $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); unset($qlst);
} }
//Попыток пройти квест //Попыток пройти квест
if (isset($d['tr_raz2'])) { 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); $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); unset($qlst);
} }
if ($t != '') { if ($t != '') {
$r .= '<b>Условия задания:</b><br>' . $t . '<br>'; $r .= '<b>Условия задания:</b><br>' . $t . '<br>';
$t = ''; $t = '';
} }
//Награда за квест //Награда за квест
$d = $this->expl($pl['win_date']); $d = $this->expl($pl['win_date']);
if (isset($d['add_eff'])) { 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')); $x6 = mysql_fetch_array(mysql_query('SELECT `id2`,`mname`,`img` FROM `eff_main` WHERE `id2` = "' . $x7[0] . '" LIMIT 1'));
if (isset($x6['id2'])) { if (isset($x6['id2'])) {
$x5 .= '<img width="40" height="25" src="https://img.new-combats.com/i/eff/' . $x6['img'] . '" title="' . $x6['mname'] . ' $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++; $x4++;
} }
@ -426,25 +426,25 @@ class Quests
} }
if (isset($d['add_rep'])) { 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'])) { if (isset($d['add_repizlom'])) {
$t .= 'Репутация Излом Хаоса: ' . $d['add_repizlom'] . '<br>'; $t .= 'Репутация Излом Хаоса: ' . $d['add_repizlom'] . '<br>';
} }
if (isset($d['add_cr'])) { if (isset($d['add_cr'])) {
$t .= 'Деньги: ' . $d['add_cr'] . ' кр.<br>'; $t .= 'Деньги: ' . $d['add_cr'] . ' кр.<br>';
} }
if ($t != '') { if ($t != '') {
$r = '<b>Награда:</b><br>' . $t . '<br>' . $r; $r = '<b>Награда:</b><br>' . $t . '<br>' . $r;
$t = ''; $t = '';
} }
//Действия квеста //Действия квеста
$d = $this->expl($pl['act_date']); $d = $this->expl($pl['act_date']);
//Поговорить с NPS //Поговорить с NPS
if (isset($d['dlg_nps'])) { if (isset($d['dlg_nps'])) {
$i7 = 0; $i7 = 0;
$x3 = explode(',', $d['dlg_nps']); $x3 = explode(',', $d['dlg_nps']);
@ -453,30 +453,30 @@ class Quests
if ($x4[0] > 0) { if ($x4[0] > 0) {
$x1 = mysql_fetch_array(mysql_query('SELECT `text` FROM `dungeon_dialog` WHERE `id` = "' . $x4[0] . '" LIMIT 1')); $x1 = mysql_fetch_array(mysql_query('SELECT `text` FROM `dungeon_dialog` WHERE `id` = "' . $x4[0] . '" LIMIT 1'));
if (!isset($x1['text'])) { if (!isset($x1['text'])) {
$x1 = '<i>незивестно</i>'; $x1 = '<i>незивестно</i>';
} else { } else {
$x1 = $x1['text']; $x1 = $x1['text'];
} }
$x = 0; $x = 0;
$t .= 'Поговорить с <b>' . $x1 . '</b>: ' . $x . '/1<br>'; $t .= 'Поговорить с <b>' . $x1 . '</b>: ' . $x . '/1<br>';
} }
$i7++; $i7++;
} }
unset($x1, $x3, $x4, $i7); unset($x1, $x3, $x4, $i7);
} }
//Убить игроков //Убить игроков
if (isset($d['kill_user'])) { 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['kill_bot'])) {
if (isset($d['all_kill']) && (int)$d['all_kill'] > 0) { if (isset($d['all_kill']) && (int)$d['all_kill'] > 0) {
$x = ''; $x = '';
$ex = explode(',', $d['kill_bot']); $ex = explode(',', $d['kill_bot']);
$i = 0; # Количество циклов для каждого типа бота. $i = 0; # Количество циклов для каждого типа бота.
$q = ''; $q = '';
while ($i < count($ex)) { while ($i < count($ex)) {
$ex2 = explode('=', $ex[$i]); $ex2 = explode('=', $ex[$i]);
@ -516,12 +516,12 @@ class Quests
if ($x != '') { if ($x != '') {
$x = trim($x, ', '); $x = trim($x, ', ');
$t .= 'Убить ботов: <br>' . $x; $t .= 'Убить ботов: <br>' . $x;
} }
unset($x, $ex, $x2, $bot2, $ex2); unset($x, $ex, $x2, $bot2, $ex2);
} }
//Собрать ресурсы //Собрать ресурсы
if (isset($d['tk_itm'])) { if (isset($d['tk_itm'])) {
$ex = explode(',', $d['tk_itm']); $ex = explode(',', $d['tk_itm']);
$i = 0; $i = 0;
@ -538,11 +538,11 @@ class Quests
} }
if ($x != '') { if ($x != '') {
$x = trim($x, ', '); $x = trim($x, ', ');
$t .= 'Собрать ресурсы: <br>' . $x; $t .= 'Собрать ресурсы: <br>' . $x;
} }
} }
//Собирание трофеев //Собирание трофеев
if (isset($d['tkill_itm'])) { if (isset($d['tkill_itm'])) {
$ex = explode(',', $d['tkill_itm']); $ex = explode(',', $d['tkill_itm']);
$i = 0; $i = 0;
@ -559,17 +559,17 @@ class Quests
} }
if ($x != '') { if ($x != '') {
$x = trim($x, ', '); $x = trim($x, ', ');
$t .= 'Собрать трофеи: <br>' . $x; $t .= 'Собрать трофеи: <br>' . $x;
} }
} }
if ($t != '') { if ($t != '') {
$r = '<br><b>Действия задания:</b><br>' . $t . '<br>' . $r; $r = '<br><b>Действия задания:</b><br>' . $t . '<br>' . $r;
$t = ''; $t = '';
} }
if ($r == '') { if ($r == '') {
$r = 'Дополнительная информация по заданию отсутствует'; $r = 'Дополнительная информация по заданию отсутствует';
} }
return $r; return $r;
} }
@ -577,35 +577,35 @@ class Quests
public function testquest() public function testquest()
{ {
global $u; 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'); $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)) { 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')); $pl = mysql_fetch_array(mysql_query('SELECT * FROM `quests` WHERE `id` = "' . (str_replace('start_quest', '', $pl2['vars'])) . '" LIMIT 1'));
$g = 1; $g = 1;
//Действия квеста //Действия квеста
$d = $this->expl($pl['act_date']); $d = $this->expl($pl['act_date']);
//Поговорить с NPS //Поговорить с NPS
if (isset($d['dlg_nps'])) { if (isset($d['dlg_nps'])) {
$g = 0; $g = 0;
unset($x); unset($x);
} }
//Убить игроков //Убить игроков
if (isset($d['kill_user'])) { if (isset($d['kill_user'])) {
$x = 0; $x = 0;
if ($x < $d['kill_user']) { if ($x < $d['kill_user']) {
$g = 0; $g = 0;
} }
//$d['kill_user'] - стольких нужно убить //$d['kill_user'] - стольких нужно убить
unset($x); unset($x);
} }
//Убить ботов //Убить ботов
if (isset($d['kill_bot'])) { if (isset($d['kill_bot'])) {
$ex = explode(',', $d['kill_bot']); $ex = explode(',', $d['kill_bot']);
$ii = 0; // Количество циклов для каждого типа бота. $ii = 0; // Количество циклов для каждого типа бота.
$q = ''; $q = '';
while ($ii < count($ex)) { while ($ii < count($ex)) {
$ex2 = explode('=', $ex[$ii]); $ex2 = explode('=', $ex[$ii]);
@ -629,11 +629,11 @@ class Quests
unset($x, $ex, $x2, $x3, $bot2, $ex2); unset($x, $ex, $x2, $x3, $bot2, $ex2);
} }
//Собрать ресурсы //Собрать ресурсы
if (isset($d['tk_itm'])) { if (isset($d['tk_itm'])) {
$g = $this->collect_01(explode(',', $d['tk_itm']), $u); $g = $this->collect_01(explode(',', $d['tk_itm']), $u);
} }
//Собирание трофеев //Собирание трофеев
if (isset($d['tkill_itm'])) { if (isset($d['tkill_itm'])) {
$g = $this->collect_01(explode(',', $d['tkill_itm']), $u); $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; $i = 0;
while ($i < count($arr)) { while ($i < count($arr)) {
$ex2 = explode('=', $arr[$i]); $ex2 = explode('=', $arr[$i]);
@ -660,7 +660,7 @@ class Quests
return 1; return 1;
} }
private function collect_02($ex, $u, $pl) { // убираю дублирование. хер пойми что проверяем, хз как назвать. private function collect_02($ex, $u, $pl) { // убираю дублирование. хер пойми что проверяем, хз как назвать.
$i = 0; $i = 0;
while ($i < count($ex)) { while ($i < count($ex)) {
$ex2 = explode('=', $ex[$i]); $ex2 = explode('=', $ex[$i]);
@ -680,25 +680,25 @@ class Quests
return 1; return 1;
} }
# Функция отвечает за ПРОВЕРКУ на ЗАВЕРШЕНИЕ квестов для ПОДЗЕМОК # Функция отвечает за ПРОВЕРКУ на ЗАВЕРШЕНИЕ квестов для ПОДЗЕМОК
public function questCheckEnd($pl) public function questCheckEnd($pl)
{ {
global $u; 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')); $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; $r = 0;
if ($u->info['battle'] == 0 && $u->room['name'] != 'Башня Смерти') { if ($u->info['battle'] == 0 && $u->room['name'] != 'Башня Смерти') {
$g = 1; $g = 1;
# Действия квеста # Действия квеста
$d = $this->expl($pl['act_date']); $d = $this->expl($pl['act_date']);
# Поговорить с NPS # Поговорить с NPS
if (isset($d['dlg_nps'])) { if (isset($d['dlg_nps'])) {
$g = 0; $g = 0;
unset($x); unset($x);
} }
# Убить игроков # Убить игроков
if (isset($d['kill_user'])) { if (isset($d['kill_user'])) {
$x = 0; $x = 0;
if ($x < $d['kill_user']) { if ($x < $d['kill_user']) {
@ -707,10 +707,10 @@ class Quests
unset($x); unset($x);
} }
# Убить ботов # Убить ботов
if (isset($d['kill_bot'])) { if (isset($d['kill_bot'])) {
$ex = explode(',', $d['kill_bot']); $ex = explode(',', $d['kill_bot']);
$i = 0; # Количество циклов для каждого типа бота. $i = 0; # Количество циклов для каждого типа бота.
$q = ''; $q = '';
while ($i < count($ex)) { while ($i < count($ex)) {
$ex2 = explode('=', $ex[$i]); $ex2 = explode('=', $ex[$i]);
@ -740,11 +740,11 @@ class Quests
unset($x, $ex, $x2, $x3, $bot2, $ex2); unset($x, $ex, $x2, $x3, $bot2, $ex2);
} }
# Собрать ресурсы # Собрать ресурсы
if (isset($d['tk_itm'])) { if (isset($d['tk_itm'])) {
$g = $this->collect_02(explode(',', $d['tk_itm']), $u, $pl); $g = $this->collect_02(explode(',', $d['tk_itm']), $u, $pl);
} }
# Собирание трофеев # Собирание трофеев
if (isset($d['tkill_itm'])) { if (isset($d['tkill_itm'])) {
$g = $this->collect_02(explode(',', $d['tkill_itm']), $u, $pl); $g = $this->collect_02(explode(',', $d['tkill_itm']), $u, $pl);
} }
@ -753,7 +753,7 @@ class Quests
return $r; return $r;
} }
/** Выдача наград за пещеры */ /** Выдача наград за пещеры */
public function questSuccesEnd($quest, $action) public function questSuccesEnd($quest, $action)
{ {
global $u, $c, $magic; global $u, $c, $magic;
@ -765,7 +765,7 @@ class Quests
$d = $this->expl($quest['act_date']); $d = $this->expl($quest['act_date']);
$d = array_merge($d, $this->expl($quest['win_date'])); $d = array_merge($d, $this->expl($quest['win_date']));
// Забираем ресурсы или трофеи // Забираем ресурсы или трофеи
if (isset($d['tk_itm']) || isset($d['tkill_itm'])) { if (isset($d['tk_itm']) || isset($d['tkill_itm'])) {
$ex = []; $ex = [];
if (isset($d['tk_itm'])) { if (isset($d['tk_itm'])) {
@ -793,9 +793,9 @@ class Quests
} }
$t = ''; $t = '';
# Получаем репутацию за квест, # Получаем репутацию за квест,
if (isset($d['add_rep'])) { if (isset($d['add_rep'])) {
# если это убийства ботов. # если это убийства ботов.
if (isset($d['kill_bot']) && isset($d['all_kill']) && $d['add_rep'] > 0) { if (isset($d['kill_bot']) && isset($d['all_kill']) && $d['add_rep'] > 0) {
$ex = explode(',', $d['kill_bot']); $ex = explode(',', $d['kill_bot']);
$ii = 0; $ii = 0;
@ -825,7 +825,7 @@ class Quests
if ($this->stats['more_awards'] >= 0) { if ($this->stats['more_awards'] >= 0) {
$d['add_rep'] += $d['add_rep'] / 100 * 50; $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 ( if (
$rep['rep' . $quest['city']] < 24999 && $rep['rep' . $quest['city']] < 24999 &&
$rep['rep' . $quest['city']] + $d['add_rep'] >= 24999 && $rep['rep' . $quest['city']] + $d['add_rep'] >= 24999 &&
@ -840,7 +840,7 @@ class Quests
} }
} }
if (isset($d['add_repizlom'])) { 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 = mysql_fetch_array(mysql_query('SELECT * FROM `rep` WHERE `id` = "' . $u->info['id'] . '" LIMIT 1'));
$rep['repizlom'] += $d['add_repizlom']; $rep['repizlom'] += $d['add_repizlom'];
if ($rep['repizlom'] > 24999) { if ($rep['repizlom'] > 24999) {
@ -859,18 +859,18 @@ class Quests
} }
} }
if (isset($d['add_cr'])) { 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'); mysql_query('UPDATE `users` SET `money` = `money`+' . $d['add_cr'] . ' WHERE `id` = "' . $u->info['id'] . '" LIMIT 1');
} }
if ($t != '') { if ($t != '') {
$t = rtrim($t, ', '); $t = rtrim($t, ', ');
$r = 'Задание <b>' . $quest['name'] . '</b> было успешно выполнено! Вы получили награду: ' . $t . '.'; $r = 'Задание <b>' . $quest['name'] . '</b> было успешно выполнено! Вы получили награду: ' . $t . '.';
unset($t); unset($t);
} else { } else {
$r = 'Задание <b>' . $quest['name'] . '</b> было успешно выполнено!'; $r = 'Задание <b>' . $quest['name'] . '</b> было успешно выполнено!';
} }
$r = '<small>' . $r . '</small>'; $r = '<small>' . $r . '</small>';
//Отправляем сообщение в чат //Отправляем сообщение в чат
mysql_query('UPDATE `actions` SET `vals` = "win" , `time` = "' . time() . '" WHERE `id` = "' . $action['id'] . '" AND `vals` = "go" LIMIT 1'); 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')"); 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(); die();
} }
// Забираем ресурсы // Забираем ресурсы
if (isset($d['tk_itm'])) { if (isset($d['tk_itm'])) {
$ex = explode(',', $d['tk_itm']); $ex = explode(',', $d['tk_itm']);
$i = 0; $i = 0;
@ -906,7 +906,7 @@ class Quests
$i++; $i++;
} }
} }
// Забираем трофеи // Забираем трофеи
if (isset($d['tkill_itm'])) { if (isset($d['tkill_itm'])) {
$ex = explode(',', $d['tkill_itm']); $ex = explode(',', $d['tkill_itm']);
$i = 0; $i = 0;
@ -920,7 +920,7 @@ class Quests
} }
$t = ''; $t = '';
if (isset($d['add_rep'])) { // Получаем репутацию за квест, если это убийства ботов. if (isset($d['add_rep'])) { // Получаем репутацию за квест, если это убийства ботов.
if (isset($d['kill_bot']) && isset($d['all_kill']) && $d['add_rep'] > 0) { if (isset($d['kill_bot']) && isset($d['all_kill']) && $d['add_rep'] > 0) {
$ex = explode(',', $d['kill_bot']); $ex = explode(',', $d['kill_bot']);
$ii = 0; $ii = 0;
@ -939,9 +939,9 @@ class Quests
} }
unset($x, $i, $ii, $ex, $x2, $bot2, $ex2); unset($x, $i, $ii, $ex, $x2, $bot2, $ex2);
if ($pl['city'] != '') { 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')); $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) { /*if($rep['rep'.$pl['city']] < 10000 && $rep['rep'.$pl['city']] + $d['add_rep'] >= 10000 && $pl['kin'] != 1) {
$rep['rep'.$pl['city']] = 9999; $rep['rep'.$pl['city']] = 9999;
} else*/ } else*/
@ -955,7 +955,7 @@ class Quests
} }
if (isset($d['add_repizlom'])) { 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 = mysql_fetch_array(mysql_query('SELECT * FROM `rep` WHERE `id` = "' . $u->info['id'] . '" LIMIT 1'));
$rep['repizlom'] += $d['add_repizlom']; $rep['repizlom'] += $d['add_repizlom'];
if ($rep['repizlom'] > 24999) { if ($rep['repizlom'] > 24999) {
@ -976,19 +976,19 @@ class Quests
} }
if (isset($d['add_cr'])) { 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'); mysql_query('UPDATE `users` SET `money` = `money`+' . $d['add_cr'] . ' WHERE `id` = "' . $u->info['id'] . '" LIMIT 1');
} }
if ($t != '') { if ($t != '') {
$t = rtrim($t, ', '); $t = rtrim($t, ', ');
$r = 'Задание <b>' . $pl['name'] . '</b> было успешно выполнено! Вы получили награду: ' . $t . '.'; $r = 'Задание <b>' . $pl['name'] . '</b> было успешно выполнено! Вы получили награду: ' . $t . '.';
unset($t); unset($t);
} else { } else {
$r = 'Задание <b>' . $pl['name'] . '</b> было успешно выполнено!'; $r = 'Задание <b>' . $pl['name'] . '</b> было успешно выполнено!';
} }
$r = '<small>' . $r . '</small>'; $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')"); 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 class Season
{ {
public static $yy = [ public static $yy = [
1 => [1, '01', 'ίνβΰπό', 'ίνβΰπόρκθι'], 1 => [1, '01', 'Январь', 'Январьский'],
2 => [2, '02', 'Τεβπΰλό', 'Τεβπΰλόρκθι'], 2 => [2, '02', 'Февраль', 'Февральский'],
3 => [3, '03', 'Μΰπς', 'Μΰπςξβρκθι'], 3 => [3, '03', 'Март', 'Мартовский'],
4 => [4, '04', 'ΐοπελό', 'ΐοπελόρκθι'], 4 => [4, '04', 'Апрель', 'Апрельский'],
5 => [5, '05', 'Μΰι', 'Μΰιρκθι'], 5 => [5, '05', 'Май', 'Майский'],
6 => [6, '06', 'Θώνό', 'Θώνόρκθι'], 6 => [6, '06', 'Июнь', 'Июньский'],
7 => [7, '07', 'Θώλό', 'Θώλόρκθι'], 7 => [7, '07', 'Июль', 'Июльский'],
8 => [8, '08', 'ΐβγσρς', 'ΐβγσρςξβρκθι'], 8 => [8, '08', 'Август', 'Августовский'],
9 => [9, '09', 'Ρενς<EFBFBD>από', 'Ρενς<CEBD>απόρκθι'], 9 => [9, '09', 'Сентябрь', 'Сентябрьский'],
10 => [10, '10', 'Ξκς<EFBFBD>από', 'Ξκς<CEBA>απόρκθι'], 10 => [10, '10', 'Октябрь', 'Октябрьский'],
11 => [11, '11', 'Νξ<EFBFBD>από', 'Νξ<CE9D>απόρκθι'], 11 => [11, '11', 'Ноябрь', 'Ноябрьский'],
12 => [12, '12', 'Δεκΰαπό', 'Δεκΰαπόρκθι'], 12 => [12, '12', 'Декабрь', 'Декабрьский'],
]; ];
public static $date = []; public static $date = [];
public static $m = []; public static $m = [];

View File

@ -16,7 +16,7 @@ class Telegram
private function send($to, $from, $text, $fromType) private function send($to, $from, $text, $fromType)
{ {
mysql_query('START TRANSACTION'); 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'); mysql_query('COMMIT');
if ($ins) { if ($ins) {
return mysql_insert_id(); return mysql_insert_id();
@ -89,7 +89,7 @@ class Telegram
} }
if ($fromType == 1) { 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) { } elseif ($read == 0) {
$from = '<b id="tablePostTxtB' . $id . '">' . $from . '</b>'; $from = '<b id="tablePostTxtB' . $id . '">' . $from . '</b>';
} }
@ -98,10 +98,10 @@ class Telegram
<tr> <tr>
<td width="30" class="underLine2"><div align="center">' . $i1 . '</div></td> <td width="30" class="underLine2"><div align="center">' . $i1 . '</div></td>
<td width="200" id="tablePostTxt' . $id . '" class="underLine2">' . $from . '</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="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="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="deletePost(' . $id . ',' . $pg . ');" title="Удалить сообщение" src="https://img.new-combats.com/i/clear.gif" width="11" height="11"></div></td>
</tr> </tr>
</table> </table>
<div id="readMSG' . $id . '" style="display:none;" class="unreadMSG">' . $ttl . '</div>'; <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"> <table width="100%" border="0" cellspacing="0" cellpadding="0">
<tr> <tr>
<td width="30" class="underLine"><div align="center"></div></td> <td width="30" class="underLine"><div align="center"></div></td>
<td width="200" class="underLine"><b>Îò êîãî</b></td> <td width="200" class="underLine"><b>От кого</b></td>
<td width="290" class="underLine"><b>Çàãîëîâîê ñîîáùåíèÿ</b></td> <td width="290" class="underLine"><b>Заголовок сообщения</b></td>
<td width="120" 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 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="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> </tr>
</table>'; </table>';
@ -138,7 +138,7 @@ class Telegram
} }
if ($i[0] == 0) { if ($i[0] == 0) {
echo '<div class="noMsg" align="center">Ñîîáùåíèé íåò</div>'; echo '<div class="noMsg" align="center">Сообщений нет</div>';
} elseif ($i[0] > $maxPages) { } elseif ($i[0] > $maxPages) {
$pages = ''; $pages = '';
$i = 1; $i = 1;
@ -153,7 +153,7 @@ class Telegram
echo '<table width="100%" border="0" cellspacing="0" cellpadding="0"> echo '<table width="100%" border="0" cellspacing="0" cellpadding="0">
<tr> <tr>
<td width="30"><div align="center"></div></td> <td width="30"><div align="center"></div></td>
<td width="200">Ñòðàíèöû: ' . $pages . '</td> <td width="200">Страницы: ' . $pages . '</td>
<td width="240"></td> <td width="240"></td>
<td width="170"></td> <td width="170"></td>
<td width="30"></td> <td width="30"></td>
@ -165,6 +165,6 @@ class Telegram
public function __clone() 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 User $u;
private array $info; private array $info;
private array $user; private array $user;
private array $name = [0 => 'Выжить любой ценой', 1 => 'Каждый сам за себя', 2 => 'Захват ключа',]; private array $name = [0 => 'Выжить любой ценой', 1 => 'Каждый сам за себя', 2 => 'Захват ключа',];
public function __construct() public function __construct()
{ {
@ -31,13 +31,13 @@ class Tournir
} }
} else { } else {
Db::sql('update turnirs set status = 3 where id = ?', [$this->info['id']]); 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']]); 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(); $uri = Db::lastInsertId();
//Закидываем персонажей в поединок //Закидываем персонажей в поединок
Db::sql('update users set battle = ? where inUser = 0 and inTurnirnew = ?', [$uri, $this->info['id']]); 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')); $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')); $bot = mysql_fetch_array(mysql_query('SELECT * FROM `users` WHERE `id` = "' . $pl['bot'] . '" LIMIT 1'));
if (isset($inf['id'], $bot['id'])) { if (isset($inf['id'], $bot['id'])) {
//выдаем призы и т.д //выдаем призы и т.д
mysql_query('DELETE FROM `users` WHERE `id` = "' . $bot['id'] . '" LIMIT 1'); 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 `stats` WHERE `id` = "' . $bot['id'] . '" LIMIT 1');
mysql_query('DELETE FROM `items_users` WHERE `uid` = "' . $bot['id'] . '" LIMIT 1000'); 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) { 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]; $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'] = [10, 30, 55, 62, 92, 180, 350, 1350, 4500, 7000, 21000, 30000, 35000];
$inf['add_expn'] = $inf['add_expn'][$inf['level']]; $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'); mysql_query('UPDATE `stats` SET `exp` = `exp` + ' . $inf['add_expn'] . ' WHERE `id` = "' . $inf['id'] . '" LIMIT 1');
$win .= '<b>' . $inf['login'] . '</b>, '; $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')"); 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) { } elseif ($pl['team'] != $this->info['winner'] && $this->info['winner'] != 0) {
@ -89,11 +89,11 @@ class Tournir
if ($win != '') { if ($win != '') {
$win = rtrim($win, ', '); $win = rtrim($win, ', ');
$lose = rtrim($lose, ', '); $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 { } 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')"); 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 = ''; $tm2 = '';
$noitm = [869 => 1, 1246 => 1, 155 => 1, 1245 => 1, 678 => 1]; $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) { if ($this->info['step'] != 3 && $this->info['step'] != 0 && isset($_GET['gocomplect']) && $this->user['points'] < 2) {
$aso = explode(',', $this->user['items']); $aso = explode(',', $this->user['items']);
$ast = explode('-', $_GET['gocomplect']); $ast = explode('-', $_GET['gocomplect']);
@ -150,19 +150,19 @@ class Tournir
} }
if ($noitm > 0) { if ($noitm > 0) {
echo 'Использование багов карается законом!'; echo 'Использование багов карается законом!';
$addi = 0; $addi = 0;
} elseif (count($asg[3]) > 2) { } elseif (count($asg[3]) > 2) {
echo 'Вы выбрали слишком много предметов, выберите только два оружия и один щит'; echo 'Вы выбрали слишком много предметов, выберите только два оружия и один щит';
$addi = 0; $addi = 0;
} elseif (count($asg[10]) > 3) { } elseif (count($asg[10]) > 3) {
echo 'Вы выбрали слишком много предметов, выберите только три кольца'; echo 'Вы выбрали слишком много предметов, выберите только три кольца';
$addi = 0; $addi = 0;
} elseif ($j > 16) { } elseif ($j > 16) {
echo 'Вы выбрали слишком много предметов'; echo 'Вы выбрали слишком много предметов';
$addi = 0; $addi = 0;
} elseif ($j < 1) { } elseif ($j < 1) {
echo 'Выберите хотя бы один предмет'; echo 'Выберите хотя бы один предмет';
$addi = 0; $addi = 0;
} }
@ -211,7 +211,7 @@ class Tournir
if ($this->info['step'] == 3) { if ($this->info['step'] == 3) {
$this->finishTurnir(); $this->finishTurnir();
} elseif ($this->info['step'] == 0) { } elseif ($this->info['step'] == 0) {
//распределяем команды //распределяем команды
$po = [0, 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']); $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); $tmr = rand(1, 2);
@ -252,7 +252,7 @@ class Tournir
${'tm' . $bot['team']} .= $this->u->microLogin($bot, 2) . '<br>'; ${'tm' . $bot['team']} .= $this->u->microLogin($bot, 2) . '<br>';
} }
} }
$r .= '<style>/* цвета команд */ $r .= '<style>/* цвета команд */
.CSSteam0 { font-weight: bold; cursor:pointer; } .CSSteam0 { font-weight: bold; cursor:pointer; }
.CSSteam1 { font-weight: bold; color: #6666CC; cursor:pointer; } .CSSteam1 { font-weight: bold; color: #6666CC; cursor:pointer; }
.CSSteam2 { font-weight: bold; color: #B06A00; cursor:pointer; } .CSSteam2 { font-weight: bold; color: #B06A00; cursor:pointer; }
@ -264,33 +264,33 @@ class Tournir
.CSSteam8 { font-weight: bold; color: #842B61; cursor:pointer; } .CSSteam8 { font-weight: bold; color: #842B61; cursor:pointer; }
.CSSteam9 { font-weight: bold; color: navy; cursor:pointer; } .CSSteam9 { font-weight: bold; color: navy; cursor:pointer; }
.CSSvs { font-weight: bold; }</style>'; .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'])) { 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'); 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'] < 3) {
//Еще не получили обмундирование //Еще не получили обмундирование
if ($this->user['points'] < 2) { 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 { } 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) { if ($this->u->info['sex'] == 1) {
$r .= 'а'; $r .= 'а';
} }
$r .= '!">'; $r .= '!">';
} }
} else { } else {
$r .= '<small><b>Вы участвуете в турнире!</b></small>'; $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 .= ' &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') { 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>'; $r .= '<div align="left" style="height:1px; width:100%; margin:10px 0 10px 0; border-top:1px solid #999999;"></div>';
if ($this->user['items'] == '') { if ($this->user['items'] == '') {
//Выдаем предметы для выбора //Выдаем предметы для выбора
$ai = ''; $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 $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)]; $com[$i] = $aso[$i][rand(0, count($aso[$i]) - 1)];
} elseif ($i == 14) { } elseif ($i == 14) {
//правая рука //правая рука
$com[$i] = $aso[$i][rand(0, count($aso[$i]) - 1)]; $com[$i] = $aso[$i][rand(0, count($aso[$i]) - 1)];
} else { } else {
//обмундирование //обмундирование
$com[$i] = $aso[$i][rand(0, count($aso[$i]) - 1)]; $com[$i] = $aso[$i][rand(0, count($aso[$i]) - 1)];
if ($i == 10) { if ($i == 10) {
$ai .= $com[$i]['id'] . ','; $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'); mysql_query('UPDATE `users_turnirs` SET `items` = "' . $ai . '" WHERE `id` = "' . $this->user['id'] . '" LIMIT 1');
} }
//Выводим предметы чтобы надеть их //Выводим предметы чтобы надеть их
$ai = explode(',', $this->user['items']); $ai = explode(',', $this->user['items']);
$i = 0; $i = 0;
$ia = []; $ia = [];
@ -352,7 +352,7 @@ class Tournir
} }
unset($ai); unset($ai);
$r .= '<b>Выберите предметы для турнира:</b><br>'; $r .= '<b>Выберите предметы для турнира:</b><br>';
?> ?>
<style> <style>
.its0 { .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 .= '<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"> $r .= '<table style="border:1px solid #99cccc" width="700" bgcolor="#bbdddd" border="0" align="center" cellpadding="5" cellspacing="0">
<tr> <tr>
<td width="350" align="center" bgcolor="#99cccc"><b class="CSSteam1">Команда 1</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> <td align="center" bgcolor="#99cccc"><b class="CSSteam2">Команда 2</b></td>
</tr> </tr>
<tr> <tr>
<td align="center" style="border-right:1px solid #99cccc">' . rtrim($tm1, ', ') . '</td> <td align="center" style="border-right:1px solid #99cccc">' . rtrim($tm1, ', ') . '</td>
@ -476,7 +476,7 @@ class Tournir
</table>'; </table>';
if (($this->info['time'] - time() < 0) && $this->info['step'] == 1) { if (($this->info['time'] - time() < 0) && $this->info['step'] == 1) {
//начинаем турнир //начинаем турнир
$this->startTurnir(); $this->startTurnir();
} }
echo $r; echo $r;

View File

@ -1,7 +1,7 @@
<?php <?php
/** /**
* Единая функция для заливки файлов на сервер. * Единая функция для заливки файлов на сервер.
* *
* @author Ivor Barhansky <me@lopar.space> * @author Ivor Barhansky <me@lopar.space>
* @version 1 * @version 1
@ -60,7 +60,7 @@ class Uploader
} }
/** /**
* @param string $path путь от корня до конечной папки без открывающего слеша. * @param string $path путь от корня до конечной папки без открывающего слеша.
* @return void * @return void
*/ */
public function setSavePath($path) public function setSavePath($path)
@ -100,19 +100,19 @@ class Uploader
{ {
list($width, $height) = getimagesize($this->FILE['tmp_name']); list($width, $height) = getimagesize($this->FILE['tmp_name']);
if (!$width || !$height) { if (!$width || !$height) {
self::$error = 'Не подтянулись размеры файла.'; self::$error = 'Не подтянулись размеры файла.';
return false; return false;
} }
if ( if (
($width < $this->width['min'] || $width > $this->width['max']) || ($width < $this->width['min'] || $width > $this->width['max']) ||
($height < $this->height['min'] || $height > $this->height['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']) { 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 .= "[{$this->width['max']} x {$this->height['max']}].";
self::$error .= " Текущий размер [$width x $height]"; self::$error .= " Текущий размер [$width x $height]";
return false; return false;
} }
return true; return true;
@ -124,7 +124,7 @@ class Uploader
$this->setMaxFileSize(2); $this->setMaxFileSize(2);
} }
if ($this->FILE['size'] > $this->maxFileSizeMb * (1024 * 1024) || $this->FILE['size'] <= 0) { if ($this->FILE['size'] > $this->maxFileSizeMb * (1024 * 1024) || $this->FILE['size'] <= 0) {
self::$error = 'Неверный размер файла. Максимальный размер файла ' . $this->maxFileSizeMb . ' МБ'; self::$error = 'Неверный размер файла. Максимальный размер файла ' . $this->maxFileSizeMb . ' МБ';
return false; return false;
} }
return true; return true;
@ -136,7 +136,7 @@ class Uploader
!preg_match('/\.(' . $this->extensions . ')$/i', $this->FILE['name'], $this->extMatches) || !preg_match('/\.(' . $this->extensions . ')$/i', $this->FILE['name'], $this->extMatches) ||
!preg_match('/image/i', $this->FILE['type']) !preg_match('/image/i', $this->FILE['type'])
) { ) {
self::$error = 'Неверный тип файла. Допустимые типы : ' . $this->extensions; self::$error = 'Неверный тип файла. Допустимые типы : ' . $this->extensions;
return false; return false;
} }
return true; return true;
@ -145,7 +145,7 @@ class Uploader
private function hasNormalFilePath() private function hasNormalFilePath()
{ {
if (!$this->savePath || !is_dir($this->savePath)) { if (!$this->savePath || !is_dir($this->savePath)) {
self::$error = 'Ошибка загрузки: нет такой папки.'; self::$error = 'Ошибка загрузки: нет такой папки.';
return false; return false;
} }
return true; return true;
@ -161,7 +161,7 @@ class Uploader
$fn2 = $this->cnm; $fn2 = $this->cnm;
} }
if (!move_uploaded_file($this->FILE['tmp_name'], $this->savePath . $fn)) { if (!move_uploaded_file($this->FILE['tmp_name'], $this->savePath . $fn)) {
self::$error = 'Ошибка загрузки файла'; self::$error = 'Ошибка загрузки файла';
return false; return false;
} }
return [$fn2, $fn, $this->savePath . $fn]; 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 class Confirmation
{ {
/** /**
* Для однотипных писем с подтверждением. * Для однотипных писем с подтверждением.
* @param array $userinfo Данные из (User)->info. * @param array $userinfo Данные из (User)->info.
* @param mixed $value Новое значение * @param mixed $value Новое значение
* @param ?int $code Проверочный код * @param ?int $code Проверочный код
* @param string $type Тип меняемого значения. С маленькой буквы, именительный падеж. * @param string $type Тип меняемого значения. С маленькой буквы, именительный падеж.
* @return void * @return void
*/ */
public static function byEmail(array $userinfo, string $type, $value, ?int $code = null) public static function byEmail(array $userinfo, string $type, $value, ?int $code = null)
@ -34,23 +34,23 @@ class Confirmation
$userinfo['mail'], $userinfo['mail'],
<<<HTML <<<HTML
<html lang="ru"> <html lang="ru">
<head><title>Сменить $type</title></head> <head><title>Сменить $type</title></head>
<body> <body>
$date<br> $date<br>
Кто-то с IP: $ip пытается сменить $type к персонажу $fulllogin.<br> Кто-то с IP: $ip пытается сменить $type к персонажу $fulllogin.<br>
Т.к. в анкете у этого персонажа указан email: {$userinfo['mail']}, то вы и получили это письмо.<br> Т.к. в анкете у этого персонажа указан email: {$userinfo['mail']}, то вы и получили это письмо.<br>
login: {$userinfo['login']}<br> login: {$userinfo['login']}<br>
Новый $type: <span style="background-color: wheat; font-family: Consolas, monospace;">$value</span><br><br> Новый $type: <span style="background-color: wheat; font-family: Consolas, monospace;">$value</span><br><br>
Для того чтобы сменить $type, перейдите по ссылке:<br> Для того чтобы сменить $type, перейдите по ссылке:<br>
$activationLink<br> $activationLink<br>
<br>--<br> <br>--<br>
Бойцовский Клуб $https<br> Бойцовский Клуб $https<br>
Администрация Бойцовского Клуба: $support<br> Администрация Бойцовского Клуба: $support<br>
P.S. Данное письмо сгенерировано автоматически, отвечать на него не нужно. P.S. Данное письмо сгенерировано автоматически, отвечать на него не нужно.
</body> </body>
</html> </html>
HTML, HTML,
"Смена $type у персонажа $fulllogin" "Смена $type у персонажа $fulllogin"
); );
} }
@ -63,18 +63,18 @@ class Confirmation
$userinfo['mail'], $userinfo['mail'],
<<<HTML <<<HTML
<html lang="ru"> <html lang="ru">
<head><title>Второй пароль от персонажа $fulllogin.</title></head> <head><title>Второй пароль от персонажа $fulllogin.</title></head>
<body> <body>
Вами, с IP адреса - $ip, был установлен второй пароль в игре Бойцовский Клуб.<br> Вами, с IP адреса - $ip, был установлен второй пароль в игре Бойцовский Клуб.<br>
Если это были не Вы, свяжитесь с администрацией сайта.<br><br> Если это были не Вы, свяжитесь с администрацией сайта.<br><br>
------------------------------------------------------------------<br> ------------------------------------------------------------------<br>
Ваш логин | {$userinfo['login']}<br> Ваш логин | {$userinfo['login']}<br>
Второй пароль | ' . $pass2 . '<br> Второй пароль | ' . $pass2 . '<br>
------------------------------------------------------------------<br> ------------------------------------------------------------------<br>
<br><br>Желаем Вам приятной игры.<br><br><i>Администрация</i> <br><br>Желаем Вам приятной игры.<br><br><i>Администрация</i>
</body> </body>
HTML, HTML,
"Второй пароль от персонажа $fulllogin" "Второй пароль от персонажа $fulllogin"
); );
} }
@ -91,25 +91,25 @@ class Confirmation
[$uid, $code] [$uid, $code]
); );
if (!$codes['id']) { if (!$codes['id']) {
$status = 'Ссылка устарела!'; $status = 'Ссылка устарела!';
} elseif ($codes['active'] === 1) { } elseif ($codes['active'] === 1) {
Db::sql( Db::sql(
'update users set emailconfirmation = 1, securetime = unix_timestamp() + 259200 where id = ?', 'update users set emailconfirmation = 1, securetime = unix_timestamp() + 259200 where id = ?',
[$codes['id']] [$codes['id']]
); );
$status = "Подтверждение смены пароля/email через почту включено"; $status = "Подтверждение смены пароля/email через почту включено";
} elseif ($codes['pass'] === 1) { } elseif ($codes['pass'] === 1) {
Db::sql( 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 = ?', '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']] [$codes['id']]
); );
$status = "Удачно сменили пароль<"; $status = "Удачно сменили пароль<";
} elseif ($codes['email'] === 1) { } elseif ($codes['email'] === 1) {
Db::sql( 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 = ?', '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']] [$codes['id']]
); );
$status = "Удачно сменили email"; $status = "Удачно сменили email";
} }
Db::sql('delete from emailconfirmation where id = ? and code = ?', [$_GET['id'], $_GET['code']]); Db::sql('delete from emailconfirmation where id = ? and code = ?', [$_GET['id'], $_GET['code']]);
if ($status) { if ($status) {

View File

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

View File

@ -1,119 +1,246 @@
<?php <?php
use Core\Config;
use Core\Db; use Core\Db;
class UserRegister 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 public function hasMixedLatCur(string $txt): bool
{ {
$en = preg_match("/^(([0-9A-z -])+)$/i", $txt); $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); return ($ru && $en) || (!$ru && !$en);
} }
public function hasGoodLogin(string $login): string public function hasGoodLogin(string $login): bool
{ {
$isRestricted = in_array( $isRestricted = in_array($login, $this->restrictedLogins);
$login,
[
'ангел', 'angel', 'администрация', 'administration', 'Комментатор',
'Мироздатель', 'Мусорщик', 'Падальщик', 'Повелитель',
'Архивариус', 'Пересмешник', 'Волынщик', 'Лорд Разрушитель',
'Милосердие', 'Справедливость', 'Искушение', 'Вознесение',
]
);
$isRegistered = Db::getValue('select count(*) from users where login = ?', [$login]); $isRegistered = Db::getValue('select count(*) from users where login = ?', [$login]);
//Бывшие в употреблении логины. Дичь, но ладно. //Бывшие в употреблении логины. Дичь, но ладно.
$wasRegistered = Db::getValue('select count(*) from lastnames where login = ?', [$login]); $wasRegistered = Db::getValue('select count(*) from lastnames where login = ?', [$login]);
$login = str_replace(' ', ' ', $login); $login = str_replace(' ', ' ', $login);
//Логин от 4 до 20 символов
if (strlen($login) > 20) { if (strlen($login) > 20) {
$error = 'Логин должен содержать не более 20 символов.'; $this->error = 'Логин должен содержать не более 20 символов.';
} }
if (strlen($login) < 4) { if (strlen($login) < 4) {
$error = 'Логин должен содержать не менее 4 символов.'; $this->error = 'Логин должен содержать не менее 4 символов.';
} }
if ($this->hasMixedLatCur($login)) { if ($this->hasMixedLatCur($login)) {
$error = 'В логине разрешено использовать только буквы одного алфавита русского или английского. Нельзя смешивать.'; $this->error = 'В логине разрешено использовать только буквы одного алфавита русского или английского. Нельзя смешивать.';
} }
//Разделители
if (substr_count($login, ' ') + substr_count($login, '-') + substr_count($login, '_') > 2) { if (substr_count($login, ' ') + substr_count($login, '-') + substr_count($login, '_') > 2) {
$error = 'Не более двух разделителей одновременно (пробел, тире, нижнее подчеркивание).'; $this->error = 'Не более двух разделителей одновременно (пробел, тире, нижнее подчеркивание).';
} }
if (!empty($error)) { if (!empty($this->error)) {
$error .= '<br> Пример правильного никнейма: Петя Убиватор, Коля, xalop. <br> Пример неправильного никнейма: )))), kolя)=-/.'; $this->error .= '<br>Пример правильного никнейма: Петя Убиватор, Коля, xalop.<br>Пример неправильного никнейма: )))), kolя)=-/.';
} }
if ($isRegistered || $wasRegistered || $isRestricted) { 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]); $isRegistered = Db::getValue('select count(*) from users where mail = ?', [$email]);
$isBlocked = Db::getValue('select count(*) from ban_email where email = ?', [$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) { if (!filter_var($email, FILTER_VALIDATE_EMAIL) || $isRegistered) {
$error = 'Неправильный email.'; $this->error = 'Неправильный email.';
} }
if ($isBlocked) { if ($isBlocked) {
$error = 'Адрес заблокирован.'; $this->error = 'Адрес заблокирован.';
}
if (!in_array(explode('@', $email)[1], $allowedDomains)) {
$this->error = 'Данный почтовый сервис использовать нельзя.';
}
return !$this->error;
} }
$allowedDomains = Db::getColumn('select email from trust_email'); public function hasGoodEmailCode(string $email, int $code): bool
$domain = explode('@', $email)[1];
if (!in_array($domain, $allowedDomains)) {
$error = 'Данный почтовый сервис использовать нельзя.';
}
return $error ?? '';
}
public function hasGoodEmailCode(string $email, int $code): string
{ {
$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) { 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) { if ($password1 !== $password2) {
$error = 'Пароли не совпадают'; $this->error = 'Пароли не совпадают';
} }
if (strlen($password1 < 8)) { if (strlen($password1) < 8) {
$error = 'Пароль должен быть больше 8 символов'; $this->error = 'Пароль должен быть больше 8 символов';
$error .= 'Можете использовать сгенерированный пароль: ' . PassGen::new();
} }
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(); $ip = UserIp::get();
$sex = (int)$sex - 10; //На входе 10\11, а передать надо 0\1. $sex -= 10; //На входе 10\11, а передать надо 0\1.
Db::sql( 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 ?? '', $ref ?? '',
$password, $this->password,
$ip, $ip,
$ip, $ip,
$email, $this->email,
date('d.m.Y', strtotime($birthday)), date('d.m.Y', strtotime($birthday)),
$sex, $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 class UserStats
{ {
/** /**
* Собирает суммы всех бонусов с одетых предметов и активных эфектов. * Собирает суммы всех бонусов с одетых предметов и активных эфектов.
* @param int $userId * @param int $userId
* @param bool $showAll * @param bool $showAll
* @return array * @return array

View File

@ -5,9 +5,9 @@ if (!defined('GAME')) {
$db = [ $db = [
's' => 'localhost', // server 's' => 'localhost', // server
'd' => 'newcom1_abk', // database 'd' => 'game_production', // database
'u' => 'newcom1_abk', // user 'u' => 'prod1', // user
'p' => '4nWYsIM[c?}P' // password 'p' => 'Bz@fGaZjFU2206Ua' // password
]; ];
$dsn = 'mysql:host=' . $db['s'] . ';dbname=' . $db['d']; $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']); $dbgo = mysql_connect($db['s'], $db['u'], $db['p']);
mysql_select_db($db['d'], $dbgo); 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' ) { if( isset($s[1]) && $s[1] == '1/hramstok1' ) {
/* /*
Сундук: Водосток для сбора проб Сундук: Водосток для сбора проб
* Заменяет предмет Пустая склянка (4693) на (4694) Склянка с пробами * Заменяет предмет Пустая склянка (4693) на (4694) Склянка с пробами
*/ */
//Все переменные сохранять в массиве $vad ! //Все переменные сохранять в массиве $vad !
$vad = array( $vad = array(
'go' => true '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')); $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 ) { if( $vad['test1'][0] > 0 ) {
$r = 'Кто-то обыскал &quot;'.$obj['name'].'&quot; до вас...'; $r = 'Кто-то обыскал &quot;'.$obj['name'].'&quot; до вас...';
$vad['go'] = false; $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')); $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'])) { if(!isset($vad['itm']['id'])) {
$r = 'У вас нет подходящего предмета для хранения проб... Все руки в каком-то говне...'; $r = 'У вас нет подходящего предмета для хранения проб... Все руки в каком-то говне...';
$vad['go'] = false; $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'].'" "'.$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'); mysql_query('UPDATE `items_users` SET `item_id` = 4694 WHERE `id` = "'.$vad['itm']['id'].'" LIMIT 1');
$r = 'Вы успешно взяли пробы с водостока! Набранную склянку нужно отнести обратно, к Арквиерро в Храм Знаний.'; $r = 'Вы успешно взяли пробы с водостока! Набранную склянку нужно отнести обратно, к Арквиерро в Храм Знаний.';
} }
unset($vad); unset($vad);

View File

@ -1,16 +1,16 @@
<? <?
if( isset($s[1]) && $s[1] == '1/podogrevatel' ) { if( isset($s[1]) && $s[1] == '1/podogrevatel' ) {
/* /*
Сундук: Обогреватель Сундук: Обогреватель
* падает гайка * падает гайка
*/ */
//Все переменные сохранять в массиве $vad ! //Все переменные сохранять в массиве $vad !
$vad = array( $vad = array(
'go' => true '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')); $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 ) { if( $vad['test1'][0] > 0 ) {
$r = 'Кто-то обыскал &quot;'.$obj['name'].'&quot; до вас...'; $r = 'Кто-то обыскал &quot;'.$obj['name'].'&quot; до вас...';
$vad['go'] = false; $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'] = $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')); $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); $this->pickitem($obj,$vad['itm']['id'],0,'',false);
$r = 'Вы обнаружили предмет &quot;'.$vad['itm']['name'].'&quot;.'; $r = 'Вы обнаружили предмет &quot;'.$vad['itm']['name'].'&quot;.';
} }
unset($vad); unset($vad);

View File

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

View File

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

View File

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

View File

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

View File

@ -1,17 +1,17 @@
<? <?
if( isset($s[1]) && $s[1] == '101/kotel' ) { if( isset($s[1]) && $s[1] == '101/kotel' ) {
/* /*
Сундук: Котел Сундук: Котел
* Можно найти Сущность щита * Можно найти Сущность щита
* Может отнять 100-1000 НР * Может отнять 100-1000 НР
*/ */
//Все переменные сохранять в массиве $vad ! //Все переменные сохранять в массиве $vad !
$vad = array( $vad = array(
'go' => true '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')); $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 ) { if( $vad['test1'][0] > 0 ) {
$r = 'Кто-то перевернул котел...'; $r = 'Кто-то перевернул котел...';
$vad['go'] = false; $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 ( 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->info['dnow'].'","'.time().'","'.$obj['x'].'","'.$obj['y'].'","'.$u->info['id'].'","obj_act'.$obj['id'].'","'.$vad['bad'].'"
)'); )');
//Награда //Награда
$this->pickitem($obj,5239,$u->info['id']); $this->pickitem($obj,5239,$u->info['id']);
$r = 'Обыскав &quot;'.$obj['name'].'&quot; вы обнаружили предмет &quot;Амброзия подмастерья Владык&quot;'; $r = 'Обыскав &quot;'.$obj['name'].'&quot; вы обнаружили предмет &quot;Амброзия подмастерья Владык&quot;';
} }
unset($vad); unset($vad);
} }

View File

@ -1,16 +1,16 @@
<? <?
if( isset($s[1]) && $s[1] == '101/krovat' ) { if( isset($s[1]) && $s[1] == '101/krovat' ) {
/* /*
Сундук: Кровать Сундук: Кровать
* Можно получить один из двух ресурсов * Можно получить один из двух ресурсов
*/ */
//Все переменные сохранять в массиве $vad ! //Все переменные сохранять в массиве $vad !
$vad = array( $vad = array(
'go' => true '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')); $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 ) { if( $vad['test1'][0] > 0 ) {
$r = 'Кто-то обыскал &quot;'.$obj['name'].'&quot; до вас...'; $r = 'Кто-то обыскал &quot;'.$obj['name'].'&quot; до вас...';
$vad['go'] = false; $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'] = 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')); $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']]); $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' ) { if( isset($s[1]) && $s[1] == '101/laba1' ) {
/* /*
Сундук: Лаболатория Сундук: Лаболатория
* Можно собрать случайную тактику, но не более 3 на человека за поход и не более 10 на команду * Можно собрать случайную тактику, но не более 3 на человека за поход и не более 10 на команду
* 897 - Слиток пустынной руды * 897 - Слиток пустынной руды
* 903 - Тысячелетний камень * 903 - Тысячелетний камень
* 888 - Шепот гор * 888 - Шепот гор
* 892 - Эссенция чистоты * 892 - Эссенция чистоты
* 950 - Кожа Общего Врага * 950 - Кожа Общего Врага
* 904 - Кристалл времен * 904 - Кристалл времен
* 878 - Лучистый топаз * 878 - Лучистый топаз
* 880 - Эссенция глубины * 880 - Эссенция глубины
* 879 - Ралиэль * 879 - Ралиэль
* 899 - Корень змеиного дерева * 899 - Корень змеиного дерева
* 882 - Глубинный камень * 882 - Глубинный камень
* 908 - Камень затаенного солнца * 908 - Камень затаенного солнца
* 909 - Эссенция праведного гнева * 909 - Эссенция праведного гнева
* 902 - Плод змеиного дерева * 902 - Плод змеиного дерева
* 881 - Лучистый Рубин * 881 - Лучистый Рубин
* 893 - Эссенция лунного света * 893 - Эссенция лунного света
* 898 - Троекорень * 898 - Троекорень
* 890 - Сгусток астрала * 890 - Сгусток астрала
* 907 - Кристалл стабильности * 907 - Кристалл стабильности
* 905 - Стихиалия * 905 - Стихиалия
-- Боя -- Боя
4243 - 897 х3 4243 - 897 х3
4244 - 903 х2 4244 - 903 х2
4245 - 888 х2 4245 - 888 х2
4246 - 892 х1 4246 - 892 х1
4247 - 879 х1 , 892 х1 4247 - 879 х1 , 892 х1
-- Защиты -- Защиты
4248 - 950 х3 4248 - 950 х3
4249 - 904 х2 4249 - 904 х2
4250 - 878 х2 4250 - 878 х2
4251 - 880 х1 4251 - 880 х1
4252 - 880 х1 , 892 х1 4252 - 880 х1 , 892 х1
-- Крови -- Крови
4253 - 899 х3 4253 - 899 х3
4254 - 882 х2 4254 - 882 х2
4255 - 908 х2 4255 - 908 х2
4256 - 909 х1 4256 - 909 х1
4257 - 909 х1 , 892 х1 4257 - 909 х1 , 892 х1
-- Ответа -- Ответа
4258 - 899 х3 4258 - 899 х3
4259 - 902 х2 4259 - 902 х2
4260 - 881 х2 4260 - 881 х2
4261 - 893 х1 4261 - 893 х1
4262 - 893 х1 , 892 х1 4262 - 893 х1 , 892 х1
-- Отражения -- Отражения
4263 - 898 х3 4263 - 898 х3
4264 - 890 х2 4264 - 890 х2
4265 - 907 х2 4265 - 907 х2
4266 - 905 х1 4266 - 905 х1
4267 - 905 х1 , 892 х1 4267 - 905 х1 , 892 х1
*/ */
//Все переменные сохранять в массиве $vad ! //Все переменные сохранять в массиве $vad !
$vad = array( $vad = array(
'go' => true 'go' => true
); );
$vad['recept'] = array( $vad['recept'] = array(
//Б //Б
array( 897, 3 ), array( 897, 3 ),
array( 903, 2 ), array( 903, 2 ),
array( 888, 2 ), array( 888, 2 ),
array( 892, 1 ), array( 892, 1 ),
array( 892, 1, 892, 1 ), array( 892, 1, 892, 1 ),
//З //З
array( 950, 3 ), array( 950, 3 ),
array( 904, 2 ), array( 904, 2 ),
array( 878, 2 ), array( 878, 2 ),
array( 880, 1 ), array( 880, 1 ),
array( 880, 1, 892, 1 ), array( 880, 1, 892, 1 ),
//К //К
array( 899, 3 ), array( 899, 3 ),
array( 882, 2 ), array( 882, 2 ),
array( 908, 2 ), array( 908, 2 ),
array( 909, 1 ), array( 909, 1 ),
array( 909, 1, 892, 1 ), array( 909, 1, 892, 1 ),
//Ответа //Ответа
array( 899, 3 ), array( 899, 3 ),
array( 902, 2 ), array( 902, 2 ),
array( 881, 2 ), array( 881, 2 ),
array( 893, 1 ), array( 893, 1 ),
array( 893, 1, 892, 1 ), array( 893, 1, 892, 1 ),
//Отражения //Отражения
array( 898, 3 ), array( 898, 3 ),
array( 890, 2 ), array( 890, 2 ),
array( 907, 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 ) { 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')); $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] ) { if( $vad['tr_itm'][2] >= $vad['recept'][$vad['i']][3] ) {
//все ок //все ок
}else{ }else{
$vad['tr_itm'] = false; $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)]; $vad['itm'] = $vad['itm'][rand(0,count($vad['itm'])-1)];
if( $vad['test2'][0] >= 10 ) { if( $vad['test2'][0] >= 10 ) {
$r = 'Не удалось воспользоваться лабораторией, не более 10 раз на команду за один поход'; $r = 'Не удалось воспользоваться лабораторией, не более 10 раз на команду за один поход';
$vad['go'] = false; $vad['go'] = false;
}elseif( $vad['test1'][0] >= 3 ) { }elseif( $vad['test1'][0] >= 3 ) {
$r = 'Не удалось воспользоваться лабораторией, не более 3 раз на персонажа за один поход'; $r = 'Не удалось воспользоваться лабораторией, не более 3 раз на персонажа за один поход';
$vad['go'] = false; $vad['go'] = false;
}elseif(!isset($vad['itm']['id'])) { }elseif(!isset($vad['itm']['id'])) {
$r = 'Недостаточно ингридиентов...'; $r = 'Недостаточно ингридиентов...';
$vad['go'] = false; $vad['go'] = false;
} }
if( $vad['go'] == true ) { if( $vad['go'] == true ) {
//Выдаем предмет //Выдаем предмет
if( $vad['tr'][$vad['itm']['id']][1] > 0 ) { 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]); $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->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'); $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) { 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{ }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']); $this->sys_chat($vad['text']);
} }

View File

@ -1,16 +1,16 @@
<? <?
if( isset($s[1]) && $s[1] == '101/nakova' ) { if( isset($s[1]) && $s[1] == '101/nakova' ) {
/* /*
Сундук: Наковальня Сундук: Наковальня
* Можно создать сущность х2 с судьбой * Можно создать сущность х2 с судьбой
*/ */
//Все переменные сохранять в массиве $vad ! //Все переменные сохранять в массиве $vad !
$vad = array( $vad = array(
'go' => true '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')); $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 ) { if( $vad['test1'][0] > 0 ) {
$r = 'Кто-то уже разбил сущность за этот поход, наковальня сломана...'; $r = 'Кто-то уже разбил сущность за этот поход, наковальня сломана...';
$vad['go'] = false; $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 ( 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->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); $u->deleteItem($vad['sp']['id'],$u->info['id'],1);
mysql_query('UPDATE `items_users` SET `delete` = "'.time().'" WHERE `id` = "'.$vad['sp']['id'].'" LIMIT 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');
$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']) ) { }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' ) { if( isset($s[1]) && $s[1] == '101/nakova2' ) {
/* /*
Наковальня 2 Наковальня 2
* Телепортирует на необходимую клетку х 3 , у 42 * Телепортирует на необходимую клетку х 3 , у 42
*/ */
//Все переменные сохранять в массиве $vad ! //Все переменные сохранять в массиве $vad !
$vad = array( $vad = array(
'go' => true 'go' => true
); );
if( $vad['go'] == true ) { if( $vad['go'] == true ) {
mysql_query('UPDATE `stats` SET `x` = "3",`y` = "42",`s` = "3" WHERE `id` = "'.$u->info['id'].'" LIMIT 1'); 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>'; echo '<script>location.href="main.php"</script>';
} }
unset($vad); unset($vad);

View File

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

View File

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

View File

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

View File

@ -1,52 +1,52 @@
<? <?
if( isset($s[1]) && $s[1] == '101/sunduk2' ) { if( isset($s[1]) && $s[1] == '101/sunduk2' ) {
/* /*
Сундук: Сундук Сундук: Сундук
* Можно найти Отворяющая печать №3 1175 * Можно найти Отворяющая печать №3 1175
*/ */
//Все переменные сохранять в массиве $vad ! //Все переменные сохранять в массиве $vad !
$vad = array( $vad = array(
'go' => true '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')); $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 ) { if( $vad['test1'][0] > 0 ) {
$r = 'Кто-то обыскал &quot;'.$obj['name'].'&quot; раньше вас...'; $r = 'Кто-то обыскал &quot;'.$obj['name'].'&quot; раньше вас...';
$vad['go'] = false; $vad['go'] = false;
} }
if( $vad['go'] == true ) { if( $vad['go'] == true ) {
//Выкидываем Отворяющая печать №3 //Выкидываем Отворяющая печать №3
$vad['items'] = array(1175); $vad['items'] = array(1175);
$vad['items'] = $vad['items'][rand(0,count($vad['items'])-1)]; $vad['items'] = $vad['items'][rand(0,count($vad['items'])-1)];
if( $vad['items'] != 0 && rand(1,100) < 80) { if( $vad['items'] != 0 && rand(1,100) < 80) {
// Выбрасываем предмет // Выбрасываем предмет
mysql_query('INSERT INTO `dungeon_actions` (`dn`,`time`,`x`,`y`,`uid`,`vars`,`vals`) VALUES ( 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'].'","" "'.$u->info['dnow'].'","'.time().'","'.$obj['x'].'","'.$obj['y'].'","'.$u->info['id'].'","obj_act'.$obj['id'].'",""
)'); )');
/* /*
//откуда тут сущности? обломятся! //откуда тут сущности? обломятся!
if( rand(0,100) < 10 ) { if( rand(0,100) < 10 ) {
//Сущность сапог //Сущность сапог
$this->pickitem($obj,4279,0); $this->pickitem($obj,4279,0);
} }
if( rand(0,100) < 10 ) { if( rand(0,100) < 10 ) {
//Сущность щита //Сущность щита
$this->pickitem($obj,4269,0); $this->pickitem($obj,4269,0);
} }
*/ */
if( $this->pickitem($obj,$vad['items'],0) ) { if( $this->pickitem($obj,$vad['items'],0) ) {
$r = 'Вы обнаружили предметы...'; $r = 'Вы обнаружили предметы...';
}else{ }else{
$r = 'Что-то пошло не так, предметы растворились...'; $r = 'Что-то пошло не так, предметы растворились...';
} }
} else { } else {
mysql_query('INSERT INTO `dungeon_actions` (`dn`,`time`,`x`,`y`,`uid`,`vars`,`vals`) VALUES ( 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" "'.$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' ) { if( isset($s[1]) && $s[1] == '101/sunduk3' ) {
/* /*
Сундук: Сундук Сундук: Сундук
*/ */
//Все переменные сохранять в массиве $vad ! //Все переменные сохранять в массиве $vad !
$vad = array( $vad = array(
'go' => true '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')); $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 ) { if( $vad['test1'][0] > 0 ) {
$r = 'Кто-то обыскал &quot;'.$obj['name'].'&quot; до вас...'; $r = 'Кто-то обыскал &quot;'.$obj['name'].'&quot; до вас...';
$vad['go'] = false; $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'].'" "'.$u->info['dnow'].'","'.time().'","'.$obj['x'].'","'.$obj['y'].'","'.$u->info['id'].'","obj_act'.$obj['id'].'","'.$vad['bad'].'"
)'); )');
if( rand(1,100) > 20 ) { if( rand(1,100) > 20 ) {
$r = 'Обыскав &quot;'.$obj['name'].'&quot; вы ничего не обнаружили...'; $r = 'Обыскав &quot;'.$obj['name'].'&quot; вы ничего не обнаружили...';
}else{ }else{
$vad['items'] = array(4279,4269); $vad['items'] = array(4279,4269);
if( rand(1,100) < 9 ) { 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']]) ) { if( !isset($vad['dn_delete'][$vad['items']['id']]) ) {
$vad['dn_delete'][$vad['items']['id']] = false; $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']]); $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' ) { if( isset($s[1]) && $s[1] == '101/sunduk4' ) {
/* /*
Сундук: Сундук Сундук: Сундук
*/ */
//Все переменные сохранять в массиве $vad ! //Все переменные сохранять в массиве $vad !
$vad = array( $vad = array(
'go' => true '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')); $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 ) { if( $vad['test1'][0] > 0 ) {
$r = 'Кто-то обыскал &quot;'.$obj['name'].'&quot; до вас...'; $r = 'Кто-то обыскал &quot;'.$obj['name'].'&quot; до вас...';
$vad['go'] = false; $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'].'" "'.$u->info['dnow'].'","'.time().'","'.$obj['x'].'","'.$obj['y'].'","'.$u->info['id'].'","obj_act'.$obj['id'].'","'.$vad['bad'].'"
)'); )');
if( rand(1,100) > 50 ) { if( rand(1,100) > 50 ) {
$r = 'Обыскав &quot;'.$obj['name'].'&quot; вы ничего не обнаружили...'; $r = 'Обыскав &quot;'.$obj['name'].'&quot; вы ничего не обнаружили...';
}else{ }else{
$vad['items'] = array(882); $vad['items'] = array(882);
if( rand(1,40) < 16 ) { 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']]) ) { if( !isset($vad['dn_delete'][$vad['items']['id']]) ) {
$vad['dn_delete'][$vad['items']['id']] = false; $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']]); $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' ) { if( isset($s[1]) && $s[1] == '101/telejka' ) {
/* /*
Сундук: Тележка Сундук: Тележка
* Можно получить один из двух ресурсов * Можно получить один из двух ресурсов
*/ */
//Все переменные сохранять в массиве $vad ! //Все переменные сохранять в массиве $vad !
$vad = array( $vad = array(
'go' => true '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')); $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 ) { if( $vad['test1'][0] > 0 ) {
$r = 'Кто-то обыскал &quot;'.$obj['name'].'&quot; до вас...'; $r = 'Кто-то обыскал &quot;'.$obj['name'].'&quot; до вас...';
$vad['go'] = false; $vad['go'] = false;
} }
@ -20,14 +20,14 @@ if( isset($s[1]) && $s[1] == '101/telejka' ) {
)'); )');
if( rand(0,100) < 80 ) { if( rand(0,100) < 80 ) {
if( rand(0,100) < 51 ) { 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']); $this->pickitem($obj,895,$u->info['id']);
}else{ }else{
$r = 'Обыскав &quot;'.$obj['name'].'&quot; вы обнаружили &quot;Серебро&quot;'; $r = 'Обыскав &quot;'.$obj['name'].'&quot; вы обнаружили &quot;Серебро&quot;';
$this->pickitem($obj,875,$u->info['id']); $this->pickitem($obj,875,$u->info['id']);
} }
}else{ }else{
$r = 'Вы ничего не смогли найти...'; $r = 'Вы ничего не смогли найти...';
} }
} }

View File

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

View File

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

View File

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

View File

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

View File

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

View File

@ -1,15 +1,15 @@
<? <?
if( isset($s[1]) && $s[1] == '106/btn1' ) { if( isset($s[1]) && $s[1] == '106/btn1' ) {
/* /*
Сундук: Кровавый подземник (4561) Сундук: Кровавый подземник (4561)
*/ */
//Все переменные сохранять в массиве $vad ! //Все переменные сохранять в массиве $vad !
$vad = array( $vad = array(
'go' => true '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')); $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 ) { if( $vad['test1'][0] > 0 ) {
$r = 'Вы уже нажали на &quot;'.$obj['name'].'&quot;...'; $r = 'Вы уже нажали на &quot;'.$obj['name'].'&quot;...';
$vad['go'] = false; $vad['go'] = false;
} }
@ -22,7 +22,7 @@ if( isset($s[1]) && $s[1] == '106/btn1' ) {
if( !isset($vad['dn_delete'][$vad['items']['id']]) ) { if( !isset($vad['dn_delete'][$vad['items']['id']]) ) {
$vad['dn_delete'][$vad['items']['id']] = false; $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']]); $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' ) { if( isset($s[1]) && $s[1] == '106/door1' ) {
/* /*
Сундук: Кровавый подземник (4561) Сундук: Кровавый подземник (4561)
*/ */
//Все переменные сохранять в массиве $vad ! //Все переменные сохранять в массиве $vad !
$vad = array( $vad = array(
'go' => true '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')); $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'])) { if(!isset($vad['qst']['id'])) {
$r = 'Дверь закрыта. Сначала выполните задания Учителя.'; $r = 'Дверь закрыта. Сначала выполните задания Учителя.';
}else{ }else{
mysql_query('UPDATE `stats` SET `x` = -2,`y` = 6,`s` = 1 WHERE `id` = "'.$u->info['id'].'" LIMIT 1'); mysql_query('UPDATE `stats` SET `x` = -2,`y` = 6,`s` = 1 WHERE `id` = "'.$u->info['id'].'" LIMIT 1');
header('location: main.php'); header('location: main.php');

View File

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

View File

@ -1,9 +1,9 @@
<? <?
if( isset($s[1]) && $s[1] == '106/door3' ) { if( isset($s[1]) && $s[1] == '106/door3' ) {
/* /*
Сундук: Кровавый подземник (4561) Сундук: Кровавый подземник (4561)
*/ */
//Все переменные сохранять в массиве $vad ! //Все переменные сохранять в массиве $vad !
$vad = array( $vad = array(
'go' => true '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')); $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'])) { if(!isset($vad['qst']['id']) || !isset($vad['itm']['id'])) {
$r = 'Дверь закрыта. Сначала выполните задания Учителя и купите Футболку с Эликсиром.'; $r = 'Дверь закрыта. Сначала выполните задания Учителя и купите Футболку с Эликсиром.';
}else{ }else{
//Начало обучения //Начало обучения
$humor = array( $humor = array(
0 => array( 0 => array(
':maniac: Сильно не бейте ;)',':beggar: Будет попрошайничать - бейте!',':pal: Возможно светлый!', ':maniac: Сильно не бейте ;)',':beggar: Будет попрошайничать - бейте!',':pal: Возможно светлый!',
':vamp: Возможно темный!',':susel: Судя по здоровенному бицепсу - это мужик!',':duel: И сразу же кинулся в бой!', ':vamp: Возможно темный!',':susel: Судя по здоровенному бицепсу - это мужик!',':duel: И сразу же кинулся в бой!',
':friday: Не долго думав он начал искать собутыльника!',':doc: Лекарь: Новичок! Да, да! Ты! Если тебя сломают - у знахаря тебя соберут обратно!' ':friday: Не долго думав он начал искать собутыльника!',':doc: Лекарь: Новичок! Да, да! Ты! Если тебя сломают - у знахаря тебя соберут обратно!'
), ),
1 => array( 1 => array(
':maniac: Помните! Девочек не бьем ;)',':nail: Она красит ногти, не отвлекайте все сразу ;)',':pal: Возможно светлая!', ':maniac: Помните! Девочек не бьем ;)',':nail: Она красит ногти, не отвлекайте все сразу ;)',':pal: Возможно светлая!',
':vamp: Возможно темная!',':rev: Судя по красивой одежде - это женщина!',':hug: И сразу же кинулась всех целовать!', ':vamp: Возможно темная!',':rev: Судя по красивой одежде - это женщина!',':hug: И сразу же кинулась всех целовать!',
':angel2: Ангел сошел с небес...' ':angel2: Ангел сошел с небес...'
) )
); );
$humor = $humor[$u->info['sex']]; $humor = $humor[$u->info['sex']];
//$u->info['fnq'] = 1; //$u->info['fnq'] = 1;
//mysql_query('UPDATE `users` SET `fnq` = "'.$u->info['fnq'].'" WHERE `id` = "'.$u->info['id'].'" LIMIT 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 `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 `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'); 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'); //mysql_query('UPDATE `stats` SET `x` = 0,`y` = 5 WHERE `id` = "'.$u->info['id'].'" LIMIT 1');
header('location: main.php'); header('location: main.php');
die(); die();

View File

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

View File

@ -3,7 +3,7 @@ if(isset($s[1]) && $s[1] == '108/door1') {
$vad = array('go' => true); $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')); $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) { if($vad['test1'][0] > 0) {
$r = 'Кто-то вас опередил...'; $r = 'Кто-то вас опередил...';
$vad['go'] = false; $vad['go'] = false;
} }
if($vad['go'] == 'true') { 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'] = 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['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; $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); $this->pickitem($obj, $vad['items']['id'], 1,'',true, 1);
} }
unset($vad); unset($vad);

View File

@ -3,24 +3,24 @@ if(isset($s[1]) && $s[1] == '108/fontan1') {
$vad = array('go' => true); $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')); $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'])) { if(isset($bots['id2'])) {
$r = 'Не все боты убиты ...'; $r = 'Не все боты убиты ...';
$vad['go'] = false; $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')); $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) { if($vad['test1'][0] > 2) {
$r = 'Фонтан пуст ...'; $r = 'Фонтан пуст ...';
$vad['go'] = false; $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')); $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) { if($vad['test2'][0] > 0) {
$r = 'Вы уже пользовались фонтаном ...'; $r = 'Вы уже пользовались фонтаном ...';
$vad['go'] = false; $vad['go'] = false;
} }
if($vad['go'] == 'true') { if($vad['go'] == 'true') {
$vad['items'] = array(4911, 4912, 4913); $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['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; $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); $this->pickitem($obj, $vad['items']['id'], 1,'',false, 1);
mysql_query('INSERT INTO `dungeon_actions` (`dn`, `time`, `x`, `y`, `uid`, `vars`, `vals`) VALUES ( 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->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')); $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) { if($vad['test1'][0] > 1) {
$r = 'Фонтан пуст ...'; $r = 'Фонтан пуст ...';
$vad['go'] = false; $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')); $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) { if($vad['test2'][0] > 0) {
$r = 'Вы уже пользовались фонтаном ...'; $r = 'Вы уже пользовались фонтаном ...';
$vad['go'] = false; $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')); $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(isset($vad['bt']['id'])) {
if($vad['bt']['inGroup'] > 1) { if($vad['bt']['inGroup'] > 1) {
$r = 'Предмет не должен находиться в группе'; $r = 'Предмет не должен находиться в группе';
$vad['go'] = false; $vad['go'] = false;
} else { } else {
$vad['go'] = true; $vad['go'] = true;
} }
} else { } else {
$r = 'У вас нет пустой бутылки.'; $r = 'У вас нет пустой бутылки.';
$vad['go'] = false; $vad['go'] = false;
} }
} }
@ -32,7 +32,7 @@ if(isset($s[1]) && $s[1] == '108/fontan2') {
if( $vad['go'] == true ) { if( $vad['go'] == true ) {
mysql_query('INSERT INTO `dungeon_actions` (`dn`, `time`, `x`, `y`, `uid`, `vars`, `vals`) VALUES ( 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->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->deleteItem(intval($vad['bt']['id']),$u->info['id'],1);
$u->addItem(round(2417),$u->info['id'],'|musor=2|noremont=1|nosale=1',108, 3); $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 = 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')); $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) { if($vad['test1'][0] > 0) {
$r = 'Фонтан пуст ...'; $r = 'Фонтан пуст ...';
$vad['go'] = false; $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')); $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'])) { if(isset($bots['id2'])) {
$r = 'Не все боты убиты ...'; $r = 'Не все боты убиты ...';
$vad['go'] = false; $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')); $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'])) { if(isset($vad['test2']['id2'])) {
$r = 'Король всё еще жив ...'; $r = 'Король всё еще жив ...';
$vad['go'] = false; $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'].'")'); "'.$u->info['dnow'].'","'.time().'","'.$obj['x'].'","'.$obj['y'].'","'.$u->info['id'].'","obj_act'.$obj['id'].'","'.$vad['bad'].'")');
//4041 //4041
$u->addItem(round(4041),$u->info['id'],'|musor=2|noremont=1|nosale=1',108, 1); $u->addItem(round(4041),$u->info['id'],'|musor=2|noremont=1|nosale=1',108, 1);
$r = 'Вы получили Снадобье Забытых Мастеров'; $r = 'Вы получили Снадобье Забытых Мастеров';
} }
unset($vad); unset($vad);

View File

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

View File

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

View File

@ -9,17 +9,17 @@ if(isset($s[1]) && $s[1] == '12/fontan1') {
if(isset($vad['bottle']['id'])) { if(isset($vad['bottle']['id'])) {
$vad['go'] = true; $vad['go'] = true;
} else { } else {
$r = 'Для использования требуется &quot;Пустая Бутылка&quot;'; $r = 'Для использования требуется &quot;Пустая Бутылка&quot;';
} }
} else { } else {
$r = 'Для использования требуется &quot;Мерцающий Ключ №1&quot;'; $r = 'Для использования требуется &quot;Мерцающий Ключ №1&quot;';
} }
} else { } else {
if($u->info['sex'] == 1) { $a = 'а'; } else { $a = ''; } if($u->info['sex'] == 1) { $a = 'а'; } else { $a = ''; }
$r = 'Мне кажется, что здесь я уже был'.$a.'..'; $r = 'Мне кажется, что здесь я уже был'.$a.'..';
} }
if($vad['go'] == true) { 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['key']['id']), $u->info['id'], 1);
$u->deleteItem(intval($vad['bottle']['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); $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' ) { if( isset($s[1]) && $s[1] == '12/fontan2' ) {
//Все переменные сохранять в массиве $vad ! //Все переменные сохранять в массиве $vad !
$vad = array( $vad = array(
'go' => false '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'])) { 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')); $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){ if($vad['all_uses']>=4){
$r = 'Ничего не осталось, кто-то побывал здесь раньше.'; $r = 'Ничего не осталось, кто-то побывал здесь раньше.';
} else { } 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( isset($vad['kill_dk']['id2']) ) {
if( $vad['kill_dk']['delete'] > 0 ) { 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')); $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( isset($vad['bt']['id']) ) {
$vad['go'] = true; $vad['go'] = true;
} else { } else {
$r = 'У вас нет пустой бутылки.'; $r = 'У вас нет пустой бутылки.';
} }
} else { } else {
$r = 'Вы не можете воспользоваться фонтаном, пока Дарьяна Корт жива.'; $r = 'Вы не можете воспользоваться фонтаном, пока Дарьяна Корт жива.';
} }
} else { } else {
$r = 'Вы уверены что Дарьяна Корт мертва? Нигде нет ее останков..'; $r = 'Вы уверены что Дарьяна Корт мертва? Нигде нет ее останков..';
} }
} }
} else { } else {
if($u->info['sex']==1)$a='а'; else $a=''; if($u->info['sex']==1)$a='а'; else $a='';
$r = 'Мне кажется, что здесь я уже был'.$a.'..'; $r = 'Мне кажется, что здесь я уже был'.$a.'..';
} }
if( $vad['go'] == true ) { 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" )'); // Выпили раз, вот и хватит с вас! 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 = 'Опустив пустую бутылку в фонтан вы наполнили её.'; $r = 'Опустив пустую бутылку в фонтан вы наполнили её.';
$u->deleteItem(intval($vad['bt']['id']),$u->info['id'],1); // Удаляем Пустая Бутылка = 2. $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 $u->addItem(round(1186),$u->info['id'],'|musor=2|noremont=1|nosale=1',12, 3); // Великое зелье Стойкости 1186
} }
unset($vad); unset($vad);
} }

View File

@ -1,57 +1,57 @@
<? <?
if( isset($s[1]) && $s[1] == '12/fontan3' ) { if( isset($s[1]) && $s[1] == '12/fontan3' ) {
//Âñå ïåðåìåííûå ñîõðàíÿòü â ìàññèâå $vad ! //Все переменные сохранять в массиве $vad !
$vad = array( $vad = array(
'go' => false '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'])) { 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')); $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){ if($vad['all_uses']>=2){
$r = 'Íè÷åãî íå îñòàëîñü, êòî-òî ïîáûâàë çäåñü ðàíüøå.'; $r = 'Ничего не осталось, кто-то побывал здесь раньше.';
} else { } 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']) ) { 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')); $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( isset($vad['bt']['id']) ) {
//if( $vad['bt']['inGroup'] > 0 ) { //if( $vad['bt']['inGroup'] > 0 ) {
// $r = 'Ïðåäìåò íå äîëæåí íàõîäèòüñÿ â ãðóïïå'; // $r = 'Предмет не должен находиться в группе';
//}else{ //}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_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); $vad['gems']['query'] = mysql_result($vad['gems']['query'], (rand(0, (mysql_num_rows($vad['gems']['query'])-1))),0);
if( $vad['gems']['query'] != "" ) { if( $vad['gems']['query'] != "" ) {
$vad['go'] = true; $vad['go'] = true;
} else { } else {
$r = '×òî-òî ïîøëî íå òàê, íåîáõîäèì äðàãîöåííûé êàìåíü...'; $r = 'Что-то пошло не так, необходим драгоценный камень...';
} }
//} //}
} else { } else {
$r = 'Ó âàñ íåò ïóñòîé áóòûëêè.'; $r = 'У вас нет пустой бутылки.';
} }
} else { } else {
$r = 'Âû óâåðåíû ÷òî óáèëè âñþ ãðóïïó ìîíñòðîâ?'; $r = 'Вы уверены что убили всю группу монстров?';
} }
} }
} else { } else {
if($u->info['sex']==1)$a='à'; else $a=''; if($u->info['sex']==1)$a='а'; else $a='';
$r = 'Ìíå êàæåòñÿ, ÷òî çäåñü ÿ óæå áûë'.$a.'..'; $r = 'Мне кажется, что здесь я уже был'.$a.'..';
} }
if( $vad['go'] == true ) { 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" )'); // Âûïèëè ðàç, âîò è õâàòèò ñ âàñ! 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 = 'Îïóñòèâ ïóñòóþ áóòûëêó â ôîíòàí âû íàïîëíèëè å¸.'; $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['gems']['query'])).'" LIMIT 1');
mysql_query('DELETE FROM `items_users` WHERE `id` = "'.mysql_real_escape_string(intval($vad['bt']['id'])).'" 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); unset($vad);
} }

View File

@ -5,37 +5,37 @@ if(isset($s[1]) && $s[1] == '12/fontan4') {
if(!isset($vad['use_fontan']['id'])) { 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')); $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) { if($vad['all_uses'] >= 3) {
$r = 'Ничего не осталось, кто-то побывал здесь раньше.'; $r = 'Ничего не осталось, кто-то побывал здесь раньше.';
} else { } 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')); $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'])) { 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')); $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(isset($vad['bottle']['id'])) {
// if($vad['bottle']['inGroup'] > 0) { // if($vad['bottle']['inGroup'] > 0) {
// $r = 'Пустая бутылка не должена находиться в группе...'; // $r = 'Пустая бутылка не должена находиться в группе...';
// } else { // } 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_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); $vad['gems']['query'] = mysql_result($vad['gems']['query'], (rand(0, (mysql_num_rows($vad['gems']['query'])-1))),0);
if($vad['gems']['query'] != '') { if($vad['gems']['query'] != '') {
$vad['go'] = true; $vad['go'] = true;
} else { } else {
$r = 'У вас нет драгоценных камней...'; $r = 'У вас нет драгоценных камней...';
} }
// } // }
} else { } else {
$r = 'У вас нет пустой бутылки.'; $r = 'У вас нет пустой бутылки.';
} }
} else { } else {
$r = 'Вы уверены что убили всю группу монстров?'; $r = 'Вы уверены что убили всю группу монстров?';
} }
} }
} else { } else {
if($u->info['sex'] == 1) { $a = 'а'; } else { $a = ''; } if($u->info['sex'] == 1) { $a = 'а'; } else { $a = ''; }
$r = 'Мне кажется, что здесь я уже был'.$a.'..'; $r = 'Мне кажется, что здесь я уже был'.$a.'..';
} }
if($vad['go'] == true) { 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" )'); 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); $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'); 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); $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 = 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')); $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) { if($vad['test1'][0] > 0) {
$r = 'Кто-то обыскал &quot;'.$obj['name'].'&quot; раньше вас...'; $r = 'Кто-то обыскал &quot;'.$obj['name'].'&quot; раньше вас...';
$vad['go'] = false; $vad['go'] = false;
} }
if($vad['go'] == true) { if($vad['go'] == true) {
@ -14,7 +14,7 @@ if(isset($s[1]) && $s[1] == '12/s1') {
$vad['i'] = 0; $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)); $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) { if(rand(0,100) < 50) {
$r = 'Вы ничего не нашли...'; $r = 'Вы ничего не нашли...';
} else { } else {
while($vad['i'] < count($vad['items'])) { while($vad['i'] < count($vad['items'])) {
$vad['j'] = $vad['items'][$vad['i']]; $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)]; $vad['itm'] = $vad['items'][rand(0, count(($vad['items']))-1)];
$this->pickitem($obj, $vad['itm'][0], 0); $this->pickitem($obj, $vad['itm'][0], 0);
} }
$r = 'Вы обнаружили предметы...'; $r = 'Вы обнаружили предметы...';
} }
} else { } else {
$r = 'Вы не нашли ничего полезного...'; $r = 'Вы не нашли ничего полезного...';
} }
} }
unset($vad); unset($vad);

View File

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

View File

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

View File

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

View File

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

View File

@ -1,14 +1,14 @@
<? <?
if( isset($s[1]) && $s[1] == '12/sunduk_04_4stage' ) { 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') # `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') #'4514', '4515')
*/ */
//Все переменные сохранять в массиве $vad ! //Все переменные сохранять в массиве $vad !
$vad = array( $vad = array(
'go' => true '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['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')); $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 ) { if( $vad['test2'][0] > 0 ) {
$r = 'Вы уже обыскали &quot;'.$obj['name'].'&quot;...'; $r = 'Вы уже обыскали &quot;'.$obj['name'].'&quot;...';
$vad['go'] = false; $vad['go'] = false;
}elseif( $vad['test1'][0] > 0 ) { }elseif( $vad['test1'][0] > 0 ) {
$r = 'Кто-то обыскал &quot;'.$obj['name'].'&quot; раньше вас...'; $r = 'Кто-то обыскал &quot;'.$obj['name'].'&quot; раньше вас...';
$vad['go'] = false; $vad['go'] = false;
} }
if( $vad['go'] == true ) { if( $vad['go'] == true ) {
if(rand(0,100) > 85){ # Элики if(rand(0,100) > 85){ # Элики
$vad['items'] = array(4514,4515); $vad['items'] = array(4514,4515);
} else{ # Тактики } else{ # Тактики
$vad['repcent'] = rand(0,100); $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); $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); $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); $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); $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'] = array_merge(array(4514,4515), $vad['items']);
} }
} }
$vad['items'] = $vad['items'][rand(0,count($vad['items'])-1)]; $vad['items'] = $vad['items'][rand(0,count($vad['items'])-1)];
if( $vad['items'] != 0 ) { if( $vad['items'] != 0 ) {
//Выбрасываем предмет //Выбрасываем предмет
mysql_query('INSERT INTO `dungeon_actions` (`dn`,`time`,`x`,`y`,`uid`,`vars`,`vals`) VALUES ( 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'].'","" "'.$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; $vad['dn_delete'][$vad['items']] = false;
} }
if( $this->pickitem($obj,$vad['items'],$u->info['id'],'',$vad['dn_delete'][$vad['items']]) ) { if( $this->pickitem($obj,$vad['items'],$u->info['id'],'',$vad['dn_delete'][$vad['items']]) ) {
$r = 'Вы обнаружили предметы...'; $r = 'Вы обнаружили предметы...';
}else{ }else{
$r = 'Что-то пошло не так, предметы растворились...'; $r = 'Что-то пошло не так, предметы растворились...';
} }
}else{ }else{
$r = 'Вы не нашли ничего полезного...'; $r = 'Вы не нашли ничего полезного...';
} }
} }

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

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