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)
endFiveM (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 starcieFiveM (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