Jump to content

Lord Henry

Other Languages Moderators
  • Posts

    4,005
  • Joined

  • Last visited

  • Days Won

    184

Everything posted by Lord Henry

  1. Você não pode deixar funções dxDraw junto com guiCreate na mesma função. Pois os dxDraw precisam ser chamados a cada frame, enquanto que os guiCreate somente uma vez.
  2. Remova aquele source da linha 1. Não se usa source como parâmetro de função.
  3. Ele está dizendo que os botões porte e glock não existem.
  4. Qual erro aparece no /debugscript 3?
  5. Mostre como está sua declaração SELECT.
  6. Já tentei fazer isso uma vez mas deu errado. Aparentemente a colisão do marker não pode ser anexada em outros elementos (você vê o marker anexado mas a colisão dele fica no lugar que estava). A solução que encontrei foi anexar um colShape esférico da mesma forma que o marker. Dai o marker fica aparecendo só pra bonito, mas o script usa a colisão do colShape em vez disso. createColSphere
  7. @juaosilv a função getPlayerSkin já está obsoleta. Use getElementModel em vez disso. E tome cuidado com a indentação, está bem errada.
  8. Você está errando 2x aí. Primeiro que vc está criando os botões local e dai não consegue mais acessar eles fora daquela função onde foram criados. Logo, somente a função de fechar funciona, pois é a única que está dentro do escopo da função botoes. Crie os botões sem o local. Segundo que você oculta os botões ao fechar o painel, mas quando abre o painel você cria novos botões. Isso faz com que vários botões invisíveis vão sendo criados e acumulados a medida que você abre e fecha o painel. Na função de fechar o painel, destrua os botões em vez disso. addEventHandler ("onClientGUIClick", botonfechar, function() removeEventHandler ("onClientRender", root, panel) destroyElement (botonfechar) destroyElement (porte) destroyElement (glock) botonfechar = nil porte = nil glock = nil showCursor (false) end) Você teria percebido isso se usasse /debugscript 3. Ele iria avisar que o botão não foi encontrado.
  9. Não precisa criar um log novo para isso. Usando a função outputServerLog, já faz o texto ser registrado no arquivo server.log do servidor. local conta = getAccountName (getPlayerAccount (source)) local serial = getPlayerSerial (source) outputServerLog ("CHAT: [CHAT-TWITTER] "..jogador.." (login: "..conta..")".." ("..serial..")"..": "..MessagemANS) Obs: Você não deveria usar source dessa maneira. Apesar de funcionar.
  10. Tópico movido para a seção correta de Programação em Lua. @Nalicos da próxima vez, veja as regras do fórum:
  11. Encerrar o server local de maneira errada, fazendo com que ele não salve os dados antes de desligar. (é como se você tirasse o PC da tomada pra desligar o PC e perdesse todo seu trabalho que ainda não havia sido salvo). Para encerrar corretamente o servidor local, vc deve usar o comando shutdown no Server Console (aquele que parece um prompt de comando) ou usar Ctrl+C nele.
  12. Resolvido. if (seat <= 1) then -- Se o assento for 0 ou 1, então:
  13. isCursorOnElement é uma função útil, você precisa declarar o código-fonte dela pra funcionar.
  14. Também acho desnecessário fazer de graça pra você. Mas se alguém quiser, fique a vontade.
  15. setAccountData getAccountData onPlayerLogin onPlayerLogout onPlayerQuit
  16. Você esqueceu disso: E disso: E você criou o setTimer com 100 milisegundos. Meio segundo é 500 e não 100. E seu tocolor também está errado. Era pra usar 0 e não 255 no segundo e terceiro valor.
  17. Eu fiz um que salva no instante que o jogador fecha o painel de gerenciamento de veículos. Ele pega os estados de ativação e desativação que o jogador deixou no painel e salva na conta dele no formato JSON (por se tratar de uma table de valores, é obrigatório converter a table em uma string JSON para poder salvar lá, pois não tem como salvar uma table em banco de dados.) A propósito, fiz um vídeo demo do meu sistema, se quiser dar uma olhada ta ae: Painel VehMods - Demo MTA
  18. Então sua lógica é a seguinte: Cria uma variável chamada red (pode ser qualquer coisa, estou exemplificando) com valor 0. Inicia o render do painel (onClientRender) No dxDraw do painel, onde vc quer que ocorra a alternância, use tocolor (red, 0, 0, 255) (esse 255 é o alpha, você pode continuar usando o valor que já estava) O painel vai começar sendo renderizado como preto, pois red tem valor 0. Inicia um setTimer que deverá estar numa variável, com duração de meio segundo (500 milisegundos) e com infinitas repetições (0). Dentro desse timer, verifica se o valor de red == 0. Se for, então red = 255. Fazendo com que o painel fique vermelho a partir deste instante. Senão, red = 0. Fazendo com que o painel fique preto a partir deste instante. Por ser um timer infinito, ele vai ficar fazendo essa verificação a cada meio segundo, alternando o valor de red de 0 para 255 e vice-versa. Quando parar de renderizar o painel (por algum motivo, o player fechar o painel, etc), então deve-se dar killTimer naquele setTimer criado para a cor.
  19. Mas pelo que entendi, vc quer que seu painel fique alternando entre preto e vermelho. Mas qual velocidade vc espera fazer isso? 1 cor a cada frame? 1 cor a cada segundo?
  20. Piscar é uma coisa. Alternância de cores é outra.
  21. Pensei em fazer. Mas fiquei com mais preguiça do que a preguiça do cara do post em tentar por conta própria.
  22. Se refere ao último assento da viatura? A função warpPedIntoVehicle possui um parâmetro opcional para vc declarar qual o assento teleportar o jogador. 0: Frontal-Esquerdo (motorista) 1: Frontal-Direito 2: Traseiro-Esquerdo 3: Traseiro-Direito Para verificar se já existe um jogador sentado no último assento (no 3º), use getVehicleOccupant e informe o assento 3. Essa função retornará false se o assento estiver vazio ou não existir no veículo.
×
×
  • Create New...