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 [L]
RewriteRule ^ruins/(.*)/?$ /ruins.php?$1 [L]
RewriteRule ^ruins/?$ /ruins.php [L]
RewriteRule ^news/(.*)/?$ /n/$1 [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

@ -1250,7 +1250,8 @@ JS;
bool $stabil,
bool $test = false,
int $inlog = 0
): mixed {
): mixed
{
/**
* profil = {
@ -1524,7 +1525,12 @@ JS;
$jstext = json_encode($log['text']);
$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']]);
@ -1589,8 +1595,15 @@ JS;
$jstext = json_encode($log['text']);
$jsvars = json_encode($log['vars']);
//$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;
$js = "add_mlog({$log['id']},0,$jstext,{$log['id_hod']},0,0,$jsvars)" . $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']]);
@ -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
{
$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
{
global $u, $priem;
@ -2413,6 +2413,8 @@ JS;
Db::sql('delete from battle_act where id = ?', [$id]);
}
//Используем приемы
/** Осторожно! Подключаются файлы!!!
* @param array $pl
* @param $u1
@ -2427,7 +2429,8 @@ JS;
int $t = 1,
int|array $u2 = 0,
string $rznm = 'Очиститься Кровью'
): void {
): void
{
global $u, $priem;
if (!isset($pl['priem']['id']) || isset($this->del_val['eff'][$pl['priem']['id']])) {
return;
@ -2484,8 +2487,6 @@ JS;
$this->stats[$this->uids[$pl['uid']]] = $u->getStats($pl['uid'], 0, 0, false, false, true);
}
//Повторная проверка приемов
/**
* Расчет количества блоков и противников?
* @param $uid
@ -2564,7 +2565,7 @@ JS;
}
}
//Проверка действия приема
//Повторная проверка приемов
/**
* Магия предметов?
@ -2597,7 +2598,7 @@ JS;
}
}
//Проверка урона приемов
//Проверка действия приема
private function newRazmen($id): array
{
@ -2618,6 +2619,8 @@ JS;
return $at;
}
//Проверка урона приемов
private function usersTestAtack($id, $uid1, $uid2): array
{
$r = [];
@ -2681,8 +2684,6 @@ JS;
return $r;
}
//Наносим удар между игроками
public function priemsRazmen(array|int $id, array|string $at): void
{
if ($at == 'fast') {
@ -2734,6 +2735,8 @@ JS;
}
}
//Наносим удар между игроками
/** Осторожно! Подключаются файлы!!!
* @param $id
* @param $at
@ -2955,10 +2958,6 @@ JS;
return $at;
}
//Расчет типа удара от оружия
//Расчет урона от оружия
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; //проверка на туманный образ
@ -3059,6 +3058,8 @@ JS;
return $yr2;
}
//Расчет типа удара от оружия
//Расчет урона от оружия
/**
@ -3226,8 +3227,7 @@ JS;
return $at;
}
//Расчет защиты
//Расчет урона от оружия
public function yhod_user($uid1, $uid2, $type)
{
@ -3288,7 +3288,8 @@ JS;
return $r;
}
//Расчет защиты (магия)
//Расчет защиты
/**
* Добавляем опыт \ нанесенный урон.
@ -3447,6 +3448,8 @@ JS;
}
}
//Расчет защиты (магия)
private function clearCache($uid): void
{
if ($uid <= 0 || isset($this->uclearc[$uid])) {
@ -3871,7 +3874,6 @@ JS;
return '{' . $a . 'x' . $id . 'x' . $rnd . '}';
}
/**
* Свиток спасения.
*
@ -3998,7 +4000,8 @@ JS;
$hodID,
$tm1 = 0,
$tm2 = 0
): void {
): void
{
$time = time();
if ($tm1 == 0) {
$tm1 = isset($this->atacks[$id]) ? $this->atacks[$id]['time'] : $time;
@ -4032,8 +4035,6 @@ JS;
Log::add($mas);
}
//Расчет МФ
/**
* Возращаем зоны блока?
* @param $uid1
@ -4050,6 +4051,8 @@ JS;
}
}
//Расчет МФ
private function saveStats($uid): void
{
Stats::saveBattleStats($this->stats[$this->uids[$uid]], $uid);
@ -4120,8 +4123,6 @@ JS;
return $result ?: [];
}
//Действия бота (атака)
/**
* Смерть от пропуска ходов. Включается в конфиге.
* @param int $id
@ -4154,7 +4155,7 @@ JS;
}
}
//Проверяем удары, приемы, свитки, зверей
//Действия бота (атака)
private function addNewAtack(User $u): void
{
@ -4240,7 +4241,7 @@ JS;
}
//Действия бота
//Проверяем удары, приемы, свитки, зверей
private function botAct($uid): bool
{
@ -4257,6 +4258,19 @@ JS;
return $r;
}
//Действия бота
/**
* Массово встречается в подключаемых файлах приёмов.
* @param array $arr
* @return void
* @deprecated
*/
public function add_log(array $arr): void
{
Log::add($arr);
}
/**
* Запись выбранных ударов и блоков в массив $this->uAtc.
* Технически это сеттер.

View File

@ -10,6 +10,7 @@ use Core\Config;
use Core\Db;
use Delo;
use ItemModel;
use Model\ActionModel;
use User;
use User\Clan;
use User\Effects;
@ -255,8 +256,7 @@ class Finish
mysql_query(
'INSERT INTO `dungeon_items` (`dn`,`item_id`,`time`,`x`,`y`) VALUES (
"' . $this->battle->users[$i]['dnow'] . '","' . $plik['item_id'] . '","' . (time(
) - 600) . '","' . $this->battle->users[$i]['x'] . '","' . $this->battle->users[$i]['y'] . '"
"' . $this->battle->users[$i]['dnow'] . '","' . $plik['item_id'] . '","' . (time() - 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'
);
mysql_query(
'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'
'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'
);
mysql_query('DELETE FROM `eff_users` WHERE `uid` = "' . $this->battle->users[$i]['id'] . '" LIMIT 100');
}
@ -687,8 +686,7 @@ class Finish
}
}
mysql_query(
'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" '
'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" '
);
} else {
//выкидываем всех игроков в клетку RESTART
@ -722,7 +720,7 @@ class Finish
$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;
}
@ -911,11 +909,8 @@ class Finish
$this->battle->users[$i]['battle_exp'] = floor($this->battle->users[$i]['battle_exp'] / 2);
}
if ($this->battle->users[$i]['animal'] > 0) {
$ulan = $u->testAction(
'`uid` = "' . $this->battle->users[$i]['id'] . '" AND `vars` = "animal_use' . $this->battle->i->id . '" LIMIT 1',
1
);
if (isset($ulan['id']) && $this->battle->users[$i]['team'] == $this->battle->i->getTeamwin() && $this->battle->users[$i]['level'] > $ulan['vals']) {
$ulan = ActionModel::getOne(["uid = {$this->battle->users[$i]['id']}", "vars = animal_use{$this->battle->i->id}"], 'vals');
if ($ulan['id'] && $this->battle->users[$i]['team'] == $this->battle->i->getTeamwin() && $this->battle->users[$i]['level'] > $ulan) {
$a004 = mysql_fetch_array(
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'
@ -1032,13 +1027,13 @@ class Finish
];
$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;
}
} 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;
}
@ -1290,17 +1285,14 @@ class Finish
}
if ($this->battle->users[$i]['battle_yron'] > 0) {
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(
'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"," ","","")'
'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"," ","","")'
);
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);
if ($ritem == 555) {
@ -1361,8 +1353,7 @@ class Finish
'UPDATE `rep` SET `rep3` = `rep3` + "' . $rzbvo . '" WHERE `id` = "' . $this->battle->users[$i]['id'] . '" LIMIT 1'
);
mysql_query(
'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"," ","","")'
'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"," ","","")'
);
}
@ -1514,17 +1505,19 @@ class Finish
}
private function addItemToItemsLocal(int $itemId, int $uid, string $data = ''): void
/**
* Сохраняем лог в архив
* @return void
*/
private function saveLogs(): void
{
Db::sql(
"insert into items_local (room, time, item_id, data, tr_login, colvo) values (?,unix_timestamp(),?,?,?,1)",
[
$this->battle->users[$this->battle->uids[$uid]]['room'],
$itemId,
$data,
$this->battle->users[$this->battle->uids[$uid]]['login'],
]
'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]
);
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
@ -1583,161 +1576,55 @@ class Finish
$this->addGlobalItemItm($itm, $uid, $cmsg, $chat);
}
/**
* Сохраняем лог в архив
* @return void
*/
private function saveLogs(): void
private function addGlobalItemsDropsOnMainStreet(int $bid, int $uid): 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 <= ?',
[$this->battle->i->id, $this->battle->hodID]
);
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]);
//Выпадение дропа на ЦП
$mf = Db::getValue('select floor(count(id) / 20) as c from users where online > unix_timestamp() - 120');
$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');
}
private function dieInDungeon(int $dnr, int $i, User $u, ChatMessage $cmsg, Chat $chat): void
{
if ($dnr != 1) {
return;
}
$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);
private function addItemToItemsLocal(int $itemId, int $uid, string $data = ''): void
{
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,?)",
"insert into items_local (room, time, item_id, data, tr_login, colvo) values (?,unix_timestamp(),?,?,?,1)",
[
$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}",
$this->battle->users[$this->battle->uids[$uid]]['room'],
$itemId,
$data,
$this->battle->users[$this->battle->uids[$uid]]['login'],
]
);
}
//телепортируем в рестарт (координата 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
{
if (empty($ico)) {
@ -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
{
//Выпадение дропа на ЦП
$mf = Db::getValue('select floor(count(id) / 20) as c from users where online > unix_timestamp() - 120');
$mf = mt_rand(1, max($mf, 1));
if ($bid == 1008) {
//Старый Новый Год
for ($i = 0; $i < $mf; $i++) {
if (mt_rand(0, 1) === 1) {
continue;
if ($dnr != 1) {
return;
}
$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;
}
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');
$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'
);
}
}
} 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');
}
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

View File

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

View File

@ -2,14 +2,16 @@
namespace Core;
use DateTime;
class Config
{
const EKR_RUB_PRICE = 30;
const KR_TO_EKR_EXCHANGE = 500;
const EKR_TO_KR_EXCHANGE = 200;
private const HOSTNAME = 'new-combats.tech';
public const GAMENAME = 'Новый Бойцовский Клуб';
private static self $instance;
private static string $hostname = 'new-combats.tech';
private static string $gamename = 'Бойцовский Клуб';
private function __construct()
{
@ -27,75 +29,51 @@ class Config
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)
{
$c['ver'] = '1.8.3.7';
$c['ver'] = '0.8.2 alpha';
/* Конфигурации игры */
$c['name'] = 'Новый «' . self::$gamename . '»';
$c['title'] = $c['name'] . ' - Бесплатная,браузерная онлайн игра'; //Название игры
$c['title2'] = ' - Бесплатная, онлайн игра посвященная сражениям и магии!';
$c['title3'] = $c['name'];
$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['title'] = self::GAMENAME . ' - Бесплатная, браузерная онлайн игра'; //Название игры
$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['desc'] = self::GAMENAME . ' это бесплатная увлекательная браузерная онлайн игра 2004-2009г, в которой сконцентрировано все самое лучшее от современных онлайн игр. В этой браузерной игре заложены самые интересные традиции всем известной онлайн игры под названием «' . self::GAMENAME . ' 2004-2009», которая, кстати, стала первооткрывателем всех браузерных игр.'; //Описание META
$c['footer'] = self::GAMENAME . ' © 2013-' . date('Y');
//Сервера
$c['host'] = self::$hostname;
$c['host'] = self::HOSTNAME;
$c['forum'] = self::subdomain('forum');
$c['img'] = 'img.' . self::$hostname;
$c['thiscity'] = 'capitalcity';
$c['capitalcity'] = self::$hostname;
$c['abandonedplain'] = self::$hostname;
$c['https'] = DIRECTORY_SEPARATOR . DIRECTORY_SEPARATOR . self::$hostname;
$c['img'] = 'img.' . self::HOSTNAME;
$c['https'] = DIRECTORY_SEPARATOR . DIRECTORY_SEPARATOR . self::HOSTNAME;
$c['img2'] = self::subdomain('img');
$c['lib'] = self::subdomain('lib');
$c['exit'] = "<script>window.location.replace('{$c['https']}');</script>";
$c['support'] = 'support@' . $c['host'];
//Валюта
$c['curency_name'] = 'RUB';
$c['curency_value'] = 30;
$c['support'] = 'support@' . self::HOSTNAME;
//Бот клон
$c['bot_level'] = 0; // до какого лвл бот (включительно)
$c['propsk_die'] = 0; //Смерть при пропуске ходов, 0 - выкл. , >= 1 - количество пропусков до смерти при нападении
//Скупка
$c['exp'] = 0; //бонус опыта
$c['shop_type1'] = 100; //в гос НЕ ТРОГАТЬ
//Скупка
$c['shop_type2'] = 90; //в березку НЕ ТРОГАТЬ
$c['shop_all'] = 0; //Скупка на все! , 0 - сделать для отключения скупки.
$c['shop_all_type1'] = 100; //Скупка только с госе! , 0 - сделать для отключения скупки.
$c['shop_all_type2'] = 100; //Скупка только с березки! , 0 - сделать для отключения скупки.
//
$c['nosanich'] = true; //Странички Саныча не выпадают - true , выпадают - false
$c['zuby'] = false; //зубы
$c['limitedexp'] = false; //лимит опыта
$c['expstop'] = 2999999; //9; //Опыт на котором останавливаемся 11 149999999
$c['expstopu'] = 2999999; //Опыт на котором останавливаемся
$c['noobgade'] = false; //нуб квест (пещера)
$c['level_ransfer'] = 8; //С какого уровня разрешены передачи
$c['level_transfer'] = 8; //С какого уровня разрешены передачи
$c['noitembuy'] = false; //Не требует ресурсы для покупки
$c['effz'] = 0; //Скольким секундам равен заряд
$c['money_haot'] = true; //кр за хаоты
$c['crtoecr'] = 500; //Курс обмена кр на екр (если 0, то выключено)
$c['ecrtocr'] = 200; //Курс обмена екр на кр
$c['bonuslevel'] = true; //Бонус уровня
$c['bonussocial'] = false; //Бонус социальный
$c['w'] = date('w');
$c['m'] = date('m');
$c['counters'] = '';
$c['counters_noFrm'] = '';
$c['securetime'] = 0; //Время последнего возможного взлома персов (подбор пароля по базам данных других игр)
$c['copyright'] = 'Copyright © ' . date('Y') . ' « Новый Бойцовский Клуб »';
$c['db_host'] = 'db';
$c['db_user'] = 'prod1';
$c['db_name'] = 'game_production';
@ -110,4 +88,9 @@ class Config
}
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 Helper\Conversion;
use Model\ActionModel;
use User\ItemsModel;
use User\Stats;
@ -413,7 +414,7 @@ class Dungeon
if ($usr_real['clan'] > 0) {
$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 {
$mereal = '<i>Невидимка</i>[??]';
}
@ -425,7 +426,7 @@ class Dungeon
if ($me_real['clan'] > 0) {
$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 {
$mereal = '<i>Невидимка</i>[??]';
}
@ -540,7 +541,7 @@ class Dungeon
if ($usr_real['clan'] > 0) {
$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 {
$mereal = '<i>Невидимка</i>[??]';
}
@ -552,7 +553,7 @@ class Dungeon
if ($me_real['clan'] > 0) {
$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 {
$mereal = '<i>Невидимка</i>[??]';
}
@ -876,7 +877,7 @@ class Dungeon
$i = count($a);
}
} elseif ($s[0] == 'repl_ptp') {
require_once('dnaction/_dungeon_replace.php');
require_once 'dnaction/_dungeon_replace.php';
die();
} elseif ($s[0] == 'add_eff') {
//Кастуем эффект
@ -884,16 +885,10 @@ class Dungeon
$j = 0;
while ($j < count($t)) {
$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]) . '',
2
); //кол-во прошлых попыток
$ch = $ch[0];
$ch2 = $u->testAction(
' `vars` = "add_eff_' . $this->info['id'] . '_' . $obj['id'] . '" LIMIT ' . (1 + (int)$itm[4]) . '',
2
); //кол-во прошлых попыток (все юзеры)
$ch2 = $ch2[0];
$ch = ActionModel::testCount(["uid = {$this->userinfo['id']}", "vars = add_eff_{$this->info['id']}_{$obj['id']}"], 1 + (int)$itm[2]); //кол-во прошлых попыток
$ch2 = ActionModel::testCount(["vars = add_eff_{$this->info['id']}_{$obj['id']}"], 1 + (int)$itm[4]); //кол-во прошлых попыток (все юзеры)
if (($ch2 < $itm[4] || $itm[4] == 0) && $ch < $itm[2]) {
if ($itm[1] * 100 >= rand(0, 10000)) {
//удачно
@ -936,11 +931,8 @@ class Dungeon
$t = explode(',', $s[1]);
while ($j < count($t)) {
$itm = explode('=', $t[$j]);
$ch = $u->testAction(
'`vars` = "bafit_' . $this->info['id'] . '_' . $obj['id'] . '" LIMIT ' . (1 + (int)$itm[2]) . '',
2
); //кол-во прошлых попыток
$ch = $ch[0];
$ch = ActionModel::testCount(["vars = bafit_{$this->info['id']}_{$obj['id']}"], 1 + (int)$itm[2]); //кол-во прошлых попыток
if ($ch < $itm[3]) {
if ($itm[2] * 1000 >= rand(1, 100000)) {
if ($itm[0] == 'hpNow') {
@ -1026,11 +1018,8 @@ class Dungeon
$t = explode(',', $s[1]);
while ($j < count($t)) {
$itm = explode('=', $t[$j]);
$ch = $u->testAction(
'`uid` = "' . $this->userinfo['id'] . '" AND `vars` = "takeit_' . $this->info['id'] . '_' . $obj['id'] . '" LIMIT ' . (1 + (int)$itm[2]) . '',
2
); //кол-во прошлых попыток
$ch = $ch[0];
$ch = ActionModel::testCount(["uid = {$this->userinfo['id']}", "vars = takeit_{$this->info['id']}_{$obj['id']}"], 1 + (int)$itm[2]); //кол-во прошлых попыток
if ($ch >= $itm[2]) {
//закончились попытки
$r = 'ничего не произошло...<br>';
@ -1050,9 +1039,8 @@ class Dungeon
);
if (isset($it['id'])) {
$r .= 'Вы обнаружили предмет &quot;<b>' . $it['name'] . '</b>&quot;.<br>';
ItemsModel::addItem(
['uid' => $this->userinfo['id'], 'iid' => $it['id'], 'x' => $this->userinfo['x'], 'y' => $this->userinfo['y'], 'del' => (int)$itm[4]]
);
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 {
//неудачная попытка
@ -1067,16 +1055,11 @@ class Dungeon
}
} elseif ($s[0] == 'itm1') {
//Добавляем предмет , только 1 предмет из всех и все юзеры могут тоже
$nj = 0;
$t = explode(',', $s[1]);
$j = rand(0, count($t));
if ($nj == 0) {
$itm = explode('=', $t[$j]);
$ch = $u->testAction(
'`uid` = "' . $this->userinfo['id'] . '" AND `vars` = "takeit_' . $this->info['id'] . '_' . $obj['id'] . '" LIMIT ' . (1 + (int)$itm[2]) . '',
2
); //кол-во прошлых попыток
$ch = $ch[0];
$ch = ActionModel::testCount(["uid = {$this->userinfo['id']}", "vars = takeit_{$this->info['id']}_{$obj['id']}"], 1 + (int)$itm[2]); //кол-во прошлых попыток
if ($ch >= $itm[2]) {
//закончились попытки
$r .= 'Странно, но ничего не произошло... <br>';
@ -1099,10 +1082,8 @@ class Dungeon
$u->addAction(
time(), 'takeit_' . $this->info['id'] . '_' . $obj['id'], $this->userinfo['city']
);
ItemsModel::addItem(
['uid' => $this->userinfo['id'], 'iid' => $it['id'], 'x' => $this->userinfo['x'], 'y' => $this->userinfo['y'], 'del' => (int)$itm[4]]
);
$nj++;
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 {
//неудачная попытка
@ -1112,19 +1093,15 @@ class Dungeon
$r .= 'Вы ничего не нашли ... <br>';
}
}
}
} elseif ($s[0] == 'itm2') {
//Добавляем предмет , только 1 предмет из всех и только 1 юзер может поднять
$nj = 0;
$t = explode(',', $s[1]);
$j = rand(0, count($t) - 1);
if ($nj == 0) {
$itm = explode('=', $t[$j]);
$ch = $u->testAction(
'`vars` = "takeit_' . $this->info['id'] . '_' . $obj['id'] . '" LIMIT ' . (1 + (int)$itm[2]) . '',
2
); //кол-во прошлых попыток
$ch = $ch[0];
$ch = ActionModel::testCount(["vars = takeit_{$this->info['id']}_{$obj['id']}"], 1 + (int)$itm[2]); //кол-во прошлых попыток
if ($ch >= $itm[2]) {
//закончились попытки
$r .= 'Ничего не произошло... <br>';
@ -1147,10 +1124,8 @@ class Dungeon
$u->addAction(
time(), 'takeit_' . $this->info['id'] . '_' . $obj['id'], $this->userinfo['city']
);
ItemsModel::addItem(
['uid' => $this->userinfo['id'], 'iid' => $it['id'], 'x' => $this->userinfo['x'], 'y' => $this->userinfo['y'], 'del' => (int)$itm[4]]
);
$nj++;
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 {
//неудачная попытка
@ -1160,13 +1135,12 @@ class Dungeon
$r .= 'Вы ничего не нашли ... <br>';
}
}
}
} elseif ($s[0] == 'fileact') {
require('dnaction/' . $s[1] . '.php');
}
$i++;
}
$r = rtrim($r, '\<br\>');
$r = rtrim($r, '\<br>');
if ($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)) {
$cn = mysql_fetch_assoc(
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 {
$u->error = 'Персонаж "' . $jl . '" не найден в этом городе (' . $u->info['city'] . ')';
}
} elseif (isset($st['useOnItem']) && $st['useOnItem'] == 1) {
//используем на предмет
} else {
//на себя
$goodUse = 1;
@ -1502,170 +1499,7 @@ class Magic
$u->error = 'Хаосники не могут использовать данное заклятие';
}
if ($itm['magic_inci'] == 'sanich2') {
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') {
if ($itm['magic_inci'] == 'lech') {
$goodUse = 0;
if ($u->info['level'] >= 2 and $u->info['level'] <= 13) {
$travm = mysql_fetch_array(
@ -1698,7 +1532,6 @@ class Magic
if ($goodUse == 1) {
$upd1 = 1;
$upd2 = 1;
//добавляем эффект персонажу

View File

@ -1,14 +1,16 @@
<?php
use Core\Db;
use Helper\Conversion;
use Model\ActionModel;
use User\ItemsModel;
if (!defined('GAME')) {
die();
}
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'));
if ($u->info['align'] != 2) {
$test = Db::getRow("select id, time from actions where uid = ? and vars = 'podvig' and time > unix_timestamp() limit 1", [$u->info['id']]);
if (isset($test['id'])) {
$u->error = 'Задержка не прошла, еще ' . Conversion::secondsToTimeout($test['time'] - time());
} else {
@ -22,17 +24,16 @@ if ($itm['magic_inci'] == 'podvig') {
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'])) {
$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] . ')';
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');
$u->error = "Успешно использован свиток Право на Подвиг ($dngcity[1])";
Db::sql('update actions set time = unix_timestamp() - 86401 where id = ?', [$hgo1]);
ItemsModel::addIznos($itm['id']);
}
}
} else {
$u->error = 'Хаосники не могут пользоваться этим свитком!';
}
}

View File

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

View File

@ -3,10 +3,13 @@
namespace Model;
use Core\Db;
use Exception;
use Helper\QueryBuilder;
use User\UserIp;
class ActionModel
{
private const TABLE_NAME = 'actions';
private 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)
@ -54,6 +99,11 @@ class ActionModel
public function getLastByValsAndTime(string $vals, int $time)
{
$filter = [
"uid = $this->uid",
"vals = '$vals'",
"time > unix_timestamp() - $time",
];
return Db::getRow(
'select * from actions where uid = ? and vals = ? and time > unix_timestamp() - ? order by time desc limit 1',
[$this->uid, $vals, $time]
@ -65,28 +115,14 @@ class ActionModel
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
{
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]);
return self::get($filter);
}
public function getFinishedDailyQuestTasks(int $timeout): array

View File

@ -5,6 +5,7 @@ use Core\Db;
use DarksLight2\Training\TrainingManager;
use Helper\Conversion;
use Helper\Math;
use Model\ActionModel;
use Model\Constant\Stat;
use User\Effects;
@ -786,7 +787,8 @@ class Priems
$krituet = true,
$heal = 0,
$namenew = null
) {
)
{
$trawm_off = false;
global $btl;
if ($namenew != null) {
@ -965,8 +967,7 @@ class Priems
);
//заносим в лог боя
$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'] . '';
$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'] . '';
$mas1 = [
'time' => time(),
'battle' => $btl->i->id,
@ -1088,28 +1089,43 @@ class Priems
return $rr;
}
public function pruse($id)
public function pruse($id): void
{
global $btl;
$u = $this->u; // Для присоедиянемых файлов.
if ($id == 100500 && $this->u->info['animal'] > 0) {
$use_lst = $this->u->testAction(
'`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'
)
);
$this->processAnimal($btl);
} else {
$this->processPriem($id, $btl);
}
}
private function processAnimal(Battle $btl): void
{
if ($this->u->stats['hpNow'] < 1) {
echo 'Вы не можете выпустить зверя, вы потеряли все НР';
} elseif (isset($a['id']) && $a['eda'] < 1) {
echo 'Вы не накормили зверя...';
} elseif (isset($a['id'])) {
//Добавляем зверя в бой
$tp = [
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 => 'Светляк',
@ -1118,246 +1134,200 @@ class Priems
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;
$botLogin = $animalTypes[$animal['type']] . ' [' . $animal['level'] . ']';
$botId = Db::getValue('select id from test_bot where login = ?', [$botLogin]);
if (!$botId) {
echo 'Системная ошибка: Неизвестный зверь!';
return;
}
$vLog = 'time1=' . time() . '||s1=' . $this->u->info['sex'] . '||t1=' . $this->u->info['team'] . '||login1=' . $this->u->info['login'] . '';
$mas1 = [
$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' => $vLog,
'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);
$sex = $this->u->info['sex'] === 1 ? 'a' : '';
$mas1['text'] = "{tm1} {u1} выпустил$sex зверя &quot;<b>" . $a['name'] . '&quot;</b>';
Log::add($mas1);
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']);
}
}
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 'Не удалось выпустить зверя...';
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';
}
} else {
//Бот не найден
echo '<br>Не удалось выпустить зверя - он боится...';
}
} else {
//зверь не найден
echo 'У Вас нет зверя ...';
}
} else {
//зверь уже выпущен
echo 'Вы уже выпускали зверя в этом бою ...';
}
} else {
$p = explode('|', $this->u->info['priems']);
$cup = false;
$priemsOnPlayer = explode('|', $this->u->info['priems']);
$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 ($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($pl['activ']) == 0) {
unset($pl);
if ($this->testActiv($priem['activ']) == 0) {
unset($priem);
}
}
}
if (isset($pl['id'])) {
if (!isset($priem['id'])) {
return;
}
$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
$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]);
`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'
)
);
$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']) && $pl['trUser'] > 0) {
if (!isset($this->ue['id']) && $priem['trUser'] > 0) {
$notr++;
}
if ($pl['team'] == 1) {
if ($priem['team'] == 1) {
//свои
if ($this->u->info['team'] != $this->ue['team']) {
$notr++;
}
} elseif ($pl['team'] == 2) {
} elseif ($priem['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)) {
$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($pl, 1, $this->ue['id']);
$notr += $this->testpriem($priem, 1, $this->ue['id']);
if ($this->ue['id'] > 0) {
$notr += $this->testRazmenOldUser($this->ue['id'], $this->u->info['enemy'], $pl['id']);
$notr += $this->testRazmenOldUser($this->ue['id'], $this->u->info['enemy'], $priem['id']);
}
if ($notr == 0) {
mysql_query(
'UPDATE `stats` SET `last_pr` = "' . $pl['id'] . '" WHERE `id` = "' . $this->u->info['id'] . '" LIMIT 1'
);
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');
mysql_query(
'UPDATE `eff_users` SET `mark` = 1 WHERE `uid` = "' . $this->ue['id'] . '" AND `delete` = 0'
);
$markuids[] = $this->ue['id'];
} 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'
);
$markuids[] = $this->u->info['enemy'];
}
mysql_query(
'UPDATE `eff_users` SET `mark` = 1 WHERE `uid` = "' . $this->u->info['id'] . '" AND `delete` = 0'
);
$markuids[] = $this->u->info['id'];
if (file_exists('../../_incl_data/class/Priem/' . $pl['id'] . '.php')) {
require('../../_incl_data/class/Priem/' . $pl['id'] . '.php');
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' . $pl['id'];
echo 'useSkill' . $priem['id'];
}
if (!isset($cup)) {
$this->uppz($pl, $id);
if ($cup) { // Из подключаемых файлов.
return;
}
$this->uppz($priem, $id);
//Отнимаем тактики
//$this->mintr($pl);
if ($pl['tr_hod'] > 0) {
$this->trhod($pl);
if ($priem['tr_hod'] > 0) {
$this->trhod($priem);
}
if ($pl['id'] != 258) {
if ($pl['cancel_eff'] == '') {
$pl['cancel_eff'] = '258';
if ($priem['id'] != 258) {
if ($priem['cancel_eff'] == '') {
$priem['cancel_eff'] = '258';
} else {
$pl['cancel_eff'] .= ',258';
$priem['cancel_eff'] .= ',258';
}
}
if ($pl['cancel_eff'] != '') {
if ($priem['cancel_eff'] == '') {
return;
}
$i = 0;
$e = explode(',', $pl['cancel_eff']);
$e = explode(',', $priem['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 ($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'] = mysql_fetch_assoc(
mysql_query(
'SELECT * FROM `priems` WHERE `id` = "' . $e[$i] . '" LIMIT 1'
)
);
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++;
}
}
}
}
}
}
}
}
//для папки priems
private function testActiv($id)
{
@ -1368,11 +1338,8 @@ class Priems
$this->u->info['id'] > 0) {
$r = 1;
} else {
$tst = $this->u->testAction(
'`uid` = "' . $this->u->info['id'] . '" AND `time` < ' . time() . ' AND `vars` = "read" AND `vals` = "' . $id . '" LIMIT 1',
1
);
if (isset($tst['id'])) {
$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]);
if ($test) {
$r = 1;
}
}
@ -1428,11 +1395,8 @@ class Priems
if ($pl['xuse'] > 0) {
$xu = $this->u->testAction(
'`vars` = "use_priem_' . $btl->i->id . '_' . $this->u->info['id'] . '" AND `vals` = "' . $pl['id'] . '" LIMIT ' . $pl['xuse'],
2
);
if ($xu[0] >= $pl['xuse']) {
$xu = ActionModel::testCount(["vars = use_priem_{$btl->i->id}_{$this->u->info['id']}", "vals = {$pl['id']}"], $pl['xuse']);
if ($xu >= $pl['xuse']) {
$notr++;
}
}
@ -1614,7 +1578,8 @@ class Priems
$noupdatebtl = 0,
$noplus = 0,
$pname = null
) {
)
{
global $btl;
//$pl = mysql_fetch_assoc(mysql_query('SELECT * FROM `priems` WHERE `id` = ' . (int)$pr));
$pl = Db::getRow('select * from priems where id = ?', [$pr]);
@ -1981,8 +1946,7 @@ class Priems
} else {
//бьем противника с пропуском хода
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(
) . '","1","1","2")'
'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")'
);
}
}
@ -2046,6 +2010,8 @@ class Priems
}
}
//выводим приемы $id - 1 (вне боя), 2 - в бою
/** Одеть приём в слот?
* @param $id
* @return void
@ -2099,28 +2065,15 @@ class Priems
}
}
//выводим приемы $id - 1 (вне боя), 2 - в бою
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)) {
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 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
{
$i = 0;
@ -2243,6 +2196,8 @@ class Priems
return [0 => $lvar, 1 => $pz];
}
//Мощность / подавление / сопротивление и т.д.
/**
* Генерирует html строку для вставки в JS $("#priems").html(" сюда ");
* @return string
@ -2281,11 +2236,11 @@ class Priems
$cl = 'href="javascript:void(0);" onClick="top.priemOnUser(' . $i . ',1,\'' . $pl['name'] . '\',\'' . $oninuser . '\',\'' . $pl['img'] . '\');"';
unset($oninuser);
} else {
$cl = 'href="javascript:void(0);" onClick="usepriem(' . $i . ',1,\'' . $pl['img'] . '\');"';
$cl = 'href="javascript:void(0);" onClick="usepriem(' . $i . ');"';
}
} 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) {
$cl = 'href="javascript:void(0);" onClick="alert(\'Возможно используем?\');"';
}
@ -2323,12 +2278,9 @@ class Priems
$i++;
}
if ($this->u->info['animal'] > 0) {
$use_lst = $this->u->testAction(
'`uid` = "' . $this->u->info['id'] . '" AND `vars` = "animal_use' . $btl->i->id . '" LIMIT 1',
1
);
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>';
$use_lst = (bool)ActionModel::testCount(["uid = {$this->u->info['id']}", "vars = animal_use{$btl->i->id}"]);
if (!$use_lst) {
$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>';
} 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" />';
}
@ -2337,8 +2289,6 @@ class Priems
return str_replace('"', '\\"', $pr);
}
//Мощность / подавление / сопротивление и т.д.
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)
{
global $btl;
//$this->rezadEff($this->u->info['id'],'wis_fire_');
$md = '';
$md2 = '';
$ex = explode('|', $btl->users[$btl->uids[$uid]]['priems']);

View File

@ -2,6 +2,7 @@
use Core\Db;
use Helper\Conversion;
use Model\ActionModel;
use User\ItemsModel;
class Quests
@ -67,16 +68,18 @@ class Quests
}
//Сколько раз можно пройти квест
if (isset($d['tr_raz'])) {
$qlst = $u->testAction('SELECT `id` FROM `actions` WHERE `uid` = "' . $u->info['id'] . '" AND `vars` = "start_quest' . $pl['id'] . '" LIMIT ' . $d['tr_raz'], 2);
if ($d['tr_raz'] > 0 && $d['tr_raz'] - $qlst[0] <= 0) {
$qlst = ActionModel::testCount(["uid = {$u->info['id']}", "vars = start_quest{$pl['id']}"], $d['tr_raz']);
//$qlst = $u->testAction('SELECT `id` FROM `actions` WHERE `uid` = "' . $u->info['id'] . '" AND `vars` = "start_quest' . $pl['id'] . '" LIMIT ' . $d['tr_raz'], 2);
if ($d['tr_raz'] > 0 && $d['tr_raz'] - $qlst <= 0) {
$r = 0;
}
unset($qlst);
}
//Попыток пройти квест
if (isset($d['tr_raz2'])) {
$qlst = $u->testAction('SELECT `id` FROM `actions` WHERE `uid` = "' . $u->info['id'] . '" AND `vars` = "start_quest' . $pl['id'] . '" AND `vals` != "go" AND `vals` != "win" LIMIT ' . $d['tr_raz2'], 2);
if ($d['tr_raz2'] - $qlst[0] <= 0) {
$qlst = ActionModel::testCount(["uid = {$u->info['id']}", "vars = start_quest{$pl['id']}", "vals != go", "vals != win"], $d['tr_raz2']);
//$qlst = $u->testAction('SELECT `id` FROM `actions` WHERE `uid` = "' . $u->info['id'] . '" AND `vars` = "start_quest' . $pl['id'] . '" AND `vals` != "go" AND `vals` != "win" LIMIT ' . $d['tr_raz2'], 2);
if ($d['tr_raz2'] - $qlst <= 0) {
$r = 0;
}
unset($qlst);
@ -212,8 +215,7 @@ class Quests
$bot2 = mysql_fetch_array(mysql_query('SELECT * FROM `test_bot` WHERE `id` = "' . $ex2[0] . '" LIMIT 1'));
if (isset($bot2['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 = 0 + $x2[0];
$x2 = ActionModel::testCount(["uid = {$u->info['id']}", "vars = win_bot_$ex2[0]", "time > {$qst['time']}"], $ex2[1]);
}
if (isset($d['all_kill']) && $d['all_kill'] > 0) {
$r = $d['all_kill'];
@ -393,15 +395,17 @@ class Quests
if ($d['tr_raz'] == -1) {
$t .= 'Сколько еще раз можно выполнить задание: <b><small>бесконечно</small></b><br>';
} else {
$qlst = $u->testAction('SELECT `id` FROM `actions` WHERE `uid` = "' . $u->info['id'] . '" AND `vars` = "start_quest' . $pl['id'] . '" LIMIT ' . $d['tr_raz'], 2);
$t .= 'Сколько раз можно выполнить задание: ' . ($d['tr_raz'] - $qlst[0]) . '<br>';
$qlst = ActionModel::testCount(["uid = {$u->info['id']}", "vars = start_quest{$pl['id']}"], $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);
$t .= 'Сколько раз можно выполнить задание: ' . ($d['tr_raz'] - $qlst) . '<br>';
}
unset($qlst);
}
//Попыток пройти квест
if (isset($d['tr_raz2'])) {
$qlst = $u->testAction('SELECT `id` FROM `actions` WHERE `uid` = "' . $u->info['id'] . '" AND `vars` = "start_quest' . $pl['id'] . '" AND `vals` != "go" AND `vals` != "win" LIMIT ' . $d['tr_raz2'], 2);
$t .= 'Осталось попыток выполнить задание: ' . ($d['tr_raz2'] - $qlst[0]) . '<br>';
$qlst = ActionModel::testCount(["uid = {$u->info['id']}", "vars = start_quest{$pl['id']}", "vals != go", "vals != win"], $d['tr_raz2']);
//$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);
}
@ -479,28 +483,32 @@ class Quests
//Убить ботов
if (isset($d['kill_bot'])) {
$ex = explode(',', $d['kill_bot']);
if (isset($d['all_kill']) && (int)$d['all_kill'] > 0) {
$x = '';
$ex = explode(',', $d['kill_bot']);
$i = 0; # Количество циклов для каждого типа бота.
$q = '';
$botid = 0;
$sqlWhere = [];
$sqlParams = [];
while ($i < count($ex)) {
$ex2 = explode('=', $ex[$i]);
if ($q != '') {
$q .= ' OR ';
}
$q .= ' (`uid` = "' . $u->info['id'] . '" AND `time` > ' . $qst['time'] . ' AND `vars` = "win_bot_' . $ex2[0] . '" )';
$botid = $ex2[0];
$sqlWhere[] = "(uid = :uid$i and time > :time$i and vars = :vars$i)";
$sqlParams["uid$i"] = $u->info['id'];
$sqlParams["time$i"] = $qst['time'];
$sqlParams["vars$i"] = "win_bot_$ex2[0]";
$i++;
}
$x2 = $u->testAction($q, 2);
$x2 = $x2[0];
$sqlWhere = implode(' or ', $sqlWhere);
$x2 = ActionModel::testCountCustom($sqlWhere, $sqlParams);
if ($d['all_kill'] < $x2) {
$x2 = $d['all_kill'];
}
$bot2 = mysql_fetch_array(mysql_query('SELECT * FROM `test_bot` WHERE `id` = "' . $ex2[0] . '" LIMIT 1'));
if (isset($bot2['id'])) {
$x .= '&nbsp; &nbsp; &bull; <b>' . $bot2['login'] . '</b> [' . $x2 . '/' . $d['all_kill'] . ']<br>';
$botlogin = Db::getValue('select login from test_bot where id = ?', [$botid]);
if (isset($botlogin)) {
$x .= '&nbsp; &nbsp; &bull; <b>' . $botlogin . '</b> [' . $x2 . '/' . $d['all_kill'] . ']<br>';
} else {
$x .= '&nbsp; &nbsp; &bull; <b>' . $pl['name'] . '</b> [' . $x2 . '/' . $d['all_kill'] . ']<br>';
}
@ -509,13 +517,12 @@ class Quests
while ($i < count($ex)) {
$x2 = 0;
$ex2 = explode('=', $ex[$i]);
$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 = ?', [$ex2[0]]);
if (isset($botlogin)) {
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 = 0 + $x2[0];
$x2 = ActionModel::testCount(["uid = {$u->info['id']}", "vars = win_bot_$ex2[0]", "time > {$qst['time']}"], $ex2[1]);
}
$x .= '&nbsp; &nbsp; &bull; <b>' . $bot2['login'] . '</b> [' . $x2 . '/' . $ex2[1] . ']<br>';
$x .= '&nbsp; &nbsp; &bull; <b>' . $botlogin . '</b> [' . $x2 . '/' . $ex2[1] . ']<br>';
}
$i++;
}
@ -525,7 +532,7 @@ class Quests
$x = trim($x, ', ');
$t .= 'Убить ботов: <br>' . $x;
}
unset($x, $ex, $x2, $bot2, $ex2);
unset($x, $ex, $x2, $ex2, $botlogin);
}
//Собрать ресурсы
@ -585,7 +592,10 @@ class Quests
public function testquest(): void
{
global $u;
if ($u->info['battle'] == 0 && $u->room['name'] != 'Башня Смерти') {
if ($u->info['battle'] != 0 || $u->room['name'] === 'Башня Смерти') {
return;
}
$sp = mysql_query('SELECT * FROM `actions` WHERE `uid` = "' . $u->info['id'] . '" AND `vars` LIKE "%start_quest%" AND `vals` = "go" LIMIT 100');
while ($pl2 = mysql_fetch_array($sp)) {
@ -614,27 +624,30 @@ class Quests
if (isset($d['kill_bot'])) {
$ex = explode(',', $d['kill_bot']);
$ii = 0; // Количество циклов для каждого типа бота.
$q = '';
$smth2 = 0; // неизвестное.
$sqlFilter = [];
$sqlParams = [];
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] . '" )';
$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 = $u->testAction($q . ' LIMIT ' . $d['all_kill'], 2);
if ($x2[0] < $d['all_kill']) {
$x2 = ActionModel::testCountCustom($sqlFilter, $sqlParams, $d['all_kill']);
if ($x2 < $d['all_kill']) {
$g = 0;
}
} else {
$x2 = $u->testAction($q . ' LIMIT ' . $ex2[1], 2);
if (!isset($d['all_kill']) && $x2[0] < $ex2[1]) {
$x2 = ActionModel::testCountCustom($sqlFilter, $sqlParams, $smth2);
if (!isset($d['all_kill']) && $x2 < $smth2) {
$g = 0;
}
}
unset($x, $ex, $x2, $x3, $bot2, $ex2);
}
//Собрать ресурсы
@ -648,9 +661,17 @@ class Quests
if ($g == 1) {
$pl['time'] = $pl2['time'];
$this->endq($pl['id'], 'win');
$this->winQuest($pl);
echo $pl['name'];
$status = $this->winQuest($u->info['id'], $pl, $pl2['time']);
//Отправляем сообщение в чат
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,11 +709,14 @@ class Quests
# Функция отвечает за ПРОВЕРКУ на ЗАВЕРШЕНИЕ квестов для ПОДЗЕМОК
private function winQuest($pl)
private function winQuest($uid, $pl, $time): string
{
global $u, $c, $magic;
global $magic;
if (!isset($pl['id'])) {
return '';
}
if (isset($pl['id'])) {
$d = $this->expl($pl['act_date']);
$d = array_merge($d, $this->expl($pl['win_date']));
@ -710,8 +734,7 @@ class Quests
$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);
$x2 = ActionModel::testCount(["uid = $uid", "vars = win_bot_$ex[2]", "time > $time"], $ex2[1]);
ItemsModel::deleteItemsById($ex2[0], $ex2[1]);
$i++;
}
@ -722,8 +745,7 @@ class Quests
$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);
$x2 = ActionModel::testCount(["uid = $uid", "vars = win_bot_$ex[2]", "time > $time"], $ex2[1]);
ItemsModel::deleteItemsById($ex2[0], $ex2[1]);
$i++;
}
@ -739,9 +761,8 @@ class Quests
$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);
$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++;
@ -750,7 +771,7 @@ class Quests
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'));
$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;
@ -763,7 +784,7 @@ class Quests
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 = 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;
@ -776,7 +797,7 @@ class Quests
$j = explode('=', $d['add_eff']);
while ($i < count($j)) {
if ($j[$i] > 0) {
$magic->addEffect($u->info['id'], $j[$i], 1);
$magic->addEffect($uid, $j[$i], 1);
}
$i++;
}
@ -784,7 +805,7 @@ class Quests
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');
mysql_query('UPDATE `users` SET `money` = `money`+' . $d['add_cr'] . ' WHERE `id` = "' . $uid . '" LIMIT 1');
}
if ($t != '') {
@ -794,19 +815,11 @@ class Quests
} 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);
}
return "<small>$r</small>";
}
public function questCheckEnd($pl)
public function questCheckEnd($pl): int
{
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'));
@ -836,29 +849,31 @@ class Quests
if (isset($d['kill_bot'])) {
$ex = explode(',', $d['kill_bot']);
$i = 0; # Количество циклов для каждого типа бота.
$q = '';
$smth1 = 0; // неизвестно что.
$sqlFilter = [];
$sqlParams = [];
while ($i < count($ex)) {
$ex2 = explode('=', $ex[$i]);
if ($q != '') {
$q .= ' OR ';
}
$q .= ' (`uid` = "' . $u->info['id'] . '" AND `time` > ' . $quest['time'] . ' AND `vars` = "win_bot_' . $ex2[0] . '" )';
$smth1 = $ex2[1];
$sqlFilter[] = "(uid = :uid$i and time > :time$i and vars = :vars$i)";
$sqlParams[":uid$i"] = $u->info['id'];
$sqlParams[":time$i"] = $quest['time'];
$sqlParams[":vars$i"] = "win_bot_$ex2[0]";
$i++;
}
$sqlFilter = implode(' or ', $sqlFilter);
if (isset($d['all_kill']) && (int)$d['all_kill'] > 0) {
$x2 = $u->testAction($q, 2);
if ((int)$d['all_kill'] <= $x2[0]) {
$x2 = ActionModel::testCountCustom($sqlFilter, $sqlParams);
if ((int)$d['all_kill'] <= $x2) {
$x2 = (int)$d['all_kill'];
} else {
$x2 = $x2[0];
}
if ($x2 < (int)$d['all_kill']) {
$g = 0;
}
} else {
$x2 = $u->testAction($q . ' LIMIT ' . $ex2[1], 2);
$x2 = min($ex2[1], $x2[0]);
if ($x2 < $ex2[1]) {
$x2 = ActionModel::testCountCustom($sqlFilter, $sqlParams, $smth1);
$x2 = min($smth1, $x2);
if ($x2 < $smth1) {
$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',
[$pl['city'], (int)$ex2[0], $u->info['id']]);
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;
} else {
$ex2[1] = ($ex2[1] + round($ex2[1] * 0.15));
$ex2[1] = ((int)$ex2[1] + round($ex2[1] * 0.15));
}
}
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',
[$quest['city'], (int)$ex2[0], $u->info['id']]);
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;
} 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];
@ -953,9 +968,8 @@ class Quests
$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` > ' . $action['time'] . ' AND `vars` = "win_bot_' . $ex2[0] . '" LIMIT ' . $d['all_kill'], 2);
$d['add_rep'] = $d['add_rep'] + (int)$ex2[1];
$x2 = ActionModel::testCount(["uid = {$u->info['id']}", "vars = win_bot_$ex2[0]", "time > {$action['time']}"], $d['all_kill']);
$i++;
}
$ii++;

View File

@ -243,17 +243,6 @@ class User
$this->statnames->getBonus();
$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']) {
setcookie('btl', $this->info['battle'] ?? '', time() + 86400);
}
@ -271,9 +260,9 @@ class User
if ($sb - 1 > $this->info['catch'] - $this->info['frg']) {
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(
'UPDATE `users` SET `catch` = "' . round(
$sb
@ -298,6 +287,7 @@ class User
);
}
}
unset($sm);
}
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) {
$hgo = $this->testHome();
if (!isset($hgo['id']) && $this->info['room'] != 274 && $this->info['align'] != 2 && $this->info['inTurnir'] == 0) {
if ($this->testHome() && $this->info['room'] != 274 && $this->info['align'] != 2 && $this->info['inTurnir'] == 0) {
$this->addAction(time(), 'go_homeworld', '');
$rmt = mysql_fetch_array(
mysql_query(
@ -351,7 +340,6 @@ class User
} else {
$this->error = 'Вам запрещено пользоваться кнопкой возрата';
}
unset($hgo);
}
//Заносим текст
@ -517,17 +505,14 @@ class User
*/
//Статистика персонажа на сегодня
$stat = $this->testAction(
'`uid` = "' . $this->info['id'] . '" AND `time` >= ' . strtotime(
'now 00:00:00'
) . ' AND `vars` = "statistic_today" LIMIT 1', 1
);
if (!isset($stat['id'])) {
$stat = (bool)ActionModel::testCount(["uid = {$this->info['id']}", "time >= " . strtotime('now 00:00:00'), 'vars = statistic_today']);
if (!$stat) {
$this->addAction(
time(), 'statistic_today',
'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) {
@ -611,11 +596,8 @@ class User
}
if (isset($_GET['obr_sel']) || isset($_GET['obraz'])) {
$sm = $this->testAction(
'`uid` = "' . $this->info['id'] . '" AND `time` > ' . (time() - 86400) . ' AND `vars` = "sel_obraz" LIMIT 1',
1
);
if (!isset($sm['id'])) {
$obrazTimeout = ActionModel::getOne(["uid = {$this->info['id']}", 'time > unix_timestamp() - 86400', 'vars = sel_obraz'], 'time');
if (!$obrazTimeout) {
if (isset($_GET['obr_sel'])) {
$tr = true;
$o = mysql_fetch_array(
@ -686,7 +668,7 @@ class User
}
} else {
$this->error = 'Выбирать образ можно не чаще одного раза в сутки, следующая смена ' . date(
'd.m.Y H:i', $sm['time'] + 86400
'd.m.Y H:i', $obrazTimeout + 86400
);
unset($_GET['obr_sel']);
$_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]);
}
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
{
$info = $this->info;
@ -848,7 +814,14 @@ class User
return true;
}
public function testHome(): array
//Удаление определенного типа предметов
/**
* Кнопка "Возврат".
*
* @return bool
*/
public function testHome(): bool
{
/*----Быстрый(Особенность)----*/
$timeforwait = 3600;
@ -856,25 +829,27 @@ class User
$timeforwait = 3600 - (($st['os6'] * 5) * 60);
}
/*----Быстрый(Особенность)----*/
$hgo = $this->testAction(
'`uid` = "' . $this->info['id'] . '" AND `time` >= ' . (time() - $timeforwait) . ' AND `vars` = "go_homeworld" LIMIT 1',
1
);
if ($this->info['level'] == 0 || $this->info['active'] != '' || $this->info['inTurnir'] > 0 || $this->info['inTurnirnew'] > 0 || $this->info['zv'] > 0 || $this->info['dnow'] > 0) {
$hgo['id'] = true;
$buttonUsed = (bool)ActionModel::testCount(["uid = {$this->info['id']}", "time >= unix_timestamp - $timeforwait", 'vars = go_homeworld']);
if (
$this->info['level'] == 0 ||
$this->info['active'] != '' ||
$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 (!isset($hgo['id'])) {
$ku = mysql_fetch_array(
mysql_query('SELECT `id` FROM `katok_zv` WHERE `uid` = ' . $this->info['id'])
);
if (isset($ku['id'])) {
$hgo['id'] = true;
if (!$buttonUsed) {
$onKatok = (bool)Db::getValue('select id from katok_zv where uid = ?', [$this->info['id']]);
if ($onKatok) {
$buttonUsed = true;
}
}
return $hgo ?? [];
return !$buttonUsed;
}
public function wipe()
@ -955,44 +930,41 @@ class User
//Расчет урона от оружия
public function allActionsStart()
public function allActionsStart(): void
{
global $magic;
define('VAREZHKI_ITEM_ID', 998);
if (!isset($_GET['use_snowball'])) {
return;
}
$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;
}//варежки одеты, все ок
if ($this->room['name'] != 'Центральная площадь') {
$this->error2 = 'Собирать снег можно только на Центральной площади';
} else {
$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']);
return;
}
$magic->addEffect($this->info['id'], 24);
$this->error2 = 'Начинаем лепить снежок, осталось ' . (10 - $smt) . ' раз на сегодня ...';
} else {
$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(
2,
'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'] . ']',
);
@ -4905,7 +4877,7 @@ class User
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) {
//Проверка
@ -4929,6 +4901,7 @@ class User
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';
}
if (isset($u['id']) && ($e['type1'] < 11 || $e['type1'] > 16 && $e['type1'] < 23) && $e['noch'] == 0) {
$text = "Закончилось действие эффекта «<strong>{$e['name']}</strong>»";
$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'] . '"'
);
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']) {
$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'] . '"'
);
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 Helper\Mail;
use PassGen;
use UserIp;
class Confirmation
{
/**
* Для однотипных писем с подтверждением.
* @param array $userinfo Данные из (User)->info.
* @param mixed $value Новое значение
* @param string $value Новое значение
* @param ?int $code Проверочный код
* @param string $type Тип меняемого значения. С маленькой буквы, именительный падеж.
* @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();
$date = date('d.m.y H:i');
$https = Config::get('https');
$support = Config::get('support');
$activationLink = 'https://' . $userinfo['city'] . Config::get('host') .
"/confirm.php?id={$userinfo['id']}&code=$code";
$activationLink = Config::get('https') . "/confirm.php?id={$userinfo['id']}&code=$code";
$fulllogin = $userinfo['login'] . "[{$userinfo['level']}]";
Mail::send(
$userinfo['mail'],
@ -55,31 +49,7 @@ class Confirmation
);
}
private static function pass2ByEmailCustom(array $userinfo, string $pass2)
{
$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)
public static function userRegistrationCodeByEmail(string $email, string $login): void
{
$code = PassGen::intCode(4);
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);
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']]];
} else {
$uimg = 'i/items/' . $pl['img'];
@ -469,7 +469,7 @@ class InfoBox
if ($u['banned'] > 0) {
$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>';
}

View File

@ -211,4 +211,9 @@ class ItemsModel
}
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'];
}
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],
],
];
private array $restrictedLogins = [
'ангел', 'angel', 'администрация', 'administration', 'Комментатор',
'Мироздатель', 'Мусорщик', 'Падальщик', 'Повелитель',
'Архивариус', 'Пересмешник', 'Волынщик', 'Лорд Разрушитель',
'Милосердие', 'Справедливость', 'Искушение', 'Вознесение',
];
public function hasGoodEmail(string $email): bool
{
@ -141,40 +135,30 @@ class Register
public function hasGoodLogin(string $login): bool
{
$isRestricted = in_array($login, $this->restrictedLogins);
$validator = (new \Validator\Login())->setLogin($login);
if (!$validator->check()) {
$this->error = match ($validator->getErrorCode()) {
1 => 'Логин ' . $login . ' уже занят, выберите другой.',
2 => 'В логине разрешено использовать только буквы одного алфавита русского или английского. Нельзя смешивать.',
3 => 'Логин должен содержать не менее ' . $validator::LENGTH['min'] . ' символов.',
4 => 'Логин должен содержать не более ' . $validator::LENGTH['max'] . ' символов.',
5 => 'Не более двух разделителей одновременно (пробел, тире, нижнее подчеркивание).',
6 => 'В логине используются запрещённые символы.',
};
$this->error .= '<br>Пример правильного никнейма: Петя Убиватор, Коля, xalop.<br>Пример неправильного никнейма: )))), kolя)=-/.';
} else {
$login = $validator->get();
$isRegistered = Db::getValue('select count(*) from users where login = ?', [$login]);
//Бывшие в употреблении логины. Дичь, но ладно.
$wasRegistered = Db::getValue('select count(*) from lastnames where login = ?', [$login]);
$login = str_replace(' ', ' ', $login);
if (mb_strlen($login) > 20) {
$this->error = 'Логин должен содержать не более 20 символов.';
}
if (mb_strlen($login) < 4) {
$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я)=-/.';
}
if ($isRegistered || $wasRegistered || $isRestricted) {
if ($isRegistered || $wasRegistered) {
$this->error = 'Логин ' . $login . ' уже занят, выберите другой.';
}
}
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
{
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
{
$u = match (true) {
@ -205,6 +253,7 @@ class Stats
$noeffectbattle = false;
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']]);
$st['team'] = $u['team'];
}
//Характеристики от эффектов
@ -293,9 +342,6 @@ class Stats
$st['m19'] += (int)($st['s3'] * 0.03);
//Бонусы комплектов
if (isset($coms['new']) && is_iterable($coms['new'])) {
foreach ($coms['new'] as $complect) {
@ -1081,6 +1127,10 @@ class Stats
0 as finished from rep where id = ?', [$id]
);
if (empty($finishedDungeons)) {
return;
}
//Бонус за количество полностью вырытых пещер.
if (isset($st['m10'])) {
$st['m10'] += 10 * $finishedDungeons;
@ -1133,52 +1183,4 @@ class Stats
}
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
//Вызывается из 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/class/__db_connect.php');
if (!isset($_GET['login'])) {
return;
}//
}
$_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;
}
//
function testBad($txt): bool
{
$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;
$validator = new class extends Login {
private function exist(): bool
{
return Db::getValue('select count(login) from users where login = ?', [$this->login]) > 0;
}
} else {
$j = -2;
}
$j++;
}
if ($g == false) {
$r = true;
}
} else {
$i = -2;
}
$i++;
}
return $r;
}
//
$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;
/*
Логин может содержать от 4 до 16 символов, и состоять только из букв русского ИЛИ английского алфавита, цифр, символов '_', '-' и пробела.
Логин не может начинаться или заканчиваться символами '_', '-' или пробелом.
*/
$_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;
public function getstatus(): string
{
if ($this->exist()) {
return '<b style="color:red">Логин занят.</b>';
}
//
if (!$true) {
echo '<b style="color:red">Неверный логин.</b>';
} else {
echo '<b style="color:green">Логин свободен!</b>';
if (parent::check()) {
return '<b style="color:green">Логин свободен!</b>';
}
}
return '<b style="color:red">Неверный логин.</b>';
}
};
echo $validator->setLogin($_GET['login'])->getstatus();
//todo Написать класс, который будет использоваться тут, в ekr.php, в _newanimal.php и в проверках при регистрации.
//todo При этом сюда стоит подтягивать наследование класса, в который просто добавляется проверка на exist() которая не нужна в других местах.
//todo function testBad($txt), function is_login($login), function en_ru($txt)

View File

@ -1,3 +1,3 @@
<?php
//茸茆矗纈<EFBFBD><EFBFBD> js/onlineList.js
//Вызывается из js/onlineList.js
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
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']]);
}
?>

View File

@ -21,7 +21,6 @@ if ($uplogin != 'delete' && $utf8Login != 'delete' && $utf8Login2 != 'delete') {
if (!isset($clan['id'])) {
die(
'<html><head>
<meta http-equiv="Content-Language" content="ru">
<meta http-equiv="X-UA-Compatible" content="IE=EmulateIE8" />
<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>
<HR>
<p align="right">(c) <a href="index.html">' . $c['title'] . '</a></p>
' . $c['counters'] . '
</body></html>'
);
}

122
ekr.php
View File

@ -4,6 +4,7 @@ use Core\Config;
use Core\Database;
use Core\Db;
use Model\EkrExchangeRates;
use Validator\Login;
if (!defined('GAME_VERSION')) {
require_once '_incl_data/autoload.php';
@ -431,125 +432,24 @@ if (isset($_POST['do']) && $_POST['do'] == 'newShadow') {
$day1 = round($day1def + $dc1, 2);
$day2 = round($day2def + $dc2, 2);
} elseif (isset($_POST['login'])) {
//
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;
}
$newlogin = (new Login())->setLogin($_POST['login'])->get();
//
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']) {
if (!empty($newlogin) && $u->info['login'] === $newlogin) {
$u->error = 'Выберите другой логин...';
} elseif ($u->info['money2'] < 25) {
$u->error = 'Недостаточно средств.';
} else {
$login = htmlspecialchars($_POST['login'], null);
if (is_login($login) == true) {
mysql_query(
'INSERT INTO `lastnames` ( `uid`,`login`,`newlogin`,`time` ) VALUES (
"' . $u->info['id'] . '","' . $u->info['login'] . '","' . mysql_real_escape_string(
$login
$newlogin
) . '","' . time() . '"
)'
);
$u->info['login_last'] = $u->info['login'];
$u->info['login'] = $login;
$u->info['money2'] -= 25;
//
$u->info['login'] = $newlogin;
$u->addEkr(-25);
mysql_query(
"UPDATE `items_users` SET `data` = replace( `data` , 'sudba=" . $u->info['login_last'] . "', 'sudba=" . mysql_real_escape_string(
$u->info['login']
@ -557,16 +457,14 @@ if (isset($_POST['do']) && $_POST['do'] == 'newShadow') {
$u->info['login_last']
) . "%' AND `uid` = '" . $u->info['id'] . "'"
);
//
mysql_query(
'UPDATE `users` SET `login` = "' . mysql_real_escape_string(
$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; перезайдите в игру с главной страницы.';
} else {
$u->error = 'Выберите другой логин...';
}
}
} elseif (isset($_GET['buy_ekr'])) {
//

302
enter.php
View File

@ -3,6 +3,8 @@
use Core\Config;
use Core\Database;
use Core\Db;
use Core\TOTP;
use JetBrains\PhpStorm\NoReturn;
use User\Password;
use User\UserIp;
@ -15,43 +17,36 @@ require_once __DIR__ . DIRECTORY_SEPARATOR . '_incl_data/autoload.php';
Database::init();
define('IP', UserIp::get());
$chat = new Chat();
$login = $_SESSION['login'] ?? '';
$password = '';
$otp = '';
if (isset($_GET['login'])) {
$_POST['login'] = $_GET['login'];
$_POST['pass'] = $_GET['pass'];
$_POST['code'] = $_GET['code'];
if ($_SERVER['REQUEST_METHOD'] === 'POST') {
if (isset($_POST['login'])) {
$login = $_POST['login'];
}
if (isset($_POST['password'])) {
$password = $_POST['password'];
}
if (isset($_POST['otp'])) {
$otp = $_POST['otp'];
}
}
if (isset($_POST['psw'])) {
$_POST['pass'] = $_POST['psw'];
}
if (isset($_SESSION['login'])) {
$_POST['login'] = $_SESSION['login'];
$_POST['pass'] = $_SESSION['pass'];
}
function error($e)
#[NoReturn] function error($e): void
{
die(
'
<link rel="stylesheet" href="error.css">
<div class="text-wrapper">
<div class="title" data-content="Ошибка">
Ошибка!!
$returnLink = Config::get('https');
$html = <<<HTML
<link rel="stylesheet" href="error.css">
<div class="text-wrapper">
<div class="title" data-content="Ошибка">Ошибка!!</div>
<div class="subtitle">$e</div>
<div class="buttons"><a class="button" href="$returnLink">Вернуться назад</a></div>
</div>
<div class="subtitle">
' . $e . '
</div>
<div class="buttons">
<a class="button" href="' . Config::get('https') . '">Вернуться назад</a>
</div>
</div>
'
);
HTML;
exit($html);
}
$u = Db::getRow(
@ -60,185 +55,79 @@ $u = Db::getRow(
users.login,
auth,
pass,
pass2,
users.city,
totp,
users.ip,
ipreg,
admin,
online,
banned,
host_reg,
timereg,
securetime,
users_delo.text as block_reason
from users
left join users_delo on users.id = users_delo.uid
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'])) {
error('Логин "' . $_POST['login'] . '" не найден в базе.');
} elseif ($u['banned'] > 0) {
if (empty($_SESSION['login'])) {
if (!isset($u['id'])) {
error('Логин "' . $login . '" не найден в базе.');
} elseif ($u['banned'] > 0) {
$blockstr = "Персонаж <b>{$u['login']}</b> заблокирован.";
$blockstr .= $u['block_reason'] ? "Причина блокировки: {$u['block_reason']}<br><br>" : '<br><br>';
error($blockstr);
} elseif (!Password::isGood($_POST['pass'], $u['pass'], $u['login'])) {
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'));
error("Неверный пароль к персонажу {$u['login']}.");
}
if ($koko) {
$koko = '<b style="color: red">' . $koko . '</b>';
$_SESSION['login'] = $u['login'];
if (!empty($u['totp'])) {
$_SESSION['totp'] = new TOTP($u['totp']);
}
if (!$good2) {
}
if (!empty($_SESSION['totp']) && !empty($_SESSION['login'])) {
if (empty($otp)) {
?>
<!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>
<!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
die();
}
exit();
}
if (!Db::getValue('select count(*) from stats where id = ?', [$u['id']])) {
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']])) {
}
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'])) {
if (isset($_COOKIE['login'])) {
setcookie('login', '', time() - 60 * 60 * 24, '', Config::get('host'));
}
}
//мульты
if ($u['admin'] === 0) {
//мульты
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']]
@ -256,39 +145,38 @@ if (!isset($u['id'])) {
Db::sql('insert into mults (uid, uid2, ip) VALUES (?,?,?)', [$u['id'], $item['uid'], $item['ip']]);
}
}
}
}
if (isset($_COOKIE['ip']) && $_COOKIE['ip'] != 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, '');
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, city, login from users where online > unix_timestamp() - 600 and id in (select user from friends where friend = ?)', [$u['id']]);
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->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']]);
$apu = '';
Db::sql('update dump set ver = 1, upd = 2 where uid = ?', [$u['id']]);
if (
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' &&
@ -302,17 +190,19 @@ if (!isset($u['id'])) {
}
$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();
}
$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">
<table width="100%" border="0" align="center" cellpadding="0" cellspacing="0">
<tr>
<td width="10%" scope="col">
<DIV> <?php
echo $c['counters']; ?> </DIV>
</td>
<td width="10%" scope="col"></td>
<td width="80%" scope="col">
<div align="center"><?php
echo $c['copyright']; ?></div>
<div align="center"><?= \Core\Config::getCopyright() ?></div>
</td>
<td width="10%" scope="col">&nbsp;</td>
</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';
}
if (isset($_GET['time'])) {
echo time() . '<br>' . date('d.m.Y H:i:s', (int)$_GET['time']);
die();
}
header("Cache-Control: max-age=3600");
?>
<!DOCTYPE html>
@ -30,6 +25,7 @@ header("Cache-Control: max-age=3600");
flex-direction: column;
margin-top: 50px;
}
hr.incontent {
width: 32%;
border: 1px #1c1c1c solid;
@ -43,7 +39,7 @@ header("Cache-Control: max-age=3600");
<label for="first-name">Ваш Никнейм</label><br>
<input type="text" id="first-name" name="login" autocomplete="username"><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>
<input type="submit" value="Войти в игру" class="btn btn-default">
</form>

View File

@ -22,15 +22,17 @@ var eatk = 0;
var ggcode = '2014';
var irn = 0;
function magic_div(id, name, img, title) {
}
function testClearZone() {
if (top.slcbrc[4] == 0) {
if (top.slcbrc[4] === 0) {
all_radio_off();
}
}
async function usepriem(id, t, img) {
if (t == 1) {
async function usepriem(id) {
irn++;
await $.post(`jx/battle/refresh.php?rnd=${ggcode}&irn=${irn}`, {
idlog: top.id_log,
@ -41,15 +43,11 @@ async function usepriem(id, t, img) {
});
use_on_pers = 'none';
top.goSit(1);
return
}
return alert('Not found');
}
async function useitem(id, t, use_item_on) {
if (t == 1) {
async function useitem(id, use_item_on) {
irn++;
if (top.c.noEr == 0) {
if (top.c.noEr === 0) {
top.c.noEr = 1;
clearTimeout(top.c.noErTmr);
top.c.noErTmr = setTimeout('top.c.noEr = 0;', 1000);
@ -62,56 +60,57 @@ async function useitem(id, t, use_item_on) {
});
}
return top.goSit(1);
}
return alert('Not found');
}
function volna(id) {
document.getElementById('volna').innerHTML = `Волна: ${id}`;
}
function change_radioKeys(id, cper) {
var z = 0, t = 0, k = 0;
var i = 1, j = 1;
function change_radioKeys(id = 0) {
let jo;
let radio;
let z = 0, t = '';
let i = 1, j = 1;
while (i <= za) {
j = 1;
jo = 0;
while (j <= 5) {
var radio = document.getElementById(`atack_${i}_${j}`);
radio = document.getElementById(`atack_${i}_${j}`);
if (radio) {
if (radio.className && radio.className == "radio_on") jo++;
if (radio.className != null && radio.className === "radio_on") jo++;
}
j++;
}
if (jo == 0 && z == 0) {
if (jo === 0 && z === 0) {
z = i;
t = 'atack';
}
i++;
}
if (z == 0) {
var i = 1, jo = 0;
if (z === 0) {
i = 1;
jo = 0;
while (i <= 5) {
var radio = document.getElementById(`block_1_${i}`);
radio = document.getElementById(`block_1_${i}`);
if (radio) {
if (radio.className && radio.className == "radio_on") jo++;
if (radio.className != null && radio.className === "radio_on") jo++;
}
i++;
}
if (jo == 0 && z == 0) {
if (jo === 0 && z === 0) {
z = 1;
t = 'block';
}
}
if ((z == 0 || id == 0) && !cper) {
if (z === 0 || id === 0) {
all_radio_off();
refleshPoints();
}
if (z > 0) {
if (id == 0) {
if (id === 0) {
//автовыставление
} else change_radio(z, id, t, 1)
}
@ -119,15 +118,15 @@ function change_radioKeys(id, cper) {
function change_radio(id, zone, type, r) {
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";
if (type == 'atack') zas[id] = 0;
if (type === 'atack') zas[id] = 0;
else zbs[id] = 0;
} else {
radio.className = "radio_on";
if (type == 'atack') zas[id] = zone;
if (type === 'atack') zas[id] = zone;
else zbs[id] = zone;
}
refleshPoints();
@ -139,17 +138,17 @@ function tactic(id, value) {
function refleshPoints() {
clearZone();
var i = 5;
let i = 5;
while (i >= 1) {
if (zas[i] == 0) lineAtack(i);
if (zas[i] === 0) lineAtack(i);
i--;
}
if (zbs[1] == 0) lineBlock();
if (zbs[1] === 0) lineBlock();
}
function lineAtack(id) {
nos++;
var j = 1;
let j = 1;
while (j <= 5) {
document.getElementById(`zatack${id}_${j}`).className = 'zoneCh_yes';
j++;
@ -158,7 +157,7 @@ function lineAtack(id) {
function lineBlock() {
nos++;
var j = 1;
let j = 1;
while (j <= 5) {
document.getElementById(`zblock1_${j}`).className = 'zoneCh_yes';
j++;
@ -167,16 +166,16 @@ function lineBlock() {
function clearZone() {
nos = 0;
var i = 1;
let i = 1;
while (i <= 5) {
var j = 1;
let j = 1;
while (j <= 5) {
document.getElementById(`zatack${i}_${j}`).className = 'zoneCh_no';
j++;
}
i++;
}
var i = 1;
i = 1;
while (i <= 5) {
document.getElementById(`zblock1_${i}`).className = 'zoneCh_no';
i++;
@ -184,9 +183,9 @@ function clearZone() {
}
function select_atack(id, r) {
var i = 5;
let i = 5;
while (i >= 1) {
if (zas[i] == 0) {
if (zas[i] === 0) {
if (i <= za) sel_atack = i
}
i--;
@ -198,11 +197,11 @@ function select_atack(id, r) {
}
function radio_off(id, zone, type) {
var i = 1;
let i = 1;
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";
if (type == 'atack') zas[id] = 0;
if (type === 'atack') zas[id] = 0;
else zbs[id] = 0;
}
i++;
@ -210,9 +209,9 @@ function radio_off(id, zone, type) {
}
function all_radio_off() {
var i = 1;
let i = 1;
while (i <= 5) {
var j = 1;
let j = 1;
while (j <= 5) {
document.getElementById(`atack_${j}_${i}`).className = "radio_off";
j++;
@ -225,11 +224,11 @@ function all_radio_off() {
}
function genZoneBlock() {
var i = 1;
let i = 1;
while (i <= 5) {
var j = 1;
let j = 1;
while (j <= 3) {
if (j == zb) {
if (j === zb) {
document.getElementById(`txtb${i}_${j}`).style.display = '';
} else {
document.getElementById(`txtb${i}_${j}`).style.display = 'none';
@ -241,9 +240,9 @@ function genZoneBlock() {
}
function genZoneAtack() {
var i = 1;
let i = 1;
while (i <= 5) {
var j = 1;
let j = 1;
while (j <= 5) {
if (i <= za) {
document.getElementById(`zatack${i}_${j}`).style.display = '';
@ -260,16 +259,13 @@ function genteam(team) {
document.getElementById('teams').innerHTML = team;
}
var t057 = null;
var battle_end = 0;
async function reflesh(bl) {
async function reflesh() {
irn++;
if (battleFinishData != -1) mainstatus(0);
if ((battle_end == 0 || bl != null) && battleFinishData == -1) {
if (top.c.noEr == 0) {
if (battleFinishData == -1) {
if (top.c.noEr === 0) {
top.c.noEr = 1;
clearTimeout(top.c.noErTmr);
top.c.noErTmr = setTimeout('top.c.noEr = 0;', 1000);
@ -286,20 +282,20 @@ async function reflesh(bl) {
$("#ref").html(data);
});
}
if (g_iCount != 45) g_iCount = 45;
if (g_iCount !== 45) g_iCount = 45;
}
}
function autobattle() {
var i = 1;
let i = 1;
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);
change_radio(i, zas[i], 'atack', 1);
}
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);
change_radio(1, zbs[1], 'block', 1);
}
@ -341,30 +337,33 @@ async function atack() {
}
var g_iCount = 45;
var tmr0057 = null;
let tmr0057 = null;
// 1.1
function startCountdown() {
if (tmr0057 != null) clearTimeout(tmr0057);
if (tmr0057 !== null) clearTimeout(tmr0057);
if ((g_iCount - 1) >= 0) {
g_iCount -= 1;
return tmr0057 = setTimeout('startCountdown()', 1000);
return tmr0057 = setTimeout(startCountdown, 1000);
}
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) {
id = +id;
if (isNaN(id)) id = 0;
if (smnpty <= 0) {
document.getElementById('btn_down_img2').style.display = 'none';
$('#btn_down_img2').css({'display': 'none'});
} else {
document.getElementById('btn_down_img2').style.display = '';
document.getElementById('btn_down_img2').title = `Смена противника (${smnpty})`
$('#btn_down_img2').css({'display': ''});
$('#btn_down_img2').attr('title', `Смена противника (${smnpty})`);
}
if (battleFinishData !== -1) { // Объявляется аж в Finish.php
if (battleFinishData != -1) { // хуй знает че такое
document.getElementById('mainpanel2').style.display = ''; // 4
document.getElementById('go_btn').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_img2').style.display = 'none'; // 2
document.getElementById('ref').style.textAlign = 'center';
document.getElementById('ref').style.color = 'red';
document.getElementById("ref").innerHTML = `<b>${battleFinishData}</b>`;
document.getElementById("ref").innerHTML = `<center><font color='red'><b>${battleFinishData}</b></font></center>`;
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';
} else if (id === 1) //Можно ударить противника ( доступный удар )
{
@ -403,7 +400,7 @@ function mainstatus(id) {
document.getElementById('go_btn').style.display = 'none'; // 4
document.getElementById('reflesh_btn').style.display = ''; // 3
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('btn_down_img1').setAttribute("onclick", "reflesht();");
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_img2').style.display = 'none'; // 2
document.getElementById("ref").innerHTML = `<b style='color: red;'>Вы повержены. Ожидайте пока поединок завершат другие бойцы...</b>`;
document.getElementById("player2").innerHTML = `<div style='margin-top:18px; text-align: right;'>${img_battle}</div>`;
document.getElementById("ref").innerHTML = "<font color='red'><b>Вы повержены. Ожидайте пока поединок завершат другие бойцы...</b></font>";
document.getElementById("player2").innerHTML = `<div style='margin-top:18px;' align='right'>${img_battle}</div>`;
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';
}
top.goSit(1);
}
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;
let lsthd = [];
var lsthd = [];
var id_log_ar = [];
var id_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
else type_log = 1;
if (type_log === 1) {
chsee = 'chsee2';
text = looklogrep(text, vars);
id_log_ar[id] = 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
lsthd[lsti] = hod_id;
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>`);
} else if (!top.frames['main'].document.getElementById(`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>`;
logsdiv.insertAdjacentHTML('afterbegin', `<div style="padding-top:2px;padding-bottom:2px;" id="battle_log_'${hod_id}" class="battle_hod_style"></div>`);
hodlogdiv = getElementByIdInMainFrame(`battle_log_${hod_id}`);
} 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}`)) {
$(top.frames['main'].document.getElementById(`battle_log_${hod_id}`)).prepend(`<span id="log_id_${id}" class="foryou${foryou}">${text}</span><br>`);
if (!logid) {
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}`);
}
return
}
chsee = 'chsee2';
text = looklogrep(text, vars);
id_log_ar[id] = id;
id_log = id;
if (!top.document.getElementById(`battle_log_${hod_id}`) && hod_id !== 1) {
if (!hodlogdiv && hod_id !== 1) {
if (fstlh === 0) {
fstlh = hod_id;
}
lsthd[lsti] = hod_id;
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>`);
} else if (!top.document.getElementById("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>`);
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>`);
hodlogdiv = getElementByIdInMainFrame(`battle_log_${hod_id}`);
} 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}`)) {
$(top.document.getElementById(`battle_log_${hod_id}`)).prepend(`<span id="log_id_${id}" class="foryou${foryou}">${text}</span><br>`);
if (!logid) {
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}`);
}
}
//-- Мой лог--------------------------------
//-------------------------------------------
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);
id_log_ar[id] = id;
id_log = id;
if (!top.document.getElementById(`battle_mlog_${hod_id}`) && 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>`);
} else if (!top.document.getElementById(`battle_mlog_${hod_id}`)) {
top.document.getElementById('battle_mlogg').innerHTML += `<div style="padding-top:2px;padding-bottom:2px;" id="battle_mlog_${hod_id}"></div>`;
if (!hodlogdiv && hod_id !== 1) {
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 (!hodlogdiv) {
logsdiv.insertAdjacentHTML('beforeend', `<div style="padding-top:2px;padding-bottom:2px;" id="battle_mlog_${hod_id}"></div>`);
hodlogdiv = getElementByIdInMainFrame(`battle_mlog_${hod_id}`);
}
if (!top.document.getElementById(`mlog_id_${id}`)) {
$(top.document.getElementById(`battle_mlog_${hod_id}`)).prepend(`<span id="mlog_id_${id}" class="foryou${foryou}">${text}</span><br>`);
if (!logid) {
hodlogdiv.insertAdjacentHTML('afterbegin', `<span id="mlog_id_${id}" class="foryou0">${text}</span><br>`);
}
if (top.document.getElementById(`battle_mlog_${hod_id - 14}`)) {
if (hodlogdiv14) {
top.rmve(`#battle_mlog_${hod_id - 14}`);
}
}
@ -539,30 +566,12 @@ function defPosition(event) {
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 () {
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) {
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_rdate[id] = cb_id;
console.log(cb_ndate, name, cb_ndate['Системные сообщения'], cb_ndate['Чат']);
if (cb_ndate[name] !== undefined) {
let j = 1,
name2 = '';
@ -950,7 +948,7 @@ function useMagicBattle(name, id, img, type, type_use, text, team) {
// 4.26
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>', {
'a1': `usePriemNow(\'${pr}\');`,
'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;');
chat.inObj = $(`#usePriemLogin${pr}`);
@ -1028,7 +1026,7 @@ function priemOnUser(pr, id, nm, onInUser, img) {
// 4.32
function usePriemNow(id) {
top.frames['main'].use_on_pers = $(`#usePriemLogin${id}`).val();
top.frames['main'].usepriem(id, 1, '');
top.frames['main'].usepriem(id);
}
var datas = '';

View File

@ -233,18 +233,18 @@ if (!$isBattle) {
<script>
$logs
eatk = $atk1;
$('#nabito').html('$nabito');
$('#expmaybe').html('$expmaybe');
$('#timer_out').html('$tmr');
$('#pers_magic').html('$persMagic');
$('#priems').html(`$mypriems`);
getElementByIdInMainFrame('nabito').innerHTML = `$nabito`;
getElementByIdInMainFrame('expmaybe').innerHTML = `$expmaybe`;
getElementByIdInMainFrame('timer_out').innerHTML = `$tmr`;
getElementByIdInMainFrame('pers_magic').innerHTML = `$persMagic`;
getElementByIdInMainFrame('priems').innerHTML = `$mypriems`;
g_iCount = 30;
noconnect = 15;
connect = 1;
$('#go_btn').show();
$('#reflesh_btn').show();
za = '$za'; genZoneAtack();
zb = '$zb'; genZoneBlock();
getElementByIdInMainFrame('go_btn').style.display = '';
getElementByIdInMainFrame('reflesh_btn').style.display = '';
za = $za; genZoneAtack();
zb = $zb; genZoneBlock();
refleshPoints();
tactic(1,'$tactic1');
tactic(2,'$tactic2');
@ -267,6 +267,5 @@ HTML;
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);
}
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);
}
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)) {
require_once('../../_incl_data/__config.php');
if ($_SESSION['tbr'] > $tm) {
die('<script>ggcode="' . $code . '";if(t057!=null){clearTimeout(t057);}</script>');
die('<script>ggcode="' . $code . '";</script>');
} else {
$_SESSION['tbr'] = $tm + 0.350;
}

View File

@ -4,6 +4,7 @@ if (!defined('GAME_VERSION')) {
}
use Core\{Config, Database, Db};
use Model\ActionModel;
use User\ItemsModel;
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)) {
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") {
$trololo = 0;
@ -255,7 +256,7 @@ if ($magic->youuse > 0) {
if ($act != -2) {
$u->stats = $u->getStats($u->info['id'], 0, 1);
$u->aves = ItemsModel::inventoryWeightAndItemQuantity();
if (!isset($sleep['id'])) {
if (empty($sleep)) {
$act2 = $u->testItems($u->info['id'], $u->stats, 0);
}
if ($act2 != -2 && $act == -2) {
@ -413,7 +414,7 @@ if (isset($btl_last['id']) && $u->info['battle'] == 0) {
$u->info['battle_lsto'] = true;
} elseif ($u->info['battle'] == 0) {
//Проверка/Снятие предметов
if (!isset($sleep['id'])) {
if (empty($sleep)) {
$act2 = $u->testItems($u->info['id'], $u->stats, 0);
}
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) {
require_once('modules_data/_umenie.php');
} 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) {
if ($u->info['allLock'] > time()) {
require_once('modules_data/_locations.php');

View File

@ -1,7 +1,9 @@
<?php
# Получаем IP
use Core\Config;
use Core\Db;
use Model\ActionModel;
use User\ItemsModel;
use User\UserIp;
@ -63,9 +65,9 @@ $q = new Quests;
$tjs = '';
#--------для общаги, и позже для почты
$sleep = $u->testAction('`vars` = "sleep" AND `uid` = "' . $u->info['id'] . '" LIMIT 1', 1);
if ($u->room['file'] != "objaga" && $sleep['id'] > 0) {
mysql_query('UPDATE `actions` SET `vars` = "unsleep" WHERE `id` = ' . $sleep['id']);
$sleep = ActionModel::getOne(["uid = {$u->info['id']}", 'vars = sleep'], 'id');
if ($u->room['file'] != "objaga" && $sleep > 0) {
mysql_query('UPDATE `actions` SET `vars` = "unsleep" WHERE `id` = ' . $sleep);
}
$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) {
die($c['exit']);
die(Config::get('exit'));
}
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;.';
$cmsg = new ChatMessage();
$cmsg->setCity($u->info['city']);
$cmsg->setRoom($u->info['room']);
$cmsg->setText($rtxt);
$cmsg->setType(6);
@ -168,75 +169,9 @@ if ($ul == 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 (
(isset($_GET['zayvka']) && $u->info['battle'] == 0) ||
(isset($_GET['zayvka']) && ($_GET['r'] == 6 || $_GET['r'] == 7 || !isset($_GET['r'])) && $u->info['battle'] > 0) &&
!isset($u->tfer['id'])) {
include('modules_data/_zv.php');
}
mysql_query('UNLOCK TABLES');

View File

@ -1,4 +1,8 @@
<?php
use Model\Constant\Stat;
use Validator\Login;
echo "
<script language='JavaScript'>
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_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) {
$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 = 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 {
$nl = (new Login())->setLogin($_GET['anml_login'])->get();
}
if ($n == 1) {
if (!empty($nl)) {
mysql_query(
'UPDATE `users_animal` SET `name` = "' . mysql_real_escape_string(
$nl
) . '",`renameArrayKeys` = "1" WHERE `uid` = "' . $u->info['id'] . '" AND `id` = "' . $an['id'] . '" AND `delete` = "0" LIMIT 1'
);
$an['renameArrayKeys'] = 1;
echo '<font color="red">Вы успешно переименовали питомца в &quot;' . $nl . '&quot;</font>';
echo '<span style="color: red; ">Вы успешно переименовали питомца в &quot;' . $nl . '&quot;</span>';
} else {
echo '<font color="red">Эта кличка не подходит</font>';
echo '<span style="color: red; ">Эта кличка не подходит</span>';
}
}
@ -195,7 +179,7 @@ if (!isset($an['id'])) {
<?php
$ba = '';
$i = 0;
$statnames = new \Model\Constant\Stat();
$statnames = new Stat();
$statnames->getBonus();
while ($i < count($statnames->sysBonusNames)) {

View File

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

View File

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

View File

@ -450,7 +450,7 @@ if (isset($_GET['mAjax'])) {
onclick="top.frames['main'].location='main.php?newanimal&rnd=<?php
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('/stats_bonus.php');"
<input class="btn btn-success" type="button" onclick="window.open('/statsbonuses.html');"
value="Бонусы статов"/>
<input class="btn btn-success" type="button"
onclick="top.frames['main'].location='main.php?act_trf&rnd=<?php

View File

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

View File

@ -43,98 +43,6 @@ $an_eda = [
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 ($u->info['money2'] < $slot['price_nex']) {
$u->error = 'Недостаточно денег';
@ -150,8 +58,9 @@ if (isset($_GET['buy_slot'])) {
$u->error = 'Нельзя купить больше слотов';
}
} elseif (isset($_GET['pet'])) {
$newpetname = (new \Validator\Login())->setLogin($_GET['petname'])->get();
$_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 = $ax[0];
if ($_GET['pet'] < 1 || $_GET['pet'] > 7) {
@ -160,12 +69,12 @@ if (isset($_GET['buy_slot'])) {
$u->error = 'Нет свободных слотов для зверя';
} elseif ($u->info['money'] < 50) {
$u->error = 'Недостаточно денег';
} elseif (!is_login_an($_GET['petname'])) {
} elseif (!empty($_GET['petname']) && !$newpetname) {
$u->error = 'Неверная кличка зверя, выберите другую';
} else {
$u->error = 'Зверь пришел к Вам!';
$u->info['money'] -= 50;
mysql_query('UPDATE `users` SET `money` = "' . $u->info['money'] . '" WHERE `id` = "' . $u->info['id'] . '" LIMIT 1');
$u->addKr(-50);
//
$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['name'] = htmlspecialchars($_GET['petname'], null);
$anm['name'] = preg_replace("/&#?[a-z0-9]+;/i", "", $anm['name']);
if (!empty($_GET['petname'])) {
$anm['name'] = htmlspecialchars($newpetname, null);
}
//
$anm['obraz'] = $anm['obraz'][rand(1, count($anm['obraz']))];
$anm['obraz'] = str_replace('.gif', '', $anm['obraz']);
@ -221,7 +131,7 @@ if (isset($_GET['buy_slot'])) {
1,
'System.inventory',
$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 {
$u->error = 'Не удалось призвать зверя, что-то здесь не так ...';
@ -404,7 +314,7 @@ if ($u->error != '') {
//
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>';
//

View File

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

View File

@ -9,6 +9,7 @@ use Core\Config;
use DarksLight2\Battle\Techniques\TechniqueCategoryEntity;
use DarksLight2\Training\TrainingManager;
use Helper\Conversion;
use Model\ActionModel;
use Model\Constant\Stat;
if (!defined('GAME')) {
@ -1026,7 +1027,7 @@ $tma = '';
</style>
<div>
<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="Статовые Бонусы">
<br><br>
<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>';
}
//Пещеры
$dungeon_timeout = $u->testAction(
'`uid` = "' . $u->info['id'] . '" AND `vars` = "psh0" AND `time` > ' . (time() - 60 * 60 * 3) . ' LIMIT 1',
1
);
if ($dungeon_timeout['vars'] == "psh0") {
echo '<center><b>Задержка на посещение подземелья: ' . Conversion::secondsToTimeout(60 * 60 * 2 - time() + $dungeon_timeout['time']) . '</center></b><br>';
$dungeonTimeout = ActionModel::getOne(["uid = {$u->info['id']}", 'vars = psh0', "time > unix_timestamp() - 10800"], 'time');
if ($dungeonTimeout) {
echo '<div style="text-align: center; font-weight: bold;">
Задержка на посещение подземелья: ' . Conversion::secondsToTimeout(60 * 60 * 2 - time() + $dungeonTimeout) . '</div><br>';
}
?>
<br>
@ -2375,26 +2374,21 @@ $tma = '';
} ?>
<BR>
<?php
$sf = $u->testAction(
'`uid` = "' . $u->info['id'] . '" AND `time` >= ' . strtotime('now 00:00:00') . ' AND `vars` = "statistic_today" LIMIT 1',
1
);
if (isset($sf['id'])) {
$sfe = Conversion::dataStringToArray($sf['vals']);
$sf[0] = $u->info['exp'] - (int)$sfe['e'];
$sf[1] = $u->info['win'] - (int)$sfe['w'];
$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];
$sf = ActionModel::getOne(["uid = {$u->info['id']}", "time >= " . strtotime('now 00:00:00'), 'vars = statistic_today'], 'vals');
$statisticToday = [0, 0, 0, 0,];
if ($sf) {
[$statisticToday[0], $statisticToday[1], $statisticToday[2], $statisticToday[3]] = Conversion::dataStringToArray($sf);
$statisticToday[0] = $u->info['exp'] - $statisticToday[0];
$statisticToday[1] = $u->info['win'] - $statisticToday[1];
$statisticToday[2] = $u->info['lose'] - $statisticToday[2];
$statisticToday[3] = $u->info['nich'] - $statisticToday[3];
}
?>
&nbsp; &nbsp; &nbsp; <B>За сегодня</B><BR>
&bull; Получено опыта: <?= $sf[0] ?><BR>
&bull; Одержано побед: <?= $sf[1] ?><BR>
&bull; Проиграно битв: <?= $sf[2] ?><BR>
&bull; Ничьих: <?= $sf[3] ?><BR>
&bull; Получено опыта: <?= $statisticToday[0] ?><BR>
&bull; Одержано побед: <?= $statisticToday[1] ?><BR>
&bull; Проиграно битв: <?= $statisticToday[2] ?><BR>
&bull; Ничьих: <?= $statisticToday[3] ?><BR>
</div>
</div>
<?php if ($znn) {

View File

@ -247,8 +247,7 @@ if ($r === FightRequest::BATTLE_RAZDEL_ENDED) {
[$zg['id']]
);
foreach ($users as $user) {
${'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>';
${'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>';
}
if (empty($tm1)) {
$tm1 = 'группа пока не набрана';
@ -572,6 +571,4 @@ if ($zv->error) {
<td><?php $zv->seeZv($zi, $r); ?></td>
</tr>
</table>
<div style="text-align: right; margin-top: 5px;">
<?= Config::get('counters') ?>
</div>

View File

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

View File

@ -104,9 +104,9 @@ if ($u->room['file'] != 'bk') {
<small>
<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 }
?>
<br/>
<strong>Внимание!Смените пароль на уникальный,который не использовался ранее в подобных проектах,это обезопасит вашего персонажа от взлома.<BR>
<em>Администрация.</strong> </em></small> <BR>

View File

@ -1,38 +1,67 @@
<?php
if(!defined('GAME'))
{
if (!defined('GAME')) {
die();
}
if($u->room['file']=='bk2')
{
?>
<table width="100%" border="0" cellspacing="0" cellpadding="0">
if ($u->room['file'] == 'bk2') {
?>
<table width="100%" border="0" cellspacing="0" cellpadding="0">
<tr>
<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);
if ($usee != false) {
echo $usee[0];
} else {
echo 'information is lost.';
} ?>
</td>
<td width="230" valign="top" style="padding-top:19px;"><?php require_once('modules/stats_loc.php'); ?></td>
<td valign="top"><div align="right">
<?php if($u->error!=''){ echo '<font color="red"><b>'.$u->error.'</b></font>'; } ?>
<td valign="top">
<div align="right">
<?php if ($u->error != '') {
echo '<font color="red"><b>' . $u->error . '</b></font>';
} ?>
<table border="0" cellpadding="0" cellspacing="0">
<tr align="right" valign="top">
<td>
<?php if($re!=''){ echo '<font color="red"><b>'.$re.'</b></font>'; } ?>
<?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: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>
<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>
<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>
<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: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>
<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>
<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>
<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: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 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>
@ -41,15 +70,16 @@ if($u->room['file']=='bk2')
</table>
<div style="display:none; height:0px " id="moveto"></div>
<?php
if($u->info['level']<6)
{
if ($u->info['level'] < 6) {
echo '
Вам все время кажется что за вами следят? Чудится, что случайный попутчик мечтает всадить вам топор в спину? При совершении очередной покупки в гос. магазине мучает ощущение, что вас обманули? Кажется, что симпатичная девушка напротив смотрит на вас как на пищу? Успокойтесь, это не паранойя. Это реалии Capital city. Города Тьмы.
';
}else{
} else {
echo 'Возможно, вы ошиблись этажом - настоящие сражения проходят этажом выше.';
} ?>
</small></div></td>
</small>
</div>
</td>
<td>
<!-- <br /><span class="menutop"><nobr>Комната для новичков</nobr></span>-->
</td>
@ -57,20 +87,21 @@ if($u->room['file']=='bk2')
</table>
<small>
<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 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" value="Объекты" type="button">
<br />
<br/>
<strong>Внимание!Смените пароль на уникальный,который не использовался ранее в подобных проектах,это обезопасит вашего персонажа от взлома.<BR>
<em>Администрация.</strong> </em></small> <BR>
<?= $rowonmax; ?><BR>
</div></td>
</tr>
</table>
<?php
</table>
<?php
}
?>

View File

@ -1,6 +1,7 @@
<?php
use Helper\Conversion;
use Model\ActionModel;
if (!defined('GAME')) {
die();
@ -25,7 +26,7 @@ if ($u->room['file'] == 'dungeon_enter') {
} // Собираем группу для похода
//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)) {
$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) {
unset($dungeon_timeout);
} // $dungeon_timeout - задержка на посещение пещеры.
if (isset($dungeon_timeout['id'])) // Кто-то передумал и не пойдет в пещеру, так-как уже там был.
{
if ($u->isAdmin()) {
$dungeonTimeout = 0;
}
if ($dungeonTimeout) { // Кто-то передумал и не пойдет в пещеру, так-как уже там был.
$dungeonGo = 0;
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) {
mysql_query(
'INSERT INTO `dungeon_items` (`dn`,`user`,`item_id`,`time`,`x`,`y`,`onlyfor`,`quest`) VALUES (
"' . $zid . '","' . $u->info['id'] . '","' . $xr2[0] . '","' . time(
) . '","' . $cord[0] . '","' . $cord[1] . '","' . $u->info['id'] . '","' . $pl['id'] . '"
"' . $zid . '","' . $u->info['id'] . '","' . $xr2[0] . '","' . time() . '","' . $cord[0] . '","' . $cord[1] . '","' . $u->info['id'] . '","' . $pl['id'] . '"
)'
);
}
@ -614,7 +615,8 @@ if ($u->room['file'] == 'dungeon_enter') {
<tr>
<td bgcolor="#D3D3D3"><img src="//img.new-combats.tech/i/move/links.gif" width="9" height="7"/></td>
<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; ?>';"
title="<?php thisInfRm(
$shop['code'], 1
); ?>">Рыцарский магазин</a></td>
</tr>
@ -689,9 +691,8 @@ if ($u->room['file'] == 'dungeon_enter') {
<form autocomplete="off" action='/main.php' method="post" name="F1" id="F1">
<?php
$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
);
$questTimeout = ActionModel::getOne(["uid = {$u->info['id']}", "room = {$u->info['room']}", "time >= unix_timestamp() - 86400", "vars = psh_qt_{$dungeon['city']}"], 'time');
$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');
@ -717,8 +718,8 @@ if ($u->room['file'] == 'dungeon_enter') {
}
if (isset($_GET['add_quest']) && $qc == 0) {
if (isset($hgo['id'])) {
echo '<font color="red"><b>Нельзя получать задания чаще одного раза в сутки</b></font><br>';
if ($questTimeout) {
echo '<b style="color: red;">Нельзя получать задания чаще одного раза в сутки</b><br>';
} else {
$sp = mysql_query('SELECT * FROM `quests` WHERE `line` = ' . $dungeon['id'] . '');
$dq_add = [];
@ -775,13 +776,14 @@ if ($u->room['file'] == 'dungeon_enter') {
<?php
if ($qc > 0) {
echo 'Вы еще не справились с текущим заданием.';
} elseif (!isset($hgo['id']) && $qc == 0) {
} elseif (!$questTimeout && $qc == 0) {
?>
<br/>
<input type='button' value='Получить задание' onclick='location="main.php?rz=1&add_quest=1"'/>
<?php
} 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>
@ -995,7 +997,6 @@ if ($u->room['file'] == 'dungeon_enter') {
);
while ($chk_pl = mysql_fetch_array($chk_cl)) {
if (mysql_query('UPDATE `items_users` SET `delete` = "' . time() . '" WHERE `id` = "' . $chk_pl['id'] . '" LIMIT 1')) {
;
}
{
$x++;
@ -1073,7 +1074,7 @@ if ($u->room['file'] == 'dungeon_enter') {
}
} else {
echo 'Поход в пещеры разрешен один раз в два часа. Осталось еще: ' . Conversion::secondsToTimeout(
60 * 60 * 2 - time() + $dungeon_timeout['time']
60 * 60 * 2 - time() + $dungeonTimeout
) . '<br><small style="color:grey">Но Вы всегда можете приобрести ключ от прохода у любого &quot;копателя пещер&quot; в Торговом зале ;)</small>';
}
}

View File

@ -3,6 +3,7 @@
use Core\Config;
use Core\Db;
use Helper\Conversion;
use Model\ActionModel;
use User\StatsModel;
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()) {
unset($dungeon_timeout);
} // $dungeon_timeout - задержка на посещение пещеры.
if (isset($dungeon_timeout['id'])) { // Кто-то передумал и не пойдет в пещеру, так-как уже там был.
$dungeonTimeout = 0;
}
if ($dungeonTimeout) { // Кто-то передумал и не пойдет в пещеру, так-как уже там был.
$dungeonGo = 0;
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) {
mysql_query(
'INSERT INTO `dungeon_items` (`dn`,`user`,`item_id`,`time`,`x`,`y`,`onlyfor`,`quest`) VALUES (
"' . $zid . '","' . $u->info['id'] . '","' . $xr2[0] . '","' . time(
) . '","' . $cord[0] . '","' . $cord[1] . '","' . $u->info['id'] . '","' . $pl['id'] . '"
"' . $zid . '","' . $u->info['id'] . '","' . $xr2[0] . '","' . time() . '","' . $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">
<?php
$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
$qcc = [];
//Генерируем список текущих квестов
@ -569,20 +568,17 @@ if ($roomSection == 1) {
$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(
$qst_city
) . '" LIMIT 1', 1
);
//$qcc
$hgo = (bool)ActionModel::testCount(["uid = {$u->info['id']}", "room = {$u->info['room']}", "time >= unix_timestamp() - 86400", "vars = psh_qt_$qst_city"]);
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') {
echo '<font color="red"><b>Для этой пещеры еще нет заданий</b></font><br>';
} elseif (isset($hgo['id'])) {
echo '<font color="red"><b>Нельзя получать задания чаще одного раза в сутки</b></font><br>';
echo '<b style="color: red;">Для этой пещеры еще нет заданий</b><br>';
} elseif ($hgo) {
echo '<b style="color: red;">Нельзя получать задания чаще одного раза в сутки</b><br>';
} else {
$sp = mysql_query('SELECT * FROM `quests` WHERE `line` = ' . $dun5 . '');
$sp = mysql_query('SELECT * FROM `quests` WHERE `line` = ' . $dun5);
$dq_add = [];
while ($pl = mysql_fetch_array($sp)) {
if ($u->rep['rep' . $qst_city] == 24999) {
@ -620,101 +616,27 @@ if ($roomSection == 1) {
$qsee = 'К сожалению у вас нет ни одного задания<br/><br/>';
}
?>
<Br/>
<style>
.btnnewred {
background-color: #ca726d;
color: #f8d2d0;
border-color: #b44039;
cursor: default;
}
.btnnewred:hover {
background-color: #ca726d;
cursor: default;
}
</style>
<br>
<FIELDSET>
<LEGEND style="color: maroon; font-weight: bold;">Текущие задания:</LEGEND>
<?= $qsee ?>
<span style="padding-left: 10px;"><strong>Получить задание:</strong><br>
<?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);
$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);
$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);
$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);
$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);
$hgo6 = $u->testAction(
'`uid` = "' . $u->info['id'] . '" AND `room` = "' . $u->info['room'] . '" AND `time` >= ' . (time() - 60 * 60 * 24) . ' AND `vars` = "psh_qt_abandonedplain" LIMIT 1', 1
);
$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);
$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);
$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);
$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);
if (!isset($hgo1['id'])) { ?>
<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 }
$html = [];
foreach ($dunname as [$dungeonSysName, $dungeonName]) {
$dungeonTimeout = ActionModel::getOne(["uid = {$u->info['id']}", "room = {$u->info['room']}", 'time >= unix_timestamp() - 86400', "vars = psh_qt_$dungeonSysName"], 'time');
if ($dungeonTimeout) {
$formattedTimeout = Conversion::secondsToTimeout(86400 + $dungeonTimeout - time());
$html[] = <<<HTML
<button disabled class='btn btn-danger'>Задание будет через $formattedTimeout ($dungeonName)</button>
HTML;
} else {
$html[] = <<<HTML
<button class="btn btn-success" onclick="location.href='/main.php?rz=1&add_quest=1&city_quest=$dungeonSysName'">$dungeonName</button>
HTML;
}
}
echo implode(' ', $html);
?>
</span>
</FIELDSET>
@ -1081,7 +1003,7 @@ if ($roomSection == 1) {
}
} else {
echo 'Поход в пещеры разрешен один раз в два часа. Осталось еще: ' . Conversion::secondsToTimeout(
60 * 60 * 2 - time() + $dungeon_timeout['time']
60 * 60 * 2 - time() + $dungeonTimeout
) . '<br><small style="color:grey">Но Вы всегда можете приобрести ключ от прохода у любого &quot;копателя пещер&quot; в Торговом зале ;)</small>';
}

View File

@ -1,4 +1,9 @@
<?php
use Core\Db;
use Model\ActionModel;
use User\ItemsModel;
if (!defined('GAME')) {
die();
}
@ -45,8 +50,7 @@ if (isset($_GET['elka_shar']) && isset($_GET['shar_name'])) //Украшение
'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`)
VALUES
(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")'
(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")'
);
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))) {
//получаем свой новогодний подарок за текущий год addItem($id,$uid)
$smt = $u->testAction('`uid` = "' . $u->info['id'] . '" AND `vars` = "take_gift_' . $dt . '" LIMIT 1', 1);
if (!isset($smt['id'])) {
$pid = \User\ItemsModel::addItem($pidid, $u->info['id']);
$smt = (bool)ActionModel::testCount(["uid = $u->info['id']", "vars = take_gift_$dt"]);
if ($smt) {
echo '<font color=red>Вы уже получили свой подарок ;)</font>';
} else {
$pid = ItemsModel::addItem($pidid, $u->info['id']);
if ($pid > 0) {
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']);
@ -75,21 +81,19 @@ if (isset($_GET['take_gift']) && (date('m') == 12 || (date('m') == 1 && date('d'
} else {
echo '<font color=red>Не удалось получить подарок...</font>';
}
} else {
echo '<font color=red>Вы уже получили свой подарок ;)</font>';
}
} 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->info['admin'] == 0) {
$pInfo = '' . $u->info['align'] . '|' . $u->info['clan'] . '|' . $u->info['login'] . '|' . $u->info['level'] . '|' . $u->info['cityreg'] . '';
} else {
if ($u->isModerator()) {
if ($u->isAdmin()) {
$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']) . "'");
}
} elseif (isset($_GET['use_cup'])) {
$smt = $u->testAction('`uid` = "' . $u->info['id'] . '" AND `time` > ' . (time() - 600) . ' AND `vars` = "use_cupNewYear" LIMIT 1', 1);
if (!isset($smt['id'])) {
$smt = (bool)ActionModel::testCount(["uid = $u->info['id']", 'vars = use_cupNewYear', 'time > unix_timestamp() - 600']);
if (!$smt) {
$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');
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)) {
$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>';
} else {
$pInfo = '' . $u->info['align'] . '|' . $u->info['clan'] . '|' . $u->info['login'] . '|' . $u->info['level'] . '|' . $u->info['cityreg'] . '|' . $u->info['id'] . '';
mysql_query(
"INSERT INTO `elka` (`year`,`time`,`pers`,`text`,`city`) VALUES (" . (date('Y', time()) + $dy) . "," . time() . ",'" . $pInfo . "','" . mysql_real_escape_string(
$_POST['message']
) . "','" . $u->info['city'] . "'); "
);
$pInfo = '' . $u->info['align'] . '|' . $u->info['clan'] . '|' . $u->info['login'] . '|' . $u->info['level'] . '|' . $u->info['cityreg'] . '|' . $u->info['id'];
Db::sql("insert into elka (year, time, pers, text, city) values (year(curdate()) + ?, unix_timestamp(),?,?,'')", [$dy, $pInfo, $_POST['message']]);
$u->addAction(time(), 'send_elka', '');
}
}
}
?>
<style type="text/css">
<style>
.pH3 {
COLOR: #8f0000;
@ -167,16 +168,28 @@ if (isset($_GET['take_gift']) && (date('m') == 12 || (date('m') == 1 && date('d'
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>
<div align="right"><?php if ($re != '') {
echo '<font color="red"><b>' . $re . '</b></font>';
} ?></div>
<div class="error"><?= $re ?? '' ?></div>
<div id="hint3" style="visibility:hidden"></div>
<TABLE width="100%" cellspacing="0" cellpadding="0">
<tr>
<td valign="top">
<div align="center" class="pH3">Новогодняя елка <?php
echo $dt; ?>!
<div align="center" class="pH3">Новогодняя елка <?= $dt ?>!
</div>
<br/>
<!-- Подарки -->
@ -189,31 +202,27 @@ if (isset($_GET['take_gift']) && (date('m') == 12 || (date('m') == 1 && date('d'
<span class="pH3"><small>Подарки:</small></span>
<div>
<?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'])) {
echo 'onClick="alert(\'Использовать "Чаша жизненных сил" можно не чаще одного раза в 10 минут\');return false;"';
} ?> /><img src="//img.new-combats.tech/cup2012.gif" style="padding:10px;<?php if (isset($smt['id'])) {
echo 'filter: alpha(opacity=35); -moz-opacity: 0.35; -khtml-opacity: 0.35; opacity: 0.35;';
} ?>" title="Выпить из`Чаши жизненных сил`"></a>
<a href="?use_cup=<?= $code; ?>" <?= $alreadyUsed ? 'onClick="alert(\'Использовать "Чаша жизненных сил" можно не чаще одного раза в 10 минут\');return false;"' : '' ?>>
<img src="//img.new-combats.tech/cup2012.gif" class="present <?= $alreadyUsed ? 'used' : '' ?>" title="Выпить из`Чаши жизненных сил`" alt="">
</a>
<?php
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'])) {
echo 'onClick="return false;"';
} ?> /><img src="//img.new-combats.tech/i/items/<?= 'podarok' . ($dt - 1); ?>.gif" style="padding:10px;<?php if (isset($pd['id'])) {
echo 'filter: alpha(opacity=35); -moz-opacity: 0.35; -khtml-opacity: 0.35; opacity: 0.35;';
} ?>" title="Взять `Новогодний подарок 2023`"></a>
<a href="?take_gift=<?= $code; ?>" <?= $alreadyUsed ? 'onClick="return false;"' : '' ?>>
<img src="//img.new-combats.tech/i/items/<?= 'podarok' . ($dt - 1) ?>.gif" class="present <?= $alreadyUsed ? 'used' : '' ?>" title="Взять `Новогодний подарок 2023`"
alt="">
</a>
<?php } ?>
</div>
</div>
<hr>
<?php
}
//ТУТ Елка
// if($u->info['admin']>0)
// {
?>
<div style="padding-left:10px;">
<span class="pH3"><small>Наряжаем Ёлку:</small></span>

View File

@ -1,6 +1,7 @@
<?php
use Helper\Conversion;
use Model\ActionModel;
if (!defined('GAME')) {
die();
@ -8,22 +9,14 @@ if (!defined('GAME')) {
if ($u->room['file'] == 'enterbezdna') {
if (isset($_GET['rz'])) {
$rz = 1;
} else {
$rz = 0;
}
$rz = isset($_GET['rz']) ? 1 : 0;
$dun = 101;
$er = '';
$dzs = '';
$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'));
@ -35,10 +28,10 @@ if ($u->room['file'] == 'enterbezdna') {
}
}
if (isset($g11['id'])) {
if ($dungeonTimeout) {
$g111 = 0;
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) {
@ -364,7 +357,8 @@ if ($u->room['file'] == 'enterbezdna') {
<tr>
<td bgcolor="#D3D3D3"><img src="//img.new-combats.tech/i/move/links.gif" width="9" height="7"/></td>
<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; ?>';"
title="<?php thisInfRm(
'1.180.0.367', 1
); ?>">Рыцарский магазин</a></td>
</tr>
@ -428,13 +422,13 @@ if ($u->room['file'] == 'enterbezdna') {
<?php
$qsee = '';
$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($hgo['id'])) {
if ($questTimeout) {
echo '<font color="red"><b>Нельзя получать задания чаще одного раза в сутки</b></font><br>';
} else {
$sp = mysql_query('SELECT * FROM `quests` WHERE `line` = 101');
$sp = mysql_query('select * from quests where line = 101');
$dq_add = [];
while ($pl = mysql_fetch_array($sp)) {
if ($u->rep['repangelscity'] == 9999) {
@ -459,7 +453,7 @@ if ($u->room['file'] == 'enterbezdna') {
if ($q->testGood($dq_add) == 1 && $dq_add > 0) {
$q->startq_dn($dq_add['id']);
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']);
} else {
if ($u->rep['repangelscity'] == 9999) {
@ -496,15 +490,15 @@ if ($u->room['file'] == 'enterbezdna') {
<?= $qsee ?>
<span style="padding-left: 10">
<?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/>
<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
} 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>
@ -703,7 +697,6 @@ if (!isset($hgo['id'])) {
);
while ($chk_pl = mysql_fetch_array($chk_cl)) {
if (mysql_query('UPDATE `items_users` SET `delete` = "' . time() . '" WHERE `id` = "' . $chk_pl['id'] . '" LIMIT 1')) {
;
}
{
$x++;
@ -788,7 +781,7 @@ if (!isset($hgo['id'])) {
<?php
} else {
echo 'Поход в пещеры разрешен один раз в два часа. Осталось еще: ' . Conversion::secondsToTimeout(
60 * 60 * 2 - time() + $g11['time']
60 * 60 * 2 - time() + $dungeonTimeout
) . '<br><small style="color:grey">Но Вы всегда можете приобрести ключ от прохода у любого &quot;копателя пещер&quot; в Торговом зале ;)</small>';
}
}

View File

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

View File

@ -1,6 +1,7 @@
<?php
use Helper\Conversion;
use Model\ActionModel;
if (!defined('GAME')) {
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')
);
//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)) {
$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;
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(
'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) . '"'
'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) . '"'
);
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">
<?php
$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
//Генерируем список текущих квестов
$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($hgo['id'])) {
if ($questTimeout) {
echo '<font color="red"><b>Нельзя получать задания чаще одного раза в сутки</b></font><br>';
} else {
$sp = mysql_query('SELECT * FROM `quests` WHERE `line` = ' . $dungeon['id'] . '');
@ -713,14 +712,14 @@ if ($u->room['file'] == 'enterdrago') {
<?php
if ($qc > 0) {
echo 'Вы еще не справились с текущим заданием.';
} elseif (!isset($hgo['id']) && $qc == 0) {
} elseif (!$questTimeout && $qc == 0) {
?>
<br/>
<input type='button' value='Получить задание' onclick='location="main.php?rz=1&add_quest=1"'/>
<?php
} 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()
) . ' )';
}
?>
@ -951,7 +950,6 @@ if ($u->room['file'] == 'enterdrago') {
);
while ($chk_pl = mysql_fetch_array($chk_cl)) {
if (mysql_query('UPDATE `items_users` SET `delete` = "' . time() . '" WHERE `id` = "' . $chk_pl['id'] . '" LIMIT 1')) {
;
}
{
$x++;
@ -1043,7 +1041,7 @@ if ($u->room['file'] == 'enterdrago') {
}
} else {
echo 'Поход в пещеры разрешен один раз в двадцать часов. Осталось еще: ' . Conversion::secondsToTimeout(
60 * 60 * 20 - time() + $dungeon_timeout['time']
60 * 60 * 20 - time() + $dungeonTimeout
) . '<br><small style="color:grey">Но Вы всегда можете приобрести ключ от прохода у любого &quot;копателя пещер&quot; в Торговом зале ;)</small>';
}
}

View File

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

View File

@ -1,6 +1,7 @@
<?php
use Helper\Conversion;
use Model\ActionModel;
if (!defined('GAME')) {
die();
@ -9,13 +10,10 @@ if (!defined('GAME')) {
if ($u->room['file'] == 'enternekro') {
$dun = 11; //для новичков 2-7 лвл
$er = '';
$dzs = '';
$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'));
@ -27,10 +25,10 @@ if ($u->room['file'] == 'enternekro') {
}
}
if (isset($g11['id'])) {
if ($dungeonTimeout) {
$g111 = 0;
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) {
@ -346,7 +344,7 @@ if ($u->room['file'] == 'enternekro') {
<?php
} else {
echo 'Поход в пещеры разрешен один раз в два часа. Осталось еще: ' . Conversion::secondsToTimeout(
7200 - time() + $g11['time']
7200 - time() + $dungeonTimeout
) . '<br><small style="color:grey">Но Вы всегда можете приобрести ключ от прохода у любого &quot;копателя пещер&quot; в Торговом зале ;)</small>';
}
}

View File

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

View File

@ -1,6 +1,7 @@
<?php
use Helper\Conversion;
use Model\ActionModel;
if (!defined('GAME')) {
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;
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 = '';
$qx = 0;
//if($u->info['admin']==0){
$hgo = $u->testAction('`uid` = "' . $u->info['id'] . '" AND `time` >= ' . (time() - 60 * 60 * 24) . ' AND `vars` = "psh_qt_capitalcity" LIMIT 1', 1);
//}
$questTimeout = ActionModel::getOne(["uid = {$u->info['id']}", 'vars = psh_qt_capitalcity', 'time > unix_timestamp() - 86400'], 'time');
if (isset($_GET['add_quest'])) {
if (isset($hgo['id'])) {
if ($questTimeout) {
echo '<font color="red"><b>Нельзя получать задания чаще одного раза в сутки</b></font><br>';
} 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'] . '');
//}
$dq_add = [];
while ($pl = mysql_fetch_array($sp)) {
@ -505,13 +500,13 @@ if ($roomSection == 1) {
<?= $qsee ?>
<span style="padding-left: 10">
<?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/>
<input type='button' value='Получить задание' onclick='location="main.php?rz=1&add_quest=1"'/>
<?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>
@ -716,7 +711,6 @@ if (!isset($hgo['id'])) {
);
while ($chk_pl = mysql_fetch_array($chk_cl)) {
if (mysql_query('UPDATE `items_users` SET `delete` = "' . time() . '" WHERE `id` = "' . $chk_pl['id'] . '" LIMIT 1')) {
;
}
{
$x++;
@ -796,7 +790,7 @@ if (!isset($hgo['id'])) {
}
} else {
echo 'Поход в пещеры разрешен один раз в два часа. Осталось еще: ' . Conversion::secondsToTimeout(
60 * 60 * 2 - time() + $dungeon_timeout['time']
60 * 60 * 2 - time() + $dungeonTimeout
) . '<br><small style="color:grey">Но Вы всегда можете приобрести ключ от прохода у любого &quot;копателя пещер&quot; в Торговом зале ;)</small>';
}
}

View File

@ -1,6 +1,7 @@
<?php
use Helper\Conversion;
use Model\ActionModel;
if (!defined('GAME')) {
die();
@ -9,14 +10,11 @@ if (!defined('GAME')) {
if ($u->room['file'] == 'entersnow') {
$dun = 20; //для новичков 2-7 лвл
$er = '';
$dzs = '';
$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'));
@ -28,10 +26,10 @@ if ($u->room['file'] == 'entersnow') {
}
}
if (isset($g11['id'])) {
if ($dungeonTimeout) {
$g111 = 0;
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) {
@ -351,7 +349,7 @@ if ($u->room['file'] == 'entersnow') {
<?php
} else {
echo 'Поход в пещеры разрешен один раз в два часа. Осталось еще: ' . Conversion::secondsToTimeout(
7200 - time() + $g11['time']
7200 - time() + $dungeonTimeout
) . '<br><small style="color:grey">Но Вы всегда можете приобрести ключ от прохода у любого &quot;копателя пещер&quot; в Торговом зале ;)</small>';
}
}

View File

@ -51,14 +51,13 @@ if (!defined('GAME')) {
<small>
<HR>
<div id="ajaxButtons"<?php
$hgo = $u->testHome();
if (!isset($hgo['id'])) {
if ($u->testHome()) {
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 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" value="Объекты" type="button">
</div><br/>

View File

@ -1,6 +1,7 @@
<?php
use Helper\Conversion;
use Model\ActionModel;
if (!defined('GAME')) {
die();
@ -464,7 +465,7 @@ if ($u->room['file'] == 'house_belaun' && false) {
} // Собираем группу для похода
//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)) {
$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) {
unset($dungeon_timeout);
} // $dungeon_timeout - задержка на посещение пещеры.
if (isset($dungeon_timeout['id'])) // Кто-то передумал и не пойдет в пещеру, так-как уже там был.
if ($u->isAdmin()) {
$dungeonTimeout = 0;
}
if ($dungeonTimeout) // Кто-то передумал и не пойдет в пещеру, так-как уже там был.
{
$dungeonGo = 0;
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) {
mysql_query(
'INSERT INTO `dungeon_items` (`dn`,`user`,`item_id`,`time`,`x`,`y`,`onlyfor`,`quest`) VALUES (
"' . $zid . '","' . $u->info['id'] . '","' . $xr2[0] . '","' . time(
) . '","' . $cord[0] . '","' . $cord[1] . '","' . $u->info['id'] . '","' . $pl['id'] . '"
"' . $zid . '","' . $u->info['id'] . '","' . $xr2[0] . '","' . time() . '","' . $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">
<?php
$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
);
$questTimeout = ActionModel::getOne(["uid = {$u->info['id']}", "vars = psh_qt_{$dungeon['city']}", 'time > unix_timestamp() - 86400', "room = {$u->info['room']}"], 'time');
$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');
@ -1176,7 +1175,7 @@ if ($u->room['file'] == 'house_belaun' && false) {
}
if (isset($_GET['add_quest']) && $qc == 0) {
if (isset($hgo['id'])) {
if ($questTimeout) {
echo '<font color="red"><b>Нельзя получать задания чаще одного раза в сутки</b></font><br>';
} else {
$sp = mysql_query('SELECT * FROM `quests` WHERE `line` = ' . $dungeon['id'] . '');
@ -1234,13 +1233,13 @@ if ($u->room['file'] == 'house_belaun' && false) {
<?php
if ($qc > 0) {
echo 'Вы еще не справились с текущим заданием.';
} elseif (!isset($hgo['id']) && $qc == 0) {
} elseif (!$questTimeout && $qc == 0) {
?>
<br/>
<input type='button' value='Получить задание' onclick='location="main.php?rz=1&add_quest=1"'/>
<?php
} 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>
@ -1454,7 +1453,6 @@ if ($u->room['file'] == 'house_belaun' && false) {
);
while ($chk_pl = mysql_fetch_array($chk_cl)) {
if (mysql_query('UPDATE `items_users` SET `delete` = "' . time() . '" WHERE `id` = "' . $chk_pl['id'] . '" LIMIT 1')) {
;
}
{
$x++;
@ -1566,7 +1564,7 @@ if ($u->room['file'] == 'house_belaun' && false) {
}
} else {
echo 'Поход в пещеры разрешен один раз в два часа. Осталось еще: ' . Conversion::secondsToTimeout(
60 * 60 * 2 - time() + $dungeon_timeout['time']
60 * 60 * 2 - time() + $dungeonTimeout
) . '<br><small style="color:grey">Но Вы всегда можете приобрести ключ от прохода у любого &quot;копателя пещер&quot; в Торговом зале ;)</small>';
}
}

View File

@ -1,44 +1,75 @@
<?php
if(!defined('GAME'))
{
if (!defined('GAME')) {
die();
}
if($u->room['file']=='kinght')
{
?>
<table width="100%" border="0" cellspacing="0" cellpadding="0">
if ($u->room['file'] == 'kinght') {
?>
<table width="100%" border="0" cellspacing="0" cellpadding="0">
<tr>
<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);
if ($usee != false) {
echo $usee[0];
} else {
echo 'information is lost.';
} ?>
</td>
<td width="230" valign="top" style="padding-top:19px;"><?php require_once('modules_data/stats_loc.php'); ?></td>
<td valign="top"><div align="right">
<?php if( $u->error != '' ) { ?>
<td valign="top">
<div align="right">
<?php if ($u->error != '') { ?>
<font color=red><b>
<?= $u->error; ?></font></b>
<?php } ?>
<table border="0" cellpadding="0" cellspacing="0">
<tr align="right" valign="top">
<td>
<?php if($re!=''){ echo '<font color="red"><b>'.$re.'</b></font>'; } ?>
<?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: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';"
src="//img.new-combats.tech/i/images/300x225/map_sec3.gif"
width="101" height="37" 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" width="16" height="18" title="Вы находитесь в '<?= $u->room['name']; ?>'" /></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: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>
<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: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>
<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>
<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 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>
@ -47,15 +78,16 @@ if($u->room['file']=='kinght')
</table>
<div style="display:none; height:0px " id="moveto"></div>
<?php
if($u->info['level']<6)
{
if ($u->info['level'] < 6) {
echo '
Вам все время кажется что за вами следят? Чудится, что случайный попутчик мечтает всадить вам топор в спину? При совершении очередной покупки в гос. магазине мучает ощущение, что вас обманули? Кажется, что симпатичная девушка напротив смотрит на вас как на пищу? Успокойтесь, это не паранойя. Это реалии Capital city. Города Тьмы.
';
}else{
} else {
echo 'Возможно, вы ошиблись этажом - настоящие сражения проходят этажом выше.';
} ?>
</small></div></td>
</small>
</div>
</td>
<td>
<!-- <br /><span class="menutop"><nobr>Комната для новичков</nobr></span>-->
</td>
@ -63,19 +95,21 @@ if($u->room['file']=='kinght')
</table>
<small>
<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="Новости"
type="button" name="forum">
<INPUT onclick="location.href='main.php?zayvka=<?= $code; ?>';" class="btn btn-inverse" value="Поединки" type="button" name="combats">
<?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 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 />
<?php if ($u->testHome()) { ?><INPUT onclick="location.href='main.php?homeworld=<?= $code; ?>';" class="btn btn-inverse" value="Возврат" type="button" name="combats2"><?php } ?>
<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>
<em>Администрация.</strong> </em></small> <BR>
<?= $rowonmax; ?><BR>
</div></td>
</tr>
</table>
<?php
</table>
<?php
}
?>

View File

@ -1,73 +1,70 @@
<?php
if(!defined('GAME'))
{
if (!defined('GAME')) {
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'));
if(!isset($tst['id'])) {
if(isset($_GET['noobgo']) || $c['noobgade'] == false) {
if($_GET['noobgo'] == 1 && $c['noobgade'] == true) {
$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($_GET['noobgo']) || $c['noobgade'] == false) {
if ($_GET['noobgo'] == 1 && $c['noobgade'] == true) {
//Согласился (создаем пещеру и телепортируем туда
$ins = mysql_query('INSERT INTO `dungeon_now` (`city`,`uid`,`id2`,`name`,`time_start`)
VALUES ("'.$u->info['city'].'","'.$u->info['id'].'","106","Академия Новичков","'.time().'")');
if($ins){
VALUES ("' . $u->info['city'] . '","' . $u->info['id'] . '","106","Академия Новичков","' . time() . '")');
if ($ins) {
$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 = '';
$map_locs = array();
$spm2 = mysql_query('SELECT `id`,`x`,`y` FROM `dungeon_map` WHERE `id_dng` = 106');
while( $plm2 = mysql_fetch_array( $spm2 ) ) {
$map_locs[] = array($plm2['x'],$plm2['y']);
$map_locs = [];
$spm2 = mysql_query('select id,x,y from dungeon_map where id_dng = 106');
while ($plm2 = mysql_fetch_array($spm2)) {
$map_locs[] = [$plm2['x'], $plm2['y']];
}
unset( $spm2 , $plm2 );
unset($spm2, $plm2);
$pxd = 0;
while( $pu = mysql_fetch_array($su) ) {
while ($pu = mysql_fetch_array($su)) {
$pxd++;
$ids .= ' `id` = "'.$pu['id'].'" OR';
$ids .= ' `id` = "' . $pu['id'] . '" OR';
}
$ids = rtrim($ids,'OR');
$ids = rtrim($ids, 'OR');
$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.'');
if( $upd1 ){
$upd2 = mysql_query('UPDATE `users` SET `room` = "391" 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) {
$upd2 = mysql_query('UPDATE `users` SET `room` = "391" WHERE ' . $ids . '');
//Добавляем ботов и обьекты в пещеру $zid с for_dn = $dungeon['id']
//Добавляем ботов
$vls = '';
$sp = mysql_query('SELECT * FROM `dungeon_bots` WHERE `for_dn` = 106');
while( $pl = mysql_fetch_array( $sp ) ) {
if( $pl['id_bot'] == 0 && $pl['bot_group'] !=''){
$bots = explode( ',', $pl['bot_group'] );
$pl['id_bot'] = (int)$bots[rand(0, count($bots)-1 )];
$sp = mysql_query('select * from dungeon_bots where for_dn = 106');
while ($pl = mysql_fetch_array($sp)) {
if ($pl['id_bot'] == 0 && $pl['bot_group'] != '') {
$bots = explode(',', $pl['bot_group']);
$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);
}
$vls = rtrim($vls,',');
$ins1 = mysql_query('INSERT INTO `dungeon_bots` (`dn`,`id_bot`,`colvo`,`items`,`x`,`y`,`dialog`,`atack`,`go_bot`,`noatack`) VALUES '.$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 . '');
//Добавляем обьекты
$vls = '';
$sp = mysql_query('SELECT * FROM `dungeon_obj` WHERE `for_dn` = 106');
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'].'"),';
$sp = mysql_query('select * from dungeon_obj where for_dn = 106');
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 = rtrim($vls,',');
if( $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.'');
$vls = rtrim($vls, ',');
if ($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 . '');
} else {
$ins2 = true;
}
if( $upd2 && $ins1 && $ins2 ){
die('<script>location="main.php?rnd='.$code.'";</script>');
if ($upd2 && $ins1 && $ins2) {
die('<script>location="main.php?rnd=' . $code . '";</script>');
} else {
$error = 'Ошибка перехода в подземелье...';
}
@ -80,23 +77,23 @@ if($u->room['file']=='novich')
//
//header('location: main.php');
die();
}else{
} else {
//Отказался (добавляем квест, системку и пошел нах)
mysql_query('INSERT INTO `dialog_act` (
`uid`,`var`,`time`
) VALUES (
"'.$u->info['id'].'","noobqst1","'.time().'"
"' . $u->info['id'] . '","noobqst1","' . time() . '"
)');
//Начало обучения
$humor = array(
0 => array(
''
),
1 => array(
''
)
);
$humor = [
0 => [
'',
],
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');
@ -108,7 +105,7 @@ if($u->room['file']=='novich')
//echo '<div><font color=red><b>Вы отказались от обучения, второй попытки больше не будет!</b></font></div>';
}
}else{
} else {
echo '<script>
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;\');
@ -117,26 +114,41 @@ if($u->room['file']=='novich')
</script>';
}
}
?>
<table width="100%" border="0" cellspacing="0" cellpadding="0">
?>
<table width="100%" border="0" cellspacing="0" cellpadding="0">
<tr>
<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);
if ($usee != false) {
echo $usee[0];
} else {
echo 'information is lost.';
} ?>
</td>
<td width="230" valign="top" style="padding-top:19px;"><?php require_once('modules_data/stats_loc.php'); ?></td>
<td valign="top"><div align="right">
<td valign="top">
<div align="right">
<table width="510" border="0" cellpadding="0" cellspacing="0">
<tr align="right" valign="top">
<td>
<?php if($re!=''){ echo '<font color="red"><b>'.$re.'</b></font>'; } ?>
<?php if ($re != '') {
echo '<font color="red"><b>' . $re . '</b></font>';
} ?>
<table border="0" cellspacing="0" cellpadding="0">
<tr>
<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" width="500" height="240" border="1"/>
<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>
<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>
<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>
<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 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"/>
<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>
<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>
<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>
<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>
<?= $goline; ?>
</div>
@ -144,12 +156,15 @@ if($u->room['file']=='novich')
</tr>
</table>
<div style="display:none; height:0px " id="moveto"></div>
Чтобы начать играть,<b>Вам нужно прочесть подсказку ( ниже )</b>.<br />
После прочтения,ниже,воспользуйтесь кнопкой<b>"Возврат"</b><br />
<?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 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>
Чтобы начать играть,<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>
@ -157,13 +172,13 @@ if($u->room['file']=='novich')
</table>
<small>
<HR>
<br />
<br/>
<strong>Внимание!Смените пароль на уникальный,который не использовался ранее в подобных проектах,это обезопасит вашего персонажа от взлома.<BR>
<em>Администрация.</strong> </em></small> <BR>
<?= $rowonmax; ?><BR>
</div></td>
</tr>
</table>
<?php
</table>
<?php
}
?>

View File

@ -1,4 +1,8 @@
<?php
use Core\Db;
use Model\ActionModel;
if (!defined('GAME')) {
die();
}
@ -30,7 +34,7 @@ if ($u->info['admin'] > 0) {
}
#---пара проверок ;)
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 ($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');
@ -797,7 +801,7 @@ if ($u->info['admin'] > 0) {
if ($p_count > 9) {
echo '<b><font color=red>Вы не можете создавать более десяти персонажей</font></b><br>';
} 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)
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']]);

View File

@ -1,6 +1,7 @@
<?php
use Helper\Conversion;
use Model\ActionModel;
if (!defined('GAME')) {
die();
@ -9,13 +10,11 @@ if (!defined('GAME')) {
if ($u->room['file'] == 'penter') {
$dun = 1; //для новичков 2-7 лвл
$er = '';
$dzs = '';
$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'));
@ -28,10 +27,10 @@ if ($u->room['file'] == 'penter') {
}
}
if (isset($g11['id'])) {
if ($dungeonTimeout) {
$g111 = 0;
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) {
@ -379,7 +378,7 @@ if ($u->room['file'] == 'penter') {
<?php
} else {
echo 'Поход в пещеры разрешен один раз в два часа. Осталось еще: ' . Conversion::secondsToTimeout(
7200 - time() + $g11['time']
7200 - time() + $dungeonTimeout
) . '<br><small style="color:grey">Но Вы всегда можете приобрести ключ от прохода у любого &quot;копателя пещер&quot; в Торговом зале ;)</small>';
}
}

View File

@ -1,31 +1,43 @@
<?php
if(!defined('GAME'))
{
if (!defined('GAME')) {
die();
}
if($u->room['file']=='perehod')
{
?>
<table width="100%" border="0" cellspacing="0" cellpadding="0">
if ($u->room['file'] == 'perehod') {
?>
<table width="100%" border="0" cellspacing="0" cellpadding="0">
<tr>
<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);
if ($usee != false) {
echo $usee[0];
} else {
echo 'information is lost.';
} ?>
</td>
<td width="230" valign="top" style="padding-top:19px;"><?php require_once('modules_data/stats_loc.php'); ?></td>
<td valign="top"><div align="right">
<td valign="top">
<div align="right">
<table border="0" cellpadding="0" cellspacing="0">
<tr align="right" valign="top">
<td>
<?php if($re!=''){ echo '<font color="red"><b>'.$re.'</b></font>'; } ?>
<?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/navig2.jpg" id="img_ione" width="500" height="240" border="1"/>
<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>
<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>
<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>
<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"/>
<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>
<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>
<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>
<div id="snow"></div>
<?= $goline; ?>
</div>
@ -33,12 +45,15 @@ if($u->room['file']=='perehod')
</tr>
</table>
<div style="display:none; height:0px " id="moveto"></div>
Чтобы начать играть,<b>Вам нужно прочесть подсказку ( ниже )</b>.<br />
После прочтения,ниже,воспользуйтесь кнопкой<b>"Возврат"</b><br />
<?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 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>
Чтобы начать играть,<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>
@ -46,15 +61,15 @@ if($u->room['file']=='perehod')
</table>
<small>
<HR>
<br />
<br/>
<strong>Внимание!Смените пароль на уникальный,который не использовался ранее в подобных проектах,это обезопасит вашего персонажа от взлома.<BR>
<em>Администрация.</strong> </em></small> <BR>
<?= $rowonmax; ?><BR>
</div></td>
</tr>
</table>
<?php
</table>
<?php
}
?>

View File

@ -1,45 +1,66 @@
<?php
if(!defined('GAME'))
{
if (!defined('GAME')) {
die();
}
if($u->room['file']=='ric_zv')
{
?>
<link rel="stylesheet" type="text/css" href="/css/loc_bk.css">
<table width="100%" border="0" cellspacing="0" cellpadding="0">
if ($u->room['file'] == 'ric_zv') {
?>
<link rel="stylesheet" type="text/css" href="/css/loc_bk.css">
<table width="100%" border="0" cellspacing="0" cellpadding="0">
<tr>
<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);
if ($usee != false) {
echo $usee[0];
} else {
echo 'information is lost.';
} ?>
</td>
<td width="230" valign="top" style="padding-top:19px;"><?php require_once('modules_data/stats_loc.php'); ?></td>
<td valign="top"><div align="right">
<td valign="top">
<div align="right">
<table border="0" cellpadding="0" cellspacing="0">
<tr align="right" valign="top">
<td>
<?php if($re!=''){ echo '<font color="red"><b>'.$re.'</b></font>'; } ?>
<?php if ($re != '') {
echo '<font color="red"><b>' . $re . '</b></font>';
} ?>
<table width="500" border="0" cellspacing="0" cellpadding="0">
<tr>
<td>
<?php if( $u->error != '' ) { ?>
<?php if ($u->error != '') { ?>
<font color=red><b>
<?= $u->error; ?></font></b>
<?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"/>
<img class="zv1" onClick="alert('Проход через Бойцовский Клуб!');" src="//img.new-combats.tech/i/images/loc_bk/1x1.gif" style="left: 50px; top: 169px; z-index:90;">
<img class="cp" onClick="alert('Проход через Бойцовский Клуб!');" src="//img.new-combats.tech/i/images/loc_bk/1x1.gif" 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" style="left: 350px; top: 169px; z-index:90;">
<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;">
<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;">
<img class="zn" onClick="alert('Проход через Бойцовский Клуб!');" src="//img.new-combats.tech/i/images/loc_bk/1x1.gif" style="left: 190px; top: 30px; z-index:90;">
<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;">
<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;">
<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';">
<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"/>
<img class="zv1" onClick="alert('Проход через Бойцовский Клуб!');" src="//img.new-combats.tech/i/images/loc_bk/1x1.gif"
style="left: 50px; top: 169px; z-index:90;">
<img class="cp" onClick="alert('Проход через Бойцовский Клуб!');" src="//img.new-combats.tech/i/images/loc_bk/1x1.gif"
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"
style="left: 350px; top: 169px; z-index:90;">
<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;">
<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;">
<img class="zn" onClick="alert('Проход через Бойцовский Клуб!');" src="//img.new-combats.tech/i/images/loc_bk/1x1.gif"
style="left: 190px; top: 30px; z-index:90;">
<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;">
<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;">
<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>
<?}?>
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>
@ -48,15 +69,16 @@ if($u->room['file']=='ric_zv')
</table>
<div style="display:none; height:0px " id="moveto"></div>
<?php
if($u->info['level']<6)
{
if ($u->info['level'] < 6) {
echo '
Вам все время кажется что за вами следят? Чудится, что случайный попутчик мечтает всадить вам топор в спину? При совершении очередной покупки в гос. магазине мучает ощущение, что вас обманули? Кажется, что симпатичная девушка напротив смотрит на вас как на пищу? Успокойтесь, это не паранойя. Это реалии Capital city. Города Тьмы.
';
}else{
} else {
echo 'Возможно, вы ошиблись этажом - настоящие сражения проходят этажом выше.';
} ?>
</small></div></td>
</small>
</div>
</td>
<td>
<!-- <br /><span class="menutop"><nobr>Комната для новичков</nobr></span>-->
</td>
@ -64,19 +86,21 @@ if($u->room['file']=='ric_zv')
</table>
<small>
<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="Новости"
type="button" name="forum">
<INPUT onclick="location.href='main.php?zayvka=<?= $code; ?>';" class="btn btn-inverse" value="Поединки" type="button" name="combats">
<?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 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 />
<?php if ($u->testHome()) { ?><INPUT onclick="location.href='main.php?homeworld=<?= $code; ?>';" class="btn btn-inverse" value="Возврат" type="button" name="combats2"><?php } ?>
<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>
<em>Администрация.</strong> </em></small> <BR>
<?= $rowonmax; ?><BR>
</div></td>
</tr>
</table>
<?php
</table>
<?php
}
?>

View File

@ -1,6 +1,7 @@
<?php
use Core\Db;
use Model\ActionModel;
if (!defined('GAME')) {
die();
@ -55,7 +56,7 @@ $hostel_option = [
'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)) {
$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;
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()

View File

@ -1,44 +1,75 @@
<?php
if(!defined('GAME'))
{
if (!defined('GAME')) {
die();
}
if($u->room['file']=='torg')
{
?>
<table width="100%" border="0" cellspacing="0" cellpadding="0">
if ($u->room['file'] == 'torg') {
?>
<table width="100%" border="0" cellspacing="0" cellpadding="0">
<tr>
<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);
if ($usee != false) {
echo $usee[0];
} else {
echo 'information is lost.';
} ?>
</td>
<td width="230" valign="top" style="padding-top:19px;"><?php require_once('modules_data/stats_loc.php'); ?></td>
<td valign="top"><div align="right">
<?php if( $u->error != '' ) { ?>
<td valign="top">
<div align="right">
<?php if ($u->error != '') { ?>
<font color=red><b>
<?= $u->error; ?></font></b>
<?php } ?>
<table border="0" cellpadding="0" cellspacing="0">
<tr align="right" valign="top">
<td>
<?php if($re!=''){ echo '<font color="red"><b>'.$re.'</b></font>'; } ?>
<?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: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';"
src="//img.new-combats.tech/i/images/300x225/map_sec3.gif" width="101" height="37" 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" title="Вы находитесь в '<?= $u->room['name']; ?>'" /></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"
title="Вы находитесь в '<?= $u->room['name']; ?>'"/>
</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: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>
<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>
<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 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 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 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>
@ -47,15 +78,16 @@ if($u->room['file']=='torg')
</table>
<div style="display:none; height:0px " id="moveto"></div>
<?php
if($u->info['level']<6)
{
if ($u->info['level'] < 6) {
echo '
Вам все время кажется что за вами следят? Чудится, что случайный попутчик мечтает всадить вам топор в спину? При совершении очередной покупки в гос. магазине мучает ощущение, что вас обманули? Кажется, что симпатичная девушка напротив смотрит на вас как на пищу? Успокойтесь, это не паранойя. Это реалии Capital city. Города Тьмы.
';
}else{
} else {
echo 'Возможно, вы ошиблись этажом - настоящие сражения проходят этажом выше.';
} ?>
</small></div></td>
</small>
</div>
</td>
<td>
<!-- <br /><span class="menutop"><nobr>Комната для новичков</nobr></span>-->
</td>
@ -63,19 +95,21 @@ if($u->room['file']=='torg')
</table>
<small>
<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="Новости"
type="button" name="forum">
<INPUT onclick="location.href='main.php?zayvka=<?= $code; ?>';" class="btn btn-inverse" value="Поединки" type="button" name="combats">
<?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 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 />
<?php if ($u->testHome()) { ?><INPUT onclick="location.href='main.php?homeworld=<?= $code; ?>';" class="btn btn-inverse" value="Возврат" type="button" name="combats2"><?php } ?>
<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>
<em>Администрация.</strong> </em></small> <BR>
<?= $rowonmax; ?><BR>
</div></td>
</tr>
</table>
<?php
</table>
<?php
}
?>

View File

@ -1,45 +1,66 @@
<?php
if(!defined('GAME'))
{
if (!defined('GAME')) {
die();
}
if($u->room['file']=='trade_zv')
{
?>
<link rel="stylesheet" type="text/css" href="/css/loc_bk.css">
<table width="100%" border="0" cellspacing="0" cellpadding="0">
if ($u->room['file'] == 'trade_zv') {
?>
<link rel="stylesheet" type="text/css" href="/css/loc_bk.css">
<table width="100%" border="0" cellspacing="0" cellpadding="0">
<tr>
<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);
if ($usee != false) {
echo $usee[0];
} else {
echo 'information is lost.';
} ?>
</td>
<td width="230" valign="top" style="padding-top:19px;"><?php require_once('modules_data/stats_loc.php'); ?></td>
<td valign="top"><div align="right">
<td valign="top">
<div align="right">
<table border="0" cellpadding="0" cellspacing="0">
<tr align="right" valign="top">
<td>
<?php if($re!=''){ echo '<font color="red"><b>'.$re.'</b></font>'; } ?>
<?php if ($re != '') {
echo '<font color="red"><b>' . $re . '</b></font>';
} ?>
<table width="500" border="0" cellspacing="0" cellpadding="0">
<tr>
<td>
<?php if( $u->error != '' ) { ?>
<?php if ($u->error != '') { ?>
<font color=red><b>
<?= $u->error; ?></font></b>
<?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"/>
<img class="zv1" onClick="alert('Проход через Бойцовский Клуб!');" src="//img.new-combats.tech/i/images/loc_bk/1x1.gif" style="left: 50px; top: 169px; z-index:90;">
<img class="cp" onClick="alert('Проход через Бойцовский Клуб!');" src="//img.new-combats.tech/i/images/loc_bk/1x1.gif" 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" style="left: 350px; top: 169px; z-index:90;">
<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;">
<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;">
<img class="zn" onClick="alert('Проход через Бойцовский Клуб!');" src="//img.new-combats.tech/i/images/loc_bk/1x1.gif" style="left: 190px; top: 30px; z-index:90;">
<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;">
<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;">
<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';">
<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"/>
<img class="zv1" onClick="alert('Проход через Бойцовский Клуб!');" src="//img.new-combats.tech/i/images/loc_bk/1x1.gif"
style="left: 50px; top: 169px; z-index:90;">
<img class="cp" onClick="alert('Проход через Бойцовский Клуб!');" src="//img.new-combats.tech/i/images/loc_bk/1x1.gif"
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"
style="left: 350px; top: 169px; z-index:90;">
<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;">
<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;">
<img class="zn" onClick="alert('Проход через Бойцовский Клуб!');" src="//img.new-combats.tech/i/images/loc_bk/1x1.gif"
style="left: 190px; top: 30px; z-index:90;">
<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;">
<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;">
<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>
<?}?>
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>
@ -48,15 +69,16 @@ if($u->room['file']=='trade_zv')
</table>
<div style="display:none; height:0px " id="moveto"></div>
<?php
if($u->info['level']<6)
{
if ($u->info['level'] < 6) {
echo '
Вам все время кажется что за вами следят? Чудится, что случайный попутчик мечтает всадить вам топор в спину? При совершении очередной покупки в гос. магазине мучает ощущение, что вас обманули? Кажется, что симпатичная девушка напротив смотрит на вас как на пищу? Успокойтесь, это не паранойя. Это реалии Capital city. Города Тьмы.
';
}else{
} else {
echo 'Возможно, вы ошиблись этажом - настоящие сражения проходят этажом выше.';
} ?>
</small></div></td>
</small>
</div>
</td>
<td>
<!-- <br /><span class="menutop"><nobr>Комната для новичков</nobr></span>-->
</td>
@ -64,19 +86,21 @@ if($u->room['file']=='trade_zv')
</table>
<small>
<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="Новости"
type="button" name="forum">
<INPUT onclick="location.href='main.php?zayvka=<?= $code; ?>';" class="btn btn-inverse" value="Поединки" type="button" name="combats">
<?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 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 />
<?php if ($u->testHome()) { ?><INPUT onclick="location.href='main.php?homeworld=<?= $code; ?>';" class="btn btn-inverse" value="Возврат" type="button" name="combats2"><?php } ?>
<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>
<em>Администрация.</strong> </em></small> <BR>
<?= $rowonmax; ?><BR>
</div></td>
</tr>
</table>
<?php
</table>
<?php
}
?>

View File

@ -1,38 +1,59 @@
<?php
if(!defined('GAME'))
{
if (!defined('GAME')) {
die();
}
if($u->room['file']=='zalu')
{
?>
<table width="100%" border="0" cellspacing="0" cellpadding="0">
if ($u->room['file'] == 'zalu') {
?>
<table width="100%" border="0" cellspacing="0" cellpadding="0">
<tr>
<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);
if ($usee != false) {
echo $usee[0];
} else {
echo 'information is lost.';
} ?>
</td>
<td width="230" valign="top" style="padding-top:19px;"><?php require_once('modules_data/stats_loc.php'); ?></td>
<td valign="top"><div align="right">
<td valign="top">
<div align="right">
<table border="0" cellpadding="0" cellspacing="0">
<tr align="right" valign="top">
<td>
<?php if($re!=''){ echo '<font color="red"><b>'.$re.'</b></font>'; } ?>
<?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;" 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: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>
<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>
<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>
<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>
<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>
<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: 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>
<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>
<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>
@ -41,15 +62,16 @@ if($u->room['file']=='zalu')
</table>
<div style="display:none; height:0px " id="moveto"></div>
<?php
if($u->info['level']<6)
{
if ($u->info['level'] < 6) {
echo '
Вам все время кажется что за вами следят? Чудится, что случайный попутчик мечтает всадить вам топор в спину? При совершении очередной покупки в гос. магазине мучает ощущение, что вас обманули? Кажется, что симпатичная девушка напротив смотрит на вас как на пищу? Успокойтесь, это не паранойя. Это реалии Capital city. Города Тьмы.
';
}else{
} else {
echo 'Возможно, вы ошиблись этажом - настоящие сражения проходят этажом выше.';
} ?>
</small></div></td>
</small>
</div>
</td>
<td>
<!-- <br /><span class="menutop"><nobr>Комната для новичков</nobr></span>-->
</td>
@ -57,20 +79,21 @@ if($u->room['file']=='zalu')
</table>
<small>
<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 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="Форум"
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" value="Объекты" type="button">
<br />
<br/>
<strong>Внимание!Смените пароль на уникальный,который не использовался ранее в подобных проектах,это обезопасит вашего персонажа от взлома.<BR>
<em>Администрация.</strong> </em></small> <BR>
<?= $rowonmax; ?><BR>
</div></td>
</tr>
</table>
<?php
</table>
<?php
}
?>

View File

@ -82,10 +82,10 @@ if (!empty($re)) {
</table>
<small>
<HR>
<?php $hgo = $u->testHome();
if (!isset($hgo['id'])) { ?><INPUT onclick="location.href='main.php?homeworld=<?= $code; ?>';" class="btn" value="Возврат" type="button"
<?php
if ($u->testHome()) { ?><INPUT onclick="location.href='main.php?homeworld=<?= $code; ?>';" class="btn" value="Возврат" type="button"
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="Подсказка"
style="color:red;" type="button">
<INPUT onclick="location.href='main.php?clubmap=<?= $code; ?>';" class="btn" value="Карта клуба" type="button" name="combats2">

View File

@ -1,34 +1,50 @@
<?php
if(!defined('GAME'))
{
if (!defined('GAME')) {
die();
}
if($u->room['file']=='zalu_pal2')
{
?>
<table width="100%" border="0" cellspacing="0" cellpadding="0">
if ($u->room['file'] == 'zalu_pal2') {
?>
<table width="100%" border="0" cellspacing="0" cellpadding="0">
<tr>
<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);
if ($usee != false) {
echo $usee[0];
} else {
echo 'information is lost.';
} ?>
</td>
<td width="230" valign="top" style="padding-top:19px;"><?php require_once('modules_data/stats_loc.php'); ?></td>
<td valign="top"><div align="right">
<td valign="top">
<div align="right">
<table border="0" cellpadding="0" cellspacing="0">
<tr align="right" valign="top">
<td>
<?php if($re!=''){ echo '<font color="red"><b>'.$re.'</b></font>'; } ?>
<?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;" 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: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>
<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>
<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>
<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>
<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>
<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>
<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>
<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>
@ -37,7 +53,9 @@ if($u->room['file']=='zalu_pal2')
</table>
<div style="display:none; height:0px " id="moveto"></div>
Возможно, вы ошиблись этажом - настоящие сражения проходят этажом выше.
</small></div></td>
</small>
</div>
</td>
<td>
<!-- <br /><span class="menutop"><nobr>Комната для новичков</nobr></span>-->
</td>
@ -45,20 +63,21 @@ if($u->room['file']=='zalu_pal2')
</table>
<small>
<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 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="Форум"
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" value="Объекты" type="button">
<br />
<br/>
<strong>Внимание!Смените пароль на уникальный,который не использовался ранее в подобных проектах,это обезопасит вашего персонажа от взлома.<BR>
<em>Администрация.</strong> </em></small> <BR>
<?= $rowonmax; ?><BR>
</div></td>
</tr>
</table>
<?php
</table>
<?php
}
?>

View File

@ -1,38 +1,55 @@
<?php
if(!defined('GAME'))
{
if (!defined('GAME')) {
die();
}
if($u->room['file']=='zalu_pal3')
{
?>
<table width="100%" border="0" cellspacing="0" cellpadding="0">
if ($u->room['file'] == 'zalu_pal3') {
?>
<table width="100%" border="0" cellspacing="0" cellpadding="0">
<tr>
<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);
if ($usee != false) {
echo $usee[0];
} else {
echo 'information is lost.';
} ?>
</td>
<td width="230" valign="top" style="padding-top:19px;"><?php require_once('modules_data/stats_loc.php'); ?></td>
<td valign="top"><div align="right">
<td valign="top">
<div align="right">
<table border="0" cellpadding="0" cellspacing="0">
<tr align="right" valign="top">
<td>
<?php if($re!=''){ echo '<font color="red"><b>'.$re.'</b></font>'; } ?>
<?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;" 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: 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>
<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>
<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>
<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>
<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>
<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: 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>
<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: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>
<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>
@ -41,7 +58,9 @@ if($u->room['file']=='zalu_pal3')
</table>
<div style="display:none; height:0px " id="moveto"></div>
Возможно, вы ошиблись этажом - настоящие сражения проходят этажом выше.
</small></div></td>
</small>
</div>
</td>
<td>
<!-- <br /><span class="menutop"><nobr>Комната для новичков</nobr></span>-->
</td>
@ -49,12 +68,13 @@ if($u->room['file']=='zalu_pal3')
</table>
<small>
<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 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="Форум"
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" value="Объекты" type="button">
<br />
<br/>
<strong>Внимание!Смените пароль на уникальный,который не использовался ранее в подобных проектах,это обезопасит вашего персонажа от взлома.<BR>
<em>Администрация.</strong> </em></small> <BR>
<?= $rowonmax; ?><BR>
@ -66,8 +86,8 @@ if($u->room['file']=='zalu_pal3')
<td valign="top" style="padding-top:19px;">&nbsp;</td>
<td valign="top">&nbsp;</td>
</tr>
</table>
<?php
</table>
<?php
}
?>

View File

@ -1,38 +1,55 @@
<?php
if(!defined('GAME'))
{
if (!defined('GAME')) {
die();
}
if($u->room['file']=='zalu_pal4')
{
?>
<table width="100%" border="0" cellspacing="0" cellpadding="0">
if ($u->room['file'] == 'zalu_pal4') {
?>
<table width="100%" border="0" cellspacing="0" cellpadding="0">
<tr>
<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);
if ($usee != false) {
echo $usee[0];
} else {
echo 'information is lost.';
} ?>
</td>
<td width="230" valign="top" style="padding-top:19px;"><?php require_once('modules_data/stats_loc.php'); ?></td>
<td valign="top"><div align="right">
<td valign="top">
<div align="right">
<table border="0" cellpadding="0" cellspacing="0">
<tr align="right" valign="top">
<td>
<?php if($re!=''){ echo '<font color="red"><b>'.$re.'</b></font>'; } ?>
<?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;" 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: 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>
<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>
<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>
<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>
<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>
<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: 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>
<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: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>
<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>
@ -41,7 +58,9 @@ if($u->room['file']=='zalu_pal4')
</table>
<div style="display:none; height:0px " id="moveto"></div>
Возможно, вы ошиблись этажом - настоящие сражения проходят этажом выше.
</small></div></td>
</small>
</div>
</td>
<td>
<!-- <br /><span class="menutop"><nobr>Комната для новичков</nobr></span>-->
</td>
@ -49,12 +68,13 @@ if($u->room['file']=='zalu_pal4')
</table>
<small>
<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 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="Форум"
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" value="Объекты" type="button">
<br />
<br/>
<strong>Внимание!Смените пароль на уникальный,который не использовался ранее в подобных проектах,это обезопасит вашего персонажа от взлома.<BR>
<em>Администрация.</strong> </em></small> <BR>
<?= $rowonmax; ?><BR>
@ -66,8 +86,8 @@ if($u->room['file']=='zalu_pal4')
<td valign="top" style="padding-top:19px;">&nbsp;</td>
<td valign="top">&nbsp;</td>
</tr>
</table>
<?php
</table>
<?php
}
?>

View File

@ -1,36 +1,84 @@
<?php
if(!defined('GAME'))
{
if (!defined('GAME')) {
die();
}
if($u->room['file']=='zv2')
{
?>
<table width="100%" border="0" cellspacing="0" cellpadding="0">
if ($u->room['file'] == 'zv2') {
?>
<table width="100%" border="0" cellspacing="0" cellpadding="0">
<tr>
<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);
if ($usee != false) {
echo $usee[0];
} else {
echo 'information is lost.';
} ?>
</td>
<td width="230" valign="top" style="padding-top:19px;"><?php require_once('modules_data/stats_loc.php'); ?></td>
<td valign="top"><div align="right">
<td valign="top">
<div align="right">
<table border="0" cellpadding="0" cellspacing="0">
<tr align="right" valign="top">
<td>
<?php if($re!=''){ echo '<font color="red"><b>'.$re.'</b></font>'; } ?>
<?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/navig.jpg" id="img_ione" width="500" height="240" border="1"/>
<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>
<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>
<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>
<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 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: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>
<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>
<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>
<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>
@ -39,13 +87,14 @@ if($u->room['file']=='zv2')
</table>
<div style="display:none; height:0px " id="moveto"></div>
<?php
if($u->info['level']<6)
{
if ($u->info['level'] < 6) {
echo '
Вам все время кажется что за вами следят? Чудится, что случайный попутчик мечтает всадить вам топор в спину? При совершении очередной покупки в гос. магазине мучает ощущение, что вас обманули? Кажется, что симпатичная девушка напротив смотрит на вас как на пищу? Успокойтесь, это не паранойя. Это реалии Capital city. Города Тьмы.
';
} ?>
</small></div></td>
</small>
</div>
</td>
<td>
<!-- <br /><span class="menutop"><nobr>Комната для новичков</nobr></span>-->
</td>
@ -53,18 +102,19 @@ if($u->room['file']=='zv2')
</table>
<small>
<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;"
type="button">
<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); ?>
<br />
<?php if ($u->testHome()) { ?><INPUT onclick="location.href='main.php?homeworld=<?= $code; ?>';" class="btn" value="Возврат" type="button" name="combats2"><?php } ?>
<br/>
<strong>Внимание!Смените пароль на уникальный,который не использовался ранее в подобных проектах,это обезопасит вашего персонажа от взлома.<BR>
<em>Администрация.</strong> </em></small> <BR>
<?= $rowonmax; ?><BR>
</div></td>
</tr>
</table>
<?php
</table>
<?php
}
?>

View File

@ -1,40 +1,86 @@
<?php
if(!defined('GAME'))
{
if (!defined('GAME')) {
die();
}
if($u->room['file']=='zv3')
{
?>
<table width="100%" border="0" cellspacing="0" cellpadding="0">
if ($u->room['file'] == 'zv3') {
?>
<table width="100%" border="0" cellspacing="0" cellpadding="0">
<tr>
<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);
if ($usee != false) {
echo $usee[0];
} else {
echo 'information is lost.';
} ?>
</td>
<td width="230" valign="top" style="padding-top:19px;"><?php require_once('modules_data/stats_loc.php'); ?></td>
<td valign="top"><div align="right">
<td valign="top">
<div align="right">
<table border="0" cellpadding="0" cellspacing="0">
<tr align="right" valign="top">
<td>
<?php
if( $u->error != '' ) {
if ($u->error != '') {
$re = $u->error;
}
if($re!=''){ echo '<font color="red"><b>'.$re.'</b></font>'; } ?>
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/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>
<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>
<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>
<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 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>
<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>
<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>
<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>
@ -43,13 +89,14 @@ if($u->room['file']=='zv3')
</table>
<div style="display:none; height:0px " id="moveto"></div>
<?php
if($u->info['level']<6)
{
if ($u->info['level'] < 6) {
echo '
Вам все время кажется что за вами следят? Чудится, что случайный попутчик мечтает всадить вам топор в спину? При совершении очередной покупки в гос. магазине мучает ощущение, что вас обманули? Кажется, что симпатичная девушка напротив смотрит на вас как на пищу? Успокойтесь, это не паранойя. Это реалии Capital city. Города Тьмы.
';
} ?>
</small></div></td>
</small>
</div>
</td>
<td>
<!-- <br /><span class="menutop"><nobr>Комната для новичков</nobr></span>-->
</td>
@ -57,18 +104,19 @@ if($u->room['file']=='zv3')
</table>
<small>
<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;"
type="button">
<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); ?>
<br />
<?php if ($u->testHome()) { ?><INPUT onclick="location.href='main.php?homeworld=<?= $code; ?>';" class="btn" value="Возврат" type="button" name="combats2"><?php } ?>
<br/>
<strong>Внимание!Смените пароль на уникальный,который не использовался ранее в подобных проектах,это обезопасит вашего персонажа от взлома.<BR>
<em>Администрация.</strong> </em></small> <BR>
<?= $rowonmax; ?><BR>
</div></td>
</tr>
</table>
<?php
</table>
<?php
}
?>

View File

@ -1,36 +1,84 @@
<?php
if(!defined('GAME'))
{
if (!defined('GAME')) {
die();
}
if($u->room['file']=='zv4')
{
?>
<table width="100%" border="0" cellspacing="0" cellpadding="0">
if ($u->room['file'] == 'zv4') {
?>
<table width="100%" border="0" cellspacing="0" cellpadding="0">
<tr>
<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);
if ($usee != false) {
echo $usee[0];
} else {
echo 'information is lost.';
} ?>
</td>
<td width="230" valign="top" style="padding-top:19px;"><?php require_once('modules/stats_loc.php'); ?></td>
<td valign="top"><div align="right">
<td valign="top">
<div align="right">
<table border="0" cellpadding="0" cellspacing="0">
<tr align="right" valign="top">
<td>
<?php if($re!=''){ echo '<font color="red"><b>'.$re.'</b></font>'; } ?>
<?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/navig.jpg" id="img_ione" width="500" height="240" border="1"/>
<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>
<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>
<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>
<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 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: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>
<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>
<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>
<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>
@ -39,13 +87,14 @@ if($u->room['file']=='zv4')
</table>
<div style="display:none; height:0px " id="moveto"></div>
<?php
if($u->info['level']<6)
{
if ($u->info['level'] < 6) {
echo '
Вам все время кажется что за вами следят? Чудится, что случайный попутчик мечтает всадить вам топор в спину? При совершении очередной покупки в гос. магазине мучает ощущение, что вас обманули? Кажется, что симпатичная девушка напротив смотрит на вас как на пищу? Успокойтесь, это не паранойя. Это реалии Capital city. Города Тьмы.
';
} ?>
</small></div></td>
</small>
</div>
</td>
<td>
<!-- <br /><span class="menutop"><nobr>Комната для новичков</nobr></span>-->
</td>
@ -54,16 +103,16 @@ if($u->room['file']=='zv4')
<small>
<HR>
<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); ?>
<br />
<?php if ($u->testHome()) { ?><INPUT onclick="location.href='main.php?homeworld=<?= $code; ?>';" class="btn" value="Возврат" type="button" name="combats2"><?php } ?>
<br/>
<strong>Внимание!Смените пароль на уникальный,который не использовался ранее в подобных проектах,это обезопасит вашего персонажа от взлома.<BR>
<em>Администрация.</strong> </em></small> <BR>
<?= $rowonmax; ?><BR>
</div></td>
</tr>
</table>
<?php
</table>
<?php
}
?>

View File

@ -1,48 +1,69 @@
<?php
if(!defined('GAME'))
{
if (!defined('GAME')) {
die();
}
if($u->room['file']=='zv_svet')
{
if ($u->room['file'] == 'zv_svet') {
$u->abilsRoom('test');
?>
<link rel="stylesheet" type="text/css" href="/css/loc_bk.css">
<table width="100%" border="0" cellspacing="0" cellpadding="0">
?>
<link rel="stylesheet" type="text/css" href="/css/loc_bk.css">
<table width="100%" border="0" cellspacing="0" cellpadding="0">
<tr>
<td width="250" valign="top">
<?php $usee = $u->getInfoPers($u->info['id'],0); if($usee!=false){ echo $usee[0]; }else{ echo 'information is lost.'; }
echo '<br><center>'.$u->abilsRoom('look').'</center>';
<?php $usee = $u->getInfoPers($u->info['id'], 0);
if ($usee != false) {
echo $usee[0];
} else {
echo 'information is lost.';
}
echo '<br><center>' . $u->abilsRoom('look') . '</center>';
?>
</td>
<td width="230" valign="top" style="padding-top:19px;"><?php require_once('modules_data/stats_loc.php'); ?></td>
<td valign="top"><div align="right">
<td valign="top">
<div align="right">
<table border="0" cellpadding="0" cellspacing="0">
<tr align="right" valign="top">
<td>
<?php if($re!=''){ echo '<font color="red"><b>'.$re.'</b></font>'; } ?>
<?php if ($re != '') {
echo '<font color="red"><b>' . $re . '</b></font>';
} ?>
<table width="500" border="0" cellspacing="0" cellpadding="0">
<tr>
<td>
<?php if( $u->error != '' ) { ?>
<?php if ($u->error != '') { ?>
<font color=red><b>
<?= $u->error; ?></font></b>
<?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"/>
<img class="zv1" onClick="alert('Проход через Бойцовский Клуб!');" src="//img.new-combats.tech/i/images/loc_bk/1x1.gif" style="left: 50px; top: 169px; z-index:90;">
<img class="cp" onClick="alert('Проход через Бойцовский Клуб!');" src="//img.new-combats.tech/i/images/loc_bk/1x1.gif" 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" style="left: 350px; top: 169px; z-index:90;">
<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;">
<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;">
<img class="zn" onClick="alert('Проход через Бойцовский Клуб!');" src="//img.new-combats.tech/i/images/loc_bk/1x1.gif" style="left: 190px; top: 30px; z-index:90;">
<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;">
<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;">
<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';">
<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"/>
<img class="zv1" onClick="alert('Проход через Бойцовский Клуб!');" src="//img.new-combats.tech/i/images/loc_bk/1x1.gif"
style="left: 50px; top: 169px; z-index:90;">
<img class="cp" onClick="alert('Проход через Бойцовский Клуб!');" src="//img.new-combats.tech/i/images/loc_bk/1x1.gif"
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"
style="left: 350px; top: 169px; z-index:90;">
<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;">
<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;">
<img class="zn" onClick="alert('Проход через Бойцовский Клуб!');" src="//img.new-combats.tech/i/images/loc_bk/1x1.gif"
style="left: 190px; top: 30px; z-index:90;">
<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;">
<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;">
<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>
<?}?>
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>
@ -51,13 +72,14 @@ if($u->room['file']=='zv_svet')
</table>
<div style="display:none; height:0px " id="moveto"></div>
<?php
if($u->info['level']<6)
{
if ($u->info['level'] < 6) {
echo '
Вам все время кажется что за вами следят? Чудится, что случайный попутчик мечтает всадить вам топор в спину? При совершении очередной покупки в гос. магазине мучает ощущение, что вас обманули? Кажется, что симпатичная девушка напротив смотрит на вас как на пищу? Успокойтесь, это не паранойя. Это реалии Capital city. Города Тьмы.
';
} ?>
</small></div></td>
</small>
</div>
</td>
<td>
<!-- <br /><span class="menutop"><nobr>Комната для новичков</nobr></span>-->
</td>
@ -65,18 +87,19 @@ if($u->room['file']=='zv_svet')
</table>
<small>
<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="Новости"
type="button" name="forum">
<INPUT onclick="location.href='main.php?zayvka=<?= $code; ?>';" class="btn btn-inverse" value="Поединки" type="button" name="combats">
<?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); ?>
<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>
<em>Администрация.</strong> </em></small> <BR>
<?= $rowonmax; ?><BR>
</div></td>
</tr>
</table>
<?php
</table>
<?php
}
?>

View File

@ -1,5 +1,6 @@
<?php
use Core\Config;
use Helper\Conversion;
if (!defined('GAME')) {
@ -549,7 +550,7 @@ $repovo = $u->rep['rep3'] - $u->rep['rep3_buy'];
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">';
if ($uShow[0] == 1) {
$i = 1;
@ -580,7 +581,7 @@ $repovo = $u->rep['rep3'] - $u->rep['rep3_buy'];
}
}
$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( $u->info['admin'] > 0 ) {
$rz1 .= '<div style="display:none" id="lnk1">';
@ -640,7 +641,7 @@ $repovo = $u->rep['rep3'] - $u->rep['rep3_buy'];
$rz1 .= '</span>';
$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) {
$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 />
@ -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['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) {
$rz3 .= '<div style="display:none" id="lnk3">';
$i = 1;
@ -695,33 +696,32 @@ $repovo = $u->rep['rep3'] - $u->rep['rep3_buy'];
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) {
$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'] . '\';"
style="font-weight:bold;" />
&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" />';
}
unset($hgo);
$rz4 .= '</center>';
$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) {
$rz5 .= '<div style="display:none" id="lnk5">';
$sp = mysql_query('SELECT * FROM `save_com` WHERE `uid` = "' . $u->info['id'] . '" AND `delete` = "0" LIMIT 10');
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(
) . '/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 .= '<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>';
}
$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) {
$rz6 .= '<div style="display:none" id="lnk6">'; //возможно 5
$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)) {
$rz6 .= '<a onclick="if(confirm(\'Удалить набор ?\')){location=\'main.php?inv=1&otdel=' . round(
(int)$_GET['otdel']
) . '&delcop=' . $pl['id'] . '\'}" href="javascript:void(0)"><img src="' . \Core\Config::img(
) . '/i/close2.gif" width="9" height="9"></a> <a href="main.php?inv=1&otdel=' . round(
) . '&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(
(int)$_GET['otdel']
) . '&usecopr=' . $pl['id'] . '">Использовать &quot;' . $pl['name'] . '&quot;</a><br>';
}

View File

@ -1,4 +1,9 @@
<?php
use Core\Config;
use Model\ActionModel;
use User\ItemsModel;
echo "
<script language='JavaScript'>
var elem = document.getElementById('se-pre-con');
@ -191,29 +196,28 @@ $vi = [
$vix = 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);
$vix = $vix[0];
$time = strtotime('now 00:00:00');
} else {
//всего за действие премиума
$vix = $u->testAction('`uid` = "' . $u->info['id'] . '" AND `time`>=' . $vt['timeUse'] . ' AND `vars` = "vitm_' . $itm['id'] . '" ', 2);
$vix = $vix[0];
$time = $vt['timeUse'];
}
$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']) {
$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'], '');
echo '<font color="red">Предмет &quot;<b>' . $itm['name'] . '</b>&quot; перемещен к Вам в инвентарь!</font><br><br>';
echo 'Предмет &quot;<b>' . $itm['name'] . '</b>&quot; перемещен к Вам в инвентарь!<br><br>';
}
$seet0 = '';
//Вывод предметов вип
$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) {
$seet0 = '<a href="main.php?vip=1&take_item_vip=' . $itm['id'] . '">' . $seet0 . '</a>';
} 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;
}

View File

@ -1,99 +1,105 @@
<?php
if(!defined('GAME') || $u->stats['silver']<1)
{
use Model\ActionModel;
use User\ItemsModel;
if (!defined('GAME') || $u->stats['silver'] < 1) {
die();
}
if($u->error!='')
{
echo '<font color="red"><b>'.$u->error.'</b></font><br>';
if ($u->error != '') {
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'));
$vu = array(0,0,0,0,0,0,0);
$vi = array(
$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 = [0, 0, 0, 0, 0, 0, 0];
$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),
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),
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),
[4412, [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],
[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),
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),
[865, [0, 0, 0, 0, 0, 0], 0, 0, 1, 'useOnLogin=1|musor=1|noremont=1|sudba=' . $u->info['login'] . '|srok=43200', 1],
[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),
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),
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),
[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],
[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],
[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),
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),
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),
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),
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),
[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],
[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],
[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],
[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],
[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),
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),
[2144, [0, 0, 0, 0, 0, 3], 0, 0, 1, 'nohaos=1|onlyOne=1|oneType=12|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(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),
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),
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)
[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],
[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],
[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(2144,1,2,10,1,'musor=1|noremont=1|onlyOne=1|oneType=3|sudba='.$u->info['login'].'|srok=600',1)*/
);
];
?>
<table width="100%">
<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 width="150" align="right"><input type="button" value="обновить" onclick="location='main.php?vip=1';" /> <input type="button" value="Вернуться" onclick="location='main.php';" /></td>
<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 width="150" align="right"><input type="button" value="обновить" onclick="location='main.php?vip=1';"/> <input type="button" value="Вернуться" onclick="location='main.php';"/></td>
</tr>
<tr>
<td><p><b>Доступные возможности:</b> <a href="/benediction/" target="_blank">Посмотреть возможности</a></p>
<p><b>Доступные предметы:</b><br />
<p><b>Доступные предметы:</b><br/>
<small>(Чтобы забрать предмет просто нажмите на его изображение)</small></p>
<p>
<?php
$i = 0; $seet = '';
$vnr = array(0 => 'на сегодня',1 => ' всего');
while($i < count($vi)) {
if($vi[$i][1][$u->stats['silver']]>0) {
$itm = mysql_fetch_array(mysql_query('SELECT * FROM `items_main` WHERE `id` = "'.$vi[$i][0].'" LIMIT 1'));
if(isset($itm['id'])) {
$i = 0;
$seet = '';
$vnr = [0 => 'на сегодня', 1 => ' всего'];
while ($i < count($vi)) {
if ($vi[$i][1][$u->stats['silver']] > 0) {
$itm = mysql_fetch_array(mysql_query('SELECT * FROM `items_main` WHERE `id` = "' . $vi[$i][0] . '" LIMIT 1'));
if (isset($itm['id'])) {
$vix = 0;
if($vi[$i][4] == 0) {
if ($vi[$i][4] == 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);
$vix = $vix[0];
}else{
$time = strtotime('now 00:00:00');
} else {
//всего за действие премиума
$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 = $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(isset($_GET['take_item_vip']) && $_GET['take_item_vip'] == $itm['id']) {
if ($vi[$i][1][$u->stats['silver']] - $vix > 0) {
if (isset($_GET['take_item_vip']) && $_GET['take_item_vip'] == $itm['id']) {
$vix++;
$nitm = \User\ItemsModel::addItem($itm['id'],$u->info['id'],$vi[$i][5]);
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');
$nitm = ItemsModel::addItem($itm['id'], $u->info['id'], $vi[$i][5]);
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');
}
$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>';
$u->addAction(time(), 'vitm_' . $itm['id'], '');
echo 'Предмет &quot;<b>' . $itm['name'] . '</b>&quot; перемещен к Вам в инвентарь (Осталось ' . $vnr[$vi[$i][4]] . ': ' . ($vi[$i][1][$u->stats['silver']] - $vix) . ' шт.).<br><br>';
}
}
$seet0 = '';
$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'].'"> ';
if($vi[$i][1][$u->stats['silver']]-$vix > 0) {
$seet0 = '<a href="main.php?vip=1&take_item_vip='.$itm['id'].'">'.$seet0.'</a>';
}else{
$seet0 = '<span style="filter: alpha(opacity=20); -moz-opacity: 0.20; -khtml-opacity: 0.20; opacity: 0.20;">'.$seet0.'</span>';
$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'] . '"> ';
if ($vi[$i][1][$u->stats['silver']] - $vix > 0) {
$seet0 = '<a href="main.php?vip=1&take_item_vip=' . $itm['id'] . '">' . $seet0 . '</a>';
} else {
$seet0 = '<span style="filter: alpha(opacity=20); -moz-opacity: 0.20; -khtml-opacity: 0.20; opacity: 0.20;">' . $seet0 . '</span>';
}
$seet .= $seet0;
}
@ -103,6 +109,6 @@ $vi = array(
echo $seet;
?>
</p>
<font color=red><b>Внимание!</b> Срок годности выдаваемых предметов 10 мин.</font><Br /></td>
<font color=red><b>Внимание!</b> Срок годности выдаваемых предметов 10 мин.</font><Br/></td>
</tr>
</table>

View File

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

View File

@ -9,6 +9,7 @@ use Core\Config;
use Core\Database;
use Core\Db;
use DarksLight2\Training\TrainingManager;
use Model\ActionModel;
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) {
$mban = $u->testAction(
'`uid` = "' . $u->info['id'] . '" AND `time` >= ' . strtotime(
'now 00:00:00'
) . ' AND `vars` = "msg_bans" LIMIT 1', 1
);
$mban = ActionModel::get(["uid = {$u->info['id']}", 'time >= ' . strtotime('now 00:00:00'), 'vars = msg_bans'], 'id, vals');
if (!isset($mban['id'])) {
$u->addAction(time(), 'msg_bans', '1');
$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>
<head>
<title><?= Config::get('name') ?>: Регистрация - создай персонажа в игре.</title>
<title><?= Config::GAMENAME ?>: Регистрация - создай персонажа в игре.</title>
<meta name="description" content="<?= Config::get('desc') ?>"/>
</head>
<style>

View File

@ -88,7 +88,7 @@ if (isset($_POST['relogin'])) {
<!DOCTYPE html>
<html lang="ru-RU">
<head>
<title><?= Config::get('name') ?>: Восстановление пароля от персонажа</title>
<title><?= Config::GAMENAME ?>: Восстановление пароля от персонажа</title>
<meta name="keywords" content="<?= Config::get('keys') ?>">
<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"/>

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