playXP

서브 메뉴

Page. 168 / 246 [내 메뉴에 추가]
글쓰기
작성자 아이콘 Appling(애플링)
작성일 2012-11-11 15:42:09 KST 조회 940
제목
[진행중] 김세미님 업적 이렇게했는데 왜 안되죠?

제가 김세미님 업적을 예전에 받아놓고 다시 들췄습니다.

이건 김세미님이 예시로 넣어주신 업적 예시입니다.


파일포켓 이미지

파일포켓 이미지


아래는 예시를 복제해서 만들어본 업적 두개입니다.


파일포켓 이미지

파일포켓 이미지



파일포켓 이미지

파일포켓 이미지


그런데 맵 테스트를 해보면 세미님이 넣어두신 예시밖에 실행이 안됩니다.

F8을 누르면 업적창이 나오는데.

이때는 세개의 업적이 모두 표시되지만,

정작 추출장을 건설하던 30초가 지나던 업적 습득은 세미님 예시밖에 할 수 없습니다...


아 진심 정말 제대로 제발 ㅜㅜ 뭐가 문제죠???

저 업적 예시 복제해서 추가한거 말고는 아무것도 안건들였습니다...

사용법 링크를 걸어주시던 댓글로 설명을 해주시던 따로 팁을 올려주시던 전화던 문자던 카톡이던 메일이던 트위터던 다 괜찮으니까 제발 알려주세여 ㅜㅜㅜㅜㅜ

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

발도장 찍기
짐조심레이너 (2012-11-11 15:57:15 KST) - 211.176.xxx.203
0↑ ↓0
센스 이미지를 등록해 주세요
단순한 문제군요. 업적 1번 추출장 건설은 이벤트를 '유닛 만들어짐'을 쓰신것 같은데,
이건 말그대로 '유닛 생성'효과나 '유닛 생성' 동작을 통해 유닛이 만들어질때 쓰이는 겁니다.
추출장은 '건설'하는 유닛(건물)이지요?
이벤트를 '유닛 건설 진행률'을 사용하셔야 합니다.

두번째 문제는....시간이 30초 지났습니다. 근데....시간은 어떤 플레이어가 보내는 건가요?
아니죠.시간은 저절로 흘러가죠. 근데 트리거 발동 플레이어가 있을 수가 있나요?
트리거 발동 플레이어는 이 트리거를 실행시킨 이벤트를 일으킨 플레이어를 말하는데, 시간은
저절로 흘러가죠.즉, 트리거 발동 플레이어라는 건 쓸 수 없는 이벤트입니다.
저건 다른 방법으로 구현해야 합니다.
예시를 드리자면 주기적 이벤트와 조건문,변수를 이용해 만족한 플레이어에게 업적 습득을 시키면 되겠군요.
전역 변수를 하나 준비합니다. 플레이어 수 만큼 정수형 변수로요.
그리고 주기적 이벤트 1초 트리거를 만들어 줍니다.
그럼 1초마다 실행될 행동은 일단 if then else 조건문을 이용해
각 플레이어가 '플레이어 상태' 조건을 이용해 현재 '플레이 중'인지 확인합니다.
그래서 플레이 중이라면 해당 플레이어의 변수에 1씩 증가시켜 줍니다.
그리고 if then else조건문을 이용해 각 플레이어의 변수값이 30 이상인지(변수>=30) 확인해서
30을 넘었다면 그 플레이어에게 업적 달성을 시켜 주면 됩니다.
아이콘 Appling(애플링) (2012-11-12 00:14:07 KST)
0↑ ↓0
센스 이미지
ㄴ뭔가 상당히 어렵군요...내일 데탑으로 한번 뒤져봐야겠습니다 ...
아이콘 Appling(애플링) (2012-11-12 21:57:29 KST)
0↑ ↓0
센스 이미지
ㄴㄴ 위에꺼에서 유닛건설진행률 사용한다음에 뭐 따로 설정을 무엇을 해야하나요? 어림잡아 해보니 다 안되네요...
짐조심레이너 (2012-11-13 13:49:58 KST) - 211.176.xxx.203
0↑ ↓0
센스 이미지를 등록해 주세요
조건에 위의 스샷과 똑같이 '트리거 발동 유닛'의 유닛 유형을 검사하셨나요?
만약 그렇다면 '유닛 건설 진행률' 이벤트에 딸려 있는 설명문을 다시 한번 읽어 보시겠습니까?
아이콘 Appling(애플링) (2012-11-13 19:48:20 KST)
0↑ ↓0
센스 이미지

파일포켓 이미지
음...이렇게 했는데도 잘 안되네요...
아이콘 Appling(애플링) (2012-11-13 19:50:19 KST)
0↑ ↓0
센스 이미지
ㄴ아니, 이게 아닌가?? '트리거 발동 유닛'의 유형을 검사하라는게 무슨 뜻인지도 잘 모르곘구요..ㅜㅜ '유닛 선설 진행률'이벤트를 눌러보니 트리거 발동 플레이어를 넣어야할꺼 같은데 그놈을 넣자니 이벤트-(트리거발동유닛)을 눌러봐도 '트리거 발동 플레이어'는 안나오구요...
짐조심레이너 (2012-11-14 11:44:21 KST) - 61.254.xxx.210
0↑ ↓0
센스 이미지를 등록해 주세요
---------------------
고기를 잡아 드리지요.
---------------------
이벤트
유닛 - 아무 유닛 건설 진행률 완료됨
조건
(트리거 발동 진행 유닛 유형) == 융화소

행동은 정답입니다.수정하실 필요가 없습니다.





------------------
고기잡는 법입니다.
------------------
실행 불가능한 트리거를 짜셨습니다.

이벤트 부터 보죠.

유닛 - (트리거 발동 유닛) 건설 진행률 완료됨

다시 한번 말씀드리지만 '트리거 발동 유닛'이란 이벤트를 일으킨 유닛을 말합니다.
이는 다시 말하면 이벤트에는 쓸 수가 없는 항목이라는 의미입니다.

트리거 모듈의 '트리거 발동 어쩌구 저쩌구.....'시리즈는 전부 '조건'과 '행동'에서만 쓸 수 있습니다.
이벤트에서는 쓸 수가 없어요.



일단 이벤트를 일으켜야 하는데, 이벤트를 일으킨 유닛이 건설 완료되었다 라는 이벤트를 일으킨다고 합니다.
어떤 이벤트를 일으킨 유닛이 건설 완료 이벤트를 일으키나요?


게임 상에서 진행을 생각해보죠.

융화소가 건설 완료됩니다.
건설 진행 완료됨 이벤트가 일어납니다.
그러자 '트리거를 발동시킨 유닛'이 '건설 진행 완료'이벤트를 일으키면 이 트리거를 실행한다고 합니다.
여기서 트리거를 발동시킨 유닛은 뭘까요? 없습니다.
그냥 융화소가 하나 지어졌고 그로 인해 건설 진행 완료 이벤트가 일어났을 뿐 트리거는 아직 아무것도 실행되지 않았습니다.
그런데 트리거를 발동시킨 유닛이라니요?있을 수가 없습니다.







유닛 건설 진행률 이벤트에 딸려 있는 설명문은 다음과 같습니다.

'유닛의 건설 단계가 특정 진행률에 도달할 때 실행되는 이벤트입니다. 건설을 발동시킨 플레이어를 가져오려면 "트리거 발동 플레이어"를 사용하십시오. 건설하는 유닛을 가져오려면 "트리거 발동 유닛"을 사용하십시오. 건설되는 유닛의 유닛 유형을 가져오려면 "트리거 발동 진행 유닛 유형"을 사용하십시오. 건설되는 유닛을 가져오려면 "트리거 발동 진행 유닛"을 사용하십시오.



무엇이 틀렸는지는 더 이상 설명은 필요 없다고 생각됩니다.설명문을 이해가 될 때까지 읽어 보십시오.

라고 끝내면 고기잡는 법이 아니엤지요.설명문을 분석해봅시다.(국어 해독이 되겠습니다.)

유닛의 건설 단계가 특정 진행률에 도달할 때 실행되는 이벤트입니다.
-->건설할때 실행된다고 하네요.

건설을 발동시킨 플레이어를 가져오려면 "트리거 발동 플레이어"를 사용하십시오.
-->이 이벤트를 통해 발동된 트리거 내에서 "트리거 발동 플레이어"는 건설을 발동시킨 플레이어,즉 건설자를 소유한 플레이어를 가리킨다고 되어 있군요.


건설하는 유닛을 가져오려면 "트리거 발동 유닛"을 사용하십시오.
-->이 이벤트를 통해 발동된 트리거 내에서 "트리거 발동 유닛"이란, 말그대로 건설하는 유닛을 가리킨다고 하네요.



건설되는 유닛의 유닛 유형을 가져오려면 "트리거 발동 진행 유닛 유형"을 사용하십시오.
-->자, 여기서부터 뭔가 다르군요. 이 이벤트를 통해 발동된 트리거 내에서 "트리거 발동 진행 유닛 유형"이란 건설되는 유닛의 유형을 가리킨다고 합니다.SCV가 사령부를 지었다면 "트리거 발동 진행 유닛 유형"은 사령부겠군요.



건설되는 유닛을 가져오려면 "트리거 발동 진행 유닛"을 사용하십시오
-->위와 같지요? 단지 차이점이라면 건설된 유닛이 어느 놈이건 상관없이 유형만 검사하는데 쓰입니다. 보통 조건문에 쓰이게 되죠.하지만 이 "트리거 발동 진행 유닛"은 유형에 상관없이 이벤트를 일으킨 유닛 그 자체를 가리킵니다.보통 유닛 변수에 값을 넣어줄 때 사용하게 되죠.


-----------------적어놓고 보니 뭔가 말투가 톡 쏩니다.
죄송합니다.미리 사과드리겠습니다.
언짢아하지 않으셨으면 합니다.제가 말을 조리있게 잘 못합니다.
아이콘 Appling(애플링) (2012-11-14 12:35:59 KST)
0↑ ↓0
센스 이미지
ㄴ말투가 이상한건 전혀 몰랐으니 신경안쓰셔두 됩니다...
그런데... 고기를 잡아 드리지요 처럼
파일포켓 이미지
이렇게 하면 실행 된다는뜻 아닌가요 ㅜㅜ? 실행이 안되는데ㅜㅜ


제 생각에는

이벤트
유닛 - '아무 유닛' 건설 진행률 '완료됨'
조건
((트리거 발동 진행 유닛)의 유닛 유형) == 융화소
행동
업적달성

이 트리거의 뜻이
'트리거 발동 진행 유닛이 융화소 인데, 이 유닛의 유형 상태가 건설 진행률이 완료된 상태일때 업적이 달성된다.'
라는거 아닌가요 ㅜㅜ??


p.s.
파일포켓 이미지
조건 중 '트리거 발동 진행 유닛'

-------------------------

여기까지 쓰다가 순간 께달아서
파일포켓 이미지
로 했는데.....
...여전히 안되네요... 뭐죠 ㅜㅜㅜ????
아 진짜 뭔가 찾은거 같은데 또 안되다니 어떻게하라는건지...
아이콘 Appling(애플링) (2012-11-14 13:00:20 KST)
0↑ ↓0
센스 이미지
ㄴ추가로 제가 시티 맵파일이 있는데, 여기에도 업적 시스템이 있군요.
이놈을 활용할 수도 있나요?
짐조심레이너 (2012-11-14 20:07:34 KST) - 211.204.xxx.151
0↑ ↓0
센스 이미지를 등록해 주세요
이쯤 되면 김세미 님의 업적 라이브러리를 한번 열어보지 않으면 안되겠네요.
김세미님 업적 라이브러리는 어디에서 찾을 수 있나요?
아이콘 Appling(애플링) (2012-11-14 20:51:03 KST)
0↑ ↓0
센스 이미지
ㄴ저번에 검색해서 봤던거 같은데...
아이콘 Appling(애플링) (2012-11-14 20:51:33 KST)
0↑ ↓0
센스 이미지
짐조심레이너 (2012-11-15 12:10:58 KST) - 61.254.xxx.136
0↑ ↓0
센스 이미지를 등록해 주세요
원인을 찾아냈습니다.
악의 축은 '블리자드' 였습니다.


몇 번의 테스트 결과 그 원인은 건설 방식의 특수성에 있었습니다.

결론부터 말씀드리자면 '유닛 건설 진행률 완료됨' 이벤트를 통해 진행되는 트리거 상에서는 테란만이 '트리거 발동 플레이어'를 사용할 수 있습니다.


해결법부터 말씀드리자면 행동을 다음처럼 짜 주십시오.


업적 달성(플레이어 ((트리거 발동 진행 유닛)의 소유자)이(가) 2 업적 달성)

----------------------------------------------------------------------------
해설 들어갑니다.


문제가 된 트리거 발동 플레이어.그렇다면 이 유닛 건설 진행률 이벤트에서 지칭하는 '트리거 발동 플레이어'란 무엇인가?

'트리거 발동'은 유닛 건설 입니다.그럼 이 이벤트를 일으킨 유닛은? 일꾼이죠. 그럼 그 '플레이어'란? 일꾼의 소유자를 말하는게 되겠지요.

트리거 발동 플레이어가 무엇인지 알았으니 다음 단계로 가보죠.




문제가 된 건설 방식의 특수성이란?



테란의 SCV가 사용하는 건설 능력의 플래그 중에는 '일꾼 유지'라는 것이 있습니다. 이는 모두 아시다시피 건설이 진행되어 완료될때까지 일꾼이 계속 해서 건설을 진행해야 한다는 것이지요.그리고 건설이 끝나고 나서야 일꾼은 건설 상태에서 풀려납니다.


하지만 프로토스의 탐사정의 경우 '일꾼 유지'가 없습니다.즉, 탐사정은 '건설 시작' 시에만 있을 뿐 그 즉시 건물 건설과는 아무 연관이 없는 유닛이 됩니다.건설이 완료되었을땐 이미 이 건물과 연결된 일꾼이 없는 상태이지요. 즉, 트리거를 발동한(건물을 건설한) 유닛이 없기에 그 유닛의 플레이어가 없는 것입니다.


저그의 경우는 더 특수한데, '일꾼 유지'가 있습니다.하지만, '완료시 일꾼 처치' 라는 플래그가 있습니다.이는 일꾼 유지가 있기 때문에 테란과 똑같이 진행될 것 같지만 건설이 완료되었을때 일꾼을 처치합니다. 즉, 프로토스마냥 완료된 순간에 연결된 일꾼이 없는 상태입니다.그렇다면 당연히 이 건물의 건설을 시작한 유닛이 없는 상태이기에 그 유닛의 플레이어가 없게 되는 것이지요.



이래서 트리거 발동 플레이어를 사용할 수 있는 것은 테란 뿐입니다.

이를 바꿔 말하면, 탐사정의 건설 능력에 '일꾼 유지'를 추가해준다면 트리거 발동 플레이어를 사용할 수 있으며 일벌레의 건설 능력에 '완료시 일꾼 처치'를 없애주면 트리거 발동 플레이어를 사용할 수 있다는 말이 됩니다.(테스트 결과 이 가설은 증명되었습니다.)





하지만 이런 방법은 원하시는 방법이 아니실테고, 결국 일꾼을 기준으로 무언가를 할 수 없다면 건설되는 유닛은 반드시 건설하는 플레이어의 소유라는 점을 이용하는 겁니다.

즉, 건설한 일꾼의 소유자가 아닌 건설된 건물의 소유자에게 업적을 달성 시켜 주면 되겠지요.

건설되는 건물은 '트리거 발동 진행 유닛'으로 가져올 수 있으니 그 건물의 소유자를 가져오면 되겠군요.(이 가설 역시 직접 증명하였습니다.)





그래서 위에 말씀 드린 해결법이라는 결론이 나왔습니다.





애플링님의 실사판 스타크래프트, 대성하시기를 진심으로 바랍니다.군심 때도 볼 수 있기를 바랍니다.
군다늘위하여.
아이콘 크더기 (2012-11-15 12:30:37 KST)
0↑ ↓0
센스 이미지
ㄴ좋은거 알아가네요 ㅎㅎ
아이콘 Appling(애플링) (2012-11-15 19:16:08 KST)
0↑ ↓0
센스 이미지
ㄴㄴ어...그러니까여... 그 해결법...
'업적 달성(플레이어 ((트리거 발동 진행 유닛)의 소유자)이(가) 2 업적 달성)'
이거... 이해를 못하겠어요 ㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋ
'트리거 발동 진행 유닛'트리거를 못찾고있어요 ㅜㅜㅜㅜㅜㅜㅜㅜㅜㅜㅜㅜㅜㅜㅜㅜ
그...그냥 행동을 누른 스크린샷 하나를 부..부탁드립니다...

p.s.
어떤 유닛을 생산했을때는 원래 트리거대로 해도 될까요???
아이콘 Appling(애플링) (2012-11-15 19:16:48 KST)
0↑ ↓0
센스 이미지
ㄴ어떤 유닛을 몇마리 생산했을때 업적을 달성하는 트리거...는 좀 다를듯 한데 ㄷㄷ....
아이콘 Appling(애플링) (2012-11-15 19:36:44 KST)
0↑ ↓0
센스 이미지
그리고 사실...언급은 안했지만 제일 처음 답문에서 두번째 질문요...
시간 지남에 따라 할 수 있는 것....
이해 못했으므니다...........
(사실 맵 파일을 주시면 좀 더 이해하기 쉽지 않을까 하는 바램이...)
댓글을 등록하려면 로그인 하셔야 합니다. 로그인 하시려면 [여기]를 클릭하십시오.
롤토체스 TFT - 롤체지지 LoLCHESS.GG
소환사의 협곡부터 칼바람, 우르프까지 - 포로지지 PORO.GG
배그 전적검색은 닥지지(DAK.GG)에서 가능합니다
  • (주)플레이엑스피
  • 대표: 윤석재
  • 사업자등록번호: 406-86-00726

© PlayXP Inc. All Rights Reserved.