#DeltaSCR Posted January 22, 2019 Posted January 22, 2019 Olá caros amigos, então, estou desenvolvendo um código cujo o player passará por Verificação de Data, mas ai que está o problema, estou com um erro e gostaria que me ajudassem... No lado do (client-side), depois que é executado todo o codigo, o player é setado na data a seguir: setElementData (localPlayer, "DeltaSCR_HaveRG", "Sim") Até ai tudo bem, esse Data é Sub Dividido em 2 Partes: "Não" se ele não possui o documento e "Sim" se ele possui; Logo a frente no lado do (server-side) é necessário que eu verifique se o Player está não está com a data "Sim", pois se ele tiver, não deverá abrir um determinado painel quando ele passar no marker: function openPainel (marker, md) if not getElementData (localPlayer, "DeltaSCR_HaveRG") == "Sim" then -- Verificação Citada if md then if marker == mkRG then triggerClientEvent (source, "DeltaSCR_OCRG", root) end end else outputChatBox ("#ffff00Atenção: Você já possui seu RG", localPlayer, 255, 255, 255, true) end end addEventHandler ("onPlayerMarkerHit", getRootElement(), openPainel) Mas ao fazer isto, o debugscript apresenta o seguinte erro: WARNING: [mods]\[SCR]Identidade\DeltaSCR_server.lua:39: Bad argument @ 'getElementData' [Expected element at argument 1, got nil] Minha duvida é: O que eu devo fazer para resolver isto? 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 January 22, 2019 Moderators Posted January 22, 2019 localPlayer não existe no lado server. Troque por source. 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 January 22, 2019 Author Posted January 22, 2019 Just now, Lord Henry said: localPlayer não existe no lado server. Troque por source. OK, O erro do debug desapareceu, agora tenho outro problema, o painel é para aparecer somente para quem está na data "Não", aqui no caso ele está aparendo para ambas data ("Sim" e "Não"), e no caso está aparecendo quando o player sai do marker, quando era pra aparecer quando o mesmo entra. Eis o codigo: function openPainel (marker, md) if not getElementData (source, "DeltaSCR_HaveRG") == "Sim" then if md then if marker == mkRG then triggerClientEvent (source, "DeltaSCR_OCRG", root) end end else outputChatBox ("#ffff00Atenção: Você já possui seu RG", localPlayer, 255, 255, 255, true) end end addEventHandler ("onPlayerMarkerHit", getRootElement(), openPainel) function closePainel (marker, md) if md then if marker == mkRG then triggerClientEvent (source, "DeltaSCR_OCRG", root) end end end addEventHandler ("onPlayerMarkerLeave", getRootElement(), closePainel) Minha resposta te ajudou? Por favor, não esqueça de avaliar - #DeltaSCR Minha página no Facebook: Delta Scripting - MTA "Viribus et honor"
brunob22 Posted January 22, 2019 Posted January 22, 2019 fica postando resto de codigo. fica dificil pelo menos eu .. se quiser minha ajuda nao poste resto de codigo porque eu não sou advinha
#DeltaSCR Posted January 22, 2019 Author Posted January 22, 2019 Just now, brunob22 said: fica postando resto de codigo. fica dificil pelo menos eu .. se quiser minha ajuda nao poste resto de codigo porque eu não sou advinha Postei somente está parte porque no meu conceito, é o necessário Minha resposta te ajudou? Por favor, não esqueça de avaliar - #DeltaSCR Minha página no Facebook: Delta Scripting - MTA "Viribus et honor"
brunob22 Posted January 22, 2019 Posted January 22, 2019 function openPainel (marker, md) if not getElementData (source, "DeltaSCR_HaveRG") == "Sim" then --- < <<< MUDE SIM E NAO . PARA TRUE E FALSE E ASSIM FICA if X then mais facil doque if x = "sim" then if md then if marker == mkRG then ---<<<< MKRG? ???????????? triggerClientEvent (source, "DeltaSCR_OCRG", root) end end else outputChatBox ("#ffff00Atenção: Você já possui seu RG", localPlayer, 255, 255, 255, true) ---<<< ja foi informado que localplayer e so client end end addEventHandler ("onPlayerMarkerHit", getRootElement(), openPainel) ---< "onPlayerMarkerHit" esse evento e chamado quando o player entra .. function closePainel (marker, md) if md then --- <<<< VOCE SABE QUE ISSO EA DIMENSAO? QUE O PLAYER TA? if marker == mkRG then ---- << mkRG? que isso? triggerClientEvent (source, "DeltaSCR_OCRG", root) ---<<< E ISSO VAI PARA ONDE? NARMIA? end end end addEventHandler ("onPlayerMarkerLeave", getRootElement(), closePainel) ctz? mudei algumas coisas para ver q resto de codigo não funciona tenho algum desconfiança que esse codigo tu pego pronto
#DeltaSCR Posted January 22, 2019 Author Posted January 22, 2019 4 minutes ago, brunob22 said: function openPainel (marker, md) if not getElementData (source, "DeltaSCR_HaveRG") == "Sim" then --- < <<< MUDE SIM E NAO . PARA TRUE E FALSE E ASSIM FICA if X then mais facil doque if x = "sim" then if md then if marker == mkRG then ---<<<< MKRG? ???????????? triggerClientEvent (source, "DeltaSCR_OCRG", root) end end else outputChatBox ("#ffff00Atenção: Você já possui seu RG", localPlayer, 255, 255, 255, true) ---<<< ja foi informado que localplayer e so client end end addEventHandler ("onPlayerMarkerHit", getRootElement(), openPainel) ---< "onPlayerMarkerHit" esse evento e chamado quando o player entra .. function closePainel (marker, md) if md then --- <<<< VOCE SABE QUE ISSO EA DIMENSAO? QUE O PLAYER TA? if marker == mkRG then ---- << mkRG? que isso? triggerClientEvent (source, "DeltaSCR_OCRG", root) ---<<< E ISSO VAI PARA ONDE? NARMIA? end end end addEventHandler ("onPlayerMarkerLeave", getRootElement(), closePainel) ctz? mudei algumas coisas para ver q resto de codigo não funciona tenho algum desconfiança que esse codigo tu pego pronto mkRG Signifca um Marker que está criado em uma parte mais acima; function closePainel: o objetivo dessa função é: quando o Player sair do Marker "mkRG", o painel que está aberto ser a fechado Minha resposta te ajudou? Por favor, não esqueça de avaliar - #DeltaSCR Minha página no Facebook: Delta Scripting - MTA "Viribus et honor"
brunob22 Posted January 22, 2019 Posted January 22, 2019 porque a função de abriir e fechar ta levando para o msm lugar do client ? triggerClientEvent (source, "DeltaSCR_OCRG", root)
#DeltaSCR Posted January 22, 2019 Author Posted January 22, 2019 Just now, brunob22 said: porque a função de abriir e fechar ta levando para o msm lugar do client ? triggerClientEvent (source, "DeltaSCR_OCRG", root) Por que a função a basicamente a mesma... (Estou pelo celular agora), é mais ou menos assim: function openCreateRG() if RGPanel == false then showCursor (true) -- O resto é desnecessário postar else showCursor (false) end end É mais ou menos isso ae 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 January 22, 2019 Posted January 22, 2019 (edited) Tente o seguinte (não testado): function openPainel (marker, md) if getElementData (source, "DeltaSCR_HaveRG") ~= "Sim" then if md and marker == mkRG then triggerClientEvent ( source, "DeltaSCR_OCRG", source, true ) end else outputChatBox ("#ffff00Atenção: Você já possui seu RG", source, 255, 255, 255, true) end end addEventHandler ("onPlayerMarkerHit", getRootElement(), openPainel) function closePainel (marker, md) if md and marker == mkRG and getElementData (source, "DeltaSCR_HaveRG") ~= "Sim" then triggerClientEvent ( source, "DeltaSCR_OCRG", source ) end end addEventHandler ("onPlayerMarkerLeave", getRootElement(), closePainel) Client: function openCreateRG( open ) if open then -- abrir o painel showCursor (true) -- O resto é desnecessário postar else -- fechar showCursor (false) end end addEvent( "DeltaSCR_OCRG", true ) addEventHandler( "DeltaSCR_OCRG", root, openCreateRG ) Edited January 22, 2019 by DNL291 1 Please do not PM me with scripting related question nor support, use the forums instead.
#DeltaSCR Posted January 22, 2019 Author Posted January 22, 2019 2 minutes ago, DNL291 said: Tente o seguinte (não testado): function openPainel (marker, md) if getElementData (source, "DeltaSCR_HaveRG") ~= "Sim" then if md and marker == mkRG then triggerClientEvent ( source, "DeltaSCR_OCRG", source, true ) end else outputChatBox ("#ffff00Atenção: Você já possui seu RG", source, 255, 255, 255, true) end end addEventHandler ("onPlayerMarkerHit", getRootElement(), openPainel) function closePainel (marker, md) if md and marker == mkRG then triggerClientEvent ( source, "DeltaSCR_OCRG", source ) end end addEventHandler ("onPlayerMarkerLeave", getRootElement(), closePainel) Client: function openCreateRG( open ) if open then -- abrir o painel showCursor (true) -- O resto é desnecessário postar else -- fechar showCursor (false) end end addEvent( "DeltaSCR_OCRG", true ) addEventHandler( "DeltaSCR_OCRG", root, openCreateRG ) Vou testar aqui 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 January 22, 2019 Posted January 22, 2019 2 minutes ago, danblemes1 said: Vou testar aqui Ok, atualizei o código, coloquei uma verificação no evento onPlayerMarkerLeave. Please do not PM me with scripting related question nor support, use the forums instead.
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