안녕하세요, 프로토스 역장 연습맵이 없어서 직접 만드는
크르륵캬캬 입니다.
고수님들, 다들 스스로가 좋아하는 맵 만드느라 바쁨인줄 아오나, 입문자가 어디 배울 곳도 없어 말씀 여쭙고자합니다. 실례였다면 입문자이니, 지나가시옵고, 모쪼록 아신다면 답변 부탁드리겠습니다.
참고로, 이 게시글은 '유닛'과 '건물'을 따로 분류해 보았습니다. 읽으시면서 '유닛' 하시면, 광전사, 추적자 파수기 등등의 유닛이며 건물 이라 하면 '연결체, 수정탑 등등'입니다. 맵 에디터에선 유닛에 건물과 제가 칭했던 유닛이 동시에 포함되지만 좀더 간편하게 이야기 하고자 '유닛'과 '건물'을 따로 분류해 게시글을 적었습니다.
아래로 본문이 있습니다.
------------------------------------------------------------------------------------------------------
이번에는 건물 부활이 되지 않아서 문제입니다.
제가 만들고자 하는 바는, 특정 난이도가 되면 특정한 유닛이 생성되고, 특정한 유닛과 교전을 하고 나서 평가 시 '연결체의 생존 여부가 게임에서 영향을 미치는 상태' 입니다.
상대방 적군이 제 앞마당에 처들어 왔는데 연결체가 파괴되었다면, 상대 유닛을 전부 죽였다고 할지라도 이득이라 볼 수 없다고 생각했습니다. 그런 면에서 착안하여 모든 유닛(파수기, 추적자, 광전사 등)이 살아 상대 유닛을 전부 죽였다 할지라도 연결체가 파괴시당할 시에도(아군 유닛이 전부 죽는 것과 마찬가지로) 패배하는 것으로 만들어 보았습니다. 이 문단 안에 들어있는 트리거의 이름은 '게임 실패'트리거(제가 명명하였습니다. 후에, 게임 실패트리거로 부르겠습니다)입니다.
문제는 게임 실패 트리거의 충돌인지, 뭔지.. 어쨌든 원하는 대로 실행되지 않는 문제가 있습니다.
부활 트리거를 시험해본 결과, 건물이던 유닛이던 완전히 동작함은 알 수 있었습니다. 그에 해당했던 트리거는 아래와 같습니다.
시험생산
이벤트
유닛 - 아무 유닛 소멸
지역 변수
조건
행동
유닛 - 수정탑 [80.00, 68.00] 체력(을)를 1.0(으)로 설정
유닛 - 수정탑 [80.00, 68.00] 보호막(을)를 1.0(으)로 설정
유닛 - 융화소 [79.50, 62.50] 체력(을)를 1.0(으)로 설정
유닛 - 융화소 [79.50, 62.50] 보호막(을)를 1.0(으)로 설정
유닛 - (트리거 발동 유닛) 부활
수정탑과 융화소는, 맵 에디터 상에서 미리 건설해 두었습니다. 이는 아래, '캡처.JPG'를 참고하시면 감사하겠습니다.
수정탑과 융화소의 체력과 보호막을 줄여 둔 것은, 빨리 파괴되어서, 시험을 금방 확인하기 위함이었습니다.
결과, 건물 또는 유닛 부활시 체력은 무조건 1로, 또 모든 내역이 그대로 유지되었습니다. 예를 들어 처치 20짜리 파수기가 죽을 경우 부활 시 처치 20짜리 체력 1의 파수기가 생겨났습니다. 또, 융화소가 파괴되면 그 아래로 '베스핀 간혈천'이 생성되지만 그럼에도 불구하고 융화소가 부활됨을 보아, 융화소 또한 부활 트리거에 영향을 잘 받았었습니다.
저는 이러하여, 부활 트리거는 제대로 작동할 것이라고 생각하였습니다.
그리고 만들어낸 트리거는 아래와 같습니다.
2.5 - 장소 3 게임 실패
이벤트
유닛 - 아무 유닛 소멸
지역 변수
조건
장소 == 3
(연결체 [93.50, 24.50] 살아 있음) == 거짓
알고리즘 단계 == 2.6
행동
유닛 그룹 - 아군 유닛의 각 유닛을 선정하여 (행동) 실행
행동
유닛 - 게임에서 (선정된 유닛) 제거
유닛 그룹 - 적 유닛의 각 유닛을 선정하여 (행동) 실행
행동
유닛 - 게임에서 (선정된 유닛) 제거
유닛 - 융화소 [89.50, 17.50] 부활
유닛 - 융화소 [100.50, 27.50] 부활
유닛 - 연결체 [93.50, 24.50] 부활
유닛 - 연결체 [93.50, 24.50] 보호막 (백분율)(을)를 100.0(으)로 설정
유닛 - 연결체 [93.50, 24.50] 체력 (백분율)(을)를 100.0(으)로 설정
유닛 - 융화소 [89.50, 17.50] 보호막 (백분율)(을)를 100.0(으)로 설정
유닛 - 융화소 [89.50, 17.50] 체력 (백분율)(을)를 100.0(으)로 설정
유닛 - 융화소 [100.50, 27.50] 보호막 (백분율)(을)를 100.0(으)로 설정
유닛 - 융화소 [100.50, 27.50] 체력 (백분율)(을)를 100.0(으)로 설정
변수 - 알고리즘 단계 = 3.0 설정
변수 - 게임 실패 = 1 설정
이는 맨 첫번째 문단에 설명드린 '게임 실패' 트리거입니다. 이 트리거가 실행은 되었으나, 융화소와 연결체가 파괴될 경우 가장 맨 마지막에 파괴되는 연결체만 부활할 뿐, 융화소는 부활되지 않았습니다.
거기서 착안하여, 유닛그룹을 만들고 그 안에서 부활되도록 만들어 보았습니다.
시험생산
이벤트
유닛 - 아무 유닛 소멸
지역 변수
사망한 유닛 = (비어 있는 유닛 그룹) <유닛 그룹>
조건
행동
유닛 그룹 - 사망한 유닛에 (트리거 발동 유닛) 추가
유닛 - 수정탑 [80.00, 68.00] 체력(을)를 1.0(으)로 설정
유닛 - 수정탑 [80.00, 68.00] 보호막(을)를 1.0(으)로 설정
유닛 - 융화소 [79.50, 62.50] 체력(을)를 1.0(으)로 설정
유닛 - 융화소 [79.50, 62.50] 보호막(을)를 1.0(으)로 설정
일반 - If (조건) then (행동) else (행동)
If
(융화소 [79.50, 62.50] 살아 있음) == 거짓
(수정탑 [80.00, 68.00] 살아 있음) == 거짓
(파수기 [79.39, 65.43] 살아 있음) == 거짓
Then
유닛 그룹 - 사망한 유닛의 각 유닛을 선정하여 (행동) 실행
행동
유닛 - (선정된 유닛) 부활
Else
맨 처음 소개하였던, 시험생산을 수정하여 만들었습니다.
수정탑과 융화소는, 맵 에디터 상에서 미리 건설해 두었습니다. 이는 아래, '캡처.JPG'를 참고하시면 감사하겠습니다.
수정탑과 융화소의 체력과 보호막을 줄여 둔 것은, 빨리 파괴되어서, 시험을 금방 확인하기 위함이었습니다.
이는 유닛그룹안 모든 유닛이 부활되는 줄알았으나, 그렇지 아니하고 일부 유닛만 부활 되었습니다. 예를 들어 파수기를 죽이고 수정탑을 파괴 후 융화소를 파괴하면(파수기 첫번째, 수정탑 두번째, 융화소 세번째) 융화소만 부활되었습니다.
어찌하여야, 한번에 사망한 유닛이나 건물을 부활시킬 수 있을까요? 아무리 고심하여도 문제가 해결되지 않아 고수님들의 말씀 여쭙습니다.
제가 Q&A에서 발견하지 못하였더라면, 게시글 위치를 알려주시면 감사하겠습니다.