juaosilv Posted July 21, 2019 Share Posted July 21, 2019 Olá, eu queria saber se é possível por exemplo desatviar a txt / dff de um veiculo apenas pra um jogador por exemplo. Se sim com quais funções posso fazer isso. Link to comment
juaosilv Posted July 21, 2019 Author Share Posted July 21, 2019 A moderação pode fechar o tópico, já achei a função. Pra quem tiver a mesma duvida é só procurar por engineRestoreModel na wiki do mta. Link to comment
Other Languages Moderators Lord Henry Posted July 21, 2019 Other Languages Moderators Share Posted July 21, 2019 (edited) Sendo mais claro, por ser uma função client-side, você pode simplesmente determinar qual client vai executar ela em vez de anexar a função no onClientResourceStart. Daria pra você fazer server-side uma função com onPlayerLogin, se a conta do jogador que logou tiver tal data, faz um triggerClientEvent pra ativar o veículo pra ele. Isso iria ativar somente no cliente desse determinado jogador que logou. Os demais jogadores continuariam vendo o veículo original. Edited July 21, 2019 by Lord Henry Link to comment
juaosilv Posted July 21, 2019 Author Share Posted July 21, 2019 3 hours ago, Lord Henry said: Sendo mais claro, por ser uma função client-side, você pode simplesmente determinar qual client vai executar ela em vez de anexar a função no onClientResourceStart. Daria pra você fazer server-side uma função com onPlayerLogin, se a conta do jogador que logou tiver tal data, faz um triggerClientEvent pra ativar o veículo pra ele. Isso iria ativar somente no cliente desse determinado jogador que logou. Os demais jogadores continuariam vendo o veículo original. Vou tentar fazer, eu fiz mas o usuário tinha q desativar sempre q entrar. Link to comment
Other Languages Moderators Lord Henry Posted July 21, 2019 Other Languages Moderators Share Posted July 21, 2019 Por isso vc faz com accountData em vez de elementData. Pois dai vc salva os dados entre as sessões de jogo. Link to comment
juaosilv Posted July 22, 2019 Author Share Posted July 22, 2019 (edited) On 21/07/2019 at 18:47, Lord Henry said: Por isso vc faz com accountData em vez de elementData. Pois dai vc salva os dados entre as sessões de jogo. Salve lord, me da um help. Eu to tentando fazer isso, atualmente eu fiz na client pra quando o cara clicar num botão executar uma função que desativa/ativa o carro. E fiz também na client um triggerServerEvent que seta a AccountDate no cara pra identificar quando ele relogar, mas a questão é q eu queria fazer nessa função da client pra um getAccountData pra executar uma certa função, se ele tivesse por exemplo getAccountData(account, "Carro1") como true por exemplo, quando ele clicasse no menu ia dar um erro q já esta ativado o carro, assim também quando eu executasse a função no client-side ele ia identificar e setar de acordo com o cara pq se não no server-side eu ia precisar fazer duas funções tipo: function CarroDesativado() function CarroAtivado() Uma pra cada accountDate q ele tiver e eu tenho mts carros ia ser um código gigante, se funcionasse accountDate na client eu ia fazer só function Carro() getAccountData(account, "Carro") == "Ativado" ===CODE DE ATIVAR O CARRO= else === code de desativar o carro === end em vez de fazer uma função pra ativar e outra pra desativar. Qual a melhor solução nesse caso. OFF: Aliais parabéns pelo mod! Edited July 22, 2019 by juaosilv Link to comment
Other Languages Moderators Lord Henry Posted July 23, 2019 Other Languages Moderators Share Posted July 23, 2019 (edited) Exemplo maroto pra vc: server-side: function loadCarMod (prevAcc, currAcc) if (getAccountData (currAcc, "vehMod.490")) then -- Exemplo de nome de data, no caso se o veículo 490 estiver salvo como modificado na conta, então: triggerClientEvent (source, "enableVehMod.490", source, true) -- Ativa o evento no cliente do jogador que logou. (não afeta outros jogadores) e também envia o valor true como primeiro parâmetro de função. end end addEventHandler ("onPlayerLogin", root, loadCarMod) function saveCarMod (status) -- Parâmetro de função que foi passado pelo triggerServerEvent lá no client-side. local acc = getPlayerAccount (client) -- client = Variável nativa que significa: localPlayer do client-side que ativou este evento. if (not isGuestAccount (acc)) then -- Se o jogador está logado, então: (a conta não é guest) setAccountData (acc, "vehMod.490", status) -- Salva a data do veículo como true ou como false na conta do jogador. end end addEvent ("saveVehMod.490", true) addEventHandler ("saveVehMod.490", root, saveCarMod) client-side: local txd = engineLoadTXD ("fbiranch.txd") local dff = engineLoadDFF ("fbiranch.dff", 490) -- 490 é o ID do veículo a ser modificado, no caso o FBI Rancher. function startVehMod (state) -- state é o primeiro parâmetro de função, seu valor foi enviado pelo server-side no triggerClientEvent. if (state) then -- Se state for igual a true (ou qualquer valor que não seja false nem nil), então: engineImportTXD (txd, 490) engineReplaceModel (dff, 490) -- Em vez de colocar isso em uma função com evento "onClientResourceStart" pra ativar pra todo mundo, ativa somente pelo trigger do server-side no cliente específico. else -- Se state não for true, então: engineRestoreModel (490) -- Desativa a modificação no veículo, voltando para o modelo original. end end addEvent ("enableVehMod.490", true) addEventHandler ("enableVehMod.490", root, startVehMod) function vehManagement (cmd, parameter) -- Aqui eu vou fazer por comando no exemplo, mas vc pode fazer por painel. if (parameter) then -- Se parameter == true ou qualquer coisa que não seja false nem nil, então: outputChatBox ("Modificação do veículo 490 ativada.") startVehMod (parameter) -- Ativa o mod do veículo. triggerServerEvent ("saveVehMod.490", localPlayer, true) -- Manda o true para o server-side, que irá salvar o novo status do veículo na conta do jogador como ativado. else outputChatBox ("Modificação do veículo 490 desativada.") startVehMod (parameter) -- Desativa o mod do veículo. triggerServerEvent ("saveVehMod.490", localPlayer, false) -- Manda o false para o server-side, que irá salvar o status do veículo na conta do jogador como desativado. end end addCommandHandler ("veh490", vehManagement) -- Como funciona: /veh490 true ou então /veh490 false Obs: Não testado, fiz de cabeça e serve apenas como exemplo. Edit: Obrigado. Edited July 23, 2019 by Lord Henry 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