PashaBiceps Posted March 31, 2019 Posted March 31, 2019 Olá gente, eu acabei o meu script o que está acontecendo é que o jogador perde tudo quando o resource reinicia ou quando o jogador reloga. Como eu posso salvar algo desse tipo? playerCoca[player] = 0; playerBalde[player] = 0; playerTraficante[player] = 0; Obrigado desde já
Jonas^ Posted March 31, 2019 Posted March 31, 2019 Funções: SetAccountData GetAccountData Eventos: OnResourceStop OnResourceStart OnPlayerLogin OnPlayerQuit OnPlayerLogout -- OBS: Só deve usar se você possuí o /logout ativo no seu servidor, caso contrário não é necessário.
PashaBiceps Posted April 1, 2019 Author Posted April 1, 2019 18 hours ago, Jonas^ said: Funções: SetAccountData GetAccountData Eventos: OnResourceStop OnResourceStart OnPlayerLogin OnPlayerQuit OnPlayerLogout -- OBS: Só deve usar se você possuí o /logout ativo no seu servidor, caso contrário não é necessário. Não consegui por a salvar, dá este erro. Obrigado pela ajuda attempt to call upvalue 'playerTraficante' (a table value) function onPlayerQuit ( ) local playeraccount = getPlayerAccount ( source ) if ( playeraccount ) and not isGuestAccount ( playeraccount ) then local trabalhotr = playerTraficante ( source ) local ax = playerAx ( source ) local coca = playerCoca ( source ) local bagulho = playerBagulho ( source ) local IngAx1 = playerIngAx1 ( source ) local IngAx2 = playerIngAx2 ( source ) local IngCoca1 = playerIngCoca1 ( source ) local IngCoca2 = playerIngCoca2 ( source ) local IngCoca3 = playerIngCoca3 ( source ) local sementes = playerSementes ( source ) setAccountData ( playeraccount, "trabalhotr", trabalhotr ) setAccountData ( playeraccount, "droga.ax", ax ) setAccountData ( playeraccount, "droga.coca", coca ) setAccountData ( playeraccount, "droga.maconha", bagulho ) setAccountData ( playeraccount, "droga.ingax1", IngAx1 ) setAccountData ( playeraccount, "droga.ingax2", IngAx2 ) setAccountData ( playeraccount, "droga.ingcoca1", IngCoca1 ) setAccountData ( playeraccount, "droga.ingcoca2", IngCoca2 ) setAccountData ( playeraccount, "droga.ingcoca3", IngCoca3 ) setAccountData ( playeraccount, "droga.sementes", sementes ) end end function onPlayerLogin (_, playeraccount ) if ( playeraccount ) then local trabalhotr = getAccountData ( playeraccount, "trabalhotr" ) local ax = getAccountData ( playeraccount, "droga.ax" ) local coca = getAccountData ( playeraccount, "droga.coca" ) local bagulho = getAccountData ( playeraccount, "droga.maconha" ) local IngAx1 = getAccountData ( playeraccount, "droga.ingax1" ) local IngAx2 = getAccountData ( playeraccount, "droga.ingax2" ) local IngCoca1 = getAccountData ( playeraccount, "droga.ingcoca1" ) local IngCoca2 = getAccountData ( playeraccount, "droga.ingcoca2" ) local IngCoca3 = getAccountData ( playeraccount, "droga.ingcoca3" ) local sementes = getAccountData ( playeraccount, "droga.sementes" ) if ( trabalhotr ) then setAccountData ( source, trabalhotr ) end if ( ax ) then setAccountData ( source, ax ) end if ( coca ) then setAccountData ( source, coca ) end if ( bagulho ) then setAccountData ( source, bagulho ) end if ( IngAx1 ) then setAccountData ( source, IngAx1 ) end if ( IngAx2 ) then setAccountData ( source, IngAx2 ) end if ( IngCoca1 ) then setAccountData ( source, IngCoca1 ) end if ( IngCoca2 ) then setAccountData ( source, IngCoca2 ) end if ( IngCoca3 ) then setAccountData ( source, IngCoca3 ) end if ( sementes ) then setAccountData ( source, sementes ) end end end addEventHandler ( "onResourceStop", getRootElement ( ), onPlayerQuit ) addEventHandler ( "onResourceStart", getRootElement ( ), onPlayerLogin ) addEventHandler ( "onPlayerQuit", getRootElement ( ), onPlayerQuit ) addEventHandler ( "onPlayerLogin", getRootElement ( ), onPlayerLogin )
Other Languages Moderators Lord Henry Posted April 3, 2019 Other Languages Moderators Posted April 3, 2019 Na sua linha 4. playerTraficante não faz sentido. Onde ele foi declarado? 1
PashaBiceps Posted April 4, 2019 Author Posted April 4, 2019 (edited) On 03/04/2019 at 15:15, Lord Henry said: Na sua linha 4. playerTraficante não faz sentido. Onde ele foi declarado? Antes de mais obrigado pela resposta Bom, eu por meu erro estava chamando uma tabela, sendo não possível fazê-lo. Troquei esta local que estava chamando a tabela local trabalhotr = playerTraficante ( source ) Por esta local que chama a Data local trabalhotr = playerTraficante[source] Mas ainda não está salvando essa data, está dando outro erro nessa linha ( Linha 2 ) local playeraccount = getPlayerAccount ( source ) ERRO >> Bad argument @ 'getPlayerAccount' [Expected player or console at argument 1, got resource] Salvamento ( como ele está agora ) function onPlayerQuit ( ) local playeraccount = getPlayerAccount ( source ) if ( playeraccount ) and not isGuestAccount ( playeraccount ) then local trabalhotr = playerTraficante[source] local ax = playerAx[source] local coca = playerCoca[source] local bagulho = playerBagulho[source] local IngAx1 = playerIngAx1[source] local IngAx2 = playerIngAx2 [source] local IngCoca1 = playerIngCoca1 [source] local IngCoca2 = playerIngCoca2 [source] local IngCoca3 = playerIngCoca3 [source] local sementes = playerSementes [source] setAccountData ( playeraccount, "trabalhotr", trabalhotr ) setAccountData ( playeraccount, "droga.ax", ax ) setAccountData ( playeraccount, "droga.coca", coca ) setAccountData ( playeraccount, "droga.maconha", bagulho ) setAccountData ( playeraccount, "droga.ingax1", IngAx1 ) setAccountData ( playeraccount, "droga.ingax2", IngAx2 ) setAccountData ( playeraccount, "droga.ingcoca1", IngCoca1 ) setAccountData ( playeraccount, "droga.ingcoca2", IngCoca2 ) setAccountData ( playeraccount, "droga.ingcoca3", IngCoca3 ) setAccountData ( playeraccount, "droga.sementes", sementes ) end end function onPlayerLogin (_, playeraccount ) if ( playeraccount ) then local trabalhotr = getAccountData ( playeraccount, "trabalhotr" ) local ax = getAccountData ( playeraccount, "droga.ax" ) local coca = getAccountData ( playeraccount, "droga.coca" ) local bagulho = getAccountData ( playeraccount, "droga.maconha" ) local IngAx1 = getAccountData ( playeraccount, "droga.ingax1" ) local IngAx2 = getAccountData ( playeraccount, "droga.ingax2" ) local IngCoca1 = getAccountData ( playeraccount, "droga.ingcoca1" ) local IngCoca2 = getAccountData ( playeraccount, "droga.ingcoca2" ) local IngCoca3 = getAccountData ( playeraccount, "droga.ingcoca3" ) local sementes = getAccountData ( playeraccount, "droga.sementes" ) if ( trabalhotr ) then setAccountData ( source, trabalhotr ) end if ( ax ) then setAccountData ( source, ax ) end if ( coca ) then setAccountData ( source, coca ) end if ( bagulho ) then setAccountData ( source, bagulho ) end if ( IngAx1 ) then setAccountData ( source, IngAx1 ) end if ( IngAx2 ) then setAccountData ( source, IngAx2 ) end if ( IngCoca1 ) then setAccountData ( source, IngCoca1 ) end if ( IngCoca2 ) then setAccountData ( source, IngCoca2 ) end if ( IngCoca3 ) then setAccountData ( source, IngCoca3 ) end if ( sementes ) then setAccountData ( source, sementes ) end end end addEventHandler ( "onResourceStop", getRootElement ( ), onPlayerQuit ) addEventHandler ( "onResourceStart", getRootElement ( ), onPlayerLogin ) addEventHandler ( "onPlayerQuit", getRootElement ( ), onPlayerQuit ) addEventHandler ( "onPlayerLogin", getRootElement ( ), onPlayerLogin ) Edited April 4, 2019 by GodKraken
DNL291 Posted April 6, 2019 Posted April 6, 2019 Tente: function onPlayerQuitOrResStop ( ) if eventName == "onResourceStop" then for _, player in ipairs(getElementsByType("player")) do savePlayerData( player ) end return end savePlayerData( source ) end function onPlayerLogin (_, playeraccount ) if eventName == "onResourceStart" then for _, player in ipairs(getElementsByType("player")) do loadPlayerData( p ) end return end loadPlayerData( source ) end function savePlayerData( p ) local playeraccount = getPlayerAccount ( p ) if ( playeraccount ) and not isGuestAccount ( playeraccount ) then local trabalhotr = playerTraficante[p] or "n/a" local ax = playerAx[p] or false local coca = playerCoca[p] or false local bagulho = playerBagulho[p] or false local IngAx1 = playerIngAx1[p] or false local IngAx2 = playerIngAx2 [p] or false local IngCoca1 = playerIngCoca1 [p] or false local IngCoca2 = playerIngCoca2 [p] or false local IngCoca3 = playerIngCoca3 [p] or false local sementes = playerSementes [p] or false setAccountData ( playeraccount, "trabalhotr", trabalhotr ) setAccountData ( playeraccount, "droga.ax", ax ) setAccountData ( playeraccount, "droga.coca", coca ) setAccountData ( playeraccount, "droga.maconha", bagulho ) setAccountData ( playeraccount, "droga.ingax1", IngAx1 ) setAccountData ( playeraccount, "droga.ingax2", IngAx2 ) setAccountData ( playeraccount, "droga.ingcoca1", IngCoca1 ) setAccountData ( playeraccount, "droga.ingcoca2", IngCoca2 ) setAccountData ( playeraccount, "droga.ingcoca3", IngCoca3 ) setAccountData ( playeraccount, "droga.sementes", sementes ) end end function loadPlayerData( p ) local playeraccount = getPlayerAccount ( p ) if ( playeraccount ) and not isGuestAccount ( playeraccount ) then local trabalhotr = getAccountData ( playeraccount, "trabalhotr" ) or false local ax = getAccountData ( playeraccount, "droga.ax" ) or false local coca = getAccountData ( playeraccount, "droga.coca" ) or false local bagulho = getAccountData ( playeraccount, "droga.maconha" ) or false local IngAx1 = getAccountData ( playeraccount, "droga.ingax1" ) or false local IngAx2 = getAccountData ( playeraccount, "droga.ingax2" ) or false local IngCoca1 = getAccountData ( playeraccount, "droga.ingcoca1" ) or false local IngCoca2 = getAccountData ( playeraccount, "droga.ingcoca2" ) or false local IngCoca3 = getAccountData ( playeraccount, "droga.ingcoca3" ) or false local sementes = getAccountData ( playeraccount, "droga.sementes" ) or false if ( trabalhotr ) then setElementData( p, "trabalhotr", trabalhotr ) end if ( ax ) then setElementData ( p, "droga.ax", ax ) end if ( coca ) then setElementData ( p, "droga.coca", coca ) end if ( bagulho ) then setElementData ( p, "droga.maconha", bagulho ) end if ( IngAx1 ) then setElementData ( p, "droga.ingax1", IngAx1 ) end if ( IngAx2 ) then setElementData ( p, "droga.ingax2", IngAx2 ) end if ( IngCoca1 ) then setElementData ( p, "droga.ingcoca1", IngCoca1 ) end if ( IngCoca2 ) then setElementData ( p, "droga.ingcoca2", IngCoca2 ) end if ( IngCoca3 ) then setElementData ( p, "droga.ingcoca3", IngCoca3 ) end if ( sementes ) then setElementData ( p, "droga.sementes", sementes ) end end end addEventHandler ( "onResourceStop", resourceRoot, onPlayerQuitOrResStop ) addEventHandler ( "onResourceStart", resourceRoot, onPlayerLogin ) addEventHandler ( "onPlayerQuit", getRootElement ( ), onPlayerQuitOrResStop ) addEventHandler ( "onPlayerLogin", getRootElement ( ), onPlayerLogin ) 1
PashaBiceps Posted April 9, 2019 Author Posted April 9, 2019 On 06/04/2019 at 19:11, DNL291 said: Tente: function onPlayerQuitOrResStop ( ) if eventName == "onResourceStop" then for _, player in ipairs(getElementsByType("player")) do savePlayerData( player ) end return end savePlayerData( source ) end function onPlayerLogin (_, playeraccount ) if eventName == "onResourceStart" then for _, player in ipairs(getElementsByType("player")) do loadPlayerData( p ) end return end loadPlayerData( source ) end function savePlayerData( p ) local playeraccount = getPlayerAccount ( p ) if ( playeraccount ) and not isGuestAccount ( playeraccount ) then local trabalhotr = playerTraficante[p] or "n/a" local ax = playerAx[p] or false local coca = playerCoca[p] or false local bagulho = playerBagulho[p] or false local IngAx1 = playerIngAx1[p] or false local IngAx2 = playerIngAx2 [p] or false local IngCoca1 = playerIngCoca1 [p] or false local IngCoca2 = playerIngCoca2 [p] or false local IngCoca3 = playerIngCoca3 [p] or false local sementes = playerSementes [p] or false setAccountData ( playeraccount, "trabalhotr", trabalhotr ) setAccountData ( playeraccount, "droga.ax", ax ) setAccountData ( playeraccount, "droga.coca", coca ) setAccountData ( playeraccount, "droga.maconha", bagulho ) setAccountData ( playeraccount, "droga.ingax1", IngAx1 ) setAccountData ( playeraccount, "droga.ingax2", IngAx2 ) setAccountData ( playeraccount, "droga.ingcoca1", IngCoca1 ) setAccountData ( playeraccount, "droga.ingcoca2", IngCoca2 ) setAccountData ( playeraccount, "droga.ingcoca3", IngCoca3 ) setAccountData ( playeraccount, "droga.sementes", sementes ) end end function loadPlayerData( p ) local playeraccount = getPlayerAccount ( p ) if ( playeraccount ) and not isGuestAccount ( playeraccount ) then local trabalhotr = getAccountData ( playeraccount, "trabalhotr" ) or false local ax = getAccountData ( playeraccount, "droga.ax" ) or false local coca = getAccountData ( playeraccount, "droga.coca" ) or false local bagulho = getAccountData ( playeraccount, "droga.maconha" ) or false local IngAx1 = getAccountData ( playeraccount, "droga.ingax1" ) or false local IngAx2 = getAccountData ( playeraccount, "droga.ingax2" ) or false local IngCoca1 = getAccountData ( playeraccount, "droga.ingcoca1" ) or false local IngCoca2 = getAccountData ( playeraccount, "droga.ingcoca2" ) or false local IngCoca3 = getAccountData ( playeraccount, "droga.ingcoca3" ) or false local sementes = getAccountData ( playeraccount, "droga.sementes" ) or false if ( trabalhotr ) then setElementData( p, "trabalhotr", trabalhotr ) end if ( ax ) then setElementData ( p, "droga.ax", ax ) end if ( coca ) then setElementData ( p, "droga.coca", coca ) end if ( bagulho ) then setElementData ( p, "droga.maconha", bagulho ) end if ( IngAx1 ) then setElementData ( p, "droga.ingax1", IngAx1 ) end if ( IngAx2 ) then setElementData ( p, "droga.ingax2", IngAx2 ) end if ( IngCoca1 ) then setElementData ( p, "droga.ingcoca1", IngCoca1 ) end if ( IngCoca2 ) then setElementData ( p, "droga.ingcoca2", IngCoca2 ) end if ( IngCoca3 ) then setElementData ( p, "droga.ingcoca3", IngCoca3 ) end if ( sementes ) then setElementData ( p, "droga.sementes", sementes ) end end end addEventHandler ( "onResourceStop", resourceRoot, onPlayerQuitOrResStop ) addEventHandler ( "onResourceStart", resourceRoot, onPlayerLogin ) addEventHandler ( "onPlayerQuit", getRootElement ( ), onPlayerQuitOrResStop ) addEventHandler ( "onPlayerLogin", getRootElement ( ), onPlayerLogin ) Bom, ainda não salvou, talvez porque eu não esteja adicionando a data corretamente. Eu uso isso para atribuir o bagulho no fim do trabalho por exemplo. playerAx[player] = playerAx[player] + 500; Não terei de adicionar à data de um modo diferente? Obrigado pela resposta anterior
DNL291 Posted April 9, 2019 Posted April 9, 2019 Deve funcionar assim. Mas lembre-se de usar o comando /debugscript 3 sempre que testar o código. A propósito, eu corrigi um erro que havia no meu código, na função onPlayerLogin (linha 12) substitua : loadPlayerData( p ) Com loadPlayerData( player ) Indexe as tabelas corretamente, com um elemento do jogador válido para evitar erros no salvamento. Te recomendo usar outputs com os valores existentes no código ao testar o script no server. 1
PashaBiceps Posted April 10, 2019 Author Posted April 10, 2019 10 hours ago, DNL291 said: Deve funcionar assim. Mas lembre-se de usar o comando /debugscript 3 sempre que testar o código. A propósito, eu corrigi um erro que havia no meu código, na função onPlayerLogin (linha 12) substitua : loadPlayerData( p ) Com loadPlayerData( player ) Indexe as tabelas corretamente, com um elemento do jogador válido para evitar erros no salvamento. Te recomendo usar outputs com os valores existentes no código ao testar o script no server. No debugscript não dá qualquer erro. Porém apenas a data "trabalhotr" apareceu na base de dados. O resto não está salvando.
DNL291 Posted April 12, 2019 Posted April 12, 2019 Mostre o seu código completo. Pode ser que tenha algo errado com essas tabelas. 1
PashaBiceps Posted April 12, 2019 Author Posted April 12, 2019 7 hours ago, DNL291 said: Mostre o seu código completo. Pode ser que tenha algo errado com essas tabelas. Resolvido! Alterei a atribuição da data de todo script disto playerAx[player] = playerAx[player] + 500; para isto setElementData(source,"droga.ax",getElementData(source,"droga.ax")+500) 1
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