2009년 05월 25일
[워3 에디터 강좌] 아이템 드랍률 설정 (랜덤값 산출)

If / Then / Else 다중함수 제어문
트리거 상에서 확률을 산출해내는 가장 간단한 방법은 If / Then / Else 함수를 이용하는 것이다. 프로그래밍에 대한 지식이 조금이라도 있는 사람이라면 이것이 무엇을 의미하는지 잘 알고 있을 것이다. 간단하게 말하면 If 항목에서 조건을 제시한 다음, 그 조건에 부합하면 Then 항목에 있는 액션이 실행되고, 조건에 맞지 않으면 Else 항목에 있는 액션이 실행되는 것이다. 즉 상황에 따라서 액션이 두갈래의 분기로 나눠지는 셈이다.
자 그러면, 예제맵에서 씨 터틀을 잡을때 50% 확률로 아이템이 드랍되도록 트리거를 설정해보자. 예제맵에서 ItemDrop Tutle 트리거를 보면 이벤트/조건/액션이 다음과 같이 되어 있을 것이다.
- 이벤트
유닛 - 플레이어 그룹 - 중립 적대의 어떤 유닛이 죽임이(가) 되면 작동합니다 - 조건
((트리거를 작동시킨 유닛)의 유닛-타입) == (서로 같다) 씨 터틀 - 액션
아이템 - (레벨2인 아이템-타입의 모든 클래스)(을)를 ((트리거를 작동시킨 유닛)의 위치)에 생성합니다.
그러기 위해서 새로운 액션 만들기(Ctrl + R)를 한 다음, 액션 종류 - 일반 카테고리에서 If / Then / Else (다중함수)를 선택한다.






그러면 이제는 위에서 설정한 조건이 맞아 떨어졌을 때 실행할 액션, 즉

자 이렇게 해서 If / Then / Else (다중 함수)를 이용한 아이템 드랍률 트리거 설정이 모두 끝났다. 일단 맵을 플레이해서 정말로 씨 터틀을 잡으면 50% 확률로 아이템이 드랍되는지 테스트 해보라. 그리고 확률을 바꾸려면 If - 조건 항목에서 50을 다른 수치로 바꿔주면 그만이다. 만약 이 값을 30으로 바꾸면 아이템이 70% 확률로 드랍될 것이고, 85로 바꾸면 15% 확률로 아이템이 드랍될 것이다. 확률을 1% 단위가 아니라 좀 더 세분화 시키고 싶다면 ((1 ~ 100) 사이의 무작위 정수를 반환합니다)에서 최대값을 1,000이나 10,000 등으로 바꿔주면 된다. 아니면 정수 비교가 아닌 실수 비교로 해도 된다.
- 주의사항
맵 에디터 상에서 상단 메뉴 중에 파일(F)를 보면 설정(F) 항목이 있다. 이것을 선택한 다음 [지도 시험]탭에서 고정 난수 사용에 체크가 되어 있다면 체크를 풀고 [확인]을 눌러라. 고정 난수 사용이 선택된 상태로 맵을 테스트 하면 제대로 된 랜덤값이 아니라 일정한 값이 차례로 반복되어 산출되기 때문이다.
강좌에서 설명한대로 잘 실행이 되는가? 잘 안된다면 이번 강좌에 사용된 트리거까지 삽입된 예제맵을 다운 받아서 열어보고 다시 반복 연습해 보도록 하자. ▶완성된 예제맵 다운로드: TriggerEX_06done.w3x
# by | 2009/05/25 11:18 | ▶ War3 Editor 강좌 | 트랙백 | 덧글(14)







☞ 내 이글루에 이 글과 관련된 글 쓰기 (트랙백 보내기) [도움말]
에디터에 에자도모르는제가 보면서해도 따라할수있을정도네요
앞으로도 잘부탁드리구요 감사합니다!!
이제 다음 단계좀 ;ㅅ ;
강좌 덕분에 이벤트, 조건, 액션이 뭔지 아니까 잘풀리네요.
루아 스크립트 강좌 해보실 생각은 없으신가요?ㅎㅎ
네이버 지식in 에서 활동 중인데, 에디터에 대해 궁금증이 있는 분들께 이 블로그를 소개해 주어도 되겠는지요?
확실히 많은 도움이 되가고 있어요 ^^
맵 보다 궁금한게 있는데요. 중앙에 물타일 어떻게 만드는 건가요 ?
'절벽 적용:얕은 물'을 이용하여 만드려고 하는데 스톰님이 만든 것처럼
경계선이 자연스럽게 안나오고 캐릭터 이동도 되지를 않네요 ..
답글 감사합니다 ^^