Merge
This commit is contained in:
commit
7692c9f658
@ -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
12
.idea/dataSources.xml
generated
Normal 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>
|
@ -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.
|
||||
* Технически это сеттер.
|
||||
|
@ -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 .= ', новым лидером становится "' . $tinf['login'] . '"';
|
||||
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 .= ', новым лидером становится "' . $tinf['login'] . '"';
|
||||
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
|
||||
|
@ -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++;
|
||||
}
|
||||
}
|
||||
|
@ -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.';
|
||||
}
|
||||
}
|
||||
|
69
_incl_data/class/Core/TOTP.php
Normal file
69
_incl_data/class/Core/TOTP.php
Normal 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;
|
||||
}
|
||||
}
|
@ -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 .= 'Вы обнаружили предмет "<b>' . $it['name'] . '</b>".<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')
|
||||
|
68
_incl_data/class/Helper/QueryBuilder.php
Normal file
68
_incl_data/class/Helper/QueryBuilder.php
Normal 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,
|
||||
];
|
||||
}
|
||||
}
|
@ -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'] . ']] "' . $u->info['login'] . '" использовала "' . $itm['name'] . ' Саныча" и получила эффект ' . $echotext . ' травмы.';
|
||||
} else {
|
||||
$rtxt = '[img[items/' . $itm['img'] . ']] "' . $u->info['login'] . '" использовал "' . $itm['name'] . ' Саныча" и получил эффект ' . $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 = 'Вы успешно использовали "' . $itm['name'] . '"';
|
||||
$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} использовала "<b>' . $itm['name'] . ' Саныча</b>".');
|
||||
} else {
|
||||
$this->inBattleLog('{u1} использовал "<b>' . $itm['name'] . ' Саныча</b>".');
|
||||
}
|
||||
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 = 'Вы успешно использовали "' . $itm['name'] . '" на ' . $usr['login'] . '';
|
||||
|
||||
if ($u->info['sex'] == 1) {
|
||||
$this->inBattleLog(
|
||||
'{u1} использовала "<b>' . $itm['name'] . ' Саныча</b>" на {u2}.',
|
||||
$usr
|
||||
);
|
||||
} else {
|
||||
$this->inBattleLog(
|
||||
'{u1} использовал "<b>' . $itm['name'] . ' Саныча</b>" на {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;
|
||||
//добавляем эффект персонажу
|
||||
|
@ -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 = 'Хаосники не могут пользоваться этим свитком!';
|
||||
}
|
||||
|
||||
}
|
||||
|
@ -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 = 'Вы изучили "' . $itm['name'] . '".';
|
||||
$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 = 'Требует изучения предыдущего тома';
|
||||
|
@ -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
|
||||
|
@ -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 зверя "<b>" . $a['name'] . '"</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']);
|
||||
|
@ -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 .= ' • <b>' . $bot2['login'] . '</b> [' . $x2 . '/' . $d['all_kill'] . ']<br>';
|
||||
|
||||
$botlogin = Db::getValue('select login from test_bot where id = ?', [$botid]);
|
||||
if (isset($botlogin)) {
|
||||
$x .= ' • <b>' . $botlogin . '</b> [' . $x2 . '/' . $d['all_kill'] . ']<br>';
|
||||
} else {
|
||||
$x .= ' • <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 .= ' • <b>' . $bot2['login'] . '</b> [' . $x2 . '/' . $ex2[1] . ']<br>';
|
||||
$x .= ' • <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++;
|
||||
|
@ -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'],
|
||||
'"<span style="color: #4863A0; ">System.remont.upatack</span>": Заточка "' . $data['upatack_name'] . '" была успешно <strong>встроена</strong> в предмет "' . $id['name'] . '" [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'] . '")'
|
||||
);
|
||||
}
|
||||
}
|
||||
|
@ -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]);
|
||||
|
@ -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>';
|
||||
}
|
||||
|
||||
|
@ -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]);
|
||||
}
|
||||
}
|
@ -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,
|
||||
];
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -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);
|
||||
|
@ -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,
|
||||
]
|
||||
);
|
||||
|
||||
}
|
||||
}
|
||||
|
67
_incl_data/class/Validator/Login.php
Normal file
67
_incl_data/class/Validator/Login.php
Normal 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
65
adminion/oltest.js
Normal 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
22
adminion/onlinelist.php
Normal 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
95
adminion/priems.php
Normal 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
18
adminion/sms.php
Normal 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
53
adminion/test.php
Normal 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>
|
||||
|
||||
|
||||
|
||||
|
@ -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)
|
||||
|
||||
$validator = new class extends Login {
|
||||
private function exist(): bool
|
||||
{
|
||||
$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;
|
||||
return Db::getValue('select count(login) from users where login = ?', [$this->login]) > 0;
|
||||
}
|
||||
|
||||
//
|
||||
function testBad($txt): bool
|
||||
public function getstatus(): string
|
||||
{
|
||||
$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;
|
||||
if ($this->exist()) {
|
||||
return '<b style="color:red">Логин занят.</b>';
|
||||
}
|
||||
} else {
|
||||
$j = -2;
|
||||
if (parent::check()) {
|
||||
return '<b style="color:green">Логин свободен!</b>';
|
||||
}
|
||||
$j++;
|
||||
}
|
||||
if ($g == false) {
|
||||
$r = true;
|
||||
}
|
||||
} else {
|
||||
$i = -2;
|
||||
}
|
||||
$i++;
|
||||
}
|
||||
return $r;
|
||||
return '<b style="color:red">Неверный логин.</b>';
|
||||
}
|
||||
};
|
||||
|
||||
//
|
||||
$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;
|
||||
echo $validator->setLogin($_GET['login'])->getstatus();
|
||||
|
||||
/*
|
||||
Логин может содержать от 4 до 16 символов, и состоять только из букв русского ИЛИ английского алфавита, цифр, символов '_', '-' и пробела.
|
||||
Логин не может начинаться или заканчиваться символами '_', '-' или пробелом.
|
||||
*/
|
||||
|
||||
$_GET['login'] = str_replace(' ', ' ', $_GET['login']);
|
||||
$_GET['login'] = str_replace('%', ' ', $_GET['login']);
|
||||
$_GET['login'] = str_replace(' ', ' ', $_GET['login']);
|
||||
//
|
||||
if (strlen($_GET['login']) > 16) {
|
||||
$true = false;
|
||||
} elseif (strlen($_GET['login']) < 4) {
|
||||
$true = false;
|
||||
} elseif (strripos($_GET['login'], ' ')) {
|
||||
$true = false;
|
||||
} elseif (substr($_GET['login'], 1) == ' ' || substr($_GET['login'], -1) == ' ') {
|
||||
$true = false;
|
||||
} elseif (substr($_GET['login'], 1) == '-' || substr($_GET['login'], -1) == '-') {
|
||||
$true = false;
|
||||
} elseif (substr($_GET['login'], 1) == '_' || substr($_GET['login'], -1) == '_') {
|
||||
$true = false;
|
||||
} elseif (testBad($_GET['login'])) {
|
||||
$true = false;
|
||||
} elseif (en_ru(str_replace('ё', 'е', str_replace('Ё', 'Е', $_GET['login'])))) {
|
||||
$true = false;
|
||||
}
|
||||
//
|
||||
if (!$true) {
|
||||
echo '<b style="color:red">Неверный логин.</b>';
|
||||
} else {
|
||||
echo '<b style="color:green">Логин свободен!</b>';
|
||||
}
|
||||
}
|
||||
//todo Написать класс, который будет использоваться тут, в ekr.php, в _newanimal.php и в проверках при регистрации.
|
||||
//todo При этом сюда стоит подтягивать наследование класса, в который просто добавляется проверка на exist() которая не нужна в других местах.
|
||||
//todo function testBad($txt), function is_login($login), function en_ru($txt)
|
||||
|
@ -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);
|
||||
|
@ -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']]);
|
||||
}
|
||||
?>
|
||||
|
@ -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
122
ekr.php
@ -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(' ', ' ', $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 = 'Вы успешно сменили логин на "' . $u->info['login'] . '" перезайдите в игру с главной страницы.';
|
||||
} else {
|
||||
$u->error = 'Выберите другой логин...';
|
||||
}
|
||||
|
||||
}
|
||||
} elseif (isset($_GET['buy_ekr'])) {
|
||||
//
|
||||
|
230
enter.php
230
enter.php
@ -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(
|
||||
'
|
||||
$returnLink = Config::get('https');
|
||||
$html = <<<HTML
|
||||
<link rel="stylesheet" href="error.css">
|
||||
<div class="text-wrapper">
|
||||
<div class="title" data-content="Ошибка">
|
||||
Ошибка!!
|
||||
<div class="title" data-content="Ошибка">Ошибка!!</div>
|
||||
<div class="subtitle">$e</div>
|
||||
<div class="buttons"><a class="button" href="$returnLink">Вернуться назад</a></div>
|
||||
</div>
|
||||
|
||||
<div class="subtitle">
|
||||
' . $e . '
|
||||
</div>
|
||||
|
||||
<div class="buttons">
|
||||
<a class="button" href="' . Config::get('https') . '">Вернуться назад</a>
|
||||
</div>
|
||||
</div>
|
||||
'
|
||||
);
|
||||
HTML;
|
||||
exit($html);
|
||||
}
|
||||
|
||||
$u = Db::getRow(
|
||||
@ -60,169 +55,63 @@ $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 (empty($_SESSION['login'])) {
|
||||
if (!isset($u['id'])) {
|
||||
error('Логин "' . $_POST['login'] . '" не найден в базе.');
|
||||
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 ($_SESSION['totp']->generate() !== $otp) {
|
||||
unset($_SESSION['login'], $_SESSION['totp']);
|
||||
error('Неверный одноразовый код!');
|
||||
}
|
||||
}
|
||||
|
||||
@ -269,11 +158,10 @@ if (!isset($u['id'])) {
|
||||
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']]);
|
||||
$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);
|
||||
@ -313,6 +201,8 @@ if (!isset($u['id'])) {
|
||||
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();
|
||||
}
|
||||
|
@ -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"> </td>
|
||||
</tr>
|
||||
|
110
gate.php
110
gate.php
@ -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'].'');
|
||||
}
|
||||
}
|
||||
?>
|
@ -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>
|
||||
|
255
js/btl_mini.js
255
js/btl_mini.js
@ -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);
|
||||
@ -63,55 +61,56 @@ 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
1891
js/gameEngine.from2014.js
Normal file
File diff suppressed because one or more lines are too long
@ -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}`, `Используем "${nm}" `, '<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 = '';
|
||||
|
@ -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>';
|
||||
}
|
||||
|
@ -252,5 +252,5 @@ if (!$isBattle) {
|
||||
|
||||
unset($atk1);
|
||||
}
|
||||
echo '<script>ggcode="' . $code . '";if(t057!=null){clearTimeout(t057);}</script>';
|
||||
echo '<script>ggcode="' . $code . '";</script>';
|
||||
}
|
||||
|
@ -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>';
|
||||
}
|
||||
}
|
||||
|
@ -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;
|
||||
}
|
||||
|
11
main.php
11
main.php
@ -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');
|
||||
|
77
main_bot.php
77
main_bot.php
@ -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]] "' . $u->info['login'] . '" совершил' . $sx . ' нападение по метке на персонажа "' . $ua['login'] . '".';
|
||||
$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');
|
||||
|
@ -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">Вы успешно переименовали питомца в "' . $nl . '"</font>';
|
||||
echo '<span style="color: red; ">Вы успешно переименовали питомца в "' . $nl . '"</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)) {
|
||||
|
@ -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>
|
||||
|
@ -696,5 +696,4 @@ function printModeratorsOnline(): void
|
||||
</TD>
|
||||
</TR>
|
||||
</TABLE>
|
||||
<DIV><?= Config::get('counters_noFrm') ?></DIV>
|
||||
</body>
|
||||
|
@ -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
|
||||
|
@ -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 ' ' . $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']);
|
||||
}
|
||||
|
@ -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(' ', ' ', $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'],
|
||||
'"<span style="color: maroon; ">System.inventory</span>": Персонаж призвал зверя "' . $_GET['petname'] . '" (' . $_GET['pet'] . ') - 50 кр.',
|
||||
'"<span style="color: maroon; ">System.inventory</span>": Персонаж призвал зверя "' . $newpetname . '" (' . $_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(\'Вы действительно хотите ВЫГНАТЬ зверя "' . $pl['name'] . '"?\')) 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(\'Вы действительно хотите ВЫГНАТЬ зверя "' . $pl['name'] . '"?\')) 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>';
|
||||
//
|
||||
|
@ -307,4 +307,3 @@ if (!isset($u->tfer['id'])) {
|
||||
?>
|
||||
{отображаем лог передач}
|
||||
<?php } ?>
|
||||
<div align="right"><?= $c['counters']; ?></div>
|
@ -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> <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];
|
||||
}
|
||||
?>
|
||||
<B>За сегодня</B><BR>
|
||||
• Получено опыта: <?= $sf[0] ?><BR>
|
||||
• Одержано побед: <?= $sf[1] ?><BR>
|
||||
• Проиграно битв: <?= $sf[2] ?><BR>
|
||||
• Ничьих: <?= $sf[3] ?><BR>
|
||||
• Получено опыта: <?= $statisticToday[0] ?><BR>
|
||||
• Одержано побед: <?= $statisticToday[1] ?><BR>
|
||||
• Проиграно битв: <?= $statisticToday[2] ?><BR>
|
||||
• Ничьих: <?= $statisticToday[3] ?><BR>
|
||||
</div>
|
||||
</div>
|
||||
<?php if ($znn) {
|
||||
|
@ -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>
|
||||
|
@ -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();
|
||||
}
|
||||
|
||||
|
@ -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>
|
||||
|
@ -1,38 +1,67 @@
|
||||
<?php
|
||||
if(!defined('GAME'))
|
||||
{
|
||||
if (!defined('GAME')) {
|
||||
die();
|
||||
}
|
||||
|
||||
if($u->room['file']=='bk2')
|
||||
{
|
||||
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 {
|
||||
echo 'Возможно, вы ошиблись этажом - настоящие сражения проходят этажом выше.';
|
||||
} ?>
|
||||
</small></div></td>
|
||||
</small>
|
||||
</div>
|
||||
</td>
|
||||
<td>
|
||||
<!-- <br /><span class="menutop"><nobr>Комната для новичков</nobr></span>-->
|
||||
</td>
|
||||
@ -57,9 +87,10 @@ 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/>
|
||||
|
@ -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">Но Вы всегда можете приобрести ключ от прохода у любого "копателя пещер" в Торговом зале ;)</small>';
|
||||
}
|
||||
}
|
||||
|
@ -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">Но Вы всегда можете приобрести ключ от прохода у любого "копателя пещер" в Торговом зале ;)</small>';
|
||||
|
||||
}
|
||||
|
@ -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>
|
||||
|
@ -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>Вы успешно получили новое задание "' . $dq_add['name'] . '".</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">Но Вы всегда можете приобрести ключ от прохода у любого "копателя пещер" в Торговом зале ;)</small>';
|
||||
}
|
||||
}
|
||||
|
@ -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>Вы успешно получили новое задание "' . $dq_add['name'] . '".</b></font><br>';
|
||||
$hgo['id'] = 1;
|
||||
$questTimeout = 1;
|
||||
$u->addAction(time(), 'psh_qt_demonscity', $dq_add['id']);
|
||||
} else {
|
||||
echo '<font color="red"><b>Не удалось получить задание "' . $dq_add['name'] . '". Попробуйте еще...</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">Но Вы всегда можете приобрести ключ от прохода у любого "копателя пещер" в Торговом зале ;)</small>';
|
||||
}
|
||||
}
|
||||
|
@ -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">Но Вы всегда можете приобрести ключ от прохода у любого "копателя пещер" в Торговом зале ;)</small>';
|
||||
}
|
||||
}
|
||||
|
@ -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>Вы успешно получили новое задание "' . $dq_add['name'] . '".</b></font><br>';
|
||||
$hgo['id'] = 1;
|
||||
$questTimeout = 1;
|
||||
$u->addAction(time(), 'psh_qt_allcity', $dq_add['id']);
|
||||
} else {
|
||||
echo '<font color="red"><b>Не удалось получить задание "' . $dq_add['name'] . '". Попробуйте еще...</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">Но Вы всегда можете приобрести ключ от прохода у любого "копателя пещер" в Торговом зале ;)</small>';
|
||||
}
|
||||
}
|
||||
|
@ -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">Но Вы всегда можете приобрести ключ от прохода у любого "копателя пещер" в Торговом зале ;)</small>';
|
||||
}
|
||||
}
|
||||
|
@ -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>Вы успешно получили новое задание "' . $dq_add['name'] . '".</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">Но Вы всегда можете приобрести ключ от прохода у любого "копателя пещер" в Торговом зале ;)</small>';
|
||||
}
|
||||
}
|
||||
|
@ -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">Но Вы всегда можете приобрести ключ от прохода у любого "копателя пещер" в Торговом зале ;)</small>';
|
||||
}
|
||||
}
|
||||
|
@ -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">Но Вы всегда можете приобрести ключ от прохода у любого "копателя пещер" в Торговом зале ;)</small>';
|
||||
}
|
||||
}
|
||||
|
@ -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/>
|
||||
|
@ -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">Но Вы всегда можете приобрести ключ от прохода у любого "копателя пещер" в Торговом зале ;)</small>';
|
||||
}
|
||||
}
|
||||
|
@ -1,19 +1,23 @@
|
||||
<?php
|
||||
if(!defined('GAME'))
|
||||
{
|
||||
if (!defined('GAME')) {
|
||||
die();
|
||||
}
|
||||
|
||||
if($u->room['file']=='kinght')
|
||||
{
|
||||
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">
|
||||
<td valign="top">
|
||||
<div align="right">
|
||||
<?php if ($u->error != '') { ?>
|
||||
<font color=red><b>
|
||||
<?= $u->error; ?></font></b>
|
||||
@ -21,24 +25,51 @@ if($u->room['file']=='kinght')
|
||||
<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 {
|
||||
echo 'Возможно, вы ошиблись этажом - настоящие сражения проходят этажом выше.';
|
||||
} ?>
|
||||
</small></div></td>
|
||||
</small>
|
||||
</div>
|
||||
</td>
|
||||
<td>
|
||||
<!-- <br /><span class="menutop"><nobr>Комната для новичков</nobr></span>-->
|
||||
</td>
|
||||
@ -63,10 +95,12 @@ 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">
|
||||
<?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>
|
||||
|
@ -1,11 +1,9 @@
|
||||
<?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'])) {
|
||||
@ -21,10 +19,10 @@ if($u->room['file']=='novich')
|
||||
$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');
|
||||
$map_locs = [];
|
||||
$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[] = [$plm2['x'], $plm2['y']];
|
||||
}
|
||||
unset($spm2, $plm2);
|
||||
|
||||
@ -41,7 +39,7 @@ if($u->room['file']=='novich')
|
||||
//Добавляем ботов и обьекты в пещеру $zid с for_dn = $dungeon['id']
|
||||
//Добавляем ботов
|
||||
$vls = '';
|
||||
$sp = mysql_query('SELECT * FROM `dungeon_bots` WHERE `for_dn` = 106');
|
||||
$sp = mysql_query('select * from dungeon_bots where for_dn = 106');
|
||||
while ($pl = mysql_fetch_array($sp)) {
|
||||
if ($pl['id_bot'] == 0 && $pl['bot_group'] != '') {
|
||||
$bots = explode(',', $pl['bot_group']);
|
||||
@ -54,9 +52,8 @@ if($u->room['file']=='novich')
|
||||
$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))
|
||||
{
|
||||
$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'] . '"),';
|
||||
}
|
||||
//
|
||||
@ -89,14 +86,14 @@ if($u->room['file']=='novich')
|
||||
)');
|
||||
|
||||
//Начало обучения
|
||||
$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');
|
||||
@ -121,22 +118,37 @@ if($u->room['file']=='novich')
|
||||
<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>
|
||||
@ -146,10 +158,13 @@ if($u->room['file']=='novich')
|
||||
<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">
|
||||
<?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>
|
||||
</small>
|
||||
</div>
|
||||
</td>
|
||||
<td>
|
||||
<!-- <br /><span class="menutop"><nobr>Комната для новичков</nobr></span>-->
|
||||
</td>
|
||||
|
@ -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']]);
|
||||
|
@ -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">Но Вы всегда можете приобрести ключ от прохода у любого "копателя пещер" в Торговом зале ;)</small>';
|
||||
}
|
||||
}
|
||||
|
@ -1,31 +1,43 @@
|
||||
<?php
|
||||
if(!defined('GAME'))
|
||||
{
|
||||
if (!defined('GAME')) {
|
||||
die();
|
||||
}
|
||||
|
||||
if($u->room['file']=='perehod')
|
||||
{
|
||||
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>
|
||||
@ -35,10 +47,13 @@ if($u->room['file']=='perehod')
|
||||
<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">
|
||||
<?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>
|
||||
</small>
|
||||
</div>
|
||||
</td>
|
||||
<td>
|
||||
<!-- <br /><span class="menutop"><nobr>Комната для новичков</nobr></span>-->
|
||||
</td>
|
||||
|
@ -1,24 +1,30 @@
|
||||
<?php
|
||||
if(!defined('GAME'))
|
||||
{
|
||||
if (!defined('GAME')) {
|
||||
die();
|
||||
}
|
||||
|
||||
if($u->room['file']=='ric_zv')
|
||||
{
|
||||
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>
|
||||
@ -26,20 +32,35 @@ if($u->room['file']=='ric_zv')
|
||||
<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>
|
||||
<?}?>
|
||||
?>
|
||||
<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 {
|
||||
echo 'Возможно, вы ошиблись этажом - настоящие сражения проходят этажом выше.';
|
||||
} ?>
|
||||
</small></div></td>
|
||||
</small>
|
||||
</div>
|
||||
</td>
|
||||
<td>
|
||||
<!-- <br /><span class="menutop"><nobr>Комната для новичков</nobr></span>-->
|
||||
</td>
|
||||
@ -64,10 +86,12 @@ 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">
|
||||
<?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>
|
||||
|
@ -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()
|
||||
|
@ -1,19 +1,23 @@
|
||||
<?php
|
||||
if(!defined('GAME'))
|
||||
{
|
||||
if (!defined('GAME')) {
|
||||
die();
|
||||
}
|
||||
|
||||
if($u->room['file']=='torg')
|
||||
{
|
||||
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">
|
||||
<td valign="top">
|
||||
<div align="right">
|
||||
<?php if ($u->error != '') { ?>
|
||||
<font color=red><b>
|
||||
<?= $u->error; ?></font></b>
|
||||
@ -21,24 +25,51 @@ if($u->room['file']=='torg')
|
||||
<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 {
|
||||
echo 'Возможно, вы ошиблись этажом - настоящие сражения проходят этажом выше.';
|
||||
} ?>
|
||||
</small></div></td>
|
||||
</small>
|
||||
</div>
|
||||
</td>
|
||||
<td>
|
||||
<!-- <br /><span class="menutop"><nobr>Комната для новичков</nobr></span>-->
|
||||
</td>
|
||||
@ -63,10 +95,12 @@ 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">
|
||||
<?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>
|
||||
|
@ -1,24 +1,30 @@
|
||||
<?php
|
||||
if(!defined('GAME'))
|
||||
{
|
||||
if (!defined('GAME')) {
|
||||
die();
|
||||
}
|
||||
|
||||
if($u->room['file']=='trade_zv')
|
||||
{
|
||||
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>
|
||||
@ -26,20 +32,35 @@ if($u->room['file']=='trade_zv')
|
||||
<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>
|
||||
<?}?>
|
||||
?>
|
||||
<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 {
|
||||
echo 'Возможно, вы ошиблись этажом - настоящие сражения проходят этажом выше.';
|
||||
} ?>
|
||||
</small></div></td>
|
||||
</small>
|
||||
</div>
|
||||
</td>
|
||||
<td>
|
||||
<!-- <br /><span class="menutop"><nobr>Комната для новичков</nobr></span>-->
|
||||
</td>
|
||||
@ -64,10 +86,12 @@ 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">
|
||||
<?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>
|
||||
|
@ -1,38 +1,59 @@
|
||||
<?php
|
||||
if(!defined('GAME'))
|
||||
{
|
||||
if (!defined('GAME')) {
|
||||
die();
|
||||
}
|
||||
|
||||
if($u->room['file']=='zalu')
|
||||
{
|
||||
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 {
|
||||
echo 'Возможно, вы ошиблись этажом - настоящие сражения проходят этажом выше.';
|
||||
} ?>
|
||||
</small></div></td>
|
||||
</small>
|
||||
</div>
|
||||
</td>
|
||||
<td>
|
||||
<!-- <br /><span class="menutop"><nobr>Комната для новичков</nobr></span>-->
|
||||
</td>
|
||||
@ -57,9 +79,10 @@ 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/>
|
||||
|
@ -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">
|
||||
|
@ -1,34 +1,50 @@
|
||||
<?php
|
||||
if(!defined('GAME'))
|
||||
{
|
||||
if (!defined('GAME')) {
|
||||
die();
|
||||
}
|
||||
|
||||
if($u->room['file']=='zalu_pal2')
|
||||
{
|
||||
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,9 +63,10 @@ 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/>
|
||||
|
@ -1,38 +1,55 @@
|
||||
<?php
|
||||
if(!defined('GAME'))
|
||||
{
|
||||
if (!defined('GAME')) {
|
||||
die();
|
||||
}
|
||||
|
||||
if($u->room['file']=='zalu_pal3')
|
||||
{
|
||||
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,9 +68,10 @@ 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/>
|
||||
|
@ -1,38 +1,55 @@
|
||||
<?php
|
||||
if(!defined('GAME'))
|
||||
{
|
||||
if (!defined('GAME')) {
|
||||
die();
|
||||
}
|
||||
|
||||
if($u->room['file']=='zalu_pal4')
|
||||
{
|
||||
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,9 +68,10 @@ 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/>
|
||||
|
@ -1,36 +1,84 @@
|
||||
<?php
|
||||
if(!defined('GAME'))
|
||||
{
|
||||
if (!defined('GAME')) {
|
||||
die();
|
||||
}
|
||||
|
||||
if($u->room['file']=='zv2')
|
||||
{
|
||||
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,9 +102,10 @@ 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); ?>
|
||||
<?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>
|
||||
|
@ -1,19 +1,23 @@
|
||||
<?php
|
||||
if(!defined('GAME'))
|
||||
{
|
||||
if (!defined('GAME')) {
|
||||
die();
|
||||
}
|
||||
|
||||
if($u->room['file']=='zv3')
|
||||
{
|
||||
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>
|
||||
@ -21,20 +25,62 @@ if($u->room['file']=='zv3')
|
||||
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,9 +104,10 @@ 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); ?>
|
||||
<?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>
|
||||
|
@ -1,36 +1,84 @@
|
||||
<?php
|
||||
if(!defined('GAME'))
|
||||
{
|
||||
if (!defined('GAME')) {
|
||||
die();
|
||||
}
|
||||
|
||||
if($u->room['file']=='zv4')
|
||||
{
|
||||
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,7 +103,7 @@ 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); ?>
|
||||
<?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>
|
||||
|
@ -1,27 +1,33 @@
|
||||
<?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">
|
||||
<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.';
|
||||
}
|
||||
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>
|
||||
@ -29,20 +35,35 @@ if($u->room['file']=='zv_svet')
|
||||
<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>
|
||||
<?}?>
|
||||
?>
|
||||
<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,9 +87,10 @@ 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); ?>
|
||||
<?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>
|
||||
|
@ -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;" />
|
||||
';
|
||||
$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] . ',"Комплекты <a href=\"#\" onClick=\"save_compl();\">запомнить</a> ","0","0",' . $uShow[5] . ',6);</script>';
|
||||
$rz5 = '<script>getLine(' . $prtpos[5] . ',"Комплекты <a href=\"#\" onClick=\"save_compl();\">запомнить</a> ","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 . '">Надеть "' . $pl['name'] . '"</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 . '">Надеть "' . $pl['name'] . '"</a></small><br>';
|
||||
}
|
||||
$rz5 .= '</div>';
|
||||
}
|
||||
|
||||
$rz6 = '<script>getLine(' . $prtpos[6] . ',"Приемы <a href=\"/main.php?skills=1&rz=4&rnd=' . $code . '\">настроить</a> ","0","0",' . $uShow[6] . ',7);</script>';
|
||||
$rz6 = '<script>getLine(' . $prtpos[6] . ',"Приемы <a href=\"/main.php?skills=1&rz=4&rnd=' . $code . '\">настроить</a> ","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'] . '">Использовать "' . $pl['name'] . '"</a><br>';
|
||||
}
|
||||
|
@ -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">Предмет "<b>' . $itm['name'] . '</b>" перемещен к Вам в инвентарь!</font><br><br>';
|
||||
echo 'Предмет "<b>' . $itm['name'] . '</b>" перемещен к Вам в инвентарь!<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;
|
||||
}
|
||||
|
@ -1,55 +1,61 @@
|
||||
<?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!='')
|
||||
{
|
||||
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(
|
||||
$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 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>
|
||||
@ -58,8 +64,9 @@ $vi = array(
|
||||
<small>(Чтобы забрать предмет просто нажмите на его изображение)</small></p>
|
||||
<p>
|
||||
<?php
|
||||
$i = 0; $seet = '';
|
||||
$vnr = array(0 => 'на сегодня',1 => ' всего');
|
||||
$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'));
|
||||
@ -67,23 +74,22 @@ $vi = array(
|
||||
$vix = 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];
|
||||
$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']) {
|
||||
$vix++;
|
||||
$nitm = \User\ItemsModel::addItem($itm['id'],$u->info['id'],$vi[$i][5]);
|
||||
$nitm = ItemsModel::addItem($itm['id'], $u->info['id'], $vi[$i][5]);
|
||||
if ($vi[$i][6] > 0) {
|
||||
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">Предмет "<b>'.$itm['name'].'</b>" перемещен к Вам в инвентарь (Осталось '.$vnr[$vi[$i][4]].': '.($vi[$i][1][$u->stats['silver']]-$vix).' шт.).</font><br><br>';
|
||||
echo 'Предмет "<b>' . $itm['name'] . '</b>" перемещен к Вам в инвентарь (Осталось ' . $vnr[$vi[$i][4]] . ': ' . ($vi[$i][1][$u->stats['silver']] - $vix) . ' шт.).<br><br>';
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -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">
|
||||
|
@ -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
32
qodana.yaml
Normal 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
|
@ -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>
|
||||
|
@ -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"/>
|
||||
|
@ -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 = 'Профиль "' . $_POST['set_name'] . '" был успешно перезаписан!';
|
||||
} 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 = 'Профиль "' . $_POST['set_name'] . '" был создан.';
|
||||
}
|
||||
}
|
||||
} 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 = 'Профиль "' . $set_x['name'] . '" был установлен по умолчанию.';
|
||||
}
|
||||
} 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 = 'Профиль "' . $set_x['name'] . '" был стерт.';
|
||||
}
|
||||
}
|
||||
|
||||
?>
|
||||
<!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(' <font color="green"><b>Теперь можно сохранять</b></font>');
|
||||
} else {
|
||||
$('#result_ch').html(' <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
Loading…
Reference in New Issue
Block a user