Jump to content

Leaderboard

Popular Content

Showing content with the highest reputation since 25/10/24 in all areas

  1. Hello all. The holiday season is finally here, and we have prepared a more compact summary post for you than usual. Please read on to see, what we have been up to lately. GTA VI The upcoming year will bring us the next game from the Grand Theft Auto series - GTA VI. Planned to launch in Fall 2025 on consoles, it will likely arrive on PC as well, just some months later. The second trailer for GTA VI is also rumoured to be shown soon, with some elaborate fan theories backing these rumours. Will the game be good? Only the time will tell, but looking back, there was not a major GTA game release from Rockstar Games that was bad (for the sake of this argument, let's consider the Trilogy as a minor release ). That alone makes it worth to look forward to it, and it will be also nice to re-visit Vice City similar to how we did it with Liberty City and San Andreas. MTA Status and Updates Not much to report in regards of MTA - we have been focusing on improving various parts of our infrastructure, which is not immediately visible at first glance. Still, since there are many areas that need the attention, there is a lot of work involved. Thankfully, CiBeR, Botder, Lopsi, Dutchman and others have been looking into it. Thanks to the hard work done by our Helper - FileEX, we have also refreshed the Lua syntax highlighting system on our Wiki. For a long time it was unmaintained, causing many of the recent MTA scripting functions and events to be not correctly highlighted in the code snippet examples on the wiki. This has changed though, and it should be working much better now. We have been also tinkering with our #MTASpotlights hashtag on X / Twitter. We are still exploring this idea, but nonetheless, thank you for your submissions so far. If you would like to share some media that we could promote, you can do so on our Discord, just please make sure to read the guidelines beforehand. And, naturally, there have been additions to the mod's source code now and then, bringing in new scripting functions and bugfixes. Similarly, we have been pushing those as client updates for you, also now and then. Player Counts and Other Statistics Type Amount of players Date / Time Recent peak number of concurrent unique players 24,808 players 2024.12.22 (at 18.13 GMT) Highest recorded number of concurrent unique players 52,098 players 2020.04.02 (at 18.00 GMT) Recent number of daily unique players 95,445 players 2024.12.15 (Sunday) Highest recorded number of daily unique players 185,818 players 2018.02.03 (Saturday) Recent number of monthly unique players 478,736 players September, 2024 Highest recorded number of monthly unique players 805,903 players January, 2018 For a mod for a game that is nearly 20 years old now, these are fairly good numbers. Smaller than last year, but still impressive. We are glad that you are still with us. MTA:SA version or series Percentage of players using that version or series as of 24th of December, 2024 1.6.0 99.5% 1.5.9 0.4% <1.5.9 0.1% Also, as of 24th of December, 2024: there are over 90,000 members on our Discord server, we have got 13,790 followers on X/Twitter, 58,000 users follow our Facebook fanpage , and our Steam Community group has nearly 50,000 members. --- To end this post on a high note, we would like to take this moment to wish you all Happy Holidays and a Happy New Year. Enjoy the Season and take care. -MTA Team
    20 points
  2. Hello MTA players, I realised that I had to create this post because I got a lot of feedback, I stopped all my activities in MTA and I don't play MTA anymore because I had to make some changes in my life and change my life direction, I saw MTA in 2010 and I started playing, during this time I made very good friends, developers and players, so I would like to thank you all endlessly, 3 months ago I stopped all my activities in MTA, but I was still receiving a lot of message requests (for paid development or other issues) after that I gave everyone goodwill feedback, but I had to stop this because I was receiving a lot of messages from MTA servers and players, Anyway I have to say that I will miss all MTA players and developers, I will visit from time to time but I won't have much time for that, for some players who will try to contact me I have to say that I don't have a discord server and I don't answer private messages, I think you will be understanding and thanks for that... I have reached the end of my career in MTA. I have worked voluntarily on many servers and participated in numerous projects. I have sold all the projects I worked on, both paid and free, and I would like to announce that I will no longer be continuing my projects. I had a great time on many servers, and for that, I want to express my gratitude. Finally, I am deeply grateful to the valuable members of the MTA team, as they have helped me in many ways. Some of them include @Sarrum, @Vinyard, @Citizen, @IIYAMA, @AlexTMjugador, and myonlake (Patrik). I will miss you, guys!
    6 points
  3. In-Game Lua Editor for MTA:SA - Enhanced Release Hey MTA community! Updated version of the complete Lua code editor that runs directly inside MTA:SA. Edit your server scripts in real-time without leaving the game or dealing with FTP uploads. This is a full development environment with professional features, not just a basic text editor. Complete resource management system included. Key Features: - Command: /editor to open the editor - CodeMirror syntax highlighting Visual Studio Code quality - Real-time file editing and saving - Resource browser with search functionality - Multi-language interface: English, Spanish, Portuguese, Turkish and Arabic - Dark professional theme - Whitelist/Blacklist security system - Admin ACL permission controls - Completely offline no external dependencies - Instant server updates without restarts NEW Resource Management Features: - Create new files directly in editor (client/server/shared) - Delete files with confirmation dialogs - Full meta.xml editing support - Auto meta.xml updates when creating/deleting files - Visual file indicators with color coding - Enhanced security controls - In-panel notification system What it does: Browse all your server resources, create new scripts, delete unwanted files, edit meta.xml configurations, and modify code with proper syntax highlighting. Complete development workflow from within the game. Requirements: - IMPORTANT: Add "Admin" ACL permissions to the resource - Configure your admin group in permissionACL variable - Set up whitelist/blacklist for resource access control - Make sure your account has admin ACL permissions to access the editor Installation: 1. Add resource to your server 2. Give "Admin" ACL permissions to the resource 3. Edit permissionACL variable in editorS.lua with your admin ACL group 4. Start resource and use /editor command Why Im sharing this: I believe in giving back to the MTA community. This enhanced tool has saved me countless hours of development time with its new resource management features. Download it, try it out, and let me know what you think. More contributions coming soon. Developed by BranD - Trident Sky Company Repository in case you want to help me improve the resource https://github.com/TridentSky/LuaEditorMTA/ I appreciate it if you support me by joining my community discord: https://discord.gg/mjWuv7Zbyh DOWNLOAD: https://community.multitheftauto.com/index.php?p=resources&s=details&id=19012 VIDEO DEMO NEW VERSION:
    5 points
  4. Tired of San Andreas water that looks like someone spilled green paint and called it “good enough”? Meet this shader: water so realistic, you'll forget you're in a 22 year old game. Enjoy ripples, reflections, and surface waves that almost make you wish GTA had fishing. Boats finally look like they’re actually in the water not floating on radioactive soup. Best part? It’s fully customizable tweak the look, the color, the movement, or make the water as cursed as you want. Plus, it’s at least kind of optimized to run smoothly on hopefully most rigs, so you won’t need a NASA PC to enjoy the water. Just install it, and watch your players get distracted and drive off a pier. https://community.multitheftauto.com/index.php?p=resources&s=details&id=19007
    4 points
  5. -> develop and sell cheats for players to abuse in servers -> develop and sell anti-cheat for servers to defend from cheating players -> win-win with both sides
    3 points
  6. We are planning to open source Sphene around Q4 of 2025. I'd like to set some expectations: Sphene is still heavily in development, by no means will Sphene be something you can just run and enjoy on a server. While a lot of features have been added to Sphene, a lot of the storyline is not fully playable yet. There are still a lot of glitches, and missing functionality. You WILL run into major issues. We are working through some of the last hurdles that kept us from open sourcing the project. We will only provide support on getting Sphene to run to those with clear intent to help its development. By open sourcing the project later this year, we hope to accelerate its development. We hope to work together as a community to better understand how the underlying game code operates and how to implement missing functionality into Sphene. We look forward to working together with all of you!
    3 points
  7. Hey, here's something I started creating a few years ago now but hit a roadblock with. I decided to pick it back up again recently and see what I could do, and here's where I'm up to with it. This script is still a W.I.P.
    3 points
  8. I am working with Cursor. Which is a fork of Visual Studio Code modified with AI in mind. It is my daily driver. The free version should give you enough monthly requests to finish your script. An no this is not a stupid AI, it is a optimised version for coding after all. You can even choose which AI you want to use, but some advanced may be behind a paywall.
    2 points
  9. PARKING METER SCRIPT COMPATIBLE WITH THE NEWEST OWLGAMING VIDEO SHOWCASE INTERESTING FEATURES OF THIS SCRIPT: dxDraw UI – modern and user-friendly display (like a real parking meter). Hourly parking system – players can choose how many hours they want to park up to 24 hours (to prevent unrealistic over-parking) Dynamic price calculation – price is automatically calculated based on time. Active/expired parking check – players can extend their active parking or start a new one. Sound effects – confirmation, payment. and error sounds. MDC integration – all payments and parking data are stored and then shown in MDC. Multiple parking zones – you can add unlimited zones and meters via config file. PAYHIP LINK If you have any questions, feel free to text me on Discord! (fajlyp)
    2 points
  10. MTA:SA - Claire Anticheat Claire is a modular, lightweight anticheat resource for MTA:SA, designed to improve the integrity and fairness of servers. Its core philosophy is simple: organize detections into clean, independent modules, make them easy to configure, and build an open platform that others can expand and improve. Claire runs silently in the background, acting as a guardian layer — constantly monitoring player behavior, network conditions, and client-side integrity without interfering with gameplay or degrading performance. Its design favors discretion and precision, targeting cheats without disrupting legitimate users. If you're looking for a solid, customizable way to secure your MTA:SA server, try out Claire. Why does it matter? By being fully open-source, Claire gives server owners an accessible and transparent tool to detect common exploits and improve their server environment. But more than that, it invites collaboration. The idea is that, together — through testing, feedback, improvements, and shared knowledge — we can create a more solid, trustworthy anticheat resource that benefits the entire MTA community. Current features Claire currently includes over 20 independent detection modules, covering movement, combat, environment manipulation, network spoofing, and more. All detections are modular, configurable, and designed to operate silently in the background with minimal performance impact. False positives are rare thanks to tolerance-based logic, score systems, and heuristic analysis. Overall reliability across all modules is expected to be around 95%, all features are listed at our GitHub page. Contributing Claire is an open-source project — contributions are welcome! Feel free to contribute with PRs, reports, or suggestions at our GitHub page. You can also reach out to us on Discord. Download Download from MTA Community: latest release - 1.1.5 from 2025/04/22 Download from GitHub: latest release - 1.1.5 from 2025/04/22 Please check our GitHub page before downloading it, I'm open for suggestions.
    2 points
  11. Link: https://payhip.com/TheDarkQ
    2 points
  12. It is indeed a kind of attack. It means that the player is able execute clientside-code on demand. The attacker is triggering 'known generic events' which might be handled by the server. The ones that are unknown are in your logs, the ones that are known and trigger able are not. But that does not mean that the ones that did trigger didn't cause unwanted results. You might want to consider to restart the resources, just to make sure there is no memory leak. The event which AngelAlpha mentioned can indeed help with detecting that kind of attacks. As an extend you can also add a honeypot, which in this case are 'unkown' events for your server but know for other servers. When a player uses this kind of attack again, you can ban them automatic. You might want take a closer look at your logs for candidates (for example money related). There is also this event: https://wiki.multitheftauto.com/wiki/OnPlayerTriggerEventThreshold But be careful with automating things, always test these kind of stuff or you might accidentally nuke your own player base.
    2 points
  13. Hey everyone! I've completed a character customization script that works with all gamemode and easy to setup, and I'm excited to share its features! Key Features: Male & Female character models Loads character data directly from SQL Ensures data sync for real-time updates Smooth character loading in the selection screen Extensive customization options, with a wide variety of textures for male and female characters These features let you create a truly unique character with a broad range of personalization options! Additional Features: Integrated clothing store Accessories store Barbershop for detailed character styling Future Plans (V2): Specialized models for Police, Medic, and Mechanic characters (both Male & Female) Important Note: This script isn’t free. If you’re interested or have any questions, feel free to reach out for more information. Thanks for checking it out, and stay tuned for updates as I plan to add even more customization options! Discord: .undrr Discord: .undrr
    2 points
  14. What is Reinc Online? Reinc Online is a full-featured isometric MMORPG playable inside the vanilla MTA client. The game includes everything you’d expect from an MMO action RPG. Classes, talents, abilities, quests, monsters, items, crafting, boss fights, PvP, and much more. Reinc Online is inspired by great ARPGs out there, like Drakensang Online, the Diablo series, Lost Ark, Last Epoch, and others. If you’ve played any of these, you’re already familiar with what Reinc Online can offer, but inside MTA. If this post seems interesting, please make sure to check out the trailer video about the server: Please note that this is a very early access version of Reinc Online. Bugs, missing features, balancing issues, and occasional server shutdowns are likely to occur. Due to the complexity of the project, there may also be unforeseen issues that are expected to be revealed after the release. Also, keep in mind that I am working on this project alone. If you encounter any bugs or errors, please report them using the in-game reporting system or on the Discord server.
    2 points
  15. I don't need to describe Reinc online, because everything is as it appears in the video, so words cannot vouch, I can say that it is the best project and presenter ever in MTA, so a big applause to Danihe as a masterpiece
    2 points
  16. @Dadinho Só é possível mexer no chat nativo para você mesmo. Não é possível alterar via script. Caso queira, vá no menu ESC > Opções > Interface > Lá em baixo em Layout > Então vc tem acesso às opções de posição e tamanho dele, além de fonte.
    2 points
  17. Quick update, project is very much alive and loads of progress has been made since this topic was made. I'll add a new comment soon outlining the work we've done over these 6 years. I usually just do updates on our Discord server but realized that there's possibly a group of people out there that might be trying to get their updates on the project here.
    2 points
  18. Hi!, my name is Laxante101, I'm a .Lua developer, And today I will try to help you understand SQlite WHAT IS SQLITE? SQLite is a relational database management system (RDBMS) that does not require a separate server to function. Unlike database systems like MySQL or PostgreSQL, which need an active server process, SQLite is "embedded" (that is, the database is stored in a local file on disk), and operations with they are made directly within the program that uses it. Luckily for us, SQLite is already built into the MTA. This means that you can use SQLite databases directly in your MTA Lua codes without having to install anything additional "external" or configure an external database server. SQLite support is native to MTA, facilitating the use of databases for persistent storage of in game information. It is normally used on servers that do not use the login panel, they use SQlite so their information that would be saved in accounts is now saved in the .db file. Or on servers that don't use the original game money, they create other types of “money” like diamonds, stars which are all saved every day, well that's usually the case IMPORTANT DETAILS • Simplicity: Doesn't require anything other than a notepad • Portabilidade: Data is stored in a single .db file, which makes backup and migration easier. SQlite Global Structure Connect to Database with dbConnect Execute Queries using dbExec to modify data and dbQuery to recover data. 3. Manipulate Results with dbPoll and process the returned data. Connection to the Database the database file can be created automatically when connecting. The database file is saved in the server's root folder. local db = dbConnect("sqlite", "storage.db") or if you want to automatically create a folder for your file, or to save your .db files, if it is not created it creates it automatically, if it is created it just puts the file in the path. local db = dbConnect("sqlite", "db/storage.db") in this case the "db" folder will be created Creating Tablese data, you first need to create tables in the database. This is done using normal SQL commands like consulta local = [[ CREATE TABLE IF NOT EXISTS players ( id INTEGER PRIMARY KEY AUTOINCREMENT , name TEXT , score INTEGER ) ]] dbExec ( db , query ) Create a player table if it doesn't already exist In this case, we are creating a players table with three columns: ID Name Score Table Structure TEXT: STRINGS INTEGER: STORAGE NUMBERS REAL:STORES FLOATING POINT NUMBERS BLOB: STORES BINARY DATA (images, files). NULL: NIL VALUE If you don't understand what a string or Boolean values are, learn about data types VIDEO HERE Entering Data To add data to the database we use the SQL command INSERT INTO function AddPlayerLX1(name, score) local query = "INSERT INTO jogadores (name, score) VALUES (?, ?)" dbExec(db, query, name, score) end AddPlayerLX1("juninho", 100) The INSERT INTO command inserts a new player with the name "juninho" and score 100 into the players table. Note: The question marks (?) are placeholders for the values that will be passed to dbExec. This helps prevent SQL injection. Deleting Data To remove data from the database, we use the SQL DELETE command DELETE function DeletePlayerLX2(name) local query = "DELETE FROM players WHERE name = ?" dbExec(db, query, name) end DeletePlayerLX2("juninho") Error Handling It is important to verify that database operations were successful. MTA doesn't automatically return detailed errors other than "/debugscript (1, 2, 3)" so let's add checks. function AddPlayerLX3(name, score) local query = "INSERT INTO jogadores (name, score) VALUES (?, ?)" local sucess = dbExec(db, query, name, score) if sucess then outputDebugString("Sucess.") else outputDebugString("Error.") end end IF SUCESS THEN the success variable stores the result of the dbExec function. If the SQL command execution was successful (i.e. the player was added to the database), success will be true. If success is true, the code inside the if block will be executed. else If the success value is false (that is, if the player's insertion fails for some reason, such as an error in the database connection or SQL query), the code inside the else block will be executed Optimizations and Best Practices Optimizations are great for your day-to-day life as a developer, this makes your code more beautiful, less likely to give you server overload errors, etc... Remember to use dbFree to flush queries after use, especially if you are not using dbPoll. local LX4 = dbQuery(db, "SELECT * FROM players") dbFree(LX4) There are several ways to create clean code, I left just one of them Let's be clear: Since the SQLite database is a flat file, you can back it up by simply copying the .db file. To restore the database, simply replace the old file, this is a big advantage of using SQlite instead of using external databases. OBS: All codes were made based on an example of player name and id points, not made in a real project. (just to make it clear That's all I remembered, if there's anything I didn't make clear here you can say it and I'll edit it or respond to you
    2 points
  19. eyvallah o kadar uğraşamam olmuyorsa olmuyordur bir şey yapmışsın ama anlayamıyorum o kadar kod bilgim yok. oyunda açtıktan sonra silah değiştiremiyorum ve sesler gelmiyor silahtan
    1 point
  20. This script replaces the default GTA traffic lights with a fully customizable system, allowing server owners to design and manage intersections according to their own needs. It is intended for those who want to add more flexibility and realism to traffic control on their server. MAIN FEATURES Complete Cycle Customization Each intersection can be configured individually. It is possible to let two directions run simultaneously (for example, north-south) or switch each direction one by one. Cycle lengths, order of signals, and groupings are fully adjustable. Custom Signal Types The system supports more than just the standard red-yellow-green. Arrows for straight or left turns, or other shapes, can be added directly into the configuration to create more complex traffic setups. Automatic or Manual Operation Intersections can run in a fixed cycle or in automatic mode. In automatic mode, the script monitors traffic flow, for example, if a defined number of vehicles pass within a set time frame, the intersection activates. The thresholds and time intervals are configurable. Compatibility The resource is not tied to any specific gamemode. It works on freeroam, roleplay, or custom environments without requiring additional dependencies. VIDEO SHOWCASE PAYHIP LINK If you have any questions, feel free to text me on Discord! (fajlyp)
    1 point
  21. Red Line: Purple Line: Red Line Download Link Purple Line Download Link
    1 point
  22. Hi, No need for a specific license, just run your server as usual. At most, define an e-mail address in your mtaserver.conf (look for the owner_email_address field) and you're good to go. Sidenote: please avoid tagging staff members.
    1 point
  23. Yes, your new updates look absolutely great. As I mentioned before, the sound effects have really enriched the script and made it look fantastic. You could categorize your weapons and add an extra page, allowing you to include different weapons or equipment.
    1 point
  24. Is there any error on debug or F8? I dont understand why its not working
    1 point
  25. Hello, I'm waiting for your comments about the StarBucks Model I made these days, thank you
    1 point
  26. I just found some old screenshots from 2012 I can't remember what the server name was. at some point in my MTA life, I actually enjoyed playing DD and I was a member of the [HiVi] DD/DM clan. even though I sucked at DD/DM, all that mattered was the friendship. (shoutout to David, Belmin and Kyle) 2012, a private server with zombies 2012, private server. we didn't need much to have fun back then. a private server and an admin panel was all we needed to have fun around this time, I had discovered the map editor and built some sort of a greenzone on LS Observatory 2012 as well. I can't remember which mod it was but it allowed you to literally carpet bomb :~. I found these on Facebook by accident. I wish I had saved more pictures. I'm not sure if Imgur existed back then, but all the images I uploaded were uploaded to tinypic (from 2008) and they are long gone.
    1 point
  27. Shared\sdk\version.h #define MTASA_VERSION_MAJOR 1 #define MTASA_VERSION_MINOR 6 #define MTASA_VERSION_MAINTENANCE 0 #define MTASA_VERSION_TYPE VERSION_TYPE_CUSTOM #define MTASA_VERSION_BUILD 0 MTASA_VERSION_BUILD это то, что ты ищешь. Можно указать например #define MTASA_VERSION_BUILD 23088
    1 point
  28. https://www.youtube.com/live/LtNXNauoyNk Yesterday, we concluded our series of 2x2x2x2 tournaments. I want to summarize the results from the perspective of both the organizer and a witness to all the races. The registration process was extremely difficult. Honestly, I don’t remember ever struggling this much to find players. In the past, for a similar tournament, we’d get up to 15 teams registered on the first day, with 4-6 more teams signing up as reserve. Over 50 players participated in the tournament! There could have been more, but some registered teams couldn’t play. As a result, some groups had 4 teams, while others only had 2. In each subsequent round, all groups had 4 teams—two were the winners of their groups from the previous round, and the other two were the teams that placed second. This way, we could create balanced and exciting groups. Of course, the most intense matches started from the quarterfinals. The team (Pszymek + zee) lost by just 6 points to (Puffy + Kellus). There was a tiebreaker for first place between (DuXR + Confused) and (WiLL + GB + Emery), a narrow 2-point gap between (Honz + Suzuki) and (DeiN + LENZER), and this was only the quarterfinals! If you recall, the semifinals began with Chilliad maps. Sandking offroad were easier than in the second round, but the motorcycle part was not easy. That’s why I thought this round could favor teams that weren’t the group favorites—anything could happen on these maps. In the first semifinal, (Aroszparo + Mateoryt) lost to (DeiN + LENZER) by just 8 points. In the other semifinal, (DuXR + Confused) faced another tiebreaker, this time fighting (morpp + Gandras) for a spot in the finals. I’m glad this happened in the second semifinal so many players got to watch your battle. The Final Round In the finals, many spectators predicted (DeiN + LENZER) to win, but they ended up in fourth place. Happy birthday, Wenom The fight for first place was incredible—(January + BTN) and (Honz + Suzuki) were 128 points before the final round. And here, I want to thank morpp—he finished second and prevented a draw! I really didn’t want a tiebreaker for the finals. Thanks dude! I want to thank all the participants who register and played in the tournament! Huge respect to the players who knew they couldn’t beat the strong favorites but still showed up and gave it them all. With this tournament, I didn't just want to entertain the spectators watching the fails on Chiliad maps—I also wanted to see how active the community could be. I hope many of you had fun and enjoyed yourselves. See you later, guys! Tournament Results: 1st - MOTP (Honz + sneezy + namik) – 150 pts 2nd - IHS (BTN + January + Pepsi) – 148 pts 3rd - KAUNAS (morpp + Gandras) – 120 pts 4th - Gonshiki 4estnoy Sudbi (DeiN + LENZER + hills) – 92 pts
    1 point
  29. Thanks IIYAMA... I am looking it over... Also, I notice you're famous XD (You made the wiki page to the function you just described)
    1 point
  30. You can save your coordinates to the variables, and the use them to build text. Like: local rectangleStartX = x*1200 local rectangleWidth = x*1400 dxDrawText(rectangleStartX + rectangleWidth + 10, etc...) But i'm not sure right now about your coordinates, because "width" for dxDrawRectangle - it's not the endpoint, if wiki is right And then code will be more easy, because for width you can use just "200". As for take coordinates from rectangle - well, looks like it can't be done in MTA. P.S. I'm not good in UI scripting, just trying to help with simple logic.
    1 point
  31. Download latest version from https://nightly.mtasa.com
    1 point
  32. This feature is already available under Preferences -> Appearance tab, in the Skin section, select DarkVector for dark mode https://imgur.com/a/KyPB57e
    1 point
  33. I am happy that you guys still giving a lot of effort to keep the game alive! I hope this game gets more and more popularity during years even tho it's an old game. For to do this, we may share our mta-in game videos on social media platforms because as you know social media is easy to get popular and if you already have a community which supports you, that makes things easier. We can share our fun moments or videos about mta in YouTube by using a common hashtag as you said "#MTASpotlights" or #MTASA Love you guys and MTA
    1 point
  34. Don't misbehave, he was trying to help you.
    1 point
  35. Use AI in your MTA:SA resources. Powered by providers like OpenAI, Anthropic & Groq. You can now bake Artificial Intelligence into your resources, gamemodes and systems. This resource exports the below functions: init(config) generateText(prompt,system) generateObject(prompt, system) getProviders() getModels(provider) getConfig() Example usage: The below code initializes the AI agent (add your API key from the provider) and creates a ped and a marker. when the player hits the marker, the ped says something funny. addEventHandler("onResourceStart", resourceRoot, function() AI.init({ api_key = "", provider = "groq", model = "llama3-8b-8192", temperature = 0.7, max_tokens = 150 }) createPed(0, 0, 0, 5) local marker = createMarker(0, 0, 2, "cylinder", 5, 10, 244, 23, 10, root) local function handleMarkerHit(hitElement) local elementType = getElementType(hitElement) if elementType ~= "player" then return end local playerName = getPlayerName(hitElement) outputDebugString("Player "..playerName.." hit marker") AI.generateText(playerName.." got close to you, say something funny, and out of pocket. Limit is 255 characters. Your name is Pedro. Don't use quotes.", "You are a random pedestrian living in San Andreas, grand theft auto.")( function(result, error) if error then outputDebugString("Error: " .. error) return end if (result:len() >= 254) then result = result:sub(1, 254) .. "..." return end outputChatBox("[Pedro]: "..result, hitElement, 255, 255, 255) end ) end addEventHandler("onMarkerHit", marker, handleMarkerHit) end ) Download: https://community.multitheftauto.com/index.php?p=resources&s=details&id=18946 Roadmap: - Support conversation history - Support streaming - Contributing: Contributions are welcome on Github: https://github.com/MrgSub/mtasa-ai
    1 point
  36. Возможно) Когда-то форум был более активен. Сейчас же большинство перешло в discord, а русскоязычный сегмент обитает в форках. Может старый ник подскажешь?
    1 point
  37. Brnchost Hakkımızda Brnchost, başlangıçta MTA (Multi Theft Auto: San Andreas) topluluğuna yönelik olarak kurulmuş, uzmanlaşmış bir Sanal Adanmış Sunucu (VDS) sağlayıcısıdır. En önemli özelliklerimizden biri, profesyonel düzeyde DDoS koruması sunarak müşterilerimize güvenli ve kesintisiz bir hizmet sağlamamızdır. 2023 yılında kurulan Brnchost, 2024 yılında altyapısını genişleterek ve adanmış sunucularını devreye alarak resmi olarak faaliyetlerine başlamıştır. O zamandan beri hizmet yelpazemizi sürekli geliştirerek çeşitlendirdik ve öncelikli olarak oyun sektörüne odaklandık. Hizmetlerimiz Brnchost olarak sunduğumuz çeşitli özel hizmetler arasında şunlar bulunmaktadır: Oyun Sunucuları: Özellikle MTA gibi popüler oyunlar için yüksek performanslı sanal sunucu çözümleri. Discord Bot VDS Hizmetleri: Discord platformunda çalışan botları barındırmak için optimize edilmiş VDS çözümleri. Adanmış Sunucu Hizmetleri: Yüksek performans gerektiren projeler ve uygulamalar için özel olarak tasarlanmış adanmış sunucular. Brnchost, müşteri odaklı yaklaşımı ve güçlü altyapısıyla, sektör ihtiyaçlarına profesyonel bir bakış açısıyla özel çözümler sunmaya devam etmektedir. İletişim Bilgilerimiz: E-posta: [email protected] Şirket numarası ve WhatsApp desteği: WhatsApp Linki Discord: https://discord.gg/brnchost
    1 point
  38. Lua Metatables Guide Introduction Hello, I’m Shady, and I’m here with a new tutorial. At the bottom of this section, in the credits, you will find all the links to my other tutorials. Those should be your first priorities. I have prepared a tutorial that will help you explore metatables at an advanced level and set you on your way,The Lua programming language has gained popularity for its simple yet powerful syntax, making it a common choice for both game development and general-purpose programming. This guide will enable you to delve deep into the metatable feature of Lua and demonstrate how to apply object-oriented programming (OOP) concepts using metatables. Metatables are used to customize the behavior of tables in Lua and manage complex data structures. In this guide, we will focus on the following topics: What is a Metatable?: We will understand the concept of metatables and why they are used. Creating Classes with Metatables: We will create a simple Vector class and explore operator overloading methods. Inheritance: We will learn how to implement inheritance and override functions using metatables. Complex Scenarios: We will create more complex structures, such as a character class, using metatables in real-world applications. By the end of this guide, you will learn how to effectively utilize metatables in Lua, enhancing the functionality of your games or applications. So, let's step into the world of Lua metatables! What is Metatable? A metatable is a special table used to change the behavior of tables in Lua. With a metatable, you can inherit between tables and perform special operations. Creating Metatable... First, we need to create a metatable. We can define it as a simple table. myMetatable = {} Using Metatable in a Table To assign a metatable to a table, we use the setmetatable function myTable = {} setmetatable(myTable, myMetatable) Operator Overloading with Metatable Metatables can also be used for operator overloading. For example, let's define the __add function for addition. myMetatable.__add = function(t1, t2) return t1.value + t2.value end Adjusting the Values of Tables We can use the __index and __newindex methods in the metatable to set the values of tables. myMetatable.__index = function(table, key) return "Key not found: " .. key end myMetatable.__newindex = function(table, key, value) rawset(table, key, value) end Example of Use myTable.value = 5 local anotherTable = { value = 10 } setmetatable(anotherTable, myMetatable) local result = myTable + anotherTable print(result) -- 15 Metatable and Mapping Functions Metatables are used to provide functionality and inheritance relationships between tables in Lua. With special keys provided by the metatable, we can map between tables. Operator overloading functions like __index, __newindex, __add, and __sub allow us to change the behavior of tables. An Example in Depth: Vector Class Below, we will create a Vector class. This class will support addition, subtraction, and other vector operations. -- Creating the vector metatable Vector = {} Vector.__index = Vector -- Create a new vector function Vector:new(x, y) local vec = setmetatable({}, Vector) vec.x = x or 0 vec.y = y or 0 return vec end -- Vector addition function Vector:__add(other) return Vector:new(self.x + other.x, self.y + other.y) end -- Vector subtraction function Vector:__sub(other) return Vector:new(self.x - other.x, self.y - other.y) end -- Calculate vector length function Vector:length() return math.sqrt(self.x^2 + self.y^2) end -- Usage example local v1 = Vector:new(3, 4) local v2 = Vector:new(1, 2) local v3 = v1 + v2 print("Sum Vector:", v3.x, v3.y) -- 4, 6 print("Length of Vector 1:", v1:length()) -- 5 Metatables control the operations listed next. Each operation is identified by its corresponding name. The key for each operation is a string with its name prefixed by two underscores, '__'; for instance, the key for operation "add" is the string "__add". The semantics of these operations is better explained by a Lua function describing how the interpreter executes the operation. add": the + operation. The function getbinhandler below defines how Lua chooses a handler for a binary operation. First, Lua tries the first operand. If its type does not define a handler for the operation, then Lua tries the second operand. function getbinhandler (op1, op2, event) return metatable(op1)[event] or metatable(op2)[event] end By using this function, the behavior of the op1 + op2 is function add_event (op1, op2) local o1, o2 = tonumber(op1), tonumber(op2) if o1 and o2 then -- both operands are numeric? return o1 + o2 -- '+' here is the primitive 'add' else -- at least one of the operands is not numeric local h = getbinhandler(op1, op2, "__add") if h then -- call the handler with both operands return (h(op1, op2)) else -- no handler available: default behavior error(···) end end end "sub": the - operation. Behavior similar to the "add" operation. "mul": the * operation. Behavior similar to the "add" operation. "div": the / operation. Behavior similar to the "add" operation. "mod": the % operation. Behavior similar to the "add" operation, with the operation o1 - floor(o1/o2)*o2 as the primitive operation. "pow": the ^ (exponentiation) operation. Behavior similar to the "add" operation, with the function pow (from the C math library) as the primitive operation. "unm": the unary - operation. function unm_event (op) local o = tonumber(op) if o then -- operand is numeric? return -o -- '-' here is the primitive 'unm' else -- the operand is not numeric. -- Try to get a handler from the operand local h = metatable(op).__unm if h then -- call the handler with the operand return (h(op)) else -- no handler available: default behavior error(···) end end end "concat": the .. (concatenation) operation. function concat_event (op1, op2) if (type(op1) == "string" or type(op1) == "number") and (type(op2) == "string" or type(op2) == "number") then return op1 .. op2 -- primitive string concatenation else local h = getbinhandler(op1, op2, "__concat") if h then return (h(op1, op2)) else error(···) end end end "newindex": The indexing assignment table[key] = value. function settable_event (table, key, value) local h if type(table) == "table" then local v = rawget(table, key) if v ~= nil then rawset(table, key, value); return end h = metatable(table).__newindex if h == nil then rawset(table, key, value); return end else h = metatable(table).__newindex if h == nil then error(···) end end if type(h) == "function" then h(table, key,value) -- call the handler else h[key] = value -- or repeat operation on it end end "call": called when Lua calls a value. function function_event (func, ...) if type(func) == "function" then return func(...) -- primitive call else local h = metatable(func).__call if h then return h(func, ...) else error(···) end end end Override and Inheritance We can achieve inheritance using metatables in Lua. By creating subclasses and using the superclass's metatable, we can override some functions. -- 2D Vector Metatable Vector2D = setmetatable({}, Vector) Vector2D.__index = Vector2D -- Create a new 2D vector function Vector2D:new(x, y) local vec = Vector:new(x, y) setmetatable(vec, Vector2D) return vec end -- Rotate the 2D vector function Vector2D:rotate(angle) local cosA = math.cos(angle) local sinA = math.sin(angle) local newX = self.x * cosA - self.y * sinA local newY = self.x * sinA + self.y * cosA return Vector2D:new(newX, newY) end -- Usage example local v2d = Vector2D:new(1, 0) local v2dRotated = v2d:rotate(math.pi / 2) print("Rotated Vector:", v2dRotated.x, v2dRotated.y) -- 0, 1 More Complex scripts Metatables can be used to model complex data structures and behaviors. For example, we can create a class representing the attributes of a game character. -- Character metatable Character = {} Character.__index = Character function Character:new(name, health, power) local char = setmetatable({}, Character) char.name = name or "Unknown" char.health = health or 100 char.power = power or 10 return char end function Character:attack(target) target.health = target.health - self.power print(self.name .. " attacked " .. target.name .. "!") end -- Usage example local hero = Character:new("Hero", 150, 20) local monster = Character:new("Monster", 80, 15) hero:attack(monster) print(monster.name .. " remaining health: " .. monster.health) -- 60 NOT : Metatables form one of the foundations of object-oriented programming in Lua, allowing you to create complex structures and functionalities. In this guide, you learned how to create classes using metatables, inherit from them, and perform operator overloading. Metamethods: metatables and metamethods offer powerful functionality that enhances the flexibility and behavior of tables. Metatables allow you to customize the behavior of tables, while metamethods are functions that define this behavior. This tutorial will explore the fundamentals of these concepts with fun and practical examples,Metamethods are special functions defined within a metatable that get triggered when specific operations occur. Credits and Additional Resources Official Lua Documentation; Explore the official Lua documentation for comprehensive details on Lua features, including metatables. https://www.lua.org/manual/5.4/manual.html#2.4 https://www.lua.org/manual/5.1/manual.html#2.8 Lua 5.1 Reference Manual Lua 5.4 Reference Manual Metatable Events https://devdocs.io/lua~5.1/
    1 point
  39. Did you know that the definition file counts up to a whopping 1364 unique functions? While the actual value might be higher or lower (missing, unknown, class/OOP or deprecated functions). Having this amount of functions in MTA is an incredible accomplish by this community. Some other statistics: 125 client unique events 88 server unique events
    1 point
  40. We have an announcement to make regarding certain services and technologies, like "Cloud Gaming" platforms and various cloud / cloud VM and hypervisor based services and software. Unfortunately, the majority of such services can no longer be used with MTA starting today. After observing a growing trend of abuse, such as server ban evading (serials related) we have enabled the same type of security, known as MTA serial verification - which usually applies to the most common consumer VM software - to all VM types and cloud services that we know of. This means that the procedure from https://updatesa.multitheftauto.com/sa/trouble/?tr=serial-validation must be followed on all relevant services, not just the aforementioned. Because most cloud & VM hosting services won't provide users access to the host machine (that hosts the VM), we expect that most "cloud gaming" users will no longer be able to play MTA using said service. Not that MTA is an attractive game to play in cloud gaming though, we advise you to use MTA like a normal user (on your own PC) and understand that we care about servers being able to reliably ban players. Cloud gaming, for instance.. would constantly offer you a new so-called environment, allowing infinite serial swaps, making you hard to ban. It's possible for some people still being able to use relevant services, as these measures will only apply to newly generated MTA serials (not retroactively). This is intended. This topic is also relevant to the "There was a problem validating your serial" error and "Banned by MTA" with reason PROHIBITED VM TYPE / SECURITY VIOLATION
    1 point
  41. https://github.com/philippekwiatkowski/pk-mta-roleplay-scripts I released my scripts for an RP server a few years ago. Code is old, but the logic can be useful for learning. Cheers, PK
    1 point
  42. Hey everyone! I am not sure if this is the right topic for this content, but i want to share my work here aswell. (Posted it on discord about a week ago) So I'm developing an isometric action MMORPG within MTA. To start, it's a multilanguage project that's already been translated into six different languages. There are currently three unique classes, each with thousands of different talents and build variations. There are already a lot of unique monsters and bosses, but still a lot to go. It's going to take time to complete, especially since this project is still in its early stages, as you can see in the trailer video, however, I am willing to put the work in. If you are interested, feel free to watch the trailer video below: Trailer video on youtube.
    1 point
  43. Hello, This is a gamemode I made quite a while ago. The gamemode is heavily inspired by GMOD's cinema servers. I am releasing it as open source as it probably needs a little bit more polishing and I don't code in MTA anymore, therefore the community could improve on it if they find interest in it. To use the gamemode you must create a youtube v3 api and put the API key in Cinema\modules\services\server_youtube.lua file. Gamemode: https://github.com/Ali-Ysf/Cinema Notes: The gamemode is made for an "easy" integration inside another gamemode/server. A roleplay server for example. E - interactions. Q - video queue/request video Tab - scoreboard Video: Edit: I have noticed that the standby image still has the server's name where the cinema was deployed. You can find the stand by psd file in Cinema\data\images so feel free to change it to whatever you want
    1 point
  44. To take away some confusion, understand that the changes being announced here are mostly focussed on cutting out the 'community front' of AC team operations, so that we can optimize limited manpower and rebalance expectations for our users to accept there will be periods we can't make waves, if you were able to move yourself into our perspective on how people always want everything solved, fixed, sorted out immediately on their whim, and how persistent they are in that (and in most cases bring something misconceived/invalid, after which they can't even be convinced otherwise or that would take from our time disproportionally), you'd be straight out scared and quickly stressed out. OP was clarified by adding in this segment 1 day after the topic was made: We will continue to bring AC improvements and get rid of emerging cheats and cheaters, but at our own pace, without external pressure or too high community expectations, from now on everything is on a best-effort basis and the point is that there may be periods during which we can't make any waves due to manpower constricts. You can see that this topic intends to lower your expectations and respect the amount of free time we (as volunteers) are able to invest, and get off our backs for things being different compared to some years ago. We're also OK to restrict ban appeals and player reports so we can delegate all of the manpower that's left on our new strategy, breaking cheats (patching them) and just preventing them from working to begin with, instead of permanently banning cheat users and having to deal with them "regretting" in ban appeals. We are also OK to restrict reporting cheaters as our focus shifts to breaking the cheats, and to get the required information to break one, we have our own methods and channels so much that we don't need any sort of reports. Due to the state of anticheat and heuristics, we always have a good picture of abnormalities and what cheats are doing, so the main limiting factor is manpower to get to work with what we have & know. After all, cheating on MTA will not be left alone, and AC team will disrupt it and raise the border even more whenever manpower allows it to do so. Cheaters should realize that their fun may come to an end at any unexpected moment, and that if they're too used to being able to cheat, they will be very upset to have to adapt to playing normally for as long it takes the cheat devs to catch back up to us again.
    1 point
×
×
  • Create New...