немного логики
This commit is contained in:
@@ -55,9 +55,45 @@ class Travel
|
||||
2702 => 'city.php'
|
||||
];
|
||||
|
||||
private static array $fbattleCheckFiles = [
|
||||
'c_haos_in.php',
|
||||
'c_haos.php',
|
||||
'c_park.php',
|
||||
'city.php',
|
||||
'clan_castle.php',
|
||||
'enter_cave.php',
|
||||
'library.php',
|
||||
'atk.php',
|
||||
'podzem_dialog.php',
|
||||
'post.php',
|
||||
'shop.php',
|
||||
'tournament.php',
|
||||
'vxod.php',
|
||||
'bank.php',
|
||||
'canalizaciya,php',
|
||||
'forest.php',
|
||||
'main.php',
|
||||
'repair.php',
|
||||
'towerstamp.php',
|
||||
'hell.php',
|
||||
'ul_clans.php',
|
||||
'labirint.php',
|
||||
'akadem.php',
|
||||
'towerin.php',
|
||||
'user_anketa.php',
|
||||
'zayavka.php',
|
||||
];
|
||||
private static array $towerinCheckFiles = [
|
||||
'main.php',
|
||||
'city.php',
|
||||
'tower.php'
|
||||
];
|
||||
private static array $roomsCheck = [22, 23, 27, 29, 30, 31, 37, 38, 39, 40, 41, 45, 53, 61, 401, 402, 600, 601, 602, 621, 650, 1051, 1052];
|
||||
|
||||
/**
|
||||
* Перемещение по комнатам.
|
||||
* @param int $roomId ID куда идём.
|
||||
*
|
||||
* @param int $roomId ID куда идём.
|
||||
* @param int $roomIdCurrent ID откуда идём.
|
||||
*/
|
||||
public static function toRoom(int $roomId, int $roomIdCurrent): void
|
||||
@@ -88,7 +124,9 @@ class Travel
|
||||
|
||||
/**
|
||||
* Проверка можно ли перейти из комнаты в комнату.
|
||||
*
|
||||
* @param int $roomId ID комнаты
|
||||
*
|
||||
* @return array|int[]
|
||||
*/
|
||||
private static function allowedRoomMoves(int $roomId): array
|
||||
@@ -141,4 +179,32 @@ class Travel
|
||||
}
|
||||
return $room[$roomId];
|
||||
}
|
||||
|
||||
/** Проверки на соответствие скрипта и комнаты, которые были натыканы по всем файлам.
|
||||
* @param int $inRoom
|
||||
* @param int $inBattle
|
||||
* @param int $inTower
|
||||
*
|
||||
* @return void
|
||||
*/
|
||||
public static function roomRedirects(int $inRoom, int $inBattle, int $inTower)
|
||||
{
|
||||
if ($inBattle && in_array(pathinfo(debug_backtrace()[0]['file'])['basename'], self::$fbattleCheckFiles)) {
|
||||
header('location: fbattle.php');
|
||||
exit;
|
||||
}
|
||||
if ($inTower && in_array(pathinfo(debug_backtrace()[0]['file'])['basename'], self::$towerinCheckFiles)) {
|
||||
header('location: towerin.php');
|
||||
exit;
|
||||
}
|
||||
// Если я в одной из этих комнат,
|
||||
// [И] Имя файла который инклюдит файл с проверкой не совпадает с именем файла локации в которой я нахожусь
|
||||
// [И] Номер комнаты который я пытаюсь открыть есть в списке проверяемых
|
||||
if (in_array($inRoom, self::$roomsCheck)
|
||||
&& pathinfo(debug_backtrace()[0]['file'])['basename'] != self::$roomFileName[$inRoom]
|
||||
&& in_array(array_search(pathinfo(debug_backtrace()[0]['file'])['basename'], self::$roomFileName), self::$roomsCheck)) {
|
||||
header('location: main.php');
|
||||
exit;
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user