리더보드 계급표시 오류
리더보드는 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)
score.Name = "Score" <-- 이 "Score" 라는 이름이 나중에 점수에 접근할 때 사용되는데
여기서는 대문자 "Score" 로 만들어서 리더보드에 생성했고,
Part에서 부딪힐 때는 소문자로 불러와서..
local score = player.leaderstats.score.Value
이 score라는게 없는 걸로 나오네요..
리더스텟 스크립트에서
score.Name = "Score" 를
score.Name = "score" 로 바꿔서 한번 테스트 해보세요.
(반대로 파트스크립트를 모두 Score로 바꿔도 되지만.)
중요한 것은
Lua는 대소문자를 다르게 인식해요.
이런 버그는 앞으로도 정말 자주 실수하게 되서, 뭔가 안된다 싶으면 대소문자를 한번씩 꼭 확인해보세요