История изменений
Исправление INFOMAN, (текущая версия) :
Помимо того что сама покупка должна происходить транзакцией, у тебя должны быть логи на все операции с предметами. Запись лога в случае покупки должна быть частью транзакции.
В идеале КАЖДЫЙ предмет должен иметь уникальный ID и лог операций, с ним связанных — кто купил, кому продал/подобрал/выбросил. Если это пачка предметов — то при разделении пачки у той части, которую игрок отделил, должна появиться в логе запись, из какой пачки она вынута, а у оригинальнй пачки — сколько из неё изъято. При объединении стеков, соответственно, наоборот. Поможет в случае багов и для предотвращения их использования читерами — например, если из пачки в 100 предметов вынуто 60, то в ней должно остаться 40, если же осталось другое число, то в твоей системе баг и кто-то пытается с его помощью дюпать предметы.
Исходная версия INFOMAN, :
Помимо того что сама покупка должна происходить транзакцией, у тебя должны быть логи на все операции с предметами. Запись лога в случае покупки должна быть частью транзакции.
В идеале КАЖДЫЙ предмет должен иметь уникальный ID и лог операций, с ним связанных — кто купил, кому продал/подобрал/выбросил. Если это пачка предметов — то при разделении пачки у той части, которую игрок отделил, должна появиться в логе запись, из какой пачки она вынута. Поможет в случае багов и для предотвращения их использования читерами — например, если из пачки в 100 предметов вынуто 60, то в ней должно остаться 40, если же осталось другое число, то в твоей системе баг и кто-то пытается с его помощью дюпать предметы.