Bruno R dos Santos Posted August 1, 2020 Share Posted August 1, 2020 Eu sempre quis fazer um script dessa forma, mas não consigo imaginar como começar, alguém consegue dar uma luz? na real eu quero colocar o ID de quem matou o X na tela dele. Link to comment
Other Languages Moderators androksi Posted August 1, 2020 Other Languages Moderators Share Posted August 1, 2020 (edited) Olá. Você deve obter os dados do jogador que matou e enviar para quem foi a vítima. Fiz um exemplo: Spoiler -- SERVER-SIDE addEventHandler("onPlayerWasted", root, function(_, attacker) if attacker and attacker ~= source then if getElementType(attacker) == "player" then -- Obter o ID, nickname e vida de quem matou local attackerId = getElementData(attacker, "ID") or "?" local attackerName = getPlayerName(attacker) local attackerHealth = getElementHealth(attacker) -- Enviamos esses dados que pegamos acima para quem morreu triggerClientEvent(source, "showInfoWhenPlayerIsDead", resourceRoot, {attackerId, attackerName, attackerHealth}) end end end) -- CLIENT-SIDE local screenX, screenY = guiGetScreenSize() local data, tick, alpha function showInfo() local str = data.name .. "#ffffff[" .. data.id .. "] #ff8989matou você!\n#ffffffVida: #ff8989" .. data.health .. "#ffffff%" dxDrawText(str, 0, 0, screenX, screenY, tocolor(255, 255, 255, alpha), 1.20, "sans", "center", "center", false, false, false, true) if tick + (5000) <= getTickCount() then alpha = alpha - 5 if alpha <= 0 then data = nil removeEventHandler("onClientRender", root, showInfo) end end end addEvent("showInfoWhenPlayerIsDead", true) addEventHandler("showInfoWhenPlayerIsDead", resourceRoot, function(info) if data and type(data) == "table" then return false end -- Armazenamos em uma tabela qualquer, apenas de forma temporária, para mostrar as informações data = {} data.id = info[1] data.name = info[2] data.health = info[3] -- Renderizamos a mensagem na tela tick = getTickCount() alpha = 255 addEventHandler("onClientRender", root, showInfo) end) Edited August 1, 2020 by andreisrww Link to comment
Bruno R dos Santos Posted August 1, 2020 Author Share Posted August 1, 2020 no caso eu tenho que mudar o evento "showInfoWhenPlayerIsDead" para "setplayerFallen" pois dessa sua maneira, só mostraria o ID de quem te matou, quando você morresse e perdesse tudo, no caso eu quero que quando o jogador ficasse no chão por ter sofrido muito dano, aparecesse na tela quem causou isso, estou correto? Link to comment
Other Languages Moderators androksi Posted August 1, 2020 Other Languages Moderators Share Posted August 1, 2020 Negativo. Você não precisa mudar nada. O que eu fiz é apenas um exemplo. Use de base para fazer o que deseja, dei o código pronto apenas como exemplo. É você quem precisa estudar e criar por conta própria. го! 1 Link to comment
Bruno R dos Santos Posted August 1, 2020 Author Share Posted August 1, 2020 é exatamente o que eu estou tentando fazer D:, mas não estou conseguindo, e nem informa o erro no debugscript 3. Essa parte do meu code function SetarCaidoComHS() player = source if attacker and attacker ~= source then if getElementType(attacker) == "player" then -- Obter o ID, nickname e vida de quem matou local attackerId = getElementData(attacker, "ID") or "?" local attackerName = getPlayerName(attacker) local attackerHealth = getElementHealth(attacker) if not getElementData(player, "playerFallen") then removePedFromVehicle(player) setPlayerFallen(player, true) setElementFrozen(player, true) setPedAnimation(player, "SWEET", "Sweet_injuredloop", 1, false, true, false) triggerClientEvent(player, "startDeadTime", player) -- Enviamos esses dados que pegamos acima para quem morreu triggerClientEvent(source, "showInfoWhenPlayerIsDead", resourceRoot, {attackerId, attackerName, attackerHealth}) end outputDxBox(player, 'Digite "/192" e espere que um SAMU venha e o cure ou morrerá em 3 minutos.', "warning") setTimer(function() if getElementData(player, "playerFallen") then setElementData(player, "playerFallen", false) setPlayerFallen(player, false) triggerClientEvent(player, "stopDeadTime", player) if isElement ( blip[player] ) then destroyElement(blip[player]) end killPlayer(player) outputDxBox(player, "Você demorou para ser curado e acabou morrendo!", "info") end end, 180000, 1) else setPedAnimation(player, "SWEET", "Sweet_injuredloop", 1, false, true, false) end end end setTimer(checkHealth, 1000, 0) addEvent("OnHS", true) addEventHandler("OnHS", getRootElement(), SetarCaidoComHS, root, (attacker)) foi o que eu adicionei as infos que você me passou, como na linha 1 ao 7, e na ultima linha adicionei no eventhandler! mas simplesmente parou de funcionar o HS no player (essa parte do script, se vc atirar na cabeça do jogador, ele cai e fica no chão até um "samu" vir e curar). a minha intenção de primeiro era fazer funcionar conforme ficou o seu exemplo, e assim ir melhorando e aperfeiçoando, colocando a arma que o atingiu, se foi hs ou não, e por ai vai, mas eu não to conseguindo nem imaginar como fazer funcionar o seu EXEMPLO no meu SCRIPT pra começar. Link to comment
Other Languages Moderators androksi Posted August 3, 2020 Other Languages Moderators Share Posted August 3, 2020 Há diversos erros no seu código. attacker não está definido em lugar nenhum; algumas funções utilizam player e outras source (???); a função setTimer, que está dentro da função SetarCaidoComHS, não possui funcionamento nenhum, uma vez que não é passado argumentos; a função setTimer, que está fora da função, também não há função referente à ela; evento na última linha adicionado de forma incorreta. Sugiro aprender a desenvolver seus próprios códigos, com base em códigos que são bem feitos. O código que você está tentando editar é totalmente mal otimizado e possui vários erros. Consertá-los é irrelevante. Não perca tempo. Você também pode aprender mais sobre a linguagem Lua neste link. 1 Link to comment
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now