Jump to content

Leaderboard

Popular Content

Showing content with the highest reputation on 30/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.
    1 point
  2. Hey! For example, I have an user table. I have an achievement list store in the scripts. How can I store the completed achievements for the users in the SQL? Maybe a third connection table? Because it is a many-to-many connection Or in the user table somehow?
    1 point
  3. I made an example maybe you can get an idea from it how it will work. If you go for toJson/fromJson if you dont have many achievements. local dbConn = dbConnect("sqlite","users.db") local users = {} achievements = {"NewOne","Top1%","TheKiller","OldOne","Nobody","NooB"} function CreateTableAchievements() dbExec(dbConn,"CREATE TABLE IF NOT EXISTS achievements (id INTEGER NOT NULL PRIMARY KEY AUTOINCREMENT,user TEXT,achievements TEXT)") end addEventHandler("onResourceStart",root,CreateTableAchievements) function onLogin(_,currentAcc) if currentAcc then local acc_name = getAccountName(currentAcc) if acc_name then local query = dbQuery(dbConn,"SELECT * FROM achievements WHERE user=? LIMIT 1",acc_name) local rez = dbPoll(query,-1) local data = fromJSON(rez[1]["achievements"]) if #rez == 0 then dbExec(dbConn,"INSERT INTO achievements (user) VALUES (?)",acc_name) elseif #data > 0 then users[source] = data end end end end addEventHandler("onPlayerLogin", root,onLogin) --- a coomand to give me some achievements addCommandHandler("newacv",function(player,CommandName,acv) if player then if acv ~= nil then if users[player] == nil then users[player] = {} table.insert(users[player],tonumber(acv),achievements[tonumber(acv)]) end if users[player][tonumber(acv)] == achievements[tonumber(acv)] then outputChatBox("[Achievements] You have this achievement!",player,100,250,100) else table.insert(users[player],tonumber(acv),achievements[tonumber(acv)]) outputChatBox("[Achievements] New achievement unlocked!",player,100,250,100) end end end end,false,false) addCommandHandler("saveacv",function(player,CommandName) if player then if users[player] ~= nil then local acc_name = getAccountName(getPlayerAccount(player)) dbExec(dbConn,"UPDATE achievements SET achievements=? WHERE user=?",toJSON(users[player]),acc_name) end end end,false,false)
    1 point
  4. As roaddog mentioned, toJSON is the easiest way to dynamic store data. But keep an eye on the limitations of JSON. Only store JavaScript structured default {} objects or [] arrays, nothing in between! (else it will be converted to the default {} object variant) This would be the most space saving solution. Depending on the amount of players you receive every day, it might be a better solution when there are a lot. Just keep in mind that it will be more work.
    1 point
  5. 1 point
  6. Hey guys! My question is where should I store static data? For exaple list of achievements, or list of weapon config (damage, model etc). In a local XML file, or an uniqe sql table? Thank you!
    1 point
×
×
  • Create New...