Renaz Posted May 14, 2019 Author Share Posted May 14, 2019 funcionou! agora como faço aquela parte de ficar aparecendo o tempo na tela? Link to comment
Other Languages Moderators Lord Henry Posted May 14, 2019 Other Languages Moderators Share Posted May 14, 2019 Tem que dar um jeito de botar o timer client-side. E dai lá vc usa getTimerDetails para obter o tempo restante desse timer. Já que vc provavelmente vai fazer por DxDrawText e onClientRender. Link to comment
brunob22 Posted May 15, 2019 Share Posted May 15, 2019 On 14/05/2019 at 14:20, DNL291 said: Pela lógica na verdade tudo vai travar então, já que o server travou, então o setTimer seria o de menos. ele pode usar timestamp.. pq msm que o serve trave.. se passa o tempo ele vai saber agora no settimer alem do servidor fica travado ele vai fica tentando fazer as coisas do settime.. melhor entender assim.. vamos supor seu pc travo? e voce continua clickando para abrir as paginas msm com o pc travado isso vai fazer demora mais ainda para destravar Link to comment
[M]ister Posted May 15, 2019 Share Posted May 15, 2019 @brunob22 É válido o pensamento, mas ele precisa executar um trecho de código em tal tempo, e como você varia isso sem o setTimer ? Creio eu que tais soluções seriam menos eficientes ainda quanto ao simples uso do setTimer. Link to comment
brunob22 Posted May 15, 2019 Share Posted May 15, 2019 3 hours ago, MaligNos said: @brunob22 É válido o pensamento, mas ele precisa executar um trecho de código em tal tempo, e como você varia isso sem o setTimer ? Creio eu que tais soluções seriam menos eficientes ainda quanto ao simples uso do setTimer. e possivel fazer.. mais da um trabalho mais evitaria problemas futuros Link to comment
DNL291 Posted May 15, 2019 Share Posted May 15, 2019 Sinceramente não acho que vale apena fazer isso... É melhor o programador fazer o esforço otimizando o servidor pra evitar excesso no uso do tráfego e rede e cpu. E também: o servidor vai ficar instável > nada vai responder e provavelmente terá o aviso do MTA "Network trouble". Se for outro tipo de instabilidade, garanto que será por scripts mal feitos que comprometem o funcionamento do servidor e nesse contexto, o setTimer seria o problema menor, sendo que o verdadeiro problema estaria no servidor. O que o programador pode fazer quanto a problemas que podem gerar em timers é fazer sempre verificação se elementos/valores são existentes. Você poderia nos mostrar a solução com getTickCount, pois essa parte eu não entendi como vai funcionar da mesma forma que o setTimer, enfim, me parece que seria um trabalho que não valeria a pena, pelos motivos que já citei. Link to comment
Renaz Posted May 18, 2019 Author Share Posted May 18, 2019 (edited) Ainda neste assunto , eu tentei colocar quando a pessoa fosse presa apareceria uma mensagem para todo o mundo falando que ela foi presa mais ela não está aparecendo! local DelegaciaPrender = createMarker(1535.8380126953,-1672.9124755859,12.3828125,"cylinder",3,0,0,255,50) function prenderJogador(thePlayer, cmd, playerid, valTimer) local alvo = exports["[LusoRP](Sistema)ID_System"]:getPlayerID(tonumber(playerid)) if not alvo then return outputChatBox("Falta colocar o id do jogador", thePlayer) end if not valTimer then return outputChatBox("Faltaram parâmetros", thePlayer) end if isObjectInACLGroup ("user."..getAccountName(getPlayerAccount (thePlayer)), aclGetGroup ("ComandosCorporacoes")) then if isElementWithinMarker(thePlayer, DelegaciaPrender) then setElementData(alvo, "preso", true) setElementPosition (alvo, 264.42120361328, 77.57405090332, 1001.0390625) setElementInterior (alvo, 6) setElementDimension (alvo, 1) takeAllWeapons(alvo) setPlayerWantedLevel(alvo,0) setTimer(function() outputChatBox("#0000FF[Policia] #00BFFFO Cidadão ID #4682B4"..playerid.." #00BFFFOfoi preso pelo Polcial #4682B4"..thePlayer.."!") toggleAllControls(alvo, true) removeElementData (alvo, "preso") setPedAnimation(alvo, nil, nil) removeElementData(alvo,"Algemado") setElementPosition(alvo, 1542.0284423828, -1669.5544433594, 13.553701400757) setElementDimension(alvo, 0) setElementInterior(alvo, 0) end, (tonumber(valTimer)) * 60000, 1) else outputChatBox("Você não está no marker da delegacia!", thePlayer, 255, 255, 255) end end end addCommandHandler("prender", prenderJogador) Edited May 18, 2019 by Renazz Link to comment
Jonas^ Posted May 18, 2019 Share Posted May 18, 2019 1. Você colocou o output dentro do timer que irá liberar o player, fazendo isso seguindo a lógica essa mensagem só sera retornada quando o jogador for solto e não preso. 2. Seu output falta argumento, você não declarou pra quem ele deve mostrar e nem se é pra todos. Faça assim: local DelegaciaPrender = createMarker (1535.8380126953, -1672.9124755859, 12.3828125, "cylinder", 3, 0, 0, 255, 50) function prenderJogador(thePlayer, cmd, playerid, valTimer) local alvo = exports["[LusoRP](Sistema)ID_System"]:getPlayerID(tonumber(playerid)) if not alvo then return outputChatBox("Falta colocar o id do jogador", thePlayer) end if not valTimer then return outputChatBox("Faltaram parâmetros", thePlayer) end if isObjectInACLGroup ("user."..getAccountName(getPlayerAccount (thePlayer)), aclGetGroup ("ComandosCorporacoes")) then if isElementWithinMarker (thePlayer, DelegaciaPrender) then setElementData (alvo, "preso", true) setElementPosition (alvo, 264.42120361328, 77.57405090332, 1001.0390625) setElementInterior (alvo, 6) setElementDimension (alvo, 1) takeAllWeapons (alvo) setPlayerWantedLevel (alvo,0) outputChatBox ("#0000FF[Policia] #00BFFFO Cidadão ID #4682B4"..playerid.." #00BFFFOfoi preso pelo Polcial #4682B4"..thePlayer.."!", root) setTimer (function () toggleAllControls (alvo, true) removeElementData (alvo, "preso") setPedAnimation (alvo, nil, nil) removeElementData (alvo,"Algemado") setElementPosition (alvo, 1542.0284423828, -1669.5544433594, 13.553701400757) setElementDimension (alvo, 0) setElementInterior (alvo, 0) end, (tonumber(valTimer)) * 60000, 1) else outputChatBox ("Você não está no marker da delegacia!", thePlayer, 255, 255, 255) end end end addCommandHandler ("prender", prenderJogador) 1 Link to comment
Other Languages Moderators Lord Henry Posted May 18, 2019 Other Languages Moderators Share Posted May 18, 2019 2 minutes ago, Jonas^ said: Seu output falta argumento, você não declarou pra quem ele deve mostrar e nem se é pra todos. Quando não declarado nenhum argumento após a string do outputChatBox, ele automaticamente vai enviar para root (todo mundo). 1 Link to comment
Jonas^ Posted May 18, 2019 Share Posted May 18, 2019 2 minutes ago, Lord Henry said: Quando não declarado nenhum argumento após a string do outputChatBox, ele automaticamente vai enviar para root (todo mundo). Carai, nem sabia disso, porém sempre prefiro declarar até porque o código fica mais bonito auihasaisa se sabe como é né, código não é só bem otimizado, tem que ter uma estética apresentável. Na verdade nunca vi isso na página do output na wiki. Até pensei que quando não definia nada ele retornava algum warn ou enviaria somente para o jogador que executou o comando. @Lord Henry Na verdade tem eu que nunca prestei muito atenção. Server Example 1: This example displays a chat message to all users. x = 5 y = 10 -- Displays the message outputChatBox ( "I have " .. x .. " apples and " .. y .. " oranges." ) Link to comment
Renaz Posted May 18, 2019 Author Share Posted May 18, 2019 não está aparecendo a mensagem. Link to comment
Jonas^ Posted May 18, 2019 Share Posted May 18, 2019 Troque : outputChatBox ("#0000FF[Policia] #00BFFFO Cidadão ID #4682B4"..playerid.." #00BFFFOfoi preso pelo Polcial #4682B4"..thePlayer.."!", root) Por: outputChatBox ("#0000FF[Policia] #00BFFFO Cidadão ID #4682B4"..alvo.." #00BFFFOfoi preso pelo Polcial #4682B4"..thePlayer.."!", root) 1 Link to comment
Renaz Posted May 18, 2019 Author Share Posted May 18, 2019 (edited) ainda não está aparecendo '-' quando vou no marker e me prendo não aparece nada no chat' e agora também não funciona o timer! Edited May 18, 2019 by Renazz Link to comment
Jonas^ Posted May 18, 2019 Share Posted May 18, 2019 Sim, output esta errado, faça desta forma: outputChatBox ("[Policia] #00BFFFO Cidadão ID #4682B4"..playerid.." #00BFFFfoi preso pelo Polcial "..getPlayerName(thePlayer).."!", root, 0, 0, 255, true) 1 Link to comment
Renaz Posted May 18, 2019 Author Share Posted May 18, 2019 no caso de eu querer fazer "Foi preso por "..(tempo).." qual variavel eu usaria ali no tempo Link to comment
Jonas^ Posted May 18, 2019 Share Posted May 18, 2019 valTimer outputChatBox ("[Policia] #00BFFFO Cidadão ID #4682B4"..playerid.." #00BFFFfoi preso pelo Polcial "..getPlayerName(thePlayer).." por tempo: "..valTimer, root, 0, 0, 255, true) 1 Link to comment
DNL291 Posted May 18, 2019 Share Posted May 18, 2019 (edited) 4 hours ago, Jonas^ said: Carai, nem sabia disso, porém sempre prefiro declarar até porque o código fica mais bonito auihasaisa se sabe como é né, código não é só bem otimizado, tem que ter uma estética apresentável. Na verdade nunca vi isso na página do output na wiki. Até pensei que quando não definia nada ele retornava algum warn ou enviaria somente para o jogador que executou o comando. @Lord Henry Na verdade tem eu que nunca prestei muito atenção. Server Example 1: This example displays a chat message to all users. x = 5 y = 10 -- Displays the message outputChatBox ( "I have " .. x .. " apples and " .. y .. " oranges." ) Na verdade a wiki mostra os argumentos obrigatórios e opcionais. Você pode saber quais a função vai utilizar por padrão desta forma: bool outputChatBox ( string text [, element visibleTo = getRootElement(), int r = 231, int g = 217, int b = 176, bool colorCoded = false ] ) Note os colchetes e veja tudo que está dentro dele. É assim que a wiki mostra todos os argumentos/parâmetros opcionais de uma função. visibleTo = getRootElement() - aqui significa que por padrão, o argumento visibleTo receberá getRootElement() (ou root) a menos que você defina ele. E assim por diante. Edited May 18, 2019 by DNL291 2 Link to comment
Péricles Posted September 13, 2019 Share Posted September 13, 2019 O script já estar pronto? 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