Jump to content

DNL291

Retired Staff
  • Posts

    3,875
  • Joined

  • Days Won

    67

Everything posted by DNL291

  1. Você deve colocar o elemento jogador ou ped no primeiro argumento. Os argumentos necessários são: giveWeapon( ped, ID_da_arma )
  2. DNL291

    [HELP]Trailer

    Use detachTrailerFromVehicle. I didn't understand when exactly the trailer should be detached.
  3. Os parâmetros estão errados. Deixe-os desta forma: function prender(thePlayer, cmd, nick)
  4. rafaelel, Não é necessário editar todas suas mensagens após resolver o problema. Lembre-se também, que o seu tópico pode ajudar outras pessoas que também tenham um problema relacionado ao seu. Além disso, você está quebrando esta regra do fórum:
  5. Pra que serve essa imagem? Se for só como background é só desativar ela com guiSetEnabled e deixá-la atrás dos outros elementos da janela.
  6. Read this: meta.xml Change the tag type to server
  7. Se for nesse trecho aí, pode ser getElementData que não está retornando um número.
  8. O que tava falando é que as funções DX precisam ser renderizadas afim de permanecer na tela. E seu problema até então era esse mesmo: você havia usado as funções para o evento "onClientClick". Voltando ao assunto em questão: De que forma deve ser mostrado e também ocultado tudo isso? Porque no código atual, que você testou, o DX é mostrado na tela quando clica em qualquer local da tela, exceto o que "fecha". Você deve modificar para quando quer que mostre o DX. Pra forçar o cursor ocultado, só usar showCursor(false) no trecho que adiciona o evento "onClientRender".
  9. Use setGameSpeed no lado client.
  10. Try this: -- server-side addCommandHandler( "boulaskin", function ( sourcePlayer ) local account = getAccountName(getPlayerAccount(sourcePlayer)) if isObjectInACLGroup("user." .. account, aclGetGroup("Boula")) then setElementModel(sourcePlayer, 204) setTimer(triggerClientEvent, 50, 1, sourcePlayer, "onRequestChangeTexture", sourcePlayer) outputChatBox("HOTTAT SKINTAK YA charbel ya noob ya djeje ya tekkeye", sourcePlayer, 0, 255, 0, false) else outputChatBox("It must be your skin to use this command!", sourcePlayer, 255, 0, 0, false) end end ) -- client-side addEvent("onRequestChangeTexture", true) addEventHandler( "onRequestChangeTexture", root, function() engineImportTXD( engineLoadTXD("wmyclot.txd"), 204 ) engineReplaceModel( engineLoadDFF("wmyclot.dff"), 204 ) end )
  11. You can make a table with the allowed teams, like in this code: local allowedTeams = { ["Psycho Mans Gang"]=true, ["Staff"]=true } function hit ( pla, dim ) if getElementType ( pla ) == "player" then local vehicle = getPedOccupiedVehicle ( pla ) if getPlayerTeam(pla) and allowedTeams[getTeamName(getPlayerTeam(pla))] then outputChatBox ( "Welcome, "..getPlayerName(pla).."!", pla, 0, 150, 0 ) else setElementData ( pla, "inRestrictedArea", "true" ) triggerClientEvent ( pla, "destroyTrepassor", g_root, pla ) end end end addEventHandler ( "onColShapeHit", g_base_col, hit )
  12. You should provide the code that freezes/gives jetpack, since that code only changes the button text and it doesn't seems to have any bugs.
  13. Foi um erro meu, faltou colocar root, no segundo argumento em: addEventHandler("onClientRender", renderDXProgressBar) E na parte que remove também. Se deve ser executado só pro policial então já está certo, porque chama o evento só para o policial na função triggerClientEvent.
  14. That code doesn't seem to help at all. What are 'ButtonGiveJetPack' and 'GiveJetPackPlayer'? both are buttons?
  15. O que esse código deve fazer? Entendi que verifica se o serial consta na tabela, mas acho melhor explicar o que quer fazer. Me parece que está fazendo meio que uma gambiarra pra verificar se o serial está na tabela. Além do mais, não use setElementData para getRootElement(), isso é péssimo para a performance.
  16. Na verdade é: getElementType No caso: getElementType(source) == "player"
  17. Funções DX precisam ser renderizadas a cada atualização de quadro. Neste caso, você as chamam no evento "onClientClick" que vai mostrar uma vez apenas. Use a função addEventHandler para o evento "onClientRender" quando for mostrar, e, pra remover o texto da tela use removeEventHandler.
  18. Faça uma depuração no código, teste este código e diga o que mostra no chat quando for executado o comando: client local screenW,screenH = guiGetScreenSize() local resW, resH = 1280, 720 local x, y = (resW/screenW),(resH/screenH) local tempo, valor = 1000, 60 local startTick local pBarCurWidth, pBarWidth = 0, 368 addEvent("doShowDXProgressBar", true) addEventHandler("doShowDXProgressBar", root, function() startTick = getTickCount() if addEventHandler("onClientRender", renderDXProgressBar) then outputChatBox("[teste debug] renderDXProgressBar sendo chamada") end end ) function renderDXProgressBar() dxDrawRectangle(x*354, y*312, 376, 38, tocolor(0, 0, 0, 255), false) local now = getTickCount() if (now - startTick) >= tempo then -- Aumentar a largura da barra outputChatBox("[teste debug] Aumentar a barra") pBarCurWidth = pBarCurWidth + valor startTick = getTickCount() if pBarCurWidth > pBarWidth then -- Barra de progresso cheia outputChatBox("[teste debug] A barra está cheia") pBarCurWidth = pBarWidth removeEventHandler("onClientRender", renderDXProgressBar) startTick = nil end end dxDrawRectangle(x*358, y*316, pBarCurWidth, 29, tocolor(189, 0, 0, 255), false) dxDrawText( tostring( math.ceil((pBarCurWidth * 100) / pBarWidth) ).." %", x*358, y*316, (x*358) + pBarWidth, (y*316) + 29, tocolor(255,255,255), 2) end server function revistar_jogador ( thePlayer, comando, nick ) if nick then if getPlayerFromPartialName ( nick ) then local accName = getAccountName ( getPlayerAccount ( thePlayer ) ) if isObjectInACLGroup ("user."..accName, aclGetGroup ( "ComandosPolicia") ) then outputChatBox("[teste debug] Você é policial") if triggerClientEvent(thePlayer, "doShowDXProgressBar", thePlayer) then outputChatBox("[teste debug] chamada ao client bem-sucedida") end end end end end Se nada estiver errado, pode ser que o evento tenha sido chamado para o jogador errado (?). Se é mesmo pro policial então está certo.
  19. Aí você está passando três argumentos quando essa função exige dois. O correto é: getElementData(source, "Trab") == true -- aqui verifica se o retorno é igual a [i]true[/i] Outra coisa, na função TrabBus você deveria verificar se o elemento que atingiu a marca, isto é, source, é o jogador. Porque se não for você receberá um erro com a função getPlayerAccount. Também, evite fazer scripts executados só para determinado jogador no lado server, em vez disso uso o lado client. Nesse script, por exemplo, o blip e a marca estarão visíveis para todos, pra evitar isso você pode usar setElementVisibleTo. Sobre o tempo, você pode usar setTimer na própria função TrabBus. Armazene o tempo numa variável (pode ser na tabela cam mesmo) pra quando precisar destruí-lo quando o jogador atingir a marca da chagada. E chame uma função que dará a falha no trabalho quando o tempo esgotar.
  20. DanteTV, o seu código têm muitos erros. Faça um teste com este código que eu fiz (e não cheguei a testá-lo): local screenW,screenH = guiGetScreenSize() local resW, resH = 1280, 720 local x, y = (resW/screenW),(resH/screenH) local tempo, valor = 1000, 60 local startTick local pBarCurWidth, pBarWidth = 0, 368 addEvent("doShowDXProgressBar", true) addEventHandler("doShowDXProgressBar", root, function() startTick = getTickCount() addEventHandler("onClientRender", renderDXProgressBar) end ) function renderDXProgressBar() dxDrawRectangle(x*354, y*312, 376, 38, tocolor(0, 0, 0, 255), false) local now = getTickCount() if (now - startTick) >= tempo then -- Aumentar a largura da barra pBarCurWidth = pBarCurWidth + valor startTick = getTickCount() if pBarCurWidth > pBarWidth then -- Barra de progresso cheia pBarCurWidth = pBarWidth removeEventHandler("onClientRender", renderDXProgressBar) startTick = nil end end dxDrawRectangle(x*358, y*316, pBarCurWidth, 29, tocolor(189, 0, 0, 255), false) dxDrawText( tostring( math.ceil((pBarCurWidth * 100) / pBarWidth) ).." %", x*358, y*316, (x*358) + pBarWidth, (y*316) + 29, tocolor(255,255,255), 2) end Chame o evento doShowDXProgressBar desta forma: triggerClientEvent(player, "doShowDXProgressBar", player) -- 'player' é o jogador para quem o evento será chamado Nas variáveis tempo e valor você pode mudar o tempo do progresso e, o valor da largura do retângulo quando aumentar, respectivamente.
  21. Use, dentro do evento "onClientRender" a função getTickCount mais a dxDrawRectangle que você disse e acrescente um valor à largura do retângulo DX para aumentar o tal 'progresso'.
  22. That if statement is checking if 'result' isn't a table and its length is equal to 0. If it's not true, it will check if 'result' is not nil or false and will return true. What do you want to do exactly? What kind of checking you want to do?
  23. Isso tudo que você disse são botões do teclado, se descrevesse o que é exatamente, talvez ainda não estaria esperando por uma resposta. Não tenho certeza se é isso mas respondendo: Você pode usar uma função exportada pra verificar se o jogador está ou não num colshape ou radar-area. E então bloquear o uso da bind que abre o painel. Outra forma além de função exportada é usando getElementData.
×
×
  • Create New...