Страница 1 из 1

Не могу запустить игру даже после чистой установки.

Добавлено: 07 ноя 2021, 11:28
kill_v
Сразу в тему написал текст ошибки, что бы было просто и быстро найти другим.
И так к делу.
На сервер обновил PHP до 8 версии (в требованиях указано PHP 5.5+ что значит 8 подходит), но там было очень много изменений ломающих обратную связь и эта ошибка затрагивает одно из тех новинок.
Если сделать все под PHP 8 то на старых версиях тоже должно работать.

и так, при запуске сервера получаю вот такой текст:
на экране:
[2021-11-07 09:14:36] Benchmark 0.024335s (exec: 0.02434s, display: -5.0E-6s, DB: 0.012822s), memory: 762,480

и в логах:
Uncaught TypeError: Unsupported operand types: string + int in /classes/Player/playerTimeDiff.php:114

Проблема решается корректировкой строки 114:
$time_diff = (int)$user_time_diff[self::TIME_DIFF] + $user_time_diff[self::TIME_DIFF_UTC_OFFSET];

В PHP 8 они стали внимательно следить за типами переменных, и теперь нельзя сложить текстовую/логическую переменную и числовую, это Fatal Error

Далее загружается фоновая картинка, но не загружается шаблон, и тут я не придумал что делать.

В логе FatalError приходится сюда:
PHP Fatal error: Uncaught TypeError: sizeof(): Argument #1 ($value) must be of type Countable|array, null given in /game/classes/template.php(764) : eval()'d code:1

Полный лог сервера во вложении
www-error.zip
.

Re: Не могу запустить игру даже после чистой установки.

Добавлено: 29 ноя 2021, 11:47
Gorlum
kill_v писал(а): 07 ноя 2021, 11:28 Сразу в тему написал текст ошибки, что бы было просто и быстро найти другим.
И так к делу.
На сервер обновил PHP до 8 версии (в требованиях указано PHP 5.5+ что значит 8 подходит), но там было очень много изменений ломающих обратную связь и эта ошибка затрагивает одно из тех новинок.
Если сделать все под PHP 8 то на старых версиях тоже должно работать.

и так, при запуске сервера получаю вот такой текст:
на экране:
[2021-11-07 09:14:36] Benchmark 0.024335s (exec: 0.02434s, display: -5.0E-6s, DB: 0.012822s), memory: 762,480

и в логах:
Uncaught TypeError: Unsupported operand types: string + int in /classes/Player/playerTimeDiff.php:114

Проблема решается корректировкой строки 114:
$time_diff = (int)$user_time_diff[self::TIME_DIFF] + $user_time_diff[self::TIME_DIFF_UTC_OFFSET];

В PHP 8 они стали внимательно следить за типами переменных, и теперь нельзя сложить текстовую/логическую переменную и числовую, это Fatal Error

Далее загружается фоновая картинка, но не загружается шаблон, и тут я не придумал что делать.

В логе FatalError приходится сюда:
PHP Fatal error: Uncaught TypeError: sizeof(): Argument #1 ($value) must be of type Countable|array, null given in /game/classes/template.php(764) : eval()'d code:1

Полный лог сервера во вложении www-error.zip.
Не подходит восьмерка - как раз из-за ломающих совместимость изменений. Попробуй поставить 7.1