playXP

서브 메뉴

Page. 1 / 246 [내 메뉴에 추가]
글쓰기
작성자 프리슨어필
작성일 2013-02-27 14:33:12 KST 조회 1,209
첨부
제목
트리거가 실행이 됩니다(꼬인 것 같네요..)
파일포켓 이미지
파일포켓 이미지
파일포켓 이미지
파일포켓 이미지
파일포켓 이미지

일단 트리거의 기본은 전에 고자님이 짜주신 트리거를 기본으로 하고 있습니다.

일단 대화상자 2개가 나오고 첫대화상자 선택후에 새로운 대화상자가 나온 후에 2번째 대화상자를 선택하고 지정된 타이머가 지나면 행동이 이루어지는 방식의 트리거죠. 


첫 스샷은 두번째 대화상자를 클릭시 각대화상자에 따라서 변수값이 주어지는 것을 보여줍니다. 구조는 테란(0~2)은 각각 변수 값이 1~3이고 저그(0~2)는 각각 4~6. 프로토스(0~2)는 7~9. 이렇게 9가지의 변수로 되어있습니다.


두번째 스샷은 선택한 대화상자에 따라서 저장된 변수들이 그 변수에 따라서 행동 트리거가 작동하는 것입니다.

여기서 왜 굳이 팀1에서 1플레이어 이런식으로 했냐하면 게임에 들어가는 모든 플레이어에게 지정된 자리에 따라서 유닛을 배분할 것이기에 차이를 둘 필요가 있었기 때문입니다. 가령 업그레이드는 단순히 내가 테란(2) 대화상자를 선택해서 변수 값2에 따라 지정된 해병 불곰 허용안함을 부여받으면 됩니다. 이건 단순히 대화상자의 선택에 따른 결과라서 중복해도 상관 없기 때문,

그러나 1p에게 지점1에 유닛을 주고, 2p에게 지점2의 유닛 주고~~~~ 6p에게 지점6의 유닛주고 이런 식의

행동까지 넣어야 했기에 그냥 팀1의 1플레이어 식으로 했습니다.

참고로 플레이어는 1팀의 1~3p. 2팀의 1~3p. 총 6명입니다. 그래서 트리거도 총 6개를 짜야 했습니다.

3번째 스샷처럼 기본 내용은 같되 플레이어만을 변경해주는 것입니다


그리고 이렇게 게임을 배넷에 올려서 실험해봤죠. 팀1.2 의플레이어들은 배넷서만 작동하니까요

그 결과 제가 1팀의 1p를 할 경우는 전혀 문제가 없었지만


4번째 스샷처럼 2팀의 1p를 할 경우 2번째,. 3번째 스샷의 행동 트리거인 정해진 지점(이경우 지점4)의 유닛 부여 행동 트리거가 작동을 안 합니다. 대화상자 모두 다 눌렀는데도 말입니다. 혹시나 해서 모든 트리거에 부착된

조건: 플레이어가 플레이 중이라는 조건을 다 지워봐도 지점4에 유닛이 없습니다.

그외에 1팀의 2p.3p. 2팀의 2p.3p로 실험하고 싶어도 방장은 1팀의 1p와 2팀의 1p만 할 수 있어서 실험불가

 


그리고 2번째 스샷에 랜덤이라고 적힌 표시가 보이시는 지요

이건 아무도 타이머 창에 지정한 타이머가 완료될때까지 아무것도 하지않을때 랜덤으로 변수를 지정해주는 트리거의 일부입니다. 이 경우 타이머가 0이 됨과 동시에 그 플레이어의 테라진이 주어지고 변수 프로게이머의 값이 1~9까지 무작위로 지정하게 됩니다.


마지막에 적힌 스샷이 그 트리거들입니다. 앞에서 미선택한 플레이어들마다 변수가 무작위로 정해지고 테라진이 주어집니다. 이 경우 이벤트는 테라진 변경에 반응해서 타이머 완료들 트리거와 같은 행동을 하게 됩니다.


이 경우는 배넷서 혼자 방을 실행해도 작동이 잘 되는 가 여부를 알 수 있습니다. 컴퓨터 5명을 설정해주면

컴퓨터들은 대화상자를 당연히 클릭을 안 할 것이고, 대화상자 미클릭 트리거로 넘어가 테라진 변경과

무작위 변수 프로게이머 값이 지정됨에 따라 정해진 자리에 유닛이 주어지겠죠?.


그런데 배넷서 제가 딱 대화상자 선택하고 보니 정해진 자리에 컴퓨터유닛이 전혀 없더군요.

이건 트리거가 실행이 안 됬다는 소리입니다. 그리고 역시 1팀의 1p를 해야만 랜덤 트리거가 작동이 되지

2팀의 1p를하면 랜덤 트리거도 작동이 안 됩니다,


아무래도 처음 트리거가 뭔가 잘못된거 있어서 그걸 대부분 그대로 가져온 랜덤트리거도 문제가 발생하는 듯요,..

지속적인 허위 신고시 신고자가 제재를 받을 수 있습니다.
신고 사유를 입력하십시오:

발도장 찍기
프리슨어필 (2013-02-27 14:36:50 KST)
0↑ ↓0
센스 이미지를 등록해 주세요
아참 변수, 선택완료=거짓은 타이머가 완료되기전에 실행되는 것을 막기위한 변수입니다.
타이머가 다 지날시 자동으로 선택완료 변수가 참이되면서 트리거가 실행이 됩니다
프리슨어필 (2013-02-27 15:00:40 KST)
0↑ ↓0
센스 이미지를 등록해 주세요
단순하게 보면 플레이어를 1팀의 1p로 지정한게 문제냐? 라고 할 수 있지만,,,
트리거는 모두 따로띠로 잘 설정되있다는 게 함정
프리슨어필 (2013-02-27 15:19:40 KST)
0↑ ↓0
센스 이미지를 등록해 주세요
하도 복잡해서 그냥맵을 업로드했습니다. 보고 좀 도와주세요,,

그리고 잘 되는 지 아닌지 테스트하실려면 배넷 비공개로 올리시고 실험하시면 됩니다
아이콘 vhdy (2013-02-28 06:45:42 KST)
0↑ ↓0
센스 이미지
타이머 트리거에 문제가 될만한건 하나 보이긴 하네요.
아이콘 vhdy (2013-02-28 06:57:42 KST)
0↑ ↓0
센스 이미지
트리거는 위에서 아래로 순서대로 실행되는게 기본인데, 먼저해야할 변수설정을 나중에 하고, 이벤트 실행을 먼저 시키는것도 보이네요.
프리슨어필 (2013-02-28 11:31:29 KST)
0↑ ↓0
센스 이미지를 등록해 주세요
변수 설정은 2번째 선택실현이라는 트리거에 있는데 그 트리거는 행동들인 타이머완료보다 위에 있지않나요?. 변수설정이 나중에 된다는 설명은 이해하기 힘듭니다. 또한 이벤트 실행이 변수 설정보다 먼저된다는 부분이 어디인지도 이해하기가 힘이 듭니다
아이콘 vhdy (2013-02-28 12:50:09 KST)
0↑ ↓0
센스 이미지
말을 정정하죠.
트리거 내의 행동은 위에서 아래로 순서대로 실행됩니다.
아이콘 vhdy (2013-02-28 13:17:01 KST)
0↑ ↓0
센스 이미지
1. 타이머 완료와 랜덤은 중복되는 트리거같은데 굳이 분리할 필요가 있나 싶군요.
2. 이벤트가 실행하면서 조건으로 쓰는 변수값을 바꿔버리면 그 뒤에 작동해야할 이벤트에 문제가 생길수도 있겠죠.
3. 특정 트리거에서 필요로 하는 변수를 입력하는 것보다 이벤트를 먼저 발생시켜면, 문제가 생길수도 있습니다.
프리슨어필 (2013-03-01 14:34:17 KST)
0↑ ↓0
센스 이미지를 등록해 주세요
1번같은 경우는 중복시키지 않고싶지만, 타이머 완료시 랜덤으로 정해지는 변수가 정해진 다음에 그걸 실행시킬 이벤트가 없어서 작동을 안 합니다. 가령 이런 거죠, 이미 숫자1을 선택한 사람들은 타이머 완료 후에 해병이 생긴다고하면 아무것도 선택하지 않은 사람들은 타이머 완료 후에야 숫자가 정해지기 때문에 숫자가 1이라도 이벤트가 없어서 해병이 안 생기는 그런 위치여서 분리할 수 밖에 없더군요.. 다른 좋은 방법이 있다면 또 모르겠지만,,

2.3번에 대해선 어디 트리거를 어떻게 수정하면 좋은지 지적해주시면 좋을듯합니다
맵까지 업로드했으니,,보시고
프리슨어필 (2013-03-01 14:36:04 KST)
0↑ ↓0
센스 이미지를 등록해 주세요
2번에서 변수값 바꾸는 건 '아무것도 선택하지 않은 플레이어'. 즉 아무것도 선택하지 않아서 변수=0인 사람들에게 해당하는 지라,, 이미 선택한 사람들에게는 영향을 끼치지는 않을 것 같습니다.
물론 아무것도 선택하지 않을 경우 값이 0이 맞다면 말이죠. 일단 랜덤 트리거를 모두 지워도,
실험가능한 1팀의 1p.2팀의 1p중에서 2팀의 1p가 작동이 안된다는 사실은 같은지라 난처합니다
프리슨어필 (2013-03-01 15:12:55 KST)
0↑ ↓0
센스 이미지를 등록해 주세요
방금 타이;머완료트리거를 2팀의 1p만 살리고 나머지 트리거를 모두 끄고 실험하니 유닛이 잘 생성됩니다. 어차피 이벤트와 조건이 같다고하면 트리거가 위부터 아래로 실행될테니, 1팀의 1p가 가장 먼저 실행이 되겠죠. 문제 핵심은 왜 같은 트리거 6개중에서 1개만 되냐 이겁니다.
프리슨어필 (2013-03-01 16:53:31 KST)
0↑ ↓0
센스 이미지를 등록해 주세요
방금 25번정도 실험을 해봐서 겨우알아낸건데, 일단 타이머 완료 트리거1~6은 조건 선택완료=거짓을 지워버리면 2팀의 1p를 해도 별 문제가 없이 이루어집니다. 다른 트리거도 잘 될것 같습니다.

그리고, 타이머완료와 랜덤트리거를 분리하지 않아도 트리거를 생성하는 법과
분리해야만 하는 방법도 알아냈습니다
프리슨어필 (2013-03-01 16:56:19 KST)
0↑ ↓0
센스 이미지를 등록해 주세요
일단 타이머 완료와 랜덤을 분리시켜야하느 ㄴ경우는
플레이어의 변수값이 0일시 랜덤으로 숫자를 주는 if트리거가 다른 변수 1~9까지 주는 if트리거가 속한 큰 전체 트리거에 속해있을 때입니다. 이 때는 순서가 동일하게 변수값대로 행동을 지시하기에 랜덤트리거 부분을 따로 만들지 않으면 행동이 이루어지지 않습니다.

변수값=0.1.2.3.4.5.6.7.8.9에 따른 행동이 동일하게 이루어지고
변수=0일때 유닛주는 부분이 없기 때문,

그러나 변수=0일때 무작위로 1~9까지를 지정하는 트리거를 다른 변수=1~9까지의 행동 트리거와 제외시켜서 위로 올리면, 트리거 순서발동이 다르게 됩니다
프리슨어필 (2013-03-01 16:57:28 KST)
0↑ ↓0
센스 이미지를 등록해 주세요
먼저 변수=0일때 숫자1~9를 지정하는 트리거가 먼저 발동합니다. 이 경우 변수=0인값이 변해서 숫자가 지정되고 나서야
변수=1~9 행동 트리거가 발동되므로 따로 랜덤트리거를 만들지 않아도 이미 변수=0인 값이 1~9로변했기에 문제가 없는 것입니다
아이콘 vhdy (2013-03-01 23:13:31 KST)
0↑ ↓0
센스 이미지
선택완료=거짓 이 문제가 된건, 타이머 완료시 6개의 트리거가 작동되는게 그게 모두 동시에 작동하지 않는다는 거겠죠.
그래서 트리거중에 값을 참으로 바꾸면 뒤에 실행될 타이머 트리거가 작동을 안한겁니다.
댓글을 등록하려면 로그인 하셔야 합니다. 로그인 하시려면 [여기]를 클릭하십시오.
롤토체스 TFT - 롤체지지 LoLCHESS.GG
소환사의 협곡부터 칼바람, 우르프까지 - 포로지지 PORO.GG
배그 전적검색은 닥지지(DAK.GG)에서 가능합니다
  • (주)플레이엑스피
  • 대표: 윤석재
  • 사업자등록번호: 406-86-00726

© PlayXP Inc. All Rights Reserved.