This commit is contained in:
Ivor Barhansky 2024-12-17 10:40:25 +02:00
commit 7692c9f658
106 changed files with 6704 additions and 5723 deletions

View File

@ -41,9 +41,6 @@ DefaultLanguage ru
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]
RewriteRule ^ruins/(.*)/?$ /ruins.php?$1 [L]
RewriteRule ^ruins/?$ /ruins.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]

12
.idea/dataSources.xml generated Normal file
View File

@ -0,0 +1,12 @@
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="DataSourceManagerImpl" format="xml" multifile-model="true">
<data-source source="LOCAL" name="@sokol" uuid="c5a52191-dffb-4c22-9257-bd5d9e5d5f29">
<driver-ref>mariadb</driver-ref>
<synchronize>true</synchronize>
<jdbc-driver>org.mariadb.jdbc.Driver</jdbc-driver>
<jdbc-url>jdbc:mariadb://85.209.45.159:54001/game_production</jdbc-url>
<working-dir>$ProjectFileDir$</working-dir>
</data-source>
</component>
</project>

View File

@ -247,7 +247,7 @@ class Battle
/** /**
* @param int|null $experience * @param int|null $experience
* @param bool $hardcore поединок с гарантированной травмой * @param bool $hardcore поединок с гарантированной травмой
* @return array|int[] * @return array|int[]
*/ */
public static function getType(?int $experience, bool $hardcore = false): array public static function getType(?int $experience, bool $hardcore = false): array
@ -365,10 +365,10 @@ class Battle
Db::sql( Db::sql(
'update stats set last_hp = ?, tactic7 = ? where id = ?', [ 'update stats set last_hp = ?, tactic7 = ? where id = ?', [
$this->users[$this->uids[$uid]]['last_hp'], $this->users[$this->uids[$uid]]['last_hp'],
$this->users[$this->uids[$uid]]['tactic7'], $this->users[$this->uids[$uid]]['tactic7'],
$uid, $uid,
] ]
); );
return (int)$hp; return (int)$hp;
@ -1139,9 +1139,9 @@ JS;
/** /**
* @param array $botLogins * @param array $botLogins
* @param int $counter * @param int $counter
* @param int $obr * @param int $obr
* @param int $unique для совместимости с непонятным вызовом User->addAction * @param int $unique для совместимости с непонятным вызовом User->addAction
* при вызове уникального монстра. * при вызове уникального монстра.
* @return void * @return void
*/ */
@ -1231,14 +1231,14 @@ JS;
/** Осторожно! Подключаются файлы!!! /** Осторожно! Подключаются файлы!!!
* Трогать очень осторожно. Этот шайтан как-то проверяет приёмы на враге * Трогать очень осторожно. Этот шайтан как-то проверяет приёмы на враге
* и рассчитывает урон учитывая и эти приёмы тоже. * и рассчитывает урон учитывая и эти приёмы тоже.
* @param int $uid1 * @param int $uid1
* @param int $uid2 * @param int $uid2
* @param int $priem * @param int $priem
* @param $yron * @param $yron
* @param int $profil * @param int $profil
* @param bool $stabil * @param bool $stabil
* @param bool $test * @param bool $test
* @param int $inlog * @param int $inlog
* @return float|int|mixed * @return float|int|mixed
*/ */
public function testYronPriem( public function testYronPriem(
@ -1250,7 +1250,8 @@ JS;
bool $stabil, bool $stabil,
bool $test = false, bool $test = false,
int $inlog = 0 int $inlog = 0
): mixed { ): mixed
{
/** /**
* profil = { * profil = {
@ -1524,7 +1525,12 @@ JS;
$jstext = json_encode($log['text']); $jstext = json_encode($log['text']);
$jsvars = json_encode($log['vars']); $jsvars = json_encode($log['vars']);
$js = "add_log({$log['id']},0,$jstext,{$log['id_hod']},$jsvars);" . $js; //old
//$js = "add_log({$log['id']},0,$jstext,{$log['id_hod']},0,0,$jsvars)" . $js;
//home
//$js = "add_log({$log['id']},0,$jstext,{$log['id_hod']},$jsvars);" . $js;
//work
$js = "add_log({$log['id']},$jstext,{$log['id_hod']},$jsvars);" . $js;
} }
Db::sql('update stats set alog = ? where id = ?', [$u->info['alog'], $u->info['id']]); Db::sql('update stats set alog = ? where id = ?', [$u->info['alog'], $u->info['id']]);
@ -1589,8 +1595,15 @@ JS;
$jstext = json_encode($log['text']); $jstext = json_encode($log['text']);
$jsvars = json_encode($log['vars']); $jsvars = json_encode($log['vars']);
//$js = "add_mlog({$log['id']},0,$jstext,{$log['id_hod']},$jsvars);" . $js; $js = "add_mlog({$log['id']},0,$jstext,{$log['id_hod']},0,0,$jsvars)" . $js;
$js = "add_mlog({$log['id']},0,'{$log['text']}',{$log['id_hod']},'{$log['vars']}');" . $js;
//old
//$js = "add_mlog({$log['id']},0,$jstext,{$log['id_hod']},0,0,$jsvars)" . $js;
//home
////$js = "add_mlog({$log['id']},0,$jstext,{$log['id_hod']},$jsvars);" . $js;
//$js = "add_mlog({$log['id']},0,'{$log['text']}',{$log['id_hod']},'{$log['vars']}');" . $js;
//work
$js = "add_mlog({$log['id']},$jstext,{$log['id_hod']},$jsvars)" . $js;
} }
Db::sql('update stats set mlog = ? where id = ?', [$u->info['mlog'], $u->info['id']]); Db::sql('update stats set mlog = ? where id = ?', [$u->info['mlog'], $u->info['id']]);
@ -1920,17 +1933,6 @@ JS;
} }
} }
/**
* Массово встречается в подключаемых файлах приёмов.
* @param array $arr
* @return void
* @deprecated
*/
public function add_log(array $arr): void
{
Log::add($arr);
}
private function botAtack($uid, $pl, $tp): void private function botAtack($uid, $pl, $tp): void
{ {
$testAttack = Db::getValue('select count(id) from battle_act where battle = ? and uid1 in (?,?) and uid2 in(?,?) and uid1 != uid2', [$this->i->id, $pl, $uid, $pl, $uid]) === 0; $testAttack = Db::getValue('select count(id) from battle_act where battle = ? and uid1 in (?,?) and uid2 in(?,?) and uid1 != uid2', [$this->i->id, $pl, $uid, $pl, $uid]) === 0;
@ -1963,8 +1965,6 @@ JS;
} }
} }
//Используем приемы
public function startAtack($id): void public function startAtack($id): void
{ {
global $u, $priem; global $u, $priem;
@ -2413,12 +2413,14 @@ JS;
Db::sql('delete from battle_act where id = ?', [$id]); Db::sql('delete from battle_act where id = ?', [$id]);
} }
//Используем приемы
/** Осторожно! Подключаются файлы!!! /** Осторожно! Подключаются файлы!!!
* @param array $pl * @param array $pl
* @param $u1 * @param $u1
* @param int $t * @param int $t
* @param int|array $u2 * @param int|array $u2
* @param string $rznm * @param string $rznm
* @return void * @return void
*/ */
public function delPriem( public function delPriem(
@ -2427,7 +2429,8 @@ JS;
int $t = 1, int $t = 1,
int|array $u2 = 0, int|array $u2 = 0,
string $rznm = 'Очиститься Кровью' string $rznm = 'Очиститься Кровью'
): void { ): void
{
global $u, $priem; global $u, $priem;
if (!isset($pl['priem']['id']) || isset($this->del_val['eff'][$pl['priem']['id']])) { if (!isset($pl['priem']['id']) || isset($this->del_val['eff'][$pl['priem']['id']])) {
return; return;
@ -2484,8 +2487,6 @@ JS;
$this->stats[$this->uids[$pl['uid']]] = $u->getStats($pl['uid'], 0, 0, false, false, true); $this->stats[$this->uids[$pl['uid']]] = $u->getStats($pl['uid'], 0, 0, false, false, true);
} }
//Повторная проверка приемов
/** /**
* Расчет количества блоков и противников? * Расчет количества блоков и противников?
* @param $uid * @param $uid
@ -2564,7 +2565,7 @@ JS;
} }
} }
//Проверка действия приема //Повторная проверка приемов
/** /**
* Магия предметов? * Магия предметов?
@ -2597,7 +2598,7 @@ JS;
} }
} }
//Проверка урона приемов //Проверка действия приема
private function newRazmen($id): array private function newRazmen($id): array
{ {
@ -2618,6 +2619,8 @@ JS;
return $at; return $at;
} }
//Проверка урона приемов
private function usersTestAtack($id, $uid1, $uid2): array private function usersTestAtack($id, $uid1, $uid2): array
{ {
$r = []; $r = [];
@ -2681,8 +2684,6 @@ JS;
return $r; return $r;
} }
//Наносим удар между игроками
public function priemsRazmen(array|int $id, array|string $at): void public function priemsRazmen(array|int $id, array|string $at): void
{ {
if ($at == 'fast') { if ($at == 'fast') {
@ -2734,6 +2735,8 @@ JS;
} }
} }
//Наносим удар между игроками
/** Осторожно! Подключаются файлы!!! /** Осторожно! Подключаются файлы!!!
* @param $id * @param $id
* @param $at * @param $at
@ -2955,10 +2958,6 @@ JS;
return $at; return $at;
} }
//Расчет типа удара от оружия
//Расчет урона от оружия
public function testPogB($uid, $yr, $pliid, $test = 0) public function testPogB($uid, $yr, $pliid, $test = 0)
{ {
$checktuman = Db::getValue('select count(id) from eff_users where uid = ? and v2 in (273,286,287,288)', [$uid]) == 0; //проверка на туманный образ $checktuman = Db::getValue('select count(id) from eff_users where uid = ? and v2 in (273,286,287,288)', [$uid]) == 0; //проверка на туманный образ
@ -3059,6 +3058,8 @@ JS;
return $yr2; return $yr2;
} }
//Расчет типа удара от оружия
//Расчет урона от оружия //Расчет урона от оружия
/** /**
@ -3226,8 +3227,7 @@ JS;
return $at; return $at;
} }
//Расчет урона от оружия
//Расчет защиты
public function yhod_user($uid1, $uid2, $type) public function yhod_user($uid1, $uid2, $type)
{ {
@ -3288,7 +3288,8 @@ JS;
return $r; return $r;
} }
//Расчет защиты (магия)
//Расчет защиты
/** /**
* Добавляем опыт \ нанесенный урон. * Добавляем опыт \ нанесенный урон.
@ -3447,6 +3448,8 @@ JS;
} }
} }
//Расчет защиты (магия)
private function clearCache($uid): void private function clearCache($uid): void
{ {
if ($uid <= 0 || isset($this->uclearc[$uid])) { if ($uid <= 0 || isset($this->uclearc[$uid])) {
@ -3871,7 +3874,6 @@ JS;
return '{' . $a . 'x' . $id . 'x' . $rnd . '}'; return '{' . $a . 'x' . $id . 'x' . $rnd . '}';
} }
/** /**
* Свиток спасения. * Свиток спасения.
* *
@ -3998,7 +4000,8 @@ JS;
$hodID, $hodID,
$tm1 = 0, $tm1 = 0,
$tm2 = 0 $tm2 = 0
): void { ): void
{
$time = time(); $time = time();
if ($tm1 == 0) { if ($tm1 == 0) {
$tm1 = isset($this->atacks[$id]) ? $this->atacks[$id]['time'] : $time; $tm1 = isset($this->atacks[$id]) ? $this->atacks[$id]['time'] : $time;
@ -4032,8 +4035,6 @@ JS;
Log::add($mas); Log::add($mas);
} }
//Расчет МФ
/** /**
* Возращаем зоны блока? * Возращаем зоны блока?
* @param $uid1 * @param $uid1
@ -4050,6 +4051,8 @@ JS;
} }
} }
//Расчет МФ
private function saveStats($uid): void private function saveStats($uid): void
{ {
Stats::saveBattleStats($this->stats[$this->uids[$uid]], $uid); Stats::saveBattleStats($this->stats[$this->uids[$uid]], $uid);
@ -4120,8 +4123,6 @@ JS;
return $result ?: []; return $result ?: [];
} }
//Действия бота (атака)
/** /**
* Смерть от пропуска ходов. Включается в конфиге. * Смерть от пропуска ходов. Включается в конфиге.
* @param int $id * @param int $id
@ -4154,7 +4155,7 @@ JS;
} }
} }
//Проверяем удары, приемы, свитки, зверей //Действия бота (атака)
private function addNewAtack(User $u): void private function addNewAtack(User $u): void
{ {
@ -4240,7 +4241,7 @@ JS;
} }
//Действия бота //Проверяем удары, приемы, свитки, зверей
private function botAct($uid): bool private function botAct($uid): bool
{ {
@ -4257,6 +4258,19 @@ JS;
return $r; return $r;
} }
//Действия бота
/**
* Массово встречается в подключаемых файлах приёмов.
* @param array $arr
* @return void
* @deprecated
*/
public function add_log(array $arr): void
{
Log::add($arr);
}
/** /**
* Запись выбранных ударов и блоков в массив $this->uAtc. * Запись выбранных ударов и блоков в массив $this->uAtc.
* Технически это сеттер. * Технически это сеттер.

View File

@ -10,6 +10,7 @@ use Core\Config;
use Core\Db; use Core\Db;
use Delo; use Delo;
use ItemModel; use ItemModel;
use Model\ActionModel;
use User; use User;
use User\Clan; use User\Clan;
use User\Effects; use User\Effects;
@ -54,7 +55,7 @@ class Finish
} }
} }
} }
//данные о игроках в бою //данные о игроках в бою
$t = Db::getRows( $t = Db::getRows(
@ -125,7 +126,7 @@ class Finish
} }
$this->battle->i->setPlayerC(); $this->battle->i->setPlayerC();
Db::sql('update battle set players_c = ? where id = ?', [$this->battle->i->getPlayersC(), $this->battle->i->id]); Db::sql('update battle set players_c = ? where id = ?', [$this->battle->i->getPlayersC(), $this->battle->i->id]);
if (!empty($vtvl)) { if (!empty($vtvl)) {
@ -255,8 +256,7 @@ class Finish
mysql_query( mysql_query(
'INSERT INTO `dungeon_items` (`dn`,`item_id`,`time`,`x`,`y`) VALUES ( 'INSERT INTO `dungeon_items` (`dn`,`item_id`,`time`,`x`,`y`) VALUES (
"' . $this->battle->users[$i]['dnow'] . '","' . $plik['item_id'] . '","' . (time( "' . $this->battle->users[$i]['dnow'] . '","' . $plik['item_id'] . '","' . (time() - 600) . '","' . $this->battle->users[$i]['x'] . '","' . $this->battle->users[$i]['y'] . '"
) - 600) . '","' . $this->battle->users[$i]['x'] . '","' . $this->battle->users[$i]['y'] . '"
)' )'
); );
} }
@ -488,8 +488,7 @@ class Finish
'UPDATE `users` SET `battle` = "0" WHERE `id` = "' . $this->battle->users[$i]['id'] . '" LIMIT 1' 'UPDATE `users` SET `battle` = "0" WHERE `id` = "' . $this->battle->users[$i]['id'] . '" LIMIT 1'
); );
mysql_query( mysql_query(
'UPDATE `stats` SET `zv` = "0",`team` = "0",`exp` = `exp` + `battle_exp`,`battle_exp` = "0",`battle_yron` = "0",`enemy` = "0", `timeGo` = "' . time( 'UPDATE `stats` SET `zv` = "0",`team` = "0",`exp` = `exp` + `battle_exp`,`battle_exp` = "0",`battle_yron` = "0",`enemy` = "0", `timeGo` = "' . time() . '" WHERE `id` = "' . $this->battle->users[$i]['id'] . '" LIMIT 1'
) . '" WHERE `id` = "' . $this->battle->users[$i]['id'] . '" LIMIT 1'
); );
mysql_query('DELETE FROM `eff_users` WHERE `uid` = "' . $this->battle->users[$i]['id'] . '" LIMIT 100'); mysql_query('DELETE FROM `eff_users` WHERE `uid` = "' . $this->battle->users[$i]['id'] . '" LIMIT 100');
} }
@ -687,8 +686,7 @@ class Finish
} }
} }
mysql_query( mysql_query(
'UPDATE `dungeon_bots` SET `delete` = "' . time( 'UPDATE `dungeon_bots` SET `delete` = "' . time() . '" AND `inBattle` = "' . $this->battle->i->id . '" WHERE `dn` = "' . $this->battle->i->dnId . '" AND `for_dn` = "0" AND `delete` = "0" '
) . '" AND `inBattle` = "' . $this->battle->i->id . '" WHERE `dn` = "' . $this->battle->i->dnId . '" AND `for_dn` = "0" AND `delete` = "0" '
); );
} else { } else {
//выкидываем всех игроков в клетку RESTART //выкидываем всех игроков в клетку RESTART
@ -722,7 +720,7 @@ class Finish
$this->expCoef += $this->battle->stats[$i]['pbe']; $this->expCoef += $this->battle->stats[$i]['pbe'];
} }
if ($this->battle->i->razdel == 5 && (Config::get('m') >= 6 && Config::get('m') <= 8 || Config::get('w') == 0 || Config::get('w') == 6)) { if ($this->battle->i->razdel == 5 && (date('m') >= 6 && date('m') <= 8 || date('w') == 0 || date('w') == 6)) {
$this->expCoef += 5; $this->expCoef += 5;
} }
@ -911,11 +909,8 @@ class Finish
$this->battle->users[$i]['battle_exp'] = floor($this->battle->users[$i]['battle_exp'] / 2); $this->battle->users[$i]['battle_exp'] = floor($this->battle->users[$i]['battle_exp'] / 2);
} }
if ($this->battle->users[$i]['animal'] > 0) { if ($this->battle->users[$i]['animal'] > 0) {
$ulan = $u->testAction( $ulan = ActionModel::getOne(["uid = {$this->battle->users[$i]['id']}", "vars = animal_use{$this->battle->i->id}"], 'vals');
'`uid` = "' . $this->battle->users[$i]['id'] . '" AND `vars` = "animal_use' . $this->battle->i->id . '" LIMIT 1', if ($ulan['id'] && $this->battle->users[$i]['team'] == $this->battle->i->getTeamwin() && $this->battle->users[$i]['level'] > $ulan) {
1
);
if (isset($ulan['id']) && $this->battle->users[$i]['team'] == $this->battle->i->getTeamwin() && $this->battle->users[$i]['level'] > $ulan['vals']) {
$a004 = mysql_fetch_array( $a004 = mysql_fetch_array(
mysql_query( mysql_query(
'SELECT `max_exp`,`name` FROM `users_animal` WHERE `uid` = "' . $this->battle->users[$i]['id'] . '" AND `id` = "' . $this->battle->users[$i]['animal'] . '" AND `pet_in_cage` = "0" AND `delete` = "0" LIMIT 1' 'SELECT `max_exp`,`name` FROM `users_animal` WHERE `uid` = "' . $this->battle->users[$i]['id'] . '" AND `id` = "' . $this->battle->users[$i]['animal'] . '" AND `pet_in_cage` = "0" AND `delete` = "0" LIMIT 1'
@ -1032,13 +1027,13 @@ class Finish
]; ];
$admn = $admn[$this->battle->users[$i]['level']]; $admn = $admn[$this->battle->users[$i]['level']];
if (Config::get('m') >= 6 && Config::get('m') <= 8) { if (date('m') >= 6 && date('m') <= 8) {
//Летний период //Летний период
if (Config::get('w') == 0 || Config::get('w') == 5 || Config::get('w') == 6) { if (date('w') == 0 || date('w') == 5 || date('w') == 6) {
//Выходные дни //Выходные дни
$admn = $admn * 2; $admn = $admn * 2;
} }
} elseif (Config::get('w') == 0 || Config::get('w') == 5 || Config::get('w') == 6) { } elseif (date('w') == 0 || date('w') == 5 || date('w') == 6) {
//Выходные дни //Выходные дни
$admn = $admn * 2; $admn = $admn * 2;
} }
@ -1290,17 +1285,14 @@ class Finish
} }
if ($this->battle->users[$i]['battle_yron'] > 0) { if ($this->battle->users[$i]['battle_yron'] > 0) {
mysql_query( mysql_query(
'INSERT INTO `eff_users` (`no_Ace`,`id_eff`,`overType`,`uid`,`name`,`data`,`timeUse`) VALUES ("1","478","111","' . $this->battle->users[$i]['id'] . '","Право на подвиг","pravonapodvig=1","' . time( 'INSERT INTO `eff_users` (`no_Ace`,`id_eff`,`overType`,`uid`,`name`,`data`,`timeUse`) VALUES ("1","478","111","' . $this->battle->users[$i]['id'] . '","Право на подвиг","pravonapodvig=1","' . time() . '")'
) . '")'
); );
} }
mysql_query( mysql_query(
'INSERT INTO `actions`(`uid`, `time`, `city`, `room`, `vars`, `ip`, `vals`, `val`) VALUES ("' . $this->battle->users[$i]['id'] . '","' . time( 'INSERT INTO `actions`(`uid`, `time`, `city`, `room`, `vars`, `ip`, `vals`, `val`) VALUES ("' . $this->battle->users[$i]['id'] . '","' . time() . '","capitalcity","' . $this->battle->users[$i]['room'] . '","end_trup"," ","","")'
) . '","capitalcity","' . $this->battle->users[$i]['room'] . '","end_trup"," ","","")'
); );
mysql_query( mysql_query(
'INSERT INTO `eff_users` (`no_Ace`,`id_eff`,`overType`,`uid`,`name`,`data`,`timeUse`) VALUES ("1","479","112","' . $u->info['id'] . '","Защита от нападения","zashitatk=1","' . time( 'INSERT INTO `eff_users` (`no_Ace`,`id_eff`,`overType`,`uid`,`name`,`data`,`timeUse`) VALUES ("1","479","112","' . $u->info['id'] . '","Защита от нападения","zashitatk=1","' . time() . '")'
) . '")'
); );
$ritem = rand(1, 1000); $ritem = rand(1, 1000);
if ($ritem == 555) { if ($ritem == 555) {
@ -1361,8 +1353,7 @@ class Finish
'UPDATE `rep` SET `rep3` = `rep3` + "' . $rzbvo . '" WHERE `id` = "' . $this->battle->users[$i]['id'] . '" LIMIT 1' 'UPDATE `rep` SET `rep3` = `rep3` + "' . $rzbvo . '" WHERE `id` = "' . $this->battle->users[$i]['id'] . '" LIMIT 1'
); );
mysql_query( mysql_query(
'INSERT INTO `actions`(`uid`, `time`, `city`, `room`, `vars`, `ip`, `vals`, `val`) VALUES ("' . $this->battle->users[$i]['id'] . '","' . time( 'INSERT INTO `actions`(`uid`, `time`, `city`, `room`, `vars`, `ip`, `vals`, `val`) VALUES ("' . $this->battle->users[$i]['id'] . '","' . time() . '","capitalcity","' . $this->battle->users[$i]['room'] . '","end_xaot"," ","","")'
) . '","capitalcity","' . $this->battle->users[$i]['room'] . '","end_xaot"," ","","")'
); );
} }
@ -1467,7 +1458,7 @@ class Finish
$this->battle->users[$i]['id'], $this->battle->users[$i]['id'],
] ]
); );
if ($this->battle->i->turnir == 0) { if ($this->battle->i->turnir == 0) {
//пишем в чат //пишем в чат
$cmsg->setTo($this->battle->users[$i]['login']); $cmsg->setTo($this->battle->users[$i]['login']);
@ -1514,17 +1505,19 @@ class Finish
} }
private function addItemToItemsLocal(int $itemId, int $uid, string $data = ''): void /**
* Сохраняем лог в архив
* @return void
*/
private function saveLogs(): void
{ {
Db::sql( Db::sql(
"insert into items_local (room, time, item_id, data, tr_login, colvo) values (?,unix_timestamp(),?,?,?,1)", 'insert into battle_logs_save select id, time, battle, id_hod, text, vars, zona1, zonb1, zona2, zonb2, type from battle_logs where battle = ? and id_hod <= ?',
[ [$this->battle->i->id, $this->battle->hodID]
$this->battle->users[$this->battle->uids[$uid]]['room'],
$itemId,
$data,
$this->battle->users[$this->battle->uids[$uid]]['login'],
]
); );
Db::sql('delete from battle_logs where battle = ?', [$this->battle->i->id]);
Db::sql('delete from battle_stat where battle < ?', [$this->battle->i->id - 100]);
Db::sql('delete from battle_actions where btl = ?', [$this->battle->i->id]);
} }
private function addGlobalItems($bid, $uid, $itm, $ico, $exp, $cr, $ecr): void private function addGlobalItems($bid, $uid, $itm, $ico, $exp, $cr, $ecr): void
@ -1583,159 +1576,53 @@ class Finish
$this->addGlobalItemItm($itm, $uid, $cmsg, $chat); $this->addGlobalItemItm($itm, $uid, $cmsg, $chat);
} }
/** private function addGlobalItemsDropsOnMainStreet(int $bid, int $uid): void
* Сохраняем лог в архив
* @return void
*/
private function saveLogs(): void
{ {
Db::sql( //Выпадение дропа на ЦП
'insert into battle_logs_save select id, time, battle, id_hod, text, vars, zona1, zonb1, zona2, zonb2, type from battle_logs where battle = ? and id_hod <= ?', $mf = Db::getValue('select floor(count(id) / 20) as c from users where online > unix_timestamp() - 120');
[$this->battle->i->id, $this->battle->hodID] $mf = mt_rand(1, max($mf, 1));
); if ($bid == 1008) {
Db::sql('delete from battle_logs where battle = ?', [$this->battle->i->id]); //Старый Новый Год
Db::sql('delete from battle_stat where battle < ?', [$this->battle->i->id - 100]); for ($i = 0; $i < $mf; $i++) {
Db::sql('delete from battle_actions where btl = ?', [$this->battle->i->id]); if (mt_rand(0, 1) === 1) {
continue;
}
if (mt_rand(0, 86) <= 71) {
for ($j = 1; $j <= 7; $j++) {
$this->addItemToItemsLocal(1000, $uid, '|nosale=1|srok=259200');
}
} else {
$customs = [911, 1172, 1173, 1461, 1462, 1463, 2141, 2142, 2143, 2144, 2870, 4037, 4038, 4039, 4040];
$this->addItemToItemsLocal($customs[array_rand($customs)], $uid, '|nosale=1|srok=259200');
}
}
} elseif ($bid == 1007) {
//Хэллоуин, Тыквоголовый CAPITAL CITY
for ($i = 0; $i < $mf; $i++) {
if (mt_rand(0, 1) === 1) {
continue;
}
$this->addItemToItemsLocal(4504, $uid);
}
} elseif ($bid == 1006 && mt_rand(1, 10) === 1 || in_array($bid, range(1000, 1004))) {
//Трупожор CAPITAL CITY
$this->addItemToItemsLocal(4451, $uid, 'srok=2592000');
}
} }
private function dieInDungeon(int $dnr, int $i, User $u, ChatMessage $cmsg, Chat $chat): void private function addItemToItemsLocal(int $itemId, int $uid, string $data = ''): void
{ {
if ($dnr != 1) { Db::sql(
return; "insert into items_local (room, time, item_id, data, tr_login, colvo) values (?,unix_timestamp(),?,?,?,1)",
} [
$this->battle->users[$this->battle->uids[$uid]]['room'],
$vars = $this->battle->users[$i]['room'] == 370 ? 'dielaba' : 'die'; $itemId,
$dies = Actions::countDungeon( $data,
$this->battle->users[$i]['dnow'], $this->battle->users[$this->battle->uids[$uid]]['login'],
$this->battle->users[$i]['id'], ]
$vars
); );
Actions::addDungeon(
$this->battle->users[$i]['dnow'],
$this->battle->users[$i]['id'],
$this->battle->users[$i]['x'],
$this->battle->users[$i]['y'],
$vars
);
$la = $this->battle->users[$i]['sex'] == 1 ? 'ла' : '';
if ($dies < 2 || $this->battle->i->dungeon == 15) {
$shaibaItemId = Db::getValue('select id from items_users where uid = ? and item_id = 4910 limit 1', [$this->battle->users[$i]['id']]);
if ($shaibaItemId) {
//выбрасываем шайбу
ItemsModel::delete($shaibaItemId);
Db::sql(
"insert into dungeon_obj (name, dn, x, y, img, action, w, h, os1, os2, os3, date)
values ('Шайба',?,?,?,'shaiba.png','fileact:15/shaiba',120,220,5,8,12,?)",
[
$this->battle->i->dnId,
$this->battle->users[$i]['x'],
$this->battle->users[$i]['y'],
"{use:'takeit',rt1:69,rl1:-47,rt2:74,rl2:126,rt3:76,rl3:140,rt4:80,rl4:150}",
]
);
}
//телепортируем в рестарт (координата 0х0)
$this->battle->users[$i]['x'] = $this->battle->users[$i]['res_x'];
$this->battle->users[$i]['y'] = $this->battle->users[$i]['res_y'];
$this->battle->users[$i]['s'] = $this->battle->users[$i]['res_s'];
$roomName = Db::getValue('select name from room where id = ?', [(int)$this->battle->users[$i]['room']]);
$reviveRoomName = $this->battle->users[$i]['room'] == 370 ? 'начале лабиринта' : "комнате «{$roomName}»";
$rtxt = "<strong>{$this->battle->users[$i]['login']}</strong> трагически погиб$la и находится в $reviveRoomName";
} elseif ($this->battle->i->dungeon == 102) {
$nld = '';
$lab = Db::getRow('select id, users from laba_now where id = ?', [$this->battle->users[$i]['id']]);
if ($lab['users'] < 2) {
//Удаляем подземелье
Db::sql('delete from laba_now where id = ?', [$lab['id']]);
Db::sql('delete from laba_map where id = ?', [$lab['id']]);
Db::sql('delete from laba_obj where lib = ?', [$lab['id']]);
Db::sql('delete from laba_act where lib = ?', [$lab['id']]);
Db::sql('delete from laba_itm where lib = ?', [$lab['id']]);
} else {
$lab['users']--;
mysql_query(
'UPDATE `laba_now` SET `users` = "' . $lab['users'] . '" WHERE `id` = "' . $lab['id'] . '" LIMIT 1'
);
}
mysql_query(
'UPDATE `stats` SET `dnow` = "0" WHERE `id` = "' . $this->battle->users[$i]['id'] . '" LIMIT 1'
);
mysql_query(
'UPDATE `users` SET `room` = "369" WHERE `id` = "' . $this->battle->users[$i]['id'] . '" LIMIT 1'
);
//удаляем все предметы которые пропадают после выхода из пещеры
mysql_query(
'UPDATE `items_users` SET `delete` = "' . time(
) . '" WHERE `uid` = "' . $this->battle->users[$i]['id'] . '" AND `delete` < 1234567890 AND `inShop` = "0" AND (`dn_delete` = "1" OR `data` LIKE "%fromlaba=1%")'
);
if ($this->battle->users[$i]['login'] != '') {
if ($this->battle->users[$i]['sex'] == 0) {
$rtxt = '<strong>' . $this->battle->users[$i]['login'] . '</strong> трагически погиб без права на воскрешение и покидает подземелье' . $nld;
} else {
$rtxt = '<strong>' . $this->battle->users[$i]['login'] . '</strong> трагически погибла без права на воскрешение и покидает подземелье' . $nld;
}
}
} else {
$tinf = mysql_fetch_array(
mysql_query(
'SELECT `uid` FROM `dungeon_now` WHERE `id` = "' . $this->battle->i->dnId . '" LIMIT 1'
)
);
$nld = '';
if ($tinf['uid'] == $this->battle->users[$i]['id']) {
$tinf = mysql_fetch_array(
mysql_query(
'SELECT `id` FROM `stats` WHERE `dnow` = "' . $this->battle->i->dnId . '" AND `hpNow` >= 1 LIMIT 1'
)
);
if (isset($tinf['id'])) {
$tinf = mysql_fetch_array(
mysql_query(
'SELECT `id`,`login` FROM `users` WHERE `id` = "' . $tinf['id'] . '" LIMIT 1'
)
);
$nld .= ', новым лидером становится &quot;' . $tinf['login'] . '&quot;';
mysql_query(
'UPDATE `dungeon_now` SET `uid` = "' . $tinf['id'] . '" WHERE `id` = "' . $this->battle->i->dnId . '" LIMIT 1'
);
}
}
mysql_query(
'UPDATE `stats` SET `dnow` = "0" WHERE `id` = "' . $this->battle->users[$i]['id'] . '" LIMIT 1'
);
mysql_query(
'UPDATE `users` SET `room` = "321" WHERE `id` = "' . $this->battle->users[$i]['id'] . '" LIMIT 1'
);
//удаляем все предметы которые пропадают после выхода из пещеры
mysql_query(
'UPDATE `items_users` SET `delete` = "' . time() . '" WHERE `uid` = "' . $this->battle->users[$i]['id'] . '" AND `dn_delete` = "1" LIMIT 1000'
);
mysql_query(
'UPDATE `items_users` SET `delete` = "' . time() . '" WHERE `uid` = "' . $u->info['id'] . '" AND `item_id` = "1189" OR `item_id` = "4447" OR `item_id` = "1174") LIMIT 1000'
);
if ($this->battle->users[$i]['sex'] == 0) {
$rtxt = '<strong>' . $this->battle->users[$i]['login'] . '</strong> трагически погиб без права на воскрешение и покидает подземелье' . $nld;
} else {
$rtxt = '<strong>' . $this->battle->users[$i]['login'] . '</strong> трагически погибла без права на воскрешение и покидает подземелье' . $nld;
}
}
if (!empty($rtxt)) {
$cmsg->setDn($this->battle->i->dnId);
$cmsg->setText($rtxt);
$cmsg->setTypeTime(1);
$chat->sendMsg($cmsg);
}
} }
private function addGlobalItemsIco(string $ico, int $uid, ChatMessage $cmsg, Chat $chat): void private function addGlobalItemsIco(string $ico, int $uid, ChatMessage $cmsg, Chat $chat): void
@ -1862,40 +1749,143 @@ class Finish
} }
} }
private function addGlobalItemsDropsOnMainStreet(int $bid, int $uid): void private function dieInDungeon(int $dnr, int $i, User $u, ChatMessage $cmsg, Chat $chat): void
{ {
//Выпадение дропа на ЦП if ($dnr != 1) {
$mf = Db::getValue('select floor(count(id) / 20) as c from users where online > unix_timestamp() - 120'); return;
$mf = mt_rand(1, max($mf, 1));
if ($bid == 1008) {
//Старый Новый Год
for ($i = 0; $i < $mf; $i++) {
if (mt_rand(0, 1) === 1) {
continue;
}
if (mt_rand(0, 86) <= 71) {
for ($j = 1; $j <= 7; $j++) {
$this->addItemToItemsLocal(1000, $uid, '|nosale=1|srok=259200');
}
} else {
$customs = [911, 1172, 1173, 1461, 1462, 1463, 2141, 2142, 2143, 2144, 2870, 4037, 4038, 4039, 4040];
$this->addItemToItemsLocal($customs[array_rand($customs)], $uid, '|nosale=1|srok=259200');
}
}
} elseif ($bid == 1007) {
//Хэллоуин, Тыквоголовый CAPITAL CITY
for ($i = 0; $i < $mf; $i++) {
if (mt_rand(0, 1) === 1) {
continue;
}
$this->addItemToItemsLocal(4504, $uid);
}
} elseif ($bid == 1006 && mt_rand(1, 10) === 1 || in_array($bid, range(1000, 1004))) {
//Трупожор CAPITAL CITY
$this->addItemToItemsLocal(4451, $uid, 'srok=2592000');
} }
$vars = $this->battle->users[$i]['room'] == 370 ? 'dielaba' : 'die';
$dies = Actions::countDungeon(
$this->battle->users[$i]['dnow'],
$this->battle->users[$i]['id'],
$vars
);
Actions::addDungeon(
$this->battle->users[$i]['dnow'],
$this->battle->users[$i]['id'],
$this->battle->users[$i]['x'],
$this->battle->users[$i]['y'],
$vars
);
$la = $this->battle->users[$i]['sex'] == 1 ? 'ла' : '';
if ($dies < 2 || $this->battle->i->dungeon == 15) {
$shaibaItemId = Db::getValue('select id from items_users where uid = ? and item_id = 4910 limit 1', [$this->battle->users[$i]['id']]);
if ($shaibaItemId) {
//выбрасываем шайбу
ItemsModel::delete($shaibaItemId);
Db::sql(
"insert into dungeon_obj (name, dn, x, y, img, action, w, h, os1, os2, os3, date)
values ('Шайба',?,?,?,'shaiba.png','fileact:15/shaiba',120,220,5,8,12,?)",
[
$this->battle->i->dnId,
$this->battle->users[$i]['x'],
$this->battle->users[$i]['y'],
"{use:'takeit',rt1:69,rl1:-47,rt2:74,rl2:126,rt3:76,rl3:140,rt4:80,rl4:150}",
]
);
}
//телепортируем в рестарт (координата 0х0)
$this->battle->users[$i]['x'] = $this->battle->users[$i]['res_x'];
$this->battle->users[$i]['y'] = $this->battle->users[$i]['res_y'];
$this->battle->users[$i]['s'] = $this->battle->users[$i]['res_s'];
$roomName = Db::getValue('select name from room where id = ?', [(int)$this->battle->users[$i]['room']]);
$reviveRoomName = $this->battle->users[$i]['room'] == 370 ? 'начале лабиринта' : "комнате «{$roomName}»";
$rtxt = "<strong>{$this->battle->users[$i]['login']}</strong> трагически погиб$la и находится в $reviveRoomName";
} elseif ($this->battle->i->dungeon == 102) {
$nld = '';
$lab = Db::getRow('select id, users from laba_now where id = ?', [$this->battle->users[$i]['id']]);
if ($lab['users'] < 2) {
//Удаляем подземелье
Db::sql('delete from laba_now where id = ?', [$lab['id']]);
Db::sql('delete from laba_map where id = ?', [$lab['id']]);
Db::sql('delete from laba_obj where lib = ?', [$lab['id']]);
Db::sql('delete from laba_act where lib = ?', [$lab['id']]);
Db::sql('delete from laba_itm where lib = ?', [$lab['id']]);
} else {
$lab['users']--;
mysql_query(
'UPDATE `laba_now` SET `users` = "' . $lab['users'] . '" WHERE `id` = "' . $lab['id'] . '" LIMIT 1'
);
}
mysql_query(
'UPDATE `stats` SET `dnow` = "0" WHERE `id` = "' . $this->battle->users[$i]['id'] . '" LIMIT 1'
);
mysql_query(
'UPDATE `users` SET `room` = "369" WHERE `id` = "' . $this->battle->users[$i]['id'] . '" LIMIT 1'
);
//удаляем все предметы которые пропадают после выхода из пещеры
mysql_query(
'UPDATE `items_users` SET `delete` = "' . time() . '" WHERE `uid` = "' . $this->battle->users[$i]['id'] . '" AND `delete` < 1234567890 AND `inShop` = "0" AND (`dn_delete` = "1" OR `data` LIKE "%fromlaba=1%")'
);
if ($this->battle->users[$i]['login'] != '') {
if ($this->battle->users[$i]['sex'] == 0) {
$rtxt = '<strong>' . $this->battle->users[$i]['login'] . '</strong> трагически погиб без права на воскрешение и покидает подземелье' . $nld;
} else {
$rtxt = '<strong>' . $this->battle->users[$i]['login'] . '</strong> трагически погибла без права на воскрешение и покидает подземелье' . $nld;
}
}
} else {
$tinf = mysql_fetch_array(
mysql_query(
'SELECT `uid` FROM `dungeon_now` WHERE `id` = "' . $this->battle->i->dnId . '" LIMIT 1'
)
);
$nld = '';
if ($tinf['uid'] == $this->battle->users[$i]['id']) {
$tinf = mysql_fetch_array(
mysql_query(
'SELECT `id` FROM `stats` WHERE `dnow` = "' . $this->battle->i->dnId . '" AND `hpNow` >= 1 LIMIT 1'
)
);
if (isset($tinf['id'])) {
$tinf = mysql_fetch_array(
mysql_query(
'SELECT `id`,`login` FROM `users` WHERE `id` = "' . $tinf['id'] . '" LIMIT 1'
)
);
$nld .= ', новым лидером становится &quot;' . $tinf['login'] . '&quot;';
mysql_query(
'UPDATE `dungeon_now` SET `uid` = "' . $tinf['id'] . '" WHERE `id` = "' . $this->battle->i->dnId . '" LIMIT 1'
);
}
}
mysql_query(
'UPDATE `stats` SET `dnow` = "0" WHERE `id` = "' . $this->battle->users[$i]['id'] . '" LIMIT 1'
);
mysql_query(
'UPDATE `users` SET `room` = "321" WHERE `id` = "' . $this->battle->users[$i]['id'] . '" LIMIT 1'
);
//удаляем все предметы которые пропадают после выхода из пещеры
mysql_query(
'UPDATE `items_users` SET `delete` = "' . time() . '" WHERE `uid` = "' . $this->battle->users[$i]['id'] . '" AND `dn_delete` = "1" LIMIT 1000'
);
mysql_query(
'UPDATE `items_users` SET `delete` = "' . time() . '" WHERE `uid` = "' . $u->info['id'] . '" AND `item_id` = "1189" OR `item_id` = "4447" OR `item_id` = "1174") LIMIT 1000'
);
if ($this->battle->users[$i]['sex'] == 0) {
$rtxt = '<strong>' . $this->battle->users[$i]['login'] . '</strong> трагически погиб без права на воскрешение и покидает подземелье' . $nld;
} else {
$rtxt = '<strong>' . $this->battle->users[$i]['login'] . '</strong> трагически погибла без права на воскрешение и покидает подземелье' . $nld;
}
}
if (!empty($rtxt)) {
$cmsg->setDn($this->battle->i->dnId);
$cmsg->setText($rtxt);
$cmsg->setTypeTime(1);
$chat->sendMsg($cmsg);
}
} }
public function getBtlstatus(): array public function getBtlstatus(): array

View File

@ -1,6 +1,7 @@
<?php <?php
use Helper\Conversion; use Helper\Conversion;
use Model\ActionModel;
use Model\Constant\Stat; use Model\Constant\Stat;
class BotPriemLogic class BotPriemLogic
@ -105,7 +106,6 @@ class BotPriemLogic
private static function testpriem($pl): int private static function testpriem($pl): int
{ {
global $u;
$notr = 0; $notr = 0;
$statnames = new Stat(); $statnames = new Stat();
$statnames->getRequirement(); $statnames->getRequirement();
@ -125,8 +125,8 @@ class BotPriemLogic
} }
if ($pl['xuse'] > 0) { if ($pl['xuse'] > 0) {
$xu = $u->testAction('`vars` = "use_priem_' . BotLogic::$bot['battle'] . '_' . BotLogic::$bot['id'] . '" AND `vals` = "' . $pl['id'] . '" LIMIT ' . $pl['xuse'] . '', 2); $xu = ActionModel::testCount(['vars = ' . 'use_priem_' . BotLogic::$bot['battle'] . '_' . BotLogic::$bot['id'], "vals = {$pl['id']}",], $pl['xuse']);
if ($xu[0] >= $pl['xuse']) { if ($xu >= $pl['xuse']) {
$notr++; $notr++;
} }
} }

View File

@ -2,14 +2,16 @@
namespace Core; namespace Core;
use DateTime;
class Config class Config
{ {
const EKR_RUB_PRICE = 30; const EKR_RUB_PRICE = 30;
const KR_TO_EKR_EXCHANGE = 500; const KR_TO_EKR_EXCHANGE = 500;
const EKR_TO_KR_EXCHANGE = 200; const EKR_TO_KR_EXCHANGE = 200;
private const HOSTNAME = 'new-combats.tech';
public const GAMENAME = 'Новый Бойцовский Клуб';
private static self $instance; private static self $instance;
private static string $hostname = 'new-combats.tech';
private static string $gamename = 'Бойцовский Клуб';
private function __construct() private function __construct()
{ {
@ -27,75 +29,51 @@ class Config
private static function subdomain(string $name): string private static function subdomain(string $name): string
{ {
return DIRECTORY_SEPARATOR . DIRECTORY_SEPARATOR . $name . '.' . self::$hostname; return DIRECTORY_SEPARATOR . DIRECTORY_SEPARATOR . $name . '.' . self::HOSTNAME;
} }
public static function get(?string $key = null) public static function get(?string $key = null)
{ {
$c['ver'] = '1.8.3.7'; $c['ver'] = '0.8.2 alpha';
/* Конфигурации игры */ /* Конфигурации игры */
$c['name'] = 'Новый «' . self::$gamename . '»'; $c['title'] = self::GAMENAME . ' - Бесплатная, браузерная онлайн игра'; //Название игры
$c['title'] = $c['name'] . ' - Бесплатная,браузерная онлайн игра'; //Название игры $c['keys'] = self::GAMENAME . ', combats.com, ' . self::GAMENAME . ' игра, ' . self::GAMENAME . ' играть, игра ' . self::GAMENAME . ', старый ' . self::GAMENAME . ', ' . self::GAMENAME . ' онлайн игра, ' . self::GAMENAME . ' браузерная игра, играть в ' . self::GAMENAME . ', игра бк, бк игра, старый бк, играть в бк, бк онлайн игра, новый бк, Легендарный ' . self::GAMENAME . ', легендарный бк, combats, комбатс, combats ru, combats com, OldBK, oldbk ru, oldbk com, олдбк, old bk, олд бк, mycombats, rebk, recombats, oldcombats, obk2'; //Ключевые слова META
$c['title2'] = ' - Бесплатная, онлайн игра посвященная сражениям и магии!'; $c['desc'] = self::GAMENAME . ' это бесплатная увлекательная браузерная онлайн игра 2004-2009г, в которой сконцентрировано все самое лучшее от современных онлайн игр. В этой браузерной игре заложены самые интересные традиции всем известной онлайн игры под названием «' . self::GAMENAME . ' 2004-2009», которая, кстати, стала первооткрывателем всех браузерных игр.'; //Описание META
$c['title3'] = $c['name']; $c['footer'] = self::GAMENAME . ' © 2013-' . date('Y');
$c['keys'] = self::$gamename . ', combats.com, ' . self::$gamename . ' игра, ' . self::$gamename . ' играть, игра ' . self::$gamename . ', старый ' . self::$gamename . ', ' . self::$gamename . ' онлайн игра, ' . self::$gamename . ' браузерная игра, играть в ' . $c['name'] . ', игра бк, бк игра, старый бк, играть в бк, бк онлайн игра, новый бк, Легендарный ' . $c['name'] . ', легендарный бк, combats, комбатс, combats ru, combats com, OldBK, oldbk ru, oldbk com, олдбк, old bk, олд бк, mycombats, rebk, recombats, oldcombats, obk2'; //Ключевые слова META
$c['desc'] = self::$gamename . ' это бесплатная увлекательная браузерная онлайн игра 2004-2009г, в которой сконцентрировано все самое лучшее от современных онлайн игр. В этой браузерной игре заложены самые интересные традиции всем известной онлайн игры под названием «' . self::$gamename . ' 2004-2009», которая, кстати, стала первооткрывателем всех браузерных игр.'; //Описание META
$c['footer'] = $c['name'] . ' © 2013-' . date('Y');
//Сервера //Сервера
$c['host'] = self::$hostname; $c['host'] = self::HOSTNAME;
$c['forum'] = self::subdomain('forum'); $c['forum'] = self::subdomain('forum');
$c['img'] = 'img.' . self::$hostname; $c['img'] = 'img.' . self::HOSTNAME;
$c['thiscity'] = 'capitalcity'; $c['https'] = DIRECTORY_SEPARATOR . DIRECTORY_SEPARATOR . self::HOSTNAME;
$c['capitalcity'] = self::$hostname;
$c['abandonedplain'] = self::$hostname;
$c['https'] = DIRECTORY_SEPARATOR . DIRECTORY_SEPARATOR . self::$hostname;
$c['img2'] = self::subdomain('img'); $c['img2'] = self::subdomain('img');
$c['lib'] = self::subdomain('lib');
$c['exit'] = "<script>window.location.replace('{$c['https']}');</script>"; $c['exit'] = "<script>window.location.replace('{$c['https']}');</script>";
$c['support'] = 'support@' . $c['host']; $c['support'] = 'support@' . self::HOSTNAME;
//Валюта
$c['curency_name'] = 'RUB';
$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_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['zuby'] = false; //зубы
$c['limitedexp'] = false; //лимит опыта $c['limitedexp'] = false; //лимит опыта
$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['level_ransfer'] = 8; //С какого уровня разрешены передачи $c['level_transfer'] = 8; //С какого уровня разрешены передачи
$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['ecrtocr'] = 200; //Курс обмена екр на кр
$c['bonuslevel'] = true; //Бонус уровня $c['bonuslevel'] = true; //Бонус уровня
$c['bonussocial'] = false; //Бонус социальный $c['bonussocial'] = false; //Бонус социальный
$c['w'] = date('w');
$c['m'] = date('m');
$c['counters'] = '';
$c['counters_noFrm'] = '';
$c['securetime'] = 0; //Время последнего возможного взлома персов (подбор пароля по базам данных других игр)
$c['copyright'] = 'Copyright © ' . date('Y') . ' « Новый Бойцовский Клуб »';
$c['db_host'] = 'db'; $c['db_host'] = 'db';
$c['db_user'] = 'prod1'; $c['db_user'] = 'prod1';
$c['db_name'] = 'game_production'; $c['db_name'] = 'game_production';
@ -110,4 +88,9 @@ class Config
} }
return self::$instance; return self::$instance;
} }
public static function getCopyright(): string
{
return '©' . (new DateTime())->format('Y') . ' Copyright «<a href="//' . self::HOSTNAME . '">' . self::GAMENAME . '</a>». All Rights Reserved.';
}
} }

View File

@ -0,0 +1,69 @@
<?php
namespace Core;
readonly class TOTP
{
private const BASE32CHARS = 'ABCDEFGHIJKLMNOPQRSTUVWXYZ234567'; // RFC 4648 Base32
public function __construct(private string $secret)
{
}
public static function otpSecret($uniqueString, $length = 20): string
{
// Уникальная строка + текущее время в микросекундах
$seed = $uniqueString . microtime(true);
// Хэшируем сид для более случайного распределения
$seed = hash('sha256', $seed);
$secret = '';
$max = strlen(self::BASE32CHARS) - 1;
// Генерируем случайную строку нужной длины
for ($i = 0; $i < $length; $i++) {
$index = hexdec(substr($seed, $i, 2)) % $max; // Получаем индекс символа из хэшированного сида
$secret .= self::BASE32CHARS[$index];
}
return $secret;
}
public function generate(int $digits = 6, int $timeStep = 30): string
{
$time = floor(time() / $timeStep);
$secretKey = $this->base32_decode($this->secret);
$binaryTime = pack('N*', 0) . pack('N*', $time);
$hash = hash_hmac('sha1', $binaryTime, $secretKey, true);
$offset = ord($hash[strlen($hash) - 1]) & 0x0F;
$otp = (
((ord($hash[$offset]) & 0x7F) << 24) |
((ord($hash[$offset + 1]) & 0xFF) << 16) |
((ord($hash[$offset + 2]) & 0xFF) << 8) |
(ord($hash[$offset + 3]) & 0xFF)
) % 10 ** $digits;
return str_pad((string)$otp, $digits, '0', STR_PAD_LEFT);
}
private function base32_decode(string $input): string
{
$base32charsFlipped = array_flip(str_split(self::BASE32CHARS));
$output = '';
$v = 0;
$vbits = 0;
for ($i = 0, $j = strlen($input); $i < $j; $i++) {
$v <<= 5;
if ($input[$i] == '=') continue;
$v += $base32charsFlipped[$input[$i]];
$vbits += 5;
if ($vbits >= 8) {
$vbits -= 8;
$output .= chr(($v & (0xFF << $vbits)) >> $vbits);
}
}
return $output;
}
}

View File

@ -2,6 +2,7 @@
use Core\Db; use Core\Db;
use Helper\Conversion; use Helper\Conversion;
use Model\ActionModel;
use User\ItemsModel; use User\ItemsModel;
use User\Stats; use User\Stats;
@ -413,7 +414,7 @@ class Dungeon
if ($usr_real['clan'] > 0) { if ($usr_real['clan'] > 0) {
$usrreal .= '<img src=//img.new-combats.tech/i/clan/' . $usr_real['clan'] . '.gif width=24 height=15 >'; $usrreal .= '<img src=//img.new-combats.tech/i/clan/' . $usr_real['clan'] . '.gif width=24 height=15 >';
} }
$usrreal .= '<b>' . $usr_real['login'] . '</b>[' . $usr_real['level'] . ']<a target=_blank href=/info/' . $usr_real['id'] . ' ><img width=12 hiehgt=11 src=//img.new-combats.tech/i/inf_capitalcity.gif ></a>'; $usrreal .= '<b>' . $usr_real['login'] . '</b>[' . $usr_real['level'] . ']<a target=_blank href=/info/' . $usr_real['id'] . ' ><img width=12 heihgt=11 src=//img.new-combats.tech/i/inf_capitalcity.gif ></a>';
} else { } else {
$mereal = '<i>Невидимка</i>[??]'; $mereal = '<i>Невидимка</i>[??]';
} }
@ -425,7 +426,7 @@ class Dungeon
if ($me_real['clan'] > 0) { if ($me_real['clan'] > 0) {
$mereal .= '<img src=//img.new-combats.tech/i/clan/' . $me_real['clan'] . '.gif width=24 height=15 >'; $mereal .= '<img src=//img.new-combats.tech/i/clan/' . $me_real['clan'] . '.gif width=24 height=15 >';
} }
$mereal .= '<b>' . $me_real['login'] . '</b>[' . $me_real['level'] . ']<a target=_blank href=/info/' . $me_real['id'] . ' ><img width=12 hiehgt=11 src=//img.new-combats.tech/i/inf_capitalcity.gif ></a>'; $mereal .= '<b>' . $me_real['login'] . '</b>[' . $me_real['level'] . ']<a target=_blank href=/info/' . $me_real['id'] . ' ><img width=12 heihgt=11 src=//img.new-combats.tech/i/inf_capitalcity.gif ></a>';
} else { } else {
$mereal = '<i>Невидимка</i>[??]'; $mereal = '<i>Невидимка</i>[??]';
} }
@ -540,7 +541,7 @@ class Dungeon
if ($usr_real['clan'] > 0) { if ($usr_real['clan'] > 0) {
$usrreal .= '<img src=//img.new-combats.tech/i/clan/' . $usr_real['clan'] . '.gif width=24 height=15 >'; $usrreal .= '<img src=//img.new-combats.tech/i/clan/' . $usr_real['clan'] . '.gif width=24 height=15 >';
} }
$usrreal .= '<b>' . $usr_real['login'] . '</b>[' . $usr_real['level'] . ']<a target=_blank href=/info/' . $usr_real['id'] . ' ><img width=12 hiehgt=11 src=//img.new-combats.tech/i/inf_capitalcity.gif ></a>'; $usrreal .= '<b>' . $usr_real['login'] . '</b>[' . $usr_real['level'] . ']<a target=_blank href=/info/' . $usr_real['id'] . ' ><img width=12 heihgt=11 src=//img.new-combats.tech/i/inf_capitalcity.gif ></a>';
} else { } else {
$mereal = '<i>Невидимка</i>[??]'; $mereal = '<i>Невидимка</i>[??]';
} }
@ -552,7 +553,7 @@ class Dungeon
if ($me_real['clan'] > 0) { if ($me_real['clan'] > 0) {
$mereal .= '<img src=//img.new-combats.tech/i/clan/' . $me_real['clan'] . '.gif width=24 height=15 >'; $mereal .= '<img src=//img.new-combats.tech/i/clan/' . $me_real['clan'] . '.gif width=24 height=15 >';
} }
$mereal .= '<b>' . $me_real['login'] . '</b>[' . $me_real['level'] . ']<a target=_blank href=/info/' . $me_real['id'] . ' ><img width=12 hiehgt=11 src=//img.new-combats.tech/i/inf_capitalcity.gif ></a>'; $mereal .= '<b>' . $me_real['login'] . '</b>[' . $me_real['level'] . ']<a target=_blank href=/info/' . $me_real['id'] . ' ><img width=12 heihgt=11 src=//img.new-combats.tech/i/inf_capitalcity.gif ></a>';
} else { } else {
$mereal = '<i>Невидимка</i>[??]'; $mereal = '<i>Невидимка</i>[??]';
} }
@ -876,7 +877,7 @@ class Dungeon
$i = count($a); $i = count($a);
} }
} elseif ($s[0] == 'repl_ptp') { } elseif ($s[0] == 'repl_ptp') {
require_once('dnaction/_dungeon_replace.php'); require_once 'dnaction/_dungeon_replace.php';
die(); die();
} elseif ($s[0] == 'add_eff') { } elseif ($s[0] == 'add_eff') {
//Кастуем эффект //Кастуем эффект
@ -884,16 +885,10 @@ class Dungeon
$j = 0; $j = 0;
while ($j < count($t)) { while ($j < count($t)) {
$itm = explode('=', $t[$j]); $itm = explode('=', $t[$j]);
$ch = $u->testAction(
'`vars` = "add_eff_' . $this->info['id'] . '_' . $obj['id'] . '" AND `uid` = "' . $this->userinfo['id'] . '" LIMIT ' . (1 + (int)$itm[2]) . '', $ch = ActionModel::testCount(["uid = {$this->userinfo['id']}", "vars = add_eff_{$this->info['id']}_{$obj['id']}"], 1 + (int)$itm[2]); //кол-во прошлых попыток
2 $ch2 = ActionModel::testCount(["vars = add_eff_{$this->info['id']}_{$obj['id']}"], 1 + (int)$itm[4]); //кол-во прошлых попыток (все юзеры)
); //кол-во прошлых попыток
$ch = $ch[0];
$ch2 = $u->testAction(
' `vars` = "add_eff_' . $this->info['id'] . '_' . $obj['id'] . '" LIMIT ' . (1 + (int)$itm[4]) . '',
2
); //кол-во прошлых попыток (все юзеры)
$ch2 = $ch2[0];
if (($ch2 < $itm[4] || $itm[4] == 0) && $ch < $itm[2]) { if (($ch2 < $itm[4] || $itm[4] == 0) && $ch < $itm[2]) {
if ($itm[1] * 100 >= rand(0, 10000)) { if ($itm[1] * 100 >= rand(0, 10000)) {
//удачно //удачно
@ -936,11 +931,8 @@ class Dungeon
$t = explode(',', $s[1]); $t = explode(',', $s[1]);
while ($j < count($t)) { while ($j < count($t)) {
$itm = explode('=', $t[$j]); $itm = explode('=', $t[$j]);
$ch = $u->testAction( $ch = ActionModel::testCount(["vars = bafit_{$this->info['id']}_{$obj['id']}"], 1 + (int)$itm[2]); //кол-во прошлых попыток
'`vars` = "bafit_' . $this->info['id'] . '_' . $obj['id'] . '" LIMIT ' . (1 + (int)$itm[2]) . '',
2
); //кол-во прошлых попыток
$ch = $ch[0];
if ($ch < $itm[3]) { if ($ch < $itm[3]) {
if ($itm[2] * 1000 >= rand(1, 100000)) { if ($itm[2] * 1000 >= rand(1, 100000)) {
if ($itm[0] == 'hpNow') { if ($itm[0] == 'hpNow') {
@ -1026,11 +1018,8 @@ class Dungeon
$t = explode(',', $s[1]); $t = explode(',', $s[1]);
while ($j < count($t)) { while ($j < count($t)) {
$itm = explode('=', $t[$j]); $itm = explode('=', $t[$j]);
$ch = $u->testAction( $ch = ActionModel::testCount(["uid = {$this->userinfo['id']}", "vars = takeit_{$this->info['id']}_{$obj['id']}"], 1 + (int)$itm[2]); //кол-во прошлых попыток
'`uid` = "' . $this->userinfo['id'] . '" AND `vars` = "takeit_' . $this->info['id'] . '_' . $obj['id'] . '" LIMIT ' . (1 + (int)$itm[2]) . '',
2
); //кол-во прошлых попыток
$ch = $ch[0];
if ($ch >= $itm[2]) { if ($ch >= $itm[2]) {
//закончились попытки //закончились попытки
$r = 'ничего не произошло...<br>'; $r = 'ничего не произошло...<br>';
@ -1050,9 +1039,8 @@ class Dungeon
); );
if (isset($it['id'])) { if (isset($it['id'])) {
$r .= 'Вы обнаружили предмет &quot;<b>' . $it['name'] . '</b>&quot;.<br>'; $r .= 'Вы обнаружили предмет &quot;<b>' . $it['name'] . '</b>&quot;.<br>';
ItemsModel::addItem( ItemsModel::addItem($it['id'], $this->userinfo['id']);
['uid' => $this->userinfo['id'], 'iid' => $it['id'], 'x' => $this->userinfo['x'], 'y' => $this->userinfo['y'], 'del' => (int)$itm[4]] //ItemsModel::addItem(['uid' => $this->userinfo['id'], 'iid' => $it['id'], 'x' => $this->userinfo['x'], 'y' => $this->userinfo['y'], 'del' => (int)$itm[4]]);
);
} }
} else { } else {
//неудачная попытка //неудачная попытка
@ -1067,98 +1055,84 @@ class Dungeon
} }
} elseif ($s[0] == 'itm1') { } elseif ($s[0] == 'itm1') {
//Добавляем предмет , только 1 предмет из всех и все юзеры могут тоже //Добавляем предмет , только 1 предмет из всех и все юзеры могут тоже
$nj = 0;
$t = explode(',', $s[1]); $t = explode(',', $s[1]);
$j = rand(0, count($t)); $j = rand(0, count($t));
if ($nj == 0) { $itm = explode('=', $t[$j]);
$itm = explode('=', $t[$j]); $ch = ActionModel::testCount(["uid = {$this->userinfo['id']}", "vars = takeit_{$this->info['id']}_{$obj['id']}"], 1 + (int)$itm[2]); //кол-во прошлых попыток
$ch = $u->testAction(
'`uid` = "' . $this->userinfo['id'] . '" AND `vars` = "takeit_' . $this->info['id'] . '_' . $obj['id'] . '" LIMIT ' . (1 + (int)$itm[2]) . '',
2
); //кол-во прошлых попыток
$ch = $ch[0];
if ($ch >= $itm[2]) {
//закончились попытки
$r .= 'Странно, но ничего не произошло... <br>';
} else {
if ($itm[1] * 1000 >= rand(1, 100000)) {
//Случайный предмет (Башня смерти) if ($ch >= $itm[2]) {
if ($itm[0] == 'random1') { //закончились попытки
$itm[0] = $this->itbs[rand(0, count($this->itbs))]; $r .= 'Странно, но ничего не произошло... <br>';
} } else {
if ($itm[1] * 1000 >= rand(1, 100000)) {
//удачная попытка //Случайный предмет (Башня смерти)
$it = mysql_fetch_assoc( if ($itm[0] == 'random1') {
mysql_query( $itm[0] = $this->itbs[rand(0, count($this->itbs))];
'SELECT * FROM `items_main` WHERE `id`="' . ((int)$itm[0]) . '" LIMIT 1' }
)
); //удачная попытка
if (isset($it['id'])) { $it = mysql_fetch_assoc(
$r .= 'Вы обнаружили предмет &quot;<b>' . $it['name'] . '</b>&quot;.<br>'; mysql_query(
$u->addAction( 'SELECT * FROM `items_main` WHERE `id`="' . ((int)$itm[0]) . '" LIMIT 1'
time(), 'takeit_' . $this->info['id'] . '_' . $obj['id'], $this->userinfo['city'] )
); );
ItemsModel::addItem( if (isset($it['id'])) {
['uid' => $this->userinfo['id'], 'iid' => $it['id'], 'x' => $this->userinfo['x'], 'y' => $this->userinfo['y'], 'del' => (int)$itm[4]] $r .= 'Вы обнаружили предмет &quot;<b>' . $it['name'] . '</b>&quot;.<br>';
);
$nj++;
}
} else {
//неудачная попытка
$u->addAction( $u->addAction(
time(), 'takeit_' . $this->info['id'] . '_' . $obj['id'], $this->userinfo['city'] time(), 'takeit_' . $this->info['id'] . '_' . $obj['id'], $this->userinfo['city']
); );
$r .= 'Вы ничего не нашли ... <br>'; ItemsModel::addItem($it['id'], $this->userinfo['id']);
//ItemsModel::addItem(['uid' => $this->userinfo['id'], 'iid' => $it['id'], 'x' => $this->userinfo['x'], 'y' => $this->userinfo['y'], 'del' => (int)$itm[4]]);
} }
} else {
//неудачная попытка
$u->addAction(
time(), 'takeit_' . $this->info['id'] . '_' . $obj['id'], $this->userinfo['city']
);
$r .= 'Вы ничего не нашли ... <br>';
} }
} }
} elseif ($s[0] == 'itm2') { } elseif ($s[0] == 'itm2') {
//Добавляем предмет , только 1 предмет из всех и только 1 юзер может поднять //Добавляем предмет , только 1 предмет из всех и только 1 юзер может поднять
$nj = 0;
$t = explode(',', $s[1]); $t = explode(',', $s[1]);
$j = rand(0, count($t) - 1); $j = rand(0, count($t) - 1);
if ($nj == 0) { $itm = explode('=', $t[$j]);
$itm = explode('=', $t[$j]); $ch = ActionModel::testCount(["vars = takeit_{$this->info['id']}_{$obj['id']}"], 1 + (int)$itm[2]); //кол-во прошлых попыток
$ch = $u->testAction(
'`vars` = "takeit_' . $this->info['id'] . '_' . $obj['id'] . '" LIMIT ' . (1 + (int)$itm[2]) . '',
2
); //кол-во прошлых попыток
$ch = $ch[0];
if ($ch >= $itm[2]) {
//закончились попытки
$r .= 'Ничего не произошло... <br>';
} else {
if ($itm[1] * 1000 >= rand(1, 100000)) {
//Случайный предмет (Башня смерти) if ($ch >= $itm[2]) {
if ($itm[0] == 'random1') { //закончились попытки
$itm[0] = $this->itbs[rand(0, count($this->itbs))]; $r .= 'Ничего не произошло... <br>';
} } else {
if ($itm[1] * 1000 >= rand(1, 100000)) {
//удачная попытка //Случайный предмет (Башня смерти)
$it = mysql_fetch_assoc( if ($itm[0] == 'random1') {
mysql_query( $itm[0] = $this->itbs[rand(0, count($this->itbs))];
'SELECT * FROM `items_main` WHERE `id`="' . ((int)$itm[0]) . '" LIMIT 1' }
)
); //удачная попытка
if (isset($it['id'])) { $it = mysql_fetch_assoc(
$r .= 'Вы обнаружили предмет &quot;<b>' . $it['name'] . '</b>&quot;.<br>'; mysql_query(
$u->addAction( 'SELECT * FROM `items_main` WHERE `id`="' . ((int)$itm[0]) . '" LIMIT 1'
time(), 'takeit_' . $this->info['id'] . '_' . $obj['id'], $this->userinfo['city'] )
); );
ItemsModel::addItem( if (isset($it['id'])) {
['uid' => $this->userinfo['id'], 'iid' => $it['id'], 'x' => $this->userinfo['x'], 'y' => $this->userinfo['y'], 'del' => (int)$itm[4]] $r .= 'Вы обнаружили предмет &quot;<b>' . $it['name'] . '</b>&quot;.<br>';
);
$nj++;
}
} else {
//неудачная попытка
$u->addAction( $u->addAction(
time(), 'takeit_' . $this->info['id'] . '_' . $obj['id'], $this->userinfo['city'] time(), 'takeit_' . $this->info['id'] . '_' . $obj['id'], $this->userinfo['city']
); );
$r .= 'Вы ничего не нашли ... <br>'; ItemsModel::addItem($it['id'], $this->userinfo['id']);
//ItemsModel::addItem(['uid' => $this->userinfo['id'], 'iid' => $it['id'], 'x' => $this->userinfo['x'], 'y' => $this->userinfo['y'], 'del' => (int)$itm[4]]);
} }
} else {
//неудачная попытка
$u->addAction(
time(), 'takeit_' . $this->info['id'] . '_' . $obj['id'], $this->userinfo['city']
);
$r .= 'Вы ничего не нашли ... <br>';
} }
} }
} elseif ($s[0] == 'fileact') { } elseif ($s[0] == 'fileact') {
@ -1166,7 +1140,7 @@ class Dungeon
} }
$i++; $i++;
} }
$r = rtrim($r, '\<br\>'); $r = rtrim($r, '\<br>');
if ($r == '') { if ($r == '') {
$r = 'В этот раз не удалось найти что-либо еще'; $r = 'В этот раз не удалось найти что-либо еще';
} }
@ -1690,7 +1664,7 @@ class Dungeon
} }
$sp = mysql_query('SELECT * FROM `dungeon_now` WHERE `time_finish` = "0" LIMIT 50'); $sp = mysql_query('select * from dungeon_now where time_finish = 0 limit 50');
while ($pl = mysql_fetch_assoc($sp)) { while ($pl = mysql_fetch_assoc($sp)) {
$cn = mysql_fetch_assoc( $cn = mysql_fetch_assoc(
mysql_query('SELECT `id` FROM `stats` WHERE `dnow` = "' . $pl['id'] . '" LIMIT 1') mysql_query('SELECT `id` FROM `stats` WHERE `dnow` = "' . $pl['id'] . '" LIMIT 1')

View File

@ -0,0 +1,68 @@
<?php
namespace Helper;
use Exception;
class QueryBuilder
{
public function __construct(private readonly string $tableName, private string $columns = '*') {}
public function setColumns(string $columns): void
{
$this->columns = $columns;
}
/**
* @throws Exception
*/
public function select(array $filters = [], int $limit = 0): array
{
if (empty($filters)) {
return ['sql' => "select $this->columns from $this->tableName"];
}
$where = [];
$params = [];
foreach ($filters as $filter) {
[$name, $operation, $value] = explode(' ', $filter, 3);
$placeholder = ":$name";
$value = explode(' ', $value, 3); //todo: а ведь может прилететь значение из нескольких слов с пробелом...
if (count($value) === 1) {
$value = $value[0];
if (is_numeric($value)) {
$value = (int)$value;
}
} else {
array_walk_recursive($value, function (&$var) {
if (is_numeric($var)) {
$var = (int)$var;
}
});
if (is_numeric($value[0]) && is_numeric($value[2])) {
$value = match ($value[1]) {
'+' => $value[0] + $value[2],
'-' => $value[0] - $value[2],
'*' => $value[0] * $value[2],
'/' => ($value[2] != 0) ? $value[0] / $value[2] : throw new Exception('Деление на ноль недопустимо.'),
default => throw new Exception('Недопустимый оператор. Допустимы: +, -, *, /.'),
};
} elseif (is_string($value[0])) {
$placeholder = "$value[0] $value[1] :$name";
$value = $value[2];
} elseif (is_string($value[2])) {
$placeholder = "$value[2] $value[1] :$name";
$value = $value[0];
}
}
//todo: но есть ещё форменное скотство, когда в запрос кидают сложные формулы...
$where[] = "$name $operation $placeholder";
$params[$name] = $value;
}
return [
'sql' => "select $this->columns from $this->tableName where " . implode(" and ", $where) . ($limit > 0 ? " limit $limit" : ""),
'binds' => $params,
];
}
}

View File

@ -1491,9 +1491,6 @@ class Magic
} else { } else {
$u->error = 'Персонаж "' . $jl . '" не найден в этом городе (' . $u->info['city'] . ')'; $u->error = 'Персонаж "' . $jl . '" не найден в этом городе (' . $u->info['city'] . ')';
} }
} elseif (isset($st['useOnItem']) && $st['useOnItem'] == 1) {
//используем на предмет
} else { } else {
//на себя //на себя
$goodUse = 1; $goodUse = 1;
@ -1502,170 +1499,7 @@ class Magic
$u->error = 'Хаосники не могут использовать данное заклятие'; $u->error = 'Хаосники не могут использовать данное заклятие';
} }
if ($itm['magic_inci'] == 'sanich2') { if ($itm['magic_inci'] == 'lech') {
if ($u->info['battle'] == 0) {
$sz = $u->testAction(
'`uid` = "' . $u->info['id'] . '" AND `vars` = "sanich2" AND `time` > ' . (time() - 4 * 60 * 60) . ' LIMIT 1', 1
);
if (!isset($sz['id'])) {
$slech = rand(0, 4);
$goodUse = 0;
if ($slech == 1) {
//3083 Настойка на жучьей требухе
//$this->add_eff($u->info['id'],3083);
mysql_query(
'DELETE FROM `eff_users` WHERE `uid` = "' . $u->info['id'] . '" AND `id_eff` = 290 AND `delete` =0'
);
$this->addEffect($u->info['id'], 290);
$echotext = 'Настойка на жучьей требухе!';
$u->error = 'Вы получили эфект от ' . $echotext . '';
} elseif ($slech == 2) {
//5239 Амброзия подмастерья Владык
//$this->add_eff($u->info['id'],5239);
mysql_query(
'DELETE FROM `eff_users` WHERE `uid` = "' . $u->info['id'] . '" AND `id_eff` = 472 AND `delete` =0'
);
mysql_query(
'DELETE FROM `eff_users` WHERE `uid` = "' . $u->info['id'] . '" AND `id_eff` = 470 AND `delete` =0'
);
$this->addEffect($u->info['id'], 472);
$echotext = 'Амброзия подмастерья Владык!';
$u->error = 'Вы получили эфект от ' . $echotext . '';
} elseif ($slech == 3) {
//5069 Амброзия Скучающих Владык
//$this->add_eff($u->info['id'],470);
mysql_query(
'DELETE FROM `eff_users` WHERE `uid` = "' . $u->info['id'] . '" AND `id_eff` = 472 AND `delete` =0'
);
mysql_query(
'DELETE FROM `eff_users` WHERE `uid` = "' . $u->info['id'] . '" AND `id_eff` = 470 AND `delete` =0'
);
$this->addEffect($u->info['id'], 470);
$echotext = 'Амброзия Скучающих Владык!';
$u->error = 'Вы получили эфект от ' . $echotext . '';
} elseif ($slech == 4) {
//1463 Звездное Сияние
//$this->add_eff($u->info['id'],1463);
mysql_query(
'DELETE FROM `eff_users` WHERE `uid` = "' . $u->info['id'] . '" AND `id_eff` = 35 AND `delete` =0'
);
$this->addEffect($u->info['id'], 35);
$echotext = 'Звездное Сияние!';
$u->error = 'Вы получили эфект от ' . $echotext . '';
} else {
$slech = 1;
$echotext = 'Не удалось прочитать страницу!';
$u->error = ' ' . $echotext . ' ';
}
$itm['iznosNOW'] += $slech;
mysql_query(
'UPDATE `items_users` SET `iznosNOW` = "' . $itm['iznosNOW'] . '" WHERE `id` = "' . $itm['id'] . '" AND `uid` = "' . $u->info['id'] . '" LIMIT 1'
);
$u->addAction(time(), 'sanich2', $slech);
if ($u->info['sex'] == 1) {
$rtxt = '[img[items/' . $itm['img'] . ']] &quot;' . $u->info['login'] . '&quot; использовала &quot;' . $itm['name'] . ' Саныча&quot; и получила эффект ' . $echotext . ' травмы.';
} else {
$rtxt = '[img[items/' . $itm['img'] . ']] &quot;' . $u->info['login'] . '&quot; использовал &quot;' . $itm['name'] . ' Саныча&quot; и получил эффект ' . $echotext . ' травмы.';
}
} else {
$u->error = 'Задержка использования ' . Conversion::secondsToTimeout(
($sz['time'] + 4 * 60 * 60) - time()
) . '.';
}
} else {
$u->error = 'Невозможно использовать в бою';
}
} elseif ($itm['magic_inci'] == 'sanich1' && $u->info['battle'] > 0) {
$sz = $u->testAction(
'`uid` = "' . $u->info['id'] . '" AND `vars` = "sanich1" AND `time` > ' . (time() - 6 * 60) . ' LIMIT 1', 1
);
if (!isset($sz['id'])) {
$goodUse = 0;
$u->error = 'Вы успешно использовали &quot;' . $itm['name'] . '&quot;';
$z = 1;
while ($z <= 5) {
$u->info['tactic' . $z]++;
if ($u->info['tactic' . $z] > 25) {
$u->info['tactic' . $z] = 25;
} elseif ($u->info['tactic' . $z] < 0) {
$u->info['tactic' . $z] = 0;
}
$z++;
}
if ($u->info['sex'] == 1) {
$this->inBattleLog('{u1} использовала &quot;<b>' . $itm['name'] . ' Саныча</b>&quot;.');
} else {
$this->inBattleLog('{u1} использовал &quot;<b>' . $itm['name'] . ' Саныча</b>&quot;.');
}
mysql_query(
'UPDATE `stats` SET `tactic1` = "' . $u->info['tactic1'] . '",`tactic2` = "' . $u->info['tactic2'] . '",`tactic3` = "' . $u->info['tactic3'] . '",`tactic4` = "' . $u->info['tactic4'] . '",`tactic5` = "' . $u->info['tactic5'] . '" WHERE `id` = "' . $u->info['id'] . '" LIMIT 1'
);
$itm['iznosNOW']++;
mysql_query(
'UPDATE `items_users` SET `iznosNOW` = "' . $itm['iznosNOW'] . '" WHERE `id` = "' . $itm['id'] . '" AND `uid` = "' . $u->info['id'] . '" LIMIT 1'
);
$u->addAction(time(), 'sanich1', $u->info['battle']);
} else {
$u->error = 'Задержка использования ' . Conversion::secondsToTimeout(($sz['time'] + 6 * 60) - time()) . '.';
}
} elseif ($itm['magic_inci'] == 'sanich3' && $u->info['battle'] > 0) {
$sz = $u->testAction(
'`uid` = "' . $u->info['id'] . '" AND `vars` = "sanich3" AND `time` > ' . (time() - 3 * 60 * 60) . ' LIMIT 1', 1
);
if (!isset($sz['id'])) {
$usr = mysql_fetch_array(
mysql_query(
'SELECT `u`.`id`,`u`.`level`,`s`.`hpNow`,`s`.`team`,`u`.`login`,`u`.`sex` FROM `users` AS `u` LEFT JOIN `stats` AS `s` ON `s`.`id` = `u`.`id` WHERE `u`.`id` = "' . $u->info['enemy'] . '" AND `u`.`battle` = "' . $u->info['battle'] . '" LIMIT 1'
)
);
if (isset($usr['id']) && $usr['hpNow'] >= 1) {
$iznslvl = $usr['level'];
$goodUse = 0;
$u->error = 'Вы успешно использовали &quot;' . $itm['name'] . '&quot; на ' . $usr['login'] . '';
if ($u->info['sex'] == 1) {
$this->inBattleLog(
'{u1} использовала &quot;<b>' . $itm['name'] . ' Саныча</b>&quot; на {u2}.',
$usr
);
} else {
$this->inBattleLog(
'{u1} использовал &quot;<b>' . $itm['name'] . ' Саныча</b>&quot; на {u2}.', $usr
);
}
mysql_query(
'UPDATE `stats` SET `hpNow` = "' . $usr['hpNow'] . '" WHERE `id` = "' . $u->info['id'] . '" LIMIT 1'
);
mysql_query(
'UPDATE `stats` SET `hpNow` = "' . $u->stats['hpNow'] . '" WHERE `id` = "' . $usr['id'] . '" LIMIT 1'
);
$itm['iznosNOW'] += $iznslvl;
mysql_query(
'UPDATE `items_users` SET `iznosNOW` = "' . $itm['iznosNOW'] . '" WHERE `id` = "' . $itm['id'] . '" AND `uid` = "' . $u->info['id'] . '" LIMIT 1'
);
$u->addAction(time(), 'sanich3', $u->info['battle']);
} else {
$u->error = 'Нет подходящего противника';
}
} else {
$u->error = 'Задержка использования ' . Conversion::secondsToTimeout(
($sz['time'] + 3 * 60 * 60) - time()
) . '.';
}
} elseif ($itm['magic_inci'] == 'lech') {
$goodUse = 0; $goodUse = 0;
if ($u->info['level'] >= 2 and $u->info['level'] <= 13) { if ($u->info['level'] >= 2 and $u->info['level'] <= 13) {
$travm = mysql_fetch_array( $travm = mysql_fetch_array(
@ -1698,7 +1532,6 @@ class Magic
if ($goodUse == 1) { if ($goodUse == 1) {
$upd1 = 1; $upd1 = 1;
$upd2 = 1; $upd2 = 1;
//добавляем эффект персонажу //добавляем эффект персонажу

View File

@ -1,38 +1,39 @@
<?php <?php
use Core\Db;
use Helper\Conversion; use Helper\Conversion;
use Model\ActionModel;
use User\ItemsModel;
if (!defined('GAME')) { if (!defined('GAME')) {
die(); die();
} }
if ($itm['magic_inci'] == 'podvig') { if ($itm['magic_inci'] == 'podvig') {
$test = mysql_fetch_array(mysql_query('SELECT `id`,`time` FROM `actions` WHERE `uid` = "' . $u->info['id'] . '" AND `vars` = "podvig" AND `time` > "' . (time()) . '" LIMIT 1')); $test = Db::getRow("select id, time from actions where uid = ? and vars = 'podvig' and time > unix_timestamp() limit 1", [$u->info['id']]);
if ($u->info['align'] != 2) { if (isset($test['id'])) {
if (isset($test['id'])) { $u->error = 'Задержка не прошла, еще ' . Conversion::secondsToTimeout($test['time'] - time());
$u->error = 'Задержка не прошла, еще ' . Conversion::secondsToTimeout($test['time'] - time());
} else {
//
$dngcity = [
5035 => ['angelscity', 'Бездна'],
5036 => ['capitalcity', 'Пещера Тысячи Проклятий'],
5037 => ['demonscity', 'Катакомбы'],
5038 => ['abandonedplain', 'Гора Легиона'], //mooncity
5039 => ['suncity', 'Грибница'],
5040 => ['sandcity', 'Пещера Мглы'],
];
$dngcity = $dngcity[$itm['item_id']];
$hgo1 = $u->testAction('`uid` = "' . $u->info['id'] . '" AND `time` > "' . (time() - 86400) . '" AND `vars` = "psh_qt_' . $dngcity[0] . '" LIMIT 1', 1);
if (!isset($hgo1['id'])) {
$u->error = 'Нет задержки для подземелья ' . $dngcity[1] . '.';
} else {
$u->addAction(time(), 'podvig', '');
$u->error = 'Успешно использован свиток Право на Подвиг (' . $dngcity[1] . ')';
mysql_query('UPDATE `actions` SET `time` = "' . (time() - 86401) . '" WHERE `id` = "' . ($hgo1['id']) . '" LIMIT 1');
mysql_query('UPDATE `items_users` SET `iznosNOW` = `iznosNOW` + 1 WHERE `id` = "' . $itm['id'] . '" LIMIT 1');
}
}
} else { } else {
$u->error = 'Хаосники не могут пользоваться этим свитком!'; //
$dngcity = [
5035 => ['angelscity', 'Бездна'],
5036 => ['capitalcity', 'Пещера Тысячи Проклятий'],
5037 => ['demonscity', 'Катакомбы'],
5038 => ['abandonedplain', 'Гора Легиона'], //mooncity
5039 => ['suncity', 'Грибница'],
5040 => ['sandcity', 'Пещера Мглы'],
];
$dngcity = $dngcity[$itm['item_id']];
$hgo1 = ActionModel::getOne(["uid = {$u->info['id']}", "time > unix_timestamp() - 86400", "vars = psh_qt_$dngcity[0]"], 'id');
if (!isset($hgo1)) {
$u->error = 'Нет задержки для подземелья ' . $dngcity[1] . '.';
} else {
$u->addAction(time(), 'podvig', '');
$u->error = "Успешно использован свиток Право на Подвиг ($dngcity[1])";
Db::sql('update actions set time = unix_timestamp() - 86401 where id = ?', [$hgo1]);
ItemsModel::addIznos($itm['id']);
}
} }
} }

View File

@ -1,4 +1,8 @@
<?php <?php
use Model\ActionModel;
use User\ItemsModel;
if (!defined('GAME')) { if (!defined('GAME')) {
die(); die();
} }
@ -15,15 +19,16 @@ if (isset($po['finish_file']) && $po['finish_file'] == 'tznanie') {
//Уже что-то изучаем //Уже что-то изучаем
$u->error = 'Так не пойдет, вы уже что-то изучаете'; $u->error = 'Так не пойдет, вы уже что-то изучаете';
} else { } else {
$tst = $u->testAction('`uid` = "' . $u->info['id'] . '" AND `vars` = "read" AND `vals` = "' . $itm['item_id'] . '" LIMIT 1', 1); $tst = (bool)ActionModel::testCount(["uid = $u->info['id']", 'vars = read', "vals = {$itm['item_id']}"]);
if (isset($tst['id'])) {
if ($tst) {
$u->error = 'Вы уже изучили данное знание'; $u->error = 'Вы уже изучили данное знание';
} else { } else {
$fn = ''; $fn = '';
$tom_iz = 0; $tom_iz = 0;
if (($itm['item_id'] >= 1045 && $itm['item_id'] <= 1047) || ($itm['item_id'] >= 4812 && $itm['item_id'] <= 4813)) { if (($itm['item_id'] >= 1045 && $itm['item_id'] <= 1047) || ($itm['item_id'] >= 4812 && $itm['item_id'] <= 4813)) {
$tst2 = $u->testAction('`uid` = "' . $u->info['id'] . '" AND `vars` = "read" AND `vals` = "' . ($itm['item_id'] - 1) . '" LIMIT 1', 1); $tst2 = (bool)ActionModel::testCount(["uid = $u->info['id']", 'vars = read', "vals = {$itm['item_id']} - 1"]);
if (!isset($tst2['id'])) { if (!$tst2) {
$tom_iz = 1; $tom_iz = 1;
} }
unset($tst2); unset($tst2);
@ -41,7 +46,7 @@ if (isset($po['finish_file']) && $po['finish_file'] == 'tznanie') {
$u->error = 'Вы изучили &quot;' . $itm['name'] . '&quot;.'; $u->error = 'Вы изучили &quot;' . $itm['name'] . '&quot;.';
$u->addAction(time() + $st['timeRead'], 'read', $itm['item_id']); $u->addAction(time() + $st['timeRead'], 'read', $itm['item_id']);
mysql_query('UPDATE `items_users` SET `iznosNOW` = `iznosNOW` + 1 WHERE `id` = ' . $itm['id'] . ' LIMIT 1'); ItemsModel::addIznos($itm['id']);
} else { } else {
$u->error = 'Требует изучения предыдущего тома'; $u->error = 'Требует изучения предыдущего тома';

View File

@ -3,10 +3,13 @@
namespace Model; namespace Model;
use Core\Db; use Core\Db;
use Exception;
use Helper\QueryBuilder;
use User\UserIp; use User\UserIp;
class ActionModel class ActionModel
{ {
private const TABLE_NAME = 'actions';
private int $uid; private int $uid;
public function __construct(int $uid) public function __construct(int $uid)
@ -34,9 +37,51 @@ class ActionModel
); );
} }
public static function getAll(string $filter = ''): array public static function get(array $filters, string $columns = '*'): array
{ {
return Db::getRows('select * from actions'); $query = new QueryBuilder(self::TABLE_NAME, $columns);
try {
$stmt = $query->select($filters, 1);
return Db::getRow($stmt['sql'], $stmt['binds']);
} catch (Exception $e) {
echo $e->getMessage();
trigger_error(__METHOD__ . ': ' . $e->getMessage(), E_USER_ERROR);
}
}
public static function getOne(array $filters, string $column): mixed
{
$result = self::get($filters, $column);
if (!empty($result)) {
return array_shift($result);
}
return '';
}
public static function deleteById(int $id): void
{
Db::sql('delete from actions where id = ?', [$id]);
}
public static function testCount(array $filters, int $limit = 0): int
{
$query = new QueryBuilder(self::TABLE_NAME, 'count(id)');
try {
$stmt = $query->select($filters, $limit);
return Db::getValue($stmt['sql'], $stmt['binds']);
} catch (Exception $e) {
echo $e->getMessage();
trigger_error(__METHOD__ . ': ' . $e->getMessage(), E_USER_ERROR);
}
}
public static function testCountCustom(string $filter, array $binds, int $limit = 0): int
{
$sql = "select count(id) from actions where $filter";
if ($limit > 0) {
$sql .= ' limit ' . $limit;
}
return (int)Db::getValue($sql, $binds);
} }
public function getByVals(string $vals) public function getByVals(string $vals)
@ -54,6 +99,11 @@ class ActionModel
public function getLastByValsAndTime(string $vals, int $time) public function getLastByValsAndTime(string $vals, int $time)
{ {
$filter = [
"uid = $this->uid",
"vals = '$vals'",
"time > unix_timestamp() - $time",
];
return Db::getRow( return Db::getRow(
'select * from actions where uid = ? and vals = ? and time > unix_timestamp() - ? order by time desc limit 1', 'select * from actions where uid = ? and vals = ? and time > unix_timestamp() - ? order by time desc limit 1',
[$this->uid, $vals, $time] [$this->uid, $vals, $time]
@ -65,28 +115,14 @@ class ActionModel
Db::sql('delete from actions where uid = ? and vals = ?', [$this->uid, $vals]); Db::sql('delete from actions where uid = ? and vals = ?', [$this->uid, $vals]);
} }
public static function deleteById(int $id): void public function getDailyQuest(): array
{ {
Db::sql('delete from actions where id = ?', [$id]); $filter = [
} "uid = $this->uid",
"vars = 'day_quest'",
];
/*protected function testAction($filter, $tp): array return self::get($filter);
{
if ($tp == 1) {
$query = 'select * from actions where ' . $filter;
} elseif ($tp == 2) {
$query = 'select count(*) from actions where ' . $filter;
} else {
return [];
}
$arr = mysql_fetch_array(mysql_query($query));
return !empty($arr) ? $arr : [];
}*/
public function getDailyQuest(): array|false
{
return Db::getRow("select * from actions where uid = ? and vars = 'day_quest' limit 1", [$this->uid]);
} }
public function getFinishedDailyQuestTasks(int $timeout): array public function getFinishedDailyQuestTasks(int $timeout): array

View File

@ -5,6 +5,7 @@ use Core\Db;
use DarksLight2\Training\TrainingManager; use DarksLight2\Training\TrainingManager;
use Helper\Conversion; use Helper\Conversion;
use Helper\Math; use Helper\Math;
use Model\ActionModel;
use Model\Constant\Stat; use Model\Constant\Stat;
use User\Effects; use User\Effects;
@ -108,7 +109,7 @@ class Priems
/** используем прием каждый ход /** используем прием каждый ход
* @param Battle $btl * @param Battle $btl
* @param array $eff * @param array $eff
* @return bool * @return bool
*/ */
public function hodUsePriem(Battle $btl, array $eff): bool public function hodUsePriem(Battle $btl, array $eff): bool
@ -466,11 +467,11 @@ class Priems
/** /**
* Новая функция магического заклинания с приёма. * Новая функция магического заклинания с приёма.
* Работает с числовыми приёмами в папке [priem]. * Работает с числовыми приёмами в папке [priem].
* @param int $attackerId кто использует приём * @param int $attackerId кто использует приём
* @param int $defenderId на кого использует приём * @param int $defenderId на кого использует приём
* @param float $damage базовый урон приёма * @param float $damage базовый урон приёма
* @param string $damageType тип урона (стихия?) приходит строкой, и конвертируется функцией. * @param string $damageType тип урона (стихия?) приходит строкой, и конвертируется функцией.
* @param bool $hasCritical флаг, что приём МОЖЕТ критовать * @param bool $hasCritical флаг, что приём МОЖЕТ критовать
* @return array [0|damage] int урон, [1|crit] bool был ли крит, [2|miss] bool был ли промах, [3|miss_type] int тип промаха (всегда = 2). * @return array [0|damage] int урон, [1|crit] bool был ли крит, [2|miss] bool был ли промах, [3|miss_type] int тип промаха (всегда = 2).
* @author Insallah * @author Insallah
*/ */
@ -786,7 +787,8 @@ class Priems
$krituet = true, $krituet = true,
$heal = 0, $heal = 0,
$namenew = null $namenew = null
) { )
{
$trawm_off = false; $trawm_off = false;
global $btl; global $btl;
if ($namenew != null) { if ($namenew != null) {
@ -965,8 +967,7 @@ class Priems
); );
//заносим в лог боя //заносим в лог боя
$vLog = 'time1=' . time( $vLog = 'time1=' . time() . '||s1=' . $btl->users[$btl->uids[$usu]]['sex'] . '||t1=' . $btl->users[$btl->uids[$usu]]['team'] . '||login1=' . $btl->users[$btl->uids[$usu]]['login'] . '||s2=' . $btl->users[$btl->uids[$uen]]['sex'] . '||t2=' . $btl->users[$btl->uids[$uen]]['team'] . '||login2=' . $btl->users[$btl->uids[$uen]]['login'] . '';
) . '||s1=' . $btl->users[$btl->uids[$usu]]['sex'] . '||t1=' . $btl->users[$btl->uids[$usu]]['team'] . '||login1=' . $btl->users[$btl->uids[$usu]]['login'] . '||s2=' . $btl->users[$btl->uids[$uen]]['sex'] . '||t2=' . $btl->users[$btl->uids[$uen]]['team'] . '||login2=' . $btl->users[$btl->uids[$uen]]['login'] . '';
$mas1 = [ $mas1 = [
'time' => time(), 'time' => time(),
'battle' => $btl->i->id, 'battle' => $btl->i->id,
@ -1088,276 +1089,245 @@ class Priems
return $rr; return $rr;
} }
public function pruse($id) public function pruse($id): void
{ {
global $btl; global $btl;
$u = $this->u; // Для присоедиянемых файлов.
if ($id == 100500 && $this->u->info['animal'] > 0) { if ($id == 100500 && $this->u->info['animal'] > 0) {
$use_lst = $this->u->testAction( $this->processAnimal($btl);
'`uid` = "' . $this->u->info['id'] . '" AND `vars` = "animal_use' . $btl->i->id . '" LIMIT 1',
1
);
if (!isset($use_lst['id'])) {
$a = mysql_fetch_assoc(
mysql_query(
'SELECT * FROM `users_animal` WHERE `uid` = "' . $this->u->info['id'] . '" AND `id` = "' . $this->u->info['animal'] . '" AND `pet_in_cage` = "0" AND `delete` = "0" LIMIT 1'
)
);
if ($this->u->stats['hpNow'] < 1) {
echo 'Вы не можете выпустить зверя, вы потеряли все НР';
} elseif (isset($a['id']) && $a['eda'] < 1) {
echo 'Вы не накормили зверя...';
} elseif (isset($a['id'])) {
//Добавляем зверя в бой
$tp = [
1 => 'Кот',
2 => 'Сова',
3 => 'Светляк',
4 => 'Чертяка',
5 => 'Пес',
6 => 'Свин',
7 => 'Дракон',
];
$id = mysql_fetch_assoc(
mysql_query(
'SELECT `id` FROM `test_bot` WHERE `login` = "' . $tp[$a['type']] . ' [' . $a['level'] . ']" LIMIT 1'
)
);
if (isset($id['id']) && $btl->i->type != 500) {
$b = $this->u->addNewbot($id['id'], null, null);
if ($b > 0 && $b) {
$a['eda'] -= 4;
if ($a['eda'] < 0) {
$a['eda'] = 0;
}
$vLog = 'time1=' . time() . '||s1=' . $this->u->info['sex'] . '||t1=' . $this->u->info['team'] . '||login1=' . $this->u->info['login'] . '';
$mas1 = [
'time' => time(),
'battle' => $btl->i->id,
'id_hod' => $btl->hodID,
'vars' => $vLog,
'zona1' => '',
'zonb1' => '',
'zona2' => '',
'zonb2' => '',
'type' => '1',
];
$sex = $this->u->info['sex'] === 1 ? 'a' : '';
$mas1['text'] = "{tm1} {u1} выпустил$sex зверя &quot;<b>" . $a['name'] . '&quot;</b>';
Log::add($mas1);
mysql_query(
'UPDATE `users` SET `login` = "' . $a['name'] . ' (зверь ' . $this->u->info['login'] . ')",`obraz` = "' . $a['obraz'] . '.gif",`battle` = "' . $btl->i->id . '" WHERE `id` = "' . $b['id'] . '" LIMIT 1'
);
mysql_query(
'UPDATE `stats` SET `team` = "' . $this->u->info['team'] . '" WHERE `id` = "' . $b['id'] . '" LIMIT 1'
);
mysql_query(
'UPDATE `users_animal` SET `eda` = "' . $a['eda'] . '" WHERE `id` = "' . $a['id'] . '" LIMIT 1'
);
$this->u->addAction(time(), 'animal_use' . $btl->i->id, $a['level']);
} else {
echo 'Не удалось выпустить зверя...';
}
} else {
//Бот не найден
echo '<br>Не удалось выпустить зверя - он боится...';
}
} else {
//зверь не найден
echo 'У Вас нет зверя ...';
}
} else {
//зверь уже выпущен
echo 'Вы уже выпускали зверя в этом бою ...';
}
} else { } else {
$p = explode('|', $this->u->info['priems']); $this->processPriem($id, $btl);
$pz = explode('|', $this->u->info['priems_z']);
if ($p[(int)$id] > 0 && $pz[(int)$id] <= 0 && $this->u->info['hpNow'] >= 1) {
$pl = mysql_fetch_assoc(
mysql_query(
'SELECT * FROM `priems` WHERE `level`<=' . $this->u->info['level'] . ' AND `id` = ' . $p[(int)$id]
)
);
if (isset($pl['id']) && $pl['activ'] != 1) {
if ($pl['activ'] == 0) {
unset($pl);
} elseif ($pl['activ'] > 1) {
//Книжный прием
if ($this->testActiv($pl['activ']) == 0) {
unset($pl);
}
}
}
if (isset($pl['id'])) {
$notr = 0;
$pl['useon_user'] = $this->u->info['enemy'];
if (isset($_POST['useon']) && $_POST['useon'] != '' && $_POST['useon'] != 'none') {
$this->ue = mysql_fetch_assoc(
mysql_query(
'SELECT
`u`.`id`,`u`.`login`,`u`.`login2`,`u`.`online`,`u`.`admin`,`u`.`city`,`u`.`cityreg`,`u`.`align`,`u`.`clan`,
`u`.`level`,`u`.`money`,`u`.`money3`,`u`.`money4`,`u`.`battle`,`u`.`sex`,`u`.`obraz`,`u`.`win`,`u`.`win_t`,
`u`.`lose`,`u`.`lose_t`,`u`.`nich`,`u`.`timeMain`,`u`.`invis`,`u`.`bot_id`,`u`.`animal`,`u`.`type_pers`,
`u`.`notrhod`,`u`.`bot_room`,`u`.`inUser`,`u`.`inTurnir`,`u`.`inTurnirnew`,`u`.`stopexp`,`u`.`real`,
`st`.*
FROM `users` AS `u`
LEFT JOIN `stats` AS `st` ON (`u`.`id`=`st`.`id`)
WHERE (
`u`.`login`="' . mysql_real_escape_string($_POST['useon']) . '" OR
(
`u`.`login2` = "' . mysql_real_escape_string($_POST['useon']) . '" AND
`u`.`login2` != "")
) AND
(
`u`.`inUser` > 0 OR
(
`u`.`battle`="' . $btl->i->id . '" AND
`st`.`hpNow` > 0
)
) ORDER BY `u`.`id` DESC LIMIT 1'
)
);
if (isset($this->ue['id']) && $this->ue['inUser'] > 0) {
$this->ue = mysql_fetch_assoc(
mysql_query(
'SELECT
`u`.`id`,`u`.`login`,`u`.`login2`,`u`.`online`,`u`.`admin`,`u`.`city`,`u`.`cityreg`,`u`.`align`,`u`.`clan`,
`u`.`level`,`u`.`money`,`u`.`money3`,`u`.`money4`,`u`.`battle`,`u`.`sex`,`u`.`obraz`,`u`.`win`,`u`.`win_t`,
`u`.`lose`,`u`.`lose_t`,`u`.`nich`,`u`.`timeMain`,`u`.`invis`,`u`.`bot_id`,`u`.`animal`,`u`.`type_pers`,
`u`.`notrhod`,`u`.`bot_room`,`u`.`inUser`,`u`.`inTurnir`,`u`.`inTurnirnew`,`u`.`stopexp`,`u`.`real`,
`st`.*
FROM `users` AS `u`
LEFT JOIN `stats` AS `st` ON (`u`.`id`=`st`.`id`)
WHERE
`u`.`battle`="' . $btl->i->id . '" AND
`st`.`hpNow` > 0) AND
`u`.`id` = "' . $this->ue['inUser'] . '" ORDER BY `u`.`id` ASC LIMIT 1'
)
);
}
if (!isset($this->ue['id']) && $pl['trUser'] > 0) {
$notr++;
}
if ($pl['team'] == 1) {
//свои
if ($this->u->info['team'] != $this->ue['team']) {
$notr++;
}
} elseif ($pl['team'] == 2) {
//противники
if ($this->u->info['team'] == $this->ue['team']) {
$notr++;
}
}
} else {
$ga = mysql_fetch_assoc(
mysql_query(
'SELECT * FROM `battle_act` WHERE `battle` = "' . $btl->i->id . '" AND `uid1` = "' . $this->u->info['id'] . '" AND `uid2` = "' . $this->u->info['enemy'] . '" LIMIT 1'
)
);
if (($this->u->info['enemy'] == 0 || isset($ga['id'])) && ($pl['tr_hod'] > 0 || $pl['trUser'] > 0)) {
$notr++;
}
}
$notr += $this->testpriem($pl, 1, $this->ue['id']);
if ($this->ue['id'] > 0) {
$notr += $this->testRazmenOldUser($this->ue['id'], $this->u->info['enemy'], $pl['id']);
}
if ($notr == 0) {
mysql_query(
'UPDATE `stats` SET `last_pr` = "' . $pl['id'] . '" WHERE `id` = "' . $this->u->info['id'] . '" LIMIT 1'
);
//Приемы на персонажах
if ($this->ue['id'] > 0) {
$btl->priemsRazmen([$this->u->info['id'], $this->ue['id']], 'fast');
mysql_query(
'UPDATE `eff_users` SET `mark` = 1 WHERE `uid` = "' . $this->ue['id'] . '" AND `delete` = 0'
);
} else {
$btl->priemsRazmen([$this->u->info['id'], $this->u->info['enemy']], 'fast');
mysql_query(
'UPDATE `eff_users` SET `mark` = 1 WHERE `uid` = "' . $this->u->info['enemy'] . '" AND `delete` = 0'
);
}
mysql_query(
'UPDATE `eff_users` SET `mark` = 1 WHERE `uid` = "' . $this->u->info['id'] . '" AND `delete` = 0'
);
if (file_exists('../../_incl_data/class/Priem/' . $pl['id'] . '.php')) {
require('../../_incl_data/class/Priem/' . $pl['id'] . '.php');
$this->testDie($this->ue['id']);
} else {
echo 'useSkill' . $pl['id'];
}
if (!isset($cup)) {
$this->uppz($pl, $id);
//Отнимаем тактики
//$this->mintr($pl);
if ($pl['tr_hod'] > 0) {
$this->trhod($pl);
}
if ($pl['id'] != 258) {
if ($pl['cancel_eff'] == '') {
$pl['cancel_eff'] = '258';
} else {
$pl['cancel_eff'] .= ',258';
}
}
if ($pl['cancel_eff'] != '') {
$i = 0;
$e = explode(',', $pl['cancel_eff']);
while ($i < count($e)) {
if ($e[$i] > 0) {
if ($e[$i] == 258) {
$nem = mysql_fetch_assoc(
mysql_query(
'SELECT * FROM `eff_users` WHERE `uid` = "' . $this->u->info['id'] . '" AND `v1` = "priem" AND `v2` = "' . $e[$i] . '" AND `delete` = "0" AND `mark` = 1 LIMIT 1'
)
);
} else {
$nem = mysql_fetch_assoc(
mysql_query(
'SELECT * FROM `eff_users` WHERE `uid` = "' . $this->ue['id'] . '" AND `v1` = "priem" AND `v2` = "' . $e[$i] . '" AND `delete` = "0" AND `mark` = 1 LIMIT 1'
)
);
}
if (isset($nem['id'])) {
$nem['priem'] = mysql_fetch_assoc(
mysql_query(
'SELECT * FROM `priems` WHERE `id` = "' . $e[$i] . '" LIMIT 1'
)
);
if (isset($nem['id'])) {
$btl->delPriem($nem, $btl->users[$btl->uids[$this->ue['id']]], 500);
}
}
}
$i++;
}
}
}
}
}
}
} }
} }
//для папки priems private function processAnimal(Battle $btl): void
{
if ($this->u->stats['hpNow'] < 1) {
echo 'Вы не можете выпустить зверя, вы потеряли все НР';
return;
}
$alreadyReleased = ActionModel::testCount(["uid = {$this->u->info['id']}", "vars = animal_use{$btl->i->id}"]);
if (!empty($alreadyReleased)) {
echo 'Вы уже выпускали зверя в этом бою ...';
return;
}
$animal = Db::getRow('select * from users_animal where uid = ? and id = ? and pet_in_cage = 0', [$this->u->info['id'], $this->u->info['animal']]);
if (!isset($animal['id'])) {
echo 'У вас нет зверя.';
return;
}
if ($animal['eda'] < 1) {
echo 'Вы не накормили зверя.';
return;
}
$animalTypes = [
1 => 'Кот',
2 => 'Сова',
3 => 'Светляк',
4 => 'Чертяка',
5 => 'Пес',
6 => 'Свин',
7 => 'Дракон',
];
$botLogin = $animalTypes[$animal['type']] . ' [' . $animal['level'] . ']';
$botId = Db::getValue('select id from test_bot where login = ?', [$botLogin]);
if (!$botId) {
echo 'Системная ошибка: Неизвестный зверь!';
return;
}
$b = $this->u->addNewbot($botId);
if (!$b) {
echo 'Не удалось призвать зверя.';
return;
}
if ($b > 0) {
$animal['eda'] -= 4;
if ($animal['eda'] < 0) {
$animal['eda'] = 0;
}
$logData = [
'time' => time(),
'battle' => $btl->i->id,
'id_hod' => $btl->hodID,
'vars' => 'time1=' . time() . '||s1=' . $this->u->info['sex'] . '||t1=' . $this->u->info['team'] . '||login1=' . $this->u->info['login'],
'zona1' => '',
'zonb1' => '',
'zona2' => '',
'zonb2' => '',
'type' => '1',
'text' => '{tm1} {u1} выпустил' . ($this->u->info['sex'] === 1 ? 'a' : '') . " зверя «{$animal['name']}».",
];
Log::add($logData);
Db::sql('update users set login = ?, obraz = ?, battle = ? where id = ?', [$animal['name'], $animal['obraz'] . '.gif', $btl->i->id, $b['id']]);
Db::sql('update stats set team = ? where id = ?', [$this->u->info['team'], $b['id']]);
Db::sql('update users_animal set eda = ? where id = ?', [$animal['eda'], $animal['id']]);
$this->u->addAction(time(), 'animal_use' . $btl->i->id, $animal['level']);
}
}
private function processPriem(int $id, Battle $btl): void
{
$target = '';
$targetNotEmpty = false;
if ($_SERVER['REQUEST_METHOD'] === 'POST') {
$target = (string)filter_input(INPUT_POST, 'useon');
$targetNotEmpty = $target && $target !== 'none';
}
$cup = false;
$priemsOnPlayer = explode('|', $this->u->info['priems']);
$pz = explode('|', $this->u->info['priems_z']);
if ($priemsOnPlayer[$id] <= 0 || $pz[$id] > 0 || $this->u->info['hpNow'] < 1) {
return;
}
$priem = Db::getRow('select * from priems where level <= ? and id = ?', [$this->u->info['level'], $priemsOnPlayer['id']]);
if (isset($priem['id']) && $priem['activ'] != 1) {
if ($priem['activ'] == 0) {
unset($priem);
} elseif ($priem['activ'] > 1) {
//Книжный прием
if ($this->testActiv($priem['activ']) == 0) {
unset($priem);
}
}
}
if (!isset($priem['id'])) {
return;
}
$notr = 0;
$priem['useon_user'] = $this->u->info['enemy'];
if ($targetNotEmpty) {
$this->ue = Db::getRow('select
users.id, login, login2, online, admin, city, cityreg, align, clan, level, money, money3, money4, battle, sex, obraz, win, win_t, lose, lose_t, nich,
timeMain, invis, bot_id, animal, type_pers, notrhod, bot_room, inUser, inTurnir, inTurnirnew, stopexp, `real`, stats.*
from users inner join stats on users.id = stats.id where (login = ? or login2 = ?) and (inUser > 0 or (battle = ? and hpNow > 0))
order by users.id desc limit 1', [$target, $target, $btl->i->id]);
if (isset($this->ue['id']) && $this->ue['inUser'] > 0) {
$this->ue = Db::getRow('select
users.id, login, login2, online, admin, city, cityreg, align, clan, level, money, money3, money4, battle, sex, obraz, win, win_t, lose, lose_t, nich,
timeMain, invis, bot_id, animal, type_pers, notrhod, bot_room, inUser, inTurnir, inTurnirnew, stopexp, `real`, stats.*
from users inner join stats on users.id = stats.id where battle = ? and hpNow > 0 and users.id = ?
order by users.id limit 1', [$btl->i->id, $this->ue['inUser']]);
}
if (!isset($this->ue['id']) && $priem['trUser'] > 0) {
$notr++;
}
if ($priem['team'] == 1) {
//свои
if ($this->u->info['team'] != $this->ue['team']) {
$notr++;
}
} elseif ($priem['team'] == 2) {
//противники
if ($this->u->info['team'] == $this->ue['team']) {
$notr++;
}
}
} else {
$check = Db::getValue('select count(id) from battle_act where battle = ? and uid1 = ? and uid2 = ?', [$btl->i->id, $this->u->info['id'], $this->u->info['enemy']]) > 0;
if (($this->u->info['enemy'] == 0 || $check) && ($priem['tr_hod'] > 0 || $priem['trUser'] > 0)) {
$notr++;
}
}
$notr += $this->testpriem($priem, 1, $this->ue['id']);
if ($this->ue['id'] > 0) {
$notr += $this->testRazmenOldUser($this->ue['id'], $this->u->info['enemy'], $priem['id']);
}
if ($notr != 0) {
return;
}
Db::sql('update stats set last_pr = ? where id = ?', [$priem['id'], $this->u->info['id']]);
//Приемы на персонажах
$markuids = [];
if ($this->ue['id'] > 0) {
$btl->priemsRazmen([$this->u->info['id'], $this->ue['id']], 'fast');
$markuids[] = $this->ue['id'];
} else {
$btl->priemsRazmen([$this->u->info['id'], $this->u->info['enemy']], 'fast');
$markuids[] = $this->u->info['enemy'];
}
$markuids[] = $this->u->info['id'];
Db::sql('update eff_users set mark = 1 where uid in (?)', [implode(',', $markuids)]);
if (file_exists('../../_incl_data/class/Priem/' . $priem['id'] . '.php')) {
$u = $this->u; // Для присоедиянемых файлов.
require_once '../../_incl_data/class/Priem/' . $priem['id'] . '.php';
$this->testDie($this->ue['id']);
} else {
echo 'useSkill' . $priem['id'];
}
if ($cup) { // Из подключаемых файлов.
return;
}
$this->uppz($priem, $id);
//Отнимаем тактики
//$this->mintr($pl);
if ($priem['tr_hod'] > 0) {
$this->trhod($priem);
}
if ($priem['id'] != 258) {
if ($priem['cancel_eff'] == '') {
$priem['cancel_eff'] = '258';
} else {
$priem['cancel_eff'] .= ',258';
}
}
if ($priem['cancel_eff'] == '') {
return;
}
$i = 0;
$e = explode(',', $priem['cancel_eff']);
while ($i < count($e)) {
if ($e[$i] <= 0) {
$i++;
continue;
}
if ($e[$i] == 258) {
$uid = $this->u->info['id'];
} else {
$uid = $this->ue['id'];
}
$nem = Db::getRow('select * from eff_users where uid = ? and v1 = \'priem\' and v2 = ? and mark = 1 limit 1', [$uid, $e[$i]]);
if (isset($nem['id'])) {
$nem['priem'] = Db::getRow('select * from priems where id = ?', [$e['id']]);
$btl->delPriem($nem, $btl->users[$btl->uids[$this->ue['id']]], 500);
}
$i++;
}
}
private function testActiv($id) private function testActiv($id)
{ {
@ -1368,11 +1338,8 @@ class Priems
$this->u->info['id'] > 0) { $this->u->info['id'] > 0) {
$r = 1; $r = 1;
} else { } else {
$tst = $this->u->testAction( $test = (bool)Db::getValue("select count(id) from actions where uid = ? and time < unix_timestamp() and vars = 'read' and vals = ?", [$this->u->info['id'], $id]);
'`uid` = "' . $this->u->info['id'] . '" AND `time` < ' . time() . ' AND `vars` = "read" AND `vals` = "' . $id . '" LIMIT 1', if ($test) {
1
);
if (isset($tst['id'])) {
$r = 1; $r = 1;
} }
} }
@ -1428,11 +1395,8 @@ class Priems
if ($pl['xuse'] > 0) { if ($pl['xuse'] > 0) {
$xu = $this->u->testAction( $xu = ActionModel::testCount(["vars = use_priem_{$btl->i->id}_{$this->u->info['id']}", "vals = {$pl['id']}"], $pl['xuse']);
'`vars` = "use_priem_' . $btl->i->id . '_' . $this->u->info['id'] . '" AND `vals` = "' . $pl['id'] . '" LIMIT ' . $pl['xuse'], if ($xu >= $pl['xuse']) {
2
);
if ($xu[0] >= $pl['xuse']) {
$notr++; $notr++;
} }
} }
@ -1579,13 +1543,13 @@ class Priems
} }
/** /**
* @param int $uid на кого кастуем * @param int $uid на кого кастуем
* @param int $pr id приема * @param int $pr id приема
* @param int|string $data дата, если -1, то добавляем дату3 * @param int|string $data дата, если -1, то добавляем дату3
* @param int $d2 * @param int $d2
* @param $tm * @param $tm
* @param int $h ход * @param int $h ход
* @param int $uu id юзера который использовал * @param int $uu id юзера который использовал
* @param $max * @param $max
* @param $bj * @param $bj
* @param $tp * @param $tp
@ -1614,7 +1578,8 @@ class Priems
$noupdatebtl = 0, $noupdatebtl = 0,
$noplus = 0, $noplus = 0,
$pname = null $pname = null
) { )
{
global $btl; global $btl;
//$pl = mysql_fetch_assoc(mysql_query('SELECT * FROM `priems` WHERE `id` = ' . (int)$pr)); //$pl = mysql_fetch_assoc(mysql_query('SELECT * FROM `priems` WHERE `id` = ' . (int)$pr));
$pl = Db::getRow('select * from priems where id = ?', [$pr]); $pl = Db::getRow('select * from priems where id = ?', [$pr]);
@ -1732,8 +1697,8 @@ class Priems
/** Получает строку data c шаблонной записью типа add_m11=2*{lvl1} и конвертирует в реальную строку. /** Получает строку data c шаблонной записью типа add_m11=2*{lvl1} и конвертирует в реальную строку.
* <br>Шаблон: <br>lvl1 = $uid[level] <br>ts5 = $uid[s5] <br>mpAll = $uid[mpAll] * <br>Шаблон: <br>lvl1 = $uid[level] <br>ts5 = $uid[s5] <br>mpAll = $uid[mpAll]
* @param string $pl строка в формате data * @param string $pl строка в формате data
* @param int $uid пользователь, параметры которого используются для подставки в шаблон. * @param int $uid пользователь, параметры которого используются для подставки в шаблон.
* @return string строка в формате data с развёрнутыми шаблонами. * @return string строка в формате data с развёрнутыми шаблонами.
*/ */
public function redate($pl, $uid) public function redate($pl, $uid)
@ -1981,8 +1946,7 @@ class Priems
} else { } else {
//бьем противника с пропуском хода //бьем противника с пропуском хода
mysql_query( mysql_query(
'INSERT INTO `battle_act` (`battle`,`uid1`,`uid2`,`time`,`out1`,`type`,`tpo1`) VALUES ("' . $btl->i->id . '","' . $this->u->info['id'] . '","' . $this->u->info['enemy'] . '","' . time( 'INSERT INTO `battle_act` (`battle`,`uid1`,`uid2`,`time`,`out1`,`type`,`tpo1`) VALUES ("' . $btl->i->id . '","' . $this->u->info['id'] . '","' . $this->u->info['enemy'] . '","' . time() . '","1","1","2")'
) . '","1","1","2")'
); );
} }
} }
@ -2046,6 +2010,8 @@ class Priems
} }
} }
//выводим приемы $id - 1 (вне боя), 2 - в бою
/** Одеть приём в слот? /** Одеть приём в слот?
* @param $id * @param $id
* @return void * @return void
@ -2086,11 +2052,11 @@ class Priems
); );
if ($upd) { if ($upd) {
TrainingManager::getInstance() TrainingManager::getInstance()
->addPoint( ->addPoint(
'my_user_fourth_quest', function (TrainingManager $manager) { 'my_user_fourth_quest', function (TrainingManager $manager) {
$manager->store(); $manager->store();
} }
); );
$this->u->info['priems'] = $p; $this->u->info['priems'] = $p;
} }
} else { } else {
@ -2099,28 +2065,15 @@ class Priems
} }
} }
//выводим приемы $id - 1 (вне боя), 2 - в бою
public function getTechniquesInfo(?int $id = null): array public function getTechniquesInfo(?int $id = null): array
{ {
# SELECT * FROM `priems` WHERE `level`<="' . $this->u->info['level'] . '" AND `activ` > "0" AND `id` = "' . $id . '" LIMIT 1
if (isset($id)) { if (isset($id)) {
return Db::getRow('select * from priems where level <= ? and activ > 0 and id = ? order by img,level', [$this->u->info['level'], $id]); return Db::getRow('select * from priems where level <= ? and activ > 0 and id = ? order by img,level', [$this->u->info['level'], $id]);
// return Db::getRow(
// 'select * from techniques_categories left join priems on techniques_categories.technique_id = priems.id
// where priems.level <= ? and priems.activ > 0 and priems.id = ? order by priems.img,priems.level', [User::start()->info['level'], $id]
// );
} }
return Db::getRows('select * from priems where level <= ? and activ > 0 order by img,level', [$this->u->info['level']]); return Db::getRows('select * from priems where level <= ? and activ > 0 order by img,level', [$this->u->info['level']]);
// return Db::getRows(
// 'select * from techniques_categories left join priems on techniques_categories.technique_id = priems.id
// where priems.level <= ? and priems.activ > 0 order by priems.img,priems.level', [User::start()->info['level']]
// );
} }
public function seeMyPriems(): void public function seeMyPriems(): void
{ {
$i = 0; $i = 0;
@ -2172,7 +2125,7 @@ class Priems
/** /**
* Летит в js, двойные кавычки не использовать. * Летит в js, двойные кавычки не использовать.
* @param array $pl * @param array $pl
* @param int $id * @param int $id
* @return array * @return array
*/ */
private function priemInfo(array $pl, int $id = -1): array private function priemInfo(array $pl, int $id = -1): array
@ -2243,6 +2196,8 @@ class Priems
return [0 => $lvar, 1 => $pz]; return [0 => $lvar, 1 => $pz];
} }
//Мощность / подавление / сопротивление и т.д.
/** /**
* Генерирует html строку для вставки в JS $("#priems").html(" сюда "); * Генерирует html строку для вставки в JS $("#priems").html(" сюда ");
* @return string * @return string
@ -2281,11 +2236,11 @@ class Priems
$cl = 'href="javascript:void(0);" onClick="top.priemOnUser(' . $i . ',1,\'' . $pl['name'] . '\',\'' . $oninuser . '\',\'' . $pl['img'] . '\');"'; $cl = 'href="javascript:void(0);" onClick="top.priemOnUser(' . $i . ',1,\'' . $pl['name'] . '\',\'' . $oninuser . '\',\'' . $pl['img'] . '\');"';
unset($oninuser); unset($oninuser);
} else { } else {
$cl = 'href="javascript:void(0);" onClick="usepriem(' . $i . ',1,\'' . $pl['img'] . '\');"'; $cl = 'href="javascript:void(0);" onClick="usepriem(' . $i . ');"';
} }
} elseif ($pl['type'] == 2) { } elseif ($pl['type'] == 2) {
//длительное //длительное
$cl = 'href="javascript:void(0);" onClick="usepriem(' . $i . ',1,\'' . $pl['img'] . '\');"'; $cl = 'href="javascript:void(0);" onClick="usepriem(' . $i . ');"';
} elseif ($pl['type'] == 3) { } elseif ($pl['type'] == 3) {
$cl = 'href="javascript:void(0);" onClick="alert(\'Возможно используем?\');"'; $cl = 'href="javascript:void(0);" onClick="alert(\'Возможно используем?\');"';
} }
@ -2323,12 +2278,9 @@ class Priems
$i++; $i++;
} }
if ($this->u->info['animal'] > 0) { if ($this->u->info['animal'] > 0) {
$use_lst = $this->u->testAction( $use_lst = (bool)ActionModel::testCount(["uid = {$this->u->info['id']}", "vars = animal_use{$btl->i->id}"]);
'`uid` = "' . $this->u->info['id'] . '" AND `vars` = "animal_use' . $btl->i->id . '" LIMIT 1', if (!$use_lst) {
1 $pr .= '<a onMouseOver="top.hi(this,\'<b>Выпустить зверя</b><Br>Ваш зверь вмешивается в поединок. Можно применять один раз за бой.\',event,3,0,1,1,\'width:240px\');" onMouseOut="top.hic();" onMouseDown="top.hic();" href="javascript:void(0);" onClick="usepriem(100500);"><img style="margin-top:1px; margin-left:3px;" src="//img.new-combats.tech/i/eff/pet_unleash.gif" width="40" height="25" /></a>';
);
if (!isset($use_lst['id'])) {
$pr .= '<a onMouseOver="top.hi(this,\'<b>Выпустить зверя</b><Br>Ваш зверь вмешивается в поединок. Можно применять один раз за бой.\',event,3,0,1,1,\'width:240px\');" onMouseOut="top.hic();" onMouseDown="top.hic();" href="javascript:void(0);" onClick="usepriem(100500,1,\'\');"><img style="margin-top:1px; margin-left:3px;" src="//img.new-combats.tech/i/eff/pet_unleash.gif" width="40" height="25" /></a>';
} else { } else {
$pr .= '<img onMouseOver="top.hi(this,\'<b>Выпустить зверя</b><Br>Ваш зверь вмешивается в поединок. Можно применять один раз за бой.\',event,3,0,1,1,\'width:240px\');" onMouseOut="top.hic();" onMouseDown="top.hic();" style="margin-top:1px; margin-left:2px;" class="nopriemuse" src="//img.new-combats.tech/i/eff/pet_unleash.gif" width="40" height="25" />'; $pr .= '<img onMouseOver="top.hi(this,\'<b>Выпустить зверя</b><Br>Ваш зверь вмешивается в поединок. Можно применять один раз за бой.\',event,3,0,1,1,\'width:240px\');" onMouseOut="top.hic();" onMouseDown="top.hic();" style="margin-top:1px; margin-left:2px;" class="nopriemuse" src="//img.new-combats.tech/i/eff/pet_unleash.gif" width="40" height="25" />';
} }
@ -2337,8 +2289,6 @@ class Priems
return str_replace('"', '\\"', $pr); return str_replace('"', '\\"', $pr);
} }
//Мощность / подавление / сопротивление и т.д.
public function getByCategory(?int $category_id = null) public function getByCategory(?int $category_id = null)
{ {
@ -2437,10 +2387,16 @@ class Priems
); );
} }
/**
* Что-то для подключаемых файлов приёмов.
*
* @param $uid
* @param $mg
* @return bool|mysqli_result|resource
*/
private function rezadEff($uid, $mg) private function rezadEff($uid, $mg)
{ {
global $btl; global $btl;
//$this->rezadEff($this->u->info['id'],'wis_fire_');
$md = ''; $md = '';
$md2 = ''; $md2 = '';
$ex = explode('|', $btl->users[$btl->uids[$uid]]['priems']); $ex = explode('|', $btl->users[$btl->uids[$uid]]['priems']);
@ -2787,7 +2743,7 @@ class Priems
* Конечный damage после множителей делится на 5 и пишется в БД (atgm=). * Конечный damage после множителей делится на 5 и пишется в БД (atgm=).
* Файлы: 33, 56, 57, 58, 59, 60. * Файлы: 33, 56, 57, 58, 59, 60.
* @param $id * @param $id
* @param array $pl массив значений из БД priems. * @param array $pl массив значений из БД priems.
* @param Battle $btl * @param Battle $btl
* @return void * @return void
*/ */
@ -2819,7 +2775,7 @@ class Priems
* Если есть одинаковые статы из них выбирается случайный. * Если есть одинаковые статы из них выбирается случайный.
* Файл:267, приём 268. Понимай как хочешь. * Файл:267, приём 268. Понимай как хочешь.
* @param $id * @param $id
* @param array $pl * @param array $pl
* @param Battle $btl * @param Battle $btl
* @return void * @return void
*/ */

View File

@ -2,6 +2,7 @@
use Core\Db; use Core\Db;
use Helper\Conversion; use Helper\Conversion;
use Model\ActionModel;
use User\ItemsModel; use User\ItemsModel;
class Quests class Quests
@ -67,16 +68,18 @@ class Quests
} }
//Сколько раз можно пройти квест //Сколько раз можно пройти квест
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 = ActionModel::testCount(["uid = {$u->info['id']}", "vars = start_quest{$pl['id']}"], $d['tr_raz']);
if ($d['tr_raz'] > 0 && $d['tr_raz'] - $qlst[0] <= 0) { //$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) {
$r = 0; $r = 0;
} }
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 = ActionModel::testCount(["uid = {$u->info['id']}", "vars = start_quest{$pl['id']}", "vals != go", "vals != win"], $d['tr_raz2']);
if ($d['tr_raz2'] - $qlst[0] <= 0) { //$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) {
$r = 0; $r = 0;
} }
unset($qlst); unset($qlst);
@ -212,8 +215,7 @@ class Quests
$bot2 = mysql_fetch_array(mysql_query('SELECT * FROM `test_bot` WHERE `id` = "' . $ex2[0] . '" LIMIT 1')); $bot2 = mysql_fetch_array(mysql_query('SELECT * FROM `test_bot` WHERE `id` = "' . $ex2[0] . '" LIMIT 1'));
if (isset($bot2['id'])) { if (isset($bot2['id'])) {
if (isset($qst['id'])) { if (isset($qst['id'])) {
$x2 = $u->testAction('`uid` = "' . $u->info['id'] . '" AND `time` > ' . $qst['time'] . ' AND `vars` = "win_bot_' . $ex2[0] . '" LIMIT ' . $ex2[1], 2); $x2 = ActionModel::testCount(["uid = {$u->info['id']}", "vars = win_bot_$ex2[0]", "time > {$qst['time']}"], $ex2[1]);
$x2 = 0 + $x2[0];
} }
if (isset($d['all_kill']) && $d['all_kill'] > 0) { if (isset($d['all_kill']) && $d['all_kill'] > 0) {
$r = $d['all_kill']; $r = $d['all_kill'];
@ -393,15 +395,17 @@ class Quests
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 = ActionModel::testCount(["uid = {$u->info['id']}", "vars = start_quest{$pl['id']}"], $d['tr_raz']);
$t .= 'Сколько раз можно выполнить задание: ' . ($d['tr_raz'] - $qlst[0]) . '<br>'; //$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) . '<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 = ActionModel::testCount(["uid = {$u->info['id']}", "vars = start_quest{$pl['id']}", "vals != go", "vals != win"], $d['tr_raz2']);
$t .= 'Осталось попыток выполнить задание: ' . ($d['tr_raz2'] - $qlst[0]) . '<br>'; //$qlst = $u->testAction('`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) . '<br>';
unset($qlst); unset($qlst);
} }
@ -479,28 +483,32 @@ class Quests
//Убить ботов //Убить ботов
if (isset($d['kill_bot'])) { if (isset($d['kill_bot'])) {
$ex = explode(',', $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']);
$i = 0; # Количество циклов для каждого типа бота. $i = 0; # Количество циклов для каждого типа бота.
$q = ''; $botid = 0;
$sqlWhere = [];
$sqlParams = [];
while ($i < count($ex)) { while ($i < count($ex)) {
$ex2 = explode('=', $ex[$i]); $ex2 = explode('=', $ex[$i]);
if ($q != '') { $botid = $ex2[0];
$q .= ' OR '; $sqlWhere[] = "(uid = :uid$i and time > :time$i and vars = :vars$i)";
} $sqlParams["uid$i"] = $u->info['id'];
$q .= ' (`uid` = "' . $u->info['id'] . '" AND `time` > ' . $qst['time'] . ' AND `vars` = "win_bot_' . $ex2[0] . '" )'; $sqlParams["time$i"] = $qst['time'];
$sqlParams["vars$i"] = "win_bot_$ex2[0]";
$i++; $i++;
} }
$x2 = $u->testAction($q, 2); $sqlWhere = implode(' or ', $sqlWhere);
$x2 = $x2[0]; $x2 = ActionModel::testCountCustom($sqlWhere, $sqlParams);
if ($d['all_kill'] < $x2) { if ($d['all_kill'] < $x2) {
$x2 = $d['all_kill']; $x2 = $d['all_kill'];
} }
$bot2 = mysql_fetch_array(mysql_query('SELECT * FROM `test_bot` WHERE `id` = "' . $ex2[0] . '" LIMIT 1'));
if (isset($bot2['id'])) { $botlogin = Db::getValue('select login from test_bot where id = ?', [$botid]);
$x .= '&nbsp; &nbsp; &bull; <b>' . $bot2['login'] . '</b> [' . $x2 . '/' . $d['all_kill'] . ']<br>'; if (isset($botlogin)) {
$x .= '&nbsp; &nbsp; &bull; <b>' . $botlogin . '</b> [' . $x2 . '/' . $d['all_kill'] . ']<br>';
} else { } else {
$x .= '&nbsp; &nbsp; &bull; <b>' . $pl['name'] . '</b> [' . $x2 . '/' . $d['all_kill'] . ']<br>'; $x .= '&nbsp; &nbsp; &bull; <b>' . $pl['name'] . '</b> [' . $x2 . '/' . $d['all_kill'] . ']<br>';
} }
@ -509,13 +517,12 @@ class Quests
while ($i < count($ex)) { while ($i < count($ex)) {
$x2 = 0; $x2 = 0;
$ex2 = explode('=', $ex[$i]); $ex2 = explode('=', $ex[$i]);
$bot2 = mysql_fetch_array(mysql_query('SELECT * FROM `test_bot` WHERE `id` = "' . $ex2[0] . '" LIMIT 1')); $botlogin = Db::getValue('select login from test_bot where id = ?', [$ex2[0]]);
if (isset($bot2['id'])) { if (isset($botlogin)) {
if (isset($qst['id'])) { if (isset($qst['id'])) {
$x2 = $u->testAction('`uid` = "' . $u->info['id'] . '" AND `time` > ' . $qst['time'] . ' AND `vars` = "win_bot_' . $ex2[0] . '" LIMIT ' . $ex2[1], 2); $x2 = ActionModel::testCount(["uid = {$u->info['id']}", "vars = win_bot_$ex2[0]", "time > {$qst['time']}"], $ex2[1]);
$x2 = 0 + $x2[0];
} }
$x .= '&nbsp; &nbsp; &bull; <b>' . $bot2['login'] . '</b> [' . $x2 . '/' . $ex2[1] . ']<br>'; $x .= '&nbsp; &nbsp; &bull; <b>' . $botlogin . '</b> [' . $x2 . '/' . $ex2[1] . ']<br>';
} }
$i++; $i++;
} }
@ -525,7 +532,7 @@ class Quests
$x = trim($x, ', '); $x = trim($x, ', ');
$t .= 'Убить ботов: <br>' . $x; $t .= 'Убить ботов: <br>' . $x;
} }
unset($x, $ex, $x2, $bot2, $ex2); unset($x, $ex, $x2, $ex2, $botlogin);
} }
//Собрать ресурсы //Собрать ресурсы
@ -585,72 +592,86 @@ class Quests
public function testquest(): void public function testquest(): void
{ {
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'); return;
}
while ($pl2 = mysql_fetch_array($sp)) { $sp = mysql_query('SELECT * FROM `actions` WHERE `uid` = "' . $u->info['id'] . '" AND `vars` LIKE "%start_quest%" AND `vals` = "go" LIMIT 100');
$pl = mysql_fetch_array(mysql_query('SELECT * FROM `quests` WHERE `id` = "' . (str_replace('start_quest', '', $pl2['vars'])) . '" LIMIT 1'));
$g = 1; 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'));
$d = $this->expl($pl['act_date']);
//Поговорить с NPS $g = 1;
if (isset($d['dlg_nps'])) { //Действия квеста
$d = $this->expl($pl['act_date']);
//Поговорить с NPS
if (isset($d['dlg_nps'])) {
$g = 0;
unset($x);
}
//Убить игроков
if (isset($d['kill_user'])) {
$x = 0;
if ($x < $d['kill_user']) {
$g = 0; $g = 0;
unset($x);
} }
//$d['kill_user'] - стольких нужно убить
//Убить игроков unset($x);
if (isset($d['kill_user'])) { }
$x = 0; //Убить ботов
if ($x < $d['kill_user']) { if (isset($d['kill_bot'])) {
$ex = explode(',', $d['kill_bot']);
$ii = 0; // Количество циклов для каждого типа бота.
$smth2 = 0; // неизвестное.
$sqlFilter = [];
$sqlParams = [];
while ($ii < count($ex)) {
$ex2 = explode('=', $ex[$ii]);
$smth2 = $ex2[1];
$sqlFilter[] = "(uid = :uid$ii and time > :time$ii and vars = :vars$ii)";
$sqlParams["uid$ii"] = $u->info['id'];
$sqlParams["time$ii"] = $pl2['time'];
$sqlFilter["vars$ii"] = "win_bot_$ex2[0]";
$ii++;
}
$sqlFilter = implode(' or ', $sqlFilter);
if (isset($d['all_kill']) && $d['all_kill'] > 0) {
$x2 = ActionModel::testCountCustom($sqlFilter, $sqlParams, $d['all_kill']);
if ($x2 < $d['all_kill']) {
$g = 0; $g = 0;
} }
//$d['kill_user'] - стольких нужно убить } else {
unset($x); $x2 = ActionModel::testCountCustom($sqlFilter, $sqlParams, $smth2);
} if (!isset($d['all_kill']) && $x2 < $smth2) {
//Убить ботов $g = 0;
if (isset($d['kill_bot'])) {
$ex = explode(',', $d['kill_bot']);
$ii = 0; // Количество циклов для каждого типа бота.
$q = '';
while ($ii < count($ex)) {
$ex2 = explode('=', $ex[$ii]);
if ($q != '') {
$q .= ' OR ';
}
$q .= ' (`uid` = "' . $u->info['id'] . '" AND `time` > ' . $pl2['time'] . ' AND `vars` = "win_bot_' . $ex2[0] . '" )';
$ii++;
} }
if (isset($d['all_kill']) && $d['all_kill'] > 0) {
$x2 = $u->testAction($q . ' LIMIT ' . $d['all_kill'], 2);
if ($x2[0] < $d['all_kill']) {
$g = 0;
}
} else {
$x2 = $u->testAction($q . ' LIMIT ' . $ex2[1], 2);
if (!isset($d['all_kill']) && $x2[0] < $ex2[1]) {
$g = 0;
}
}
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);
} }
if ($g == 1) { if ($g == 1) {
$pl['time'] = $pl2['time']; $pl['time'] = $pl2['time'];
$this->endq($pl['id'], 'win'); $this->endq($pl['id'], 'win');
$this->winQuest($pl); $status = $this->winQuest($u->info['id'], $pl, $pl2['time']);
echo $pl['name']; //Отправляем сообщение в чат
if ($status) {
$chatDto = new ChatMessage();
$chatDto->setRoom($u->info['room']);
$chatDto->setTo($u->info['login']);
$chatDto->setText($status);
$chatDto->setType(5);
(new Chat())->sendMsg($chatDto);
} }
echo $pl['name'];
} }
} }
} }
@ -688,125 +709,117 @@ class Quests
# Функция отвечает за ПРОВЕРКУ на ЗАВЕРШЕНИЕ квестов для ПОДЗЕМОК # Функция отвечает за ПРОВЕРКУ на ЗАВЕРШЕНИЕ квестов для ПОДЗЕМОК
private function winQuest($pl) private function winQuest($uid, $pl, $time): string
{ {
global $u, $c, $magic; global $magic;
if (isset($pl['id'])) { if (!isset($pl['id'])) {
$d = $this->expl($pl['act_date']); return '';
$d = array_merge($d, $this->expl($pl['win_date']));
if ($_COOKIE['login'] == 'R' || $_COOKIE['login'] == 'r') {
echo '<script>alert("';
print_r(str_replace("\n", ' ', $d));
echo '");</script>';
die();
}
// Забираем ресурсы
if (isset($d['tk_itm'])) {
$ex = explode(',', $d['tk_itm']);
$i = 0;
while ($i < count($ex)) {
$ex2 = explode('=', $ex[$i]);
$ex2 = explode('=', $ex[$i]);
$x2 = $u->testAction('`uid` = "' . $u->info['id'] . '" AND `time` > ' . $pl2['time'] . ' AND `vars` = "win_bot_' . $ex2[0] . '" LIMIT ' . $ex2[1], 2);
ItemsModel::deleteItemsById($ex2[0], $ex2[1]);
$i++;
}
}
// Забираем трофеи
if (isset($d['tkill_itm'])) {
$ex = explode(',', $d['tkill_itm']);
$i = 0;
while ($i < count($ex)) {
$ex2 = explode('=', $ex[$i]);
$ex2 = explode('=', $ex[$i]);
$x2 = $u->testAction('`uid` = "' . $u->info['id'] . '" AND `time` > ' . $pl2['time'] . ' AND `vars` = "win_bot_' . $ex2[0] . '" LIMIT ' . $ex2[1], 2);
ItemsModel::deleteItemsById($ex2[0], $ex2[1]);
$i++;
}
}
$t = '';
if (isset($d['add_rep'])) { // Получаем репутацию за квест, если это убийства ботов.
if (isset($d['kill_bot']) && isset($d['all_kill']) && $d['add_rep'] > 0) {
$ex = explode(',', $d['kill_bot']);
$ii = 0;
$d['add_rep'] = 0;
while ($ii < count($ex)) {
$i = 0;
$ex2 = explode('=', $ex[$i]);
while ($i < $d['all_kill']) {
$x2 = 0;
$d['add_rep'] = $d['add_rep'] + $ex2[1];
$x2 = $u->testAction('`uid` = "' . $u->info['id'] . '" AND `time` > ' . $pl2['time'] . ' AND `vars` = "win_bot_' . $ex2[0] . '" LIMIT ' . $d['all_kill'], 2);
$i++;
}
$ii++;
}
}
unset($x, $i, $ii, $ex, $x2, $bot2, $ex2);
if ($pl['city'] != '') {
$t .= '' . $d['add_rep'] . ' ед. репутации ' . $pl['city'] . ', ';
$rep = mysql_fetch_array(mysql_query('SELECT * FROM `rep` WHERE `id` = "' . $u->info['id'] . '" LIMIT 1'));
if ($rep['rep' . $pl['city']] < 24999 && $rep['rep' . $pl['city']] + $d['add_rep'] >= 24999 && $pl['kin'] != 2) {
$rep['rep' . $pl['city']] = 24999;
} else {
$rep['rep' . $pl['city']] += $d['add_rep'];
}
mysql_query('UPDATE `rep` SET `rep' . $pl['city'] . '` = "' . $rep['rep' . $pl['city']] . '" WHERE `id` = "' . $rep['id'] . '" LIMIT 1');
}
}
if (isset($d['add_repizlom'])) {
$t .= '' . $d['add_repizlom'] . ' ед. репутации Излома Хаоса, ';
$rep = mysql_fetch_array(mysql_query('SELECT * FROM `rep` WHERE `id` = "' . $u->info['id'] . '" LIMIT 1'));
$rep['repizlom'] += $d['add_repizlom'];
if ($rep['repizlom'] > 24999) {
$rep['repizlom'] = 24999;
}
mysql_query('UPDATE `rep` SET `repizlom` = "' . $rep['repizlom'] . '" WHERE `id` = "' . $rep['id'] . '" LIMIT 1');
}
if (isset($d['add_eff'])) {
$i = 0;
$j = explode('=', $d['add_eff']);
while ($i < count($j)) {
if ($j[$i] > 0) {
$magic->addEffect($u->info['id'], $j[$i], 1);
}
$i++;
}
}
if (isset($d['add_cr'])) {
$t .= '' . $d['add_cr'] . ' кр., ';
mysql_query('UPDATE `users` SET `money` = `money`+' . $d['add_cr'] . ' WHERE `id` = "' . $u->info['id'] . '" LIMIT 1');
}
if ($t != '') {
$t = rtrim($t, ', ');
$r = 'Задание <b>' . $pl['name'] . '</b> было успешно выполнено! Вы получили награду: ' . $t . '.';
unset($t);
} else {
$r = 'Задание <b>' . $pl['name'] . '</b> было успешно выполнено!';
}
$r = '<small>' . $r . '</small>';
//Отправляем сообщение в чат
$chatDto = new ChatMessage();
$chatDto->setCity($u->info['city']);
$chatDto->setRoom($u->info['room']);
$chatDto->setTo($u->info['login']);
$chatDto->setText($r);
$chatDto->setType(5);
(new Chat())->sendMsg($chatDto);
} }
$d = $this->expl($pl['act_date']);
$d = array_merge($d, $this->expl($pl['win_date']));
if ($_COOKIE['login'] == 'R' || $_COOKIE['login'] == 'r') {
echo '<script>alert("';
print_r(str_replace("\n", ' ', $d));
echo '");</script>';
die();
}
// Забираем ресурсы
if (isset($d['tk_itm'])) {
$ex = explode(',', $d['tk_itm']);
$i = 0;
while ($i < count($ex)) {
$ex2 = explode('=', $ex[$i]);
$x2 = ActionModel::testCount(["uid = $uid", "vars = win_bot_$ex[2]", "time > $time"], $ex2[1]);
ItemsModel::deleteItemsById($ex2[0], $ex2[1]);
$i++;
}
}
// Забираем трофеи
if (isset($d['tkill_itm'])) {
$ex = explode(',', $d['tkill_itm']);
$i = 0;
while ($i < count($ex)) {
$ex2 = explode('=', $ex[$i]);
$x2 = ActionModel::testCount(["uid = $uid", "vars = win_bot_$ex[2]", "time > $time"], $ex2[1]);
ItemsModel::deleteItemsById($ex2[0], $ex2[1]);
$i++;
}
}
$t = '';
if (isset($d['add_rep'])) { // Получаем репутацию за квест, если это убийства ботов.
if (isset($d['kill_bot']) && isset($d['all_kill']) && $d['add_rep'] > 0) {
$ex = explode(',', $d['kill_bot']);
$ii = 0;
$d['add_rep'] = 0;
while ($ii < count($ex)) {
$i = 0;
$ex2 = explode('=', $ex[$i]);
while ($i < $d['all_kill']) {
$d['add_rep'] = $d['add_rep'] + (int)$ex2[1];
$x2 = ActionModel::testCount(["uid = $uid", "vars = win_bot_$ex[2]", "time > $time"], $d['all_kill']);
$i++;
}
$ii++;
}
}
unset($x, $i, $ii, $ex, $x2, $bot2, $ex2);
if ($pl['city'] != '') {
$t .= '' . $d['add_rep'] . ' ед. репутации ' . $pl['city'] . ', ';
$rep = mysql_fetch_array(mysql_query('SELECT * FROM `rep` WHERE `id` = "' . $uid . '" LIMIT 1'));
if ($rep['rep' . $pl['city']] < 24999 && $rep['rep' . $pl['city']] + $d['add_rep'] >= 24999 && $pl['kin'] != 2) {
$rep['rep' . $pl['city']] = 24999;
} else {
$rep['rep' . $pl['city']] += $d['add_rep'];
}
mysql_query('UPDATE `rep` SET `rep' . $pl['city'] . '` = "' . $rep['rep' . $pl['city']] . '" WHERE `id` = "' . $rep['id'] . '" LIMIT 1');
}
}
if (isset($d['add_repizlom'])) {
$t .= '' . $d['add_repizlom'] . ' ед. репутации Излома Хаоса, ';
$rep = mysql_fetch_array(mysql_query('SELECT * FROM `rep` WHERE `id` = "' . $uid . '" LIMIT 1'));
$rep['repizlom'] += $d['add_repizlom'];
if ($rep['repizlom'] > 24999) {
$rep['repizlom'] = 24999;
}
mysql_query('UPDATE `rep` SET `repizlom` = "' . $rep['repizlom'] . '" WHERE `id` = "' . $rep['id'] . '" LIMIT 1');
}
if (isset($d['add_eff'])) {
$i = 0;
$j = explode('=', $d['add_eff']);
while ($i < count($j)) {
if ($j[$i] > 0) {
$magic->addEffect($uid, $j[$i], 1);
}
$i++;
}
}
if (isset($d['add_cr'])) {
$t .= '' . $d['add_cr'] . ' кр., ';
mysql_query('UPDATE `users` SET `money` = `money`+' . $d['add_cr'] . ' WHERE `id` = "' . $uid . '" LIMIT 1');
}
if ($t != '') {
$t = rtrim($t, ', ');
$r = 'Задание <b>' . $pl['name'] . '</b> было успешно выполнено! Вы получили награду: ' . $t . '.';
unset($t);
} else {
$r = 'Задание <b>' . $pl['name'] . '</b> было успешно выполнено!';
}
return "<small>$r</small>";
} }
public function questCheckEnd($pl) public function questCheckEnd($pl): int
{ {
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'));
@ -836,29 +849,31 @@ class Quests
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 = ''; $smth1 = 0; // неизвестно что.
$sqlFilter = [];
$sqlParams = [];
while ($i < count($ex)) { while ($i < count($ex)) {
$ex2 = explode('=', $ex[$i]); $ex2 = explode('=', $ex[$i]);
if ($q != '') { $smth1 = $ex2[1];
$q .= ' OR '; $sqlFilter[] = "(uid = :uid$i and time > :time$i and vars = :vars$i)";
} $sqlParams[":uid$i"] = $u->info['id'];
$q .= ' (`uid` = "' . $u->info['id'] . '" AND `time` > ' . $quest['time'] . ' AND `vars` = "win_bot_' . $ex2[0] . '" )'; $sqlParams[":time$i"] = $quest['time'];
$sqlParams[":vars$i"] = "win_bot_$ex2[0]";
$i++; $i++;
} }
$sqlFilter = implode(' or ', $sqlFilter);
if (isset($d['all_kill']) && (int)$d['all_kill'] > 0) { if (isset($d['all_kill']) && (int)$d['all_kill'] > 0) {
$x2 = $u->testAction($q, 2); $x2 = ActionModel::testCountCustom($sqlFilter, $sqlParams);
if ((int)$d['all_kill'] <= $x2[0]) { if ((int)$d['all_kill'] <= $x2) {
$x2 = (int)$d['all_kill']; $x2 = (int)$d['all_kill'];
} else {
$x2 = $x2[0];
} }
if ($x2 < (int)$d['all_kill']) { if ($x2 < (int)$d['all_kill']) {
$g = 0; $g = 0;
} }
} else { } else {
$x2 = $u->testAction($q . ' LIMIT ' . $ex2[1], 2); $x2 = ActionModel::testCountCustom($sqlFilter, $sqlParams, $smth1);
$x2 = min($ex2[1], $x2[0]); $x2 = min($smth1, $x2);
if ($x2 < $ex2[1]) { if ($x2 < $smth1) {
$g = 0; $g = 0;
} }
} }
@ -886,10 +901,10 @@ class Quests
$x2 = Db::getValue('select count(*) from items_users where maidin = ? and item_id = ? and uid = ? and `delete` in (0,1000) and inTransfer = 0 and inShop = 0', $x2 = Db::getValue('select count(*) from items_users where maidin = ? and item_id = ? and uid = ? and `delete` in (0,1000) and inTransfer = 0 and inShop = 0',
[$pl['city'], (int)$ex2[0], $u->info['id']]); [$pl['city'], (int)$ex2[0], $u->info['id']]);
if ($x2 >= $ex2[1]) { if ($x2 >= $ex2[1]) {
if ($x2 <= ($ex2[1] + round($ex2[1] * 0.15))) { if ($x2 <= ((int)$ex2[1] + round($ex2[1] * 0.15))) {
$ex2[1] = $x2; $ex2[1] = $x2;
} else { } else {
$ex2[1] = ($ex2[1] + round($ex2[1] * 0.15)); $ex2[1] = ((int)$ex2[1] + round($ex2[1] * 0.15));
} }
} }
if ($x2 < $ex2[1]) { if ($x2 < $ex2[1]) {
@ -928,10 +943,10 @@ class Quests
$x2 = Db::getValue('select count(*) from items_users where maidin = ? and item_id = ? and uid = ? and `delete` in (0,1000) and inTransfer = 0 and inShop = 0', $x2 = Db::getValue('select count(*) from items_users where maidin = ? and item_id = ? and uid = ? and `delete` in (0,1000) and inTransfer = 0 and inShop = 0',
[$quest['city'], (int)$ex2[0], $u->info['id']]); [$quest['city'], (int)$ex2[0], $u->info['id']]);
if ($x2 >= $ex2[1]) { if ($x2 >= $ex2[1]) {
if ($x2 <= ($ex2[1] + round($ex2[1] * 0.15))) { if ($x2 <= ((int)$ex2[1] + round($ex2[1] * 0.15))) {
$ex2[1] = $x2; $ex2[1] = $x2;
} else { } else {
$ex2[1] = ($ex2[1] + round($ex2[1] * 0.15)); $ex2[1] = ((int)$ex2[1] + round($ex2[1] * 0.15));
} }
} }
$d['add_rep'] = (int)$d['add_rep'] * (int)$ex2[1]; $d['add_rep'] = (int)$d['add_rep'] * (int)$ex2[1];
@ -953,9 +968,8 @@ class Quests
$i = 0; $i = 0;
$ex2 = explode('=', $ex[$i]); $ex2 = explode('=', $ex[$i]);
while ($i < $d['all_kill']) { while ($i < $d['all_kill']) {
$x2 = 0; $d['add_rep'] = $d['add_rep'] + (int)$ex2[1];
$d['add_rep'] = $d['add_rep'] + $ex2[1]; $x2 = ActionModel::testCount(["uid = {$u->info['id']}", "vars = win_bot_$ex2[0]", "time > {$action['time']}"], $d['all_kill']);
$x2 = $u->testAction('`uid` = "' . $u->info['id'] . '" AND `time` > ' . $action['time'] . ' AND `vars` = "win_bot_' . $ex2[0] . '" LIMIT ' . $d['all_kill'], 2);
$i++; $i++;
} }
$ii++; $ii++;

View File

@ -243,17 +243,6 @@ class User
$this->statnames->getBonus(); $this->statnames->getBonus();
$this->statnames->getRequirement(); $this->statnames->getRequirement();
if (Core\Config::get('securetime') > 0) {
if (!defined('IP')) {
define('IP', $_SERVER['REMOTE_ADDR']);
}
if (isset($this->info['id']) && ($this->info['ip'] != IP || $this->info['banned'] > 0) && $_SERVER['REQUEST_URI'] != '/') {
unset($this->info, $_COOKIE['login']);
die(Config::get('exit'));
}
}
if (!isset ($_COOKIE['btl'], $this->info['battle']) || $this->info['battle'] != $_COOKIE['btl']) { if (!isset ($_COOKIE['btl'], $this->info['battle']) || $this->info['battle'] != $_COOKIE['btl']) {
setcookie('btl', $this->info['battle'] ?? '', time() + 86400); setcookie('btl', $this->info['battle'] ?? '', time() + 86400);
} }
@ -271,9 +260,9 @@ class User
if ($sb - 1 > $this->info['catch'] - $this->info['frg']) { if ($sb - 1 > $this->info['catch'] - $this->info['frg']) {
if ($this->info['frg'] == -1) { if ($this->info['frg'] == -1) {
$sm = $this->testAction('`uid` = "' . $this->info['id'] . '" AND `vars` = "frg" LIMIT 1', 1); $sm = (bool)ActionModel::testCount(["uid = {$this->info['id']}", 'vars = frg']);
} }
if (!isset($sm['id']) && $this->info['frg'] == -1) { if (!$sm && $this->info['frg'] == -1) {
mysql_query( mysql_query(
'UPDATE `users` SET `catch` = "' . round( 'UPDATE `users` SET `catch` = "' . round(
$sb $sb
@ -298,6 +287,7 @@ class User
); );
} }
} }
unset($sm);
} }
if ($this->info['login2'] != '' && $this->info['battle'] == 0 && $this->info['zv'] == 0) { if ($this->info['login2'] != '' && $this->info['battle'] == 0 && $this->info['zv'] == 0) {
@ -315,8 +305,7 @@ class User
} }
if (isset($_GET['homeworld']) && $this->info['zv'] == 0 && $this->info['battle'] == 0 && $this->info['dnow'] == 0) { if (isset($_GET['homeworld']) && $this->info['zv'] == 0 && $this->info['battle'] == 0 && $this->info['dnow'] == 0) {
$hgo = $this->testHome(); if ($this->testHome() && $this->info['room'] != 274 && $this->info['align'] != 2 && $this->info['inTurnir'] == 0) {
if (!isset($hgo['id']) && $this->info['room'] != 274 && $this->info['align'] != 2 && $this->info['inTurnir'] == 0) {
$this->addAction(time(), 'go_homeworld', ''); $this->addAction(time(), 'go_homeworld', '');
$rmt = mysql_fetch_array( $rmt = mysql_fetch_array(
mysql_query( mysql_query(
@ -351,7 +340,6 @@ class User
} else { } else {
$this->error = 'Вам запрещено пользоваться кнопкой возрата'; $this->error = 'Вам запрещено пользоваться кнопкой возрата';
} }
unset($hgo);
} }
//Заносим текст //Заносим текст
@ -517,17 +505,14 @@ class User
*/ */
//Статистика персонажа на сегодня //Статистика персонажа на сегодня
$stat = $this->testAction( $stat = (bool)ActionModel::testCount(["uid = {$this->info['id']}", "time >= " . strtotime('now 00:00:00'), 'vars = statistic_today']);
'`uid` = "' . $this->info['id'] . '" AND `time` >= ' . strtotime( if (!$stat) {
'now 00:00:00'
) . ' AND `vars` = "statistic_today" LIMIT 1', 1
);
if (!isset($stat['id'])) {
$this->addAction( $this->addAction(
time(), 'statistic_today', time(), 'statistic_today',
'e=' . $this->info['exp'] . '|w=' . $this->info['win'] . '|l=' . $this->info['lose'] . '|n=' . $this->info['nich'] 'e=' . $this->info['exp'] . '|w=' . $this->info['win'] . '|l=' . $this->info['lose'] . '|n=' . $this->info['nich']
); );
} }
unset($stat);
//Одеваем боевой комплект //Одеваем боевой комплект
if (isset($_GET['usec1']) && $this->info['battle'] == 0) { if (isset($_GET['usec1']) && $this->info['battle'] == 0) {
@ -611,11 +596,8 @@ class User
} }
if (isset($_GET['obr_sel']) || isset($_GET['obraz'])) { if (isset($_GET['obr_sel']) || isset($_GET['obraz'])) {
$sm = $this->testAction( $obrazTimeout = ActionModel::getOne(["uid = {$this->info['id']}", 'time > unix_timestamp() - 86400', 'vars = sel_obraz'], 'time');
'`uid` = "' . $this->info['id'] . '" AND `time` > ' . (time() - 86400) . ' AND `vars` = "sel_obraz" LIMIT 1', if (!$obrazTimeout) {
1
);
if (!isset($sm['id'])) {
if (isset($_GET['obr_sel'])) { if (isset($_GET['obr_sel'])) {
$tr = true; $tr = true;
$o = mysql_fetch_array( $o = mysql_fetch_array(
@ -686,7 +668,7 @@ class User
} }
} else { } else {
$this->error = 'Выбирать образ можно не чаще одного раза в сутки, следующая смена ' . date( $this->error = 'Выбирать образ можно не чаще одного раза в сутки, следующая смена ' . date(
'd.m.Y H:i', $sm['time'] + 86400 'd.m.Y H:i', $obrazTimeout + 86400
); );
unset($_GET['obr_sel']); unset($_GET['obr_sel']);
$_GET['inv'] = 1; $_GET['inv'] = 1;
@ -822,22 +804,6 @@ class User
return Db::getRow('select * from users left join stats on users.id = stats.id where users.id = ?', [$id]); return Db::getRow('select * from users left join stats on users.id = stats.id where users.id = ?', [$id]);
} }
public function testAction($filter, $tp): array
{
if ($tp == 1) {
$query = 'select * from actions where ' . $filter;
} elseif ($tp == 2) {
$query = 'select count(*) from actions where ' . $filter;
} else {
return [];
}
$arr = mysql_fetch_array(mysql_query($query));
return !empty($arr) ? $arr : [];
}
//Удаление определенного типа предметов
public function addAction($time, $vars, $vls, $uid = null): bool public function addAction($time, $vars, $vls, $uid = null): bool
{ {
$info = $this->info; $info = $this->info;
@ -848,7 +814,14 @@ class User
return true; return true;
} }
public function testHome(): array //Удаление определенного типа предметов
/**
* Кнопка "Возврат".
*
* @return bool
*/
public function testHome(): bool
{ {
/*----Быстрый(Особенность)----*/ /*----Быстрый(Особенность)----*/
$timeforwait = 3600; $timeforwait = 3600;
@ -856,25 +829,27 @@ class User
$timeforwait = 3600 - (($st['os6'] * 5) * 60); $timeforwait = 3600 - (($st['os6'] * 5) * 60);
} }
/*----Быстрый(Особенность)----*/ /*----Быстрый(Особенность)----*/
$hgo = $this->testAction( $buttonUsed = (bool)ActionModel::testCount(["uid = {$this->info['id']}", "time >= unix_timestamp - $timeforwait", 'vars = go_homeworld']);
'`uid` = "' . $this->info['id'] . '" AND `time` >= ' . (time() - $timeforwait) . ' AND `vars` = "go_homeworld" LIMIT 1',
1 if (
); $this->info['level'] == 0 ||
if ($this->info['level'] == 0 || $this->info['active'] != '' || $this->info['inTurnir'] > 0 || $this->info['inTurnirnew'] > 0 || $this->info['zv'] > 0 || $this->info['dnow'] > 0) { $this->info['active'] != '' ||
$hgo['id'] = true; $this->info['inTurnir'] > 0 ||
$this->info['inTurnirnew'] > 0 ||
$this->info['zv'] > 0 ||
$this->info['dnow'] > 0 ||
!empty($this->info['noreal'])
) {
$buttonUsed = true;
} }
if (isset($this->info['noreal']) || $this->info['dnow'] > 0) {
$hgo['id'] = true; if (!$buttonUsed) {
} $onKatok = (bool)Db::getValue('select id from katok_zv where uid = ?', [$this->info['id']]);
if (!isset($hgo['id'])) { if ($onKatok) {
$ku = mysql_fetch_array( $buttonUsed = true;
mysql_query('SELECT `id` FROM `katok_zv` WHERE `uid` = ' . $this->info['id'])
);
if (isset($ku['id'])) {
$hgo['id'] = true;
} }
} }
return $hgo ?? []; return !$buttonUsed;
} }
public function wipe() public function wipe()
@ -955,44 +930,41 @@ class User
//Расчет урона от оружия //Расчет урона от оружия
public function allActionsStart() public function allActionsStart(): void
{ {
global $magic; global $magic;
define('VAREZHKI_ITEM_ID', 998);
if (!isset($_GET['use_snowball'])) { if (!isset($_GET['use_snowball'])) {
return; return;
} }
$this->stats = $this->getStats($this->info, 0); $this->stats = $this->getStats($this->info, 0);
//Начинаем лепить снежок на ЦП //Начинаем лепить снежок на ЦП
if (!isset($this->stats['items'][$this->stats['wp13id']]['id']) || $this->stats['items'][$this->stats['wp13id']]['item_id'] != 998) { if (!isset($this->stats['items'][$this->stats['wp13id']]['id']) || $this->stats['items'][$this->stats['wp13id']]['item_id'] != VAREZHKI_ITEM_ID) {
return; return;
}//варежки одеты, все ок }//варежки одеты, все ок
if ($this->room['name'] != 'Центральная площадь') { if ($this->room['name'] != 'Центральная площадь') {
$this->error2 = 'Собирать снег можно только на Центральной площади'; $this->error2 = 'Собирать снег можно только на Центральной площади';
} else { return;
$smt = $this->testAction(
'`uid` = "' . $this->info['id'] . '" AND `time`>=' . (time() - 120) . ' AND `vars` = "create_snowball_cp" LIMIT 1',
1
);
if (isset($smt['id'])) {
$this->error2 = 'Нельзя лепить несколько снежков одновременно ;)';
} else {
$smt = $this->testAction(
'`uid` = "' . $this->info['id'] . '" AND `time`>=' . strtotime(
'now 00:00:00'
) . ' AND `vars` = "create_snowball_cp" LIMIT 25',
2
);
$smt = $smt[0];
if ($smt < 10) {
$this->addAction(time(), 'create_snowball_cp', $this->info['city']);
$magic->addEffect($this->info['id'], 24);
$this->error2 = 'Начинаем лепить снежок, осталось ' . (10 - $smt) . ' раз на сегодня ...';
} else {
$this->error2 = 'Вы уже слепили 10 снежка за сегодня ...';
}
}
} }
$isMakingSnowball = (bool)ActionModel::testCount(["uid = {$this->info['id']}", "time >= unix_timestamp() - 120", 'vars = create_snowball_cp']);
if ($isMakingSnowball) {
$this->error2 = 'Нельзя лепить несколько снежков одновременно ;)';
return;
}
$createdToday = ActionModel::testCount(["uid = {$this->info['id']}", 'vars = create_snowball_cp', 'time >= ' . strtotime('now 00:00:00')], 25);
if ($createdToday >= 10) {
$this->error2 = 'Вы уже слепили 10 снежка за сегодня ...';
return;
}
$this->addAction(time(), 'create_snowball_cp', $this->info['city']);
$magic->addEffect($this->info['id'], 24);
$this->error2 = 'Начинаем лепить снежок, осталось ' . (10 - $createdToday) . ' раз на сегодня ...';
} }
//Расчет защиты //Расчет защиты
@ -2774,7 +2746,7 @@ class User
Delo::add( Delo::add(
2, 2,
'System.remont.upatack', 'System.remont.upatack',
$u->info['id'], $this->info['id'],
'&quot;<span style="color: #4863A0; ">System.remont.upatack</span>&quot;: Заточка &quot;' . $data['upatack_name'] . '&quot; была успешно <strong>встроена</strong> в предмет &quot;' . $id['name'] . '&quot; [itm:' . $id['id'] . ']', '&quot;<span style="color: #4863A0; ">System.remont.upatack</span>&quot;: Заточка &quot;' . $data['upatack_name'] . '&quot; была успешно <strong>встроена</strong> в предмет &quot;' . $id['name'] . '&quot; [itm:' . $id['id'] . ']',
); );
@ -4905,7 +4877,7 @@ class User
return 0; return 0;
} }
$sleep = $this->testAction('`vars` = "sleep" AND `uid` = "' . $e['uid'] . '" LIMIT 1', 1); $sleep = ActionModel::getOne(["uid = {$e['uid']}", 'vars = sleep'], 'vars');
if ($e['id_eff'] == 2) { if ($e['id_eff'] == 2) {
//Проверка //Проверка
@ -4929,6 +4901,7 @@ class User
if (isset($po['finish_file']) && file_exists('_incl_data/class/Magic/' . $po['finish_file'] . '.php')) { if (isset($po['finish_file']) && file_exists('_incl_data/class/Magic/' . $po['finish_file'] . '.php')) {
require_once '_incl_data/class/Magic/' . $po['finish_file'] . '.php'; require_once '_incl_data/class/Magic/' . $po['finish_file'] . '.php';
} }
if (isset($u['id']) && ($e['type1'] < 11 || $e['type1'] > 16 && $e['type1'] < 23) && $e['noch'] == 0) { if (isset($u['id']) && ($e['type1'] < 11 || $e['type1'] > 16 && $e['type1'] < 23) && $e['noch'] == 0) {
$text = "Закончилось действие эффекта «<strong>{$e['name']}</strong>»"; $text = "Закончилось действие эффекта «<strong>{$e['name']}</strong>»";
$cmsg = new ChatMessage(); $cmsg = new ChatMessage();
@ -6103,7 +6076,7 @@ LIMIT 1'
'UPDATE `items_users` SET `lastUPD` = "' . time() . '", `uid` = "' . $user['id'] . '", `data` = "' . $pl['data'] . '" WHERE `id` = "' . $pl['id'] . '"' 'UPDATE `items_users` SET `lastUPD` = "' . time() . '", `uid` = "' . $user['id'] . '", `data` = "' . $pl['data'] . '" WHERE `id` = "' . $pl['id'] . '"'
); );
mysql_query( mysql_query(
'INSERT INTO `clan_operations` (`clan`, `time`, `type`, `text`, `val`, `uid`) VALUES ("' . $res['id'] . '", "' . time() . '", "' . $type . '", "' . $user['login'] . '", "' . $it_n['name'] . ' (x' . $col . ') Ид : [' . $pl['id'] . ']", "' . $user['id'] . '")' 'INSERT INTO `clan_operations` (`clan`, `time`, `type`, `text`, `val`, `uid`) VALUES ("' . $cl . '", "' . time() . '", "' . $type . '", "' . $user['login'] . '", "' . $it_n['name'] . ' (x' . $col . ') Ид : [' . $pl['id'] . ']", "' . $user['id'] . '")'
); );
} elseif ($pl['uid'] == $user['id']) { } elseif ($pl['uid'] == $user['id']) {
$col = $this->itemsX(((int)$pl['id'])); $col = $this->itemsX(((int)$pl['id']));
@ -6114,7 +6087,7 @@ LIMIT 1'
'UPDATE `items_users` SET `lastUPD` = "' . time() . '", `uid` = "-21' . $user['clan'] . '" WHERE `id` = "' . $pl['id'] . '"' 'UPDATE `items_users` SET `lastUPD` = "' . time() . '", `uid` = "-21' . $user['clan'] . '" WHERE `id` = "' . $pl['id'] . '"'
); );
mysql_query( mysql_query(
'INSERT INTO `clan_operations` (`clan`, `time`, `type`, `text`, `val`, `uid`) VALUES ("' . $res['id'] . '", "' . time() . '", "9", "' . $user['login'] . '", "' . $it_n['name'] . ' (x' . $col . ') Ид : [' . $pl['id'] . ']", "' . $user['id'] . '")' 'INSERT INTO `clan_operations` (`clan`, `time`, `type`, `text`, `val`, `uid`) VALUES ("' . $cl . '", "' . time() . '", "9", "' . $user['login'] . '", "' . $it_n['name'] . ' (x' . $col . ') Ид : [' . $pl['id'] . ']", "' . $user['id'] . '")'
); );
} }
} }

View File

@ -6,30 +6,24 @@ use Core\Config;
use Core\Db; use Core\Db;
use Helper\Mail; use Helper\Mail;
use PassGen; use PassGen;
use UserIp;
class Confirmation class Confirmation
{ {
/** /**
* Для однотипных писем с подтверждением. * Для однотипных писем с подтверждением.
* @param array $userinfo Данные из (User)->info. * @param array $userinfo Данные из (User)->info.
* @param mixed $value Новое значение * @param string $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, string $value, ?int $code = null): void
{ {
if ($type === 'pass2' && is_null($code)) {
self::pass2ByEmailCustom($userinfo, $value);
return;
}
$ip = UserIp::get(); $ip = UserIp::get();
$date = date('d.m.y H:i'); $date = date('d.m.y H:i');
$https = Config::get('https'); $https = Config::get('https');
$support = Config::get('support'); $support = Config::get('support');
$activationLink = 'https://' . $userinfo['city'] . Config::get('host') . $activationLink = Config::get('https') . "/confirm.php?id={$userinfo['id']}&code=$code";
"/confirm.php?id={$userinfo['id']}&code=$code";
$fulllogin = $userinfo['login'] . "[{$userinfo['level']}]"; $fulllogin = $userinfo['login'] . "[{$userinfo['level']}]";
Mail::send( Mail::send(
$userinfo['mail'], $userinfo['mail'],
@ -55,31 +49,7 @@ class Confirmation
); );
} }
private static function pass2ByEmailCustom(array $userinfo, string $pass2) public static function userRegistrationCodeByEmail(string $email, string $login): void
{
$ip = UserIp::get();
$fulllogin = $userinfo['login'] . "[{$userinfo['level']}]";
Mail::send(
$userinfo['mail'],
<<<HTML
<html lang="ru">
<head><title>Второй пароль от персонажа $fulllogin.</title></head>
<body>
Вами, с IP адреса - $ip, был установлен второй пароль в игре Бойцовский Клуб.<br>
Если это были не Вы, свяжитесь с администрацией сайта.<br><br>
------------------------------------------------------------------<br>
Ваш логин | {$userinfo['login']}<br>
Второй пароль | ' . $pass2 . '<br>
------------------------------------------------------------------<br>
<br><br>Желаем Вам приятной игры.<br><br><i>Администрация</i>
</body>
HTML,
"Второй пароль от персонажа $fulllogin"
);
}
public static function userRegistrationCodeByEmail(string $email, string $login)
{ {
$code = PassGen::intCode(4); $code = PassGen::intCode(4);
Db::sql('insert into secure_code (email, code, time) values (?,?,unix_timestamp())', [$email, $code]); Db::sql('insert into secure_code (email, code, time) values (?,?,unix_timestamp())', [$email, $code]);

View File

@ -113,7 +113,7 @@ class InfoBox
$lvar = $this->getInfoItemInfo($pl, $td); $lvar = $this->getInfoItemInfo($pl, $td);
if (isset($sn['items_img'][$tp_img[$pl['inOdet']]])) { if (isset($tp_img[$pl['inOdet']], $sn['items_img'][$tp_img[$pl['inOdet']]])) {
$uimg = 'rimg/r' . $sn['items_img'][$tp_img[$pl['inOdet']]]; $uimg = 'rimg/r' . $sn['items_img'][$tp_img[$pl['inOdet']]];
} else { } else {
$uimg = 'i/items/' . $pl['img']; $uimg = 'i/items/' . $pl['img'];
@ -469,7 +469,7 @@ class InfoBox
if ($u['banned'] > 0) { if ($u['banned'] > 0) {
$pb .= '<div style="margin:0 2px 0 2px; color: red; background-color: #fae0e0;"><strong>Персонаж заблокирован</strong></div>'; $pb .= '<div style="margin:0 2px 0 2px; color: red; background-color: #fae0e0;"><strong>Персонаж заблокирован</strong></div>';
} }
if ($u['allLock'] > time()) { if (isset($u['allLock']) && $u['allLock'] > time()) {
$pb .= '<div style="margin:0 2px 0 2px; color: red; background-color: #fae0e0;"><strong>Временный запрет передач!</strong></div>'; $pb .= '<div style="margin:0 2px 0 2px; color: red; background-color: #fae0e0;"><strong>Временный запрет передач!</strong></div>';
} }

View File

@ -211,4 +211,9 @@ class ItemsModel
} }
return $rt; return $rt;
} }
public static function addIznos(int $itemId): void
{
Db::sql('update items_users set iznosNOW = iznosNOW + 1 where id = ?', [$itemId]);
}
} }

View File

@ -57,28 +57,5 @@ class Password
} }
return $this->info['pass']; return $this->info['pass'];
} }
public function changeSecond(?int $passLength): array
{
if (in_array($passLength, [4, 6, 8])) {
$query = 'update users set pass2 = ? where id = ?';
$pass2 = PassGen::intCode($passLength);
$args = [
password_hash($pass2, PASSWORD_DEFAULT),
$this->info['id'],
];
Confirmation::byEmail($this->info, 'pass2', $pass2);
$hash = $args[0];
} else {
$query = 'update users set pass2 = default where id = ?';
$args = [$this->info['id']];
}
Db::sql($query, $args);
return [
'pass2' => $pass2 ?? '',
'hash' => $hash ?? null,
];
}
} }

View File

@ -57,12 +57,6 @@ class Register
'effects' => [8, 20, 25, 37, 38, 283, 296, 412, 472], 'effects' => [8, 20, 25, 37, 38, 283, 296, 412, 472],
], ],
]; ];
private array $restrictedLogins = [
'ангел', 'angel', 'администрация', 'administration', 'Комментатор',
'Мироздатель', 'Мусорщик', 'Падальщик', 'Повелитель',
'Архивариус', 'Пересмешник', 'Волынщик', 'Лорд Разрушитель',
'Милосердие', 'Справедливость', 'Искушение', 'Вознесение',
];
public function hasGoodEmail(string $email): bool public function hasGoodEmail(string $email): bool
{ {
@ -141,40 +135,30 @@ class Register
public function hasGoodLogin(string $login): bool public function hasGoodLogin(string $login): bool
{ {
$isRestricted = in_array($login, $this->restrictedLogins); $validator = (new \Validator\Login())->setLogin($login);
$isRegistered = Db::getValue('select count(*) from users where login = ?', [$login]); if (!$validator->check()) {
//Бывшие в употреблении логины. Дичь, но ладно. $this->error = match ($validator->getErrorCode()) {
$wasRegistered = Db::getValue('select count(*) from lastnames where login = ?', [$login]); 1 => 'Логин ' . $login . ' уже занят, выберите другой.',
$login = str_replace(' ', ' ', $login); 2 => 'В логине разрешено использовать только буквы одного алфавита русского или английского. Нельзя смешивать.',
if (mb_strlen($login) > 20) { 3 => 'Логин должен содержать не менее ' . $validator::LENGTH['min'] . ' символов.',
$this->error = 'Логин должен содержать не более 20 символов.'; 4 => 'Логин должен содержать не более ' . $validator::LENGTH['max'] . ' символов.',
} 5 => 'Не более двух разделителей одновременно (пробел, тире, нижнее подчеркивание).',
if (mb_strlen($login) < 4) { 6 => 'В логине используются запрещённые символы.',
$this->error = 'Логин должен содержать не менее 4 символов.'; };
}
if ($this->hasMixedLatCur($login)) {
$this->error = 'В логине разрешено использовать только буквы одного алфавита русского или английского. Нельзя смешивать.';
}
if (substr_count($login, ' ') + substr_count($login, '-') + substr_count($login, '_') > 2) {
$this->error = 'Не более двух разделителей одновременно (пробел, тире, нижнее подчеркивание).';
}
if (!empty($this->error)) {
$this->error .= '<br>Пример правильного никнейма: Петя Убиватор, Коля, xalop.<br>Пример неправильного никнейма: )))), kolя)=-/.'; $this->error .= '<br>Пример правильного никнейма: Петя Убиватор, Коля, xalop.<br>Пример неправильного никнейма: )))), kolя)=-/.';
} } else {
if ($isRegistered || $wasRegistered || $isRestricted) { $login = $validator->get();
$this->error = 'Логин ' . $login . ' уже занят, выберите другой.'; $isRegistered = Db::getValue('select count(*) from users where login = ?', [$login]);
//Бывшие в употреблении логины. Дичь, но ладно.
$wasRegistered = Db::getValue('select count(*) from lastnames where login = ?', [$login]);
if ($isRegistered || $wasRegistered) {
$this->error = 'Логин ' . $login . ' уже занят, выберите другой.';
}
} }
return !$this->error; return !$this->error;
} }
public function hasMixedLatCur(string $txt): bool
{
$en = preg_match("/^(([0-9A-z -])+)$/iu", $txt);
$ru = preg_match("/^([а-яёіїє\s\d]*)$/iu", $txt);
return ($ru && $en) || (!$ru && !$en);
}
private function setCookies($login): void private function setCookies($login): void
{ {
setcookie('login', 1, 1, '/', Config::get('host'), true); setcookie('login', 1, 1, '/', Config::get('host'), true);

View File

@ -124,6 +124,54 @@ class Stats
]; ];
} }
public static function saveBattleStats(array $stats, int $id): void
{
if (!isset(
$stats['hpnow'],
$stats['mpNow'],
$stats['tactic1'],
$stats['tactic2'],
$stats['tactic3'],
$stats['tactic4'],
$stats['tactic5'],
$stats['tactic6'],
$stats['tactic7'],
$stats['enemy'],
$stats['battle_yron'],
$stats['battle_exp'],
$stats['last_hp'],
$stats['priems_z'],
)
) {
return;
}
Db::sql(
'update stats set hpNow = ?,mpNow = ?,
tactic1 = ?,tactic2 = ?,tactic3 = ?,tactic4 = ?,tactic5 = ?,tactic6 = ?,tactic7 = ?,
enemy = ?,battle_yron = ?,last_hp = ?,battle_exp = ?,priems_z = ?
where id = ?',
[
$stats['hpnow'],
$stats['mpNow'],
$stats['tactic1'],
$stats['tactic2'],
$stats['tactic3'],
$stats['tactic4'],
$stats['tactic5'],
$stats['tactic6'],
$stats['tactic7'],
$stats['enemy'],
$stats['battle_yron'],
$stats['battle_exp'],
$stats['last_hp'],
$stats['priems_z'],
$id,
]
);
}
public function getStats(int|array|null $uid = null, $i1 = 0, $reimg = false, $btl_cache = false): array public function getStats(int|array|null $uid = null, $i1 = 0, $reimg = false, $btl_cache = false): array
{ {
$u = match (true) { $u = match (true) {
@ -205,6 +253,7 @@ class Stats
$noeffectbattle = false; $noeffectbattle = false;
if ($u['battle'] > 0) { if ($u['battle'] > 0) {
$noeffectbattle = (bool)Db::getValue("select 1 from battle_actions where uid = ? and vars = 'noeffectbattle1' and btl = ? limit 1", [$u['id'], $u['battle']]); $noeffectbattle = (bool)Db::getValue("select 1 from battle_actions where uid = ? and vars = 'noeffectbattle1' and btl = ? limit 1", [$u['id'], $u['battle']]);
$st['team'] = $u['team'];
} }
//Характеристики от эффектов //Характеристики от эффектов
@ -293,9 +342,6 @@ class Stats
$st['m19'] += (int)($st['s3'] * 0.03); $st['m19'] += (int)($st['s3'] * 0.03);
//Бонусы комплектов //Бонусы комплектов
if (isset($coms['new']) && is_iterable($coms['new'])) { if (isset($coms['new']) && is_iterable($coms['new'])) {
foreach ($coms['new'] as $complect) { foreach ($coms['new'] as $complect) {
@ -477,8 +523,8 @@ class Stats
/** Собираем динамически создаваемые параметры. Если ключа нет - создаём. /** Собираем динамически создаваемые параметры. Если ключа нет - создаём.
* @param string $key * @param string $key
* @param int $value * @param int $value
* @param array $st * @param array $st
* @return void * @return void
*/ */
private function addKeyIfNotExist(string $key, int $value, array &$st): void private function addKeyIfNotExist(string $key, int $value, array &$st): void
@ -493,7 +539,7 @@ class Stats
/** /**
* Добавляет бонусы к статам игрока. * Добавляет бонусы к статам игрока.
* Генерирует переменную User:class->stats['items'], где лежат одетые предметы. * Генерирует переменную User:class->stats['items'], где лежат одетые предметы.
* @param int $uid * @param int $uid
* @param array $st * @param array $st
* @param array $s_v * @param array $s_v
* @param array $baseStats * @param array $baseStats
@ -1081,6 +1127,10 @@ class Stats
0 as finished from rep where id = ?', [$id] 0 as finished from rep where id = ?', [$id]
); );
if (empty($finishedDungeons)) {
return;
}
//Бонус за количество полностью вырытых пещер. //Бонус за количество полностью вырытых пещер.
if (isset($st['m10'])) { if (isset($st['m10'])) {
$st['m10'] += 10 * $finishedDungeons; $st['m10'] += 10 * $finishedDungeons;
@ -1133,52 +1183,4 @@ class Stats
} }
unset($st['level'], $st['hpnow'], $st['mpnow'], $st['hpall'], $st['mpall']); unset($st['level'], $st['hpnow'], $st['mpnow'], $st['hpall'], $st['mpall']);
} }
public static function saveBattleStats(array $stats, int $id): void
{
if (!isset(
$stats['hpnow'],
$stats['mpNow'],
$stats['tactic1'],
$stats['tactic2'],
$stats['tactic3'],
$stats['tactic4'],
$stats['tactic5'],
$stats['tactic6'],
$stats['tactic7'],
$stats['enemy'],
$stats['battle_yron'],
$stats['battle_exp'],
$stats['last_hp'],
$stats['priems_z'],
)
) {
return;
}
Db::sql(
'update stats set hpNow = ?,mpNow = ?,
tactic1 = ?,tactic2 = ?,tactic3 = ?,tactic4 = ?,tactic5 = ?,tactic6 = ?,tactic7 = ?,
enemy = ?,battle_yron = ?,last_hp = ?,battle_exp = ?,priems_z = ?
where id = ?',
[
$stats['hpnow'],
$stats['mpNow'],
$stats['tactic1'],
$stats['tactic2'],
$stats['tactic3'],
$stats['tactic4'],
$stats['tactic5'],
$stats['tactic6'],
$stats['tactic7'],
$stats['enemy'],
$stats['battle_yron'],
$stats['battle_exp'],
$stats['last_hp'],
$stats['priems_z'],
$id,
]
);
}
} }

View File

@ -0,0 +1,67 @@
<?php
namespace Validator;
class Login
{
private const RESTRICTED = [
'ангел', 'angel', 'администрация', 'administration', 'Комментатор',
'Мироздатель', 'Мусорщик', 'Падальщик', 'Повелитель',
'Архивариус', 'Пересмешник', 'Волынщик', 'Лорд Разрушитель',
'Милосердие', 'Справедливость', 'Искушение', 'Вознесение',
];
public const LENGTH = ['min' => 4, 'max' => 16];
protected readonly string $login;
private int $errorcode = 0;
public function getErrorCode(): int
{
return $this->errorcode;
}
public function setLogin(string $login): self
{
$login = preg_replace('!\s+!', ' ', $login); // remove inner spaces
$login = trim($login); // remove outer spaces
$this->login = $login;
return $this;
}
public function get(): string
{
return $this->check() ? $this->login : '';
}
public function check(): bool
{
if (!$this->isAllowed()) {
$this->errorcode = 1;
} elseif ($this->isMixed()) {
$this->errorcode = 2;
} elseif (mb_strlen($this->login) < self::LENGTH['min']) {
$this->errorcode = 3;
} elseif (mb_strlen($this->login) > self::LENGTH['max']) {
$this->errorcode = 4;
} elseif (substr_count($this->login, ' ') + substr_count($this->login, '-') + substr_count($this->login, '_') > 2) {
$this->errorcode = 5;
} elseif (strpos("!@#$%^&*()\+|/'\"", $this->login) || empty($this->login)) {
$this->errorcode = 6;
}
return $this->errorcode === 0;
}
private function isAllowed(): bool
{
$d = implode('|', self::RESTRICTED);
$pattern = "/\b($d)\b/iu";
return !preg_match($pattern, $this->login);
}
private function isMixed(): bool
{
$en = preg_match("/^(([0-9A-z -])+)$/iu", $this->login);
$ru = preg_match("/^([а-яёіїє\s\d]*)$/iu", $this->login);
return ($ru && $en) || (!$ru && !$en);
}
}

65
adminion/oltest.js Normal file
View File

@ -0,0 +1,65 @@
const img = '//img.new-combats.com/i';
const gett = async () => {
let response = await fetch('/api/onlinelist.php');
if (response.ok) {
document.getElementById('onlinelist').innerHTML = '';
const list = await response.json();
list.forEach((user) => {
console.log(user);
document.getElementById('onlinelist').insertAdjacentHTML('beforeend', `${ol.makelogin(user)}<br>`);
});
} else {
document.getElementById('onlinelist').insertAdjacentHTML('beforeend', `Все ушли.<br>`);
}
};
window.addEventListener('load', () => {
const fetchInterval = 10000; // 10 секунд.
gett;
//(get)(); // почему get; или get(); - неправильно?? 🤬😭
setInterval(gett, fetchInterval);
});
ol = {
tochat (login) {
const input = document.getElementById('tochat');
if (input.value === `private [${login}]`) {
return;
}
if (input.value === `to [${login}]`) {
input.value = `private [${login}]`;
return;
}
input.value = `to [${login}]`;
},
makelogin ({id, login, level, align, clan, inbattle, isadmin}) {
let style = '';
if (isadmin) {
//align = 2.9;
style = `color: crimson;`;
}
if (!level || level < 0 || level > 21 && !isadmin || typeof level !== 'number') {
level = '??';
}
let inficon = `<a href="/info/${id}" target="_blank"><img src="${img}/inf.gif" alt="Информация про ${login}"></a>`;
let html = `<span style="${style}; cursor: pointer;" onclick="ol.tochat('${login}');">${login}[${level}]</span>` + inficon;
if (clan) {
html = `<img src="${img}/clan/${clan}.gif" alt="Клан"> ` + html;
}
if (align) {
html = `<img src="${img}/align/align${align}.gif" alt="Склонность"> ` + html;
}
let battleyes = '', battlealt = '';
if (inbattle) {
battleyes = 1;
battlealt = ' (персонаж в поединке)'
}
html = `<img src="${img}/lock${battleyes}.gif" alt="Приват${battlealt}" onclick="ol.tochat('${login}')">` + html;
return html;
}
};

22
adminion/onlinelist.php Normal file
View File

@ -0,0 +1,22 @@
<?php
$list = [
['id' => 1, 'login' => 'Paladin', 'align' => 1.9, 'level' => 4],
['id' => 2, 'login' => 'ClanUser', 'clan' => 100, 'level' => 5],
['id' => 3, 'login' => 'AlignClanUser', 'align' => 23, 'clan' => 120, 'level' => 'text'],
['id' => 4, 'login' => 'User', 'level' => -1],
['id' => 5, 'login' => 'UserInBattle', 'battle' => true, 'level' => 100500],
['id' => 6, 'login' => 'Admin', 'battle' => true, 'admin' => true],
];
?>
<!DOCTYPE html>
<html lang="ru">
<link rel="stylesheet" href="../i/main.css">
<title>onlinelist</title>
<script src="oltest.js"></script>
<script>
const onlinelist = JSON.parse('<?= json_encode($list) ?>');
</script>
<div id="onlinelist"></div>
<label><input id="tochat"> типа, поле ввода в чат (для отладки клика по логину)</label>

95
adminion/priems.php Normal file
View File

@ -0,0 +1,95 @@
<?php
use Core\Db;
use Helper\Conversion;
ini_set('xdebug.var_display_max_depth', 10);
ini_set('xdebug.var_display_max_children', 256);
ini_set('xdebug.var_display_max_data', 1024);
require_once '../_incl_data/autoload.php';
class ShowPriems
{
private array $names = [];
private array $parameters = [];
public function __construct() {
foreach (Db::getRows('select sys_name, name from const_stats') as $nrow) {
$this->names[$nrow['sys_name']] = $nrow['name'];
}
// Несовпадения по именам.
$this->names['lvl'] = $this->names['level'];
$this->printAll();
$this->printUnknown();
}
private function printer(array $data, string $title): string
{
$result = '';
foreach ($data as $k=>$v) {
if ($k === array_key_first($data)) {
$result .= "<br><b>$title</b>: ";
}
$result .= $this->namer($k, $v);
}
return $result;
}
private function printAll(): void
{
foreach (Db::getRows('select name, info, date2, date3, id, tr from priems order by name') as $prow) {
$d2 = Conversion::dataStringToArray($prow['date2']);
$d3 = Conversion::dataStringToArray($prow['date3']);
$tr = Conversion::dataStringToArray($prow['tr']);
$d2s = $this->printer($d2, 'date2');
$d3s = $this->printer($d3, 'date3');
$trs = $this->printer($tr, 'Требуется');
$dallk = array_flip(array_keys(array_merge($d2, $d3, $tr)));
$this->parameters = array_merge($dallk, $this->parameters);
echo "<div><b>{$prow['name']}</b> id:{$prow['id']}<br><i>{$prow['info']}</i> $trs $d2s $d3s</div>";
}
}
private function namer($k, $v): string
{
return match (true) {
$this->names[$k] => "<br>$this->names[$k] = $v",
str_starts_with($k, 'add_') && $this->names[str_replace('add_', '', $k)] => "<br>{$this->names[str_replace('add_', '', $k)]} = $v",
str_starts_with($k, 'tr_') && $this->names[str_replace('tr_', '', $k)] => "<br>{$this->names[str_replace('tr_', '', $k)]} = $v",
default => "<br><span style='background-color: lavender; color: crimson;'>$k = $v</span>",
};
}
private function printUnknown(): void
{
$sorted = [];
foreach ($this->parameters as $pa=>$va) {
if ($this->names[str_replace('add_', '', $pa)] || $this->names[str_replace('tr_', '', $pa)]) {
continue;
}
$sorted[] = $pa;
}
echo '<hr>Неизвестные параметры:<br>';
foreach (array_chunk($sorted, 10) as $re) {
echo implode(', ', $re) . '<br>';
}
}
}
echo <<<HTML
<style>
@import url('https://fonts.googleapis.com/css2?family=JetBrains+Mono&display=swap');
body {font-family: 'JetBrains Mono', monospace; font-size: small; background-color: lavender;}
hr {border: 1px solid darkgreen;}
i {color: dimgrey;}
div {margin: 10px 0; padding: 4px; background-color: ghostwhite;}
div > b:first-child {margin-left: 5px; color: darkslategrey;}
div > b:first-child:before {content: '⭕ '}
</style>
HTML;
$np = new ShowPriems();

18
adminion/sms.php Normal file
View File

@ -0,0 +1,18 @@
<?php
use Core\Db;
use Helper\Table;
if (!defined('GAME_VERSION')) {
require_once '_incl_data/autoload.php';
}
$users = Db::getRows('select users.id, money, money2 from users inner join stats on users.id = stats.id where `real` > 0 and banned = 0 and bot = 0 order by id desc');
$tbl = [['Логин', 'Стоимость вещей кр', 'Стоимость вещей екр', 'Всего кр с учётом вещей', 'Всего екр с учётом вещей']];
foreach ($users as $user) {
$itemsprices = Db::getRow('select sum(`1price`) as sumkr, sum(`2price`) as sumekr from items_users where uid = ?', [$user['id']]);
$allkr = $user['money'] + $itemsprices['sumkr'];
$allekr = $user['money2'] + $itemsprices['sumekr'];
$tbl[] = [User::getLogin($user['id']), $itemsprices['sumkr'] ?? 0, $itemsprices['sumekr'] ?? 0, $allkr, $allekr];
}
echo Table::get($tbl);

53
adminion/test.php Normal file
View File

@ -0,0 +1,53 @@
<?php
use Battle\Fighter;
use Core\Db;
require_once $_SERVER['DOCUMENT_ROOT'] . '/_incl_data/autoload.php';
$a = ['foo' => 'eta', 'bar' => 'bingo', 'baz' => 'quatro', 'mill' => 'buratino erra stupido'];
\Core\Debug::x();
//$f1 = new Fighter(27319412, 4);
$f2 = new Fighter(27205347, 2);
//echo $f1;
echo $f2;
//var_dump($f1);
$u = User::start(27205347);
var_dump($u->stats['items'], $u->stats);
?>
<!--<div id="test"></div>
<div id="app">{{ message }}</div>
-->
<script type="module">
const a = <?= json_encode(['bar' => 'bingo', 'baz' => 'quatro', 'mill' => 'buratino erra stupido']) ?>;
if (a["mill"]) {
const div = document.getElementById('test');
if (a['bar']) {
div.className = a['bar'];
}
div.innerHTML = a["mill"];
document.body.append(div);
}
import { createApp, ref } from 'https://unpkg.com/vue@3/dist/vue.esm-browser.js'
createApp({
setup() {
const message = ref('Hello Vue!')
return {
message
}
}
}).mount('#app')
</script>

View File

@ -1,102 +1,39 @@
<?php <?php
//Вызывается из ekr.php //Вызывается из ekr.php
define('GAME', true); //fixme Технически это всратое API и ему самое место в API.
use Core\Db;
use Validator\Login;
const GAME = true;
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');
if (!isset($_GET['login'])) { if (!isset($_GET['login'])) {
return; return;
}// }
$_GET['login'] = htmlspecialchars($_GET['login'], null); $_GET['login'] = htmlspecialchars($_GET['login'], null);
//
$bad = [
'Мусорщик' => 1,
'Мироздатель' => 1,
];
//
function en_ru($txt)
{
$g = false;
$en = preg_match("/^(([0-9a-zA-Z _-])+)$/i", $txt);
$ru = preg_match("/^(([0-9а-яА-Я _-])+)$/i", $txt);
if (($ru && $en) || (!$ru && !$en)) {
$g = true;
}
return $g;
}
// $validator = new class extends Login {
function testBad($txt): bool private function exist(): bool
{ {
$white = '-_ 0123456789qwertyuiopasdfghjklzxcvbnmQWERTYUIOPASDFGHJKLZXCVBNMЁЙЦУКЕНГШЩЗХЪФЫВАПРОЛДЖЭЯЧСМИТЬБЮёйцукенгшщзхъфывапролджэячсмитьбю'; return Db::getValue('select count(login) from users where login = ?', [$this->login]) > 0;
$r = false; }
$i = 0;
while ($i != -1) { public function getstatus(): string
if (isset($txt[$i])) { {
$g = false; if ($this->exist()) {
$j = 0; return '<b style="color:red">Логин занят.</b>';
while ($j != -1) {
if (isset($white[$j])) {
if ($white[$j] == $txt[$i]) {
$g = true;
}
} else {
$j = -2;
}
$j++;
}
if ($g == false) {
$r = true;
}
} else {
$i = -2;
} }
$i++; if (parent::check()) {
return '<b style="color:green">Логин свободен!</b>';
}
return '<b style="color:red">Неверный логин.</b>';
} }
return $r; };
}
// echo $validator->setLogin($_GET['login'])->getstatus();
$login = mysql_fetch_array(
mysql_query(
'SELECT `id` FROM `users` WHERE `login` = "' . mysql_real_escape_string($_GET['login']) . '" LIMIT 1'
)
);
if (isset($login['id']) || isset($bad[$_GET['login']])) {
echo '<b style="color:red">Логин занят.</b>';
} else {
$true = true;
/* //todo Написать класс, который будет использоваться тут, в ekr.php, в _newanimal.php и в проверках при регистрации.
Логин может содержать от 4 до 16 символов, и состоять только из букв русского ИЛИ английского алфавита, цифр, символов '_', '-' и пробела. //todo При этом сюда стоит подтягивать наследование класса, в который просто добавляется проверка на exist() которая не нужна в других местах.
Логин не может начинаться или заканчиваться символами '_', '-' или пробелом. //todo function testBad($txt), function is_login($login), function en_ru($txt)
*/
$_GET['login'] = str_replace(' ', ' ', $_GET['login']);
$_GET['login'] = str_replace('%', ' ', $_GET['login']);
$_GET['login'] = str_replace('&nbsp;', ' ', $_GET['login']);
//
if (strlen($_GET['login']) > 16) {
$true = false;
} elseif (strlen($_GET['login']) < 4) {
$true = false;
} elseif (strripos($_GET['login'], ' ')) {
$true = false;
} elseif (substr($_GET['login'], 1) == ' ' || substr($_GET['login'], -1) == ' ') {
$true = false;
} elseif (substr($_GET['login'], 1) == '-' || substr($_GET['login'], -1) == '-') {
$true = false;
} elseif (substr($_GET['login'], 1) == '_' || substr($_GET['login'], -1) == '_') {
$true = false;
} elseif (testBad($_GET['login'])) {
$true = false;
} elseif (en_ru(str_replace('ё', 'е', str_replace('Ё', 'Е', $_GET['login'])))) {
$true = false;
}
//
if (!$true) {
echo '<b style="color:red">Неверный логин.</b>';
} else {
echo '<b style="color:green">Логин свободен!</b>';
}
}

View File

@ -1,3 +1,3 @@
<?php <?php
//茸茆矗纈<EFBFBD><EFBFBD> js/onlineList.js //Вызывается из js/onlineList.js
file_put_contents('audio/audio_' . time() . '.mp3', file_get_contents('php://input'), FILE_APPEND); file_put_contents('audio/audio_' . time() . '.mp3', file_get_contents('php://input'), FILE_APPEND);

1053
blago.php

File diff suppressed because it is too large Load Diff

View File

@ -1162,8 +1162,6 @@ if (!isset($_COOKIE['d1c'])) {
<?php <?php
if ($u->info['active'] != '' && $u->info['mail'] != 'No E-mail') { if ($u->info['active'] != '' && $u->info['mail'] != 'No E-mail') {
$yes = $u->testAction('`uid` = "' . $u->info['id'] . '" AND `vars` = "user_active_good" LIMIT 1', 1);
$yes2 = $u->testAction('`uid` = "' . $u->info['id'] . '" AND `vars` = "user_active_send" LIMIT 1', 1);
Db::sql('update stats set active = default where id = ?', [$u->info['id']]); Db::sql('update stats set active = default where id = ?', [$u->info['id']]);
} }
?> ?>

View File

@ -21,7 +21,6 @@ if ($uplogin != 'delete' && $utf8Login != 'delete' && $utf8Login2 != 'delete') {
if (!isset($clan['id'])) { if (!isset($clan['id'])) {
die( die(
'<html><head> '<html><head>
<meta http-equiv="Content-Language" content="ru"> <meta http-equiv="Content-Language" content="ru">
<meta http-equiv="X-UA-Compatible" content="IE=EmulateIE8" /> <meta http-equiv="X-UA-Compatible" content="IE=EmulateIE8" />
<TITLE>Произошла ошибка</TITLE></HEAD><BODY text="#FFFFFF"><p><font color=black> <TITLE>Произошла ошибка</TITLE></HEAD><BODY text="#FFFFFF"><p><font color=black>
@ -29,7 +28,6 @@ if (!isset($clan['id'])) {
<b><p><a href = "javascript:window.history.go(-1);">Назад</b></a> <b><p><a href = "javascript:window.history.go(-1);">Назад</b></a>
<HR> <HR>
<p align="right">(c) <a href="index.html">' . $c['title'] . '</a></p> <p align="right">(c) <a href="index.html">' . $c['title'] . '</a></p>
' . $c['counters'] . '
</body></html>' </body></html>'
); );
} }

156
ekr.php
View File

@ -4,6 +4,7 @@ use Core\Config;
use Core\Database; use Core\Database;
use Core\Db; use Core\Db;
use Model\EkrExchangeRates; use Model\EkrExchangeRates;
use Validator\Login;
if (!defined('GAME_VERSION')) { if (!defined('GAME_VERSION')) {
require_once '_incl_data/autoload.php'; require_once '_incl_data/autoload.php';
@ -431,142 +432,39 @@ if (isset($_POST['do']) && $_POST['do'] == 'newShadow') {
$day1 = round($day1def + $dc1, 2); $day1 = round($day1def + $dc1, 2);
$day2 = round($day2def + $dc2, 2); $day2 = round($day2def + $dc2, 2);
} elseif (isset($_POST['login'])) { } elseif (isset($_POST['login'])) {
// $newlogin = (new Login())->setLogin($_POST['login'])->get();
function en_ru($txt)
{
$g = false;
$en = preg_match("/^(([0-9a-zA-Z _-])+)$/i", $txt);
$ru = preg_match("/^(([0-9а-яА-Я _-])+)$/i", $txt);
if (($ru && $en) || (!$ru && !$en)) {
$g = true;
}
return $g;
}
// if (!empty($newlogin) && $u->info['login'] === $newlogin) {
function testBad($txt)
{
$white = '-_ 0123456789qwertyuiopasdfghjklzxcvbnmQWERTYUIOPASDFGHJKLZXCVBNMїЙЦУКЕНГШЩЗХЪФЫВАПРОЛДЖЭЯЧСМИТЬБЮїйцукенгшщзхъфывапролджэячсмитьбю';
$r = false;
$i = 0;
while ($i != -1) {
if (isset($txt[$i])) {
$g = false;
$j = 0;
while ($j != -1) {
if (isset($white[$j])) {
if ($white[$j] == $txt[$i]) {
$g = true;
}
} else {
$j = -2;
}
$j++;
}
if (!$g) {
$r = true;
}
} else {
$i = -2;
}
$i++;
}
return $r;
}
function is_login($login)
{
$r = true;
//
$login = htmlspecialchars($login, null);
//
$bad = [
'Мусорщик' => 1,
'Мироздатель' => 1,
];
//
$login_db = mysql_fetch_array(
mysql_query(
'SELECT `id` FROM `users` WHERE `login` = "' . mysql_real_escape_string($login) . '" LIMIT 1'
)
);
if (isset($login_db['id']) || isset($bad[$login])) {
$r = false;
} else {
$true = true;
//
/*
Логин может содержать от 4 до 16 символов, и состоять только из букв русского ИЛИ английского алфавита, цифр, символов '_', '-' и пробела.
Логин не может начинаться или заканчиваться символами '_', '-' или пробелом.
*/
//
$login = str_replace(' ', ' ', $login);
$login = str_replace('%', ' ', $login);
$login = str_replace('&nbsp;', ' ', $login);
//
if (strlen($login) > 16) {
$true = false;
} elseif (strlen($login) < 4) {
$true = false;
} elseif (strripos($login, ' ') == true) {
$true = false;
} elseif (substr($login, 1) == ' ' || substr($login, -1) == ' ') {
$true = false;
} elseif (substr($login, 1) == '-' || substr($login, -1) == '-') {
$true = false;
} elseif (substr($login, 1) == '_' || substr($login, -1) == '_') {
$true = false;
} elseif (testBad($login) == true) {
$true = false;
} elseif (en_ru(str_replace('ї', 'е', str_replace('ї', 'Е', $login))) == true) {
$true = false;
}
//
if ($true == false) {
$r = false;
} else {
$r = true;
}
}
return $r;
}
if ($u->info['login'] == $_POST['login']) {
$u->error = 'Выберите другой логин...'; $u->error = 'Выберите другой логин...';
} elseif ($u->info['money2'] < 25) { } elseif ($u->info['money2'] < 25) {
$u->error = 'Недостаточно средств.'; $u->error = 'Недостаточно средств.';
} else { } else {
$login = htmlspecialchars($_POST['login'], null); mysql_query(
if (is_login($login) == true) { 'INSERT INTO `lastnames` ( `uid`,`login`,`newlogin`,`time` ) VALUES (
mysql_query(
'INSERT INTO `lastnames` ( `uid`,`login`,`newlogin`,`time` ) VALUES (
"' . $u->info['id'] . '","' . $u->info['login'] . '","' . mysql_real_escape_string( "' . $u->info['id'] . '","' . $u->info['login'] . '","' . mysql_real_escape_string(
$login $newlogin
) . '","' . time() . '" ) . '","' . time() . '"
)' )'
); );
$u->info['login_last'] = $u->info['login']; $u->info['login_last'] = $u->info['login'];
$u->info['login'] = $login; $u->info['login'] = $newlogin;
$u->info['money2'] -= 25; $u->addEkr(-25);
//
mysql_query( mysql_query(
"UPDATE `items_users` SET `data` = replace( `data` , 'sudba=" . $u->info['login_last'] . "', 'sudba=" . mysql_real_escape_string( "UPDATE `items_users` SET `data` = replace( `data` , 'sudba=" . $u->info['login_last'] . "', 'sudba=" . mysql_real_escape_string(
$u->info['login'] $u->info['login']
) . "') WHERE `data` LIKE '%sudba=" . mysql_real_escape_string( ) . "') WHERE `data` LIKE '%sudba=" . mysql_real_escape_string(
$u->info['login_last'] $u->info['login_last']
) . "%' AND `uid` = '" . $u->info['id'] . "'" ) . "%' AND `uid` = '" . $u->info['id'] . "'"
); );
//
mysql_query( mysql_query(
'UPDATE `users` SET `login` = "' . mysql_real_escape_string( 'UPDATE `users` SET `login` = "' . mysql_real_escape_string(
$u->info['login'] $u->info['login']
) . '", `money2` = "' . $u->info['money2'] . '" WHERE `id` = "' . $u->info['id'] . '" LIMIT 1' ) . '" WHERE `id` = "' . $u->info['id'] . '" LIMIT 1'
); );
$u->error = 'Вы успешно сменили логин на &quot;' . $u->info['login'] . '&quot; перезайдите в игру с главной страницы.'; $u->error = 'Вы успешно сменили логин на &quot;' . $u->info['login'] . '&quot; перезайдите в игру с главной страницы.';
} else {
$u->error = 'Выберите другой логин...';
}
} }
} elseif (isset($_GET['buy_ekr'])) { } elseif (isset($_GET['buy_ekr'])) {
// //

430
enter.php
View File

@ -3,6 +3,8 @@
use Core\Config; use Core\Config;
use Core\Database; use Core\Database;
use Core\Db; use Core\Db;
use Core\TOTP;
use JetBrains\PhpStorm\NoReturn;
use User\Password; use User\Password;
use User\UserIp; use User\UserIp;
@ -15,43 +17,36 @@ require_once __DIR__ . DIRECTORY_SEPARATOR . '_incl_data/autoload.php';
Database::init(); Database::init();
define('IP', UserIp::get()); define('IP', UserIp::get());
$chat = new Chat(); $chat = new Chat();
$login = $_SESSION['login'] ?? '';
$password = '';
$otp = '';
if (isset($_GET['login'])) { if ($_SERVER['REQUEST_METHOD'] === 'POST') {
$_POST['login'] = $_GET['login']; if (isset($_POST['login'])) {
$_POST['pass'] = $_GET['pass']; $login = $_POST['login'];
$_POST['code'] = $_GET['code']; }
if (isset($_POST['password'])) {
$password = $_POST['password'];
}
if (isset($_POST['otp'])) {
$otp = $_POST['otp'];
}
} }
if (isset($_POST['psw'])) { #[NoReturn] function error($e): void
$_POST['pass'] = $_POST['psw'];
}
if (isset($_SESSION['login'])) {
$_POST['login'] = $_SESSION['login'];
$_POST['pass'] = $_SESSION['pass'];
}
function error($e)
{ {
die( $returnLink = Config::get('https');
' $html = <<<HTML
<link rel="stylesheet" href="error.css"> <link rel="stylesheet" href="error.css">
<div class="text-wrapper"> <div class="text-wrapper">
<div class="title" data-content="Ошибка"> <div class="title" data-content="Ошибка">Ошибка!!</div>
Ошибка!! <div class="subtitle">$e</div>
<div class="buttons"><a class="button" href="$returnLink">Вернуться назад</a></div>
</div> </div>
HTML;
<div class="subtitle"> exit($html);
' . $e . '
</div>
<div class="buttons">
<a class="button" href="' . Config::get('https') . '">Вернуться назад</a>
</div>
</div>
'
);
} }
$u = Db::getRow( $u = Db::getRow(
@ -60,259 +55,154 @@ $u = Db::getRow(
users.login, users.login,
auth, auth,
pass, pass,
pass2, totp,
users.city,
users.ip, users.ip,
ipreg, ipreg,
admin, admin,
online, online,
banned, banned,
host_reg,
timereg,
securetime,
users_delo.text as block_reason users_delo.text as block_reason
from users from users
left join users_delo on users.id = users_delo.uid left join users_delo on users.id = users_delo.uid
where users.login = ?', where users.login = ?',
[$_POST['login']] [$login]
); );
$auth = Db::getValue('select id from logs_auth where uid = ? and ip = ?', [$u['id'], IP]);
if (!isset($u['id'])) { if (empty($_SESSION['login'])) {
error('Логин "' . $_POST['login'] . '" не найден в базе.'); if (!isset($u['id'])) {
} elseif ($u['banned'] > 0) { error('Логин "' . $login . '" не найден в базе.');
$blockstr = "Персонаж <b>{$u['login']}</b> заблокирован."; } elseif ($u['banned'] > 0) {
$blockstr .= $u['block_reason'] ? "Причина блокировки: {$u['block_reason']}<br><br>" : '<br><br>'; $blockstr = "Персонаж <b>{$u['login']}</b> заблокирован.";
error($blockstr); $blockstr .= $u['block_reason'] ? "Причина блокировки: {$u['block_reason']}<br><br>" : '<br><br>';
} elseif (!Password::isGood($_POST['pass'], $u['pass'], $u['login'])) { error($blockstr);
error("Неверный пароль к персонажу {$u['login']}."); } elseif (!Password::isGood($password, $u['pass'], $u['login'])) {
Db::sql(
'insert into logs_auth (uid, ip, browser, type, time) values (?,?,?,3,unix_timestamp())',
[$u['id'], IP, $_SERVER['HTTP_USER_AGENT']]
);
} else {
//Второй пароль
if (!empty($u['pass2'])) {
$_SESSION['login'] = $_POST['login'];
$_SESSION['pass'] = $_POST['pass'];
$good2 = false;
$koko = '';
if (password_verify($_POST['code'], $u['pass2'])) {
$good2 = true;
unset($_SESSION['login'], $_SESSION['pass']);
} else {
if (isset($_POST['code'])) {
$koko = 'Неверный второй пароль<br>';
}
setcookie('login', '', time() - 60 * 60 * 24, '', Config::get('host'));
}
if ($koko) {
$koko = '<b style="color: red">' . $koko . '</b>';
}
if (!$good2) {
?>
<!Doctype html>
<HTML lang="ru">
<HEAD>
<link rel=stylesheet type="text/css">
<meta name="msapplication-config" content="browserconfig.xml"/>
<TITLE>Второй пароль</TITLE>
</HEAD>
<body style="background-color: #dfdfde;">
<H3>Запрос второго пароля к персонажу.</H3>
<?= $koko ?>
<div style="text-align: center">
<br>
<br>
<img id="pass" onClick="" width="295" src="i/pin/e0.png" alt="pass">
<br>
<br>
<img id="p1" onClick="" src="" alt="p1">
<img id="p2" onClick="" src="" alt="p2">
<img id="p3" onClick="" src="" alt="p3">
<br>
<img id="p4" onClick="" src="" alt="p4">
<img id="p5" onClick="" src="" alt="p5">
<img id="p6" onClick="" src="" alt="p6">
<br>
<img id="p7" onClick="" src="" alt="p7">
<img id="p8" onClick="" src="" alt="p8">
<img id="p9" onClick="" src="" alt="p9">
<br>
<img onClick="keypush(12);" src="i/pin/12.png" alt="back">
<img id="p0" name="image" onClick="" src="" alt="nan">
<img onClick="keypush(11);" src="i/pin/11.png" alt="ok">
<br>
</div>
</BODY>
<script src="//ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js"></script>
<script>
var dopass = '';
var tdopass = '';
var lenth = 0;
randomp();
function randomp() {
var ss = [];
var n = 0;
while (n < 10) {
ss[n] = n;
n++;
}
var i = 0;
var k = 0;
var m = 0;
var tmpp = 0;
while (i < 10) {
k = getRandomInt(10);
m = getRandomInt(10);
if (k != m) {
tmpp = ss[k];
ss[k] = ss[m];
ss[m] = tmpp;
i++;
}
}
n = 10;
while (n > -1) {
n = n - 1;
document.getElementById('p' + n).setAttribute("src", "i/pin/" + ss[n] + ".png");
document.getElementById('p' + n).setAttribute("onClick", "keypush(" + ss[n] + ");");
}
}
function getRandomInt(max) {
return Math.floor(Math.random() * Math.floor(max));
}
function keypush(n) {
if (n == 12) {
if (lenth > 0) {
dopass = '';
lenth = 0;
document.getElementById('pass').setAttribute("src", "i/pin/e" + lenth + ".png");
}
} else if (n == 11) {
var $_POST = <?= json_encode($_POST); ?>;
window.location.replace("/enter.php?code=" + dopass + "&login=" + $_POST['login'] + "&pass=" + $_POST['pass']);
} else {
if (lenth < 8) {
dopass = dopass + '' + n;
lenth++;
document.getElementById('pass').setAttribute("src", "i/pin/e" + lenth + ".png");
}
}
}
</script>
</HTML>
<?php
die();
}
}
if (!Db::getValue('select count(*) from stats where id = ?', [$u['id']])) {
Db::sql('insert into stats (id, stats) values (?,?)', [$u['id'], 's1=3|s2=3|s3=3|s4=3|rinv=40|m9=5|m6=10']);
}
if (!Db::getValue('select count(*) from online where uid = ?', [$u['id']])) {
Db::sql('insert into online (uid, timeStart) values (?,unix_timestamp())', [$u['id']]);
}
if (isset($_COOKIE['login'])) {
setcookie('login', '', time() - 60 * 60 * 24, '', Config::get('host'));
}
//мульты
if ($u['admin'] === 0) {
$ipm1 = Db::getValue(
'select ip from logs_auth where uid = ? and ip != ? order by id limit 1',
[$u['id'], $u['ip']]
);
$ppl = Db::getRows(
'select * from logs_auth where ip != ? and (ip = ? or ip = ? or ip = ? or ip = ? or ip = ?)',
['', $u['ip'], $ipm1, $u['ipreg'], IP, $_COOKIE['ip']]
);
foreach ($ppl as $item) {
$ml = Db::getValue(
'select id from mults where (uid = ? and uid2 = ?) or (uid = ? and uid2 = ?) limit 1',
[$item['uid'], $u['id'], $u['id'], $item['uid']]
);
if (!$ml && $item['ip'] !== '' && $item['ip'] !== '127.0.0.1') {
Db::sql('insert into mults (uid, uid2, ip) VALUES (?,?,?)', [$u['id'], $item['uid'], $item['ip']]);
}
}
}
if (isset($_COOKIE['ip']) && $_COOKIE['ip'] != IP) {
Db::sql( Db::sql(
'insert into logs_auth (uid, ip, browser, type, time) VALUES (?,?,?,1,unix_timestamp())', 'insert into logs_auth (uid, ip, browser, type, time) values (?,?,?,3,unix_timestamp())',
[$u['id'], $_COOKIE['ip'], $_SERVER['HTTP_USER_AGENT']] [$u['id'], IP, $_SERVER['HTTP_USER_AGENT']]
); );
error("Неверный пароль к персонажу {$u['login']}.");
} }
setcookie('login', $_POST['login'] ?? '', time() + 60 * 60 * 24 * 7, '', Config::get('host')); $_SESSION['login'] = $u['login'];
setcookie('ip', IP, time() + 60 * 60 * 24 * 150, ''); if (!empty($u['totp'])) {
$_SESSION['totp'] = new TOTP($u['totp']);
if ($u['online'] < time() - 520) {
$sp = Db::getRows('select room, city, login from users where online > unix_timestamp() - 600 and id in (select user from friends where friend = ?)', [$u['id']]);
foreach ($sp as $usr) {
$chatDto = new ChatMessage();
$chatDto->setRoom($usr['room']);
$chatDto->setCity($usr['city']);
$chatDto->setTo($usr['login']);
$chatDto->setText('Вас приветствует: <b>' . $u['login'] . '</b>.');
$chatDto->setType(6);
$chat->sendMsg($chatDto);
}
} }
$apu = '';
Db::sql('update dump set ver = 1, upd = 2 where uid = ?', [$u['id']]);
if (
$u['auth'] != md5($u['login'] . 'AUTH' . IP) ||
$_COOKIE['auth'] != md5($u['login'] . 'AUTH' . IP) ||
$u['auth'] == '' || $u['auth'] == '0'
) {
if (
$u['auth'] != '' &&
$u['auth'] != '0' &&
$u['ip'] != IP
) {
$cmsg = new ChatMessage();
$cmsg->setTo($u['login']);
$cmsg->setText('В предыдущий раз этим персонажем заходили с другого компьютера ' . date('d.m.Y H:i', $u['online']) . "(Предыдущий ip: %{$u['ip']})");
$cmsg->setType(6);
$chat->sendMsg($cmsg);
}
$apu = "auth = '" . md5($u['login'] . 'AUTH' . IP) . "',";
setcookie('auth', md5($u['login'] . 'AUTH' . IP), time() + 60 * 60 * 24 * 365, '', Config::get('host'));
}
$ipnew = IP;
Db::sql('insert into logs_auth (uid, ip, browser, time) values (?,?,?,unix_timestamp())', [
$u['id'], IP, $_SERVER['HTTP_USER_AGENT'],
]);
Db::sql("update users set $apu ip = ?, dateEnter = ?, online = unix_timestamp() where id = ?", [$ipnew, $_SERVER['HTTP_USER_AGENT'], $u['id']]);
$_SESSION['uid'] = $u['id'];
header('location: /bk');
exit();
} }
if (!empty($_SESSION['totp']) && !empty($_SESSION['login'])) {
if (empty($otp)) {
?>
<!doctype html>
<html lang="ru">
<head>
<title>Второй пароль</title>
</head>
<body>
<form method="post">
<label for="otp">Одноразовый код:</label><br>
<input name="otp" id="otp" minlength="6" maxlength="6" size="6" placeholder="000000" required><br>
<input type="submit">
</form>
</body>
</html>
<?php
exit();
}
if ($_SESSION['totp']->generate() !== $otp) {
unset($_SESSION['login'], $_SESSION['totp']);
error('Неверный одноразовый код!');
}
}
if (!Db::getValue('select count(*) from stats where id = ?', [$u['id']])) {
Db::sql('insert into stats (id, stats) values (?,?)', [$u['id'], 's1=3|s2=3|s3=3|s4=3|rinv=40|m9=5|m6=10']);
}
if (!Db::getValue('select count(*) from online where uid = ?', [$u['id']])) {
Db::sql('insert into online (uid, timeStart) values (?,unix_timestamp())', [$u['id']]);
}
if (isset($_COOKIE['login'])) {
setcookie('login', '', time() - 60 * 60 * 24, '', Config::get('host'));
}
//мульты
if ($u['admin'] === 0) {
$ipm1 = Db::getValue(
'select ip from logs_auth where uid = ? and ip != ? order by id limit 1',
[$u['id'], $u['ip']]
);
$ppl = Db::getRows(
'select * from logs_auth where ip != ? and (ip = ? or ip = ? or ip = ? or ip = ? or ip = ?)',
['', $u['ip'], $ipm1, $u['ipreg'], IP, $_COOKIE['ip']]
);
foreach ($ppl as $item) {
$ml = Db::getValue(
'select id from mults where (uid = ? and uid2 = ?) or (uid = ? and uid2 = ?) limit 1',
[$item['uid'], $u['id'], $u['id'], $item['uid']]
);
if (!$ml && $item['ip'] !== '' && $item['ip'] !== '127.0.0.1') {
Db::sql('insert into mults (uid, uid2, ip) VALUES (?,?,?)', [$u['id'], $item['uid'], $item['ip']]);
}
}
}
if (isset($_COOKIE['ip']) && $_COOKIE['ip'] != IP) {
Db::sql(
'insert into logs_auth (uid, ip, browser, type, time) VALUES (?,?,?,1,unix_timestamp())',
[$u['id'], $_COOKIE['ip'], $_SERVER['HTTP_USER_AGENT']]
);
}
setcookie('login', $_POST['login'] ?? '', time() + 60 * 60 * 24 * 7, '', Config::get('host'));
setcookie('ip', IP, time() + 60 * 60 * 24 * 150, '');
if ($u['online'] < time() - 520) {
$sp = Db::getRows('select room, login from users where online > unix_timestamp() - 600 and id in (select user from friends where friend = ?)', [$u['id']]);
foreach ($sp as $usr) {
$chatDto = new ChatMessage();
$chatDto->setRoom($usr['room']);
$chatDto->setTo($usr['login']);
$chatDto->setText('Вас приветствует: <b>' . $u['login'] . '</b>.');
$chatDto->setType(6);
$chat->sendMsg($chatDto);
}
}
$apu = '';
Db::sql('update dump set ver = 1, upd = 2 where uid = ?', [$u['id']]);
if (
$u['auth'] != md5($u['login'] . 'AUTH' . IP) ||
$_COOKIE['auth'] != md5($u['login'] . 'AUTH' . IP) ||
$u['auth'] == '' || $u['auth'] == '0'
) {
if (
$u['auth'] != '' &&
$u['auth'] != '0' &&
$u['ip'] != IP
) {
$cmsg = new ChatMessage();
$cmsg->setTo($u['login']);
$cmsg->setText('В предыдущий раз этим персонажем заходили с другого компьютера ' . date('d.m.Y H:i', $u['online']) . "(Предыдущий ip: %{$u['ip']})");
$cmsg->setType(6);
$chat->sendMsg($cmsg);
}
$apu = "auth = '" . md5($u['login'] . 'AUTH' . IP) . "',";
setcookie('auth', md5($u['login'] . 'AUTH' . IP), time() + 60 * 60 * 24 * 365, '', Config::get('host'));
}
$ipnew = IP;
Db::sql('insert into logs_auth (uid, ip, browser, time) values (?,?,?,unix_timestamp())', [
$u['id'], IP, $_SERVER['HTTP_USER_AGENT'],
]);
Db::sql("update users set $apu ip = ?, dateEnter = ?, online = unix_timestamp() where id = ?", [$ipnew, $_SERVER['HTTP_USER_AGENT'], $u['id']]);
$_SESSION['uid'] = $u['id'];
unset($_SESSION['login'], $_SESSION['totp']);
header('location: /bk');
exit();

View File

@ -1179,13 +1179,9 @@ function MM_jumpMenu(targ, selObj, restore) { //v3.0
<div id="footer"> <div id="footer">
<table width="100%" border="0" align="center" cellpadding="0" cellspacing="0"> <table width="100%" border="0" align="center" cellpadding="0" cellspacing="0">
<tr> <tr>
<td width="10%" scope="col"> <td width="10%" scope="col"></td>
<DIV> <?php
echo $c['counters']; ?> </DIV>
</td>
<td width="80%" scope="col"> <td width="80%" scope="col">
<div align="center"><?php <div align="center"><?= \Core\Config::getCopyright() ?></div>
echo $c['copyright']; ?></div>
</td> </td>
<td width="10%" scope="col">&nbsp;</td> <td width="10%" scope="col">&nbsp;</td>
</tr> </tr>

110
gate.php
View File

@ -1,110 +0,0 @@
<?php
define('GAME',true);
include_once('_incl_data/__config.php');
include_once('_incl_data/class/__db_connect.php');
if( isset($_GET['md5']) ) {
$_GET['in'] = 1;
}
if( isset($_GET['in']) ) {
$_GET['ref'] = 7;
$login = $_GET['login'];
$pass = $_GET['pass'];
$md5 = md5( 'GATE_IN_DATA::'.$_GET['login'].$_GET['pass'].$_GET['exp'].$_GET['align'].$_GET['clan_prava'].$_GET['bithday'].$_GET['clan'].$_GET['sex'].$_GET['win'].$_GET['lose'].$_GET['nich'] );
if( $md5 != $_GET['md5'] ) {
unset($_GET['in']);
}else{
echo 'Нельзя создать т.к. не верный ключ и данные!';
}
if( $_GET['exp'] > 300000 ) {
$_GET['exp'] = 300000;
}
if( $_GET['clan'] == 1 ) {
$_GET['clan'] = 0;
$_GET['align'] = 0;
$_GET['clan_prava'] = 0;
}
if( $_GET['clan'] > 1 ) {
$_GET['clan'] += 2;
}
$usr = mysql_fetch_array(mysql_query('SELECT * FROM `users` WHERE `login` = "'.mysql_real_escape_string($_GET['login']).'" LIMIT 1'));
if(isset($usr['id']) && isset($_GET['in'])) {
unset($_GET['in']);
setcookie('login',$_GET['login'], (time()+60*60*24*7) , '' , '.new-combats.com' );
setcookie('pass',$_GET['pass'], (time()+60*60*24*7) , '' , '.new-combats.com' );
setcookie('login',$_GET['login'], (time()+60*60*24*7) );
setcookie('pass',$_GET['pass'], (time()+60*60*24*7) );
header('location: /enter.php?login='.$_GET['login'].'&pass='.$_GET['pass'].'');
die();
}
}
if( isset($_GET['in']) ) {
//Создаем персонажа
if( (int)$_GET['ref'] > 0 ) {
mysql_query("UPDATE `users` SET `referals` = `referals` + 1 WHERE `id` = '".mysql_real_escape_string((int)$_GET['ref'])."' LIMIT 1");
}
$pass = md5($pass);
mysql_query('INSERT INTO `users` (`real`,`online`,`align`,`clan`,`clan_prava`,`win`,`lose`,`nich`,`sex`,`bithday`,`host_reg`,`pass`,`ip`,`ipreg`,`city`,`cityreg`,`room`,`timereg`) VALUES (
"1",
"'.time().'",
"'.mysql_real_escape_string($_GET['align']).'",
"'.mysql_real_escape_string($_GET['clan']).'",
"'.mysql_real_escape_string($_GET['clan_prava']).'",
"'.mysql_real_escape_string($_GET['win']).'",
"'.mysql_real_escape_string($_GET['lose']).'",
"'.mysql_real_escape_string($_GET['nich']).'",
"'.mysql_real_escape_string($_GET['sex']).'",
"'.mysql_real_escape_string($_GET['bithday']).'",
"'.mysql_real_escape_string(0+$_GET['ref']).'",
"'.mysql_real_escape_string($pass).'",
"'.mysql_real_escape_string(GetRealIpTest()).'",
"'.mysql_real_escape_string(GetRealIpTest()).'",
"capitalcity",
"capitalcity",
"0",
"'.time().'"
)');
$uid = mysql_insert_id();
if( $uid > 0 ) {
mysql_query('UPDATE `users` SET `login` = "'.mysql_real_escape_string($login).'" WHERE `id` = "'.$uid.'" LIMIT 1');
//Создаем статы персонажа
mysql_query("INSERT INTO `online` (`uid`,`timeStart`) VALUES ('".$uid."','".time()."')");
mysql_query("INSERT INTO `stats` (`id`,`stats`,`exp`) VALUES ('".$uid."','s1=3|s2=3|s3=3|s4=3|rinv=40|m9=5|m6=10','".mysql_real_escape_string($_GET['exp'])."')");
//мульты
$ipm1 = mysql_fetch_array(mysql_query('SELECT * FROM `logs_auth` WHERE `uid` = "'.mysql_real_escape_string($uid).'" AND `ip`!="'.mysql_real_escape_string(GetRealIpTest()).'" ORDER BY `id` ASC LIMIT 1'));
$ppl = mysql_query('SELECT * FROM `logs_auth` WHERE `ip`!="" AND (`ip` = "'.mysql_real_escape_string(GetRealIpTest()).'" OR `ip`="'.mysql_real_escape_string($ipm1['ip']).'" OR `ip`="'.mysql_real_escape_string($_COOKIE['ip']).'")');
while($spl = mysql_fetch_array($ppl))
{
$ml = mysql_fetch_array(mysql_query('SELECT `id` FROM `mults` WHERE (`uid` = "'.$spl['uid'].'" AND `uid2` = "'.$uid.'") OR (`uid2` = "'.$spl['uid'].'" AND `uid` = "'.$uid.'") LIMIT 1'));
if(!isset($ml['id']) && $spl['ip']!='' && $spl['ip']!='127.0.0.1')
{
mysql_query('INSERT INTO `mults` (`uid`,`uid2`,`ip`) VALUES ("'.$uid.'","'.$spl['uid'].'","'.$spl['ip'].'")');
}
}
mysql_query("INSERT INTO `logs_auth` (`uid`,`ip`,`browser`,`type`,`time`,`depass`) VALUES ('".$uid."','".mysql_real_escape_string(GetRealIpTest())."','".mysql_real_escape_string($_SERVER['HTTP_USER_AGENT'])."','1','".time()."','')");
//Обновяем таблицы
mysql_query("UPDATE `users` SET `online`='".time()."',`ip` = '".mysql_real_escape_string(GetRealIpTest())."' WHERE `uid` = '".$uid."' LIMIT 1");
if(!setcookie('login',$login, (time()+60*60*24*7) , '' , '.new-combats.com' ) || !setcookie('pass',$pass, (time()+60*60*24*7) , '' , '.new-combats.com' )) {
die('Ошибка сохранения cookie.');
}
header('location: /enter.php?login='.$_GET['login'].'&pass='.$_GET['pass'].'');
}
}
?>

View File

@ -6,11 +6,6 @@ if (!defined('GAME_VERSION')) {
require_once '_incl_data/autoload.php'; require_once '_incl_data/autoload.php';
} }
if (isset($_GET['time'])) {
echo time() . '<br>' . date('d.m.Y H:i:s', (int)$_GET['time']);
die();
}
header("Cache-Control: max-age=3600"); header("Cache-Control: max-age=3600");
?> ?>
<!DOCTYPE html> <!DOCTYPE html>
@ -30,6 +25,7 @@ header("Cache-Control: max-age=3600");
flex-direction: column; flex-direction: column;
margin-top: 50px; margin-top: 50px;
} }
hr.incontent { hr.incontent {
width: 32%; width: 32%;
border: 1px #1c1c1c solid; border: 1px #1c1c1c solid;
@ -43,7 +39,7 @@ header("Cache-Control: max-age=3600");
<label for="first-name">Ваш Никнейм</label><br> <label for="first-name">Ваш Никнейм</label><br>
<input type="text" id="first-name" name="login" autocomplete="username"><br> <input type="text" id="first-name" name="login" autocomplete="username"><br>
<label for="last-name">Ваш Пароль</label><br> <label for="last-name">Ваш Пароль</label><br>
<input type="password" id="last-name" name="psw" autocomplete="current-password"> <input type="password" id="last-name" name="password" autocomplete="current-password">
<p> <p>
<input type="submit" value="Войти в игру" class="btn btn-default"> <input type="submit" value="Войти в игру" class="btn btn-default">
</form> </form>

View File

@ -22,96 +22,95 @@ var eatk = 0;
var ggcode = '2014'; var ggcode = '2014';
var irn = 0; var irn = 0;
function magic_div(id, name, img, title) {
}
function testClearZone() { function testClearZone() {
if (top.slcbrc[4] == 0) { if (top.slcbrc[4] === 0) {
all_radio_off(); all_radio_off();
} }
} }
async function usepriem(id, t, img) { async function usepriem(id) {
if (t == 1) { irn++;
irn++; await $.post(`jx/battle/refresh.php?rnd=${ggcode}&irn=${irn}`, {
idlog: top.id_log,
usepriem: id,
useon: use_on_pers
}, function (data) {
$("#ref").html(data);
});
use_on_pers = 'none';
top.goSit(1);
}
async function useitem(id, use_item_on) {
irn++;
if (top.c.noEr === 0) {
top.c.noEr = 1;
clearTimeout(top.c.noErTmr);
top.c.noErTmr = setTimeout('top.c.noEr = 0;', 1000);
await $.post(`jx/battle/refresh.php?rnd=${ggcode}&irn=${irn}`, { await $.post(`jx/battle/refresh.php?rnd=${ggcode}&irn=${irn}`, {
idlog: top.id_log, idlog: top.id_log,
usepriem: id, useitem: id,
useon: use_on_pers useitemon: use_item_on
}, function (data) { }, function (data) {
$("#ref").html(data); $("#ref").html(data);
}); });
use_on_pers = 'none';
top.goSit(1);
return
} }
return alert('Not found'); return top.goSit(1);
}
async function useitem(id, t, use_item_on) {
if (t == 1) {
irn++;
if (top.c.noEr == 0) {
top.c.noEr = 1;
clearTimeout(top.c.noErTmr);
top.c.noErTmr = setTimeout('top.c.noEr = 0;', 1000);
await $.post(`jx/battle/refresh.php?rnd=${ggcode}&irn=${irn}`, {
idlog: top.id_log,
useitem: id,
useitemon: use_item_on
}, function (data) {
$("#ref").html(data);
});
}
return top.goSit(1);
}
return alert('Not found');
} }
function volna(id) { function volna(id) {
document.getElementById('volna').innerHTML = `Волна: ${id}`; document.getElementById('volna').innerHTML = `Волна: ${id}`;
} }
function change_radioKeys(id, cper) { function change_radioKeys(id = 0) {
var z = 0, t = 0, k = 0; let jo;
var i = 1, j = 1; let radio;
let z = 0, t = '';
let i = 1, j = 1;
while (i <= za) { while (i <= za) {
j = 1; j = 1;
jo = 0; jo = 0;
while (j <= 5) { while (j <= 5) {
var radio = document.getElementById(`atack_${i}_${j}`); radio = document.getElementById(`atack_${i}_${j}`);
if (radio) { if (radio) {
if (radio.className && radio.className == "radio_on") jo++; if (radio.className != null && radio.className === "radio_on") jo++;
} }
j++; j++;
} }
if (jo == 0 && z == 0) { if (jo === 0 && z === 0) {
z = i; z = i;
t = 'atack'; t = 'atack';
} }
i++; i++;
} }
if (z == 0) { if (z === 0) {
var i = 1, jo = 0; i = 1;
jo = 0;
while (i <= 5) { while (i <= 5) {
var radio = document.getElementById(`block_1_${i}`); radio = document.getElementById(`block_1_${i}`);
if (radio) { if (radio) {
if (radio.className && radio.className == "radio_on") jo++; if (radio.className != null && radio.className === "radio_on") jo++;
} }
i++; i++;
} }
if (jo == 0 && z == 0) { if (jo === 0 && z === 0) {
z = 1; z = 1;
t = 'block'; t = 'block';
} }
} }
if ((z == 0 || id == 0) && !cper) { if (z === 0 || id === 0) {
all_radio_off(); all_radio_off();
refleshPoints(); refleshPoints();
} }
if (z > 0) { if (z > 0) {
if (id == 0) { if (id === 0) {
//автовыставление //автовыставление
} else change_radio(z, id, t, 1) } else change_radio(z, id, t, 1)
} }
@ -119,15 +118,15 @@ function change_radioKeys(id, cper) {
function change_radio(id, zone, type, r) { function change_radio(id, zone, type, r) {
radio_off(id, zone, type); radio_off(id, zone, type);
var radio = document.getElementById(`${type}_${id}_${zone}`); const radio = document.getElementById(`${type}_${id}_${zone}`);
if (radio.className == "radio_on" && r == 0) { if (radio.className === "radio_on" && r === 0) {
radio.className = "radio_off"; radio.className = "radio_off";
if (type == 'atack') zas[id] = 0; if (type === 'atack') zas[id] = 0;
else zbs[id] = 0; else zbs[id] = 0;
} else { } else {
radio.className = "radio_on"; radio.className = "radio_on";
if (type == 'atack') zas[id] = zone; if (type === 'atack') zas[id] = zone;
else zbs[id] = zone; else zbs[id] = zone;
} }
refleshPoints(); refleshPoints();
@ -139,17 +138,17 @@ function tactic(id, value) {
function refleshPoints() { function refleshPoints() {
clearZone(); clearZone();
var i = 5; let i = 5;
while (i >= 1) { while (i >= 1) {
if (zas[i] == 0) lineAtack(i); if (zas[i] === 0) lineAtack(i);
i--; i--;
} }
if (zbs[1] == 0) lineBlock(); if (zbs[1] === 0) lineBlock();
} }
function lineAtack(id) { function lineAtack(id) {
nos++; nos++;
var j = 1; let j = 1;
while (j <= 5) { while (j <= 5) {
document.getElementById(`zatack${id}_${j}`).className = 'zoneCh_yes'; document.getElementById(`zatack${id}_${j}`).className = 'zoneCh_yes';
j++; j++;
@ -158,7 +157,7 @@ function lineAtack(id) {
function lineBlock() { function lineBlock() {
nos++; nos++;
var j = 1; let j = 1;
while (j <= 5) { while (j <= 5) {
document.getElementById(`zblock1_${j}`).className = 'zoneCh_yes'; document.getElementById(`zblock1_${j}`).className = 'zoneCh_yes';
j++; j++;
@ -167,16 +166,16 @@ function lineBlock() {
function clearZone() { function clearZone() {
nos = 0; nos = 0;
var i = 1; let i = 1;
while (i <= 5) { while (i <= 5) {
var j = 1; let j = 1;
while (j <= 5) { while (j <= 5) {
document.getElementById(`zatack${i}_${j}`).className = 'zoneCh_no'; document.getElementById(`zatack${i}_${j}`).className = 'zoneCh_no';
j++; j++;
} }
i++; i++;
} }
var i = 1; i = 1;
while (i <= 5) { while (i <= 5) {
document.getElementById(`zblock1_${i}`).className = 'zoneCh_no'; document.getElementById(`zblock1_${i}`).className = 'zoneCh_no';
i++; i++;
@ -184,9 +183,9 @@ function clearZone() {
} }
function select_atack(id, r) { function select_atack(id, r) {
var i = 5; let i = 5;
while (i >= 1) { while (i >= 1) {
if (zas[i] == 0) { if (zas[i] === 0) {
if (i <= za) sel_atack = i if (i <= za) sel_atack = i
} }
i--; i--;
@ -198,11 +197,11 @@ function select_atack(id, r) {
} }
function radio_off(id, zone, type) { function radio_off(id, zone, type) {
var i = 1; let i = 1;
while (i <= 5) { while (i <= 5) {
if (document.getElementById(`${type}_${id}_${i}`) && i != zone) { if (document.getElementById(`${type}_${id}_${i}`) && i !== zone) {
document.getElementById(`${type}_${id}_${i}`).className = "radio_off"; document.getElementById(`${type}_${id}_${i}`).className = "radio_off";
if (type == 'atack') zas[id] = 0; if (type === 'atack') zas[id] = 0;
else zbs[id] = 0; else zbs[id] = 0;
} }
i++; i++;
@ -210,9 +209,9 @@ function radio_off(id, zone, type) {
} }
function all_radio_off() { function all_radio_off() {
var i = 1; let i = 1;
while (i <= 5) { while (i <= 5) {
var j = 1; let j = 1;
while (j <= 5) { while (j <= 5) {
document.getElementById(`atack_${j}_${i}`).className = "radio_off"; document.getElementById(`atack_${j}_${i}`).className = "radio_off";
j++; j++;
@ -225,11 +224,11 @@ function all_radio_off() {
} }
function genZoneBlock() { function genZoneBlock() {
var i = 1; let i = 1;
while (i <= 5) { while (i <= 5) {
var j = 1; let j = 1;
while (j <= 3) { while (j <= 3) {
if (j == zb) { if (j === zb) {
document.getElementById(`txtb${i}_${j}`).style.display = ''; document.getElementById(`txtb${i}_${j}`).style.display = '';
} else { } else {
document.getElementById(`txtb${i}_${j}`).style.display = 'none'; document.getElementById(`txtb${i}_${j}`).style.display = 'none';
@ -241,9 +240,9 @@ function genZoneBlock() {
} }
function genZoneAtack() { function genZoneAtack() {
var i = 1; let i = 1;
while (i <= 5) { while (i <= 5) {
var j = 1; let j = 1;
while (j <= 5) { while (j <= 5) {
if (i <= za) { if (i <= za) {
document.getElementById(`zatack${i}_${j}`).style.display = ''; document.getElementById(`zatack${i}_${j}`).style.display = '';
@ -260,16 +259,13 @@ function genteam(team) {
document.getElementById('teams').innerHTML = team; document.getElementById('teams').innerHTML = team;
} }
var t057 = null; async function reflesh() {
var battle_end = 0;
async function reflesh(bl) {
irn++; irn++;
if (battleFinishData != -1) mainstatus(0); if (battleFinishData != -1) mainstatus(0);
if ((battle_end == 0 || bl != null) && battleFinishData == -1) { if (battleFinishData == -1) {
if (top.c.noEr == 0) { if (top.c.noEr === 0) {
top.c.noEr = 1; top.c.noEr = 1;
clearTimeout(top.c.noErTmr); clearTimeout(top.c.noErTmr);
top.c.noErTmr = setTimeout('top.c.noEr = 0;', 1000); top.c.noErTmr = setTimeout('top.c.noEr = 0;', 1000);
@ -286,20 +282,20 @@ async function reflesh(bl) {
$("#ref").html(data); $("#ref").html(data);
}); });
} }
if (g_iCount != 45) g_iCount = 45; if (g_iCount !== 45) g_iCount = 45;
} }
} }
function autobattle() { function autobattle() {
var i = 1; let i = 1;
while (i <= za) { while (i <= za) {
if (zas[i] == 0 || top.slcbrc[4] === 1) { if (zas[i] === 0 || top.slcbrc[4] === 1) {
zas[i] = Math.floor(Math.random() * 5 + 1); zas[i] = Math.floor(Math.random() * 5 + 1);
change_radio(i, zas[i], 'atack', 1); change_radio(i, zas[i], 'atack', 1);
} }
i++; i++;
} }
if (zbs[1] == 0 || top.slcbrc[4] === 1) { if (zbs[1] === 0 || top.slcbrc[4] === 1) {
zbs[1] = Math.floor(Math.random() * 5 + 1); zbs[1] = Math.floor(Math.random() * 5 + 1);
change_radio(1, zbs[1], 'block', 1); change_radio(1, zbs[1], 'block', 1);
} }
@ -341,30 +337,33 @@ async function atack() {
} }
var g_iCount = 45; var g_iCount = 45;
var tmr0057 = null; let tmr0057 = null;
// 1.1 // 1.1
function startCountdown() { function startCountdown() {
if (tmr0057 != null) clearTimeout(tmr0057); if (tmr0057 !== null) clearTimeout(tmr0057);
if ((g_iCount - 1) >= 0) { if ((g_iCount - 1) >= 0) {
g_iCount -= 1; g_iCount -= 1;
return tmr0057 = setTimeout('startCountdown()', 1000); return tmr0057 = setTimeout(startCountdown, 1000);
} }
reflesh(); reflesh();
return tmr0057 = setTimeout('startCountdown()', 1000); return tmr0057 = setTimeout(startCountdown, 1000);
} }
let img_battle = `<img src='https://${top.c.img}/i/battle/1.jpg' alt="Battle">`; let img_battle = `<img alt="" src='https://${top.c.img}/i/battle/1.jpg'>`;
function mainstatus(id) { function mainstatus(id) {
id = +id;
if (isNaN(id)) id = 0;
if (smnpty <= 0) { if (smnpty <= 0) {
document.getElementById('btn_down_img2').style.display = 'none'; $('#btn_down_img2').css({'display': 'none'});
} else { } else {
document.getElementById('btn_down_img2').style.display = ''; $('#btn_down_img2').css({'display': ''});
document.getElementById('btn_down_img2').title = `Смена противника (${smnpty})` $('#btn_down_img2').attr('title', `Смена противника (${smnpty})`);
} }
if (battleFinishData !== -1) { // Объявляется аж в Finish.php if (battleFinishData != -1) { // хуй знает че такое
document.getElementById('mainpanel2').style.display = ''; // 4 document.getElementById('mainpanel2').style.display = ''; // 4
document.getElementById('go_btn').style.display = 'none'; // 4 document.getElementById('go_btn').style.display = 'none'; // 4
document.getElementById('mainpanel').style.display = 'none'; // 4 document.getElementById('mainpanel').style.display = 'none'; // 4
@ -375,11 +374,9 @@ function mainstatus(id) {
document.getElementById('btn_down_img1').style.display = ''; // 2 document.getElementById('btn_down_img1').style.display = ''; // 2
document.getElementById('btn_down_img2').style.display = 'none'; // 2 document.getElementById('btn_down_img2').style.display = 'none'; // 2
document.getElementById('ref').style.textAlign = 'center'; document.getElementById("ref").innerHTML = `<center><font color='red'><b>${battleFinishData}</b></font></center>`;
document.getElementById('ref').style.color = 'red';
document.getElementById("ref").innerHTML = `<b>${battleFinishData}</b>`;
rand_img(); rand_img();
document.getElementById("player2").innerHTML = `<div style='margin-top:18px; text-align: right;'>${img_battle}</div>`; document.getElementById("player2").innerHTML = `<div style='margin-top:18px;' align='right'>${img_battle}</div>`;
document.getElementById('player2_login').style.display = 'none'; document.getElementById('player2_login').style.display = 'none';
} else if (id === 1) //Можно ударить противника ( доступный удар ) } else if (id === 1) //Можно ударить противника ( доступный удар )
{ {
@ -403,7 +400,7 @@ function mainstatus(id) {
document.getElementById('go_btn').style.display = 'none'; // 4 document.getElementById('go_btn').style.display = 'none'; // 4
document.getElementById('reflesh_btn').style.display = ''; // 3 document.getElementById('reflesh_btn').style.display = ''; // 3
rand_img(); rand_img();
document.getElementById("player2").innerHTML = `<div style='margin-top:18px; text-align: right;'>${img_battle}</div>`; document.getElementById("player2").innerHTML = `<div style='margin-top:18px;' align='right'>${img_battle}</div>`;
document.getElementById('player2_login').style.display = 'none'; document.getElementById('player2_login').style.display = 'none';
document.getElementById('btn_down_img1').setAttribute("onclick", "reflesht();"); document.getElementById('btn_down_img1').setAttribute("onclick", "reflesht();");
document.getElementById('reflesh_btn').setAttribute("class", "buttons btnnew btnnew2"); document.getElementById('reflesh_btn').setAttribute("class", "buttons btnnew btnnew2");
@ -424,94 +421,124 @@ function mainstatus(id) {
document.getElementById('btn_down_img1').style.display = ''; // 2 document.getElementById('btn_down_img1').style.display = ''; // 2
document.getElementById('btn_down_img2').style.display = 'none'; // 2 document.getElementById('btn_down_img2').style.display = 'none'; // 2
document.getElementById("ref").innerHTML = `<b style='color: red;'>Вы повержены. Ожидайте пока поединок завершат другие бойцы...</b>`; document.getElementById("ref").innerHTML = "<font color='red'><b>Вы повержены. Ожидайте пока поединок завершат другие бойцы...</b></font>";
document.getElementById("player2").innerHTML = `<div style='margin-top:18px; text-align: right;'>${img_battle}</div>`; document.getElementById("player2").innerHTML = `<div style='margin-top:18px;' align='right'>${img_battle}</div>`;
document.getElementById('player2_login').style.display = 'none'; document.getElementById('player2_login').style.display = 'none';
} }
if (document.getElementById('mainpanel').style.display !== 'none') { if (!document.getElementById('mainpanel').style.display) {
document.getElementById('mainpanel2').style.display = 'none'; document.getElementById('mainpanel2').style.display = 'none';
} }
top.goSit(1); top.goSit(1);
} }
function rand_img() { function rand_img() {
img_battle = `<img src='//img.new-combats.tech/i/battle/${(Math.floor(Math.random() * 44))}.jpg' alt="Battle">`; img_battle = `<img alt="" src='//img.new-combats.tech/i/battle/${(Math.floor(Math.random() * 29))}.jpg'>`;
} }
let fstlh = 0; var fstlh = 0;
var lsti = 0; var lsti = 0;
let lsthd = []; var lsthd = [];
var id_log_ar = []; var id_log_ar = [];
var id_log; var id_log;
var type_log = top.type_log; var type_log = top.type_log;
function add_log(id, foryou, text, hod_id, vars) { // Эта функция получает элемент по идентификатору из фрейма 'main'.
const getElementByIdInMainFrame = (id) => {
const frame = top.frames['main'];
if (!frame) {
console.error("Фрейм 'main' не найден!");
return null;
}
return frame.document.getElementById(id);
};
function add_log(id, text, hod_id, vars) {
const logsdiv = getElementByIdInMainFrame('battle_logg');
let hodlogdiv = getElementByIdInMainFrame(`battle_log_${hod_id}`);
const hodlogdiv7 = getElementByIdInMainFrame(`battle_log_${hod_id - 7}`);
const hodlogdiv25 = getElementByIdInMainFrame(`battle_log_${hod_id - 25}`);
const logid = getElementByIdInMainFrame(`log_id_${id}`);
if (top.des === 1) type_log = 0 if (top.des === 1) type_log = 0
else type_log = 1; else type_log = 1;
if (type_log === 1) { if (type_log === 1) {
chsee = 'chsee2';
text = looklogrep(text, vars); text = looklogrep(text, vars);
id_log_ar[id] = id; id_log_ar[id] = id;
id_log = id; id_log = id;
if (!top.frames['main'].document.getElementById(`battle_log_${hod_id}`) && hod_id !== 1) { if (!hodlogdiv && hod_id !== 1) {
if (fstlh === 0) fstlh = hod_id if (fstlh === 0) fstlh = hod_id
lsthd[lsti] = hod_id; lsthd[lsti] = hod_id;
lsti++; lsti++;
$(top.frames['main'].document.getElementById('battle_logg')).prepend(`<div style="padding-top:2px;padding-bottom:2px;" id="battle_log_'${hod_id}" class="battle_hod_style"></div>`); logsdiv.insertAdjacentHTML('afterbegin', `<div style="padding-top:2px;padding-bottom:2px;" id="battle_log_'${hod_id}" class="battle_hod_style"></div>`);
} else if (!top.frames['main'].document.getElementById(`battle_log_${hod_id}`)) { hodlogdiv = getElementByIdInMainFrame(`battle_log_${hod_id}`);
top.frames['main'].document.getElementById('battle_logg').innerHTML += `<div style="padding-top:2px;padding-bottom:2px;" id="battle_log_${hod_id}"></div>`; } else if (!hodlogdiv) {
logsdiv.insertAdjacentHTML('beforeend', `<div style="padding-top:2px;padding-bottom:2px;" id="battle_log_${hod_id}"></div>`);
hodlogdiv = getElementByIdInMainFrame(`battle_log_${hod_id}`);
} }
if (!top.frames['main'].document.getElementById(`log_id_${id}`)) { if (!logid) {
$(top.frames['main'].document.getElementById(`battle_log_${hod_id}`)).prepend(`<span id="log_id_${id}" class="foryou${foryou}">${text}</span><br>`); hodlogdiv.insertAdjacentHTML('afterbegin', `<span id="log_id_${id}" class="foryou0">${text}</span><br>`);
} }
if (top.frames['main'].document.getElementById(`battle_log_${hod_id - 25}`)) { if (hodlogdiv25) {
top.rmve(`#battle_log_${hod_id - 25}`); top.rmve(`#battle_log_${hod_id - 25}`);
} }
return return
} }
chsee = 'chsee2';
text = looklogrep(text, vars); text = looklogrep(text, vars);
id_log_ar[id] = id; id_log_ar[id] = id;
id_log = id; id_log = id;
if (!top.document.getElementById(`battle_log_${hod_id}`) && hod_id !== 1) { if (!hodlogdiv && hod_id !== 1) {
if (fstlh === 0) { if (fstlh === 0) {
fstlh = hod_id; fstlh = hod_id;
} }
lsthd[lsti] = hod_id; lsthd[lsti] = hod_id;
lsti++; lsti++;
$(top.document.getElementById('battle_logg')).prepend(`<div style="padding-top:2px;padding-bottom:2px;" id="battle_log_${hod_id}" tabindex="${0 - hod_id}" class="battle_hod_style"></div>`); logsdiv.insertAdjacentHTML('afterbegin', `<div style="padding-top:2px;padding-bottom:2px;" id="battle_log_${hod_id}" tabindex="${0 - hod_id}" class="battle_hod_style"></div>`);
} else if (!top.document.getElementById("battle_log_" + hod_id)) { hodlogdiv = getElementByIdInMainFrame(`battle_log_${hod_id}`);
top.document.getElementById('battle_logg').insertAdjacentHTML('beforeend', `<div style="padding-top:2px;padding-bottom:2px;" id="battle_log_${hod_id}"></div>`); } else if (!hodlogdiv) {
logsdiv.insertAdjacentHTML('beforeend', `<div style="padding-top:2px;padding-bottom:2px;" id="battle_log_${hod_id}"></div>`);
hodlogdiv = getElementByIdInMainFrame(`battle_log_${hod_id}`);
} }
if (!top.document.getElementById(`log_id_${id}`)) { if (!logid) {
$(top.document.getElementById(`battle_log_${hod_id}`)).prepend(`<span id="log_id_${id}" class="foryou${foryou}">${text}</span><br>`); hodlogdiv.insertAdjacentHTML('afterbegin', `<span id="log_id_${id}" class="foryou0">${text}</span><br>`);
} }
if (top.document.getElementById(`battle_log_${hod_id - 7}`)) { if (hodlogdiv7) {
top.rmve(`#battle_log_${hod_id - 7}`); top.rmve(`#battle_log_${hod_id - 7}`);
} }
} }
//-- Мой лог-------------------------------- //-- Мой лог--------------------------------
//------------------------------------------- //-------------------------------------------
function add_mlog(id, foryou, text, hod_id, vars) { function add_mlog(id, text, hod_id, vars) {
const logsdiv = getElementByIdInMainFrame('battle_mlogg');
let hodlogdiv = getElementByIdInMainFrame(`battle_mlog_${hod_id}`);
const hodlogdiv14 = getElementByIdInMainFrame(`battle_mlog_${hod_id - 14}`);
const logid = getElementByIdInMainFrame(`mlog_id_${id}`);
chsee = 'chsee7';
text = looklogrep(text, vars); text = looklogrep(text, vars);
id_log_ar[id] = id; id_log_ar[id] = id;
id_log = id; id_log = id;
if (!top.document.getElementById(`battle_mlog_${hod_id}`) && hod_id !== 1) { if (!hodlogdiv && hod_id !== 1) {
$(top.document.getElementById('battle_mlogg')).prepend(`<div style="padding-top:2px;padding-bottom:2px;" id="battle_mlog_${hod_id}" tabindex="${0 - hod_id}" class="battle_hod_style"></div>`); logsdiv.insertAdjacentHTML('afterbegin', `<div style="padding-top:2px;padding-bottom:2px;" id="battle_mlog_${hod_id}" tabindex="${0 - hod_id}" class="battle_hod_style"></div>`);
hodlogdiv = getElementByIdInMainFrame(`battle_mlog_${hod_id}`);
} else if (!top.document.getElementById(`battle_mlog_${hod_id}`)) { } else if (!hodlogdiv) {
top.document.getElementById('battle_mlogg').innerHTML += `<div style="padding-top:2px;padding-bottom:2px;" id="battle_mlog_${hod_id}"></div>`; logsdiv.insertAdjacentHTML('beforeend', `<div style="padding-top:2px;padding-bottom:2px;" id="battle_mlog_${hod_id}"></div>`);
hodlogdiv = getElementByIdInMainFrame(`battle_mlog_${hod_id}`);
} }
if (!logid) {
if (!top.document.getElementById(`mlog_id_${id}`)) { hodlogdiv.insertAdjacentHTML('afterbegin', `<span id="mlog_id_${id}" class="foryou0">${text}</span><br>`);
$(top.document.getElementById(`battle_mlog_${hod_id}`)).prepend(`<span id="mlog_id_${id}" class="foryou${foryou}">${text}</span><br>`);
} }
if (top.document.getElementById(`battle_mlog_${hod_id - 14}`)) { if (hodlogdiv14) {
top.rmve(`#battle_mlog_${hod_id - 14}`); top.rmve(`#battle_mlog_${hod_id - 14}`);
} }
} }
@ -539,30 +566,12 @@ function defPosition(event) {
return {x: x, y: y}; return {x: x, y: y};
} }
function initMove(div, event) {
var event = event || window.event;
x0 = defPosition(event).x;
y0 = defPosition(event).y;
divX0 = parseInt(div.style.left);
divY0 = parseInt(div.style.top);
moveState = true;
}
document.onmouseup = function () { document.onmouseup = function () {
moveState = false; moveState = false;
} }
// И последнее
// Функция обработки движения:
function moveHandler(div, event) {
var event = event || window.event;
if (moveState) {
div.style.left = divX0 + defPosition(event).x - x0;
div.style.top = divY0 + defPosition(event).y - y0;
}
}
function usePriem(id) { function usePriem(id) {
priem_use = id; priem_use = id;
if (id != 0) reflesh() if (id) reflesh();
} }

1891
js/gameEngine.from2014.js Normal file

File diff suppressed because one or more lines are too long

View File

@ -235,8 +235,6 @@ function add_cb(id, name, main, indata = '') {
cb_date[cb_id] = id; cb_date[cb_id] = id;
cb_rdate[id] = cb_id; cb_rdate[id] = cb_id;
console.log(cb_ndate, name, cb_ndate['Системные сообщения'], cb_ndate['Чат']);
if (cb_ndate[name] !== undefined) { if (cb_ndate[name] !== undefined) {
let j = 1, let j = 1,
name2 = ''; name2 = '';
@ -950,7 +948,7 @@ function useMagicBattle(name, id, img, type, type_use, text, team) {
// 4.26 // 4.26
function useMagicGoGoBattle(id) { function useMagicGoGoBattle(id) {
top.frames['main'].useitem(id, 1, $(`#useMagicLoginBtl${id}`).val()); top.frames['main'].useitem(id, $(`#useMagicLoginBtl${id}`).val());
} }
/* Использовать предмет на */ /* Использовать предмет на */
@ -1018,7 +1016,7 @@ function priemOnUser(pr, id, nm, onInUser, img) {
win.add(`iusepr${pr}`, `Используем &quot;${nm}&quot; &nbsp;`, '<center>Укажите логин персонажа:<br><small>(можно щелкнуть по логину в чате)</small></center>', { win.add(`iusepr${pr}`, `Используем &quot;${nm}&quot; &nbsp;`, '<center>Укажите логин персонажа:<br><small>(можно щелкнуть по логину в чате)</small></center>', {
'a1': `usePriemNow(\'${pr}\');`, 'a1': `usePriemNow(\'${pr}\');`,
'usewin': `chat.inObj = $(\'#usePriemLogin${pr}\');$(\'#usePriemLogin${pr}\').focus()`, 'usewin': `chat.inObj = $(\'#usePriemLogin${pr}\');$(\'#usePriemLogin${pr}\').focus()`,
'd': `<center><input style="width:96%; margin:5px;" id="usePriemLogin${pr}" class="inpt2" type="text" onKeyPress="javascript: if (event.keyCode==13) { usePriemNow(\'${pr}\');win.closew(\'iusepr${pr}\'); } " value="${onInUser}"></center>` 'd': `<center><input style="width:96%; margin:5px;" id="usePriemLogin${pr}" class="inpt2" type="text" onKeyPress="if (event.keyCode==13) { usePriemNow(\'${pr}\');win.closew(\'iusepr${pr}\'); } " value="${onInUser}"></center>`
}, 3, styleWin, 'min-width:300px;'); }, 3, styleWin, 'min-width:300px;');
chat.inObj = $(`#usePriemLogin${pr}`); chat.inObj = $(`#usePriemLogin${pr}`);
@ -1028,7 +1026,7 @@ function priemOnUser(pr, id, nm, onInUser, img) {
// 4.32 // 4.32
function usePriemNow(id) { function usePriemNow(id) {
top.frames['main'].use_on_pers = $(`#usePriemLogin${id}`).val(); top.frames['main'].use_on_pers = $(`#usePriemLogin${id}`).val();
top.frames['main'].usepriem(id, 1, ''); top.frames['main'].usepriem(id);
} }
var datas = ''; var datas = '';

View File

@ -233,18 +233,18 @@ if (!$isBattle) {
<script> <script>
$logs $logs
eatk = $atk1; eatk = $atk1;
$('#nabito').html('$nabito'); getElementByIdInMainFrame('nabito').innerHTML = `$nabito`;
$('#expmaybe').html('$expmaybe'); getElementByIdInMainFrame('expmaybe').innerHTML = `$expmaybe`;
$('#timer_out').html('$tmr'); getElementByIdInMainFrame('timer_out').innerHTML = `$tmr`;
$('#pers_magic').html('$persMagic'); getElementByIdInMainFrame('pers_magic').innerHTML = `$persMagic`;
$('#priems').html(`$mypriems`); getElementByIdInMainFrame('priems').innerHTML = `$mypriems`;
g_iCount = 30; g_iCount = 30;
noconnect = 15; noconnect = 15;
connect = 1; connect = 1;
$('#go_btn').show(); getElementByIdInMainFrame('go_btn').style.display = '';
$('#reflesh_btn').show(); getElementByIdInMainFrame('reflesh_btn').style.display = '';
za = '$za'; genZoneAtack(); za = $za; genZoneAtack();
zb = '$zb'; genZoneBlock(); zb = $zb; genZoneBlock();
refleshPoints(); refleshPoints();
tactic(1,'$tactic1'); tactic(1,'$tactic1');
tactic(2,'$tactic2'); tactic(2,'$tactic2');
@ -267,6 +267,5 @@ HTML;
unset($atk1); unset($atk1);
} }
echo '<script>ggcode="' . PassGen::new() . '";if(t057!=null){clearTimeout(t057);}</script>'; echo '<script>ggcode="' . PassGen::new() . '";</script>';
} }

View File

@ -252,5 +252,5 @@ if (!$isBattle) {
unset($atk1); unset($atk1);
} }
echo '<script>ggcode="' . $code . '";if(t057!=null){clearTimeout(t057);}</script>'; echo '<script>ggcode="' . $code . '";</script>';
} }

View File

@ -255,6 +255,6 @@ if (isset($_POST['atack'], $_POST['block']) || (isset($_POST['id']) && $_POST['i
unset($atk1); unset($atk1);
} }
echo '<script>ggcode="' . $code . '";if(t057!=null){clearTimeout(t057);}</script>'; echo '<script>ggcode="' . $code . '";</script>';
} }
} }

View File

@ -62,7 +62,7 @@ if (isset($CRON_CORE) && (isset($_POST['atack'], $_POST['block']) || (isset($_PO
if (!isset($CRON_CORE)) { if (!isset($CRON_CORE)) {
require_once('../../_incl_data/__config.php'); require_once('../../_incl_data/__config.php');
if ($_SESSION['tbr'] > $tm) { if ($_SESSION['tbr'] > $tm) {
die('<script>ggcode="' . $code . '";if(t057!=null){clearTimeout(t057);}</script>'); die('<script>ggcode="' . $code . '";</script>');
} else { } else {
$_SESSION['tbr'] = $tm + 0.350; $_SESSION['tbr'] = $tm + 0.350;
} }

View File

@ -4,6 +4,7 @@ if (!defined('GAME_VERSION')) {
} }
use Core\{Config, Database, Db}; use Core\{Config, Database, Db};
use Model\ActionModel;
use User\ItemsModel; use User\ItemsModel;
use User\UserIp; use User\UserIp;
@ -43,9 +44,9 @@ if ($u->info['bithday'] == '01.01.1800' && $u->info['inTurnirnew'] == 0) {
} }
#--------для общаги, и позже для почты #--------для общаги, и позже для почты
$sleep = $u->testAction('`vars` = "sleep" AND `uid` = "' . $u->info['id'] . '" LIMIT 1', 1); $sleep = ActionModel::getOne(["uid = {$u->info['id']}", 'vars = sleep'], 'id');
if ($u->room['file'] != "room_hostel" && $u->room['file'] != "an/room_hostel" && !empty($sleep)) { if ($u->room['file'] != "room_hostel" && $u->room['file'] != "an/room_hostel" && !empty($sleep)) {
Db::sql('update actions set vars = ? where id = ?', ['unsleep', $sleep['id']]); Db::sql('update actions set vars = ? where id = ?', ['unsleep', $sleep]);
} }
if ($u->room['file'] == "room_hostel" || $u->room['file'] == "post") { if ($u->room['file'] == "room_hostel" || $u->room['file'] == "post") {
$trololo = 0; $trololo = 0;
@ -255,7 +256,7 @@ if ($magic->youuse > 0) {
if ($act != -2) { if ($act != -2) {
$u->stats = $u->getStats($u->info['id'], 0, 1); $u->stats = $u->getStats($u->info['id'], 0, 1);
$u->aves = ItemsModel::inventoryWeightAndItemQuantity(); $u->aves = ItemsModel::inventoryWeightAndItemQuantity();
if (!isset($sleep['id'])) { if (empty($sleep)) {
$act2 = $u->testItems($u->info['id'], $u->stats, 0); $act2 = $u->testItems($u->info['id'], $u->stats, 0);
} }
if ($act2 != -2 && $act == -2) { if ($act2 != -2 && $act == -2) {
@ -413,7 +414,7 @@ if (isset($btl_last['id']) && $u->info['battle'] == 0) {
$u->info['battle_lsto'] = true; $u->info['battle_lsto'] = true;
} elseif ($u->info['battle'] == 0) { } elseif ($u->info['battle'] == 0) {
//Проверка/Снятие предметов //Проверка/Снятие предметов
if (!isset($sleep['id'])) { if (empty($sleep)) {
$act2 = $u->testItems($u->info['id'], $u->stats, 0); $act2 = $u->testItems($u->info['id'], $u->stats, 0);
} }
if ($act2 != -2 && $act == -2) { if ($act2 != -2 && $act == -2) {
@ -528,7 +529,7 @@ if (isset($_GET['security']) && !isset($u->tfer['id']) && $trololo == 1) {
} elseif (isset($_GET['skills']) && !isset($u->tfer['id']) && $trololo == 1) { } elseif (isset($_GET['skills']) && !isset($u->tfer['id']) && $trololo == 1) {
require_once('modules_data/_umenie.php'); require_once('modules_data/_umenie.php');
} elseif ((isset($_GET['transfer']) || isset($u->tfer['id'])) && $u->info['level'] >= Config::get( } elseif ((isset($_GET['transfer']) || isset($u->tfer['id'])) && $u->info['level'] >= Config::get(
'level_ransfer' 'level_transfer'
) && $trololo == 1 && $u->info['inTurnir'] == 0 && $u->info['inTurnirnew'] == 0) { ) && $trololo == 1 && $u->info['inTurnir'] == 0 && $u->info['inTurnirnew'] == 0) {
if ($u->info['allLock'] > time()) { if ($u->info['allLock'] > time()) {
require_once('modules_data/_locations.php'); require_once('modules_data/_locations.php');

View File

@ -1,7 +1,9 @@
<?php <?php
# Получаем IP # Получаем IP
use Core\Config;
use Core\Db; use Core\Db;
use Model\ActionModel;
use User\ItemsModel; use User\ItemsModel;
use User\UserIp; use User\UserIp;
@ -63,9 +65,9 @@ $q = new Quests;
$tjs = ''; $tjs = '';
#--------для общаги, и позже для почты #--------для общаги, и позже для почты
$sleep = $u->testAction('`vars` = "sleep" AND `uid` = "' . $u->info['id'] . '" LIMIT 1', 1); $sleep = ActionModel::getOne(["uid = {$u->info['id']}", 'vars = sleep'], 'id');
if ($u->room['file'] != "objaga" && $sleep['id'] > 0) { if ($u->room['file'] != "objaga" && $sleep > 0) {
mysql_query('UPDATE `actions` SET `vars` = "unsleep" WHERE `id` = ' . $sleep['id']); mysql_query('UPDATE `actions` SET `vars` = "unsleep" WHERE `id` = ' . $sleep);
} }
$trololo = $u->room['file'] == "objaga" || $u->room['file'] == "post" ? 0 : 1; $trololo = $u->room['file'] == "objaga" || $u->room['file'] == "post" ? 0 : 1;
@ -79,7 +81,7 @@ if ($u->info['online'] < time() - 60) {
} }
if (!isset($u->info['id']) || ($u->info['joinIP'] == 1 && $u->info['ip'] != $_SERVER['HTTP_X_REAL_IP']) || $u->info['banned'] > 0) { if (!isset($u->info['id']) || ($u->info['joinIP'] == 1 && $u->info['ip'] != $_SERVER['HTTP_X_REAL_IP']) || $u->info['banned'] > 0) {
die($c['exit']); die(Config::get('exit'));
} }
if (isset($_GET['atak_user']) && $u->info['battle'] == 0 && $_GET['atak_user'] != $u->info['id']) { if (isset($_GET['atak_user']) && $u->info['battle'] == 0 && $_GET['atak_user'] != $u->info['id']) {
@ -110,7 +112,6 @@ if (isset($_GET['atak_user']) && $u->info['battle'] == 0 && $_GET['atak_user'] !
$rtxt = '[img[items/pal_button8.gif]] &quot;' . $u->info['login'] . '&quot; совершил' . $sx . ' нападение по метке на персонажа &quot;' . $ua['login'] . '&quot;.'; $rtxt = '[img[items/pal_button8.gif]] &quot;' . $u->info['login'] . '&quot; совершил' . $sx . ' нападение по метке на персонажа &quot;' . $ua['login'] . '&quot;.';
$cmsg = new ChatMessage(); $cmsg = new ChatMessage();
$cmsg->setCity($u->info['city']);
$cmsg->setRoom($u->info['room']); $cmsg->setRoom($u->info['room']);
$cmsg->setText($rtxt); $cmsg->setText($rtxt);
$cmsg->setType(6); $cmsg->setType(6);
@ -168,75 +169,9 @@ if ($ul == 1) {
$act = 1; $act = 1;
} }
//// Непонятно что это, потому что переменной 'repass' не существует и этот код никогда не выполняется. 15.08.2023, Инс.
//if ($u->info['repass'] > 0 && $u->info['id'] != 5433446) {
//
// /*-----------------------*/
// if ($u->info['battle'] == 0) {
// if ($act2 != -2 && $act == -2) {
// $act = $act2;
// }
//
// if (!isset($u->tfer['id']) && $u->room['block_all'] == 0) {
// //Одеть/снять предмет
// if (isset($_GET['rstv']) && isset($_GET['inv'])) {
// $act = $u->freeStatsMod($_GET['rstv'], $_GET['mf'], $u->info['id']);
// } elseif (isset($_GET['ufs2']) && isset($_GET['inv'])) {
// $act = $u->freeStats2Item($_GET['itmid'], $_GET['ufs2'], $u->info['id'], 1);
// } elseif (isset($_GET['ufs2mf']) && isset($_GET['inv'])) {
// $act = $u->freeStats2Item($_GET['itmid'], $_GET['ufs2mf'], $u->info['id'], 2);
// } elseif (isset($_GET['ufsmst']) && isset($_GET['inv'])) {
// $act = $u->itemsSmSave($_GET['itmid'], $_GET['ufsmst'], $u->info['id']);
// } elseif (isset($_GET['ufsms']) && isset($_GET['inv'])) {
// $act = $u->itemsSmSave($_GET['itmid'], $_GET['ufsms'] + 100, $u->info['id']);
// } elseif (isset($_GET['ufs']) && isset($_GET['inv'])) {
// $act = $u->freeStatsItem($_GET['itmid'], $_GET['ufs'], $u->info['id']);
// } elseif (isset($_GET['sid']) && isset($_GET['inv'])) {
// $act = $u->snatItem($_GET['sid'], $u->info['id']);
// } elseif (isset($_GET['oid']) && isset($_GET['inv'])) {
// $act = $u->odetItem($_GET['oid'], $u->info['id']);
// } elseif (isset($_GET['item_rune']) && isset($_GET['inv'])) {
// $act = $u->runeItem(null);
// } elseif (isset($_GET['remitem'], $_GET['inv'])) {
// $act = $u->snatItemAll($u->info['id']);
// } elseif (isset($_GET['delete']) && isset($_GET['inv']) && $u->newAct($_GET['sd4'])) {
// $u->deleteItem(intval($_GET['delete']), $u->info['id']);
// } elseif (isset($_GET['stack']) && isset($_GET['inv'])) {
// $u->stack($_GET['stack']);
// } elseif (isset($_GET['unstack']) && isset($_GET['inv'])) {
// $u->unstack($_GET['unstack']);
// } elseif (isset($_GET['end_qst_now'])) {
// $q->endq((int)$_GET['end_qst_now'], 'end');
// }
// //Использовать эффект
// if (isset($_GET['use_pid'])) {
// $magic->useItems((int)$_GET['use_pid']);
// }
// }
//
// } elseif ($u->info['battle_text'] != '') {
// Db::sql('update stats set battle_text = ?, last_b = 0 where id = ?', ['', $u->info['id']]);
// }
//
// if ($magic->youuse > 0) {
// $act = 1;
// }
// //Получение статов
// if ($act != -2) {
// $u->stats = $u->getStats($u->info['id'], 0, 1);
// $u->aves = \User\ItemsModel::inventoryWeightAndItemQuantity();
// $act2 = $u->testItems($u->info['id'], $u->stats, 0);
// if ($act2 != -2 && $act == -2) {
// $act = $act2;
// }
// }
//}
if ( if (
(isset($_GET['zayvka']) && $u->info['battle'] == 0) || (isset($_GET['zayvka']) && $u->info['battle'] == 0) ||
(isset($_GET['zayvka']) && ($_GET['r'] == 6 || $_GET['r'] == 7 || !isset($_GET['r'])) && $u->info['battle'] > 0) && (isset($_GET['zayvka']) && ($_GET['r'] == 6 || $_GET['r'] == 7 || !isset($_GET['r'])) && $u->info['battle'] > 0) &&
!isset($u->tfer['id'])) { !isset($u->tfer['id'])) {
include('modules_data/_zv.php'); include('modules_data/_zv.php');
} }
mysql_query('UNLOCK TABLES');

View File

@ -1,4 +1,8 @@
<?php <?php
use Model\Constant\Stat;
use Validator\Login;
echo " echo "
<script language='JavaScript'> <script language='JavaScript'>
var elem = document.getElementById('se-pre-con'); var elem = document.getElementById('se-pre-con');
@ -19,39 +23,19 @@ if (!isset($an['id'])) {
mysql_query('UPDATE `users` SET `animal` = "0" WHERE `id` = "' . $u->info['id'] . '" LIMIT 1'); mysql_query('UPDATE `users` SET `animal` = "0" WHERE `id` = "' . $u->info['id'] . '" LIMIT 1');
mysql_query('UPDATE `users_animal` SET `delete` = "' . time() . '" WHERE `uid` = "' . $u->info['id'] . '" AND `id` = "' . $an['id'] . '" AND `delete` = "0" LIMIT 1'); mysql_query('UPDATE `users_animal` SET `delete` = "' . time() . '" WHERE `uid` = "' . $u->info['id'] . '" AND `id` = "' . $an['id'] . '" AND `delete` = "0" LIMIT 1');
} elseif (isset($_GET['anml_login']) && $an['renameArrayKeys'] == 0) { } elseif (isset($_GET['anml_login']) && $an['renameArrayKeys'] == 0) {
$n = 1;
function en_ru($txt)
{
$g = false;
$en = preg_match("/^(([a-zA-Z _-])+)$/i", $txt);
$ru = preg_match("/^(([а-яА-Я _-])+)$/i", $txt);
if (($ru && $en) || (!$ru && !$en)) {
$g = true;
}
return $g;
}
$nl = htmlspecialchars($_GET['anml_login'], null); $nl = (new Login())->setLogin($_GET['anml_login'])->get();
$nl = str_replace(' ', '', $nl);
$nl = str_replace(' ', '', $nl);
$sr = "!@#$%^&*()\+Ёё|/'`\"-_";
if ($nl == '' || strlen($nl) > 10 || strlen($nl) < 2 || en_ru($nl) == true || strpos($sr, $nl)) {
$n = 0;
} else {
} if (!empty($nl)) {
if ($n == 1) {
mysql_query( mysql_query(
'UPDATE `users_animal` SET `name` = "' . mysql_real_escape_string( 'UPDATE `users_animal` SET `name` = "' . mysql_real_escape_string(
$nl $nl
) . '",`renameArrayKeys` = "1" WHERE `uid` = "' . $u->info['id'] . '" AND `id` = "' . $an['id'] . '" AND `delete` = "0" LIMIT 1' ) . '",`renameArrayKeys` = "1" WHERE `uid` = "' . $u->info['id'] . '" AND `id` = "' . $an['id'] . '" AND `delete` = "0" LIMIT 1'
); );
$an['renameArrayKeys'] = 1; $an['renameArrayKeys'] = 1;
echo '<font color="red">Вы успешно переименовали питомца в &quot;' . $nl . '&quot;</font>'; echo '<span style="color: red; ">Вы успешно переименовали питомца в &quot;' . $nl . '&quot;</span>';
} else { } else {
echo '<font color="red">Эта кличка не подходит</font>'; echo '<span style="color: red; ">Эта кличка не подходит</span>';
} }
} }
@ -195,7 +179,7 @@ if (!isset($an['id'])) {
<?php <?php
$ba = ''; $ba = '';
$i = 0; $i = 0;
$statnames = new \Model\Constant\Stat(); $statnames = new Stat();
$statnames->getBonus(); $statnames->getBonus();
while ($i < count($statnames->sysBonusNames)) { while ($i < count($statnames->sysBonusNames)) {

View File

@ -3,6 +3,8 @@
/* @var $u User */ /* @var $u User */
use Core\Config; use Core\Config;
use Core\Db;
use Core\TOTP;
use User\Email; use User\Email;
use User\Password; use User\Password;
@ -14,23 +16,18 @@ $password = new Password($u->info);
$email = new Email($u->info); $email = new Email($u->info);
$status = null; $status = null;
if ($_POST['oldpsw2']) { // remove psw2 if ($_POST['removetotp']) {
if (password_verify((int)$_POST['oldpsw2'], $u->info['pass2'])) { // Удаление ключа ТОТР
$u->info['pass2'] = $password->changeSecond(null)['pass2']; $u->info['totp'] = '';
$status = "<b style='color: darkolivegreen'>Второй пароль выключен.</b><br>"; Db::sql('update users set totp = ? where id = ?', [$u->info['totp'], $u->info['id']]);
} else { $status = "<b style='color: darkolivegreen'>Секретный ключ удалён.</b><br>";
$status = "<b style='color: red'>Введен не верный второй пароль!</b><br>";
}
} }
if ($_POST['num_count']) { //add psw2 if ($_POST['newtotp']) {
$arr = $password->changeSecond((int)$_POST['num_count']); // Создание ключа ТОТР
$status = "<b style='color: red'>Второй пароль: {$arr['pass2']}.<br> $u->info['totp'] = TOTP::otpSecret($u->info['id']);
Запомните или запишите, т.к. он не высылается на email и его нельзя как-либо узнать. Db::sql('update users set totp = ? where id = ?', [$u->info['totp'], $u->info['id']]);
Потеряв второй пароль, вы потеряете персонажа!<br> $status = "<b style='color: darkolivegreen'>Секретный ключ создан.</b><br>";
Этот пароль выслан на ваш email.<br>
</b><br>";
$u->info['pass2'] = $arr['hash'];
} }
if ( if (
@ -66,7 +63,7 @@ if (
} }
?> ?>
<form action="main.php?security" method="post" id="security"></form> <form action="/main.php?security" method="post" id="security"></form>
<div> <div>
<h3>Настройки безопасности</h3> <h3>Настройки безопасности</h3>
@ -180,41 +177,18 @@ if (
</TABLE> </TABLE>
</FIELDSET> </FIELDSET>
<FIELDSET> <FIELDSET>
<LEGEND><B> Второй уровень защиты </B></LEGEND> <LEGEND><B> TOTP </B></LEGEND>
Настоятельно рекомендуем включить второй уровень защиты.<BR> TOTP (Time-based One-Time Password) - это метод двухфакторной аутентификации, который генерирует одноразовый пароль на основе текущего времени.
На компьютере может быть установлен клавиатурный шпион, который записывает все нажатия клавиш, таким Устанавливается для повышения безопасности вашего аккаунта, так как помогает защитить его от несанкционированного доступа.<br>
образом, Вы можете использовать TOTP приложения, такие как Google Authenticator или Authy, чтобы генерировать и отображать временные одноразовые пароли на вашем мобильном устройстве.
могут узнать ваш пароль.<BR> <br><br>
Возможно, в сети компьютеров установлен "сетевой снифер", перехватывающий все интернет пакеты, который легко <U>Будьте внимательны!</U> Секретный ключ генерируется только один раз и не подлежит восстановлению. Его можно только удалить или заменить новым.<br>
покажет все пароли. Чтобы обезопасить себя, вы можете установить своему персонажу второй пароль, который <?php if (!empty($u->info['totp'])): ?>
можно <br><b>Секретный ключ:</b>
вводить при помощи мышки (клавиатурным шпионом не перехватить) и который передается на игровой сервер в <pre>{$u->info['totp']}</pre><br><br>
зашифрованном виде, не поддающимся расшифровке ("сетевой снифер" не сможет перехватить его).<BR> <input form='security' type='submit' name='removetotp' value='Удалить секретный ключ'><br>
<U>Будьте внимательны!</U> Второй пароль отправляется на email один раз,при установке второго уровня защиты!<BR> <?php endif; ?>
<input form='security' type='submit' name='newtotp' value='Создать новый секретный ключ'><br>
<?php
if (!empty($u->info['pass2'])) {
echo "<BR><B>Второй пароль установлен.</B><BR><BR>
Введите второй пароль <INPUT TYPE=password NAME=oldpsw2 size=10 maxlength=8>
<INPUT form='security' TYPE=submit name=changepsw value=\"Выключить второй пароль\" onclick=\"return confirm('Выключить запрос второго пароля при входе в Бойцовский Клуб?')\">";
} else {
?>
Длина пароля:<BR>
<label>
<INPUT form="security" TYPE=radio NAME="num_count" value=4> 4 знака<BR>
</label>
<label>
<INPUT form="security" TYPE=radio NAME="num_count" checked value=6> 6 знаков<BR>
</label>
<label>
<INPUT form="security" TYPE=radio NAME="num_count" value=8> 8 знаков<BR>
</label>
<INPUT form="security" TYPE=submit name=changepsw value="Установить второй пароль"
onclick="return confirm('Система сама придумает вам второй пароль, он будет показан на этой странице, после того, как вы нажмете OK и продублирован на email, указанный при регистрации. Будьте внимательны.\nУстановить второй пароль?')">
<BR>
<?php
}
?>
</FIELDSET> </FIELDSET>
</div> </div>
</div> </div>

View File

@ -696,5 +696,4 @@ function printModeratorsOnline(): void
</TD> </TD>
</TR> </TR>
</TABLE> </TABLE>
<DIV><?= Config::get('counters_noFrm') ?></DIV>
</body> </body>

View File

@ -450,7 +450,7 @@ if (isset($_GET['mAjax'])) {
onclick="top.frames['main'].location='main.php?newanimal&rnd=<?php onclick="top.frames['main'].location='main.php?newanimal&rnd=<?php
echo $code; ?>'" value="Звери"/> echo $code; ?>'" value="Звери"/>
<input class="btn btn-success" type="button" onclick="window.open('/exp');" value="Таблица опыта"/> <input class="btn btn-success" type="button" onclick="window.open('/exp');" value="Таблица опыта"/>
<input class="btn btn-success" type="button" onclick="window.open('/stats_bonus.php');" <input class="btn btn-success" type="button" onclick="window.open('/statsbonuses.html');"
value="Бонусы статов"/> value="Бонусы статов"/>
<input class="btn btn-success" type="button" <input class="btn btn-success" type="button"
onclick="top.frames['main'].location='main.php?act_trf&rnd=<?php onclick="top.frames['main'].location='main.php?act_trf&rnd=<?php

View File

@ -1,6 +1,5 @@
<?php <?php
use Core\Config;
use Core\Db; use Core\Db;
use Model\ActionModel; use Model\ActionModel;
use User\Effects; use User\Effects;
@ -177,11 +176,8 @@ if (isset($_GET['loc'])) {
} }
$i++; $i++;
} }
$sleep = $u->testAction( $sleep = (bool)ActionModel::testCount(["uid = $u->info['id']", 'vars = sleep']);
'`vars` = "sleep" AND `uid` = "' . $u->info['id'] . '" LIMIT 1', if ($sleep && $go['name'] != 'Общ. Этаж 1' && $go['name'] != 'Общ. Этаж 2' && $go['name'] != 'Общ. Этаж 3') {
1
);
if (isset($sleep['id']) && $sleep['vars'] == 'sleep' && $go['name'] != 'Общ. Этаж 1' && $go['name'] != 'Общ. Этаж 2' && $go['name'] != 'Общ. Этаж 3') {
$re = '<b style="color: red;">Вы можете перемещаться только когда бодрствуете.</b>'; $re = '<b style="color: red;">Вы можете перемещаться только когда бодрствуете.</b>';
echo '&nbsp;' . $re; echo '&nbsp;' . $re;
} elseif ($u->info['timeGo'] >= time()) { } elseif ($u->info['timeGo'] >= time()) {
@ -254,10 +250,8 @@ if (isset($_GET['loc'])) {
Db::sql('update bs_zv set finish = unix_timestamp() where uid = ? and inBot = 0 and finish = 0', [$u->info['id']]); Db::sql('update bs_zv set finish = unix_timestamp() where uid = ? and inBot = 0 and finish = 0', [$u->info['id']]);
} }
$smt = $u->testAction( $smt = ActionModel::getOne(["uid = {$u->info['id']}", "time >= unix_timestamp() - 600", 'vars = create_snowball_cp'], 'id');
'`uid` = "' . $u->info['id'] . '" AND `time`>=' . (time() - 600) . ' AND `vars` = "create_snowball_cp" LIMIT 1',
1
);
if (isset($smt['id'])) { if (isset($smt['id'])) {
ActionModel::deleteById($smt['id']); ActionModel::deleteById($smt['id']);
} }

View File

@ -43,98 +43,6 @@ $an_eda = [
7.00, 7.00,
]; ];
function en_ru($txt)
{
$g = false;
$en = preg_match("/^(([0-9a-zA-Z _-])+)$/i", $txt);
$ru = preg_match("/^(([0-9а-яА-Я _-])+)$/i", $txt);
if (($ru && $en) || (!$ru && !$en)) {
$g = true;
}
return $g;
}
//
function testBad($txt)
{
$white = '-_ 0123456789qwertyuiopasdfghjklzxcvbnmQWERTYUIOPASDFGHJKLZXCVBNMЁЙЦУКЕНГШЩЗХЪФЫВАПРОЛДЖЭЯЧСМИТЬБЮёйцукенгшщзхъфывапролджэячсмитьбю';
$r = false;
$i = 0;
while ($i != -1) {
if (isset($txt[$i])) {
$g = false;
$j = 0;
while ($j != -1) {
if (isset($white[$j])) {
if ($white[$j] == $txt[$i]) {
$g = true;
}
} else {
$j = -2;
}
$j++;
}
if (!$g) {
$r = true;
}
} else {
$i = -2;
}
$i++;
}
return $r;
}
function is_login_an($login)
{
$r = true;
//
$login = htmlspecialchars($login, null);
//
$bad = [
'Мусорщик' => 1,
'Мироздатель' => 1,
];
//
if (isset($login_db['id']) || isset($login_an_db['id']) || isset($bad[$login])) {
$r = false;
} else {
$true = true;
//
/*
Логин может содержать от 2 до 16 символов, и состоять только из букв русского ИЛИ английского алфавита, цифр, символов '_', '-' и пробела.
Логин не может начинаться или заканчиваться символами '_', '-' или пробелом.
*/
//
$login = str_replace(' ', ' ', $login);
$login = str_replace('%', ' ', $login);
$login = str_replace('&nbsp;', ' ', $login);
//
if (strlen($login) > 16) {
$true = false;
} elseif (strlen($login) < 2) {
$true = false;
} elseif (strripos($login, ' ') == true) {
$true = false;
} elseif (substr($login, 1) == ' ' || substr($login, -1) == ' ') {
$true = false;
} elseif (substr($login, 1) == '-' || substr($login, -1) == '-') {
$true = false;
} elseif (substr($login, 1) == '_' || substr($login, -1) == '_') {
$true = false;
} elseif (testBad($login) == true) {
$true = false;
} elseif (en_ru(str_replace('ё', 'е', str_replace('Ё', 'Е', $login))) == true) {
$true = false;
}
//
if (!$true) {
$r = false;
}
}
return $r;
}
if (isset($_GET['buy_slot'])) { if (isset($_GET['buy_slot'])) {
if ($u->info['money2'] < $slot['price_nex']) { if ($u->info['money2'] < $slot['price_nex']) {
$u->error = 'Недостаточно денег'; $u->error = 'Недостаточно денег';
@ -150,8 +58,9 @@ if (isset($_GET['buy_slot'])) {
$u->error = 'Нельзя купить больше слотов'; $u->error = 'Нельзя купить больше слотов';
} }
} elseif (isset($_GET['pet'])) { } elseif (isset($_GET['pet'])) {
$newpetname = (new \Validator\Login())->setLogin($_GET['petname'])->get();
$_GET['pet'] = round((int)$_GET['pet']); $_GET['pet'] = round((int)$_GET['pet']);
$_GET['petname'] = htmlspecialchars($_GET['petname'], null);
$ax = mysql_fetch_array(mysql_query('SELECT COUNT(*) FROM `users_animal` WHERE `uid` = "' . $u->info['id'] . '" AND `delete` = 0 LIMIT 1')); $ax = mysql_fetch_array(mysql_query('SELECT COUNT(*) FROM `users_animal` WHERE `uid` = "' . $u->info['id'] . '" AND `delete` = 0 LIMIT 1'));
$ax = $ax[0]; $ax = $ax[0];
if ($_GET['pet'] < 1 || $_GET['pet'] > 7) { if ($_GET['pet'] < 1 || $_GET['pet'] > 7) {
@ -160,12 +69,12 @@ if (isset($_GET['buy_slot'])) {
$u->error = 'Нет свободных слотов для зверя'; $u->error = 'Нет свободных слотов для зверя';
} elseif ($u->info['money'] < 50) { } elseif ($u->info['money'] < 50) {
$u->error = 'Недостаточно денег'; $u->error = 'Недостаточно денег';
} elseif (!is_login_an($_GET['petname'])) { } elseif (!empty($_GET['petname']) && !$newpetname) {
$u->error = 'Неверная кличка зверя, выберите другую'; $u->error = 'Неверная кличка зверя, выберите другую';
} else { } else {
$u->error = 'Зверь пришел к Вам!'; $u->error = 'Зверь пришел к Вам!';
$u->info['money'] -= 50; $u->addKr(-50);
mysql_query('UPDATE `users` SET `money` = "' . $u->info['money'] . '" WHERE `id` = "' . $u->info['id'] . '" LIMIT 1');
// //
$anm['type'] = $_GET['pet']; $anm['type'] = $_GET['pet'];
// //
@ -206,8 +115,9 @@ if (isset($_GET['buy_slot'])) {
$anm['stats'] = 's1=5|s2=3|s3=3|s4=5|rinv=40|m9=5|m6=10'; $anm['stats'] = 's1=5|s2=3|s3=3|s4=5|rinv=40|m9=5|m6=10';
} }
// //
$anm['name'] = htmlspecialchars($_GET['petname'], null); if (!empty($_GET['petname'])) {
$anm['name'] = preg_replace("/&#?[a-z0-9]+;/i", "", $anm['name']); $anm['name'] = htmlspecialchars($newpetname, null);
}
// //
$anm['obraz'] = $anm['obraz'][rand(1, count($anm['obraz']))]; $anm['obraz'] = $anm['obraz'][rand(1, count($anm['obraz']))];
$anm['obraz'] = str_replace('.gif', '', $anm['obraz']); $anm['obraz'] = str_replace('.gif', '', $anm['obraz']);
@ -221,7 +131,7 @@ if (isset($_GET['buy_slot'])) {
1, 1,
'System.inventory', 'System.inventory',
$u->info['id'], $u->info['id'],
'&quot;<span style="color: maroon; ">System.inventory</span>&quot;: Персонаж призвал зверя &quot;' . $_GET['petname'] . '&quot; (' . $_GET['pet'] . ') - 50 кр.', '&quot;<span style="color: maroon; ">System.inventory</span>&quot;: Персонаж призвал зверя &quot;' . $newpetname . '&quot; (' . $_GET['pet'] . ') - 50 кр.',
); );
} else { } else {
$u->error = 'Не удалось призвать зверя, что-то здесь не так ...'; $u->error = 'Не удалось призвать зверя, что-то здесь не так ...';
@ -404,7 +314,7 @@ if ($u->error != '') {
// //
echo '<td width="16%" align="center" valign="top">'; echo '<td width="16%" align="center" valign="top">';
// //
echo '<div class="an_line"><b><img onclick="top.anrename(' . $pl['id'] . ',\'' . $pl['name'] . '\');" class="cp" src="//img.new-combats.tech/pencil.png" width="16" height="16" title="Изменить кличку"> <small>' . $pl['name'] . '</small> <img onclick="if(confirm(\'Вы действительно хотите ВЫГНАТЬ зверя &quot;' . $pl['name'] . '&quot;?\')) location.href=\'main.php?newanimal&pet_del=' . $pl['id'] . '\';" class="cp" src="//img.new-combats.tech/i/clear.gif" title="Выгнать" width="13" height="13"></b></div>'; echo '<div class="an_line"><b><img onclick="top.anrename(' . $pl['id'] . ',\'' . $pl['name'] . " src=" . $pl['name'] . '</small> <img onclick="if(confirm(\'Вы действительно хотите ВЫГНАТЬ зверя &quot;' . $pl['name'] . '&quot;?\')) location.href=\'main.php?newanimal&pet_del=' . $pl['id'] . '\';" class="cp" src="//img.new-combats.tech/i/clear.gif" title="Выгнать" width="13" height="13"></b></div>';
// //
echo '<div title="' . $pl['name'] . '" class="an_border"><img src="//img.new-combats.tech/i/obraz/' . $pl['sex'] . '/' . $pl['obraz'] . '.gif" width="120" height="220"></div>'; echo '<div title="' . $pl['name'] . '" class="an_border"><img src="//img.new-combats.tech/i/obraz/' . $pl['sex'] . '/' . $pl['obraz'] . '.gif" width="120" height="220"></div>';
// //

View File

@ -307,4 +307,3 @@ if (!isset($u->tfer['id'])) {
?> ?>
{отображаем лог передач} {отображаем лог передач}
<?php } ?> <?php } ?>
<div align="right"><?= $c['counters']; ?></div>

View File

@ -9,6 +9,7 @@ use Core\Config;
use DarksLight2\Battle\Techniques\TechniqueCategoryEntity; use DarksLight2\Battle\Techniques\TechniqueCategoryEntity;
use DarksLight2\Training\TrainingManager; use DarksLight2\Training\TrainingManager;
use Helper\Conversion; use Helper\Conversion;
use Model\ActionModel;
use Model\Constant\Stat; use Model\Constant\Stat;
if (!defined('GAME')) { if (!defined('GAME')) {
@ -1026,7 +1027,7 @@ $tma = '';
</style> </style>
<div> <div>
<INPUT TYPE=button class="btn btn-danger" <INPUT TYPE=button class="btn btn-danger"
onClick="window.open('/stats_bonus.php/', 'stats_bonus', 'location=yes,menubar=yes,status=yes,resizable=yes,toolbar=yes,scrollbars=yes,scrollbars=yes')" onClick="window.open('/statsbonuses.html/', 'stats_bonus', 'location=yes,menubar=yes,status=yes,resizable=yes,toolbar=yes,scrollbars=yes,scrollbars=yes')"
value="Статовые Бонусы"> value="Статовые Бонусы">
<br><br> <br><br>
<b style="font-size: x-small;">Зависимость максимального профильного урона оружием у основных воинских <b style="font-size: x-small;">Зависимость максимального профильного урона оружием у основных воинских
@ -2318,12 +2319,10 @@ $tma = '';
echo '<fieldset>&nbsp; <img height="19" width="34" src="' . Config::img() . '/i/city_ico2/' . $ic1 . '.gif" alt=""> <b>Задержка на получение задания в ' . $u->city_name[$ic1] . '</b> ' . Conversion::secondsToTimeout((86400 + $pl['time']) - time()) . '</fieldset><br>'; echo '<fieldset>&nbsp; <img height="19" width="34" src="' . Config::img() . '/i/city_ico2/' . $ic1 . '.gif" alt=""> <b>Задержка на получение задания в ' . $u->city_name[$ic1] . '</b> ' . Conversion::secondsToTimeout((86400 + $pl['time']) - time()) . '</fieldset><br>';
} }
//Пещеры //Пещеры
$dungeon_timeout = $u->testAction( $dungeonTimeout = ActionModel::getOne(["uid = {$u->info['id']}", 'vars = psh0', "time > unix_timestamp() - 10800"], 'time');
'`uid` = "' . $u->info['id'] . '" AND `vars` = "psh0" AND `time` > ' . (time() - 60 * 60 * 3) . ' LIMIT 1', if ($dungeonTimeout) {
1 echo '<div style="text-align: center; font-weight: bold;">
); Задержка на посещение подземелья: ' . Conversion::secondsToTimeout(60 * 60 * 2 - time() + $dungeonTimeout) . '</div><br>';
if ($dungeon_timeout['vars'] == "psh0") {
echo '<center><b>Задержка на посещение подземелья: ' . Conversion::secondsToTimeout(60 * 60 * 2 - time() + $dungeon_timeout['time']) . '</center></b><br>';
} }
?> ?>
<br> <br>
@ -2375,26 +2374,21 @@ $tma = '';
} ?> } ?>
<BR> <BR>
<?php <?php
$sf = $u->testAction( $sf = ActionModel::getOne(["uid = {$u->info['id']}", "time >= " . strtotime('now 00:00:00'), 'vars = statistic_today'], 'vals');
'`uid` = "' . $u->info['id'] . '" AND `time` >= ' . strtotime('now 00:00:00') . ' AND `vars` = "statistic_today" LIMIT 1', $statisticToday = [0, 0, 0, 0,];
1 if ($sf) {
); [$statisticToday[0], $statisticToday[1], $statisticToday[2], $statisticToday[3]] = Conversion::dataStringToArray($sf);
if (isset($sf['id'])) { $statisticToday[0] = $u->info['exp'] - $statisticToday[0];
$sfe = Conversion::dataStringToArray($sf['vals']); $statisticToday[1] = $u->info['win'] - $statisticToday[1];
$sf[0] = $u->info['exp'] - (int)$sfe['e']; $statisticToday[2] = $u->info['lose'] - $statisticToday[2];
$sf[1] = $u->info['win'] - (int)$sfe['w']; $statisticToday[3] = $u->info['nich'] - $statisticToday[3];
$sf[2] = $u->info['lose'] - (int)$sfe['l'];
$sf[3] = $u->info['nich'] - (int)$sfe['n'];
unset($sfe);
} else {
$sf = [0 => 0, 1 => 0, 2 => 0, 3 => 0];
} }
?> ?>
&nbsp; &nbsp; &nbsp; <B>За сегодня</B><BR> &nbsp; &nbsp; &nbsp; <B>За сегодня</B><BR>
&bull; Получено опыта: <?= $sf[0] ?><BR> &bull; Получено опыта: <?= $statisticToday[0] ?><BR>
&bull; Одержано побед: <?= $sf[1] ?><BR> &bull; Одержано побед: <?= $statisticToday[1] ?><BR>
&bull; Проиграно битв: <?= $sf[2] ?><BR> &bull; Проиграно битв: <?= $statisticToday[2] ?><BR>
&bull; Ничьих: <?= $sf[3] ?><BR> &bull; Ничьих: <?= $statisticToday[3] ?><BR>
</div> </div>
</div> </div>
<?php if ($znn) { <?php if ($znn) {

View File

@ -247,8 +247,7 @@ if ($r === FightRequest::BATTLE_RAZDEL_ENDED) {
[$zg['id']] [$zg['id']]
); );
foreach ($users as $user) { foreach ($users as $user) {
${'tm' . $user['team']} .= '<b>' . $user['login'] . '</b> [' . $user['level'] . ']<a href="info/' . $user['id'] . '" target="_blank"><img src="' . Config::img( ${'tm' . $user['team']} .= '<b>' . $user['login'] . '</b> [' . $user['level'] . ']<a href="info/' . $user['id'] . '" target="_blank"><img src="' . Config::img() . '/i/inf_capitalcity.gif" title="Инф. о ' . $user['login'] . '" alt="inf"></a><br>';
) . '/i/inf_capitalcity.gif" title="Инф. о ' . $user['login'] . '" alt="inf"></a><br>';
} }
if (empty($tm1)) { if (empty($tm1)) {
$tm1 = 'группа пока не набрана'; $tm1 = 'группа пока не набрана';
@ -572,6 +571,4 @@ if ($zv->error) {
<td><?php $zv->seeZv($zi, $r); ?></td> <td><?php $zv->seeZv($zi, $r); ?></td>
</tr> </tr>
</table> </table>
<div style="text-align: right; margin-top: 5px;">
<?= Config::get('counters') ?>
</div> </div>

View File

@ -119,22 +119,22 @@ $allprice = Battle::getType($allprice, $thisBattle['smert'] == 1);
} }
if (event.keyCode == 49) { if (event.keyCode == 49) {
change_radioKeys(1, false); change_radioKeys(1);
} }
if (event.keyCode == 50) { if (event.keyCode == 50) {
change_radioKeys(2, false); change_radioKeys(2);
} }
if (event.keyCode == 51) { if (event.keyCode == 51) {
change_radioKeys(3, false); change_radioKeys(3);
} }
if (event.keyCode == 52) { if (event.keyCode == 52) {
change_radioKeys(4, false); change_radioKeys(4);
} }
if (event.keyCode == 53) { if (event.keyCode == 53) {
change_radioKeys(5, false); change_radioKeys(5);
} }
if (event.keyCode == 48) { if (event.keyCode == 48) {
change_radioKeys(0, false); change_radioKeys();
} }
@ -188,10 +188,10 @@ $allprice = Battle::getType($allprice, $thisBattle['smert'] == 1);
<script src="//img.new-combats.tech/js/jx/jquery.form.js" type="text/javascript"></script> <script src="//img.new-combats.tech/js/jx/jquery.form.js" type="text/javascript"></script>
<script type="text/javascript" src="/js/jquery.cookie.js"></script> <script type="text/javascript" src="/js/jquery.cookie.js"></script>
<script type="text/javascript"> <script type="text/javascript">
var login = '<?= $u->info['login']; ?>'; let login = '<?= $u->info['login']; ?>';
var za = <?= (int)$u->stats['zona']; ?>; let za = <?= (int)$u->stats['zona']; ?>;
var zb = <?= (int)$u->stats['zonb']; ?>; let zb = <?= (int)$u->stats['zonb']; ?>;
var level = <?= $u->info['level']; ?>; let level = <?= $u->info['level']; ?>;
function replaceAll(find, replace, str) { function replaceAll(find, replace, str) {
return str.replace(new RegExp(find, 'g'), replace); return str.replace(new RegExp(find, 'g'), replace);
@ -207,9 +207,7 @@ $allprice = Battle::getType($allprice, $thisBattle['smert'] == 1);
return null; return null;
} }
if (delimiter == '' if (!delimiter) {
|| delimiter == false
|| delimiter == null) {
return false; return false;
} }
@ -220,7 +218,7 @@ $allprice = Battle::getType($allprice, $thisBattle['smert'] == 1);
return emptyArray; return emptyArray;
} }
if (delimiter == true) { if (delimiter) {
delimiter = '1'; delimiter = '1';
} }
@ -1076,7 +1074,7 @@ $allprice = Battle::getType($allprice, $thisBattle['smert'] == 1);
document.getElementById('reflesh_btn').setAttribute("disabled", "disabled"); document.getElementById('reflesh_btn').setAttribute("disabled", "disabled");
document.getElementById('btn_down_img1').setAttribute("onclick", ""); document.getElementById('btn_down_img1').setAttribute("onclick", "");
document.getElementById('btn_down_img1').setAttribute("disabled", "disabled"); document.getElementById('btn_down_img1').setAttribute("disabled", "disabled");
reflesh(true); reflesh();
timedCount(); timedCount();
} }

View File

@ -104,9 +104,9 @@ if ($u->room['file'] != 'bk') {
<small> <small>
<HR> <HR>
<?php $hgo = $u->testHome(); <?php
if (!isset($hgo['id'])) { ?><INPUT onclick="location.href='main.php?homeworld=<?= $code; ?>';" class="btn" value="Возврат" type="button" name="combats2"><?php } if ($u->testHome()) { ?><INPUT onclick="location.href='main.php?homeworld=<?= $code; ?>';" class="btn" value="Возврат" type="button" name="combats2"><?php }
unset($hgo); ?> ?>
<br/> <br/>
<strong>Внимание!Смените пароль на уникальный,который не использовался ранее в подобных проектах,это обезопасит вашего персонажа от взлома.<BR> <strong>Внимание!Смените пароль на уникальный,который не использовался ранее в подобных проектах,это обезопасит вашего персонажа от взлома.<BR>
<em>Администрация.</strong> </em></small> <BR> <em>Администрация.</strong> </em></small> <BR>

View File

@ -1,76 +1,107 @@
<?php <?php
if(!defined('GAME')) if (!defined('GAME')) {
{ die();
die();
} }
if($u->room['file']=='bk2') if ($u->room['file'] == 'bk2') {
{ ?>
?> <table width="100%" border="0" cellspacing="0" cellpadding="0">
<table width="100%" border="0" cellspacing="0" cellpadding="0"> <tr>
<tr> <td width="250" valign="top">
<td width="250" valign="top"> <?php $usee = $u->getInfoPers($u->info['id'], 0);
<?php $usee = $u->getInfoPers($u->info['id'],0); if($usee!=false){ echo $usee[0]; }else{ echo 'information is lost.'; } ?> if ($usee != false) {
</td> echo $usee[0];
<td width="230" valign="top" style="padding-top:19px;"><?php require_once('modules/stats_loc.php'); ?></td> } else {
<td valign="top"><div align="right"> echo 'information is lost.';
<?php if($u->error!=''){ echo '<font color="red"><b>'.$u->error.'</b></font>'; } ?> } ?>
<table border="0" cellpadding="0" cellspacing="0"> </td>
<tr align="right" valign="top"> <td width="230" valign="top" style="padding-top:19px;"><?php require_once('modules/stats_loc.php'); ?></td>
<td> <td valign="top">
<?php if($re!=''){ echo '<font color="red"><b>'.$re.'</b></font>'; } ?> <div align="right">
<table width="500" border="0" cellspacing="0" cellpadding="0"> <?php if ($u->error != '') {
<tr> echo '<font color="red"><b>' . $u->error . '</b></font>';
<td> } ?>
<div style="position:relative; cursor: pointer; width: 500;" id="ione"><img src="//img.new-combats.tech/i/images/300x225/club/navig3.jpg" id="img_ione" width="500" height="240" border="1"/> <table border="0" cellpadding="0" cellspacing="0">
<div style="position:absolute; left:162px; top:125px; width:16px; height:18px; z-index:90;"><img src="//img.new-combats.tech/i/images/300x225/fl1.gif" width="16" height="18" title="Вы находитесь в '<?= $u->room['name']; ?>'" /></div> <tr align="right" valign="top">
<div style="position:absolute; left:281px; top:173px; width:122px; height:31px; z-index:90;"><img <?php thisInfRm('1.180.0.221'); ?> onclick="location='main.php?loc=1.180.0.221';" onmouseover="this.className='aFilterhover';" onmouseout="this.className='aFilter';" src="//img.new-combats.tech/i/images/300x225/map_sec5.gif" width="122" height="31" class="aFilter" /></div> <td>
<div style="position:absolute; left:23px; top:116px; width:120px; height:35px; z-index:90;"><img onmouseover="this.className='aFilterhover';" onmouseout="this.className='aFilter';" src="//img.new-combats.tech/i/images/300x225/map_2stair.gif" width="120" height="35" class="aFilter" /></div> <?php if ($re != '') {
echo '<font color="red"><b>' . $re . '</b></font>';
<div style="position:absolute; left:36px; top:41px; width:63px; height:40px; z-index:90;"><img <?php thisInfRm('1.180.0.XX'); ?> onclick="location='main.php?loc=1.180.0.XX';" onmouseover="this.className='aFilterhover';" onmouseout="this.className='aFilter';" src="//img.new-combats.tech/i/images/300x225/map_sec2.gif" width="63" height="40" class="aFilter" /></div> } ?>
<table width="500" border="0" cellspacing="0" cellpadding="0">
<div style="position:absolute; left:24px; top:180px; width:91px; height:43px; z-index:90;"><img <?php thisInfRm('1.180.0.3'); ?> onclick="location='main.php?loc=1.180.0.3';" onmouseover="this.className='aFilterhover';" onmouseout="this.className='aFilter';" src="//img.new-combats.tech/i/images/300x225/map_sec1.gif" width="91" height="43" class="aFilter" /></div> <tr>
<div style="position:absolute; left:122px; top:52px; width:123px; height:39px; z-index:90;"><img onmouseover="this.className='aFilterhover';" onmouseout="this.className='aFilter';" src="//img.new-combats.tech/i/images/300x225/map_sec7.gif" width="123" height="39" class="aFilter" /></div> <td>
<div style="position:absolute; left:305px; top:51px; width:123px; height:30px; z-index:90;"><img <?php thisInfRm('1.180.0.224'); ?> onclick="location='main.php?loc=1.180.0.224';" onmouseover="this.className='aFilterhover';" onmouseout="this.className='aFilter';" src="//img.new-combats.tech/i/images/300x225/map_sec6.gif" width="123" height="30" class="aFilter" /></div> <div style="position:relative; cursor: pointer; width: 500;" id="ione"><img src="//img.new-combats.tech/i/images/300x225/club/navig3.jpg" id="img_ione"
<div style="position:absolute; left:391px; top:120px; width:89px; height:32px; z-index:90;"><img onmouseover="this.className='aFilterhover';" onmouseout="this.className='aFilter';" src="//img.new-combats.tech/i/images/300x225/map_sec4.gif" width="89" height="32" class="aFilter" /></div> width="500" height="240" border="1"/>
<div id="snow"></div> <div style="position:absolute; left:162px; top:125px; width:16px; height:18px; z-index:90;"><img src="//img.new-combats.tech/i/images/300x225/fl1.gif"
<?= $goline; ?> width="16" height="18"
</div> title="Вы находитесь в '<?= $u->room['name']; ?>'"/>
</td> </div>
</tr> <div style="position:absolute; left:281px; top:173px; width:122px; height:31px; z-index:90;"><img <?php thisInfRm('1.180.0.221'); ?>
</table> onclick="location='main.php?loc=1.180.0.221';" onmouseover="this.className='aFilterhover';" onmouseout="this.className='aFilter';"
<div style="display:none; height:0px " id="moveto"></div> src="//img.new-combats.tech/i/images/300x225/map_sec5.gif" width="122" height="31" class="aFilter"/></div>
<?php <div style="position:absolute; left:23px; top:116px; width:120px; height:35px; z-index:90;"><img onmouseover="this.className='aFilterhover';"
if($u->info['level']<6) onmouseout="this.className='aFilter';"
{ src="//img.new-combats.tech/i/images/300x225/map_2stair.gif"
echo ' width="120" height="35" class="aFilter"/></div>
<div style="position:absolute; left:36px; top:41px; width:63px; height:40px; z-index:90;"><img <?php thisInfRm('1.180.0.XX'); ?>
onclick="location='main.php?loc=1.180.0.XX';" onmouseover="this.className='aFilterhover';" onmouseout="this.className='aFilter';"
src="//img.new-combats.tech/i/images/300x225/map_sec2.gif" width="63" height="40" class="aFilter"/></div>
<div style="position:absolute; left:24px; top:180px; width:91px; height:43px; z-index:90;"><img <?php thisInfRm('1.180.0.3'); ?>
onclick="location='main.php?loc=1.180.0.3';" onmouseover="this.className='aFilterhover';" onmouseout="this.className='aFilter';"
src="//img.new-combats.tech/i/images/300x225/map_sec1.gif" width="91" height="43" class="aFilter"/></div>
<div style="position:absolute; left:122px; top:52px; width:123px; height:39px; z-index:90;"><img onmouseover="this.className='aFilterhover';"
onmouseout="this.className='aFilter';"
src="//img.new-combats.tech/i/images/300x225/map_sec7.gif"
width="123" height="39" class="aFilter"/></div>
<div style="position:absolute; left:305px; top:51px; width:123px; height:30px; z-index:90;"><img <?php thisInfRm('1.180.0.224'); ?>
onclick="location='main.php?loc=1.180.0.224';" onmouseover="this.className='aFilterhover';" onmouseout="this.className='aFilter';"
src="//img.new-combats.tech/i/images/300x225/map_sec6.gif" width="123" height="30" class="aFilter"/></div>
<div style="position:absolute; left:391px; top:120px; width:89px; height:32px; z-index:90;"><img onmouseover="this.className='aFilterhover';"
onmouseout="this.className='aFilter';"
src="//img.new-combats.tech/i/images/300x225/map_sec4.gif"
width="89" height="32" class="aFilter"/></div>
<div id="snow"></div>
<?= $goline; ?>
</div>
</td>
</tr>
</table>
<div style="display:none; height:0px " id="moveto"></div>
<?php
if ($u->info['level'] < 6) {
echo '
Вам все время кажется что за вами следят? Чудится, что случайный попутчик мечтает всадить вам топор в спину? При совершении очередной покупки в гос. магазине мучает ощущение, что вас обманули? Кажется, что симпатичная девушка напротив смотрит на вас как на пищу? Успокойтесь, это не паранойя. Это реалии Capital city. Города Тьмы. Вам все время кажется что за вами следят? Чудится, что случайный попутчик мечтает всадить вам топор в спину? При совершении очередной покупки в гос. магазине мучает ощущение, что вас обманули? Кажется, что симпатичная девушка напротив смотрит на вас как на пищу? Успокойтесь, это не паранойя. Это реалии Capital city. Города Тьмы.
'; ';
}else{ } else {
echo 'Возможно, вы ошиблись этажом - настоящие сражения проходят этажом выше.'; echo 'Возможно, вы ошиблись этажом - настоящие сражения проходят этажом выше.';
} ?> } ?>
</small></div></td> </small>
<td> </div>
<!-- <br /><span class="menutop"><nobr>Комната для новичков</nobr></span>--> </td>
</td> <td>
<!-- <br /><span class="menutop"><nobr>Комната для новичков</nobr></span>-->
</td>
</tr> </tr>
</table> </table>
<small> <small>
<HR> <HR>
<?php $hgo = $u->testHome(); if(!isset($hgo['id'])){ ?><INPUT onclick="location.href='main.php?homeworld=<?= $code; ?>';" class="btn" value="Возврат" type="button" name="combats2"><?php } unset($hgo); ?> <?php if ($u->testHome()) { ?><INPUT onclick="location.href='main.php?homeworld=<?= $code; ?>';" class="btn" value="Возврат" type="button" name="combats2"><?php } ?>
<INPUT onclick="location.href='main.php?clubmap=<?= $code; ?>';" class="btn" value="Карта клуба" type="button" name="combats2"> <INPUT onclick="location.href='main.php?clubmap=<?= $code; ?>';" class="btn" value="Карта клуба" type="button" name="combats2">
<INPUT id="forum" class="btn" onclick="window.open('<?= $c['forum']; ?>', 'forum', 'location=yes,menubar=yes,status=yes,resizable=yes,toolbar=yes,scrollbars=yes,scrollbars=yes')" value="Форум" type="button" name="forum"> <INPUT id="forum" class="btn" onclick="window.open('<?= $c['forum']; ?>', 'forum', 'location=yes,menubar=yes,status=yes,resizable=yes,toolbar=yes,scrollbars=yes,scrollbars=yes')" value="Форум"
<INPUT class="btn" onclick="window.open('/encicl/help/top1.html', 'help', 'height=300,width=500,location=no,menubar=no,status=no,toolbar=no,scrollbars=yes')" value="Подсказка" type="button"> type="button" name="forum">
<INPUT class="btn" value="Объекты" type="button"> <INPUT class="btn" onclick="window.open('/encicl/help/top1.html', 'help', 'height=300,width=500,location=no,menubar=no,status=no,toolbar=no,scrollbars=yes')" value="Подсказка" type="button">
<br /> <INPUT class="btn" value="Объекты" type="button">
<br/>
<strong>Внимание!Смените пароль на уникальный,который не использовался ранее в подобных проектах,это обезопасит вашего персонажа от взлома.<BR> <strong>Внимание!Смените пароль на уникальный,который не использовался ранее в подобных проектах,это обезопасит вашего персонажа от взлома.<BR>
<em>Администрация.</strong> </em></small> <BR> <em>Администрация.</strong> </em></small> <BR>
<?= $rowonmax; ?><BR> <?= $rowonmax; ?><BR>
</div></td> </div></td>
</tr> </tr>
</table> </table>
<?php <?php
} }
?> ?>

View File

@ -1,6 +1,7 @@
<?php <?php
use Helper\Conversion; use Helper\Conversion;
use Model\ActionModel;
if (!defined('GAME')) { if (!defined('GAME')) {
die(); die();
@ -25,7 +26,7 @@ if ($u->room['file'] == 'dungeon_enter') {
} // Собираем группу для похода } // Собираем группу для похода
//if( $u->info['admin'] > 0 ) var_info($dungeon); //if( $u->info['admin'] > 0 ) var_info($dungeon);
$all_dungeon = mysql_query('SELECT `city` FROM `dungeon_room` WHERE `city` IS NOT NULL AND `active`=1 '); $all_dungeon = mysql_query('select city from dungeon_room where city is not null and active=1 ');
while ($t = mysql_fetch_array($all_dungeon)) { while ($t = mysql_fetch_array($all_dungeon)) {
$dungeon['list'][] = $t['city']; $dungeon['list'][] = $t['city'];
} }
@ -39,16 +40,17 @@ if ($u->room['file'] == 'dungeon_enter') {
} }
} }
$dungeon_timeout = $u->testAction('`uid` = "' . $u->info['id'] . '" AND `vars` = "psh0" AND `time` > ' . (time() - 60 * 60 * 2) . ' LIMIT 1', 1); /** @var int $dungeonTimeout Задержка на посещение пещеры. */
$dungeonTimeout = ActionModel::getOne(["uid = {$u->info['id']}", 'vars = psh0', "time > unix_timestamp() - 7200"], 'time');
if ($u->info['admin'] > 0) { if ($u->isAdmin()) {
unset($dungeon_timeout); $dungeonTimeout = 0;
} // $dungeon_timeout - задержка на посещение пещеры. }
if (isset($dungeon_timeout['id'])) // Кто-то передумал и не пойдет в пещеру, так-как уже там был.
{ if ($dungeonTimeout) { // Кто-то передумал и не пойдет в пещеру, так-как уже там был.
$dungeonGo = 0; $dungeonGo = 0;
if (isset($_GET['start'])) { if (isset($_GET['start'])) {
$error = 'До следующего похода осталось еще: ' . Conversion::secondsToTimeout(60 * 60 * 2 - time() + $dungeon_timeout['time']); $error = 'До следующего похода осталось еще: ' . Conversion::secondsToTimeout(60 * 60 * 2 - time() + $dungeonTimeout);
} }
} }
@ -132,8 +134,7 @@ if ($u->room['file'] == 'dungeon_enter') {
if ($cord[0] != 0 || $cord[1] != 0) { if ($cord[0] != 0 || $cord[1] != 0) {
mysql_query( mysql_query(
'INSERT INTO `dungeon_items` (`dn`,`user`,`item_id`,`time`,`x`,`y`,`onlyfor`,`quest`) VALUES ( 'INSERT INTO `dungeon_items` (`dn`,`user`,`item_id`,`time`,`x`,`y`,`onlyfor`,`quest`) VALUES (
"' . $zid . '","' . $u->info['id'] . '","' . $xr2[0] . '","' . time( "' . $zid . '","' . $u->info['id'] . '","' . $xr2[0] . '","' . time() . '","' . $cord[0] . '","' . $cord[1] . '","' . $u->info['id'] . '","' . $pl['id'] . '"
) . '","' . $cord[0] . '","' . $cord[1] . '","' . $u->info['id'] . '","' . $pl['id'] . '"
)' )'
); );
} }
@ -614,9 +615,10 @@ if ($u->room['file'] == 'dungeon_enter') {
<tr> <tr>
<td bgcolor="#D3D3D3"><img src="//img.new-combats.tech/i/move/links.gif" width="9" height="7"/></td> <td bgcolor="#D3D3D3"><img src="//img.new-combats.tech/i/move/links.gif" width="9" height="7"/></td>
<td bgcolor="#D3D3D3" nowrap="nowrap"> <td bgcolor="#D3D3D3" nowrap="nowrap">
<a href="#" id="greyText" class="menutop" onclick="location='main.php?loc=<?= $shop['code'] ?>&rnd=<?= $code; ?>';" title="<?php thisInfRm( <a href="#" id="greyText" class="menutop" onclick="location='main.php?loc=<?= $shop['code'] ?>&rnd=<?= $code; ?>';"
$shop['code'], 1 title="<?php thisInfRm(
); ?>">Рыцарский магазин</a></td> $shop['code'], 1
); ?>">Рыцарский магазин</a></td>
</tr> </tr>
<?php } <?php }
} ?> } ?>
@ -689,9 +691,8 @@ if ($u->room['file'] == 'dungeon_enter') {
<form autocomplete="off" action='/main.php' method="post" name="F1" id="F1"> <form autocomplete="off" action='/main.php' method="post" name="F1" id="F1">
<?php <?php
$qsee = ''; $qsee = '';
$hgo = $u->testAction( $questTimeout = ActionModel::getOne(["uid = {$u->info['id']}", "room = {$u->info['room']}", "time >= unix_timestamp() - 86400", "vars = psh_qt_{$dungeon['city']}"], 'time');
'`uid` = "' . $u->info['id'] . '" AND `room` = "' . $u->info['room'] . '" AND `time` >= ' . (time() - 60 * 60 * 24) . ' AND `vars` = "psh_qt_' . $dungeon['city'] . '" LIMIT 1', 1
);
$qc = 0; // Quest Count $qc = 0; // Quest Count
//Генерируем список текущих квестов //Генерируем список текущих квестов
$sp = mysql_query('SELECT * FROM `actions` WHERE `vars` LIKE "%start_quest%" AND `vals` = "go" AND `uid` = "' . $u->info['id'] . '" LIMIT 100'); $sp = mysql_query('SELECT * FROM `actions` WHERE `vars` LIKE "%start_quest%" AND `vals` = "go" AND `uid` = "' . $u->info['id'] . '" LIMIT 100');
@ -717,8 +718,8 @@ if ($u->room['file'] == 'dungeon_enter') {
} }
if (isset($_GET['add_quest']) && $qc == 0) { if (isset($_GET['add_quest']) && $qc == 0) {
if (isset($hgo['id'])) { if ($questTimeout) {
echo '<font color="red"><b>Нельзя получать задания чаще одного раза в сутки</b></font><br>'; echo '<b style="color: red;">Нельзя получать задания чаще одного раза в сутки</b><br>';
} else { } else {
$sp = mysql_query('SELECT * FROM `quests` WHERE `line` = ' . $dungeon['id'] . ''); $sp = mysql_query('SELECT * FROM `quests` WHERE `line` = ' . $dungeon['id'] . '');
$dq_add = []; $dq_add = [];
@ -775,13 +776,14 @@ if ($u->room['file'] == 'dungeon_enter') {
<?php <?php
if ($qc > 0) { if ($qc > 0) {
echo 'Вы еще не справились с текущим заданием.'; echo 'Вы еще не справились с текущим заданием.';
} elseif (!isset($hgo['id']) && $qc == 0) { } elseif (!$questTimeout && $qc == 0) {
?> ?>
<br/> <br/>
<input type='button' value='Получить задание' onclick='location="main.php?rz=1&add_quest=1"'/> <input type='button' value='Получить задание' onclick='location="main.php?rz=1&add_quest=1"'/>
<?php <?php
} else { } else {
echo 'Получить новое задание можно <b>' . date('d.m.Y H:i', $hgo['time'] + 60 * 60 * 24) . '</b> ( Через ' . Conversion::secondsToTimeout($hgo['time'] + 60 * 60 * 24 - time()) . ' )'; echo 'Получить новое задание можно <b>' . date('d.m.Y H:i', $questTimeout + 60 * 60 * 24) .
'</b> ( Через ' . Conversion::secondsToTimeout($questTimeout + 60 * 60 * 24 - time()) . ' )';
} }
?> ?>
</span> </span>
@ -995,7 +997,6 @@ if ($u->room['file'] == 'dungeon_enter') {
); );
while ($chk_pl = mysql_fetch_array($chk_cl)) { while ($chk_pl = mysql_fetch_array($chk_cl)) {
if (mysql_query('UPDATE `items_users` SET `delete` = "' . time() . '" WHERE `id` = "' . $chk_pl['id'] . '" LIMIT 1')) { if (mysql_query('UPDATE `items_users` SET `delete` = "' . time() . '" WHERE `id` = "' . $chk_pl['id'] . '" LIMIT 1')) {
;
} }
{ {
$x++; $x++;
@ -1073,7 +1074,7 @@ if ($u->room['file'] == 'dungeon_enter') {
} }
} else { } else {
echo 'Поход в пещеры разрешен один раз в два часа. Осталось еще: ' . Conversion::secondsToTimeout( echo 'Поход в пещеры разрешен один раз в два часа. Осталось еще: ' . Conversion::secondsToTimeout(
60 * 60 * 2 - time() + $dungeon_timeout['time'] 60 * 60 * 2 - time() + $dungeonTimeout
) . '<br><small style="color:grey">Но Вы всегда можете приобрести ключ от прохода у любого &quot;копателя пещер&quot; в Торговом зале ;)</small>'; ) . '<br><small style="color:grey">Но Вы всегда можете приобрести ключ от прохода у любого &quot;копателя пещер&quot; в Торговом зале ;)</small>';
} }
} }

View File

@ -3,6 +3,7 @@
use Core\Config; use Core\Config;
use Core\Db; use Core\Db;
use Helper\Conversion; use Helper\Conversion;
use Model\ActionModel;
use User\StatsModel; use User\StatsModel;
if (!defined('GAME')) { if (!defined('GAME')) {
@ -50,15 +51,17 @@ if ($u->info['dn'] > 0) {
} }
} }
$dungeon_timeout = $u->testAction('`uid` = "' . $u->info['id'] . '" AND `vars` = "psh0" AND `time` > ' . (time() - 60 * 60 * 2) . ' LIMIT 1', 1); /** @var int $dungeonTimeout Задержка на посещение пещеры. */
$dungeonTimeout = ActionModel::getOne(["uid = {$u->info['id']}", 'vars = psh0', "time > unix_timestamp() - 7200"], 'time');
if ($u->isAdmin()) { if ($u->isAdmin()) {
unset($dungeon_timeout); $dungeonTimeout = 0;
} // $dungeon_timeout - задержка на посещение пещеры. }
if (isset($dungeon_timeout['id'])) { // Кто-то передумал и не пойдет в пещеру, так-как уже там был.
if ($dungeonTimeout) { // Кто-то передумал и не пойдет в пещеру, так-как уже там был.
$dungeonGo = 0; $dungeonGo = 0;
if (isset($_GET['start'])) { if (isset($_GET['start'])) {
$error = 'До следующего похода осталось еще: ' . Conversion::secondsToTimeout(60 * 60 * 2 - time() + $dungeon_timeout['time']); $error = 'До следующего похода осталось еще: ' . Conversion::secondsToTimeout(60 * 60 * 2 - time() + $dungeonTimeout);
} }
} }
@ -131,8 +134,7 @@ if (isset($_GET['start']) && $zv['uid'] == $u->info['id'] && $dungeonGo == 1) {
if ($cord[0] != 0 || $cord[1] != 0) { if ($cord[0] != 0 || $cord[1] != 0) {
mysql_query( mysql_query(
'INSERT INTO `dungeon_items` (`dn`,`user`,`item_id`,`time`,`x`,`y`,`onlyfor`,`quest`) VALUES ( 'INSERT INTO `dungeon_items` (`dn`,`user`,`item_id`,`time`,`x`,`y`,`onlyfor`,`quest`) VALUES (
"' . $zid . '","' . $u->info['id'] . '","' . $xr2[0] . '","' . time( "' . $zid . '","' . $u->info['id'] . '","' . $xr2[0] . '","' . time() . '","' . $cord[0] . '","' . $cord[1] . '","' . $u->info['id'] . '","' . $pl['id'] . '"
) . '","' . $cord[0] . '","' . $cord[1] . '","' . $u->info['id'] . '","' . $pl['id'] . '"
)' )'
); );
} }
@ -511,9 +513,6 @@ if ($roomSection == 1) {
<form autocomplete="off" action='/main.php' method="post" name="F1" id="F1"> <form autocomplete="off" action='/main.php' method="post" name="F1" id="F1">
<?php <?php
$qsee = ''; $qsee = '';
$hgo = $u->testAction(
'`uid` = "' . $u->info['id'] . '" AND `room` = "' . $u->info['room'] . '" AND `time` >= ' . (time() - 60 * 60 * 24) . ' AND `vars` = "psh_qt_' . $dungeon['city'] . '" LIMIT 1', 1
);
$qc = 0; // Quest Count $qc = 0; // Quest Count
$qcc = []; $qcc = [];
//Генерируем список текущих квестов //Генерируем список текущих квестов
@ -569,20 +568,17 @@ if ($roomSection == 1) {
$dun5 = 12; //ПТП $dun5 = 12; //ПТП
} }
// //
$hgo = $u->testAction(
'`uid` = "' . $u->info['id'] . '" AND `room` = "' . $u->info['room'] . '" AND `time` >= ' . (time() - 60 * 60 * 24) . ' AND `vars` = "psh_qt_' . mysql_real_escape_string( $hgo = (bool)ActionModel::testCount(["uid = {$u->info['id']}", "room = {$u->info['room']}", "time >= unix_timestamp() - 86400", "vars = psh_qt_$qst_city"]);
$qst_city
) . '" LIMIT 1', 1
);
//$qcc
if ($qcc[$dun5] > 0) { if ($qcc[$dun5] > 0) {
echo '<font color="red"><b>У Вас уже есть задание, завершите его или отмените для получения нового.</b></font><br>'; echo '<b style="color: red;">У Вас уже есть задание, завершите его или отмените для получения нового.</b><br>';
} elseif ($qst_city != 'capitalcity' && $qst_city != 'angelscity' && $qst_city != 'suncity' && $qst_city != 'demonscity' && $qst_city != 'dreamscity' && $qst_city != 'abandonedplain' && $qst_city != 'izlom16' && $qst_city != 'sandcity' && $qst_city != 'emeraldscity' && $qst_city != 'devilscity') { } elseif ($qst_city != 'capitalcity' && $qst_city != 'angelscity' && $qst_city != 'suncity' && $qst_city != 'demonscity' && $qst_city != 'dreamscity' && $qst_city != 'abandonedplain' && $qst_city != 'izlom16' && $qst_city != 'sandcity' && $qst_city != 'emeraldscity' && $qst_city != 'devilscity') {
echo '<font color="red"><b>Для этой пещеры еще нет заданий</b></font><br>'; echo '<b style="color: red;">Для этой пещеры еще нет заданий</b><br>';
} elseif (isset($hgo['id'])) { } elseif ($hgo) {
echo '<font color="red"><b>Нельзя получать задания чаще одного раза в сутки</b></font><br>'; echo '<b style="color: red;">Нельзя получать задания чаще одного раза в сутки</b><br>';
} else { } else {
$sp = mysql_query('SELECT * FROM `quests` WHERE `line` = ' . $dun5 . ''); $sp = mysql_query('SELECT * FROM `quests` WHERE `line` = ' . $dun5);
$dq_add = []; $dq_add = [];
while ($pl = mysql_fetch_array($sp)) { while ($pl = mysql_fetch_array($sp)) {
if ($u->rep['rep' . $qst_city] == 24999) { if ($u->rep['rep' . $qst_city] == 24999) {
@ -620,101 +616,27 @@ if ($roomSection == 1) {
$qsee = 'К сожалению у вас нет ни одного задания<br/><br/>'; $qsee = 'К сожалению у вас нет ни одного задания<br/><br/>';
} }
?> ?>
<Br/> <br>
<style>
.btnnewred {
background-color: #ca726d;
color: #f8d2d0;
border-color: #b44039;
cursor: default;
}
.btnnewred:hover {
background-color: #ca726d;
cursor: default;
}
</style>
<FIELDSET> <FIELDSET>
<LEGEND style="color: maroon; font-weight: bold;">Текущие задания:</LEGEND> <LEGEND style="color: maroon; font-weight: bold;">Текущие задания:</LEGEND>
<?= $qsee ?> <?= $qsee ?>
<span style="padding-left: 10px;"><strong>Получить задание:</strong><br> <span style="padding-left: 10px;"><strong>Получить задание:</strong><br>
<?php <?php
$hgo1 = $u->testAction('`uid` = "' . $u->info['id'] . '" AND `room` = "' . $u->info['room'] . '" AND `time` >= ' . (time() - 60 * 60 * 24) . ' AND `vars` = "psh_qt_capitalcity" LIMIT 1', 1); $html = [];
$hgo2 = $u->testAction('`uid` = "' . $u->info['id'] . '" AND `room` = "' . $u->info['room'] . '" AND `time` >= ' . (time() - 60 * 60 * 24) . ' AND `vars` = "psh_qt_angelscity" LIMIT 1', 1); foreach ($dunname as [$dungeonSysName, $dungeonName]) {
$hgo3 = $u->testAction('`uid` = "' . $u->info['id'] . '" AND `room` = "' . $u->info['room'] . '" AND `time` >= ' . (time() - 60 * 60 * 24) . ' AND `vars` = "psh_qt_suncity" LIMIT 1', 1); $dungeonTimeout = ActionModel::getOne(["uid = {$u->info['id']}", "room = {$u->info['room']}", 'time >= unix_timestamp() - 86400', "vars = psh_qt_$dungeonSysName"], 'time');
$hgo4 = $u->testAction('`uid` = "' . $u->info['id'] . '" AND `room` = "' . $u->info['room'] . '" AND `time` >= ' . (time() - 60 * 60 * 24) . ' AND `vars` = "psh_qt_demonscity" LIMIT 1', 1); if ($dungeonTimeout) {
$hgo5 = $u->testAction('`uid` = "' . $u->info['id'] . '" AND `room` = "' . $u->info['room'] . '" AND `time` >= ' . (time() - 60 * 60 * 24) . ' AND `vars` = "psh_qt_dreamscity" LIMIT 1', 1); $formattedTimeout = Conversion::secondsToTimeout(86400 + $dungeonTimeout - time());
$hgo6 = $u->testAction( $html[] = <<<HTML
'`uid` = "' . $u->info['id'] . '" AND `room` = "' . $u->info['room'] . '" AND `time` >= ' . (time() - 60 * 60 * 24) . ' AND `vars` = "psh_qt_abandonedplain" LIMIT 1', 1 <button disabled class='btn btn-danger'>Задание будет через $formattedTimeout ($dungeonName)</button>
); HTML;
$hgo7 = $u->testAction('`uid` = "' . $u->info['id'] . '" AND `room` = "' . $u->info['room'] . '" AND `time` >= ' . (time() - 60 * 60 * 24) . ' AND `vars` = "psh_qt_izlom16" LIMIT 1', 1); } else {
$hgo8 = $u->testAction('`uid` = "' . $u->info['id'] . '" AND `room` = "' . $u->info['room'] . '" AND `time` >= ' . (time() - 60 * 60 * 24) . ' AND `vars` = "psh_qt_sandcity" LIMIT 1', 1); $html[] = <<<HTML
$hgo9 = $u->testAction('`uid` = "' . $u->info['id'] . '" AND `room` = "' . $u->info['room'] . '" AND `time` >= ' . (time() - 60 * 60 * 24) . ' AND `vars` = "psh_qt_emeraldscity" LIMIT 1', 1); <button class="btn btn-success" onclick="location.href='/main.php?rz=1&add_quest=1&city_quest=$dungeonSysName'">$dungeonName</button>
$hgo10 = $u->testAction('`uid` = "' . $u->info['id'] . '" AND `room` = "' . $u->info['room'] . '" AND `time` >= ' . (time() - 60 * 60 * 24) . ' AND `vars` = "psh_qt_devilscity" LIMIT 1', 1); HTML;
}
}
if (!isset($hgo1['id'])) { ?> echo implode(' ', $html);
<button class="btn btn-success" onclick="location.href='/main.php?rz=1&add_quest=1&city_quest=capitalcity'">Пещера Тысячи Проклятий</button>
<?php } else { ?>
<input disabled="disabled" class="btn btn-danger" type='button' value='Задание будет через <?= Conversion::secondsToTimeout(
60 * 60 * 24 + $hgo1['time'] - time()
) ?> (Пещера Тысячи Проклятий)'
onclick='location="main.php?rz=1&add_quest=1&city_quest=capitalcity"'/>
<?php }
if (!isset($hgo2['id'])) { ?>
<input class="btn btn-success" type='button' value='Бездна' onclick='location="main.php?rz=1&add_quest=1&city_quest=angelscity"'/>
<?php } else { ?>
<input disabled="disabled" class="btn btn-danger" type='button' value='Задание будет через <?= Conversion::secondsToTimeout(60 * 60 * 24 + $hgo2['time'] - time()) ?> (Бездна)'
onclick='location="main.php?rz=1&add_quest=1&city_quest=angelscity"'/>
<?php }
if (!isset($hgo3['id'])) { ?>
<input class="btn btn-success" type='button' value='Грибница' onclick='location="main.php?rz=1&add_quest=1&city_quest=suncity"'/>
<?php } else { ?>
<input disabled="disabled" class="btn btn-danger" type='button' value='Задание будет через <?= Conversion::secondsToTimeout(60 * 60 * 24 + $hgo3['time'] - time()) ?> (Грибница)'
onclick='location="main.php?rz=1&add_quest=1&city_quest=suncity"'/>
<?php }
if (!isset($hgo4['id'])) { ?>
<input class="btn btn-success" type='button' value='Катакомбы' onclick='location="main.php?rz=1&add_quest=1&city_quest=demonscity"'/>
<?php } else { ?>
<input disabled="disabled" class="btn btn-danger" type='button' value='Задание будет через <?= Conversion::secondsToTimeout(60 * 60 * 24 + $hgo4['time'] - time()) ?> (Катакомбы)'
onclick='location="main.php?rz=1&add_quest=1&city_quest=demonscity"'/>
<?php }
if (!isset($hgo5['id'])) { ?>
<input class="btn btn-success" type='button' value='Водосток' onclick='location="main.php?rz=1&add_quest=1&city_quest=dreamscity"'/>
<?php } else { ?>
<input disabled="disabled" class="btn btn-danger" type='button' value='Задание будет через <?= Conversion::secondsToTimeout(60 * 60 * 24 + $hgo5['time'] - time()) ?> (Водосток)'
onclick='location="main.php?rz=1&add_quest=1&city_quest=dreamscity"'/>
<?php }
if (!isset($hgo6['id'])) { ?>
<input class="btn btn-success" type='button' value='Гора Легиона' onclick='location="main.php?rz=1&add_quest=1&city_quest=abandonedplain"'/>
<?php } else { ?>
<input disabled="disabled" class="btn btn-danger" type='button' value='Задание будет через <?= Conversion::secondsToTimeout(60 * 60 * 24 + $hgo6['time'] - time()) ?> (Гора Легиона)'
onclick='location="main.php?rz=1&add_quest=1&city_quest=abandonedplain"'/>
<?php }
if (!isset($hgo7['id'])) { ?>
<input class="btn btn-success" type='button' value='Излом Хаоса' onclick='location="main.php?rz=1&add_quest=1&city_quest=izlom16"'/>
<?php } else { ?>
<input disabled="disabled" class="btn btn-danger" type='button' value='Задание будет через <?= Conversion::secondsToTimeout(60 * 60 * 24 + $hgo7['time'] - time()) ?> (Излом Хаоса)'
onclick='location="main.php?rz=1&add_quest=1&city_quest=izlom16"'/>
<?php }
if (!isset($hgo8['id'])) { ?>
<input class="btn btn-success" type='button' value='Пещеры Мглы' onclick='location="main.php?rz=1&add_quest=1&city_quest=sandcity"'/>
<?php } else { ?>
<input disabled="disabled" class="btn btn-danger" type='button' value='Задание будет через <?= Conversion::secondsToTimeout(60 * 60 * 24 + $hgo8['time'] - time()) ?> (Пещера Мглы)'
onclick='location="main.php?rz=1&add_quest=1&city_quest=sandcity"'/>
<?php }
if (!isset($hgo9['id'])) { ?>
<input class="btn btn-success" type='button' value='Потерянный Вход' onclick='location="main.php?rz=1&add_quest=1&city_quest=emeraldscity"'/>
<?php } else { ?>
<input disabled="disabled" class="btn btn-danger" type='button' value='Задание будет через <?= Conversion::secondsToTimeout(60 * 60 * 24 + $hgo9['time'] - time()) ?> (Потерянный Вход)'
onclick='location="main.php?rz=1&add_quest=1&city_quest=emeraldscity"'/>
<?php }
if (!isset($hgo10['id'])) { ?>
<input class="btn btn-success" type='button' value='Туманные Низины' onclick='location="main.php?rz=1&add_quest=1&city_quest=devilscity"'/>
<?php } else { ?>
<input disabled="disabled" class="btn btn-danger" type='button' value='Задание будет через <?= Conversion::secondsToTimeout(60 * 60 * 24 + $hgo10['time'] - time()) ?> (Туманные Низины)'
onclick='location="main.php?rz=1&add_quest=1&city_quest=devilscity"'/>
<?php }
?> ?>
</span> </span>
</FIELDSET> </FIELDSET>
@ -1081,7 +1003,7 @@ if ($roomSection == 1) {
} }
} else { } else {
echo 'Поход в пещеры разрешен один раз в два часа. Осталось еще: ' . Conversion::secondsToTimeout( echo 'Поход в пещеры разрешен один раз в два часа. Осталось еще: ' . Conversion::secondsToTimeout(
60 * 60 * 2 - time() + $dungeon_timeout['time'] 60 * 60 * 2 - time() + $dungeonTimeout
) . '<br><small style="color:grey">Но Вы всегда можете приобрести ключ от прохода у любого &quot;копателя пещер&quot; в Торговом зале ;)</small>'; ) . '<br><small style="color:grey">Но Вы всегда можете приобрести ключ от прохода у любого &quot;копателя пещер&quot; в Торговом зале ;)</small>';
} }

View File

@ -1,4 +1,9 @@
<?php <?php
use Core\Db;
use Model\ActionModel;
use User\ItemsModel;
if (!defined('GAME')) { if (!defined('GAME')) {
die(); die();
} }
@ -45,8 +50,7 @@ if (isset($_GET['elka_shar']) && isset($_GET['shar_name'])) //Украшение
'INSERT INTO `eff_users` 'INSERT INTO `eff_users`
(`id`,`id_eff`, `uid`, `name`, `data`, `overType`, `timeUse`, `timeAce`, `user_use`, `delete`, `v1`, `v2`, `img2`, `x`, `hod`, `bj`, `sleeptime`, `no_Ace`, `file_finish`, `tr_life_user`, `deactiveTime`, `deactiveLast`, `mark`, `bs`) (`id`,`id_eff`, `uid`, `name`, `data`, `overType`, `timeUse`, `timeAce`, `user_use`, `delete`, `v1`, `v2`, `img2`, `x`, `hod`, `bj`, `sleeptime`, `no_Ace`, `file_finish`, `tr_life_user`, `deactiveTime`, `deactiveLast`, `mark`, `bs`)
VALUES VALUES
(NULL, "477", "' . $u->info['id'] . '", "Благословение Ёлки x1", "add_hpAll=5", "110", "' . time( (NULL, "477", "' . $u->info['id'] . '", "Благословение Ёлки x1", "add_hpAll=5", "110", "' . time() . '", "0", "", "0", "0", "0", "", "1", "-1", "0", "0", "0", "", "0", "0", "0", "0", "0")'
) . '", "0", "", "0", "0", "0", "", "1", "-1", "0", "0", "0", "", "0", "0", "0", "0", "0")'
); );
if (isset($effeadd)) { if (isset($effeadd)) {
@ -65,9 +69,11 @@ if (isset($_GET['elka_shar']) && isset($_GET['shar_name'])) //Украшение
if (isset($_GET['take_gift']) && (date('m') == 12 || (date('m') == 1 && date('d') <= 8))) { if (isset($_GET['take_gift']) && (date('m') == 12 || (date('m') == 1 && date('d') <= 8))) {
//получаем свой новогодний подарок за текущий год addItem($id,$uid) //получаем свой новогодний подарок за текущий год addItem($id,$uid)
$smt = $u->testAction('`uid` = "' . $u->info['id'] . '" AND `vars` = "take_gift_' . $dt . '" LIMIT 1', 1); $smt = (bool)ActionModel::testCount(["uid = $u->info['id']", "vars = take_gift_$dt"]);
if (!isset($smt['id'])) { if ($smt) {
$pid = \User\ItemsModel::addItem($pidid, $u->info['id']); echo '<font color=red>Вы уже получили свой подарок ;)</font>';
} else {
$pid = ItemsModel::addItem($pidid, $u->info['id']);
if ($pid > 0) { if ($pid > 0) {
mysql_query('UPDATE `items_users` SET `gift` = "Администрация",`gtxt1` = "Поздравляем Вас с Новым Годом!" WHERE `id` = "' . $pid . '" AND `uid` = "' . $u->info['id'] . '" LIMIT 1'); mysql_query('UPDATE `items_users` SET `gift` = "Администрация",`gtxt1` = "Поздравляем Вас с Новым Годом!" WHERE `id` = "' . $pid . '" AND `uid` = "' . $u->info['id'] . '" LIMIT 1');
$u->addAction(time(), 'take_gift_' . $dt . '', $u->info['city']); $u->addAction(time(), 'take_gift_' . $dt . '', $u->info['city']);
@ -75,21 +81,19 @@ if (isset($_GET['take_gift']) && (date('m') == 12 || (date('m') == 1 && date('d'
} else { } else {
echo '<font color=red>Не удалось получить подарок...</font>'; echo '<font color=red>Не удалось получить подарок...</font>';
} }
} else {
echo '<font color=red>Вы уже получили свой подарок ;)</font>';
} }
} elseif (isset($_GET['del'])) { } elseif (isset($_GET['del'])) {
if ($u->info['admin'] > 0 || ($u->info['align'] > 1 && $u->info['align'] < 2) || ($u->info['align'] > 3 && $u->info['align'] < 4)) { if ($u->isModerator()) {
if ($u->info['admin'] == 0) { if ($u->isAdmin()) {
$pInfo = '' . $u->info['align'] . '|' . $u->info['clan'] . '|' . $u->info['login'] . '|' . $u->info['level'] . '|' . $u->info['cityreg'] . '';
} else {
$pInfo = '1'; $pInfo = '1';
} else {
$pInfo = '' . $u->info['align'] . '|' . $u->info['clan'] . '|' . $u->info['login'] . '|' . $u->info['level'] . '|' . $u->info['cityreg'];
} }
mysql_query("UPDATE `elka` SET `delete`='" . $pInfo . "' WHERE `id`='" . mysql_real_escape_string($_GET['del']) . "'"); mysql_query("UPDATE `elka` SET `delete`='" . $pInfo . "' WHERE `id`='" . mysql_real_escape_string($_GET['del']) . "'");
} }
} elseif (isset($_GET['use_cup'])) { } elseif (isset($_GET['use_cup'])) {
$smt = $u->testAction('`uid` = "' . $u->info['id'] . '" AND `time` > ' . (time() - 600) . ' AND `vars` = "use_cupNewYear" LIMIT 1', 1); $smt = (bool)ActionModel::testCount(["uid = $u->info['id']", 'vars = use_cupNewYear', 'time > unix_timestamp() - 600']);
if (!isset($smt['id'])) { if (!$smt) {
$u->addAction(time(), 'use_cupNewYear', ''); $u->addAction(time(), 'use_cupNewYear', '');
mysql_query('UPDATE `stats` SET `hpNow` = "' . $u->stats['hpAll'] . '",`mpNow` = "' . $u->stats['mpAll'] . '" WHERE `id` = "' . $u->info['id'] . '" LIMIT 1'); mysql_query('UPDATE `stats` SET `hpNow` = "' . $u->stats['hpAll'] . '",`mpNow` = "' . $u->stats['mpAll'] . '" WHERE `id` = "' . $u->info['id'] . '" LIMIT 1');
echo '<font color=red>Успешно использован эликсир "Полное восстановление"</font>'; echo '<font color=red>Успешно использован эликсир "Полное восстановление"</font>';
@ -101,23 +105,20 @@ if (isset($_GET['take_gift']) && (date('m') == 12 || (date('m') == 1 && date('d'
if ((date('n', time()) == 1 && date('j', time()) <= 15)) { if ((date('n', time()) == 1 && date('j', time()) <= 15)) {
$dy = 0; $dy = 0;
} }
$u->info['ET'] = $u->testAction('`uid` = "' . $u->info['id'] . '" AND `time` > ' . (time() - 600) . ' AND `vars` = "send_elka" LIMIT 1', 1);
if (isset($u->info['ET']['id'])) { $u->info['ET'] = (bool)ActionModel::testCount(["uid = $u->info['id']", 'vars = send_elka', 'time > unix_timestamp() - 600']);
if ($u->info['ET']) {
echo '<font color=red>Оставлять надписи на стволе ёлки можно не чаще одного раза в 10 минут</font>'; echo '<font color=red>Оставлять надписи на стволе ёлки можно не чаще одного раза в 10 минут</font>';
} else { } else {
$pInfo = '' . $u->info['align'] . '|' . $u->info['clan'] . '|' . $u->info['login'] . '|' . $u->info['level'] . '|' . $u->info['cityreg'] . '|' . $u->info['id'] . ''; $pInfo = '' . $u->info['align'] . '|' . $u->info['clan'] . '|' . $u->info['login'] . '|' . $u->info['level'] . '|' . $u->info['cityreg'] . '|' . $u->info['id'];
mysql_query( Db::sql("insert into elka (year, time, pers, text, city) values (year(curdate()) + ?, unix_timestamp(),?,?,'')", [$dy, $pInfo, $_POST['message']]);
"INSERT INTO `elka` (`year`,`time`,`pers`,`text`,`city`) VALUES (" . (date('Y', time()) + $dy) . "," . time() . ",'" . $pInfo . "','" . mysql_real_escape_string(
$_POST['message']
) . "','" . $u->info['city'] . "'); "
);
$u->addAction(time(), 'send_elka', ''); $u->addAction(time(), 'send_elka', '');
} }
} }
} }
?> ?>
<style type="text/css"> <style>
.pH3 { .pH3 {
COLOR: #8f0000; COLOR: #8f0000;
@ -167,16 +168,28 @@ if (isset($_GET['take_gift']) && (date('m') == 12 || (date('m') == 1 && date('d'
font-size: 10px; font-size: 10px;
} }
div.error {
text-align: right;
color: red;
font-weight: bold;
}
img.present {
padding: 10px;
}
img.used {
filter: alpha(opacity=35);
-moz-opacity: 0.35;
opacity: 0.35;
}
</style> </style>
<div align="right"><?php if ($re != '') { <div class="error"><?= $re ?? '' ?></div>
echo '<font color="red"><b>' . $re . '</b></font>';
} ?></div>
<div id="hint3" style="visibility:hidden"></div> <div id="hint3" style="visibility:hidden"></div>
<TABLE width="100%" cellspacing="0" cellpadding="0"> <TABLE width="100%" cellspacing="0" cellpadding="0">
<tr> <tr>
<td valign="top"> <td valign="top">
<div align="center" class="pH3">Новогодняя елка <?php <div align="center" class="pH3">Новогодняя елка <?= $dt ?>!
echo $dt; ?>!
</div> </div>
<br/> <br/>
<!-- Подарки --> <!-- Подарки -->
@ -189,31 +202,27 @@ if (isset($_GET['take_gift']) && (date('m') == 12 || (date('m') == 1 && date('d'
<span class="pH3"><small>Подарки:</small></span> <span class="pH3"><small>Подарки:</small></span>
<div> <div>
<?php <?php
$smt = $u->testAction('`uid` = "' . $u->info['id'] . '" AND `time` > ' . (time() - 600) . ' AND `vars` = "use_cupNewYear" LIMIT 1', 1); $alreadyUsed = (bool)ActionModel::testCount(["uid = $u->info['id']", 'time > unix_timestamp() - 600', 'vars = use_cupNewYear']);
?> ?>
<a href="?use_cup=<?= $code; ?>" <?php if (isset($smt['id'])) { <a href="?use_cup=<?= $code; ?>" <?= $alreadyUsed ? 'onClick="alert(\'Использовать "Чаша жизненных сил" можно не чаще одного раза в 10 минут\');return false;"' : '' ?>>
echo 'onClick="alert(\'Использовать "Чаша жизненных сил" можно не чаще одного раза в 10 минут\');return false;"'; <img src="//img.new-combats.tech/cup2012.gif" class="present <?= $alreadyUsed ? 'used' : '' ?>" title="Выпить из`Чаши жизненных сил`" alt="">
} ?> /><img src="//img.new-combats.tech/cup2012.gif" style="padding:10px;<?php if (isset($smt['id'])) { </a>
echo 'filter: alpha(opacity=35); -moz-opacity: 0.35; -khtml-opacity: 0.35; opacity: 0.35;';
} ?>" title="Выпить из`Чаши жизненных сил`"></a>
<?php <?php
if (date('m') == 12 || (date('m') == 1 && date('d') <= 8)) { if (date('m') == 12 || (date('m') == 1 && date('d') <= 8)) {
$pd = $u->testAction('`uid` = "' . $u->info['id'] . '" AND `time` > ' . (time() - 600) . ' AND `vars` = "take_gift' . $dt . '" LIMIT 1', 1); $alreadyUsed = (bool)ActionModel::testCount(["uid = $u->info['id']", 'time > unix_timestamp() - 600', "vars = take_gift$dt"]);
?> ?>
<a href="?take_gift=<?= $code; ?>" <?php if (isset($pd['id'])) { <a href="?take_gift=<?= $code; ?>" <?= $alreadyUsed ? 'onClick="return false;"' : '' ?>>
echo 'onClick="return false;"'; <img src="//img.new-combats.tech/i/items/<?= 'podarok' . ($dt - 1) ?>.gif" class="present <?= $alreadyUsed ? 'used' : '' ?>" title="Взять `Новогодний подарок 2023`"
} ?> /><img src="//img.new-combats.tech/i/items/<?= 'podarok' . ($dt - 1); ?>.gif" style="padding:10px;<?php if (isset($pd['id'])) { alt="">
echo 'filter: alpha(opacity=35); -moz-opacity: 0.35; -khtml-opacity: 0.35; opacity: 0.35;'; </a>
} ?>" title="Взять `Новогодний подарок 2023`"></a>
<?php } ?> <?php } ?>
</div> </div>
</div> </div>
<hr> <hr>
<?php <?php
} }
//ТУТ Елка
// if($u->info['admin']>0)
// {
?> ?>
<div style="padding-left:10px;"> <div style="padding-left:10px;">
<span class="pH3"><small>Наряжаем Ёлку:</small></span> <span class="pH3"><small>Наряжаем Ёлку:</small></span>

View File

@ -1,6 +1,7 @@
<?php <?php
use Helper\Conversion; use Helper\Conversion;
use Model\ActionModel;
if (!defined('GAME')) { if (!defined('GAME')) {
die(); die();
@ -8,22 +9,14 @@ if (!defined('GAME')) {
if ($u->room['file'] == 'enterbezdna') { if ($u->room['file'] == 'enterbezdna') {
if (isset($_GET['rz'])) { $rz = isset($_GET['rz']) ? 1 : 0;
$rz = 1;
} else {
$rz = 0;
}
$dun = 101; $dun = 101;
$er = ''; $er = '';
$dzs = ''; $dzs = '';
$g111 = 1; $g111 = 1;
$g11 = $u->testAction('`uid` = "' . $u->info['id'] . '" AND `vars` = "psh101" AND `time` > ' . (time() - 60 * 60 * 2) . ' LIMIT 1', 1); $dungeonTimeout = ActionModel::getOne(["uid = {$u->info['id']}", 'vars = psh101', 'time > unix_timestamp() - 7200'], 'time');
$moder = mysql_fetch_array(mysql_query('SELECT * FROM `moder` WHERE `align` = "' . $u->info['align'] . '" LIMIT 1')); $moder = mysql_fetch_array(mysql_query('SELECT * FROM `moder` WHERE `align` = "' . $u->info['align'] . '" LIMIT 1'));
@ -35,10 +28,10 @@ if ($u->room['file'] == 'enterbezdna') {
} }
} }
if (isset($g11['id'])) { if ($dungeonTimeout) {
$g111 = 0; $g111 = 0;
if (isset($_GET['start'])) { if (isset($_GET['start'])) {
$re = 'До следующего похода осталось еще: ' . Conversion::secondsToTimeout(60 * 60 * 2 - time() + $g11['time']); $re = 'До следующего похода осталось еще: ' . Conversion::secondsToTimeout(60 * 60 * 2 - time() + $dungeonTimeout);
} }
} }
if (isset($_GET['start']) && $zv['uid'] == $u->info['id'] && $g111 == 1) { if (isset($_GET['start']) && $zv['uid'] == $u->info['id'] && $g111 == 1) {
@ -364,9 +357,10 @@ if ($u->room['file'] == 'enterbezdna') {
<tr> <tr>
<td bgcolor="#D3D3D3"><img src="//img.new-combats.tech/i/move/links.gif" width="9" height="7"/></td> <td bgcolor="#D3D3D3"><img src="//img.new-combats.tech/i/move/links.gif" width="9" height="7"/></td>
<td bgcolor="#D3D3D3" nowrap="nowrap"> <td bgcolor="#D3D3D3" nowrap="nowrap">
<a href="#" id="greyText" class="menutop" onclick="location='main.php?loc=1.180.0.367&rnd=<?= $code; ?>';" title="<?php thisInfRm( <a href="#" id="greyText" class="menutop" onclick="location='main.php?loc=1.180.0.367&rnd=<?= $code; ?>';"
'1.180.0.367', 1 title="<?php thisInfRm(
); ?>">Рыцарский магазин</a></td> '1.180.0.367', 1
); ?>">Рыцарский магазин</a></td>
</tr> </tr>
</table> </table>
</td> </td>
@ -428,13 +422,13 @@ if ($u->room['file'] == 'enterbezdna') {
<?php <?php
$qsee = ''; $qsee = '';
$qx = 0; $qx = 0;
$hgo = $u->testAction('`uid` = "' . $u->info['id'] . '" AND `time` >= ' . (time() - 60 * 60 * 24) . ' AND `vars` = "psh_qt_angelscity" LIMIT 1', 1); $questTimeout = ActionModel::getOne(["uid = {$u->info['id']}", 'vars = psh_qt_angelscity', 'time > unix_timestamp() - 86400'], 'time');
if (isset($_GET['add_quest'])) { if (isset($_GET['add_quest'])) {
if (isset($hgo['id'])) { if ($questTimeout) {
echo '<font color="red"><b>Нельзя получать задания чаще одного раза в сутки</b></font><br>'; echo '<font color="red"><b>Нельзя получать задания чаще одного раза в сутки</b></font><br>';
} else { } else {
$sp = mysql_query('SELECT * FROM `quests` WHERE `line` = 101'); $sp = mysql_query('select * from quests where line = 101');
$dq_add = []; $dq_add = [];
while ($pl = mysql_fetch_array($sp)) { while ($pl = mysql_fetch_array($sp)) {
if ($u->rep['repangelscity'] == 9999) { if ($u->rep['repangelscity'] == 9999) {
@ -459,7 +453,7 @@ if ($u->room['file'] == 'enterbezdna') {
if ($q->testGood($dq_add) == 1 && $dq_add > 0) { if ($q->testGood($dq_add) == 1 && $dq_add > 0) {
$q->startq_dn($dq_add['id']); $q->startq_dn($dq_add['id']);
echo '<font color="red"><b>Вы успешно получили новое задание &quot;' . $dq_add['name'] . '&quot;.</b></font><br>'; echo '<font color="red"><b>Вы успешно получили новое задание &quot;' . $dq_add['name'] . '&quot;.</b></font><br>';
$hgo['id'] = 1; $questTimeout = 1;
$u->addAction(time(), 'psh_qt_angelscity', $dq_add['id']); $u->addAction(time(), 'psh_qt_angelscity', $dq_add['id']);
} else { } else {
if ($u->rep['repangelscity'] == 9999) { if ($u->rep['repangelscity'] == 9999) {
@ -496,15 +490,15 @@ if ($u->room['file'] == 'enterbezdna') {
<?= $qsee ?> <?= $qsee ?>
<span style="padding-left: 10"> <span style="padding-left: 10">
<?php <?php
if (!isset($hgo['id'])) { if ($questTimeout) {
echo 'Получить новое задание можно <b>' . date('d.m.Y H:i', $questTimeout + 60 * 60 * 24) . '</b> ( Через ' . Conversion::secondsToTimeout(
$questTimeout + 60 * 60 * 24 - time()
) . ' )';
} else {
?> ?>
<br/> <br/>
<input type='button' value='Получить задание' onclick='location="main.php?rz=1&add_quest=1"'/> <input type='button' value='Получить задание' onclick='location="main.php?rz=1&add_quest=1"'>
<?php <?php
} else {
echo 'Получить новое задание можно <b>' . date('d.m.Y H:i', $hgo['time'] + 60 * 60 * 24) . '</b> <font color="">( Через ' . Conversion::secondsToTimeout(
$hgo['time'] + 60 * 60 * 24 - time()
) . ' )</font>';
} }
?> ?>
</span> </span>
@ -703,7 +697,6 @@ if (!isset($hgo['id'])) {
); );
while ($chk_pl = mysql_fetch_array($chk_cl)) { while ($chk_pl = mysql_fetch_array($chk_cl)) {
if (mysql_query('UPDATE `items_users` SET `delete` = "' . time() . '" WHERE `id` = "' . $chk_pl['id'] . '" LIMIT 1')) { if (mysql_query('UPDATE `items_users` SET `delete` = "' . time() . '" WHERE `id` = "' . $chk_pl['id'] . '" LIMIT 1')) {
;
} }
{ {
$x++; $x++;
@ -788,7 +781,7 @@ if (!isset($hgo['id'])) {
<?php <?php
} else { } else {
echo 'Поход в пещеры разрешен один раз в два часа. Осталось еще: ' . Conversion::secondsToTimeout( echo 'Поход в пещеры разрешен один раз в два часа. Осталось еще: ' . Conversion::secondsToTimeout(
60 * 60 * 2 - time() + $g11['time'] 60 * 60 * 2 - time() + $dungeonTimeout
) . '<br><small style="color:grey">Но Вы всегда можете приобрести ключ от прохода у любого &quot;копателя пещер&quot; в Торговом зале ;)</small>'; ) . '<br><small style="color:grey">Но Вы всегда можете приобрести ключ от прохода у любого &quot;копателя пещер&quot; в Торговом зале ;)</small>';
} }
} }

View File

@ -1,6 +1,7 @@
<?php <?php
use Helper\Conversion; use Helper\Conversion;
use Model\ActionModel;
if (!defined('GAME')) { if (!defined('GAME')) {
die(); die();
@ -15,13 +16,10 @@ if ($u->room['file'] == 'entercat') {
} }
$dun = 3; //для новичков 2-7 лвл $dun = 3; //для новичков 2-7 лвл
$er = ''; $er = '';
$dzs = ''; $dzs = '';
$g111 = 1; $g111 = 1;
$g11 = $u->testAction('`uid` = "' . $u->info['id'] . '" AND `vars` = "psh1" AND `time`>' . (time() - 7200) . ' LIMIT 1', 1); $dungeonTimeout = ActionModel::getOne(["uid = {$u->info['id']}", 'vars = psh1', 'time > unix_timestamp() - 7200'], 'time');
$moder = mysql_fetch_array(mysql_query('SELECT * FROM `moder` WHERE `align` = "' . $u->info['align'] . '" LIMIT 1')); $moder = mysql_fetch_array(mysql_query('SELECT * FROM `moder` WHERE `align` = "' . $u->info['align'] . '" LIMIT 1'));
@ -33,10 +31,10 @@ if ($u->room['file'] == 'entercat') {
} }
} }
if (isset($g11['id'])) { if ($dungeonTimeout) {
$g111 = 0; $g111 = 0;
if (isset($_GET['start'])) { if (isset($_GET['start'])) {
$re = 'Поход в пещеры разрешен один раз в два часа. Осталось еще: ' . Conversion::secondsToTimeout(7200 - time() + $g11['time']); $re = 'Поход в пещеры разрешен один раз в два часа. Осталось еще: ' . Conversion::secondsToTimeout(7200 - time() + $dungeonTimeout);
} }
} }
if (isset($_GET['start']) && $zv['uid'] == $u->info['id'] && $g111 == 1) { if (isset($_GET['start']) && $zv['uid'] == $u->info['id'] && $g111 == 1) {
@ -345,13 +343,13 @@ if ($u->room['file'] == 'entercat') {
<?php <?php
$qsee = ''; $qsee = '';
$qx = 0; $qx = 0;
$hgo = $u->testAction('`uid` = "' . $u->info['id'] . '" AND `time` >= ' . (time() - 60 * 60 * 24) . ' AND `vars` = "psh_qt_demonscity" LIMIT 1', 1); $questTimeout = ActionModel::getOne(["uid = {$u->info['id']}", 'vars = psh_qt_demonscity', 'time > unix_timestamp() - 86400'], 'time');
if (isset($_GET['add_quest'])) { if (isset($_GET['add_quest'])) {
if (isset($hgo['id'])) { if ($questTimeout) {
echo '<font color="red"><b>Нельзя получать задания чаще одного раза в сутки</b></font><br>'; echo '<font color="red"><b>Нельзя получать задания чаще одного раза в сутки</b></font><br>';
} else { } else {
$sp = mysql_query('SELECT * FROM `quests` WHERE `line` = 3'); $sp = mysql_query('select * from quests where line = 3');
$dq_add = []; $dq_add = [];
while ($pl = mysql_fetch_array($sp)) { while ($pl = mysql_fetch_array($sp)) {
if ($u->rep['repdemonscity'] == 9999) { if ($u->rep['repdemonscity'] == 9999) {
@ -376,7 +374,7 @@ if ($u->room['file'] == 'entercat') {
if ($q->testGood($dq_add) == 1) { if ($q->testGood($dq_add) == 1) {
$q->startq_dn($dq_add['id']); $q->startq_dn($dq_add['id']);
echo '<font color="red"><b>Вы успешно получили новое задание &quot;' . $dq_add['name'] . '&quot;.</b></font><br>'; echo '<font color="red"><b>Вы успешно получили новое задание &quot;' . $dq_add['name'] . '&quot;.</b></font><br>';
$hgo['id'] = 1; $questTimeout = 1;
$u->addAction(time(), 'psh_qt_demonscity', $dq_add['id']); $u->addAction(time(), 'psh_qt_demonscity', $dq_add['id']);
} else { } else {
echo '<font color="red"><b>Не удалось получить задание &quot;' . $dq_add['name'] . '&quot;. Попробуйте еще...</b></font><br>'; echo '<font color="red"><b>Не удалось получить задание &quot;' . $dq_add['name'] . '&quot;. Попробуйте еще...</b></font><br>';
@ -405,15 +403,15 @@ if ($u->room['file'] == 'entercat') {
<?= $qsee ?> <?= $qsee ?>
<span style="padding-left: 10"> <span style="padding-left: 10">
<?php <?php
if (!isset($hgo['id'])) { if ($questTimeout) {
echo 'Получить новое задание можно <b>' . date('d.m.Y H:i', $questTimeout + 60 * 60 * 24) . '</b> <font color="grey">( Через ' . Conversion::secondsToTimeout(
$questTimeout + 60 * 60 * 24 - time()
) . ' )</font>';
} else {
?> ?>
<br/> <br/>
<input type='button' value='Получить задание' onclick='location="main.php?rz=1&add_quest=1"'/> <input type='button' value='Получить задание' onclick='location="main.php?rz=1&add_quest=1"'/>
<?php <?php
} else {
echo 'Получить новое задание можно <b>' . date('d.m.Y H:i', $hgo['time'] + 60 * 60 * 24) . '</b> <font color="grey">( Через ' . Conversion::secondsToTimeout(
$hgo['time'] + 60 * 60 * 24 - time()
) . ' )</font>';
} }
?> ?>
</span> </span>
@ -612,7 +610,6 @@ if (!isset($hgo['id'])) {
); );
while ($chk_pl = mysql_fetch_array($chk_cl)) { while ($chk_pl = mysql_fetch_array($chk_cl)) {
if (mysql_query('UPDATE `items_users` SET `delete` = "' . time() . '" WHERE `id` = "' . $chk_pl['id'] . '" LIMIT 1')) { if (mysql_query('UPDATE `items_users` SET `delete` = "' . time() . '" WHERE `id` = "' . $chk_pl['id'] . '" LIMIT 1')) {
;
} }
{ {
$x++; $x++;
@ -696,7 +693,7 @@ if (!isset($hgo['id'])) {
<?php <?php
} else { } else {
echo 'Поход в пещеры разрешен один раз в два часа. Осталось еще: ' . Conversion::secondsToTimeout( echo 'Поход в пещеры разрешен один раз в два часа. Осталось еще: ' . Conversion::secondsToTimeout(
7200 - time() + $g11['time'] 7200 - time() + $dungeonTimeout
) . '<br><small style="color:grey">Но Вы всегда можете приобрести ключ от прохода у любого &quot;копателя пещер&quot; в Торговом зале ;)</small>'; ) . '<br><small style="color:grey">Но Вы всегда можете приобрести ключ от прохода у любого &quot;копателя пещер&quot; в Торговом зале ;)</small>';
} }
} }

View File

@ -1,6 +1,7 @@
<?php <?php
use Helper\Conversion; use Helper\Conversion;
use Model\ActionModel;
if (!defined('GAME')) { if (!defined('GAME')) {
die(); die();
@ -21,7 +22,7 @@ if ($u->room['file'] == 'enterdrago') {
mysql_query('SELECT `id` as room, city, `dungeon_room` as d_room, city, `shop`, `dungeon_id` as id, `dungeon_name` as name FROM `dungeon_room` WHERE `id`="' . $u->room['id'] . '" LIMIT 1') mysql_query('SELECT `id` as room, city, `dungeon_room` as d_room, city, `shop`, `dungeon_id` as id, `dungeon_name` as name FROM `dungeon_room` WHERE `id`="' . $u->room['id'] . '" LIMIT 1')
); );
//var_info($dungeon); //var_info($dungeon);
$all_dungeon = mysql_query('SELECT `city` FROM `dungeon_room` WHERE `city` IS NOT NULL AND `active`=1 '); $all_dungeon = mysql_query('select city from dungeon_room where city is not null and active=1 ');
while ($t = mysql_fetch_array($all_dungeon)) { while ($t = mysql_fetch_array($all_dungeon)) {
$dungeon['list'][] = $t['city']; $dungeon['list'][] = $t['city'];
} }
@ -35,13 +36,12 @@ if ($u->room['file'] == 'enterdrago') {
} }
} }
$dungeon_timeout = $u->testAction('`uid` = "' . $u->info['id'] . '" AND `vars` = "psh' . $dungeon['id'] . '" AND `time` > ' . (time() - 60 * 60 * 20) . ' LIMIT 1', 1); $dungeonTimeout = ActionModel::getOne(["uid = {$u->info['id']}", "vars = psh{$dungeon['id']}", 'time > unix_timestamp() - 72000'], 'time');
if (isset($dungeon_timeout['id'])) // Кто-то передумал и не пойдет в пещеру, так-как уже там был. if ($dungeonTimeout) { // Кто-то передумал и не пойдет в пещеру, так-как уже там был.
{
$dungeonGo = 0; $dungeonGo = 0;
if (isset($_GET['start'])) { if (isset($_GET['start'])) {
$error = 'До следующего похода осталось еще: ' . Conversion::secondsToTimeout(60 * 60 * 20 - time() + $dungeon_timeout['time']); $error = 'До следующего похода осталось еще: ' . Conversion::secondsToTimeout(60 * 60 * 20 - time() + $dungeonTimeout);
} }
} }
@ -468,8 +468,7 @@ if ($u->room['file'] == 'enterdrago') {
]; ];
$sp = mysql_query( $sp = mysql_query(
'SELECT * FROM `dungeon_zv` WHERE `city` = "' . $u->info['city'] . '" AND `lvlmin` = "' . $u->info['level'] . '" AND `dun` = "' . $dungeon['id'] . '" AND `delete` = "0" AND `time` > "' . (time( 'SELECT * FROM `dungeon_zv` WHERE `city` = "' . $u->info['city'] . '" AND `lvlmin` = "' . $u->info['level'] . '" AND `dun` = "' . $dungeon['id'] . '" AND `delete` = "0" AND `time` > "' . (time() - 60 * 60 * 2) . '"'
) - 60 * 60 * 2) . '"'
); );
while ($pl = mysql_fetch_array($sp)) { while ($pl = mysql_fetch_array($sp)) {
@ -640,7 +639,7 @@ if ($u->room['file'] == 'enterdrago') {
<form autocomplete="off" action='/main.php' method="post" name="F1" id="F1"> <form autocomplete="off" action='/main.php' method="post" name="F1" id="F1">
<?php <?php
$qsee = ''; $qsee = '';
$hgo = $u->testAction('`uid` = "' . $u->info['id'] . '" AND `time` >= ' . (time() - 60 * 60 * 24) . ' AND `vars` = "psh_qt_' . $dungeon['city'] . '" LIMIT 1', 1); $questTimeout = ActionModel::getOne(["uid = {$u->info['id']}", "vars = psh_qt_{$dungeon['city']}", 'time > unix_timestamp() - 86400'], 'time');
$qc = 0; // Quest Count $qc = 0; // Quest Count
//Генерируем список текущих квестов //Генерируем список текущих квестов
$sp = mysql_query('SELECT * FROM `actions` WHERE `vars` LIKE "%start_quest%" AND `vals` = "go" AND `uid` = "' . $u->info['id'] . '" LIMIT 100'); $sp = mysql_query('SELECT * FROM `actions` WHERE `vars` LIKE "%start_quest%" AND `vals` = "go" AND `uid` = "' . $u->info['id'] . '" LIMIT 100');
@ -655,7 +654,7 @@ if ($u->room['file'] == 'enterdrago') {
} }
if (isset($_GET['add_quest']) && $qc == 0) { if (isset($_GET['add_quest']) && $qc == 0) {
if (isset($hgo['id'])) { if ($questTimeout) {
echo '<font color="red"><b>Нельзя получать задания чаще одного раза в сутки</b></font><br>'; echo '<font color="red"><b>Нельзя получать задания чаще одного раза в сутки</b></font><br>';
} else { } else {
$sp = mysql_query('SELECT * FROM `quests` WHERE `line` = ' . $dungeon['id'] . ''); $sp = mysql_query('SELECT * FROM `quests` WHERE `line` = ' . $dungeon['id'] . '');
@ -713,14 +712,14 @@ if ($u->room['file'] == 'enterdrago') {
<?php <?php
if ($qc > 0) { if ($qc > 0) {
echo 'Вы еще не справились с текущим заданием.'; echo 'Вы еще не справились с текущим заданием.';
} elseif (!isset($hgo['id']) && $qc == 0) { } elseif (!$questTimeout && $qc == 0) {
?> ?>
<br/> <br/>
<input type='button' value='Получить задание' onclick='location="main.php?rz=1&add_quest=1"'/> <input type='button' value='Получить задание' onclick='location="main.php?rz=1&add_quest=1"'/>
<?php <?php
} else { } else {
echo 'Получить новое задание можно <b>' . date('d.m.Y H:i', $hgo['time'] + 60 * 60 * 24) . '</b> ( Через ' . Conversion::secondsToTimeout( echo 'Получить новое задание можно <b>' . date('d.m.Y H:i', $questTimeout + 60 * 60 * 24) . '</b> ( Через ' . Conversion::secondsToTimeout(
$hgo['time'] + 60 * 60 * 24 - time() $questTimeout + 60 * 60 * 24 - time()
) . ' )'; ) . ' )';
} }
?> ?>
@ -951,7 +950,6 @@ if ($u->room['file'] == 'enterdrago') {
); );
while ($chk_pl = mysql_fetch_array($chk_cl)) { while ($chk_pl = mysql_fetch_array($chk_cl)) {
if (mysql_query('UPDATE `items_users` SET `delete` = "' . time() . '" WHERE `id` = "' . $chk_pl['id'] . '" LIMIT 1')) { if (mysql_query('UPDATE `items_users` SET `delete` = "' . time() . '" WHERE `id` = "' . $chk_pl['id'] . '" LIMIT 1')) {
;
} }
{ {
$x++; $x++;
@ -1043,7 +1041,7 @@ if ($u->room['file'] == 'enterdrago') {
} }
} else { } else {
echo 'Поход в пещеры разрешен один раз в двадцать часов. Осталось еще: ' . Conversion::secondsToTimeout( echo 'Поход в пещеры разрешен один раз в двадцать часов. Осталось еще: ' . Conversion::secondsToTimeout(
60 * 60 * 20 - time() + $dungeon_timeout['time'] 60 * 60 * 20 - time() + $dungeonTimeout
) . '<br><small style="color:grey">Но Вы всегда можете приобрести ключ от прохода у любого &quot;копателя пещер&quot; в Торговом зале ;)</small>'; ) . '<br><small style="color:grey">Но Вы всегда можете приобрести ключ от прохода у любого &quot;копателя пещер&quot; в Торговом зале ;)</small>';
} }
} }

View File

@ -1,6 +1,7 @@
<?php <?php
use Helper\Conversion; use Helper\Conversion;
use Model\ActionModel;
if (!defined('GAME')) { if (!defined('GAME')) {
die(); die();
@ -15,14 +16,11 @@ if ($u->room['file'] == 'entergrib') {
} }
$dun = 10; //для новичков 2-7 лвл $dun = 10; //для новичков 2-7 лвл
$er = ''; $er = '';
$dzs = ''; $dzs = '';
$g111 = 1; $g111 = 1;
//Задержка в Санд //Задержка в Санд
$g11 = $u->testAction('`uid` = "' . $u->info['id'] . '" AND `vars` = "psh2" AND `time`>' . (time() - 7200) . ' LIMIT 1', 1); $dungeonTimeout = ActionModel::getOne(["uid = {$u->info['id']}", 'vars = psh2', 'time > unix_timestamp() - 7200'], 'time');
$moder = mysql_fetch_array(mysql_query('SELECT * FROM `moder` WHERE `align` = "' . $u->info['align'] . '" LIMIT 1')); $moder = mysql_fetch_array(mysql_query('SELECT * FROM `moder` WHERE `align` = "' . $u->info['align'] . '" LIMIT 1'));
@ -34,10 +32,10 @@ if ($u->room['file'] == 'entergrib') {
} }
} }
if (isset($g11['id'])) { if ($dungeonTimeout) {
$g111 = 0; $g111 = 0;
if (isset($_GET['start'])) { if (isset($_GET['start'])) {
$re = 'Поход в пещеры разрешен один раз в два часа. Осталось еще: ' . Conversion::secondsToTimeout(7200 - time() + $g11['time']); $re = 'Поход в пещеры разрешен один раз в два часа. Осталось еще: ' . Conversion::secondsToTimeout(7200 - time() + $dungeonTimeout);
} }
} }
if (isset($_GET['start']) && $zv['uid'] == $u->info['id'] && $g111 == 1) { if (isset($_GET['start']) && $zv['uid'] == $u->info['id'] && $g111 == 1) {
@ -332,13 +330,13 @@ if ($u->room['file'] == 'entergrib') {
<?php <?php
$qsee = ''; $qsee = '';
$qx = 0; $qx = 0;
$hgo = $u->testAction('`uid` = "' . $u->info['id'] . '" AND `time` >= ' . (time() - 60 * 60 * 24) . ' AND `vars` = "psh_qt_allcity" LIMIT 1', 1); $questTimeout = ActionModel::getOne(["uid = {$u->info['id']}", 'vars = psh_qt_allcity', 'time > unix_timestamp() - 86400'], 'time');
if (isset($_GET['add_quest'])) { if (isset($_GET['add_quest'])) {
if (isset($hgo['id'])) { if ($questTimeout) {
echo '<font color="red"><b>Нельзя получать задания чаще одного раза в сутки</b></font><br>'; echo '<font color="red"><b>Нельзя получать задания чаще одного раза в сутки</b></font><br>';
} else { } else {
$sp = mysql_query('SELECT * FROM `quests` WHERE `line` = 4'); $sp = mysql_query('select * from quests where line = 4');
$dq_add = []; $dq_add = [];
while ($pl = mysql_fetch_array($sp)) { while ($pl = mysql_fetch_array($sp)) {
$dq_add[count($dq_add)] = $pl; $dq_add[count($dq_add)] = $pl;
@ -349,7 +347,7 @@ if ($u->room['file'] == 'entergrib') {
if ($q->testGood($dq_add) == 1) { if ($q->testGood($dq_add) == 1) {
$q->startq_dn($dq_add['id']); $q->startq_dn($dq_add['id']);
echo '<font color="red"><b>Вы успешно получили новое задание &quot;' . $dq_add['name'] . '&quot;.</b></font><br>'; echo '<font color="red"><b>Вы успешно получили новое задание &quot;' . $dq_add['name'] . '&quot;.</b></font><br>';
$hgo['id'] = 1; $questTimeout = 1;
$u->addAction(time(), 'psh_qt_allcity', $dq_add['id']); $u->addAction(time(), 'psh_qt_allcity', $dq_add['id']);
} else { } else {
echo '<font color="red"><b>Не удалось получить задание &quot;' . $dq_add['name'] . '&quot;. Попробуйте еще...</b></font><br>'; echo '<font color="red"><b>Не удалось получить задание &quot;' . $dq_add['name'] . '&quot;. Попробуйте еще...</b></font><br>';
@ -378,15 +376,15 @@ if ($u->room['file'] == 'entergrib') {
<?= $qsee ?> <?= $qsee ?>
<span style="padding-left: 10"> <span style="padding-left: 10">
<?php <?php
if (!isset($hgo['id'])) { if ($questTimeout) {
echo 'Получить новое задание можно <b>' . date('d.m.Y H:i', $questTimeout + 60 * 60 * 24) . '</b> <font color="grey">( Через ' . Conversion::secondsToTimeout(
$questTimeout + 60 * 60 * 24 - time()
) . ' )</font>';
} else {
?> ?>
<br/> <br/>
<input type='button' value='Получить задание' onclick='location="main.php?rz=1&add_quest=1"'/> <input type='button' value='Получить задание' onclick='location="main.php?rz=1&add_quest=1"'/>
<?php <?php
} else {
echo 'Получить новое задание можно <b>' . date('d.m.Y H:i', $hgo['time'] + 60 * 60 * 24) . '</b> <font color="grey">( Через ' . Conversion::secondsToTimeout(
$hgo['time'] + 60 * 60 * 24 - time()
) . ' )</font>';
} }
?> ?>
</span> </span>
@ -494,7 +492,6 @@ if (!isset($hgo['id'])) {
); );
while ($chk_pl = mysql_fetch_array($chk_cl)) { while ($chk_pl = mysql_fetch_array($chk_cl)) {
if (mysql_query('UPDATE `items_users` SET `delete` = "' . time() . '" WHERE `id` = "' . $chk_pl['id'] . '" LIMIT 1')) { if (mysql_query('UPDATE `items_users` SET `delete` = "' . time() . '" WHERE `id` = "' . $chk_pl['id'] . '" LIMIT 1')) {
;
} }
{ {
$x++; $x++;
@ -564,7 +561,7 @@ if (!isset($hgo['id'])) {
<?php <?php
} else { } else {
echo 'Поход в пещеры разрешен один раз в два часа. Осталось еще: ' . Conversion::secondsToTimeout( echo 'Поход в пещеры разрешен один раз в два часа. Осталось еще: ' . Conversion::secondsToTimeout(
7200 - time() + $g11['time'] 7200 - time() + $dungeonTimeout
) . '<br><small style="color:grey">Но Вы всегда можете приобрести ключ от прохода у любого &quot;копателя пещер&quot; в Торговом зале ;)</small>'; ) . '<br><small style="color:grey">Но Вы всегда можете приобрести ключ от прохода у любого &quot;копателя пещер&quot; в Торговом зале ;)</small>';
} }
} }

View File

@ -1,6 +1,7 @@
<?php <?php
use Helper\Conversion; use Helper\Conversion;
use Model\ActionModel;
if (!defined('GAME')) { if (!defined('GAME')) {
die(); die();
@ -9,13 +10,10 @@ if (!defined('GAME')) {
if ($u->room['file'] == 'enternekro') { if ($u->room['file'] == 'enternekro') {
$dun = 11; //для новичков 2-7 лвл $dun = 11; //для новичков 2-7 лвл
$er = ''; $er = '';
$dzs = ''; $dzs = '';
$g111 = 1; $g111 = 1;
$g11 = $u->testAction('`uid` = "' . $u->info['id'] . '" AND `vars` = "psh1" AND `time`>' . (time() - 7200) . ' LIMIT 1', 1); $dungeonTimeout = ActionModel::getOne(["uid = {$u->info['id']}", 'vars = psh1', 'time > unix_timestamp() - 7200'], 'time');
$moder = mysql_fetch_array(mysql_query('SELECT * FROM `moder` WHERE `align` = "' . $u->info['align'] . '" LIMIT 1')); $moder = mysql_fetch_array(mysql_query('SELECT * FROM `moder` WHERE `align` = "' . $u->info['align'] . '" LIMIT 1'));
@ -27,10 +25,10 @@ if ($u->room['file'] == 'enternekro') {
} }
} }
if (isset($g11['id'])) { if ($dungeonTimeout) {
$g111 = 0; $g111 = 0;
if (isset($_GET['start'])) { if (isset($_GET['start'])) {
$re = 'Поход в пещеры разрешен один раз в два часа. Осталось еще: ' . Conversion::secondsToTimeout(7200 - time() + $g11['time']); $re = 'Поход в пещеры разрешен один раз в два часа. Осталось еще: ' . Conversion::secondsToTimeout(7200 - time() + $dungeonTimeout);
} }
} }
if (isset($_GET['start']) && $zv['uid'] == $u->info['id'] && $g111 == 1) { if (isset($_GET['start']) && $zv['uid'] == $u->info['id'] && $g111 == 1) {
@ -346,7 +344,7 @@ if ($u->room['file'] == 'enternekro') {
<?php <?php
} else { } else {
echo 'Поход в пещеры разрешен один раз в два часа. Осталось еще: ' . Conversion::secondsToTimeout( echo 'Поход в пещеры разрешен один раз в два часа. Осталось еще: ' . Conversion::secondsToTimeout(
7200 - time() + $g11['time'] 7200 - time() + $dungeonTimeout
) . '<br><small style="color:grey">Но Вы всегда можете приобрести ключ от прохода у любого &quot;копателя пещер&quot; в Торговом зале ;)</small>'; ) . '<br><small style="color:grey">Но Вы всегда можете приобрести ключ от прохода у любого &quot;копателя пещер&quot; в Торговом зале ;)</small>';
} }
} }

View File

@ -1,6 +1,7 @@
<?php <?php
use Helper\Conversion; use Helper\Conversion;
use Model\ActionModel;
if (!defined('GAME')) { if (!defined('GAME')) {
die(); die();
@ -15,15 +16,10 @@ if ($u->room['file'] == 'enternizin') {
} }
$dun = 444; $dun = 444;
$er = ''; $er = '';
$dzs = ''; $dzs = '';
$g111 = 1; $g111 = 1;
$dungeonTimeout = ActionModel::getOne(["uid = {$u->info['id']}", 'vars = psh444', 'time > unix_timestamp() - 7200'], 'time');
$g11 = $u->testAction('`uid` = "' . $u->info['id'] . '" AND `vars` = "psh444" AND `time` > ' . (time() - 60 * 60 * 2) . ' LIMIT 1', 1);
$moder = mysql_fetch_array(mysql_query('SELECT * FROM `moder` WHERE `align` = "' . $u->info['align'] . '" LIMIT 1')); $moder = mysql_fetch_array(mysql_query('SELECT * FROM `moder` WHERE `align` = "' . $u->info['align'] . '" LIMIT 1'));
@ -35,10 +31,10 @@ if ($u->room['file'] == 'enternizin') {
} }
} }
if (isset($g11['id'])) { if ($dungeonTimeout) {
$g111 = 0; $g111 = 0;
if (isset($_GET['start'])) { if (isset($_GET['start'])) {
$re = 'До следующего похода осталось еще: ' . Conversion::secondsToTimeout(60 * 60 * 2 - time() + $g11['time']); $re = 'До следующего похода осталось еще: ' . Conversion::secondsToTimeout(60 * 60 * 2 - time() + $dungeonTimeout);
} }
} }
if (isset($_GET['start']) && $zv['uid'] == $u->info['id'] && $g111 == 1) { if (isset($_GET['start']) && $zv['uid'] == $u->info['id'] && $g111 == 1) {
@ -421,13 +417,13 @@ if ($u->room['file'] == 'enternizin') {
<?php <?php
$qsee = ''; $qsee = '';
$qx = 0; $qx = 0;
$hgo = $u->testAction('`uid` = "' . $u->info['id'] . '" AND `time` >= ' . (time() - 60 * 60 * 24) . ' AND `vars` = "psh_qt_angelscity" LIMIT 1', 1); $questTimeout = ActionModel::getOne(["uid = {$u->info['id']}", 'vars = psh_qt_angelscity', 'time > unix_timestamp() - 86400'], 'time');
if (isset($_GET['add_quest'])) { if (isset($_GET['add_quest'])) {
if (isset($hgo['id'])) { if ($questTimeout) {
echo '<font color="red"><b>Нельзя получать задания чаще одного раза в сутки</b></font><br>'; echo '<font color="red"><b>Нельзя получать задания чаще одного раза в сутки</b></font><br>';
} else { } else {
$sp = mysql_query('SELECT * FROM `quests` WHERE `line` = 444'); $sp = mysql_query('select * from quests where line = 444');
$dq_add = []; $dq_add = [];
while ($pl = mysql_fetch_array($sp)) { while ($pl = mysql_fetch_array($sp)) {
if ($u->rep['repangelscity'] == 9999) { if ($u->rep['repangelscity'] == 9999) {
@ -452,7 +448,7 @@ if ($u->room['file'] == 'enternizin') {
if ($q->testGood($dq_add) == 1 && $dq_add > 0) { if ($q->testGood($dq_add) == 1 && $dq_add > 0) {
$q->startq_dn($dq_add['id']); $q->startq_dn($dq_add['id']);
echo '<font color="red"><b>Вы успешно получили новое задание &quot;' . $dq_add['name'] . '&quot;.</b></font><br>'; echo '<font color="red"><b>Вы успешно получили новое задание &quot;' . $dq_add['name'] . '&quot;.</b></font><br>';
$hgo['id'] = 1; $questTimeout = 1;
$u->addAction(time(), 'psh_qt_angelscity', $dq_add['id']); $u->addAction(time(), 'psh_qt_angelscity', $dq_add['id']);
} else { } else {
if ($u->rep['repangelscity'] == 9999) { if ($u->rep['repangelscity'] == 9999) {
@ -489,13 +485,13 @@ if ($u->room['file'] == 'enternizin') {
<?= $qsee ?> <?= $qsee ?>
<span style="padding-left: 10"> <span style="padding-left: 10">
<?php <?php
if (!isset($hgo['id'])) { if ($questTimeout) {
echo 'Получить новое задание можно <b>' . date('d.m.Y H:i', $questTimeout + 60 * 60 * 24) . '</b> ( Через ' . Conversion::secondsToTimeout($questTimeout + 60 * 60 * 24 - time()) . ' )';
} else {
?> ?>
<br/> <br/>
<input type='button' value='Получить задание' onclick='location="main.php?rz=1&add_quest=1"'/> <input type='button' value='Получить задание' onclick='location="main.php?rz=1&add_quest=1"'/>
<?php <?php
} else {
echo 'Получить новое задание можно <b>' . date('d.m.Y H:i', $hgo['time'] + 60 * 60 * 24) . '</b> ( Через ' . Conversion::secondsToTimeout($hgo['time'] + 60 * 60 * 24 - time()) . ' )';
} }
?> ?>
</span> </span>
@ -694,7 +690,6 @@ if (!isset($hgo['id'])) {
); );
while ($chk_pl = mysql_fetch_array($chk_cl)) { while ($chk_pl = mysql_fetch_array($chk_cl)) {
if (mysql_query('UPDATE `items_users` SET `delete` = "' . time() . '" WHERE `id` = "' . $chk_pl['id'] . '" LIMIT 1')) { if (mysql_query('UPDATE `items_users` SET `delete` = "' . time() . '" WHERE `id` = "' . $chk_pl['id'] . '" LIMIT 1')) {
;
} }
{ {
$x++; $x++;
@ -776,7 +771,7 @@ if (!isset($hgo['id'])) {
} }
} else { } else {
echo 'Поход в пещеры разрешен один раз в два часа. Осталось еще: ' . Conversion::secondsToTimeout( echo 'Поход в пещеры разрешен один раз в два часа. Осталось еще: ' . Conversion::secondsToTimeout(
60 * 60 * 2 - time() + $g11['time'] 60 * 60 * 2 - time() + $dungeonTimeout
) . '<br><small style="color:grey">Но Вы всегда можете приобрести ключ от прохода у любого &quot;копателя пещер&quot; в Торговом зале ;)</small>'; ) . '<br><small style="color:grey">Но Вы всегда можете приобрести ключ от прохода у любого &quot;копателя пещер&quot; в Торговом зале ;)</small>';
} }
} }

View File

@ -1,6 +1,7 @@
<?php <?php
use Helper\Conversion; use Helper\Conversion;
use Model\ActionModel;
if (!defined('GAME')) { if (!defined('GAME')) {
die(); die();
@ -49,13 +50,12 @@ if ($u->info['dn'] > 0) { // Если ты пошел гулять, так ид
} }
} }
$dungeon_timeout = $u->testAction('`uid` = "' . $u->info['id'] . '" AND `vars` = "psh' . $dungeon['id'] . '" AND `time` > ' . (time() - 60 * 60 * 2) . ' LIMIT 1', 1); // Проверка - последний визит? $dungeonTimeout = ActionModel::getOne(["uid = {$u->info['id']}", "vars = psh{$dungeon['id']}", 'time > unix_timestamp() - 7200'], 'time'); // Проверка - последний визит?
if (isset($dungeon_timeout['id'])) // Кто-то передумал и не пойдет в пещеру, так-как уже там был. if ($dungeonTimeout) { // Кто-то передумал и не пойдет в пещеру, так-как уже там был.
{
$dungeonGo = 0; $dungeonGo = 0;
if (isset($_GET['start'])) { if (isset($_GET['start'])) {
$re = 'До следующего похода осталось еще: ' . Conversion::secondsToTimeout(60 * 60 * 2 - time() + $dungeon_timeout['time']); $re = 'До следующего похода осталось еще: ' . Conversion::secondsToTimeout(60 * 60 * 2 - time() + $dungeonTimeout);
} }
} }
@ -430,19 +430,14 @@ if ($roomSection == 1) {
$qsee = ''; $qsee = '';
$qx = 0; $qx = 0;
//if($u->info['admin']==0){ $questTimeout = ActionModel::getOne(["uid = {$u->info['id']}", 'vars = psh_qt_capitalcity', 'time > unix_timestamp() - 86400'], 'time');
$hgo = $u->testAction('`uid` = "' . $u->info['id'] . '" AND `time` >= ' . (time() - 60 * 60 * 24) . ' AND `vars` = "psh_qt_capitalcity" LIMIT 1', 1);
//}
if (isset($_GET['add_quest'])) { if (isset($_GET['add_quest'])) {
if (isset($hgo['id'])) { if ($questTimeout) {
echo '<font color="red"><b>Нельзя получать задания чаще одного раза в сутки</b></font><br>'; echo '<font color="red"><b>Нельзя получать задания чаще одного раза в сутки</b></font><br>';
} else { } else {
//if($u->info['admin']>0){
// $sp = mysql_query('SELECT * FROM `quests` WHERE `id` = "236" && `tr_date` LIKE "%tr_dn:=:'.$dun.'%"'); // Только дашку
//} else {
$sp = mysql_query('SELECT * FROM `quests` WHERE `line` = ' . $dungeon['id'] . ''); $sp = mysql_query('SELECT * FROM `quests` WHERE `line` = ' . $dungeon['id'] . '');
//}
$dq_add = []; $dq_add = [];
while ($pl = mysql_fetch_array($sp)) { while ($pl = mysql_fetch_array($sp)) {
@ -505,13 +500,13 @@ if ($roomSection == 1) {
<?= $qsee ?> <?= $qsee ?>
<span style="padding-left: 10"> <span style="padding-left: 10">
<?php <?php
if (!isset($hgo['id'])) { if ($questTimeout) {
echo 'Получить новое задание можно <b>' . date('d.m.Y H:i', $questTimeout + 60 * 60 * 24) . '</b> ( Через ' . Conversion::secondsToTimeout($questTimeout + 60 * 60 * 24 - time()) . ' )';
} else {
?> ?>
<br/> <br/>
<input type='button' value='Получить задание' onclick='location="main.php?rz=1&add_quest=1"'/> <input type='button' value='Получить задание' onclick='location="main.php?rz=1&add_quest=1"'/>
<?php <?php
} else {
echo 'Получить новое задание можно <b>' . date('d.m.Y H:i', $hgo['time'] + 60 * 60 * 24) . '</b> ( Через ' . Conversion::secondsToTimeout($hgo['time'] + 60 * 60 * 24 - time()) . ' )';
} }
?> ?>
</span> </span>
@ -716,7 +711,6 @@ if (!isset($hgo['id'])) {
); );
while ($chk_pl = mysql_fetch_array($chk_cl)) { while ($chk_pl = mysql_fetch_array($chk_cl)) {
if (mysql_query('UPDATE `items_users` SET `delete` = "' . time() . '" WHERE `id` = "' . $chk_pl['id'] . '" LIMIT 1')) { if (mysql_query('UPDATE `items_users` SET `delete` = "' . time() . '" WHERE `id` = "' . $chk_pl['id'] . '" LIMIT 1')) {
;
} }
{ {
$x++; $x++;
@ -796,7 +790,7 @@ if (!isset($hgo['id'])) {
} }
} else { } else {
echo 'Поход в пещеры разрешен один раз в два часа. Осталось еще: ' . Conversion::secondsToTimeout( echo 'Поход в пещеры разрешен один раз в два часа. Осталось еще: ' . Conversion::secondsToTimeout(
60 * 60 * 2 - time() + $dungeon_timeout['time'] 60 * 60 * 2 - time() + $dungeonTimeout
) . '<br><small style="color:grey">Но Вы всегда можете приобрести ключ от прохода у любого &quot;копателя пещер&quot; в Торговом зале ;)</small>'; ) . '<br><small style="color:grey">Но Вы всегда можете приобрести ключ от прохода у любого &quot;копателя пещер&quot; в Торговом зале ;)</small>';
} }
} }

View File

@ -1,6 +1,7 @@
<?php <?php
use Helper\Conversion; use Helper\Conversion;
use Model\ActionModel;
if (!defined('GAME')) { if (!defined('GAME')) {
die(); die();
@ -9,14 +10,11 @@ if (!defined('GAME')) {
if ($u->room['file'] == 'entersnow') { if ($u->room['file'] == 'entersnow') {
$dun = 20; //для новичков 2-7 лвл $dun = 20; //для новичков 2-7 лвл
$er = ''; $er = '';
$dzs = ''; $dzs = '';
$g111 = 1; $g111 = 1;
$g11 = $u->testAction('`uid` = "' . $u->info['id'] . '" AND `vars` = "psh1" AND `time`>' . (time() - 7200) . ' LIMIT 1', 1); $dungeonTimeout = ActionModel::getOne(["uid = {$u->info['id']}", 'vars = psh1', 'time > unix_timestamp() - 7200'], 'time');
$moder = mysql_fetch_array(mysql_query('SELECT * FROM `moder` WHERE `align` = "' . $u->info['align'] . '" LIMIT 1')); $moder = mysql_fetch_array(mysql_query('SELECT * FROM `moder` WHERE `align` = "' . $u->info['align'] . '" LIMIT 1'));
@ -28,10 +26,10 @@ if ($u->room['file'] == 'entersnow') {
} }
} }
if (isset($g11['id'])) { if ($dungeonTimeout) {
$g111 = 0; $g111 = 0;
if (isset($_GET['start'])) { if (isset($_GET['start'])) {
$re = 'Поход в пещеры разрешен один раз в два часа. Осталось еще: ' . Conversion::secondsToTimeout(7200 - time() + $g11['time']); $re = 'Поход в пещеры разрешен один раз в два часа. Осталось еще: ' . Conversion::secondsToTimeout(7200 - time() + $dungeonTimeout);
} }
} }
if (isset($_GET['start']) && $zv_dn['uid'] == $u->info['id'] && $g111 == 1) { if (isset($_GET['start']) && $zv_dn['uid'] == $u->info['id'] && $g111 == 1) {
@ -351,7 +349,7 @@ if ($u->room['file'] == 'entersnow') {
<?php <?php
} else { } else {
echo 'Поход в пещеры разрешен один раз в два часа. Осталось еще: ' . Conversion::secondsToTimeout( echo 'Поход в пещеры разрешен один раз в два часа. Осталось еще: ' . Conversion::secondsToTimeout(
7200 - time() + $g11['time'] 7200 - time() + $dungeonTimeout
) . '<br><small style="color:grey">Но Вы всегда можете приобрести ключ от прохода у любого &quot;копателя пещер&quot; в Торговом зале ;)</small>'; ) . '<br><small style="color:grey">Но Вы всегда можете приобрести ключ от прохода у любого &quot;копателя пещер&quot; в Торговом зале ;)</small>';
} }
} }

View File

@ -51,14 +51,13 @@ if (!defined('GAME')) {
<small> <small>
<HR> <HR>
<div id="ajaxButtons"<?php <div id="ajaxButtons"<?php
$hgo = $u->testHome(); if ($u->testHome()) {
if (!isset($hgo['id'])) {
echo '<INPUT onclick="location.href=\'main.php?homeworld=' . $code . '\';" class="btn" value="Возврат" type="button" name="combats2">'; echo '<INPUT onclick="location.href=\'main.php?homeworld=' . $code . '\';" class="btn" value="Возврат" type="button" name="combats2">';
} }
unset($hgo);
?> ?>
<INPUT onclick="location.href='main.php?clubmap=<?= $code; ?>';" class="btn" value="Карта клуба" type="button" name="combats2"> <INPUT onclick="location.href='main.php?clubmap=<?= $code; ?>';" class="btn" value="Карта клуба" type="button" name="combats2">
<INPUT id="forum" class="btn" onclick="window.open('<?= $c['forum']; ?>', 'forum', 'location=yes,menubar=yes,status=yes,resizable=yes,toolbar=yes,scrollbars=yes,scrollbars=yes')" value="Форум" type="button" name="forum"> <INPUT id="forum" class="btn" onclick="window.open('<?= $c['forum']; ?>', 'forum', 'location=yes,menubar=yes,status=yes,resizable=yes,toolbar=yes,scrollbars=yes,scrollbars=yes')" value="Форум"
type="button" name="forum">
<INPUT class="btn" onclick="window.open('/encicl/help/top1.html', 'help', 'height=300,width=500,location=no,menubar=no,status=no,toolbar=no,scrollbars=yes')" value="Подсказка" type="button"> <INPUT class="btn" onclick="window.open('/encicl/help/top1.html', 'help', 'height=300,width=500,location=no,menubar=no,status=no,toolbar=no,scrollbars=yes')" value="Подсказка" type="button">
<INPUT class="btn" value="Объекты" type="button"> <INPUT class="btn" value="Объекты" type="button">
</div><br/> </div><br/>

View File

@ -1,6 +1,7 @@
<?php <?php
use Helper\Conversion; use Helper\Conversion;
use Model\ActionModel;
if (!defined('GAME')) { if (!defined('GAME')) {
die(); die();
@ -464,7 +465,7 @@ if ($u->room['file'] == 'house_belaun' && false) {
} // Собираем группу для похода } // Собираем группу для похода
//if( $u->info['admin'] > 0 ) var_info($dungeon); //if( $u->info['admin'] > 0 ) var_info($dungeon);
$all_dungeon = mysql_query('SELECT `city` FROM `dungeon_room` WHERE `city` IS NOT NULL AND `active`=1 '); $all_dungeon = mysql_query('select city from dungeon_room where city is not null and active=1 ');
while ($t = mysql_fetch_array($all_dungeon)) { while ($t = mysql_fetch_array($all_dungeon)) {
$dungeon['list'][] = $t['city']; $dungeon['list'][] = $t['city'];
} }
@ -478,16 +479,17 @@ if ($u->room['file'] == 'house_belaun' && false) {
} }
} }
$dungeon_timeout = $u->testAction('`uid` = "' . $u->info['id'] . '" AND `vars` = "psh0" AND `time` > ' . (time() - 60 * 60 * 2) . ' LIMIT 1', 1); $dungeonTimeout = ActionModel::getOne(["uid = {$u->info['id']}", 'vars = psh0', 'time > unix_timestamp() - 7200'], 'time');
if ($u->info['admin'] > 0) { if ($u->isAdmin()) {
unset($dungeon_timeout); $dungeonTimeout = 0;
} // $dungeon_timeout - задержка на посещение пещеры. }
if (isset($dungeon_timeout['id'])) // Кто-то передумал и не пойдет в пещеру, так-как уже там был.
if ($dungeonTimeout) // Кто-то передумал и не пойдет в пещеру, так-как уже там был.
{ {
$dungeonGo = 0; $dungeonGo = 0;
if (isset($_GET['start'])) { if (isset($_GET['start'])) {
$error = 'До следующего похода осталось еще: ' . Conversion::secondsToTimeout(60 * 60 * 2 - time() + $dungeon_timeout['time']); $error = 'До следующего похода осталось еще: ' . Conversion::secondsToTimeout(60 * 60 * 2 - time() + $dungeonTimeout);
} }
} }
@ -571,8 +573,7 @@ if ($u->room['file'] == 'house_belaun' && false) {
if ($cord[0] != 0 || $cord[1] != 0) { if ($cord[0] != 0 || $cord[1] != 0) {
mysql_query( mysql_query(
'INSERT INTO `dungeon_items` (`dn`,`user`,`item_id`,`time`,`x`,`y`,`onlyfor`,`quest`) VALUES ( 'INSERT INTO `dungeon_items` (`dn`,`user`,`item_id`,`time`,`x`,`y`,`onlyfor`,`quest`) VALUES (
"' . $zid . '","' . $u->info['id'] . '","' . $xr2[0] . '","' . time( "' . $zid . '","' . $u->info['id'] . '","' . $xr2[0] . '","' . time() . '","' . $cord[0] . '","' . $cord[1] . '","' . $u->info['id'] . '","' . $pl['id'] . '"
) . '","' . $cord[0] . '","' . $cord[1] . '","' . $u->info['id'] . '","' . $pl['id'] . '"
)' )'
); );
} }
@ -1148,9 +1149,7 @@ if ($u->room['file'] == 'house_belaun' && false) {
<form autocomplete="off" action='/main.php' method="post" name="F1" id="F1"> <form autocomplete="off" action='/main.php' method="post" name="F1" id="F1">
<?php <?php
$qsee = ''; $qsee = '';
$hgo = $u->testAction( $questTimeout = ActionModel::getOne(["uid = {$u->info['id']}", "vars = psh_qt_{$dungeon['city']}", 'time > unix_timestamp() - 86400', "room = {$u->info['room']}"], 'time');
'`uid` = "' . $u->info['id'] . '" AND `room` = "' . $u->info['room'] . '" AND `time` >= ' . (time() - 60 * 60 * 24) . ' AND `vars` = "psh_qt_' . $dungeon['city'] . '" LIMIT 1', 1
);
$qc = 0; // Quest Count $qc = 0; // Quest Count
//Генерируем список текущих квестов //Генерируем список текущих квестов
$sp = mysql_query('SELECT * FROM `actions` WHERE `vars` LIKE "%start_quest%" AND `vals` = "go" AND `uid` = "' . $u->info['id'] . '" LIMIT 100'); $sp = mysql_query('SELECT * FROM `actions` WHERE `vars` LIKE "%start_quest%" AND `vals` = "go" AND `uid` = "' . $u->info['id'] . '" LIMIT 100');
@ -1176,7 +1175,7 @@ if ($u->room['file'] == 'house_belaun' && false) {
} }
if (isset($_GET['add_quest']) && $qc == 0) { if (isset($_GET['add_quest']) && $qc == 0) {
if (isset($hgo['id'])) { if ($questTimeout) {
echo '<font color="red"><b>Нельзя получать задания чаще одного раза в сутки</b></font><br>'; echo '<font color="red"><b>Нельзя получать задания чаще одного раза в сутки</b></font><br>';
} else { } else {
$sp = mysql_query('SELECT * FROM `quests` WHERE `line` = ' . $dungeon['id'] . ''); $sp = mysql_query('SELECT * FROM `quests` WHERE `line` = ' . $dungeon['id'] . '');
@ -1234,13 +1233,13 @@ if ($u->room['file'] == 'house_belaun' && false) {
<?php <?php
if ($qc > 0) { if ($qc > 0) {
echo 'Вы еще не справились с текущим заданием.'; echo 'Вы еще не справились с текущим заданием.';
} elseif (!isset($hgo['id']) && $qc == 0) { } elseif (!$questTimeout && $qc == 0) {
?> ?>
<br/> <br/>
<input type='button' value='Получить задание' onclick='location="main.php?rz=1&add_quest=1"'/> <input type='button' value='Получить задание' onclick='location="main.php?rz=1&add_quest=1"'/>
<?php <?php
} else { } else {
echo 'Получить новое задание можно <b>' . date('d.m.Y H:i', $hgo['time'] + 60 * 60 * 24) . '</b> ( Через ' . Conversion::secondsToTimeout($hgo['time'] + 60 * 60 * 24 - time()) . ' )'; echo 'Получить новое задание можно <b>' . date('d.m.Y H:i', $questTimeout + 60 * 60 * 24) . '</b> ( Через ' . Conversion::secondsToTimeout($questTimeout + 60 * 60 * 24 - time()) . ' )';
} }
?> ?>
</span> </span>
@ -1454,7 +1453,6 @@ if ($u->room['file'] == 'house_belaun' && false) {
); );
while ($chk_pl = mysql_fetch_array($chk_cl)) { while ($chk_pl = mysql_fetch_array($chk_cl)) {
if (mysql_query('UPDATE `items_users` SET `delete` = "' . time() . '" WHERE `id` = "' . $chk_pl['id'] . '" LIMIT 1')) { if (mysql_query('UPDATE `items_users` SET `delete` = "' . time() . '" WHERE `id` = "' . $chk_pl['id'] . '" LIMIT 1')) {
;
} }
{ {
$x++; $x++;
@ -1566,7 +1564,7 @@ if ($u->room['file'] == 'house_belaun' && false) {
} }
} else { } else {
echo 'Поход в пещеры разрешен один раз в два часа. Осталось еще: ' . Conversion::secondsToTimeout( echo 'Поход в пещеры разрешен один раз в два часа. Осталось еще: ' . Conversion::secondsToTimeout(
60 * 60 * 2 - time() + $dungeon_timeout['time'] 60 * 60 * 2 - time() + $dungeonTimeout
) . '<br><small style="color:grey">Но Вы всегда можете приобрести ключ от прохода у любого &quot;копателя пещер&quot; в Торговом зале ;)</small>'; ) . '<br><small style="color:grey">Но Вы всегда можете приобрести ключ от прохода у любого &quot;копателя пещер&quot; в Торговом зале ;)</small>';
} }
} }

View File

@ -1,81 +1,115 @@
<?php <?php
if(!defined('GAME')) if (!defined('GAME')) {
{ die();
die();
} }
if($u->room['file']=='kinght') if ($u->room['file'] == 'kinght') {
{ ?>
?> <table width="100%" border="0" cellspacing="0" cellpadding="0">
<table width="100%" border="0" cellspacing="0" cellpadding="0"> <tr>
<tr> <td width="250" valign="top">
<td width="250" valign="top"> <?php $usee = $u->getInfoPers($u->info['id'], 0);
<?php $usee = $u->getInfoPers($u->info['id'],0); if($usee!=false){ echo $usee[0]; }else{ echo 'information is lost.'; } ?> if ($usee != false) {
</td> echo $usee[0];
<td width="230" valign="top" style="padding-top:19px;"><?php require_once('modules_data/stats_loc.php'); ?></td> } else {
<td valign="top"><div align="right"> echo 'information is lost.';
<?php if( $u->error != '' ) { ?> } ?>
<font color=red><b> </td>
<?= $u->error; ?></font></b> <td width="230" valign="top" style="padding-top:19px;"><?php require_once('modules_data/stats_loc.php'); ?></td>
<?php } ?> <td valign="top">
<table border="0" cellpadding="0" cellspacing="0"> <div align="right">
<tr align="right" valign="top"> <?php if ($u->error != '') { ?>
<td> <font color=red><b>
<?php if($re!=''){ echo '<font color="red"><b>'.$re.'</b></font>'; } ?> <?= $u->error; ?></font></b>
<table width="500" border="0" cellspacing="0" cellpadding="0"> <?php } ?>
<tr> <table border="0" cellpadding="0" cellspacing="0">
<td> <tr align="right" valign="top">
<div style="position:relative; cursor: pointer; width: 500;" id="ione"><img src="//img.new-combats.tech/i/images/300x225/club/navig3.jpg" id="img_ione" width="500" height="240" border="1"/> <td>
<?php if ($re != '') {
echo '<font color="red"><b>' . $re . '</b></font>';
} ?>
<table width="500" border="0" cellspacing="0" cellpadding="0">
<tr>
<td>
<div style="position:relative; cursor: pointer; width: 500;" id="ione"><img src="//img.new-combats.tech/i/images/300x225/club/navig3.jpg" id="img_ione"
width="500" height="240" border="1"/>
<div style="position:absolute; left:118px; top:175px; width:101px; height:37px; z-index:90;"><img onmouseover="this.className='aFilterhover';" onmouseout="this.className='aFilter';" src="//img.new-combats.tech/i/images/300x225/map_sec3.gif" width="101" height="37" class="aFilter" /></div> <div style="position:absolute; left:118px; top:175px; width:101px; height:37px; z-index:90;"><img onmouseover="this.className='aFilterhover';"
onmouseout="this.className='aFilter';"
<div style="position:absolute; left:279px; top:55px; width:16px; height:18px; z-index:90;"><img src="//img.new-combats.tech/i/images/300x225/fl1.gif" width="16" height="18" title="Вы находитесь в '<?= $u->room['name']; ?>'" /></div> src="//img.new-combats.tech/i/images/300x225/map_sec3.gif"
<div style="position:absolute; left:281px; top:173px; width:122px; height:31px; z-index:90;"><img onmouseover="this.className='aFilterhover';" onmouseout="this.className='aFilter';" src="//img.new-combats.tech/i/images/300x225/map_sec5.gif" width="122" height="31" class="aFilter" /></div> width="101" height="37" class="aFilter"/></div>
<div style="position:absolute; left:23px; top:116px; width:120px; height:35px; z-index:90;"><img <?php thisInfRm('1.180.0.220'); ?> onclick="location='main.php?loc=1.180.0.220';" onmouseover="this.className='aFilterhover';" onmouseout="this.className='aFilter';" src="//img.new-combats.tech/i/images/300x225/map_2stair.gif" width="120" height="35" class="aFilter" /></div>
<div style="position:absolute; left:279px; top:55px; width:16px; height:18px; z-index:90;"><img src="//img.new-combats.tech/i/images/300x225/fl1.gif"
<div style="position:absolute; left:36px; top:41px; width:63px; height:40px; z-index:90;"><img onmouseover="this.className='aFilterhover';" onmouseout="this.className='aFilter';" src="//img.new-combats.tech/i/images/300x225/map_sec2.gif" width="63" height="40" class="aFilter" /></div> width="16" height="18"
title="Вы находитесь в '<?= $u->room['name']; ?>'"/>
<div style="position:absolute; left:24px; top:180px; width:91px; height:43px; z-index:90;"><img onmouseover="this.className='aFilterhover';" onmouseout="this.className='aFilter';" src="//img.new-combats.tech/i/images/300x225/map_sec1.gif" width="91" height="43" class="aFilter" /></div> </div>
<div style="position:absolute; left:122px; top:52px; width:123px; height:39px; z-index:90;"><img <?php thisInfRm('1.180.0.XX'); ?> onclick="location='main.php?loc=1.180.0.XX';" onmouseover="this.className='aFilterhover';" onmouseout="this.className='aFilter';" src="//img.new-combats.tech/i/images/300x225/map_sec7.gif" width="123" height="39" class="aFilter" /></div> <div style="position:absolute; left:281px; top:173px; width:122px; height:31px; z-index:90;"><img onmouseover="this.className='aFilterhover';"
<div style="position:absolute; left:305px; top:51px; width:123px; height:30px; z-index:90;"><img onmouseover="this.className='aFilterhover';" onmouseout="this.className='aFilter';" src="//img.new-combats.tech/i/images/300x225/map_sec6.gif" width="123" height="30" class="aFilter" /></div> onmouseout="this.className='aFilter';"
<div style="position:absolute; left:391px; top:120px; width:89px; height:32px; z-index:90;"><img <?php thisInfRm('1.180.0.223'); ?> onclick="location='main.php?loc=1.180.0.223';" onmouseover="this.className='aFilterhover';" onmouseout="this.className='aFilter';" src="//img.new-combats.tech/i/images/300x225/map_sec4.gif" width="89" height="32" class="aFilter" /></div> src="//img.new-combats.tech/i/images/300x225/map_sec5.gif"
<div id="snow"></div> width="122" height="31" class="aFilter"/></div>
<?= $goline; ?> <div style="position:absolute; left:23px; top:116px; width:120px; height:35px; z-index:90;"><img <?php thisInfRm('1.180.0.220'); ?>
</div> onclick="location='main.php?loc=1.180.0.220';" onmouseover="this.className='aFilterhover';" onmouseout="this.className='aFilter';"
</td> src="//img.new-combats.tech/i/images/300x225/map_2stair.gif" width="120" height="35" class="aFilter"/></div>
</tr>
</table> <div style="position:absolute; left:36px; top:41px; width:63px; height:40px; z-index:90;"><img onmouseover="this.className='aFilterhover';"
<div style="display:none; height:0px " id="moveto"></div> onmouseout="this.className='aFilter';"
<?php src="//img.new-combats.tech/i/images/300x225/map_sec2.gif"
if($u->info['level']<6) width="63" height="40" class="aFilter"/></div>
{
echo ' <div style="position:absolute; left:24px; top:180px; width:91px; height:43px; z-index:90;"><img onmouseover="this.className='aFilterhover';"
onmouseout="this.className='aFilter';"
src="//img.new-combats.tech/i/images/300x225/map_sec1.gif"
width="91" height="43" class="aFilter"/></div>
<div style="position:absolute; left:122px; top:52px; width:123px; height:39px; z-index:90;"><img <?php thisInfRm('1.180.0.XX'); ?>
onclick="location='main.php?loc=1.180.0.XX';" onmouseover="this.className='aFilterhover';" onmouseout="this.className='aFilter';"
src="//img.new-combats.tech/i/images/300x225/map_sec7.gif" width="123" height="39" class="aFilter"/></div>
<div style="position:absolute; left:305px; top:51px; width:123px; height:30px; z-index:90;"><img onmouseover="this.className='aFilterhover';"
onmouseout="this.className='aFilter';"
src="//img.new-combats.tech/i/images/300x225/map_sec6.gif"
width="123" height="30" class="aFilter"/></div>
<div style="position:absolute; left:391px; top:120px; width:89px; height:32px; z-index:90;"><img <?php thisInfRm('1.180.0.223'); ?>
onclick="location='main.php?loc=1.180.0.223';" onmouseover="this.className='aFilterhover';" onmouseout="this.className='aFilter';"
src="//img.new-combats.tech/i/images/300x225/map_sec4.gif" width="89" height="32" class="aFilter"/></div>
<div id="snow"></div>
<?= $goline; ?>
</div>
</td>
</tr>
</table>
<div style="display:none; height:0px " id="moveto"></div>
<?php
if ($u->info['level'] < 6) {
echo '
Вам все время кажется что за вами следят? Чудится, что случайный попутчик мечтает всадить вам топор в спину? При совершении очередной покупки в гос. магазине мучает ощущение, что вас обманули? Кажется, что симпатичная девушка напротив смотрит на вас как на пищу? Успокойтесь, это не паранойя. Это реалии Capital city. Города Тьмы. Вам все время кажется что за вами следят? Чудится, что случайный попутчик мечтает всадить вам топор в спину? При совершении очередной покупки в гос. магазине мучает ощущение, что вас обманули? Кажется, что симпатичная девушка напротив смотрит на вас как на пищу? Успокойтесь, это не паранойя. Это реалии Capital city. Города Тьмы.
'; ';
}else{ } else {
echo 'Возможно, вы ошиблись этажом - настоящие сражения проходят этажом выше.'; echo 'Возможно, вы ошиблись этажом - настоящие сражения проходят этажом выше.';
} ?> } ?>
</small></div></td> </small>
<td> </div>
<!-- <br /><span class="menutop"><nobr>Комната для новичков</nobr></span>--> </td>
</td> <td>
<!-- <br /><span class="menutop"><nobr>Комната для новичков</nobr></span>-->
</td>
</tr> </tr>
</table> </table>
<small> <small>
<HR> <HR>
<INPUT id="forum" class="btn btn-inverse" onclick="window.open('/news/', 'news', 'location=yes,menubar=yes,status=yes,resizable=yes,toolbar=yes,scrollbars=yes,scrollbars=yes')" value="Новости" type="button" name="forum"> <INPUT id="forum" class="btn btn-inverse" onclick="window.open('/news/', 'news', 'location=yes,menubar=yes,status=yes,resizable=yes,toolbar=yes,scrollbars=yes,scrollbars=yes')" value="Новости"
<INPUT onclick="location.href='main.php?zayvka=<?= $code; ?>';" class="btn btn-inverse" value="Поединки" type="button" name="combats"> type="button" name="forum">
<?php $hgo = $u->testHome(); if(!isset($hgo['id'])){ ?><INPUT onclick="location.href='main.php?homeworld=<?= $code; ?>';" class="btn btn-inverse" value="Возврат" type="button" name="combats2"><?php } unset($hgo); ?> <INPUT onclick="location.href='main.php?zayvka=<?= $code; ?>';" class="btn btn-inverse" value="Поединки" type="button" name="combats">
<INPUT id="forum" class="btn btn-inverse" onclick="window.open('/forum/', 'forum', 'location=yes,menubar=yes,status=yes,resizable=yes,toolbar=yes,scrollbars=yes,scrollbars=yes')" value="Форум" type="button" name="forum"> <?php if ($u->testHome()) { ?><INPUT onclick="location.href='main.php?homeworld=<?= $code; ?>';" class="btn btn-inverse" value="Возврат" type="button" name="combats2"><?php } ?>
<br /> <INPUT id="forum" class="btn btn-inverse" onclick="window.open('/forum/', 'forum', 'location=yes,menubar=yes,status=yes,resizable=yes,toolbar=yes,scrollbars=yes,scrollbars=yes')" value="Форум"
type="button" name="forum">
<br/>
<strong>Внимание!Смените пароль на уникальный,который не использовался ранее в подобных проектах,это обезопасит вашего персонажа от взлома.<BR> <strong>Внимание!Смените пароль на уникальный,который не использовался ранее в подобных проектах,это обезопасит вашего персонажа от взлома.<BR>
<em>Администрация.</strong> </em></small> <BR> <em>Администрация.</strong> </em></small> <BR>
<?= $rowonmax; ?><BR> <?= $rowonmax; ?><BR>
</div></td> </div></td>
</tr> </tr>
</table> </table>
<?php <?php
} }
?> ?>

View File

@ -1,169 +1,184 @@
<?php <?php
if(!defined('GAME')) if (!defined('GAME')) {
{ die();
die();
} }
if($u->room['file']=='novich') if ($u->room['file'] == 'novich') {
{
$tst = mysql_fetch_array(mysql_query('SELECT * FROM `dialog_act` WHERE `uid` = "' . $u->info['id'] . '" AND `var` = "noobqst1" LIMIT 1'));
$tst = mysql_fetch_array(mysql_query('SELECT * FROM `dialog_act` WHERE `uid` = "'.$u->info['id'].'" AND `var` = "noobqst1" LIMIT 1')); if (!isset($tst['id'])) {
if(!isset($tst['id'])) { if (isset($_GET['noobgo']) || $c['noobgade'] == false) {
if(isset($_GET['noobgo']) || $c['noobgade'] == false) { if ($_GET['noobgo'] == 1 && $c['noobgade'] == true) {
if($_GET['noobgo'] == 1 && $c['noobgade'] == true) { //Согласился (создаем пещеру и телепортируем туда
//Согласился (создаем пещеру и телепортируем туда
$ins = mysql_query('INSERT INTO `dungeon_now` (`city`,`uid`,`id2`,`name`,`time_start`)
$ins = mysql_query('INSERT INTO `dungeon_now` (`city`,`uid`,`id2`,`name`,`time_start`) VALUES ("' . $u->info['city'] . '","' . $u->info['id'] . '","106","Академия Новичков","' . time() . '")');
VALUES ("'.$u->info['city'].'","'.$u->info['id'].'","106","Академия Новичков","'.time().'")'); if ($ins) {
if($ins){ $zid = mysql_insert_id();
$zid = mysql_insert_id(); //обновляем пользователей
//обновляем пользователей $su = mysql_query('SELECT `u`.`id`,`st`.`dn` FROM `stats` AS `st` LEFT JOIN `users` AS `u` ON (`st`.`id` = `u`.`id`) WHERE `st`.`id`="' . $u->info['id'] . '"');
$su = mysql_query('SELECT `u`.`id`,`st`.`dn` FROM `stats` AS `st` LEFT JOIN `users` AS `u` ON (`st`.`id` = `u`.`id`) WHERE `st`.`id`="'.$u->info['id'].'"'); $ids = '';
$ids = '';
$map_locs = [];
$map_locs = array(); $spm2 = mysql_query('select id,x,y from dungeon_map where id_dng = 106');
$spm2 = mysql_query('SELECT `id`,`x`,`y` FROM `dungeon_map` WHERE `id_dng` = 106'); while ($plm2 = mysql_fetch_array($spm2)) {
while( $plm2 = mysql_fetch_array( $spm2 ) ) { $map_locs[] = [$plm2['x'], $plm2['y']];
$map_locs[] = array($plm2['x'],$plm2['y']); }
} unset($spm2, $plm2);
unset( $spm2 , $plm2 );
$pxd = 0;
$pxd = 0; while ($pu = mysql_fetch_array($su)) {
while( $pu = mysql_fetch_array($su) ) { $pxd++;
$pxd++; $ids .= ' `id` = "' . $pu['id'] . '" OR';
$ids .= ' `id` = "'.$pu['id'].'" OR'; }
} $ids = rtrim($ids, 'OR');
$ids = rtrim($ids,'OR'); $snew = 0;
$snew = 0; $upd1 = mysql_query('UPDATE `stats` SET `s`="4",`res_s`="1",`x`="0",`y`="0",`res_x`="0",`res_y`="0",`dn` = "0",`dnow` = "' . $zid . '" WHERE ' . $ids . '');
$upd1 = mysql_query('UPDATE `stats` SET `s`="4",`res_s`="1",`x`="0",`y`="0",`res_x`="0",`res_y`="0",`dn` = "0",`dnow` = "'.$zid.'" WHERE '.$ids.''); if ($upd1) {
if( $upd1 ){ $upd2 = mysql_query('UPDATE `users` SET `room` = "391" WHERE ' . $ids . '');
$upd2 = mysql_query('UPDATE `users` SET `room` = "391" WHERE '.$ids.''); //Добавляем ботов и обьекты в пещеру $zid с for_dn = $dungeon['id']
//Добавляем ботов и обьекты в пещеру $zid с for_dn = $dungeon['id'] //Добавляем ботов
//Добавляем ботов $vls = '';
$vls = ''; $sp = mysql_query('select * from dungeon_bots where for_dn = 106');
$sp = mysql_query('SELECT * FROM `dungeon_bots` WHERE `for_dn` = 106'); while ($pl = mysql_fetch_array($sp)) {
while( $pl = mysql_fetch_array( $sp ) ) { if ($pl['id_bot'] == 0 && $pl['bot_group'] != '') {
if( $pl['id_bot'] == 0 && $pl['bot_group'] !=''){ $bots = explode(',', $pl['bot_group']);
$bots = explode( ',', $pl['bot_group'] ); $pl['id_bot'] = (int)$bots[rand(0, count($bots) - 1)];
$pl['id_bot'] = (int)$bots[rand(0, count($bots)-1 )]; }
} if ($pl['id_bot'] > 0) $vls .= '("' . $zid . '","' . $pl['id_bot'] . '","' . $pl['colvo'] . '","' . $pl['items'] . '","' . $pl['x'] . '","' . $pl['y'] . '","' . $pl['dialog'] . '","' . $pl['items'] . '","' . $pl['go_bot'] . '","' . $pl['noatack'] . '"),';
if( $pl['id_bot'] > 0 )$vls .= '("'.$zid.'","'.$pl['id_bot'].'","'.$pl['colvo'].'","'.$pl['items'].'","'.$pl['x'].'","'.$pl['y'].'","'.$pl['dialog'].'","'.$pl['items'].'","'.$pl['go_bot'].'","'.$pl['noatack'].'"),'; unset($bots);
unset($bots); }
} $vls = rtrim($vls, ',');
$vls = rtrim($vls,','); $ins1 = mysql_query('INSERT INTO `dungeon_bots` (`dn`,`id_bot`,`colvo`,`items`,`x`,`y`,`dialog`,`atack`,`go_bot`,`noatack`) VALUES ' . $vls . '');
$ins1 = mysql_query('INSERT INTO `dungeon_bots` (`dn`,`id_bot`,`colvo`,`items`,`x`,`y`,`dialog`,`atack`,`go_bot`,`noatack`) VALUES '.$vls.''); //Добавляем обьекты
//Добавляем обьекты $vls = '';
$vls = ''; $sp = mysql_query('select * from dungeon_obj where for_dn = 106');
$sp = mysql_query('SELECT * FROM `dungeon_obj` WHERE `for_dn` = 106'); while ($pl = mysql_fetch_array($sp)) {
while($pl = mysql_fetch_array($sp)) $vls .= '("' . $zid . '","' . $pl['name'] . '","' . $pl['img'] . '","' . $pl['x'] . '","' . $pl['y'] . '","' . $pl['action'] . '","' . $pl['type'] . '","' . $pl['w'] . '","' . $pl['h'] . '","' . $pl['s'] . '","' . $pl['s2'] . '","' . $pl['os1'] . '","' . $pl['os2'] . '","' . $pl['os3'] . '","' . $pl['os4'] . '","' . $pl['type2'] . '","' . $pl['top'] . '","' . $pl['left'] . '","' . $pl['date'] . '"),';
{ }
$vls .= '("'.$zid.'","'.$pl['name'].'","'.$pl['img'].'","'.$pl['x'].'","'.$pl['y'].'","'.$pl['action'].'","'.$pl['type'].'","'.$pl['w'].'","'.$pl['h'].'","'.$pl['s'].'","'.$pl['s2'].'","'.$pl['os1'].'","'.$pl['os2'].'","'.$pl['os3'].'","'.$pl['os4'].'","'.$pl['type2'].'","'.$pl['top'].'","'.$pl['left'].'","'.$pl['date'].'"),'; //
} $vls = rtrim($vls, ',');
// if ($vls != '') {
$vls = rtrim($vls,','); $ins2 = mysql_query('INSERT INTO `dungeon_obj` (`dn`,`name`,`img`,`x`,`y`,`action`,`type`,`w`,`h`,`s`,`s2`,`os1`,`os2`,`os3`,`os4`,`type2`,`top`,`left`,`date`) VALUES ' . $vls . '');
if( $vls != '' ) { } else {
$ins2 = mysql_query('INSERT INTO `dungeon_obj` (`dn`,`name`,`img`,`x`,`y`,`action`,`type`,`w`,`h`,`s`,`s2`,`os1`,`os2`,`os3`,`os4`,`type2`,`top`,`left`,`date`) VALUES '.$vls.''); $ins2 = true;
} else { }
$ins2 = true; if ($upd2 && $ins1 && $ins2) {
} die('<script>location="main.php?rnd=' . $code . '";</script>');
if( $upd2 && $ins1 && $ins2 ){ } else {
die('<script>location="main.php?rnd='.$code.'";</script>'); $error = 'Ошибка перехода в подземелье...';
} else { }
$error = 'Ошибка перехода в подземелье...'; } else {
} $error = 'Ошибка перехода в подземелье...';
} else { }
$error = 'Ошибка перехода в подземелье...'; } else {
} $error = 'Ошибка перехода в подземелье...';
} else { }
$error = 'Ошибка перехода в подземелье...'; //
} //header('location: main.php');
// die();
//header('location: main.php'); } else {
die(); //Отказался (добавляем квест, системку и пошел нах)
}else{ mysql_query('INSERT INTO `dialog_act` (
//Отказался (добавляем квест, системку и пошел нах)
mysql_query('INSERT INTO `dialog_act` (
`uid`,`var`,`time` `uid`,`var`,`time`
) VALUES ( ) VALUES (
"'.$u->info['id'].'","noobqst1","'.time().'" "' . $u->info['id'] . '","noobqst1","' . time() . '"
)'); )');
//Начало обучения
$humor = array(
0 => array(
''
),
1 => array(
''
)
);
$humor = $humor[$u->info['sex']];
//$u->info['fnq'] = 1;
//mysql_query('UPDATE `users` SET `fnq` = "'.$u->info['fnq'].'" WHERE `id` = "'.$u->info['id'].'" LIMIT 1');
//Отправляем сообщение в чат о новичке
//mysql_query('UPDATE `items_users` SET `delete` = "'.time().'" WHERE `uid` = "'.$u->info['id'].'" AND `delete` = 0 AND `item_id` = 4703');
//mysql_query('UPDATE `users` SET `room` = 4 WHERE `id` = "'.$u->info['id'].'" LIMIT 1');
//mysql_query('UPDATE `stats` SET `hpNow` = 1000,`mpNow` = 1000,`dn` = 0 , `dnow` = 0 , `x` = 0 , `y` = 0 , `s` = 0 WHERE `id` = "'.$u->info['id'].'" LIMIT 1');
//$u->send('','','','','','В нашем мире появился новый игрок &quot;<b>' . $u->info['login'] . '</b>&quot;! '.$humor[rand(0,count($humor)-1)].'',time(),6,0,0,0,1,0);
//echo '<div><font color=red><b>Вы отказались от обучения, второй попытки больше не будет!</b></font></div>'; //Начало обучения
} $humor = [
}else{ 0 => [
echo '<script> '',
],
1 => [
'',
],
];
$humor = $humor[$u->info['sex']];
//$u->info['fnq'] = 1;
//mysql_query('UPDATE `users` SET `fnq` = "'.$u->info['fnq'].'" WHERE `id` = "'.$u->info['id'].'" LIMIT 1');
//Отправляем сообщение в чат о новичке
//mysql_query('UPDATE `items_users` SET `delete` = "'.time().'" WHERE `uid` = "'.$u->info['id'].'" AND `delete` = 0 AND `item_id` = 4703');
//mysql_query('UPDATE `users` SET `room` = 4 WHERE `id` = "'.$u->info['id'].'" LIMIT 1');
//mysql_query('UPDATE `stats` SET `hpNow` = 1000,`mpNow` = 1000,`dn` = 0 , `dnow` = 0 , `x` = 0 , `y` = 0 , `s` = 0 WHERE `id` = "'.$u->info['id'].'" LIMIT 1');
//$u->send('','','','','','В нашем мире появился новый игрок &quot;<b>' . $u->info['login'] . '</b>&quot;! '.$humor[rand(0,count($humor)-1)].'',time(),6,0,0,0,1,0);
//echo '<div><font color=red><b>Вы отказались от обучения, второй попытки больше не будет!</b></font></div>';
}
} else {
echo '<script>
function qstnoobsstart() { function qstnoobsstart() {
top.win.add(\'qstnoobsstart\',\'Вы хотите пройти обучение?\',\'\',{\'a1\':\'top.frames[\\\'main\\\'].location.href=\\\'main.php?noobgo=1\\\';\',\'a2\':\'top.frames[\\\'main\\\'].location.href=\\\'main.php?noobgo=2\\\';\',\'n\':\'<center><small>Отказавшись вы не получите награду!</small></center>\'},2,1,\'width:300px;\'); top.win.add(\'qstnoobsstart\',\'Вы хотите пройти обучение?\',\'\',{\'a1\':\'top.frames[\\\'main\\\'].location.href=\\\'main.php?noobgo=1\\\';\',\'a2\':\'top.frames[\\\'main\\\'].location.href=\\\'main.php?noobgo=2\\\';\',\'n\':\'<center><small>Отказавшись вы не получите награду!</small></center>\'},2,1,\'width:300px;\');
} }
qstnoobsstart(); qstnoobsstart();
</script>'; </script>';
} }
} }
?> ?>
<table width="100%" border="0" cellspacing="0" cellpadding="0"> <table width="100%" border="0" cellspacing="0" cellpadding="0">
<tr> <tr>
<td width="250" valign="top"> <td width="250" valign="top">
<?php $usee = $u->getInfoPers($u->info['id'],0); if($usee!=false){ echo $usee[0]; }else{ echo 'information is lost.'; } ?> <?php $usee = $u->getInfoPers($u->info['id'], 0);
</td> if ($usee != false) {
<td width="230" valign="top" style="padding-top:19px;"><?php require_once('modules_data/stats_loc.php'); ?></td> echo $usee[0];
<td valign="top"><div align="right"> } else {
<table width="510" border="0" cellpadding="0" cellspacing="0"> echo 'information is lost.';
<tr align="right" valign="top"> } ?>
<td> </td>
<?php if($re!=''){ echo '<font color="red"><b>'.$re.'</b></font>'; } ?> <td width="230" valign="top" style="padding-top:19px;"><?php require_once('modules_data/stats_loc.php'); ?></td>
<table border="0" cellspacing="0" cellpadding="0"> <td valign="top">
<tr> <div align="right">
<td> <table width="510" border="0" cellpadding="0" cellspacing="0">
<div style="position:relative; cursor: pointer; width: 500px;" id="ione"><img src="//img.new-combats.tech/i/images/300x225/club/navig2.jpg" id="img_ione" width="500" height="240" border="1"/> <tr align="right" valign="top">
<div style="position:absolute; left:264px; top:106px; width:175px; height:37px; z-index:90;"><img src="//img.new-combats.tech/i/images/subimages/map_zal2.gif" width="175" height="37" id="mo_1.180.0.0" /></div> <td>
<div style="position:absolute; left:47px; top:120px; width:135px; height:29px; z-index:90;"><img <?php thisInfRm('1.180.0.1'); ?> src="//img.new-combats.tech/i/images/subimages/map_zal3.gif" width="135" height="29" class="aFilter" id="mo_1.180.0.1" /></div> <?php if ($re != '') {
<div style="position:absolute; left:81px; top:102px; width:88px; height:15px; z-index:90;"><img src="//img.new-combats.tech/i/images/subimages/map_zal1.gif" width="88" height="15" title="Вход через Комнату Перехода" id="mo_1.180.0.2" class="aFilter" onclick="alert('Вход через Комнату Перехода')" /></div> echo '<font color="red"><b>' . $re . '</b></font>';
<div style="position:absolute; left:349px; top:139px; width:16px; height:18px; z-index:90;"><img src="//img.new-combats.tech/i/images/subimages/fl1.gif" width="16" height="18" title="Вы находитесь в Комнате для Новичков" /></div> } ?>
<div id="snow"></div> <table border="0" cellspacing="0" cellpadding="0">
<?= $goline; ?> <tr>
</div> <td>
</td> <div style="position:relative; cursor: pointer; width: 500px;" id="ione"><img src="//img.new-combats.tech/i/images/300x225/club/navig2.jpg" id="img_ione"
</tr> width="500" height="240" border="1"/>
</table> <div style="position:absolute; left:264px; top:106px; width:175px; height:37px; z-index:90;"><img
<div style="display:none; height:0px " id="moveto"></div> src="//img.new-combats.tech/i/images/subimages/map_zal2.gif" width="175" height="37" id="mo_1.180.0.0"/></div>
Чтобы начать играть,<b>Вам нужно прочесть подсказку ( ниже )</b>.<br /> <div style="position:absolute; left:47px; top:120px; width:135px; height:29px; z-index:90;"><img <?php thisInfRm('1.180.0.1'); ?>
После прочтения,ниже,воспользуйтесь кнопкой<b>"Возврат"</b><br /> src="//img.new-combats.tech/i/images/subimages/map_zal3.gif" width="135" height="29" class="aFilter" id="mo_1.180.0.1"/></div>
<?php $hgo = $u->testHome(); if(!isset($hgo['id'])){ ?><INPUT onclick="location.href='main.php?homeworld=<?= $code; ?>';" class="btn" value="Возврат" type="button" name="combats2"><?php } unset($hgo); ?> <div style="position:absolute; left:81px; top:102px; width:88px; height:15px; z-index:90;"><img
<INPUT class="btn" onclick="window.open('/forum/?read=845&rnd=1', 'help', 'height=500,width=1200,location=no,menubar=no,status=no,toolbar=no,scrollbars=yes')" value="Подсказка для новичков" style="color:red;" type="button"> src="//img.new-combats.tech/i/images/subimages/map_zal1.gif" width="88" height="15" title="Вход через Комнату Перехода" id="mo_1.180.0.2"
<br /> class="aFilter" onclick="alert('Вход через Комнату Перехода')"/></div>
</small></div></td> <div style="position:absolute; left:349px; top:139px; width:16px; height:18px; z-index:90;"><img src="//img.new-combats.tech/i/images/subimages/fl1.gif"
<td> width="16" height="18"
<!-- <br /><span class="menutop"><nobr>Комната для новичков</nobr></span>--> title="Вы находитесь в Комнате для Новичков"/></div>
</td> <div id="snow"></div>
<?= $goline; ?>
</div>
</td>
</tr>
</table>
<div style="display:none; height:0px " id="moveto"></div>
Чтобы начать играть,<b>Вам нужно прочесть подсказку ( ниже )</b>.<br/>
После прочтения,ниже,воспользуйтесь кнопкой<b>"Возврат"</b><br/>
<?php if ($u->testHome()) { ?><INPUT onclick="location.href='main.php?homeworld=<?= $code; ?>';" class="btn" value="Возврат" type="button" name="combats2"><?php } ?>
<INPUT class="btn" onclick="window.open('/forum/?read=845&rnd=1', 'help', 'height=500,width=1200,location=no,menubar=no,status=no,toolbar=no,scrollbars=yes')"
value="Подсказка для новичков" style="color:red;" type="button">
<br/>
</small>
</div>
</td>
<td>
<!-- <br /><span class="menutop"><nobr>Комната для новичков</nobr></span>-->
</td>
</tr> </tr>
</table> </table>
<small> <small>
<HR> <HR>
<br /> <br/>
<strong>Внимание!Смените пароль на уникальный,который не использовался ранее в подобных проектах,это обезопасит вашего персонажа от взлома.<BR> <strong>Внимание!Смените пароль на уникальный,который не использовался ранее в подобных проектах,это обезопасит вашего персонажа от взлома.<BR>
<em>Администрация.</strong> </em></small> <BR> <em>Администрация.</strong> </em></small> <BR>
<?= $rowonmax; ?><BR> <?= $rowonmax; ?><BR>
</div></td> </div></td>
</tr> </tr>
</table> </table>
<?php <?php
} }
?> ?>

View File

@ -1,4 +1,8 @@
<?php <?php
use Core\Db;
use Model\ActionModel;
if (!defined('GAME')) { if (!defined('GAME')) {
die(); die();
} }
@ -30,7 +34,7 @@ if ($u->info['admin'] > 0) {
} }
#---пара проверок ;) #---пара проверок ;)
if (isset($objaga['id'])) { if (isset($objaga['id'])) {
$sleep = $u->testAction('`vars` = "sleep" AND `uid` = "' . $u->info['id'] . '" LIMIT 1', 1); $sleep = ActionModel::get(["uid = {$u->info['id']}", 'vars = sleep']);
if ($sleep[0] > 0) { if ($sleep[0] > 0) {
if ($u->info['room'] != 217 && $u->info['room'] != 218 && $u->info['room'] != 219) { if ($u->info['room'] != 217 && $u->info['room'] != 218 && $u->info['room'] != 219) {
mysql_query('UPDATE `users` SET `room` = 217 WHERE `id` = "' . $u->info['id'] . '" LIMIT 1'); mysql_query('UPDATE `users` SET `room` = 217 WHERE `id` = "' . $u->info['id'] . '" LIMIT 1');
@ -797,7 +801,7 @@ if ($u->info['admin'] > 0) {
if ($p_count > 9) { if ($p_count > 9) {
echo '<b><font color=red>Вы не можете создавать более десяти персонажей</font></b><br>'; echo '<b><font color=red>Вы не можете создавать более десяти персонажей</font></b><br>';
} else { } else {
\Core\Db::sql("insert into users_twink Db::sql("insert into users_twink
(uid, twink, login, level, exp, upLevel, stats, time, ability, skills, sskills, nskills, priems, obraz, stopexp) (uid, twink, login, level, exp, upLevel, stats, time, ability, skills, sskills, nskills, priems, obraz, stopexp)
values (?,?,?,4,2500,22,'s1=3|s2=3|s3=3|s4=7|rinv=40|m9=5|m6=10',unix_timestamp(),34,5,4,5, values (?,?,?,4,2500,22,'s1=3|s2=3|s3=3|s4=7|rinv=40|m9=5|m6=10',unix_timestamp(),34,5,4,5,
'0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0','0.gif',0)", [$u->info['id'], $p_count, $u->info['login']]); '0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0','0.gif',0)", [$u->info['id'], $p_count, $u->info['login']]);

View File

@ -1,6 +1,7 @@
<?php <?php
use Helper\Conversion; use Helper\Conversion;
use Model\ActionModel;
if (!defined('GAME')) { if (!defined('GAME')) {
die(); die();
@ -9,13 +10,11 @@ if (!defined('GAME')) {
if ($u->room['file'] == 'penter') { if ($u->room['file'] == 'penter') {
$dun = 1; //для новичков 2-7 лвл $dun = 1; //для новичков 2-7 лвл
$er = ''; $er = '';
$dzs = ''; $dzs = '';
$g111 = 1; $g111 = 1;
$g11 = $u->testAction('`uid` = "' . $u->info['id'] . '" AND `vars` = "psh1" AND `time`>' . (time() - 7200) . ' LIMIT 1', 1);
$dungeonTimeout = ActionModel::getOne(["uid = {$u->info['id']}", 'vars = psh1', 'time > unix_timestamp() - 7200'], 'time');
$moder = mysql_fetch_array(mysql_query('SELECT * FROM `moder` WHERE `align` = "' . $u->info['align'] . '" LIMIT 1')); $moder = mysql_fetch_array(mysql_query('SELECT * FROM `moder` WHERE `align` = "' . $u->info['align'] . '" LIMIT 1'));
@ -28,10 +27,10 @@ if ($u->room['file'] == 'penter') {
} }
} }
if (isset($g11['id'])) { if ($dungeonTimeout) {
$g111 = 0; $g111 = 0;
if (isset($_GET['start'])) { if (isset($_GET['start'])) {
$re = 'Поход в пещеры запрещен. Осталось еще: ' . Conversion::secondsToTimeout(7200 - time() + $g11['time']); $re = 'Поход в пещеры запрещен. Осталось еще: ' . Conversion::secondsToTimeout(7200 - time() + $dungeonTimeout);
} }
} }
if (isset($_GET['start']) && $zv['uid'] == $u->info['id'] && $g111 == 1) { if (isset($_GET['start']) && $zv['uid'] == $u->info['id'] && $g111 == 1) {
@ -379,7 +378,7 @@ if ($u->room['file'] == 'penter') {
<?php <?php
} else { } else {
echo 'Поход в пещеры разрешен один раз в два часа. Осталось еще: ' . Conversion::secondsToTimeout( echo 'Поход в пещеры разрешен один раз в два часа. Осталось еще: ' . Conversion::secondsToTimeout(
7200 - time() + $g11['time'] 7200 - time() + $dungeonTimeout
) . '<br><small style="color:grey">Но Вы всегда можете приобрести ключ от прохода у любого &quot;копателя пещер&quot; в Торговом зале ;)</small>'; ) . '<br><small style="color:grey">Но Вы всегда можете приобрести ключ от прохода у любого &quot;копателя пещер&quot; в Торговом зале ;)</small>';
} }
} }

View File

@ -1,60 +1,75 @@
<?php <?php
if(!defined('GAME')) if (!defined('GAME')) {
{ die();
die();
} }
if($u->room['file']=='perehod') if ($u->room['file'] == 'perehod') {
{ ?>
?> <table width="100%" border="0" cellspacing="0" cellpadding="0">
<table width="100%" border="0" cellspacing="0" cellpadding="0"> <tr>
<tr> <td width="250" valign="top">
<td width="250" valign="top"> <?php $usee = $u->getInfoPers($u->info['id'], 0);
<?php $usee = $u->getInfoPers($u->info['id'],0); if($usee!=false){ echo $usee[0]; }else{ echo 'information is lost.'; } ?> if ($usee != false) {
</td> echo $usee[0];
<td width="230" valign="top" style="padding-top:19px;"><?php require_once('modules_data/stats_loc.php'); ?></td> } else {
<td valign="top"><div align="right"> echo 'information is lost.';
<table border="0" cellpadding="0" cellspacing="0"> } ?>
<tr align="right" valign="top"> </td>
<td> <td width="230" valign="top" style="padding-top:19px;"><?php require_once('modules_data/stats_loc.php'); ?></td>
<?php if($re!=''){ echo '<font color="red"><b>'.$re.'</b></font>'; } ?> <td valign="top">
<table width="500" border="0" cellspacing="0" cellpadding="0"> <div align="right">
<tr> <table border="0" cellpadding="0" cellspacing="0">
<td> <tr align="right" valign="top">
<div style="position:relative; cursor: pointer; width: 500;" id="ione"><img src="//img.new-combats.tech/i/images/300x225/club/navig2.jpg" id="img_ione" width="500" height="240" border="1"/> <td>
<div style="position:absolute; left:264px; top:106px; width:175px; height:37px; z-index:90;"><img <?php thisInfRm('1.180.0.0'); ?> src="//img.new-combats.tech/i/images/subimages/map_zal2.gif" id="mo_1.180.0.0" width="175" height="37" /></div> <?php if ($re != '') {
<div style="position:absolute; left:47px; top:120px; width:135px; height:29px; z-index:90;"><img src="//img.new-combats.tech/i/images/subimages/map_zal3.gif" width="135" height="29" class="aFilter" id="mo_1.180.0.1" /></div> echo '<font color="red"><b>' . $re . '</b></font>';
<div style="position:absolute; left:81px; top:102px; width:88px; height:15px; z-index:90;"><img <?php thisInfRm('1.180.0.2'); ?> src="//img.new-combats.tech/i/images/subimages/map_zal1.gif" width="88" height="15" class="aFilter" id="mo_1.180.0.2" /></div> } ?>
<div style="position:absolute; left:167px; top:107px; width:16px; height:18px; z-index:90;"><img src="//img.new-combats.tech/i/images/subimages/fl1.gif" width="16" height="18" title="Вы находитесь в Комнате перехода" /></div> <table width="500" border="0" cellspacing="0" cellpadding="0">
<div id="snow"></div> <tr>
<?= $goline; ?> <td>
</div> <div style="position:relative; cursor: pointer; width: 500;" id="ione"><img src="//img.new-combats.tech/i/images/300x225/club/navig2.jpg" id="img_ione"
</td> width="500" height="240" border="1"/>
</tr> <div style="position:absolute; left:264px; top:106px; width:175px; height:37px; z-index:90;"><img <?php thisInfRm('1.180.0.0'); ?>
</table> src="//img.new-combats.tech/i/images/subimages/map_zal2.gif" id="mo_1.180.0.0" width="175" height="37"/></div>
<div style="display:none; height:0px " id="moveto"></div> <div style="position:absolute; left:47px; top:120px; width:135px; height:29px; z-index:90;"><img
Чтобы начать играть,<b>Вам нужно прочесть подсказку ( ниже )</b>.<br /> src="//img.new-combats.tech/i/images/subimages/map_zal3.gif" width="135" height="29" class="aFilter" id="mo_1.180.0.1"/></div>
После прочтения,ниже,воспользуйтесь кнопкой<b>"Возврат"</b><br /> <div style="position:absolute; left:81px; top:102px; width:88px; height:15px; z-index:90;"><img <?php thisInfRm('1.180.0.2'); ?>
<?php $hgo = $u->testHome(); if(!isset($hgo['id'])){ ?><INPUT onclick="location.href='main.php?homeworld=<?= $code; ?>';" class="btn" value="Возврат" type="button" name="combats2"><?php } unset($hgo); ?> src="//img.new-combats.tech/i/images/subimages/map_zal1.gif" width="88" height="15" class="aFilter" id="mo_1.180.0.2"/></div>
<INPUT class="btn" onclick="window.open('/forum/?read=845&rnd=1', 'help', 'height=500,width=1200,location=no,menubar=no,status=no,toolbar=no,scrollbars=yes')" value="Подсказка для новичков" style="color:red;" type="button"> <div style="position:absolute; left:167px; top:107px; width:16px; height:18px; z-index:90;"><img src="//img.new-combats.tech/i/images/subimages/fl1.gif"
<br /> width="16" height="18"
</small></div></td> title="Вы находитесь в Комнате перехода"/></div>
<td> <div id="snow"></div>
<!-- <br /><span class="menutop"><nobr>Комната для новичков</nobr></span>--> <?= $goline; ?>
</td> </div>
</td>
</tr>
</table>
<div style="display:none; height:0px " id="moveto"></div>
Чтобы начать играть,<b>Вам нужно прочесть подсказку ( ниже )</b>.<br/>
После прочтения,ниже,воспользуйтесь кнопкой<b>"Возврат"</b><br/>
<?php if ($u->testHome()) { ?><INPUT onclick="location.href='main.php?homeworld=<?= $code; ?>';" class="btn" value="Возврат" type="button" name="combats2"><?php } ?>
<INPUT class="btn" onclick="window.open('/forum/?read=845&rnd=1', 'help', 'height=500,width=1200,location=no,menubar=no,status=no,toolbar=no,scrollbars=yes')"
value="Подсказка для новичков" style="color:red;" type="button">
<br/>
</small>
</div>
</td>
<td>
<!-- <br /><span class="menutop"><nobr>Комната для новичков</nobr></span>-->
</td>
</tr> </tr>
</table> </table>
<small> <small>
<HR> <HR>
<br /> <br/>
<strong>Внимание!Смените пароль на уникальный,который не использовался ранее в подобных проектах,это обезопасит вашего персонажа от взлома.<BR> <strong>Внимание!Смените пароль на уникальный,который не использовался ранее в подобных проектах,это обезопасит вашего персонажа от взлома.<BR>
<em>Администрация.</strong> </em></small> <BR> <em>Администрация.</strong> </em></small> <BR>
<?= $rowonmax; ?><BR> <?= $rowonmax; ?><BR>
</div></td> </div></td>
</tr> </tr>
</table> </table>
<?php <?php
} }
?> ?>

View File

@ -1,82 +1,106 @@
<?php <?php
if(!defined('GAME')) if (!defined('GAME')) {
{ die();
die();
} }
if($u->room['file']=='ric_zv') if ($u->room['file'] == 'ric_zv') {
{ ?>
?> <link rel="stylesheet" type="text/css" href="/css/loc_bk.css">
<link rel="stylesheet" type="text/css" href="/css/loc_bk.css"> <table width="100%" border="0" cellspacing="0" cellpadding="0">
<table width="100%" border="0" cellspacing="0" cellpadding="0"> <tr>
<tr> <td width="250" valign="top">
<td width="250" valign="top"> <?php $usee = $u->getInfoPers($u->info['id'], 0);
<?php $usee = $u->getInfoPers($u->info['id'],0); if($usee!=false){ echo $usee[0]; }else{ echo 'information is lost.'; } ?> if ($usee != false) {
</td> echo $usee[0];
<td width="230" valign="top" style="padding-top:19px;"><?php require_once('modules_data/stats_loc.php'); ?></td> } else {
<td valign="top"><div align="right"> echo 'information is lost.';
<table border="0" cellpadding="0" cellspacing="0"> } ?>
<tr align="right" valign="top"> </td>
<td> <td width="230" valign="top" style="padding-top:19px;"><?php require_once('modules_data/stats_loc.php'); ?></td>
<?php if($re!=''){ echo '<font color="red"><b>'.$re.'</b></font>'; } ?> <td valign="top">
<table width="500" border="0" cellspacing="0" cellpadding="0"> <div align="right">
<tr> <table border="0" cellpadding="0" cellspacing="0">
<td> <tr align="right" valign="top">
<?php if( $u->error != '' ) { ?> <td>
<font color=red><b> <?php if ($re != '') {
<?= $u->error; ?></font></b> echo '<font color="red"><b>' . $re . '</b></font>';
<?php } ?> } ?>
<div style="position:relative; cursor: pointer; width: 500;" id="ione"><img src="//img.new-combats.tech/i/images/loc_bk/bg.jpg" id="img_ione" width="500" height="240" border="1"/> <table width="500" border="0" cellspacing="0" cellpadding="0">
<img class="zv1" onClick="alert('Проход через Бойцовский Клуб!');" src="//img.new-combats.tech/i/images/loc_bk/1x1.gif" style="left: 50px; top: 169px; z-index:90;"> <tr>
<img class="cp" onClick="alert('Проход через Бойцовский Клуб!');" src="//img.new-combats.tech/i/images/loc_bk/1x1.gif" style="left: 190px; top: 175px; z-index:90;"> <td>
<img class="dark_zv" onClick="alert('Проход через Бойцовский Клуб');" src="//img.new-combats.tech/i/images/loc_bk/1x1.gif" style="left: 350px; top: 169px; z-index:90;"> <?php if ($u->error != '') { ?>
<img class="neut_zv" onClick="alert('Проход через Бойцовский Клуб');" src="//img.new-combats.tech/i/images/loc_bk/1x1.gif" style="left: 355px; top: 105px; z-index:90;"> <font color=red><b>
<img class="light_zv" onClick="alert('Проход через Бойцовский Клуб!');" src="//img.new-combats.tech/i/images/loc_bk/1x1.gif" style="left: 340px; top: 40px; z-index:90;"> <?= $u->error; ?></font></b>
<img class="zn" onClick="alert('Проход через Бойцовский Клуб!');" src="//img.new-combats.tech/i/images/loc_bk/1x1.gif" style="left: 190px; top: 30px; z-index:90;"> <?php } ?>
<img class="trade_zv" onClick="alert('Проход через Бойцовский Клуб!');" src="//img.new-combats.tech/i/images/loc_bk/1x1.gif" style="left: 43px; top: 50px; z-index:90;"> <div style="position:relative; cursor: pointer; width: 500;" id="ione"><img src="//img.new-combats.tech/i/images/loc_bk/bg.jpg" id="img_ione" width="500"
<img class="ric_zv" onClick="alert('Вы уже находитесь в этой комнате!');" src="//img.new-combats.tech/i/images/loc_bk/1x1.gif" style="left: 25px; top: 105px; z-index:90;"> height="240" border="1"/>
<img class="bk" src="//img.new-combats.tech/i/images/loc_bk/1x1.gif" style="left: 185px; top: 110px; z-index:90;" onClick="location='main.php?loc=1.180.0.3';"> <img class="zv1" onClick="alert('Проход через Бойцовский Клуб!');" src="//img.new-combats.tech/i/images/loc_bk/1x1.gif"
<?php style="left: 50px; top: 169px; z-index:90;">
if($u->room['id']==224) { <img class="cp" onClick="alert('Проход через Бойцовский Клуб!');" src="//img.new-combats.tech/i/images/loc_bk/1x1.gif"
?><div style="position:absolute; left:25px; top:105px; width:119px; height:34px; z-index:90;"><img onClick="alert('Вы уже находитесь в этой комнате!');" onMouseOver="this.className='aFilterhover';" onMouseOut="this.className='aFilter';" src="//img.new-combats.tech/i/images/loc_bk/knight_a.png" width="119" height="34" title="Вы уже находитесь в этой комнате!" class="aFilter" /></div> style="left: 190px; top: 175px; z-index:90;">
<?}?> <img class="dark_zv" onClick="alert('Проход через Бойцовский Клуб');" src="//img.new-combats.tech/i/images/loc_bk/1x1.gif"
<div id="snow"></div> style="left: 350px; top: 169px; z-index:90;">
<?= $goline; ?> <img class="neut_zv" onClick="alert('Проход через Бойцовский Клуб');" src="//img.new-combats.tech/i/images/loc_bk/1x1.gif"
</div> style="left: 355px; top: 105px; z-index:90;">
</td> <img class="light_zv" onClick="alert('Проход через Бойцовский Клуб!');" src="//img.new-combats.tech/i/images/loc_bk/1x1.gif"
</tr> style="left: 340px; top: 40px; z-index:90;">
</table> <img class="zn" onClick="alert('Проход через Бойцовский Клуб!');" src="//img.new-combats.tech/i/images/loc_bk/1x1.gif"
<div style="display:none; height:0px " id="moveto"></div> style="left: 190px; top: 30px; z-index:90;">
<?php <img class="trade_zv" onClick="alert('Проход через Бойцовский Клуб!');" src="//img.new-combats.tech/i/images/loc_bk/1x1.gif"
if($u->info['level']<6) style="left: 43px; top: 50px; z-index:90;">
{ <img class="ric_zv" onClick="alert('Вы уже находитесь в этой комнате!');" src="//img.new-combats.tech/i/images/loc_bk/1x1.gif"
echo ' style="left: 25px; top: 105px; z-index:90;">
<img class="bk" src="//img.new-combats.tech/i/images/loc_bk/1x1.gif" style="left: 185px; top: 110px; z-index:90;"
onClick="location='main.php?loc=1.180.0.3';">
<?php
if ($u->room['id'] == 224) {
?>
<div style="position:absolute; left:25px; top:105px; width:119px; height:34px; z-index:90;"><img
onClick="alert('Вы уже находитесь в этой комнате!');" onMouseOver="this.className='aFilterhover';"
onMouseOut="this.className='aFilter';" src="//img.new-combats.tech/i/images/loc_bk/knight_a.png" width="119" height="34"
title="Вы уже находитесь в этой комнате!" class="aFilter"/></div>
<?
} ?>
<div id="snow"></div>
<?= $goline; ?>
</div>
</td>
</tr>
</table>
<div style="display:none; height:0px " id="moveto"></div>
<?php
if ($u->info['level'] < 6) {
echo '
Вам все время кажется что за вами следят? Чудится, что случайный попутчик мечтает всадить вам топор в спину? При совершении очередной покупки в гос. магазине мучает ощущение, что вас обманули? Кажется, что симпатичная девушка напротив смотрит на вас как на пищу? Успокойтесь, это не паранойя. Это реалии Capital city. Города Тьмы. Вам все время кажется что за вами следят? Чудится, что случайный попутчик мечтает всадить вам топор в спину? При совершении очередной покупки в гос. магазине мучает ощущение, что вас обманули? Кажется, что симпатичная девушка напротив смотрит на вас как на пищу? Успокойтесь, это не паранойя. Это реалии Capital city. Города Тьмы.
'; ';
}else{ } else {
echo 'Возможно, вы ошиблись этажом - настоящие сражения проходят этажом выше.'; echo 'Возможно, вы ошиблись этажом - настоящие сражения проходят этажом выше.';
} ?> } ?>
</small></div></td> </small>
<td> </div>
<!-- <br /><span class="menutop"><nobr>Комната для новичков</nobr></span>--> </td>
</td> <td>
<!-- <br /><span class="menutop"><nobr>Комната для новичков</nobr></span>-->
</td>
</tr> </tr>
</table> </table>
<small> <small>
<HR> <HR>
<INPUT id="forum" class="btn btn-inverse" onclick="window.open('/news/', 'news', 'location=yes,menubar=yes,status=yes,resizable=yes,toolbar=yes,scrollbars=yes,scrollbars=yes')" value="Новости" type="button" name="forum"> <INPUT id="forum" class="btn btn-inverse" onclick="window.open('/news/', 'news', 'location=yes,menubar=yes,status=yes,resizable=yes,toolbar=yes,scrollbars=yes,scrollbars=yes')" value="Новости"
<INPUT onclick="location.href='main.php?zayvka=<?= $code; ?>';" class="btn btn-inverse" value="Поединки" type="button" name="combats"> type="button" name="forum">
<?php $hgo = $u->testHome(); if(!isset($hgo['id'])){ ?><INPUT onclick="location.href='main.php?homeworld=<?= $code; ?>';" class="btn btn-inverse" value="Возврат" type="button" name="combats2"><?php } unset($hgo); ?> <INPUT onclick="location.href='main.php?zayvka=<?= $code; ?>';" class="btn btn-inverse" value="Поединки" type="button" name="combats">
<INPUT id="forum" class="btn btn-inverse" onclick="window.open('/forum/', 'forum', 'location=yes,menubar=yes,status=yes,resizable=yes,toolbar=yes,scrollbars=yes,scrollbars=yes')" value="Форум" type="button" name="forum"> <?php if ($u->testHome()) { ?><INPUT onclick="location.href='main.php?homeworld=<?= $code; ?>';" class="btn btn-inverse" value="Возврат" type="button" name="combats2"><?php } ?>
<br /> <INPUT id="forum" class="btn btn-inverse" onclick="window.open('/forum/', 'forum', 'location=yes,menubar=yes,status=yes,resizable=yes,toolbar=yes,scrollbars=yes,scrollbars=yes')" value="Форум"
type="button" name="forum">
<br/>
<strong>Внимание!Смените пароль на уникальный,который не использовался ранее в подобных проектах,это обезопасит вашего персонажа от взлома.<BR> <strong>Внимание!Смените пароль на уникальный,который не использовался ранее в подобных проектах,это обезопасит вашего персонажа от взлома.<BR>
<em>Администрация.</strong> </em></small> <BR> <em>Администрация.</strong> </em></small> <BR>
<?= $rowonmax; ?><BR> <?= $rowonmax; ?><BR>
</div></td> </div></td>
</tr> </tr>
</table> </table>
<?php <?php
} }
?> ?>

View File

@ -1,6 +1,7 @@
<?php <?php
use Core\Db; use Core\Db;
use Model\ActionModel;
if (!defined('GAME')) { if (!defined('GAME')) {
die(); die();
@ -55,7 +56,7 @@ $hostel_option = [
'partition' => [1 => 'Комната', 2 => 'Хранилище', 4 => 'Сон'], 'partition' => [1 => 'Комната', 2 => 'Хранилище', 4 => 'Сон'],
], ],
]; ];
$sleep = $u->testAction('`vars` = "sleep" AND `uid` = "' . $u->info['id'] . '" LIMIT 1', 1); $sleep = ActionModel::get(["uid = {$u->info['id']}", 'vars = sleep']);
if (isset($sleep) and $sleep[0] == 0 and (isset($_GET['ajaxHostel']) and $_GET['ajaxHostel'] == 1 or isset($_GET['ajax']) and $_GET['ajax'] == 1)) { if (isset($sleep) and $sleep[0] == 0 and (isset($_GET['ajaxHostel']) and $_GET['ajaxHostel'] == 1 or isset($_GET['ajax']) and $_GET['ajax'] == 1)) {
$hostel = mysql_fetch_array(mysql_query("SELECT * FROM `house` WHERE `owner` = '" . mysql_real_escape_string($u->info['id']) . "';")); $hostel = mysql_fetch_array(mysql_query("SELECT * FROM `house` WHERE `owner` = '" . mysql_real_escape_string($u->info['id']) . "';"));
@ -170,7 +171,8 @@ function changeSleep($sleep_action)
$sleep_mod = 0; $sleep_mod = 0;
ini_set('display_errors', 'Off'); ini_set('display_errors', 'Off');
} }
$sleep = $u->testAction('`vars` = "sleep" AND `uid` = "' . $u->info['id'] . '" LIMIT 1', 1);
$sleep = ActionModel::get(["uid = {$u->info['id']}", 'vars = sleep']);
} }
function changePets() function changePets()

View File

@ -1,81 +1,115 @@
<?php <?php
if(!defined('GAME')) if (!defined('GAME')) {
{ die();
die();
} }
if($u->room['file']=='torg') if ($u->room['file'] == 'torg') {
{ ?>
?> <table width="100%" border="0" cellspacing="0" cellpadding="0">
<table width="100%" border="0" cellspacing="0" cellpadding="0"> <tr>
<tr> <td width="250" valign="top">
<td width="250" valign="top"> <?php $usee = $u->getInfoPers($u->info['id'], 0);
<?php $usee = $u->getInfoPers($u->info['id'],0); if($usee!=false){ echo $usee[0]; }else{ echo 'information is lost.'; } ?> if ($usee != false) {
</td> echo $usee[0];
<td width="230" valign="top" style="padding-top:19px;"><?php require_once('modules_data/stats_loc.php'); ?></td> } else {
<td valign="top"><div align="right"> echo 'information is lost.';
<?php if( $u->error != '' ) { ?> } ?>
<font color=red><b> </td>
<?= $u->error; ?></font></b> <td width="230" valign="top" style="padding-top:19px;"><?php require_once('modules_data/stats_loc.php'); ?></td>
<?php } ?> <td valign="top">
<table border="0" cellpadding="0" cellspacing="0"> <div align="right">
<tr align="right" valign="top"> <?php if ($u->error != '') { ?>
<td> <font color=red><b>
<?php if($re!=''){ echo '<font color="red"><b>'.$re.'</b></font>'; } ?> <?= $u->error; ?></font></b>
<table width="500" border="0" cellspacing="0" cellpadding="0"> <?php } ?>
<tr> <table border="0" cellpadding="0" cellspacing="0">
<td> <tr align="right" valign="top">
<div style="position:relative; cursor: pointer; width: 500;" id="ione"><img src="//img.new-combats.tech/i/images/300x225/club/navig3.jpg" id="img_ione" width="500" height="240" border="1"/> <td>
<?php if ($re != '') {
echo '<font color="red"><b>' . $re . '</b></font>';
} ?>
<table width="500" border="0" cellspacing="0" cellpadding="0">
<tr>
<td>
<div style="position:relative; cursor: pointer; width: 500;" id="ione"><img src="//img.new-combats.tech/i/images/300x225/club/navig3.jpg" id="img_ione"
width="500" height="240" border="1"/>
<div style="position:absolute; left:118px; top:175px; width:101px; height:37px; z-index:90;"><img <?php thisInfRm('1.180.0.222'); ?> onclick="location='main.php?loc=1.180.0.222';" onmouseover="this.className='aFilterhover';" onmouseout="this.className='aFilter';" src="//img.new-combats.tech/i/images/300x225/map_sec3.gif" width="101" height="37" class="aFilter" /></div> <div style="position:absolute; left:118px; top:175px; width:101px; height:37px; z-index:90;"><img <?php thisInfRm('1.180.0.222'); ?>
onclick="location='main.php?loc=1.180.0.222';" onmouseover="this.className='aFilterhover';" onmouseout="this.className='aFilter';"
<div style="position:absolute; left:251px; top:181px; width:16px; height:18px; z-index:90;"><img src="//img.new-combats.tech/i/images/300x225/fl1.gif" width="16" height="18" title="Вы находитесь в '<?= $u->room['name']; ?>'" /></div> src="//img.new-combats.tech/i/images/300x225/map_sec3.gif" width="101" height="37" class="aFilter"/></div>
<div style="position:absolute; left:281px; top:173px; width:122px; height:31px; z-index:90;"><img onmouseover="this.className='aFilterhover';" onmouseout="this.className='aFilter';" src="//img.new-combats.tech/i/images/300x225/map_sec5.gif" width="122" height="31" class="aFilter" /></div>
<div style="position:absolute; left:23px; top:116px; width:120px; height:35px; z-index:90;"><img <?php thisInfRm('1.180.0.220'); ?> onclick="location='main.php?loc=1.180.0.220';" onmouseover="this.className='aFilterhover';" onmouseout="this.className='aFilter';" src="//img.new-combats.tech/i/images/300x225/map_2stair.gif" width="120" height="35" class="aFilter" /></div> <div style="position:absolute; left:251px; top:181px; width:16px; height:18px; z-index:90;"><img src="//img.new-combats.tech/i/images/300x225/fl1.gif"
width="16" height="18"
<div style="position:absolute; left:36px; top:41px; width:63px; height:40px; z-index:90;"><img onmouseover="this.className='aFilterhover';" onmouseout="this.className='aFilter';" src="//img.new-combats.tech/i/images/300x225/map_sec2.gif" width="63" height="40" class="aFilter" /></div> title="Вы находитесь в '<?= $u->room['name']; ?>'"/>
</div>
<div style="position:absolute; left:24px; top:180px; width:91px; height:43px; z-index:90;"><img onmouseover="this.className='aFilterhover';" onmouseout="this.className='aFilter';" src="//img.new-combats.tech/i/images/300x225/map_sec1.gif" width="91" height="43" class="aFilter" /></div> <div style="position:absolute; left:281px; top:173px; width:122px; height:31px; z-index:90;"><img onmouseover="this.className='aFilterhover';"
<div style="position:absolute; left:122px; top:52px; width:123px; height:39px; z-index:90;"><img onmouseover="this.className='aFilterhover';" onmouseout="this.className='aFilter';" src="//img.new-combats.tech/i/images/300x225/map_sec7.gif" width="123" height="39" class="aFilter" /></div> onmouseout="this.className='aFilter';"
<div style="position:absolute; left:305px; top:51px; width:123px; height:30px; z-index:90;"><img onmouseover="this.className='aFilterhover';" onmouseout="this.className='aFilter';" src="//img.new-combats.tech/i/images/300x225/map_sec6.gif" width="123" height="30" class="aFilter" /></div> src="//img.new-combats.tech/i/images/300x225/map_sec5.gif"
<div style="position:absolute; left:391px; top:120px; width:89px; height:32px; z-index:90;"><img <?php thisInfRm('1.180.0.223'); ?> onclick="location='main.php?loc=1.180.0.223';" onmouseover="this.className='aFilterhover';" onmouseout="this.className='aFilter';" src="//img.new-combats.tech/i/images/300x225/map_sec4.gif" width="89" height="32" class="aFilter" /></div> width="122" height="31" class="aFilter"/></div>
<div id="snow"></div> <div style="position:absolute; left:23px; top:116px; width:120px; height:35px; z-index:90;"><img <?php thisInfRm('1.180.0.220'); ?>
<?= $goline; ?> onclick="location='main.php?loc=1.180.0.220';" onmouseover="this.className='aFilterhover';" onmouseout="this.className='aFilter';"
</div> src="//img.new-combats.tech/i/images/300x225/map_2stair.gif" width="120" height="35" class="aFilter"/></div>
</td>
</tr> <div style="position:absolute; left:36px; top:41px; width:63px; height:40px; z-index:90;"><img onmouseover="this.className='aFilterhover';"
</table> onmouseout="this.className='aFilter';"
<div style="display:none; height:0px " id="moveto"></div> src="//img.new-combats.tech/i/images/300x225/map_sec2.gif"
<?php width="63" height="40" class="aFilter"/></div>
if($u->info['level']<6)
{ <div style="position:absolute; left:24px; top:180px; width:91px; height:43px; z-index:90;"><img onmouseover="this.className='aFilterhover';"
echo ' onmouseout="this.className='aFilter';"
src="//img.new-combats.tech/i/images/300x225/map_sec1.gif"
width="91" height="43" class="aFilter"/></div>
<div style="position:absolute; left:122px; top:52px; width:123px; height:39px; z-index:90;"><img onmouseover="this.className='aFilterhover';"
onmouseout="this.className='aFilter';"
src="//img.new-combats.tech/i/images/300x225/map_sec7.gif"
width="123" height="39" class="aFilter"/></div>
<div style="position:absolute; left:305px; top:51px; width:123px; height:30px; z-index:90;"><img onmouseover="this.className='aFilterhover';"
onmouseout="this.className='aFilter';"
src="//img.new-combats.tech/i/images/300x225/map_sec6.gif"
width="123" height="30" class="aFilter"/></div>
<div style="position:absolute; left:391px; top:120px; width:89px; height:32px; z-index:90;"><img <?php thisInfRm('1.180.0.223'); ?>
onclick="location='main.php?loc=1.180.0.223';" onmouseover="this.className='aFilterhover';" onmouseout="this.className='aFilter';"
src="//img.new-combats.tech/i/images/300x225/map_sec4.gif" width="89" height="32" class="aFilter"/></div>
<div id="snow"></div>
<?= $goline; ?>
</div>
</td>
</tr>
</table>
<div style="display:none; height:0px " id="moveto"></div>
<?php
if ($u->info['level'] < 6) {
echo '
Вам все время кажется что за вами следят? Чудится, что случайный попутчик мечтает всадить вам топор в спину? При совершении очередной покупки в гос. магазине мучает ощущение, что вас обманули? Кажется, что симпатичная девушка напротив смотрит на вас как на пищу? Успокойтесь, это не паранойя. Это реалии Capital city. Города Тьмы. Вам все время кажется что за вами следят? Чудится, что случайный попутчик мечтает всадить вам топор в спину? При совершении очередной покупки в гос. магазине мучает ощущение, что вас обманули? Кажется, что симпатичная девушка напротив смотрит на вас как на пищу? Успокойтесь, это не паранойя. Это реалии Capital city. Города Тьмы.
'; ';
}else{ } else {
echo 'Возможно, вы ошиблись этажом - настоящие сражения проходят этажом выше.'; echo 'Возможно, вы ошиблись этажом - настоящие сражения проходят этажом выше.';
} ?> } ?>
</small></div></td> </small>
<td> </div>
<!-- <br /><span class="menutop"><nobr>Комната для новичков</nobr></span>--> </td>
</td> <td>
<!-- <br /><span class="menutop"><nobr>Комната для новичков</nobr></span>-->
</td>
</tr> </tr>
</table> </table>
<small> <small>
<HR> <HR>
<INPUT id="forum" class="btn btn-inverse" onclick="window.open('/news/', 'news', 'location=yes,menubar=yes,status=yes,resizable=yes,toolbar=yes,scrollbars=yes,scrollbars=yes')" value="Новости" type="button" name="forum"> <INPUT id="forum" class="btn btn-inverse" onclick="window.open('/news/', 'news', 'location=yes,menubar=yes,status=yes,resizable=yes,toolbar=yes,scrollbars=yes,scrollbars=yes')" value="Новости"
<INPUT onclick="location.href='main.php?zayvka=<?= $code; ?>';" class="btn btn-inverse" value="Поединки" type="button" name="combats"> type="button" name="forum">
<?php $hgo = $u->testHome(); if(!isset($hgo['id'])){ ?><INPUT onclick="location.href='main.php?homeworld=<?= $code; ?>';" class="btn btn-inverse" value="Возврат" type="button" name="combats2"><?php } unset($hgo); ?> <INPUT onclick="location.href='main.php?zayvka=<?= $code; ?>';" class="btn btn-inverse" value="Поединки" type="button" name="combats">
<INPUT id="forum" class="btn btn-inverse" onclick="window.open('/forum/', 'forum', 'location=yes,menubar=yes,status=yes,resizable=yes,toolbar=yes,scrollbars=yes,scrollbars=yes')" value="Форум" type="button" name="forum"> <?php if ($u->testHome()) { ?><INPUT onclick="location.href='main.php?homeworld=<?= $code; ?>';" class="btn btn-inverse" value="Возврат" type="button" name="combats2"><?php } ?>
<br /> <INPUT id="forum" class="btn btn-inverse" onclick="window.open('/forum/', 'forum', 'location=yes,menubar=yes,status=yes,resizable=yes,toolbar=yes,scrollbars=yes,scrollbars=yes')" value="Форум"
type="button" name="forum">
<br/>
<strong>Внимание!Смените пароль на уникальный,который не использовался ранее в подобных проектах,это обезопасит вашего персонажа от взлома.<BR> <strong>Внимание!Смените пароль на уникальный,который не использовался ранее в подобных проектах,это обезопасит вашего персонажа от взлома.<BR>
<em>Администрация.</strong> </em></small> <BR> <em>Администрация.</strong> </em></small> <BR>
<?= $rowonmax; ?><BR> <?= $rowonmax; ?><BR>
</div></td> </div></td>
</tr> </tr>
</table> </table>
<?php <?php
} }
?> ?>

View File

@ -1,82 +1,106 @@
<?php <?php
if(!defined('GAME')) if (!defined('GAME')) {
{ die();
die();
} }
if($u->room['file']=='trade_zv') if ($u->room['file'] == 'trade_zv') {
{ ?>
?> <link rel="stylesheet" type="text/css" href="/css/loc_bk.css">
<link rel="stylesheet" type="text/css" href="/css/loc_bk.css"> <table width="100%" border="0" cellspacing="0" cellpadding="0">
<table width="100%" border="0" cellspacing="0" cellpadding="0"> <tr>
<tr> <td width="250" valign="top">
<td width="250" valign="top"> <?php $usee = $u->getInfoPers($u->info['id'], 0);
<?php $usee = $u->getInfoPers($u->info['id'],0); if($usee!=false){ echo $usee[0]; }else{ echo 'information is lost.'; } ?> if ($usee != false) {
</td> echo $usee[0];
<td width="230" valign="top" style="padding-top:19px;"><?php require_once('modules_data/stats_loc.php'); ?></td> } else {
<td valign="top"><div align="right"> echo 'information is lost.';
<table border="0" cellpadding="0" cellspacing="0"> } ?>
<tr align="right" valign="top"> </td>
<td> <td width="230" valign="top" style="padding-top:19px;"><?php require_once('modules_data/stats_loc.php'); ?></td>
<?php if($re!=''){ echo '<font color="red"><b>'.$re.'</b></font>'; } ?> <td valign="top">
<table width="500" border="0" cellspacing="0" cellpadding="0"> <div align="right">
<tr> <table border="0" cellpadding="0" cellspacing="0">
<td> <tr align="right" valign="top">
<?php if( $u->error != '' ) { ?> <td>
<font color=red><b> <?php if ($re != '') {
<?= $u->error; ?></font></b> echo '<font color="red"><b>' . $re . '</b></font>';
<?php } ?> } ?>
<div style="position:relative; cursor: pointer; width: 500;" id="ione"><img src="//img.new-combats.tech/i/images/loc_bk/bg.jpg" id="img_ione" width="500" height="240" border="1"/> <table width="500" border="0" cellspacing="0" cellpadding="0">
<img class="zv1" onClick="alert('Проход через Бойцовский Клуб!');" src="//img.new-combats.tech/i/images/loc_bk/1x1.gif" style="left: 50px; top: 169px; z-index:90;"> <tr>
<img class="cp" onClick="alert('Проход через Бойцовский Клуб!');" src="//img.new-combats.tech/i/images/loc_bk/1x1.gif" style="left: 190px; top: 175px; z-index:90;"> <td>
<img class="dark_zv" onClick="alert('Проход через Бойцовский Клуб');" src="//img.new-combats.tech/i/images/loc_bk/1x1.gif" style="left: 350px; top: 169px; z-index:90;"> <?php if ($u->error != '') { ?>
<img class="neut_zv" onClick="alert('Проход через Бойцовский Клуб');" src="//img.new-combats.tech/i/images/loc_bk/1x1.gif" style="left: 355px; top: 105px; z-index:90;"> <font color=red><b>
<img class="light_zv" onClick="alert('Проход через Бойцовский Клуб!');" src="//img.new-combats.tech/i/images/loc_bk/1x1.gif" style="left: 340px; top: 40px; z-index:90;"> <?= $u->error; ?></font></b>
<img class="zn" onClick="alert('Проход через Бойцовский Клуб!');" src="//img.new-combats.tech/i/images/loc_bk/1x1.gif" style="left: 190px; top: 30px; z-index:90;"> <?php } ?>
<img class="trade_zv" onClick="alert('Вы уже находитесь в этой комнате!');" src="//img.new-combats.tech/i/images/loc_bk/1x1.gif" style="left: 43px; top: 50px; z-index:90;"> <div style="position:relative; cursor: pointer; width: 500;" id="ione"><img src="//img.new-combats.tech/i/images/loc_bk/bg.jpg" id="img_ione" width="500"
<img class="ric_zv" onClick="alert('Проход через Бойцовский Клуб!');" src="//img.new-combats.tech/i/images/loc_bk/1x1.gif" style="left: 25px; top: 105px; z-index:90;"> height="240" border="1"/>
<img class="bk" src="//img.new-combats.tech/i/images/loc_bk/1x1.gif" style="left: 185px; top: 110px; z-index:90;" onClick="location='main.php?loc=1.180.0.3';"> <img class="zv1" onClick="alert('Проход через Бойцовский Клуб!');" src="//img.new-combats.tech/i/images/loc_bk/1x1.gif"
<?php style="left: 50px; top: 169px; z-index:90;">
if($u->room['id']==221) { <img class="cp" onClick="alert('Проход через Бойцовский Клуб!');" src="//img.new-combats.tech/i/images/loc_bk/1x1.gif"
?><div style="position:absolute; left:43px; top:50px; width:119px; height:34px; z-index:90;"><img onClick="alert('Вы уже находитесь в этой комнате!');" onMouseOver="this.className='aFilterhover';" onMouseOut="this.className='aFilter';" src="//img.new-combats.tech/i/images/loc_bk/trade_a.png" width="119" height="34" title="Вы уже находитесь в этой комнате!" class="aFilter" /></div> style="left: 190px; top: 175px; z-index:90;">
<?}?> <img class="dark_zv" onClick="alert('Проход через Бойцовский Клуб');" src="//img.new-combats.tech/i/images/loc_bk/1x1.gif"
<div id="snow"></div> style="left: 350px; top: 169px; z-index:90;">
<?= $goline; ?> <img class="neut_zv" onClick="alert('Проход через Бойцовский Клуб');" src="//img.new-combats.tech/i/images/loc_bk/1x1.gif"
</div> style="left: 355px; top: 105px; z-index:90;">
</td> <img class="light_zv" onClick="alert('Проход через Бойцовский Клуб!');" src="//img.new-combats.tech/i/images/loc_bk/1x1.gif"
</tr> style="left: 340px; top: 40px; z-index:90;">
</table> <img class="zn" onClick="alert('Проход через Бойцовский Клуб!');" src="//img.new-combats.tech/i/images/loc_bk/1x1.gif"
<div style="display:none; height:0px " id="moveto"></div> style="left: 190px; top: 30px; z-index:90;">
<?php <img class="trade_zv" onClick="alert('Вы уже находитесь в этой комнате!');" src="//img.new-combats.tech/i/images/loc_bk/1x1.gif"
if($u->info['level']<6) style="left: 43px; top: 50px; z-index:90;">
{ <img class="ric_zv" onClick="alert('Проход через Бойцовский Клуб!');" src="//img.new-combats.tech/i/images/loc_bk/1x1.gif"
echo ' style="left: 25px; top: 105px; z-index:90;">
<img class="bk" src="//img.new-combats.tech/i/images/loc_bk/1x1.gif" style="left: 185px; top: 110px; z-index:90;"
onClick="location='main.php?loc=1.180.0.3';">
<?php
if ($u->room['id'] == 221) {
?>
<div style="position:absolute; left:43px; top:50px; width:119px; height:34px; z-index:90;"><img
onClick="alert('Вы уже находитесь в этой комнате!');" onMouseOver="this.className='aFilterhover';"
onMouseOut="this.className='aFilter';" src="//img.new-combats.tech/i/images/loc_bk/trade_a.png" width="119" height="34"
title="Вы уже находитесь в этой комнате!" class="aFilter"/></div>
<?
} ?>
<div id="snow"></div>
<?= $goline; ?>
</div>
</td>
</tr>
</table>
<div style="display:none; height:0px " id="moveto"></div>
<?php
if ($u->info['level'] < 6) {
echo '
Вам все время кажется что за вами следят? Чудится, что случайный попутчик мечтает всадить вам топор в спину? При совершении очередной покупки в гос. магазине мучает ощущение, что вас обманули? Кажется, что симпатичная девушка напротив смотрит на вас как на пищу? Успокойтесь, это не паранойя. Это реалии Capital city. Города Тьмы. Вам все время кажется что за вами следят? Чудится, что случайный попутчик мечтает всадить вам топор в спину? При совершении очередной покупки в гос. магазине мучает ощущение, что вас обманули? Кажется, что симпатичная девушка напротив смотрит на вас как на пищу? Успокойтесь, это не паранойя. Это реалии Capital city. Города Тьмы.
'; ';
}else{ } else {
echo 'Возможно, вы ошиблись этажом - настоящие сражения проходят этажом выше.'; echo 'Возможно, вы ошиблись этажом - настоящие сражения проходят этажом выше.';
} ?> } ?>
</small></div></td> </small>
<td> </div>
<!-- <br /><span class="menutop"><nobr>Комната для новичков</nobr></span>--> </td>
</td> <td>
<!-- <br /><span class="menutop"><nobr>Комната для новичков</nobr></span>-->
</td>
</tr> </tr>
</table> </table>
<small> <small>
<HR> <HR>
<INPUT id="forum" class="btn btn-inverse" onclick="window.open('/news/', 'news', 'location=yes,menubar=yes,status=yes,resizable=yes,toolbar=yes,scrollbars=yes,scrollbars=yes')" value="Новости" type="button" name="forum"> <INPUT id="forum" class="btn btn-inverse" onclick="window.open('/news/', 'news', 'location=yes,menubar=yes,status=yes,resizable=yes,toolbar=yes,scrollbars=yes,scrollbars=yes')" value="Новости"
<INPUT onclick="location.href='main.php?zayvka=<?= $code; ?>';" class="btn btn-inverse" value="Поединки" type="button" name="combats"> type="button" name="forum">
<?php $hgo = $u->testHome(); if(!isset($hgo['id'])){ ?><INPUT onclick="location.href='main.php?homeworld=<?= $code; ?>';" class="btn btn-inverse" value="Возврат" type="button" name="combats2"><?php } unset($hgo); ?> <INPUT onclick="location.href='main.php?zayvka=<?= $code; ?>';" class="btn btn-inverse" value="Поединки" type="button" name="combats">
<INPUT id="forum" class="btn btn-inverse" onclick="window.open('/forum/', 'forum', 'location=yes,menubar=yes,status=yes,resizable=yes,toolbar=yes,scrollbars=yes,scrollbars=yes')" value="Форум" type="button" name="forum"> <?php if ($u->testHome()) { ?><INPUT onclick="location.href='main.php?homeworld=<?= $code; ?>';" class="btn btn-inverse" value="Возврат" type="button" name="combats2"><?php } ?>
<br /> <INPUT id="forum" class="btn btn-inverse" onclick="window.open('/forum/', 'forum', 'location=yes,menubar=yes,status=yes,resizable=yes,toolbar=yes,scrollbars=yes,scrollbars=yes')" value="Форум"
type="button" name="forum">
<br/>
<strong>Внимание!Смените пароль на уникальный,который не использовался ранее в подобных проектах,это обезопасит вашего персонажа от взлома.<BR> <strong>Внимание!Смените пароль на уникальный,который не использовался ранее в подобных проектах,это обезопасит вашего персонажа от взлома.<BR>
<em>Администрация.</strong> </em></small> <BR> <em>Администрация.</strong> </em></small> <BR>
<?= $rowonmax; ?><BR> <?= $rowonmax; ?><BR>
</div></td> </div></td>
</tr> </tr>
</table> </table>
<?php <?php
} }
?> ?>

View File

@ -1,76 +1,99 @@
<?php <?php
if(!defined('GAME')) if (!defined('GAME')) {
{ die();
die();
} }
if($u->room['file']=='zalu') if ($u->room['file'] == 'zalu') {
{ ?>
?> <table width="100%" border="0" cellspacing="0" cellpadding="0">
<table width="100%" border="0" cellspacing="0" cellpadding="0"> <tr>
<tr> <td width="250" valign="top">
<td width="250" valign="top"> <?php $usee = $u->getInfoPers($u->info['id'], 0);
<?php $usee = $u->getInfoPers($u->info['id'],0); if($usee!=false){ echo $usee[0]; }else{ echo 'information is lost.'; } ?> if ($usee != false) {
</td> echo $usee[0];
<td width="230" valign="top" style="padding-top:19px;"><?php require_once('modules_data/stats_loc.php'); ?></td> } else {
<td valign="top"><div align="right"> echo 'information is lost.';
<table border="0" cellpadding="0" cellspacing="0"> } ?>
<tr align="right" valign="top"> </td>
<td> <td width="230" valign="top" style="padding-top:19px;"><?php require_once('modules_data/stats_loc.php'); ?></td>
<?php if($re!=''){ echo '<font color="red"><b>'.$re.'</b></font>'; } ?> <td valign="top">
<table width="500" border="0" cellspacing="0" cellpadding="0"> <div align="right">
<tr> <table border="0" cellpadding="0" cellspacing="0">
<td> <tr align="right" valign="top">
<div style="position:relative; cursor: pointer;" id="ione"> <td>
<img src="//img.new-combats.tech/i/images/300x225/club/navig1.jpg" alt="" name="img_ione" width="500" height="240" border="1" id="img_ione"/> <?php if ($re != '') {
<div style="position:absolute; left:337px; top:117px; width:16px; height:18px; z-index:90;"><img src="//img.new-combats.tech/i/images/300x225/fl1.gif" width="16" height="18" title="Вы находитесь в '<?= $u->room['name']; ?>'" /></div> echo '<font color="red"><b>' . $re . '</b></font>';
<div style="position:absolute; left:354px; top:115px; width:120px; height:35px; z-index:90;"><img src="//img.new-combats.tech/i/images/300x225/map_halls.gif" width="120" height="35" /></div> } ?>
<div style="position: absolute; left: 53px; top: 47px; width: 122px; height: 31px; z-index: 90;"><img <?php thisInfRm('1.180.0.16'); ?> onClick="location='main.php?loc=1.180.0.16';" src="//img.new-combats.tech/i/images/300x225/map_klub5-1.gif" width="123" height="30" class="aFilter" /></div> <table width="500" border="0" cellspacing="0" cellpadding="0">
<tr>
<div style="position: absolute; left: 202px; top: 167px; width: 122px; height: 31px; z-index: 90;"><img <?php thisInfRm('1.180.0.376'); ?> onClick="location='main.php?loc=1.180.0.376';" src="//img.new-combats.tech/i/images/300x225/map_zalu2.gif" width="122" height="31" class="aFilter" /></div> <td>
<div style="position: absolute; left: 264px; top: 44px; width: 122px; height: 31px; z-index: 90;"><img <?php thisInfRm('1.180.0.375'); ?> onClick="location='main.php?loc=1.180.0.375';" src="//img.new-combats.tech/i/images/300x225/map_zalu1.gif" width="122" height="31" class="aFilter" /></div> <div style="position:relative; cursor: pointer;" id="ione">
<img src="//img.new-combats.tech/i/images/300x225/club/navig1.jpg" alt="" name="img_ione" width="500" height="240" border="1" id="img_ione"/>
<div style="position:absolute; left:78px; top:24px; width:76px; height:18px; z-index:90;"><img src="//img.new-combats.tech/i/images/300x225/map_zalu6.gif" onclick="alert('Проход через зал паладинов');" width="76" height="18" class="aFilter" /></div> <div style="position:absolute; left:337px; top:117px; width:16px; height:18px; z-index:90;"><img src="//img.new-combats.tech/i/images/300x225/fl1.gif"
<div style="position:absolute; left:17px; top:122px; width:79px; height:32px; z-index:90;"><img src="//img.new-combats.tech/i/images/300x225/map_zalu3.gif" width="78" height="33" onclick="alert('Проход через зал паладинов');" /></div> width="16" height="18"
<div style="position:absolute; left:393px; top:170px; width:100px; height:35px; z-index:90;"><img <?php thisInfRm('1.180.0.3'); ?> onClick="location='main.php?loc=1.180.0.3';" src="//img.new-combats.tech/i/images/300x225/map_zalu7.gif" width="100" height="35" class="aFilter" /></div> title="Вы находитесь в '<?= $u->room['name']; ?>'"/>
<?= $goline; ?> </div>
<div id="snow"></div> <div style="position:absolute; left:354px; top:115px; width:120px; height:35px; z-index:90;"><img
</div> src="//img.new-combats.tech/i/images/300x225/map_halls.gif" width="120" height="35"/></div>
</td> <div style="position: absolute; left: 53px; top: 47px; width: 122px; height: 31px; z-index: 90;"><img <?php thisInfRm('1.180.0.16'); ?>
</tr> onClick="location='main.php?loc=1.180.0.16';" src="//img.new-combats.tech/i/images/300x225/map_klub5-1.gif" width="123" height="30"
</table> class="aFilter"/></div>
<div style="display:none; height:0px " id="moveto"></div>
<?php <div style="position: absolute; left: 202px; top: 167px; width: 122px; height: 31px; z-index: 90;"><img <?php thisInfRm('1.180.0.376'); ?>
if($u->info['level']<6) onClick="location='main.php?loc=1.180.0.376';" src="//img.new-combats.tech/i/images/300x225/map_zalu2.gif" width="122" height="31"
{ class="aFilter"/></div>
echo ' <div style="position: absolute; left: 264px; top: 44px; width: 122px; height: 31px; z-index: 90;"><img <?php thisInfRm('1.180.0.375'); ?>
onClick="location='main.php?loc=1.180.0.375';" src="//img.new-combats.tech/i/images/300x225/map_zalu1.gif" width="122" height="31"
class="aFilter"/></div>
<div style="position:absolute; left:78px; top:24px; width:76px; height:18px; z-index:90;"><img
src="//img.new-combats.tech/i/images/300x225/map_zalu6.gif" onclick="alert('Проход через зал паладинов');" width="76" height="18"
class="aFilter"/></div>
<div style="position:absolute; left:17px; top:122px; width:79px; height:32px; z-index:90;"><img
src="//img.new-combats.tech/i/images/300x225/map_zalu3.gif" width="78" height="33" onclick="alert('Проход через зал паладинов');"/></div>
<div style="position:absolute; left:393px; top:170px; width:100px; height:35px; z-index:90;"><img <?php thisInfRm('1.180.0.3'); ?>
onClick="location='main.php?loc=1.180.0.3';" src="//img.new-combats.tech/i/images/300x225/map_zalu7.gif" width="100" height="35"
class="aFilter"/></div>
<?= $goline; ?>
<div id="snow"></div>
</div>
</td>
</tr>
</table>
<div style="display:none; height:0px " id="moveto"></div>
<?php
if ($u->info['level'] < 6) {
echo '
Вам все время кажется что за вами следят? Чудится, что случайный попутчик мечтает всадить вам топор в спину? При совершении очередной покупки в гос. магазине мучает ощущение, что вас обманули? Кажется, что симпатичная девушка напротив смотрит на вас как на пищу? Успокойтесь, это не паранойя. Это реалии Capital city. Города Тьмы. Вам все время кажется что за вами следят? Чудится, что случайный попутчик мечтает всадить вам топор в спину? При совершении очередной покупки в гос. магазине мучает ощущение, что вас обманули? Кажется, что симпатичная девушка напротив смотрит на вас как на пищу? Успокойтесь, это не паранойя. Это реалии Capital city. Города Тьмы.
'; ';
}else{ } else {
echo 'Возможно, вы ошиблись этажом - настоящие сражения проходят этажом выше.'; echo 'Возможно, вы ошиблись этажом - настоящие сражения проходят этажом выше.';
} ?> } ?>
</small></div></td> </small>
<td> </div>
<!-- <br /><span class="menutop"><nobr>Комната для новичков</nobr></span>--> </td>
</td> <td>
<!-- <br /><span class="menutop"><nobr>Комната для новичков</nobr></span>-->
</td>
</tr> </tr>
</table> </table>
<small> <small>
<HR> <HR>
<?php $hgo = $u->testHome(); if(!isset($hgo['id'])){ ?><INPUT onclick="location.href='main.php?homeworld=<?= $code; ?>';" class="btn" value="Возврат" type="button" name="combats2"><?php } unset($hgo); ?> <?php if ($u->testHome()) { ?><INPUT onclick="location.href='main.php?homeworld=<?= $code; ?>';" class="btn" value="Возврат" type="button" name="combats2"><?php } ?>
<INPUT onclick="location.href='main.php?clubmap=<?= $code; ?>';" class="btn" value="Карта клуба" type="button" name="combats2"> <INPUT onclick="location.href='main.php?clubmap=<?= $code; ?>';" class="btn" value="Карта клуба" type="button" name="combats2">
<INPUT id="forum" class="btn" onclick="window.open('/forum/', 'forum', 'location=yes,menubar=yes,status=yes,resizable=yes,toolbar=yes,scrollbars=yes,scrollbars=yes')" value="Форум" type="button" name="forum"> <INPUT id="forum" class="btn" onclick="window.open('/forum/', 'forum', 'location=yes,menubar=yes,status=yes,resizable=yes,toolbar=yes,scrollbars=yes,scrollbars=yes')" value="Форум"
<INPUT class="btn" onclick="window.open('/encicl/help/top1.html', 'help', 'height=300,width=500,location=no,menubar=no,status=no,toolbar=no,scrollbars=yes')" value="Подсказка" type="button"> type="button" name="forum">
<INPUT class="btn" value="Объекты" type="button"> <INPUT class="btn" onclick="window.open('/encicl/help/top1.html', 'help', 'height=300,width=500,location=no,menubar=no,status=no,toolbar=no,scrollbars=yes')" value="Подсказка" type="button">
<br /> <INPUT class="btn" value="Объекты" type="button">
<br/>
<strong>Внимание!Смените пароль на уникальный,который не использовался ранее в подобных проектах,это обезопасит вашего персонажа от взлома.<BR> <strong>Внимание!Смените пароль на уникальный,который не использовался ранее в подобных проектах,это обезопасит вашего персонажа от взлома.<BR>
<em>Администрация.</strong> </em></small> <BR> <em>Администрация.</strong> </em></small> <BR>
<?= $rowonmax; ?><BR> <?= $rowonmax; ?><BR>
</div></td> </div></td>
</tr> </tr>
</table> </table>
<?php <?php
} }
?> ?>

View File

@ -82,10 +82,10 @@ if (!empty($re)) {
</table> </table>
<small> <small>
<HR> <HR>
<?php $hgo = $u->testHome(); <?php
if (!isset($hgo['id'])) { ?><INPUT onclick="location.href='main.php?homeworld=<?= $code; ?>';" class="btn" value="Возврат" type="button" if ($u->testHome()) { ?><INPUT onclick="location.href='main.php?homeworld=<?= $code; ?>';" class="btn" value="Возврат" type="button"
name="combats2"><?php } name="combats2"><?php }
unset($hgo); ?> ?>
<INPUT class="btn" onclick="window.open('/forum/', 'help', 'height=500,width=1024,location=no,menubar=no,status=no,toolbar=no,scrollbars=yes')" value="Подсказка" <INPUT class="btn" onclick="window.open('/forum/', 'help', 'height=500,width=1024,location=no,menubar=no,status=no,toolbar=no,scrollbars=yes')" value="Подсказка"
style="color:red;" type="button"> style="color:red;" type="button">
<INPUT onclick="location.href='main.php?clubmap=<?= $code; ?>';" class="btn" value="Карта клуба" type="button" name="combats2"> <INPUT onclick="location.href='main.php?clubmap=<?= $code; ?>';" class="btn" value="Карта клуба" type="button" name="combats2">

View File

@ -1,64 +1,83 @@
<?php <?php
if(!defined('GAME')) if (!defined('GAME')) {
{ die();
die();
} }
if($u->room['file']=='zalu_pal2') if ($u->room['file'] == 'zalu_pal2') {
{ ?>
?> <table width="100%" border="0" cellspacing="0" cellpadding="0">
<table width="100%" border="0" cellspacing="0" cellpadding="0"> <tr>
<tr> <td width="250" valign="top">
<td width="250" valign="top"> <?php $usee = $u->getInfoPers($u->info['id'], 0);
<?php $usee = $u->getInfoPers($u->info['id'],0); if($usee!=false){ echo $usee[0]; }else{ echo 'information is lost.'; } ?> if ($usee != false) {
</td> echo $usee[0];
<td width="230" valign="top" style="padding-top:19px;"><?php require_once('modules_data/stats_loc.php'); ?></td> } else {
<td valign="top"><div align="right"> echo 'information is lost.';
<table border="0" cellpadding="0" cellspacing="0"> } ?>
<tr align="right" valign="top"> </td>
<td> <td width="230" valign="top" style="padding-top:19px;"><?php require_once('modules_data/stats_loc.php'); ?></td>
<?php if($re!=''){ echo '<font color="red"><b>'.$re.'</b></font>'; } ?> <td valign="top">
<table width="500" border="0" cellspacing="0" cellpadding="0"> <div align="right">
<tr> <table border="0" cellpadding="0" cellspacing="0">
<td> <tr align="right" valign="top">
<div style="position:relative; cursor: pointer;" id="ione"> <td>
<img src="//img.new-combats.tech/i/images/300x225/club/navig1.jpg" alt="" name="img_ione" width="500" height="240" border="1" id="img_ione"/> <?php if ($re != '') {
<div style="position:absolute; left:354px; top:115px; width:120px; height:35px; z-index:90;"><img src="//img.new-combats.tech/i/images/300x225/map_halls.gif" width="120" height="35" class="aFilter" /></div> echo '<font color="red"><b>' . $re . '</b></font>';
<div style="position:absolute; left:52px; top:47px; width:123px; height:32px; z-index:90;"><img <?php thisInfRm('1.180.0.16'); ?> onClick="location='main.php?loc=1.180.0.16';" src="//img.new-combats.tech/i/images/300x225/map_demon3.gif" width="123" height="32" class="aFilter" /></div> } ?>
<div style="position:absolute; left:49px; top:141px; width:16px; height:18px; z-index:91;"><img src="//img.new-combats.tech/i/images/300x225/fl1.gif" width="16" height="18" title="Вы находитесь в '<?= $u->room['name']; ?>'" /></div> <table width="500" border="0" cellspacing="0" cellpadding="0">
<div style="position:absolute; left:78px; top:24px; width:76px; height:18px; z-index:90;"><img src="//img.new-combats.tech/i/images/300x225/map_zalu6.gif" width="76" height="18" class="aFilter" /></div> <tr>
<div style="position:absolute; left:17px; top:122px; width:79px; height:32px; z-index:90;"><img src="//img.new-combats.tech/i/images/300x225/map_demon4.gif" width="78" height="33" class="aFilter" /></div> <td>
<div style="position:absolute; left:393px; top:170px; width:100px; height:35px; z-index:90;"><img onClick="alert('Проход через залы');" src="//img.new-combats.tech/i/images/300x225/map_zalu7.gif" width="100" height="35" class="aFilter" /></div> <div style="position:relative; cursor: pointer;" id="ione">
<?= $goline; ?> <img src="//img.new-combats.tech/i/images/300x225/club/navig1.jpg" alt="" name="img_ione" width="500" height="240" border="1" id="img_ione"/>
<div id="snow"></div> <div style="position:absolute; left:354px; top:115px; width:120px; height:35px; z-index:90;"><img
</div> src="//img.new-combats.tech/i/images/300x225/map_halls.gif" width="120" height="35" class="aFilter"/></div>
</td> <div style="position:absolute; left:52px; top:47px; width:123px; height:32px; z-index:90;"><img <?php thisInfRm('1.180.0.16'); ?>
</tr> onClick="location='main.php?loc=1.180.0.16';" src="//img.new-combats.tech/i/images/300x225/map_demon3.gif" width="123" height="32"
</table> class="aFilter"/></div>
<div style="display:none; height:0px " id="moveto"></div> <div style="position:absolute; left:49px; top:141px; width:16px; height:18px; z-index:91;"><img src="//img.new-combats.tech/i/images/300x225/fl1.gif"
Возможно, вы ошиблись этажом - настоящие сражения проходят этажом выше. width="16" height="18"
</small></div></td> title="Вы находитесь в '<?= $u->room['name']; ?>'"/>
<td> </div>
<!-- <br /><span class="menutop"><nobr>Комната для новичков</nobr></span>--> <div style="position:absolute; left:78px; top:24px; width:76px; height:18px; z-index:90;"><img
</td> src="//img.new-combats.tech/i/images/300x225/map_zalu6.gif" width="76" height="18" class="aFilter"/></div>
<div style="position:absolute; left:17px; top:122px; width:79px; height:32px; z-index:90;"><img
src="//img.new-combats.tech/i/images/300x225/map_demon4.gif" width="78" height="33" class="aFilter"/></div>
<div style="position:absolute; left:393px; top:170px; width:100px; height:35px; z-index:90;"><img onClick="alert('Проход через залы');"
src="//img.new-combats.tech/i/images/300x225/map_zalu7.gif"
width="100" height="35" class="aFilter"/></div>
<?= $goline; ?>
<div id="snow"></div>
</div>
</td>
</tr>
</table>
<div style="display:none; height:0px " id="moveto"></div>
Возможно, вы ошиблись этажом - настоящие сражения проходят этажом выше.
</small>
</div>
</td>
<td>
<!-- <br /><span class="menutop"><nobr>Комната для новичков</nobr></span>-->
</td>
</tr> </tr>
</table> </table>
<small> <small>
<HR> <HR>
<?php $hgo = $u->testHome(); if(!isset($hgo['id'])){ ?><INPUT onclick="location.href='main.php?homeworld=<?= $code; ?>';" class="btn" value="Возврат" type="button" name="combats2"><?php } unset($hgo); ?> <?php if ($u->testHome()) { ?><INPUT onclick="location.href='main.php?homeworld=<?= $code; ?>';" class="btn" value="Возврат" type="button" name="combats2"><?php } ?>
<INPUT onclick="location.href='main.php?clubmap=<?= $code; ?>';" class="btn" value="Карта клуба" type="button" name="combats2"> <INPUT onclick="location.href='main.php?clubmap=<?= $code; ?>';" class="btn" value="Карта клуба" type="button" name="combats2">
<INPUT id="forum" class="btn" onclick="window.open('/forum/', 'forum', 'location=yes,menubar=yes,status=yes,resizable=yes,toolbar=yes,scrollbars=yes,scrollbars=yes')" value="Форум" type="button" name="forum"> <INPUT id="forum" class="btn" onclick="window.open('/forum/', 'forum', 'location=yes,menubar=yes,status=yes,resizable=yes,toolbar=yes,scrollbars=yes,scrollbars=yes')" value="Форум"
<INPUT class="btn" onclick="window.open('/encicl/help/top1.html', 'help', 'height=300,width=500,location=no,menubar=no,status=no,toolbar=no,scrollbars=yes')" value="Подсказка" type="button"> type="button" name="forum">
<INPUT class="btn" value="Объекты" type="button"> <INPUT class="btn" onclick="window.open('/encicl/help/top1.html', 'help', 'height=300,width=500,location=no,menubar=no,status=no,toolbar=no,scrollbars=yes')" value="Подсказка" type="button">
<br /> <INPUT class="btn" value="Объекты" type="button">
<br/>
<strong>Внимание!Смените пароль на уникальный,который не использовался ранее в подобных проектах,это обезопасит вашего персонажа от взлома.<BR> <strong>Внимание!Смените пароль на уникальный,который не использовался ранее в подобных проектах,это обезопасит вашего персонажа от взлома.<BR>
<em>Администрация.</strong> </em></small> <BR> <em>Администрация.</strong> </em></small> <BR>
<?= $rowonmax; ?><BR> <?= $rowonmax; ?><BR>
</div></td> </div></td>
</tr> </tr>
</table> </table>
<?php <?php
} }
?> ?>

View File

@ -1,73 +1,93 @@
<?php <?php
if(!defined('GAME')) if (!defined('GAME')) {
{ die();
die();
} }
if($u->room['file']=='zalu_pal3') if ($u->room['file'] == 'zalu_pal3') {
{ ?>
?> <table width="100%" border="0" cellspacing="0" cellpadding="0">
<table width="100%" border="0" cellspacing="0" cellpadding="0"> <tr>
<tr> <td width="250" valign="top">
<td width="250" valign="top"> <?php $usee = $u->getInfoPers($u->info['id'], 0);
<?php $usee = $u->getInfoPers($u->info['id'],0); if($usee!=false){ echo $usee[0]; }else{ echo 'information is lost.'; } ?> if ($usee != false) {
</td> echo $usee[0];
<td width="230" valign="top" style="padding-top:19px;"><?php require_once('modules_data/stats_loc.php'); ?></td> } else {
<td valign="top"><div align="right"> echo 'information is lost.';
<table border="0" cellpadding="0" cellspacing="0"> } ?>
<tr align="right" valign="top"> </td>
<td> <td width="230" valign="top" style="padding-top:19px;"><?php require_once('modules_data/stats_loc.php'); ?></td>
<?php if($re!=''){ echo '<font color="red"><b>'.$re.'</b></font>'; } ?> <td valign="top">
<table width="500" border="0" cellspacing="0" cellpadding="0"> <div align="right">
<tr> <table border="0" cellpadding="0" cellspacing="0">
<td> <tr align="right" valign="top">
<div style="position:relative; cursor: pointer;" id="ione"> <td>
<img src="//img.new-combats.tech/i/images/300x225/club/navig1.jpg" alt="" name="img_ione" width="500" height="240" border="1" id="img_ione"/> <?php if ($re != '') {
<div style="position: absolute; left: 245px; top: 56px; width: 16px; height: 18px; z-index: 90;"><img src="//img.new-combats.tech/i/images/300x225/fl1.gif" width="16" height="18" title="Вы находитесь в '<?= $u->room['name']; ?>'" /></div> echo '<font color="red"><b>' . $re . '</b></font>';
<div style="position:absolute; left:354px; top:115px; width:120px; height:35px; z-index:90;"><img src="//img.new-combats.tech/i/images/300x225/map_halls.gif" <?php thisInfRm('1.180.0.15'); ?> onClick="location='main.php?loc=1.180.0.16';" class="aFilter" width="120" height="35" /></div> } ?>
<div style="position: absolute; left: 53px; top: 47px; width: 122px; height: 31px; z-index: 90;"><img src="//img.new-combats.tech/i/images/300x225/map_klub5-1.gif" width="123" height="30" /></div> <table width="500" border="0" cellspacing="0" cellpadding="0">
<tr>
<div style="position: absolute; left: 202px; top: 167px; width: 122px; height: 31px; z-index: 90;"><img src="//img.new-combats.tech/i/images/300x225/map_zalu2.gif" width="122" height="31" /></div> <td>
<div style="position: absolute; left: 264px; top: 44px; width: 122px; height: 31px; z-index: 90;"><img src="//img.new-combats.tech/i/images/300x225/map_zalu1.gif" width="122" height="31" /></div> <div style="position:relative; cursor: pointer;" id="ione">
<img src="//img.new-combats.tech/i/images/300x225/club/navig1.jpg" alt="" name="img_ione" width="500" height="240" border="1" id="img_ione"/>
<div style="position:absolute; left:78px; top:24px; width:76px; height:18px; z-index:90;"><img src="//img.new-combats.tech/i/images/300x225/map_zalu6.gif" onclick="alert('Проход через зал паладинов');" width="76" height="18" class="aFilter" /></div> <div style="position: absolute; left: 245px; top: 56px; width: 16px; height: 18px; z-index: 90;"><img
<div style="position:absolute; left:17px; top:122px; width:79px; height:32px; z-index:90;"><img src="//img.new-combats.tech/i/images/300x225/map_zalu3.gif" width="78" height="33" onclick="alert('Проход через зал паладинов');" /></div> src="//img.new-combats.tech/i/images/300x225/fl1.gif" width="16" height="18" title="Вы находитесь в '<?= $u->room['name']; ?>'"/></div>
<div style="position:absolute; left:393px; top:170px; width:100px; height:35px; z-index:90;"><img <?php thisInfRm('1.180.0.3'); ?> onClick="location='main.php?loc=1.180.0.3';" src="//img.new-combats.tech/i/images/300x225/map_zalu7.gif" width="100" height="35" class="aFilter" /></div> <div style="position:absolute; left:354px; top:115px; width:120px; height:35px; z-index:90;"><img
<?= $goline; ?> src="//img.new-combats.tech/i/images/300x225/map_halls.gif" <?php thisInfRm('1.180.0.15'); ?> onClick="location='main.php?loc=1.180.0.16';"
<div id="snow"></div> class="aFilter" width="120" height="35"/></div>
</div> <div style="position: absolute; left: 53px; top: 47px; width: 122px; height: 31px; z-index: 90;"><img
</td> src="//img.new-combats.tech/i/images/300x225/map_klub5-1.gif" width="123" height="30"/></div>
</tr>
</table> <div style="position: absolute; left: 202px; top: 167px; width: 122px; height: 31px; z-index: 90;"><img
<div style="display:none; height:0px " id="moveto"></div> src="//img.new-combats.tech/i/images/300x225/map_zalu2.gif" width="122" height="31"/></div>
Возможно, вы ошиблись этажом - настоящие сражения проходят этажом выше. <div style="position: absolute; left: 264px; top: 44px; width: 122px; height: 31px; z-index: 90;"><img
</small></div></td> src="//img.new-combats.tech/i/images/300x225/map_zalu1.gif" width="122" height="31"/></div>
<td>
<!-- <br /><span class="menutop"><nobr>Комната для новичков</nobr></span>--> <div style="position:absolute; left:78px; top:24px; width:76px; height:18px; z-index:90;"><img
</td> src="//img.new-combats.tech/i/images/300x225/map_zalu6.gif" onclick="alert('Проход через зал паладинов');" width="76" height="18"
class="aFilter"/></div>
<div style="position:absolute; left:17px; top:122px; width:79px; height:32px; z-index:90;"><img
src="//img.new-combats.tech/i/images/300x225/map_zalu3.gif" width="78" height="33" onclick="alert('Проход через зал паладинов');"/></div>
<div style="position:absolute; left:393px; top:170px; width:100px; height:35px; z-index:90;"><img <?php thisInfRm('1.180.0.3'); ?>
onClick="location='main.php?loc=1.180.0.3';" src="//img.new-combats.tech/i/images/300x225/map_zalu7.gif" width="100" height="35"
class="aFilter"/></div>
<?= $goline; ?>
<div id="snow"></div>
</div>
</td>
</tr>
</table>
<div style="display:none; height:0px " id="moveto"></div>
Возможно, вы ошиблись этажом - настоящие сражения проходят этажом выше.
</small>
</div>
</td>
<td>
<!-- <br /><span class="menutop"><nobr>Комната для новичков</nobr></span>-->
</td>
</tr> </tr>
</table> </table>
<small> <small>
<HR> <HR>
<?php $hgo = $u->testHome(); if(!isset($hgo['id'])){ ?><INPUT onclick="location.href='main.php?homeworld=<?= $code; ?>';" class="btn" value="Возврат" type="button" name="combats2"><?php } unset($hgo); ?> <?php if ($u->testHome()) { ?><INPUT onclick="location.href='main.php?homeworld=<?= $code; ?>';" class="btn" value="Возврат" type="button" name="combats2"><?php } ?>
<INPUT onclick="location.href='main.php?clubmap=<?= $code; ?>';" class="btn" value="Карта клуба" type="button" name="combats2"> <INPUT onclick="location.href='main.php?clubmap=<?= $code; ?>';" class="btn" value="Карта клуба" type="button" name="combats2">
<INPUT id="forum" class="btn" onclick="window.open('/forum/', 'forum', 'location=yes,menubar=yes,status=yes,resizable=yes,toolbar=yes,scrollbars=yes,scrollbars=yes')" value="Форум" type="button" name="forum"> <INPUT id="forum" class="btn" onclick="window.open('/forum/', 'forum', 'location=yes,menubar=yes,status=yes,resizable=yes,toolbar=yes,scrollbars=yes,scrollbars=yes')" value="Форум"
<INPUT class="btn" onclick="window.open('/encicl/help/top1.html', 'help', 'height=300,width=500,location=no,menubar=no,status=no,toolbar=no,scrollbars=yes')" value="Подсказка" type="button"> type="button" name="forum">
<INPUT class="btn" value="Объекты" type="button"> <INPUT class="btn" onclick="window.open('/encicl/help/top1.html', 'help', 'height=300,width=500,location=no,menubar=no,status=no,toolbar=no,scrollbars=yes')" value="Подсказка" type="button">
<br /> <INPUT class="btn" value="Объекты" type="button">
<br/>
<strong>Внимание!Смените пароль на уникальный,который не использовался ранее в подобных проектах,это обезопасит вашего персонажа от взлома.<BR> <strong>Внимание!Смените пароль на уникальный,который не использовался ранее в подобных проектах,это обезопасит вашего персонажа от взлома.<BR>
<em>Администрация.</strong> </em></small> <BR> <em>Администрация.</strong> </em></small> <BR>
<?= $rowonmax; ?><BR> <?= $rowonmax; ?><BR>
</div></td> </div></td>
</tr> </tr>
<tr> <tr>
<td valign="top">&nbsp;</td> <td valign="top">&nbsp;</td>
<td valign="top" style="padding-top:19px;">&nbsp;</td> <td valign="top" style="padding-top:19px;">&nbsp;</td>
<td valign="top">&nbsp;</td> <td valign="top">&nbsp;</td>
</tr> </tr>
</table> </table>
<?php <?php
} }
?> ?>

View File

@ -1,73 +1,93 @@
<?php <?php
if(!defined('GAME')) if (!defined('GAME')) {
{ die();
die();
} }
if($u->room['file']=='zalu_pal4') if ($u->room['file'] == 'zalu_pal4') {
{ ?>
?> <table width="100%" border="0" cellspacing="0" cellpadding="0">
<table width="100%" border="0" cellspacing="0" cellpadding="0"> <tr>
<tr> <td width="250" valign="top">
<td width="250" valign="top"> <?php $usee = $u->getInfoPers($u->info['id'], 0);
<?php $usee = $u->getInfoPers($u->info['id'],0); if($usee!=false){ echo $usee[0]; }else{ echo 'information is lost.'; } ?> if ($usee != false) {
</td> echo $usee[0];
<td width="230" valign="top" style="padding-top:19px;"><?php require_once('modules_data/stats_loc.php'); ?></td> } else {
<td valign="top"><div align="right"> echo 'information is lost.';
<table border="0" cellpadding="0" cellspacing="0"> } ?>
<tr align="right" valign="top"> </td>
<td> <td width="230" valign="top" style="padding-top:19px;"><?php require_once('modules_data/stats_loc.php'); ?></td>
<?php if($re!=''){ echo '<font color="red"><b>'.$re.'</b></font>'; } ?> <td valign="top">
<table width="500" border="0" cellspacing="0" cellpadding="0"> <div align="right">
<tr> <table border="0" cellpadding="0" cellspacing="0">
<td> <tr align="right" valign="top">
<div style="position:relative; cursor: pointer;" id="ione"> <td>
<img src="//img.new-combats.tech/i/images/300x225/club/navig1.jpg" alt="" name="img_ione" width="500" height="240" border="1" id="img_ione"/> <?php if ($re != '') {
<div style="position: absolute; left: 240px; top: 146px; width: 16px; height: 18px; z-index: 90;"><img src="//img.new-combats.tech/i/images/300x225/fl1.gif" width="16" height="18" title="Вы находитесь в '<?= $u->room['name']; ?>'" /></div> echo '<font color="red"><b>' . $re . '</b></font>';
<div style="position:absolute; left:354px; top:115px; width:120px; height:35px; z-index:90;"><img src="//img.new-combats.tech/i/images/300x225/map_halls.gif" <?php thisInfRm('1.180.0.15'); ?> onClick="location='main.php?loc=1.180.0.16';" class="aFilter" width="120" height="35" /></div> } ?>
<div style="position: absolute; left: 53px; top: 47px; width: 122px; height: 31px; z-index: 90;"><img src="//img.new-combats.tech/i/images/300x225/map_klub5-1.gif" width="123" height="30" /></div> <table width="500" border="0" cellspacing="0" cellpadding="0">
<tr>
<div style="position: absolute; left: 202px; top: 167px; width: 122px; height: 31px; z-index: 90;"><img src="//img.new-combats.tech/i/images/300x225/map_zalu2.gif" width="122" height="31" /></div> <td>
<div style="position: absolute; left: 264px; top: 44px; width: 122px; height: 31px; z-index: 90;"><img src="//img.new-combats.tech/i/images/300x225/map_zalu1.gif" width="122" height="31" /></div> <div style="position:relative; cursor: pointer;" id="ione">
<img src="//img.new-combats.tech/i/images/300x225/club/navig1.jpg" alt="" name="img_ione" width="500" height="240" border="1" id="img_ione"/>
<div style="position:absolute; left:78px; top:24px; width:76px; height:18px; z-index:90;"><img src="//img.new-combats.tech/i/images/300x225/map_zalu6.gif" onclick="alert('Проход через зал паладинов');" width="76" height="18" class="aFilter" /></div> <div style="position: absolute; left: 240px; top: 146px; width: 16px; height: 18px; z-index: 90;"><img
<div style="position:absolute; left:17px; top:122px; width:79px; height:32px; z-index:90;"><img src="//img.new-combats.tech/i/images/300x225/map_zalu3.gif" width="78" height="33" onclick="alert('Проход через зал паладинов');" /></div> src="//img.new-combats.tech/i/images/300x225/fl1.gif" width="16" height="18" title="Вы находитесь в '<?= $u->room['name']; ?>'"/></div>
<div style="position:absolute; left:393px; top:170px; width:100px; height:35px; z-index:90;"><img <?php thisInfRm('1.180.0.3'); ?> onClick="location='main.php?loc=1.180.0.3';" src="//img.new-combats.tech/i/images/300x225/map_zalu7.gif" width="100" height="35" class="aFilter" /></div> <div style="position:absolute; left:354px; top:115px; width:120px; height:35px; z-index:90;"><img
<?= $goline; ?> src="//img.new-combats.tech/i/images/300x225/map_halls.gif" <?php thisInfRm('1.180.0.15'); ?> onClick="location='main.php?loc=1.180.0.16';"
<div id="snow"></div> class="aFilter" width="120" height="35"/></div>
</div> <div style="position: absolute; left: 53px; top: 47px; width: 122px; height: 31px; z-index: 90;"><img
</td> src="//img.new-combats.tech/i/images/300x225/map_klub5-1.gif" width="123" height="30"/></div>
</tr>
</table> <div style="position: absolute; left: 202px; top: 167px; width: 122px; height: 31px; z-index: 90;"><img
<div style="display:none; height:0px " id="moveto"></div> src="//img.new-combats.tech/i/images/300x225/map_zalu2.gif" width="122" height="31"/></div>
Возможно, вы ошиблись этажом - настоящие сражения проходят этажом выше. <div style="position: absolute; left: 264px; top: 44px; width: 122px; height: 31px; z-index: 90;"><img
</small></div></td> src="//img.new-combats.tech/i/images/300x225/map_zalu1.gif" width="122" height="31"/></div>
<td>
<!-- <br /><span class="menutop"><nobr>Комната для новичков</nobr></span>--> <div style="position:absolute; left:78px; top:24px; width:76px; height:18px; z-index:90;"><img
</td> src="//img.new-combats.tech/i/images/300x225/map_zalu6.gif" onclick="alert('Проход через зал паладинов');" width="76" height="18"
class="aFilter"/></div>
<div style="position:absolute; left:17px; top:122px; width:79px; height:32px; z-index:90;"><img
src="//img.new-combats.tech/i/images/300x225/map_zalu3.gif" width="78" height="33" onclick="alert('Проход через зал паладинов');"/></div>
<div style="position:absolute; left:393px; top:170px; width:100px; height:35px; z-index:90;"><img <?php thisInfRm('1.180.0.3'); ?>
onClick="location='main.php?loc=1.180.0.3';" src="//img.new-combats.tech/i/images/300x225/map_zalu7.gif" width="100" height="35"
class="aFilter"/></div>
<?= $goline; ?>
<div id="snow"></div>
</div>
</td>
</tr>
</table>
<div style="display:none; height:0px " id="moveto"></div>
Возможно, вы ошиблись этажом - настоящие сражения проходят этажом выше.
</small>
</div>
</td>
<td>
<!-- <br /><span class="menutop"><nobr>Комната для новичков</nobr></span>-->
</td>
</tr> </tr>
</table> </table>
<small> <small>
<HR> <HR>
<?php $hgo = $u->testHome(); if(!isset($hgo['id'])){ ?><INPUT onclick="location.href='main.php?homeworld=<?= $code; ?>';" class="btn" value="Возврат" type="button" name="combats2"><?php } unset($hgo); ?> <?php if ($u->testHome()) { ?><INPUT onclick="location.href='main.php?homeworld=<?= $code; ?>';" class="btn" value="Возврат" type="button" name="combats2"><?php } ?>
<INPUT onclick="location.href='main.php?clubmap=<?= $code; ?>';" class="btn" value="Карта клуба" type="button" name="combats2"> <INPUT onclick="location.href='main.php?clubmap=<?= $code; ?>';" class="btn" value="Карта клуба" type="button" name="combats2">
<INPUT id="forum" class="btn" onclick="window.open('/forum/', 'forum', 'location=yes,menubar=yes,status=yes,resizable=yes,toolbar=yes,scrollbars=yes,scrollbars=yes')" value="Форум" type="button" name="forum"> <INPUT id="forum" class="btn" onclick="window.open('/forum/', 'forum', 'location=yes,menubar=yes,status=yes,resizable=yes,toolbar=yes,scrollbars=yes,scrollbars=yes')" value="Форум"
<INPUT class="btn" onclick="window.open('/encicl/help/top1.html', 'help', 'height=300,width=500,location=no,menubar=no,status=no,toolbar=no,scrollbars=yes')" value="Подсказка" type="button"> type="button" name="forum">
<INPUT class="btn" value="Объекты" type="button"> <INPUT class="btn" onclick="window.open('/encicl/help/top1.html', 'help', 'height=300,width=500,location=no,menubar=no,status=no,toolbar=no,scrollbars=yes')" value="Подсказка" type="button">
<br /> <INPUT class="btn" value="Объекты" type="button">
<br/>
<strong>Внимание!Смените пароль на уникальный,который не использовался ранее в подобных проектах,это обезопасит вашего персонажа от взлома.<BR> <strong>Внимание!Смените пароль на уникальный,который не использовался ранее в подобных проектах,это обезопасит вашего персонажа от взлома.<BR>
<em>Администрация.</strong> </em></small> <BR> <em>Администрация.</strong> </em></small> <BR>
<?= $rowonmax; ?><BR> <?= $rowonmax; ?><BR>
</div></td> </div></td>
</tr> </tr>
<tr> <tr>
<td valign="top">&nbsp;</td> <td valign="top">&nbsp;</td>
<td valign="top" style="padding-top:19px;">&nbsp;</td> <td valign="top" style="padding-top:19px;">&nbsp;</td>
<td valign="top">&nbsp;</td> <td valign="top">&nbsp;</td>
</tr> </tr>
</table> </table>
<?php <?php
} }
?> ?>

View File

@ -1,70 +1,120 @@
<?php <?php
if(!defined('GAME')) if (!defined('GAME')) {
{ die();
die();
} }
if($u->room['file']=='zv2') if ($u->room['file'] == 'zv2') {
{ ?>
?> <table width="100%" border="0" cellspacing="0" cellpadding="0">
<table width="100%" border="0" cellspacing="0" cellpadding="0"> <tr>
<tr> <td width="250" valign="top">
<td width="250" valign="top"> <?php $usee = $u->getInfoPers($u->info['id'], 0);
<?php $usee = $u->getInfoPers($u->info['id'],0); if($usee!=false){ echo $usee[0]; }else{ echo 'information is lost.'; } ?> if ($usee != false) {
</td> echo $usee[0];
<td width="230" valign="top" style="padding-top:19px;"><?php require_once('modules_data/stats_loc.php'); ?></td> } else {
<td valign="top"><div align="right"> echo 'information is lost.';
<table border="0" cellpadding="0" cellspacing="0"> } ?>
<tr align="right" valign="top"> </td>
<td> <td width="230" valign="top" style="padding-top:19px;"><?php require_once('modules_data/stats_loc.php'); ?></td>
<?php if($re!=''){ echo '<font color="red"><b>'.$re.'</b></font>'; } ?> <td valign="top">
<table width="500" border="0" cellspacing="0" cellpadding="0"> <div align="right">
<tr> <table border="0" cellpadding="0" cellspacing="0">
<td> <tr align="right" valign="top">
<div style="position:relative; cursor: pointer; width: 500;" id="ione"><img src="//img.new-combats.tech/i/images/300x225/club/navig.jpg" id="img_ione" width="500" height="240" border="1"/> <td>
<div style="position:absolute; left:395px; top:142px; width:16px; height:18px; z-index:90;"><img src="//img.new-combats.tech/i/images/300x225/fl1.gif" width="16" height="18" title="Вы находитесь в '<?= $u->room['name']; ?>'" /></div> <?php if ($re != '') {
<div style="position:absolute; left:184px; top:94px; width:120px; height:35px; z-index:90;"><img <?php thisInfRm('1.180.0.3'); ?> src="//img.new-combats.tech/i/images/300x225/map_bk.gif" width="120" height="35" title="" class="aFilter" /></div> echo '<font color="red"><b>' . $re . '</b></font>';
<div style="position:absolute; left:52px; top:47px; width:123px; height:30px; z-index:90;"><img onClick="alert('Проход через Бойцовский клуб');" onMouseOver="this.className='aFilterhover';" onMouseOut="this.className='aFilter';" src="//img.new-combats.tech/i/images/300x225/map_klub5-1.gif" width="123" height="30" title="Проход через Бойцовский клуб" class="aFilter" /></div> } ?>
<div style="position:absolute; left:59px; top:169px; width:123px; height:31px; z-index:90;"><img onClick="alert('Проход через Бойцовский клуб');" onMouseOver="this.className='aFilterhover';" onMouseOut="this.className='aFilter';" src="//img.new-combats.tech/i/images/300x225/map_klub4.gif" width="123" height="31" title="Проход через Бойцовский клуб" class="aFilter" /></div> <table width="500" border="0" cellspacing="0" cellpadding="0">
<div style="position:absolute; left:312px; top:168px; width:123px; height:31px; z-index:90;"><img src="//img.new-combats.tech/i/images/300x225/map_zalu1.gif" width="123" height="31" title="" /></div> <tr>
<div style="position:absolute; left:312px; top:48px; width:123px; height:30px; z-index:90;"><img onClick="alert('Проход через Бойцовский клуб');" onMouseOver="this.className='aFilterhover';" onMouseOut="this.className='aFilter';" src="//img.new-combats.tech/i/images/300x225/map_zalu2.gif" width="123" height="30" title="Проход через Бойцовский клуб" class="aFilter" /></div> <td>
<div style="position:absolute; left:216px; top:41px; width:58px; height:49px; z-index:90;"><img onClick="alert('Проход через Бойцовский клуб');" onMouseOver="this.className='aFilterhover';" onMouseOut="this.className='aFilter';" src="//img.new-combats.tech/i/images/300x225/map_klub2.gif" width="58" height="49" title="Проход через Бойцовский клуб" class="aFilter" /></div> <div style="position:relative; cursor: pointer; width: 500;" id="ione"><img src="//img.new-combats.tech/i/images/300x225/club/navig.jpg" id="img_ione"
<div style="position:absolute; left:66px; top:114px; width:56px; height:13px; z-index:90;"><img onClick="alert('Проход через Бойцовский клуб');" onMouseOver="this.className='aFilterhover';" onMouseOut="this.className='aFilter';" src="//img.new-combats.tech/i/images/300x225/map_klub1.gif" width="56" height="13" title="Проход через Бойцовский клуб" class="aFilter" /></div> width="500" height="240" border="1"/>
<div style="position:absolute; left:196px; top:148px; width:103px; height:47px; z-index:90;"><img onClick="alert('Проход через Бойцовский клуб');" onMouseOver="this.className='aFilterhover';" onMouseOut="this.className='aFilter';" src="//img.new-combats.tech/i/images/300x225/map_klub7.gif" width="103" height="47" title="Проход через Бойцовский клуб" class="aFilter" /></div> <div style="position:absolute; left:395px; top:142px; width:16px; height:18px; z-index:90;"><img src="//img.new-combats.tech/i/images/300x225/fl1.gif"
<div id="snow"></div> width="16" height="18"
<?= $goline; ?> title="Вы находитесь в '<?= $u->room['name']; ?>'"/>
</div> </div>
</td> <div style="position:absolute; left:184px; top:94px; width:120px; height:35px; z-index:90;"><img <?php thisInfRm('1.180.0.3'); ?>
</tr> src="//img.new-combats.tech/i/images/300x225/map_bk.gif" width="120" height="35" title="" class="aFilter"/></div>
</table> <div style="position:absolute; left:52px; top:47px; width:123px; height:30px; z-index:90;"><img onClick="alert('Проход через Бойцовский клуб');"
<div style="display:none; height:0px " id="moveto"></div> onMouseOver="this.className='aFilterhover';"
<?php onMouseOut="this.className='aFilter';"
if($u->info['level']<6) src="//img.new-combats.tech/i/images/300x225/map_klub5-1.gif"
{ width="123" height="30"
echo ' title="Проход через Бойцовский клуб" class="aFilter"/>
</div>
<div style="position:absolute; left:59px; top:169px; width:123px; height:31px; z-index:90;"><img onClick="alert('Проход через Бойцовский клуб');"
onMouseOver="this.className='aFilterhover';"
onMouseOut="this.className='aFilter';"
src="//img.new-combats.tech/i/images/300x225/map_klub4.gif"
width="123" height="31"
title="Проход через Бойцовский клуб" class="aFilter"/>
</div>
<div style="position:absolute; left:312px; top:168px; width:123px; height:31px; z-index:90;"><img
src="//img.new-combats.tech/i/images/300x225/map_zalu1.gif" width="123" height="31" title=""/></div>
<div style="position:absolute; left:312px; top:48px; width:123px; height:30px; z-index:90;"><img onClick="alert('Проход через Бойцовский клуб');"
onMouseOver="this.className='aFilterhover';"
onMouseOut="this.className='aFilter';"
src="//img.new-combats.tech/i/images/300x225/map_zalu2.gif"
width="123" height="30"
title="Проход через Бойцовский клуб" class="aFilter"/>
</div>
<div style="position:absolute; left:216px; top:41px; width:58px; height:49px; z-index:90;"><img onClick="alert('Проход через Бойцовский клуб');"
onMouseOver="this.className='aFilterhover';"
onMouseOut="this.className='aFilter';"
src="//img.new-combats.tech/i/images/300x225/map_klub2.gif"
width="58" height="49"
title="Проход через Бойцовский клуб" class="aFilter"/>
</div>
<div style="position:absolute; left:66px; top:114px; width:56px; height:13px; z-index:90;"><img onClick="alert('Проход через Бойцовский клуб');"
onMouseOver="this.className='aFilterhover';"
onMouseOut="this.className='aFilter';"
src="//img.new-combats.tech/i/images/300x225/map_klub1.gif"
width="56" height="13"
title="Проход через Бойцовский клуб" class="aFilter"/>
</div>
<div style="position:absolute; left:196px; top:148px; width:103px; height:47px; z-index:90;"><img onClick="alert('Проход через Бойцовский клуб');"
onMouseOver="this.className='aFilterhover';"
onMouseOut="this.className='aFilter';"
src="//img.new-combats.tech/i/images/300x225/map_klub7.gif"
width="103" height="47"
title="Проход через Бойцовский клуб" class="aFilter"/>
</div>
<div id="snow"></div>
<?= $goline; ?>
</div>
</td>
</tr>
</table>
<div style="display:none; height:0px " id="moveto"></div>
<?php
if ($u->info['level'] < 6) {
echo '
Вам все время кажется что за вами следят? Чудится, что случайный попутчик мечтает всадить вам топор в спину? При совершении очередной покупки в гос. магазине мучает ощущение, что вас обманули? Кажется, что симпатичная девушка напротив смотрит на вас как на пищу? Успокойтесь, это не паранойя. Это реалии Capital city. Города Тьмы. Вам все время кажется что за вами следят? Чудится, что случайный попутчик мечтает всадить вам топор в спину? При совершении очередной покупки в гос. магазине мучает ощущение, что вас обманули? Кажется, что симпатичная девушка напротив смотрит на вас как на пищу? Успокойтесь, это не паранойя. Это реалии Capital city. Города Тьмы.
'; ';
} ?> } ?>
</small></div></td> </small>
<td> </div>
<!-- <br /><span class="menutop"><nobr>Комната для новичков</nobr></span>--> </td>
</td> <td>
<!-- <br /><span class="menutop"><nobr>Комната для новичков</nobr></span>-->
</td>
</tr> </tr>
</table> </table>
<small> <small>
<HR> <HR>
<INPUT class="btn" onclick="window.open('/forum/', 'help', 'height=500,width=1024,location=no,menubar=no,status=no,toolbar=no,scrollbars=yes')" value="Подсказка" style="color:red;" type="button"> <INPUT class="btn" onclick="window.open('/forum/', 'help', 'height=500,width=1024,location=no,menubar=no,status=no,toolbar=no,scrollbars=yes')" value="Подсказка" style="color:red;"
<INPUT onclick="location.href='main.php?zayvka=<?= $code; ?>';" class="btn" value="Поединки" type="button" name="combats"> type="button">
<?php $hgo = $u->testHome(); if(!isset($hgo['id'])){ ?><INPUT onclick="location.href='main.php?homeworld=<?= $code; ?>';" class="btn" value="Возврат" type="button" name="combats2"><?php } unset($hgo); ?> <INPUT onclick="location.href='main.php?zayvka=<?= $code; ?>';" class="btn" value="Поединки" type="button" name="combats">
<br /> <?php if ($u->testHome()) { ?><INPUT onclick="location.href='main.php?homeworld=<?= $code; ?>';" class="btn" value="Возврат" type="button" name="combats2"><?php } ?>
<br/>
<strong>Внимание!Смените пароль на уникальный,который не использовался ранее в подобных проектах,это обезопасит вашего персонажа от взлома.<BR> <strong>Внимание!Смените пароль на уникальный,который не использовался ранее в подобных проектах,это обезопасит вашего персонажа от взлома.<BR>
<em>Администрация.</strong> </em></small> <BR> <em>Администрация.</strong> </em></small> <BR>
<?= $rowonmax; ?><BR> <?= $rowonmax; ?><BR>
</div></td> </div></td>
</tr> </tr>
</table> </table>
<?php <?php
} }
?> ?>

View File

@ -1,74 +1,122 @@
<?php <?php
if(!defined('GAME')) if (!defined('GAME')) {
{ die();
die();
} }
if($u->room['file']=='zv3') if ($u->room['file'] == 'zv3') {
{ ?>
?> <table width="100%" border="0" cellspacing="0" cellpadding="0">
<table width="100%" border="0" cellspacing="0" cellpadding="0"> <tr>
<tr> <td width="250" valign="top">
<td width="250" valign="top"> <?php $usee = $u->getInfoPers($u->info['id'], 0);
<?php $usee = $u->getInfoPers($u->info['id'],0); if($usee!=false){ echo $usee[0]; }else{ echo 'information is lost.'; } ?> if ($usee != false) {
</td> echo $usee[0];
<td width="230" valign="top" style="padding-top:19px;"><?php require_once('modules_data/stats_loc.php'); ?></td> } else {
<td valign="top"><div align="right"> echo 'information is lost.';
<table border="0" cellpadding="0" cellspacing="0"> } ?>
<tr align="right" valign="top"> </td>
<td> <td width="230" valign="top" style="padding-top:19px;"><?php require_once('modules_data/stats_loc.php'); ?></td>
<?php <td valign="top">
if( $u->error != '' ) { <div align="right">
$re = $u->error; <table border="0" cellpadding="0" cellspacing="0">
} <tr align="right" valign="top">
if($re!=''){ echo '<font color="red"><b>'.$re.'</b></font>'; } ?> <td>
<table width="500" border="0" cellspacing="0" cellpadding="0"> <?php
<tr> if ($u->error != '') {
<td> $re = $u->error;
<div style="position:relative; cursor: pointer; width: 500;" id="ione"><img src="//img.new-combats.tech/i/images/300x225/club/navig.jpg" id="img_ione" width="500" height="240" border="1"/> }
<div style="position: absolute; left: 337px; top: 79px; width: 16px; height: 18px; z-index: 90;"><img src="//img.new-combats.tech/i/images/300x225/fl1.gif" width="16" height="18" title="Вы находитесь в '<?= $u->room['name']; ?>'" /></div> if ($re != '') {
<div style="position:absolute; left:184px; top:94px; width:120px; height:35px; z-index:90;"><img <?php thisInfRm('1.180.0.3'); ?> src="//img.new-combats.tech/i/images/300x225/map_bk.gif" width="120" height="35" title="" class="aFilter" /></div> echo '<font color="red"><b>' . $re . '</b></font>';
<div style="position:absolute; left:52px; top:47px; width:123px; height:30px; z-index:90;"><img onMouseOver="this.className='aFilterhover';" onMouseOut="this.className='aFilter';" src="//img.new-combats.tech/i/images/300x225/map_klub5-1.gif" width="123" height="30" title="Проход через Бойцовский клуб" class="aFilter" /></div> } ?>
<div style="position:absolute; left:59px; top:169px; width:123px; height:31px; z-index:90;"><img onClick="alert('Проход через Бойцовский клуб');" onMouseOver="this.className='aFilterhover';" onMouseOut="this.className='aFilter';" src="//img.new-combats.tech/i/images/300x225/map_klub4.gif" width="123" height="31" title="Проход через Бойцовский клуб" class="aFilter" /></div> <table width="500" border="0" cellspacing="0" cellpadding="0">
<div style="position:absolute; left:312px; top:168px; width:123px; height:31px; z-index:90;"><img onClick="alert('Проход через Бойцовский клуб');" src="//img.new-combats.tech/i/images/300x225/map_zalu1.gif" width="123" height="31" title="" /></div> <tr>
<div style="position:absolute; left:312px; top:48px; width:123px; height:30px; z-index:90;"><img onClick="alert('Проход через Бойцовский клуб');" onMouseOver="this.className='aFilterhover';" onMouseOut="this.className='aFilter';" src="//img.new-combats.tech/i/images/300x225/map_zalu2.gif" width="123" height="30" title="Проход через Бойцовский клуб" class="aFilter" /></div> <td>
<div style="position:absolute; left:216px; top:41px; width:58px; height:49px; z-index:90;"><img onClick="alert('Проход через Бойцовский клуб');" onMouseOver="this.className='aFilterhover';" onMouseOut="this.className='aFilter';" src="//img.new-combats.tech/i/images/300x225/map_klub2.gif" width="58" height="49" title="Проход через Бойцовский клуб" class="aFilter" /></div> <div style="position:relative; cursor: pointer; width: 500;" id="ione"><img src="//img.new-combats.tech/i/images/300x225/club/navig.jpg" id="img_ione"
<div style="position:absolute; left:66px; top:114px; width:56px; height:13px; z-index:90;"><img onClick="alert('Проход через Бойцовский клуб');" onMouseOver="this.className='aFilterhover';" onMouseOut="this.className='aFilter';" src="//img.new-combats.tech/i/images/300x225/map_klub1.gif" width="56" height="13" title="Проход через Бойцовский клуб" class="aFilter" /></div> width="500" height="240" border="1"/>
<div style="position:absolute; left:196px; top:148px; width:103px; height:47px; z-index:90;"><img onClick="alert('Проход через Бойцовский клуб');" onMouseOver="this.className='aFilterhover';" onMouseOut="this.className='aFilter';" src="//img.new-combats.tech/i/images/300x225/map_klub7.gif" width="103" height="47" title="Проход через Бойцовский клуб" class="aFilter" /></div> <div style="position: absolute; left: 337px; top: 79px; width: 16px; height: 18px; z-index: 90;"><img
<div id="snow"></div> src="//img.new-combats.tech/i/images/300x225/fl1.gif" width="16" height="18" title="Вы находитесь в '<?= $u->room['name']; ?>'"/></div>
<?= $goline; ?> <div style="position:absolute; left:184px; top:94px; width:120px; height:35px; z-index:90;"><img <?php thisInfRm('1.180.0.3'); ?>
</div> src="//img.new-combats.tech/i/images/300x225/map_bk.gif" width="120" height="35" title="" class="aFilter"/></div>
</td> <div style="position:absolute; left:52px; top:47px; width:123px; height:30px; z-index:90;"><img onMouseOver="this.className='aFilterhover';"
</tr> onMouseOut="this.className='aFilter';"
</table> src="//img.new-combats.tech/i/images/300x225/map_klub5-1.gif"
<div style="display:none; height:0px " id="moveto"></div> width="123" height="30"
<?php title="Проход через Бойцовский клуб" class="aFilter"/>
if($u->info['level']<6) </div>
{ <div style="position:absolute; left:59px; top:169px; width:123px; height:31px; z-index:90;"><img onClick="alert('Проход через Бойцовский клуб');"
echo ' onMouseOver="this.className='aFilterhover';"
onMouseOut="this.className='aFilter';"
src="//img.new-combats.tech/i/images/300x225/map_klub4.gif"
width="123" height="31"
title="Проход через Бойцовский клуб" class="aFilter"/>
</div>
<div style="position:absolute; left:312px; top:168px; width:123px; height:31px; z-index:90;"><img onClick="alert('Проход через Бойцовский клуб');"
src="//img.new-combats.tech/i/images/300x225/map_zalu1.gif"
width="123" height="31" title=""/></div>
<div style="position:absolute; left:312px; top:48px; width:123px; height:30px; z-index:90;"><img onClick="alert('Проход через Бойцовский клуб');"
onMouseOver="this.className='aFilterhover';"
onMouseOut="this.className='aFilter';"
src="//img.new-combats.tech/i/images/300x225/map_zalu2.gif"
width="123" height="30"
title="Проход через Бойцовский клуб" class="aFilter"/>
</div>
<div style="position:absolute; left:216px; top:41px; width:58px; height:49px; z-index:90;"><img onClick="alert('Проход через Бойцовский клуб');"
onMouseOver="this.className='aFilterhover';"
onMouseOut="this.className='aFilter';"
src="//img.new-combats.tech/i/images/300x225/map_klub2.gif"
width="58" height="49"
title="Проход через Бойцовский клуб" class="aFilter"/>
</div>
<div style="position:absolute; left:66px; top:114px; width:56px; height:13px; z-index:90;"><img onClick="alert('Проход через Бойцовский клуб');"
onMouseOver="this.className='aFilterhover';"
onMouseOut="this.className='aFilter';"
src="//img.new-combats.tech/i/images/300x225/map_klub1.gif"
width="56" height="13"
title="Проход через Бойцовский клуб" class="aFilter"/>
</div>
<div style="position:absolute; left:196px; top:148px; width:103px; height:47px; z-index:90;"><img onClick="alert('Проход через Бойцовский клуб');"
onMouseOver="this.className='aFilterhover';"
onMouseOut="this.className='aFilter';"
src="//img.new-combats.tech/i/images/300x225/map_klub7.gif"
width="103" height="47"
title="Проход через Бойцовский клуб" class="aFilter"/>
</div>
<div id="snow"></div>
<?= $goline; ?>
</div>
</td>
</tr>
</table>
<div style="display:none; height:0px " id="moveto"></div>
<?php
if ($u->info['level'] < 6) {
echo '
Вам все время кажется что за вами следят? Чудится, что случайный попутчик мечтает всадить вам топор в спину? При совершении очередной покупки в гос. магазине мучает ощущение, что вас обманули? Кажется, что симпатичная девушка напротив смотрит на вас как на пищу? Успокойтесь, это не паранойя. Это реалии Capital city. Города Тьмы. Вам все время кажется что за вами следят? Чудится, что случайный попутчик мечтает всадить вам топор в спину? При совершении очередной покупки в гос. магазине мучает ощущение, что вас обманули? Кажется, что симпатичная девушка напротив смотрит на вас как на пищу? Успокойтесь, это не паранойя. Это реалии Capital city. Города Тьмы.
'; ';
} ?> } ?>
</small></div></td> </small>
<td> </div>
<!-- <br /><span class="menutop"><nobr>Комната для новичков</nobr></span>--> </td>
</td> <td>
<!-- <br /><span class="menutop"><nobr>Комната для новичков</nobr></span>-->
</td>
</tr> </tr>
</table> </table>
<small> <small>
<HR> <HR>
<INPUT class="btn" onclick="window.open('/forum/', 'help', 'height=500,width=1024,location=no,menubar=no,status=no,toolbar=no,scrollbars=yes')" value="Подсказка" style="color:red;" type="button"> <INPUT class="btn" onclick="window.open('/forum/', 'help', 'height=500,width=1024,location=no,menubar=no,status=no,toolbar=no,scrollbars=yes')" value="Подсказка" style="color:red;"
<INPUT onclick="location.href='main.php?zayvka=<?= $code; ?>';" class="btn" value="Поединки" type="button" name="combats"> type="button">
<?php $hgo = $u->testHome(); if(!isset($hgo['id'])){ ?><INPUT onclick="location.href='main.php?homeworld=<?= $code; ?>';" class="btn" value="Возврат" type="button" name="combats2"><?php } unset($hgo); ?> <INPUT onclick="location.href='main.php?zayvka=<?= $code; ?>';" class="btn" value="Поединки" type="button" name="combats">
<br /> <?php if ($u->testHome()) { ?><INPUT onclick="location.href='main.php?homeworld=<?= $code; ?>';" class="btn" value="Возврат" type="button" name="combats2"><?php } ?>
<br/>
<strong>Внимание!Смените пароль на уникальный,который не использовался ранее в подобных проектах,это обезопасит вашего персонажа от взлома.<BR> <strong>Внимание!Смените пароль на уникальный,который не использовался ранее в подобных проектах,это обезопасит вашего персонажа от взлома.<BR>
<em>Администрация.</strong> </em></small> <BR> <em>Администрация.</strong> </em></small> <BR>
<?= $rowonmax; ?><BR> <?= $rowonmax; ?><BR>
</div></td> </div></td>
</tr> </tr>
</table> </table>
<?php <?php
} }
?> ?>

View File

@ -1,69 +1,118 @@
<?php <?php
if(!defined('GAME')) if (!defined('GAME')) {
{ die();
die();
} }
if($u->room['file']=='zv4') if ($u->room['file'] == 'zv4') {
{ ?>
?> <table width="100%" border="0" cellspacing="0" cellpadding="0">
<table width="100%" border="0" cellspacing="0" cellpadding="0"> <tr>
<tr> <td width="250" valign="top">
<td width="250" valign="top"> <?php $usee = $u->getInfoPers($u->info['id'], 0);
<?php $usee = $u->getInfoPers($u->info['id'],0); if($usee!=false){ echo $usee[0]; }else{ echo 'information is lost.'; } ?> if ($usee != false) {
</td> echo $usee[0];
<td width="230" valign="top" style="padding-top:19px;"><?php require_once('modules/stats_loc.php'); ?></td> } else {
<td valign="top"><div align="right"> echo 'information is lost.';
<table border="0" cellpadding="0" cellspacing="0"> } ?>
<tr align="right" valign="top"> </td>
<td> <td width="230" valign="top" style="padding-top:19px;"><?php require_once('modules/stats_loc.php'); ?></td>
<?php if($re!=''){ echo '<font color="red"><b>'.$re.'</b></font>'; } ?> <td valign="top">
<table width="500" border="0" cellspacing="0" cellpadding="0"> <div align="right">
<tr> <table border="0" cellpadding="0" cellspacing="0">
<td> <tr align="right" valign="top">
<div style="position:relative; cursor: pointer; width: 500;" id="ione"><img src="//img.new-combats.tech/i/images/300x225/club/navig.jpg" id="img_ione" width="500" height="240" border="1"/> <td>
<div style="position:absolute; left:139px; top:79px; width:16px; height:18px; z-index:90;"><img src="//img.new-combats.tech/i/images/300x225/fl1.gif" width="16" height="18" title="Вы находитесь в '<?= $u->room['name']; ?>'" /></div> <?php if ($re != '') {
<div style="position:absolute; left:184px; top:94px; width:120px; height:35px; z-index:90;"><img <?php thisInfRm('1.180.0.3'); ?> src="//img.new-combats.tech/i/images/300x225/map_bk.gif" width="120" height="35" title="" class="aFilter" /></div> echo '<font color="red"><b>' . $re . '</b></font>';
<div style="position:absolute; left:52px; top:47px; width:123px; height:30px; z-index:90;"><img onMouseOver="this.className='aFilterhover';" onMouseOut="this.className='aFilter';" src="//img.new-combats.tech/i/images/300x225/map_klub5-1.gif" width="123" height="30" title="Проход через Бойцовский клуб" class="aFilter" /></div> } ?>
<div style="position:absolute; left:59px; top:169px; width:123px; height:31px; z-index:90;"><img onClick="alert('Проход через Бойцовский клуб');" onMouseOver="this.className='aFilterhover';" onMouseOut="this.className='aFilter';" src="//img.new-combats.tech/i/images/300x225/map_klub4.gif" width="123" height="31" title="Проход через Бойцовский клуб" class="aFilter" /></div> <table width="500" border="0" cellspacing="0" cellpadding="0">
<div style="position:absolute; left:312px; top:168px; width:123px; height:31px; z-index:90;"><img onClick="alert('Проход через Бойцовский клуб');" src="//img.new-combats.tech/i/images/300x225/map_zalu1.gif" width="123" height="31" title="" /></div> <tr>
<div style="position:absolute; left:312px; top:48px; width:123px; height:30px; z-index:90;"><img onClick="alert('Проход через Бойцовский клуб');" onMouseOver="this.className='aFilterhover';" onMouseOut="this.className='aFilter';" src="//img.new-combats.tech/i/images/300x225/map_zalu2.gif" width="123" height="30" title="Проход через Бойцовский клуб" class="aFilter" /></div> <td>
<div style="position:absolute; left:216px; top:41px; width:58px; height:49px; z-index:90;"><img onClick="alert('Проход через Бойцовский клуб');" onMouseOver="this.className='aFilterhover';" onMouseOut="this.className='aFilter';" src="//img.new-combats.tech/i/images/300x225/map_klub2.gif" width="58" height="49" title="Проход через Бойцовский клуб" class="aFilter" /></div> <div style="position:relative; cursor: pointer; width: 500;" id="ione"><img src="//img.new-combats.tech/i/images/300x225/club/navig.jpg" id="img_ione"
<div style="position:absolute; left:66px; top:114px; width:56px; height:13px; z-index:90;"><img onClick="alert('Проход через Бойцовский клуб');" onMouseOver="this.className='aFilterhover';" onMouseOut="this.className='aFilter';" src="//img.new-combats.tech/i/images/300x225/map_klub1.gif" width="56" height="13" title="Проход через Бойцовский клуб" class="aFilter" /></div> width="500" height="240" border="1"/>
<div style="position:absolute; left:196px; top:148px; width:103px; height:47px; z-index:90;"><img onClick="alert('Проход через Бойцовский клуб');" onMouseOver="this.className='aFilterhover';" onMouseOut="this.className='aFilter';" src="//img.new-combats.tech/i/images/300x225/map_klub7.gif" width="103" height="47" title="Проход через Бойцовский клуб" class="aFilter" /></div> <div style="position:absolute; left:139px; top:79px; width:16px; height:18px; z-index:90;"><img src="//img.new-combats.tech/i/images/300x225/fl1.gif"
<div id="snow"></div> width="16" height="18"
<?= $goline; ?> title="Вы находитесь в '<?= $u->room['name']; ?>'"/>
</div> </div>
</td> <div style="position:absolute; left:184px; top:94px; width:120px; height:35px; z-index:90;"><img <?php thisInfRm('1.180.0.3'); ?>
</tr> src="//img.new-combats.tech/i/images/300x225/map_bk.gif" width="120" height="35" title="" class="aFilter"/></div>
</table> <div style="position:absolute; left:52px; top:47px; width:123px; height:30px; z-index:90;"><img onMouseOver="this.className='aFilterhover';"
<div style="display:none; height:0px " id="moveto"></div> onMouseOut="this.className='aFilter';"
<?php src="//img.new-combats.tech/i/images/300x225/map_klub5-1.gif"
if($u->info['level']<6) width="123" height="30"
{ title="Проход через Бойцовский клуб" class="aFilter"/>
echo ' </div>
<div style="position:absolute; left:59px; top:169px; width:123px; height:31px; z-index:90;"><img onClick="alert('Проход через Бойцовский клуб');"
onMouseOver="this.className='aFilterhover';"
onMouseOut="this.className='aFilter';"
src="//img.new-combats.tech/i/images/300x225/map_klub4.gif"
width="123" height="31"
title="Проход через Бойцовский клуб" class="aFilter"/>
</div>
<div style="position:absolute; left:312px; top:168px; width:123px; height:31px; z-index:90;"><img onClick="alert('Проход через Бойцовский клуб');"
src="//img.new-combats.tech/i/images/300x225/map_zalu1.gif"
width="123" height="31" title=""/></div>
<div style="position:absolute; left:312px; top:48px; width:123px; height:30px; z-index:90;"><img onClick="alert('Проход через Бойцовский клуб');"
onMouseOver="this.className='aFilterhover';"
onMouseOut="this.className='aFilter';"
src="//img.new-combats.tech/i/images/300x225/map_zalu2.gif"
width="123" height="30"
title="Проход через Бойцовский клуб" class="aFilter"/>
</div>
<div style="position:absolute; left:216px; top:41px; width:58px; height:49px; z-index:90;"><img onClick="alert('Проход через Бойцовский клуб');"
onMouseOver="this.className='aFilterhover';"
onMouseOut="this.className='aFilter';"
src="//img.new-combats.tech/i/images/300x225/map_klub2.gif"
width="58" height="49"
title="Проход через Бойцовский клуб" class="aFilter"/>
</div>
<div style="position:absolute; left:66px; top:114px; width:56px; height:13px; z-index:90;"><img onClick="alert('Проход через Бойцовский клуб');"
onMouseOver="this.className='aFilterhover';"
onMouseOut="this.className='aFilter';"
src="//img.new-combats.tech/i/images/300x225/map_klub1.gif"
width="56" height="13"
title="Проход через Бойцовский клуб" class="aFilter"/>
</div>
<div style="position:absolute; left:196px; top:148px; width:103px; height:47px; z-index:90;"><img onClick="alert('Проход через Бойцовский клуб');"
onMouseOver="this.className='aFilterhover';"
onMouseOut="this.className='aFilter';"
src="//img.new-combats.tech/i/images/300x225/map_klub7.gif"
width="103" height="47"
title="Проход через Бойцовский клуб" class="aFilter"/>
</div>
<div id="snow"></div>
<?= $goline; ?>
</div>
</td>
</tr>
</table>
<div style="display:none; height:0px " id="moveto"></div>
<?php
if ($u->info['level'] < 6) {
echo '
Вам все время кажется что за вами следят? Чудится, что случайный попутчик мечтает всадить вам топор в спину? При совершении очередной покупки в гос. магазине мучает ощущение, что вас обманули? Кажется, что симпатичная девушка напротив смотрит на вас как на пищу? Успокойтесь, это не паранойя. Это реалии Capital city. Города Тьмы. Вам все время кажется что за вами следят? Чудится, что случайный попутчик мечтает всадить вам топор в спину? При совершении очередной покупки в гос. магазине мучает ощущение, что вас обманули? Кажется, что симпатичная девушка напротив смотрит на вас как на пищу? Успокойтесь, это не паранойя. Это реалии Capital city. Города Тьмы.
'; ';
} ?> } ?>
</small></div></td> </small>
<td> </div>
<!-- <br /><span class="menutop"><nobr>Комната для новичков</nobr></span>--> </td>
</td> <td>
<!-- <br /><span class="menutop"><nobr>Комната для новичков</nobr></span>-->
</td>
</tr> </tr>
</table> </table>
<small> <small>
<HR> <HR>
<INPUT onclick="location.href='main.php?zayvka=<?= $code; ?>';" class="btn" value="Поединки" type="button" name="combats"> <INPUT onclick="location.href='main.php?zayvka=<?= $code; ?>';" class="btn" value="Поединки" type="button" name="combats">
<?php $hgo = $u->testHome(); if(!isset($hgo['id'])){ ?><INPUT onclick="location.href='main.php?homeworld=<?= $code; ?>';" class="btn" value="Возврат" type="button" name="combats2"><?php } unset($hgo); ?> <?php if ($u->testHome()) { ?><INPUT onclick="location.href='main.php?homeworld=<?= $code; ?>';" class="btn" value="Возврат" type="button" name="combats2"><?php } ?>
<br /> <br/>
<strong>Внимание!Смените пароль на уникальный,который не использовался ранее в подобных проектах,это обезопасит вашего персонажа от взлома.<BR> <strong>Внимание!Смените пароль на уникальный,который не использовался ранее в подобных проектах,это обезопасит вашего персонажа от взлома.<BR>
<em>Администрация.</strong> </em></small> <BR> <em>Администрация.</strong> </em></small> <BR>
<?= $rowonmax; ?><BR> <?= $rowonmax; ?><BR>
</div></td> </div></td>
</tr> </tr>
</table> </table>
<?php <?php
} }
?> ?>

View File

@ -1,82 +1,105 @@
<?php <?php
if(!defined('GAME')) if (!defined('GAME')) {
{ die();
die();
} }
if($u->room['file']=='zv_svet') if ($u->room['file'] == 'zv_svet') {
{ $u->abilsRoom('test');
$u->abilsRoom('test'); ?>
?> <link rel="stylesheet" type="text/css" href="/css/loc_bk.css">
<link rel="stylesheet" type="text/css" href="/css/loc_bk.css"> <table width="100%" border="0" cellspacing="0" cellpadding="0">
<table width="100%" border="0" cellspacing="0" cellpadding="0"> <tr>
<tr> <td width="250" valign="top">
<td width="250" valign="top"> <?php $usee = $u->getInfoPers($u->info['id'], 0);
<?php $usee = $u->getInfoPers($u->info['id'],0); if($usee!=false){ echo $usee[0]; }else{ echo 'information is lost.'; } if ($usee != false) {
echo '<br><center>'.$u->abilsRoom('look').'</center>'; echo $usee[0];
?> } else {
</td> echo 'information is lost.';
<td width="230" valign="top" style="padding-top:19px;"><?php require_once('modules_data/stats_loc.php'); ?></td> }
<td valign="top"><div align="right"> echo '<br><center>' . $u->abilsRoom('look') . '</center>';
<table border="0" cellpadding="0" cellspacing="0"> ?>
<tr align="right" valign="top"> </td>
<td> <td width="230" valign="top" style="padding-top:19px;"><?php require_once('modules_data/stats_loc.php'); ?></td>
<?php if($re!=''){ echo '<font color="red"><b>'.$re.'</b></font>'; } ?> <td valign="top">
<table width="500" border="0" cellspacing="0" cellpadding="0"> <div align="right">
<tr> <table border="0" cellpadding="0" cellspacing="0">
<td> <tr align="right" valign="top">
<?php if( $u->error != '' ) { ?> <td>
<font color=red><b> <?php if ($re != '') {
<?= $u->error; ?></font></b> echo '<font color="red"><b>' . $re . '</b></font>';
<?php } ?> } ?>
<div style="position:relative; cursor: pointer; width: 500;" id="ione"><img src="//img.new-combats.tech/i/images/loc_bk/bg.jpg" id="img_ione" width="500" height="240" border="1"/> <table width="500" border="0" cellspacing="0" cellpadding="0">
<img class="zv1" onClick="alert('Проход через Бойцовский Клуб!');" src="//img.new-combats.tech/i/images/loc_bk/1x1.gif" style="left: 50px; top: 169px; z-index:90;"> <tr>
<img class="cp" onClick="alert('Проход через Бойцовский Клуб!');" src="//img.new-combats.tech/i/images/loc_bk/1x1.gif" style="left: 190px; top: 175px; z-index:90;"> <td>
<img class="dark_zv" onClick="alert('Проход через Бойцовский Клуб');" src="//img.new-combats.tech/i/images/loc_bk/1x1.gif" style="left: 350px; top: 169px; z-index:90;"> <?php if ($u->error != '') { ?>
<img class="neut_zv" onClick="alert('Проход через Бойцовский Клуб');" src="//img.new-combats.tech/i/images/loc_bk/1x1.gif" style="left: 355px; top: 105px; z-index:90;"> <font color=red><b>
<img class="light_zv" onClick="alert('Вы уже находитесь в этой комнате!');" src="//img.new-combats.tech/i/images/loc_bk/1x1.gif" style="left: 340px; top: 40px; z-index:90;"> <?= $u->error; ?></font></b>
<img class="zn" onClick="alert('Проход через Бойцовский Клуб!');" src="//img.new-combats.tech/i/images/loc_bk/1x1.gif" style="left: 190px; top: 30px; z-index:90;"> <?php } ?>
<img class="trade_zv" onClick="alert('Проход через Бойцовский Клуб!');" src="//img.new-combats.tech/i/images/loc_bk/1x1.gif" style="left: 43px; top: 50px; z-index:90;"> <div style="position:relative; cursor: pointer; width: 500;" id="ione"><img src="//img.new-combats.tech/i/images/loc_bk/bg.jpg" id="img_ione" width="500"
<img class="ric_zv" onClick="alert('Проход через Бойцовский Клуб!');" src="//img.new-combats.tech/i/images/loc_bk/1x1.gif" style="left: 25px; top: 105px; z-index:90;"> height="240" border="1"/>
<img class="bk" src="//img.new-combats.tech/i/images/loc_bk/1x1.gif" style="left: 185px; top: 110px; z-index:90;" onClick="location='main.php?loc=1.180.0.3';"> <img class="zv1" onClick="alert('Проход через Бойцовский Клуб!');" src="//img.new-combats.tech/i/images/loc_bk/1x1.gif"
<?php style="left: 50px; top: 169px; z-index:90;">
if($u->room['id']==220) { <img class="cp" onClick="alert('Проход через Бойцовский Клуб!');" src="//img.new-combats.tech/i/images/loc_bk/1x1.gif"
?><div style="position:absolute; left:340px; top:40px; width:119px; height:34px; z-index:90;"><img onClick="alert('Вы уже находитесь в этой комнате!');" onMouseOver="this.className='aFilterhover';" onMouseOut="this.className='aFilter';" src="//img.new-combats.tech/i/images/loc_bk/light_a.png" width="119" height="34" title="Вы уже находитесь в этой комнате!" class="aFilter" /></div> style="left: 190px; top: 175px; z-index:90;">
<?}?> <img class="dark_zv" onClick="alert('Проход через Бойцовский Клуб');" src="//img.new-combats.tech/i/images/loc_bk/1x1.gif"
<div id="snow"></div> style="left: 350px; top: 169px; z-index:90;">
<?= $goline; ?> <img class="neut_zv" onClick="alert('Проход через Бойцовский Клуб');" src="//img.new-combats.tech/i/images/loc_bk/1x1.gif"
</div> style="left: 355px; top: 105px; z-index:90;">
</td> <img class="light_zv" onClick="alert('Вы уже находитесь в этой комнате!');" src="//img.new-combats.tech/i/images/loc_bk/1x1.gif"
</tr> style="left: 340px; top: 40px; z-index:90;">
</table> <img class="zn" onClick="alert('Проход через Бойцовский Клуб!');" src="//img.new-combats.tech/i/images/loc_bk/1x1.gif"
<div style="display:none; height:0px " id="moveto"></div> style="left: 190px; top: 30px; z-index:90;">
<?php <img class="trade_zv" onClick="alert('Проход через Бойцовский Клуб!');" src="//img.new-combats.tech/i/images/loc_bk/1x1.gif"
if($u->info['level']<6) style="left: 43px; top: 50px; z-index:90;">
{ <img class="ric_zv" onClick="alert('Проход через Бойцовский Клуб!');" src="//img.new-combats.tech/i/images/loc_bk/1x1.gif"
echo ' style="left: 25px; top: 105px; z-index:90;">
<img class="bk" src="//img.new-combats.tech/i/images/loc_bk/1x1.gif" style="left: 185px; top: 110px; z-index:90;"
onClick="location='main.php?loc=1.180.0.3';">
<?php
if ($u->room['id'] == 220) {
?>
<div style="position:absolute; left:340px; top:40px; width:119px; height:34px; z-index:90;"><img
onClick="alert('Вы уже находитесь в этой комнате!');" onMouseOver="this.className='aFilterhover';"
onMouseOut="this.className='aFilter';" src="//img.new-combats.tech/i/images/loc_bk/light_a.png" width="119" height="34"
title="Вы уже находитесь в этой комнате!" class="aFilter"/></div>
<?
} ?>
<div id="snow"></div>
<?= $goline; ?>
</div>
</td>
</tr>
</table>
<div style="display:none; height:0px " id="moveto"></div>
<?php
if ($u->info['level'] < 6) {
echo '
Вам все время кажется что за вами следят? Чудится, что случайный попутчик мечтает всадить вам топор в спину? При совершении очередной покупки в гос. магазине мучает ощущение, что вас обманули? Кажется, что симпатичная девушка напротив смотрит на вас как на пищу? Успокойтесь, это не паранойя. Это реалии Capital city. Города Тьмы. Вам все время кажется что за вами следят? Чудится, что случайный попутчик мечтает всадить вам топор в спину? При совершении очередной покупки в гос. магазине мучает ощущение, что вас обманули? Кажется, что симпатичная девушка напротив смотрит на вас как на пищу? Успокойтесь, это не паранойя. Это реалии Capital city. Города Тьмы.
'; ';
} ?> } ?>
</small></div></td> </small>
<td> </div>
<!-- <br /><span class="menutop"><nobr>Комната для новичков</nobr></span>--> </td>
</td> <td>
<!-- <br /><span class="menutop"><nobr>Комната для новичков</nobr></span>-->
</td>
</tr> </tr>
</table> </table>
<small> <small>
<HR> <HR>
<INPUT id="forum" class="btn btn-inverse" onclick="window.open('/news/', 'news', 'location=yes,menubar=yes,status=yes,resizable=yes,toolbar=yes,scrollbars=yes,scrollbars=yes')" value="Новости" type="button" name="forum"> <INPUT id="forum" class="btn btn-inverse" onclick="window.open('/news/', 'news', 'location=yes,menubar=yes,status=yes,resizable=yes,toolbar=yes,scrollbars=yes,scrollbars=yes')" value="Новости"
<INPUT onclick="location.href='main.php?zayvka=<?= $code; ?>';" class="btn btn-inverse" value="Поединки" type="button" name="combats"> type="button" name="forum">
<?php $hgo = $u->testHome(); if(!isset($hgo['id'])){ ?><INPUT onclick="location.href='main.php?homeworld=<?= $code; ?>';" class="btn btn-inverse" value="Возврат" type="button" name="combats2"><?php } unset($hgo); ?> <INPUT onclick="location.href='main.php?zayvka=<?= $code; ?>';" class="btn btn-inverse" value="Поединки" type="button" name="combats">
<br /> <?php if ($u->testHome()) { ?><INPUT onclick="location.href='main.php?homeworld=<?= $code; ?>';" class="btn btn-inverse" value="Возврат" type="button" name="combats2"><?php } ?>
<br/>
<strong>Внимание!Смените пароль на уникальный,который не использовался ранее в подобных проектах,это обезопасит вашего персонажа от взлома.<BR> <strong>Внимание!Смените пароль на уникальный,который не использовался ранее в подобных проектах,это обезопасит вашего персонажа от взлома.<BR>
<em>Администрация.</strong> </em></small> <BR> <em>Администрация.</strong> </em></small> <BR>
<?= $rowonmax; ?><BR> <?= $rowonmax; ?><BR>
</div></td> </div></td>
</tr> </tr>
</table> </table>
<?php <?php
} }
?> ?>

View File

@ -1,5 +1,6 @@
<?php <?php
use Core\Config;
use Helper\Conversion; use Helper\Conversion;
if (!defined('GAME')) { if (!defined('GAME')) {
@ -549,7 +550,7 @@ $repovo = $u->rep['rep3'] - $u->rep['rep3_buy'];
return $val; return $val;
} }
$rz0 = '<script>getLine(' . $prtpos[0] . ',"Характеристики ","0","0","' . $uShow[0] . '",1);</script>'; $rz0 = '<script>getLine(' . $prtpos[0] . ',"Характеристики ","0","0","' . $uShow[0] . '",1)</script>';
$rz0 .= '<font id="rz0">'; $rz0 .= '<font id="rz0">';
if ($uShow[0] == 1) { if ($uShow[0] == 1) {
$i = 1; $i = 1;
@ -580,7 +581,7 @@ $repovo = $u->rep['rep3'] - $u->rep['rep3_buy'];
} }
} }
$rz0 .= '</font></div>'; $rz0 .= '</font></div>';
$rz1 = '<script>getLine(' . $prtpos[1] . ',"Модификаторы ","0","0",' . $uShow[1] . ',2);</script>'; $rz1 = '<script>getLine(' . $prtpos[1] . ',"Модификаторы ","0","0",' . $uShow[1] . ',2)</script>';
if ($uShow[1] == 1) { if ($uShow[1] == 1) {
//if( $u->info['admin'] > 0 ) { //if( $u->info['admin'] > 0 ) {
$rz1 .= '<div style="display:none" id="lnk1">'; $rz1 .= '<div style="display:none" id="lnk1">';
@ -640,7 +641,7 @@ $repovo = $u->rep['rep3'] - $u->rep['rep3_buy'];
$rz1 .= '</span>'; $rz1 .= '</span>';
$rz1 .= '</nobr></div>'; $rz1 .= '</nobr></div>';
} }
$rz2 = '<script>getLine(' . $prtpos[2] . ',"Броня ","0","0",' . $uShow[2] . ',3);</script>'; $rz2 = '<script>getLine(' . $prtpos[2] . ',"Броня ","0","0",' . $uShow[2] . ',3)</script>';
if ($uShow[2] == 1) { if ($uShow[2] == 1) {
$rz2 .= '<div style="display:none" id="lnk2"> $rz2 .= '<div style="display:none" id="lnk2">
Броня головы: ' . $u->stats['mib1'] . '-' . $u->stats['mab1'] . ' (' . ($u->stats['mib1']) . '+d' . ($u->stats['mab1'] - ($u->stats['mib1']) + 1) . ')<br /> Броня головы: ' . $u->stats['mib1'] . '-' . $u->stats['mab1'] . ' (' . ($u->stats['mib1']) . '+d' . ($u->stats['mab1'] - ($u->stats['mib1']) + 1) . ')<br />
@ -649,7 +650,7 @@ $repovo = $u->rep['rep3'] - $u->rep['rep3_buy'];
Броня пояса: ' . $u->stats['mib3'] . '-' . $u->stats['mab3'] . ' (' . ($u->stats['mib3']) . '+d' . ($u->stats['mab3'] - ($u->stats['mib3']) + 1) . ')<br /> Броня пояса: ' . $u->stats['mib3'] . '-' . $u->stats['mab3'] . ' (' . ($u->stats['mib3']) . '+d' . ($u->stats['mab3'] - ($u->stats['mib3']) + 1) . ')<br />
Броня ног: ' . $u->stats['mib4'] . '-' . $u->stats['mab4'] . ' (' . ($u->stats['mib4']) . '+d' . ($u->stats['mab4'] - ($u->stats['mib4']) + 1) . ')<br /></div>'; Броня ног: ' . $u->stats['mib4'] . '-' . $u->stats['mab4'] . ' (' . ($u->stats['mib4']) . '+d' . ($u->stats['mab4'] - ($u->stats['mib4']) + 1) . ')<br /></div>';
} }
$rz3 = '<script>getLine(' . $prtpos[3] . ',"Мощность ","0","0",' . $uShow[3] . ',4);</script>'; $rz3 = '<script>getLine(' . $prtpos[3] . ',"Мощность ","0","0",' . $uShow[3] . ',4)</script>';
if ($uShow[3] == 1) { if ($uShow[3] == 1) {
$rz3 .= '<div style="display:none" id="lnk3">'; $rz3 .= '<div style="display:none" id="lnk3">';
$i = 1; $i = 1;
@ -695,33 +696,32 @@ $repovo = $u->rep['rep3'] - $u->rep['rep3_buy'];
5 => [17], //ноги 5 => [17], //ноги
]; ];
$rz4 = '<script>getLine(' . $prtpos[4] . ',"Кнопки ","0","0",' . $uShow[4] . ',5);</script>'; $rz4 = '<script>getLine(' . $prtpos[4] . ',"Кнопки ","0","0",' . $uShow[4] . ',5)</script>';
if ($uShow[4] == 1) { if ($uShow[4] == 1) {
$rz4 .= '<div style="display:none" id="lnk4"><center style="padding:5px;">'; $rz4 .= '<div style="display:none" id="lnk4"><center style="padding:5px;">';
$rz4 .= '<input class="btn" style="padding:3px 15px 3px 15px;" type="button" name="snatvso" value="Снять всё" onclick="top.frames[\'main\'].location=\'main.php?inv=1&remitem&otdel=' . $_GET['otdel'] . '\';" $rz4 .= '<input class="btn" style="padding:3px 15px 3px 15px;" type="button" name="snatvso" value="Снять всё" onclick="top.frames[\'main\'].location=\'main.php?inv=1&remitem&otdel=' . $_GET['otdel'] . '\';"
style="font-weight:bold;" /> style="font-weight:bold;" />
&nbsp;'; &nbsp;';
$hgo = $u->testHome();
if (!isset($hgo['id'])) { if ($u->testHome()) {
$rz4 .= '<input class="btn" style="padding:3px 15px 3px 15px;" type="button" value="Возврат" onclick="top.frames[\'main\'].location=\'main.php?homeworld&rnd=' . $code . '\';" style="font-weight:bold;width: 90px" />'; $rz4 .= '<input class="btn" style="padding:3px 15px 3px 15px;" type="button" value="Возврат" onclick="top.frames[\'main\'].location=\'main.php?homeworld&rnd=' . $code . '\';" style="font-weight:bold;width: 90px" />';
} }
unset($hgo);
$rz4 .= '</center>'; $rz4 .= '</center>';
$rz4 .= '</div>'; $rz4 .= '</div>';
} }
$rz5 = '<script>getLine(' . $prtpos[5] . ',"Комплекты&nbsp;&nbsp;&nbsp;<a href=\"#\" onClick=\"save_compl();\">запомнить</a>&nbsp;","0","0",' . $uShow[5] . ',6);</script>'; $rz5 = '<script>getLine(' . $prtpos[5] . ',"Комплекты&nbsp;&nbsp;&nbsp;<a href=\"#\" onClick=\"save_compl();\">запомнить</a>&nbsp;","0","0",' . $uShow[5] . ',6)</script>';
if ($uShow[5] == 1) { if ($uShow[5] == 1) {
$rz5 .= '<div style="display:none" id="lnk5">'; $rz5 .= '<div style="display:none" id="lnk5">';
$sp = mysql_query('SELECT * FROM `save_com` WHERE `uid` = "' . $u->info['id'] . '" AND `delete` = "0" LIMIT 10'); $sp = mysql_query('SELECT * FROM `save_com` WHERE `uid` = "' . $u->info['id'] . '" AND `delete` = "0" LIMIT 10');
while ($pl = mysql_fetch_array($sp)) { while ($pl = mysql_fetch_array($sp)) {
$rz5 .= '<a href="?inv=1&delc1=' . $pl['id'] . '&otdel=' . ((int)$_GET['otdel']) . '&rnd=' . $code . '"><img src="' . \Core\Config::img( $rz5 .= '<a href="?inv=1&delc1=' . $pl['id'] . '&otdel=' . ((int)$_GET['otdel']) . '&rnd=' . $code . '"><img src="' . Config::img() . '/i/close2.gif" title="Удалить комплект" width="9" height="9"></a> <small><a href="?inv=1&usec1=' . $pl['id'] . '&otdel=' . ((int)$_GET['otdel']) . '&rnd=' . $code . '">Надеть &quot;' . $pl['name'] . '&quot;</a></small><br>';
) . '/i/close2.gif" title="Удалить комплект" width="9" height="9"></a> <small><a href="?inv=1&usec1=' . $pl['id'] . '&otdel=' . ((int)$_GET['otdel']) . '&rnd=' . $code . '">Надеть &quot;' . $pl['name'] . '&quot;</a></small><br>';
} }
$rz5 .= '</div>'; $rz5 .= '</div>';
} }
$rz6 = '<script>getLine(' . $prtpos[6] . ',"Приемы &nbsp; &nbsp;<a href=\"/main.php?skills=1&rz=4&rnd=' . $code . '\">настроить</a>&nbsp;","0","0",' . $uShow[6] . ',7);</script>'; $rz6 = '<script>getLine(' . $prtpos[6] . ',"Приемы &nbsp; &nbsp;<a href=\"/main.php?skills=1&rz=4&rnd=' . $code . '\">настроить</a>&nbsp;","0","0",' . $uShow[6] . ',7)</script>';
if ($uShow[6] == 1) { if ($uShow[6] == 1) {
$rz6 .= '<div style="display:none" id="lnk6">'; //возможно 5 $rz6 .= '<div style="display:none" id="lnk6">'; //возможно 5
$sp = mysql_query('SELECT * FROM `complects_priem` WHERE `uid` = "' . $u->info['id'] . '" LIMIT 10'); $sp = mysql_query('SELECT * FROM `complects_priem` WHERE `uid` = "' . $u->info['id'] . '" LIMIT 10');
@ -729,8 +729,7 @@ $repovo = $u->rep['rep3'] - $u->rep['rep3_buy'];
while ($pl = mysql_fetch_array($sp)) { while ($pl = mysql_fetch_array($sp)) {
$rz6 .= '<a onclick="if(confirm(\'Удалить набор ?\')){location=\'main.php?inv=1&otdel=' . round( $rz6 .= '<a onclick="if(confirm(\'Удалить набор ?\')){location=\'main.php?inv=1&otdel=' . round(
(int)$_GET['otdel'] (int)$_GET['otdel']
) . '&delcop=' . $pl['id'] . '\'}" href="javascript:void(0)"><img src="' . \Core\Config::img( ) . '&delcop=' . $pl['id'] . '\'}" href="javascript:void(0)"><img src="' . Config::img() . '/i/close2.gif" width="9" height="9"></a> <a href="main.php?inv=1&otdel=' . round(
) . '/i/close2.gif" width="9" height="9"></a> <a href="main.php?inv=1&otdel=' . round(
(int)$_GET['otdel'] (int)$_GET['otdel']
) . '&usecopr=' . $pl['id'] . '">Использовать &quot;' . $pl['name'] . '&quot;</a><br>'; ) . '&usecopr=' . $pl['id'] . '">Использовать &quot;' . $pl['name'] . '&quot;</a><br>';
} }

View File

@ -1,4 +1,9 @@
<?php <?php
use Core\Config;
use Model\ActionModel;
use User\ItemsModel;
echo " echo "
<script language='JavaScript'> <script language='JavaScript'>
var elem = document.getElementById('se-pre-con'); var elem = document.getElementById('se-pre-con');
@ -191,29 +196,28 @@ $vi = [
$vix = 0; $vix = 0;
if ($ability[$account][$i][4] == 0) { if ($ability[$account][$i][4] == 0) {
//за сегодня //за сегодня
$vix = $u->testAction('`uid` = "' . $u->info['id'] . '" AND `time`>=' . strtotime('now 00:00:00') . ' AND `vars` = "vitm_' . $itm['id'] . '"', 2); $time = strtotime('now 00:00:00');
$vix = $vix[0];
} else { } else {
//всего за действие премиума //всего за действие премиума
$vix = $u->testAction('`uid` = "' . $u->info['id'] . '" AND `time`>=' . $vt['timeUse'] . ' AND `vars` = "vitm_' . $itm['id'] . '" ', 2); $time = $vt['timeUse'];
$vix = $vix[0];
} }
$vix = ActionModel::testCount(["uid = {$u->info['id']}", "vars = vitm_{$itm['id']}", "time >= $time"]);
unset($time);
if ($ability[$account][$i][1] - $vix > 0 && isset($_GET['take_item_vip']) && $_GET['take_item_vip'] == $itm['id']) { if ($ability[$account][$i][1] - $vix > 0 && isset($_GET['take_item_vip']) && $_GET['take_item_vip'] == $itm['id']) {
$nitm = \User\ItemsModel::addItem($itm['id'], $u->info['id'], $ability[$account][$i][5]); $nitm = ItemsModel::addItem($itm['id'], $u->info['id'], $ability[$account][$i][5]);
$u->addAction(time(), 'vitm_' . $itm['id'], ''); $u->addAction(time(), 'vitm_' . $itm['id'], '');
echo '<font color="red">Предмет &quot;<b>' . $itm['name'] . '</b>&quot; перемещен к Вам в инвентарь!</font><br><br>'; echo 'Предмет &quot;<b>' . $itm['name'] . '</b>&quot; перемещен к Вам в инвентарь!<br><br>';
} }
$seet0 = ''; $seet0 = '';
//Вывод предметов вип //Вывод предметов вип
$seet0 .= '<img ' . $vix . ' title="' . $itm['name'] . ' $seet0 .= '<img ' . $vix . ' title="' . $itm['name'] . '
(Осталось ' . $vnr[$ability[$account][$i][4]] . ': ' . ($ability[$account][$i][1] - $vix) . ' шт.)" src="https://' . $c['img'] . '/i/items/' . $itm['img'] . '"> '; (Осталось ' . $vnr[$ability[$account][$i][4]] . ': ' . ($ability[$account][$i][1] - $vix) . ' шт.)" src="' . Config::img() . '/i/items/' . $itm['img'] . '"> ';
if ($ability[$account][$i][1] - $vix > 0) { if ($ability[$account][$i][1] - $vix > 0) {
$seet0 = '<a href="main.php?vip=1&take_item_vip=' . $itm['id'] . '">' . $seet0 . '</a>'; $seet0 = '<a href="main.php?vip=1&take_item_vip=' . $itm['id'] . '">' . $seet0 . '</a>';
} else { } else {
$seet0 = '<span style="filter: alpha(opacity=20); -moz-opacity: 0.20; -khtml-opacity: 0.20; opacity: 0.20;">' . $seet0 . '</span>'; $seet0 = '<span style="filter: alpha(opacity=20); -moz-opacity: 0.20; opacity: 0.20;">' . $seet0 . '</span>';
} }
$seet .= $seet0; $seet .= $seet0;
} }

View File

@ -1,108 +1,114 @@
<?php <?php
if(!defined('GAME') || $u->stats['silver']<1)
{ use Model\ActionModel;
die(); use User\ItemsModel;
if (!defined('GAME') || $u->stats['silver'] < 1) {
die();
} }
if($u->error!='') if ($u->error != '') {
{ echo '<font color="red"><b>' . $u->error . '</b></font><br>';
echo '<font color="red"><b>'.$u->error.'</b></font><br>';
} }
$vt = mysql_fetch_array(mysql_query('SELECT * FROM `eff_users` WHERE `uid` = "'.$u->info['id'].'" AND `delete` = "0" AND `data` LIKE "%add_silver=%" LIMIT 1')); $vt = mysql_fetch_array(mysql_query('SELECT * FROM `eff_users` WHERE `uid` = "' . $u->info['id'] . '" AND `delete` = "0" AND `data` LIKE "%add_silver=%" LIMIT 1'));
$vu = array(0,0,0,0,0,0,0); $vu = [0, 0, 0, 0, 0, 0, 0];
$vi = array( $vi = [
//лечение травм //лечение травм
array(4412,array( 0 , 5 , 5 , 5 , 10 , 10 ),0,0,1,'useOnLogin=1|musor=1|noremont=1|sudba='.$u->info['login'].'|srok=600',1), [4412, [0, 5, 5, 5, 10, 10], 0, 0, 1, 'useOnLogin=1|musor=1|noremont=1|sudba=' . $u->info['login'] . '|srok=600', 1],
array(4413,array( 0 , 5 , 5 , 5 , 10 , 10 ),0,0,1,'useOnLogin=1|musor=1|noremont=1|sudba='.$u->info['login'].'|srok=600',1), [4413, [0, 5, 5, 5, 10, 10], 0, 0, 1, 'useOnLogin=1|musor=1|noremont=1|sudba=' . $u->info['login'] . '|srok=600', 1],
array(4414,array( 0 , 5 , 5 , 5 , 10 , 10 ),0,0,1,'useOnLogin=1|musor=1|noremont=1|sudba='.$u->info['login'].'|srok=600',1), [4414, [0, 5, 5, 5, 10, 10], 0, 0, 1, 'useOnLogin=1|musor=1|noremont=1|sudba=' . $u->info['login'] . '|srok=600', 1],
//нападалки //нападалки
array(865, array( 0 , 0 , 0 , 0 , 0 , 0 ),0,0,1,'useOnLogin=1|musor=1|noremont=1|sudba='.$u->info['login'].'|srok=43200',1), [865, [0, 0, 0, 0, 0, 0], 0, 0, 1, 'useOnLogin=1|musor=1|noremont=1|sudba=' . $u->info['login'] . '|srok=43200', 1],
array(2391,array( 0 , 0 , 0 , 0 , 10 , 20 ),0,0,1,'useOnLogin=1|musor=1|noremont=1|sudba='.$u->info['login'].'|srok=43200',2), [2391, [0, 0, 0, 0, 10, 20], 0, 0, 1, 'useOnLogin=1|musor=1|noremont=1|sudba=' . $u->info['login'] . '|srok=43200', 2],
//хилки //хилки
array(2543,array( 0 , 0 , 0 , 0 , 0 , 0 ),0,0,1,'useOnLogin=1|musor=1|noremont=1|sudba='.$u->info['login'].'|srok=21600|magic_hpNow=45',2), [2543, [0, 0, 0, 0, 0, 0], 0, 0, 1, 'useOnLogin=1|musor=1|noremont=1|sudba=' . $u->info['login'] . '|srok=21600|magic_hpNow=45', 2],
array(2544,array( 0 , 0 , 0 , 0 , 0 , 0 ),0,0,1,'useOnLogin=1|musor=1|noremont=1|sudba='.$u->info['login'].'|srok=21600|magic_hpNow=60',2), [2544, [0, 0, 0, 0, 0, 0], 0, 0, 1, 'useOnLogin=1|musor=1|noremont=1|sudba=' . $u->info['login'] . '|srok=21600|magic_hpNow=60', 2],
array(2545,array( 0 , 0 , 0 , 0 , 0 , 0 ),0,0,1,'useOnLogin=1|musor=1|noremont=1|sudba='.$u->info['login'].'|srok=21600|magic_hpNow=600',2), [2545, [0, 0, 0, 0, 0, 0], 0, 0, 1, 'useOnLogin=1|musor=1|noremont=1|sudba=' . $u->info['login'] . '|srok=21600|magic_hpNow=600', 2],
//обкасты //обкасты
array(994, array( 0 , 0 , 0 , 0 , 5 , 10 ),0,0,1,'musor=1|noremont=1|onlyOne=1|oneType=6|sudba='.$u->info['login'].'|srok=600',1), [994, [0, 0, 0, 0, 5, 10], 0, 0, 1, 'musor=1|noremont=1|onlyOne=1|oneType=6|sudba=' . $u->info['login'] . '|srok=600', 1],
array(1001,array( 0 , 0 , 0 , 0 , 5 , 10 ),0,0,1,'musor=1|noremont=1|onlyOne=1|oneType=7|sudba='.$u->info['login'].'|srok=600',1), [1001, [0, 0, 0, 0, 5, 10], 0, 0, 1, 'musor=1|noremont=1|onlyOne=1|oneType=7|sudba=' . $u->info['login'] . '|srok=600', 1],
array(1460,array( 0 , 0 , 0 , 0 , 5 , 10 ),0,0,1,'musor=1|noremont=1|onlyOne=1|oneType=25|sudba='.$u->info['login'].'|srok=600',1), [1460, [0, 0, 0, 0, 5, 10], 0, 0, 1, 'musor=1|noremont=1|onlyOne=1|oneType=25|sudba=' . $u->info['login'] . '|srok=600', 1],
array(3102,array( 0 , 0 , 0 , 0 , 5 , 10 ),0,0,1,'musor=1|noremont=1|onlyOne=1|oneType=33|sudba='.$u->info['login'].'|srok=600',1), [3102, [0, 0, 0, 0, 5, 10], 0, 0, 1, 'musor=1|noremont=1|onlyOne=1|oneType=33|sudba=' . $u->info['login'] . '|srok=600', 1],
array(4371,array( 5 , 5 , 5 , 5 , 5 , 5 ),0,0,1,'musor=1|noremont=1|onlyOne=1|oneType=36|sudba='.$u->info['login'].'|srok=600',1), [4371, [5, 5, 5, 5, 5, 5], 0, 0, 1, 'musor=1|noremont=1|onlyOne=1|oneType=36|sudba=' . $u->info['login'] . '|srok=600', 1],
//Сундуки //Сундуки
array(2144,array( 0 , 0 , 0 , 0 , 0 , 3 ),0,0,1,'nohaos=1|onlyOne=1|oneType=12|musor=2|noremont=1|srok=600',1), [2144, [0, 0, 0, 0, 0, 3], 0, 0, 1, 'nohaos=1|onlyOne=1|oneType=12|musor=2|noremont=1|srok=600', 1],
array(2143,array( 0 , 0 , 0 , 0 , 0 , 3 ),0,0,1,'nohaos=1|onlyOne=1|oneType=7|musor=2|noremont=1|srok=600',1), [2143, [0, 0, 0, 0, 0, 3], 0, 0, 1, 'nohaos=1|onlyOne=1|oneType=7|musor=2|noremont=1|srok=600', 1],
//array(3101,array( 0 , 0 , 0 , 0 , 0 , 0 ),0,0,1,'onlyOne=1|oneType=33|noremont=1|musor=1|srok=600',1), //array(3101,array( 0 , 0 , 0 , 0 , 0 , 0 ),0,0,1,'onlyOne=1|oneType=33|noremont=1|musor=1|srok=600',1),
//Екр. //Екр.
array(1461,array( 0 , 0 , 0 , 0 , 0 , 0 ),0,0,1,'musor=1|noremont=1|onlyOne=1|oneType=24|sudba='.$u->info['login'].'|srok=600',1), [1461, [0, 0, 0, 0, 0, 0], 0, 0, 1, 'musor=1|noremont=1|onlyOne=1|oneType=24|sudba=' . $u->info['login'] . '|srok=600', 1],
array(1462,array( 0 , 0 , 0 , 0 , 0 , 0 ),0,0,1,'musor=1|noremont=1|onlyOne=1|oneType=24|sudba='.$u->info['login'].'|srok=600',1), [1462, [0, 0, 0, 0, 0, 0], 0, 0, 1, 'musor=1|noremont=1|onlyOne=1|oneType=24|sudba=' . $u->info['login'] . '|srok=600', 1],
array(1463,array( 0 , 0 , 0 , 0 , 0 , 0 ),0,0,1,'musor=1|noremont=1|onlyOne=1|oneType=24|sudba='.$u->info['login'].'|srok=600',1) [1463, [0, 0, 0, 0, 0, 0], 0, 0, 1, 'musor=1|noremont=1|onlyOne=1|oneType=24|sudba=' . $u->info['login'] . '|srok=600', 1],
//array(2143,1,2,10,1,'musor=1|noremont=1|onlyOne=1|oneType=3|sudba='.$u->info['login'].'|srok=600',1), //array(2143,1,2,10,1,'musor=1|noremont=1|onlyOne=1|oneType=3|sudba='.$u->info['login'].'|srok=600',1),
//array(2144,1,2,10,1,'musor=1|noremont=1|onlyOne=1|oneType=3|sudba='.$u->info['login'].'|srok=600',1)*/ //array(2144,1,2,10,1,'musor=1|noremont=1|onlyOne=1|oneType=3|sudba='.$u->info['login'].'|srok=600',1)*/
); ];
?> ?>
<table width="100%"> <table width="100%">
<tr> <tr>
<td align="center"><h3>Добро пожаловать, <?=$u->info['login']?>!</h3><center>У вас действует <img width="15" height="15" style="display:inline-block; vertical-align:text-bottom;" src="//img.new-combats.tech/blago/<?=$u->stats['silver']?>.png" /><b>Благословления Ангелов</b> <?=$u->stats['silver']?> уровня.</center></td> <td align="center"><h3>Добро пожаловать, <?= $u->info['login'] ?>!</h3>
<td width="150" align="right"><input type="button" value="обновить" onclick="location='main.php?vip=1';" /> <input type="button" value="Вернуться" onclick="location='main.php';" /></td> <center>У вас действует <img width="15" height="15" style="display:inline-block; vertical-align:text-bottom;" src="//img.new-combats.tech/blago/<?= $u->stats['silver'] ?>.png"/><b>Благословления
</tr> Ангелов</b> <?= $u->stats['silver'] ?> уровня.
<tr> </center>
<td><p><b>Доступные возможности:</b> <a href="/benediction/" target="_blank">Посмотреть возможности</a></p> </td>
<p><b>Доступные предметы:</b><br /> <td width="150" align="right"><input type="button" value="обновить" onclick="location='main.php?vip=1';"/> <input type="button" value="Вернуться" onclick="location='main.php';"/></td>
<small>(Чтобы забрать предмет просто нажмите на его изображение)</small></p> </tr>
<p> <tr>
<?php <td><p><b>Доступные возможности:</b> <a href="/benediction/" target="_blank">Посмотреть возможности</a></p>
$i = 0; $seet = ''; <p><b>Доступные предметы:</b><br/>
$vnr = array(0 => 'на сегодня',1 => ' всего'); <small>(Чтобы забрать предмет просто нажмите на его изображение)</small></p>
while($i < count($vi)) { <p>
if($vi[$i][1][$u->stats['silver']]>0) { <?php
$itm = mysql_fetch_array(mysql_query('SELECT * FROM `items_main` WHERE `id` = "'.$vi[$i][0].'" LIMIT 1')); $i = 0;
if(isset($itm['id'])) { $seet = '';
$vix = 0; $vnr = [0 => 'на сегодня', 1 => ' всего'];
if($vi[$i][4] == 0) { while ($i < count($vi)) {
//за сегодня if ($vi[$i][1][$u->stats['silver']] > 0) {
$vix = $u->testAction('`uid` = "'.$u->info['id'].'" AND `time`>='.strtotime('now 00:00:00').' AND `vars` = "vitm_'.$itm['id'].'" LIMIT '.$vi[$i][1][$u->stats['silver']],2); $itm = mysql_fetch_array(mysql_query('SELECT * FROM `items_main` WHERE `id` = "' . $vi[$i][0] . '" LIMIT 1'));
$vix = $vix[0]; if (isset($itm['id'])) {
}else{ $vix = 0;
//всего за действие премиума if ($vi[$i][4] == 0) {
$vix = $u->testAction('`uid` = "'.$u->info['id'].'" AND `time`>='.$vt['timeUse'].' AND `vars` = "vitm_'.$itm['id'].'" LIMIT '.$vi[$i][1][$u->stats['silver']],2); //за сегодня
$vix = $vix[0]; $time = strtotime('now 00:00:00');
} } else {
//всего за действие премиума
$time = $vt['timeUse'];
}
$vix = ActionModel::testCount(["uid = {$u->info['id']}", "vars = vitm_{$itm['id']}", "time >= $time"], $vi[$i][1][$u->stats['silver']]);
if($vi[$i][1][$u->stats['silver']]-$vix > 0) { if ($vi[$i][1][$u->stats['silver']] - $vix > 0) {
if(isset($_GET['take_item_vip']) && $_GET['take_item_vip'] == $itm['id']) { if (isset($_GET['take_item_vip']) && $_GET['take_item_vip'] == $itm['id']) {
$vix++; $vix++;
$nitm = \User\ItemsModel::addItem($itm['id'],$u->info['id'],$vi[$i][5]); $nitm = ItemsModel::addItem($itm['id'], $u->info['id'], $vi[$i][5]);
if($vi[$i][6]>0) { if ($vi[$i][6] > 0) {
mysql_query('UPDATE `items_users` SET `data`="'.$vi[$i][5].'",`iznosMAX` = "'.$vi[$i][6].'",`1price` = "0.01" WHERE `id` = "'.$nitm.'" AND `uid` = "'.$u->info['id'].'" LIMIT 1'); mysql_query('UPDATE `items_users` SET `data`="' . $vi[$i][5] . '",`iznosMAX` = "' . $vi[$i][6] . '",`1price` = "0.01" WHERE `id` = "' . $nitm . '" AND `uid` = "' . $u->info['id'] . '" LIMIT 1');
} }
$u->addAction(time(),'vitm_'.$itm['id'],''); $u->addAction(time(), 'vitm_' . $itm['id'], '');
echo '<font color="red">Предмет &quot;<b>'.$itm['name'].'</b>&quot; перемещен к Вам в инвентарь (Осталось '.$vnr[$vi[$i][4]].': '.($vi[$i][1][$u->stats['silver']]-$vix).' шт.).</font><br><br>'; echo 'Предмет &quot;<b>' . $itm['name'] . '</b>&quot; перемещен к Вам в инвентарь (Осталось ' . $vnr[$vi[$i][4]] . ': ' . ($vi[$i][1][$u->stats['silver']] - $vix) . ' шт.).<br><br>';
} }
} }
$seet0 = ''; $seet0 = '';
$seet0 .= '<img '.$vix.' title="'.$itm['name'].' $seet0 .= '<img ' . $vix . ' title="' . $itm['name'] . '
(Осталось '.$vnr[$vi[$i][4]].': '.($vi[$i][1][$u->stats['silver']]-$vix).' шт.)" style="height:25px;" src="//img.new-combats.tech/i/items/'.$itm['img'].'"> '; (Осталось ' . $vnr[$vi[$i][4]] . ': ' . ($vi[$i][1][$u->stats['silver']] - $vix) . ' шт.)" style="height:25px;" src="//img.new-combats.tech/i/items/' . $itm['img'] . '"> ';
if($vi[$i][1][$u->stats['silver']]-$vix > 0) { if ($vi[$i][1][$u->stats['silver']] - $vix > 0) {
$seet0 = '<a href="main.php?vip=1&take_item_vip='.$itm['id'].'">'.$seet0.'</a>'; $seet0 = '<a href="main.php?vip=1&take_item_vip=' . $itm['id'] . '">' . $seet0 . '</a>';
}else{ } else {
$seet0 = '<span style="filter: alpha(opacity=20); -moz-opacity: 0.20; -khtml-opacity: 0.20; opacity: 0.20;">'.$seet0.'</span>'; $seet0 = '<span style="filter: alpha(opacity=20); -moz-opacity: 0.20; -khtml-opacity: 0.20; opacity: 0.20;">' . $seet0 . '</span>';
} }
$seet .= $seet0; $seet .= $seet0;
} }
} }
$i++; $i++;
} }
echo $seet; echo $seet;
?> ?>
</p> </p>
<font color=red><b>Внимание!</b> Срок годности выдаваемых предметов 10 мин.</font><Br /></td> <font color=red><b>Внимание!</b> Срок годности выдаваемых предметов 10 мин.</font><Br/></td>
</tr> </tr>
</table> </table>

View File

@ -2,10 +2,9 @@
use Core\Db; use Core\Db;
define('GAME', time()); if (!defined('GAME_VERSION')) {
require_once '_incl_data/autoload.php';
require_once '_incl_data/__config.php'; }
require_once '_incl_data/class/__db_connect.php';
$urla = explode('?', $_SERVER["REQUEST_URI"]); $urla = explode('?', $_SERVER["REQUEST_URI"]);
$url = explode('/', $urla[0]); $url = explode('/', $urla[0]);
@ -58,7 +57,6 @@ HTML;
<!DOCTYPE HTML> <!DOCTYPE HTML>
<html lang="ru"> <html lang="ru">
<head> <head>
<title>Новый Бойцовский клуб | Библиотека образов</title> <title>Новый Бойцовский клуб | Библиотека образов</title>
<link rel="stylesheet" href="/main1.css"> <link rel="stylesheet" href="/main1.css">
<link rel="stylesheet" href="/css/obraz.css"> <link rel="stylesheet" href="/css/obraz.css">

View File

@ -9,6 +9,7 @@ use Core\Config;
use Core\Database; use Core\Database;
use Core\Db; use Core\Db;
use DarksLight2\Training\TrainingManager; use DarksLight2\Training\TrainingManager;
use Model\ActionModel;
Config::init(); Config::init();
@ -271,11 +272,8 @@ if (isset($_POST['msg']) && str_replace(' ', '', $_POST['msg']) != '') {
} }
if ($msg['spam'] == 1 && $u->info['molch1'] < time() && $u->info['admin'] == 0) { if ($msg['spam'] == 1 && $u->info['molch1'] < time() && $u->info['admin'] == 0) {
$mban = $u->testAction( $mban = ActionModel::get(["uid = {$u->info['id']}", 'time >= ' . strtotime('now 00:00:00'), 'vars = msg_bans'], 'id, vals');
'`uid` = "' . $u->info['id'] . '" AND `time` >= ' . strtotime(
'now 00:00:00'
) . ' AND `vars` = "msg_bans" LIMIT 1', 1
);
if (!isset($mban['id'])) { if (!isset($mban['id'])) {
$u->addAction(time(), 'msg_bans', '1'); $u->addAction(time(), 'msg_bans', '1');
$mban['vals'] = 0; $mban['vals'] = 0;

32
qodana.yaml Normal file
View File

@ -0,0 +1,32 @@
#-------------------------------------------------------------------------------#
# Qodana analysis is configured by qodana.yaml file #
# https://www.jetbrains.com/help/qodana/qodana-yaml.html #
#-------------------------------------------------------------------------------#
version: "1.0"
#Specify inspection profile for code analysis
profile:
name: qodana.starter
#Enable inspections
#include:
# - name: <SomeEnabledInspectionId>
#Disable inspections
#exclude:
# - name: <SomeDisabledInspectionId>
# paths:
# - <path/where/not/run/inspection>
php:
version: 8.2 #(Applied in CI/CD pipeline)
#Execute shell command before Qodana execution (Applied in CI/CD pipeline)
#bootstrap: sh ./prepare-qodana.sh
#Install IDE plugins before Qodana execution (Applied in CI/CD pipeline)
#plugins:
# - id: <plugin.id> #(plugin id can be found at https://plugins.jetbrains.com)
#Specify Qodana linter for analysis (Applied in CI/CD pipeline)
linter: jetbrains/qodana-php:latest

View File

@ -150,7 +150,7 @@ $errorMessage = $newUser->getError() ? "<h4>{$newUser->getError()}</h4>" : '';
<!DOCTYPE html> <!DOCTYPE html>
<head> <head>
<title><?= Config::get('name') ?>: Регистрация - создай персонажа в игре.</title> <title><?= Config::GAMENAME ?>: Регистрация - создай персонажа в игре.</title>
<meta name="description" content="<?= Config::get('desc') ?>"/> <meta name="description" content="<?= Config::get('desc') ?>"/>
</head> </head>
<style> <style>

View File

@ -88,7 +88,7 @@ if (isset($_POST['relogin'])) {
<!DOCTYPE html> <!DOCTYPE html>
<html lang="ru-RU"> <html lang="ru-RU">
<head> <head>
<title><?= Config::get('name') ?>: Восстановление пароля от персонажа</title> <title><?= Config::GAMENAME ?>: Восстановление пароля от персонажа</title>
<meta name="keywords" content="<?= Config::get('keys') ?>"> <meta name="keywords" content="<?= Config::get('keys') ?>">
<meta name="description" content="<?= Config::get('desc') ?>"/> <meta name="description" content="<?= Config::get('desc') ?>"/>
<meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=no"/> <meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=no"/>

View File

@ -1,264 +0,0 @@
<?php
use User\UserIp;
const GAME = true;
include('_incl_data/__config.php');
include('_incl_data/class/__db_connect.php');
define('IP', UserIp::get());
$u = User::start();
$free_stats = 125;
if ($u->info['banned'] > 0) {
header('location: /index.php');
die();
}
$tjs = '';
if ($u->info['bithday'] == '01.01.1800' && $u->info['inTurnirnew'] == 0) {
unset($_GET, $_POST);
}
if (isset($_POST['set_name'])) {
$_POST['set_name'] = htmlspecialchars($_POST['set_name']);
$set_x = mysql_fetch_array(
mysql_query(
'SELECT COUNT(*) FROM `ruine_sets` WHERE `uid` = "' . $u->info['id'] . '" AND `name` != "' . mysql_real_escape_string(
$_POST['set_name']
) . '" LIMIT 1'
)
);
if ($set_x[0] > 20) {
$u->error = 'Нельзя создавать более 20 профилей';
} else {
$set_x = mysql_fetch_array(
mysql_query(
'SELECT `id` FROM `ruine_sets` WHERE `uid` = "' . $u->info['id'] . '" AND `name` = "' . mysql_real_escape_string(
$_POST['set_name']
) . '" LIMIT 1'
)
);
//
$f = $free_stats; // свободных статов
$i = 1;
while ($i <= 6) {
$_POST['s' . $i] = round((int)$_POST['s' . $i]);
if ($_POST['s' . $i] < 0) {
$_POST['s' . $i] = 0;
}
$f -= $_POST['s' . $i];
$i++;
}
//
if ($f < 0 || $f > $free_stats) {
$u->error = 'Ошибка в распределении статов.';
} elseif (isset($set_x['id'])) {
mysql_query(
'UPDATE `ruine_sets` SET
`s1` = "' . mysql_real_escape_string($_POST['s1']) . '",
`s2` = "' . mysql_real_escape_string($_POST['s2']) . '",
`s3` = "' . mysql_real_escape_string($_POST['s3']) . '",
`s4` = "' . mysql_real_escape_string($_POST['s4']) . '",
`s5` = "' . mysql_real_escape_string($_POST['s5']) . '",
`s6` = "' . mysql_real_escape_string($_POST['s6']) . '",
`free` = "' . mysql_real_escape_string($f) . '",
`time` = "' . time() . '"
WHERE `id` = "' . $set_x['id'] . '" LIMIT 1'
);
$u->error = 'Профиль &quot;' . $_POST['set_name'] . '&quot; был успешно перезаписан!';
} else {
mysql_query(
'INSERT INTO `ruine_sets` (
`uid`,`name`,`free`,`s1`,`s2`,`s3`,`s4`,`s5`,`s6`,`time`
) VALUES (
"' . $u->info['id'] . '","' . mysql_real_escape_string(
$_POST['set_name']
) . '","' . mysql_real_escape_string($f) . '",
"' . mysql_real_escape_string($_POST['s1']) . '",
"' . mysql_real_escape_string($_POST['s2']) . '",
"' . mysql_real_escape_string($_POST['s3']) . '",
"' . mysql_real_escape_string($_POST['s4']) . '",
"' . mysql_real_escape_string($_POST['s5']) . '",
"' . mysql_real_escape_string($_POST['s6']) . '",
"' . time() . '"
)'
);
$u->error = 'Профиль &quot;' . $_POST['set_name'] . '&quot; был создан.';
}
}
} elseif (isset($_GET['use'])) {
$set_x = mysql_fetch_array(
mysql_query(
'SELECT * FROM `ruine_sets` WHERE `uid` = "' . $u->info['id'] . '" AND `id` = "' . mysql_real_escape_string(
$_GET['use']
) . '" LIMIT 1'
)
);
if (isset($set_x['id'])) {
mysql_query('UPDATE `ruine_sets` SET `use` = 0 WHERE `uid` = "' . $u->info['id'] . '"');
mysql_query('UPDATE `ruine_sets` SET `use` = 1 WHERE `id` = "' . $set_x['id'] . '" LIMIT 1');
$u->error = 'Профиль &quot;' . $set_x['name'] . '&quot; был установлен по умолчанию.';
}
} elseif (isset($_GET['delete'])) {
$set_x = mysql_fetch_array(
mysql_query(
'SELECT * FROM `ruine_sets` WHERE `uid` = "' . $u->info['id'] . '" AND `id` = "' . mysql_real_escape_string(
$_GET['delete']
) . '" LIMIT 1'
)
);
if (isset($set_x['id'])) {
mysql_query('DELETE FROM `ruine_sets` WHERE `id` = "' . $set_x['id'] . '" LIMIT 1');
$u->error = 'Профиль &quot;' . $set_x['name'] . '&quot; был стерт.';
}
}
?>
<!doctype html>
<html>
<head>
<title>Старый Бойцовский Клуб - Профили характеристик</title>
<link href="//img.new-combats.tech/css/main.css" rel="stylesheet" type="text/css">
<script type="text/javascript" src="js/jquery.js"></script>
<script>
var free_stats = <?=$free_stats?>;
function test_free() {
var i = 1;
var a = 0;
while (i <= 6) {
a += Number($('#s' + i).val());
i++;
}
$('#free_s').val(free_stats - a);
if (free_stats - a > 0) {
$('#result_ch').html('');
} else if (free_stats - a == 0) {
$('#result_ch').html('&nbsp;&nbsp;<font color="green"><b>Теперь можно сохранять</b></font>');
} else {
$('#result_ch').html('&nbsp;&nbsp;<font color="red"><b>Недостаточно характеристик!</b></font>');
}
}
</script>
</head>
<body>
<h3>Профили характеристик</h3><br>
<?php
if ($u->error != '') {
echo '<div><font color="red"><b>' . $u->error . '</b></font></div><br>';
}
?>
Статы не позволяют сходить в руины? Раскиньте ваши статы так, как вы хотите, и участвуйте в турнире! Выбранный по
умолчанию профиль, загрузится сам. Вы можете создавать до двадцати профилей и менять их за секунды до турнира!
<br><br>
<table style="border:1px solid #000;" width="100%" border="0" cellspacing="0" cellpadding="5">
<tr>
<td style="border-right:1px solid #000;" bgcolor="#b5b5b5">Название</td>
<td style="border-right:1px solid #000;" bgcolor="#b5b5b5">По умолчанию</td>
<td bgcolor="#b5b5b5">Удалить</td>
</tr>
<?php
$j = 0;
$sp = mysql_query('SELECT * FROM `ruine_sets` WHERE `uid` = "' . $u->info['id'] . '" ORDER BY `time` DESC');
while ($pl = mysql_fetch_array($sp)) {
?>
<tr>
<td style="border-right:1px solid #000;border-top:1px solid #000;" bgcolor="#d2d0d1"><?= $pl['name'] ?></td>
<td style="border-right:1px solid #000;border-top:1px solid #000;" bgcolor="#d2d0d1">
<?php
if ($pl['use'] == 0) { ?>
<a href="/ruin_characteristics.php?use=<?= $pl['id'] ?>">Установить</a>
<?php
} else { ?>
<b><font color="red">По умолчанию</font></b>
<?php
} ?></td>
<td style="border-top:1px solid #000;" bgcolor="#d2d0d1"><a
href="/ruin_characteristics.php?delete=<?= $pl['id'] ?>">удалить</a></td>
</tr>
<?php
$j++;
} ?>
</table>
<?php
if ($j == 0) {
echo '<div style="padding:5px;border-left:1px solid #000;border-right:1px solid #000;border-bottom:1px solid #000;background-color:#d2d0d1;" align="center">Нет сохраненных профилей</div>';
}
?>
<br>
<input type="button" value="Обновить" class="btnnew"
onClick="location.href='/ruin_characteristics.php';">
<br><br>
<hr>
<br>
<form method="post" action="/ruin_characteristics.php">
Название: <input name="set_name" type="text" value="" class="textnew" style="width:144px;"><br><br>
<table style="border:1px solid #000;" width="100%" border="0" cellspacing="0" cellpadding="5">
<tr>
<td style="border-right:1px solid #000;" width="200" bgcolor="#B5B5B5">Характеристика</td>
<td bgcolor="#B5B5B5">Значение</td>
</tr>
<tr>
<td style="border-right:1px solid #000;border-top:1px solid #000;" bgcolor="#D2D0D1">Сила</td>
<td style="border-top:1px solid #000;" bgcolor="#D2D0D1"><input onKeyUp="test_free();"
onKeyDown="test_free();" id="s1" name="s1"
type="text" value="" class="textnew"
style="width:44px;"></td>
</tr>
<tr>
<td style="border-right:1px solid #000;border-top:1px solid #000;" bgcolor="#D2D0D1">Ловкость</td>
<td style="border-top:1px solid #000;" bgcolor="#D2D0D1"><input onKeyUp="test_free();"
onKeyDown="test_free();" id="s2" name="s2"
type="text" value="" class="textnew"
style="width:44px;"></td>
</tr>
<tr>
<td style="border-right:1px solid #000;border-top:1px solid #000;" bgcolor="#D2D0D1">Интуиция</td>
<td style="border-top:1px solid #000;" bgcolor="#D2D0D1"><input onKeyUp="test_free();"
onKeyDown="test_free();" id="s3" name="s3"
type="text" value="" class="textnew"
style="width:44px;"></td>
</tr>
<tr>
<td style="border-right:1px solid #000;border-top:1px solid #000;" bgcolor="#D2D0D1">Выносливость</td>
<td style="border-top:1px solid #000;" bgcolor="#D2D0D1"><input onKeyUp="test_free();"
onKeyDown="test_free();" id="s4" name="s4"
type="text" value="" class="textnew"
style="width:44px;"></td>
</tr>
<tr>
<td style="border-right:1px solid #000;border-top:1px solid #000;" bgcolor="#D2D0D1">Интеллект</td>
<td style="border-top:1px solid #000;" bgcolor="#D2D0D1"><input onKeyUp="test_free();"
onKeyDown="test_free();" id="s5" name="s5"
type="text" value="" class="textnew"
style="width:44px;"></td>
</tr>
<tr>
<td style="border-right:1px solid #000;border-top:1px solid #000;" bgcolor="#D2D0D1">Мудрость</td>
<td style="border-top:1px solid #000;" bgcolor="#D2D0D1"><input onKeyUp="test_free();"
onKeyDown="test_free();" id="s6" name="s6"
type="text" value="" class="textnew"
style="width:44px;"></td>
</tr>
<tr>
<td style="border-right:1px solid #000;border-top:1px solid #000;" bgcolor="#D2D0D1">Свободных статов</td>
<td style="border-top:1px solid #000;" bgcolor="#D2D0D1"><input id="free_s" disabled="disabled" type="text"
value="<?= $free_stats ?>" class="textnew"
style="width:44px;"><span
id="result_ch"></span></td>
</tr>
</table>
<br>
<input type="submit" value="Сохранить / Изменить" class="btnnew">
</form>
<script>test_free();</script>
</body>
</html>

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