공부/Roblox Studio

[로블록스 스튜디오] 로블록스 스튜디오의 언어 Lua에 대한 사항들

굴러다니다니 2023. 10. 5. 17:29
728x90

알아두어야 할 점

  • nil, boolean, number, string, function, table, userdata, thread 자료형
  • != 는 없고 ~= 사용
  • Lua에서 원래는 A += B 이런거 안되는데 로블록스 스튜디오에서는 가능
  • 인덱스가 1부터 시작
  • thread가 coroutine 역할
  • 삼항 조건 연산자 없음
  • null 대신 nil 사용
  • 주석은 // 말고 -- 여러줄 쓰려면 --[[내용]]--
  • ! && || 말고 not and or 로
  • private말고 local
  • 함수 선언 local function 함수이름() end
  • 부모는 Parent 자식 접근은 Weld

script.Parent.CanCollide = false

script.Parent.Transparency = 1

 

조건문 사용 방법

while true do
	내용
end

if true then
	내용
end

for count = 1, 10 do
	platform.Transparency = count / 10
    wait(0.1)
end

 

캐릭터의 한 부위라도 닿으면 죽는 코드

local function Kill(otherPart)
    local partParent = otherPart.Parent
    local humanoid = partParent:FindFirstChild("Humanoid")
    if humanoid then
    	humanoid.Health = 0
    end
end

script.Parent.Touched:Connect(Kill) --캐릭터 부위에 닿으면 실행

 

UI로 플레이어의 점수를 출력하며, 1초마다 점수를 연동시키는 함수

local Players = game:GetService("Players")

local function onPlayerAdded(player)
	local leaderstats = Instance.new("Folder") --리더보드에 출력하기 위해 객체를 담아주는 폴더 생성
    leaderstats.Name = "leaderstats"
    leaderstats.Parent = player
    
    local points = Instance.new("IntValue") 
    points.Name = "Points"
    points.value = 0
    points.Parent = leaderstats
end

Players.PlayerAdded:Connect(onPlayerAdded) --게임에 플레이어 입장시 연결

while true do
	wait(1) --플레이어들의 점수 연동 1초마다
    local playerList = Players:GetPlayers()
    for currentPlayer = 1, #playerList do --1부터 플레이어 명수만큼 반복
    	local player = playerList[currentPlayer]
        local points = player.leaderstats.Points
        points.Value = points.Value + 1
end

 

728x90