C0DE Posted December 27, 2018 Share Posted December 27, 2018 Bom eu sou novo em .lua e eu estava aprendendo como colocar sistema de id so que o sistema de id que ele dava não salvava os id Exemplo Fulano entrou primeiro no servidor e ficou com id 1 Pelicano Entrou no servidor e ficou com id 2 Amoeba Entrou no servidor e ficou com id 3 C0DE Entrou no servidor e ficou com id 4 Ai Fulano sai e o Pelicano fica com id 1 e o resto modifica os id E eu não queria isso eu queria salva os id dos usuarios tipo Fulano Saiu e entrou um novo membro e o membro fica com id 5 em vez de fica com id 1 Ai quando o Fulano entrar ele continuar com ID 1 Link to comment
georgia09 Posted December 27, 2018 Share Posted December 27, 2018 14 minutes ago, C0DE said: Bom eu sou novo em .lua e eu estava aprendendo como colocar sistema de id so que o sistema de id que ele dava não salvava os id Exemplo Fulano entrou primeiro no servidor e ficou com id 1 Pelicano Entrou no servidor e ficou com id 2 Amoeba Entrou no servidor e ficou com id 3 C0DE Entrou no servidor e ficou com id 4 Ai Fulano sai e o Pelicano fica com id 1 e o resto modifica os id E eu não queria isso eu queria salva os id dos usuarios tipo Fulano Saiu e entrou um novo membro e o membro fica com id 5 em vez de fica com id 1 Ai quando o Fulano entrar ele continuar com ID 1 Explique seu problema para resolvê-lo Link to comment
C0DE Posted December 27, 2018 Author Share Posted December 27, 2018 O id dos usuarios não salva tipo eu entrei e fiquei com id 1 ai eu sai e o mlk entrou ai quando eu voltei eu fiquei com id 2 eu queria que salvasse para cada 1 fica com seu id e pronto Link to comment
Other Languages Moderators Lord Henry Posted December 28, 2018 Other Languages Moderators Share Posted December 28, 2018 (edited) Todas as contas criadas no servidor já possuem um ID, que não muda mesmo se algumas contas forem deletadas. Basta você usar getAccountID, que dai você obtém esses IDs. Os dados das contas ficam salvos no banco de dados internal.db Edited December 28, 2018 by Lord Henry 1 Link to comment
#DaNiLiN Posted December 28, 2018 Share Posted December 28, 2018 Lord no caso todas as contas já tem um ID Fixo? Link to comment
Other Languages Moderators Lord Henry Posted December 28, 2018 Other Languages Moderators Share Posted December 28, 2018 Sim. Link to comment
#DaNiLiN Posted January 2, 2019 Share Posted January 2, 2019 On 27/12/2018 at 22:18, Lord Henry said: Todas as contas criadas no servidor já possuem um ID, que não muda mesmo se algumas contas forem deletadas. Basta você usar getAccountID, que dai você obtém esses IDs. Os dados das contas ficam salvos no banco de dados internal.db Tentei Utilizar lord porém acabou dando errado eu já tinha tentado usar essa função há um tempo. Porém não consegui Veja" function id (source) ID = getAccountID (source) exports.Scripts_Dxmessages:outputDx(source,""..ID.."", "warning") end addCommandHandler("id", id ) Link to comment
DNL291 Posted January 2, 2019 Share Posted January 2, 2019 getAccountID ( account theAccount ) Claro que não vai funcionar passando o jogador em vez da conta. Obs: essa função só vai funcionar a partir da versão 1.5.5, release 12217 Link to comment
Other Languages Moderators Lord Henry Posted January 3, 2019 Other Languages Moderators Share Posted January 3, 2019 49 minutes ago, DNL291 said: Obs: essa função só vai funcionar a partir da versão 1.5.5, release 12217 Em relação a isso tenho uma pergunta: É necessário declarar a versão mínima no meta.xml para usar essa função? Pois a versão está declarada na Wiki mas não está dizendo que é necessário declará-la no meta, então fiquei confuso. Link to comment
DNL291 Posted January 3, 2019 Share Posted January 3, 2019 Olha eu nem sei ao certo pra falar a verdade. Mas eu sempre uso essas funções sem declarar nada no meta.xml, o mais importante acho que é definir a versão miníma que o servidor permite (para os jogadores). Deve funcionar sem problemas se usar a função sem declarar a versão miníma, não é obrigatório. Link to comment
Other Languages Moderators Lord Henry Posted January 3, 2019 Other Languages Moderators Share Posted January 3, 2019 É pq algumas funções geram erro no server console quando vc não declara a versão mínima. Mesmo que o servidor esteja na versão mais recente. Link to comment
#DaNiLiN Posted January 3, 2019 Share Posted January 3, 2019 Agora entendi DNL. function id (thePlayer) account = getPlayerAccount ( thePlayer ) ID = getAccountID (account) exports.Scripts_Dxmessages:outputDx(thePlayer,""..ID.."", "warning") end addCommandHandler("id", id ) okay? Pro id funcionar pelo Client-side no caso minha ideia e por em tagname eu teria que usar a funcão call certo? Link to comment
DNL291 Posted January 3, 2019 Share Posted January 3, 2019 (edited) Pode usar triggerClientEvent ou também setElementData pra armazenar no jogador e o valor estará no lado server e client. Verifique antes se o jogador tá logado na conta com isGuestAccount: function id (thePlayer) local account = getPlayerAccount ( thePlayer ) if not isGuestAccount(account) then local ID = getAccountID (account) exports.Scripts_Dxmessages:outputDx(thePlayer,""..ID.."", "warning") end end addCommandHandler("id", id ) Edited January 3, 2019 by DNL291 Link to comment
#DaNiLiN Posted January 5, 2019 Share Posted January 5, 2019 Sabe me dizer se dessa forma possa ocorrer muito peso dentro do servidor? function Element_ID () local account = getPlayerAccount ( source ) local ID_Account = getAccountID (account) local Guest = isGuestAccount(account) if account then setElementData ( source, "ID", ID_Account ) elseif Guest then setElementData ( source, "ID", "N/A" ) end end addEvent ( "DNL:Element_ID", true ) addEventHandler ( "DNL:Element_ID", root, Element_ID) Obs: Coloquei o TriggerEvent no onClientRender Link to comment
Other Languages Moderators Lord Henry Posted January 5, 2019 Other Languages Moderators Share Posted January 5, 2019 8 hours ago, danilin said: Sabe me dizer se dessa forma possa ocorrer muito peso dentro do servidor? Obs: Coloquei o TriggerEvent no onClientRender Sim. Vai pesar bastante. Link to comment
#DaNiLiN Posted January 5, 2019 Share Posted January 5, 2019 Lord sabe me dizer por qual motivo getAccountID Constou como sem valor em uma hospedagem e no meu servidor local funcionou normalmente ? :\ Link to comment
Other Languages Moderators Lord Henry Posted January 5, 2019 Other Languages Moderators Share Posted January 5, 2019 Como vc fez o código? 1 Link to comment
#DaNiLiN Posted January 5, 2019 Share Posted January 5, 2019 Acabou funcionado é porque na host tinha outro sistema de id ai acho que acabou dando conflito mas agora está normal. E ao Invés de utilizar o onClientRender pra verificar se o jogador está logado ou não acabei utilizando onPlayerLogin onResourceStart onPlayerLogout onPlayerJoin Ai acho que não iria pesar. Link to comment
DNL291 Posted January 5, 2019 Share Posted January 5, 2019 17 hours ago, danilin said: Sabe me dizer se dessa forma possa ocorrer muito peso dentro do servidor? function Element_ID () local account = getPlayerAccount ( source ) local ID_Account = getAccountID (account) local Guest = isGuestAccount(account) if account then setElementData ( source, "ID", ID_Account ) elseif Guest then setElementData ( source, "ID", "N/A" ) end end addEvent ( "DNL:Element_ID", true ) addEventHandler ( "DNL:Element_ID", root, Element_ID) Obs: Coloquei o TriggerEvent no onClientRender O código não faz muito sentido na verdade. E o setElementData por si só já vai sincronizar, não tem necessidade de verificar continuamente e mandar o ID pro client já que ele não muda. Você pode fazer isso quando o jogador entrar na conta (onPlayerLogin), obtém o ID da conta (getAccountID) e usa setElementData pra salvar o ID da conta. No client então, você só vai utilizar getElementData. O mesmo pode ser feito pra saber se o jogador tá logado ou não. onPlayerLogin > setElementData, onPlayerLogout > setElementData 1 Link to comment
#DaNiLiN Posted January 5, 2019 Share Posted January 5, 2019 (edited) Eu acabei fazendo assim. Pois como tu disse não precisa ficar verificando há todo segundo function Start_Id () local account = getPlayerAccount ( source ) local ID_Account = getAccountID (account) local Guest = isGuestAccount(account) if account then setElementData ( source, "ID", ID_Account ) elseif Guest then setElementData ( source, "ID", "N/A" ) end end addEventHandler("onResourceStart", root, Start_Id) addEventHandler("onPlayerJoin", root, Start_Id) function LoginAccount () local account = getPlayerAccount ( source ) local ID_Account = getAccountID (account) setElementData ( source, "ID", ID_Account ) outputChatBox ( "#00ff00✘ #ffffffLOGIN #00ff00✘➺ #ffffffNick: #00ff00 ( ".. getPlayerName(source) .." #00ff00) #ffffffID: #00ff00( "..getAccountID(account) .." )", source, 255,255,255,true) end addEventHandler("onPlayerLogin", root, LoginAccount) function LogoutAccount() local account = getPlayerAccount ( source ) local ID_Account = getAccountID (account) setElementData ( source, "ID", "N/A" ) outputChatBox ( "#00ff00✘ #ffffffLOGIN #00ff00✘➺ #ffffffNick: #00ff00 ( ".. getPlayerName(source) .." #00ff00) #ffffffDeslogou.", root, 255,255,255,true) end addEventHandler("onPlayerLogout", root, LogoutAccount) Edited January 5, 2019 by danilin Link to comment
DNL291 Posted January 6, 2019 Share Posted January 6, 2019 Tem alguns erros aí. Código: function Start_Id ( _, acc ) if eventName == "onPlayerLogin" then setElementData ( source, "ID", getAccountID(acc) or "N/A" ) outputChatBox ( "#00ff00✘ #ffffffLOGIN #00ff00✘➺ #ffffffNick: #00ff00 ( ".. getPlayerName(source) .." #00ff00) #ffffffID: #00ff00( "..(getAccountID(acc) or "N/A") .." )", root, 255,255,255,true) elseif eventName == "onPlayerLogout" then removeElementData( source, "ID" ) outputChatBox ( "#00ff00✘ #ffffffLOGIN #00ff00✘➺ #ffffffNick: #00ff00 ( ".. getPlayerName(source) .." #00ff00) #ffffffDeslogou.", root, 255,255,255,true) elseif eventName == "onResourceStart" then for _, player in pairs(getElementsByType("player")) do local acc = getPlayerAccount(player) if not isGuestAccount(acc) then setElementData( source, "ID", getAccountID(acc) or "N/A" ) end end end end addEventHandler("onResourceStart", resourceRoot, Start_Id) addEventHandler("onPlayerLogout", root, Start_Id) addEventHandler("onPlayerLogin", root, Start_Id) Exemplo no lado client: addCommandHandler("contaid", function() local id = getElementData( localPlayer, "ID" ) or false if id then outputChatBox( "O ID da sua conta é: "..(tostring(id) or "Erro desconhecido"), 0,230,0 ) else outputChatBox( "Você está deslogado!" ) end end ) 1 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