Dev Partners
Integracja ze skryptami Agency
Tworzysz własny skrypt FiveM i chcesz połączyć go z naszymi? Każdy publiczny export i event jest tutaj wymieniony, wraz z gotowym do skopiowania fragmentem kodu Lua.
Eksporty pozwalają twojemu skryptowi wywołać funkcję wewnątrz naszego: exports['script-name']:FunctionName(args), zarówno po stronie klienta, jak i serwera. Eventy działają w drugą stronę: wywołujesz je przez TriggerEvent lub TriggerServerEvent i odbierasz za pomocą RegisterNetEvent.
01Agency-Phone
Pełny multi-framework telefon z SMS, połączeniami, feedem społecznościowym, pocztą, kamerą, portfelem i kasą AgencyPay.
Używaj w dowolnym skrypcie sklepu/napadu/pracy, gdy chcesz mieć czysty proces płatności w telefonie zamiast natychmiastowego odejmowania pieniędzy. Idealne też do powiadomień w grze z akceptacją/odrzuceniem (np. żądania taxi, wezwania dispatch).
Eksporty klienta
IsPhoneOpen()Zwraca true, jeśli UI telefonu jest aktualnie otwarte.
Pokaż przykład
Pomija otwarcie menu, gdy telefon jest już widoczny.
RegisterCommand('openmymenu', function()
if exports['agency-phone']:IsPhoneOpen() then
return
end
TriggerEvent('myresource:openMenu')
end)IsPhonePoweredOn()Zwraca true, jeśli telefon jest włączony.
Pokaż przykład
Wstrzymuje synchronizację w tle, gdy telefon jest wyłączony.
CreateThread(function()
while true do
Wait(2000)
if not exports['agency-phone']:IsPhonePoweredOn() then
print('Phone off, pausing background sync')
end
end
end)GetPhoneData()Zwraca surową tabelę danych telefonu.
Pokaż przykład
Wyświetla pełną tabelę danych telefonu do debugowania.
RegisterCommand('phonedebug', function()
local data = exports['agency-phone']:GetPhoneData()
print(json.encode(data, { indent = true }))
end)GetPhonePropEntity()Zwraca uchwyt encji trzymanego propa telefonu lub 0, jeśli niewidoczny.
Pokaż przykład
Krótko ukrywa prop telefonu bez zmiany logiki.
CreateThread(function()
Wait(500)
local prop = exports['agency-phone']:GetPhonePropEntity()
if prop ~= 0 and DoesEntityExist(prop) then
SetEntityVisible(prop, false, false)
end
end)IsPhoneExpanded()Zwraca true, jeśli telefon jest rozwinięty na ekranie.
Pokaż przykład
Stary alias blokujący minigrę, gdy telefon jest otwarty.
AddEventHandler('myresource:beforeMinigame', function()
if exports['agency-phone']:IsPhoneExpanded() then
TriggerEvent('chat:addMessage', { args = { 'Close phone first' } })
return
end
end)HasCarrierContract()Zwraca true, gdy gracz ma aktywny data plan operatora.
Pokaż przykład
Ostrzega gracza, gdy nie ma aktywnego planu danych.
RegisterCommand('checkdata', function()
if not exports['agency-phone']:HasCarrierContract() then
TriggerEvent('chat:addMessage', { args = { 'No data plan, buy one in the store app' } })
end
end)GetPhoneState()Zwraca pełny obiekt stanu telefonu.
Pokaż przykład
Zapisuje stan telefonu tylko, gdy otwarty, włączony i synchronizujący się.
AddEventHandler('myresource:saveProfile', function()
local state = exports['agency-phone']:GetPhoneState()
if state.isOpen and state.poweredOn and state.syncEnabled then
TriggerServerEvent('myresource:server:cachePhoneState', state)
end
end)HasPhone()Zwraca true, jeśli gracz posiada przedmiot telefon.
Pokaż przykład
Blokuje komendę alarmową, jeśli gracz nie ma telefonu.
RegisterCommand('callemergency', function()
if not exports['agency-phone']:HasPhone() then
TriggerEvent('chat:addMessage', { args = { 'You need a phone first' } })
return
end
TriggerEvent('myresource:client:openEmergency')
end)RegisterAgencyPayPoint(id, data)Rejestruje cykliczny terminal sprzedawcy AgencyPay.
Pokaż przykład
Tworzy w czasie pracy terminal Agency Pay dla kasy mechanika.
CreateThread(function()
exports['agency-phone']:RegisterAgencyPayPoint('mechanic_main', {
coords = vector3(-211.74, -1314.59, 31.29),
label = 'Mechanic Pay Point',
amount = 250,
receiver = 'mechanic'
})
end)RemoveAgencyPayPoint(id)Usuwa wcześniej zarejestrowany terminal AgencyPay.
Pokaż przykład
Usuwa zarejestrowany punkt płatności po zamknięciu sklepu.
AddEventHandler('myresource:onShopClosed', function(shopId)
exports['agency-phone']:RemoveAgencyPayPoint('mechanic_main')
print('Removed pay point for shop ' .. shopId)
end)StartAgencyPayCheckout(data)Otwiera arkusz kasy AgencyPay dla bezpiecznej płatności kartą.
Pokaż przykład
Otwiera telefon i uruchamia drobny napiwek przez Agency Pay.
RegisterCommand('paytip', function()
exports['agency-phone']:StartAgencyPayCheckout({
amount = 25,
receiver = 'staff_tip_jar',
label = 'Staff tip',
memo = 'Thanks for great service'
})
end)StartCall(contactData)Rozpoczyna połączenie pma-voice używając tabeli kontaktu.
Pokaż przykład
Wykonuje połączenie wychodzące do kontaktu z dispatchu.
RegisterNetEvent('myresource:client:incomingDispatch', function(payload)
exports['agency-phone']:StartCall({
name = payload.callerName or 'Dispatch',
number = payload.callerNumber or '911',
anonymous = false
})
end)PhoneNotification(title, text, icon, color, timeout, acceptIcon, denyIcon)Pokazuje powiadomienie telefonu z opcjonalnymi przyciskami akceptuj/odrzuć.
Pokaż przykład
Pokazuje blokującą notyfikację akceptuj/odrzuć dla zlecenia holowniczego.
CreateThread(function()
local accepted = exports['agency-phone']:PhoneNotification(
'Tow request', 'Accept the contract?', 'truck', '#FF8800', 15000, 'check', 'x'
)
if accepted then
TriggerServerEvent('myresource:server:acceptTow')
end
end)RegisterApp(config)Umieszcza aplikację z Twojego własnego zasobu na ekranie głównym telefonu i w Store. Zwraca true lub false i błąd. Zobacz Custom Apps.
UnregisterApp(id)Usuwa aplikację dodaną za pomocą RegisterApp. Dzieje się to automatycznie, gdy resource, który ją zarejestrował, zostanie zatrzymany.
GetRegisteredApps()Zwraca tabelę wszystkich aplikacji zarejestrowanych przez inne resource'y, indeksowaną według id.
ClosePhone()Zamyka telefon, na przykład przed otwarciem twojego własnego interfejsu.
IsPhoneRadioActive()Zwraca dwie wartości: true, gdy radio w telefonie gra, oraz odtwarzaną stację.
StopPhoneRadio()Zatrzymuje radio w telefonie.
Eksporty serwera
SendMail(identifier, mailData)Wysyła mail do gracza (online lub offline).
Pokaż przykład
Wysyła e-mail z potwierdzeniem zamówienia po głównym identyfikatorze.
RegisterNetEvent('myresource:server:sendReceipt', function(targetId)
local identifier = GetPlayerIdentifier(targetId, 0)
exports['agency-phone']:SendMail(identifier, {
sender = '[email protected]',
subject = 'Your receipt',
body = 'Thanks for your purchase!'
})
end)AddChirp(chirpData)Publikuje wiadomość w feedzie Pulse (chirper).
Pokaż przykład
Publikuje ogłoszenie nagrody na Chirperze z serwera.
RegisterNetEvent('myresource:server:postBounty', function(targetName)
local src = source
exports['agency-phone']:AddChirp({
identifier = GetPlayerIdentifier(src, 0),
firstName = 'Bounty',
lastName = 'Office',
message = 'Wanted: ' .. targetName,
postId = ('bounty_%s'):format(GetGameTimer())
})
end)usePhone(event, item, inventory, slot, data)Hook ox_inventory rejestrowany przy wykryciu ESX+ox_inventory; otwiera phone posiadaczowi.
Pokaż przykład
Wpina się w usingItem ox_inventory, by otworzyć telefon.
exports.ox_inventory:registerHook('usingItem', function(payload)
if payload.item.name ~= 'phone' then return end
return exports['agency-phone']:usePhone('inventory', payload.item, payload.inventory, payload.slot)
end, { itemFilter = { phone = true } })VerifyAgencyPayCharge(source, requestId, minAmount)Potwierdza na serwerze, że ten gracz opłacił checkout Agency Pay z tym id w ciągu ostatnich 60 sekund na co najmniej minAmount, oraz zużywa płatność, aby liczyła się tylko raz. requestId to id przekazane do StartAgencyPayCheckout. Zwraca true i kwotę lub false. Wywołaj to przed wydaniem przedmiotów.
Eventy
agency-phone:client:notifyWyświetla powiadomienie phone (title, text, icon, color, timeout, silent).
Pokaż przykład
Wyświetla nieblokujący toast: pojazd gotowy do odbioru.
TriggerEvent('agency-phone:client:notify', 'Heads up', 'Vehicle ready for pickup', 'car', '#22cc88', 5000, false)agency-phone:client:usePhoneItemUruchamia otwarcie phone'a po użyciu przedmiotu z ekwipunku.
Pokaż przykład
Przekazuje własne zdarzenie użycia przedmiotu do otwarcia telefonu.
AddEventHandler('myresource:client:onItemUsed', function(itemName)
if itemName == 'phone' then
TriggerEvent('agency-phone:client:usePhoneItem')
end
end)agency-phone:client:openAppProsi phone o przejście do niestandardowej aplikacji po id (używane przez moduły aplikacji).
Pokaż przykład
Przeskakuje wprost do własnej aplikacji bankowej po jej id.
RegisterCommand('openbank', function()
TriggerEvent('agency-phone:client:openApp', 'banking')
end)agency-phone:client:newMailNotifyPowiadamia client o świeżo otrzymanej wiadomości mail.
Pokaż przykład
Nasłuchuje powiadomień o nowej poczcie i loguje je do debugowania.
AddEventHandler('agency-phone:client:newMailNotify', function(mail)
print(('New mail from %s: %s'):format(mail.sender, mail.subject))
end)agency-phone:server:requestPhoneDataŻąda świeżej synchronizacji danych phone dla wywołującego gracza.
Pokaż przykład
Prosi serwer o świeżą synchronizację danych telefonu.
RegisterCommand('refreshphone', function()
TriggerServerEvent('agency-phone:server:requestPhoneData')
end)agency-phone:server:cancelCallAnuluje lub kończy aktywne połączenie.
Pokaż przykład
Rozłącza aktywne połączenie z własnego skrótu lub komendy.
RegisterCommand('hangup', function()
TriggerServerEvent('agency-phone:server:cancelCall')
end)agency-phone:server:sendMessageWysyła wiadomość SMS (newMsg, targetNumber).
Pokaż przykład
Szybko wysyła SMS na docelowy numer z poziomu czatu.
RegisterCommand('quicksms', function(_, args)
local target, msg = args[1], table.concat(args, ' ', 2)
TriggerServerEvent('agency-phone:server:sendMessage', { message = msg }, target)
end)agency-phone:server:saveSettingZapisuje pojedynczy klucz/wartość ustawienia phone dla gracza.
Pokaż przykład
Zapisuje pojedyncze ustawienie telefonu, gdy gracz je zmieni.
AddEventHandler('myresource:client:onSettingChanged', function(key, value)
TriggerServerEvent('agency-phone:server:saveSetting', key, value)
end)agency-phone:server:airdropPayWykonuje transfer Agency Airdrop do pobliskiego gracza.
Pokaż przykład
Uruchamia Agency Airdrop do pobliskich graczy podaną kwotą.
RegisterCommand('airdrop', function(_, args)
local amount = tonumber(args[1]) or 0
TriggerServerEvent('agency-phone:server:airdropPay', amount, 'Tip via airdrop')
end)agency-phone:server:buyDataPlanKupuje data plan operatora dla gracza (price, planName).
Pokaż przykład
Kupuje wybrany plan danych, gdy gracz wybierze go w niestandardowym UI.
AddEventHandler('myresource:client:onPlanSelected', function(plan)
TriggerServerEvent('agency-phone:server:buyDataPlan', plan.price, plan.name)
end)agency-phone:dispatch:createTworzy dispatch phone z połączenia/SMS alarmowego.
Pokaż przykład
Tworzy wpis dispatchu z połączenia alarmowego przez telefon.
RegisterNetEvent('myresource:server:dispatchFromCall', function(payload)
TriggerEvent('agency-phone:dispatch:create', {
source = source,
coords = payload.coords,
type = 'robbery',
title = '24/7 Robbery'
})
end)02Agency-Pad
Tablet AgencyOS z pełnym ekosystemem aplikacji. Rejestruj własne aplikacje przez config.lua.
Idealne do panelów admin, aplikacji zarządzania biznesem, map terytoriów gangów lub dowolnego custom UI, którego twoi gracze potrzebują w GTA, żyje w pięknej obudowie tabletu bez dodatkowej pracy.
Eksporty klienta
IsPadOpen()Zwraca true, jeśli UI tabletu jest otwarte (sprawdź stan tabletu przed pokazaniem UI).
Pokaż przykład
Nie otwiera ponownie własnego UI tabletu, gdy tablet jest już otwarty.
RegisterCommand('opentablet', function()
if exports['agency-pad']:IsPadOpen() then
return
end
TriggerEvent('myresource:openTablet')
end)IsPadPoweredOn()Zwraca true, jeśli tablet jest włączony.
Pokaż przykład
Wstrzymuje odpytywanie floty, gdy tablet jest wyłączony.
CreateThread(function()
while true do
Wait(3000)
if not exports['agency-pad']:IsPadPoweredOn() then
print('Tablet powered down, pausing fleet poll')
end
end
end)GetPadData()Zwraca pełną tabelę PadData po stronie client.
Pokaż przykład
Wyświetla pełną tabelę danych tabletu po stronie klienta.
RegisterCommand('paddebug', function()
local data = exports['agency-pad']:GetPadData()
print(json.encode(data, { indent = true }))
end)GetPadPropEntity()Zwraca uchwyt encji trzymanego propa tabletu lub 0, jeśli niewidoczny.
Pokaż przykład
Krótko ukrywa prop trzymanego tabletu podczas cutscene.
CreateThread(function()
Wait(750)
local prop = exports['agency-pad']:GetPadPropEntity()
if prop ~= 0 and DoesEntityExist(prop) then
SetEntityVisible(prop, false, false)
end
end)IsPadExpanded()Alias IsPadOpen() zachowany dla kompatybilności wstecznej.
Pokaż przykład
Stary alias blokujący minigrę, gdy tablet jest otwarty.
AddEventHandler('myresource:client:beforeMinigame', function()
if exports['agency-pad']:IsPadExpanded() then
return
end
TriggerEvent('myresource:client:startMinigame')
end)HasCarrierContract()Zwraca true, gdy gracz ma aktywny data plan operatora na tablecie.
Pokaż przykład
Ostrzega gracza, gdy w tablecie nie ma aktywnego planu danych.
RegisterCommand('checkpaddata', function()
if not exports['agency-pad']:HasCarrierContract() then
TriggerEvent('chat:addMessage', { args = { 'No tablet data plan, buy one in Settings' } })
end
end)GetPadState()Zwraca tabelę { isOpen, poweredOn, syncEnabled } podsumowującą aktualny stan tabletu.
Pokaż przykład
Zapisuje stan tabletu tylko, gdy jest otwarty i włączony.
AddEventHandler('myresource:saveSession', function()
local state = exports['agency-pad']:GetPadState()
if state.isOpen and state.poweredOn then
TriggerServerEvent('myresource:server:cachePadState', state)
end
end)HasPad()Zwraca true, jeśli gracz ma skonfigurowany przedmiot tabletu w ekwipunku.
Pokaż przykład
Blokuje komendę UI dispatchu, jeśli gracz nie ma tabletu.
RegisterCommand('opendispatch', function()
if not exports['agency-pad']:HasPad() then
TriggerEvent('chat:addMessage', { args = { 'You need a tablet first' } })
return
end
TriggerEvent('myresource:client:openDispatch')
end)RegisterAgencyPayPoint(id, data)Rejestruje runtime Agency Pay terminal we wskazanych koordynatach (markers, blip, checkout payload).
Pokaż przykład
Tworzy w czasie pracy terminal Agency Pay w recepcji szpitala.
CreateThread(function()
exports['agency-pad']:RegisterAgencyPayPoint('hospital_lobby', {
coords = vector3(307.7, -1433.4, 30.0),
label = 'Hospital Bill',
amount = 500,
receiver = 'medical'
})
end)RemoveAgencyPayPoint(id)Usuwa wcześniej zarejestrowany Agency Pay terminal po id.
Pokaż przykład
Usuwa punkt płatności tabletu po zamknięciu lokalizacji.
AddEventHandler('myresource:onLocationClosed', function(locationId)
exports['agency-pad']:RemoveAgencyPayPoint(locationId)
end)StartAgencyPayCheckout(data)Otwiera tablet (jeśli trzeba) i uruchamia checkout Agency Pay z podanym payloadem płatności.
Pokaż przykład
Otwiera tablet i uruchamia płatność Agency Pay za podatek od nieruchomości.
RegisterCommand('paybill', function()
exports['agency-pad']:StartAgencyPayCheckout({
amount = 1500,
receiver = 'gov_taxes',
label = 'Property tax',
memo = 'Quarterly tax'
})
end)StartCall(contactData)Rozpoczyna połączenie wychodzące z tabletu do podanego kontaktu ({ name, number, ... }).
Pokaż przykład
Wykonuje połączenie wychodzące z tabletu po dispatchu.
RegisterNetEvent('myresource:client:dispatchOnTablet', function(payload)
exports['agency-pad']:StartCall({
name = payload.name or 'Field Agent',
number = payload.number,
anonymous = false
})
end)PhoneNotification(title, text, icon, color, timeout, acceptIcon, denyIcon)Pokazuje powiadomienie z przyciskami accept/deny; blokuje do odpowiedzi i zwraca true/false.
Pokaż przykład
Pokazuje blokującą notyfikację tabletu do startu dostawy.
CreateThread(function()
local accepted = exports['agency-pad']:PhoneNotification(
'Mission ready', 'Start the delivery now?', 'box', '#3399ff', 12000, 'check', 'x'
)
if accepted then
TriggerServerEvent('myresource:server:startDelivery')
end
end)RegisterApp(config)Umieszcza aplikację z Twojego własnego zasobu na ekranie głównym tabletu i w Store. Zwraca true lub false i błąd.
UnregisterApp(id)Usuwa aplikację dodaną za pomocą RegisterApp.
GetRegisteredApps()Zwraca tabelę wszystkich aplikacji zarejestrowanych przez inne resource'y, indeksowaną według id.
ClosePad()Zamyka pada, na przykład przed otwarciem twojego własnego interfejsu.
ClosePhone()Działa tak samo jak ClosePad(), pod nazwą używaną przez Agency Phone, dzięki czemu ten sam kod integracji działa dla obu.
IsPhoneRadioActive()Zwraca dwie wartości: true, gdy radio na padzie gra, oraz odtwarzaną stację.
StopPhoneRadio()Zatrzymuje radio na padzie.
Eksporty serwera
SendMail(identifier, mailData)Wysyła mail do głównej skrzynki gracza po identifier (zwraca sukces).
Pokaż przykład
Wysyła e-mail z powiadomieniem o fakturze po identyfikatorze.
RegisterNetEvent('myresource:server:sendInvoiceMail', function(targetId)
local identifier = GetPlayerIdentifier(targetId, 0)
exports['agency-pad']:SendMail(identifier, {
sender = '[email protected]',
subject = 'New invoice available',
body = 'Open the tablet to review your invoice.'
})
end)usePad(event, item, inventory, slot, data)Hook ox_inventory rejestrowany przy wykryciu ESX+ox_inventory; otwiera tablet posiadaczowi.
Pokaż przykład
Wpina się w ox_inventory, by otworzyć tablet przez helper.
exports.ox_inventory:registerHook('usingItem', function(payload)
if payload.item.name ~= 'tablet' then return end
return exports['agency-pad']:usePad('inventory', payload.item, payload.inventory, payload.slot)
end, { itemFilter = { tablet = true } })usePhone(event, item, inventory, slot, data)Hook ox_inventory dla starego id przedmiotu phone; otwiera tablet posiadaczowi.
Pokaż przykład
Przekierowuje stary item phone na otwarcie UI tabletu.
exports.ox_inventory:registerHook('usingItem', function(payload)
if payload.item.name ~= 'phone' then return end
return exports['agency-pad']:usePhone('inventory', payload.item, payload.inventory, payload.slot)
end, { itemFilter = { phone = true } })GetMarketPrices()Zwraca bieżące ceny akcji i kryptowalut na rynkach, indeksowane według market id.
PushPadData(source)Wysyła świeżą kopię danych tabletu na tablet tego gracza. Zwraca false, jeśli nie udało się ich wygenerować.
Eventy
agency-pad:client:notifyWyświetla powiadomienie tabletu (title, text, icon, color, timeout, silent).
Pokaż przykład
Wyświetla nieblokujący toast tabletu o odblokowanej misji.
TriggerEvent('agency-pad:client:notify', 'Job update', 'New mission unlocked', 'briefcase', '#22cc88', 5000, false)agency-pad:client:usePadItemOtwiera tablet po użyciu przedmiotu z ekwipunku.
Pokaż przykład
Przekazuje własne zdarzenie użycia przedmiotu do otwarcia tabletu.
AddEventHandler('myresource:client:onItemUsed', function(itemName)
if itemName == 'tablet' then
TriggerEvent('agency-pad:client:usePadItem')
end
end)agency-pad:client:openAppWywołaj na client, aby otworzyć konkretną aplikację w tablecie.
Pokaż przykład
Przeskakuje wprost do własnej aplikacji zarządzania flotą.
RegisterCommand('openfleet', function()
TriggerEvent('agency-pad:client:openApp', 'fleet')
end)agency-pad:client:newMailNotifyPowiadamia client o świeżo otrzymanej wiadomości mail.
Pokaż przykład
Nasłuchuje powiadomień o nowej poczcie tabletu i loguje lokalnie.
AddEventHandler('agency-pad:client:newMailNotify', function(mail)
print(('Tablet mail from %s: %s'):format(mail.sender, mail.subject))
end)agency-pad:client:hourlyPaycheckPowiadamia client o godzinowym evencie wypłaty business.
Pokaż przykład
Reaguje na godzinową wypłatę biznesową z tabletu.
AddEventHandler('agency-pad:client:hourlyPaycheck', function(payload)
print(('Hourly paycheck: $%s from %s'):format(payload.amount, payload.businessName))
end)agency-pad:server:requestPadDataŻąda świeżej synchronizacji danych tabletu dla wywołującego gracza.
Pokaż przykład
Prosi serwer o świeżą synchronizację danych tabletu.
RegisterCommand('refreshpad', function()
TriggerServerEvent('agency-pad:server:requestPadData')
end)agency-pad:server:sendMessageWysyła wiadomość SMS (newMsg, targetNumber).
Pokaż przykład
Wysyła SMS z tabletu przez własną komendę i numer docelowy.
RegisterCommand('quicksmsTab', function(_, args)
local target, msg = args[1], table.concat(args, ' ', 2)
TriggerServerEvent('agency-pad:server:sendMessage', { message = msg }, target)
end)agency-pad:server:airdropPayWykonuje transfer Agency Airdrop do pobliskiego gracza.
Pokaż przykład
Uruchamia Agency Airdrop do pobliskich graczy z tabletu.
RegisterCommand('airdroppad', function(_, args)
local amount = tonumber(args[1]) or 0
TriggerServerEvent('agency-pad:server:airdropPay', amount, 'Tablet airdrop')
end)agency-pad:server:buyDataPlanKupuje data plan operatora dla gracza.
Pokaż przykład
Kupuje wybrany plan danych tabletu w niestandardowym UI.
AddEventHandler('myresource:client:padPlanSelected', function(plan)
TriggerServerEvent('agency-pad:server:buyDataPlan', plan.price, plan.name)
end)agency-pad:dispatch:createTworzy dispatch tabletu z połączenia/SMS alarmowego.
Pokaż przykład
Tworzy wpis dispatchu tabletu z połączenia alarmowego.
RegisterNetEvent('myresource:server:padDispatchFromCall', function(payload)
TriggerEvent('agency-pad:dispatch:create', {
source = source,
coords = payload.coords,
type = 'medical',
title = 'Medical assistance'
})
end)agency-pad:server:biz:createTworzy nowy business/organizację dla gracza.
Pokaż przykład
Tworzy nową firmę z własnej komendy w grze.
RegisterCommand('startbiz', function()
TriggerServerEvent('agency-pad:server:biz:create', {
name = 'Bennys Repair',
type = 'mechanic',
location = 'sandy_shores'
})
end)agency-pad:server:biz:adminCreateAdmin tworzy business w imieniu innego gracza.
Pokaż przykład
Przekazuje komendę admina, by utworzyć firmę dla innego gracza.
RegisterNetEvent('myresource:server:adminCreateBiz', function(targetSrc, payload)
TriggerEvent('agency-pad:server:biz:adminCreate', targetSrc, payload)
end)agency-pad:server:biz:startMissionUruchamia skonfigurowaną misję business dla gracza.
Pokaż przykład
Uruchamia skonfigurowaną misję firmy dla wywołującego gracza.
RegisterCommand('bizmission', function()
TriggerServerEvent('agency-pad:server:biz:startMission', {
bizId = 12,
missionId = 'delivery_route_a'
})
end)agency-pad:server:applyToListingSkłada aplikację o pracę do oferty business.
Pokaż przykład
Wysyła aplikację o pracę z ogłoszenia tabletu po jego id.
RegisterCommand('apply', function(_, args)
local listingId = tonumber(args[1])
TriggerServerEvent('agency-pad:server:applyToListing', listingId, {
coverNote = 'Available immediately'
})
end)agency-pad:server:createMechanicInvoiceTworzy szkic faktury mechanika.
Pokaż przykład
Tworzy szkic faktury mechanika dla rejestracji i kwoty.
RegisterCommand('mechinvoice', function(_, args)
TriggerServerEvent('agency-pad:server:createMechanicInvoice', {
plate = args[1],
amount = tonumber(args[2]) or 250,
notes = 'Brake replacement'
})
end)agency-pad:server:sendMechanicInvoicePayWysyła fakturę mechanika do klienta do zapłaty.
Pokaż przykład
Wysyła klientowi sfinalizowaną fakturę mechanika do zapłaty.
AddEventHandler('myresource:client:onInvoiceConfirmed', function(invoice)
TriggerServerEvent('agency-pad:server:sendMechanicInvoicePay', invoice.id, invoice.targetSrc)
end)agency-pad:server:mdtCreateInvoiceMDT tworzy mandat/fakturę dla obywatela.
Pokaż przykład
Tworzy mandat MDT dla obywatela z własnego net eventa.
RegisterNetEvent('myresource:server:mdtFine', function(targetSrc, amount, reason)
TriggerEvent('agency-pad:server:mdtCreateInvoice', {
target = targetSrc,
amount = amount,
reason = reason,
officer = source
})
end)03Agency-Watch
Teraz z AgencyOS27: bezpłatna aktualizacja dla każdego, kto już posiada zegarek. Prawdziwy smartwatch dla FiveM, a nie HUD. AgencyOS27 na nadgarstku: dziesięć tarcz zegarka plus cztery własne dla małego wyświetlacza always-on, Studio dla koperty, paska i kolorów, pierścienie aktywności z dziennym celem kroków, stoper, minutnik, budzik, pogoda z prawdziwych miast, kompas, prędkościomierz, garaż, cztery gry, centrum sterowania oraz sklep z aplikacjami, w którym gracze sami instalują, porządkują i usuwają aplikacje. Angy znajduje się na koronce: naciśnij i przytrzymaj, zapytaj prostymi słowami, a zegarek to zrobi, we wszystkich dziesięciu językach, według ustalonych reguł bez żadnego AI i bez ani jednego zapytania opuszczającego serwer. Wszystko wymienione do tej pory działa samodzielnie, bez żadnego innego resource. Wykryty Agency Phone odblokowuje połączenia, wiadomości, e-mail, kontakty i Agency Pay na nadgarstku oraz otwiera zegarek na twoje własne aplikacje. Decyzja ta zapada po stronie serwera poprzez handshake HMAC z oryginalnym telefonem, więc skopiowany resource nie może jej sfałszować. Wykrywanie upadku samo wyświetla zegarek po wypadku lub długim upadku i oferuje połączenie alarmowe, z telefonem lub bez. Za darmo, QBCore / Qbox / ESX / standalone z automatycznym wykrywaniem, dziesięć języków z angielskim jako domyślnym i ani jedna czcionka lub ikona ładowana z internetu.
Eksporty klienta
OpenWatch(mitte)Otwiera zegarek. Przekaż true, aby otworzyć go na środku ekranu zamiast w skonfigurowanym rogu.
CloseWatch()Zamyka zegarek i zwalnia NUI focus.
ToggleWatch()Zamyka zegarek, jeśli jest otwarty, w przeciwnym razie go otwiera.
IsWatchOpen()Zwraca true, gdy UI zegarka jest widoczne na ekranie.
IsWatchLinked()Zwraca false, gdy gracz wyłączył połączenie z Agency Phone w centrum kontroli.
RunWatchAction()Uruchamia akcję przypisaną do pomarańczowego przycisku akcji (Config.ActionButton).
GetWatchSettings()Zwraca pełną tabelę ustawień, z której budowane jest UI zegarka (motyw, tarcza, rozmiar, aplikacje, locale).
SetWatchSetting(key, value)Ustawia pojedyncze ustawienie, zapisuje je dla postaci i stosuje od razu.
SetWatchSettings(table)Ustawia kilka ustawień naraz i przebudowuje UI tylko raz, zamiast dla każdej wartości z osobna.
RequestWatchPairing()Prosi serwer o kod parowania aplikacji Companion. Odpowiedź przychodzi jako event, a nie jako wartość zwracana.
ShowUpdate()Otwiera ekran aktualizacji oprogramowania AgencyOS.
HandlesDeath()Zwraca true, gdy zegarek wyświetla ekran awaryjny po śmierci. Agency Phone odpytuje o to, aby oba urządzenia nigdy nie pokazywały go jednocześnie.
GetFitness()Zwraca bieżące wartości sprawności: kroki, dystans, aktywne minuty i kalorie z bieżącego dnia.
SetWatchAppInstalled(id, on)Instaluje lub usuwa jedną aplikację dla tego gracza. To samo, co robi App Store, dzięki czemu serwer może przyznać aplikację jako nagrodę.
FindWatch()Sprawia, że zegarek dzwoni i podświetla się, tak jak przy funkcji wyszukiwania w aplikacji Companion.
StopFindWatch()Zatrzymuje dzwonienie, zanim samo się zakończy.
IsWatchRinging()Zwraca true, gdy zegarek dzwoni.
Eksporty serwera
IsPremium(src)Zwraca true, gdy zegarek tego gracza działa w wersji Pro. Weryfikacja pochodzi z handshake'u z oryginalnym Agency Phone, nigdy z klienta.
04Agency-Zero
Autonomiczny, elektryczny czteromiejscowy pojazd dla FiveM, całkowicie bezpłatny. Project 0 to odrębny pojazd, zbudowany od zera w Blenderze za pomocą Sollumz: brak klamek, drzwi otwierające się w kształcie fali, prawdziwa kierownica i pedały do sterowania ręcznego. Gracze przywołują go z poziomu Agency Phone, Agency Pad lub aplikacji Agency Companion na swoim prawdziwym telefonie, a on podjeżdża do nich i parkuje przy krawężniku obok, zamiast odjeżdżać w poszukiwaniu zatoczki. Wewnątrz AgencyOS27 działa na tablecie w desce rozdzielczej oraz w menu Z: interaktywna mapa, Angy, wbudowany asystent oparty na stałych regułach i bez żadnego AI, z którym można rozmawiać prostymi słowami, sześciu asystentów kierowcy z jednym głównym przełącznikiem, chiptuning etapami, moduły dźwiękowe oraz statystyki zliczane dla każdego auta i właściciela. Każdy samochód posiada własny numer przypisany do właściciela w bazie danych, dzięki czemu własność, tuning i każde ustawienie przetrwają restart. QBCore, Qbox i ESX są wykrywane automatycznie, działa również standalone, a wszystkie teksty są dostarczane w 27 językach z angielskim pod spodem.
Eksporty klienta
ZeroStatus()Zwraca stan własnego Project 0 gracza: czy istnieje, gdzie się znajduje, baterię, zasięg oraz czy trwa przejazd.
ZeroCall()Przywołuje samochód do gracza. Pojazd podjeżdża i parkuje przy krawężniku obok niego.
ZeroDeliver()Dostarcza samochód, gdy nie ma go na mapie. Kosztuje Config.Remote.deliveryFee, darmowe bez frameworka.
ZeroGarage()Odsyła pojazd z powrotem do jego garażu.
ZeroCancel()Anuluje trwające połączenie lub przejazd.
ZeroFind()Pokazuje namiar na samochód u dołu ekranu przez Config.Remote.findRadarSeconds sekund.
ZeroDoors(on)Otwiera drzwi przy true, zamyka przy false. Poruszają się falą, nie wszystkie naraz.
ZeroLock(on)Blokuje pojazd przy true, odblokowuje przy false.
ZeroLights(on)Włącza i wyłącza światła.
ZeroBuyInfo()Zwraca, czy gracz może kupić Project 0 i ile to kosztuje. Ktoś, kto już go posiada, nic nie otrzymuje.
ZeroBuy()Kupuje Project 0 dla tego gracza. Pojazd zostaje przypisany do niego w tym samym kroku.
ZeroRefresh()Odczytuje stan ponownie, dla UI wymagającego świeżych liczb bez czekania na kolejny tick.
IsRideActive()Zwraca true, gdy trwa przejazd autonomiczny.
CallProjectZero()Rozpoczyna kurs do aktualnego celu. Przy braku celu używany jest waypoint z mapy.
CancelProjectZero()Kończy przejazd. Samochód zjeżdża na pobocze i się zatrzymuje.
IsCockpitOpen()Zwraca true, gdy tablet w desce rozdzielczej jest widoczny na ekranie.
IsManualOverride()Zwraca true, gdy kierowca przejął kierownicę. Bez nadpisania Zero jeździ wyłącznie autonomicznie.
AnyDoorOpen(veh)Zwraca true, gdy co najmniej jedne drzwi tego pojazdu są otwarte.
OpenDoors(veh, opts)Otwiera drzwi pojazdu z animacją fali.
CloseDoors(veh, opts)Zamyka je ponownie.
AnimateDoors(veh, open, opts)Otwiera lub zamyka w zależności od drugiego argumentu, dla kodu decydującego w czasie wykonywania.
SoundChipOf(veh)Zwraca chip dźwiękowy zamontowany w tym aucie. Zmiana chipu zmienia silnik, nigdy radio.
Eksporty serwera
IsPro(src)Zwraca true, gdy Zero tego gracza działa w wersji Pro. Weryfikacja pochodzi z handshake'u HMAC z oryginalnym Agency Phone, nigdy z klienta.
ZeroVin(plate)Zwraca numer pojazdu przypisany do rejestracji. Każdy Project 0 otrzymuje go przy wydaniu i zachowuje na stałe.
ZeroCarsOf(src)Zwraca każdy Project 0 posiadany przez tego gracza, z numerem, rejestracją, etapem tuningu i statystykami.
ZeroSync(src)Zapisuje ponownie stan rejestru dla tego gracza, na przykład po zmianie własności przez inny skrypt.
Eventy
agency-zero:client:rideStartedPrzejazd się rozpoczął. Zawiera cel podróży.
agency-zero:client:rideEndedPrzejazd zakończony, anulowany lub na miejscu.
agency-zero:client:arrivedSamochód dotarł do gracza i otworzył drzwi.
05Agency-Lifeinvader V3
Agencja reklamowa miasta: ogłoszenia graczy na każdym ekranie z kategoriami, boostami, planowaniem, wersjami roboczymi, weryfikacją, pracą dla personelu, generatorem AI oraz aplikacją dla Agency Phone i Agency Pad.
Pasuje do skryptów biznesów i prac, które same publikują reklamy, skryptów wydarzeń i kasyna ogłaszających to, co się dzieje, logów Discord każdej reklamy, telefonów i menu kołowych otwierających aplikację oraz narzędzi administracyjnych sprawdzających administratorów Lifeinvader.
Eksporty klienta
OpenApp(tab)Otwiera aplikację na podanej stronie: 'feed', 'create', 'mine', 'drafts' lub 'settings'. Bez podania strony otwiera ostatnio używaną stronę lub feed na żywo.
Pokaż przykład
Otwiera aplikację na New ad z własnego menu kołowego lub telefonu.
-- an entry in your radial menu
exports['Agency-LifeinvaderV3']:OpenApp('create')OpenFeed()Otwiera aplikację na feedzie na żywo.
Pokaż przykład
Otwiera feed na żywo, na przykład przy kiosku z gazetami.
exports['Agency-LifeinvaderV3']:OpenFeed()CloseApp()Zamyka aplikację.
Pokaż przykład
Zamyka aplikację przed otwarciem twojego własnego menu.
exports['Agency-LifeinvaderV3']:CloseApp()IsOpen()Wartość true, gdy aplikacja jest otwarta na tym kliencie.
Pokaż przykład
Zapobiega otwieraniu twojego menu na aplikacji.
if not exports['Agency-LifeinvaderV3']:IsOpen() then
-- open your own menu
endEksporty serwera
PostAd(text, opts)Publikuje ogłoszenie samego serwera: darmowe, bez weryfikacji i pierwsze w kolejce. Opcje: author, category, instant (uruchamia się od razu), reps, interval, duration i boosted. Zwraca id ogłoszenia lub nil i kod błędu.
Pokaż przykład
Publikuje oficjalne ogłoszenie z twojego skryptu kasyna lub eventu, darmowe i pierwsze w kolejce.
exports['Agency-LifeinvaderV3']:PostAd('Casino night tonight at 20:00, free entry!', {
author = 'Diamond Casino', category = 'events', instant = true,
})GetFeed(limit)Kanał na żywo w postaci, w jakiej wyświetla go aplikacja, najnowsze na początku: id, text, category, boosted, author (nil dla ogłoszeń anonimowych), sentAt, created, sent oraz live.
Pokaż przykład
Odczytuje ostatnie reklamy, na stronę internetową, do gazety lub aplikacji w telefonie.
for _, ad in ipairs(exports['Agency-LifeinvaderV3']:GetFeed(10)) do
print(ad.id, ad.author or 'anonymous', ad.text)
endGetAd(id)Jedna reklama w takiej samej formie jak w feedzie, lub nil.
Pokaż przykład
Wyszukuje pojedyncze ogłoszenie po jego numerze.
local ad = exports['Agency-LifeinvaderV3']:GetAd(412)
if ad then print(ad.text) endIsAdmin(source)Wartość true, gdy gracz jest administratorem Lifeinvader przez ACE, grupę lub identyfikator.
Pokaż przykład
Używa uprawnień administratora Lifeinvader w twoim własnym skrypcie.
if exports['Agency-LifeinvaderV3']:IsAdmin(source) then
-- show your admin tools
endEventy
agency-lifeinvader:adShownLokalny event na każdym kliencie przy pojawieniu się reklamy na ekranie, zawierający id, text, category, catLabel, icon, author (nil w przypadku anonimowości), boosted, duration oraz system (true dla oficjalnych ogłoszeń).
Pokaż przykład
Reaguje na kliencie, gdy pojawia się reklama, na przykład na billboardzie.
AddEventHandler('agency-lifeinvader:adShown', function(ad)
-- ad.text, ad.author, ad.category
end)agency-lifeinvader:adBroadcastLokalny event na serwerze przy każdej emisji reklamy, zawierający reklamę w postaci feedu. Przydatny do logów lub webhooka Discord.
Pokaż przykład
Rejestruje każde ogłoszenie wyświetlane na serwerze.
AddEventHandler('agency-lifeinvader:adBroadcast', function(ad)
-- send ad.text to your Discord log
end)agency_lifeinvader:openMenuPozostawione z V3: otwiera aplikację na nowym ogłoszeniu, więc skrypty otwierające stare menu nadal działają.
Pokaż przykład
Otwiera aplikację na New ad dla gracza, tak jak robił to event V3.
TriggerClientEvent('agency_lifeinvader:openMenu', source)agency_lifeinvader:openRecentMenuPozostawione z V3: otwiera aplikację na feedzie na żywo.
Pokaż przykład
Otwiera feed na żywo dla gracza, tak jak robił to event V3.
TriggerClientEvent('agency_lifeinvader:openRecentMenu', source)06Agency-Blackmarket V2
Żyjący czarny rynek z przemieszczającymi się dilerami, rynkiem na żywo, targowaniem się, zamówieniami z odbiorem, zleceniami kurierskimi, paserem, praniem pieniędzy i pięcioma poziomami reputacji.
Pasuje do skryptów gangów, napadów i narkotyków, które powinny dawać reputację lub kredyt, narzędzi policyjnych i dispatch reagujących na transakcje oraz ruchy dilerów, a także menu kołowych lub telefonów otwierających menu czarnego rynku.
Eksporty klienta
OpenMenu()Otwiera menu /ablackmarket, na przykład z menu kołowego lub aplikacji w telefonie. Obowiązują te same sprawdzenia, co dla komendy.
Pokaż przykład
Otwiera menu czarnego rynku z własnego menu kołowego lub aplikacji w telefonie.
-- an entry in your radial menu
exports['Agency-Blackmarket']:OpenMenu()CloseMenu()Zamyka menu i oddaje mysz do gry.
Pokaż przykład
Zamyka menu, na przykład przed twoją własną cutscenką.
-- before your own cutscene starts
exports['Agency-Blackmarket']:CloseMenu()IsMenuOpen()Zwraca true, gdy otwarte jest menu czarnego rynku, u handlarza lub gdziekolwiek indziej.
Pokaż przykład
Sprawdza, czy menu jest otwarte, zanim pojawi się twój własny interfejs.
if exports['Agency-Blackmarket']:IsMenuOpen() then
return -- the player is busy in the black market menu
endEksporty serwera
GetReputation(source)Punkty reputacji gracza, 0 dla gracza, który jeszcze żadnych nie ma.
Pokaż przykład
Pozwala rozpocząć pracę lub napad tylko graczom z odpowiednią reputacją.
local rep = exports['Agency-Blackmarket']:GetReputation(source)
if rep < 150 then
return -- this heist needs a known name on the street
endSetReputation(source, value)Ustawia reputację gracza na stałą wartość, nigdy poniżej 0. Zwraca true w przypadku powodzenia.
Pokaż przykład
Ustawia reputację gracza na stałą wartość.
-- an admin tool resets a player
exports['Agency-Blackmarket']:SetReputation(targetId, 0)AddReputation(source, amount)Dodaje reputację lub odbiera ją przy wartości ujemnej. Nowy poziom jest ogłaszany graczowi oraz w aplikacji Companion. Zwraca true w przypadku powodzenia.
Pokaż przykład
Nagradza ukończoną pracę reputacją; nowy poziom jest ogłaszany.
-- a finished drug run earns street reputation
exports['Agency-Blackmarket']:AddReputation(source, 15)GetLevel(source)Zwraca dwie wartości: numer poziomu gracza (domyślnie od 1 do 5) oraz jego nazwę.
Pokaż przykład
Odczytuje numer poziomu i jego nazwę, na przykład w celu odblokowania własnej zawartości.
local level, name = exports['Agency-Blackmarket']:GetLevel(source)
if level >= 4 then
print(('%s is %s on the street'):format(GetPlayerName(source), name))
endAddCredit(source, amount)Dodaje kredyt u dealera, który gracz może wydać przy następnym zakupie lub zamówieniu. Zwraca true w przypadku powodzenia.
Pokaż przykład
Przyznaje graczowi kredyt u dealera na kolejny zakup lub zamówienie.
-- a gang boss pays out in dealer credit
exports['Agency-Blackmarket']:AddCredit(source, 2500)RelocateDealer(dealerId)Natychmiast przenosi dealera w inne z jego miejsc. Zwraca true, gdy dealer się przemieści.
Pokaż przykład
Natychmiast przenosi dealera w inne z jego miejsc.
-- a tip reached the police: the dealer changes his spot
exports['Agency-Blackmarket']:RelocateDealer('vince')SendDealerAway(dealerId, minutes)Diler znika na określoną liczbę minut, a następnie pojawia się w innym ze swoich miejsc, tak jak po wizycie policji.
Pokaż przykład
Odsyła dilera na pewien czas, na przykład po wizycie policji.
-- a raid in the area: Marlow goes quiet for 20 minutes
exports['Agency-Blackmarket']:SendDealerAway('marlow', 20)IsDealerPresent(dealerId)Wartość true, gdy dealer stoi na jednym ze swoich miejsc i nie jest oddalony.
Pokaż przykład
Sprawdza, czy diler znajduje się w tej chwili w jednym ze swoich miejsc.
if exports['Agency-Blackmarket']:IsDealerPresent('vince') then
print('Vince is on the street')
endStartFlashSale(minutes)Uruchamia flash sale z losowymi przedmiotami ze zniżką. Bez podania minut używany jest czas z Config.FlashSale.
Pokaż przykład
Uruchamia flash sale z własnego eventu lub harmonogramu.
-- the city had a big night: a flash sale for 10 minutes
exports['Agency-Blackmarket']:StartFlashSale(10)Eventy
agency-blackmarket:dealWywoływane na serwerze z parametrami (source, kind, data) po każdej transakcji. kind to buy, sell, launder, order, pickup lub job, a data zawiera szczegóły transakcji, takie jak diler, przedmioty i suma.
Pokaż przykład
Reaguje na każdą transakcję, na przykład na potrzeby własnych logów lub tabletu policji.
AddEventHandler('agency-blackmarket:deal', function(source, kind, data)
if kind == 'buy' then
print(('%s spent %d at %s'):format(GetPlayerName(source), data.total, data.dealer))
end
end)agency-blackmarket:dealerMovedWywoływane na serwerze z parametrami (dealerId, pos, reason), gdy diler zmienia swoją lokalizację. reason to rotate, return, admin lub export.
Pokaż przykład
Śledzi dilerów, na przykład na potrzeby pracy informatora lub detektywa.
AddEventHandler('agency-blackmarket:dealerMoved', function(dealerId, pos, reason)
print(('%s moved to %.1f, %.1f (%s)'):format(dealerId, pos.x, pos.y, reason))
end)agency-blackmarket:flashSaleWywoływane na serwerze z parametrami (items, minutes), gdy rozpoczyna się wyprzedaż błyskawiczna. items mapuje każdy przeceniony przedmiot na jego zniżkę w procentach.
Pokaż przykład
Ogłasza błyskawiczną wyprzedaż na Twoich własnych kanałach.
AddEventHandler('agency-blackmarket:flashSale', function(items, minutes)
for item, discount in pairs(items) do
print(('%s is %d%% off for %d minutes'):format(item, discount, minutes))
end
end)07Agency-Minerjob V2
Praca górnika z siedmioma strefami, trzema narzędziami, 100 poziomami, piecami, szlifowaniem kamieni szlachetnych, zleceniami i rynkiem o zmiennych cenach, wszystko w jednym menu.
Pasuje do skryptów zadań i osiągnięć reagujących na górnictwo, skryptów ekonomii i prac odczytujących ceny rynkowe, menu kołowych i telefonów otwierających menu oraz narzędzi administracyjnych ustawiających poziomy lub przyznających XP.
Eksporty klienta
OpenMenu(page)Otwiera menu, na przykład z menu kołowego lub aplikacji w telefonie. page to overview (domyślnie), market, tools, smelter, cutting lub contracts.
Pokaż przykład
Otwiera menu na stronie rynku z własnego menu kołowego lub aplikacji w telefonie.
-- an entry in your radial menu
exports['Agency-Minerjob']:OpenMenu('market')CloseMenu()Zamyka menu i oddaje mysz do gry.
Pokaż przykład
Zamyka menu przed otwarciem twojego własnego menu.
exports['Agency-Minerjob']:CloseMenu()IsMenuOpen()Wartość true, gdy menu jest otwarte.
Pokaż przykład
Zapobiega otwieraniu twojego menu na menu górnictwa.
if not exports['Agency-Minerjob']:IsMenuOpen() then
-- open your own menu
endIsWorking()Wartość true, gdy gracz wydobywa surowce lub szlifuje klejnot.
Pokaż przykład
Zapobiega przerywaniu animacji wydobywania lub cięcia przez twój skrypt.
if exports['Agency-Minerjob']:IsWorking() then
return -- no emotes while mining
endGetLevel()Poziom górnictwa gracza.
Pokaż przykład
Odczytuje poziom gracza, na przykład dla HUD lub aplikacji w telefonie.
local level = exports['Agency-Minerjob']:GetLevel()
print('Mining level', level)Eksporty serwera
GetLevel(source)Poziom górnictwa gracza, 0 gdy gracz jest nieznany.
Pokaż przykład
Sprawdza poziom górnictwa na serwerze, zanim twój skrypt na coś zezwoli.
if exports['Agency-Minerjob']:GetLevel(source) < 25 then
return -- the quarry job needs level 25
endGetProgress(source)Poziom i postęp jako { level, xp, need, pct, max }.
Pokaż przykład
Odczytuje poziom i postęp, na przykład dla aplikacji w telefonie lub scoreboarda.
local p = exports['Agency-Minerjob']:GetProgress(source)
print(p.level, p.xp, p.need, p.pct)AddXp(source, amount)Dodaje XP wraz z awansami na kolejny poziom i odpowiednim komunikatem. Zwraca true, gdy gracz został znaleziony.
Pokaż przykład
Przyznaje punkty XP górnictwa jako nagrodę z własnego zadania lub wydarzenia.
-- a quest reward
exports['Agency-Minerjob']:AddXp(source, 250)SetLevel(source, level)Ustawia poziom między 1 a najwyższym poziomem i rozpoczyna go od 0 XP.
Pokaż przykład
Ustawia poziom, na przykład z poziomu własnego narzędzia administracyjnego.
exports['Agency-Minerjob']:SetLevel(source, 10)GetStats(source)Co gracz zrobił do tej pory: { mined, smelted, cut, broken, sold, earned, contracts }.
Pokaż przykład
Odczytuje, co gracz wydobył i zarobił, na potrzeby leaderboarda lub osiągnięć.
local stats = exports['Agency-Minerjob']:GetStats(source)
print(stats.mined, stats.earned)GetPrice(item)Aktualna cena rynkowa przedmiotu za sztukę.
Pokaż przykład
Odczytuje aktualną cenę rynkową, na przykład dla tickera giełdowego lub sklepu skupującego te same przedmioty.
local price = exports['Agency-Minerjob']:GetPrice('gold_bar')
print('Gold bar pays', price)Eventy
agency-minerjob:minedWywoływane na serwerze po wypłacie za wydobycie, z parametrami source, item, count i obszarem wydobycia. Nasłuchuj za pomocą AddEventHandler, na przykład na potrzeby zadań lub statystyk.
Pokaż przykład
Reaguje po stronie serwera na każde wydobycie zakończone wypłatą.
AddEventHandler('agency-minerjob:mined', function(source, item, count, area)
-- count mined ore for a quest
end)agency-minerjob:soldWywoływane na serwerze po sprzedaży, z parametrami source, item, count oraz łączną wypłaconą kwotą.
Pokaż przykład
Reaguje po stronie serwera na każdą sprzedaż, na potrzeby logów lub statystyk.
AddEventHandler('agency-minerjob:sold', function(source, item, count, total)
-- log big sales
end)agency-minerjob:contractWywoływane na serwerze po dostarczeniu kontraktu, z parametrami source, item, count i wynagrodzeniem.
Pokaż przykład
Reaguje po stronie serwera po dostarczeniu kontraktu.
AddEventHandler('agency-minerjob:contract', function(source, item, count, pay)
-- an achievement for delivered contracts
end)08Agency-Repairkit V2
Realistyczne uszkodzenia pojazdów z czterema zestawami naprawczymi, skill checkami i bonusem dla mechanika.
Pasuje do prac mechanika i pomocy drogowej, sklepów sprzedających zestawy oraz każdego skryptu, który powinien reagować na ukończoną naprawę lub poziom uszkodzeń auta prowadzonego przez gracza.
Eksporty klienta
IsRepairing()Zwraca true, gdy lokalny gracz pracuje przy pojeździe, na przykład po to, aby pozostawić własne menu zamknięte.
Pokaż przykład
Utrzymuje twoje menu zamknięte, gdy gracz naprawia pojazd.
if exports['Agency-Repairkit']:IsRepairing() then
return -- keep your menu closed while the player works
endGetVehicleCondition(vehicle)Silnik, karoseria i zbiornik paliwa w %, opony, zabrudzenie, poziom uszkodzeń oraz informacja, czy zbiornik przecieka. Bez podania argumentu odczytuje pojazd, w którym siedzi gracz.
Pokaż przykład
Odczytuje stan pojazdu, którym porusza się gracz.
local vehicle = GetVehiclePedIsIn(PlayerPedId(), false)
local cond = exports['Agency-Repairkit']:GetVehicleCondition(vehicle)
if cond and cond.level == 'critical' then
print(('Engine %d %%, leaking: %s'):format(cond.engine, tostring(cond.leaking)))
endOpenMenu()Otwiera menu /arepairkit, na przykład z aplikacji w telefonie lub menu kołowego.
Pokaż przykład
Otwiera menu zestawu naprawczego z własnego menu kołowego lub aplikacji w telefonie.
-- an entry in your radial menu or phone app
exports['Agency-Repairkit']:OpenMenu()CloseMenu()Zamyka menu i oddaje mysz do gry.
Pokaż przykład
Zamyka menu, na przykład przed twoją własną cutscenką.
-- before your own cutscene starts
exports['Agency-Repairkit']:CloseMenu()IsMenuOpen()Zwraca true, gdy menu jest otwarte.
Pokaż przykład
Sprawdza, czy menu jest otwarte, zanim pojawi się twój własny interfejs.
if exports['Agency-Repairkit']:IsMenuOpen() then
return -- the player is busy in the repair kit menu
endEksporty serwera
UseKit(source, kit)Uruchamia kit dla gracza tak, jakby przedmiot został użyty, ze wszystkimi sprawdzeniami. Zwraca true albo false i powód. Do niestandardowych ekwipunków i sklepów.
Pokaż przykład
Uruchamia roadside kit dla gracza z poziomu niestandardowego ekwipunku.
-- your own inventory: start the repair when the item is used
local ok, reason = exports['Agency-Repairkit']:UseKit(source, 'basic')
if not ok then print('Repair refused: ' .. tostring(reason)) endGiveKit(source, kit, amount)Dodaje zestawy do ekwipunku gracza za pośrednictwem wykrytego ekwipunku. Zwraca true w przypadku powodzenia.
Pokaż przykład
Daje graczowi dwa zestawy do opon za pośrednictwem wykrytego ekwipunku.
-- a shop NPC sells two tyre kits
exports['Agency-Repairkit']:GiveKit(source, 'tyre', 2)IsRepairing(source)Wartość true, gdy ten gracz pracuje przy pojeździe.
Pokaż przykład
Pomija zadanie, gdy gracz naprawia.
if exports['Agency-Repairkit']:IsRepairing(source) then
return -- no new job task while the player is busy
endGetKits()Każdy skonfigurowany zestaw wraz z przedmiotem, etykietą, rodzajem pracy i czasem trwania.
Pokaż przykład
Wyświetla listę każdego zestawu wraz z jego przedmiotem i etykietą.
for name, kit in pairs(exports['Agency-Repairkit']:GetKits()) do
print(name, kit.item, kit.label, kit.duration)
enduseKit(event, item, inventory, slot, data)Eksport przedmiotu ox_inventory. Wpisy przedmiotów w install/ox_inventory.lua wskazują na niego; nie jest przeznaczony do bezpośredniego wywoływania.
Pokaż przykład
Wpis przedmiotu, który łączy ox_inventory z zestawami.
-- ox_inventory/data/items.lua
['agencyrepairkit'] = {
label = 'Roadside Repair Kit', weight = 1500, consume = 0,
server = { export = 'Agency-Repairkit.useKit' },
},Eventy
agency-repairkit:repairedWywoływane na serwerze z parametrami (source, netId, kit) po zakończeniu naprawy i zużyciu zestawu naprawczego. Przydatne do logów, płatności lub postępu prac.
Pokaż przykład
Rejestruje każdą ukończoną naprawę na serwerze.
AddEventHandler('agency-repairkit:repaired', function(src, netId, kit)
print(('%s finished %s on vehicle %s'):format(GetPlayerName(src), kit, netId))
end)agency-repairkit:client:repairedWywoływane u klienta naprawiającego gracza z parametrami (netId, kit) po zakończeniu naprawy.
Pokaż przykład
Reaguje na kliencie naprawiającego gracza.
AddEventHandler('agency-repairkit:client:repaired', function(netId, kit)
if kit == 'advanced' then
-- play a sound or advance a job step
end
end)agency-repairkit:client:damageLevelWywoływane u klienta kierowcy z parametrami (level, vehicle) za każdym razem, gdy zmienia się poziom uszkodzeń: ok, light, medium, heavy lub critical.
Pokaż przykład
Odwzorowuje poziom uszkodzeń pojazdu, którym kieruje gracz.
AddEventHandler('agency-repairkit:client:damageLevel', function(level, vehicle)
if level == 'critical' then
-- offer the tow-truck job
end
end)09Agency-Vehiclekeys V2
Uniwersalne kluczyki do pojazdów z brelokiem i pilotem, kluczykami trwałymi i tymczasowymi, kluczykami frakcyjnymi, wytrychami i odpalaniem na krótko z powiadomieniami policji oraz panelem administratora.
Pasuje do garaży, komisów i wypożyczalni wydających kluczyki, skryptów prac z własnymi pojazdami, skryptów napadów i kradzieży aut sprawdzających lub dających kluczyki, interfejsów HUD monitorujących silnik oraz menu kołowych lub telefonów otwierających pęk kluczy.
Eksporty klienta
HasKeys(plate)Wartość true, gdy gracz posiada klucz do tej tablicy rejestracyjnej: właścicielski, współdzielony lub tymczasowy. Pojazdy służbowe otwierają się według modelu i nie są tutaj uwzględniane.
Pokaż przykład
Sprawdza klucz, zanim twój skrypt pozwoli graczowi użyć pojazdu.
if exports['Agency-Vehiclekeys']:HasKeys(GetVehicleNumberPlateText(vehicle)) then
-- the player may drive this car
endGetKeys()Wszystkie klucze gracza jako lista { plate, kind }. kind to owner, shared lub temp.
Pokaż przykład
Wyświetla listę wszystkich kluczy gracza, na przykład dla aplikacji w telefonie.
for _, key in ipairs(exports['Agency-Vehiclekeys']:GetKeys()) do
print(key.plate, key.kind)
endToggleLock(vehicle)Blokuje lub odblokowuje pojazd, do którego gracz ma klucz, z tą samą animacją i weryfikacją co G. Przy braku pojazdu używany jest najbliższy w zasięgu.
Pokaż przykład
Blokuje lub odblokowuje najbliższy samochód z własnego menu kołowego.
-- an entry in your radial menu
exports['Agency-Vehiclekeys']:ToggleLock()ToggleEngine()Uruchamia lub zatrzymuje silnik pojazdu, którym kieruje gracz, tak jak U.
Pokaż przykład
Uruchamia lub zatrzymuje silnik z poziomu własnego menu lub HUD pojazdu.
exports['Agency-Vehiclekeys']:ToggleEngine()OpenMenu()Otwiera brelok na klucze, na przykład z menu kołowego lub aplikacji w telefonie.
Pokaż przykład
Otwiera brelok na klucze z własnego menu kołowego lub aplikacji w telefonie.
-- an entry in your radial menu
exports['Agency-Vehiclekeys']:OpenMenu()CloseMenu()Zamyka pęk kluczy i oddaje mysz do gry.
Pokaż przykład
Zamyka pęk kluczy przed otwarciem twojego własnego menu.
exports['Agency-Vehiclekeys']:CloseMenu()IsMenuOpen()Wartość true, gdy brelok na klucze jest otwarty.
Pokaż przykład
Zapobiega otwieraniu twojego menu na breloku z kluczami.
if not exports['Agency-Vehiclekeys']:IsMenuOpen() then
-- open your own menu
enduseLockpick()Rozpoczyna próbę użycia wytrycha przy aucie przed graczem lub odpalanie na krótko na miejscu kierowcy. Przeznaczone dla przedmiotów ox_inventory: client = { export = 'Agency-Vehiclekeys.useLockpick' }.
Pokaż przykład
Pozwala graczom używać lockpicka z poziomu menu ox_inventory.
-- ox_inventory/data/items.lua
['lockpick'] = {
label = 'Lockpick',
client = { export = 'Agency-Vehiclekeys.useLockpick' },
},Eksporty serwera
GiveKeys(source, plate, mode, hours)Przyznaje kluczyk. Tryb 'temp' (domyślny) to kluczyk tymczasowy, opcjonalnie na określoną liczbę godzin, 'perm' to kluczyk stały. Działa source lub identyfikator.
Pokaż przykład
Daje tymczasowy kluczyk, na przykład gdy auto zostanie wypożyczone lub zespawnowane przez pracę.
-- a rental that lasts two hours
exports['Agency-Vehiclekeys']:GiveKeys(source, plate, 'temp', 2)RemoveKeys(source, plate)Odbiera współdzielony lub tymczasowy klucz. Zwraca true, jeśli taki istniał.
Pokaż przykład
Odbiera klucz po zakończeniu wynajmu lub wykonaniu pracy.
exports['Agency-Vehiclekeys']:RemoveKeys(source, plate)HasKeys(source, plate)Wartość true, gdy gracz posiada klucz do tej tablicy rejestracyjnej, w tym klucze służbowe do pobliskiego pojazdu.
Pokaż przykład
Sprawdza na serwerze, czy gracz naprawdę posiada klucz.
if not exports['Agency-Vehiclekeys']:HasKeys(source, plate) then
return -- no key, no delivery
endSetOwner(source, plate)Czyni gracza właścicielem rejestracji dla garaży i sklepów na serwerach standalone. Poprzedni właściciel traci klucz.
Pokaż przykład
Czyni kupującego właścicielem pojazdu na serwerach standalone.
-- your standalone vehicle shop, after the purchase
exports['Agency-Vehiclekeys']:SetOwner(source, plate)RemoveOwner(plate)Usuwa właściciela zapisanego przez ten skrypt dla danej tablicy rejestracyjnej.
Pokaż przykład
Usuwa zapisanego właściciela, gdy auto zostanie sprzedane lub zezłomowane.
exports['Agency-Vehiclekeys']:RemoveOwner(plate)GetOwner(plate)Identyfikator właściciela oraz źródło jego pochodzenia: 'framework' dla posiadanych pojazdów z QBCore, Qbox lub ESX, 'store' dla właścicieli zapisanych przez ten skrypt.
Pokaż przykład
Wyszukuje właściciela tablicy rejestracyjnej, do narzędzi policyjnych lub skryptów odholowywania pojazdów.
local owner, from = exports['Agency-Vehiclekeys']:GetOwner(plate)
print(owner, from) -- identifier, 'framework' or 'store'GetKeyHolders(plate)Wszyscy inni posiadający klucz do tablicy jako lista { identifier, kind, name, expires }.
Pokaż przykład
Pokazuje każdego, kto posiada klucz do samochodu, na przykład w komputerze policyjnym.
for _, h in ipairs(exports['Agency-Vehiclekeys']:GetKeyHolders(plate)) do
print(h.name, h.kind)
endSetVehicleLocked(vehicle, locked)Blokuje lub odblokowuje pojazd dla wszystkich, bez sprawdzania klucza. Dla skryptów, które muszą otworzyć auto.
Pokaż przykład
Otwiera lub zamyka samochód dla każdego bez sprawdzania kluczyka.
-- a heist script opens the car for the crew
exports['Agency-Vehiclekeys']:SetVehicleLocked(vehicle, false)IsVehicleLocked(vehicle)Wartość true, gdy pojazd jest zamknięty.
Pokaż przykład
Odczytuje stan zamka na serwerze.
if exports['Agency-Vehiclekeys']:IsVehicleLocked(vehicle) then
-- the car is closed
endGetFramework()Framework wykryty przez skrypt: qbcore, esx lub standalone.
Pokaż przykład
Sprawia, że twój skrypt korzysta z frameworka wykrytego przez skrypt kluczyków.
if exports['Agency-Vehiclekeys']:GetFramework() == 'standalone' then
-- give the key yourself
endEventy
Agency:Keys:GiveServerProsi o tymczasowy kluczyk do tablicy rejestracyjnej, tak jak robią to Agency Garage i Agency Vehicleshop. Wywołaj to z poziomu klienta z numerem rejestracyjnym. Pojazd musi znajdować się obok gracza lub należeć do niego.
Pokaż przykład
Prosi o kluczyk do pojazdu, który właśnie zespawnował się obok gracza.
-- client side, after your garage spawned the car
TriggerServerEvent('Agency:Keys:GiveServer', GetVehicleNumberPlateText(vehicle))qb-vehiclekeys:server:AcquireVehicleKeysGłówne zdarzenie qb-vehiclekeys, interpretowane w ten sam sposób, dzięki czemu garaże i sklepy stworzone dla qb-vehiclekeys nadal działają.
Pokaż przykład
Skrypty napisane dla qb-vehiclekeys działają dalej bez żadnych zmian.
TriggerServerEvent('qb-vehiclekeys:server:AcquireVehicleKeys', plate)vehiclekeys:client:SetOwnerEvent clienta wywoływany przez wiele garaży i sklepów po zespawnowaniu auta. Zapewnia tymczasowy kluczyk do tej rejestracji po takich samych sprawdzeniach na serwerze.
Pokaż przykład
Event, który wiele garaży wywołuje po zespawnowaniu auta, daje graczowi kluczyk.
TriggerEvent('vehiclekeys:client:SetOwner', plate)qb-vehiclekeys:client:AddKeysZdarzenie klienta qb-vehiclekeys do przekazywania kluczyków, interpretowane w ten sam sposób.
Pokaż przykład
Rozdaje klucz tak, jak robiło to qb-vehiclekeys.
TriggerEvent('qb-vehiclekeys:client:AddKeys', plate)simple_carkeys:client:toggleEngineWywoływane u klienta przy uruchamianiu lub gaszeniu silnika klawiszem, dzięki czemu interfejsy HUD, takie jak Agency-Hud, mogą śledzić stan silnika.
Pokaż przykład
Sprawia, że twój HUD reaguje na włączenie lub wyłączenie silnika kluczykiem.
AddEventHandler('simple_carkeys:client:toggleEngine', function()
-- update the engine icon of your HUD
end)10Agency-Vending
Automaty sprzedające z własnością gracza, płatnością gotówką lub kartą AgencyPay.
Połącz z exportem AgencyPay Agency-Phone dla zakupów kartą. Używaj w pracach, gdzie gracze posiadają lokalizacje vending (stacje paliw, biura, apartamenty), aby generować dochód pasywny.
Eventy
agency-vending:notifyOgolny dispatcher powiadomien z servera dla resource vending.
Pokaż przykład
Wysyla ogolne powiadomienie tematu vending do gracza po zakupie.
-- Plug a vending receipt into a custom logger via notify event
TriggerClientEvent('agency-vending:notify', src, 'success', 'Receipt #4821 saved to wallet')agency-vending:startAgencyPayInicjuje checkout AgencyPay przez integracje agency-phone z metadanymi sprzedawcy.
Pokaż przykład
Rozpoczyna platnosc Agency Pay przez telefon z danymi sprzedawcy z kiosku.
-- Pop a phone Agency Pay flow when a player taps a kiosk
TriggerClientEvent('agency-vending:startAgencyPay', src, { merchant = 'Sprunk Co', amount = 4.50, ref = 'flash_sale_01' })agency-vending:buyMachineResultWynik zakupu maszyny przekazany do NUI dla informacji zwrotnej.
Pokaż przykład
Przekazuje wynik zakupu maszyny do niestandardowego NUI sklepu jako feedback.
-- Forward buy-machine outcome to a custom shop UI
TriggerClientEvent('agency-vending:buyMachineResult', src, { success = true, machineId = 102 })agency-vending:machineCreatedBroadcast o utworzeniu nowej maszyny gracza; aktualizuje lokalna cache i powiadamia wlasciciela.
Pokaż przykład
Nadaje do wszystkich klientow nowo utworzony automat gracza.
-- Cache new owner-machine instantly when business script registers it
TriggerClientEvent('agency-vending:machineCreated', -1, { id = 142, owner = identifier, type = 'sprunk' })agency-vending:openManagementVerifiedOtwarcie zweryfikowane przez server menu zarzadzania wlasciciela z itemami, zarobkami i etykieta.
Pokaż przykład
Otwiera zweryfikowany interfejs zarzadzania z przedmiotami i przychodami po auth.
-- After server-side ownership check open management menu with stock
TriggerClientEvent('agency-vending:openManagementVerified', src, { items = items, earnings = 1240, label = 'East LS Sprunk' })agency-vending:openOwnedListOtwiera NUI przegladu wlasciciela ze wszystkimi maszynami gracza i nazwami ulic.
Pokaż przykład
Otwiera NUI przegladu wlasciciela z lista wszystkich automatow gracza.
-- Hotkey opens the owner overview NUI listing all owned machines
TriggerClientEvent('agency-vending:openOwnedList', src)agency-vending:spawnMachineCreatedBroadcast spawnera admina o utworzeniu nowej encji maszyny.
Pokaż przykład
Powiadamia wszystkich klientow, ze admin zrodzil nowy automat.
-- Custom mapping tool tracks newly admin-spawned machine
TriggerClientEvent('agency-vending:spawnMachineCreated', -1, { entity = netId, model = 'prop_vend_soda_01', id = 7 })agency-vending:spawnMachineDeletedBroadcast spawnera admina o usunieciu spawnowanej encji maszyny.
Pokaż przykład
Mowi wszystkim klientom, ze admin usunal wczesniej zrodzony automat.
-- Mapping tool removes a deleted spawned machine from cache
TriggerClientEvent('agency-vending:spawnMachineDeleted', -1, 7)agency-vending:openSpawnerUIOtwiera NUI spawnera admina po pomyslnej weryfikacji uprawnien po stronie servera.
Pokaż przykład
Otwiera NUI spawnera admina do umieszczania automatow w swiecie.
-- Custom command opens the admin spawner UI after permission passes
TriggerClientEvent('agency-vending:openSpawnerUI', src)agency-vending:buyMachineGracz kupuje automat sprzedazowy danego typu w podanych coords/heading.
Pokaż przykład
Gracz kupuje automat sprunk w swojej obecnej lokalizacji od NPC.
-- Custom NPC sells vending machines via dialog
local coords = GetEntityCoords(PlayerPedId())
local heading = GetEntityHeading(PlayerPedId())
TriggerServerEvent('agency-vending:buyMachine', 'sprunk', coords, heading)agency-vending:requestOwnedListWywolujacy pobiera liste swoich maszyn dla UI przegladu wlasciciela.
Pokaż przykład
Pobiera z serwera liste automatow nalezacych do gracza.
-- Refresh owner overview after a balance/restock action elsewhere
TriggerServerEvent('agency-vending:requestOwnedList')agency-vending:requestMachinesWywolujacy zada od servera pelnej synchronizacji wszystkich maszyn graczy.
Pokaż przykład
Pobiera z serwera pelna swieza synchronizacje wszystkich automatow graczy.
-- Scan for nearby machines after teleport finished
TriggerServerEvent('agency-vending:requestMachines')agency-vending:requestManagementOtwarcie zweryfikowane przez server UI zarzadzania dla wlasnej maszyny.
Pokaż przykład
Pobiera zweryfikowany przez serwer interfejs zarzadzania klikietego automatu.
-- Owner UI requests verified management menu for a clicked machine
TriggerServerEvent('agency-vending:requestManagement', machineId)agency-vending:requestSpawnedMachinesWywolujacy pobiera liste maszyn spawnowanych przez admina dla UI spawnera.
Pokaż przykład
Pobiera liste wszystkich automatow zrodzonych przez admina dla UI spawnera.
-- Admin spawner UI fetches all currently spawned machines
TriggerServerEvent('agency-vending:requestSpawnedMachines')agency-vending:adminSpawnMachineAdmin umieszcza po stronie servera nowy prop automatu sprzedazowego po weryfikacji uprawnien.
Pokaż przykład
Admin tworzy nowy prop automatu ze przekaskami po weryfikacji uprawnien.
-- Admin places a snack machine via custom slash command
TriggerServerEvent('agency-vending:adminSpawnMachine', 'snack', vector3(120.5, -1280.7, 29.3), 90.0)agency-vending:adminDeleteSpawnedAdmin usuwa po stronie servera wczesniej zspawnowany prop automatu sprzedazowego.
Pokaż przykład
Admin usuwa po stronie serwera wczesniej zrodzony prop automatu.
-- Admin removes a misplaced machine via map editor button
TriggerServerEvent('agency-vending:adminDeleteSpawned', spawnedId)11Agency-Admin
Pełnoprawny panel administratora z UI szklanym, czatem AgencyAI i ponad 60 narzędziami.
Eventy są idealne jako "prymitywy" dla anti-cheata, botów moderacyjnych lub automatycznych narzędzi, wywołuj je ze swojego skryptu serwera, by freeze/kick/notify bez pisania własnego UI.
Eventy
agency-admin:client:refreshStaffRanksWymusza na kliencie ponowne pobranie danych rang personelu.
Pokaż przykład
Odswieza cache rang zalogi dla kazdego admina online po awansie.
-- After auto-promotion, refresh staff ranks for all online admins
for _, src in ipairs(GetPlayers()) do
TriggerClientEvent('agency-admin:client:refreshStaffRanks', tonumber(src))
endagency-admin:client:freezeTimeZatrzymuje lub wznawia czas swiata na kliencie o podanej godzinie/minucie.
Pokaż przykład
Anti-cheat zatrzymuje zegar swiata w poludnie podczas sprawdzania gracza.
-- Anti-cheat halts world time during an investigation
local hour, minute = 12, 0
TriggerClientEvent('agency-admin:client:freezeTime', src, true, hour, minute)agency-admin:client:dashboardValueWysyla pojedyncza wartosc karty dashboardu (np. licznik live) do UI panelu.
Pokaż przykład
Wysyla liczbe graczy online na zywo do karty panelu admina.
-- Stream live online player count to admin dashboard cards
local count = #GetPlayers()
TriggerClientEvent('agency-admin:client:dashboardValue', adminSrc, 'players_online', count)agency-admin:client:teleportToCoordsTeleportuje wywolujacego do podanych wspolrzednych swiata.
Pokaż przykład
Teleportuje gracza do zapisanych wspolrzednych po zdarzeniu odrodzenia.
-- Job script teleports a player back to last save point on respawn
local coords = vector3(-1037.7, -2737.6, 20.16)
TriggerClientEvent('agency-admin:client:teleportToCoords', src, coords)agency-admin:client:announceWyświetla baner ogłoszenia na całym serwerze.
Pokaż przykład
Nadaje na caly serwer baner z ogloszeniem od nazwanego nadawcy systemowego.
-- Event bot announces a community contest start
TriggerClientEvent('agency-admin:client:announce', -1, 'Event Crew', 'Heist contest starts in 5 minutes!')agency-admin:client:notifyWysyła powiadomienie do konkretnego administratora.
Pokaż przykład
Wysyla stylizowane powiadomienie do gracza, gdy jego wniosek zostanie zatwierdzony.
-- Whitelist bot informs a player they passed the application
TriggerClientEvent('agency-admin:client:notify', src, 'Whitelist', 'Application approved!', 'success', 8000)agency-admin:client:freezeZamraża wybranego gracza w miejscu.
Pokaż przykład
Zamraza podejrzanego gracza, by zaloga mogla zbadac sytuacje bez ruchu.
-- Anti-cheat freezes a suspect player while staff investigates
TriggerClientEvent('agency-admin:client:freeze', suspectSrc, true)agency-admin:client:healPrzywraca HP/pancerz celu.
Pokaż przykład
Calkowicie leczy pacjenta po zakonczeniu jego leczenia medycznego RP.
-- Medic job script fully heals the player after RP treatment ends
TriggerClientEvent('agency-admin:client:heal', patientSrc)agency-admin:client:reviveWskrzesza wybranego gracza.
Pokaż przykład
Ozywia powalonego gracza po pomyslnym ukonczeniu minigry EMS.
-- EMS revive minigame succeeds, server marks player alive again
TriggerClientEvent('agency-admin:client:revive', downedSrc)agency-admin:client:teleportTeleportuje lokalnego gracza do podanego wektora wspolrzednych.
Pokaż przykład
Teleportuje lokalnego gracza do podanych wspolrzednych.
-- Tutorial system teleports new player to spawn pad on first join
local coords = vector3(245.7, -871.5, 30.5)
TriggerClientEvent('agency-admin:client:teleport', src, coords)agency-admin:client:openMenuOtwiera UI panelu administratora (wymaga uprawnienia ACE).
Pokaż przykład
Otwiera glowny interfejs panelu admina dla zalogi przy wejsciu na sluzbe.
-- Auto-open admin panel for staff right after they switch on duty
TriggerClientEvent('agency-admin:client:openMenu', src)agency-admin:client:openToolsMenuWyzwalacz z servera otwierajacy podmenu narzedzi admina.
Pokaż przykład
Otwiera podmenu narzedzi admina po nacisnieciu skrotu zalogi.
-- Quick-action keybind opens the admin tools sub-menu
TriggerClientEvent('agency-admin:client:openToolsMenu', src)agency-admin:client:closeMenuWyzwalacz z servera zamykajacy UI panelu admina.
Pokaż przykład
Wymusza zamkniecie UI panelu admina, gdy admin jest sprawdzany.
-- Force-close the panel when admin gets reported themselves
TriggerClientEvent('agency-admin:client:closeMenu', adminSrc)agency-admin:client:openClothingMenuWyzwalacz z servera otwierajacy graczowi menu ubioru w grze.
Pokaż przykład
Otwiera menu ubran po zakupie stroju u krawca przez gracza.
-- Tailor NPC opens clothing menu after a uniform purchase
TriggerClientEvent('agency-admin:client:openClothingMenu', src)agency-admin:server:requestPlayersPobiera biezaca liste graczy online dla panelu admina.
Pokaż przykład
Pobiera z serwera najnowsza liste graczy online dla panelu.
-- Custom dashboard widget refreshes its players list
TriggerServerEvent('agency-admin:server:requestPlayers')agency-admin:server:requestPanelPermissionsPobiera tabele uprawnien panelu dla edytora rang.
Pokaż przykład
Pobiera z serwera tabele uprawnien panelu dla edytora rang.
-- Permission editor needs the latest panel permission map
TriggerServerEvent('agency-admin:server:requestPanelPermissions')agency-admin:server:requestStaffRanksPobiera zestaw danych rang personelu dla panelu.
Pokaż przykład
Pobiera pelny zestaw rang zalogi do niestandardowego widgetu CRM.
-- Sync staff ranks dataset into a custom CRM widget
TriggerServerEvent('agency-admin:server:requestStaffRanks')agency-admin:server:createRankTworzy nowa range personelu z metadanymi i uprawnieniami.
Pokaż przykład
Tworzy nowa range zalogi z synchronizacji zewnetrznego portalu HR.
-- Sync rank from external HR portal -> create matching staff rank
TriggerServerEvent('agency-admin:server:createRank', { name = 'Senior Mod', color = '#a855f7', priority = 50 })agency-admin:server:requestMyPermissionsWywolujacy pobiera wlasny rozwiazany zestaw uprawnien panelu.
Pokaż przykład
Pobiera wlasny rozwiazany zestaw uprawnien panelu przy otwarciu UI.
-- Fetch caller's resolved permission set before showing dev tools
TriggerServerEvent('agency-admin:server:requestMyPermissions')agency-admin:server:requestSyncWywolujacy prosi server o wyslanie standardowego sync payloadu (sluzba/uprawnienia/itp.).
Pokaż przykład
Wymusza na serwerze wysylke standardowego pakietu sync duty/perms do gracza.
-- Force a fresh sync after the player reconnects
TriggerServerEvent('agency-admin:server:requestSync')agency-admin:server:requestDutyRankWywolujacy pobiera swoje aktualne informacje o randze admin-duty.
Pokaż przykład
Pobiera aktualny rang duty admina dla niestandardowej nakladki HUD.
-- Display admin's duty rank on a custom HUD overlay
TriggerServerEvent('agency-admin:server:requestDutyRank')agency-admin:server:requestSpawnedObjectsWywolujacy pobiera liste obiektow swiata spawnowanych przez admina.
Pokaż przykład
Pobiera liste obiektow swiata zrodzonych przez admina dla nakladki minimapy.
-- Map editor needs to draw all admin-spawned objects on a minimap
TriggerServerEvent('agency-admin:server:requestSpawnedObjects')12Agency-Anticheat
Anticheat do FiveM, który poznaje Twój serwer. Sprawdza każdego gracza po stronie serwera, gdzie cheat nie ma się gdzie ukryć: godmode, super skok, mnożniki obrażeń, teleporty i zakazana broń są odczytywane z zsynchronizowanego stanu gry. Kontrole krzyżowe wychwytują to, co umyka pojedynczym wartościom: śmiertelny cios, który ofiara przeżywa, zabicie z pistoletu z 500 metrów, statystyki celowania i kilka słabych sygnałów, które razem tworzą wzorzec. Ochrona świata anuluje zespawnowane czołgi, eksplozje, ogień i spam cząsteczek, zanim ktokolwiek je zobaczy. Bany obejmują identyfikatory i tokeny sprzętowe, więc nowe konto na tym samym komputerze zostaje na zewnątrz, a lockdown sam zamyka serwer, gdy atakuje kilku cheaterów naraz. Świeża instalacja działa 48 godzin w trybie Learning i nikogo nie karze. Własny panel w grze (/acpanel) pokazuje wszystko na żywo i wykonuje każdą akcję, na dowolnym serwerze. Z Agency Admin jego admini są automatycznie wyłączeni z kontroli, a ta sama strona znajduje się także w tym panelu; z AgencyMod bany trafiają również na Twój Discord. Bez bazy danych, bez subskrypcji, 25 języków, QBCore, Qbox, ESX lub standalone.
Eksporty serwera
AllowTeleport(source: number, seconds?: number)Wywołaj to tuż przed przeniesieniem gracza przez skrypt, wtedy przeskok nie zostanie uznany za teleportację. Domyślnie 5 sekund.
SetExempt(source: number, seconds: number)Zwalnia gracza ze wszystkich kontroli na pewien czas, na przykład podczas eventu z godmode. 0 kończy działanie.
Flag(source: number, detail: string)Twoja własna detekcja. Liczy się jak każde inne trafienie, w ramach detekcji external.
BanPlayer(source: number, reason: string, duration?: number, by?: string)Banuje gracza online na podstawie identyfikatorów i tokenów sprzętowych. Czas trwania w sekundach, 0 oznacza bana na stałe. Zwraca ban ID.
KickPlayer(source: number, reason: string, by?: string)Wyrzuca gracza i rejestruje to na Discordzie.
Unban(banId: string, by?: string)Zdejmuje bana, na przykład AC-7K3P9.
SetMode(mode: string)Przełącza tryb na żywo: learning, relaxed, balanced lub strict.
SetDetection(key: string, enabled: boolean)Włącza lub wyłącza dane wykrywanie na żywo.
SetLockdown(on: boolean, by?: string)Rozpoczyna lub kończy lockdown.
IsExempt(source: number)Zwraca, czy gracz jest zwolniony ze sprawdzania.
IsKnownPlayer(source: number)Zwraca, czy gracz grał tutaj wystarczająco długo bez trafień, aby uchodzić za znanego.
GetStatus()Zwraca wszystko, co pokazuje panel: tryb, warstwy, wiedzę, dzisiejsze statystyki, obciążenie serwera i każdą detekcję z przypisaną do niej regułą.
GetDetections(limit?: number)Zwraca najnowsze wykrycia, od najnowszych.
GetBans()Zwraca każdego aktywnego bana wraz z dowodami.
GetPlayers()Zwraca graczy online z oceną ryzyka i otwartymi ostrzeżeniami, od najwyższego ryzyka.
Eventy
Agency-Anticheat:detectionWywoływane przy każdym trafieniu z parametrami player, detection, detail, action i strikes.
Agency-Anticheat:bannedWywoływane po każdym banie wraz z pełnym wpisem bana.
Agency-Anticheat:unbannedWywoływane po zdjęciu bana.
Agency-Anticheat:lockdownWywoływane, gdy rozpoczyna się lub kończy lockdown.
Agency-Anticheat:learnedWywoływane, gdy anticheat zarejestruje nowy punkt teleportacji na Twoim serwerze.
13Agency-Reports V2
Nowoczesny system zgłoszeń z czatem na żywo i odpowiedziami wspieranymi przez AI.
Używaj jako kręgosłup "ticketów wsparcia" dla całego serwera. Twoje skrypty mogą automatycznie otwierać zgłoszenia, gdy coś pójdzie nie tak (zaklinowane pojazdy, zduplikowane przedmioty, nieudane zapisy SQL) do przeglądu admina.
Eventy
agency-reports:client:notifyWysyła powiadomienie o "nowym zgłoszeniu" do konkretnego administratora.
Pokaż przykład
Powiadomienie serwera respektujace preferencje powiadomien UI gracza.
-- Server tells client a new admin reply landed
TriggerClientEvent('agency-reports:client:notify', source, 'New reply on your report', 'info')agency-reports:client:openPlayerUIOtwiera UI zgłoszeń po stronie gracza.
Pokaż przykład
Otwiera UI zgloszen z kategoriami, otwartymi zgloszeniami i ustawieniami AI/Discord.
-- Open the player report UI on a custom keybind
local categories = { 'Bug', 'Player report', 'Stuck' }
TriggerEvent('agency-reports:client:openPlayerUI', categories, {}, {}, {})agency-reports:client:openAdminUIOtwiera listę zgłoszeń po stronie administratora.
Pokaż przykład
Otwiera panel administratora ze pelnym zbiorem zgloszen.
-- Force-open the admin reports dashboard from a staff command
TriggerEvent('agency-reports:client:openAdminUI', { reports = {}, total = 0 })agency-reports:client:teleportTeleportuje wywolujacego admina do podanych wspolrzednych (dla akcji goto).
Pokaż przykład
Teleportuje admina do podanych wspolrzednych dla akcji goto.
-- Goto-action: teleport the responding admin to the report scene
TriggerEvent('agency-reports:client:teleport', vector3(-247.6, -2010.2, 30.1))agency-reports:client:healSelfW pelni leczy peda wywolujacego admina.
Pokaż przykład
W pelni leczy peda admina po zajeciu sie zgloszeniem.
-- Heal admin after a hostile scene to keep them in service
TriggerEvent('agency-reports:client:healSelf')agency-reports:server:submitReportSkłada nowe zgłoszenie spoza UI.
Pokaż przykład
Gracz wysyla nowe zgloszenie z tytulem, kategoria i opisem do bazy.
-- Player submits a quick stuck-at-pier report
TriggerServerEvent('agency-reports:server:submitReport', 'Stuck at pier', 'Stuck', 'Vehicle wedged under pier - cant move')agency-reports:server:requestPlayerDataWywolujacy pobiera wlasny payload reportu; opcjonalnie otwiera UI gracza po odpowiedzi.
Pokaż przykład
Wywolujacy pyta o wlasne dane zgloszen i opcjonalnie otwiera UI gracza.
-- Pull fresh data and (optionally) auto-open the player UI
TriggerServerEvent('agency-reports:server:requestPlayerData', true)agency-reports:server:requestAdminDataAdmin pobiera pelen zestaw reportow i otwiera dashboard admina, jesli ma uprawnienia.
Pokaż przykład
Admin pyta o pelny zbior zgloszen i otwiera panel admina jesli ma uprawnienia.
-- Admin staff opens the dashboard after going on duty
TriggerServerEvent('agency-reports:server:requestAdminData')agency-reports:server:sendChatMessageWysyła wiadomość czatu do otwartego zgłoszenia.
Pokaż przykład
Publikuje wiadomosc chat w konkretnym watku zgloszenia dla admina lub gracza.
-- Player posts a follow-up chat message into report #42
TriggerServerEvent('agency-reports:server:sendChatMessage', 42, 'Still stuck, any ETA?')14Agency-Doorlock
Zamykane drzwi z konfiguracją w grze i dostępem do poszczególnych drzwi według pracy, gangu lub gracza.
Używaj tego w skryptach mieszkań, posiadłości lub kluczy: daj graczowi klucz do jednych konkretnych drzwi i odbierz go w razie potrzeby. Klucze są zapisywane w bazie danych i synchronizowane na żywo, a nikt nie potrzebuje uprawnień administratora.
Eksporty klienta
ToggleNearestDoor()Locks or unlocks the door the player is standing at. The server checks access exactly like the E key.
Pokaż przykład
Dodaje własny klawisz (L), który blokuje lub odblokowuje drzwi, przy których stoi gracz. Dostęp jest nadal sprawdzany po stronie serwera.
RegisterCommand('lockdoor', function()
-- same as pressing E at the door; the server still checks access
exports['Agency-Doorlock']:ToggleNearestDoor()
end)
RegisterKeyMapping('lockdoor', 'Lock / unlock door', 'keyboard', 'L')GetNearbyDoorId()Returns the id of the door the player is standing at, or nil.
Pokaż przykład
Odczytuje, przy których drzwiach stoi gracz, np. aby połączyć te drzwi z domem we własnym skrypcie.
local doorId = exports['Agency-Doorlock']:GetNearbyDoorId()
if doorId then
-- e.g. let the house owner pick this door when setting up keys
TriggerServerEvent('myhousing:server:linkDoor', doorId)
endGetAllDoors()Returns every door as { id, label, locked, static, leaves, access }. The PIN is never included.
Pokaż przykład
Wyświetla listę wszystkich drzwi z ich id i stanem zablokowania. Kod PIN nigdy nie jest częścią danych.
for _, door in ipairs(exports['Agency-Doorlock']:GetAllDoors()) do
print(('#%d %s - %s'):format(door.id, door.label, door.locked and 'locked' or 'open'))
endGetDoorCoords(doorId: number)Returns the position of the first door leaf as { x, y, z }, or nil.
Pokaż przykład
Ustawia punkt nawigacji GPS do drzwi, np. aby poprowadzić gracza do jego nowego domu.
local c = exports['Agency-Doorlock']:GetDoorCoords(doorId)
if c then
SetNewWaypoint(c.x, c.y)
endEksporty serwera
AddPlayerAccess(doorId: number, player: number|string)Gives one player access to one door. Saved to the database and synced to every player at once. Returns true, or false plus a reason. true, "unchanged" if the player already had access.
Pokaż przykład
Właściciel domu przekazuje klucz innemu graczowi. Twój skrypt weryfikuje własność, Agency-Doorlock zapisuje klucz i synchronizuje go na żywo. Nikt nie dostaje uprawnień administratora.
RegisterNetEvent('myhousing:server:giveKey', function(targetId, houseId)
local src = source
if not IsHouseOwner(src, houseId) then return end -- your own check
local doorId = GetHouseDoorId(houseId) -- id from /adoorlock
local ok, reason = exports['Agency-Doorlock']:AddPlayerAccess(doorId, tonumber(targetId))
if not ok then
print(('Key not given: %s'):format(reason))
end
end)RemovePlayerAccess(doorId: number, player: number|string)Takes the access away again. Saved and synced at once. Returns true, or false plus a reason. true, "unchanged" if there was nothing to remove.
Pokaż przykład
Odbiera klucz, np. gdy lokator się wyprowadza. Dzięki citizenid działa to również wtedy, gdy gracz jest offline.
-- works while the player is offline: pass the citizenid
local ok, reason = exports['Agency-Doorlock']:RemovePlayerAccess(doorId, 'ABC12345')HasPlayerAccess(doorId: number, player: number|string)true if the player is on the door's player list. Job, gang and "everyone" access are not counted.
Pokaż przykład
Sprawdza, czy gracz ma osobisty klucz do tych drzwi. Dostęp z racji pracy, gangu i "dla każdego" nie jest wliczany.
if exports['Agency-Doorlock']:HasPlayerAccess(doorId, source) then
TriggerClientEvent('myhousing:client:showKeyMenu', source, doorId)
endGetPlayerAccess(doorId: number)Returns a copy of the door's player list, or nil if the door does not exist.
Pokaż przykład
Wyświetla listę wszystkich osób posiadających klucz do drzwi, np. dla menu "zarządzaj kluczami". Zwraca kopię, jej modyfikacja nic nie zmienia.
for _, citizenid in ipairs(exports['Agency-Doorlock']:GetPlayerAccess(doorId) or {}) do
print('Key holder: ' .. citizenid)
endIsReady()false while the doors are still loading from the database after a start, true afterwards.
Pokaż przykład
Czeka na załadowanie drzwi po starcie serwera, zanim twój skrypt rozda klucze.
CreateThread(function()
while not exports['Agency-Doorlock']:IsReady() do Wait(500) end
-- doors are loaded, safe to grant keys from your own database now
end)Eventy
agency-doorlock:accessChangedFired on the server after AddPlayerAccess or RemovePlayerAccess changed a door. Arguments: doorId, identifier, granted (true / false). Listen with AddEventHandler.
Pokaż przykład
Log po stronie serwera każdego przekazanego lub odebranego klucza, np. dla webhooka Discord.
AddEventHandler('agency-doorlock:accessChanged', function(doorId, identifier, granted)
print(('Door #%d: %s %s'):format(doorId, identifier, granted and 'got a key' or 'lost their key'))
end)15Agency-Hud
Animowany HUD z pulpitem pojazdu, paskami statusu, prędkościomierzem i integracją pasów.
Jeśli masz własną ekonomię lub system potrzeb, steruj HUD-em ze swojego skryptu za pomocą tych setterów zamiast obchodzić go. HUD zajmuje się animacją i utrwalaniem za ciebie.
Eksporty klienta
GetVehicleSettings()Zwraca aktualną tabelę ustawień pojazdu.
Pokaż przykład
Odczytuje lokalna tabele ustawien HUD pojazdu do inspekcji lub synchronizacji.
local settings = exports['Agency-Hud']:GetVehicleSettings()
print('Speed unit:', settings.speedUnit)
print('HUD scale:', settings.scale)SetSpeedUnit(unit: string)Przełącza prędkościomierz między 'mph' a 'kmh'.
Pokaż przykład
Przelacza predkosciomierz pojazdu na mile na godzine i zapisuje lokalnie.
RegisterCommand('usemph', function()
exports['Agency-Hud']:SetSpeedUnit('mph')
end)SetHunger(value: number)Ustawia wartość paska głodu (0-100).
Pokaż przykład
Przekazuje aktualny poziom glodu gracza do HUD.
AddEventHandler('player:hungerChanged', function(value)
exports['Agency-Hud']:SetHunger(value)
end)SetThirst(value: number)Ustawia wartość paska pragnienia (0-100).
Pokaż przykład
Przekazuje aktualny poziom pragnienia gracza do HUD.
AddEventHandler('player:thirstChanged', function(value)
exports['Agency-Hud']:SetThirst(value)
end)SetStress(value: number)Ustawia wartość paska stresu (0-100).
Pokaż przykład
Aktualizuje wskaznik stresu w HUD z wlasnego systemu stresu.
AddEventHandler('jobstress:onTick', function(stress)
exports['Agency-Hud']:SetStress(stress)
end)SetMoney(value: number)Ustawia wyświetlane saldo gotówki.
Pokaż przykład
Aktualizuje kwote gotowki wyswietlana w HUD.
AddEventHandler('wallet:cashChanged', function(cash)
exports['Agency-Hud']:SetMoney(cash)
end)SetBank(value: number)Ustawia wyświetlane saldo bankowe (dla niestandardowych skryptów ekonomii).
Pokaż przykład
Aktualizuje saldo bankowe wyswietlane w HUD.
AddEventHandler('bank:balanceChanged', function(balance)
exports['Agency-Hud']:SetBank(balance)
end)SetJob(label: string)Ustawia wyświetlaną etykietę pracy.
Pokaż przykład
Ustawia wyswietlana etykiete pracy po zmianie zawodu przez gracza.
AddEventHandler('job:onChange', function(job)
exports['Agency-Hud']:SetJob(job.label)
end)SetRank(rank: string)Ustawia wyświetlaną rangę/stopień pracy.
Pokaż przykład
Aktualizuje range gracza wyswietlana obok etykiety pracy.
AddEventHandler('job:onGradeChange', function(grade)
exports['Agency-Hud']:SetRank(grade.label)
end)GetDetectedFramework()Zwraca ciąg frameworka ("qb", "esx", "standalone") wykrytego automatycznie przez HUD.
Pokaż przykład
Odczytuje klucz wykrytego frameworku do rozgaleziania wlasnej logiki HUD.
local fw = exports['Agency-Hud']:GetDetectedFramework()
if fw == 'qb' then
print('QB-Core detected')
endEventy
Agency-HUD:client:applyVehicleSettingsPatchStosuje częściową łatkę ustawień pojazdu do lokalnego HUD pojazdu.
Pokaż przykład
Stosuje czesciowa lateke ustawien HUD pojazdu na lokalnym kliencie.
TriggerEvent('Agency-HUD:client:applyVehicleSettingsPatch', {
style = 'modern',
speedUnit = 'kmh'
})Agency-HUD:client:openAdminMenuOtwiera menu admina HUD (wymaga uprawnień).
Pokaż przykład
Otwiera NUI menu admin HUD u odbierajacego klienta.
TriggerEvent('Agency-HUD:client:openAdminMenu')Agency-HUD:server:checkAdminPermissionWeryfikuje uprawnienia admina wywołującego i otwiera menu admina po sukcesie.
Pokaż przykład
Prosi serwer o weryfikacje uprawnien admina i otwarcie menu admin HUD.
RegisterCommand('checkhudadmin', function()
TriggerServerEvent('Agency-HUD:server:checkAdminPermission')
end)Agency-HUD:server:saveGlobalSettingsZapis globalnych ustawień HUD tylko dla admina; rozsyła synchronizację.
Pokaż przykład
Zapisuje nowa globalna konfiguracje HUD (tylko admin) i rozglasza ja.
TriggerServerEvent('Agency-HUD:server:saveGlobalSettings', {
style = 'modern',
accent = '#ff6b00'
})Agency-HUD:server:requestGlobalSettingsZwraca bieżące ustawienia globalne do żądającego klienta.
Pokaż przykład
Pobiera aktualne globalne ustawienia HUD przy starcie zasobu.
AddEventHandler('onClientResourceStart', function(res)
if res == GetCurrentResourceName() then
TriggerServerEvent('Agency-HUD:server:requestGlobalSettings')
end
end)Agency-HUD:server:requestTimeZwraca bieżący czas serwera do wywołującego dla zegara HUD.
Pokaż przykład
Co minute pyta zegar serwera w celu odswiezenia czasu w HUD.
CreateThread(function()
while true do
TriggerServerEvent('Agency-HUD:server:requestTime')
Wait(60000)
end
end)16Agency-Progressbar V2
Animowany pasek postępu z UI szklanym, 4 motywami, anulowalnymi akcjami i exportami client/server.
Używaj wszędzie, gdzie normalnie pokazałbyś "robię X przez Y sekund". Zastępuje wiele starych zasobów progress-bar jednym spójnym UI w całym serwerze.
Eksporty klienta
StartProgress(data: table)Uruchamia pasek postępu z pełną tabelą opcji. Zwraca natychmiast; callbacki wywoływane przy zakończeniu/anulowaniu.
Pokaż przykład
Rozpoczyna 8-sekundowy postep wytrycha z animacja i callbackiem koncowym.
exports['Agency-Progressbar']:StartProgress({
label = 'Picking lock...',
duration = 8000,
animation = { dict = 'anim@heists@fleeca_bank@drilling', clip = 'drill_straight_idle' },
onFinish = function() TriggerServerEvent('garage:lockpicked', vehNet) end,
onCancel = function() print('Lockpick cancelled') end
})StopProgress(completed: boolean)Zatrzymuje aktualnie działający pasek postępu. Przekaż true, aby oznaczyć jako anulowany.
Pokaż przykład
Anuluje aktywny pasek postepu, gdy gracz nacisnie X.
if IsControlJustPressed(0, 73) then
exports['Agency-Progressbar']:StopProgress(false)
endIsProgressActive()Zwraca true, jeśli pasek postępu jest aktualnie wyświetlany.
Pokaż przykład
Zapobiega rozpoczeciu nowego craftingu, gdy pasek jest aktywny.
if exports['Agency-Progressbar']:IsProgressActive() then
return
end
startCrafting()GetProgressPercentage()Zwraca aktualny procent wypełnienia (0-100).
Pokaż przykład
Wyzwala tick minigry, gdy pasek przekracza 75 procent.
CreateThread(function()
while exports['Agency-Progressbar']:IsProgressActive() do
local pct = exports['Agency-Progressbar']:GetProgressPercentage()
if pct > 75 then SendMinigameTick() end
Wait(100)
end
end)SetProgressTheme(theme: string)Przełącza motyw w czasie działania: 'modern', 'neon', 'minimal' lub 'classic'.
Pokaż przykład
Zmienia wyglad aktywnego paska postepu na motyw nowoczesny.
RegisterCommand('darkbar', function()
exports['Agency-Progressbar']:SetProgressTheme('modern')
end)SetProgressPosition(position: string)Zmienia pozycję: 'top', 'bottom', 'center'.
Pokaż przykład
Przenosi aktywny pasek postepu na dol srodka ekranu.
RegisterCommand('barbottom', function()
exports['Agency-Progressbar']:SetProgressPosition('bottom-center')
end)TryReload(usedItem?: string)Odtwarza sekwencję przeładowania w stylu ESX.
Pokaż przykład
Rozpoczyna przeladowanie walidowane przez serwer z pudelkiem amunicji 9mm.
RegisterKeyMapping('+reload', 'Reload weapon', 'keyboard', 'R')
RegisterCommand('+reload', function()
exports['Agency-Progressbar']:TryReload('ammo-9')
end)UseConsumable(itemName: string, isDrink: boolean)Odtwarza animację jedzenia/picia z paskiem postępu.
Pokaż przykład
Odtwarza animacje picia i zwieksza pragnienie przy uzyciu wody.
RegisterNetEvent('inventory:useItem', function(item)
if item == 'water_bottle' then
exports['Agency-Progressbar']:UseConsumable('water_bottle', true)
end
end)Eksporty serwera
StartProgressForPlayer(playerId: number, data: table)Wyzwala pasek postępu na konkretnym kliencie z serwera.
Pokaż przykład
Rozpoczyna 5-sekundowy pasek podnoszenia skrzyni dla zadajacego gracza.
RegisterCommand('lift', function(source)
exports['Agency-Progressbar']:StartProgressForPlayer(source, {
label = 'Lifting crate...',
duration = 5000
})
end, false)StopProgressForPlayer(playerId: number, completed?: boolean)Zdalnie anuluje pasek postępu konkretnego gracza.
Pokaż przykład
Anuluje aktywny pasek postepu docelowego gracza z poziomu serwera.
RegisterNetEvent('admin:cancelProgress', function(targetId)
exports['Agency-Progressbar']:StopProgressForPlayer(targetId, false)
end)StartProgressForAllPlayers(data: table)Rozgłasza pasek postępu do każdego połączonego klienta.
Pokaż przykład
Rozglasza 30-sekundowy pasek ostrzezenia o burzy do wszystkich graczy.
RegisterNetEvent('event:weatherWarning', function()
exports['Agency-Progressbar']:StartProgressForAllPlayers({
label = 'Storm incoming - take shelter',
duration = 30000
})
end)StopProgressForAllPlayers(completed?: boolean)Anuluje pasek postępu każdego gracza (np. koniec rundy).
Pokaż przykład
Zatrzymuje globalny pasek ostrzezenia o burzy u wszystkich graczy.
RegisterNetEvent('event:weatherCleared', function()
exports['Agency-Progressbar']:StopProgressForAllPlayers(true)
end)Eventy
Agency:Progressbar:LoadSettingsŁaduje ustawienia UI gracza (pozycja, kolor, skala, styl) z bazy do klienta.
Pokaż przykład
Laduje zapisane ustawienia UI paska postepu przy odrodzeniu.
AddEventHandler('playerSpawned', function()
TriggerEvent('Agency:Progressbar:LoadSettings')
end)agency-progressbar:client:startUruchamia pasek postępu na odbierającym kliencie z podanymi danymi.
Pokaż przykład
Rozpoczyna 12-sekundowy pasek naprawy silnika z mozliwoscia anulowania.
TriggerEvent('agency-progressbar:client:start', {
label = 'Repairing engine...',
duration = 12000,
canCancel = true
})agency-progressbar:client:stopZatrzymuje aktywny pasek postępu z flagą zakończenia.
Pokaż przykład
Przerywa aktywny pasek postepu, gdy gracz zostaje skuty.
RegisterNetEvent('police:cuffed', function()
TriggerEvent('agency-progressbar:client:stop', false)
end)agency:consumables:useFoodMost inventory do spożycia jedzenia (animacja + zabezpieczone zastosowanie po stronie server).
Pokaż przykład
Wyzwala most jedzeniowy ekwipunku w celu skonsumowania kanapki.
TriggerEvent('agency:consumables:useFood', 'sandwich')agency:consumables:useDrinkMost inventory do spożycia napoju (animacja + zabezpieczone zastosowanie po stronie server).
Pokaż przykład
Wyzwala most napojowy ekwipunku w celu skonsumowania filizanki kawy.
TriggerEvent('agency:consumables:useDrink', 'coffee_cup')Agency:Progressbar:SaveSettingsWaliduje i zapisuje ustawienia UI paska postępu gracza w bazie.
Pokaż przykład
Zapisuje preferencje UI paska postepu w bazie danych.
TriggerServerEvent('Agency:Progressbar:SaveSettings', {
position = 'top-right',
color = '#00aaff',
scale = 1.2
})agency-progressbar:server:startTrigger po stronie server, aby uruchomić pasek postępu na celu (lub sobie).
Pokaż przykład
Serwerowy trigger do uruchomienia 6-sekundowego paska ladowania skrzyni u celu.
RegisterCommand('movecrate', function(source)
TriggerEvent('agency-progressbar:server:start', source, {
label = 'Loading crate onto truck',
duration = 6000
})
end, false)agency-progressbar:server:stopTrigger po stronie server, aby zatrzymać pasek postępu na celu (lub sobie).
Pokaż przykład
Serwerowy trigger do zatrzymania paska celu ze stanem anulowanym.
RegisterNetEvent('admin:abortJob', function(targetId)
TriggerEvent('agency-progressbar:server:stop', targetId, false)
end)agency:reload:requestWaliduje amunicję/broń/przedmiot przed udzieleniem przeładowania żądającemu graczowi.
Pokaż przykład
Prosi serwer o weryfikacje amunicji i zezwolenie na przeladowanie pistoletu.
TriggerServerEvent('agency:reload:request', 'WEAPON_PISTOL', 'ammo-9')agency:consumables:applyWaliduje inventory, usuwa jeden przedmiot i stosuje przyrost głodu/pragnienia.
Pokaż przykład
Prosi serwer o usuniecie jedzenia i zastosowanie przyrostu glodu.
RegisterNetEvent('food:onEatStart', function(itemName)
TriggerServerEvent('agency:consumables:apply', itemName)
end)17Agency-Notify V2
System powiadomien ze stylami V1/V2, inteligentnym priorytetem AgencyAI, ochrona przed spamem i utrwalaniem w bazie danych.
Zastap kazdy inny zasob powiadomien na serwerze (qb-notify, esx_notify, mythic_notify, okok-notify itp.) jednolitym wygladem. System priorytetow AgencyAI automatycznie ogranicza spamerskie powiadomienia.
Eksporty klienta
Notify(data: { title, text, type, duration, ... })Pokazuje powiadomienie. Akceptuje { type, title, text, duration, icon, color }.
Pokaż przykład
Wysyla 6-sekundowe powiadomienie o sukcesie z celem napadu.
exports['Agency-Notify']:Notify({
title = 'Bank Heist',
text = 'Vault drilled, grab the loot!',
type = 'success',
duration = 6000
})Eventy
Agency:Notify:SendTakie samo jak export, pozwala uzywac starego wzorca opartego na Trigger.
Pokaż przykład
Stare zdarzenie klienta v1 wyswietlajace ten sam payload co eksport.
TriggerEvent('Agency:Notify:Send', {
title = 'Old Notify',
text = 'Legacy v1 entry point still works',
type = 'info'
})Agency:Notify:LoadSettingsStosuje zapisane ustawienia UI gracza (pozycja, kolor, skala, styl) z server.
Pokaż przykład
Laduje zapisane ustawienia UI notify per gracz przy odrodzeniu.
AddEventHandler('playerSpawned', function()
TriggerEvent('Agency:Notify:LoadSettings')
end)Agency:Notify:SaveSettingsWaliduje i zapisuje ustawienia notify gracza (pozycja, akcent, skala, styl).
Pokaż przykład
Zapisuje pozycje, akcent i skale notify gracza w bazie danych.
TriggerServerEvent('Agency:Notify:SaveSettings', {
position = 'top-right',
accent = '#ff8800',
scale = 1.1,
style = 'modern'
})18Agency-Seatbelt V2
Pas bezpieczenstwa z fizyka wyrzutu, dzwiekami 3D, obsluga wielu pasazerow i integracja z HUD.
Podlacz stan do wlasnego HUD lub wymus wlaczenie na poczatku poscigu policyjnego / ucieczki z napadu. Eksporty force-enable/disable swietnie sprawdzaja sie w momentach RP.
Eksporty klienta
isSeatbeltOn()Zwraca true, jesli gracz ma obecnie zapiete pasy.
Pokaż przykład
Wylacza kontrolke wysiadania, gdy pas jest zapiety.
if exports['Agency-Seatbelt']:isSeatbeltOn() then
DisableControlAction(0, 75, true)
endenableSeatbelt()Wymusza zalozenie pasow (np. przy aresztowaniu przez policje).
Pokaż przykład
Zapina pas lokalnego gracza z feedbackiem HUD i dzwiekowym.
RegisterNetEvent('vehicle:autoBuckle', function()
if IsPedInAnyVehicle(PlayerPedId(), false) then
exports['Agency-Seatbelt']:enableSeatbelt()
end
end)disableSeatbelt()Wymusza odpiecie pasow (cutscenki, scenariusze RP).
Pokaż przykład
Odpina pas lokalnego gracza po wyjsciu z pojazdu.
RegisterNetEvent('vehicle:onExit', function()
exports['Agency-Seatbelt']:disableSeatbelt()
end)toggleSeatbelt()Przelacza pasy (co robi domyslny skrot klawiszowy).
Pokaż przykład
Przelacza stan pasa lokalnego gracza po wcisnieciu klawisza.
RegisterKeyMapping('+seatbelt', 'Toggle seatbelt', 'keyboard', 'B')
RegisterCommand('+seatbelt', function()
exports['Agency-Seatbelt']:toggleSeatbelt()
end)isAutoBuckled()Zwraca true, gdy pas został zapięty przez samochód, a nie przez gracza.
autoBuckle(on: boolean)Zapina lub odpina pas automatycznie, tak jak w autonomicznym pojeździe.
getSeatbeltState()Zwraca tabelę ze stanem zapięcia, informacją czy jest automatyczny, miejscem i pojazdem.
setSeatbeltEnabled(on: boolean)Wyłącza lub włącza cały pas bezpieczeństwa dla tego gracza, na potrzeby cutscenek lub sytuacji administratorskich.
isPlayerSeatbeltOn(serverId: number)Zwraca stan pasów innego gracza, odczytany ze zreplikowanego state bag.
bucklesItselfVehicle(vehicle: number)Zwraca, czy ten pojazd sam zapina pasy pasażerom, według listy modeli lub przez state bag agAuto.
openSettings()Otwiera kartę ustawień.
closeSettings()Zamyka kartę ustawień.
isSettingsOpen()Zwraca, czy karta ustawień jest otwarta.
Eksporty serwera
isSeatbeltOn(source: number)Zwraca stan pasów gracza na serwerze, odczytany ze zreplikowanego state bag.
getBuckledPlayers()Zwraca ID serwerowe każdego aktualnie zapiętego gracza.
setSeatbelt(source: number, on: boolean)Zapina lub odpina pas gracza z poziomu serwera.
Eventy
Agency-HUD:seatbeltStateChangedWywoływane przy każdej zmianie wraz z nowym stanem. Agency-HUD nasłuchuje tego zdarzenia, każdy inny zasób również może to robić.
19Agency-Elevator
Realistyczny system wind z UI Liquid Glass i konfiguratorem.
Idealne w skryptach apartamentow/housing, komendy policji, szpitala lub kazdego wielopietrowego wnetrza. Uzyj konfiguratora, aby wizualnie umieszczac windy bez ruszania plikow konfiguracyjnych.
Eventy
Agency-Elevator:server:requestTravelZwalidowane przez serwer zadanie podrozy miedzy pietrami.
Pokaż przykład
Prosi serwer o weryfikacje dostepu i podroz na pietro 3.
TriggerServerEvent('Agency-Elevator:server:requestTravel', 'lspd-tower-1', 3)Agency-Elevator:server:travelCompletePotwierdza przybycie klienta i wysyła powiadomienie 'dotarł na piętro'.
Pokaż przykład
Informuje serwer, ze gracz dotarl na pietro 3, aby wyslac powiadomienie.
TriggerServerEvent('Agency-Elevator:server:travelComplete', 'lspd-tower-1', 3)Agency-Elevator:server:requestElevatorsSynchronizuje załadowaną listę wind z bazy danych do żądającego klienta.
Pokaż przykład
Pobiera pelna liste wind z serwera przy inicjalizacji klienta.
AddEventHandler('onClientResourceStart', function(res)
if res == GetCurrentResourceName() then
TriggerServerEvent('Agency-Elevator:server:requestElevators')
end
end)Agency-Elevator:server:saveElevatorUpsert windy (id/label/floors) do MySQL z kontrolą uprawnień.
Pokaż przykład
Upsert admina windy z jednym wpisem pietra Lobby.
TriggerServerEvent('Agency-Elevator:server:saveElevator', {
id = 'lspd-tower-1',
label = 'LSPD HQ',
floors = { { name = 'Lobby', coords = vector3(441.0, -981.5, 30.7) } }
})Agency-Elevator:server:loadElevatorSpawnuje/laduje zapisana winde z bazy danych.
Pokaż przykład
Laduje dane pojedynczej windy do NUI konfiguratora do edycji.
TriggerServerEvent('Agency-Elevator:server:loadElevator', 'lspd-tower-1')Agency-Elevator:server:saveSettingsZapisuje ustawienia UI (pozycja/skala/kolor akcentu) w MySQL i ponownie synchronizuje wszystkich klientów.
Pokaż przykład
Zapisuje pozycje UI, kolor akcentu i skale i resynchronizuje wszystkich klientow.
TriggerServerEvent('Agency-Elevator:server:saveSettings', {
position = 'top-right',
accent = '#22c55e',
scale = 1.0
})Agency-Elevator:client:startTravelRozpoczyna cutscene podrozy winda dla gracza.
Pokaż przykład
Odtwarza fade i animacje, nastepnie teleportuje peda na 2 pietro garazu.
TriggerEvent('Agency-Elevator:client:startTravel', 'parking-garage', 2)Agency-Elevator:client:applySettingsWysyła ustawienia UI (akcent/skala/pozycja) do NUI.
Pokaż przykład
Stosuje akcent, skale i pozycje NUI windy na lokalnym kliencie.
TriggerEvent('Agency-Elevator:client:applySettings', {
accent = '#0ea5e9',
scale = 0.9,
position = 'bottom-left'
})Agency-Elevator:client:openConfiguratorOtwiera konfigurator wind w grze (tylko admin).
Pokaż przykład
Otwiera NUI konfiguratora admina z aktualna lista wind.
TriggerEvent('Agency-Elevator:client:openConfigurator')Agency-Elevator:client:refreshConfiguratorOdświeża otwarty konfigurator po zapisie/usunięciu bez zamykania go.
Pokaż przykład
Odswieza otwarte NUI konfiguratora po zapisie bez zamykania.
AddEventHandler('Agency-Elevator:server:elevatorSaved', function()
TriggerEvent('Agency-Elevator:client:refreshConfigurator')
end)20Agency-Multicharacter
Kinowy wybór i tworzenie postaci dla FiveM. Każda postać stoi w scenerii dopasowanej do swojej pracy: policja przy radiowozie, medycy przy ambulansie, mechanicy w warsztacie, ubrana w zapisany strój, z własnym zdjęciem twarzy, pracą, gangiem, gotówką, stanem konta, numerem telefonu, czasem gry i ostatnią lokalizacją na przejrzystej karcie. Nowe postacie podlegają zasadom dotyczącym imienia i wieku, mają do dyspozycji przeszukiwalną listę narodowości oraz wybór wzrostu, po czym skrypt ubrań serwera otwiera się automatycznie. Sloty można sprzedawać przez Tebex: kupujący odblokowują je za pomocą swojego transaction id. Gracze zmieniają postacie za pomocą /logout. Framework, skrypt ubrań, ekwipunek, spawn selector oraz ekran ładowania są wykrywane automatycznie; istniejące postacie, czasy gry i wykupione sloty ze starego multicharactera zostają przeniesione. QBCore, Qbox, ESX lub w pełni standalone z własnym zapisem postaci, 25 języków, kolorystyka dopasowuje się do logo serwera.
Eksporty klienta
IsOpen()True while the character selection is open.
OpenSelection()Opens the selection, for example from your own logout button.
Eksporty serwera
GetCharacter(source)The loaded character (standalone: the full record).
GetCharacterId(source)citizenid, ESX identifier or agency:<id> of the loaded character.
IsInSelection(source)True while the player is in the selection.
GetSlots(license)Slots of a licence.
AddSlots(license, amount)Adds slots, returns the new total.
Logout(source)Saves the character and opens the selection.
Eventy
agency-multicharacter:server:loadedA character was loaded or created (source, charid, isNew).
agency-multicharacter:server:deletedA character was deleted (source, charid).
agency:selectiontrue while a selection screen is open, HUDs can hide themselves.
21Agency-Spawn
Spawn selector z kamerą na żywo dla FiveM. Podczas przeglądania kamera przelatuje nad Los Santos do każdej lokalizacji; wybranie jednej sprowadza gracza z nieba wprost do jego postaci. Oferuje ostatnią lokalizację, publiczne spawny z jednej komentowanej listy, spawny pracy i gangów widoczne tylko dla odpowiednich postaci, każdy dom z Agency Housing należący do postaci lub do którego posiada klucze, qb-apartments oraz stały punkt przybycia dla nowych postaci. Gracze mogą włączyć automatyczny spawn w ostatniej lokalizacji. Odpowiada na eventy qb-spawn oraz apartment, dzięki czemu większość skryptów multicharacter otwiera go bez żadnych zmian, a ponadto współpracuje bezpośrednio z Agency Multicharacter. QBCore, Qbox, ESX lub standalone, 25 języków, kolorystyka dopasowuje się do logo serwera.
Eksporty klienta
Open(options)Opens the selector. options.isNew = true sends new characters to the arrival point.
IsOpen()True while the selector is open.
Eventy
agency-spawn:client:spawnedThe character landed (id, kind).
agency-spawn:server:spawnedA player spawned (source, id, kind).
qb-spawn:client:setupSpawns / openUIAnswered when qb-spawn is not running, so other multicharacters open Agency Spawn.
22Agency-Housing
Oparty na bazie danych system mieszkań dla FiveM. Sam wykrywa QBCore, QBox i ESX albo działa całkowicie standalone bez żadnego frameworka. Domy buduje się w grze za pomocą kreatora krok po kroku zamiast pliku konfiguracyjnego: wnętrza, shelle, MLO i całe apartamentowce z nawet 40 mieszkaniami za jednymi drzwiami wejściowymi, a każda działka jest ogrodzona granicą posesji wyznaczaną z powietrza. Gracze kupują domy, sprzedają je sobie nawzajem, wynajmują i podnajmują, przeglądają wszystkie oferty na rynku i opłacają czynsz z góry, a pieniądze, które wpłyną podczas ich nieobecności, są wypłacane przy kolejnym wejściu na serwer. W zestawie znajdują się klucze, ryglowanie drzwi MLO z automatycznym zamkiem i dzwonkiem do drzwi, umeblowanie z katalogu ponad 1300 rekwizytów, kamery monitoringu oraz wbudowana szafa na ubrania, a aplikacja Housing zapewnia sterowanie zamkami i podgląd z kamer na żywo w Agency Phone, Agency Pad, lb-phone i qs-smartphone-pro. Skrypty ekwipunku, ubrań i garaży są wykrywane automatycznie, baza danych aktualizuje się sama, a wszystko jest trwale zapisywane w MySQL.
Eksporty klienta
IsInsideHouse()Zwraca true, gdy gracz znajduje się w domu.
GetCurrentHouse()Dom, w którym gracz aktualnie się znajduje, lub nil.
LeaveHouse()Przenosi gracza z powrotem na zewnątrz przez wejście.
GetHouseAtPoint(coords)Pierwszy dom, którego granica posesji obejmuje ten teren.
GetHousesAtPoint(coords)Każdy dom będący właścicielem tej działki, w przypadku nakładających się parceli, takich jak blok mieszkalny.
GetCurrentProperty()Działka, na której stoi gracz w tej chwili, lub nil.
IsOnProperty(houseId)Czy gracz stoi na terenie tej posiadłości.
GetHouseZone(houseId)Zapisany kształt granicy domu.
GetAccent()Kolor akcentu wybrany przez gracza w Housing > Settings.
GetAppUrl(theme)Adres strony aplikacji Housing, aby dodać aplikację do dowolnego innego telefonu. Przekaż 'light' lub 'dark', aby wymusić motyw.
GetAppData()Wszystko, co pokazuje aplikacja Housing: domy, które gracz posiada, wynajmuje lub do których ma klucz.
AppAction(action, houseId)Uruchamia akcję aplikacji dla domu: 'waypoint', 'lock' lub 'cams'.
Eksporty serwera
GetHouses()Każdy dom na serwerze, indeksowany według id.
GetPlayerHouses(source)Domy, które posiada gracz.
HasHouseAccess(source, houseId)Czy dany gracz jest właścicielem domu lub posiada do niego klucz.
GetHouseAtPoint(coords)Pierwszy dom, którego granica posesji obejmuje ten teren.
GetHousesAtPoint(coords)Każdy dom będący właścicielem tej działki, w przypadku nakładających się parceli.
GetHouseZone(houseId)Zapisany kształt granicy domu.
Eventy
agency-housing:client:enteredZoneWywoływane z parametrami (houseId, house), gdy gracz wejdzie na teren posiadłości, dzięki czemu skrypt pracy lub napadu nie musi stale odpytywać o stan.
agency-housing:client:leftZoneWywoływane z parametrami (houseId, house), gdy gracz opuszcza posiadłość.
agency-housing:garage:openWywoływane z parametrami (houseId, houseName), gdy używany jest garaż domowy, a opcja Config.Garage.script jest ustawiona na 'event', aby Twój własny skrypt garażu mógł go otworzyć.
23Agency-Banking
Kompletny bank dla FiveM działający na QBCore, Qbox, ESX lub w pełni standalone. Gracze otrzymują portfel z kontem bankowym i gotówką, karty bankowe w czterech motywach, przelewy po ID lub do pobliskich graczy, lokaty terminowe z oprocentowaniem ustalanym przez serwer, handel akcjami i kryptowalutami, PIN do bankomatu oraz pełny rejestr aktywności. Bez frameworka bank prowadzi własne konta, a inne zasoby mogą używać go jako systemu pieniędzy poprzez exporty serwera. Dwa wyglądy menu, 13 języków, markery lub qb-target / ox_target, suwak rozmiaru interfejsu dla każdego gracza, tabele tworzące się automatycznie przy pierwszym uruchomieniu oraz darmowa aplikacja Agency Companion do sprawdzania salda, przelewów, lokat i kart w podróży.
Eksporty klienta
OpenBank()Otwiera bank dla lokalnego gracza, gdziekolwiek się znajduje.
OpenATM()Otwiera ekran PIN-u do bankomatu dla lokalnego gracza. Gracz musi najpierw ustawić PIN do bankomatu w banku.
Eksporty serwera
GetBankBalance(source)Zwraca stan konta bankowego gracza, na każdym frameworku i w wersji standalone.
GetCashBalance(source)Zwraca gotówkę gracza.
AddBankMoney(source, amount, reason)Dodaje pieniądze do salda bankowego. Zwraca true w przypadku powodzenia, a otwarty bank odświeża się automatycznie.
RemoveBankMoney(source, amount, reason)Pobiera pieniądze ze stanu konta bankowego. Zwraca false, gdy stan konta jest za niski, i nic wtedy nie jest pobierane.
AddCashMoney(source, amount, reason)Dodaje gotówkę. Zwraca true w przypadku powodzenia.
RemoveCashMoney(source, amount, reason)Pobiera gotówkę. Zwraca false, gdy jest jej za mało, i nic wtedy nie jest pobierane.
AddTransaction(identifier, type, amount, reason)Zapisuje wpis w dzienniku aktywności gracza według identyfikatora (citizenid w QBCore i Qbox, identifier w ESX, licence w standalone).
GetFramework()Zwraca framework wykryty przez bank: qbcore, esx lub standalone.
Eventy
agency_banking:client:OpenBankWywołaj to z serwera, aby otworzyć bank dla tego gracza.
agency_banking:client:MoneyChangedWywołaj to z serwera po tym, jak inny skrypt zmienił pieniądze gracza, a otwarty bank się odświeży.
Nadal nie idzie po tej stronie? Nasze wsparcie przejmuje sprawę.