Jonas^
Members-
Posts
1,016 -
Joined
-
Last visited
-
Days Won
9
Everything posted by Jonas^
-
onPlayerLogin é somente server-side, você deve fazer uma conexão client-server com trigger. No server faça assim: addEventHandler( "onPlayerLogin", root, function() triggerClientEvent (source, "startRender", source, true) end ) E no client: local startRender = false function drawRender () local lvl = getElementData(localPlayer, "Level") or 1 local exp = getElementData(localPlayer, "Exp") or 0 local needexp = lvl * 1 dxDrawRectangle(x*12, y*495, x*298, y*27, tocolor(0, 0, 0, 207), false) -- Nivel dxDrawRectangle(567*sW, 700*sH, -540*sW, 30*sH, tocolor(0, 51, 153)) dxDrawRectangle(567*sW, 700*sH, -540*sW, 30*sH, tocolor(0, 51, 153)) dxDrawText(string.format("%d", 100/(needexp/exp)).."%", 670*sW, 1350*sH, 400*sW, 80*sH, tocolor(0, 0, 0), 1.20, "default-bold", "center", "center") end addEvent ("startRender", true) addEventHandler("startRender", root, function (showRender) if (showRender == startRender) then return end startRender = showRender if showRender then addEventHandler("onClientRender", root, drawRender) else removeEventHandler("onClientRender", root, drawRender) end end)
-
Como esta seu código? talvez um removeEventHandler resolve o problema.
-
Mostre a parte do marker pra gente ver caso não consiga fazer por conta própria com as funções que o @DNL291 citou acima.
-
1. Você deve estudar lógica de programação se você procurar no YouTube tem alguns vídeos, só não mando agora pois estou no celular, a partir dai você já vai ter uma noção. 2. Agora você deve estudar as funções do MTA acessando a wiki. 3. E último passo é baixar alguns recursos e tentar entender oque cada parte faz, aconselho ir comentando linha por linha e se tiver dúvidas fique a vontade para usar nosso lindo forum pt-br que todos aqui somos uma família e ajudamos uns aos outros.
-
Tem +1 problema aí, use /debugscript 3 tente descobrir.
-
Tente indentar o código @Laluis23 pra ficar mais fácil de entender e achar os erros exemplo: local ComandoDoChatGlobal = "olx" function adminchat (thePlayer, _, ...) local tbl = {...} local valor = tbl[#tbl] table.remove(tbl) local message = table.concat (tbl, " ") if (isPlayerOnGroup (thePlayer)) then conta = getAccountName(getPlayerAccount(thePlayer)) if isObjectInACLGroup ("user."..conta, aclGetGroup ("Console")) then outputChatBox ("#838B83[ #A020F0O#9ACD32L#FFA500X #838B83 ]#ffffff #00FF00» : #ffffffO Jogador #00FF00"..getPlayerName(thePlayer).. ", #ffffffestá vendendo #ffffff #DAA520"..message, player, 255, 255, 255, true) elseif isObjectInACLGroup ("user."..conta, aclGetGroup ("Everyone")) then outputChatBox ("#838B83[ #A020F0O#9ACD32L#FFA500X #838B83 ]#ffffff #00FF00» : #ffffffO Jogador #00FF00"..getPlayerName(thePlayer).. ", #ffffffestá vendendo #ffffff #DAA520"..message, player, 255, 255, 255, true) end end setElementData (thePlayer, "Chat:Avisado", true) setElementData (thePlayer, "Chat:Delay1", true) setTimer (setElementData, 5000, 1, thePlayer, "Chat:Delay1", false) end addCommandHandler (ComandoDoChatGlobal, adminchat) function isPlayerOnGroup (thePlayer) local account = getPlayerAccount (thePlayer) local inGroup = false for _, group in ipairs ( { "Everyone" } ) do if isObjectInACLGroup ( "user.".. getAccountName (account), aclGetGroup (group)) then inGroup = true break end end return inGroup end
-
Me parece que tem uns end a mais ali na função 'adminchat'
-
Você também pode usar a função SetClipboard para copiar o texto diretamente, dai o cara só cola no navegador usando CTRL + V e done.
-
Sim. IsElementInWater -- Verifica se o jogador esta na água. GetElementModel -- Verifica a skin que o jogador está. CancelEvent -- Cancela o dano que você ira tomar. Acho que é isso.
-
Se viu o tamanho do timer? ' Fora que você declarou thePlayer como argumento da função e manteve source no código inteiro. Em nem um momento você definiu o frozen como false para desabilitar, tente isto: function assaltar (thePlayer) outputChatBox("@Executou.", thePlayer, 0, 255, 0) givePlayerMoney (thePlayer, 1200) setPlayerWantedLevel (thePlayer, 5) setPedRotation (thePlayer, 270) setPedAnimation (thePlayer, "ped", "gang_gunstand", 10500, true, false, false, false) triggerClientEvent (root, alarmebanco, thePlayer) setElementFrozen (thePlayer, true) triggerClientEvent (root, avisoroubo, root, thePlayer) setElementPosition (thePlayer, 3099.97, - 3281.69, - 0.5) setTimer (setElementPosition, 5000000, 1, thePlayer, 1756.517578125,-1384.548828125,14.395313262939) setElementFrozen (thePlayer, false) end addEvent("assaltarbanco", true) addEventHandler("assaltarbanco", root, assaltar)
-
Fica estranho né, tantas binds assim no teclado kk, o cara aperta 1 tecla sem querer e abre um chat apoksasa, sla eu não faria assim, mas enfim.
-
Aconselho deixar sem binds, ou fazer uma coisa mais complexa como ao abrir o T mostrar os botões de cada chat e você selecionar.
-
Da sim mano, não um gif precisamente mas você pode definir uma rotação pra ficar movimentando a imagem.
-
Tem no GUI editor a a propriedade que você pode setar pra ajustar em todas as resoluções ou, você pode usar o calculo do Lord nesse vídeo: https://forum.multitheftauto.com/topic/113482-tutorial-em-vídeo-sobre-cegui/?tab=comments#comment-944331
-
Você pode baixar o resource GUIEditor e fazer por ele.
-
Se tiver alguma dúvida fique a vontade de perguntar.
-
Pra fazer uma tela de download você pode usar uma propriedade no meta do resource de tela exemplo: <script> <script src="client.lua" type="client" cache="false"/> <download_priority_group>1</download_priority_group> </script> Repare nessa linha: <download_priority_group>1</download_priority_group> Setamos a propriedade para este resource ser baixado antes de todos, após ele ser baixado vai começar renderizar a tela, agora oque devemos fazer é um script pra ficar rodando em quanto os demais são baixados exemplo: function downScreen () if getElementData (localPlayer, "finishdown") then -- Se a data existir então: removeEventHandler ("onClientRender", getRootElement(), downScreen) -- Remove a render da tela setElementData (localPlayer, "finishdown", false) -- Seta a data como false end -- dxdraw da tela aqui! end addEventHandler( "onClientRender", root, downScreen) Repare nesta data, vamos usar ela pra saber se o cara esta ou não no download, agora vamos pegar um resource pra ser baixado por último e setar prioridade negativa nele, no meu caso eu uso o painel de login então ficaria assim no meta: <download_priority_group>-1</download_priority_group> E agora no resource: function disableDownScreen () setElementData (localPlayer, "finishdown", true) end addEventHandler ("onClientResourceStart", resourceRoot, disableDownScreen)
-
Como este seu banco de dados? acredito que você tem que fazer uma nova coluna lá apenas para o admin. se for 1 = everyone, se for 2 Mod e assim por diante. OBS: Posso estar errado.
-
Dai você já esta querendo de mais, você pode facilmente encontrar alguns chats deste tipo aqui pela internet, porém sem bindkey apenas com comando mesmo, desta forma: /tt - Twitter /dp - DeepWeb Enfim...
-
Você pode obter o dinheiro de cada jogador facilmente usando: GetPlayerMoney
-
setElementData(getLocalPlayer(), "mercadoCoisas"..d[1]..","..d[2]..","..d[3]..",1,"..d[5]..","..d[6]..","..d[7]..","..d[8]..","..d[9]..","..d[10])
-
Min Ajudem porfavor
Jonas^ replied to Ari Alves's topic in Ajudas relacionadas ao MTA:SA (Cliente/Servidor)
Olá, poste na sessão 83-client explique seu problema aqui detalhadamente em um tópico. -
Tente isso: local theMarker = createMarker (0, 0, 2.2, "cylinder", 1) function markerEnter (thePlayer) if isElementWithinMarker (thePlayer, markerEnter) then local vehicles = getElementsByType("vehicle") for i, v in ipairs (vehicles) do destroyElement(v) end end end addEventHandler( "onMarkerHit", theMarker, markerEnter)
-
Dúvida sobre ligação de resource/getElementPosition
Jonas^ replied to Teixeira's topic in Programação em Lua
1. Dúvida: Pra você fazer um recurso ser dependente do outro tem duas formas, uma delas é usar uma propriedade no meta desta forma: <include resource="Nome_Do_Resource"/> E a segunda maneira, é você usar um call de um resource para o outro. INFO: Call 2. Dúvida: Para você se teleportar do local que você esta a outro local você usa a função SetElementPosition Exemplo: function telePosition (thePlayer) setElementPosition (thePlayer, x, y, z) end addCommandHandler ("go", telePosition)