짜고싶은 스크립트는 이러합니다.
매크로를 돌리는중 '특정행위1'을 합니다.
이후 어떤조건이 갖춰지면 '특정행위1'을 시도하는데,
만약 매크로중 이전에 '특정행위1'을 한지 '일정시간'이 지나지 않았다면 분기로 빠져나갑니다.
하지만, 매크로 실행이후 첫번째로 '특정행위1'을 시도한다면 시간에 관계없이 무조건 실행합니다.
제 구상은
'스톱워치1'을 이용해서
시작서브에 연산문으로 '스톱워치1'의 숫자를 '일정시간'보다 크게 잡아줍니다
'특정행위1'의 실행 스크립트에 '스톱워치1'의 리셋과 시작을 넣어줍니다.
헌데 구상대로 짠 뒤에 실행해보니 뜻대로 되지 않고 확인결과 시작서브의 연산에서 '스톱워치1'의 값을 변화시키지 못하네요.
스톱워치의 값은 연산으로 변경할수 없는건가요?
이것저것 판단문넣고 하면 짤 수는 있겠는데, 생각만큼 깔끔하게 못만들겠네요.
도움 부탁드립니다.
스톱워치를 통해 특정행위1 시행 간격간의 '일정시간'경과 판단을 하는 구조에서
매크로 시작 후 최초 0초~일정시간 사이에서 아직 '일정시간'에 도달하지는 않았지만 특정행위1을 시행하는 분기 판단을 스톱워치1의 값을 기준으로 판단하고 싶으신게 맞으시다면 스톱워치1을 리셋시키지 않는 방향으로 가시는게 좋을 것 같습니다.
[시간저장값]을 하나 만드셔서 최초실행시(시작서브에서)
"0=[시간저장값]", 특정행위1 시행시 시행완료후 "스톱워치1=[시간저장값]"으로 처리하신다면 아마 기준판단문은
"[시간저장값]+일정시간<스톱워치1"
이 되고 참이면 특정행위1을 시행, 아직 참이 아니면 분기로 빠져나갈텐데요.
그럼 [시간저장값]이 0일때 일정시간의 값에 관계없이 저 판단문에서 참분기를 하기만 하면 의도하신것과 같은 구조가 나올것 같습니다. 가장 단순하게 하실거라면
[시간저장값]+(일정시간*([시간저장값]/[시간저장값]))<스톱워치1로 하시면
저 시간저장값/시간저장값부분은 시간저장값이 0일때를 제외하고는 전부 1의 값이 나오기 때문에 위의 기준판단문과 동일한 값이 되고, 0일 경우엔 좌변값이 전부 0이 되어서 스톱워치1의 값이 1이상일땐 무조껀 참분기할거에욥.
사실 연산문을 이용해서 최초시행인지를 판단한다는게 재밌는 구상이신거 같아서 구색을 맞춰보았는데요,
간단하게 하실거면 그냥 리셋방식 유지하시고 [스톱워치1]=[스톱워치2] 등을 판단하시면 될것 같습니다. 스톱워치1을 값을 초기화시키 전까지는 둘의 값이 같을거기 때문에 참분기, 특정행위1시행후 리셋시켰을땐 같지 않을 것이므로 =의 거짓분기 후에 [일정시간]<[스톱워치1]만 판단하시면 제일 간단할것같애욥!