İçeriğe geç

Uyarı Ekranı Butonları

GTA V uyarı ekranında hangi talimat butonlarının görüneceğini seç, SetWarningMessage / SetWarningMessageWithHeader için tam flag değerini al.

Bu araç ve notları şimdilik İngilizce.

HesaplayıcılarNative, FlagDokümanları oku

30 flags · 2 set

Presets

Button flags

Decimal
Hex
Binary
Set flags
Expression

YES | NO

Preview

Alert

Are you sure you want to leave the server?

Unsaved progress will be lost.

EnterYesEscNo

Text

warning.lua
local WARNING_FLAGS = 36 -- YES | NO

-- Warning screens only take text entries, so register our own.
AddTextEntry("FM_WARN_HEADER", "Alert")
AddTextEntry("FM_WARN_LINE1", "Are you sure you want to leave the server?")
AddTextEntry("FM_WARN_LINE2", "Unsaved progress will be lost.")

--- Shows the warning screen every frame until the player picks an option.
---@return "accept"|"cancel"
local function ShowWarning()
    while true do
        SetWarningMessageWithHeader("FM_WARN_HEADER", "FM_WARN_LINE1", WARNING_FLAGS, "FM_WARN_LINE2", false, -1, true, 0, true)

        -- Input group 2 (frontend) still works while the warning is shown.
        if IsControlJustPressed(2, 201) or IsControlJustPressed(2, 217) then return "accept" end -- Enter / A (INPUT_FRONTEND_ACCEPT, INPUT_FRONTEND_SELECT)
        if IsControlJustPressed(2, 202) then return "cancel" end -- Esc / Backspace / B (INPUT_FRONTEND_CANCEL)
        Wait(0)
    end
end

CreateThread(function()
    local choice = ShowWarning()
    if choice == "accept" then
        print("Accepted")
    elseif choice == "cancel" then
        print("Cancelled")
    end
end)

How the button flags work

The instructionalKey / flags argument of SetWarningMessage andSetWarningMessageWithHeader is a bit field. Each bit adds one instructional button to the bottom of the alert screen. Add the values of the buttons you want: Yes (4) + No (32) =36.

SetWarningMessageWithHeader(titleMsg, entryLine1, flags, promptMsg, p4, p5, background, p7, showBg)

Things to know

  • The warning must be drawn every frame, so call it inside a loop with Wait(0).
  • It only accepts text entries, not raw strings. Register your own with AddTextEntry("MY_KEY", "text"), like the generated snippet does.
  • The buttons are only visual. You still have to check the keys yourself. Normal controls are blocked while the warning is up, but frontend controls in input group 2 still work: 201 accept (Enter),202 cancel (Esc), 203 alternative (Space).
  • Several bits share the same key, for example Select, OK, Yes and Continue are all Enter. The preview shows what the player sees, the snippet groups them into accept / cancel / alt.
  • The constant names in this tool (YES, CANCEL_TRANSFER…) are descriptive, the game has no official names for most bits.

Button list and bit order from Vespura'swarning buttons tool, checked against eInstructionalButtonTypes in the FiveM native docs.