Built-in

디토랜드에서 지원하는 루아 기능이에요.

함수

void print(string Text)

로그창에 메시지를 출력해요. (출력할 내용)

-- 샘플 --

--문자열(메시지)을 로그창에 출력해요.
print("Hello World!")

--.. 을 이용해서 각각의 문자열을 합쳐서 메시지를 로그창에 출력해요.
print("Hello " .. "Dito" .. "Land!")

--숫자나 bool 등의 자료형도 출력할 수 있어요.
print(1)
print(1.5)
print(false)
print(Vector.new(50, 0, 5))
print(Color.new(255, 255, 255, 255))

--실수는 math.floor로 정수로 변환해서 출력할 수 있어요.
print(math.floor(6.529))

--변수에 저장한 값도 출력할 수 있어요.
local SomeNumber = 5
local FloorTransform = Workspace.Floor.Transform
print(SomeNumber)
print(FloorTransform)

--쉼표를 이용해서 여러 값을 출력할 수 있어요.
print(1, " / ", 50.2, " / ", "Hello", " / ", true, " / ", Vector.new(50, 0, 10))

void Log(string Text)

로그창에 일반 메시지를 출력해요. (출력할 내용)

-- 샘플 --

Log("Log")

void LogWarning(string Text)

로그창에 워닝 메시지를 출력해요. (출력할 내용)

-- 샘플 --

LogWarning("Warning")

void LogError(string Text)

로그창에 에러 메시지를 출력해요. (출력할 내용)

-- 샘플 --

LogError("Error")

number time()

게임의 경과 시간을 얻을 수 있어요.

-- 샘플 --

local startTime = time()

print("wait 3s")
wait(3)

local passTime = time() - startTime
print(passTime)

number ostime()

OS 시간을 얻을 수 있어요. 1970년 1월 1일 0시 0분 0초를 기점으로 현재까지 흐른 시간을 초단위로 돌려줍니다.

-- 샘플 --

local getTime = ostime()
print(getTime)

DateTime nowtime()

현재 시간을 얻을 수 있어요.

-- 샘플 --

local getTime = nowtime()
print(getTime)

DateTime ToDateTime()

OsTime으로 부터 DateTime를 얻어 올 수 있어요.

-- 샘플 --

local getOsTime = ostime()
local Date = ToDateTime(getOsTime)

number ToOsTime()

Date으로 부터 OsTime를 얻어 올 수 있어요.

-- 샘플 --

local getDate = nowtime()
local getOsTime = ToOsTime(getDate)

number GetDayOfYear()

Date으로 부터 올해 기준 경과일을 얻어 올 수 있어요.

-- 샘플 --

local getDate = nowtime()
local DayOfYear = GetDayOfYear(getDate)

number GetWeekOfYear()

Date으로 부터 올해 기준 주차를 얻어 올 수 있어요.

-- 샘플 --

local getDate = nowtime()
local WeekOfYear = GetWeekOfYear(getDate)

number GetNumberOfWeek()

Date으로 부터 이번 주 기준으로 요일 번호 반환을 얻어 올 수 있어요.

-- 샘플 --

local getDate = nowtime()
local NumberOfWeek = GetNumberOfWeek(getDate)

bool IsChangedYear()

비교하는 Date가 다음 해인지 얻어 올 수 있어요.

-- 샘플 --

local T1 = DateTime.new(2022, 12, 31, 11, 20, 34)
local T2 = DateTime.new(2023, 01, 01, 11, 20, 34)
local ChangedYear = IsChangedYear(T1,T2)

bool IsChangedMonth()

비교하는 Date가 다음 월인지 얻어 올 수 있어요.

-- 샘플 --

local T1 = DateTime.new(2022, 12, 31, 11, 20, 34)
local T2 = DateTime.new(2023, 01, 01, 11, 20, 34)
local ChangedMonth = IsChangedMonth(T1,T2)

bool IsChangedDay()

비교하는 Date가 다음 날인지 얻어 올 수 있어요.

-- 샘플 --

local T1 = DateTime.new(2022, 12, 31, 11, 20, 34)
local T2 = DateTime.new(2023, 01, 01, 11, 20, 34)
local ChangedDay = IsChangedDay(T1,T2)

bool IsChangedWeek()

비교하는 Date가 다음 주인지 얻어 올 수 있어요.

-- 샘플 --

local T1 = DateTime.new(2022, 12, 31, 11, 20, 34)
local T2 = DateTime.new(2023, 01, 01, 11, 20, 34)
local ChangedWeek = IsChangedWeek(T1,T2)

number GetCompareYear()

두 날짜의 차이 년을 얻을 수 있어요.

-- 샘플 --

local T1 = DateTime.new(2022, 12, 31, 11, 20, 34)
local T2 = DateTime.new(2023, 01, 01, 11, 20, 34)
local CompareYear = GetCompareYear(T1,T2)

number GetCompareMonth()

두 날짜의 차이 달을 얻을 수 있어요.

-- 샘플 --

local T1 = DateTime.new(2022, 12, 31, 11, 20, 34)
local T2 = DateTime.new(2023, 01, 01, 11, 20, 34)
local CompareMonth = GetCompareMonth(T1,T2)

number GetCompareDay()

두 날짜의 차이 일을 얻을 수 있어요.

-- 샘플 --

local T1 = DateTime.new(2022, 12, 31, 11, 20, 34)
local T2 = DateTime.new(2023, 01, 01, 11, 20, 34)
local CompareDay = GetCompareDay(T1,T2)

number GetCompareHour()

두 날짜의 차이 시간을 얻을 수 있어요.

-- 샘플 --

local T1 = DateTime.new(2022, 12, 31, 11, 20, 34)
local T2 = DateTime.new(2023, 01, 01, 11, 20, 34)
local CompareHour = GetCompareHour(T1,T2)

number GetCompareMinute()

두 날짜의 차이 분을 얻을 수 있어요.

-- 샘플 --

local T1 = DateTime.new(2022, 12, 31, 11, 20, 34)
local T2 = DateTime.new(2023, 01, 01, 11, 20, 34)
local CompareMinute = GetCompareMinute(T1,T2)

number GetCompareSec()

두 날짜의 차이 초를 얻을 수 있어요.

-- 샘플 --

local T1 = DateTime.new(2022, 12, 31, 11, 20, 34)
local T2 = DateTime.new(2023, 01, 01, 11, 20, 34)
local CompareSec = GetCompareSec(T1,T2)

ModuleObject require(ObjectScript ModuleScript)

모듈 기능을 사용할 수 있게 로드해요. (모듈스크립트) (스크립트 처음 부분에서 한번만 작성하는 것을 권장합니다.)

-- 샘플 --

local Utility = require(ScriptModule.DefaultModules.Utility)

void assert(bool condition)

condition 값이 false이면 에러를 출력해요. (조건 값)

-- 샘플 --

local MakeError = false

print("a")
assert(MakeError) --인자가 true가 아니면 에러를 출력하고, 다음 줄을 처리해요.
assert(MakeError, "Some Error!!") --두번째 인자에 에러시 출력할 내용을 넣을 수 있어요.
print("b")

void wait(number Time)

지정한 시간만큼 기다려요. (대기시간)

-- 샘플 --

print("wait 3s")
wait(3)
print("end wait!")

void waitbool(function TargetFunction)

함수의 반환값이 true가 될때까지 함수를 계속 호출해요. (호출할 함수)

-- 샘플 --

local hour = 1
local function IsMorning()
    if hour < 20 then
        print("It's Morning!")
        hour = hour + 1
        return false
    else
        print("It's Night!")
        return true
    end
end
waitbool(IsMorning) --함수의 반환값이 true가 될때까지 함수를 계속 호출해요

void waitfunction(function TargetFunction)

함수를 호출한 뒤,함수가 종료될 때까지 기다려요. (호출할 함수)

-- 샘플 --

print("Call WaitMessage Function")

local function WaitMessage()
    print("wait 3s")
    wait(3)
    print("Hello DitoLand!")
end
waitfunction(WaitMessage) --함수를 호출한 뒤, 함수가 종료될 때까지 기다려요

print("End WaitMessage Function")

coroutine create(function TargetFunction)

코루틴을 생성해요.

-- 샘플 --

local co = coroutine.create(function()
    print("Hello!")
end)

void resume(coroutine coroutine)

코루틴을 실행해요.

-- 샘플 --

local co = coroutine.create(function()
    print("Hello!")
end)
coroutine.resume(co)

void yield()

실행중인 코루틴을 일시정지해요. (코루틴 안에서 사용해야 해요.)

-- 샘플 --

local co = coroutine.create(function()
    for i = 1, 3 do
        print("num : " .. i)
        coroutine.yield()
    end
end)
coroutine.resume(co) -- num : 1
coroutine.resume(co) -- num : 2
coroutine.resume(co) -- num : 3

void wrap(function TargetFunction)

함수처럼 바로 호출할 수 있는 코루틴을 생성해요.

-- 샘플 --

local co = coroutine.wrap(function()
    print("Hello!")
end)
co()

string status(coroutine coroutine)

코루틴의 상태를 반환해요.

-- 샘플 --

local co = coroutine.create(function()
    print("Hello!")
end)
print(coroutine.status(co)) -- suspend
coroutine.resume(co)
print(coroutine.status(co)) -- dead

Last updated

Was this helpful?