-
Posts
4,008 -
Joined
-
Last visited
-
Days Won
184
Everything posted by Lord Henry
-
Não. É com isElement.
-
Erro na linha 162. Se o veículo não possuir data de combustível, ele para de ler a função e nada acontece. Use essa: function kocsiindit() local veh = getPedOccupiedVehicle(localPlayer) local state = getVehicleEngineState ( veh ) if not state then m = true if getElementHealth(veh) >= 321 then --Verifica se o carro ta quebrado, se não estiver: m = true else m = false outputChatBox("#1066E7[BVH - Veiculo]: #FFFFFFParece que está com o motor fundido chame por um Mecânico /mecanicos!", 255, 255, 255, true) end if (getElementData(veh, "DNL:Combustivel")) then -- Verifica se o veículo tem dados de gasolina, se tiver: if getElementData(veh, "DNL:Combustivel") > 0 then --Verifica se o veiculo ta sem gasolina, se estiver com gasolina: m = true outputChatBox("#1066E7[BVH - Veiculo]: #FFFFFFVeiculo ligado!", 255, 255, 255, true) else m = false outputChatBox("#1066E7[BVH - Veiculo]: #FFFFFFO Veiculo está sem gasolina", 255, 255, 255, true) end else m = true outputChatBox("#1066E7[BVH - Veiculo]: #FFFFFFO Veiculo ligado. Este modelo não usa gasolina.", 255, 255, 255, true) end else m = false outputChatBox("#1066E7[BVH - Veiculo]: #FFFFFFVeiculo desligado!", 255, 255, 255, true) end triggerServerEvent("vehicleStart",localPlayer,localPlayer,veh,m) end
-
A função unpack não funciona dessa maneira. Ela serve para "desempacotar" uma table em valores separados. Ex: Voltando ao seu problema, por favor evite de censurar a imagem do erro, pois assim não tem como saber qual função específica está gerando erro. Além disso, ninguém se importa com o nome do seu script. Você tem uma table com as coordenadas aleatórias onde o marker deve aparecer. Com o math.random vc seleciona uma dessas coordenadas e cria o marker nela. O unpack será usado para separar as coordenadas x, y, z em variáveis para poder criar o marker. Mas vale lembrar que não é obrigatório fazer com unpack, vou mostrar ambos os jeitos de ser feito: local arr = { {2455.423, -2079.331, 12.547}, -- Item 1 da table arr {2458.529, -2078.655, 12.547}, -- Item 2 da table arr {2462.126, -2078.502, 12.547}, -- E assim por diante. } function test () -- Exemplo com unpack: local x, y, z = unpack (arr[math.random (#arr)]) -- Desempacota um item aleatório da table arr. Atribuindo seus valores nas variáveis. createMarker (x, y, z, "cylinder", 1.5, 50, 100, 255, 100) end addCommandHandler ("teste", test) function test2 () -- Exemplo sem unpack: local indice = math.random (#arr) -- Gera um valor aleatório de 1 até 3 (pois 3 é o maior índice da table arr) [veja no próximo conteúdo oculto] local x = arr[indice][1] -- Atribui o primeiro valor do item aleatório no x. local y = arr[indice][2] -- Atribui o segundo valor do item aleatório no y. local z = arr[indice][3] -- Atribui o terceiro valor do item aleatório no z. -- Acima fiz basicamente o mesmo trabalho do unpack. createMarker (x, y, z, "cylinder", 1.5, 50, 100, 255, 100) end addCommandHandler ("testar", test2)
-
Quando o player desloga, o timer dele continua mas o elemento do jogador não existe mais, gerando erro. Vc tem 2 opções: Não faça com setTimer. Adicione uma verificação no setTimer, que vai verificar se o player ainda existe, se não existir, cancela o timer com killTimer e cancela a função com um return.
-
Tente isso: function verificarACL () local resourceName = getResourceName (resource) -- resource é uma variável predefinida pelo MTA, ela é = getThisResource() if not isObjectInACLGroup ("resource."..resourceName, aclGetGroup("Admin")) then outputDebugString (resourceName..": Adicione este resource na ACL Group 'Admin'") cancelEvent () end end addEventHandler ("onResourceStart", resourceRoot, verificarACL) -- Ativa essa função quando este resource for iniciado. -- resourceRoot também é predefinida pelo MTA, ela é = getResourceRootElement(getThisResource()) Predefined_variables_list Obs: É necessário estar com /debugscript 3 ativado para ver a mensagem.
-
E mais uma coisa: Se o seu resource não tem permissão admin, ele não vai conseguir dar stopResource.
-
Pra que usar a variável thisResource? É mais fácil usar direto o getThisResource() E está faltando evento ativador nessa sua função.
-
Tem o createLight mas não sei se ele interage com objetos customizados.
-
Já tentou com setTimer?
-
Eu usaria executeSQLQuery com banco de dados nativo do MTA. Não vejo vantagem em fazer externo com MySQL pois é um pouco mais complicado. E por estar aprendendo, o ideal é começar pelo mais fácil.
-
Client function stopmusic() if (isElement (sound)) then stopSound(sound) end end addEvent ("pararsom", true) addEventHandler ("pararsom", root, stopmusic) addEventHandler ("onClientResourceStart", resourceRoot, function() setTimer (function() sound = playSound ("joinsound.mp3") end, 2000, 1) end) Server addEventHandler ("onPlayerLogin", root, function() triggerClientEvent (source, "pararsom", source) end)
-
Ué. Já tentou estudar o realdriveby pra fazer igual?
-
Utilize o botão <> do fórum para colar códigos. Não cole direto no texto.
- 1 reply
-
- 1
-
-
BLOQUEIO DE CODIGO DE COR NO NICK CHAT LOCAL
Lord Henry replied to OrrutoSCR's topic in Programação em Lua
Utilize o botão <> do fórum para postar códigos. Não cole direto no texto. -
Troque os nomes dos eventos DNL:Pegar_Cargas, DNL:Pegar_Carro, DNL:Pegar_Uniforme(Sedex), DNL:Abrir_Correios e DNL:Fechar_Correios. Você deveria aprender a fazer scripts do 0 em vez de apenas modificar scripts de terceiros.
-
script RENDERIZAÇÃO
Lord Henry replied to Big Smoker's topic in Ajudas relacionadas ao MTA:SA (Cliente/Servidor)
Objetos customizados sempre tem draw distance menor. Somente os objetos nativos do cenário podem ser vistos a distância, pois possuem LOD models anexados. -
Claro que tem. Talvez ele mexeu no painel Admin e deu ruim. Ou então ele criou outro script que usa esse mesmo comando e está dando conflito.
-
Você pode usar getGroundPosition para saber a altura do chão na coordenada que vc quer criar o veículo. Obs: Só funciona client-side.
-
@MesaDowN sim. StopSound funciona também.
-
Ele tem um painel de gerenciamento de blips. Nesse painel ele seleciona os tipos de blips que devem aparecer usando caixas de seleção. Ao desmarcar a caixa de Hospitais, somente os blips de hospitais devem sumir do mapa. Mas ele está com problemas para destruir os blips corretos.
-
elementData é uma data temporária salva em um elemento. Quando esse elemento é destruído ou desconecta do servidor, sua data é perdida. Para datas permanentes, salve na conta do jogador com setAccountData.
-
Não cara. Aí vc já está fazendo tentativa no escuro. Sem saber oq está fazendo. Pra quê o return?
-
CEGUI é isso mesmo, você é limitado a usar este design. Se quer outro design, só fazendo em DX.
-
getRealTime().timestamp guiCreateWindow guiCreateButton guiCreateLabel guiCreateRadioButton guiCreateEdit guiCreateGridList guiGridListAddColumn getElementsByType getPlayerName guiGridListAddRow addCommandHandler getPlayerAccount setAccountData getAccountData isObjectInACLGroup aclGroupAddObject aclGroupRemoveObject Boa sorte.
