Перейти к содержанию

Сообщения от Как сломать систему сохранений?

Пока нет оценок — будьте первым!
Аватар пользователя
3 года назад
Я делаю карту где целью является выживание на рекорд, однако система сохранений ломает всю концепцию. Я знаю как сломать сохранки в мультиплеере, используя TalkBox, однако не имею понятия как это сделать в одиночном режиме. Кто-нибудь знает рабочий способ сломать сохранения или заставить скрипт понять, что была загрузка и выдать инста поражение? Буду очень рад вашей помощи.
Аватар пользователя
3 года назад
Есть функции Save() и Load(), возможно, если переписать их, выйдет что-то путное. Кроме того, есть стопроцентный вариант — просто вырезать кнопки сохранения игры из меню, а также убрать хоткей. Но это уже прямо костылище
Аватар пользователя
3 года назад
Если игра при помощи скриптов умеет сохранять и загружать файлы, то можно выгружать в файл после нажатия пользователем "Завершить ход" идентификатор игры... началась игра - идёт генерация идентификатора сессии (некий рандом в диапазоне и так 4 раза ну типа как пин-код чтобы получилось, можно и больше переменных сделать, хотя 4 оптимально) и запись файла с этим идентификатором -  всё мы зафиксировали идентификатор сессии и переменная контроль сессии получает это значение... перед очередным нажатием пользователя "Завершить ход" считать этот файл и выполнить проверочную генерацию идентификатора типа пин кода, то есть в четыре разряда - совпадение исключено в принципе!
1
2
3
4
5
6
r = os.clock()
function _random()
  math.randomseed(r);
  r = math.random()
  return r;
end
В ответ пользователю psatkha
Аватар пользователя
3 года назад
Спасибо большое за советы. Мне удалось сломать систему сохранений. Я сделал пустой ссылку shared в файлах /UI/Load.(WindowScreen).xdb и /UI/Save.(WindowScreen).xdb. Теперь нажимая на кнопку сохранить или загрузить, а также f6 игра просто вылетает. Меня это более чем устраивает 😀
Аватар пользователя
3 года назад
Если есть возможность сделать по-нормальному - сделай. С подходом "устраивающим тебя", человеку, привыкшему часто прожимать f5, такое точно придётся не по нраву. На третий - четвёртый "сейв" обложит матом и удалит сценарий.
В ответ пользователю Mооnst@r
Аватар пользователя
3 года назад
Ну а если серьёзно, вот что мне удалось сделать: В файлах /UI/Load.(WindowScreenShared).xdb и /UI/Save.(WindowScreenShared).xdb в Children удалил ссылки на кнопку "Сохранить"/"Загрузить". После этого кнопки пропали, но осталась возможность сохранять/заугружать с помощью 2 клика лкм на сам файл в списке. Это пофиксил в файлах /UI/SaveLoad/SavesList.(WindowScrolllableContainer).xdb и LoadsList.(WindowScrollableContainer).xdb удалив блок двойного клика мыши. После этого сохранять файлы можно только с помощью f5, а загружать невозможно вообще (кажется). Мод прикрепил к комментарию.
Вложения 1
1 файл • Общий размер: 120,8 KB
В ответ пользователю Mооnst@r
Аватар пользователя
3 года назад
Mооnst@r
Если есть возможность сделать по-нормальному - сделай. С подходом "устраивающим тебя", человеку, привыкшему часто прожимать f5, такое точно придётся не по нраву. На третий - четвёртый "сейв" обложит матом и удалит сценарий.

Нету в вас чувства юмора...
В ответ пользователю Долгий
Аватар пользователя
3 года назад
Долгий
...После этого сохранять файлы можно только с помощью f5, а загружать невозможно вообще (кажется).

Можно сохранить нажав entr в меню "сохранить игру".
В ответ пользователю Mооnst@r
Аватар пользователя
3 года назад
Mооnst@r

Можно сохранить нажав entr в меню "сохранить игру".

Спасибо. Радует что enter позволяет лишь сохранить, но не загрузить. Нашел ещё проблему - горячую клавишу f8

Добавлено через 11 минут
И она работает даже в первом моде (там, где вылеты)
Аватар пользователя
3 года назад
Для отключения кнопок сохранения и загрузки можно подправить файлы -
[UI\SaveLoad\SaveSpecific\Save.(WindowMSButton).xdb] убрать команду
				

на 

				

аналогично убрать команду на загрузку в [UI\SaveLoad\SaveSpecific\Load.(WindowMSButton).xdb].
И на двойной клик [UI/SaveLoad/LoadsList.(WindowScrollableContainer).xdb]

		

А вот с [quickload 'F8'] и [quicksave 'F5'] ничего сделать не получится эти команды вшиты в exe, конечно и там можно сломать если через HEX редактор изменить значения например на quicklo1d и quicksa1e. Но это так себе вариант.
Аватар пользователя
3 года назад
Можно попробовать через скриптовую команду прописывать в консоль
unbind ИМЯ_КОМАНДЫ
или bind ИМЯ_КОМАНДЫ "MOUSE_B5"
В ответ пользователю vova2112
Аватар пользователя
3 года назад
vova2112
Для отключения кнопок сохранения и загрузки
Как я уже писал выше, кнопки вообще не появляются в меню сохранения/загрузки, что есть замечательно.
vova2112
А вот с [quickload 'F8'] и [quicksave 'F5'] ничего сделать не получится эти команды вшиты в exe, конечно и там можно сломать если через HEX редактор изменить значения например на quicklo1d и quicksa1e. Но это так себе вариант.
Да, idшки quickload и quicksave создаются в exe. Однако бинды на f8, f5 пишутся в файле input_a2.cfg, который находится в документах. Я вчера просто закомментил строчки: bind quicksave 'F5' и
bind quickload 'F8'. Это помогло, но прийдётся объяснять пользователям куда совать этот файл или (упаси господи) делать установочник. Ваша идея с изменением битов в exe мне нравится, так как данная карта уже работает на кастомном exe.


Добавлено через 1 минуту
}{0TT@6bI4
Можно попробовать через скриптовую команду прописывать в консоль
unbind ИМЯ_КОМАНДЫ
или bind ИМЯ_КОМАНДЫ "MOUSE_B5"
Пробывал. По каким то неведомым мне причинам работает лишь в ~10% случаев

PS. заработало с помощью
unbind quicksave
unbind quickload

Статистика

Приветствуем новейшего участника: recijeb

Сейчас на сайте 4 пользователей 1380 гостей