They Are Billions

They Are Billions

45 ratings
Map Editor Korean Guide (맵 에디터 한국어 가이드)
By isakujjang
Map Editor Korean Guide
3
   
Award
Favorite
Favorited
Unfavorite
맵 에디터 실행전에 알아둘 사항
※ 이 가이드는 편의상 경어체 생략으로 작성되며

사진이 잘 안 보이는 경우 더블 클릭해서 확대해서 보면 됨


스타나 워크 혹은 기타 게임으로 맵이나 모드등을 만들어 본 사람들은 이미 잘 알겠지만

정작 맵을 만드는 시간보다 맵을 테스트하는 시간이 더 오래 걸린다.

데아빌이란 게임 특성상 더 그런데 플레이 자체 시간도 오래 걸리지만 맵 제작자가 생각하지 못 한

상황 , 변수라던지 버그가 발생할 수 있다.

또한 모딩은 일부만 지원해서 시장 보상 수정,맵 크기등은 아직 변경이 불가능하다.

그리고 결정적으로 큰 단점이 있는데 게임이랑 맵 에디터랑 동시에 실행이 안 된다.

맵 에디터 실행후에 테스트한다고 맵 에디터 끄고 게임을 실행하고 다시 수정할려고 게임을 끄고

맵 에디터를 다시 실행하고 매우 귀찮다.뭐 컴이 2대라면 상관없겠지만

다음의 방법을 사용하면 그 단점은 해결이 가능하다.컴잘알은 이미 알고 있을 방법

바로 가상화를 이용하는 것이다.요즘은 PC에서 안드로이드 게임도 돌리는데 그거랑

비슷한 방법이다.물론 가상화를 이용하므로 컴퓨터 사양이 높아야 하는데

이미 데아빌을 하고 있는 유저들 대부분은 컴퓨터의 사양이 좋을 것이다.

https://techcommunity.microsoft.com/t5/Windows-Kernel-Internals/Windows-Sandbox/ba-p/301849

윈도우 10에서 제공하는 프로그램으로는 윈도우 샌드 박스가 있고

https://www.Sandboxie.com

서드 파티 프로그램으로는 샌드박스가 있다.이거 외에도 여러 가지 가상화 프로그램이 존재한다.

초딩 영어라 대부분 무리 없이 사용할 수 있으며 이미 컴잘알에게 나름 유명한 프로그램이므로

이런 프로그램들의 사용 방법을 알고 싶다면 구글링하면 잘 나온다.
맵 에디터 실행 방법
1.게임 실행 아이콘 클릭후 Shift 키를 누르고 있는다.

2.게임 메뉴에서 부가 기능 클릭후 에디터 실행을 클릭한다.

3.게임 설치 폴더에서 Launch Editor.bat를 실행한다.

위 3가지의 실행 방법이 있는데 바탕화면이나 시작 메뉴, 작업표시줄등에 Launch Editor.bat를 등록하고

실행하는 것이 가장 편한 방법이다.
새 프로젝트 작성 및 저장
맵 에디터가 실행되면 File을 클릭하고 New를 클릭한다.(단축키 Ctrl +N)



Level Name - 말 그대로 맵 이름이다.

Difficulty - 나이트 메어(악몽) 500%로 설정하면 맵 테마 설정에 따로 가산되어

부식의 땅으로 플레이시 880%로 계산된다.생존 800퍼 900퍼 같은 그냥 점수 계수라고 보면 되고

수정은 불가능하며 예를 들어 같은 880%라도 거인 1마리 있는 맵과 거인 1000마리 있는 맵은

다르기 때문에 별로 의미는 없다.그냥 참고용

Description - 주석 , 맵에 대한 기본 설명란이다.귀찮으면 그냥 맵 이름과 똑같이 적으면 된다.

Preview Image - 말 그대로 맵 선택시 보여지는 이미지 파일이다.설명대로 512*512 크기가 최적

이며 음악 파일의 앨범 커버라고 보면 된다.




※ 프로젝트 저장

New를 클릭하고 Save나 Save As를 클릭한다.처음에는 Save As만 활성화되어 있다.

간혹 맵을 만들다 실수할 지 모르니 맵 에디터 중간 중간에 Ctrl + S를 누르는 버릇을 들여야 한다.











































프로젝트 저장시 주의할 점으로 프로젝트 폴더에 새 폴더를 만든 뒤에 저장을 해야 한다.

그냥 프로젝트 폴더에 저장하면 다른 맵을 만들 때 맵별에 따른 파일 정리가 안 되어 있어

알아보기가 힘들고 저장할 때 해당 폴더에 있는 파일이 모두 저장되기 때문이다.
만든 맵 테스트 및 창작마당에 게시하는 방법






맵을 만들었으면 저장 후에 만든 맵을 직접 테스트해야 할 것이다.

테스트 하는 방법은 Testing 메뉴를 클릭하고 Generate Level Locally(단축키 Ctrl + G)를

클릭하면 된다.















그럼 영어로 위처럼 로컬 등록 메세지가 뜬다.위 메세지만 뜨고 뭐가 안 되서

에러로 착각하는 사람도 있는데 당연히 게임을 실행해서 만든 맵을 직접 찾아서 실행해야 한다.


맵을 어느 정도 테스트 한 뒤 다른 사람들이랑 공유할 만한 수준이 되면 이제 창작 마당에

직접 게시를 해보자.





Steam Workshop를 클릭하면 제일 위의 사진처럼 중간에 여러 메뉴가 보이는데

일단 Visibility를 클릭한다.

Hidden은 비공개를 말하며 맵을 게시후에 버그등으로 플레이에 갑자기 이상이 생겨 비공개로

전환하고자 할 때 사용하며 평소에는 필요없는 항목이다.

only Friends는 말 그대로 스팀 친구한테만 공개하는 것이며

모든 사람들이 할 수 있게 평소에 가장 많이 사용하는 메뉴는 마지막 Public이다.

위 3가지 메뉴중 하나를 선택하고 Publish on Steam(스팀에 게시)를 클릭하면

잠시후 창작 마당에 등록이 된다.

Go to Steam WorkShop을 클릭하면 창작 마당에 등록된 주소로 바로 이동이 가능하며

이 기능을 통해 다른 사람들에게 맵 이름 대신 사이트 주소를 공유할 수 있다.

차후 여기서 비공개, 친구 공개,삭제,설명 수정을 쉽게 할 수 있다.

맵을 창작 마당에 게시한 후 차후 수정본으로 업데이트를 할려면 위에서 설명한 방법으로

다시 해주면 된다.단 Reset 버튼을 클릭하고 Yes를 클릭하고 Publish on Steam를 클릭

하는 것이 반영이 더 잘 된다.
맵 만들기 1편 지형 및 건물 , 유닛 , 좀비 배치하기


이제 본격적으로 맵을 만들어 보자.

제작 순서는 상관없지만 보통 맵을 만드는데 가장 중요한 것은 지형과 유닛,건물,좀비의 배치이므로

보통 Map 메뉴를 먼저 클릭하게 된다.

참고로 Event는 웨이브 설정 , 시간에 따른 이벤트 발생

Game Narrative는 게임 시작시 , 게임 승리시 , 게임 패배시 이벤트 설정이며

이 3가지 메뉴는 기본 사용자들이 주로 사용하는 메뉴이다.

Custom Commands는 맞춤 버튼 만들기

Variables & Functions는 변수 및 기능 메뉴이며

고급 사용자들한테 필요한 메뉴이다.


























Map 메뉴를 클릭 하면 제일 위에 Map Properties(맵 속성)이 보이는데

Theme는 말 그대로 맵 테마 설정이다.

Let the Player Choose를 선택하면 플레이할 유저들이 게임 시작전에 맵을 고를 수 있다.

Generation는 맵 성성 여부 설정인데 Random은 말 그대로 생존 게임처럼 랜덤맵이며

맵 제작자가 직접 수동으로 맵을 만들려면 Manual를 선택하자.


맵을 만들 때에는 2가지 모드가 있는데

Entities는 템플릿(하나의 객체)을 수동으로 하나씩 배치하는 대신 실제 게임 화면처럼

보여주며 Painter는 실제 게임 화면 대신 그리기 모드이지만 사각 혹은 서클 모드로

1~20셀까지 크기를 지정하여 배치할 수 있다.

참고로 모드 전환시에는 실시간으로 반영을 하기 때문에 템플릿이 많을수록

지연 시간도 늘어나게 된다.

먼저 지형을 만들려면 Painter 모드를 선택하면 된다.

또한 좀비들도 1마리씩 배치하면 귀찮으니 Painter에서 배치하면 된다.

Painter의 Layers에서 Infected를 클릭하면 되는데 Strong은 간부

Powerful은 쵸비 하피 베놈 조합을 말한다.Ultra는 거인을 말하지만 그러면 세부 설정을

할 수 없으므로 거인만은 Entities 모드에서 배치하는 것이 좋다.


Entities Created 밑은 모든 템플릿 표시와 선택된 템플릿만 따로 표시해주는 기능이다.

그 밑에는 특정 템플릿이 X,Y축 좌표와 함께 해당 이름으로 표시된다.



어떤 맵을 만들던 기본적으로 커맨드 센터와 기본 좀비 스폰 생성 위치 (북쪽 남쪽 서쪽 동쪽)는

생성되는데 커맨드 센터를 더블 클릭하거나 우클릭하고 Locate on map을 클릭하면

커맨드 센터로 이동 및 확대가 된다.다른 템플릿으로 빨리 이동하고자 하는 경우에도

같은 방법을 사용하면 된다.우클릭시에는 Clone이라는 메뉴가 있는데 설정도 그대로

복제되는 편리한 기능이다.

나머지는 하나 하나씩 클릭해보면 아는 것이고 Survival의 Map Wooden Sign은 표지판이다.

이 곳으로 유닛을 이동시키면 표지판을 읽고 텍스트가 뜨는 기능으로 사용한다.

RevealMap은 배치하면 해당 지역만 검은 안개를 제거하는 기능으로 캠페인에서 하피의 둥지에서

하피의 위치만 밝게 표시해주는 것을 생각하면 된다.

Script OnUnitEnter는 이 곳에 유닛이 이동하면 이벤트가 발생되는 기능이다.

유명 스트리머들이 한 번씩은 플레이해봤던 Cubes of Dilemma(큐브맵)에서 이웃집을 부시지 않고

금을 넘어가면 좀비들이 몰려오는 것을 생각하면 된다.

Unit Generator는 좀비 스폰 생성 위치로 N,W,E,S는 기본 생성되며 A~Z,NE,NW,SE,SW를

추가적으로 만들 수 있다.또한 같은 이름으로 여러 개 만들게 되면 좀비도 해당 스폰 위치에

모두 스폰하게 되니 참고하자.예를 들어 A라는 좀비 스폰 생성 위치를 3개 만들면 3개의 A 부분에

모두 좀비가 스폰된다는 뜻이다.


























사진처럼 템플릿에 우클릭후 Edit를 클릭하면 세부 설정을 할 수 있다.

건물이나 유닛이냐 좀비냐에 따라 보여지는 메뉴가 약간씩 다르다.

Name ID는 고급 사용자한테 필요한 스크립트에서 사용하는 이름이고

Custom Name은 실제 게임 화면에서 보여지는 이름이다.

마찬가지로 Custom Description은 실제 게임 화면에서 보여지는 설명이다.

쉽게 이야기해서 Custom Name을 이순신,경복궁으로 하고

Custom Description에 조선의 영웅,조선의 법궁 이런 식으로 만들면 된다는 뜻

Team은 기본값이 Player인데 N을 타이핑하면 Neutral로 변경된다.

Player는 처음부터 우리편 유닛 혹은 건물이고 Neutral는 처음에는 조종할 수 없지만

근처에 가면 우리편으로 편입되는 유닛 혹은 건물이다.

캠페인 영웅 미션에서 저격수 발견하면 따라라~하면서 우리 편이 되는데

보너스 및 구출 기능으로 사용하는 것이다.

그리고 I를 타이핑하면 Independent로 변경되는데 말 그대로 독립적 유닛을 말한다.

조종할 수도 없고 우리편으로 만들 수도 없는 그런 유닛이다.알아서 좀비를 잡는 유닛

이며 자동으로 이동은 하지 않는다.

Life는 체력 수치이며 Is Infected?는 감염 여부이다.건물을 감염시키고 그것을 수리해서

사용할 수 있게 할려면 Neutral로 건물 상태를 지정하고 Life는 50% 정도에 Is Infected?

에 체크를 해서 True로 변경하면 된다.

Generate Infected Units ?는 말 그대로 체크하면 건물 일꾼 수만큼 좀비가 커맨드 센터로

공격해 오는 기능이다.근데 게임 시작하면 바로 오기 때문에 일반적으로는 체크할 필요없다.

몇 일차에 공격하게 하려면 좀비 스폰 생성 위치를 해당 위치로 만들고 이벤트 설정을

하는 것이 낫다.

Display Icon On Minimap은 말 그대로 체크하면 미니맵에 해당 탬플릿의 위치를 알려준다.

거인은 체크하고 힌트가 필요한 건물이나 유닛 또한 체크하면 좋을 것이다.
맵 만들기 2편 특정 날짜에 이벤트 발생(좀비 웨이브)







생존 모드를 해보면 잘 알겠지만 3일쯤에 커맨드 센터 근처로 느린 좀비들이 걸어 오는 게

보일 것이다.맵에 있는 일부 느린 좀비들이 오는 것처럼 착각하기도 하는데

사실은 맵 가장 자리 끝에서 스폰되서 커맨드 센터 근처로 천천히 걸어오는 트리거의 하나이다.

즉 숨겨진 미니 웨이브 공격과 비슷한 형태

참고로 수치는 세이브 파일을 예전에 공식 맵 에디터가 나오기 전에

있던 비공식 세이브 파일 에디터로 열어서 확인한 것이다.

수치는 악몽 난이도 기준이니 이걸 참조해서 웨이브를 만들면 된다.

참고로 앞으로 설명할 이벤트 내용들 모두 일일히 등록할 필요없이 한 번만 만들고

Ctrl+C(복사) Ctrl+V(붙여넣기)를 이용하여 복사 및 붙여넣기후 체크란이나 수치만

수정하여 시간을 줄이는 방법을 사용하는 것이 낫다.



1.Namd id : 이벤트를 여러개 만들어야 하므로 알아보기 쉽게 임의의 제목을 적는다.

2.Start Time : 게임 시작후 이벤트 발생 시간을 말한다.

d는 날짜 h는 시간을 말한다.

예를 들어 1d로 적으면 1일후에 이 이벤트가 발생된다는 뜻이다.

또한 1d 15는 1일이 지나고 15시간 후에 이 이벤트가 발생된다는 뜻이다.

즉 10일차에 첫 웨이브가 오게 할려면 10d로 적으면 된다.


Start Time Random Offset : Start Time의 오차 범위를 말한다.

이걸 빈 칸으로 두면 Start Time에 지정한 시간에 이벤트가 발생되며 (좀비가 스폰되고)

여기에 10h를 적으면 Start Time에 지정한 시간에 +-10 시간을 랜덤으로 해서

이벤트가 발생된다. (좀비가 스폰된다.)

원래 첫 웨이브가 10일에 정해서 오는게 아니라 9일에 오기도 하고 10일 12시에 오기도 하고

11일에 오기도 하는데 그 떄 필요한 기능


(?) Condition (ZxCod...) : 말 그대로 특정 조건일 때만 이벤트가 발생된다.

고급 사용자용



3.Repeat Period : 현재 이벤트부터 다음 이벤트가 일어날 때까지의 주기 간격을 말한다.

이벤트가 한 번만 일어나는 거라면 기본값인 빈 칸으로 두자.

예를 들어 5d로 하면 5일 뒤에 같은 이벤트가 또 발생된다는 뜻이다.



Max. Repetition : 현재 설정한 이벤트 반복 횟수를 말한다.

예를 들어 2를 적으면 이벤트가 2번 일어난다.위의 주기 간격(Repeat Period)과

연관되어 있는데 주기 간격에 시간을 적고 이 것을 0으로 두면 이벤트 반복 횟수는 제한 없이

주기 간격에 맞게 무한으로 발생하게 된다.


Max. Time for Repetition : 사용해본 적이 없어서 필자도 잘 모르지만

해석하면 최대 반복 시간으로 번역된다.

1,2번에 연관되어 있을 것 같지만 실제로 사용해본 적은 없다.



Factor Units Number per Repetition : 다음 좀비 웨이브 공격이 현재 설정한 수치만큼

더한 뒤 추가되서 온다.이 메뉴를 클릭후 하단 영어 메세지를 보면 잘 알겠지만

0.5는 50% , 1은 100%를 의미한다.즉 느린 좀비 20마리를 설정하고 이 수치를 1로 적으면

다음 웨이브때 느린 좀비의 양은 40 , 60 , 80 , 100 순으로 늘어난다.

Max. Factor Units Number : 늘어나는 좀비 수치의 최대값이다.제한이 없으면 기본값인 빈 칸이다.




4.Notify the player? : 플레이어한테 좀비 웨이브 시작시에 미니맵 및 알림으로 알려주는 기능이다.

이걸 체크하지 않으면 밑의 항목은 체크해도 소용없다.

참고로 미니 웨이브는 기본값인 빈 칸으로 두고 정규 좀비 웨이브는 빈 칸 4개에 다 체크하는 것이

좋다.잘못 설정하는 경우에는 사운드 버그가 발생되어 웨이브 공격 음악이 꺼지지 않고

계속 들리게 된다.

Notification Message : 웨이브 공격시 알림 메세지이다.

빈 칸을 두고 설정하지 않으면 게임 기본값 메세지로 뜬다.

Tmie for notifying the event : 웨이브 공격시 카운트 다운 시간이다.

생존 모드에서 1~9 웨이브 오기 전에 8시간 경고가 뜨고 마지막 웨이브가 오기 전에 하루 경고

가 뜨는 것을 말한다.

Show Countdown? : 카운트 다운 알림 여부이다.

Show in Minimap? : 미니맵 알림 여부이다.



Show as next swarm? : 캠페인 업데이트후에 생긴 옵션으로 체크하면 좌측 하단에서

다음 웨이브가 오는 날짜를 알려준다.


5.Generators : 좀비 스폰 생성 위치를 말한다.

or 및 and로 구분한다.

N or S or E or W -> 랜덤으로 한 방향으로 좀비가 스폰된다.

N and S or N and E or N and W or S and E or S and W or E and W

-> 랜덤으로 두 방향으로 좀비가 스폰된다.

N and S and E and W -> 모든 방향으로 좀비가 스폰된다.

이런 식으로 적으면 된다.

Go to Command Center? : 기본값,커맨드 센터를 공격하느냐를 말한다.

Generation Dispersion : 좀비 스폰 너비 분포도를 말한다.8로 두면 좁게 스폰 되지만

200 정도로 하면 넙게 펴져서 스폰이 된다.큰 차이는 없기 때문에 귀찮다면 기본값으로 두자


Generation Speed : 좀비 스폰 생성 속도를 말한다.12가 최대치며 클수록 빨리 나온다.



좀비 그룹은 최대 10이며 Weak는 느린 좀비 Woker는 러너 좀비

Medium은 공격력만 1큰 러너 좀비 DressedA는 간부를 말한다.

StrongA는 쵸비이고 나머지는 잘 아니 패스

Min과 Max는 좀비 웨이브 공격시 최소값 최대값 수치이며 수치가 다를 경우 랜덤으로 발생된다.

동일하게 할 경우는 고정한다.


6.Special Flags

game won if swarm Destroyed : 체크하면 구버전때처럼 모든 웨이브를 막기만 하면 승리한다.

체크하지 않으면 웨이브를 막고 맵에 있는 모든 좀비들을 다 정리해야 한다.

난이도를 높일려면 기본값으로 두자.

Game Lost : 데아빌은 커맨드 시청이 파괴되거나 건물이 복구할 수 없을만큼 감염되면

어차피 지는 게임이므로 평소에는 체크하지 않고 특정 유닛의 손실이나 건물이 파괴되면

지는 특수한 맵을 만들 때 사용한다.

Game Won : 특정 기간까지 버티면 이길 때 체크한다.

가끔 모든 좀비들을 죽여도 게임이 안 끝나는 버그가 있기 때문에

만들어 주는 것이 좋다.Start Time에서 80d를 입력하고 Game Won에 체크하면

80일이 지나면 승리한다는 뜻이다.

마지막 웨이브 공격시에만 제일 아래 3개의 항목에 체크한다.

특별한 맵이 아니라면 마지막 웨이브시에는 이 항목들을 꼭 체크해야 한다.

Is Final Swarm : 마지막 웨이브가 맞는가?

Reveal the Full Map : 체크하면 맵이 다 밝혀진다.

Send All Infected to Command Canter : 체크하면 미니맵에 남아 있는 좀비들까지 다 공격해온다.






맵 만들기 3편 액션 설명



















Game Narrative는 이전에 말한 것처럼 게임 시작 , 게임 승리 , 게임 패배시 액션을

설정할 수 있으나 일반적으로 많이 사용하는 메뉴는 게임 시작 항목이다.

Actions은 여러 스크립트 메뉴에서 설정이 가능하며 사진처럼 동일한 메뉴의 구성을 가지고 있다.

하지만 일부 액션은 현재 작동되지 않고 차후 업데이트에 적용될 예정이다.

또 한 번 만든 액션 메뉴도 이벤트 항목에서 설명한 것처럼 복사 및 붙여넣기가 가능한데

상위 메뉴를 복사하면 하위 메뉴까지 한 번에 복사가 되니 한결 수월하게 더 작업할 수가 있다.


Block : 설명에 있는 것처럼 사용할 액션을 설정하고 그룹으로 나눌 때 사용한다.

즉 보기 좋게 구분시에 사용한다.단 Block을 사용할 경우 메뉴의 이름은 보너스 항목등이 아니라

Block에서 지정해야한다.

Choose Option : 설정한 액션을 바로 실행하지 않고 선택할 떄 사용하는 액션이다.

보너스를 바로 받지 않고 선택해서 받을 때 주로 사용한다.

이 메뉴가 없다면 일반적으로 액션은 위로부터 아래로 순차적으로 실행된다.

Exit Loop : 특정 액션 반복시 끝내기

Generate Units : 이벤트의 좀비 웨이브 설정과 거의 동일하다.특정 위치에서 좀비를 스폰할 때

이벤트로 좀비를 스폰할 때 사용한다.

Execute Code : 고급 사용자용 데아빌에서 사용하는 특수 코드를 입력한다.

Give Bonus Entites to the Colony : 말 그대로 보너스 건물 및 유닛 설정

Give Remove Resources to Colony : 말 그대로 보너스 자원 설정,하지만 음수로 적어서 자원을

감소시킬 수도 있다.

Grant Technologies : 말 그대로 보너스 기술 설정

Loop : 특정 액션 반복

Play Custom Sound : 유닛 사운드 재생 외에 하드에 저장된 사운드를 재생할 수 있다.

Execute Random Action : 밑의 액션을 랜덤으로 뜨게 한다.

역시 이 메뉴가 없다면 일반적으로 액션은 위로부터 아래로 순차적으로 실행된다.

Display Notification : 설정한 메세지를 왼쪽 상단에 알려준다.

Display Window Message : 설정한 메세지가 윈도우 창으로 뜬다.

Stop Custom Sound : 반복 설정한 사운드의 재생을 중지한다.




위의 사진처럼 설정시 게임 시작시에 설정한 보너스를 순차적으로 받게 된다.

Show Window?에 체크하면 보너스를 받는 경우에 윈도우 창으로 알려준다.

맵 제작자의 취향에 따라 사운드나 메세지 설정등이 가능하다.

체크하지 않으면 왼쪽 상단으로만 알려준다.















위의 사진처럼 설정시 게임 시작시에 설정한 보너스 4개중 하나만 선택해서 받을 수 있다.
























위의 사진처럼 설정시 게임 시작시에 보너스 항목이 랜덤으로 뜨며 3개중 1개를 선택해서 받을 수 있다.
맵 만들기 4편 고급 사용자를 위한 기능 설명


이전에 말했듯이 Variables & Functions는 고급 사용자를 위한 변수 및 기능 메뉴이다.

제일 먼저 알아야 할 것은 기능이며 기능을 알아야 변수와 연동해서 맵 제작이 가능하다.

위 사진을 참고해서 중간을 확인해보면 제일 위 Colonists부터 제일의 Random(Min, Max)가 있는데

하나만 알면 나머지도 쉽게 적용이 가능하다.

가장 쉬우면서도 많이 사용하는 기능으로는 isDead(EntityID)가 있는데 직역하자면 바로

누가 죽을 경우 이벤트를 발생시킨다는 뜻이다.예를 들어 영웅이 죽으면 게임에서 패배하거나

특정 거인이나 특정 건물을 파괴하면 금 10000원을 보상으로 받는 등의 이벤트를 만들 때 사용한다.

그럼 백문이불여일견 실제로 한 번 만들어 보자



















제일 먼저 위 사진처럼 예전에 배운 유닛 세부 편집창을 열고 죽으면 이벤트를 발생시킬 대상에

이름을 지정해줘야 한다.(Name ID 항목)

Custom Name은 이전에 말한 것처럼 실제 게임 화면에서 보여지는 이름

일뿐이므로 착각하면 안된다.











그리고 이벤트를 하나 만들고 (?) Condition(ZXcod... (조건 발생시)에 isdead(지정한 이름)을

적고 추가 스크립트를 설정(여기서는 패배에 체크)만 함으로서 해당 기능은 완료가 된다.

즉 조건을 설정하고 그 조건이 충족 시켰을 경우에만 이벤트를 발생시킨다는 뜻이다.

생각보다 간단하다.서두에 말한 것처럼 대부분의 기능이 이처럼 아주 간단하게 만들어진다.

그리고 예전에 말한 것처럼 이벤트에서 주기 간격이나 반복 횟수를 설정하지 않으면

당연히 설정한 이벤트는 한 번만 적용되고 끝나니 참고하자

참고로 오타나 탈자,변수 미등록의 이유로 기능을 잘못 적게 되면 자동으로 빨간 글씨로 변하며

해당 기능이 동작하지 않는다는 것을 알려준다.위 사진처럼 파란색 글씨로 변해야 정상인 것이다.


그리고 조건에 추가적으로 입력할 수 있는 항목이 있는데

먼저 & 연산자는 조건을 복수로 만들 때 사용한다.영어로는 And에 한국어로는 그리고에 해당한다.









위 사진은 3명의 영웅이 모두 죽을 경우에 이벤트를 발생시킨다는 뜻이다.


다른 항목으로 Hour,Day가 있으며 Hour는 몇 시간, Day는 몇 일을 나타낸다.





위 사진은 10시간 전에 특정 하피를 죽이면 , 15일 전에 특정 거인을 죽이면

이라는 조건부를 입력한 것이다.여기서 부등호가 중요한데 <는 수치보다 작을 때

>는 수치보다 클 때를 말한다.=는 같음을 의미하며 조합해서 사용할 수 있다.

예를 들어 day=10&isdead(거인)으로 적으면 10일 전이나 후가 아닌 10일에만 특정 거인을

죽일 때라는 조건이며 day=<10&isdead(거인)으로 적으면 10일을 포함한 즉 11일 전을 말한다.

즉 day=<10&isdead(거인)와 day<11&isdead(거인)는 같은 뜻이다.


참고로 오른쪽의 Other Symbols은 게임에서 사용하는 템플릿의 공통 Name ID 이름을 말한다.

특정 템플릿을 지정해서 이벤트를 발생시키고자 할 때는 직접 Name ID를 설정해야 하지만

그게 아니라면 이 공통 Name ID를 이용하는 것이 편하다.

예를 들어서 특정 레인저를 죽일 때에는 이름이 없으니 컴퓨터가 알 수 있게 이름을 지정해주고

isdead(ranger1) 같은 식으로 입력을 하지만 모든 레인저한테 이벤트를

적용할려면 이미 이름은 정해져 있으니 그냥 isdead(ranger) 혹은 countdeads(ranger)

이런 식으로 입력하면 된다는 뜻이다.


서두에서 말한 것처럼 기능 사용 방법은 동일하므로 기능의 뜻과 용도만 알면 된다.

필자도 사용해보지 않은 기능의 설명은 패스하는데 아마 사용법도 비슷할 것이다.


Colonists>=1000

인구수가 1000 이상이면이라는 뜻이다.캠페인에서 특정 인구수에 도달하면 승리하는

미션이 많은데 이 때 사용한 기능이다.

그리고 자원은 3가지 기능으로 구분되어 있으며 Available가 없는 건 총합을 말하며

Available가 덧붙인 건 현재의 자원 상태를 말한다.

또 Production가 덧붙인 건 현재의 생산량 즉 인컴을 의미한다.

예를 들어 Food >=100 인 경우

지금까지 얻은 총 식량이 100 이상이면이라는 뜻이지만

반대로 EnergyAvailable<=5는 현재 에너지가 5 미만

GoldProduction > 200은 금 인컴이 200 초과라는 뜻이다.


Count(TheSilentBeholder) >= 1

Coutnt는 말 그대로 해당 템플릿의 수를 확인한다는 뜻이다.

즉 위의 조건부는 맵핵 원더가 1개 이상이면이라는 뜻이다.

또한 CountBonus는 보너스로 받은 템플릿의 수를 확인하며

CountDeads는 게임중 죽은 템플릿의 수를 확인하는 기능이다.


CountBonus(Ballista)>=2

보너스로 받은 발리스타가 2개 이상이면

CountDeads(Sniper)>=10

저격수가 10명 이상 죽으면

CountDeads(ZombieGiant)>=1

거인이 1명 이상 죽으면



GiveXXX는 보너스를 제공하는 기능이다.액션과 비슷하지만 다른 점이 있다.

GiveEntities(Farm,2)

농장 2개를 준다.뒤에 제공할 수량도 같이 적어야 한다.

GiveGold(500)

금 500을 준다.나머지 자원의 사용법도 동일하며 위에서 말한 것처럼 액션과 다른 점이 있는데

액션창에는 보너스 건물 및 유닛과 자원의 항목이 따로 있다.따라서 이걸 2개의 스크립트 대신

한 스크립트로 해결하고자 할 때는 GiveXXX를 사용한다.














































Execute this code : 의 빈 칸에 입력하면 되는데 주의할 점으로 여기서는 & 연산자 대신 ; 연산자를

사용한다.


IsInfected는 Isdead와 비슷한데 죽음 대신 감염된 상태를 말한다.당연히 건물에만 해당이

되는 기능이다.

마지막으로 연산자 False(거짓)와 True(진실)가 있다.

예를 들어 Isdead가 False 상태이면 죽음의 반대 즉 살아 있는 상태이며

IsInfected가 False 상태이면 감염의 반대 즉 수리한 상태를 의미한다.



IsInfected(A3)=true

만약 이렇게 적고 웨이브 공격이 오는 이벤트를 만들면 A3라는 건물이 감염된 상태에서는

웨이브 공격이 오게 된다.


반대로 IsInfected(A3)=False

만약 이렇게 적고 이벤트란을 빈 칸으로 두거나 보상으로 금 1000 등을 주면

A3라는 건물이 수리된 상태에서는 true에 적은 이벤트는 작동되지 않거나 혹은

금 1000을 받게 된다.
맵 만들기 5편 고급 사용자를 위한 변수 설명
프로그래밍에서 변수란 숫자와 문자등을 저장하는 곳인데 데아빌에서는 쉽게 이야기해서

Other Symbols나 Name ID에서 설정할 수 없는 것들을 등록해서 이벤트를 발생시킬 떄

사용한다고 보면 된다.가장 기초적이고 쉽게 이해할 수 있는 변수의 기능으로 난이도 설정이

있는데 데아빌 게임 특성상 난이도에 따라 맵의 좀비 분포도 , 웨이브 주기 및 강도가 달라지는 것을

기본적으로 설정하며 추가적으로 시작시에 주어지는 병력 및 보너스등을 맵 제작자 취향에 맞게

구성하기도 한다.참고로 웨이브 주기 및 강도를 제외하고는 꼭 변수를 사용할 필요 없이 예전에

배운 액션의 보너스 설정을 참고로 만드는 것이 더 편할 것이다.


일단 윗 사진을 참고하여 + 버튼을 클릭하여 Name에 Difficulty라는 변수를 등록한다.

물론 이름은 임의대로 하며 정해져 있지는 않다.나머지는 그냥 기본값으로 두면 되며

등록된 변수를 다시 수정할려면 그냥 해당 변수에 더블 클릭하면 된다.


예전에 배운 액션의 보너스 설정을 참고로 게임 시작시에 난이도 설정 화면을 만든다.

그리고 윗 사진을 참고하여 Block마다 Option Text에 쉬움(Easy) 보통(Normal) 어려움(Hard)등 취향

대로 만들고 Execute code에 Difficulty=1 , Difficulty=2 , Difficulty=3 이런 식으로 적는다.

즉 선택한 항목에 맞게 변수=1 , 변수=2 , 변수=3이 발동된다는 뜻이다.


이제 윗 사진을 참고하여 이벤트 설정 화면에서 조건에 Difficulty=1 , Difficulty=2 , Difficulty=3

등을 적고 이벤트 주기 및 강도를 설정하면 끝이다.사진은 예시라 간단하지만 한 웨이브에

난이도 설정에 따라 다른 웨이브의 주기 및 강도가 적용되니 마지막 웨이브까지 10개의 웨이브가

존재한다고 가정할 경우 난이도 설정이 2개면 총 20개 3개면 총 30개를 만들어야 한다.

약간의 노가다가 필요하지만 이것이 변수의 기본이다.

이제 변수를 통해 특별 시스템을 만들어 보자

컨셉은 여러 가지가 있다.경제 , 행복 , 슬픔 , 배고픔 , 명성 , 인기 , 좀비 레벨등등..

본문에서는 행복과 슬픔을 예시로 한다.

그럼 변수에 행복은 Happiness , 슬픔은 sadness등의 이름으로 등록하고 나머지 역시 기본값으로

둔다.


Happiness=Happiness+30;은 행복이라는 변수에 행복을 30 증가한다는 뜻이다.

Happiness=Happiness+100; 행복 100 증가

Happiness=Happiness-20; 행복 20 감소

다른 변수의 수치도 변수 이름만 다를 뿐 사용법은 같다.

sadness=sadness+100 ; 슬픔 100 증가

popularity=popularity-200 ; 인기도 200 감소

특정 조건(특정 건물 수리,거인을 죽이거나 레인저 손실,이웃집 철거등)에 따라 위 수치를 적용한 뒤

이제 특정 변수의 총합이 일정 조건을 넘어가면 보너스나 웨이브 발생등의 특정 이벤트를

만들면 된다.










이 또한 변수로 등록한 이름만 다를 뿐 예전에 설명한 것과 사용법은 같다.


이제 유닛이나 건물의 손실 횟수 또는 좀비의 킬수에 따라 특정 변수의

수치를 적용하는 방법을 알아보자.









일단 레인저가 1명씩 죽을 때마다 체크해서 변수를 등록해야 하는 작업이 필요하다.

RangerDie는 레인저 사망의 변수 이름이며 주의할 점으로 다른 변수들과 달리 변수 등록시에

InitialValue에 1이라고 입력해야 한다.사망 횟수에 0은 할 필요가 없으니까






CountDeads(Ranger)>=는 레인저가 죽는 횟수를 체크하는 것이다.

그리고 당연한 이야기지만 이벤트에서 다른 것은 기본값으로 두고 주기 간격만

8h or 1d로 해서 상시적으로 체크하게 설정해야한다.



RangerDie+= 1는 레인저 사망 변수를 1씩 증가한다는 뜻인데

게임 도중에 레인저가 1명만 죽을 수도 있고 레인저가 2명 이상 죽을

수도 있기 때문이다.

쉽게 이야기 해서 위 코드는 레인저 1명씩 죽을 때 마다 슬픔을 20씩 증가한다라는 뜻이다.


좀비의 킬수도 사용법은 같다.









위에서 설명한 것처럼 레인저 사망과 비슷하게 GiantForReward라는 변수를 만들고

주기 간격과InitialValue에 0 대신 1을 입력한다는 것을 잊지 말고 역시 사용법은 똑같다.









거인을 1명씩 죽일 때 마다 행복을 100씩 증가한다라는 뜻이다.
맵 만들기 6편 고급 사용자를 위한 맞춤 버튼 설명
맞춤 버튼은 변수 및 기능 메뉴 왼쪽에 있는 Custom Commands를 말한다.

5편에서 설명한 특정 변수의 현재 수치를 확인할려면 이 맞춤 버튼을 만들고 클릭해서

확인해야 한다.



윗 사진을 참고하여 이름과 설명을 간단하게 적고 스크립트를 클릭하여 윈도우 메세지 액션에

{변수 이름}을 입력하면 {변수 이름} 이 부분이 실제 게임 화면에선 현재 수치로 보여지게 된다.


































또한 지금까지 설명한 것을 토대로 다양한 방식의 맞춤 버튼을 만들 수 있다.

조건을 잘 설정하고 처음에 루프 액션 마지막 항목에 루프 끝냄 액션만 추가해준다는 것을

참고만 하면 된다.만약 루프가 없으면 특정 항목을 선택하고 나면 게임 화면으로 바로 돌아오고

윗 사진처럼 루프가 존재하면 해당 선택 항목이 다시 뜨게 된다.

맵 만들기 7편 1.1 최신 업데이트 모딩 설정


ApplyRules가 최신 업데이트로 생긴 모딩을 설정하는 스크립트인데

맵 에디터 예제를 보면 ApplyRules("WallStone Life +20%;GateStone Life +20%;"

라고 적혀 있다.딱봐도 돌벽 체력 20% 추가 , 돌문 체력 20% 추가라는 것을 쉽게 알 수 있다.



ApplyRules(A,B,C)

A는 템플릿 이름(유닛,건물,좀비)으로 초록색 부분에서 찾으면 된다.

B는 매개 변수이고 Life는 체력이라는 매개 변수를 의미한다.

C는 수치를 의미(+50%,-30%,+100,-50 같은 것이며 이건 굳이 설명 안 해도 알 것이다.)





이벤트 설정에서 조건 같은 건 지금까지의 맵 에디터 강좌로 알아서 설정하길 바라며

ApplyRules를 실제로 사용하는 방법만을 설명한다.

물론 아무런 조건 없이 설정해도 되며 그러면 게임 시작시에 바로 해당 모딩이 적용된다.

아무튼 Execyte Code를 액션으로 추가한 뒤 Execute this Co...부분에

위에서 설명한 ApplyRules(A,B,C)를 설정하면 된다.

ApplyRules("SoldierAttack Damage +50%;Soldier Life +20%;"

이렇게 입력하면 군인 공격력 50퍼 및 군인 체력 20퍼가 증가한다는 뜻이다.



다른 것도 이런 식으로 설정하면 된다.

https://steamcommunity.com/sharedfiles/filedetails/?id=1558159867

매개 변수는 공식 워크샵 가이드를 참고한다.



6 Comments
참개구리 폴짝폴짝 Nov 14, 2020 @ 5:41pm 
업데이트 쵝고
Mellu May 15, 2020 @ 2:45am 
이것은 코리안이 높게 평가
Gazkull Mar 26, 2020 @ 7:19am 
sure
Lifewell_- Jan 20, 2020 @ 9:39pm 
Good
참개구리 폴짝폴짝 Jan 3, 2020 @ 9:28pm 
오 감사합니다~~!
SENA Jan 3, 2020 @ 1:27am 
굿