playXP

서브 메뉴

Page. 1 / 246 [내 메뉴에 추가]
글쓰기
작성자 Dogking113
작성일 2016-01-25 01:54:35 KST 조회 776
제목
제 트리거에 대한 간단한 질문


 

어떤 유닛의 에너지가 20% 이하로 내려갔을때

유닛 머리위에 깜빡이 경고가 1개 생기고, 다시 올라가면 깜빡이 경고가 사라지게 하려고 했는데요,

 


 

한번 20% 이하로 내려간다음

에너지가 회복되면서 그 회복되는 만큼 계속 깜빡이 경고가 중첩되서 20%이상으로 회복될때까지 무한히 생기네요 ㅠㅠ

20% 이상으로 다시 회복되었을때 깜빡이 경고가 '처치'되지도 않고요 ㅜㅜ

 

제가 의도한 트리거는 20%이하로 내려간 최초의 한번만 깜빡이 경고가 생기는거엿는데 

제가 뭘 엉터리로 쓴걸가요..ㅜ

 

알려주시면 정말 감사하겟습니다...

 

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

발도장 찍기
운영 (2016-01-25 17:55:00 KST)
0↑ ↓0
센스 이미지를 등록해 주세요
저도 비슷한 트리거 만든거 있는데욤

else에 행동 안두고
if then else를 두개썻어요

if
에너지 <=20%
then
깜빡이생성
else

if
에너지>20
then
깜빡이 삭제
else


저는 요렇게 했습니다!
Dogking113 (2016-01-25 18:53:00 KST)
0↑ ↓0
센스 이미지를 등록해 주세요
음... 그렇게 해도 해결이 안되는데요 ㅜㅜㅜㅜ
성역의수호자 (2016-01-26 04:31:41 KST)
1↑ ↓0
센스 이미지
조건에 아님 이하 조건은 왜 넣으셨는지 모르겠으나... 이벤트가 에너지변경이라 에너지 회복주기만 되면 실행되서 계속 행동이 중첩적용되는게 문제입니다. 유닛마다 부울변수 혹은 정수변수 하나 할당해주시고, 해당 변수가 참일때를 조건으로 조건이 걸러지게 하시면 됩니다.

조건
-0<= (트리거발동 유닛)에너지 (백분율) (현재) <=20
-표시기 표기됨(정수변수) = 0

근데, 이렇게 하면 유닛마다 하나하나 다 박아줘야되겠죠? AOS류 게임이면 5:5일때 유닛수가 많아봐야 10마리이기 때문에 "표시기 표기됨(정수변수)"의 배열을 10개만 배정해줘도 됩니다만 이렇게 '소수 유닛으로 구성되는 경우가 아니라면' 트리거보단 데이터쪽으로 우회구현하는게 유리합니다. 렉도 줄어들고요.

데이터 구현시 더미동작 하나 만드시고 더미동작의 주기적 효과에 동작부여 효과를 붙여줍니다. 처음에 언급한 더미동작을 A, 주기적 효과에 의해 부여되는 동작을 B라고 하겠습니다.

A의 유효성 검사기에 에너지 20%이하를 조건으로 하는 유효성 검사기를 붙입니다. 생존력 비율관련해서 적혀있는 유효성 검사기 뒤져보면 금방 이해 가실테니 자세한 설명은 스킵.

이 상태에서 선택지가 두개 있습니다. 하나는 주기를 일치시킨다음 트리거 보조 혹은 행위자 보조를 받아서 깜빡깜빡 거리게 만드는 방법이 있고, 다른 하나는 동작부여효과에 유효성검사기를 달아 B가 있을때 B를 실행하지 않게 막아놓고 B동작에는 유효성 검사기 제거항목을 활용하여 A동작이 비활성화 상태가 되었을때 사라지게 만듭니다. 이렇게 만들경우 느낌표는 해당 조건이 충족될때까지 남아있게 되고, 어떤 모델을 행위자에 사용하느냐에 따라 깜빡거리게 만들수도 그냥 계속 켜져있게 내버려둘수도 있습니다.

...일단은 트리거 구현으로 질문을 하셨으니 여기까지만 답변하겠습니다.
성역의수호자 (2016-01-26 04:37:33 KST)
0↑ ↓0
센스 이미지
아...다시보니 비슷한 메커니즘으로 하셨군요. 근데, 저거 지역변수라서 해당 트리거 종료시점에 "증발"합니다. 전역변수에 표기여부를 기록하세요
아이콘 갓료선 (2016-01-26 14:05:40 KST)
1↑ ↓0
센스 이미지
변수가 문젭니다.

일단 지역변수... 트리거 실행 한번 끝나면 지역변수 자체가 사라집니다. 트리거 한번 동작할 동안만 존재하는 변수에요. 무조건 조건이 참일수 밖에 없죠. 조건을 감지할때 변수는 항상 비어있으니까요.

위 문제를 해결해도,
두번째 문제가 변수를 하나만 쓰고 있습니다. 이상황에서 유닛이 둘 이상 트리거를 작동시키면 서로 변수 내용을 바꿔버리면서 중첩이 발생하는겁니다. a가 먼저 트리거를 발생시키고 변수에 a를 넣었는데, b가 트리거를 동작시키면서 다시 변수가 b로 바뀌는거죠. 이상태에서 a가 또 트리거를 발생시키면 변수에는 b가 들어있기 때문에 중첩이 발생할 수 있습니다.
Dogking113 (2016-01-27 10:35:57 KST)
0↑ ↓0
센스 이미지를 등록해 주세요
우와.. 두분다 자세한 답변 감사합니다 ㅜㅜ 덕분에 해결했습니다! 지역변수가 바로 사라지는지는 몰랏네요 알려주신 데이터 구현으로도 해봐야겠어요 제맵에 유닛이 많이등장해서 ㄷㄷ;
댓글을 등록하려면 로그인 하셔야 합니다. 로그인 하시려면 [여기]를 클릭하십시오.
롤토체스 TFT - 롤체지지 LoLCHESS.GG
소환사의 협곡부터 칼바람, 우르프까지 - 포로지지 PORO.GG
배그 전적검색은 닥지지(DAK.GG)에서 가능합니다
  • (주)플레이엑스피
  • 대표: 윤석재
  • 사업자등록번호: 406-86-00726

© PlayXP Inc. All Rights Reserved.