Powiedzmy, że mam w swojej grze osiągnięcie „Zbierz swoją pierwszą rzecz” i opublikuję to w wersji na żywo bez statystyk postępu. Później decyduję się na dodanie kilku nowych osiągnięć w aktualizacji, w tym jednego opartego na poprzednim osiągnięciu: „Zbierz 10 rzeczy”.
Tworzę statystykę postępu dla tego, który jest aktualizowany w kodzie, ale edytuję również oryginalne osiągnięcie, aby odblokować je za pomocą statystyki postępu, a nie funkcji AwardFirstThingamajigAchievement () w kodzie.
Jakie są tego konsekwencje? Czy gracz, który już odblokował to osiągnięcie, zostanie ponownie zablokowany, ponieważ osiągnięcie zostało edytowane, co technicznie czyni go nowym? Czy pozostanie odblokowany, ale nadal będzie powodował małe okienko wyskakujące dla pierwszego osiągnięcia w następnym zebranym Thingamajig? A może Steam po prostu nie dotknie już odblokowanych osiągnięć?
źródło
Odpowiedzi:
Z tego, co pamiętam o Steam API, możesz ustawić / zresetować postępy graczy poprzez Steam API ręcznie, co pozwala rozwiązać problem na wiele sposobów.
Dopóki identyfikatory osiągnięć w backendie odzwierciedlają wartości w kodzie, wszystko powinno być w porządku, a nowe osiągnięcie powinno odzwierciedlać już osiągnięty postęp w starej statystyce.
jeśli chcesz przenieść już działające osiągnięcie do nowego typu, możesz go „wycofać”.
Z drugiej strony nie sądzę, że para wyczyści dane graczy, jeśli zmienisz oryginalne osiągnięcie na „progresywne”. Jest to tylko flaga, która powoduje, że pasek postępu wyskakuje i nawet jeśli zmienisz wartość maksymalną lub zmodyfikujesz osiągnięcie w inny sposób, nadal powinieneś zachować istniejące dane. Więc po prostu zrób to i obserwuj!
Mam nadzieję że to pomoże!
źródło
Nie jestem zaznajomiony z tym, jak Steam radzi sobie z różnymi rzeczami (jeszcze tam nie publikuje), ale zakładam, że każdy gracz, który odblokował osiągnięcie, zachowałby to osiągnięcie. Jest tak, ponieważ osiągnięcia nie są jak zmienne boolowe, które są włączane i wyłączane. Osiągnięcie zostanie zarejestrowane na serwerze Steam jako osiągnięte. Dlatego wszelkie dodatkowe postępy dokonane po tym, niezależnie od jakichkolwiek zmian w kodzie, nie powinny mieć znaczenia. W ten sposób, nawet jeśli usunę grę, moje osiągnięcie nadal tam będzie. Jeśli Steam tego nie zrobił (tzn. Osiągnięcie musiałoby zostać ponownie odblokowane po zmianie kodu), osiągnięcie zniknęłoby również po ponownym pobraniu gry - ponieważ wszystkie lokalne dane o warunkach osiągania zostałyby usunięte. Jednak,
Mam nadzieję że to pomoże.
źródło