Agency Docs
QBESXStandalone

Agency-Watch Configuração

Agora com o AgencyOS27: uma atualização grátis para quem já tem o relógio.

v27.0.1Grátis7 Páginas

01Configuração

Instalação rápida · config.lua · Agency-Watch

Baixar config.lua

-- ╔══════════════════════════════════════════════════════════════╗ -- ║ A G E N C Y W A T C H ║ -- ║ AgencyOS27 ║ -- ║ Free from Agency Scripts · discord.gg/RTax3aBMUs ║ -- ║ shop.agencyg.de ║ -- ╠══════════════════════════════════════════════════════════════╣ -- ║ Everything here can be changed without writing code. ║ -- ║ Sections: GENERAL · CONTROLS · ITEM · DISPLAY · ║ -- ║ THEME · LOCK · WATCH FACES · APPS · ║ -- ║ PHONE · PRO · TEXTS ║ -- ╚══════════════════════════════════════════════════════════════╝ Config = {} -- ═══════════════════════════════════════════════════════════════ -- 1 GENERAL -- ═══════════════════════════════════════════════════════════════ Config.Framework = 'auto' -- 'auto' | 'qb' | 'esx' | 'standalone' Config.Locale = 'en' -- Default language. All codes: see SprachListe in shared/sprachen.lua Config.Debug = false -- Extra messages in the console -- ═══════════════════════════════════════════════════════════════ -- 2 CONTROLS -- The watch only appears on a key press, exactly like the Agency Phone. -- ═══════════════════════════════════════════════════════════════ Config.OpenKey = 'Z' -- Default key (rebindable in game) Config.OpenCommand = 'watch' -- /watch opens and closes the watch Config.ToggleMiniCmd = 'watchmini' -- /watchmini toggles the small always-on display Config.CloseOnEscape = true -- ESC closes the watch Config.OpenSound = true -- Sound when opening and closing -- Controls on the case: -- Crown (top right) = quick menu, scroll wheel on it = page through -- Side button (below it) = control centre -- Action button (orange, left) = freely assignable, see below -- -- The action button ALWAYS does something. A button that does nothing is -- worse than no button at all: the player cannot tell whether it is broken -- or whether they are using it wrong. If an unknown name is set here, the -- watch falls back to the flashlight. -- -- The labels below are in English on purpose, because that is what makes -- them translatable: as long as the English default stands here, the watch -- takes the text from shared/sprachen.lua in the selected language. Put -- anything else here and you keep exactly your text, in every language. The -- same rule applies to Config.Apps, Config.Themes and Config.Komplikationen. Config.ActionButton = 'lampe' Config.ActionPresets = { lampe = { label = 'Flashlight', icon = 'lampe', kind = 'builtin', value = 'lampe' }, wegpunkt = { label = 'Clear waypoint', icon = 'pin', kind = 'builtin', value = 'wegpunkt' }, mini = { label = 'Mini display', icon = 'raster', kind = 'builtin', value = 'mini' }, kz = { label = 'Control Centre', icon = 'regler', kind = 'builtin', value = 'kz' }, pay = { label = 'Agency Pay', icon = 'karte', kind = 'builtin', value = 'pay' }, -- Examples for server owners (commented out): your own commands and events -- motor = { label = 'Engine on/off', icon = 'blitz', kind = 'command', value = 'engine' }, -- hupe = { label = 'Horn', icon = 'hupe', kind = 'command', value = 'hupe' }, -- eigen = { label = 'Custom event', icon = 'blitz', kind = 'event', value = 'my-script:client:action' }, } -- Flashlight. It lights twice over: the watch face turns into a white -- surface, which is what a watch on your wrist actually does, and on top of -- that a cone falls into the world, because otherwise you still would not -- see anything in the dark. Config.Lampe = { -- Range and brightness of the cone reichweite = 28.0, staerke = 3.4, -- ── Shape of the light ─────────────────────────────────────── -- The light is made of two cones: a narrow bright core and a wide weak -- hem around it. Only both together give the soft edge of a real torch. -- A single cone throws a patch with a hard border. kernBreite = 12.0, -- Degrees. Smaller = tighter cone kernAbfall = 1.6, -- how fast the core fades towards its edge saumBreite = 30.0, -- degrees of the soft hem around the core saumStaerke = 0.30, -- share of the core brightness, 0 turns it off saumWeite = 0.62, -- share of the range the hem lights up -- Downward tilt, 0 = straight ahead. Without a tilt the cone hits the -- ground flat and turns into a long ellipse. neigung = 0.20, -- Soft near light right at the wearer, so your own feet are not left in -- the dark. 0 turns it off. nahlicht = 1.1, nahweite = 2.6, -- Does the light follow your view? true feels like a torch you aim. -- false makes it point rigidly forward. folgtBlick = true, -- Off without the watch in hand: does the torch keep running while the -- watch is put away? true = yes, it stays on until the next press. weiterAusserhalb = true, -- Available light modes. You cycle through them on the watch. arten = { 'weiss', 'blinken', 'rot' }, } -- ═══════════════════════════════════════════════════════════════ -- 3 ITEM -- Out of the box a watch has to be in the inventory, any watch. That way -- the script runs on every server right away, without anyone having to -- create a new item first. If you want your own item, switch to 'exact'. -- ═══════════════════════════════════════════════════════════════ Config.RequireItem = true -- false = the watch always opens -- 'any' = any watch from Config.WatchItems will do (default) -- 'exact' = only Config.WatchItem is accepted Config.ItemMode = 'any' -- Known watch items. The first one the player carries opens the watch. -- Simply add your own names. Config.WatchItems = { 'rolex', -- QBCore default, called "Golden Watch" in game 'watch', 'smartwatch', 'agency_watch', 'armbanduhr', 'goldwatch', 'silverwatch', 'diamond_watch', } Config.WatchItem = 'smartwatch' -- only applies with Config.ItemMode = 'exact' Config.Inventory = 'auto' -- 'auto' | 'ox' | 'qb' | 'none' Config.RemoveOnDeath = false -- watch locked after death until revived -- ═══════════════════════════════════════════════════════════════ -- 4 DISPLAY -- Position and size can also be changed on the watch itself. -- ═══════════════════════════════════════════════════════════════ Config.AlwaysOn = false -- false = only on a key press -- The small always-on display grows with the watch. If you want it larger -- or smaller independently, turn this dial: 1.0 = same size as the watch, -- 0.7 = clearly smaller, 1.3 = larger. Config.MiniScale = 1.0 -- Where exactly the small display sits. It uses the same screen edge as -- chosen in Config.Position, but with its own margin: on most servers the -- HUD lives there, and two displays on top of each other hide one another. -- hoch = distance to the top or bottom edge, in percent of screen height -- seite = distance to the left or right edge, in percent of screen width -- High enough out of the box to stay above a speedometer at the bottom. Config.MiniAbstand = { hoch = 19.0, seite = 2.4 } -- ═══════════════════════════════════════════════════════════════ -- WATCH FACES OF THE SMALL DISPLAY -- They are not small versions of the large ones: on eighty by a hundred -- pixels everything that works on the big glass is either unreadable or -- empty. Four designs of their own, picked in the watch face app through -- the switch at the top. -- -- voll Time, date, health, steps, network. The layout you know. -- zeit Just the time, as large as it gets. -- werte Small time, below it health, armour and steps. -- ring Time inside the arc of the day. -- -- Order and selection live here. What is missing does not show up. -- ═══════════════════════════════════════════════════════════════ Config.MiniFaces = { 'voll', 'zeit', 'werte', 'ring' } Config.MiniFace = 'voll' -- which one applies out of the box Config.Position = 'bottom-right' -- bottom-left | bottom-right | top-left | top-right Config.Size = 1.5 -- Size, allowed range 0.6 to 2.0 Config.Appearance = 'dark' -- 'dark' | 'light' Config.Use24h = true Config.DefaultFace = 'raster' -- see section 7 Config.UpdateInterval = 1000 -- milliseconds between refreshes Config.CountSteps = true -- own step counter Config.ShowSpeed = true -- speedometer while in a vehicle Config.HideInPauseMenu = true -- ═══════════════════════════════════════════════════════════════ -- PRO EDITION AND PROMOTION -- Without an Agency Phone: the complete free watch with a discreet note. -- With a detected Agency Phone: the Pro edition, no promotion left. -- ═══════════════════════════════════════════════════════════════ Config.ShowFreeBranding = true -- note only appears in the free edition -- ═══════════════════════════════════════════════════════════════ -- 5 THEME — metal presets -- ═══════════════════════════════════════════════════════════════ Config.Theme = 'titan' Config.SplitFaceColor = '#00d4ff' -- accent surface on the "Pulse" watch face -- Base colours of the Agency look. They are passed through to the interface -- and used by the watch's own notifications. Config.AccentPrimary = '#00d4ff' Config.AccentOrange = '#ff6b35' Config.AccentGreen = '#00ff88' -- case = the case, the whole metal ramp is derived from it -- band = the strap, its own ramp -- accent = system colour of the interface -- mesh = true for metal links, false for solid coloured straps -- -- The tones are matched to the product shots and to the Agency palette: -- cyan #00d4ff and orange #ff6b35 are the house colours and stay the point -- of reference everywhere. -- Labels in English again so that they get translated. See the note at -- Config.ActionPresets. Config.Themes = { -- Warm grey titanium, like brushed metal titan = { label = 'Titanium', case = '#b9b4a9', band = '#a9a49a', accent = '#00d4ff', orange = '#ff6b35', mesh = true }, -- Cool bright silver silber = { label = 'Silver', case = '#dde0e4', band = '#c7cbd1', accent = '#00d4ff', orange = '#ff6b35', mesh = true }, -- Neutral dark grey graphit = { label = 'Graphite', case = '#44474e', band = '#383b42', accent = '#00d4ff', orange = '#ff7a30', mesh = true }, -- Almost black with the blue cast of Agency navy mitternacht = { label = 'Midnight', case = '#1f2129', band = '#171922', accent = '#00d4ff', orange = '#ff6b35', mesh = true }, -- Steel blue case with a deep blue strap ozean = { label = 'Ocean', case = '#5b6b7d', band = '#1d6fd8', accent = '#00d4ff', orange = '#ff9d5c', mesh = false }, -- Bronze with the house orange abendrot = { label = 'Sunset', case = '#8f5c3a', band = '#ff6b35', accent = '#ffc24a', orange = '#ff8a4a', mesh = false }, -- The house colours themselves agency = { label = 'Agency', case = '#2a2f3a', band = '#0f1620', accent = '#00d4ff', orange = '#ff6b35', mesh = true }, } -- ═══════════════════════════════════════════════════════════════ -- 6b STUDIO -- Case, strap and colours. Whatever stands here shows up in the Studio -- app on the watch. The themes above remain one-tap presets: they set -- several of these values at once. -- -- Take something out and you take it away from the watch. Add something -- and you only have to make sure every strap has a matching rule in -- html/css/style.css (section ARMBAENDER). -- ═══════════════════════════════════════════════════════════════ Config.Studio = { -- May the player mix their own colours, or only pick from the swatches -- below? false allows the presets only. freieFarben = true, -- ── Case shapes ───────────────────────────────────────────── -- rundung is the corner radius of the glass. 50% gives a round watch. formen = { { id = 'eckig', label = 'Squared', rundung = '58px' }, { id = 'kissen', label = 'Cushion', rundung = '34px' }, { id = 'rund', label = 'Round', rundung = '50%' }, }, -- ── Straps ────────────────────────────────────────────────── -- metall = true uses the metal ramp (light through shadow) and looks -- like polished metal. metall = false carries the colour flat, which is -- the way to go for rubber, leather and woven fabric. baender = { { id = 'glieder', label = 'Link Bracelet', metall = true }, { id = 'geflecht', label = 'Milanese', metall = true }, { id = 'panzer', label = 'Heavy Link', metall = true }, { id = 'kette', label = 'Fine Link', metall = true }, { id = 'sport', label = 'Sport Band', metall = false }, { id = 'zug', label = 'Solo Loop', metall = false }, { id = 'leder', label = 'Leather', metall = false }, { id = 'nylon', label = 'Woven Nylon', metall = false }, { id = 'ranger', label = 'Field Strap', metall = false }, { id = 'karo', label = 'Checked Weave', metall = false }, { id = 'alpin', label = 'Alpine Loop', metall = false }, }, -- ── Colour swatches ───────────────────────────────────────── -- Three separate rows, because a case needs different tones than a -- strap, and an accent needs different ones again. Anyone mixing their -- own colour ends up outside these swatches anyway. gehaeuseFarben = { '#dde0e4', '#b9b4a9', '#8d8f95', '#44474e', '#2a2f3a', '#1f2129', '#c9a227', '#8f5c3a', '#5b6b7d', '#3c5148', '#5a3a4e', '#0f1620', }, bandFarben = { '#dde0e4', '#a9a49a', '#8d8f95', '#383b42', '#171922', '#0f1620', '#1d6fd8', '#00b0a0', '#35d6a6', '#c9a227', '#ff6b35', '#ff375f', '#a855f7', '#ff9f0a', '#8f5c3a', '#f2e9dc', }, akzentFarben = { '#00d4ff', '#0a84ff', '#5e5ce6', '#a855f7', '#ff375f', '#ff453a', '#ff6b35', '#ff9f0a', '#ffd60a', '#30d158', '#00b0a0', '#f2e9dc', }, } -- ═══════════════════════════════════════════════════════════════ -- 6c AGENCY ZERO -- The Zero app on the watch has two faces. -- -- If **no** Agency Zero runs on the server, it advertises: it shows what -- the car is, when it arrives and where to get it. It deliberately shows -- **no price** there. No car stands on this server, so there is nothing to -- buy, and a number in that spot reads like one that applies. -- -- If the Agency Zero does run, the promotion disappears and the price comes -- from the car itself (Agency-Zero, Config.Kauf). That is where you pay, and -- a second number would simply be a lie. -- ═══════════════════════════════════════════════════════════════ Config.Zero = { -- Where the button on the promotion page leads. shopUrl = 'https://shop.agencyg.de/en/zero', } -- ═══════════════════════════════════════════════════════════════ -- 6 LOCK — numeric code on opening -- A roleplay element, not protection against players with tools. -- ═══════════════════════════════════════════════════════════════ -- The watch is locked the first time it is opened. If an Agency Phone is -- detected it unlocks by itself and never asks for the code. Config.LockScreen = true -- ask for the code when opening Config.LockCode = '0000' -- four digits Config.LockRemember = true -- ask for the code only once per session Config.UnlockWithPhone = true -- open without a code when an Agency Phone is detected -- ═══════════════════════════════════════════════════════════════ -- 7 WATCH FACES — the order here is also the paging order -- puls = default: date, rings, large time, pulse curve, quick dials -- raster = dense overview with values all around -- digital = large digital readout with an accent surface -- klar = reduced, time and date only -- zeiger = classic hands -- ringe = activity rings -- ═══════════════════════════════════════════════════════════════ -- Order on the watch. The first one is also what comes up first when -- swiping, which is why the default face stands at the front. Config.Faces = { 'raster', 'puls', 'digital', 'modul', 'bogen', 'klar', 'stapel', 'welle', 'zeiger', 'ringe' } -- Which watch faces are usable without an Agency Phone. Deliberately very -- different ones: the default face with all values, a reduced one and a -- classic one. That way the free watch has a real choice too and does not -- feel cut down. -- Anyone who wants all of them and wants to assign their fields freely -- needs the Phone. -- -- The face set in Config.DefaultFace MUST appear here, otherwise the free -- watch starts on a locked face. Config.FreeFaces = { 'raster', 'klar', 'zeiger', 'stapel', 'bogen' } -- Your own names for the watch faces. -- -- Empty means the watch uses its own translation, in all ten languages. What -- you write here wins, and it wins in every language, so use it for a name -- that should read the same everywhere and not as a place to translate. -- -- Config.FaceNames = { raster = 'Cockpit', zeiger = 'Classic' } -- -- Faces you leave out keep their translated name. The keys are the ids from -- Config.Faces above. Config.FaceNames = {} -- ═══════════════════════════════════════════════════════════════ -- 7b ASSIGNING WATCH FACE FIELDS (Agency Phone only) -- The two small values to the left of the time and the reading below them -- can be filled with any value from this list. If you add something here, -- the interface has to know the key as well (html/js/app.js, function -- komplikation). -- ═══════════════════════════════════════════════════════════════ -- Labels in English again so that they get translated. See the note at -- Config.ActionPresets. Config.Komplikationen = { { id = 'leben', label = 'Health', icon = 'herz', farbe = '#ff453a' }, { id = 'panzerung', label = 'Armour', icon = 'schild', farbe = '#00d4ff' }, { id = 'schritte', label = 'Steps', icon = 'schritte', farbe = '#ff9f0a' }, { id = 'strecke', label = 'Distance', icon = 'karte-pin', farbe = '#5e5ce6' }, { id = 'kalorien', label = 'Calories', icon = 'blitz', farbe = '#ffd60a' }, { id = 'puls', label = 'Heart rate', icon = 'herz', farbe = '#ff453a' }, { id = 'tempo', label = 'Speed', icon = 'tempo', farbe = '#30d158' }, { id = 'wetter', label = 'Weather', icon = 'sonne', farbe = '#64d2ff' }, { id = 'kompass', label = 'Compass', icon = 'kompass', farbe = '#a855f7' }, { id = 'geld', label = 'Agency Pay', icon = 'karte', farbe = '#ff6b35', pro = true }, { id = 'keine', label = 'None', icon = 'verboten', farbe = '#8e8e93' }, } -- Defaults for the three fields on the standard face Config.FaceSlots = { oben = 'leben', -- upper small value on the left unten = 'schritte', -- lower small value on the left zeile = 'puls', -- the reading with its history curve } -- ═══════════════════════════════════════════════════════════════ -- 8 APPS — order, visibility and Pro dependency -- ═══════════════════════════════════════════════════════════════ -- THE LINE BETWEEN FREE AND PRO -- -- The rule behind it is deliberately simple and obvious to every player -- at first glance: -- -- Everything a watch can do on its own is free. -- Everything that comes from the phone needs the phone. -- -- That is why not a single core feature is locked. Watch faces, themes, -- activity, workouts, stopwatch, timer, alarm, weather, compass, -- speedometer, notifications, the control centre and all settings run -- fully without a phone. Anyone using the watch for free has a finished -- device, not a promotional shell. -- -- Locked is only what could not technically exist without a phone: calls, -- messages, mail, contacts, paying and pairing with the Companion app. -- Without an Agency Phone those apps would not be locked apps, they would -- simply be empty ones. -- -- pro = true -> needs the Agency Phone -- pro = false -> always runs -- ═══════════════════════════════════════════════════════════════ Config.Apps = { -- ── Needs the Agency Phone ────────────────────────────────── { id = 'telefon', label = 'Phone', icon = 'telefon', color = '#34c759', enabled = true, pro = true, kat = 'verbunden' }, { id = 'nachrichten', label = 'Messages', icon = 'sprechen', color = '#30d158', enabled = true, pro = true, kat = 'verbunden' }, { id = 'mail', label = 'Mail', icon = 'brief', color = '#0a84ff', enabled = true, pro = true, kat = 'verbunden' }, { id = 'kontakte', label = 'Contacts', icon = 'personen', color = '#34c759', enabled = true, pro = true, kat = 'verbunden' }, { id = 'geld', label = 'Agency Pay', icon = 'karte', color = '#ff6b35', enabled = true, pro = true, kat = 'verbunden' }, -- Free: the watch has its own wire to the Companion app and no longer -- needs the Agency Phone for it (see Config.Companion). { id = 'companion', label = 'Companion', icon = 'qr', color = '#00d4ff', enabled = true, pro = false, kat = 'verbunden' }, -- ── Always runs, even entirely without a phone ────────────── -- Notifications are free on purpose: the watch reports alarms, timers -- and reached goals by itself. With a phone its messages come on top, -- so the app is never empty. { id = 'meldungen', label = 'Notifications', icon = 'glocke', color = '#ff9f0a', enabled = true, pro = false, kat = 'werkzeug' }, { id = 'aktivitaet', label = 'Activity', icon = 'herz', color = '#ff2d55', enabled = true, pro = false, kat = 'werkzeug' }, { id = 'training', label = 'Workout', icon = 'laufen', color = '#a3ff12', enabled = true, pro = false, kat = 'werkzeug' }, { id = 'stoppuhr', label = 'Stopwatch', icon = 'stoppuhr', color = '#ff9f0a', enabled = true, pro = false, kat = 'werkzeug' }, { id = 'timer', label = 'Timer', icon = 'sanduhr', color = '#ff9f0a', enabled = true, pro = false, kat = 'werkzeug' }, { id = 'wecker', label = 'Alarm', icon = 'glocke', color = '#ff9f0a', enabled = true, pro = false, kat = 'werkzeug' }, { id = 'wetter', label = 'Weather', icon = 'sonne', color = '#64d2ff', enabled = true, pro = false, kat = 'werkzeug' }, { id = 'kompass', label = 'Compass', icon = 'kompass', color = '#ff453a', enabled = true, pro = false, kat = 'werkzeug' }, { id = 'karte', label = 'Speedometer', icon = 'karte-pin', color = '#5e5ce6', enabled = true, pro = false, kat = 'werkzeug' }, -- The garage pulls its data from the framework, not from the phone. -- That is why it runs for free as well. Without a framework it hides -- itself instead of standing there empty. { id = 'garage', label = 'Garage', icon = 'auto', color = '#0a84ff', enabled = true, pro = false, kat = 'fahren' }, { id = 'zifferblatt', label = 'Watch Face', icon = 'uhr', color = '#ff9f0a', enabled = true, pro = false, kat = 'stil' }, -- Studio: case, strap and colours. It sits next to the watch face app -- because both answer the same question, namely how the watch looks. -- Free, this has nothing to do with the Agency Phone. { id = 'studio', label = 'Studio', icon = 'farben', color = '#ff375f', enabled = true, pro = false, kat = 'stil' }, -- Agency Zero: your own self-driving car. If no Agency Zero runs on the -- server the app advertises it, which is why it is there out of the box. { id = 'zero', label = 'Zero', icon = 'auto', color = '#e2b649', enabled = true, pro = false, kat = 'fahren' }, -- ── Games ─────────────────────────────────────────────────── -- Not on the watch out of the box: whoever wants them picks them up in -- the store. The category was already there, it was just empty. All four -- run without a phone and without a framework - a game that needs a -- connection is not one. { id = 'steigflug', label = 'Ascent', icon = 'sp-flug', color = '#5ac8fa', enabled = true, pro = false, kat = 'spiele' }, { id = 'turm', label = 'Tower', icon = 'sp-turm', color = '#ffd60a', enabled = true, pro = false, kat = 'spiele' }, { id = 'reflex', label = 'Reflex', icon = 'sp-ring', color = '#bf5af2', enabled = true, pro = false, kat = 'spiele' }, { id = 'ausweichen', label = 'Dodge', icon = 'sp-fall', color = '#ff453a', enabled = true, pro = false, kat = 'spiele' }, -- Angy, the built-in assistant (fixed rules, no AI). Runs the watch on request. Can be switched off during setup; -- then the app does not exist and the crown does nothing new. { id = 'agencyai', label = 'Angy', icon = 'agency-a', color = '#e2b649', enabled = true, pro = false, kat = 'system' }, { id = 'store', label = 'App Store', icon = 'einkauf', color = '#0a84ff', enabled = true, pro = false, kat = 'system' }, { id = 'einstellung', label = 'Settings', icon = 'zahnrad', color = '#8e8e93', enabled = true, pro = false, kat = 'system' }, } -- ═══════════════════════════════════════════════════════════════ -- 8c WEATHER -- Los Santos comes from the game. Everything else are real cities, and -- the watch fetches those values from open-meteo.com: free, no key and no -- sign-up, exactly the way the Agency Phone does it. -- -- If you do not want real cities, empty the list. The app then shows Los -- Santos only and the location switch disappears. -- ═══════════════════════════════════════════════════════════════ Config.Wetter = { staedte = { 'Berlin', 'Hamburg', 'München', 'Wien', 'Zürich', 'London', 'Paris', 'Madrid', 'Rom', 'Amsterdam', 'New York', 'Los Angeles', 'Miami', 'Tokio', 'Dubai', 'Sydney', 'Reykjavik', 'Kapstadt', }, -- How long fetched values stay valid before asking again (minutes). frischeMinuten = 15, } -- ═══════════════════════════════════════════════════════════════ -- 8a APP STORE -- Not everything is on the watch out of the box. What is missing the -- player picks up in the store, and what they do not need they delete -- again. Both are remembered per character, just like the watch face and -- the code. -- -- Pressing and holding an app makes the list wobble: then you can reorder -- and delete. -- ═══════════════════════════════════════════════════════════════ Config.AppStore = { enabled = true, -- What is installed out of the box. The rest waits in the store. -- Leaving this list empty means everything is there from the start. vorinstalliert = { 'telefon', 'nachrichten', 'geld', 'companion', 'meldungen', 'aktivitaet', 'wetter', 'stoppuhr', 'zifferblatt', 'studio', 'zero', 'agencyai', 'store', 'einstellung', }, -- These can never be deleted. Without settings and the store you could -- not reach anything any more, without the watch face app no other face, -- and without Studio no other colour: the theme list moved there from -- the settings. -- agencyai belongs here too: it hangs on the crown, and a press that -- leads nowhere would be worse than one app too many. Whoever does not -- want it switches it off during setup, and then it is gone entirely. fest = { 'einstellung', 'store', 'zifferblatt', 'studio', 'agencyai' }, -- How long a download takes in the store (seconds). 0 = instant. ladedauer = 2.0, } -- ═══════════════════════════════════════════════════════════════ -- 8b GARAGE -- View, locate and call vehicles. The list comes from the framework's -- database (QBCore: player_vehicles, ESX: owned_vehicles). Without a -- framework there are no vehicle owners, and then the app disappears. -- ═══════════════════════════════════════════════════════════════ Config.Garage = { enabled = true, -- May the watch call vehicles to you? -- false = the app only shows and locates. rufen = true, -- Calling a vehicle is remote control of that vehicle and therefore the -- Pro feature of this app. Viewing, locating and locking always stay -- free, so the app is never empty without a phone. -- Set to false, everyone may call. rufenNurPro = true, -- Seconds between two calls, per player. abklingzeit = 45, -- Cost per call. 0 = free. -- konto: 'bank' | 'cash' kosten = 0, konto = 'bank', -- Only show vehicles that are actually stored. A vehicle already -- standing on the street cannot be called again. nurEingelagerte = true, -- May a vehicle that is already out be located remotely? orten = true, -- Lock and unlock doors from nearby (metres). schliessweite = 15.0, -- Which vehicle table is read. 'auto' picks by framework. tabelle = 'auto', -- 'auto' | 'player_vehicles' | 'owned_vehicles' } -- Daily step goal. Drives the rings and the notification when it is -- reached. Entirely free, needs no phone. Config.Schrittziel = 8000 -- At which hour does the new day begin? That is when steps, distance, -- active time and calories are set to zero and the old day moves into the -- history. Game time counts here, not real time. -- -- 0 = midnight. If you do not want to lose the counter in the middle of the -- night, put 4 here for example: then 0 to 3 still belong to the day before. -- -- Restarting the script resets NOTHING. Only the change of day does that. Config.SchritteReset = 0 -- ═══════════════════════════════════════════════════════════════ -- CONTROL CENTRE -- Every tile really does something and is remembered. There used to be a -- battery indicator here; it is gone, because there is nothing to charge -- in game and the number was therefore pure decoration. -- -- Order and selection live in 'kacheln'. What is not listed here does not -- show up; change the order and you change it on the watch. -- -- Available: -- mobilfunk Link to the phone. Off = no calls, no notifications -- flugmodus switches cellular and Wi-Fi off together -- wlan Network. Off = no pairing, no weather -- lautlos Watch sounds off -- licht Light or dark appearance -- mini The small always-on display at the screen edge, on or off -- lampe Flashlight (see Config.Lampe) -- sturz Fall detection on or off (only if the server offers it) -- sperren Locks the watch immediately (only with a code set) -- wecker Opens the alarm -- pay Opens Agency Pay (Agency Phone only) -- garage Opens the garage -- -- Gone: 'kino', 'wegpunkt' and 'hierher'. Cinema mode silenced the watch -- completely and therefore stood next to 'lautlos', which does the same -- thing more understandably. The two waypoint tiles stood side by side as -- a pair, one setting a waypoint and the other clearing one; out of two, -- one is always the wrong one, and the in-game map can do both anyway. If -- they still appear in an old config, they are silently ignored. -- -- No longer in the default: wecker, pay and garage. They only open an app, -- and the quick menu on the crown exists for that: it knows more apps and -- picks the right ones. Whoever wants them here simply lists them. -- ═══════════════════════════════════════════════════════════════ Config.ControlCenter = { kacheln = { 'mobilfunk', 'flugmodus', 'lautlos', 'licht', 'lampe', 'mini', 'sturz', 'sperren', }, -- Brightness slider below the tiles hell = true, } -- ═══════════════════════════════════════════════════════════════ -- 9 AGENCY PHONE -- ═══════════════════════════════════════════════════════════════ Config.EnablePhone = true Config.PhoneResource = 'agency-phone' -- Where the button in a locked app leads. Straight to the Agency Phone, not -- to the front page: whoever ends up there is looking for that one product. Config.ShopUrl = 'https://shop.agencyg.de/en/product/phone' -- ═══════════════════════════════════════════════════════════════ -- 9b AGENCY COMPANION (phone app) -- The watch can pair with the Companion app all by itself, entirely -- without an Agency Phone. It signs in to the relay for that and keeps the -- connection open from its side, so the server only dials outwards and no -- port has to be opened. -- -- kanal: -- 'auto' if an Agency Phone runs, pairing goes through its connection -- (one way out instead of two). Without a phone the watch does -- it itself. -- 'immer' the watch always has its own channel -- 'nie' through the phone only; without a phone there is no pairing -- ═══════════════════════════════════════════════════════════════ Config.Companion = { enabled = true, -- 'immer' out of the box: the watch is a device of its own and should -- appear as one in the app, not as an accessory of the phone. If you -- want only one way out, switch to 'auto'. kanal = 'immer', relay = 'https://api.agencyg.de', -- How long a pairing code stays valid (seconds). codeDauer = 600, -- How many devices a player may have paired at the same time. maxGeraete = 5, -- "Find watch" from the app: the watch rings for at most this many -- seconds if nobody stops it in game. findenDauer = 60, } -- ═══════════════════════════════════════════════════════════════ -- FALL DETECTION AND EMERGENCY CALL -- The watch notices by itself when something has happened, comes out on -- its own and offers the emergency call. This runs entirely without an -- Agency Phone as well: a watch that can do nothing in an emergency would -- be useless at exactly the moment it is needed. -- ═══════════════════════════════════════════════════════════════ Config.Sturz = { enabled = true, -- How much damage in one hit counts as an emergency. -- The value is high on purpose: a punch or a fall off a kerb should not -- wake the watch. schaden = 35, -- Impact in a vehicle: speed lost in km/h within one tick. -- Damage has to occur as well, otherwise every hard brake would be a -- crash. tempoverlust = 45, -- Fall from height: damage taken while falling. sturzschaden = 20, -- Seconds the screen stays up on its own. dauer = 45, -- Seconds of quiet between two alerts. Without this the watch would -- speak up once a second during a brawl. abstand = 30, -- Where the emergency call goes when NO Agency Phone is present. -- Leave empty if the server has no way of its own: the watch then says -- honestly that it could not reach anyone. -- Both receive: { quelle, art, coords, street } notrufEvent = '', -- e.g. 'my-dispatch:server:emergency' notfallEvent = '', -- emergency contact instead of the ambulance } -- ═══════════════════════════════════════════════════════════════ -- Agency Pay terminals -- The watch adopts the terminals of the Agency Phone automatically. Ones -- entered here are added, and are in turn registered with the phone as -- well, so both devices know the same set. -- These terminals work without a phone too. -- ═══════════════════════════════════════════════════════════════ -- Empty out of the box. The Agency Phone terminals are adopted anyway, and -- a terminal shipped with the script would be a point on every foreign -- server that nobody there asked for. Add your own following this pattern: -- -- { id = 'my_terminal', coords = vector3(25.7, -1347.3, 29.5), -- merchant = '24/7 Strawberry', label = 'Agency Pay', radius = 3.0 }, -- Config.PayPunkte = {} -- Should your own terminals also show up on the map? -- Off as long as nothing stands above. Whoever adds their own terminals and -- wants them to be findable sets this to true. Config.PayPunkteBlip = false -- Which app on the phone continues an app of the watch. -- On the watch you can read but not write. Start typing a message there and -- the watch brings out the phone, unlocks it and jumps into the matching -- app. If an app on the phone is named differently, enter it here. Config.PhoneApps = { nachrichten = 'buzz', mail = 'postbox', kontakte = 'contacts', telefon = 'dialer', geld = 'wallet', } -- The watch's own icon on the phone's home screen. -- Set to false if the phone's full Watch app is used, so that there are not -- two entries next to each other. Config.RegisterPhoneApp = false -- ═══════════════════════════════════════════════════════════════ -- 9b PRO VERIFICATION -- There is NO secret here. The shared secret lives exclusively in the -- encrypted server/security.lua. The Pro edition is always decided on the -- server and only communicated to the client. -- ═══════════════════════════════════════════════════════════════ Config.Security = { -- Seconds between the regular re-checks RecheckSeconds = 300, -- Allowed clock drift in seconds during the handshake HandshakeSkew = 30, -- EMERGENCY ROUTE, OFF out of the box. -- The intended and secure route is the handshake with the genuine -- Agency Phone. It is built in from Phone version 26.5.4 onwards and -- needs no setup whatsoever. -- -- Only switch this on if the Agency Phone is older and cannot be updated -- right away. Then this applies: Pro goes to whoever owns the item named -- below AND whose phone looks genuine. That is weaker than the -- handshake. -- -- Careful when choosing the item: 'phone' is a standard item in QBCore -- that almost every player has from the start. Put it here and you give -- the Pro edition away to everyone. AllowItemFallback = false, PhoneItem = 'agency_phone', } -- ═══════════════════════════════════════════════════════════════ -- 10 YOUR OWN TEXTS -- All translations live in shared/sprachen.lua, ten languages, the same -- ones as in the Agency Phone. Only your own changes belong here. What -- stands here wins over the shipped translation and survives every update -- of the script. -- -- Example: -- Config.Text = { -- de = { apps = 'Programme', p_senden = 'Abschicken' }, -- en = { apps = 'Programs' }, -- } -- ═══════════════════════════════════════════════════════════════ Config.Text = {} -- Look up a label. Order: your own text, the selected language, English as -- the fallback. The raw key never appears. function T(schluessel) local code = Config.Locale or 'en' local eigen = Config.Text[code] if eigen and eigen[schluessel] then return eigen[schluessel] end local sprache = Sprachen[code] if sprache and sprache[schluessel] then return sprache[schluessel] end return Sprachen.en[schluessel] or '' end

Continuas sem avançar depois desta página? O nosso suporte assume daqui.