Jonas^ Posted August 24, 2018 Share Posted August 24, 2018 (edited) Olá pessoal, bom eu fiz um script de textura para meu servidor, porém ele contém um bug, se um jogador entrar no meu servidor, e ir em outro servidor a minha textura ira aparecer para ele lá. ou se o jogador entrar no servidor de alguém primeiro e não tiver a textura lá, e entrar no meu ele não consegue ver as texturas, a não ser que eu de restart na resource código: CLIENT-SIDE addEventHandler('onClientResourceStart', resourceRoot, function () txd = engineLoadTXD ("Textura/texture.txd") engineImportTXD (txd, 14853) end) Edited August 24, 2018 by OverKILL Link to comment
Other Languages Moderators Lord Henry Posted August 24, 2018 Other Languages Moderators Share Posted August 24, 2018 Ative a textura com o evento onPlayerJoin e desative com onPlayerQuit. Vai precisar usar triggerClientEvent. 1 Link to comment
Jonas^ Posted August 24, 2018 Author Share Posted August 24, 2018 6 minutes ago, Lord Henry said: Ative a textura com o evento onPlayerJoin e desative com onPlayerQuit. Vai precisar usar triggerClientEvent. Não entendi muito bem, vou usar o evento onPlayerJoin/onPlayerQuit no lado client? Link to comment
Other Languages Moderators Lord Henry Posted August 25, 2018 Other Languages Moderators Share Posted August 25, 2018 Não. Vai usar no lado server. Por isso que precisa do triggerClientEvent. Link to comment
Jonas^ Posted August 25, 2018 Author Share Posted August 25, 2018 7 hours ago, Lord Henry said: Não. Vai usar no lado server. Por isso que precisa do triggerClientEvent. Não entendi a parte de desativar e ativar como vou fazer pra ativar e desativar com o onplayerjoin e onplayerquit Link to comment
Jonas^ Posted August 25, 2018 Author Share Posted August 25, 2018 Teria como você fazer um exemplo comentado para mim entender cada parte? Link to comment
Other Languages Moderators Lord Henry Posted August 25, 2018 Other Languages Moderators Share Posted August 25, 2018 (edited) Server-side: addEventHandler ("onPlayerJoin", getRootElement(), function () triggerClientEvent (source, "iniciarTexturas", source) -- Executa o evento "iniciarTexturas" do client.lua somente no jogador que entrou. end) addEventHandler ("onPlayerQuit", getRootElement(), function () triggerClientEvent (source, "desativarTexturas", source) -- Executa o evento "desativarTexturas" do client.lua somente no jogador que saiu. end) Client-side: function iniciar () if not txd then -- Se a textura não está ativada, então: txd = engineLoadTXD ("Textura/texture.txd") engineImportTXD (txd, 14853) end end addEvent ("iniciarTexturas", true) -- Cria um evento personalizado e permite que ele seja chamado por outros scripts. addEventHandler ("iniciarTexturas", getRootElement(), iniciar) addCommandHandler ("enable", iniciar) -- Comando para ativar as texturas manualmente. function desativar () if isElement (txd) then -- Se existe a textura, então: destroyElement (txd) -- Deleta a textura e volta ao original. txd = nil end end addEvent ("desativarTexturas", true) -- Cria um evento personalizado e permite que ele seja chamado por outros scripts. addEventHandler ("desativarTexturas", getRootElement(), desativar) addCommandHandler ("disable", desativar) -- Comando para desativar as texturas manualmente. Obs: Não cheguei a testar. Edited August 25, 2018 by Lord Henry 1 Link to comment
Jonas^ Posted August 25, 2018 Author Share Posted August 25, 2018 25 minutes ago, Lord Henry said: Server-side: addEventHandler ("onPlayerJoin", getRootElement(), function () triggerClientEvent (source, "iniciarTexturas", source) -- Executa o evento "iniciarTexturas" do client.lua somente no jogador que entrou. end) addEventHandler ("onPlayerQuit", getRootElement(), function () triggerClientEvent (source, "desativarTexturas", source) -- Executa o evento "desativarTexturas" do client.lua somente no jogador que saiu. end) Client-side: function iniciar () if not txd then -- Se a textura não está ativada, então: txd = engineLoadTXD ("Textura/texture.txd") engineImportTXD (txd, 14853) end end addEvent ("iniciarTexturas", true) -- Cria um evento personalizado e permite que ele seja chamado por outros scripts. addEventHandler ("iniciarTexturas", getRootElement(), iniciar) addCommandHandler ("enable", iniciar) -- Comando para ativar as texturas manualmente. function desativar () if isElement (txd) then -- Se existe a textura, então: destroyElement (txd) -- Deleta a textura e volta ao original. txd = nil end end addEvent ("desativarTexturas", true) -- Cria um evento personalizado e permite que ele seja chamado por outros scripts. addEventHandler ("desativarTexturas", getRootElement(), desativar) addCommandHandler ("disable", desativar) -- Comando para desativar as texturas manualmente. Obs: Não cheguei a testar. Obrigado, esta parte do script que eu não estava conseguindo entender: addEventHandler ("onPlayerJoin", getRootElement(), function () triggerClientEvent (source, "iniciarTexturas", source) -- Executa o evento "iniciarTexturas" do client.lua somente no jogador que entrou. end) addEventHandler ("onPlayerQuit", getRootElement(), function () triggerClientEvent (source, "desativarTexturas", source) -- Executa o evento "desativarTexturas" do client.lua somente no jogador que saiu. end) 43 minutes ago, Lord Henry said: Server-side: addEventHandler ("onPlayerJoin", getRootElement(), function () triggerClientEvent (source, "iniciarTexturas", source) -- Executa o evento "iniciarTexturas" do client.lua somente no jogador que entrou. end) addEventHandler ("onPlayerQuit", getRootElement(), function () triggerClientEvent (source, "desativarTexturas", source) -- Executa o evento "desativarTexturas" do client.lua somente no jogador que saiu. end) Client-side: function iniciar () if not txd then -- Se a textura não está ativada, então: txd = engineLoadTXD ("Textura/texture.txd") engineImportTXD (txd, 14853) end end addEvent ("iniciarTexturas", true) -- Cria um evento personalizado e permite que ele seja chamado por outros scripts. addEventHandler ("iniciarTexturas", getRootElement(), iniciar) addCommandHandler ("enable", iniciar) -- Comando para ativar as texturas manualmente. function desativar () if isElement (txd) then -- Se existe a textura, então: destroyElement (txd) -- Deleta a textura e volta ao original. txd = nil end end addEvent ("desativarTexturas", true) -- Cria um evento personalizado e permite que ele seja chamado por outros scripts. addEventHandler ("desativarTexturas", getRootElement(), desativar) addCommandHandler ("disable", desativar) -- Comando para desativar as texturas manualmente. Obs: Não cheguei a testar. Eu testei aqui, porém percebi uma bug: Quando um jogador entra no servidor aparece a mensagem que executou realmente o evento, aparece '' Texturas ativadas '' mas, a textura não aparece, apenas se o jogador digitar /desativartexturas e /ativartexturas Link to comment
Jonas^ Posted August 25, 2018 Author Share Posted August 25, 2018 (edited) Tem alguma forma de fazer o evento não executar quando o jogador entrar e somente quando sair? então: A textura só sera ativada se o jogador usar o comando /ativartexturas e destruida quando o jogador sair do servidor, sera que isso pode ser uma solução? o que não estou entendendo é: Oque esta causando esse BUG OBS: Testei aqui desabilitando o evento do onPlayerJoin, mas não tive sucesso na hora do jogador desconectar ele destroy a textura, porém se entrar em outro servidor ou entrar de novo no meu ele continuar mostrando a textura, mesmo destruindo a txd. Edited August 25, 2018 by OverKILL Link to comment
Other Languages Moderators Lord Henry Posted August 26, 2018 Other Languages Moderators Share Posted August 26, 2018 hum, dai não sei o que pode estar ocorrendo. Precisa estudar mais para descobrir. Link to comment
Jonas^ Posted August 26, 2018 Author Share Posted August 26, 2018 1 hour ago, Lord Henry said: hum, dai não sei o que pode estar ocorrendo. Precisa estudar mais para descobrir. Pse não faço a mínima idéia do que pode ser já revisei tudo dentro do txd nada de errado Link to comment
DNL291 Posted August 27, 2018 Share Posted August 27, 2018 A textura carregada com funções Lua no MTA só executa na máquina virtual do próprio ambiente, isto é, no servidor. Não sei se realmente existe essa possibilidade, pode ser um bug do MTA ou outro tipo de problema como a textura no próprio GTA. A propósito, use a função engineRestoreModel quando desativar a textura / sair do servidor, pode ser que corrija. 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