목요일, 10월 19, 2006

Purpose: VC++ 로 Compile 한후 STEAM에서 테스트 하기

Purpose: VC++ 로 Compile 한후 STEAM에서 테스트 하기
Date: July. xx. 2004
Source: 모드나라 (http://mod.zoa.to)
Author: godmode2k (godmode2k@hotmail.com | MSN IM)
HL1 SDK: 2.3


VC++ 로 Compile 한후 STEAM에서 테스트 하기
-------------------------------------------
VC++ 로 compile 된 client.dll, hl.dll 파일의 위치
client.dll 은 VC++ setting에서 경로를 지정해 놓았기 때문에 문제없음.

문제는 hl.dll 파일...
다음의 경로에서 hl.dll 파일을
Compile된 hl.dll파일: Half-Life SDK/Single-Player Source/dlls/debughl/ hl.dll
복사해줄 경로: Steam/SteamApps/MY_STEAM_ACCOUNT_NAME/half-life/My_MOD_NAME/dlls/ 안에 복사해준다.

MAP 파일은 My_MOD\maps\ 에 맵을 넣어준다. 단, 제작한것이 아니라면 BSP용 맵을 넣어준다. e.g., Half-Life DM MAP
MAP 파일이 Half-Life 1용 map이라면 liblist.gam 파일안에 hlversion을 다음과 같이 해준다.
-> hlversion "1110"


<정확한 설명>
===============
자신이 만든 MOD를 STEAM 으로 돌려보기 입니다.


정말 간단한 거였는데... 제가 워낙 MOD 개발에 처음이라...
일단, 이곳 모드나라의 비디오 강좌에서 VC++ 6.0으로 Compile 과정을 담은 영상을 보시고 그대로 따라하신 다음 아래의 문서를 읽어주세요...
VC++ 6.0 으로 Compile 작업이 끝난 다음 해주는 작업입니다.

저처럼 처음 시작하시는 분들이 애를 먹지 않기 위해 글을 올립니다.
(다들 아는 내용인가요?,,, 그럼,, 죄송합니다. ㅠ.ㅠ)


client.dll 은 VC++ setting에서 경로를 지정해 놓았기 때문에 문제없습니다.
동영상대로 맞게 하셨다면,
Steam/SteamApps/스팀계정/나의 MOD 이름/cl_dlls/client.dll 이란 파일이 있을겁니다.
Compile 시 client.dll 과 hl.dll 파일을 compile 하게 됩니다.
하지만 동영상에는 hl.dll 파일의 위치가 SDK/Single-Player Source/dlls/debughl/hl.dll 에 위치 하더군요...
처음 하시는 분들은 아마도 이 부분에 대해서 별로 큰 신경을 쓰지 않았을꺼란 생각이 듭니다.
일단 MOD에서는 client.dll 과 hl.dll 파일, 이 2가지 라이브러리가 필요합니다.

따라서 이 두가지 파일을 해당 디렉토리에 복사해줘야 합니다.
client.dll 은 정상적으로 들어있지만, hl.dll 파일은 복사를 직접 해줘야 합니다.
아니면 VC++ 에서 setting 부분에서 바꿔주시면 됩니다.

Single-Play 용 이라면,
SDK/Single-Player Source/dlls/debughl/hl.dll
파일을
Steam/SteamApps/내 계정/half-life/My_MOD/dlls
안에 복사를 해줍니다.

Multi-Play 용 이라면,
SDK/Multiplayer Source/dlls/debugmp/mp.dll 이 되겠지요...

이렇게 복사가 끝났으면, 이제 스팀에 나의 MOD를 알려줘야 합니다.
그게 바로 liblist.gam 파일이지요...
파일의 내용을 복사하시면 되겠습니다.


파일명: liblist.gam
-------------------------------------------
game "My MOD"
url_info "http://www.My_MOD.com"
version "0.1"
size "0"
svonly "0"
type "Single"
cldll "1"
hlversion "1110"
nomodels "1"
gamedll "dlls/hl.dll"
-------------------------------------------

여기에서 hlversion은 제가 MAP을 HL-DM 모드에 있는 맵을 사용해서 그런지 1110으로 해야만 되더군요...
다음은 뭐, 수정 안하셔도 상관은 없지만 나의 MOD 디렉토리에 resource 란 디렉토리를 만들고 아래의 파일을 추가하시면 메뉴의 이름을 바꿀 수 있었습니다.


e.g., Steam/SteamApps/내 계정/half-life/My_MOD/resource/

파일명: GameMenu.res
----------------------------------------------------------------------------------------
"GameMenu"
{
"1"
{
"label" "#My_MOD_GameMenu_ResumeGame"
"command" "ResumeGame"
"OnlyInGame" "1"
}
"2"
{
"label" "#My_MOD_GameMenu_Disconnect"
"command" "Disconnect"
"OnlyInGame" "1"
}
"3"
{
"label" ""
"command" ""
"OnlyInGame" "1"
}
"4"
{
"label" ""
"command" ""
"notmulti" "1"
}
"5"
{
"label" "#My_MOD_GameMenu_Browse"
"command" "OpenServerBrowser"
}
"6"
{
"label" "#My_MOD_GameMenu_Create"
"command" "OpenCreateMultiplayerGameDialog"
}
"7"
{
"label" ""
"command" ""
}
"8"
{
"label" "#My_MOD_GameMenu_Options"
"command" "OpenOptionsDialog"
}
"9"
{
"label" "#My_MOD_GameMenu_Quit"
"command" "Quit"
}
}
[참고]
만약 기존 HL처럼 게임 전환이 되게 하려면 9번을 10번으로 바꾸고 새로 9번을 만들어
command를 OpenChangeGameDialog로 해주면 됩니다. Label은 마음대로...
----------------------------------------------------------------------------------------

파일명: testmod_english.txt
----------------------------------------------------------------------------------------
"lang"
{
"Language" "English"
"Tokens"
{
"My_MOD_GameMenu_ResumeGame" "Resume"
"My_MOD_GameMenu_Disconnect" "Disconnect"
"My_MOD_GameMenu_Create" "Create a game"
"My_MOD_GameMenu_Browse" "Join a game"
"My_MOD_GameMenu_Options" "Options"
"My_MOD_GameMenu_Quit" "Quit"
}
}
----------------------------------------------------------------------------------------

다음으로 중요한건, Counter-Strike(이하 CS 혹은 카스) 상용버전에 포함된 MOD 중에 Half-Life Death-Match 가 있습니다.
저는 이 MOD의 maps 디렉토리 안에 있는 *.BSP 파일을 나의 MOD 디렉토리의 maps에 모두 복사 해놓았습니다.
Steam/SteamApps/내 계정/half-life/My_MOD/maps 에 모두 복사해 놓았습니다.

그리고나서, Steam을 실행시켜서 Games->THIRD PARTY GAMES를 보시면 My_MOD 가 보이실겁니다.
실행하시면 익숙한 화면이 나옵니다.

이때 Create 를 눌러주시면 MAP 선택이 나오는데요, 그곳에서 맵을 선택해 주시고나서 실행하시면 정상적인 play를 하실 수 있습니다.

읽어주시느라 수고하셨습니다.
이상입니다.
/////////////////////////////////////////////////////////////////////////////////////////////////////////////////

댓글 없음:

댓글 쓰기