Jump to content

Leaderboard

Popular Content

Showing content with the highest reputation since 28/04/22 in all areas

  1. Hello, We recently discovered a vulnerability within MTA Server, as a result of which an attacker could crash your server. The issue has been fixed and we urge all server owners and hosters to update immediately. Getting the update Linux: https://linux.multitheftauto.com/ Windows x64: https://nightly.multitheftauto.com/?mtasa_x64-1.5-rc-latest If your server is hosted locally (out of your MTA installation folder), reinstall with the full installer from https://mtasa.com/ for the x86 server
    18 points
  2. Download (Github) https://github.com/gta191977649/MTASA-SkyGfx Note: the resource updates frequently, please always check the github for the latest verion SkyGfx (Sky is name of Renderware for the PS2, any semblance to the actual sky is purely accidental) brings accurate PS2 and Xbox graphics to the PC version of San Andreas, Vice City and III. if you enjoy vanilla San Andreas graphic, this mod is essential to have. to learn more about it from the original author (AAP), please see here. Now i will straight go through the documentation. Screenshots The Thanks List ren712 - for shaders & coronas help aap - for the original work & renderware engine help What have done or working in progress? Not Start yet/ not invesgate Partically Works Done & Fully Supported Pre-request Library Timecyc Parser Rendering the timecyc interpolation directly from timecyc.dat, interpretation algorithm conveted from librwgta. custom_coronas For rendering the classicFX, like VC style vehicle big headlight, trail light effect. DGS - (Optional) for the debugTools, But you're need dgs to work, i just a bit lazy with gui things Features Postfx Trails(Blur) - blurLeft,blurTop,blurRight,blurBottom works! Radiosity - Color Filter - PS2 PC Mobile - Night Version Goggles - Infrared Goggles - Building Pipeline SimplePS - BuildingVS - partially, some engine data requires to work, still working on that BuildingVSFX - For model with specular lighting property Not even start yet Vehicle Pipeline PS2 Pipeline - Done, you happy? Xbox Pipeline - Only specular lighting works. Pipeline tweaks radiosityFilterPasses - radiosityRenderPasses - radiosityIntensity - zwriteThreshold - detailMaps - leedsShininessMult - neoShininessMult - neoSpecularityMult - envShininessMult - envSpecularityMult - envPower - envFresnel - sunGlare - just see my feature PR. ps2ModulateBuilding - World Effect Dual Pass Render - Yeah, it's done, thanks to ren712 PS2 Alpha Test not even start yet Grass dualPassGrass - it overrides by dual pass render. grassBackfaceCull - grassAddAmbient - grassFixPlacement - only can do it via modify the mta engine ps2ModulateGrass - Shadows pedShadows - stencilShadows - Misc disableClouds - disableGamma - neoWaterDrops(xbox rain postfx) - neoBloodDrops - transparentLockon - lightningIlluminatesWorld - toogle timecyc lighting on world object. fixPcCarLight - coronaZtest - partially works, however this will breaks and bugs up the other corona's ztesting in mta. needs to work on a new solution. fixShadows - Special Misc FX (Unique addon by nurupo) vehicleClassicFx Show VC/III liked vehicle big headlight and light trails when you rotate the screen vehicleTrailLength Length of light trails (buffered frame) vehicleTrailDrawDist What distance should trails start visiable? vehicleHeadLightAlpha Alpha multiplier for head light vehicleRearLightAlpha Alpha multiplier for rear light buildingExtraBrightness Multiplier for building extra brightness vehicleExtraBrightness Multiplier for building extra brightness stochasticFilter Make repeative texture look better, ported from Valdir da Costa Júnior Bugs/Issue Sun can see through by walls -> Due to zTest disabled fixed by manually re-create sun from shader, thanks to Ren712 Element garbage collection for vehicle classic fx
    9 points
  3. السلام عليكم ورحمة الله تعالى وبركاته أخباركم جميعاً عساكم بخير ------------------------------------------- اليوم جيت أتكلم عن الأشخاص بعض الكلمات المنتشرة كـ "مزح " وهي محرمه ومنتشره للأسف -------------------------------------------- أولاً: التحريف بأسماء الله عز وجل مثل " واللهي " , " سبهان الله " , "اللههه" للأسف هذا الشي منتشر عند الناس و يجب كتابة لفظ الجلالة بالشكل الصحيح ---------------------------------------------- ثانيا: سب الدهر (والعياذ بالله) مثل يلعن الوقت الي إحنا فيه(استغفر الله) حرام ولا يجوز لأن الله هو الدهر عن أبي هريرة رضي الله عنه قال: قال رسول الله صلى الله عليه وسلم: قال الله تعالى: يؤذيني ابن آدم يسبّ الدّهر وأنا الدّهر أقلّب الليل والنهار -------------------------------------------- والسلام عليكم ورحمة الله وبركاته
    3 points
  4. The Fade2Black Team ( DayZ ) Hello, I'm here with a New DayZ Mod, I'm Eren, I've been working on MTA DayZ Scripts, and I've been working on my own server for 1 year. To introduce myself, I'm Eren, I've been playing MTA for years and I'm enjoying it, I have dual citizenship (I'm Turkish and German) I'm new to script development and I'm a beginner. Before moving on to the server's features, I would like to make a few remarks,We are trying to open the server in a better quality as a result of really long efforts, I really recommend this server for those who like to play MTA DayZ, please review,Our server is currently in BETA version, we will release it as a FULL Version in a few weeks. DISCORD ADDRESS : discord.me/fade2black / https://discord.gg/DeK2yS44PM You can reach the MTA DayZ IP address via Discord. TeamSpeak3 ADDRESS : If you want, you can log in with a numeric IP address or you can log in by typing the following. (80.253.246.8 / fade2black or f2b) [all versions can login] features of our server : VIP House ( vip members will create their own vip house and can hide their loot indoors. ) VIP features ( VIP members will be able to use their own skins when spawned,VIP members will be able to create motorbikes in exchange for Shop Tokens,When VIP members spawn, some loot is given to them by typing ./viploot ,VIP members can paint their cars with a single command,VIP members are open to the use of the Hunt system, so they can play more enjoyable games with other players...) Chase Mission (Think of a car, you have to protect this car from enemies within certain minutes, if the car is under your control, you will be rewarded when the time is up.) Interiors (you have access to the interiors of some buildings, for example police stations and casinos,there are better loot indoors.) 2x Zombie Area (There are powerful zombies waiting for you in the inner area of the driving school in the SF area,These zombies that are very hard to kill are full of loot,You can easily collect Level/Shop Tokens in this area...) Ranks (Colors assigned to ranks so you can distinguish everyone.) Skills (Skills given to weapons such as the M4 AK, thus allowing for smoother gameplay.) Missions (Big hack in the big ear,The mission to hijack the Rustler plane,war mission on secret islands,Mission to hijack police car in police station.) War Room (Area51) (In the secret room in area 51, you can find the traces of serial killers. (5 or more players killing players). ) Garages (You can buy a garage to store your vehicles,You can use the ./rentgarage command to rent a garage.) CCTV (CCTV in secret areas) Level System War System (Red areas are formed in some selected areas, if you fight in these red areas, Shop Tokens are given to the 1st, 2nd and 3rd players.) AND MORE. A lot of effort has been put into the MTA DayZ server, with the help of some of my friends they help me fix my systems bugs,I thank them here for that. Hydra45 Tekken You can be sure that you will not have any trouble logging into our MTA DayZ server, because more optimization studies have been done so that the FPS / Ping values are adjusted, this is a good advantage for low-end computers. My love to our friends Luke and dYak for their donations to our MTA DayZ server.
    3 points
  5. If you want more vehicle parts just don't use vehicle variants and use setVehicleComponentVisible instead. You can make how many parts you want for a car and when you start the resource use setVehicleComponentVisible(vehicle, theComponent(from the chassis only), state(false/true)) and use ElementStreamIn functions to sync the car parts for everyone
    2 points
  6. It's time to return to those cold, familiar streets. Join us for Liberty City Roleplay, where the player's economics, experience and time are the #1 priority. Discord: https://discord.gg/Y2PweYBWsW Forums: Coming soon. IP: mtasa://147.189.173.71:22003 (currently password locked) Twitch: https://www.twitch.tv/donnieskuza UCP: Coming soon. Website: Coming soon. Youtube: https://www.youtube.com/channel/UC4OFxMY79XFD7_mHtcKTWjQ We are hiring paid developers! Current goal is to get Liberty City map onto our roleplay server and preserve interiors (LC map deletes interiors). We have a roleplay script, just need some cosmetic tweaks here and there. Cryptocurrency, Paypal, Venmo all welcome methods of payment. Contact Donnie#2790 on Discord to discuss pricing.
    2 points
  7. Olá, e seja bem vindo! Desde ontem a lista de servidores estava indisponível devido há alguns problemas (desconhecidos para nós), e hoje mais cedo foi informado que já foi corrigido, então basicamente não era um problema seu e sim do lado do MTA.
    2 points
  8. It's being looked into. Thanks for escalating @Vinyard
    2 points
  9. 2 points
  10. You can convert the normal vectors to euler angles with the following function, you can use the phi for the so called Z rotation and the theta for one of the remaining (check it which one is better for you). It's a working function, I had a fun time with it shooting trash cans everywhere function directionToEuler(dirX, dirY, dirZ) local radius = (dirX*dirX + dirY*dirY + dirZ*dirZ) ^ 0.5 local theta = math.deg(math.acos(dirZ / radius)) local phi = math.deg(math.atan2(dirY, dirX)) % 360 return theta, phi end
    2 points
  11. Theres no way to protect such scripts from getting shared/cracked. To be honest, I advice you not to spend any time on that, at the end its a cat and mouse game, just like with cheaters.
    2 points
  12. San Andreas Roleplay MTA is now officially one year old! Come in our Discord if you haven't already and stay tuned for upcoming giveaways and special events: https://discord.gg/5RjXS5s5km Much love, SA-RP Team
    2 points
  13. We've updated our Account Application system that allows you to register in-game and answer some questions about our rules & roleplay. It should be more accessible and less painful! Stay tuned for the upcoming update
    2 points
  14. This is so cool. I'm looking forwards to see more media from you guys! @Sonny-SARP - great screenshots, gotta love the Bearcat.
    2 points
  15. We've updated our Forums and still going strong! Check us out: https://forums.sa-roleplay.net/
    2 points
  16. Map files Table of contents: Introduction How to read a map file? Broken map file, what to do? Editor bugged, what to do? Modify your maps outside of MTA Extra links Introduction A map-file! What is that? The name already gives away the definition. It is a file which contains a MTA map. The format makes maps portable, so that you can send them over to your friends. You can recognize map-files by the extension: .map Here is an example of a map: Syntax highlight When you open a map file in your text editor. The syntax highlight you should use is XML (HTML will work as well, but the semantic is different and could cause issues with auto complete features, that is if you have enabled those). Changing syntax highlight in for example Visual Studio Code. How to read a map file? Before we start, this is what we call a node: <tagName></tagName> If we take a closer look to the following map file: <map> <object id="object (bevgrnd03b_law) (1)" interior="0" collisions="true" alpha="255" doublesided="false" model="6094" scale="1" dimension="0" posX="635.234375" posY="-3827.2275390625" posZ="5" rotX="0" rotY="0" rotZ="0"></object> <object id="object (gaz9_law) (1)" interior="0" collisions="true" alpha="255" doublesided="false" model="6133" scale="1" dimension="0" posX="625.49114990234" posY="-3771.6955566406" posZ="11.479743003845" rotX="0" rotY="0" rotZ="0"></object> <object id="object (CE_grndPALCST03) (1)" interior="0" collisions="true" alpha="255" doublesided="false" model="13120" scale="1" dimension="0" posX="573.09802246094" posY="-3847.013671875" posZ="3.6442375183105" rotX="0" rotY="22" rotZ="352"></object> <object id="object (CE_grndPALCST03) (2)" interior="0" collisions="true" alpha="255" doublesided="false" model="13120" scale="1" dimension="0" posX="572.64624023438" posY="-3769.0698242188" posZ="4.9519920349121" rotX="0" rotY="21.99462890625" rotZ="343.24649047852"></object> <object id="object (CE_grndPALCST03) (3)" interior="0" collisions="true" alpha="255" doublesided="false" model="13120" scale="1" dimension="0" posX="669.66534423828" posY="-3856.0627441406" posZ="3.6442375183105" rotX="0" rotY="63.99462890625" rotZ="175.99389648438"></object> </map> > we see in there the map node: <map></map> When the map is loaded <map></map> will become our map element. And inside of the map node we see more nodes: <object id="object (bevgrnd03b_law) (1)" interior="0" collisions="true" alpha="255" doublesided="false" model="6094" scale="1" dimension="0" posX="635.234375" posY="-3827.2275390625" posZ="5" rotX="0" rotY="0" rotZ="0"></object> <object id="object (gaz9_law) (1)" interior="0" collisions="true" alpha="255" doublesided="false" model="6133" scale="1" dimension="0" posX="625.49114990234" posY="-3771.6955566406" posZ="11.479743003845" rotX="0" rotY="0" rotZ="0"></object> In this case these two nodes will become two in-game objects. Tagname <tagName></tagName> Each node in the map file will become an element in game. !important A node has a tag name. In this case I gave it the name: "tagName" This tag name specifies in MTA the element type. For example: If it has the name <object></object>, the element-type is an object. If it has the name <ped></ped>, the element-type is a ped. What if the tag name is not matching with one of these entities? (The list is not complete, the rest can be found in this class list, only if the XML syntax is implemented) Then the elements are considered custom elements. They are not visible in game. Custom elements Custom elements have their own purposes. You often see those custom elements used in game modes, for example stealth: <mercenaryspawn id="mercenaryspawn (1)" posX="635.58117675781" posY="-3770.458984375" posZ="18.97974395752" rotX="0" rotY="0" rotZ="0"></mercenaryspawn> The tagname for this node is "mercenaryspawn". The element that is produced after loading the map, is used as a spawnpoint for in a stealth map. Custom elements are invisible. Custom elements do have an orientation. The getElementsByType function can be used to get custom elements. Attributes Attributes are properties applied to a node. They are used to attach data to an element. Example: <entity name="IIYAMA" age="5" type="device" resolutionX="1920" resolutionY="1080" displaySize="31"></entity> An attribute exist out of two parts: <entity name="value"></entity> Name Value The name specifies if the node has the attribute. <entity name></entity> <entity age></entity> If the name is "name", then the node has the attribute "name". And if the name is "age", then the node has the attribute "age". The value will be used for the data for each attribute. <entity name="IIYAMA" age="5"></entity> Identifiers (ID) Every elements can have an identifier attribute, which is used to make it accessible for scripting functions. <tagName id="identifier"></tagName> The identifier of an element can be used in getElementByID to grant access to it. Even though identifiers normally should be unique for each individual, it is not the end of the world if they are not in MTA. They might also be considered as unnecessary for map files without scripts. Element specific attributes There are some attributes that do more than just applying properties. They will change the element appearance and orientation. For example this object: <object interior="0" collisions="true" alpha="255" doublesided="false" model="6094" scale="1" dimension="0" posX="635.234375" posY="-3827.2275390625" posZ="5" rotX="0" rotY="0" rotZ="0"></object> It will be created in interior 0. It will have collisions. (You can walk on it) Alpha. It's opacity is 100%. It is not doublesided. (When you stand inside of the object you can look through it. If doublesided is enabled the same colors/paint from the other side will be applied.) It's model is 6094. It is scaled 100%. (0.5 = 50%, 2 = 200%) Etc. If you want to know which attributes do have influence on the elements appearance and orientation, you have to look that up on the wiki. Here a small list of some those attributes: Broken map file, what to do? If your map file is broken. Step 1 Make a backup. + Always make a backup when re-editing your map. Settings can get lost! Step 2 The first thing you want to do, is just open it in a text-editor. Just give it a quick look and check for anything strange. The file could be empty or some strange values could be used. Do you want to know all the syntax rules (XML)? You can find a list right here: http://www.adobepress.com/articles/article.asp?p=1179145 Step 3 Remove the editor definition. This definition could cause problems in case of invalid characters. From: <map edf:definitions="COBDEF,editor_main"> <!-- Map elements --> </map> To: <map> <!-- Map elements --> </map> Step 4 If you can't find the problem, then you could validate the file. There are services out there that validate XML files. They can help you to find out where your file is broken. Validation tool by W3C: https://validator.w3.org/#validate_by_input Note: You need to do step 3 first. Else you can't parse the file. Step 5 In case of re-opening map files in the editor, but doesn't want to get open. Make a backup. Remove custom elements. See chapter How to read? Retry to open the file. Editor is bugged, what to do? Your editor could be bugged and you are not able to save the map or open a new one. The first thing you want to do is backup the editor_dump folder in your server. This folder is located between all your resources. server\mods\deathmatch\resources\editor_dump Rename the folder name. editor_dump > my_broken_map Stop the map editor. Check if there is a new editor_dump folder. If there is, rename that one as well. Start the map editor again. Modify your maps outside of MTA Sometimes you want to modify your maps without going back in to the editor. Your text-editor is in most cases the way to go. For example you want to move all objects to a new dimension. In Notepad++: Make a backup! (if you are new to this) Select in your file the part you want to replace: dimension="0" Commando: ctrl + H (replacement overlay) Fill in the replace field: dimension="1" Click on: replace ALL. Moving your map? There is a nice online tool that can help you with that: http://mta.dzek.eu/mmove/ Edit your map with the DOM (Document Object Model) Knowing JavaScript? Your browser inspector can be used to modify your maps at a higher level. (If you so desire) Extra links: Parent, child and how this is reflected in MTA https://wiki.multitheftauto.com/wiki/XML https://wiki.multitheftauto.com/wiki/Element_tree Elementdata <sync_map_element_data /> https://wiki.multitheftauto.com/wiki/Meta.xml Load maps (manually + including in meta.xml) https://wiki.multitheftauto.com/wiki/Meta.xml https://wiki.multitheftauto.com/wiki/LoadMapData Save maps https://wiki.multitheftauto.com/wiki/SaveMapData
    2 points
  17. San Andreas Roleplay Launched: December 1, 2020 sa-roleplay.net History San Andreas Roleplay is a community founded by @FernandoMTA in early 2020 and @Portside who became co-founder in August of this year. A big shoutout to everyone who's been around since the beginning and has put a lot of time, effort and dedication into the project. My idea and project of making a server shaped by the MTA Roleplay community started back in 2017 with what some may know as Neptune Gaming. The goal was to create a server where people could roleplay in a friendly environment with no abusive and corrupt administrators and toxic players ruining the experience. It wasn't an easy task, I failed a few times due to my inexperience and the destructive intentions of some individuals. A lot of mistakes were made and lessons learned. But thanks to the help and collaboration of a lot of friendly people that I've met along the way and have sticked around, some for more than 5 years now, we now have a stable and peaceful RP community. Long story short, SA-RP has become the only serious English text roleplay server on Multi Theft Auto: San Andreas, the successor of the now extinct OwlGaming MTA roleplay server. About San Andreas Roleplay now has a server that is online 24/7, located in France. Click here for statistics. Read our latest post here about the server's current roleplay setting and updates. We're a community focused on player input, feedback and suggestions. This is why we've been listening to our players, making change and adding new things that enrich the roleplay experience. I highly recommend you join your Discord! Useful links: Website/UCP: https://sa-roleplay.net/ Forums: https://forums.sa-roleplay.net/ Discord: https://sa-roleplay.net/discord Server IP: mtasa://server.sa-roleplay.net Media (much more on our Discord and in the replies below) Credits to the respective posters on Discord & our Forums! Thank You San Andreas Roleplay wouldn't have been possible without a community of dedicated players, contributors, staff team members and admins. A huge thank you to all of you! SA-RP is here to stay for as long as we all want to play on it. Now proudly almost 2 years old!
    1 point
  18. @khalikow - the ban expires May 26 at 17:55 UTC, so you'll be back to play soon.
    1 point
  19. Every onClientGUIClick event handler's attachment needs propagate set to false: addEventHandler("onClientGUIClick", theButton, function() -- ... end, false -- add a false after the function's end (4th argument of addEventHandler) ) Otherwise the event is attached to the given element's/button's element tree, meaning the event being triggered on any child element or parent element will trigger the handler, which is not what you want with GUIs. The other workaround is, in each function, adding an if-block with condition checking the event's source (this isn't the most efficient though, since the function will still be called unnecessarily, just that it won't do anything. addEventHandler("onClientGUIClick", theButton, function() if source == theButton then -- verify the event's source is the button you attached this function to -- do whatever the function does end end)
    1 point
  20. That is correct, although be cautious with just how many you add, as each component adds more draw calls which requires more CPU processing time
    1 point
  21. Ou você pode simplesmente usar um elementData no jogador, onde cada gamemode só funciona nos jogadores que possuam um valor específico nesse elementData. É claro que isso será muito complexo, visto que todos os resources que dependem do gamemode precisarão fazer essa verificação de data também, o que vai prejudicar seu desempenho no servidor. Outra alternativa seria existir uma tabela global de jogadores onde cada jogador entra em um índice diferente após escolher o Gamemode no painel de login. Então cada gamemode e cada resource que dependa de gamemode irá verificar essa tabela usando um call (exports). gamemodeDeGeral = { ["Freeroam"] = {}, ["Race"] = {}, ["DM"] = {}, ["DayZ"] = {}, ["RPG"] = {}, } addEventHandler("onPlayerLogin", root, function(thePlayer) table.insert(gamemodeDeGeral["Freeroam"], thePlayer) -- Exemplo para inserir um player que acabou de logar no Freeroam. end) addEventHandler("onPlayerLogout", root, function(thePlayer) for i,p in pairs (gamemodeDeGeral["Freeroam"]) do if (p == thePlayer) then gamemodeDeGeral["Freeroam"][i] = nil -- Exemplo para remover um player da tabela Freeroam ao deslogar. return end end end)
    1 point
  22. Hi, welcome to the forums! I've moved your thread to the Portuguese section as it's better suited. The problem is that you're pointing your MTA installation to the folder of Vice City, while MTA needs your San Andreas installation folder. If you don't have GTA San Andreas, you can obtain a copy from the sources mentioned here: https://wiki.multitheftauto.com/wiki/Where_to_buy_GTASA
    1 point
  23. function checkHungerAndThirst() local getHunger = getElementData(localPlayer, "Player:Hunger") local getThirst = getElementData(localPlayer, "Player:Thirst") if getHunger <= 0 then setElementHealth(localPlayer, 0) end if getThirst <= 0 then setElementHealth(localPlayer, 0) end end setTimer(checkHungerAndThirst, 1000, 0)
    1 point
  24. hello, your work is really nice.
    1 point
  25. Hey @dollar I've moved your thread into the Modelling section. You can find guides on modding in MTA here: https://forum.mtasa.com/forum/179-tutorials/ https://forum.mtasa.com/forum/185-user-guides/ If you have any specific questions please feel free to ask here! We also have a #modelling channel in our Discord server.
    1 point
  26. You need to create multiple lines connected to each other to form a curve!! how are they made as a pixel in an image
    1 point
  27. I hope you reach a good audience
    1 point
  28. See useful function getPedGender for getting the gender. https://wiki.multitheftauto.com/wiki/GetPedGender (getPedGender and getSkinGender) As for the skins table: local maleSkins = skins[1] -- returns a table print(maleSkins[1]) -- first male skin local femaleSkins = skins[2] -- returns a table print(femaleSkins[1]) -- first female skin
    1 point
  29. Hello. I am pleased to present another project that you can buy
    1 point
  30. Hey The MTA ban for cheating expired May 1. If you're playing on forked MTA, it's possible they banned you from their project, in which case you should appeal the ban with their staff
    1 point
  31. Try undoing those changes, and connect to a server to see if you're able to play again
    1 point
  32. --// DX Draw local sx, sy = guiGetScreenSize() local resW = sx/1920 --// I put sx/1920 bcs my resolution is 1920x1080 you can put sx/your resolution width, I use resW for text scalling function ShowInfo() local theCash = getPlayerMoney(localPlayer) dxDrawRectangle(sx * 0.1300, sy * 0.2300, sx * 0.2300, sy * 0.3000, tocolor(0, 0, 0, 210), false) dxDrawText("Player Money: "..theCash.."", sx * 0.1400, sy * 0.2700, sx * 0.0300, sy * 0.0300, tocolor(255, 255, 255, 255), 1.00*resW, "default-bold", "left", "top") end function CheckInfo() if not infoState then infoState = true addEventHandler("onClientRender", root, ShowInfo) else infoState = false removeEventHandler("onClientRender", root, ShowInfo) end end addCommandHandler("info", CheckInfo) --// GUI local window = guiCreateWindow(etc...) local label = guiCreateLabel(etc....) guiSetVisible(window, false) local timerUpdateInfo = nil function updateInfo() local theCash = getPlayerMoney(localPlayer) guiSetText(label, "Player Money: "..theCash.."") end function CheckInfo() if guiGetVisible(window) == false then guiSetVisible(window, true) timerUpdateInfo = setTimer(updateInfo, 1000, 0) else guiSetVisible(window, false) if isTimer(timerUpdateInfo) then killTimer(timerUpdateInfo) timerUpdateInfo = nil end end end addCommandHandler("info", CheckInfo) You can use GUI or DX without any problem, now it also depends on what kind of interface you want your server to have. If you want something classic you can use GUI but if you want something based on design and animations then DX it's the best way. I put an example above for the player info
    1 point
  33. Dude nice! Glad to see this gamemode is back. Missed it so much.
    1 point
  34. Very well! Keep up the good work, everything will work out!
    1 point
  35. We should get back to you with an answer soon
    1 point
  36. вот этот: 101419F5DCA0052C86A5289C2C4657F2 @Tut @Тут
    1 point
  37. E aí, @Muskzeera, de boa? Você precisa obter as informações sobre o dano dado de acordo com quem tá atirando, e não recebendo os tiros. Para isso, você deve usar o evento onClientPlayerDamage, obter os dados que vêm dos parâmetros da função e enviá-los para o servidor, através da função triggerServerEvent.
    1 point
  38. Hi. I wanted to share a new project with you
    1 point
  39. New service to help promote your server For 12 euros, you can buy a top 20 position in the MTA server browser for 20 days. Ideal for getting your amazing gamemode seen by more players. See here for details: https://www.multitheftauto.com/toplist/ All proceeds are used to support development and the upkeep of MTA services; by helping yourself, you're also helping out MTA by donating.
    1 point
  40. I like it. Where is the download button?
    1 point
  41. Happy Holidays & New Year everyone! Thank you all for your continous support and contributions towards this project!
    1 point
  42. In September 2013, we launched a service to compile Lua files for your MTA servers, hosted within our web network - http://luac.mtasa.com . Currently, the service offers some basic encryption abilities and some (admittedly imperfect) protection to prevent decompilation, and an API so that users can compile scripts as simply as possible. Over time this service has been gently encouraged in MTA Server debug warnings until it has become fully enforced. Now, all compiled scripts are required to go through this service or they will not run on your MTA Server. We've had no choice but to keep quiet on the motivations behind this process, but this post seeks to clarify the circumstances for which this had to happen. We can only apologize for the clear disruption this causes servers (particularly larger ones), but hope that you'll agree that when we say that we were backed into a corner. Keeping our users safe MTA is a complicated mod where we have multiple stakeholders that we have to consider. The main ones are hosting service providers, server owners, and our players. It's our job to ensure that all stakeholders are catered for, and crucially, they are kept safe. This is particularly a problem for players. We simply cannot trust server owners to always provide a safe environment for players - a scenario where a server owner baits players into joining to distribute viruses is unfortunately a reality that must be dealt with. Enter Lua bytecode. For those unaware, the junk that you see when you open a compiled script is called "bytecode", so a compiled script or bytecode are more or less the same thing. Over 3 years ago, a lecture by Peter Cawley at the Lua Workshop 2011 presented a number of bytecode exploits in Lua 5.1 and 5.2. I actually spoke to some resident Lua experts over at Freenode who only reiterated concerns surrounding the use of bytecode in Lua. The consequences of such a discovery is clear: a booby-trapped script can be sent to unwitting players who have their systems exploited. Around the time luac.mtasa.com was launched, a proof of concept exploit was released - exploiting the Lua engine in the game Company of Heroes 2. I can't recall exactly when we first became aware of the dangers of having bytecode enabled, but I think it was towards the end of 2012. We started taking serious consideration over the issue in early 2013. I actually contacted Peter regarding our options over this. After plenty of research we established a few possible ways to deal with the issue. What our options were 1) Disable compiled scripts. This is the most obvious answer, and the best way to guarantee safety for our users. Researching how other software dealt with this exploit revealed that this was the best option. Now we get back to stakeholders: by doing this we guarantee the safety of our players and the future of the mod, but agitate all our server owners in the process. 2) Implement a way to detect malicious scripts. If the client and server had a built in way to detect the scripts that are malicious, then we could simply block those. Unfortunately, none of the team are experienced enough with Lua's intricacies to stand any chance at implementing this ourselves. A 3rd-party Lua verifier was actually released, but only for Lua 5.2. There are a number of issues with this. We don't support Lua 5.2 - so we'd have to spend time upgrading it in MTA. This might not sit nicely with things such as the then in-progress OOP implementation. The main issue is that there was no active development on the verifier, with the last commit being in September 2011. This is arguably fine for something that's 'finished', but after further indications that the author wasn't actively looking at bytecode issues, worries of a 'cat and mouse scenario' began to creep in. Even if we adopt this verifier, there's a chance more bytecode exploits are found - and when that happens we have to wait for an inactive project to be updated. On top of all of this, compiled scripts in Lua 5.1 aren't compatible in 5.2, which means everything would have to be recompiled anyway. 3) Make sure that all compiled scripts are safe. This third option is subtly different to (2). What if we can verify compiled scripts are safe by making sure the compiler is safe? If only a single compiler can be used, then no one could booby-trap their scripts. This would further require a way to prevent users from modifying scripts used by this compiler. Initially, the consensus was to disable compiled scripts completely, and we had been discussing ways to replace the functionality of compiled scripts. Protecting scripts could be offered by some form of encryption - but we're not cryptographic experts and could never guarantee protection of scripts - in fact script protection was more of an idea and didn't really have a solid roadmap. It made me wonder whose responsibility it actually was to protect the content of scripts. Either way, all the existing compiled scripts would be rendered incompatible with a newly introduced encryption system. I've already gone into detail over why option (2) proved to be impractical, which left our third option - providing our own compiler. By ensuring all scripts are compiled by http://luac.mtasa.com, we know for sure that they are legitimate and have nothing harmful in them. So, why not distribute an offline compiler? We also have to prevent against script tampering - i.e. scripts compiled with our "official compiler" then modified afterwards. We prevent this using code-signing technology - the same certification system we use to sign the MTA client itself. In layman's terms, we put an MTA "seal of approval" so if someone tampers with the MTA client executable, the seal is damaged and things break. The same principle applies to scripts compiled on http://luac.mtasa.com. It's simply not possible for code-signing to happen offline since we're the only ones who can stamp the 'seal'. Hosting the compiler gave us the opportunity to implement some extra features that server owners may benefit from, such as anti-decompile, and some basic encryption. It also opens doors in future - we can potentially take further action against some of our shadier scripting community. I'd also like to point out all this research and the final decision happened over several months of deliberation - how we stop the exploit, when we can implement it, and how we tell the community about it. Why we remained silent This was an extremely delicate situation. If this post had been made back in 2013, we would have effectively announced to the world that there's an security hole sitting in MTA waiting to be exploited. Equally, by not coming clean we would basically be forcing server owners to pass scripts through our servers and not explain why. Overall, we felt the safest choice was settling for the latter, despite issues we might face. We chose to make our online compiler, but phase it in over the period of almost a year. Before now, I've responded to angry server owners by pointing out the benefits of things like the script encryption, but the underlying motivation has always been about bytecode exploits. It's inevitable that things like anti-decompile are being cracked, but there are now new avenues to enhance protection to make things better for server owners. We announce this now because we feel our players are largely safe. To keep it this way, we urge anyone who's found an exploit or even got around our compilation to check our Security bounty scheme. What does luac.mtasa.com actually do? There are various rumours over what luac.mtasa.com actually does, and what we do with your scripts. The answer is simple: you send a script to the server. The server then puts it through a standard Lua 5.1 compiler. It then signs the script. If you opted for encryption, the script is encrypted using a private key. Then it gives it back to you. Nothing is stored, and there's not even anything automated to read the code in the scripts. Hopefully everything I've said already makes it clear that there's no reason for anything else to happen. We have no interest in stealing your scripts Which leads me to an important point: we don't want to steal your scripts. We don't care for drama or politics, only for our user base. There is no motivation for any of us to steal your scripts. This should be self-explanatory - it makes no sense for us to introduce a way to hurt the users of our software. "But what if you wanted to sell the scripts for your personal gain, and probably world dominance?" I hear you cry. I say this: if we wanted to steal your scripts, don't you think we would have come up with a much smarter way than to invite people onto our website to upload them? We're developing a piece of software that's designed to interact with servers to send and receive files. You do the math. Other concerns that are commonly raised is that server owners don't want to risk their scripts being exposed in case our server is hacked. Once again, for reasons outlined above, we don't store your scripts. That's a waste of our webspace. We only care for compiling them, and making sure they're sane. Nothing is stored on our servers. Another one is that by making scripts go through us, we're making scripters rely on the indefinite existence of http://luac.mtasa.com . What if we can't afford the rent and the website suddenly goes down? This is a valid point, but for reasons stated above we have no choice but to compile the scripts ourselves, on our web server. Moreover, the server browser master list and other services are already hosted by us - so some form of dependence on MTA's services is uncontrollable. Will things ever go back to how they were? As you can see, we spent a long time figuring out how to deal with this problem. It's unlikely things can ever go back to traditional offline compiling. But keep in mind the reasons why this was introduced. If you have experience or possible avenues that could be explored, we're always open to suggestions (or even someone implementing it themselves). At the end of the day, we try to make sure all our users are happy. So if there is a Option (4) out there, it's not something that's already ruled out. In the meantime, we've tried to bridge the gap by offering an API, and some members of the community have developed tools to help. Thanks for reading
    1 point
  43. 1 point
  44. I'm excited to show you my latest tool. This time it is something different than my previous tools. It is a bigger project which came to my mind over 2 years ago. I failed at first time because I had trouble with rotations (built in mta function doesn't work well so I had to use quaternions which caused problems as well). Moreover one of devs was working on new editor and he was going to add multi selection option but he cancelled the project. After 2 years I decided to finally write it and also add few additional features. Many hours spent on the tool, thousands lines of code but here is it. I hope you like it and find it useful. Personally I think it should speed up your mapping a lot. Few features might look complicated (actually they are easy to use) so I advice watching or reading tutorial carefully. Features Let's see what this tool is capable of! Create groups of elements using various selection tools and element filters a. edit their position and rotation around all axes b. change their properties - all popular element types are supported c. clone / delete options d. large group support enables you to move / edit whole parts or even maps Duplicate 2 groups Change pivot position Add groups to library a. browser with search and sort options b. loading big groups enables you to join many maps into 1 c. import option which adds all MSTU groups from a given map Cover groups a. create your own cover variations or object compositions b. default cover settings makes covering even faster Customize tool settings on your own needs Download More info and full tutorial you will find here: https://www.thecrewgaming.com/forum/showthread.php?tid=2467&pid=12255#pid12255 Support me If you want to support me leave feedback and also you can buy me a coffee so I won't starving. Thanks a lot! Buy Coffee Feel free to ask questions below or via PM/discord. I'm also opened for script requests. I will keep updating the tool in case you find some bugs. Discord: https://discordapp.com/invite/C4TRxr8
    1 point
  45. sx,sy = guiGetScreenSize() addEvent("CHack_V",true) local rotX,rotY = 0,0 local mouseFrameDelay = 0 PI = math.pi lplayer = getLocalPlayer() local ayudatxt = [[Bienvenido al modo de Version Libre! Usa los botones de tu teclado numerico y tu Mouse para mover la camara! PARA SALIR USA LA TECLA ENTER]] local cHOpciones = { sen = 0.01, vel = 2 } local camHack function CamhackOn() if camHack then camHack = false setElementData(lplayer,"camHack",false) setElementData(lplayer,"Ocupado",false) --setPlayerHudComponentVisible("all",true) showChat(true) toggleAllControls(true, true, false) removeEventHandler("onClientCursorMove",root,moverMouse) removeEventHandler("onClientPreRender",root,moverCamara) setCameraTarget(lplayer) unbindKey("h","down",mostrarGUICam) unbindKey("enter","down",salirCam) destroyElement(camHackGUI) if controlsEnableGM or controlsEnableAlpha then toggleControl ( "fire", false) end else setElementData(lplayer,"camHack",true) setElementData(lplayer,"Ocupado",true) camHack = true setPlayerHudComponentVisible("all",false) showChat(false) toggleAllControls(false, true, false) local x,y,z,lx,ly,lz = getCameraMatrix() setCameraMatrix(x,y,z,lx,ly,lz) addEventHandler("onClientCursorMove",root,moverMouse) addEventHandler("onClientPreRender",root,moverCamara) aviso("Vista Libre\nPuedes ver la ayuda y opciones con la tecla 'H'") cargarGUICam() bindKey("enter","down",salirCam) end verificarCheckPanel() end addEventHandler("CHack_V",root,CamhackOn) function salirCam() CamhackOn() end function moverMouse(_,_,aX,aY) if isCursorShowing() or isMTAWindowActive() then mouseFrameDelay = 5 return elseif mouseFrameDelay > 0 then mouseFrameDelay = mouseFrameDelay - 1 return end local width, height = guiGetScreenSize() aX = aX - width / 2 aY = aY - height / 2 rotX = rotX + aX * cHOpciones.sen rotY = rotY - aY * cHOpciones.sen if rotX > PI then rotX = rotX - 2 * PI elseif rotX < -PI then rotX = rotX + 2 * PI end if rotY > PI/2 then rotY = PI/2-0.001 elseif rotY < -PI/2 then rotY = -PI/2+0.001 end end function moverCamara() local x,y,z,lx,ly,lz = getCameraMatrix() local angZ = math.sin(rotY) local angY = math.cos(rotY) * math.cos(rotX) local angX = math.cos(rotY) * math.sin(rotX) local speed = 0 local speedr = 0 if getKeyState("w") then speed = cHOpciones.vel elseif getKeyState("s") then speed = -cHOpciones.vel end if getKeyState("a") then speedr = cHOpciones.vel elseif getKeyState("d") then speedr = -cHOpciones.vel end if getKeyState("q") then z = z - cHOpciones.vel elseif getKeyState("e") then z = z + cHOpciones.vel end local DisX = x - lx local DisY = y - ly local angleLength = math.sqrt(DisX^2+DisY^2) lx = x + angX * 100 ly = y + angY * 100 lz = z + angZ * 100 x = x + angX * speed y = y + angY * speed z = z + angZ * speed x = x + (DisY / angleLength) * speedr y = y + -(DisX / angleLength) * speedr setCameraMatrix(x,y,z,lx,ly,lz) end local color = 255 local adtxt = "" local timer function cargaraviso() if color > 0 then color = color - 5 end dxDrawRectangle(0,sy/2-30,sx,60,tocolor(0,color,color,200),false) dxDrawText(adtxt,0,sy/2-30,sx,60,tocolor(0,255,0,255),2,"default","center") end function aviso(texto) color = 200 adtxt = texto if not timer then addEventHandler("onClientRender",root,cargaraviso) timer = setTimer(function() removeEventHandler("onClientRender",root,cargaraviso) timer = nil end,3000,1) else killTimer(timer) timer = setTimer(function() removeEventHandler("onClientRender",root,cargaraviso) timer = nil end,3000,1) end end function cargarGUICam() camHackGUI = guiCreateWindow(sx/2-204,sy/2-121,409,242,"Opciones de Vista Libre",false) guiSetVisible(camHackGUI,false) local tabCamHack = guiCreateTabPanel(11,21,389,212,false,camHackGUI) local tCamAyuda = guiCreateTab("Ayuda",tabCamHack) guiCreateMemo(3,6,378,179,ayudatxt,false,tCamAyuda) local tCamOpciones = guiCreateTab("Opciones",tabCamHack) guiCreateLabel(13,12,66,17,"Velocidad:",false,tCamOpciones) addEventHandler("onClientGUIChanged",guiCreateEdit(84,10,118,22,tostring(cHOpciones.vel),false,tCamOpciones),function() local txt = guiGetText(source) if not tonumber(txt) then local point txt = txt:gsub(".",function(x) if x=="." and not point then point = true elseif not tonumber(x) then return "" end end) if txt == guiGetText(source) then return end guiSetText(source,txt) end cHOpciones.vel = txt end,false) guiCreateLabel(13,40,66,17,"Sensibilidad:",false,tCamOpciones) addEventHandler("onClientGUIChanged",guiCreateEdit(84,38,118,22,tostring(cHOpciones.sen),false,tCamOpciones),function() local txt = guiGetText(source) if not tonumber(txt) then local point txt = txt:gsub(".",function(x) if x=="." and not point then point = true elseif not tonumber(x) then return "" end end) if txt == guiGetText(source) then return end guiSetText(source,txt) end cHOpciones.sen = txt end,false) bindKey("h","down",mostrarGUICam) end function mostrarGUICam() if guiGetVisible(camHackGUI) then guiSetVisible(camHackGUI,false) showCursor(false,false) else guiSetVisible(camHackGUI,true) showCursor(true) end end
    1 point
×
×
  • Create New...