Jump to content

Leaderboard

Popular Content

Showing content with the highest reputation on 30/06/20 in all areas

  1. I want to share this tool and method to optimize PNG files, which are used a lot in gamemodes. This topic will focus on a tool called ZopfliPNG (which I built from source and will provide a file download for) - refer to the bottom of this topic, step 2 for that. https://github.com/google/zopfli Because of the intensive usage of PNG in MTA, optimizing them will benefit total download size for players and performance. 1) use Paint.NET software (https://www.getpaint.net/) to resize your image's resolution (CTRL + R), for example half it with the power of 2, like 256 x 256 to 128 x 128. Depending on the type of image or how far whatever script zooms it, you can go beyond that and make it even lower. Use default settings for saving it, you don't have to worry about size optimization yet. Drawing a lot of high resolution images or textures will affect client performance, and cause lag on low-end PC's. So following this step is highly recommended. You can always gauge the quality outcome while you're saving it using a lower resolution. Note: you can skip this step, if you care more about file & DL size rather than client rendering/memory performance, or if the type or usage of your image(s) result in rapid deterioration in quality upon resizing. By not doing this, and sticking to the main subject of this guide, ZopfliPNG from step 2, you will keep the same quality but only get a file size reduction. After doing the initial optimization with Paint.NET, which is the part that matters to client (rendering) performance, you'd usually think that is the end of it, that the file size Paint.NET outputs (on the various saving profiles, like bit depths, you compare) is the best you can get. But you're wrong, since advanced software like ZopfliPNG can squeeze more out of it, notably most of all without any quality decrease. It's software that assembles PNG format compression from scratch, with all pixels matching 100%. So there's no reason not to do it, also if you didn't initially use step 1) about Paint.NET resizing/actual image tweaks. So, to get a lower size, it's not neccesary to compromise more of your image quality using editing, like resize even more in Paint.NET. So now to get to the point of this guide; 2) ZopfliPNG Download it from: LINK (click) Usage instructions are in the README.txt files in either 32-bit or 64-bit version folders. It's a command-line utility, you can use it in the simplest way by entering this into cmd from the binary's location (after copying your png files): This will optimize the file using default configuration, which guarantees 100% matching pixels (absolutely no worse quality) and usually a huge reduction in file size. As I mentioned in one of the notes, you will benefit also if you won't "pre-process" your PNG's using Paint.net, but only use ZopfliPNG, to not possibly impact your quality but still get a lower resources download size. As you can see here; I made sure to document its usage (README.txt) and included mass optimization (multiple files at once) .bat files, their usage also explained in README.txt. Unfortunately this is as close we can get to mass-optimizing files, because i built zopflipng.exe from original ZopfliPNG source code (https://github.com/google/zopfli) and it doesn't currently feature it in a more convenient way (without having to edit/specify ranges of file names to optimize). Here's some additional information on ZopfliPNG and why it is so groundbreaking over other compression tools: https://ariya.io/2016/06/using-zopfli-to-optimize-png-images https://blog.codinghorror.com/zopfli-optimization-literally-free-bandwidth/ No other tool can theoretically achieve this, let alone with 100% quality preservation. It's state-of-the-art technology. Edit (25th Dec 2019): updated ZopfliPNG binaries (re-built from latest official repository version)
    1 point
  2. Presented By (Previously J Series) With more than 3 years of work I decided to publicly release my map conversions, I had dropped my previous listings due to some "Issues" however, they're back. ---------------------------------------------------------------------------------------------- Download Streaming Quality - 8/10 Get's the job done, awesome all around, but some places are better than others ---------------------------------------------------------------------------------------------- Download Streaming Quality 7/10 Beats VC in other places, very poor in others; as well as a huge FPS drop in the first island (Issues are rockstars fault) ---------------------------------------------------------------------------------------------- Download Streaming Quality 9/10 Beats both VC and LC ---------------------------------------------------------------------------------------------- Vehicle testing gridmap Download Streaming Quality 10/10 Perfecto ---------------------------------------------------------------------------------------------- Download Streaming Quality 7/10 Decent all around Might be a tad laggy due to the high poly and Russian nature of this map Extremely detailed for a user created map ------------------------------------------------- Download (Coming soon) streaming quality 10/10 Very light weight ------------------------------------------------- MTA-Stream MTA-Stream a new lightweight streamer promising near instant load times and better streaming Post any bugs here Or here Questions or discussions can be either posted in this topic or here --- If you would like to support my work, please donate encourages me to make good updates. https://www.paypal.me/BlueJayL
    1 point
  3. pDownloader version 1.2.1 Better looking progress bar and players can play while downloading files. Video: https://streamable.com/bedf40 Documentation moved to GitHub! Go to GitHub...
    1 point
  4. Hello everyone. Before anything else, this script works client-side and it will not disrupt the server-side balance and it will NOT cause lag. It's a showcase, download is not available yet but there is a test server you can join. Explanation: This is a script we've been working on. It introduces peds all around the map with custom attitudes of their own. All killed peds will drop some amount of cash, and their weapon if they have one. When you alt tab, the "game" will pause like the single player. The bullets and the peds will freeze. When you alt-tab back on, everything will continue from the last second you left it on. Peds: Peds will be minding their own business and they are not hostile unles provoked. They will react to world events such as someone walking past them, gunshots, explosions, vehicles near them and obstacles. They will put their hands up when threathened and start running or fight back. Some of them will defend when attacked,ome of them will run. Some of them will even defend others from trouble. A few of them have some custom behaviors but I won't spoil that. Most of them will be unarmed but some of them will carry weapons. They prefer melee weapons such as a bat or a knife, but there are some paranoid nutjobs who can't go outside without a gun. Cops: If the police is near, commiting a crime will alert them and your wanted level will increase. As your wanted level goes up, more dangerous cops will start chasing you. You can stay away the police in order to reduce your wanted level, or find bail pickup I put around the map. All of them can be found in their original San Andreas locations, as well ass some I have added to suit the gamemode. That's not all though! If a ped kills another ped, the police will be agressive towards them instead. If a ped punches another, they will respond back. Some of them will defend their friends, some of them will bail etc.- This makes the world feel alive. Military/Swat: They will be introduced when your wanted level is above 4 stars. They will carry more dangerous weapons such as Deagle, M4 and MP5. They will reward you with really good EXP when killed, but they are really challenging. Gangs: In suitable ares, gang members will spawn as groups. They will all carry weapons and they will defend their group when one of them is attacked. Mafia: The mafia will spawn in certain areas, mostly being San Fierro. They are not agressive unless provoked, and they are REALLY dangerous. They will grant good loot and experience if you have the balls to mess with them. There are more features I couldn't show off because I don't want to make the video too long to sit through. Check the description in the video if you want to play-test the script. Have a good one! Screenshots:
    1 point
  5. Salutări tuturor, Având în vedere contextul actual din cadrul comunității românești la nivelul platformei, am decis să desfășor un sondaj de opinie pentru a observa și înțelege mai bine unde se situează diferite aspecte ale comunității din punctul vostru de vedere. Prezentare generală a demersului Sondajul de opinie se desfășoară prin intermediul unui chestionar compus din cinci secțiuni scurte, majoritatea cuprinzând întrebări închise cu unul sau mai multe răspunsuri prestabilite (cu posibilitatea de a adăuga un răspuns propriu). În urma și pe baza răspunsurilor primite vom putea avea cu toții o imagine concretă cu privire la o parte dintre subiectele care în prezent sunt, după caz, de mare interes la nivelul comunității românești. Prezentul sondaj de opinie nu reprezintă un demers oficial aferent echipei administrative MTA. Tocmai din acest motiv, aveți în vedere faptul că desfășurarea acestui sondaj de opinie nu înseamnă neapărat și o schimbare în viitorul apropiat asupra aspectelor aduse în discuție prin intermediul întrebărilor din chestionar, însă poate deveni un punct important de referință pe viitor. Perioada și modalitatea de completare & publicarea rezultatelor Intenționez să mențin deschisă participarea în cadrul sondajului de opinie până în data de 5 iulie 2020, ora 09:00. Ulterior voi reveni cu o actualizare care să cuprindă rezultatele propriu-zise, cât și analiza acestora și eventuale concluzii pe care le putem trage de pe urma lor. Răspunsurile acordate în lipsă de seriozitate nu vor fi luate în considerare. Analiza și interpretarea rezultatelor se va face în mod colectiv, toate răspunsurile acordate vor fi tratate în mod anonim tocmai pentru a încuraja completarea chestionarului în mod sincer și fără bariere. Chestionarul poate fi completat accesând următorul link: https://forms.gle/w8nawZqn4jQFoDGN7 Distribuirea chestionarului Vă invit pe toți cei interesați să distribuiți mai departe chestionarul către persoanele despre care știți că activează în mod constant pe comunitățile românești de MTA și care pot trata acest demers cu seriozitate. Deși este important să obținem cât mai multe puncte de vedere, este important să punem accent și pe calitatea răspunsurilor tocmai pentru a nu periclita acuratețea rezultatelor. Vă mulțumesc pentru interesul acordat!
    1 point
  6. i just dont use this .exe that was comaptibile with samp anymore, reinstalled gta and i;ll play only mta from now on
    1 point
  7. I suggest you install GTA with a clean, legal copy of the game to verify that it isn't a cause of modded files, which are found in cracked, illegal game copies.
    1 point
  8. Un topic foarte bine pus la punct, chiar sper sa se stranga multe raspunsuri.
    1 point
  9. 1 point
  10. I think you should be able to use this resource if you just need to move a selection of objects simultaneously:
    1 point
  11. function DanoBlindado ( attacker, weapon, bodypart ) local blindadocar = getPedOccupiedVehicle ( localPlayer ) if (blindadocar) then if getElementModel(blindadocar) == 427 then cancelEvent() setElementHealth(localPlayer, 100) end end end addEventHandler ( "onClientPlayerDamage", getLocalPlayer(), DanoBlindado )
    1 point
  12. Hello @Alshikeh, welcome to the forums. Can you please explain why you need to merge it to one object? Your performance will (in some cases) be hurt a lot by doing so. What exactly are you looking to merge?
    1 point
  13. جيد لكن الفكره كلها اني ما حطيته كذا من الاول لاجل ان الفنكشن ذا خاص للفنكشن حقك تمام ممتاز التعديل
    1 point
  14. Thanks for clearing some things up @IIYAMA, I know how to use OOP in Java/C#/C++/etc but it's a bit weird in Lua for some reason Fixed my problem with the below code put inside toptimes_server.Lua thanks to @Mihoje function onNickChange() setTimer(function() for id, player in ipairs(getElementsByType("player")) do g_SToptimesManager:queueUpdate(player) g_SToptimesManager:updateTopText() local playerPosition = g_SToptimesManager.mapTimes:getIndexForPlayer(player) clientCall(player, 'onServerSentToptimes', g_SToptimesManager.toptimesDataForMap, g_SToptimesManager.serverRevision, playerPosition) end end, 1500, 1) -- This delay has to be bigger than the one which sets the current player name in the maptimes_server.Lua file! end addEventHandler("onPlayerChangeNick", root, onNickChange)
    1 point
  15. Aparentemente o que tinha de errado no seu script é que ele está checando se o som está rodando no seu Client e não no veículo, para alterar isso ao invés de usar um 'if (sound)' use um if getElementData(source, "alarm") Não testei mas creio que está funcionando: function colission( force ) local x,y,z = getElementPosition(source) local fDamageMultiplier = getVehicleHandling(source).collisionDamageMultiplier local hitforce = force*fDamageMultiplier if (hitforce > 5) then if (getVehicleEngineState(source) == false) then if getElementData(source, "alarm") == false then sound = playSound3D("alarm.mp3", x, y, z, false) setSoundMaxDistance(sound,70) attachElements(sound,source) setElementData(source, "alarm", true) setTimer(function() setElementData(source, "alarm", false) end, 30000, 1) -- < ALTERE PARA O TEMPO QUE DURA O ALARME end end end end addEventHandler("onClientVehicleCollision", root, colission) Espero ter ajudado
    1 point
  16. Un sondaj bine facut pe tema cu care ne confruntam acum(sa ii spun asa), eu unul l-am completat si sper sa se schimbe situatia in care ne aflam in comunitatea romaneasca de MTA. Totusi nu cred ca sunt multi care folosesc forumu/discordu pentru a vedea acest subiect dar sa speram ca se vor aduna cat mai multe raspunsuri. UP!
    1 point
  17. Buenas. Abro este hilo para poner a vista de todos, las personas que participan en estafas/scams con sus servicios de scripting. Esto es a fin de evitar hacer negocios con esta gente problematica. Para sumar una persona a esta lista, deben enviarme un PM con pruebas CONTUNDENTES (enfasis en esto, ya que no se aceptaran capturas o pruebas que no dicen nada) de que esa persona esta estafando gente. Quien desee ser removido de esta lista, tambien debe contactarme por privado con pruebas contundentes que refuten la acusacion. https://forum.multitheftauto.com/profile/47413-sticmy/ (Pide dinero por adelantado y no completa las tareas asignadas)
    1 point
  18. العفو بالتوفيق
    1 point
  19. você pode fazer uma verificação, usando o evento https://wiki.multitheftauto.com/wiki/OnClientPlayerDamage e https://wiki.multitheftauto.com/wiki/GetPedOccupiedVehicle.
    1 point
  20. https://wiki.multitheftauto.com/wiki/SetVehicleDamageProof
    1 point
  21. local texts= {} local counter = 1 function createBlipText(text,x,y,size,color,font ,rot) local size = size or 1.3 local font = font or "default" local color = color or tocolor(255,255,255,255) local rot = rot or 0 texts[counter]={text,x,y,size,font ,rot,color} counter = counter+1 return texts[counter-1] end local blip = createBlipText("Test" ,591.02747, 871.34741 ) local screenSize = Vector2(guiGetScreenSize()) local function drawWorldPosMapText() if isPlayerMapVisible() then for k ,v in pairs( texts ) do local worldPos = Vector2(v[2] , v[3]) local mapMin, mapMax do local mx, my, Mx, My = getPlayerMapBoundingBox() if mx then mapMin = Vector2(mx, my) mapMax = Vector2(Mx, My) else return end end local fMx, fMy = (worldPos.x + 3000) / 6000, -(worldPos.y - 3000) / 6000 local fmx, fmy = 1 - fMx, 1 - fMy local screenMapPos = Vector2((fmx * mapMin.x) + (fMx * mapMax.x), (fmy * mapMin.y) + (fMy * mapMax.y)) if screenMapPos.x >= 0 and screenMapPos.y >= 0 and screenMapPos.x <= screenSize.x and screenMapPos.y <= screenSize.y then local width = dxGetTextWidth(v[1],v[4], v[5]) dxDrawText(v[1], screenMapPos.x - (width / 2), screenMapPos.y, screenMapPos.x + (width / 2), screenMapPos.y, v[7], v[4], v[5], "center", "center" ,false,false,false,false,false,v[6]) end end end end addEventHandler("onClientRender", root, drawWorldPosMapText)
    1 point
  22. When you work for a company, everything you do at work while being employed belongs to the company. Just because you quit the company, you cannot tell them to remove everything you created. This is pretty much the case here. Imagine some former MTA dev decides he doesn't want MTA to use his parts of the code anymore. Its not his code, it belongs to MTA. Best case for him, he may also use it for his own projects. But he can certainly not make people stop using it after he gave it to them.
    1 point
×
×
  • Create New...