Jump to content

DNL291

Retired Staff
  • Posts

    3,875
  • Joined

  • Days Won

    67

Everything posted by DNL291

  1. Só seguir a mesma lógica que o outro tópico seu: https://forum.multitheftauto.com/topic/119979-ajuda-samu-por-id-script-id/ Vai precisar do sistema de ID no server e no seu script você coloca a função getPlayerID: function getPlayerID(id) v = false for i, player in ipairs (getElementsByType("player")) do if getElementData(player, "ID") == id then v = player break end end return v end De resto é adicionar o parâmetro id no comando e verificações.
  2. Também dá pra deixar a arma invisível com engineSetModelLODDistance Exemplo: engineSetModelLODDistance ( 355, 0.001 )
  3. Cplayer é o que? Precisa ser o carro. Em qual lado está o carro? Você vai precisar da referência dele, ou seja variável. Se está no lado server desista desse código, não tem nada a ver com o veículo. Está no evento "WarpMyVehicle" ? Se sim, modifique lá, fazendo essas alterações naquele trecho.
  4. Não, Lua não tem o poder de detectar a linguagem humana e adivinhar as coisas. Fiz um código que explica os passos e deixei comentado -- especificar 'thePlayer' if isPlayerInACL( thePlayer, "Admin" ) then -- o jogador está no grupo outputChatBox( "Bem-vindo admin "..getPlayerName(thePlayer).."!", thePlayer ) else -- o jogador não está no grupo outputChatBox( "Você não é admin!", thePlayer ) end -- função que envia mensagem para os membros de um grupo function sendMessageForGroup( msg, playerWhoSend ) for _, player in ipairs(getPlayersInACLGroup("Admin")) do -- loop nos jogadores do grupo if player ~= playerWhoSend then -- verificar se o jogador é diferente do que enviou a msg outputChatBox( msg, player ) -- mostrar a mensagem ao jogador do grupo end end end -- exemplo: sendMessageForGroup( "Olá", getPlayerFromName("nome_do_player_que_enviou") )
  5. Exemplo: local time addEvent( "onServerCallAddSetTimer", true ) addEventHandler( "onServerCallAddSetTimer", root, function () time = setTimer(function() time = nil removeEventHandler( "onClientRender", root, renderTime ) end, 180000, 1) addEventHandler( "onClientRender", root, renderTime ) end ) function renderTime() local gDetails = getTimerDetails(time) if not gDetails then return end local remainingTime = secondsToTimeDesc( gDetails / 1000 ) dxDrawText( "Tempo de vida restante: "..tostring(remainingTime), left, top, right, bottom ) end function secondsToTimeDesc( seconds ) if seconds then local results = {} local sec = ( seconds %60 ) local min = math.floor ( ( seconds % 3600 ) /60 ) local hou = math.floor ( ( seconds % 86400 ) /3600 ) local day = math.floor ( seconds /86400 ) if day > 0 then table.insert( results, day .. ( day == 1 and " day" or " days" ) ) end if hou > 0 then table.insert( results, hou .. ( hou == 1 and " hour" or " hours" ) ) end if min > 0 then table.insert( results, min .. ( min == 1 and " minute" or " minutes" ) ) end if sec > 0 then table.insert( results, sec .. ( sec == 1 and " second" or " seconds" ) ) end return string.reverse ( table.concat ( results, ", " ):reverse():gsub(" ,", " dna ", 1 ) ) end return "" end
  6. Bloqueie a arma para driveby, até onde eu sei esse problema é do GTA e certas armas (como a M4) não mostram. Embora seja possível recriar a arma na mão com script, não vale a pena tentar se você não tem conhecimento suficiente.
  7. Procure pela variável money e substitua seu valor por convertNumber( (getElementData(localPlayer, "char.money") or 0) )
  8. Tópico movido para Portuguese / Português > Programação em Lua @Duarte
  9. @alowner Por favor, evite postar em português na seção internacional e use o local do fórum correto que deve ser: Other languages > Portuguese / Português > Programação em Lua Senão terei que sempre mover seus posts para a seção certa. Sobre o problema: Faça com if elseif. if procurado == 1 then elseif procurado == 2 then --etc end Verifique se as imagens estão funcionando e o valor 'alpha' está definido.
  10. Ou tem um erro na sintaxe ou está faltando guiSetVisible. @alowner
  11. A função que teleporta o carro está no lado server, edita lá em vez disso.
  12. if getPedOccupiedVehicle(localPlayer) then -- código end Coloque essa verificação.
  13. Use setTimer com a função secondsToTimeDesc para obter a contagem do tempo.
  14. Não percebi erros, tente isto: function tele (thePlayer) if getPedOccupiedVehicle(thePlayer) then return outputChatBox ("#ff0000Você precisa sair do veículo para usar teleportes.", thePlayer, 255, 255, 255, true) end if getElementInterior(thePlayer) ~= 0 then return outputChatBox ("#ff0000Você precisa sair do interior para usar teleportes.", thePlayer, 255, 255, 255, true) end if (commando[thePlayer]) then return end fadeCamera(thePlayer, false, 0.5) setTimer( function(player) if isElement(player) then fadeCamera( player, true ) end end, 1000, 1, thePlayer ) setTimer( function(thePlayer) if (isElement(thePlayer)) then setElementPosition ( thePlayer, 260, -1780, 7 ) end end, tempo, 1, thePlayer) commando[thePlayer] = true setTimer( function(thePlayer) if (isElement(thePlayer)) then commando[thePlayer] = false end end, tempo*2, 1, thePlayer) end addCommandHandler ( "praia", tele )
  15. Atualize os drivers do sistema e certifique-se que o GTA singleplayer está funcionando corretamente. Se nada resolver por favor baixe e execute o MTA Diag: https://mirror.multitheftauto.com/mtasa/utils/MTADiag.exe e cole aqui o link gerado após a verificação.
  16. Edita a função que warpa o veículo e troca por setElementPosition com as coordenadas desejadas.
  17. O erro está aqui: local Marker_Emprego = createMarker ( -47.427, -1124.002, +6 0.078 -1, "cylinder", 1.5, 16, 111, 231, 50) Por causa do "+6"
  18. Use essa função útil: getPlayersInACLGroup E faça um loop nela para notificar os jogadores do grupo. Para verificar se o player pertence ao grupo use: isPlayerInACL
  19. Tente o seguinte, server: function MarkerVisible (_, acc) if not getAccountData(acc, "FirstTime") then triggerClientEvent( source, "onRequestCreateMarker", source ) setAccountData( acc, "FirstTime", true ) end end addEventHandler("onPlayerLogin", root, MarkerVisible) Client: addEvent( "onRequestCreateMarker", true ) addEventHandler( "onRequestCreateMarker", root, function() local SkinPickup = createPickup(1481.1931152344,-1758.419921875,17.53125, 3, 1275, 000) local MarkerTeste = createMarker(1481.1931152344,-1758.419921875,16.53125, "cylinder", 1.5, 255,255,255,50) addEventHandler( "onClientMarkerHit", MarkerTeste, function( player ) if player == localPlayer then -- código end end ) end ) A account data "FirstTime" precisa ser nil/false, se não tiver abra a internal.db e muda o valor. Deixei a marker e pickup no cliente, só você dar continuidade no código.
  20. Tente isto: hpMin = 15 Tempo = {} ColMedic = {} function getPlayerID(id) v = false for i, player in ipairs (getElementsByType("player")) do if getElementData(player, "ID") == id then v = player break end end return v end --==== function ChecarVida() for i, player in pairs (getElementsByType("player")) do if not getElementData(player, "PlayerCaido") then local conta = getAccountName(getPlayerAccount(player)) if getElementHealth(player) >= 1 then if getElementHealth(player) <= hpMin then removePedFromVehicle(player) setElementData(player, "PlayerCaido", true) setElementFrozen(player, true) setPedAnimation(player, "CRACK", "crckdeth3", 1, false, true, false) setTimer(function() if getElementData(player, "PlayerCaido") then killPed(player) end end, 240000, 1) end end else setPedAnimation(player, "CRACK", "crckdeth3", 1, false, true, false) end end end setTimer(ChecarVida, 200, 0) function ChecarVidaA() for i, player in pairs (getElementsByType("player")) do if getElementData(player, "PlayerCaido") then local conta = getAccountName(getPlayerAccount(player)) if getElementHealth(player) >= 31 then setElementData(player, "PlayerCaido", false) setPedAnimation(player, false) setElementFrozen(player, false ) end end end end setTimer(ChecarVidaA, 200, 0) function SetarCaidoComHS() player = source if not getElementData(player, "PlayerCaido") then removePedFromVehicle(player) setElementHealth(player, 20) setElementData(player, "PlayerCaido", true) setPedAnimation(player, "CRACK", "crckdeth3", 1, false, true, false) setTimer(function() if getElementData(player, "PlayerCaido") then killPed(player) end end, 240000, 1) end end addEvent("OnHS", true) addEventHandler("OnHS", getRootElement(), SetarCaidoComHS) function curar_jogador ( thePlayer, comando, id ) if id then id = tonumber ( id ) if id then local accName = getAccountName ( getPlayerAccount ( thePlayer ) ) if isObjectInACLGroup ("user."..accName, aclGetGroup ( "Samu") ) then local player_a_ser_curado = getPlayerID(id) if not player_a_ser_curado then return outputChatBox("#bebebeJogador não encontrado!",thePlayer,255,255,255,true) end local samux, samuy, samuz = getElementPosition ( thePlayer ) local curadox, curadoy, curadoz = getElementPosition ( player_a_ser_curado ) local dist = getDistanceBetweenPoints3D ( samux, samuy, samuz, curadox, curadoy, curadoz ) if player_a_ser_curado == thePlayer then outputChatBox("#bebebeVocê não pode se curar!",thePlayer,255,255,255,true) return end if ( dist > 3 ) then outputChatBox("#bebebeChegue mais perto do jogador!", thePlayer, 255, 255, 255, true) elseif ( dist < 3 )then setPedAnimation( thePlayer, "MEDIC", "CPR", 4500, true, false, false, false) setTimer ( function() if not isElement(player_a_ser_curado) then return end setElementHealth ( player_a_ser_curado, 100 ) setPedAnimation(player_a_ser_curado, false) setElementFrozen( player_a_ser_curado, false ) setElementData(player_a_ser_curado,"PlayerCaido",false) end, 4500, 1 ) end end else outputChatBox("#bebebe["..comando.."]: id inválido", thePlayer, 255, 255, 255, true) end else outputChatBox("#bebebeSintaxe: /"..comando.." [id]", thePlayer, 255, 255, 255, true) end end addCommandHandler ( "curar", curar_jogador )
  21. Você precisa ter um sistema de id e no script substitui o getPlayerFromPartialName pelo getElementData com a data do ID do jogador. Lembre-se de postar o código com a formatação Lua clicando no botão <> @danielpaulino
  22. 1 - Coloca uma verificação antes de chamar a função getPlayerByID, assim: if not tonumber(id) then return outputChatBox( "sintaxe: /".._.." [id]", police, 230,20,20 ) end 2 - Converta para number: local preso = getPlayerByID (tonumber(id))
  23. Pode ser um problema do server que você está jogando, se for isso você vai precisar contatar os donos e informar o problema.
  24. O recomendado é você deixar a dbConect ativa uma vez que o resource iniciar, e exportar as funções dbQuery e dbExec e chamar as funções com a função exportada, sem ficar sempre fazendo a conexão na database antes.
  25. Falta código... Não dá pra saber o erro sendo que ele não tá nesse trecho. Vi que o código foi postado neste tópico: O erro do mesmo já foi apontado na primeira resposta. Obs: pra funcionar você deve ter screenW definida e a função convertNumber dentro do script.
×
×
  • Create New...