Ko/Setup mod on steam
![Icon-broom.png](/w/images/thumb/7/71/Icon-broom.png/32px-Icon-broom.png)
모드 파일
모드를 구동할려면 steamapps폴더에 몇몇 파일들이 필요합니다. 예를 들어 Source SDK 2013은 game/ 경로에 몇가지 기본 파일을 제공합니다. 이 폴더에는 모드 구동에 필요한 필수 정보 및 스크립트 파일등이 포함되어져 있으며 이중 가장 중요한 것은 gameinfo.txt, bin/client.dll 및 bin/server.dll 파일입니다.
- 싱글플레이어 : <your mod>/sp/game/mod_hl2 (혹은 mod_episodic) 에서 <steam_path>/steamapps/sourcemods/<your mod> 경로로 파일들을 복사하세요.
- 멀티플레이어 : <your mod>/mp/game/mod_hl2mp 에서 <steam_path>/steamapps/sourcemods/<your mod> 경로로 파일들을 복사하세요
이후 스팀을 완전히 재시작하면 스팀 라이브러리에 당신의 모드가 추가될 것입니다. 이후에 기본파일들(예: client.dll, server.dll)의 변동 사항이 있을때마다 수동으로 위의 경로로 이동해 파일을 교체해주셔야 합니다.
Symlink 모드 경로
파일에 변동 사항이 있을 때마다 이를 수동으로 교체하는 작업이 다소 귀찮을 수 있으므로 mod_ 폴더로 경로를 설정해 자동으로 파일이 교체되도록 할 수 있습니다. 먼저, 이전에 만든 steamapps/sourcemods/ 안에 있는 파일들을 모두 제거하십시오.(다른 모드가 설치되지 않는 한 ""sourcemods/""에는 파일이 아무것도 없어야 합니다.
- 터미널을 엽시다. (Windows: 명령 프롬프트{cmd.exe}, OS X: Applications/Utilities/Terminal, Linux: xterm 혹은 terminal)
- <스팀경로>/sourcemods/로 경로를 변경합니다.
- 당신의 모드경로에 대한 symlink를 만들어야 합니다.
- Windows: mklink /J <mod_name> <path_to_source>/<sp|mp>/game/<mod_hl2mp|mod_hl2|mod_episodic>
- Linux: mkdir <mod_name> && sudo mount --bind <path_to_source>/<sp|mp>/game/<mod_hl2mp|mod_hl2|mod_episodic> <mod_name>
이 작업이 다 끝나셨다면 이제 해당 파일에 변동사항이 생길때마다 자동으로 당신의 모드폴더 파일도 교체될 것입니다.
출력 경로 변경
당신은 출력 경로를 mod_hl2, mod_episodic 혹은 mod_hl2mp이 아닌 본인 재량에 따른 경로로 바꿀 수 있습니다. 프로젝에 우클릭을 한다음 Project -> Properties -> Build events -> Post build events 를 누른 후 본인 재량에 따라 경로를 지정하면 됩니다. 이 작업은 Client와 Server 프로젝트 둘다 진행해야 합니다.
예시
if not exist "..\..\..\game\MY_MOD\bin\." mkdir "..\..\..\game\MY_MOD\bin\."
copy "$(TargetDir)$(TargetFileName)" "..\..\..\game\MY_MOD\bin\.\$(TargetFileName)"
if ERRORLEVEL 1 goto BuildEventFailed
if exist "$(TargetDir)$(TargetName).map" copy "$(TargetDir)$(TargetName).map" ..\..\..\game\MY_MOD\bin\.\$(TargetName).map
copy "$(TargetDir)$(TargetName).pdb" ..\..\..\game\MY_MOD\bin\.\$(TargetName).pdb
if ERRORLEVEL 1 goto BuildEventFailed
goto BuildEventOK
:BuildEventFailed
echo *** ERROR! PostBuildStep FAILED for $(ProjectName)! EXE or DLL is probably running. ***
del /q "$(TargetDir)$(TargetFileName)"
exit 1
:BuildEventOK
당신의 모드에서 생길 수 있는 오류 해결방법
만약 시작할 때, 인트로 영상이 재생된 후, 당신의 모드가 충돌을 일으키지만, 반대로 스팀을 끄고 실행했을때는 정상적으로 구동될때, 이 지침을 사용하십시오:
1 - (src\public\steam)경로에서 steam_api.h 파일을 열어줍니다.
2. - DELETE/COMMENT (Lines 551 - 562)을 찾은 다음 해당 문구를 삭제해 줍니다.
m_pSteamMusicRemote = SteamClient()->GetISteamMusicRemote( hSteamUser, hSteamPipe, STEAMMUSICREMOTE_INTERFACE_VERSION );
if ( !m_pSteamMusicRemote )
{
return false;
}
m_pSteamHTMLSurface = SteamClient()->GetISteamHTMLSurface( hSteamUser, hSteamPipe, STEAMHTMLSURFACE_INTERFACE_VERSION );
if ( !m_pSteamHTMLSurface )
{
return false;
}