Data Store - Introdução, SALVANDO PROGRESSO do PLAYER! (#1)
HTML-код
- Опубликовано: 28 дек 2024
- Neste vídeo eu ensinei os princípios básicos da Data Store - Algo extremamente importante para os jogos, pois com ela você pode salvar dados do player, e fazer tipo um sistema de dinheiro!!
Venha aprender a utilizar este recurso tão importante! Também existe um artigo na API do Roblox ensinando sobre: developer.robl...
. .
(*) SOCIAL (*)
Meu Discord: Wo RBX# 2303
Meu Servidor do Discord: / discord
Meu Perfil no Roblox: www.roblox.com...
Mano, vídeo já estava bom, ae quando se passou a fita de ficar usando a função toda hora, já me ganhou kk.
Está totalmente certo, passei muito perrengue com isso no passado.
Porque de certo modo um datastore resumidamente tem que carregar os dados do jogador e salvá-los quando o jogador sair da room.
E de resto, a pessoa fica usando os dados ou em [Tables] ou em [Int/String Values] dentro de pastas.
vc aqui? kkkkk
CADE OS VIDEOS HERICK?
Cara vc me salvou mt, eu tava a uns 3 dias tentando descobrir uma forma de colocar os dados no player, eu fiz um monte de gambiarra kkkk. N sabia desse set attribute
é bem fácil de usar, é literalmente uma forma de criar propriedades no objeto :)
Eu criei mais de 128 (isso e real!) E funcionou a última kkkkkk
To tao feliz a unica coisa que eu nao entendi em script foi isso, mas essa é a unica coisa que vou usar so uma vez no jogo
5:30 correção: pcall não precisa de return, mas os getAsync, setAsync e etc precisa, se não nao printa nem salva. demorei 1 ano pra descobrir ;-;
;-;
Que seu canal cresça, Wo
Mano, melhor canal e, disparada que ensina a usar script, espero que muitos vejam seus videos pois do mesmo jeito que me ajudou, também pode ajudar a muitos outros
6:56 acho que o pessoal faz isso para não correr o risco de a função dar errado e o progresso do player não ser salvo, do jeito que você fez
Sò que é desnecessário, aliás é uma prática ruim, pois se ficar tentando salvar muitas vezes seguidas, a Data Store vai começar a falhar (justamente o que quem faz isso não quer)
muito bom o video vi ate o final
Mais um daqueles vídeos gostosos recheados de conhecimento
OI
vlw cara fiquei me matando procurando na api do roblox é finalmente achei
Òtimo 👏👏👏
vc e o cara que mais me ajuda, mt obrigado msm cara
Seu nome é Gustavo igual o meu, que top
Esse tutorial funciona quando uma pessoa troca de time?
É isso que eu queria!
CARA EU TE AMO
Muito Obrigado Mesmo eu tava precisando pro meu jogo
QUE TOP ESSA SKIN DELE GLR
Top
Tem algum módulo que me ajude tipo eu só coloco o nome a leadstats o nome é o ponto se eu diminuo ou somo se alguém tiver me ajudaria muito
aê wo, pra mim não tá criando o atributo, mas tá printando 0, também quando o player desconecta, printa um monte de simbolo parecendo o caminho de uma variavel quando eu printo em outras linguagens. Me ajuda ai, fiz tudo oq a aula mandou fazer
como q eu faço para salvar meu dinheiro ja tendo um sistema de dinheiro no jogo?
muito obrigado wo :)
como faço pra deletar os dados de um jogador do meu jogo ?
A classe GlobalDataStore (que é a classe do objeto de quando a gente usa o GetDataStore() no serviço) tem a função "RemoveAsync()", você pode colocar o id do jogador e ele irá remover aquele save dele. Também tem plugin que faça isso automaticamente, mas acho que ele é pago.
@@worbx vlw, como é o nome do plug-in?
O meu da data store faiou
E se o jogador sair de maneira abrupta, digamos com uma queda de energia que desliga o PC na hora, os dados atuais ainda assim são salvos quando o jogador é removido? Ou nesse caso tudo é perdido?
funciona normal até onde eu saiba, pois isso seria a mesma coisa q se você fechar pelo X da janela para o Roblox, e ele salva da mesma forma, então salvaria normal
@@worbx, que bom, obrigado pela informação!
É que se isso acontecer o servidor vai entender como playerRemoved e vai salvar porque os dados n ficam salvo na maquina do client mesmo os das variáveis.
cara valeu muito vou fazer um tcoocy
Mano eu queria saber fazer npcs porém tipo, sem pegar as roupas que ja existem no roblox, por exemplo eu quero colocar uma roupa aqui no npc porém eu n encontro a roupa certa, queria saber como fazer isso, queria algo como o grand piece, aproveitando, também queria saber como faz um menu de customizar seu personagem, tbm como o grand piece
Cria a roupa em algum aplicativo de desenho no pc ou no celular
Oi eu tenho uma pergunta para Fazer
eu estou querendo salvar as Coins no liderstats certo
Então mais eu tenho o Strength para salvar e até agora não vi nenhum video mostrando algo assim...
Vc me ajuda?
uma dica, se você for criar um instance por script, para colocar o parent dela n precisa ser por exemplo, "local Exemplo = Intance.new("Part")
Exemplo.Parent = workspace",
pode ser assim: "local Exemplo = instance.new("Part",workspace)"
Essa forma é bem ultrapassada, pois o próprio Roblox reconheceu que ela tinha um grave problema de performance quando usada em casos onde o desempenho era necessário, por questões de replicar as mudanças para o servidor. Recomendo fortemente nunca usar desta forma.
Worbx faz um video de precisar de gold para passar o portal tipo anime fighters eu ja tenho todo sistema de gold no meu jogo
Eu estou recebendo um negócio de dadostore quando eu jogo marretão devo me preocupar?
Mano loja do lado esquerdo tem um loja pra adicionar itens o meu saio tem toturial pra voltar a loja?
muito obg
o zoom que você dá nos script atrapalha muito kkk muito fácil de se perder tlgd, mas a explicação tá boa.
edit: não leve a mal, é só pra você saber mesmo... Amei seu canal!
eu altero o valor da walkspeed via um local script, mas qnd eu do rejoin ele n salva, como resolvo isso?
Codigo da data store:
local DTS = game:GetService("DataStoreService")
local DataStore = DTS:GetDataStore("Values")
game.Players.PlayerAdded:Connect(function(Player)
local sucess, PlayerData = pcall(function()
return DataStore:GetAsync(Player.UserId)
end)
if sucess then
Player:SetAttribute("Speed", PlayerData or 0)
else
warn("faiou")
end
end)
game.Players.PlayerRemoving:Connect(function(Player)
local sucess, PlayerData = pcall(function()
return DataStore:SetAsync(Player.UserId, Player:GetAttribute("Speed"))
end)
if sucess then
print(PlayerData)
end
end)
codigo do script q altera o valor:
local player = game.Players.LocalPlayer
local speed = player:GetAttribute("Speed")
local button = script.Parent.TextButton
local label = script.Parent.TextLabel
local function speedd ()
speed = speed + 1
label.Text = speed
end
button.MouseButton1Click:Connect(speedd)
eu nunca consigo fazer DataStore
eu to precisando apagar os dados do player, to no level maximo terminar o sistema
Como eu faço para progressos vão para o outro mapa? exemplo quando eu me teleporto o progresso fica no outro mapa
muito bom, desejo aprender um game simples passo a passo, de atirar em zumbis por exemplo, coletar moedas, e os pontos de moedas e zumbis mortos aparecer na hud, e também poder escolher times, para se juntar e atacar um boss, poderia ensinar um game passo a passo ateh uma publicação ? poderia ensinar aqui e também criar um curso na udemy para gerar $$$ para ti, e assim todos animar, ^^
Vc pode em ajudar? Eu queria saber como resetar meu progesso em um jogo do roblox teria como?
Vc pode gravar um vídeo de como regenerar o seu mapa tipo o natural disaster e quando a rodada acaba ele regenera o mapa vc pode me ensinar?
tras mas pfv
oi mano vc poderia me ajudar eu to criando um jogo mas esse script que vc passa no video nao funciono tem como c me ajudar?
E como tira isso?
mano continua fazendo outros videos
Pode fazer como fazer tipo aquelas portas de simulator com gui que pergunta se vc deseja comprar a porta???
Vê o vídeo dele ensinando sobre script de 1 hora que você aprende muito rápido e fácil
Parte 2 ensinando como salvar múltiplas coisas? Como uma pasta por exemplo
Não dá para salvar objetos, apenas as informações deles. Dá pra salvar simplesmente utilizando Table, dai tu consegue acessar pelo índice. Ex: DataStore:GetAsync(sla)[1] ou DataStore:GetAsync(sla)["Objeto"], como se fosse uma table msm,
@@worbx entendo, vlw
Esse sistema esta vulneravel a scripts, ou não? Por exemplo, é só ele colocar em algum executor esse comando: Player:SetAttribute("Money", 999999) que, quando ele sair do jogo vai registrar esse valor no DataStore
O client não pode alterar valores no servidor, a menos que o servidor tenha explicitamente uma brecha (o que acontece em casos de alguns free models e plugins, que instalam "backdoors"). Sendo assim se o seu jogo não tiver nenhuma brecha, o servidor pode se basear sim nos atributos do player.
@@worbx Ah ok, obrigado pela resposta!
salva onde o player parou no mapa?
n quero q quando o player saia do mapa ele reinicie tudo se entrar dnv (tipo voltar do inicio mas com os itens do jogo q ele ganhou quando progrediu)
Se você salvar sim, até porque é programação, então você pode programar pra ele salvar e carregar o que quiser
Wo você pode fazer um video de como fazer o valor do atributo mudar?
é só usar o próprio setattribute, dai você usa o nome para alterar o que já existe!
@@worbx obrígado, estou criando um jogo a dois anos so faltava isso!
Isso funciona se o nick começa com número?
Mn me tira uma dúvida, eu tô fazendo um jogo tipo RUclips life com periféricos, pc's etc... Ai tem vários tipos de móveis na casa que você mesmo edita onde você quer colocar etc... Como eu faço pra salvar esse progresso da casa do meu jogador?
Interessante, mas a parte do pcall deixou confuso d+
quando ele falou pode acabar com seu jogo meu coração ja gelou kkkk, e loucura vc não saber programar, e ta fazendo sozinho e ta fazendo um jogo de rp so com tutorial e chat gpt ? ( deve ser mas ta dando certo mn )
complexo que o chat da muita coisa errada, peso que seja por causa das alteraçoes do roblox em relação a linguagem lua, e mao recomendo tu primeiro aprender lua e depois vir para o roblox
Data Store (#2) PFV
Worbx como posso fazer uma part que quando eu toco nela aparece uma frame :)
Olá, você pode entrar no server do Wo, lá você pode tirar dúvidas
Para fazer isso crie uma part com uma função ligada com o evento de toque, com o parâmetro Player depois faz:
Player.PlayerGui.Frame.Visible = true
@@viniz0263 vlw
@@Simplificando_Tudo Nada pô
Continua por favor 🥺
o atributo e de que tipo? string, numbem, bollean e etc
Por quê? definir atributo por script não precisa colocar o tipo.
moço da pra fazer o meu model atacar(tipo dar dano quando eu aperta no mouse e fazer animação)?
Dá sim, só que é programação, você já deve saber que eu tenho vários vídeos aqui no canal ensinando, isso ai tu pesquisa na api o que tu pode usar, por exemplo, pelo humanoid, que você vai usar para tocar animação!
Tem meu servidor do Discord, que lá você pode aprender e fazer muita coisa!
O meu negócio de data só deu erro e ficou dando warn toda hora n consegui fazer :(
checke a função do pcall o que você tá pedindo para fazer: tá realmente salvando e pegando o valor no mesmo lugar?
Tem algum site de emssinar a como fazer suas propias scripts estuda essas coisa tem?
A API do Roblox, sempre falo dela nos meus vídeos e inclusive nesse.
@@worbx bota o tempo aí pra eu ver
8:23
esse data funciona para outras coisas? como itens lv, xp e etc? e como salvar isso tudo junto?
Sim, você salva valores pra usar pra qualquer coisa, pode ser string tipo o nome de itens que o player tem, na aula 2 de Data Store eu ensinei a salvar em table, que é o que a maioria dos jogos realmente usa!
@@worbx okay, muito obg, seus vídeos estão realmente me ajudando, e estou até vendo eles enquanto crio meu próprio jogo.
Edit: ganhou mais um inscrito 😼👍
Só uma dúvida, se for a primeira vez do player jogando getasync não será nil e irá interrompér o script? ou o pcall previne isso também?
Se for nil o pcall vai definir 0 e não vai dar erro.
A data fica armazenada no servidor do roblox?
Sim!
Salva tools também??
Se você pedir pro script salvar o nome das tools, salva
man entao tipo eu coloquei assim (so falando to criando um simualitor e de clicks) se nao funciona pra simulaitor de clicks pfv faz um que funcione mas ent eu coloquei desse jeito
local DataStoreService = game:GetService("DataStoreService")
local DataStore = DataStoreService:GetDataStore("Money")
game.Players.PlayerAdded:Connect(function(Player)
local success, PlayerData = pcall(function()
return DataStore:GetAsync(Player.UserId)
end)
print(success)
if success then
Player:SetAttribute("Money" , PlayerData or 0)
print(PlayerData)
else
warn("DataStore faiou")
end
end)
game.Players.PlayerRemoving:Connect(function(Player)
local success, PlayerData = pcall(function()
DataStore:GetAsync(Player.UserId, Player:GetAttribute("Money"))
end)
if success then
print(PlayerData)
end
end)
fiz alguma coisa de errado ou nao
Não sei, isso ai já é programação do seu jogo, eu já não posso dizer se tá certo ou não, você q tem que falar pro script oq quer que ele faça, e ver também na janela "Saída" pra ver os erros do script, além de ler o script e ver o que ele realmente tá fazendo né
@@worbx ok vlw
aonde tiver money vc substitui pela sua moeda
o meu da data store faiou alguém manda o script pra mim pls
fiz exatamente como ta no video mas só da nil
tinha esquecido de por return
Esse DataStore Funciona para obby? Pois estou criando um obby e quero um script para quando o player sair do jogo e depois voltar, ele nascer no stage que estava, e não voltar para o inicio do obby. Se alguém poder me responder agradesso.
Se você fizer funcionar, funciona né
Data Store tá sendo meu ponto fraco em scripting no roblox, meu deus do céu
A explicação dele é muito confusa mn
Hey Wo, queria saber se tem como salvar algum frame tipo em "Find The Little Guys" ou "Find The Chomiks"?
nesses casos, o jogo provavelmente salva o nomes ou códigos do que o player encontrou numa table, e eu ensinei como que trabalha com tables em datastore na aula 2 de data store
Esse script serve tbm pra quando o player morrer ele nao perder a espada?? Alguem sabe como faz pra quando o player morrer nao perder a espada?
Se você pedir pro script fazer isso, ele fará, isso que é aprender a fazer script no Roblox, eu ensino muito no meu canal!
Galera irei deixar aqui toda a script usada no vídeo :
local DataStoreService = Game:GetService("DataStoreService")
local DataStore = DataStoreService:GetDataStore("Money")
game.players.Playeradded:connect(function(Player)
--pcall = Protect Call
local succes, PlayerData = pcall(function()
return DataStore:GetAsync(Player.UserId)
end)
if succes then
Player:Setatribute("Money", PlayerData or 0)
Print("PlayerData")
else
warn('Data Store faiou')
end
end)
game.Players.PlayerRemoving:connect(function(Player)
local succes, PlayerData = pcall(function()
return DataStore:GetAsync(Player.UserId, Player:GetAttribute('Money'))
if succes then
Print("PlayerData")
end
end)
deixou o print maiusculo, as ajuddou muito
Mano precisa de return sim, eu tentei sem return e n foi, eu adicionei e foi sua edicao tava mandando informacao falsa
voce
O que?? mas funcona dboa filho de Deus
@@fernoFURRY Pra mim precisava de return
falou de datastore eu tremo na base q saco nunca aprendo usar essa maldita datastore ja vi na api do roblox vi aq vi em outros canais e n aprendo
é fácil ué, tem nada de difícil pra quem já sabe scriptar um pouco
@@worbx tipo sla vey eu acho muito complicado e tipo eu sei programar ate q bem
rbx vc e muito bom no que faz sou muito seu fã se precisar de ajuda e so me chamar vou estar disposto :)
local DataStoreService = game:GetService(''DataStoreService'')