POWRÓT DO CENTRUM POMOCY

SKRYPTY INTEGRACYJNE

Zintegruj swój serwer z systemem głosowania GTA-LISTA.PL. Wybierz odpowiedni skrypt dla swojego środowiska i automatycznie nagradzaj graczy.

MTA:SA (Lua)

Serwerowy skrypt Lua sprawdzający czy dany gracz oddał głos na serwer w ciągu ostatnich 24 godzin.

-- SERWEROWY SKRYPT LUA (MTA:SA)
local API_KEY = "TWÓJ_KLUCZ_API"
local SERVER_ID = "TWÓJ_ID_SERWERA"

function checkPlayerVote(player, playerNick)
    local url = string.format("https://www.gta-lista.pl/api/vote/verify?server=%s&nick=%s", SERVER_ID, encodeUrl(playerNick))
    
    fetchRemote(url, {
        headers = {
            ["Authorization"] = "Bearer " .. API_KEY
        }
    }, function(responseData, responseInfo)
        if responseInfo.statusCode == 200 then
            local data = jsonDecode(responseData)
            if data and data.hasVoted then
                -- Gracz oddał głos!
                outputChatBox("Dziękujemy za głos! Otrzymujesz 500$!", player, 0, 255, 0)
                givePlayerMoney(player, 500)
            else
                outputChatBox("Nie znaleziono aktywnego głosu z ostatnich 24h.", player, 255, 0, 0)
            end
        else
            outputDebugString("Błąd połączenia z API GTA-LISTA")
        end
    end)
end

FiveM (JavaScript)

Skrypt JS dla platformy FiveM do automatycznej weryfikacji głosów gracza po wpisaniu komendy w konsoli.

// SERWEROWY SKRYPT JS (FIVEM)
const API_KEY = "TWÓJ_KLUCZ_API";
const SERVER_ID = "TWÓJ_ID_SERWERA";

RegisterCommand("odbierzglos", async (source, args) => {
    const playerNick = GetPlayerName(source);
    
    try {
        const response = await global.exports['custom-fetch'].fetch(
            `https://www.gta-lista.pl/api/vote/verify?server=${SERVER_ID}&nick=${encodeURIComponent(playerNick)}`,
            {
                headers: { "Authorization": `Bearer ${API_KEY}` }
            }
        );
        
        const data = await response.json();
        if (data.hasVoted) {
            emitNet("chat:addMessage", source, {
                args: ["SYSTEM", "Dziękujemy za oddany głos! Twoja nagroda została przyznana."]
            });
            // Dodaj logikę przyznawania nagrody tutaj...
        } else {
            emitNet("chat:addMessage", source, {
                args: ["SYSTEM", "Brak aktywnego głosu z ostatnich 24h dla Twojego nicku."]
            });
        }
    } catch (err) {
        console.error("Błąd API GTA-LISTA:", err);
    }
}, false);

MTA:SA (Lua) - ZAAWANSOWANA LISTA GRACZY

Skrypt wysyłający pełną listę graczy bezpośrednio na stronę. Użyj tego, jeśli Twój serwer ma ponad 1000 graczy i domyślne API przerywa pakiety UDP.

-- SERWEROWY SKRYPT LUA (MTA:SA) - PUSH LISTY GRACZY
local PUSH_URL = "https://www.gta-lista.pl/api/v1/server/TWÓJ_IP_LUB_ID/push"
local PUSH_SECRET = "TWÓJ_TOKEN_AUTORYZACJI"

function pushPlayerList()
    local players = {}
    for i, player in ipairs(getElementsByType("player")) do
        table.insert(players, { name = getPlayerName(player) })
    end

    local jsonData = toJSON({ players = players })
    -- Usunięcie nawiasów dodawanych przez toJSON (MTA dodaje [] do głównego obiektu)
    jsonData = string.sub(jsonData, 2, -2)
    
    fetchRemote(PUSH_URL, {
        method = "POST",
        postData = jsonData,
        headers = {
            ["Authorization"] = "Bearer " .. PUSH_SECRET,
            ["Content-Type"] = "application/json"
        }
    }, function(responseData, responseInfo)
        if responseInfo.statusCode == 200 then
            outputDebugString("[GTA-LISTA] Pomyślnie wysłano listę graczy (" .. #players .. " online).")
        else
            outputDebugString("[GTA-LISTA] Błąd wysyłania listy graczy: " .. tostring(responseInfo.statusCode))
        end
    end)
end

-- Wysyłaj aktualizację co 1 minutę (60000 ms)
setTimer(pushPlayerList, 60000, 0)
pushPlayerList() -- Pierwsze wywołanie przy starcie

FiveM (JS) - ZAAWANSOWANA LISTA GRACZY

Skrypt JS dla FiveM wysyłający listę online do panelu z użyciem Webhooka (Push API). Alternatywa dla wbudowanego endpoints /players.json.

// SERWEROWY SKRYPT JS (FIVEM) - PUSH LISTY GRACZY
// Przydatne, gdy serwer ukrywa graczy w domyślnym configu
const PUSH_URL = "https://www.gta-lista.pl/api/v1/server/TWÓJ_CFX_LUB_IP/push";
const PUSH_SECRET = "TWÓJ_TOKEN_AUTORYZACJI";

async function pushPlayerList() {
    // getPlayers() zwraca tablicę identyfikatorów
    const players = getPlayers().map(id => {
        return { name: GetPlayerName(id) };
    });

    try {
        // Możesz użyć wbudowanego fetch w NodeJS (jeśli środowisko FiveM na to pozwala)
        const response = await fetch(PUSH_URL, {
            method: 'POST',
            headers: { 
                "Authorization": `Bearer ${PUSH_SECRET}`,
                "Content-Type": "application/json"
            },
            body: JSON.stringify({ players })
        });
        
        if(response.ok) {
            console.log(`[GTA-LISTA] Zaktualizowano listę graczy: ${players.length} online.`);
        } else {
            console.error("[GTA-LISTA] Błąd aktualizacji listy graczy:", response.status);
        }
    } catch (err) {
        console.error("[GTA-LISTA] Błąd sieciowy:", err);
    }
}

// Aktualizuj listę co 1 minutę (60000 ms)
setInterval(pushPlayerList, 60000);
setTimeout(pushPlayerList, 1000); // Pierwsze wywołanie po starcie