Jump to content

ERRO COM TEXTURAS


Recommended Posts

Posted (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 by OverKILL
  • Other Languages Moderators
Posted

Não. Vai usar no lado server. Por isso que precisa do triggerClientEvent.

Posted
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 

  • Other Languages Moderators
Posted (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 by Lord Henry
  • Like 1
Posted
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

Posted (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 by OverKILL
  • Other Languages Moderators
Posted

hum, dai não sei o que pode estar ocorrendo.

Precisa estudar mais para descobrir.

Posted
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

Posted

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.

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 account

Sign in

Already have an account? Sign in here.

Sign In Now
  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...