string.find()

Статус
В этой теме нельзя размещать новые ответы.

reversivecockblaster

Участник
Автор темы
23
2
Ребят, помогите то реально уже долго сижу и не понимаю с какого черта оно не видит слово в тексте. По идее оно должно найти в входящем сообщении ключ от массива Cap и вывести его значение в консоль и чат. Но на деле string.find просто выводит nil, вне зависимости от того есть ли там искомое слово или нет.

Сам код:
function smp.onServerMessage

    if AutoResponse.v then

        if text:sub(1, 6) == '[Radio' then

            for i,v in pairs(Cap) do

                if string.find(text, i) then

                    print(v)

                    sampSendChat(v)

                    return { color, text }

                end

            end

        end

    end
 
Решение
в ImGui у меня кириллица отображается корректно (это при utf-8)

В игре оно так отображается, в документе я переписал.
ImGUI поддерживает Unicode и поэтому отображает русские символы в UTF-8 кодировке, а SAMP не поддерживает Unicode и отображает русские символы в кодировке Windows-1251. Кодировка файла со скриптом должна быть установлена в значение CP1251, а русский текст в ImGUI кодироваться в UTF-8. Чтобы кодировать текст в UTF-8 используется библиотека encoding. Применяется она следующим образом:

Lua:
-- В начало скрипта
local encoding = require 'encoding'
encoding.default = 'CP1251'
local u8 = encoding.UTF8

-- Внутри ImGUI
imgui.Text(u8('Русский текст'))

reversivecockblaster

Участник
Автор темы
23
2

Pakulichev

Software Developer & System Administrator
Друг
1,789
2,134
в ImGui у меня кириллица отображается корректно (это при utf-8)

В игре оно так отображается, в документе я переписал.
ImGUI поддерживает Unicode и поэтому отображает русские символы в UTF-8 кодировке, а SAMP не поддерживает Unicode и отображает русские символы в кодировке Windows-1251. Кодировка файла со скриптом должна быть установлена в значение CP1251, а русский текст в ImGUI кодироваться в UTF-8. Чтобы кодировать текст в UTF-8 используется библиотека encoding. Применяется она следующим образом:

Lua:
-- В начало скрипта
local encoding = require 'encoding'
encoding.default = 'CP1251'
local u8 = encoding.UTF8

-- Внутри ImGUI
imgui.Text(u8('Русский текст'))
 
  • Нравится
Реакции: reversivecockblaster

reversivecockblaster

Участник
Автор темы
23
2
ImGUI поддерживает Unicode и поэтому отображает русские символы в UTF-8 кодировке, а SAMP не поддерживает Unicode и отображает русские символы в кодировке Windows-1251. Кодировка файла со скриптом должна быть установлена в значение CP1251, а русский текст в ImGUI кодироваться в UTF-8. Чтобы кодировать текст в UTF-8 используется библиотека encoding. Применяется она следующим образом:

Lua:
-- В начало скрипта
local encoding = require 'encoding'
encoding.default = 'CP1251'
local u8 = encoding.UTF8

-- Внутри ImGUI
imgui.Text(u8('Русский текст'))
Спасибо, теперь работает.
 
Статус
В этой теме нельзя размещать новые ответы.