#DeltaSCR Posted April 11, 2019 Posted April 11, 2019 Olá, eu estou desenvolvendo um código e me vi a necessidade de usar uma database, porém não entendo nada do assunto, eu andei dando uma lida no tutorial do @Lord Henry porém não entendi como por cada coisa em pratica; O que eu quero fazer: Uma Loja de Skins, que a mesma tem um botão de usar, na hora que ele apertar o botão de Comprar, se ele já tiver a Skin comprada, aparece uma mensagem para apertar no outro botão (Botão de usar a Skin), porém estou em dúvidas nessa parte de obter se ele tem a skin... Enfim, na Database em Geral. Se pudessem me ajudar ficaria agradecido function DeltaSCR_Comprar (_, state) if DeltaSCR_Painel == true then if state == "down" then if isCursorOnElement (screenW * 0.5295, screenH * 0.5583, screenW * 0.1094, screenH * 0.0500) then -- //CANCELAR DeltaSCR_Abrir () elseif isCursorOnElement (screenW * 0.5295, screenH * 0.4917, screenW * 0.1094, screenH * 0.0500) then -- //USAR elseif isCursorOnElement (screenW * 0.5295, screenH * 0.4250, screenW * 0.1094, screenH * 0.0500) then -- //COMPRAR local rowItem = guiGridListGetSelectedItem (skinsList) if rowItem ~= -1 then if guiGridListGetItemText (skinsList, rowItem, 1) == "Skin 1" then setElementModel (localPlayer, 0) takePlayerMoney (300) DeltaSCR_Abrir () elseif guiGridListGetItemText (skinsList, rowItem, 1) == "Skin 2" then setElementModel (localPlayer, 1) takePlayerMoney (300) DeltaSCR_Abrir () elseif guiGridListGetItemText (skinsList, rowItem, 1) == "Skin 3" then setElementModel (localPlayer, 2) takePlayerMoney (300) DeltaSCR_Abrir () elseif guiGridListGetItemText (skinsList, rowItem, 1) == "Skin 4" then setElementModel (localPlayer, 7) takePlayerMoney (300) DeltaSCR_Abrir () elseif guiGridListGetItemText (skinsList, rowItem, 1) == "Skin 5" then setElementModel (localPlayer, 9) takePlayerMoney (300) DeltaSCR_Abrir () elseif guiGridListGetItemText (skinsList, rowItem, 1) == "Skin 6" then setElementModel (localPlayer, 10) takePlayerMoney (300) DeltaSCR_Abrir () elseif guiGridListGetItemText (skinsList, rowItem, 1) == "Skin 7" then setElementModel (localPlayer, 11) takePlayerMoney (300) DeltaSCR_Abrir () elseif guiGridListGetItemText (skinsList, rowItem, 1) == "Skin 8" then setElementModel (localPlayer, 12) takePlayerMoney (300) DeltaSCR_Abrir () end end end end end end addEventHandler ("onClientClick", getRootElement(), DeltaSCR_Comprar) Minha resposta te ajudou? Por favor, não esqueça de avaliar - #DeltaSCR Minha página no Facebook: Delta Scripting - MTA "Viribus et honor"
DNL291 Posted April 12, 2019 Posted April 12, 2019 (edited) Esse código é do lado cliente e o que vai precisar é fazer toda a parte do banco de dados e carregamento no lado server. A consulta na base de dados não precisa ser a todo momento que verificar o que o jogador possui, pra isso tem as tabelas ou element-data que você pode armazenar temporariamente no jogador, e para fazer uma verificação entre UI/jogador local (client) e os dados do jogador (server) você vai precisar da função triggerServerEvent client > server e triggerClientEvent server > client. Edited April 12, 2019 by DNL291 1 Please do not PM me with scripting related question nor support, use the forums instead.
Moderators Lord Henry Posted April 12, 2019 Moderators Posted April 12, 2019 1 hour ago, #DeltaSCR said: u andei dando uma lida no tutorial do @Lord Henry porém não entendi como por cada coisa em pratica O que exatamente vc não entendeu? A parte de criar o banco de dados? Eu te ajudei ou achou meu comentário útil? Não esqueça de deixar um Thanks! Minhas contribuições para a comunidade: LordHenry - MTA Wiki Profile Inscreva-se no meu canal do YouTube: Lord Henry - Entertainment Discord Oficial do MTA: https://mtasa.com/discord Blacklist e Whitelist de Scripters: Planilha Por favor, não me envie mensagens privadas solicitando suporte. Crie um tópico no fórum em vez disso.
#DeltaSCR Posted April 12, 2019 Author Posted April 12, 2019 1 minute ago, Lord Henry said: O que exatamente vc não entendeu? A parte de criar o banco de dados? Tipo, eu li o seu tutorial, e entendi mais ou menos o que cada coisa faz, porém não entendi como por em pratica, Por exemplo: Como criar o banco de dados, onde encaixar no código, o que vem antes, e o que vem depois... Minha resposta te ajudou? Por favor, não esqueça de avaliar - #DeltaSCR Minha página no Facebook: Delta Scripting - MTA "Viribus et honor"
Moderators Lord Henry Posted April 12, 2019 Moderators Posted April 12, 2019 Lá no final tem um exemplo de cada coisa, além da sintaxe de criar o banco de dados. Está dentro de um spoiler. Spoiler Tipo esse. Eu te ajudei ou achou meu comentário útil? Não esqueça de deixar um Thanks! Minhas contribuições para a comunidade: LordHenry - MTA Wiki Profile Inscreva-se no meu canal do YouTube: Lord Henry - Entertainment Discord Oficial do MTA: https://mtasa.com/discord Blacklist e Whitelist de Scripters: Planilha Por favor, não me envie mensagens privadas solicitando suporte. Crie um tópico no fórum em vez disso.
#DeltaSCR Posted April 12, 2019 Author Posted April 12, 2019 Ok, então o primeiro passo, no caso criar o banco de dados seria nesse modelo? executeSQLQuery ("CREATE TABLE IF NOT EXISTS tabelaLegal (ID INTEGER NOT NULL PRIMARY KEY, PosX REAL, PosY REAL, PosZ REAL, accountName TEXT)") Tipo, como estou trabalhando com uma Loja de Skins, acha que somente uma coluna (ID) basta? Ou precisa criar algo a mais? Minha resposta te ajudou? Por favor, não esqueça de avaliar - #DeltaSCR Minha página no Facebook: Delta Scripting - MTA "Viribus et honor"
Moderators Lord Henry Posted April 12, 2019 Moderators Posted April 12, 2019 (edited) Dai isso vem com a lógica mano. Vc é quem deve saber quantas colunas deve ter na tabela. Quais dados serão salvos. Antes de criar uma tabela nova no banco de dados, vc já deve saber quais dados serão armazenados lá. É o mesmo que tentar criar um painel sem saber quais botões e campos terão nele. Edited April 12, 2019 by Lord Henry 1 Eu te ajudei ou achou meu comentário útil? Não esqueça de deixar um Thanks! Minhas contribuições para a comunidade: LordHenry - MTA Wiki Profile Inscreva-se no meu canal do YouTube: Lord Henry - Entertainment Discord Oficial do MTA: https://mtasa.com/discord Blacklist e Whitelist de Scripters: Planilha Por favor, não me envie mensagens privadas solicitando suporte. Crie um tópico no fórum em vez disso.
#DeltaSCR Posted April 12, 2019 Author Posted April 12, 2019 (edited) Ah sim... Tipo, qual a diferença entre executeSQLQuery e os as funções db (dbConnect, etc)? Quando eu uso cada um desses? Edited April 12, 2019 by #DeltaSCR Minha resposta te ajudou? Por favor, não esqueça de avaliar - #DeltaSCR Minha página no Facebook: Delta Scripting - MTA "Viribus et honor"
Moderators Lord Henry Posted April 12, 2019 Moderators Posted April 12, 2019 As funções db criam um banco de dados customizado, enquanto que o executeSQLQuery usa o banco de dados nativo do MTA registry.db Eu acho mais fácil usar o banco de dados nativo do MTA. Eu te ajudei ou achou meu comentário útil? Não esqueça de deixar um Thanks! Minhas contribuições para a comunidade: LordHenry - MTA Wiki Profile Inscreva-se no meu canal do YouTube: Lord Henry - Entertainment Discord Oficial do MTA: https://mtasa.com/discord Blacklist e Whitelist de Scripters: Planilha Por favor, não me envie mensagens privadas solicitando suporte. Crie um tópico no fórum em vez disso.
#DeltaSCR Posted April 12, 2019 Author Posted April 12, 2019 9 hours ago, Lord Henry said: As funções db criam um banco de dados customizado, enquanto que o executeSQLQuery usa o banco de dados nativo do MTA registry.db Eu acho mais fácil usar o banco de dados nativo do MTA. Ah sim, eu vou usar funções db, pois quero meio que um sistema independente, aí nesse caso, o que eu usaria para criar a tabela? Minha resposta te ajudou? Por favor, não esqueça de avaliar - #DeltaSCR Minha página no Facebook: Delta Scripting - MTA "Viribus et honor"
Moderators Lord Henry Posted April 12, 2019 Moderators Posted April 12, 2019 Esse sistema independente ficará fora do servidor? Ou acessível por sites externos? Eu te ajudei ou achou meu comentário útil? Não esqueça de deixar um Thanks! Minhas contribuições para a comunidade: LordHenry - MTA Wiki Profile Inscreva-se no meu canal do YouTube: Lord Henry - Entertainment Discord Oficial do MTA: https://mtasa.com/discord Blacklist e Whitelist de Scripters: Planilha Por favor, não me envie mensagens privadas solicitando suporte. Crie um tópico no fórum em vez disso.
#DeltaSCR Posted April 13, 2019 Author Posted April 13, 2019 19 hours ago, Lord Henry said: Esse sistema independente ficará fora do servidor? Ou acessível por sites externos? Tipo, o que vai acontecer é: O Player abre um painel de Skins, quando ele apertar no botão de usar, vai chegar a database; No caso só um arquivo mesmo de database, que vai ficar somente nos arquivos do Servidor Minha resposta te ajudou? Por favor, não esqueça de avaliar - #DeltaSCR Minha página no Facebook: Delta Scripting - MTA "Viribus et honor"
Moderators Lord Henry Posted April 13, 2019 Moderators Posted April 13, 2019 Se vai ficar no servidor, pra quê criar um banco de dados novo? É mais fácil usar o banco de dados nativo. Se vc já está com dificuldade em fazer o mais fácil, pq quer tentar o mais difícil? Eu te ajudei ou achou meu comentário útil? Não esqueça de deixar um Thanks! Minhas contribuições para a comunidade: LordHenry - MTA Wiki Profile Inscreva-se no meu canal do YouTube: Lord Henry - Entertainment Discord Oficial do MTA: https://mtasa.com/discord Blacklist e Whitelist de Scripters: Planilha Por favor, não me envie mensagens privadas solicitando suporte. Crie um tópico no fórum em vez disso.
#DeltaSCR Posted April 13, 2019 Author Posted April 13, 2019 2 hours ago, Lord Henry said: Se vai ficar no servidor, pra quê criar um banco de dados novo? É mais fácil usar o banco de dados nativo. Se vc já está com dificuldade em fazer o mais fácil, pq quer tentar o mais difícil? Por que como eu te disse, quero produzir o código totalmente independente, pois exemplo, caso o servidor reinicie, se eu tiver o arquivo database, eu não perco nada Minha resposta te ajudou? Por favor, não esqueça de avaliar - #DeltaSCR Minha página no Facebook: Delta Scripting - MTA "Viribus et honor"
Jonas^ Posted April 13, 2019 Posted April 13, 2019 1 hour ago, #DeltaSCR said: Por que como eu te disse, quero produzir o código totalmente independente, pois exemplo, caso o servidor reinicie, se eu tiver o arquivo database, eu não perco nada Mas não tem como perder, use setAccountData diretamente e não setElementData se não quer arriscar em perder dados caso o servidor de crash por exemplo
Moderators Lord Henry Posted April 13, 2019 Moderators Posted April 13, 2019 (edited) Como mencionado pelo nosso colega acima, os bancos de dados nativos do MTA não se perdem ao reiniciar o servidor. Não sei de onde vc inventou que perde... Edited April 13, 2019 by Lord Henry Eu te ajudei ou achou meu comentário útil? Não esqueça de deixar um Thanks! Minhas contribuições para a comunidade: LordHenry - MTA Wiki Profile Inscreva-se no meu canal do YouTube: Lord Henry - Entertainment Discord Oficial do MTA: https://mtasa.com/discord Blacklist e Whitelist de Scripters: Planilha Por favor, não me envie mensagens privadas solicitando suporte. Crie um tópico no fórum em vez disso.
#DeltaSCR Posted April 14, 2019 Author Posted April 14, 2019 Então se eu usar setAccountData, mesmo que o servidor reinicie eu não perco nada? Minha resposta te ajudou? Por favor, não esqueça de avaliar - #DeltaSCR Minha página no Facebook: Delta Scripting - MTA "Viribus et honor"
Jonas^ Posted April 14, 2019 Posted April 14, 2019 5 minutes ago, #DeltaSCR said: Então se eu usar setAccountData, mesmo que o servidor reinicie eu não perco nada? é.
#DeltaSCR Posted April 14, 2019 Author Posted April 14, 2019 Ta, mas agora fiquei em dúvida, setAccountData tem diferença com usar executeSQLQuery? Se sim, me explique pls Minha resposta te ajudou? Por favor, não esqueça de avaliar - #DeltaSCR Minha página no Facebook: Delta Scripting - MTA "Viribus et honor"
Moderators Lord Henry Posted April 15, 2019 Moderators Posted April 15, 2019 (edited) A diferença está explicada lá naquele meu tópico. Edited April 15, 2019 by Lord Henry Eu te ajudei ou achou meu comentário útil? Não esqueça de deixar um Thanks! Minhas contribuições para a comunidade: LordHenry - MTA Wiki Profile Inscreva-se no meu canal do YouTube: Lord Henry - Entertainment Discord Oficial do MTA: https://mtasa.com/discord Blacklist e Whitelist de Scripters: Planilha Por favor, não me envie mensagens privadas solicitando suporte. Crie um tópico no fórum em vez disso.
#DeltaSCR Posted April 17, 2019 Author Posted April 17, 2019 Ok, sei que é mais difícil, porém ainda sim desejo aprender com a database mesmo, sem ser a do próprio MTA... Minha resposta te ajudou? Por favor, não esqueça de avaliar - #DeltaSCR Minha página no Facebook: Delta Scripting - MTA "Viribus et honor"
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now