local dataStoreService = game:GetService("DataStoreService")
local dataStore = dataStoreService:GetDataStore("TimeFirstJoined#1")
local dataStore2 = dataStoreService:GetDataStore("JoinedOnAnniversary#1") -- number indicates which anniversary
local dataStore3 = dataStoreService:GetDataStore("JoinedOnAnniversary#2") -- number indicates which anniversary
local tagsTable = {}
local tags = game.ReplicatedStorage.Tags
local nameTag = tags.NameTag
local title = tags.TItle
local owner = tags.Owner
local anniversary = tags.Anniversary
local anniversary2 = tags.Anniversary2
local function addTag(object, plr, renameString)
local char = plr.Character or plr.CharacterAdded:Wait()
if char then
local head = char:WaitForChild("Head")
if head then
local newTag = object:Clone()
newTag.Parent = head
if renameString then
local text = newTag:FindFirstChildOfClass("TextLabel")
text.Text = renameString
elseif renameString == nil then
--nothing happens
end
end
end
end
local function findTag(tagName, plr)
local char = plr.Character or plr.CharacterAdded:Wait()
if char then
local head = char:WaitForChild("Head")
if head then
return head:WaitForChild(tagName)
end
end
end
local function adjustTags(originalTag, plr)
local tagToAdd = findTag(originalTag.Name, plr)
local tab = tagsTable[plr]
table.insert(tab, tagToAdd)
local count = 0
for _, object in pairs(tab) do
count = count + 1
local ypos = 3.15 + ((count - 1) * 0.5)
object.StudsOffset = Vector3.new(0, ypos, 0)
end
end
game.Players.PlayerAdded:Connect(function(plr)
tagsTable[plr] = {}
addTag(nameTag, plr, plr.Name)
if plr.UserId == 1003594243 then
addTag(owner, plr)
adjustTags(owner, plr)
end
-----------
local data = dataStore:GetAsync(plr.UserId)
local START = os.time {year = 2020; month = 6; day = 20}
if not data then
dataStore:SetAsync(plr.UserId, os.time())
wait(1)
data = dataStore:GetAsync(plr.UserId)
if data <= START then
print(plr.Name.." joined before Summer 2020")
addTag(title, plr)
adjustTags(title, plr)
end
elseif data then
if data <= START then
print(plr.Name.." joined before Summer 2020")
addTag(title, plr)
adjustTags(title, plr)
end
end
-----------
local secondData = nil
secondData = dataStore2:GetAsync(plr.UserId)
local dayNeededStart = os.time {year = 2020; month = 8; day = 14; hour = 1}
local dayNeededEnd = os.time {year = 2020; month = 8; day = 14; hour = 24}
local currentTime = os.time()
if (currentTime >= dayNeededStart) and (currentTime <= dayNeededEnd) then
if secondData == nil then
dataStore2:SetAsync(plr.UserId, os.time())
addTag(anniversary, plr)
adjustTags(anniversary, plr)
end
end
if secondData ~= nil then
addTag(anniversary, plr)
adjustTags(anniversary, plr)
elseif secondData == nil then
warn("SOMETHING WENT WRONG")
end
-----------
local thirdData = nil
thirdData = dataStore3:GetAsync(plr.UserId)
local dayNeededStart1 = os.time {year = 2021; month = 8; day = 14; hour = 1}
local dayNeededEnd1 = os.time {year = 2021; month = 8; day = 14; hour = 24}
local currentTime1 = os.time()
if (currentTime1 >= dayNeededStart1) and (currentTime1 <= dayNeededEnd1) then
if secondData == nil then
dataStore3:SetAsync(plr.UserId, os.time())
addTag(anniversary2, plr)
adjustTags(anniversary2, plr)
end
end
if thirdData ~= nil then
addTag(anniversary2, plr)
adjustTags(anniversary2, plr)
elseif thirdData == nil then
warn("SOMETHING WENT WRONG")
end
end)
This is my script and it is very long, so I was wondering how I could shorten it, or make it cleaner, or more efficient.
So should it be
- More clean
- More efficient
- Both
0 voters
Also, how good is it?
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
0 voters
Thanks!