프로그램 신호기로 간단한 완행/급행 구현하기

https://telk.kr/tb/free/1577
정식 빌드로는 완행 기차가 급행 기차가 지나가는 것을 기다리게 하기 어려워서 급행을 만들어도 완행에 막혀 버리기 일쑤인데요, 일부 커스텀 빌드에 있는 프로그램 가능한 신호기를 이용하면 이를 어설프게나마 구현할 수 있습니다.

먼저, 프로그램 가능한 신호기 기능이 포함된 빌드를 받습니다. JGR의 패치 팩을 추천합니다(TELKLAND OpenTTD 게임 다운로드 페이지에 있습니다)


대충 이렇게 지었습니다. 중간 역은 급행이 통과하도록 할 계획입니다.


우선 급행이 통과할 수 있도록 경유지를 지어줍니다. 경유지를 지을 때 붙여서 지으면 하나로 취급되므로 따로 짓기 위해 두번째 경우지는 컨트롤 클릭으로 뜨는 창에서 분리된 경유지를 새로 만들기를 선택해 주어야 합니다.

이제 신호를 지을 차례입니다.


보시다시피 위쪽이 오른쪽->왼쪽 방향 선로이고(편의상 하행이라 부르겠습니다) 아래쪽이 왼쪽->오른쪽 방향 선로입니다(역시 편의상 상행이라 부르겠습니다). 신호 짓는법이 헷갈리시다면 매뉴얼을 참고해주세요.


이외 구간 선로는 평범하게 신호기를 설치해줍니다.


분기기 전 신호기가 중요합니다. 역 분기 전 몇칸 전에 지어 주는 것이 좋으며 신호기 종류는 반드시! 출구 신호기여야 합니다. 이 신호기가 추후 급행 진입여부를 감지할 신호기가 될 것입니다.


급행 선로와 완행 선로가 만나기 전, 급행 부분에는 일반 신호기를, 완행 부분에는 프로그램 가능한 신호기를 달아 줍니다.


붉은색으로 밑줄이 처진 톱니바퀴 버튼을 누르고, 변경할 프로그램 가능 신호기에 컨트롤+클릭하면 프로그램 창이 뜹니다.(톱니를 누르지 않은 채라면 신호기가 바뀌니 유의)


뜨는 창에서 End를 눌러 선택후 Insert-Condition을 누릅니다.


조건문이 삽입되는데요, If always Then을 눌러 선택합니다.

always를 signal state로 바꾼 뒤, set signal을 눌러 아까 설치한 출구 신호기를 선택해 줍니다.


정상적으로 되었다면 위와 같이 뜰 것입니다.

이제 신호를 변경해주어야 하는데요, Else를 눌러 선택후 Insert-Set Signal State를, End if를 눌러 선택후 다시 Insert-Set Signal State를 누릅니다.


이 상태가 될 텐데요, 첫번째 Make signal을 눌러 선택해준 뒤, 빨강을 녹색으로 바꿔 줍니다.

나머지 신호는 강좌를 참고, 잘 지어줍니다. 절대 귀찮아서가 아닙니다


최종 완성본입니다. 빨간 것은 출구 신호기이며 파란 것은 프로그램 신호기입니다.


완행은 모든 역을, 급행은 역 대신 경유지를 지나도록 했습니다.


강좌를 위해 마을이 없는 곳에 임의로 역을 지었기에 시간표도 수동으로 정차 시간을 늘려 줬습니다.


이렇게 설정하면, 완행이 대기중인 상황에서 급행이 급행 선로로 접근한다면 완행 신호기는 무조건 붉은색으로 들어오게 됩니다.(앞에 아무런 차량이 없음에도요)

다만 타이밍상 이미 완행이 신호기를 지나 버렸는데 급행이 오고 있다면 겹치는 경우는 어쩔 수 없이 발생하게 됩니다. 이는 정밀한 시간표를 짜지 않는 한 해결하기 힘든 문제입니다.

또한 완행이 두번 연속으로 올 경우 영원히 출발할 수 없는 문제가 생기기도 합니다.

[file:16][/file]
강좌에 사용한 세이브 파일입니다.

이모지를 이용해서 글에 반응해보세요!

댓글



꼬리표를 선택하세요


↑TOP

신고하기 ×

신고 종류
작성자
내용

신고 사유