더북(TheBook)

12 CharacterSetting에 아래와 같은 코드를 입력합니다.

 

코드 | 파일명: CharacterSetting.lua

local playerID = script.Parent    --playerID 변수에 플레이어 캐릭터 담기
--hum 변수에 플레이어의 차일드(child) 중 "Humanoid" 속성 담기
local hum = playerID:FindFirstChildWhichIsA("Humanoid")    

--lavaDamage 함수 선언, lavaDamage는 캐릭터가 용암 지형을 밟으면 조금씩 피해를 입힘
function lavaDamage(character)   
 
        --if문 선언, 조건은 캐릭터가 지면을 밟고 있으면 참(true)
        if hum.FloorMaterial .. nil then 
            local condition = true    --condition 변수에 참(true) 값 담기

            while condition do        --condition 변수의 값이 참이면 while문 실행
                --if문 선언, 캐릭터가 밟고 있는 지면의 이름이 "Crackedlava"와 같으면 참
                if hum.FloorMaterial.Name == "CrackedLava" then      
                    hum.Health =  hum.Health - 1   --플레이어의 체력에 1씩 피해를 입힘
                    wait(1)             --1초 기다리기
                else                    --if문의 조건과 다른 상황일때 아래 코드 실행
                    condition = false   --condition 변수에 거짓(false) 입력
                end
            end
        end
end

function springHeal(character)    --springHeal 함수 선언, 캐릭터가 샘물에 들어가면 체력이 1씩 회복
    hum.Health = hum.Health + 1   --캐릭터가 샘물에 들어가면 체력이 1씩 회복
end

hum.Running:Connect(lavaDamage)   --캐릭터가 이동(Running)하면 lavaDamage 실행
hum.Swimming:Connect(springHeal)  --캐릭터가 수영(Swimming)하면 SpringHeal 실행

잠깐만요


nil과 ~=의 의미

루아에서 nil을 간략하게 설명하면 아무 것도 없는 상태를 나타내고, ‘같다(Equal)’라는 의미의 연산자는 ==입니다. 이와 반대로 ~=은 ‘같지 않다(Not Equal)’라는 의미입니다.

신간 소식 구독하기
뉴스레터에 가입하시고 이메일로 신간 소식을 받아 보세요.