Welf Posted August 10, 2020 Share Posted August 10, 2020 Olá galera tudo bem? to editando um script de identidade, onde basicamente o jogador coloca seu nome, data de nascimento e local de nascimento, no entanto, quando o jogador sai do servidor nada disso fica salvo na conta dele, ele precisa novamente ter que emitir a identidade, como posso fazer as informações fiquem salvas na conta dele? (Identidade:Nome - Identidade:Idade - Identidade:Local) Client: local screenW,screenH = guiGetScreenSize() local resW, resH = 1024,768 local x, y = (screenW/resW), (screenH/resH) Texto = { msg = {} } Texto.msg[1] = guiCreateEdit(x*360, y*315, x*200, y*27, "", false) Texto.msg[2] = guiCreateEdit(x*360, y*365, x*200, y*27, "", false) Texto.msg[3] = guiCreateEdit(x*360, y*415, x*200, y*27, "", false) guiSetVisible ( Texto.msg[1], false ) guiSetVisible ( Texto.msg[2], false ) guiSetVisible ( Texto.msg[3], false ) function ConfigurarBrancos () if Painel == true then Nome = guiGetText(Texto.msg[1]) Idade = guiGetText(Texto.msg[2]) Local = guiGetText(Texto.msg[3]) end end setTimer ( ConfigurarBrancos, 50, 0 ) function Identidade() local RG = getElementData(localPlayer, "ID") or "0" local Brito_RGNumero = getElementData ( localPlayer, "IDs" ) or "Erro " Cor = tocolor(218, 218, 218, 255) if isCursorOnElement(x*579, y*529, x*101, y*28) then Cor = tocolor(0,100,200,150) end dxDrawImage(375, 70, 438, 424, "gfx/bg.png", 0, 0, 0, tocolor(255, 255, 255, 255), false) -- dxDrawRectangle(x*350, y*184, x*342, y*394, tocolor(238, 238, 238, 255), false) -- dxDrawText("Identidade BNC", x*350, y*184, x*692, y*207, tocolor(0, 138, 244, 255), x*1.20, "sans", "center", "center", false, false, false, false, false) -- dxDrawText("Olá, seja bem vindo(a) ao Brasil Nacional City\nAqui é onde você vai preencher sua identidade\n\nOBS: Não será possível preencher novamente,\npreencha corretamente ou poderá ser preso.", x*356, y*217, x*698, y*240, tocolor(0, 138, 244, 255), 1.10, "sans", "left", "top", false, false, false, false, false) dxDrawRectangle(x*579, y*529, x*101, y*28, Cor, false) dxDrawText("EMITIR", x*580, y*529, x*680, y*557, tocolor(255, 255, 255, 255), x*1.00, "sans", "center", "center", false, false, false, false, false) dxDrawText("Pressione 'Enter' para fechar", x*348, y*580, x*692, x*597, tocolor(255, 255, 255, 255), x*1.00, "default", "center", "top", false, false, false, false, false) dxDrawText(""..RG.."", 89, 225, 777, 594, tocolor(0, 128, 0, 255), 1.00, "default-bold", "center", "center", false, false, false, false, false) dxDrawText(""..Brito_RGNumero.."", 285, -115, 777, 594, tocolor(0, 128, 0, 255), 1.00, "default-bold", "center", "center", false, false, false, false, false) -- dxDrawText("Nomes irregulares e ofensivos\npoderão ocasionar em prisões ou\naté mesmo banimentos.", x*360, y*447, x*670, y*497, tocolor(255, 95, 95, 255), x*1.00, "sans", "center", "center", false, false, false, false, false) end Painel = false function Abrir() if Painel == false then toggleAllControls(false) showChat(false) showCursor ( true ) addEventHandler ( "onClientRender", root, Identidade ) guiSetVisible ( Texto.msg[1], true ) guiSetVisible ( Texto.msg[2], true ) guiSetVisible ( Texto.msg[3], true ) Painel = true end end addEvent("Open:Identidade",true) addEventHandler("Open:Identidade",root,Abrir) function Fechar() if Painel then toggleAllControls(true) showChat(true) showCursor ( false ) removeEventHandler ( "onClientRender", root, Identidade ) guiSetVisible ( Texto.msg[1], false ) guiSetVisible ( Texto.msg[2], false ) guiSetVisible ( Texto.msg[3], false ) Painel = false end end addCommandHandler("fecharp",Fechar) bindKey("enter","down","fecharp") function outputEditBox ( button ) if button == "left" then guiSetText(Texto.msg[1],"") end end addEventHandler ( "onClientGUIClick", Texto.msg[1], outputEditBox) function outputEditBox ( button ) if button == "left" then guiSetText(Texto.msg[2],"") end end addEventHandler ( "onClientGUIClick", Texto.msg[2], outputEditBox) function outputEditBox ( button ) if button == "left" then guiSetText(Texto.msg[3],"") end end addEventHandler ( "onClientGUIClick", Texto.msg[3], outputEditBox) function ConfirmarContinuar (_,state) if Painel == true then if state == "down" then if isCursorOnElement (x*579, y*529, x*101, y*28) then if guiGetText(Nome) == "" then return else if guiGetText(Nome) == "" then return else if guiGetText(Idade) == "" then return else if guiGetText(Idade) == "" then return else if guiGetText(Local) == "" then return else if guiGetText(Local) == "" then return else setElementData ( localPlayer, "Identidade:Nome", Nome) setElementData ( localPlayer, "Identidade:Idade",Idade) setElementData ( localPlayer, "Identidade:Local", Local) toggleAllControls(true) showChat(true) showCursor ( false ) removeEventHandler ( "onClientRender", root, Identidade ) guiSetVisible ( Texto.msg[1], false ) guiSetVisible ( Texto.msg[2], false ) guiSetVisible ( Texto.msg[3], false ) Painel = false outputChatBox("[PARABÉNS] VOCÊ REALIZOU COM SUCESSO A EMISSÃO DA SUA CARTEIRA DE IDENTIDADE",0,255,0) end end end end end end end end end end addEventHandler ( "onClientClick", root, ConfirmarContinuar ) function isCursorOnElement( x,y,w,h ) local mx,my = getCursorPosition () local fullx,fully = guiGetScreenSize() cursorx,cursory = mx*fullx,my*fully if cursorx > x and cursorx < x + w and cursory > y and cursory < y + h then return true else return false end end Server: Entrada = createMarker(1183.8770751953,-1234.6398925781,19.155364990234-1,"cylinder",2,255,255,255,0) Saida = createMarker(1183.5395507813,-1239.0718994141,18.603658676147-1,"cylinder",2,255,255,255,0) MIdentidade = createMarker(1181.6715087891,-1221.7287597656,19.155364990234 -1,"cylinder",1.1,0,100,200,0) MTrabalho = createMarker(1181.5675048828,-1225.3601074219,19.155364990234 -1,"cylinder",1.1,0,100,200,0) MAgencia = createMarker(1174.1483154297,-1220.9399414063,19.155364990234 -1,"cylinder",1.1,0,100,200,0) function Entrar(thePlayer) triggerClientEvent(thePlayer,"Entrou",thePlayer) end addEventHandler("onMarkerHit",Entrada,Entrar) function Saiu(thePlayer) triggerClientEvent(thePlayer,"Saiu",thePlayer) end addEventHandler("onMarkerHit",Saida,Saiu) function Identidade(thePlayer) local Serial = getPlayerSerial ( thePlayer ) setElementData ( thePlayer, "IDs", ""..Serial.."" ) local Identidade = getElementData(thePlayer,"Identidade:Nome") or "N/C" if Identidade == "N/C" then triggerClientEvent(thePlayer,"Open:Identidade",thePlayer) else outputChatBox("#ff0000ATENDENTE:#ffffff VOCÊ JÁ POSSUI RG EMITIDO!",thePlayer,255,255,255,true) return end end addEventHandler("onMarkerHit",MIdentidade,Identidade) function fadeCameraDelayed(player) if (isElement(player)) then fadeCamera(player, true, 0.5) end end function Agencia(thePlayer) local account = getPlayerAccount (thePlayer) local Trabalho = getElementData(thePlayer,"Identidade:Trabalho") or "N/C" if isGuestAccount (account) then outputChatBox ( "Você não pode trabalhar deslogado, crie uma conta!", thePlayer, 255,0,0,true) return end if isElementWithinMarker(thePlayer, MAgencia) then if Trabalho == "N/C" then outputChatBox("#ff0000-> #ffffffVocê não tem uma carteira de trabalho.",thePlayer,255,255,255,true) return else triggerClientEvent(thePlayer,"Hy:Abrir",thePlayer) end end end addEventHandler("onMarkerHit",MAgencia,Agencia) function Trabalho(thePlayer) local Identidade = getElementData(thePlayer,"Identidade:Nome") or "N/C" local Trabalho = getElementData(thePlayer,"Identidade:Trabalho") or "N/C" if Identidade == "N/C" then outputChatBox("#ff0000ATENDENTE:#ffffff VOCÊ NÃO POSSUI RG!",thePlayer,255,255,255,true) return end if Trabalho == "N/C" then triggerClientEvent(thePlayer,"Open:Trabalho",thePlayer) else outputChatBox("#ff0000ATENDENTE:#ffffff VOCÊ JÁ POSSUI CARTEIRA DE TRABALHO",thePlayer,255,255,255,true) return end end addEventHandler("onMarkerHit",MTrabalho,Trabalho) Link to comment
Other Languages Moderators Lord Henry Posted August 10, 2020 Other Languages Moderators Share Posted August 10, 2020 Está faltando um setAccountData aí no código pra salvar esses dados na conta dele. E também um getAccountData pra depois obter esses dados da conta. Link to comment
Welf Posted August 10, 2020 Author Share Posted August 10, 2020 2 hours ago, Lord Henry said: Está faltando um setAccountData aí no código pra salvar esses dados na conta dele. E também um getAccountData pra depois obter esses dados da conta. Deu certo, porém queria que caso o jogador ja tenha essas informações setadas, aparecesse a informação de que ele já tirou a identidade (LINHA 24), porém não tá funcionando! quando passo no marker ele abre o painel normalmente Consegui dessa forma: Entrada = createMarker(1183.8770751953,-1234.6398925781,19.155364990234-1,"cylinder",2,255,255,255,0) Saida = createMarker(1183.5395507813,-1239.0718994141,18.603658676147-1,"cylinder",2,255,255,255,0) MIdentidade = createMarker(1181.6715087891,-1221.7287597656,19.155364990234 -1,"cylinder",1.1,0,100,200,0) MTrabalho = createMarker(1181.5675048828,-1225.3601074219,19.155364990234 -1,"cylinder",1.1,0,100,200,0) MAgencia = createMarker(1174.1483154297,-1220.9399414063,19.155364990234 -1,"cylinder",1.1,0,100,200,0) function Entrar(thePlayer) triggerClientEvent(thePlayer,"Entrou",thePlayer) end addEventHandler("onMarkerHit",Entrada,Entrar) function Saiu(thePlayer) triggerClientEvent(thePlayer,"Saiu",thePlayer) end addEventHandler("onMarkerHit",Saida,Saiu) function Identidade(thePlayer) local Serial = getPlayerSerial ( thePlayer ) setElementData ( thePlayer, "IDs", ""..Serial.."" ) local Identidade = getElementData(thePlayer,"Identidade:Nome") or "N/C" if Identidade == "N/C" then triggerClientEvent(thePlayer,"Open:Identidade",thePlayer) else outputChatBox("#ff0000ATENDENTE:#ffffff VOCÊ JÁ POSSUI RG EMITIDO!",thePlayer,255,255,255,true) return end end addEventHandler("onMarkerHit",MIdentidade,Identidade) function fadeCameraDelayed(player) if (isElement(player)) then fadeCamera(player, true, 0.5) end end function Agencia(thePlayer) local account = getPlayerAccount (thePlayer) local Trabalho = getElementData(thePlayer,"Identidade:Trabalho") or "N/C" if isGuestAccount (account) then outputChatBox ( "Você não pode trabalhar deslogado, crie uma conta!", thePlayer, 255,0,0,true) return end if isElementWithinMarker(thePlayer, MAgencia) then if Trabalho == "N/C" then outputChatBox("#ff0000-> #ffffffVocê não tem uma carteira de trabalho.",thePlayer,255,255,255,true) return else triggerClientEvent(thePlayer,"Hy:Abrir",thePlayer) end end end addEventHandler("onMarkerHit",MAgencia,Agencia) function Trabalho(thePlayer) local Identidade = getElementData(thePlayer,"Identidade:Nome") or "N/C" local Trabalho = getElementData(thePlayer,"Identidade:Trabalho") or "N/C" if Identidade == "N/C" then outputChatBox("#ff0000ATENDENTE:#ffffff VOCÊ NÃO POSSUI RG!",thePlayer,255,255,255,true) return end if Trabalho == "N/C" then triggerClientEvent(thePlayer,"Open:Trabalho",thePlayer) else outputChatBox("#ff0000ATENDENTE:#ffffff VOCÊ JÁ POSSUI CARTEIRA DE TRABALHO",thePlayer,255,255,255,true) return end end addEventHandler("onMarkerHit",MTrabalho,Trabalho) function Carregar_Dis ( conta ) if not isGuestAccount ( conta ) then if conta then local source = getAccountPlayer ( conta ) local Name = getAccountData ( conta, "Identidade:Nome") or "N/C" local Idade = getAccountData ( conta, "Identidade:Idade") or "N/C" local Local = getAccountData ( conta, "Identidade:Local") or "N/C" local Trabalho = getAccountData ( conta, "Identidade:Trabalho") or "N/C" local Assinou = getAccountData ( conta, "Assinou:Trabalho") or "N/C" setElementData ( source, "Identidade:Nome", Name ) setElementData ( source, "Identidade:Idade", Idade ) setElementData ( source, "Identidade:Local", Local ) setElementData ( source, "Identidade:Trabalho", Trabalho ) setElementData ( source, "Assinou:Trabalho", Assinou ) end end end function Iniciar_Resource ( res ) if res == getThisResource ( ) then for i, player in ipairs(getElementsByType("player")) do local acc = getPlayerAccount ( player ) if not isGuestAccount ( acc ) then Carregar_Dis ( acc ) end end end end addEventHandler ( "onResourceStart", getRootElement ( ), Iniciar_Resource ) function Salvar_Dis ( conta ) if conta then local source = getAccountPlayer ( conta ) local Name = getElementData ( source, "Identidade:Nome") or "N/C" local Idade = getElementData ( source, "Identidade:Idade") or "N/C" local Local = getElementData ( source, "Identidade:Local") or "N/C" local Trabalho = getElementData ( source, "Identidade:Trabalho") or "N/C" local Assinou = getElementData ( source, "Assinou:Trabalho") or "N/C" setAccountData ( conta, "Identidade:Nome", Name ) setAccountData ( conta, "Identidade:Idade", Idade ) setAccountData ( conta, "Identidade:Local", Local ) setAccountData ( conta, "Identidade:Trabalho", Trabalho ) setAccountData ( conta, "Assinou:Trabalho", Assinou ) end end function Desligar_Dis ( res ) if res == getThisResource ( ) then for i, player in ipairs(getElementsByType("player")) do local acc = getPlayerAccount ( player ) if not isGuestAccount ( acc ) then Salvar_Dis ( acc ) end end end end addEventHandler ( "onResourceStop", getRootElement(), Desligar_Dis ) function Sair_Dis_Servidor ( quitType ) local acc = getPlayerAccount(source) if not isGuestAccount ( acc ) then if acc then Salvar_Dis ( acc ) end end end addEventHandler ( "onPlayerQuit", getRootElement(), Sair_Dis_Servidor ) Link to comment
Welf Posted August 11, 2020 Author Share Posted August 11, 2020 Alguem poderia ajudar? Link to comment
Boechat Posted August 12, 2020 Share Posted August 12, 2020 On 11/08/2020 at 15:10, Welf said: Alguem poderia ajudar? Se vc já colocou setAccountData pra salvar os dados na conta como o Lord Henry disse acime, tenta colocar assim na linha 20: local Identidade = getAccountData(getPlayerAccount(thePlayer),"Identidade:Nome") or "N/C" Link to comment
Welf Posted August 14, 2020 Author Share Posted August 14, 2020 On 12/08/2020 at 17:26, Boechat said: Se vc já colocou setAccountData pra salvar os dados na conta como o Lord Henry disse acime, tenta colocar assim na linha 20: local Identidade = getAccountData(getPlayerAccount(thePlayer),"Identidade:Nome") or "N/C" Como eu poderia salvar as informações na conta do player quando ele saisse do Marker (MIdentidade) na linha 3? Link to comment
Boechat Posted August 14, 2020 Share Posted August 14, 2020 9 hours ago, Welf said: Como eu poderia salvar as informações na conta do player quando ele saisse do Marker (MIdentidade) na linha 3? Quais dados exatamente você quer salvar? pelo que eu entendi, quando você entra no marker "MIdentidade" você tem a opção de salvar nome, idade e local, certo? Pelo o que eu entendi, quando você encosta no marker abre uma janela que seta no ELEMENTO player os dados "Identidade:Nome", "Identidade:Idade" e "Identidade:Local" Quando você sai do marker, seta na CONTA do jogador os valores que estão no ELEMENTO player. function saveID (player) if getElementType (player) == 'player' then local Serial = getPlayerSerial ( player ) setAccountData ( player, "IDs", Serial) setAccountData ( player, "Identidade:Nome", getElementData ( player, "Identidade:Nome")) setAccountData ( player, "Identidade:Idade", getElementData ( player, "Identidade:Idade")) setAccountData ( player, "Identidade:Local", getElementData ( player, "Identidade:Local")) end end addEventHandler( "onMarkerLeave", MIdentidade, saveID ) Note que dados salvos nos elementos, seja veículo, player etc. são perdidos quando deixam de existir, então quando você deslogar, os dados salvos no ELEMENTO player irão sumir, mas os dados salvos na CONTA estão salvos em um banco de dados. Também te aconselho a colocar essa função aqui que sempre que o jogador logar, pega os dados salvos na CONTA dele e setam no ELEMENTO player, assim, se ele tentar criar a identidade novamente vai alegar que ele já a possui. Você também pode não colocar esse código a seguir mas teria que trocar os "setElementData" e "getElementData" por "setAccountData" e "getAccountData" em todo o código. Recomendo que faça isso, pois se fizer dispensa o código de login (que vou colocar a seguir) e também dispensa o código de salvar quando sair do marker, já que já vai salvar direto na conta assim que o player clicar pra confirmar e não no elemento pra depois "passar" pra conta, entende? addEventHandler("onPlayerLogin", root, function(thePreviousAccount, theCurrentAccount) local Serial = getPlayerSerial (source) setElementData ( source, "IDs", Serial) setElementData ( source, "Identidade:Nome", getAccountData ( theCurrentAccount, "Identidade:Nome")) setElementData ( source, "Identidade:Idade", getAccountData ( theCurrentAccount, "Identidade:Idade")) setElementData ( source, "Identidade:Local", getAccountData ( theCurrentAccount, "Identidade:Local")) end) Teste e veja se tá funcionando, se não estiver poste aqui o que mostra no /debugscript 3 Se ajudei deixa um Thanks aí em baixo Link to comment
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