Jump to content

J4cobLIVEmain

Members
  • Posts

    79
  • Joined

  • Last visited

  • Days Won

    2

Posts posted by J4cobLIVEmain

  1. Hey there folks!

    I have a question for very good scripters, is it possible to disable those "streaming issues" when you are for example: going too fast with a car, the whole texture switches to a LOD and looks broken (it mostly happens on spectate during race). A solution to this would be a lot helpful when recording racing and stuff.

  2. Hey there!

    I told you before in some other post that I used Grok for scripting. He nearly pulled off a very nice Racing map panel. However there is a slight problem - when you buy the map, money goes away (money is inside the script too I think when you win a race it gives you certain amount) and map doesn't play or its not set. If you guys have any idea how can it be fixed, lmk. By the way, to get this kinda script you need around 2 hours on Grok for him to properly understand MTA scripting

    Codes:

    server.lua

    local moneyFile = "money.xml"
    local nextMapQueue = nil -- Store the next map if race resource isn't running
    
    -- Load player's money from XML
    function loadPlayerMoney(player)
        local serial = getPlayerSerial(player)
        local xml = xmlLoadFile(moneyFile) or xmlCreateFile(moneyFile, "money")
        if not xml then
            outputDebugString("Failed to load or create money.xml", 1)
            return
        end
        local node = xmlFindChild(xml, serial, 0) or xmlCreateChild(xml, serial)
        local money = tonumber(xmlNodeGetValue(node)) or 0
        setElementData(player, "money", money)
        xmlSaveFile(xml)
        xmlUnloadFile(xml)
    end
    
    -- Save player's money to XML
    function savePlayerMoney(player)
        local serial = getPlayerSerial(player)
        local money = getElementData(player, "money") or 0
        local xml = xmlLoadFile(moneyFile) or xmlCreateFile(moneyFile, "money")
        if not xml then
            outputDebugString("Failed to load or create money.xml", 1)
            return
        end
        local node = xmlFindChild(xml, serial, 0) or xmlCreateChild(xml, serial)
        xmlNodeSetValue(node, tostring(money))
        xmlSaveFile(xml)
        xmlUnloadFile(xml)
    end
    
    -- Handle player join
    addEventHandler("onPlayerJoin", root, function()
        loadPlayerMoney(source)
    end)
    
    -- Handle player quit
    addEventHandler("onPlayerQuit", root, function()
        savePlayerMoney(source)
    end)
    
    -- Fetch all race map resources
    function getMapList()
        local mapList = {}
        local resources = getResources()
        if not resources then
            outputDebugString("Failed to get resources - check ACL permissions for 'function.getResources'!", 1)
            return mapList
        end
    
        local includedCount = 0
        local excludedCount = 0
    
        for i, resource in ipairs(resources) do
            local resName = getResourceName(resource)
            -- Skip system resources, our own resource, and known gamemodes
            if resName ~= "race_map_panel" and 
               not resName:find("^%[") and 
               resName ~= "csrw" and 
               resName ~= "race" and 
               resName ~= "play" and 
               resName ~= "assault" and 
               resName ~= "destructionderby" and 
               resName ~= "ctf" and 
               resName ~= "as-cliff" and 
               resName ~= "ctf-goldcove" then
                local metaPath = ":" .. resName .. "/meta.xml"
                local metaFile = xmlLoadFile(metaPath)
                if metaFile then
                    -- Check if the resource is a gamemode
                    local infoNode = xmlFindChild(metaFile, "info", 0)
                    local isGamemode = false
                    if infoNode then
                        local resType = xmlNodeGetAttribute(infoNode, "type")
                        if resType and resType:lower() == "gamemode" then
                            isGamemode = true
                            excludedCount = excludedCount + 1
                        end
                    end
    
                    if not isGamemode then
                        local isRaceMap = false
                        local hasMapFile = false
                        local gamemodesValue = nil
    
                        -- Check for <map> element with a .map file
                        local mapNode = xmlFindChild(metaFile, "map", 0)
                        if mapNode then
                            local mapSrc = xmlNodeGetAttribute(mapNode, "src")
                            if mapSrc and mapSrc:find("%.map$") then
                                hasMapFile = true
                            end
                        end
    
                        -- Check for #gamemodes setting
                        local settingsNode = xmlFindChild(metaFile, "settings", 0)
                        if settingsNode then
                            local settingNodes = xmlNodeGetChildren(settingsNode)
                            for j, setting in ipairs(settingNodes) do
                                local settingName = xmlNodeGetAttribute(setting, "name")
                                local settingValue = xmlNodeGetAttribute(setting, "value")
                                if settingName == "#gamemodes" then
                                    gamemodesValue = settingValue
                                    -- Parse the gamemodes value (e.g., '[ "race" ]' or '[ "race", "assault" ]')
                                    local gamemodes = settingValue:gsub("%[", ""):gsub("%]", ""):gsub('"', ""):gsub(" ", "")
                                    local gamemodeList = split(gamemodes, ",")
                                    if #gamemodeList == 1 and gamemodeList[1]:lower() == "race" then
                                        isRaceMap = true
                                    end
                                    break
                                end
                            end
                        end
    
                        -- If no #gamemodes setting, assume it's a race map if the name suggests it
                        if hasMapFile and not gamemodesValue then
                            if resName:find("^%[race%]") or resName:find("race-") then
                                isRaceMap = true
                            end
                        end
    
                        -- Include or exclude the map
                        if hasMapFile and isRaceMap then
                            includedCount = includedCount + 1
                            local mapInfo = {
                                resourceName = resName, -- Store the actual resource name
                                name = resName, -- Default to resource name
                                author = "Unknown",
                                cost = math.random(300, 1000) -- Random cost
                            }
                            
                            if infoNode then
                                local author = xmlNodeGetAttribute(infoNode, "author")
                                local name = xmlNodeGetAttribute(infoNode, "name")
                                if author then mapInfo.author = author end
                                if name then mapInfo.name = name end
                            end
                            
                            table.insert(mapList, mapInfo)
                        else
                            excludedCount = excludedCount + 1
                        end
                    end
                    xmlUnloadFile(metaFile)
                else
                    excludedCount = excludedCount + 1
                end
            else
                excludedCount = excludedCount + 1
            end
        end
        outputDebugString("INFO: Total race maps found: " .. #mapList .. " (Included: " .. includedCount .. ", Excluded: " .. excludedCount .. ")", 3)
        return mapList
    end
    
    -- Send map list and player money to client
    addEvent("requestMapList", true)
    addEventHandler("requestMapList", root, function()
        local mapList = getMapList()
        local player = source
        local money = getElementData(player, "money") or 0
        triggerClientEvent(player, "receiveMapList", player, mapList)
        triggerClientEvent(player, "receivePlayerMoney", player, money)
    end)
    
    -- Send player money to client
    addEvent("requestPlayerMoney", true)
    addEventHandler("requestPlayerMoney", root, function()
        local player = source
        local money = getElementData(player, "money") or 0
        triggerClientEvent(player, "receivePlayerMoney", player, money)
    end)
    
    -- Function to set the next map
    function setNextMapIfPossible(mapResource, mapDisplayName, player)
        local raceResource = getResourceFromName("race")
        outputDebugString("DEBUG: Attempting to set next map to " .. getResourceName(mapResource) .. " for player " .. getPlayerName(player), 3)
        if raceResource and getResourceState(raceResource) == "running" then
            outputDebugString("DEBUG: Race resource is running, calling queueNextMap", 3)
            local success, errorMsg = pcall(function()
                return exports.race:queueNextMap(mapResource) -- Updated to queueNextMap
            end)
            if success and errorMsg then
                outputDebugString("DEBUG: Successfully queued next map to " .. getResourceName(mapResource) .. " for player " .. getPlayerName(player), 3)
                outputChatBox(getPlayerName(player) .. " has queued the next map to '" .. mapDisplayName .. "'!", root, 255, 255, 0)
                nextMapQueue = nil -- Clear the queue since the map was set
                return true
            else
                outputDebugString("DEBUG: Failed to queue next map to " .. getResourceName(mapResource) .. " - queueNextMap failed: " .. (errorMsg or "unknown error"), 1)
                outputChatBox("Failed to queue the next map (queueNextMap failed). Please try again.", player, 255, 0, 0)
                return false
            end
        else
            outputDebugString("DEBUG: Race resource not running (state: " .. (raceResource and getResourceState(raceResource) or "not found") .. "). Queuing map " .. getResourceName(mapResource), 1)
            nextMapQueue = { resource = mapResource, displayName = mapDisplayName, player = player }
            outputChatBox("Race gamemode not running. Your map '" .. mapDisplayName .. "' will be set as the next map when the gamemode starts.", player, 255, 255, 0)
            return false
        end
    end
    
    -- Handle map purchase and set as next map
    addEvent("onPlayerBuyMap", true)
    addEventHandler("onPlayerBuyMap", root, function(mapResourceName, mapDisplayName, cost)
        local player = source
        local money = getElementData(player, "money") or 0
        if money >= cost then
            setElementData(player, "money", money - cost)
            savePlayerMoney(player)
            
            -- Set the purchased map as the next map
            local mapResource = getResourceFromName(mapResourceName)
            if mapResource then
                setNextMapIfPossible(mapResource, mapDisplayName, player)
            else
                outputDebugString("DEBUG: Map resource " .. mapResourceName .. " not found for player " .. getPlayerName(player), 1)
                outputChatBox("Map resource not found. Please try again.", player, 255, 0, 0)
            end
            
            triggerClientEvent(player, "onMapPurchaseSuccess", player, mapDisplayName)
            outputChatBox("You now have $" .. (money - cost), player, 0, 255, 0)
        else
            triggerClientEvent(player, "onMapPurchaseFail", player)
        end
    end)
    
    -- Try to set the queued map when the race gamemode starts
    addEventHandler("onResourceStart", root, function(startedResource)
        local resourceName = getResourceName(startedResource)
        if resourceName == "race" and nextMapQueue then
            outputDebugString("DEBUG: Race resource started. Attempting to set queued map " .. getResourceName(nextMapQueue.resource), 3)
            setNextMapIfPossible(nextMapQueue.resource, nextMapQueue.displayName, nextMapQueue.player)
        end
    end)
    
    -- Try to set the queued map when the current map ends
    addEvent("onRaceEnd", true)
    addEventHandler("onRaceEnd", root, function(winner)
        outputDebugString("DEBUG: onRaceEnd triggered with winner " .. getPlayerName(winner), 3)
        local player = winner
        local money = getElementData(player, "money") or 0
        local reward = 1000
        setElementData(player, "money", money + reward)
        savePlayerMoney(player)
        outputChatBox("You won the race and earned $" .. reward .. "! Total: $" .. (money + reward), player, 0, 255, 0)
        triggerClientEvent(player, "receivePlayerMoney", player, money + reward)
    
        -- Try to set the queued map if it exists
        if nextMapQueue then
            outputDebugString("DEBUG: Race ended. Attempting to set queued map " .. getResourceName(nextMapQueue.resource), 3)
            setNextMapIfPossible(nextMapQueue.resource, nextMapQueue.displayName, nextMapQueue.player)
        end
    end)
    
    -- Handle race win detected by client
    addEvent("onClientPlayerRaceWin", true)
    addEventHandler("onClientPlayerRaceWin", root, function()
        outputDebugString("DEBUG: onClientPlayerRaceWin triggered for " .. getPlayerName(source), 3)
        local player = source
        local money = getElementData(player, "money") or 0
        local reward = 1000
        setElementData(player, "money", money + reward)
        savePlayerMoney(player)
        outputChatBox("You won the race and earned $" .. reward .. "! Total: $" .. (money + reward), player, 0, 255, 0)
        triggerClientEvent(player, "receivePlayerMoney", player, money + reward)
    end)
    
    -- Hook into possible race gamemode events (for debugging)
    addEvent("onPlayerFinish", true)
    addEventHandler("onPlayerFinish", root, function(rank)
        outputDebugString("DEBUG: onPlayerFinish triggered for " .. getPlayerName(source) .. " with rank " .. rank, 3)
        if rank == 1 then
            local player = source
            local money = getElementData(player, "money") or 0
            local reward = 1000
            setElementData(player, "money", money + reward)
            savePlayerMoney(player)
            outputChatBox("You won the race and earned $" .. reward .. "! Total: $" .. (money + reward), player, 0, 255, 0)
            triggerClientEvent(player, "receivePlayerMoney", player, money + reward)
        end
    end)
    
    addEvent("onPlayerWin", true)
    addEventHandler("onPlayerWin", root, function()
        outputDebugString("DEBUG: onPlayerWin triggered for " .. getPlayerName(source), 3)
        local player = source
        local money = getElementData(player, "money") or 0
        local reward = 1000
        setElementData(player, "money", money + reward)
        savePlayerMoney(player)
        outputChatBox("You won the race and earned $" .. reward .. "! Total: $" .. (money + reward), player, 0, 255, 0)
        triggerClientEvent(player, "receivePlayerMoney", player, money + reward)
    end)
    
    addEvent("onPlayerRaceFinish", true)
    addEventHandler("onPlayerRaceFinish", root, function(rank)
        outputDebugString("DEBUG: onPlayerRaceFinish triggered for " .. getPlayerName(source) .. " with rank " .. rank, 3)
        if rank == 1 then
            local player = source
            local money = getElementData(player, "money") or 0
            local reward = 1000
            setElementData(player, "money", money + reward)
            savePlayerMoney(player)
            outputChatBox("You won the race and earned $" .. reward .. "! Total: $" .. (money + reward), player, 0, 255, 0)
            triggerClientEvent(player, "receivePlayerMoney", player, money + reward)
        end
    end)
    
    addEvent("onPlayerVictory", true)
    addEventHandler("onPlayerVictory", root, function()
        outputDebugString("DEBUG: onPlayerVictory triggered for " .. getPlayerName(source), 3)
        local player = source
        local money = getElementData(player, "money") or 0
        local reward = 1000
        setElementData(player, "money", money + reward)
        savePlayerMoney(player)
        outputChatBox("You won the race and earned $" .. reward .. "! Total: $" .. (money + reward), player, 0, 255, 0)
        triggerClientEvent(player, "receivePlayerMoney", player, money + reward)
    end)
    
    addEvent("onPlayerWinDD", true)
    addEventHandler("onPlayerWinDD", root, function()
        outputDebugString("DEBUG: onPlayerWinDD triggered for " .. getPlayerName(source), 3)
        local player = source
        local money = getElementData(player, "money") or 0
        local reward = 1000
        setElementData(player, "money", money + reward)
        savePlayerMoney(player)
        outputChatBox("You won the race and earned $" .. reward .. "! Total: $" .. (money + reward), player, 0, 255, 0)
        triggerClientEvent(player, "receivePlayerMoney", player, money + reward)
    end)
    
    -- Debug command to simulate a race win (admin only)
    addCommandHandler("winrace", function(player)
        if not hasObjectPermissionTo(player, "general.adminpanel") then
            outputChatBox("You do not have permission to use this command!", player, 255, 0, 0)
            return
        end
        outputDebugString("DEBUG: Simulating race win for " .. getPlayerName(player), 3)
        local money = getElementData(player, "money") or 0
        local reward = 1000
        setElementData(player, "money", money + reward)
        savePlayerMoney(player)
        outputChatBox("You won the race and earned $" .. reward .. "! Total: $" .. (money + reward), player, 0, 255, 0)
        triggerClientEvent(player, "receivePlayerMoney", player, money + reward)
    end)
    
    -- Debug command to check money
    addCommandHandler("money", function(player)
        local money = getElementData(player, "money") or 0
        outputChatBox("Your money: $" .. money, player, 255, 255, 0)
    end)

    client.lua

    local screenW, screenH = guiGetScreenSize()
    local mapPanelVisible = false
    local selectedMap = nil
    local maps = {}
    local playerMoney = 0
    
    -- Create the map panel GUI
    function createMapPanel()
        if mapPanelVisible then return end
        
        mapPanelWindow = guiCreateWindow((screenW - 400) / 2, (screenH - 300) / 2, 400, 300, "Map Panel", false)
        guiWindowSetSizable(mapPanelWindow, false)
        
        mapGrid = guiCreateGridList(10, 30, 380, 150, false, mapPanelWindow)
        guiGridListAddColumn(mapGrid, "Map Name", 0.5)
        guiGridListAddColumn(mapGrid, "Author", 0.3)
        guiGridListAddColumn(mapGrid, "Cost", 0.2)
        
        for i, map in ipairs(maps) do
            local row = guiGridListAddRow(mapGrid)
            guiGridListSetItemText(mapGrid, row, 1, map.name, false, false)
            guiGridListSetItemText(mapGrid, row, 2, map.author or "Unknown", false, false)
            guiGridListSetItemText(mapGrid, row, 3, tostring(map.cost), false, false)
        end
        
        moneyLabel = guiCreateLabel(10, 190, 380, 20, "Your Money: $" .. playerMoney, false, mapPanelWindow)
        infoLabel = guiCreateLabel(10, 210, 380, 20, "Select a map to see details.", false, mapPanelWindow)
        buyButton = guiCreateButton(10, 230, 180, 30, "Buy Map", false, mapPanelWindow)
        quitButton = guiCreateButton(200, 230, 180, 30, "Quit", false, mapPanelWindow)
        
        addEventHandler("onClientGUIClick", mapGrid, onMapSelect, false)
        addEventHandler("onClientGUIClick", buyButton, buyMap, false)
        addEventHandler("onClientGUIClick", quitButton, closeMapPanel, false)
        
        mapPanelVisible = true
        showCursor(true) -- Show the cursor when the panel opens
        if #maps == 0 then
            outputChatBox("No maps found on the server!", 255, 0, 0)
        end
    end
    
    -- Handle map selection
    function onMapSelect()
        local row = guiGridListGetSelectedItem(mapGrid)
        if row ~= -1 then
            selectedMap = maps[row + 1]
            guiSetText(infoLabel, "Name: " .. selectedMap.name .. " | Author: " .. (selectedMap.author or "Unknown") .. " | Cost: $" .. selectedMap.cost)
        end
    end
    
    -- Buy the selected map
    function buyMap()
        if not selectedMap then
            outputChatBox("Please select a map first!", 255, 0, 0)
            return
        end
        triggerServerEvent("onPlayerBuyMap", localPlayer, selectedMap.resourceName, selectedMap.name, selectedMap.cost)
    end
    
    -- Close the panel
    function closeMapPanel()
        if mapPanelWindow then
            destroyElement(mapPanelWindow)
            mapPanelVisible = false
            selectedMap = nil
            showCursor(false) -- Hide the cursor when the panel closes
        end
    end
    
    -- Toggle the map panel with F3
    addEventHandler("onClientResourceStart", resourceRoot, function()
        bindKey("f3", "down", function()
            if mapPanelVisible then
                closeMapPanel()
            else
                triggerServerEvent("requestMapList", localPlayer)
            end
        end)
        setTimer(function()
            outputChatBox("Press F3 to open the Map Panel!", 255, 255, 0)
        end, 5000, 1)
    end)
    
    -- Receive map list from server
    addEvent("receiveMapList", true)
    addEventHandler("receiveMapList", root, function(mapList)
        maps = mapList
        outputChatBox("Received " .. #maps .. " maps from server.", 0, 255, 0)
        createMapPanel()
    end)
    
    -- Receive player money from server
    addEvent("receivePlayerMoney", true)
    addEventHandler("receivePlayerMoney", root, function(money)
        playerMoney = money
        if moneyLabel and isElement(moneyLabel) then
            guiSetText(moneyLabel, "Your Money: $" .. playerMoney)
        end
    end)
    
    -- Handle successful purchase response from server
    addEvent("onMapPurchaseSuccess", true)
    addEventHandler("onMapPurchaseSuccess", root, function(mapDisplayName)
        outputChatBox("Map '" .. mapDisplayName .. "' purchased successfully and set as the next map!", 0, 255, 0)
        triggerServerEvent("requestPlayerMoney", localPlayer)
        closeMapPanel()
    end)
    
    -- Handle insufficient funds
    addEvent("onMapPurchaseFail", true)
    addEventHandler("onMapPurchaseFail", root, function()
        outputChatBox("Not enough money to buy this map!", 255, 0, 0)
    end)
    
    -- Detect "You have won the race!" message
    addEventHandler("onClientChatMessage", root, function(message)
        if message == "You have won the race!" then
            triggerServerEvent("onClientPlayerRaceWin", localPlayer)
        end
    end)

    It also creates money.xml which stores money, and I tried AI to understand that I wanted to pick up the money from the users account (when you add it via admin panel for example) but I couldn't. I'm also wondering if you guys could make this script better anyhow?

    I recommend debugscript 3 too

    Thanks for any help.

  3. 14 hours ago, IIYAMA said:

    Maybe move the checkpoint very high in the air (and replace it with a dummy).

    When the rocks are cleared, move it back.

    Very good idea. I'll check it out as soon as I'll start doing the map idea.

  4. Hey!

    Is it possible to disable a racing checkpoint via a lua script, and then re-enable it? I tried with Grok, and grok can't seem to script it properly (can't disable the checkpoint). I think the race client itself need to be modified for it.

    Example map that I wanted to test such a script: Racing map, where you need to clear the path (rocks) by moving them with Dozer to the marker (sphere, cylinder) and if you will clear all of the rocks on the way, then checkpoint will enable.

    Or 2nd example: A Forklift map, where you would need to deliver a crate with forklift, to a specific place (drop the object on the marker) - and after delivering it would re-enable the checkpoint

    Grok did a better job (but still failed) at putting laps, he somehow duplicated checkpoints (he added them via a script somehow) and they were glitched out on the radar, but he never made them hidden. Do you guys have any suggestion, how it could be done?

  5. Hey there, guys

    I recently messed with Grok a little bit, when it comes to MTA:SA scripts - and oh boy, he can make scripts. If you gonna tell Grok a detailed description of what you want, he will give it to you, but 90% of the times it will be broken, so you need to actively send him debug problems and stuff.

    Here are the list of the scripts that I edited succesfully / or made using grok:

    Soundboard script (creates a F3 GUI menu and you can play different meme sounds when clicking on the sound buttons)

    Force 30 fps script on a RACE map (creates a script, that enables 30 fps only on the map you plug the script into, after the map is switched - FPS change back to normal that you have set in your server settings) - and to make it work, edit the map name (map name from meta.xml) to your own local:

    targetMapName = "[30FPS] Driveable Yosemite" -- The map to force 30 FPS on

    Reduce bumps - Reduces bumps on race maps, by changing velocity of the vehicle in real time (there are some small problems with it too, i think you need to configure the script for different vehicles, tweak the values so it fits, example: Bandito is too fast on the bumpy terrain, when going down slope)

    Edited race ghost resource - so it now has a "carhide" function, that hides ghost (if players are distracted by it, they can simply turn it off via F3 if i remember correctly)

    Race-Driftking - made its very own drift table to my race map. I struggled with this alot and gave him many LUA examples and he finally made it work. It even has flags, and saves the stats on the map (idk if they save if you leave the server tho)

    Download them here: https://limewire.com/d/pXuGF#q0p5r0BMwg

    However... Grok is not perfect. Here are the attempts that I tried to make, but it didn't succeed (maybe you'll have knowledge what to fix in those)

    Paintjob script: Does not show the paintjob. The 1st version of the script works fine, but I wanted the paintjob to also change the color and he said it is possible, and now this version has bunch of problems in debug. This script was meant to give you an ui activated with /paintjob command, and you coul choose a paintjob, and a color and apply it. It would also save if you would quit the server and come back, and it will come back if you are logged in and logged out (i struggled 1.5 hours with this, he finally made it work after 1.5 hours)

    Very own clanwar script - I managed to get around some problems, that if map would redo the round would go from 1 to 2. The problems here, is he struggles to fix the point system from the previous script, and also sometimes GUI does not open. Grok forgets earlier attachements so maybe that's the reason that he sometimes :O up those scripts, but if anyone would be helpful I'd like this one fixed - can explain after what I wanted in there

    Map Panel script - I don't have it here, but it had a functional map panel, and it correctly listed the maps only from RACE gamemode. I also made him include the cash reward after race completion, and he also did it perfectly, however problems were with buying the maps - when you bought the map, money went away but map didn't play when script appearantly said "that the correct map was set" after buying it.

    Login Panel - he can do the login panel UI perfectly, but sometimes struggle with saving the accounts (or creating databases), he prefers to save account info in .xml file. Also if you would login or register from the login panel, it wouldn't let you log in (even if you typed the correct credentials it just didn't work and nothing happened)

     

    Some other screenshots I made when I tested Grok (this is all Grok's work):

    Obraz

    Obraz

    (i fixed this pesky text bug after like 3 times asking him to resize the table or move the text lol)

    Obraz

    (color didn't go as planned, but alpha was working fine, but eventually scrapped it)

    Obraz

    Obraz

    I'm inclined to say, that Grok is very helpful, and you should use it. You can also download some of the scripts that Grok did in the hyperlinks. What do you think guys? He made me come back to this game, only to mess with some scripting :D 

     

  6. Hey there,

    I'm not currently playing MTA, but I decided to launch a server with all of the singleplayer GTA:SA Race maps (that are available on the Race Tournaments). You can check it out, and drive those also with original FPS enabled, that also means with the original car handling! So whoever wants to try the SP maps out without traffic and for toptime battles, you are here in the right place! Shout out to the user robot123 (admin of Joshimuz's speedrun server) for providing me with these amazing 1-to-1 recreations!

    • FPS server: 30
    • Slots: 100

    It will be running for some time. Add the IP to the bookmarks and check in from time to time if you want to. I might turn it off sometimes just because it's running on lemmehost. If you'll like it, thank you! And hey, you can write here under comments at which time you can join in so I can keep the server running!

    mtasa://144.76.57.59:33874

     

  7. Updates causing some weird things rn. Report it on GitHub better. I did managed to report a Map Editor problem that caused total corruption of the editor and it got fixed. I think this forum is largely inactive, only players from time to time come here to solve some script solutions but other than that, nobody cares (when it comes to server advertisements, etc)

  8. On 30/06/2024 at 18:09, Neider said:

    I have the same problem... yesterday I was able to use the map editor normally, but today after update I can't open any of the maps that I have. ¯\_(ツ)_/¯

    I got a msg. Try updating MTA:SA to nightly build. One admin from a server told me.

  9. 20 hours ago, Neider said:

    I have the same problem... yesterday I was able to use the map editor normally, but today after update I can't open any of the maps that I have. ¯\_(ツ)_/¯

    I did report it on GitHub and even Dutchman responded. Hope there will be an update.

  10. UPDATE:

    Again, out of nowhere it shows this:

    [17:23:18] WARNING: editor_main\server\mapsettingssync.lua:158: The resource isn't active
    [17:23:18] ERROR: editor_main\server\mapsettingssync.lua:159: bad argument #1 to 'lower' (string expected, got boolean)
    [17:23:24] WARNING: editor_main\server\mapsettingssync.lua:158: The resource isn't active

     

    ?????????????????????

  11. Hey there!

    So today I noticed a very strange bug. Yesterday everything was working fine with the editor, and i made few maps yesterday too. I come in today to the Editor and make a map, first thing that's off is that when i set gamemode Race and put checkpoints - arrow from the checkpoints dissapeared but i said: OK, let's move on. I did 22 checkpoints and then tried to test the map - and it only counted 2 checkpoints so i needed to re-arrange them as nextids to make them work. It only made 8 checkpoints work via nextid, so i restarted the game - and then something weird happened - i couldn't save, load or do a new map anymore because it said that there was some problem with the editor, that save and load function weren't working. It worked again after installing the latest version of MTA. My friend wasn't that lucky because he reinstalled MTA and he has the same problem still.

     

    Turns out it's not a problem that's happening only for me - it has happened for my friend also who tried to do a map. I don't know if MTA developers are putting something bts but i also recently noticed that MTA acts strange. Before it launched way quicker and always pooped up prompt that i have asi files bla bla bla pretty fast, now when i start the app its like loading, then app is dissapearing, reopening on its own couple of times (at best 1 time) (without showing any update prompt) and then it finally loads the prompt about ASI so i can skip it and play the game. Something weird is going on.

  12. Hello there guys!

     

    I'm wondering how it is possible to make a RUN Race Map. I saw Run maps with racing checkpoints on multigamemode servers like FFS and i'm wondering how it is done. Basically what it is, it's like a parkour race with RACE checkpoints. I did an experimental map and I put deathmatch spawnpoints and race checkpoints and seems like Race recognizes these spawnpoints, but if you play it outside map editor you can't collect the checkpoint because i assume you are not inside the car to collect it? Is there a way to bypass this and to make our character collect checkpoints outside the vehicle?

    I can attach the map - check it out on my Google Drive. It has deathmatch spawnpoints and race checkpoints. Also i see weird thing because at some places, when you put that deathmatch spawnpoint your character gets below the map for some reason and falls down to the void.

    I'm looking for a code modification in the RACE gamemode that could possibly enable this to work, or just simple .lua script lines. Thanks in advance if this is even possible

    Adding to this I want to put it on my friends server to just play some fun RUN maps. Whole server is a race server btw.

  13. Ciekawe jak to jest możliwe - może wyślij zapytanie do Morele, tam gdzie kupowałeś czy nie dostali tego po prostu od kogoś i o rekomendację, jak zmienić serial

    Zmienianie serialu z tego co wiem, jest nielegalne i możesz globalną banicję załapać przez jakieś programy 3. Może napisz tutaj, ale na Angielskim forum bo tam jest więcej aktywnych ludzi.

    Pozdrawiam.

  14. Have you played one of these racing maps?

     

    Basically, people need to help one person get to the end of the map. Here's a cool example of a teamwork map. Something unique :) 

    • Like 1
  15. Hey there!

    Does anybody converted GTA:SA Singleplayer Racing Maps, found in Racing Tournament events across the SA? I know few of them are on the MTA community website including Little Loop, Go-Go Karting etc, but anybody converted actual full pack? If not, how can I find them in main.scm files? I scattered through and can't find them so atleast I would know the coordinates how to put checkpoints and recreate them.

    • Like 1
  16. Yo!

     

    Since racing is kinda slowly dying on MTA at this point, and i'm desperately looking for ways to have fun in my free time I'm looking for active peeps to play RACE with me / maybe join my team / maybe play on some server events that I make. If you're interested in racing, etc.: just PM me and i can give you Discord. These days my leader's clan server is mostly staying empty and there's no games, but maybe if you willing to spend some time we can make some fun matches together, etc/

     

    ps.: I don't play other gamemodes, tried to play on that popular Freeroam server which is for English but also for Portugese people and I got glitched out & trolled that some people literally crashed my PC 😅

     

    Thanks!

  17. 30 minutes ago, , Melvin said:

    لحل هذه المشكلة، يمكنك اتباع الخطوات التالية:

    1. التحقق من إصدارات الملفات: تأكد من أن إصدارات ملفات المسؤول (admin files) الموجودة على الخادم متطابقة مع إصدار اللعبة الذي تستخدمه ومع إصدار السيرفر الذي تستخدمه.

    2. إعادة تحميل الملفات: قد يكون هناك تلف في ملفات المسؤول على الخادم. جرب إعادة تحميل ملفات المسؤول من مصدر موثوق به مثل الموقع الرسمي للوضع (Mode) الذي تستخدمه.

    3. التحقق من الأذونات: تأكد من أن لديك الأذونات اللازمة لقراءة وكتابة الملفات في المسار الذي يحتوي على ملفات المسؤول. في بعض الأحيان، رسالة الخطأ "تم رفض الإذن" يمكن أن تشير إلى مشكلة في الأذونات.

    4. التأكد من المسارات الصحيحة: تأكد من أن الملفات البرمجية والملفات المرتبطة بالمسؤول موجودة في المسارات الصحيحة وتم تكوينها بشكل صحيح داخل السيرفر.

    5. قد تكون مشكلتك مشتركة مع لاعبين آخرين

     

    Turned out it was a problem with server provider. After 2 hours it was fixed. Thanks for the tips, maybe before when i entered with VPN for a test it changed something idk.

  18. Hello there guys!

    I think I might have a pesky bug involving admin. It all started today when I tried to login to my server as an admin, it shows this:

    HTTP server file mismatch! (admin) admin_gui.lua [CRC could not open file: Permission denied]

    Also when I join other servers, same message appears as if i would have admin on that particular server i wouldn't be able to access it:

    External HTTP file mismatch (Retrying this file with internal HTTP) [admin\client\admin_client.lua]
    External HTTP file mismatch (Retrying this file with internal HTTP) [admin\client\admin_gui.lua]
    External HTTP file mismatch (Retrying this file with internal HTTP) [admin\client\admin_ACL.lua]
    External HTTP file mismatch (Retrying this file with internal HTTP) [admin\client\gui\admin_main.lua]
    External HTTP file mismatch (Retrying this file with internal HTTP) [admin\client\gui\admin_performance.lua]
    External HTTP file mismatch (Retrying this file with internal HTTP) [admin\client\gui\admin_maps.lua]
    External HTTP file mismatch (Retrying this file with internal HTTP) [admin\client\gui\admin_messages.lua]
    External HTTP file mismatch (Retrying this file with internal HTTP) [admin\client\gui\admin_message.lua]
    External HTTP file mismatch (Retrying this file with internal HTTP) [admin\client\gui\admin_moddetails.lua]
    External HTTP file mismatch (Retrying this file with internal HTTP) [admin\client\gui\admin_spectator.lua]
    External HTTP file mismatch (Retrying this file with internal HTTP) [admin\client\gui\admin_messagebox.lua]
    External HTTP file mismatch (Retrying this file with internal HTTP) [admin\client\gui\admin_inputbox.lua]
    External HTTP file mismatch (Retrying this file with internal HTTP) [admin\client\gui\admin_team.lua]
    External HTTP file mismatch (Retrying this file with internal HTTP) [admin\client\gui\admin_skin.lua]
    External HTTP file mismatch (Retrying this file with internal HTTP) [admin\client\gui\admin_stats.lua]
    External HTTP file mismatch (Retrying this file with internal HTTP) [admin\client\gui\admin_vehicle.lua]
    External HTTP file mismatch (Retrying this file with internal HTTP) [admin\client\gui\admin_interior.lua]
    External HTTP file mismatch (Retrying this file with internal HTTP) [admin\client\gui\admin_ban.lua]
    External HTTP file mismatch (Retrying this file with internal HTTP) [admin\client\gui\admin_warp.lua]
    External HTTP file mismatch (Retrying this file with internal HTTP) [admin\client\gui\admin_report.lua]
    External HTTP file mismatch (Retrying this file with internal HTTP) [admin\client\gui\admin_acl.lua]
    External HTTP file mismatch (Retrying this file with internal HTTP) [admin\client\gui\admin_settings.lua]
    External HTTP file mismatch (Retrying this file with internal HTTP) [admin\client\gui\admin_screenshot.lua]
    External HTTP file mismatch (Retrying this file with internal HTTP) [admin\client\colorpicker\colorpicker.lua]
    External HTTP file mismatch (Retrying this file with internal HTTP) [admin\conf\interiors.xml]
    External HTTP file mismatch (Retrying this file with internal HTTP) [admin\conf\weathers.xml]
    External HTTP file mismatch (Retrying this file with internal HTTP) [admin\conf\upgrades.xml]
    External HTTP file mismatch (Retrying this file with internal HTTP) [admin\conf\skins.xml]
    External HTTP file mismatch (Retrying this file with internal HTTP) [admin\conf\stats.xml]

     

    When i try to access admin panel i see this:

    89p1rhh.png

    A broken admin panel without any function there working. Is there a problem on MTA end or is it temporary my net / server provider or generally game bug? Reply would be appreciated!

×
×
  • Create New...