-
Posts
4,005 -
Joined
-
Last visited
-
Days Won
184
Everything posted by Lord Henry
-
Resolver bug de redirecionar cada jogador para o team antigo
Lord Henry replied to kevincouto6's topic in Programação em Lua
Você deveria comentar cada linha do seu código para saber o que está fazendo em cada uma. Algumas partes parecem estar com falha na lógica. Sobre o jogador voltar ao time antigo, vc precisa salvar um elementData nele quando ele usa o comando pra ir pro PVP, salvando o time antigo nessa data e depois setando o jogador de volta no time salvo na data dele. Um salve pro Tommy, que está digitando logo abaixo. \/ -
Nome de usuário é inútil nesses casos. Você precisa do serial dele, juntamente com as provas do ataque e fazer uma denúncia diretamente a algum admin do MTA via mensagem privada aqui no fórum. Mas já vou logo avisando que é difícil deles banirem, pois a maioria dos casos é culpa do dono do servidor que não soube configurar uma proteção adequada.
-
[Duvida/Ajuda] Carro ligar ao ser consertado
Lord Henry replied to virgingod's topic in Programação em Lua
Deixe um Thanks nas respostas que lhe ajudaram. -
[Duvida/Ajuda] Carro ligar ao ser consertado
Lord Henry replied to virgingod's topic in Programação em Lua
A questão do motor ligar e desblindar vc coloca no script de reparar. -
[AJUDA] Colocar Level de Procurado, Acaso Ataque tal Ped.
Lord Henry replied to Kody's topic in Programação em Lua
createPed onClientPedDamage triggerServerEvent addEvent addEventHandler getPlayerWantedLevel setPlayerWantedLevel -
[Duvida/Ajuda] Carro ligar ao ser consertado
Lord Henry replied to virgingod's topic in Programação em Lua
Recuperar apenas a vida do veículo, mas manter os amassados: setElementHealth (theVehicle, 1000) Reparar totalmente o veículo, deixando-o novo: fixVehicle (theVehicle) Ligar o motor do veículo: setVehicleEngineState (theVehicle, true) -
Movido para a seção Offtopic por se tratar de recrutamento de Staffs para servidor.
-
client-side function onChatMessage (text) if (text == "login: You successfully logged in") then -- Se a mensagem hardcoded for igual a esta, então: cancelEvent() -- Cancela essa mensagem. outputChatBox ("login: Você logou com sucesso.", 255, 170, 0) -- Envia isso no lugar dela. end end addEventHandler ("onClientChatMessage", root, onChatMessage)
- 3 replies
-
- 1
-
-
- portuguese
- Lua
-
(and 1 more)
Tagged with:
-
Painel p Bugado
Lord Henry replied to Niick's topic in Ajudas relacionadas ao MTA:SA (Cliente/Servidor)
Ou então você removeu o resource Admin da ACL Group Admin. Dessa forma o painel Admin não tem mais permissão para nada. -
Imagem hud responsiva de acordo com o radar
Lord Henry replied to Mopped's topic in Programação em Lua
Ué. Só criar 4 variáveis, 2 delas pra posição sem o radar e as outras 2 pra posição com o radar. Quando estiver dentro do veículo, faz o dxDraw da HUD com as variáveis com o radar, caso contrário, desenha a HUD com as variáveis sem o radar. Pra otimizar, eu faria as variáveis dentro de uma table. local positions = { [1] = {screenX*0.01, screenY*0.08}, -- Posição sem o radar. [2] = {screenX*0.01, screenY*0.06} -- Posição com o radar. } function render () if (getPedOccupiedVehicle(localPlayer)) then -- Se o jogador está dentro de um veículo, então: dxDrawRectangle (positions[2][1], positions[2][2], 200, 100) -- dxDraw com as posições do segundo item da table. else -- Se o jogador está a pé, então: dxDrawRectangle (positions[1][1], positions[1][2], 200, 100) -- dxDraw com as posições do primeiro item da table. end end (Programado e postado via mobile) -
script Freezar veiculo dentro de uma ColShope
Lord Henry replied to Big Smoker's topic in Programação em Lua
getVehicleController - Obtém quem está dirigindo o veículo. getVehicleOccupant - Obtém o jogador que está ocupando determinado assento do veículo. -
Adicione também o "onPlayerLogout"
-
duvida [DUVIDA]
Lord Henry replied to Big Smoker's topic in Ajudas relacionadas ao MTA:SA (Cliente/Servidor)
O MTA Server usa mais memoria RAM do que processador. E o nome daquele "prompt de comando preto" é Server Console. -
processLineOfSight é meio bugado, além de ser pesado. Você pode verificar a posição do clique e compará-lo com a posição do porta-malas. Se clicou perto da posição do porta-malas, então considera como clicou no porta-malas. function fClientClick (button, state, absoluteX, absoluteY, worldX, worldY, worldZ, clickedElement) if (button == "left") and (state == "up") then if not getPedOccupiedVehicle(localPlayer) and isElement(clickedElement) and getElementType(clickedElement) == "vehicle" then -- if getElementData(clickedElement, "Owner") == localPlayer then local cx, cy, cz = getVehicleComponentPosition(clickedElement, "boot_dummy", "world") -- Obtém a posição do porta-malas if (math.abs(cx - worldX) <= 1) and (math.abs(cy - worldY) <= 1) and (math.abs(cz - worldZ) <= 1) then -- Se a diferença entre a posição clicada e a posição do porta-malas for menor que 1 (clicou perto), então: print("Clicou no porta-malas!") else print("Não clicou no porta-malas.") end if (boot) then destroyElement (boot) end if (target) then destroyElement (target) end boot = createMarker (cx, cy, cz, "corona", 0.1) -- Somente para testes. Marca a posição do porta-malas em azul. target = createMarker (worldX, worldY, worldZ, "corona", 0.1, 255, 0, 0, 255) -- Somente para testes. Marca a posição clicada em vermelho. -- if not guiGetVisible(weaponWindow) then -- guiSetVisible(weaponWindow, true) -- triggerServerEvent("RefreshListWeapons", resourceRoot, getElementModel(clickedElement)) -- triggerServerEvent("OpenVehicleTrunk", resourceRoot, clickedElement, true) -- end -- vehicleClicked = clickedElement -- end end end end addEventHandler ("onClientClick", root, fClientClick) Se você quer que ele aceite cliques mais precisos, vc pode diminuir aqueles 1 da condição. Quanto menor o valor, mais perto do porta-malas precisa ser o clique para ser considerado no porta-malas.
-
De nada, deixe um Thanks no comentário que lhe ajudou.
-
Ah, perdão pelo vacilo. Corrigido.
-
Merry Christmas and happy holidays everyone. Feliz natal e feliz fim de ano para todos. E um salve pros BRs ?
-
function chePlayergr(player,x,y,z,baseName) cheTimer = setTimer(function(player,baseName) if isElement(player) and getElementType(player) == "player" and baseName then if not((checkPlayerPermission(player,"A08") and getElementData(player,"Group") == getGroupNameFromBaseName(baseName)) or isObjectInACLGroup("user."..getAccountName(getPlayerAccount(player)),aclGetGroup("Admin"))) then if isTimer(cheTimer) then killTimer(cheTimer) end setElementPosition(player,x,y,z+1) outputChatBox("Você não tem mais acesso a Base!",player,255,255,255,true) end else killTimer(cheTimer) end end, 2000, 0, player, baseName) end Já vou logo adiantando que vai dar uma série de problemas por usar setTimer server-side e sem indexar no jogador. Outros jogadores causarão conflito neste setTimer.
-
Rapaziada eu quero trocar a tecla do chat alguem pode ajudar ?
Lord Henry replied to NeoGM's topic in Programação em Lua
Na próxima vez, utilize o botão <> do fórum para postar código. -
Corrija a indentação. Está difícil de ler assim.
-
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)