playXP

서브 메뉴

Page. 180 / 246 [내 메뉴에 추가]
글쓰기
작성자 아이콘 RuXxo
작성일 2012-02-26 14:39:15 KST 조회 685
제목
우주관문 유닛 생산 시 중앙에 나타나는 유닛 소환 모델 질문드려요.

안녕하세요.

 

우주관문에서 유닛을 생산하면 우주관문 중앙에서 어떤 유닛이 생산되는지 소환 모델이 뜨는 것이

 

어떤 원리로 되는지 확인하려고, 우주관문 행위자를 살펴보고 있는데요.

 

보니까 소환 모델이 포함된 행위자가 그 유닛을 생산하면 작동되도록 하고, 생산유닛이 상태모음에서 지정이 되어있더군요.

 

예를 들어서, 불사조는 상태모음에서 하위가 Warpingin에 1번과 11번으로 지정되어있더군요.

 

이 지정된게 어떤 지정을 말하는 것인지 자세히 알고싶습니다.

 

시험용으로  단순히 소환 모델이 포함된 행위자와 단순히 상태모음에서 랜덤으로 숫자를 지정하는 것으로는

 

자꾸 새로 만든 유닛을 생산할 때마다 우주관문 중앙에 나타나는 소환 모델이 유닛 취소 시에 다른 유닛과 겹쳐보이더군요.

 

아는 분 자세한 답변 혹은 관련 강좌 알려주시면 감사드려요.

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

발도장 찍기
Cerenas (2012-02-26 17:38:14 KST)
0↑ ↓0
센스 이미지를 등록해 주세요
우주관문의 이벤트를 위에서부터 차례대로 찬찬히 해석해 보시면 감이 오실겁니다.

간단하게 불사조의 경우만 해석해 드리자면

ActorCreation
StatusSet WarpingIn 0
일단 우주관문 행위자가 생성되면 '워프인' 이라는 상태를 0으로 만듭니다.

AbilTrain.StargateTrain.Start
AbilTrainProduced Phoenix
!ValidatorUnit HasNoPower
Create PhoenixWarpInStargate

StargateTrain이라는 훈련 능력이 시작되는 이벤트가 일어나면
그리고 그 훈련되는 유닛이 Phoenix인 경우 와
이 훈련을 진행하는 유닛이 HasNoPower라는 유효성 검사기가 부정된 상태라면 (즉 '동력 없음'이 '아닌' 경우라면)
PhoenixWarpInStargate라는 행위자를 만듭니다.

AbilTrain.StargateTrain.Start
AbilTrainProduced Phoenix
!ValidatorUnit HasNoPower
Destroy

이건 그 바로 아래의 이벤트인데 이벤트와 조건이 똑같죠?즉 바로 위의 것과 함께 실행됩니다.(순차적으로)
그런데 저 '파괴=Destroy' 행동의 '대상'을 보십시오. 'VoidRayWarpInStargate'라고 되어 있습니다.
즉, 불사조를 훈련하기 시작하면 공허포격기소환(그래픽)행위자를 파괴하는 겁니다.

그리고 그 아래에 이 이벤트,행동이 또 하나 있는데 그것의 행동의 대상은 'CarrierWarpInStargate'입니다.
이것도 똑같이 우주모함의 소환(그래픽)행위자를 파괴하는 것이지요.

이제 또 죽 내려가면

AbilTrain.StargateTrain.Start
AbilTrainProduced Phoenix
!ValidatorUnit HasNoPower
StatusSet WarpingIn 1
이 있습니다. 이것은 불사조를 훈련하기 시작하면 WarpingIn 이라는 상태 값을 1로 지정해 준다는 겁니다.
공허포격기는 2 우주모함은 3 이지요. 이것은 말그대로 지금 어떤 상태인지를 지정해주는 것으로 여러 이벤트에 유용하게 쓰일 '조건'을 만들어 주는 것입니다.
이로써 WarpingIn값의 상황을 정리할 수 있겠군요.

WarpingIn 0 = 훈련을 하지 않는 가만히 있는 상태
WarpingIn 1 = 불사조를 훈련중인 상태
WarpingIn 2 = 공허포격기를 훈련중인 상태
WarpingIn 3 = 우주모함을 훈련중인 상태

그리고 그 아래에 또

AbilTrain.StargateTrain.Start
AbilTrainProduced Phoenix
ValidatorUnit HasNoPower
StatusSet WarpingIn 11
이 있습니다. 보시면 조건 '동력 없음'에 부정값이 없습니다. 즉 동력이 없을 경우에는 상태값을 11로 지정해 주는 것입니다.
역시 공허는 12 우모는 13입니다. WarpingIn 값이 3개 더 확인 되었군요.

WarpingIn 11 = 불사조를 훈련을 시작했는데 구조물에 동력이 끊긴 상태
WarpingIn 12 = 공허포격기를 훈련을 시작했는데 구조물에 동력이 끊긴 상태
WarpingIn 13 = 우주모함을 훈련을 시작했는데 구조물에 동력이 끊긴 상태

그 아래에 근데 또 이벤트가 있군요.

Abil.que5.stop
IsStatus WarpingIn1
StatusSet WarpingIn 11
대기열(5개짜리)가 정지되었을때 WarpingIn 상태가 1이면 11로 설정해 준다고 합니다.
이제 위에서 확인한 상태를 대입해서 생각해보죠.

불사조를 훈련 중인데 대기열을 취소하면 구조물에 동력이 끊긴 상태로 지정한다고 합니다.
근데 대기열이 멈추는 경우는 취소일수도 있고 동력이 끊긴 상태일 수도 있지요.
그렇다면 11은 위의 가설과는 살짝 다른 상태라는 것이 밝혀지네요.

WarpingIn 11 = 불사조를 훈련을 시작했는데 구조물에 동력이 끊긴 상태 뿐만이 아니라
불사조를 훈련하다가 취소되거나 멈춘상태
가 됩니다.
12나 13도 똑같겠죠.

또 내려가보면

Abil.que5.start
IsStatus WarpingIn11
Create PhoenixWarpInStargate
이런게 있습니다.
대기열이 시작되었는데 상태가 11이라면 PhoenixWarpInStargate라는 행위자를 만들어 준다고 합니다.
즉, 훈련을 시작하거나 동력이 공급되어 재개 되었는데, 불사조를 훈련하다가 취소가 되었거나 멈춘경우엔 불사조 훈련 행위자를 만들어 주는 겁니다.
근데 동력이 끊긴게 아니라 취소하고 다시 만드는 거 였다면? 이 경우는 다시 맨 위에서 부터 이벤트를 따라오면 되지요.
이 설명은 잠시 뒤로 넘기겠습니다. 아직 이벤트 설명이 다 되질 않았어요.


Abil.que5.start
IsStatus WarpingIn11
StatusSet WarpingIn 1
이번엔 반대로군요. 11인 상태에서 대기열이 시작,즉 불사조 훈련이 재개된 상태이므로 1로 지정해 주네요.이로써 WarpingIn 1 이라는 값이
'불사조를 훈련 중인 상태'라는 건 100% 확신할 수 있게 되었군요.12와 13도 같습니다.

또 내려가보죠.

AbilTrain.StargateTrain.Finish
StatusSet WarpingIn 0
훈련이 완료되면 WarpingIn 값을 0으로 돌린답니다. WarpingIn 0 = 훈련을 하지 않는 가만히 있는 상태라는 가설도 100% 확신이 되는 군요.


그런데....여기서 한가지 특이한 것이 있습니다. 바로
훈련이 취소되었거나 동력이 끊겨서 멈췄을때 PhoenixWarpInStargate라는 행위자를 파괴시켜주는 이벤트가 없네요!?

그럼 어디 PhoenixWarpInStargate라는 행위자 자체로 가보죠.

abil.que5.stop
Destroy

행위자 자체에 있네요.여기서 stop 즉 정지는 취소,완료 두가지 모두 해당됩니다.



자,이제 이벤트를 따라가 보자구요.
우주관문이 소환되었습니다.
WarpingIn 값은 0이 되었습니다.
------------------------------------------------------------------------------
Case 1-훈련 도중 아무 문제 없이 완료되는 경우입니다.
------------------------------------------------------------------------------
불사조를 소환합니다.
동력이 끊긴 상태가 아니며 불사조 훈련을 시작했다면 PhoenixWarpInStargate를 만듭니다.
동력이 끊긴 상태가 아니며 불사조 훈련을 시작했다면 WarpingIn를 1로 지정해 줍니다.
동력이 끊긴 상태가 아니며 불사조 훈련을 시작했다면 VoidRayWarpInStargate라는 행위자를 파괴합니다.
동력이 끊긴 상태가 아니며 불사조 훈련을 시작했다면 CarrierWarpInStargate라는 행위자를 파괴합니다.
훈련이 완료되었으면 WarpingIn 0으로 지정해 줍니다.
훈련이 완료되었으면 PhoenixWarpInStargate라는 행위자는 대기열(5)가 정지되었으므로 자신을 파괴합니다.



------------------------------------------------------------------------------
Case 2-자 이번엔 동력이 끊어진 상태에서 불사조 훈련을 누른 경우입니다.
------------------------------------------------------------------------------

우주관문이 소환되었습니다.
WarpingIn 값은 0이 되었습니다.
불사조를 소환합니다.
동력이 끊긴 상태이며 불사조 훈련을 시작했다면 WarpingIn를 11로 지정해 줍니다.

이게 답니다.



------------------------------------------------------------------------------
Case 3-자,그럼 이 동력이 끊어진 우주관문에 동력이 공급되기 시작합니다.
------------------------------------------------------------------------------
대기열이 다시 작동(시작)하며, WarpingIn값이 11 이니까 PhoenixWarpInStargate를 만들어 줍니다.
대기열이 다시 작동(시작)하며, WarpingIn값이 11 이니까 WarpingIn을 1로 지정해 줍니다.
훈련이 완료되었으면 WarpingIn 0으로 지정해 줍니다.
훈련이 완료되었으면 PhoenixWarpInStargate라는 행위자는 대기열(5)가 정지되었으므로 자신을 파괴합니다.



------------------------------------------------------------------------------
Case 4-훈련 도중에 동력이 끊어집니다.
------------------------------------------------------------------------------
우주관문이 소환되었습니다.
WarpingIn 값은 0이 되었습니다.
불사조를 소환합니다.
동력이 끊긴 상태가 아니며 불사조 훈련을 시작했다면 PhoenixWarpInStargate를 만듭니다.
동력이 끊긴 상태가 아니며 불사조 훈련을 시작했다면 WarpingIn를 1로 지정해 줍니다.
동력이 끊긴 상태가 아니며 불사조 훈련을 시작했다면 VoidRayWarpInStargate라는 행위자를 파괴합니다.
동력이 끊긴 상태가 아니며 불사조 훈련을 시작했다면 CarrierWarpInStargate라는 행위자를 파괴합니다.
동력이 끊어져서 대기열(5)가 정지하며 WarpingIn 값이 1인경우 WarpingIn 값을 11로 지정해 줍니다.
동력이 끊어져서 대기열(5)가 정지하였으므로 PhoenixWarpInStargate행위자는 자신을 파괴합니다.




여기서 다시 동력이 공급되면 Case 3으로 돌아가면 되겠군요.

------------------------------------------------------------------------------
Case 5-불사조 훈련 도중 취소하고 다시 불사조를 훈련합니다.
------------------------------------------------------------------------------
불사조를 소환합니다.
동력이 끊긴 상태가 아니며 불사조 훈련을 시작했다면 PhoenixWarpInStargate를 만듭니다.
동력이 끊긴 상태가 아니며 불사조 훈련을 시작했다면 WarpingIn를 1로 지정해 줍니다.
동력이 끊긴 상태가 아니며 불사조 훈련을 시작했다면 VoidRayWarpInStargate라는 행위자를 파괴합니다.
동력이 끊긴 상태가 아니며 불사조 훈련을 시작했다면 CarrierWarpInStargate라는 행위자를 파괴합니다.
취소를 하여 대기열(5가 정지하며 WarpingIn 값이 1인경우 WarpingIn 값을 11로 지정해 줍니다.
취소를 하여 대기열(5)가 정지하였으므로 PhoenixWarpInStargate행위자는 자신을 파괴합니다.
다시 불사조를 소환합니다.
동력이 끊긴 상태가 아니며 불사조 훈련을 시작했다면 PhoenixWarpInStargate를 만듭니다.
동력이 끊긴 상태가 아니며 불사조 훈련을 시작했다면 WarpingIn를 1로 지정해 줍니다.
동력이 끊긴 상태가 아니며 불사조 훈련을 시작했다면 VoidRayWarpInStargate라는 행위자를 파괴합니다.
동력이 끊긴 상태가 아니며 불사조 훈련을 시작했다면 CarrierWarpInStargate라는 행위자를 파괴합니다.
훈련이 완료되었으면 WarpingIn 0으로 지정해 줍니다.
훈련이 완료되었으면 PhoenixWarpInStargate라는 행위자는 대기열(5)가 정지되었으므로 자신을 파괴합니다.


이 5번째 케이스의 경우는 바로 이전에 WarpingIn값을 11로 지정되어 있었지만 그 값을 이용하기 전에 이미 불사조를
새로 훈련을 시작하면서 1로 바꿔버리기 때문에 11과 관계된 이벤트는 일어날 일도 행위자 누수도 없게 됩니다.
------------------------------------------------------------------------------
------------------------------------------------------------------------------
------------------------------------------------------------------------------
------------------------------------------------------------------------------
이상이 우주관문에서 불사조 훈련시에 처리되는 이벤트와 행동들입니다. 좀 더 찬찬히 살펴보시고 멋진 효과 만드기실 바랍니다.
아이콘 RuXxo (2012-02-27 00:36:00 KST)
0↑ ↓0
센스 이미지
헐... 감사합니다. 이 정도 설명이면 충분히 이해가 되겠네요.
댓글을 등록하려면 로그인 하셔야 합니다. 로그인 하시려면 [여기]를 클릭하십시오.
롤토체스 TFT - 롤체지지 LoLCHESS.GG
소환사의 협곡부터 칼바람, 우르프까지 - 포로지지 PORO.GG
배그 전적검색은 닥지지(DAK.GG)에서 가능합니다
  • (주)플레이엑스피
  • 대표: 윤석재
  • 사업자등록번호: 406-86-00726

© PlayXP Inc. All Rights Reserved.