Search the Community

Showing results for tags 'loop'.



More search options

  • Search By Tags

    Type tags separated by commas.
  • Search By Author

Content Type


Forums

  • Multi Theft Auto: San Andreas 1.x
    • Support for MTA:SA 1.x
    • User Guides
    • Open Source Contributors
    • Suggestions
    • Ban appeals
  • General MTA
    • News
    • Media
    • Site/Forum/Discord/Mantis/Wiki related
    • MTA Chat
    • Other languages
  • MTA Community
    • Scripting
    • Maps
    • Resources
    • Other Creations & GTA modding
    • Competitive gameplay
    • Servers
  • Other
  • Archive
  • Private Bugtracker

Find results in...

Find results that contain...


Date Created

  • Start

    End


Last Updated

  • Start

    End


Filter by number of...

Joined

  • Start

    End


Group


About Me


Gang


Location


Occupation


Interests

Found 8 results

  1. client: local Admins = {} addEvent("updateAdmins",true) addEventHandler("updateAdmins",root, function(t) Admins = t end) function isPlayerAdmin(player) if(Admins[player]) then return true end return false end function asdi() for k,v in ipairs(Admins) do outputChatBox(k) end end addCommandHandler("asd",asdi) server: local Admins = {} function isPlayerAdmin(player) if(Admins[player]) then return true end return false end addEventHandler("onPlayerLogin",root, function() if isObjectInACLGroup ( "user." .. getAccountName ( getPlayerAccount ( source ) ), aclGetGroup ( "Admin" ))then if not(Admins[source])then Admins[source]= source triggerClientEvent("updateAdmins",source,Admins) end end end) addEventHandler("onPlayerQuit",root, function() if(Admins[source])then Admins[source]= nil triggerClientEvent("updateAdmins",source,Admins) end end) No errors, no warnings... What wrong?
  2. Galera, estou aprendendo a fazer scripts, e editei um script que achei na Internet de uma forma que ele pudesse ter quantos markers eu quisesse, no caso de um trabalho, porém, gostaria de saber se existe alguma forma de eu deixa-lo mais otimizado, usando loops ou algo do tipo, eu evitaria de ter que escrever quase a mesma coisa para cada Marker? Eu estou querendo fazer um trabalho de Sedex, e peguei de outro script que eu achei, uma barra que carrega na tela, então usei setElementFrozen para congelar o veículo, então a barrinha aparece e carrega, quando ela termina de carregar, o veículo é descongelado, até ai tudo bem, porém, estou usando um script que faz com que uma mensagem apareça no topo da tela, "Parabéns, você entregou uma encomenda (1/10), então tentei fazer com que primeiro aparecesse "Entregando encomenda", e após os 5 segundos do setElementFrozen, aparecesse a mensagem que entregou. Mas não estou conseguindo fazer. Então tentei fazer junto a barra de carregamento, para aparecer o ENTREGANDO ENCOMENDA, mas também não consegui. Vou deixar apenas os 2 primeiros markers, para vocês verem sobre o que eu falei de Loops, se há alguma forma de utilizar nesse código, peço desculpas se estiver mal identado, ainda sou iniciante em programação. Peço que ninguém pegue esses códigos para si, pois é um script que editei totalmente para o meu servidor, e não ficaria feliz se fosse roubado!!! ----------------------- Server-Side ----------------------- --Markers Minicio = createMarker (1222.713, -1799.09, 16.555 -1, "cylinder", 1.5, 255 ,255 ,0, 130) mk01 = createMarker ( 1261.461, -1831.496, 13.385 -1, "checkpoint", 3, 255 ,255 ,0, 130) mk02 = createMarker ( 1426.6989746094,-961.05804443359,36.34884262085 -1, "checkpoint", 3, 255 ,255 ,0, 130) mk03 = createMarker ( 2175.4973144531,1122.1480712891,12.679032325745 -1, "checkpoint", 3, 255 ,255 ,0, 130) mk04 = createMarker ( 2079.6228027344,1444.5053710938,10.8203125 -1, "checkpoint", 3, 255 ,255 ,0, 130) mk05 = createMarker ( 2170.8229980469,1678.8610839844,10.8203125 -1, "checkpoint", 3, 255 ,255 ,0, 130) mk06 = createMarker ( 2102.5812988281,2217.4921875,10.8203125 -1, "checkpoint", 3, 255 ,255 ,0, 130) mk07 = createMarker ( 2031.4614257813,1923.1041259766,12.294158935547 -1, "checkpoint", 3, 255 ,255 ,0, 130) mk08 = createMarker ( 1697.4500732422,1451.1950683594,10.763988494873 -1, "checkpoint", 3, 255 ,255 ,0, 130) mk09 = createMarker ( 1561.4448242188,1078.6629638672,10.8203125 -1, "checkpoint", 3, 255 ,255 ,0, 130) mk10 = createMarker ( 954.54888916016,-922.796875,44.080444335938 -1, "checkpoint", 3, 255 ,255 ,0, 130) --1066.3614501953,-1341.8918457031,13.3828125 -1 --Blips Attached Binicio = createBlipAttachedTo (Minicio, 42) B01 = createBlipAttachedTo ( mk01, 19 ) B02 = createBlipAttachedTo ( mk02, 19 ) B03 = createBlipAttachedTo (mk03, 19) B04 = createBlipAttachedTo (mk04, 19) B05 = createBlipAttachedTo (mk05, 19) B06 = createBlipAttachedTo (mk06, 19) B07 = createBlipAttachedTo (mk07, 19) B08 = createBlipAttachedTo (mk08, 19) B09 = createBlipAttachedTo (mk09, 19) B10 = createBlipAttachedTo ( mk10, 19 ) --Markers Visibilidade setElementVisibleTo (Minicio, root, true) setElementVisibleTo (mk01, root, false) setElementVisibleTo (mk02, root, false) setElementVisibleTo (mk03, root, false) setElementVisibleTo (mk04, root, false) setElementVisibleTo (mk05, root, false) setElementVisibleTo (mk06, root, false) setElementVisibleTo (mk07, root, false) setElementVisibleTo (mk08, root, false) setElementVisibleTo (mk09, root, false) setElementVisibleTo (mk10, root, false) --Blips Visibilidade setElementVisibleTo (Binicio, root, false) setElementVisibleTo (B01, root, false) setElementVisibleTo (B02, root, false) setElementVisibleTo (B03, root, false) setElementVisibleTo (B04, root, false) setElementVisibleTo (B05, root, false) setElementVisibleTo (B06, root, false) setElementVisibleTo (B07, root, false) setElementVisibleTo (B08, root, false) setElementVisibleTo (B09, root, false) setElementVisibleTo (B10, root, false) veh = {} function inicio (source) if isElementWithinMarker(source, Minicio) and veh[source] and isElement( veh[source] ) then destroyElement ( veh[source] ) veh[source] = nil end x,y,z = getElementPosition(source) veh[source] = createVehicle(413, 1239.748, -1829.575, 13.404, -0, 0, 274.52) warpPedIntoVehicle ( source, veh[source] ) setCameraTarget (source) setElementData ( source, "inicio", true ) --Aqui ele torna a Data Inicio verdadeira, registrando que o player passou pela marker inicio. setElementVisibleTo ( B01, source, true ) --Torna visivel o Blip 1 setElementVisibleTo ( mk01, source, true) --Torna visivel o Marker 1 exports.Scripts_Dxmessages:outputDx(source, "Entregue as encomendas nos pontos marcados em seu GPS", "info") --outputChatBox ("#ffcc00[ #ffffffSedex #ffcc00] #ffffffEntregue as encomendas nos pontos marcados em seu GPS.",source,0,0,0,true ) end addEventHandler( "onMarkerHit", Minicio, inicio ) function mk1 (source) if isElementWithinMarker(source, mk01) and veh[source] and isElement(veh[source]) then --Checa se o elemento que está na marker 1 é o source, com o veículo source. if getElementData(source, "inicio", true) then --Ele verifica se o jogador passou pela Marker para iniciar o serviço, antes de poder pegar a Marker 1 setElementFrozen(veh[source], true) --Freeza o veículo. triggerClientEvent(source, "doShowProgressBar", source) --Barra que mostra o processo da entrega da encomenda. givePlayerMoney(source,300) setElementVisibleTo ( B01, source, false ) --Ao pegar o Marker 1, ele torna o Marker 1 invisivel. setElementVisibleTo (mk01, source, false) --Ao pegar o Blip 1, ele torna o Marker 1 invisivel. --outputChatBox("#ffcc00[ #ffffffSedex #ffcc00] #ffffffVocê entregou uma encomenda! #ffcc00(#ffffff01/10#ffcc00)",source,0,0,0,true) setElementVisibleTo ( B02, source, true ) --Aqui ele torna visivel o Marker 2, para o player continuar a entrega. setElementVisibleTo (mk02, source, true) --Aqui ele torna visivel o Blip 2, para o player continuar a entrega. setTimer(setElementFrozen, 5000,1, veh[source], false) --Depois de 5 segundos o veículo é descongelado msg = setTimer(exports.Scripts_Dxmessages:outputDx(source, "Entregando encomenda", "info"), 5000, 1) --Tentativa da mensagem de entregando encomenda if isTimer(msg) == false then exports.Scripts_Dxmessages:outputDx(source, "Você entregou uma encomenda! #ffcc00(#ffffff01/10#ffcc00)", "success") --Aqui era para quando o timer se tornasse falso, ou seja, não existisse mais aparecia a mensagem de entregue. setElementData ( source, "Marker01", true ) --Aqui ele registra que o player passou pela primeira marca. setTimer ( setElementData, 50, 1, source, "inicio", false ) --Aqui ele registra o inicio como false, para o player não poder pegar mais de uma vez a mesma marca. end end end end addEventHandler("onMarkerHit",mk01 ,mk1) --Depois disso, ele repete tudo de novo. function mk2 (source) if isElementWithinMarker(source, mk02) and veh[source] and isElement(veh[source]) then --Checa se o elemento que está na marker 2 é o source, com o veículo source. if getElementData(source, "Marker01", true) then --Checa se passou pela Marker 1, e assim vai... setElementFrozen(veh[source], true) triggerClientEvent(source, "doShowProgressBar", source) givePlayerMoney(source,300) setElementVisibleTo ( B02, source, false ) setElementVisibleTo (mk02, source, false) outputChatBox("#ffcc00[ #ffffffSedex #ffcc00] #ffffffVocê entregou uma encomenda! #ffcc00(#ffffff02/10#ffcc00)",source,0,0,0,true) setElementVisibleTo ( B03, source, true ) setElementVisibleTo (mk03, source, true) setTimer(setElementFrozen, 5000,1, veh[source], false) msg = setTimer(exports.Scripts_Dxmessages:outputDx(source, "Você entregou uma encomenda! #ffcc00(#ffffff01/10#ffcc00)", "success"), 5000, 1) if isTimer(msg) then exports.Scripts_Dxmessages:outputDx(source, "Você entregou uma encomenda! #ffcc00(#ffffff01/10#ffcc00)", "success") setElementData ( source, "Marker02", true ) setTimer ( setElementData, 50, 1, source, "Marker01", false ) end end end end addEventHandler("onMarkerHit",mk02 ,mk2) ----------------------- Client-Side ----------------------- --==-==-==-==-==-==-==-==-==-==-==-==-==-==-==-==Ajustar Posição da Tela--==-==-==-==-==-==-==-==-==-==-==-==-==-==-==-==- local screenW,screenH = guiGetScreenSize() -- Função de Reposicionar Largura e altura da tela local resW, resH = 1280, 720 local x, y = (resW/screenW),(resH/screenH) -- juntar dois elementos em x, y --==-==-==-==-==-==-==-==-==-==-==-==-==-==-==-==Ajustar Posição da Tela--==-==-==-==-==-==-==-==-==-==-==-==-==-==-==-==- --==-==-==-==-==-==-==-==-==-==-==-==-==-==-==-==Barra de Carregamento--==-==-==-==-==-==-==-==-==-==-==-==-==-==-==-==- local tempo, valor = 1000, 4 -- Tempo de carregamento local startTick local pBarCurWidth, pBarWidth = 0, 700 -- largura e altura do dx addEvent("doShowProgressBar", true) -- Ativar um evento personalizado addEventHandler("doShowProgressBar", root, function() startTick = getTickCount() -- Começar contagem if addEventHandler("onClientRender", root, renderDXProgressBar) then -- se executar essa função fara alguma coisa, no caso n tera nada caso queira usar para desbugar script end end ) function renderDXProgressBar() 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 pBarCurWidth = 0 removeEventHandler("onClientRender", root, renderDXProgressBar) startTick = nil end end dxDrawRectangle(x*358, y*316, pBarWidth, 30, tocolor(0, 0, 0, 150), false) dxDrawRectangle(x*358, y*316, pBarCurWidth, 30, tocolor(255, 255, 0, 200), false) dxDrawText( tostring( math.ceil((pBarCurWidth * 100) / pBarWidth) ).." %", x*358, y*316, (x*358) + pBarWidth, (y*316) + 29, tocolor(255,255,255), 2) dxDrawText("ENTREGANDO ENCOMENDA", x*358, y*316, tocolor(255,255,255,255),2, "roboto") --Onde tentei colocar o texto para aparecer na tela. end --==-==-==-==-==-==-==-==-==-==-==-==-==-==-==-==Barra de Carregamento--==-==-==-==-==-==-==-==-==-==-==-==-==-==-==-==-
  3. Olá novamente 😁, alguém poderia me ensinar por favor como utilizo loop for, queria que esse retangulo troca-se de cor a cada um certo tempo, fiz isso abaixo mas fiz errado demais, se alguém poder me ajudar ficarei muito grato (OBS: Sou apenas um scripter iniciante 😁) local sx, sy = guiGetScreenSize() local x, y = (sx/1366), (sy/768) cor = {} function dxLoginS() local rectangle = dxDrawRectangle(x*0, y*70, x*500, y*5, cor) cor[1] = tocolor(10, 85, 230, 255) cor[2] = tocolor(255, 140, 0, 255) cor[3] = tocolor(190, 255, 0, 255) for i = cor do return rectangle end setTimer(function () if rectangle then end, 2500, 1) end addEventHandler("onClientRender", root, dxLoginS)
  4. Olá! Tudo bom com vocês? Eu ainda sou amador, e utilizo alguns loops prontos, mas nunca montei um, na verdade, nem sequer sei como ele funciona. Alguém poderia me explicar como eu poderia utilizá-lo para obter a lista de jogadores, ou como utilizá-lo em uma tabela, ou seja, como utilizá-lo de maneira geral. Obrigado! ❤️
  5. function onClientClick(button, state) if button == "left" and state == "down" then for k, v in ipairs(fegyverek) do if isInBox(screenW * 0.5703, screenH * 0.2700+(elem * 49.5), screenW * 0.0656, screenH * 0.0269) then fegyver = k end end if isInBox(screenW * 0.5703, screenH * 0.2700+(elem * 49.5), screenW * 0.0656, screenH * 0.0269) then if fegyver == 3 then outputChatBox("asd") end end end end addEventHandler("onClientClick", root, onClientClick) function isInBox(xS,yS,wS,hS) if(isCursorShowing()) then local cursorX, cursorY = getCursorPosition() cursorX, cursorY = cursorX*sX, cursorY*sY if(cursorX >= xS and cursorX <= xS+wS and cursorY >= yS and cursorY <= yS+hS) then return true else return false end end end What wrong in this? No error/warning in debugscript..
  6. Hey everyone, again, I have a problem. I want to teleport the player whenever it hits the entry/exit marker of a Burger Shot. However, whenever I add the functions to the "onMarkerHit" event, I keep teleporting back and forth. Script is server-sided. --Entry/Exit marker grabbed from .map file local burgershotEnter = getElementByID("burgershotEnter") local burgershotExit = getElementByID("burgershotExit") -- Table of spawn location when entering/leaving Burger Shot local burgershotSpawn = { enter = { x = 364.4189453125, y = -74.154296875, z = 1001.5078125, rot = 313.42001342773 }, exit = { x = -2334.7392578125, y = -166.7958984375, z = 35.5546875, rot = 221.95193481445 } } -- Debug stuff whether coordinates of entry/exit markers are the same as defined in .map (which in this case, it is) local enterPosX, enterPosY, enterPosZ = getElementPosition(burgershotEnter) local exitPosX, exitPosY, exitPosZ = getElementPosition(burgershotExit) outputChatBox ( "Enter: " .. tostring(burgershotEnter) .. " " .. enterPosX .. ", " .. enterPosY .. ", " .. enterPosZ ) outputChatBox ( "Exit: " .. tostring(burgershotExit) .. " " .. exitPosX .. ", " .. exitPosY .. ", " .. exitPosZ ) --------------------------------------- function burgershotEnterHit( player ) outputChatBox("Welcome to Burger Shot! If you want to order something, click on the ped.") setElementInterior( player, 10, burgershotSpawn["enter"]["x"], burgershotSpawn["enter"]["y"], burgershotSpawn["enter"]["z"]) --setPlayerRotation( burgershotSpawn["enter"]["rot"] ) end function burgershotExitHit( player ) outputChatBox("Thanks for visiting Burger Shot! Come again soon!") setElementInterior( player, 0, burgershotSpawn["exit"]["x"], burgershotSpawn["exit"]["y"], burgershotSpawn["exit"]["z"]) --setPlayerRotation( burgershotSpawn["exit"]["rot"] ) end addEventHandler( "onMarkerHit", burgershotEnter, burgershotEnterHit ) addEventHandler( "onMarkerHit", burgershotExit, burgershotExitHit ) Do I still have to check if the player is in the marker or not? Because I thought I don't need to do that when I tie the function to an event with the according marker. Thanks in advance!
  7. Hello! I have made closely an entire faction-system, but i have problems with loops. This client side script is for put the faction members and their properties in one table. menuPlayers = {} for i = 1, #memberUsernames do menuPlayers[i].name = memberUsernames[i] menuPlayers[i].rank = memberRanks[i] menuPlayers[i].status = memberOnline[i] menuPlayers[i].lastlogin = memberLastLogin[i] menuPlayers[i].active = 0 end when i do it like this ^^ i got this error for the rows in the loop: attempt to index field '?' (a nil value) But, when i remove the loop and try it for only the first player, it works: menuPlayers = {} menuPlayers[1].name = memberUsernames[1] menuPlayers[1].rank = memberRanks[1] menuPlayers[1].status = memberOnline[1] menuPlayers[1].lastlogin = memberLastLogin[1] menuPlayers[1].active = 0 Any help? Thanks.
  8. My mta play sounds but, in minutes the sound make a loop and don't stop, i'm restart the mta and in minutes begins again! In my old gta sa i had tha Proxy_sa.exe and don't have a problems, but i don't know to resolve the issue of sound! Thanks!