Fakat kodda şöyle bir hata çıkacak bir takım 5 kişi olmadan diğerine kişi gönderilmeyecek.
Bunu da şöyle çözebilirsin.
Kod:local function team() local blueTeamPlayerCount = #blueTeam:GetPlayers() local redTeamPlayerCount = #redTeam:GetPlayers() local teamreturn = 0 if teamreturn == 0 then. if blueTeamPlayerCount < 6 then. player.Team = blueTeam. teamreturn = 1 end. elseif teamreturn == 1 then. if redTeamPlayerCount < 6 then. player.Team = redTeam. teamreturn = 0 end. end. updateTeamCounts() end
local Teams = game:GetService("Teams")
local function GetPlayerTeam(player)
local blueTeam = Teams:FindFirstChild("Blue")
local redTeam = Teams:FindFirstChild("Red")
local function updateTeamCounts()
local blueTeamPlayerCount = #blueTeam:GetPlayers()
local redTeamPlayerCount = #redTeam:GetPlayers()
end
local function team()
local blueTeamPlayerCount = #blueTeam:GetPlayers()
local redTeamPlayerCount = #redTeam:GetPlayers()
local teamreturn = 0
if teamreturn == 0 then
if blueTeamPlayerCount < 6 then
player.Team = blueTeam
teamreturn = 1
end
elseif teamreturn == 1 then
if redTeamPlayerCount < 6 then
player.Team = redTeam
teamreturn = 0
end
end
updateTeamCounts()
end
local getPlayerTeam = GetPlayerTeam(player)
getPlayerTeam()
Aynı scripte funciton team() yerine yazın.
Yani kod şu şekilde olacak.
Kod:local Teams = game:GetService("Teams") local function GetPlayerTeam(player) local blueTeam = Teams:FindFirstChild("Blue") local redTeam = Teams:FindFirstChild("Red") local function updateTeamCounts() local blueTeamPlayerCount = #blueTeam:GetPlayers() local redTeamPlayerCount = #redTeam:GetPlayers() end. local function team() local blueTeamPlayerCount = #blueTeam:GetPlayers() local redTeamPlayerCount = #redTeam:GetPlayers() local teamreturn = 0 if teamreturn == 0 then. if blueTeamPlayerCount < 6 then. player.Team = blueTeam. teamreturn = 1 end. elseif teamreturn == 1 then. if redTeamPlayerCount < 6 then. player.Team = redTeam. teamreturn = 0 end. end. updateTeamCounts() end. local getPlayerTeam = GetPlayerTeam(player) getPlayerTeam()
Aynı scripte funciton team() yerine yazın.
Yani kod şu şekilde olacak.
Kod:local Teams = game:GetService("Teams") local function GetPlayerTeam(player) local blueTeam = Teams:FindFirstChild("Blue") local redTeam = Teams:FindFirstChild("Red") local function updateTeamCounts() local blueTeamPlayerCount = #blueTeam:GetPlayers() local redTeamPlayerCount = #redTeam:GetPlayers() end. local function team() local blueTeamPlayerCount = #blueTeam:GetPlayers() local redTeamPlayerCount = #redTeam:GetPlayers() local teamreturn = 0 if teamreturn == 0 then. if blueTeamPlayerCount < 6 then. player.Team = blueTeam. teamreturn = 1 end. elseif teamreturn == 1 then. if redTeamPlayerCount < 6 then. player.Team = redTeam. teamreturn = 0 end. end. updateTeamCounts() end. local getPlayerTeam = GetPlayerTeam(player) getPlayerTeam()
Tabiki calismaz hem sizin sisteminizin nasil calistigini bilmiyoruz hemde gonderilen kodda "Player" hic bir yerde fonksiyona iletilmemis veya belirlenmemis.Hocam sağ olunda çalışmadı ya.
Tabii ki calismaz hem sizin sisteminizin nasıl calistigini bilmiyoruz hem de gonderilen kodda "Player" hiçbir yerde fonksiyona iletilmemis veya belirlenmemis.
Hocam arkadaşım bir gelmedi ki deniyemedim AFK galiba oyun başliyince bir hesabın girmesi lazım oyuna.
Hocam sağ olunda çalışmadı ya.
game.players.playeradded:Connect(function()
local getPlayerTeam = GetPlayerTeam(player)
getPlayerTeam()
end)
Fonksiyona verilecek ilk parametreye "player" demissiniz. Bu kadar. Fonksiyonu ateslerken olmayan bir degisken vermissiniz, player belirtilmemis. Direkt hata verir o yuzden.Dikkat ederseniz 2. satırda parentez içinde belirtilmiş durumda
Fonksiyona verilecek ilk parametreye "Player" demissiniz. Bu kadar. Fonksiyonu ateslerken olmayan bir degisken vermissiniz, Player belirtilmemis. Direkt hata verir o yuzden.
Fonksiyonda dogru sayida "end" bile yok. ChatGPT'den falan mi attiniz?
Eki Görüntüle 1876567
Tabii ki calismaz hem sizin sisteminizin nasıl calistigini bilmiyoruz hem de gonderilen kodda "Player" hiçbir yerde fonksiyona iletilmemis veya belirlenmemis.
Oyunun linkini degilde yazdiginiz kodu atar misiniz? TDM icin yazdiginizi.Hocam isterseniz bir oyunun linkini vereyim ama öncelik özetle teamdeathmatch'i tekrar deneyeceğim ve çalışırsa sistemi şöyle: Öncelikle oyuncular Lobby'de spawnlanıyor. 2 kişi olunca rastgale bir map seçiyor ve oyun başlıyor 3dakika maç yapılıyor 3 dakikanın sonunda ya 30 kill alan takım ya da en çok killi alan takım kazanıyor. Ve böyle oyun yapma konusunda yeniyim hatam varsa kusura bakmayın.
Oyunun linkini degilde yazdiginiz kodu atar misiniz? TDM icin yazdiginizi.
local dss = game:GetService("DataStoreService")
local cashDataStore = dss:GetDataStore("CASH DATA STORE")
function saveData(plr)
if not plr:FindFirstChild("FAILED TO LOAD DATA") then
local cash = plr.leaderstats.Cash.Value
local success, err
while not success do
if err then
warn(err)
end
success, err = pcall(function()
cashDataStore:SetAsync(plr.UserId .. "-Cash", cash)
end)
task.wait(0.5)
end
end
end
game.Players.PlayerRemoving:Connect(saveData)
game:BindToClose(function()
for i, plr in pairs(game.Players:GetPlayers()) do
saveData(plr)
end
end)
game.Players.PlayerAdded:Connect(function(plr)
local ls = Instance.new("Folder")
ls.Name = "leaderstats"
ls.Parent = plr
local KillValue = Instance.new("IntValue")
KillValue.Name = "Kill"
KillValue.Parent = ls
local success, data = pcall(function()
return cashDataStore:GetAsync(plr.UserId .. "-Kill")
end)
if success then
local KillData = data or 0
KillValue.Value = KillData
print("Data successfully loaded for " .. plr.Name)
else
warn("Data not loaded for " .. plr.Name)
local failedToLoad = Instance.new("StringValue")
failedToLoad.Name = "FAILED TO LOAD DATA"
failedToLoad.Parent = plr
end
end)
local rs = game.ReplicatedStorage:WaitForChild("TeamDeathmatchReplicatedStorage")
local maps = rs:WaitForChild("Maps")
local weapons = rs:WaitForChild("Weapons")
local config = require(rs:WaitForChild("CONFIGURATION"))
local statusValue = Instance.new("StringValue")
statusValue.Name = "STATUS"
statusValue.Parent = rs
function rewardWinner(team)
statusValue.Value = "Team " .. team.Name .. " wins!"
for i, plr in pairs(team:GetPlayers()) do
plr.leaderstats.Cash.Value += config.WinReward
end
end
while true do
while true do
local numChars = 0
for i, plr in pairs(game.Players:GetPlayers()) do
if plr.Character and plr.Character.Humanoid.Health > 0 then
numChars += 1
end
end
if numChars >= config.MinimumPlayersRequired then
break
end
statusValue.Value = "Waiting for " .. (config.MinimumPlayersRequired - numChars) .. " more player" .. (config.MinimumPlayersRequired - numChars ~= 1 and "s." or ".")
task.wait(1)
end
statusValue.Value = "Intermission.."
task.wait(config.IntermissionTime)
local team1 = config.Team1
local team2 = config.Team2
local mapChosen = maps:GetChildren()[Random.new():NextInteger(1, #maps:GetChildren())]:Clone()
mapChosen.Parent = workspace
statusValue.Value = "Now playing " .. mapChosen.Name
task.wait(config.MapWaitTime)
local teamKillsFolder = Instance.new("Folder")
teamKillsFolder.Name = "TEAM KILLS"
teamKillsFolder.Parent = rs
local team1Kills = Instance.new("IntValue")
team1Kills.Name = "TEAM 1"
team1Kills.Parent = teamKillsFolder
local team2Kills = Instance.new("IntValue")
team2Kills.Name = "TEAM 2"
team2Kills.Parent = teamKillsFolder
for i, plr in pairs(game.Players:GetPlayers()) do
local char = plr.Character
if char and char.Humanoid.Health > 0 then
if i % 2 == 1 then
plr.Team = team1
char.HumanoidRootPart.CFrame = mapChosen.Spawns.Team1Spawn.CFrame
for i, weapon in pairs(weapons.Team1Weapons:GetChildren()) do
weapon:Clone().Parent = plr.Backpack
end
else
plr.Team = team2
char.HumanoidRootPart.CFrame = mapChosen.Spawns.Team2Spawn.CFrame
for i, weapon in pairs(weapons.Team2Weapons:GetChildren()) do
weapon:Clone().Parent = plr.Backpack
end
end
local connection1 = char.Humanoid.Died:Connect(function()
if plr.Team == team1 then
team2Kills.Value += 1
elseif plr.Team == team2 then
team1Kills.Value += 1
end
end)
local connection3 = nil
local connection2 = plr.CharacterAdded:Connect(function(newChar)
local hum = newChar:WaitForChild("Humanoid")
if plr.Team == team1 then
for i, weapon in pairs(weapons.Team1Weapons:GetChildren()) do
weapon:Clone().Parent = plr.Backpack
end
newChar.HumanoidRootPart:GetPropertyChangedSignal("CFrame"):Wait()
newChar.HumanoidRootPart.CFrame = mapChosen.Spawns.Team1Spawn.CFrame
elseif plr.Team == team2 then
for i, weapon in pairs(weapons.Team2Weapons:GetChildren()) do
weapon:Clone().Parent = plr.Backpack
end
newChar.HumanoidRootPart:GetPropertyChangedSignal("CFrame"):Wait()
newChar.HumanoidRootPart.CFrame = mapChosen.Spawns.Team2Spawn.CFrame
end
connection3 = hum.Died:Connect(function()
if plr.Team == team1 then
team2Kills.Value += 1
elseif plr.Team == team2 then
team1Kills.Value += 1
end
end)
end)
teamKillsFolder.Destroying:Connect(function()
connection1:Disconnect()
connection2:Disconnect()
connection3:Disconnect()
end)
end
end
local gameStart = tick()
while true do
local now = tick()
local timeLeft = config.RoundTime - math.round(now - gameStart)
local mins = math.floor(timeLeft / 60)
local secs = timeLeft - (mins * 60)
if string.len(secs) < 2 then
secs = "0" .. tostring(secs)
end
statusValue.Value = mins .. ":" .. secs
if timeLeft <= 0 or #team1:GetPlayers() < 1 or #team2:GetPlayers() < 1 then
if team1Kills.Value > team2Kills.Value then
rewardWinner(team1)
elseif team2Kills.Value > team1Kills.Value then
rewardWinner(team2)
else
statusValue.Value = "Draw!"
end
break
elseif config.StopOnceKillsReached then
if team1Kills.Value >= config.KillsRequiredToStop then
rewardWinner(team1)
break
elseif team2Kills.Value >= config.KillsRequiredToStop then
rewardWinner(team2)
break
end
end
game:GetService("RunService").Heartbeat:Wait()
end
for i, plr in pairs(game.Players:GetPlayers()) do
plr.Team = nil
plr:LoadCharacter()
end
mapChosen:Destroy()
teamKillsFolder:Destroy()
task.wait(config.RoundFinishedTime)
end
2. kod :Oyunun linkini degilde yazdiginiz kodu atar misiniz? TDM icin yazdiginizi.
local config = {}
config.IntermissionTime = 5
config.MapWaitTime = 3
config.RoundTime = 180
config.RoundFinishedTime = 3
config.StopOnceKillsReached = true
config.KillsRequiredToStop = 30
config.MinimumPlayersRequired = 2
config.WinReward = 1
config.Team1 = game:GetService("Teams"):WaitForChild("Red")
config.Team2 = game:GetService("Teams"):WaitForChild("Blue")
return config
local Teams = game:GetService("Teams")
local blueTeam = Instance.new("Team")
blueTeam.Name = "Blue"
blueTeam.Parent = Teams
blueTeam.TeamColor = BrickColor.new("Bright blue")
local Teams = game:GetService("Teams")
game.Players.PlayerAdded:Connect(function(player)
local function GetPlayerTeam(player)
local blueTeam = Teams:FindFirstChild("Blue")
local redTeam = Teams:FindFirstChild("Red")
local function updateTeamCounts()
local blueTeamPlayerCount = #blueTeam:GetPlayers()
local redTeamPlayerCount = #redTeam:GetPlayers()
end
local function team()
local blueTeamPlayerCount = #blueTeam:GetPlayers()
local redTeamPlayerCount = #redTeam:GetPlayers()
if blueTeamPlayerCount == 0 then
player.Team = blueTeam
elseif redTeamPlayerCount == 0 then
player.Team = redTeam
end
updateTeamCounts()
end
return team
end
local getPlayerTeam = GetPlayerTeam(player)
getPlayerTeam()
end)
Player in belirtilmesine gerek yoktur fark ederseniz ki adamda (plr) yazmış fakat plr yi tanımlamamış fakat kodunda bunla ilgili bir hata yok isterseniz sizde basit bir kod ile deneyebilirsiniz örneğinFonksiyona verilecek ilk parametreye "player" demissiniz. Bu kadar. Fonksiyonu ateslerken olmayan bir degisken vermissiniz, player belirtilmemis. Direkt hata verir o yuzden.
Fonksiyonda dogru sayida "end" bile yok. ChatGPT den falan mi attiniz?
Eki Görüntüle 1876567
game.Players.PlayerAdded:Connect(function(player)
print(player.Name)
end)