Agency Docs

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).

Pełna dokumentacja

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:notify

Wyś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:usePhoneItem

Uruchamia 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:openApp

Prosi 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:newMailNotify

Powiadamia 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:cancelCall

Anuluje 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:sendMessage

Wysył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:saveSetting

Zapisuje 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:airdropPay

Wykonuje 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:buyDataPlan

Kupuje 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:create

Tworzy 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.

Pełna dokumentacja

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:notify

Wyś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:usePadItem

Otwiera 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:openApp

Wywoł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:newMailNotify

Powiadamia 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:hourlyPaycheck

Powiadamia 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:sendMessage

Wysył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:airdropPay

Wykonuje 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:buyDataPlan

Kupuje 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:create

Tworzy 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:create

Tworzy 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:adminCreate

Admin 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:startMission

Uruchamia 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:applyToListing

Skł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:createMechanicInvoice

Tworzy 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:sendMechanicInvoicePay

Wysył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:mdtCreateInvoice

MDT 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.

Pełna dokumentacja

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.

Pełna dokumentacja

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:rideStarted

Przejazd się rozpoczął. Zawiera cel podróży.

agency-zero:client:rideEnded

Przejazd zakończony, anulowany lub na miejscu.

agency-zero:client:arrived

Samochó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.

Pełna dokumentacja

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 end

Eksporty 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) end
GetAd(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) end
IsAdmin(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 end

Eventy

agency-lifeinvader:adShown

Lokalny 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:adBroadcast

Lokalny 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:openMenu

Pozostawione 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:openRecentMenu

Pozostawione 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.

Pełna dokumentacja

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 end

Eksporty 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 end
SetReputation(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)) end
AddCredit(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') end
StartFlashSale(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:deal

Wywoł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:dealerMoved

Wywoł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:flashSale

Wywoł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.

Pełna dokumentacja

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 end
IsWorking()

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 end
GetLevel()

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 end
GetProgress(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:mined

Wywoł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:sold

Wywoł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:contract

Wywoł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.

Pełna dokumentacja

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 end
GetVehicleCondition(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))) end
OpenMenu()

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 end

Eksporty 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)) end
GiveKit(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 end
GetKits()

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) end
useKit(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:repaired

Wywoł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:repaired

Wywoł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:damageLevel

Wywoł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.

Pełna dokumentacja

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 end
GetKeys()

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) end
ToggleLock(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 end
useLockpick()

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 end
SetOwner(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) end
SetVehicleLocked(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 end
GetFramework()

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 end

Eventy

Agency:Keys:GiveServer

Prosi 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:AcquireVehicleKeys

Głó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:SetOwner

Event 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:AddKeys

Zdarzenie 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:toggleEngine

Wywoł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.

Pełna dokumentacja

Eventy

agency-vending:notify

Ogolny 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:startAgencyPay

Inicjuje 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:buyMachineResult

Wynik 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:machineCreated

Broadcast 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:openManagementVerified

Otwarcie 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:openOwnedList

Otwiera 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:spawnMachineCreated

Broadcast 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:spawnMachineDeleted

Broadcast 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:openSpawnerUI

Otwiera 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:buyMachine

Gracz 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:requestOwnedList

Wywolujacy 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:requestMachines

Wywolujacy 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:requestManagement

Otwarcie 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:requestSpawnedMachines

Wywolujacy 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:adminSpawnMachine

Admin 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:adminDeleteSpawned

Admin 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.

Pełna dokumentacja

Eventy

agency-admin:client:refreshStaffRanks

Wymusza 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)) end
agency-admin:client:freezeTime

Zatrzymuje 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:dashboardValue

Wysyla 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:teleportToCoords

Teleportuje 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:announce

Wyś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:notify

Wysył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:freeze

Zamraż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:heal

Przywraca 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:revive

Wskrzesza 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:teleport

Teleportuje 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:openMenu

Otwiera 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:openToolsMenu

Wyzwalacz 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:closeMenu

Wyzwalacz 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:openClothingMenu

Wyzwalacz 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:requestPlayers

Pobiera 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:requestPanelPermissions

Pobiera 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:requestStaffRanks

Pobiera 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:createRank

Tworzy 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:requestMyPermissions

Wywolujacy 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:requestSync

Wywolujacy 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:requestDutyRank

Wywolujacy 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:requestSpawnedObjects

Wywolujacy 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.

Pełna dokumentacja

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:detection

Wywoływane przy każdym trafieniu z parametrami player, detection, detail, action i strikes.

Agency-Anticheat:banned

Wywoływane po każdym banie wraz z pełnym wpisem bana.

Agency-Anticheat:unbanned

Wywoływane po zdjęciu bana.

Agency-Anticheat:lockdown

Wywoływane, gdy rozpoczyna się lub kończy lockdown.

Agency-Anticheat:learned

Wywoł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.

Pełna dokumentacja

Eventy

agency-reports:client:notify

Wysył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:openPlayerUI

Otwiera 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:openAdminUI

Otwiera 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:teleport

Teleportuje 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:healSelf

W 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:submitReport

Skł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:requestPlayerData

Wywolujacy 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:requestAdminData

Admin 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:sendChatMessage

Wysył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.

Pełna dokumentacja

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) end
GetAllDoors()

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')) end
GetDoorCoords(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) end

Eksporty 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) end
GetPlayerAccess(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) end
IsReady()

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:accessChanged

Fired 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.

Pełna dokumentacja

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') end

Eventy

Agency-HUD:client:applyVehicleSettingsPatch

Stosuje 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:openAdminMenu

Otwiera menu admina HUD (wymaga uprawnień).

Pokaż przykład

Otwiera NUI menu admin HUD u odbierajacego klienta.

TriggerEvent('Agency-HUD:client:openAdminMenu')
Agency-HUD:server:checkAdminPermission

Weryfikuje 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:saveGlobalSettings

Zapis 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:requestGlobalSettings

Zwraca 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:requestTime

Zwraca 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.

Pełna dokumentacja

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) end
IsProgressActive()

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:start

Uruchamia 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:stop

Zatrzymuje 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:useFood

Most 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:useDrink

Most 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:SaveSettings

Waliduje 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:start

Trigger 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:stop

Trigger 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:request

Waliduje 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:apply

Waliduje 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.

Pełna dokumentacja

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:Send

Takie 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:LoadSettings

Stosuje 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:SaveSettings

Waliduje 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.

Pełna dokumentacja

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) end
enableSeatbelt()

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:seatbeltStateChanged

Wywoł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.

Pełna dokumentacja

Eventy

Agency-Elevator:server:requestTravel

Zwalidowane 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:travelComplete

Potwierdza 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:requestElevators

Synchronizuje 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:saveElevator

Upsert 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:loadElevator

Spawnuje/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:saveSettings

Zapisuje 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:startTravel

Rozpoczyna 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:applySettings

Wysył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:openConfigurator

Otwiera 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:refreshConfigurator

Odś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.

Pełna dokumentacja

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:loaded

A character was loaded or created (source, charid, isNew).

agency-multicharacter:server:deleted

A character was deleted (source, charid).

agency:selection

true 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.

Pełna dokumentacja

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:spawned

The character landed (id, kind).

agency-spawn:server:spawned

A player spawned (source, id, kind).

qb-spawn:client:setupSpawns / openUI

Answered 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.

Pełna dokumentacja

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:enteredZone

Wywoł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:leftZone

Wywoływane z parametrami (houseId, house), gdy gracz opuszcza posiadłość.

agency-housing:garage:open

Wywoł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.

Pełna dokumentacja

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:OpenBank

Wywołaj to z serwera, aby otworzyć bank dla tego gracza.

agency_banking:client:MoneyChanged

Wywoł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ę.

Nadal nie idzie po tej stronie? Nasze wsparcie przejmuje sprawę.