Jump to content

Leaderboard

Popular Content

Showing content with the highest reputation on 19/11/23 in all areas

  1. Celebrating Two Decades of Gaming: SAES/VCES Community's 20-Year Milestone on Multi Theft Auto. Introduction: In the ever-evolving realm of online gaming, communities often rise and fall, yet some endure, leaving an indelible mark that spans decades. One such resilient community is the SAES Community, an integral part of the Multi Theft Auto (MTA) landscape for an impressive two decades. A Journey Through Time: Established in 2003 as VCES (Vice City Emergency Services), the community initially operated as a gang on a modest 32-player server, organizing weekly gang wars and competitions. However, as MTA:VC gained basic scripting support, the server gradually transitioned into an RPG game mode, and the gang evolved into a thriving community. SAES has maintained a steadfast presence in the MTA universe, consistently delivering an immersive and captivating gaming experience. Over the past 20 years, the community has undergone transformations, adapted to changes, and flourished, weaving a tapestry of cherished memories for its members. Diverse Gameplay: At the core of SAES lies an expansive array of gameplay options tailored to a diverse audience. Whether you revel in adrenaline-pumping car chases, strategic law enforcement operations, or the allure of the criminal underworld, SAES provides a dynamic platform catering to every gamer's preference. For those seeking a more relaxed experience, players can embrace simpler roles, such as being a lorry driver, mechanic or a medic, offering a variety of choices to suit individual playstyles. The versatility of gameplay ensures that SAES caters to both the thrill-seekers and those who prefer a more laid-back virtual existence. Community Engagement: Beyond the virtual realm, SAES transcends the typical gaming community; it's a family. Through forums, Discord channels, and regular events, members can connect, share experiences, and cultivate lasting friendships. The sense of community extends beyond the pixels on the screen, making SAES a welcoming space for gamers from all walks of life. Join the Celebration: As SAES commemorates two decades of gaming on Multi Theft Auto, now is the opportune moment to join the celebration. Whether you're a seasoned veteran or a newcomer eager to explore the vibrant world of MTA, SAES welcomes you with open arms. SAES will be hosting an event night on November 25, 2023, at 19:00 GMT, featuring in-game prizes and rewards. All players are invited to join. Server details: IP: 87.98.254.54 (mta.saesrpg.uk) Port: 4999 Alternative server details: (For those who cannot connect from Turkey) IP: 94.23.154.230 PORT: 4999 Visit the SAES website at https://saesrpg.uk to discover more about the SAES Community, explore diverse gameplay options, and connect with a community that has withstood the test of time. Here's to another 20 years of virtual adventures, friendships, and memories on Multi Theft Auto! https://discord.gg/saes-rpg-229936715383439361?event=1174300635726872587 Here are some screenshots from over the years.
    5 points
  2. Thx is somehow close to what i meant.
    1 point
  3. If you are worrying about performance, in that case you might consider using MySQL triggers. Those are as close as it gets to your db, making sure you do not cause overhead and align the value-checks with the update moments. https://dev.mysql.com/doc/refman/8.0/en/trigger-syntax.html Create a value-check table / rollback table: Stores the value that it is being incremented (within 30 seconds) Stores the future time, when elapse the incrementing value can be ignored and resets to 0 Create a trigger which triggers on update Do behaviour of value-check table. If the value jumps too much UP: Report to a separate table Freeze account Rollback manually / automatic (not recommended)
    1 point
  4. Preventing is better than checking for unusual values. Especially when you can't don't keep track of how they have been changed. This could have been done by an exploit instead of real cheats. I personally consider exploiting almost cheating, since the developers should be responsible to deliver decent code. Back to the subject: Value changes in databases are often done by user input. This should be your primary objective. For example if you have a marker that opens a GUI to transfer money: addEvent("onPlayerTransferMoney", true) addEventHandler("onPlayerTransferMoney", resourceRoot, function (marker, transferAccountId) -- Possible cheating? = hard returns if not isElement(marker) then return end local playerX, playerY, playerZ = getElementPosition(client) local markerX, markerY, markerZ = getElementPosition(marker) if getDistanceBetweenPoints3D ( playerX, playerY, playerZ, markerX, markerY, markerZ ) > 10 then return end -- More user friendly returns if not checkPassiveTimer("event:onPlayerTransferMoney", client, 1000) then return outputChatBox(client, "You can only transfer money every 1 sec.") end -- Source code: https://wiki.multitheftauto.com/wiki/CheckPassiveTimer if not transferAccountId then return end -- resume operations -- end) Check if marker exist Check if player is close enough to the marker Limit execution speed (else users can create database lag by spamming the UI button) Building an anti cheat system to check for anomalies in your database should be a secondary objective. In this case you could start with defining limits. For example a money limit. A soft limit to detect possible cheating and a hard limit to define the impossible. For a soft limit you only report to yourself, as it might be very active player. And for a hard limit, you could for example freeze the money. In this case you could inform the user that you are investigating the issue. > As you might not know if the user itself is responsible for the anomaly or if another user is responsible. That user could also be helpful in finding/knowing the exploit that is responsible for the anomaly.
    1 point
  5. Slipe is an open source framework that enables anyone to write scripts for MTA:San Andreas in C# instead of Lua, wrapping all MTA elements and classes and including some .NET Core namespaces. It is based on CSharp.Lua by Yang Huan. Slipe features: Runs on Windows and Linux Built in continuous deployment support with (GitHub) webhooks Object oriented wrappers for all MTA elements Async/await for MTA functions that use callbacks C# style Http requests, sockets and XML methods. Use Visual Studio and its Intellisense Type safety You can find more information about the project on https://prod.mta-slipe.com. Our Discord Our Github The project is still in Alpha, and since it is open source anyone is welcome to contribute
    1 point
×
×
  • Create New...