-
Posts
3,980 -
Joined
-
Last visited
-
Days Won
181
Everything posted by Lord Henry
-
local Coords = { -- Deixe isso fora das funções. {123, -321, 12}, -- Coordenada 1 {123, -321, 12}, -- Coordenada 2 {123, -321, 12}, -- Coordenada 3 } -- Quando for usar no script: local x, y, z = unpack (Coords[math.random(#Coords)])
-
O que é espaçamento? Termo genérico cujo significado varia dependendo do contexto. Na programação, se refere aos espaços dados no início das linhas para definir os escopos das funções e condições. Normalmente são dados 4 espaços de uma vez. Utiliza a tecla SPACE. O que é tabulação? É o termo usado para atribuir espaços no início das linhas com a tecla TAB do teclado em vez do SPACE. Ao apertar TAB, ele insere um espaço único e grande, seu tamanho varia de acordo com o programa que está sendo usado para escrever o script. Ele pode ter o tamanho de 2, 4, 8 espaços. Quando usar cada tipo? E por quê? A tabulação é mais comum e útil em textos normais, como redação por exemplo. Utilizada para dar aquele espaço no início da primeira linha de um parágrafo no tamanho exato. É melhor e mais fácil do que ficar contando uma quantidade exata de espaços. Já na programação, você deve configurar o editor de scripts para inserir espaçamentos em vez de tabulações ao apertar a tecla TAB para evitar tabulações no script. É preferível o uso de espaços pois estes possuem sempre o mesmo tamanho, independente do editor de scripts que você use para ler seu código. Já a tabulação possui diferentes tamanhos dependendo de onde o código estiver sendo mostrado. Vou mostrar um exemplo prático do que acontece se você usar tabulação em um script em vez de espaços. Como ele está no editor de scripts: (notepad++) Como ele aparece no fórum: function QualquerCoisa() print("tabulação") print("espaçamento") end No script acima, ambos aparecem com o mesmo tamanho (4 espaços) no editor de scripts. Mas no fórum, a tabulação assume o tamanho de 8 espaços, o que acaba ficando grande demais e diferente do espaçamento. (selecione o script acima com seu mouse e veja como a seleção se comporta, perceba que antes do primeiro print, existe 1 único espaço grande, é uma tabulação. E no segundo print temos 4 espaços.) Essa diferença de espaços prejudica a indentação do script, que acaba ficando ilegível. Normalmente acontece quando o script tem partes de código copiadas de algum lugar com uma forma e o resto programado pelo usuário de outra forma. Você não é obrigado a programar com espaços, mas é preferível que se use espaços do que tabulações para evitar diferenças de tamanhos. Usar espaçamentos em vez de tabulações é considerada uma boa prática de programação, assim como a indentação. Curtiu este conteúdo? Achou ele útil para você ou para alguém? Deixe seu like neste tópico clicando no coração abaixo. \/
- 1 reply
-
- 1
-
- espaçamento
- tabulação
-
(and 2 more)
Tagged with:
-
Corrija a indentação, dai vc vai perceber o erro.
-
Sim, é possível. Mas isso é considerado ilegal, uma vez que os Staffs do servidor passam a ter acesso às senhas dos jogadores, já que pra efetuar login automático você precisaria salvar a senha descriptografada em algum lugar. A não ser que você salve em um arquivo client-side separado, disponível somente na máquina do jogador. Mas se você não se importa com a ética e quiser fazer isso mesmo assim, basta salvar o serial da pessoa que criou a conta e a senha usada para criar a conta numa accountData. Esses dados são acessíveis para os Staffs, o que viola a privacidade dos jogadores. Você também precisa proibir a criação de contas secundárias. Um serial não pode criar mais do que uma conta. Caso contrário o script dará conflito pois não saberá em qual das contas logar automaticamente. É necessário isso: GetAccounts - Obtém todas as contas do servidor, isso é pesado dependendo de quantas contas existem no servidor. Um loop for para passar por cada conta. SetAccountData - Usado no momento de criação da conta. Use para setar o serial de quem criou a conta nela e setar a senha como uma data também. GetAccountData - Usado no momento de criação da conta e também ao tentar logar. Ele verifica se já existe uma conta com o serial do jogador e impede que ele crie outra conta, caso já exista uma. E também loga o jogador automaticamente nesta conta que já existe, usando a senha salva na data.
-
Especifica veiculo no entervehicle em outra função
Lord Henry replied to Doongogar's topic in Programação em Lua
Deixe o bmx = createVehicle... fora da função. -
@Jubs_noobA posição X, Y são aqueles dois primeiros 0 ali do DxDrawRectangle.
-
Não existe source dentro da função do setTimer, ele sempre se torna nulo. Portanto nunca use source dentro de uma função de setTimer. Você errou na indentação, por isso não percebeu que end do timer está na posição incorreta. Ele deveria estar depois do end seguinte.
-
Preciso de ajuda com o givePlayerMoney
Lord Henry replied to Jubs_noob's topic in Programação em Lua
Ali no lugar do 1000, troque por: math.random(500, 1000) Supondo q o valor mínimo seja 500 e o máximo 1000. -
Você havia criado este tópico na seção internacional do fórum. Lá vc só pode criar tópicos em inglês. Se quiser criar tópicos em Português, vc deve postar aqui na seção portuguesa. O admin apenas disse que ele moveu este tópico para a seção portuguesa.
- 4 replies
-
- brasil
- portuguese
-
(and 1 more)
Tagged with:
-
Olá, quando for colar scripts no fórum, utilize o botão <> do fórum e selecione a linguagem LUA na janela q aparecer. Seguindo com sua dúvida. Você não passa a imagem por parâmetro e sim os valores. Você pode passar uma tabela do cliente para o servidor, especificando quais imagens estão disponíveis. Ex: -- Client-side local imagens = { [1] = true, [2] = false, } triggerServerEvent("givePlayerWeapon", hitPlayer, imagens) -- Server-side addEvent("givePlayerWeapon", true) addEventHandler("givePlayerWeapon", root, function (theImages) if (theImages[1]) then -- Imagem 1 existe. end end)
-
Preciso de ajuda com o givePlayerMoney
Lord Henry replied to Jubs_noob's topic in Programação em Lua
Olá @Jubs_noob, você pode utilizar Math.random para fazer isso. Especificando o valor mínimo no primeiro parâmetro e o máximo no segundo. -
Terá q fazer um script server-side e vincular ao client usando triggerClientEvent.
-
Como bloquear o chat de abrir, no guiGetText?
Lord Henry replied to Bruno R dos Santos's topic in Programação em Lua
Código ilegível, indente o código. -
Isso acontece pois a função isObjectInACLGroup é server-side, mas a função dxDrawImage é client-side.
-
Game mode do servidor BR DAYZ faca no buxo
Lord Henry replied to vicoconstantino's topic in Mapas para MTA:SA
Olá. Não é permitido publicar links terceirizados de recursos. Se quiser publicar, publique em community.multitheftauto.com e então poste o link. Também esteja ciente de que não é permitido publicar resources vazados/roubados ou sem autorização do desenvolvedor original. -
É possivel pegar a cord de objetos padrão do GTA?
Lord Henry replied to KiritoAguiar's topic in Programação em Lua
Olá. Removendo os postes já serve para remover a luz. Ela faz parte do poste. -
@Rafax7Preste atenção em qual seção você está. Não fale em inglês se você estiver na seção portuguesa. E não fique criando outros tópicos com o mesmo assunto em inglês. Mostre o script que você estava tentando fazer.
-
Cancelar Ação De Player Expulsar o Outro Do Carro
Lord Henry replied to Doongogar's topic in Programação em Lua
Script ilegível. Indente o script adequadamente. -
É possivel pegar a cord de objetos padrão do GTA?
Lord Henry replied to KiritoAguiar's topic in Programação em Lua
Olá. Não é possível pelo MTA. O máximo que vc consegue é descobrir as posições dos objetos usando esse site. Selecione no mapa uma posição próxima do objeto que você quer obter. Depois selecione o objeto na lista de objetos que aparecerem e clique em details. Na página do objeto, vá até o final e lá em baixo clique em Fullscreen/position export, ele vai abrir uma tabela com todas as posições em que esse objeto está. Copie a tabela e cole no seu script. Obs: As rotações não aparecem. -
Não é necessário programar um resource novo para isso. Basta usar o resource nativo freecam. Ele fica na pasta [editor]
-
Você colocou o nome da sua função como giveWeapon, este nome já é utilizado pelo próprio MTA, então vc não pode usá-lo. Acostume-se a programar já indentando para não se perder. Senão fica mais difícil para você mesmo achar os erros e ler seu script durante o desenvolvimento.
-
Corrija a indentação. E não utilize nomes de funções nativas na sua função, por isso o erro.
-
Condição caso player esteja em modo "Duck"
Lord Henry replied to Doongogar's topic in Programação em Lua
Resource:Bone_attach -
Sim, precisa. Já arrumei o script. Oq aparece no debugscript?
-
Coloque os timers dentro de variáveis e então vc pode usar killTimer nas variáveis. local TheTimers = {} -- Tabela vazia, onde ficarão os timers. function DelayMessage(thePlayer) outputChatBox ("Instant text!") TheTimers[1] = setTimer(function() -- Cria o primeiro timer e coloca ele na 1 posição da tabela. outputChatBox("5 seconds delay text!") end, 5000, 2) TheTimers[2] = setTimer(function() -- Cria o segundo timer e coloca ele na 2 posição da tabela. outputChatBox("Final text") end, 10001, 1) end addCommandHandler("msg", DelayMessage) addCommandHandler("parar", StopMsg() for i,v in pairs (TheTimers) do -- Para cada item da tabela TheTimers, faça: if (isTimer(v)) then -- Se o item é um timer ativo, então: killTimer(v) -- Cancela esse timer. TheTimers[i] = nil -- Anula a variável dele para desocupar memória. end end end)