Что не так в скрипте?

Phoenixx7

Участник
Автор темы
59
5
Версия MoonLoader
Другое
Хотел вывести Time HUD из Medical Helper-а, но получилась такая вещь.
Код:
require 'lib.samp.events'

function hudTimeF() -- начало функции
    local success = ffi.C.GetKeyboardLayoutNameA(KeyboardLayoutName)
    local errorCode = ffi.C.GetLocaleInfoA(tonumber(ffi.string(KeyboardLayoutName), 16), 0x00000002, LocalInfo, BuffSize)
    local localName = ffi.string(LocalInfo)
    local capsState = ffi.C.GetKeyState(20)
    local function lang()
        local str = string.match(localName, "([^%(]*)")
        if str:find("Русский") then
            return "Ru"
        elseif str:find("Английский") then
            return "En"
        end -- завершает elseif
    end -- завершает if
    local text = string.format("%s | {ffeeaa}%s{ffffff} %s", os.date("%d ")..month[tonumber(os.date("%m"))]..os.date(" - %H:%M:%S"), lang(), getStrByState2(capsState))
    if thread:status() ~= "dead" then
        renderFontDrawText(fontPD, text, 20, sy-50, 0xFFFFFFFF)
    else
        renderFontDrawText(fontPD, text, 20, sy-25, 0xFFFFFFFF)
    end
end -- конец функции
Хотел вывести это:
aAFr3nq7JUU.jpg


ой, щас перезалью
 
Последнее редактирование:
Решение
Хотел вывести Time HUD из Medical Helper-а, но получилась такая вещь.
Код:
require 'lib.samp.events'

function hudTimeF() -- начало функции
    local success = ffi.C.GetKeyboardLayoutNameA(KeyboardLayoutName)
    local errorCode = ffi.C.GetLocaleInfoA(tonumber(ffi.string(KeyboardLayoutName), 16), 0x00000002, LocalInfo, BuffSize)
    local localName = ffi.string(LocalInfo)
    local capsState = ffi.C.GetKeyState(20)
    local function lang()
        local str = string.match(localName, "([^%(]*)")
        if str:find("Русский") then
            return "Ru"
        elseif str:find("Английский") then
            return "En"
        end -- завершает elseif
    end -- завершает if
    local text = string.format("%s | {ffeeaa}%s{ffffff} %s"...

Phoenixx7

Участник
Автор темы
59
5

qdIbp

Автор темы
Проверенный
1,386
1,141
  • Нравится
Реакции: Phoenixx7

Dark.

Известный
1,748
769
  • Нравится
Реакции: Phoenixx7

Phoenixx7

Участник
Автор темы
59
5
Сделал, тот же результат :(, щас снова попробую, вдруг я рукожоп

1639740920158.png

Получилось! Можете пожалуйста теперь помочь со цветом? Язык то что, знаю, что мелочь, но как-то хочется

Верни кириллица и с форума скопируй русскую версию
Все работает, но когда меняю язык, снизу не показывает, что поменялось на русский или англ
 
Последнее редактирование:
  • Нравится
Реакции: qdIbp
У

Удалённый пользователь 448549

Гость
Сделал, тот же результат :(, щас снова попробую, вдруг я рукожоп

Посмотреть вложение 126977
Получилось! Можете пожалуйста теперь помочь со цветом? Язык то что, знаю, что мелочь, но как-то хочется


Все работает, но когда меняю язык, снизу не показывает, что поменялось на русский или англ
Lua:
require('moonloader')
local font_flag = require('moonloader').font_flag
local ffi = require('ffi')

ffi.cdef[[
    bool GetKeyboardLayoutNameA(char* pwszKLID);
    int GetLocaleInfoA(int Locale, int LCType, char* lpLCData, int cchData);
]]

local KeyboardLayoutName = ffi.new('char[10]')
local LocalInfo = ffi.new('char[10]')

function getLayoutName()
    ffi.C.GetKeyboardLayoutNameA(KeyboardLayoutName)
    ffi.C.GetLocaleInfoA(tonumber(ffi.string(KeyboardLayoutName), 16), 0x3, LocalInfo, ffi.sizeof(LocalInfo))
    local res = ffi.string(LocalInfo):sub(1, 2)
    return res
end

local month = {
    [1] = 'Январь',
    [2] = 'Февраль',
    [3] = 'Март',
    [4] = 'Апрель',
    [5] = 'Май',
    [6] = 'Июнь',
    [7] = 'Июль',
    [8] = 'Август',
    [9] = 'Сентябрь',
    [10] = 'Октябрь',
    [11] = 'Ноябрь',
    [12] = 'Декабрь'
}

function main()
    if (not isSampLoaded() or not isSampfuncsLoaded()) then
        return
    end
    while (not isSampAvailable()) do
        wait(100)
    end

    local font = renderCreateFont('Verdana', 12, font_flag.BOLD + font_flag.SHADOW + font_flag.BORDER)
    local resX, resY = getScreenResolution()

    while (true) do

        renderFontDrawText(font, string.format('%s - %s | %s | %s', os.date('%d'), month[os.date('*t').month], os.date('%H:%M:%S'), getLayoutName()), 20, resY - 25, 0xFFFFFFFF)

        wait(0)
    end
end
 
  • Нравится
Реакции: Phoenixx7

qdIbp

Автор темы
Проверенный
1,386
1,141
  • Нравится
Реакции: Phoenixx7