문서 편집 권한이 없습니다. 다음 이유를 확인해주세요: 요청한 명령은 다음 권한을 가진 사용자에게 제한됩니다: 사용자. 문서의 원본을 보거나 복사할 수 있습니다. =LXVM= ==개요== LXVM 클래스는 피니엔진 에디터 및 런타임에서 루아로 컴파일된 LNX 를 구동시키기 위한 일종의 가상 머신 클래스입니다. 스크립트 불러오기 실행 호출 및, 리턴값 반환 등, 코드 구동에 핵심적인 기능만 포함되어 있습니다. 보통 vm 이라는 인자로 전달되며, pini.XVM 으로도 접근할 수 있습니다. LXVM 에서는 여러개의 콜 스택을 허용하며, 각각의 콜 스택을 "루프" 라고 부릅니다. 따라서, LXVM 에서는 루프를 생성하거나 일시정지하고, 삭제하는 기능 등을 제공합니다. 또한, 저장과 불러오기 기능을 위한 덤프 및 복구 기능도 제공하고, 그것을 위한 구조로 구성되어 있습니다. ==전역 상수== {| class="wikitable" | style="width:100px; background-color:#f0f0f0"|이름 | style="background-color:#f0f0f0"|설명 |- |OnPreview||에디터인지 리모트인지를 알려주는 상수입니다. true 이면 에디터이고, false이면 리모트입니다. |} ==전역 함수== {| class="wikitable" | style="width:100px; background-color:#f0f0f0"|이름 | style="background-color:#f0f0f0"|설명 |- |_VM_LOOP_(fname,fns,stckInfo,new_arg,del_arg,start_i,rets,scall)||LNX 매크로를 실제로 돌려주는 함수입니다. |} ==전역 변수== {| class="wikitable" | style="width:100px; background-color:#f0f0f0"|이름 | style="background-color:#f0f0f0"|설명 |- |_LNXF||LNX 스크립트 및 매크로가 들어있는 테이블입니다. |- |_LNXB||북마크 위치가 들어있는 테이블입니다. |- |_LNXVT||변수 트리거 정보가 들어있는 테이블입니다. |- |_LNXG||변수 정보를 읽고 쓸 수 있게 되어있는 테이블입니다. 일반적인 읽기 쓰기는 이것으로 접근합니다. |- |_LNXGP||변수 정보가 실제로 들어가있는 테이블입니다. 특수한 읽기 쓰기일 경우에만 이것으로 접근합니다. |} ==멤버 변수== {| class="wikitable" | style="width:100px; background-color:#f0f0f0"|이름 | style="background-color:#f0f0f0"|설명 |- |loops||현재 존재하는 모든 루프를 저장하는 테이블의 배열 |- |currentLoop||현재 실행중인 loops 의 테이블을 가르킴 |} ==멤버 함수== {| class="wikitable" | style="width:100px; background-color:#f0f0f0"|이름 | style="background-color:#f0f0f0"|설명 |- |init()||vm 을 초기화하는 함수입니다. 단, 현재 vm 으로 실행중인 코드는 중지하지 않습니다. |- |_return()||현재 실행중인 매크로를 종료합니다. |- |returnValue(ret)||현재 실행중인 매크로가 ret 를 반환하게 합니다. |- |returnValueOnThread(ret,idx)||지정한 idx 루프번호에서 진행중인 매크로가 ret 를 반환하게 합니다. 결과를 반환해야 하지만 즉시 반환하지는 않고, pause 등을 사용해서 결과가 지연될 경우에 사용합니다. |- |ARGU(fname, arg, default)||fname 매크로의 arg 인자를 가져옵니다. 존재하지 않는다면, 기본 값을 가져옵니다. 둘 다 존재하지 않는다면, default 를 반환합니다. |- |currentLoopIdx()||현재 돌고있는 루프의 번호를 가져옵니다. |- |removeLoop(infotable)||infotable에 해당되는 루프를 loops 에서 제거합니다. |- |stop()||현재 루프를 일시정지합니다. 그리고, 루프번호를 반환합니다. |- |resume(idx)||stop 에서 반환받은 번호를 idx 로 전달해 주면, 일시정지를 해제합니다. |- |sleep(time)||지정한 time초 만큼 루프를 일시정지합니다. |- |GotoBookmark(bmk)||지정한 북마크로 이동합니다. |- |GotoBookmarkNewCall(bmk)||지정한 북마크 위치부터 시작하는 새로운 매크로를 호출합니다. |- |resumeAndGoBookmark(idx,bmk)||지정한 idx 루프번호로 현재 루프를 전환한 뒤, 지정한 묵마크로 이동합니다. |- |OpenLNX(file)||지정한 file 을 로드합니다. file 은 .lua 또는 .lnx 파일입니다. 대소문자에 맞게 확장자까지 모두 적어주어야 하며, .lnx 의 경우 실행하지는 않지만, .lua 인 경우, 코드 자체는 한번 실행 합니다. |- |call(stckName, start_i, fcall)||지정한 매크로를 실행하는 새로운 루프를 생성하고 실행합니다. |- |registVariableTrigger(id,varName,func)||변수트리거를 등록합니다. id,varName,func 는 차례대로 아이디, 변수이름, 실행할 함수입니다. |- |unregistVariableTrigger(id)||변수트리거를 등록 해제합니다. |- |getState()||세이브를 위한 상태 덤프용 함수입니다. |- |setState(state, targetStck)||덤프한 데이터를 기반으로 상태를 복구합니다. |} PiniApi:LXVM 문서로 돌아갑니다.