TauCetiStation / TauCetiClassic

Франкенштейн жив
GNU Affero General Public License v3.0
143 stars 418 forks source link

Всем новичкам пишет "части тела вашего персонажа" #13029

Open KIBORG04 opened 7 months ago

KIBORG04 commented 7 months ago

Описание

Что должно было произойти

Не пишет

Что произошло на самом деле

image

Шаги воспроизведения

  1. Создать новую куклу
  2. Всё

Дополнительная информация:

Каждой кукле по дефолту дают сейвфайл версию 8 image

Так как она меньше текущей, то шаг за шагом она мигрирует до актуальной. Хз зачем это надо для НОВЫХ кукл, но сообщение должно писаться только при миграции существующей куклы, а не новой

KIBORG04 commented 7 months ago

https://github.com/TauCetiStation/TauCetiClassic/blame/dc3c8d9fc84f16c843d83f79dec955cf1b64d599/code/modules/client/preferences_savefile.dm#L216

LudwigVonChesterfield commented 7 months ago

У нас в принципе очень много применяется сейвфайл модификаций к новосозданным, якобы-не-поломанным куклам, и да, описанный баг - один из симптомов этого.

ZER0-In commented 7 months ago

Существует и на старых версиях билда и на новых. На локалке постоянно дрочит эта штука при каждом запуске.

volas commented 3 months ago

Ошибка где-то в другом месте, приведенный код просто в существующем сейвфайле фиксит версию, если её нет.

По всей логике, мы сначала пытаемся загрузить существующие префы, https://github.com/TauCetiStation/TauCetiClassic/blob/21003fe8761632aa1cd9d87842396301d67335b8/code/modules/client/preferences_savefile.dm#L525-L528

и если они отсутствуют - будут использоваться дефолтные, и при сохранении сохраняться с текущей максимальной версией: https://github.com/TauCetiStation/TauCetiClassic/blob/21003fe8761632aa1cd9d87842396301d67335b8/code/modules/client/preferences_savefile.dm#L726-L734

volas commented 3 months ago

А хотя, оно почему-то в обоих случаях создаёт сейвфайл не проверяя?

volas commented 3 months ago

Да, логика правильная, если файл не существует - мы используем дефолтные.

https://github.com/TauCetiStation/TauCetiClassic/blame/21003fe8761632aa1cd9d87842396301d67335b8/code/modules/client/preferences_savefile.dm#L336-L340

Но это для общих префов. Проблема, что персонажи имеют свою версию, и с персонажем нам похоже не проверить на момент load_saved_character(), существовал ли он до этого или нет