joao2235 Posted September 12, 2019 Share Posted September 12, 2019 SkinPickup = createPickup(1481.1931152344,-1758.419921875,17.53125, 3, 1275, 000) MarkerTeste = createMarker(1481.1931152344,-1758.419921875,16.53125, "cylinder", 1.5, 255,255,255,50) setElementVisibleTo ( MarkerTeste, root, false ) function MarkerVisible (source) local account = getPlayerAccount(source) if getAccountData(account, "FirstTime") then -- aconta true if not isElementVisibleTo ( MarkerTeste, source ) then -- ñ está visível setElementVisibleTo ( MarkerTeste, source, true ) else setElementVisibleTo(MarkerTeste, source, false) end end end addEventHandler("onResourceStart", root, MarkerVisible) Gostaria que apenas aqueles players que estão com a variável, "getAccountData(account, "FirstTime") then" (line7) possam ver o marker e o pickup. Não sei o que fiz de errado, alguém pode me ajudar, por favor ? Desde já agradeço! Link to comment
beast99 Posted September 12, 2019 Share Posted September 12, 2019 onde você especifica que o elemento é true ou false? SkinPickup = createPickup(1481.1931152344,-1758.419921875,17.53125, 3, 1275, 000) MarkerTeste = createMarker(1481.1931152344,-1758.419921875,16.53125, "cylinder", 1.5, 255,255,255,50) setElementVisibleTo ( MarkerTeste, root, false ) function MarkerVisible (source) local account = getPlayerAccount(source) if getAccountData(account, "FirstTime", true) then -- aconta true if not isElementVisibleTo ( MarkerTeste, source ) then -- ñ está visível setElementVisibleTo ( MarkerTeste, source, true ) else setElementVisibleTo(MarkerTeste, source, false) end end end addEventHandler("onResourceStart", root, MarkerVisible) tente assim, não testei.. Link to comment
Furzy Posted September 12, 2019 Share Posted September 12, 2019 (edited) SkinPickup = createPickup(1481.1931152344,-1758.419921875,17.53125, 3, 1275, 000) MarkerTeste = createMarker(1481.1931152344,-1758.419921875,16.53125, "cylinder", 1.5, 255,255,255,50) function MarkerVisible (plr) local account = getPlayerAccount(plr) if getAccountData(account, "FirstTime") then setElementVisibleTo ( MarkerTeste, plr, true ) else setElementVisibleTo(MarkerTeste, plr, false) end end addEventHandler("onResourceStart", root, MarkerVisible) o if getAccountData(account,"FirstTime") then ja retorna verdadeiro, mas voce pode usar if getAccountData(account,"FirstTime") == true then e para falso if getAccountData(account,"FirstTime") == false then O source desse evento é root. Edited September 12, 2019 by Furzy Link to comment
joao2235 Posted September 12, 2019 Author Share Posted September 12, 2019 47 minutes ago, Furzy said: SkinPickup = createPickup(1481.1931152344,-1758.419921875,17.53125, 3, 1275, 000) MarkerTeste = createMarker(1481.1931152344,-1758.419921875,16.53125, "cylinder", 1.5, 255,255,255,50) function MarkerVisible (plr) local account = getPlayerAccount(plr) if getAccountData(account, "FirstTime") then setElementVisibleTo ( MarkerTeste, plr, true ) else setElementVisibleTo(MarkerTeste, plr, false) end end addEventHandler("onResourceStart", root, MarkerVisible) o if getAccountData(account,"FirstTime") then ja retorna verdadeiro, mas voce pode usar if getAccountData(account,"FirstTime") == true then e para falso if getAccountData(account,"FirstTime") == false then O source desse evento é root. Testei e não funcionou... Porque estou fazendo o seguinte script, quando o player nasce pela primeira vez ele pode escolher uma skin de graça. O que será que deve estar errado ? Link to comment
Other Languages Moderators Lord Henry Posted September 12, 2019 Other Languages Moderators Share Posted September 12, 2019 (edited) Linhas 17 e 18 são comentários. Coloque dois traços na frente dessas linhas. Ou nem coloque elas no script. Edited September 12, 2019 by Lord Henry Link to comment
joao2235 Posted September 12, 2019 Author Share Posted September 12, 2019 (edited) 5 minutes ago, Lord Henry said: Linhas 17 e 18 são comentários. Coloque dois traços na frente dessas linhas. Ou nem coloque elas no script. Sim, não coloquei elas no script. Edited September 12, 2019 by Lord Henry Link to comment
Furzy Posted September 12, 2019 Share Posted September 12, 2019 (edited) 14 minutes ago, joao2235 said: Sim, não coloquei elas no script. tenta trocar o evento para onPlayerLogin ai vc troca o plr por source novamente Edited September 12, 2019 by Furzy Link to comment
joao2235 Posted September 12, 2019 Author Share Posted September 12, 2019 Just now, Furzy said: tenta trocar o evento para onPlayerLogin ai vc troca o plr por source novamente Vou fazer isso e já posto o resultado. function MarkerVisible (source) local account = getPlayerAccount(source) if not getAccountData(account,"FirstTime") == true then setElementVisibleTo ( MarkerTeste, source, true ) else setElementVisibleTo(MarkerTeste, source, false) end end addEventHandler("onPlayerLogin", root, MarkerVisible) Fiz dessa forma acima. Console output: WARNING: [VZR]SkinNascer\clothes_s.Lua:40: Bad argument @ 'getPlayerAccount' [Expected element at argument 1, got account] [11:47:27] WARNING: [VZR]SkinNascer\clothes_s.Lua:41: Bad argument @ 'getAccountData' [Expected account at argument 1, got boolean] [11:47:27] WARNING: [VZR]SkinNascer\clothes_s.Lua:42: Bad argument @ 'setElementVisibleTo' [Expected element at argument 2, got account] Link to comment
Other Languages Moderators Lord Henry Posted September 12, 2019 Other Languages Moderators Share Posted September 12, 2019 (edited) Não use source como parâmetro de função. function MarkerVisible (prevAcc, currAcc) -- Parâmetros do evento onPlayerLogin, vc descobre isso lendo a Wiki dele. if not getAccountData (currAcc, "FirstTime") then setElementVisibleTo (MarkerTeste, source, true) -- Source também muda dependendo do evento. Neste caso source = jogador que logou. else setElementVisibleTo (MarkerTeste, source, false) end end addEventHandler ("onPlayerLogin", root, MarkerVisible) Edited September 12, 2019 by Lord Henry Link to comment
joao2235 Posted September 13, 2019 Author Share Posted September 13, 2019 13 hours ago, Lord Henry said: Não use source como parâmetro de função. function MarkerVisible (prevAcc, currAcc) -- Parâmetros do evento onPlayerLogin, vc descobre isso lendo a Wiki dele. if not getAccountData (currAcc, "FirstTime") then setElementVisibleTo (MarkerTeste, source, true) -- Source também muda dependendo do evento. Neste caso source = jogador que logou. else setElementVisibleTo (MarkerTeste, source, false) end end addEventHandler ("onPlayerLogin", root, MarkerVisible) Ainda não funcionou, fiz tudo do jeito que informou. Link to comment
Other Languages Moderators Lord Henry Posted September 13, 2019 Other Languages Moderators Share Posted September 13, 2019 Qual erro aparece no /debugscript 3? Link to comment
DNL291 Posted September 13, 2019 Share Posted September 13, 2019 Tente o seguinte, server: function MarkerVisible (_, acc) if not getAccountData(acc, "FirstTime") then triggerClientEvent( source, "onRequestCreateMarker", source ) setAccountData( acc, "FirstTime", true ) end end addEventHandler("onPlayerLogin", root, MarkerVisible) Client: addEvent( "onRequestCreateMarker", true ) addEventHandler( "onRequestCreateMarker", root, function() local SkinPickup = createPickup(1481.1931152344,-1758.419921875,17.53125, 3, 1275, 000) local MarkerTeste = createMarker(1481.1931152344,-1758.419921875,16.53125, "cylinder", 1.5, 255,255,255,50) addEventHandler( "onClientMarkerHit", MarkerTeste, function( player ) if player == localPlayer then -- código end end ) end ) A account data "FirstTime" precisa ser nil/false, se não tiver abra a internal.db e muda o valor. Deixei a marker e pickup no cliente, só você dar continuidade no código. Link to comment
joao2235 Posted September 14, 2019 Author Share Posted September 14, 2019 Não funcionou mestre, criei até uma outra conta para fazer o teste, porém sem sucesso. Tenho uma função dentro do código para testes: function skintrue (source) local account = getPlayerAccount(source) setAccountData(account, "FirstTime", true) outputChatBox("Setado para true", source) end addCommandHandler("skintrue", skintrue) function skinfalse (source) local account = getPlayerAccount(source) setAccountData(account, "FirstTime", false) outputChatBox("Setado para falso", source) end addCommandHandler("skinfalse", skinfalse) Usando os 2 comandos mesmo assim não fica visível nem o marker nem o pickup. 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