Klehber Posted July 28, 2023 Posted July 28, 2023 (edited) Estou tentando criar um sistema de marker onde após o player sair do marker ele receba dano, porém não estou conseguindo fazer com que o player receba o dano, alguem poderia me ajudar? e se tiver que fazer outro script para o lado client me ajudem por favor, sou iniciante. local function onGa:~(element, samedim) if getElementType(element) == "player" then local marker = source local isPlayerInsideMarker = isElementWithinMarker(element, marker) if not isPlayerInsideMarker then local currentHealth = getElementHealth(element) setElementHealth(element, currentHealth - 25) end end end local function setupGasMarker() local gas = createMarker( 2495, -1666, 5, "cylinder", 30, 255, 255, 0, 100 ) addEventHandler("onMarkerLeave", gas, onGa:~) end addEventHandler("onResourceStart", resourceRoot, setupGasMarker) Edited July 28, 2023 by Lord Henry Código convertido de texto para Lua.
androksi Posted July 28, 2023 Posted July 28, 2023 E aí, @Klehber — como é que você está? Tente remover a verificação da variável isPlayerInsideMarker.
Klehber Posted July 28, 2023 Author Posted July 28, 2023 11 minutes ago, androksi said: E aí, @Klehber — como é que você está? Tente remover a verificação da variável isPlayerInsideMarker. Como eu faria isso? É só remover a parte após o "="? Sou iniciante em programação no mta
androksi Posted July 28, 2023 Posted July 28, 2023 (edited) Não exatamente. Você precisa deixar assim: Observação: Percebi que no código existe um "~:" no nome da função. Se realmente for o caso, remova e deixe apenas com letras. local function onGas(element, samedim) if getElementType(element) == "player" then local currentHealth = getElementHealth(element) setElementHealth(element, currentHealth - 25) end end Edited July 28, 2023 by androksi
Klehber Posted July 28, 2023 Author Posted July 28, 2023 19 minutes ago, androksi said: Não exatamente. Você precisa deixar assim: Observação: Percebi que no código existe um "~:" no nome da função. Se realmente for o caso, remova e deixe apenas com letras. local function onGas(element, samedim) if getElementType(element) == "player" then local currentHealth = getElementHealth(element) setElementHealth(element, currentHealth - 25) end end Fiz e continua sem funcionar, se eu mudo o EventHandler para onMarkerHit o personagem recebe o dando dentro e fora do marker quando eu inicio a resource, mas se eu coloco o onMarkerLeave nada ocorre, nem dentro nem fora do marker. Sobre o "~" foi algum erro ao passar o código para o forum, o nome da função está onGa:~.
Klehber Posted July 29, 2023 Author Posted July 29, 2023 7 hours ago, Klehber said: Fiz e continua sem funcionar, se eu mudo o EventHandler para onMarkerHit o personagem recebe o dando dentro e fora do marker quando eu inicio a resource, mas se eu coloco o onMarkerLeave nada ocorre, nem dentro nem fora do marker. Sobre o "~" foi algum erro ao passar o código para o forum, o nome da função está onGa:~. local gas = createMarker( -2422.31567, -608.72510, 130, "cylinder", 30, 255, 255, 0, 100 ) function setupGasMarker(elementLeave) if getElementType(elementLeave) == "player" then local currentHealth = getElementHealth(elementLeave) setElementHealth(elementLeave, currentHealth - 25) end end addEventHandler("onMarkerLeave", getRootElement(), setupGasMarker) Agora deu certo, a questão é que o range do marker é muito grande, teria alguma outra forma de fazer uma area circular para causar dano em vez do marker ou até mesmo diminuir o range do marker para o mais proximo possivel da borda.
Other Languages Moderators Lord Henry Posted July 29, 2023 Other Languages Moderators Posted July 29, 2023 (edited) A colisão do marker cylinder é bugada mesmo. O que você pode fazer é criar um marker do tipo "corona" invisível e deixar o marker do tipo cylinder apenas como visual. Edited July 29, 2023 by Lord Henry 1
Recommended Posts