FeniXMTA Posted August 21, 2018 Share Posted August 21, 2018 Olá, preciso de um suporte no .lua Então estou com uma dúvida em um painel,tipo eu fiz um painel de desativa o mod e ativar, eu percebi que eu preciso usar a função onResourceStart,mais como faço para por o nome da pasta que vai ser desativa,alguém me manda a função completa. onResourceStart Link to comment
Other Languages Moderators Lord Henry Posted August 21, 2018 Other Languages Moderators Share Posted August 21, 2018 Não entendi o que você quer fazer. Link to comment
Jonas^ Posted August 21, 2018 Share Posted August 21, 2018 (edited) Acho que ele quer por exemplo: Se Lord Henry digitar : /desativarresource Carro Isto é um exemplo por comando, mas creio que ele quer fazer isso por um painel e ele mesmo por as resources que os jogadores poderam desligar/ligar para eles mesmo, então: Ao Lord digitar /desativarresource Carro a textura do carro tal é desligada apenas para Lord Edited August 21, 2018 by OverKILL Link to comment
FeniXMTA Posted August 21, 2018 Author Share Posted August 21, 2018 5 hours ago, Lord Henry said: Não entendi o que você quer fazer. Quero fazer um painel que o player consiga desativa mod e ativa mod,tipo como texturas. 4 hours ago, OverKILL said: Acho que ele quer por exemplo: Se Lord Henry digitar : /desativarresource Carro Isto é um exemplo por comando, mas creio que ele quer fazer isso por um painel e ele mesmo por as resources que os jogadores poderam desligar/ligar para eles mesmo, então: Ao Lord digitar /desativarresource Carro a textura do carro tal é desligada apenas para Lord Isso mano. Link to comment
Other Languages Moderators Lord Henry Posted August 21, 2018 Other Languages Moderators Share Posted August 21, 2018 Para desligar um resource, vc pode usar a função stopResource. Para ligar, use startResource. Obs: O painel que vai fazer isso precisa de permissão admin. Link to comment
FeniXMTA Posted August 21, 2018 Author Share Posted August 21, 2018 27 minutes ago, Lord Henry said: Para desligar um resource, vc pode usar a função stopResource. Para ligar, use startResource. Obs: O painel que vai fazer isso precisa de permissão admin. Sim,mais eu falo assim,como eu faço a função para por a pasta do mod que vai ser ativada e desativa ? Link to comment
Other Languages Moderators Lord Henry Posted August 22, 2018 Other Languages Moderators Share Posted August 22, 2018 (edited) Cara, esqueça essa ideia de pastas. O MTA não trabalha com gerenciamento de diretórios externos ao resource por motivos de segurança. Como eu falei, você pode sim ativar ou desativar resources específicos usando as funções que passei. ---------------------------- Afinal, quais tipos de resource você quer que o jogador desative/ative? Mods de Texturas? Veículos? Edited August 22, 2018 by Lord Henry Link to comment
FeniXMTA Posted August 22, 2018 Author Share Posted August 22, 2018 59 minutes ago, Lord Henry said: Cara, esqueça essa ideia de pastas. O MTA não trabalha com gerenciamento de diretórios externos ao resource por motivos de segurança. Como eu falei, você pode sim ativar ou desativar resources específicos usando as funções que passei. ---------------------------- Afinal, quais tipos de resource você quer que o jogador desative/ative? Mods de Texturas? Veículos? Texturas amigos,mais voce disse deixa pasta pra la,e como vo por tipo qual mod será desativado e ativado ? Link to comment
Other Languages Moderators Lord Henry Posted August 22, 2018 Other Languages Moderators Share Posted August 22, 2018 12 hours ago, FeniXMTA said: Texturas amigos,mais voce disse deixa pasta pra la,e como vo por tipo qual mod será desativado e ativado ? Se você desativar o mod de texturas, irá desativar pra todo mundo. Dai não tem vantagem nenhuma usar esse painel, pois é o mesmo que ir no painel admin e desligar o resource. Link to comment
Other Languages Moderators Lord Henry Posted August 22, 2018 Other Languages Moderators Share Posted August 22, 2018 (edited) Eu fiz esse exemplo que funciona por comando, dai cabe a você fazer por painel. As modificações dos veículos estão no mesmo resource. Client-Side txd = {} dff = {} txd[426] = engineLoadTXD ('premier.txd') engineImportTXD (txd[426], 426) dff[426] = engineLoadDFF ('premier.dff', 426) engineReplaceModel (dff[426], 426) txd[489] = engineLoadTXD ('rancher.txd') engineImportTXD (txd[489], 489) dff[489] = engineLoadDFF ('rancher.dff', 489) engineReplaceModel (dff[489], 489) function remodVehicles1 (cmd, id) -- Função que ativa/desativa a modificação do veículo. Ex: /disableVeh 426 if not id then return end if cmd == "enableVeh" then if (dff[tonumber(id)]) then engineReplaceModel (dff[tonumber(id)], tonumber(id)) outputChatBox ("Modificação do veículo #FFFFFF'"..getVehicleNameFromModel (tonumber(id)).."'#00FF00 ativada.", 231, 217, 176, true) end if (txd[tonumber(id)]) then engineImportTXD (txd[tonumber(id)], tonumber(id)) end elseif cmd == "disableVeh" then if (dff[tonumber(id)]) then engineRestoreModel (tonumber(id)) outputChatBox ("Modificação do veículo #FFFFFF'"..getVehicleNameFromModel (tonumber(id)).."'#FF0000 desativada.", 231, 217, 176, true) end end end addCommandHandler ("enableVeh", remodVehicles1) addCommandHandler ("disableVeh", remodVehicles1) Edited August 22, 2018 by Lord Henry Link to comment
FeniXMTA Posted August 22, 2018 Author Share Posted August 22, 2018 (edited) 1 hour ago, Lord Henry said: Eu fiz esse exemplo que funciona por comando, dai cabe a você fazer por painel. As modificações dos veículos estão no mesmo resource. Client-Side txd = {} dff = {} txd[426] = engineLoadTXD ('premier.txd') engineImportTXD (txd[426], 426) dff[426] = engineLoadDFF ('premier.dff', 426) engineReplaceModel (dff[426], 426) txd[489] = engineLoadTXD ('rancher.txd') engineImportTXD (txd[489], 489) dff[489] = engineLoadDFF ('rancher.dff', 489) engineReplaceModel (dff[489], 489) function remodVehicles1 (cmd, id) -- Função que ativa/desativa a modificação do veículo. Ex: /disableVeh 426 if not id then return end if cmd == "enableVeh" then if (dff[tonumber(id)]) then engineReplaceModel (dff[tonumber(id)], tonumber(id)) outputChatBox ("Modificação do veículo #FFFFFF'"..getVehicleNameFromModel (tonumber(id)).."'#00FF00 ativada.", 231, 217, 176, true) end if (txd[tonumber(id)]) then engineImportTXD (txd[tonumber(id)], tonumber(id)) end elseif cmd == "disableVeh" then if (dff[tonumber(id)]) then engineRestoreModel (tonumber(id)) outputChatBox ("Modificação do veículo #FFFFFF'"..getVehicleNameFromModel (tonumber(id)).."'#FF0000 desativada.", 231, 217, 176, true) end end end addCommandHandler ("enableVeh", remodVehicles1) addCommandHandler ("disableVeh", remodVehicles1) Vlw aee. Edited August 22, 2018 by FeniXMTA Link to comment
FeniXMTA Posted August 22, 2018 Author Share Posted August 22, 2018 25 minutes ago, FeniXMTA said: Vlw aee. Mano tlg eu precisa assim dar o comando e desativa o objeto,sem precisar dar o comando e o ID que vai ser desativado,será que tem como ? Link to comment
Other Languages Moderators Lord Henry Posted August 23, 2018 Other Languages Moderators Share Posted August 23, 2018 (edited) Tem sim. txd = engineLoadTXD ('premier.txd') engineImportTXD (txd, 426) dff = engineLoadDFF ('premier.dff', 426) engineReplaceModel (dff, 426) function remodVehicle (cmd) -- Função que ativa/desativa a modificação do veículo Premier. Ex: /offPremier if cmd == "onPremier" then engineImportTXD (txd, 426) engineReplaceModel (dff, 426) outputChatBox ("Modificação do veículo #FFFFFF'Premier'#00FF00 ativada.", 231, 217, 176, true) elseif cmd == "offPremier" then engineRestoreModel (426) outputChatBox ("Modificação do veículo #FFFFFF'Premier'#FF0000 desativada.", 231, 217, 176, true) end end addCommandHandler ("onPremier", remodVehicle) addCommandHandler ("offPremier", remodVehicle) -------------------------------------------------------- Eu ficaria agradecido se você desse um Thanks nas minhas respostas. Assim como mostra a minha assinatura. Edited August 23, 2018 by Lord Henry Otimização de código. 1 Link to comment
FeniXMTA Posted August 23, 2018 Author Share Posted August 23, 2018 (edited) 1 hour ago, Lord Henry said: Tem sim. txd = engineLoadTXD ('premier.txd') engineImportTXD (txd, 426) dff = engineLoadDFF ('premier.dff', 426) engineReplaceModel (dff, 426) function remodVehicle (cmd) -- Função que ativa/desativa a modificação do veículo Premier. Ex: /offPremier if cmd == "onPremier" then engineImportTXD (txd, 426) engineReplaceModel (dff, 426) outputChatBox ("Modificação do veículo #FFFFFF'Premier'#00FF00 ativada.", 231, 217, 176, true) elseif cmd == "offPremier" then engineRestoreModel (426) outputChatBox ("Modificação do veículo #FFFFFF'Premier'#FF0000 desativada.", 231, 217, 176, true) end end addCommandHandler ("onPremier", remodVehicle) addCommandHandler ("offPremier", remodVehicle) -------------------------------------------------------- Eu ficaria agradecido se você desse um Thanks nas minhas respostas. Assim como mostra a minha assinatura. Vlw amigo,desculpa sei que é Thanks não, sou novato no forum. Edited August 23, 2018 by FeniXMTA Link to comment
FeniXMTA Posted August 23, 2018 Author Share Posted August 23, 2018 1 hour ago, FeniXMTA said: Vlw amigo,desculpa sei que é Thanks não, sou novato no forum. Mano e se fosse textura de rua,como eu faço ? que é cheio de fotos e tals,não tem um jeito específico que só precisa por o nome da pasta do mod,sei la. Link to comment
Other Languages Moderators Lord Henry Posted August 23, 2018 Other Languages Moderators Share Posted August 23, 2018 9 hours ago, FeniXMTA said: Vlw amigo,desculpa sei que é Thanks não, sou novato no forum. É um voto de agradecimento que vc dá a um comentário no fórum que ajuda na reputação do autor. Só vc ir em baixo do comentário e passar o mouse em cima daquele ícone de coração. Dai vai aparecer vários tipos de reações. Selecione aquele Troféu roxo, que indica que vc está agradecendo pela resposta. Link to comment
Other Languages Moderators Lord Henry Posted August 23, 2018 Other Languages Moderators Share Posted August 23, 2018 8 hours ago, FeniXMTA said: Mano e se fosse textura de rua,como eu faço ? que é cheio de fotos e tals,não tem um jeito específico que só precisa por o nome da pasta do mod,sei la. Dai nesse caso é mais trabalhoso de fazer, pois como vc já deve saber, precisa informar todos os IDs de todas as ruas que terão a textura substituída. Mas basicamente funciona da mesma forma. A única coisa que não vai ter é a parte do DFF, já que não há substituição de modelo, apenas de texturas. 1 Link to comment
[M]ister Posted August 23, 2018 Share Posted August 23, 2018 Uma maneira de funcionar da maneira que você falou (ativar/desativar os scripts de um resource apenas para o jogador que acionou o comando) é 1. Ler o arquivo meta.xml do resource especificado; 2. Identificar os scripts (.lua) e arquivos (dff/txd/col) percorrendo o xml; 3. Carregar os scripts com loadstring() no lado cliente (necessário ler no lado server e depois transferir); 4. Ler no lado server e transferir para o lado cliente os arquivos (dff/txd/col) e então salva-los; 5. Identificar os modelos substituídos para então retorna-lo ao estado original quando desejado (sobrescrevendo funções do tipo: engineReplaceModel() para conseguir armazenar o ID substituído). Para funcionar o exemplo acima, é necessário que os resources não sejam ativados (apenas deve manter ON o script responsável pela leitura dos resources)! O mais inviável seria o passo (4), talvez adaptar os resources, mudando no meta.xml as tags <script> por <file> dos arquivos .lua e então ativar os resources normalmente, para então baixar os mods (mas não trabalhar os scripts) seria uma boa... Falei o mais simplificado possível, e é necessário um conhecimento intermediário / avançado para construir algo do tipo! Vá por mim, procure outros métodos, e tente utilizar em apenas um resources, unindo todos seus mods de veículos/texturas e etc. Será bem mais fácil fazer o que você quer (desativar/ativar mods) 1 Link to comment
FeniXMTA Posted August 23, 2018 Author Share Posted August 23, 2018 1 hour ago, MaligNos said: Uma maneira de funcionar da maneira que você falou (ativar/desativar os scripts de um resource apenas para o jogador que acionou o comando) é 1. Ler o arquivo meta.xml do resource especificado; 2. Identificar os scripts (.lua) e arquivos (dff/txd/col) percorrendo o xml; 3. Carregar os scripts com loadstring() no lado cliente (necessário ler no lado server e depois transferir); 4. Ler no lado server e transferir para o lado cliente os arquivos (dff/txd/col) e então salva-los; 5. Identificar os modelos substituídos para então retorna-lo ao estado original quando desejado (sobrescrevendo funções do tipo: engineReplaceModel() para conseguir armazenar o ID substituído). Para funcionar o exemplo acima, é necessário que os resources não sejam ativados (apenas deve manter ON o script responsável pela leitura dos resources)! O mais inviável seria o passo (4), talvez adaptar os resources, mudando no meta.xml as tags <script> por <file> dos arquivos .lua e então ativar os resources normalmente, para então baixar os mods (mas não trabalhar os scripts) seria uma boa... Falei o mais simplificado possível, e é necessário um conhecimento intermediário / avançado para construir algo do tipo! Vá por mim, procure outros métodos, e tente utilizar em apenas um resources, unindo todos seus mods de veículos/texturas e etc. Será bem mais fácil fazer o que você quer (desativar/ativar mods) Seria possivel usar a função startResource para ativar o mod e stopResource para desativar ? tipo colocando dentro da função a pasta do mod que será ativa. Link to comment
FeniXMTA Posted August 23, 2018 Author Share Posted August 23, 2018 8 hours ago, Lord Henry said: Dai nesse caso é mais trabalhoso de fazer, pois como vc já deve saber, precisa informar todos os IDs de todas as ruas que terão a textura substituída. Mas basicamente funciona da mesma forma. A única coisa que não vai ter é a parte do DFF, já que não há substituição de modelo, apenas de texturas. Mais tipo txd de lojas,ruas e etc,de Lojas não tem dff,então na hora de desativar ela não consigo usar engineReplaceModel,e de ruas são por img,e não txd.ENTENDEU ? Link to comment
[M]ister Posted August 24, 2018 Share Posted August 24, 2018 5 hours ago, FeniXMTA said: Seria possivel usar a função startResource para ativar o mod e stopResource para desativar ? tipo colocando dentro da função a pasta do mod que será ativa. É possível, só que seria exatamente o que o @Lord Henry comentou: usando startResource() / stopResource() irá afetar a todos no servidor.... 3 hours ago, FeniXMTA said: Mais tipo txd de lojas,ruas e etc,de Lojas não tem dff,então na hora de desativar ela não consigo usar engineReplaceModel,e de ruas são por img,e não txd.ENTENDEU ? Nas substituições apenas de .txd é só usar destroyElement() no elemento criado pelo engineLoadTXD() Ruas por imagem ? utilizam shader né ?... então seria utilizado o engineRemoveShaderFromWorldTexture() Link to comment
Other Languages Moderators Lord Henry Posted August 24, 2018 Other Languages Moderators Share Posted August 24, 2018 15 hours ago, FeniXMTA said: Mais tipo txd de lojas,ruas e etc,de Lojas não tem dff,então na hora de desativar ela não consigo usar engineReplaceModel,e de ruas são por img,e não txd.ENTENDEU ? Fiz este exemplo que você pode ativar e desativar a textura da Grove Street em seus respectivos modelos usando /enable e /disable. addCommandHandler ("enable", function () txd = engineLoadTXD ("Los Santos/lae2roadshub.txd") -- Neste exemplo, substitui a textura da Grove Street. engineImportTXD (txd, 17595, 17597, 17610, 17611, 17612, 17613) -- Aplica a textura aos respectivos objetos. end) addCommandHandler ("disable", function () if isElement (txd) then -- Se existe a textura, então: destroyElement (txd) -- Deleta a textura e volta ao original. txd = nil end end) Da mesma forma, você pode usar para ativar ou desativar texturas de lojas. 1 Link to comment
Jonas^ Posted August 24, 2018 Share Posted August 24, 2018 (edited) Bom, se quiser pode usar este exemplo também, este exemplo é o mesmo que o do @Lord Henry porém com output avisando sobre desativar/ativar a textura: addCommandHandler ("ativartexturas", function () txd = engineLoadTXD ("Diretorio da textura") engineImportTXD (txd, id da textura que ira modificar) outputChatBox ( "Texturas ativadas !", 0, 255, 0 ) end) addCommandHandler ("desativartexturas", function () if isElement (txd) then destroyElement (txd) txd = nil outputChatBox ( "Texturas desativadas !", 255, 0, 0 ) end end) 1 hour ago, Lord Henry said: Fiz este exemplo que você pode ativar e desativar a textura da Grove Street em seus respectivos modelos usando /enable e /disable. addCommandHandler ("enable", function () txd = engineLoadTXD ("Los Santos/lae2roadshub.txd") -- Neste exemplo, substitui a textura da Grove Street. engineImportTXD (txd, 17595, 17597, 17610, 17611, 17612, 17613) -- Aplica a textura aos respectivos objetos. end) addCommandHandler ("disable", function () if isElement (txd) then -- Se existe a textura, então: destroyElement (txd) -- Deleta a textura e volta ao original. txd = nil end end) Da mesma forma, você pode usar para ativar ou desativar texturas de lojas. Tem alguma forma de fazer as texturas ficarem sempre desativada para os jogadores que entrarem? e só ativar se tal jogador quiser que a textura apareça para ele usando o comando /ativartexturas e uma verificação neste comando ? por exemplo: Se tiver ativada as texturas envia: '' As texturas já estão ativadas '' Eu imaginei fazer com xml salvando o valor true e false, mas não achei viável queria saber se tem outra forma 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 1 hour ago, OverKILL said: Tem alguma forma de fazer as texturas ficarem sempre desativada para os jogadores que entrarem? No exemplo em questão ele por padrão já deixa desativado. Ele só ativa ao usar o /enable. 1 hour ago, OverKILL said: e uma verificação neste comando ? por exemplo: Se tiver ativada as texturas envia: '' As texturas já estão ativadas '' Só adicionar uma condição que verifica se txd já existe. addCommandHandler ("ativartexturas", function () if not txd then txd = engineLoadTXD ("Diretorio da textura") engineImportTXD (txd, id) outputChatBox ("Texturas ativadas!", 0, 255, 0) else outputChatBox ("Texturas já estão ativadas!", 255, 255, 0) end end) addCommandHandler ("desativartexturas", function () if isElement (txd) then destroyElement (txd) txd = nil outputChatBox ("Texturas desativadas!", 255, 0, 0) else outputChatBox ("Texturas já estão desativadas!", 255, 255, 0) end end) 1 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