강좌요청

리더보드 계급표시 오류

작성자
지누누
작성일
2021-03-21 00:07
조회
783

리더보드는 leaderstats가 옳은 폴더가 아니라고 뜹니다

print("Touch Script")

local part = script.Parent

local function onTouched(hit)

local player = game.Players:GetPlayerFromCharacter(hit.Parent)

if player then

print ("Touched")

local score = player.leaderstats.score.Value + 10

player.leaderstats.score.Value = score

if score >= 150 and score <200 then

player.leaderstats.Level.Value = "시민"

elseif score >= 200 and score <250 then

player.leaderstats.Level.Value = "병사"

elseif score >= 250 then

player.leaderstats.Level.Value = "장군"

end

end

end

part.Touched:Connect(onTouched)

어떤문제가 있는걸까요

 

이건 리더 스텟에있는 스크립트입니다

print("Leader Board")

local function playerJoin (player)

 

 

local leaderstats = Instance.new("Folder")

leaderstats.Name = "leaderstats"

leaderstats.Parent = player

 

local score = Instance.new("IntValue")

score.Name = "Score"

score.Value = 0

score.Parent = leaderstats

local level = Instance.new("StringValue")

level.Name = "Level"

level.Value = "백수"

level.Parent = leaderstats

 

 

 

end

game.Players.PlayerAdded:Connect(playerJoin)

전체 1

  • 2021-03-21 00:30

    score.Name = "Score" <-- 이 "Score" 라는 이름이 나중에 점수에 접근할 때 사용되는데
    여기서는 대문자 "Score" 로 만들어서 리더보드에 생성했고,

    Part에서 부딪힐 때는 소문자로 불러와서..
    local score = player.leaderstats.score.Value
    이 score라는게 없는 걸로 나오네요..

    리더스텟 스크립트에서
    score.Name = "Score" 를
    score.Name = "score" 로 바꿔서 한번 테스트 해보세요.
    (반대로 파트스크립트를 모두 Score로 바꿔도 되지만.)

    중요한 것은
    Lua는 대소문자를 다르게 인식해요.
    이런 버그는 앞으로도 정말 자주 실수하게 되서, 뭔가 안된다 싶으면 대소문자를 한번씩 꼭 확인해보세요