디시인사이드 갤러리

마이너 갤러리 이슈박스, 최근방문 갤러리

갤러리 본문 영역

[정보] 언락/해금 관련 정보 정리 (Preferences 파일 수정하는법 포함)

ㅇㅇ(131.215) 2020.08.03 21:11:36
조회 44984 추천 52 댓글 7
														

갤 보면 맨날 올라오는거같아서 여기다 다 정리해봄


사실 슬더스 디컴파일해서 소스코드 읽어보다가 생각나서 적는거긴 함


본문은 이 게임의 언락/해금 (이하 언락으로 통일) 메커니즘 및 Preference 디렉토리 안 파일 구성에 관한 구체적인 내용들에 관한 부분이니 결론만 알고 싶은 사람들은 알아서 패스하시고


스크린샷은 귀찮아서 안넣음. 마찬가지 이유로 이 글은 반말임. 동일한 이유로 더블스페이싱임. 트리플스페이싱 귀찮음.


----------------------------------------------------------------------------------------------------------------


이 게임에서 거의 모든 카드/유물/플레이어블 캐릭터/업적 관련 언락(이하 언락요소)는 unlock/UnlockTracker class에서 처리함


이건 게임을 실행하면 가장 먼저 돌아가는 class중에 하나임. 


메인메뉴 렌더링하기 전에 이걸 체크해야 Stat창 버튼을 보여줄지 아닐지 결정할 수 있거든


심지어 backward compatibility(구 버전에서 넘어오는 경우) 를 위해 처음에는 저장된 언락요소들을 체크하고 다시 retroactive하게 언락되어야 하나 저장되지 않은 언락요소들을 찾아서 업데이트함


때문에 어지간한 경우에는 preference 파일 잘못 고쳤다고 영영 얻지 못하는 업적이 생기거나 하는 경우는 없다.


맨 밑 결론만 읽어도 대부분 갤러들에게 상관없는 이유임.


이 게임 언락요소랄게 어짜피 별 게 없긴 하지만 글의 구성을 위해 전부 나열해보면


1. 각 캐릭터(아클/사일/디펙/와쳐) 별로 등반점수를 쌓아서 해금하는 카드/유물들 (각 캐릭터별로 5단계로 이루어짐)


2. 각 캐릭터 및 열쇠 언락


3. 각 캐릭터별 승천 활성화 및 단계


4. 메인메뉴 Stat 및 Compendium 활성화, 플레이모드 (일일도전/커스텀) 활성화


본격적으로 시작하기 전에 다들 알거라고 생각하지만 preference 폴더는 슬더스 깔려있는 폴더 안에 바로 있음. 


스팀의 경우 ...steamapps/common/SlayTheSpire/preferences임 딴 플랫폼은 알아서 잘 찾으시고

=====================================================================================

1. 캐릭터별 등반점수 언락


이건 preferences 폴더 안 STSUnlockProgress 파일에서 관리함


등반이 (승리든 패배든) 끝나면 calculateUnlockProgress 함수가 실행되고 여기서 처리함.


메모장같은거로 열면 안에 <character>UnlockLevel, <character>CurrentCost 등등의 항목들이 있고 colon(:) 으로 구분되어 오른쪽에 쌍따옴표 안에 숫자가 들어있을거임


(물론 캐릭터 막 만들고 한판도 안했으면 비어있다)


언락하길 원하는 해당 캐릭터의 UnlockLevel을 원하는 단계 (0이 초기값, 5가 최대)로 맞춰주면 된다.


최대레벨로 맞추는 경우엔 다른 값들은 다 무시해도 된다. 


최대레벨이 아니라면 <character>CurrentCost랑 <character>Progress를 UnlockLevel에 맞춰 건드려줘야 한다.


<character>CurrentCost는 다음 레벨업까지의 점수임


UnlockLevel 0 -> "300" (초기값, 생략가능)

UnlockLevel 1 -> "750"

UnlockLevel 2 -> "1000"

UnlockLevel 3 -> "1500"

UnlockLevel 4 -> "2000"

UnlockLevel 5 -> "2500"


사족으로 초기버전에선 필요 경험치량이 달랐던듯한데 1단계가 500이고 다음부터 250씩 증가했던 듯 함.


저 부분이 legacy로 남아있는데 그래서 위 테이블에 있는 값이 아닌 값으로 CurrentCost를 설정하면 레벨업마다 CurrentCost가 250씩 증가하는걸 볼 수 있다.


<character>Progress는 현재 경험치량이고, CurrentCost보다 작게 설정해주면 됨. 


이 값은 사실 CurrentCost 보다 높게 설정해도 에러는 안 뜨고 다음 등반결과때 누적되서 반영되니 알아서 설정하면 됨.


나머지는 언락에는 필요없는 항목들이므로 생략.


사족으로 각 캐릭터별 해금되는 카드/유물 테이블


아이언클래드

1 -> 대검, 약점 분석, 한계 돌파

2 -> 부적, 전경기, 삽

3 -> 난폭한 타격, 진화, 화형

4 -> 파괴, 감시병, 발굴

5 -> 푸른 양초, 말라붙은 가지, 노래하는 그릇


사일런트

1 -> 파멸, 촉매, 시체 폭발

2 -> 저주 인형, 미소짓는 가면, 작은 상자

3 -> 망토와 단검, 정밀, 강철의 폭풍

4 -> 병법서, 배달원, 판도라의 상자

5 -> 집중, 설치, 대단원의 막


디펙트

1 -> 되돌리기, 평형, 메아리의 형상

2 -> 터보, 찢기, 유성 타격

3 -> 파괴광선, 재활용, 코어 서지

4 -> 판금 케이블, 순무, 룬 축전기

5 -> 데이터 디스크, 공생 바이러스, 감정 회로


와쳐

1 -> 부복, 신성 모독, 헌신

2 -> 외세, 알파, 마음의 요새

3 -> 영혼 방패, 염원, 선견지명

4 -> 아카베코, 음양성, 물고기 도자기

5 -> 타격용 인형, 눈물 모양 목걸이, 잠금 걸쇠



2. 각 캐릭터 및 열쇠 언락


캐릭터 언락은 STSUnlocks 파일에서 관리함.


해당 캐릭터 "The Silent", "Defect", "Watcher"를 "2"로 설정해주면 된다.


와쳐의 경우 앞 세 캐릭터가 언락되있고 심장클한 기록이 있으면 언락되는데, 따라서 "Watcher"를 "2"로 두는 대신 STSAchievements 파일에서 "RUBY", "EMERALD", "SAPPHIRE" 항목 중 하나를 "true"로 둬도 상관없다. (굳이?)


열쇠 언락은 뭐 알겠지만 아클, 사일, 디펙 1승씩 하면 해금된다.


코드상으로는 serFinalActAvailability 함수가 처리하는데,


이 함수는 STSPlayer 파일에서 IRONCLAD_WIN, THE_SILENT_WIN, DEFECT_WIN 이 true이면 (그리고 일일등반이 아니거나 커스텀에서 껐거나 뭐 그런거 체크는 당연히 하고) true값을 준다.


(WATCHER_WIN은 없음. 와쳐 클리어해서 언락될게 없어서... 열쇠를 더 추가하거나 할 계획이 없다는 소리일지도)


따라서 해당 파일에서 IRONCLAD_WIN, THE_SILENT_WIN, DEFECT_WIN을 모두 "true"로 두면 된다.


STSPlayer 파일 안에 보면 추가로 <character>_SPIRITS 항목이 있음.


이 항목은 대충 직전 플레이에서 잡은 보스 수라고 보면 되는데 (무한모드였으면 누적되고 뭐 등등...)


이 수치를 가지고 NeowEvent class에서 고래밥을 결정한다.


따라서 전 플레이에서 1막 보스 못 보고 죽었더라도 해당 <character>_SPIRITS를 "1"로 두면 고래밥을 받을 수 있다.


반대로 비탄을 받고 싶다면(누가?) 해당 항목을 "0"으로 두면 된다.


모드를 까본 건 아니지만 아마 고래밥 모드에선 이 항목을 항상 1로 두는게 아닐까 싶음.



3. 각 캐릭터별 승천 단계/활성화


승천 단계는 각 캐릭터별로 STSData<character> 파일에서 관리함.


STSData<character> 파일을 열어보면 ASCENSION_LEVEL이랑 LAST_ASCENSION_LEVEL이 있는데 ASCENSION_LEVEL이 (플레이가능한) 최대 승천 레벨, LAST_ASCENSION_LEVEL이 직전에 플레이한 승천레벨임.


LAST_ASCENSION_LEVEL은 캐릭터 선택창에서 디폴트로 보여줄 승천레벨 설정하려고 있는거라 무시해도 무관함.


한 가지 주의점은 승천 단계를 1 이상으로 놓는다고 캐릭터 선택창에서 승천 활성화 버튼이 보이는건 아니라는 거임.


이 부분은 캐릭터 선택창을 열거나 하면 isAscensionUnlocked 함수를 불러서 처리함.


이 함수는 해당 캐릭터의 승리한 등반횟수를 세서 1 이상이면 true를 준다.


따라서 WIN_COUNTER를 1 이상으로 설정해줘야 승천 체크박스가 보임.


위 isAscensionUnlocked 함수는 승천레벨별로 주는 업적 (승천0, 10, 20)도 같이 처리해주는데다 캐릭터 선택창을 열면 매번 실행되기 때문에


가령 ASCENSION_LEVEL을 20으로 설정했다고 승천 관련 업적들을 못 따는 경우는 없으니 안심해도 된다.



4. 기타 Stat, Compendium, 일일도전, 커스텀 활성화


우선 Stat, Compendium(이거 한국어로 뭔지 까먹었는데 뭐 도감? 그런거일듯) 활성화부터. 이건 statScreenUnlocked 함수에서 처리함.


얘는 보스를 한 번이라도 잡았거나 혹은 한 번이라도 죽었다면 true값을 줌.


따라서 아무 캐릭터의 STSData<character> 파일에서 BOSS_KILL 혹은 LOST_COUNT 항목을 1 이상으로 두면 된다.


웃긴거는 위에서 승천 언락한다고 WIN_COUNT를 1 이상으로 둔다고 Stat이 해금되는게 아니라는 점.


정상적인 플레이에선 보스를 안 잡고 등반을 승리하는 방법이 없으니 로직에 문제가 있는건 아니지만서도...


일일도전 언락의 경우 위 statScreenUnlocked를 이용한다.


따라서 위와 동일한 방법으로 언락 가능.


코드를 까보면 dailiesUnlocked라고 (지금은) 사용되지 않는 함수가 있는데 얘는 최대 등반 층수가 17 초과인지를 체크함.


아마 초기버전에서는 1막 클리어를 기준으로 언락했던듯.


마지막으로 커스텀 활성화는 일일도전을 한 번이라도 플레이(승리 ㄴㄴ)하면 언락된다.


정확하게는 아무 캐릭터의 STSData<character> 파일에서 HIGHEST_DAILY 항목을 1 이상으로 두면 된다.



5. 기타 자잘한 사항


Compendium에 나오는 카드/유물 정보해금은 각각 STSSeenCards/STSSeenRelics 파일에서 처리한다.


각 파일에 "카드/유물이름" : "1" 형태로 항목을 추가해주면 됨.


업적의 경우에는 STSAchievements 파일에서 처리한다.


"업적명" : "true" 형태로 추가하면 된다.


업적과 관련해서 몇 가지 흥미로운 점.


- 촉매, 역병 업적은 사일런트로만 달성 가능 (AbstractDungeon.player.chosenClass == AbstractPlayer.PlayerClass.THE_SILENT 라는 체크가 들어간다)


- 반면 플라즈마 9개 업적은 모든 캐릭터가 다 달성 가능하다 (-디- 수듄...)


- 사실 닌자 (한 턴 단검 10개 사용) 업적은 사일런트가 아니라도 깨진다. 기준이 뭔지 모르겠음. 그냥 스파게티 코드인가...


- 왜인지 모르겠지만 순수 업적은 3층 이상에서만 깨진다. (AbstractDungeon.floorNum > 3 이라는 체크가 들어감)


- 도누 포식하는 업적은 포식 '카드'를 사용하는 트리거가 아니라 포식 '액션'을 사용하는 트리거라 모드로 포식 '액션'을 사용하는 다른 카드로 피니쉬하면 업적 달성 가능.


- 여태까지 본 적 없는 보스(STSSeenBosses 파일에 항목이 없는 보스)가 있다면 안 본 보스를 무조건 보도록 던전이 생성됨.


  맨 첫번째 등반에선 수호자, 투사, 깨어난자 순서로 나오는건 다들 알 테지만 가령 두 번째 1막 보스는 육각령 고정이고 뭐 그런식임.


  구체적으로는 1막은 수호자>고스트>슬라임 순, 2막은 투사>청동로봇>수집가 순, 3막은 까마귀>도누>시간포식자 순임.


- 이건 정말로 딴거긴 한데 보스킬 6마리 뜬다는거 도데체 왜 일어나는지 모르겠음. 


  코드 다 까봤는데 일단 개화 이벤트에선 확실히 카운트 안되고 저장후 불러오기할때도 딱히 버그 없는거같음.


  이 외에 의심되는거 있으면 댓글로 달아주면 코드 분석해봄.

---------------------------------------------------------------------------------------------------------------------

요약)


1. 카드/유물 언락


STSUnlockProgress 파일에

{

  "IRONCLADUnlockLevel" : "5",

  "THE_SILENTUnlockLevel" : "5",

  "DEFECTUnlockLevel" : "5",

  "WATCHERUnlockLevel" : "5"

}

추가


2. 캐릭터 언락


STSUnlocks 파일에

{

  "The Silent" : "2",

  "Defect" : "2",

  "Watcher" : "2"

}

추가


3. 열쇠 언락


STSPlayer 파일에

{

  "IRONCLAD_WIN" : "true",

  "THE_SILENT_WIN" : "true",

  "DEFECT_WIN" : "true"

}

추가


4. 고래밥


STSPlayer 파일에

{

  "<character>_SPIRITS" : "1"

}

추가 (0이면 1로)


5. 승천


해당 캐릭터 STSData<character> 파일에

{

  "WIN_COUNTER" : "1",

  "ASCENSION_LEVEL" : "n"

}

추가 (n은 원하는 승천단계)


6. Stats, Compendium, 일일도전


아무 캐릭터 STSData<character> 파일에

{

  "BOSS_COUNT" : "1"

}

추가


7. 커스텀 도전 활성화


아무 캐릭터 STSData<character> 파일에

{

  "HIGHEST_DAILY" : "1"

}

추가

추천 비추천

52

고정닉 5

0

댓글 영역

전체 댓글 0
등록순정렬 기준선택
본문 보기

하단 갤러리 리스트 영역

왼쪽 컨텐츠 영역

갤러리 리스트 영역

갤러리 리스트
번호 말머리 제목 글쓴이 작성일 조회 추천
2860 설문 경제관념 부족해서 돈 막 쓸 것 같은 스타는? 운영자 24/05/13 - -
2859 AD 나혼렙 어라이즈 그랜드 론칭! 운영자 24/05/09 - -
77884 공지 뉴비를 위한 공략글 & 각종 정보글 모음 [33] ㅇㅇ(39.7) 21.06.03 296797 82
154044 공지 [FAQ] 해금(언락), 동기화 관련 (스팀, 폰더스) [5] 입력안할거임갤로그로 이동합니다. 23.11.12 3426 2
153985 공지 [모드] 관련 정보, 갤 내 분쟁 처리 기준 입력안할거임갤로그로 이동합니다. 23.11.11 2746 6
91793 공지 게임 구입하기 전&막 시작한 뉴비 FAQ [20] 입력안할거임갤로그로 이동합니다. 21.12.20 33701 56
62880 공지 (스압주의, 데이터주의) 모드캐릭 9개 20승천까지 클리어한 후기 [41] ㅇㅇ(175.214) 20.12.31 38147 115
29326 공지 [FAQ] 진엔딩 보는법 (???막 심장 만나는법) [13] EDIN갤로그로 이동합니다. 19.01.07 97531 67
35563 공지 [신고 및 건의사항] [38] EDIN갤로그로 이동합니다. 19.05.11 4384 1
25523 공지 슬레이 더 스파이어 관련 내용이 있어야합니다. [6] EDIN갤로그로 이동합니다. 18.11.03 10073 10
171315 일반 사서덱에서 드로우가 존나 중요한 이유를 깨닫게 해준 판 슬갤러(110.12) 03:51 6 0
171314 모드 랜덤모드 정신나갔네 슬갤러(119.202) 03:32 12 0
171313 일반 너무 강력한 사일 디펙터갤로그로 이동합니다. 02:58 14 0
171312 일반 옛날에 아클의 마지막양심이었던 카드가 뭐였지 ㅇㅇ갤로그로 이동합니다. 02:44 26 0
171311 일반 슬뉴비 20 심장 패고왔다리 [2] ㅇㅇ갤로그로 이동합니다. 02:19 30 0
167391 정보 슬레이 더 스파이어 2 트레일러 [80/1] ㄴㅁㅇ갤로그로 이동합니다. 04.11 10794 71
171310 일반 매 전투를 1의 약화가 걸린 상태로 시작합니다. [1] 슬갤러(121.130) 01:38 71 0
171309 일반 오랜만에 와처했는데 [1] 슬갤러(211.234) 01:26 31 0
171308 일반 확실히 도르마무를 안하니까 ㅇㅇ(175.215) 01:13 39 0
171307 일반 디펙트 연속 심장클함 ㄷㄷ [1] 모찌주니어갤로그로 이동합니다. 00:49 29 0
171306 일반 그는 너무 빠릅니다! ㅇㅇ(112.172) 00:45 23 1
171305 일반 1막보상 황스트롤라베 인정? 슬갤러(110.12) 00:41 44 0
171304 일반 디팩 시작유물도 은근 체감 되는구나.. [2] ㅇㅇ(14.34) 00:34 68 0
171303 일반 심청이 느로스 [1] ㅇㅇ(175.215) 00:33 30 0
171302 일반 슬더스에서 꼭 패치해줬으면 하는 것 [6] 슬갤러(14.35) 00:22 90 0
171301 일반 고통파열 너무 맛있어 [3] ㅇㅇ(110.76) 00:01 42 0
171300 일반 격돌같은것도 집어보니 쓸만한 순간이 있음 [10] ㅇㅇ갤로그로 이동합니다. 05.12 113 0
171299 일반 불타는 일격 디펙터갤로그로 이동합니다. 05.12 30 0
171298 일반 야발... [2] ㅇㅇ(116.123) 05.12 50 0
171297 일반 3막 6연전투를 헤쳐나가는 대사일 슬갤러(183.102) 05.12 38 0
171296 일반 슬더스2 솔직히 걱정됨 [2] 모찌주니어갤로그로 이동합니다. 05.12 110 2
171295 일반 고구마, 쥐 vs 뱀식물 [2] 슬갤러(211.234) 05.12 45 0
171294 일반 1막에서 죽은 다음판 엘날먹 못하면 리트함 [2] 슬갤러(39.115) 05.12 69 3
171293 일반 첨탑괴담) 21 6, 8 7 14 [2] ㅇㅇ(223.39) 05.12 125 3
171292 일반 아클 20승천 심장 첫 클 슬갤러(58.122) 05.12 22 0
171291 일반 룬반구로 1체력 [3] 야자33갤로그로 이동합니다. 05.12 75 0
171290 일반 길 잘못가서 명령어로 윙부츠 유물 얻으려는데 왜안됨? [4] 00(220.87) 05.12 110 0
171289 일반 아무리 봐도 망한 덱 같은데 이길 때 신기함 [5] 레후딥의수정창갤로그로 이동합니다. 05.12 132 0
171288 일반 3층까지 고정인 첨탑 [2] 야자33갤로그로 이동합니다. 05.12 77 1
171287 일반 대단원사일 디펙터갤로그로 이동합니다. 05.12 17 0
171286 일반 오늘의 폰더스 zeya갤로그로 이동합니다. 05.12 20 0
171285 일반 타격 전부 완타로 바꾸기 vs 전부 흡혈로 바꾸기 [7] ㅇㅇ(110.76) 05.12 158 0
171284 일반 옛날엔 현돌이 힘2였다던데 [1] 슬갤러(223.39) 05.12 79 0
171283 일반 20승천 디펙트 심장 첫클 모찌주니어갤로그로 이동합니다. 05.12 21 0
171282 일반 하아? [5] 중세남자갤로그로 이동합니다. 05.12 68 0
171281 일반 뉴비 승천 20 2번째 보스에서 죽었는데 부검 가능? [6] 슬갤러(58.122) 05.12 87 0
171280 일반 다운폴하는데 나만 캐릭터에 대한 깊이가 안느껴지나 [4] ㅇㅇ갤로그로 이동합니다. 05.12 129 1
171279 일반 호구보스<<<사실 호구 아님 [5] 낙지스껌갤로그로 이동합니다. 05.12 162 1
171278 일반 않이 ㅇㅇ(211.104) 05.12 27 0
171277 일반 요즘 그냥 디펙트가 재밌음 [1] 슬갤러(39.115) 05.12 47 0
171276 일반 20승천 사일 심장런 성공햇어요 [5] 슬갤러(59.4) 05.12 176 7
171275 일반 슬레이더슬파이어 캐칭갤로그로 이동합니다. 05.12 27 0
갤러리 내부 검색
제목+내용게시물 정렬 옵션

오른쪽 컨텐츠 영역

실시간 베스트

1/8

뉴스

디시미디어

디시이슈

1/2