이 전의 가이드에서는 char-server.conf와 map-server.conf는 userid/passwd만 수정하였습니다. 이번에는 userid/passwd를 제외한 나머지 부분을 설명하겠습니다.
먼저 char-server.conf 파일을 열어보면 각 라인(줄)의 가장 왼쪽,
즉 처음 부분에 // 이 있는 것과 없는 것이 나오게 되는데 // 이러한 기호가 앞에 있는 줄은 주석이고 사용자의 편의를 위해 있는 부분입니다.
다시 말해 // 이 기호가 앞에 나오는 줄은 서버의 설정에 영향을 미치지 않는 부분이며 실제로 서버의 설정에 영향을 주는 부분은 // 이 기호가 없는 부분이 됩니다.
따라서 주석을 지워도 설정에는 무방하고 주석이 없는 줄을 지우거나 잘못된 설정 값을 대입하면 오류가 발생합니다.
또한 반드시 // 슬래쉬가 연속해서 두개가 있어야 주석처리가 되며 이 주석의 글은 각 설정에 대한 설명이므로 잘 읽어보는 것이 좋습니다.
char-server.conf
를 메모장 (또는 기타 텍스트 에디터)를 이용하여 열어보면 userid/passwd 다음에
server_name: rAthena
가 있습니다. 말 그대로 서버 이름을 넣는 곳이고 윗 줄의 주석 설명을 읽어보면 공백이나 윈도우의 파일 이름에 허용되지 않는 문자를 사용하지 말라고 되어 있습니다.
위의 사항을 지켜주면서 서버 이름을 rAthena 대신 원하는 것으로 바꾸어주면 됩니다. 다음에는
wisp_server_name: Server
이며 주석 설명을 읽어보면 서버에서 플레이어에게 메세지를 보낼 때 표시되는 이름입니다.
즉, 채팅창에 서버로 부터의 메세지를 받을 때 그 이름이 되는 것입니다.
다음의 것들은 각 서버(캐릭터/맵/로그인)의 아이피/포트 등에 대한 설정으로 이번 가이드에서는 설명을 하지 않겠습니다.
또한 이 다음의 몇가지 설정에 대해서는 특별한 이유없이 바꿀 필요없는 설정으로 넘어가며
char_new: 1
로 넘어가겠습니다. 이 부분은 새로운 '캐릭터' 생성을 허용/불허하는 설정입니다. 1인 허용이며 0은 허용하지 않음 입니다.
는 서버 리스트에 (New)라는 글자가 보이게 하는 설정으로 0은 보이지 않음입니다.
이 때 서버리스트에는 server_name에 설정해준 이름이 보이게 됩니다.
는 서버에 접속하는 인원을 제한하는 설정으로 설명에서 알 수 있듯 -1은 제한이 없는 것이며
0은 접속인원을 0으로 제한하는 것이므로 로그인이 되지 않습니다.
이 설정은 위에서 설정한 서버 접속 인원 제한을 우회(bypass)하는
즉, 접속 인원 제한에 해당되지 않는 그룹 아이디(Group ID)를 설정하는 것이며 그룹 아이디는 서버 내의 권한과 관련된 레벨로 생각하면 됩니다.
즉, 운영자(서버 마스터)의 경우 그룹 아이디는 가장 높은 권한인 99(그룹 아이디는 숫자로 구성되어 있음)이며 가장 낮은 권한의 경우 0을 가지고 있습니다.
이러한 그룹 아이디는 운영자만 부여하거나 조정할 수 있으며 더 자세한 설명은 groups.conf에서 설명하겠습니다.
즉, 위의 설정에서 -1은 모든 그룹 아이디의 유저는 접속 인원 제한을 우회할 수 없는 설정입니다.
는 이름에서 알 수 있듯 자동 저장 시간을 설정하는 곳입니다.
숫자의 단위는 초 단위이며 매 60초, 1분 마다 자동으로 저장하게 됩니다.
다시말해 서버가 올바르게 저장>종료 되지 않으면 마지막 자동저장한 시점으로 돌아갈 수 있습니다.
그렇다고 1초 단위로 자동저장을 하게되면 필요이상의 부하가 걸리므로 특별한 이유가 없다면 바꾸지 않는 것을 추천하며 서버 종료는 올바르게 하면 됩니다.
는 char-server.bat 창에 여러 정보들이 로드/저장 될 때 이에대한 정보를 보여줄 것인가에 대한 설정으로 바꾸지 않도록 합니다.
start_point: new_1-1,53,111
는 처음 캐릭터가 시작되는,
즉 새로운 캐릭터를 처음 생성하여 시작되는 장소에 대한 설정으로 다른 곳에서 시작되도록 하고 싶다면 new_1-1,53,111 대신 다른 맵을 적어주면 됩니다.
이때 맵이름,x축 좌표,y축 좌표 의 형식으로 반드시 적어야하며 맵 이름은 maps.conf의 맵이름을 사용해야 합니다.
예를 들면 프론테라에서 처음 시작하게 하고 싶다면 prontera,150,70과 같이 적어야합니다.
start_items: 1201,1,0,2301,1,0
은 처음 시작할 때 새롭게 만든 캐릭터에 주어지는 아이템입니다.
위의 기본적인 설정을 보면 1201,1,0,2301,1,0인데 이 설정의 설정값 형식은
아이템아이디,수량,착용여부 입니다.
다시말해 위의 기본 설정값은 1201,1,0과 2301,1,0의 두가지 아이템을 지급하는 설정입니다.
즉, 여러개의 아이템을 줄 때는 아이템아이디,수량,착용여부의 방식을 컴마 , 로 연결하면 됩니다.
아이템 아이디의 경우 Athena 폴더의 db/re/item_db.txt 또는 db/re/item_db.conf에서 확인할 수 있습니다.
착용여부의 경우 0으로 설정하는 것을 권장합니다.
(시작시 자동으로 착용하게 하기 위해서는 착용여부에 0대신 아이템 위치에 맞는 숫자를 적어주면 됩니다. 초보라면 0을 적어주는 것을 권장합니다.)
따라서 위의 두개 아이템에 가드(Guard)를 추가로 지급하여 시작하고 싶다면 1201,1,0,2301,1,0에다가 가드의 아이템 아이디인 2101을 추가하면 됩니다.
따라서 1201,1,0,2301,1,0,2101,1,0 으로 설정값을 적어주면 됩니다.
※Hercules의 경우 초기 지급 아이템 설정은 컴마 , 가 아닌 콜론 : 으로 구분합니다. ex) 1201,1,0:2301,1,0:2101,1,0
start_zeny: 0
는 쉽게 알 수 있듯이 시작이 캐릭터에 지급되는 제니입니다.
는 길드 경험치의 배율이며 퍼센트 % 단위 입니다.
길드 경험치의 경우 길드원의 기여에 따라 얻게 되며, 이 기여에 대한 배율입니다.
따라서 위의 기본 설정인 100으로 할 경우 길드원이 설정한 경험치 기여도를 그대로 반영하는 것입니다.
즉 길드원이 50%의 경험치 기여도를 정했다면 길드원이 얻는 경험치의 50%를 그대로 길드 경험치로 기여하게 되며,
guild_exp_rate를 200으로 할 경우 길드원이 50%의 길드 경험치 기여도를 정하고 길드원이 얻는 경험치의 50%를 길드에 기여하게 되며 이 때 길드는 이 경험치의 200%인 두배를 얻게 되는 것입니다.
정리하면 위의 길드 경험치 배율은 길드원이 기여한 경험치에 대한 배율입니다.
unknown_char_name: Unknown
는 인식되지 않거나 서버 등에서 인식 할 수 없는 캐릭터 명을 표시하는 설정입니다.
는 캐릭터 서버에 대한 로그 설정으로 바꾸지 않습니다.
는 캐릭터 이름에서 대문자/소문자를 구분할 것인가 대한 설정으로 0 또는 no 일 경우 대/소문자를 구분합니다.
즉, test와 TEST는 다르다고 구분하여 위와 같은 캐릭터가 있을 시 다른 이름으로 서로 구분됩니다.
1 또는 yes로 설정할 경우 대/소문자를 구분하지 않으므로 test라는 캐릭터와 TEST라는 캐릭터는 같은 캐릭터가 됩니다.
이 설정을 바꿀 시에는 신중히 생각하여 바꾸어야 오류가 발생하지 않습니다.
의 경우 캐릭터 이름에 대한 설정으로 0/1/2 의 세가지로 설정할 수 있습니다.
(반드시 이 3가지 중 하나로 설정해야 함) 0의 경우 캐릭터 이름에 제한이 없습니다.
1의 경우 다음에 설명할 char_name_letters 설정에 적어준 문자만 허용됩니다. 2의 경우 char_name_letters의 설정에 적어놓은 문자만 사용이 불가합니다.
즉, 0의 경우 모든 문자(특수문자 및 @, #포함)를 캐릭터 이름으로 사용할 수 있고 1의 경우 허용된 문자만 사용가능, 2의 경우 정해진 문자만 빼고 사용할 수 있습니다.
기본 설정은 1로써 char_name_letters에는 영문자 대/소와 숫자만 설정되어 있습니다. 즉, 영문/숫자만 캐릭터 이름으로 사용할 수 있습니다.
※다른 문자를 사용하기 위해서 0으로 설정할 경우 사용자 명령어 #와 운영자 명령어 @ 기호를 캐릭터 명에 쓸 수 있으므로 오류나 버그를 발생시킬 수 있습니다. 따라서
char_name_letters: abcdefghijklmnopqrstuvwxyz ABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890
에 영문자와 숫자 대신 @#을 적고 char_name_option에 2의 옵션을 주어 사용하는 것을 권장합니다.
는 캐릭터를 삭제할 수 있는 캐릭터의 레벨(그룹 아이디가 아닌) 설정으로 0의 경우 베이스 레벨에 상관없이 삭제 가능하며 특정 숫자값을 적을 경우,
예를 들어 50의 경우 50 레벨 이상에서 삭제가 '불가능'합니다.
만약 반대로 설정하고 싶다면 레벨 앞에 -를 붙여 음수로 만들어 주면 됩니다.
예를 들어 -40의 경우 40레벨 이하에서 삭제가 '불가능'합니다.
는 캐릭터 삭제에 걸리는 시간이며 단위는 초 입니다.
따라서 위의 기본설정의 경우 86400초 후에 삭제됨을 의미하며 시간으로 환산하면 24 시간 후에 삭제되는 것입니다.
추가적인 설명이 더 있어야 하지만 생략합니다.
는 캐릭터가 길드나 파티에 가입되어 있을 때 캐릭터를 삭제할 수 있는 지에 대한 설정으로 0의 경우
가입되어 있더라도 삭제가 가능하며 Official의 경우 1로써 길드나 파티에 가입되어 있을 때 삭제할 수 없습니다.
추가적인 설명을 보면 데이터베이스의 기록과 겹쳐져서 오류를 발생할 수 있다고 되어 있습니다.
즉, 캐릭터는 삭제했으나 길드나 파티에 가입이 된 것으로 데이터가 남아있을 수 있으므로
길드나 파티 가입에 관계없이 삭제할 수 있도록 했다면 이 데이터베이스에서 캐릭터에 대한 정보를 따로 지워주어야 합니다.
는 여러 데이터베이스가 있는 폴더 이름 설정으로 특별한 경우를 제외하고 변경하지 않습니다.
는 핀코드 시스템에 대한 설정으로 자세한 설명은 하지 않으며 1의 경우 사용, 0의 경우 사용하지 않음입니다.
는 캐릭터를 선택할 때 마다 할 것인지에 대한 것으로 자세한 설명은 하지 않습니다.
는 핀코드를 바꾸는 시간에 대한 것으로 0의 경우 바꾸지 않으며, 바꾼다면 분의 단위로 숫자를 적어주면 됩니다.
는 핀코드를 잘못 입력할 시 몇번을 재시도 할 수 있는 가에 대한 설정으로 자세한 설명은 하지 않습니다.
마지막으로
import: conf/import/char_conf.txt
는 임포트 import는 외부 설정을 불러오는 것이며 자세한 설명은 이 후의 가이드에 하겠습니다.
먼저 longin-server.conf 파일을 열어보면 각 라인(줄)의 가장 왼쪽,
즉 처음 부분에 // 이 있는 것과 없는 것이 나오게 되는데 // 이러한 기호가 앞에 있는 줄은 주석이고 사용자의 편의를 위해 있는 부분입니다.
다시 말해 // 이 기호가 앞에 나오는 줄은 서버의 설정에 영향을 미치지 않는 부분이며 실제로 서버의 설정에 영향을 주는 부분은 // 이 기호가 없는 부분이 됩니다.
따라서 주석을 지워도 설정에는 무방하고 주석이 없는 줄을 지우거나 잘못된 설정 값을 대입하면 오류가 발생합니다.
또한 반드시 // 슬래쉬가 연속해서 두개가 있어야 주석처리가 되며 이 주석의 글은 각 설정에 대한 설명이므로 잘 읽어보는 것이 좋습니다.
console_silent: 0
은 Athena 서버를 실행하고 보이는 콘솔(console)창 (도스창)에 출력되는 여러 서버정보 로그 메세지를 숨길지에 대한 설정입니다.
숫자를 이용하여 설정값을 적용하며 2의 거듭제곱 형태로 표현됩니다.
2^0 = 1: 정보 메세지 숨김
2^1 = 2: 상태 메세지 숨김
2^2 = 4: 공지 메세지 숨김
2^3 = 8: 경고 메세지 숨김
2^4 = 16: 오류 및 SQL오류 메세지 숨김
2^5 = 32: 디버깅 메세지 숨김
위의 설정을 중복해서 적용하기 위해서는 각 값을 더하여 적용합니다.
예) console_silent: 14 // 2 + 4 + 8 = 14 이며 상태, 공지, 경고 메세지를 함꺼번에 숨깁니다.
new_account: yes
주석의 설명으로는 _M, _F를 사용하여 계성을 생성할 수 있도록 하는 것입니다.
new_acc_length_limit: yes
위의 new_account가 설정되어 있을 때 사용가능하며 계정의 최소 길이에 대한 설정입니다.
allowed_regs: 1
time_allowed: 10
주석 설명에 따르면 계정 등록 폭주에 대한 보호 시스템으로 allowed_regs에 설정된 숫자만큼 등록하면 time_allowed에 설정된 초만큼 계정 등록이 되지 않습니다.
group_id_to_connect: -1
은 서버에 접속을 제한하는 그룹 아이디를 설정하며 -1의 경우 모든 그룹 아이디를 서버에 접속 가능하게 합니다.
0 이상의 그룹 아이디를 설정하면 해당 그룹 아이디만 접속을 허용합니다. 그룹 아이디 Group_id의 경우 MySQL 즉, 데이터베이스의 login 테이블에서 설정이 가능합니다.
min_group_id_to_connect: -1
은 위의 설정과 같으며 0 이상의 그룹 아이디를 설정하면 해당 그룹 아이디 이상의 그룹에 접속을 허용합니다.
단, group_id_to_connect이 -1로 설정되있을 경우에만 위 설정을 사용할 수 있습니다.
vip_group: 5
VIP 그룹 아이디를 설정합니다.
chars_per_account: 0
계정 당 캐릭터수를 제한할 수 있습니다.
단, src/common/mmo.h에 정의된 MAX_CHARS인 최대 캐릭터 슬롯을 초과할 수 없습니다.
vip_char_increase: 6
VIP 그룹의 최대 캐릭터 수를 늘려줍니다. 0의 경우 비활성화 입니다.
start_limited_time: -1
계정 생성시 서버에 딜레이 시간을 설정합니다.
-1의 경우 딜레이 시간이 없으며 0 이상의 숫자는 초 단위로 딜레이가 설정됩니다.
// Ipban features (SQL only)
ipban.enable: yes
ip 밴(차단) 설정입니다. SQL에서만 사용 가능하며
//ipban.sql.db_hostname: 127.0.0.1
//ipban.sql.db_port: 3306
//ipban.sql.db_username: ragnarok
//ipban.sql.db_password: ragnarok
//ipban.sql.db_database: ragnarok
//ipban.sql.codepage:
//ipban.sql.ipban_table: ipbanlist
// Dynamic password failure ipban system
위의 주석을 해제하여 SQL에 차단을 위한 ip 리스트를 지정합니다.
이후의 설정은 추후에 작성하도록 하겠습니다.