2017-11-27 7 views
-1

나는 코딩에 신참이다. 나는 내 취미를위한 기본적인 루아 스크립팅을 배우고 싶다. 루아 스크립트 작업 후 모든 구문 오류없이 것 같다하지만 난 내가이 기본 기능으로 고장, 이해하지 않는 한 문제에 걸쳐 온 :기본 Lua writeInteger 함수에 붙어있다.

{$lua} 
ID1 = "10" 
ID2 = "0" 

if (ID1 ~= nil and ID1 == "10") then 
    writeInteger(ID2,"25") 
    end 

print(ID2) 

문제가 있다는 것입니다 writeInteger가 전혀 작동하지 않는 것처럼 보이지만 ID2는 "0"값을 유지하는 반면 "25"값을 유지해야합니다. 도움을 주시면 대단히 감사하겠습니다.

+0

아무도 writeInteger가 어떻게해야되는 것을 알고 자세한 내용은 여기를 참조하십시오, 무엇을 인수 당신이 정성 들여 마음시겠습니까 –

+0

등 기대? 나는 그것에 대해 전혀 알지 못합니다. – GonthorianDX

+0

Lua 스크립트는 어디에 실행하고 있습니까? 루아를 게임에 임베드했는지, 루아를 사용하는 마이크로 컨트롤러 중 하나, 독립형 루아 스크립트를 사용하는 것, 또는 다른 것인가? writeInteger 함수의 출처 등을 알아 내기 위해 더 자세한 정보가 필요합니다. –

답변

0

이것은 유효한 Lua가 아니거나 최소한 유효한 바닐라 (기본) Lua가 아니며 다른 것을 지정하지 않았으므로 도움을 줄 수있는 방법이 많지 않습니다. writeInteger이 유효한 함수라고 가정합니다 (인터프리터가 nil 값 호출에 대해 불평하지 않기 때문에). 그러나 예상대로 작동하지 않는다고 생각합니다. 당신이 25ID2 변수를 설정하려면

, 단순히 쓰기 :

ID2 = 25 

루아가 자동으로 정수 형식으로 문자열 형식을 변환합니다. print(type(ID2))을 실행하여이를 확인할 수 있습니다.

치트 엔진을 사용하는 경우 (빠른 Google 검색에서 제안하는 것처럼) writeInteger 함수에는 주소와 값이 필요합니다.

function writeInteger(Address, Value): Boolean - Returns true on success. 

나는 ID2, 루아 변수 경우, 유효한 주소가 확실하지 않다, 그러나 나는 "25"이 정수가 아닌 것을 확신합니다. 당신은 시작 인용 부호를 제거해야하고, 함수는 부울을 반환하기 때문에 함수가 수행하여 성공하면 당신은 볼 수 있습니다

print(writeInteger(ID2, 25)) 
+0

이것은 치트 엔진 스크립트입니다. 예 : ID2는 변경되는 변수이고 특정 번호가되면 지정된 계산을 기반으로 값을 작성해야한다는 것을 의미하는 writeInteger 함수를 트리거해야합니다. writeInteger가 vanilla Lua의 일부가 아니라는 것을 알지 못했습니다. 또한 설명을 기반으로 어딘가에서 값을 호출 할 수 있다고 생각했지만 슬프게도 실제 주소에 쓰는 것만으로 같은 방식으로 해당 값에 다시 쓰는 방법이 있는지 모르겠습니다. – GonthorianDX

0

루아 숫자, 부울 문자열과 같은 기본 유형에 대한 값으로 패스를 사용합니다. 따라서 writeInteger와 같은 함수에 숫자를 전달하면 함수 내에 로컬 복사본이 만들어집니다. 이 함수는이 복사본을 변경할 수 있지만 호출자 (이 경우에는 writeInteger)에는 아무런 영향을 미치지 않습니다. writeInteger가 어떻게 작동해야하는지 모르겠지만 인수를 변경하는 함수를 호출하려면 테이블을 만들고 전달할 수 있습니다. 테이블은 여전히 ​​값으로 전달되지만 테이블의 "값"은 해당 메모리 주소입니다. 따라서 실제 테이블은 참조로 전달되며 함수에 전달하여 테이블의 내용을 변경할 수 있습니다.

Function/variable scope (pass by value or reference?)