Lord Henry

Other Languages Moderators
  • Content Count

    2,959
  • Joined

  • Last visited

  • Days Won

    93

Everything posted by Lord Henry

  1. A diferença é que setAccountData serve para armazenar dados permanentes na conta do jogador. Enquanto que setElementData serve para armazenar dados temporários em um elemento (pode ser num jogador). Se o jogador sair do servidor, toda a elementData armazenada nele é perdida. Enquanto que a data armazenada na conta permanece.
  2. 100% Brasileiro mesmo hein...
  3. Crie uma pasta organizacional (com colchetes que nem a pasta [admin], [gamemodes], etc) por exemplo uma pasta chamada [autostart]. (os colchetes servem para o MTA saber que a pasta contém outros resources, sem o colchetes ele considera a pasta como um resource. Depois de criar a pasta [autostart] (ela tem que estar na raiz da sua pasta resources, ela não pode estar dentro de outra [pasta]), crie um resource qualquer e coloque-o em qualquer lugar exceto dentro da pasta [autostart]. Eu colocaria dentro da pasta [admin] por exemplo. Esse resource qualquer será responsável por ativar todos os resources que estiverem dentro da pasta [autostart] (por esse motivo, ele não pode estar dentro dela, pois é inútil ele tentar ativar a si mesmo). Este resource precisará de permissão admin para poder ativar os demais resources, portanto coloque-o na ACL Group Admin. Este resource deve ter um server.Lua e um meta.xml. No meta.xml, vc precisa declarar o server.Lua e também informar ao MTA que este resource deve ser iniciado por último. Caso contrário ele vai tentar iniciar resources que nem foram carregados ainda e dará erro. O meta.xml deve ficar tipo assim: <meta> <info author="LordHenry" version="1.0.0" name="Auto Start Resources" description="Inicia automaticamente os resources que estiverem na [pasta] definida." type="script" /> <script src="server.Lua" type="server" /> <download_priority_group>-2</download_priority_group> </meta> E o server.Lua deve ficar assim: addEventHandler ("onResourceStart", resourceRoot, function () -- Ativa essa função quando este resource iniciar. for i, res in ipairs (getResources()) do -- Para cada resource do servidor, faça: if (getResourceOrganizationalPath (res) == "[autostart]") then -- Se o resource está dentro da pasta [autostart], então: startResource (res, true) -- Inicia o resource de maneira persistente (ele não vai desligar caso este resource seja desligado) end end end) Pronto.
  4. O material precisa ter uma cor específica para fazer o MTA entender que ele é um material de cor do veículo em vez de textura. Cor primária: #85FF00 Cor secundária: #FF00D8 Cor terciária: #00FFFF Se o seu veículo só tem uma cor, deixe o material na cor 1. (#85FF00)
  5. Edite o DFF e o TXD do veículo colocando a imagem do emoji.png Você vai precisar mapear o UV dessa textura usando um programa de modelagem 3D (como o Blender, 3DS Max ou zModeler). Depois vc importa esse DFF e TXD para o MTA, substituindo o veículo original por este. Vc vai precisar das funções: engineLoadTXD engineImportTXD engineLoadDFF engineReplaceModel
  6. O link informado é de um vídeo sobre CEGUI e não sobre o GUI Editor.
  7. Você deveria prestar mais atenção nos avisos da Wiki sobre o triggerServerEvent. Aviso: Você deveria usar a variável global client no lado server em vez de passar o localPlayer como parâmetro ou source. Se não, falsificação de evento (passando outro jogador em vez do localPlayer) seria possível. Mais informações no addEventHandler -- client-side triggerServerEvent ("habilitacao.tipob", localPlayer) -- localPlayer será o source do evento. -- server-side function tipo_b () local carro = createVehicle (555, -2064.5, -83, 35) setVehicleColor (carro, 255, 255, 255) warpPedIntoVehicle (source, carro) -- também daria pra utilizar client em vez de source. end addEvent ("habilitacao.tipob", true) addEventHandler ("habilitacao.tipob", root, tipo_b)
  8. Apenas saiba que é melhor. Não tem motivo para quebrar a cabeça com isso. Não temos como informar o quão melhor é usar tabelas. Vc precisaria fazer testes por si só com uma altíssima taxa de dados para poder observar mudanças perceptivas na performance para só então poder comparar.
  9. Não consigo pensar em nenhuma situação onde seja possível colocar tantos dados que precisam de 200 tabelas em 1 elementData. Só seria possível com 200 elementData também.
  10. Na próxima vez, poste na seção adequada Programação em Lua. Veja as regras aqui:
  11. Não existe essa de "player que está executando este recurso" no servidor. Ele é ativado pelo sistema e não pelo jogador. Você precisa especificar qual jogador deve ser teleportado pro veículo, mas no seu exemplo player não existe pois vc não declarou ele em lugar nenhum. Faça por comando, dai quem der o comando é o jogador que está interagindo com o resource. function tipob (thePlayer, cmd) -- thePlayer = jogador que executou o comando. carro = createVehicle (555, -2064.5, -83, 35) setVehicleColor (carro, 255, 255, 255) warpPedIntoVehicle (thePlayer, carro) end addCommandHandler ("carro", tipob) -- comando pra ativar essa função: /carro
  12. Tabelas não consomem processamento, elas consomem memória. ElementData além de consumir processamento (para manter sincronizado entre client e server) ele também consome memória.
  13. Você precisa editar a colisão do modelo. Senão ele vai usar a colisão do objeto original. Não adianta mudar só a malha do objeto.
  14. Use o resource slothbot, que permite a criação de NPCs inteligentes para combate. A Wiki dele está na descrição. https://community.multitheftauto.com/index.php?p=resources&s=details&id=672
  15. Provavelmente conflito entre os painéis.
  16. Não entendo de shaders.
  17. @Renaz Você não declarou o lado do script no meta.xml
  18. Mande o meta.xml então. Mande também o script inteiro que está dando erro. Pois o erro que vc apontou não está nessa parte do código.
  19. O script está em server-side, mude pra client-side.
  20. No server-side, troque sua função tagPM por essa: function tagPM (thePlayer) local login = getAccountName (getPlayerAccount (thePlayer)) if isObjectInACLGroup ("user."..login, aclGetGroup ("Dono PMESP")) then triggerClientEvent (thePlayer, "PMESPtag", thePlayer) else outputChatBox ("Acesso negado.", thePlayer, 255, 0, 0) end end addCommandHandler ("tagpm", tagPM) E apague as 4 primeiras linhas do server-side, pois não estão sendo usadas. No client-side, troque a função Abrir, por essa: function abrir () if painelPMESP then removeEventHandler ("onClientRender", root, PMESPtagg) guiSetVisible (gridlist, false) showCursor (false) else addEventHandler ("onClientRender", root, PMESPtagg) showCursor (true) guiSetVisible(gridlist, true) end painelPMESP = not painelPMESP end addEvent ("PMESPtag", true) addEventHandler ("PMESPtag", root, abrir) E na função PMESPtag, adicione mais um g no nome dela pra ficar PMESPtagg pois o nome da função está em conflito com o evento "PMESPtag".
  21. Falta uma parte do erro. Diga a mensagem inteira do erro.
  22. Cadê o código? Poste ele aqui usando o botão <> do fórum.
  23. shapeFar precisa ser um colShape e não um objeto. Onde está a parte onde vc define esse elementData?
  24. Já começou errado querendo um gerador de script. Faça na raça mesmo, aumentando os valores e testando.