хук русского текста с текстдравов

iOS

Активный
Автор темы
131
29
Версия MoonLoader
.026-beta
нашел соответствующий снипет, но он не помог, мб что-то не так делаю?
Lua:
function RusToGame(text)
  local convtbl = {[230]=155,[231]=159,[247]=164,[234]=107,[250]=144,[251]=168,[254]=171,[253]=170,[255]=172,[224]=97,[240]=112,[241]=99,[226]=162,[228]=154,[225]=151,[227]=153,[248]=165,[243]=121,[184]=101,[235]=158,[238]=111,[245]=120,[233]=157,[242]=166,[239]=163,[244]=63,[237]=174,[229]=101,[246]=36,[236]=175,[232]=156,[249]=161,[252]=169,[215]=141,[202]=75,[204]=77,[220]=146,[221]=147,[222]=148,[192]=65,[193]=128,[209]=67,[194]=139,[195]=130,[197]=69,[206]=79,[213]=88,[168]=69,[223]=149,[207]=140,[203]=135,[201]=133,[199]=136,[196]=131,[208]=80,[200]=133,[198]=132,[210]=143,[211]=89,[216]=142,[212]=129,[214]=137,[205]=72,[217]=138,[218]=167,[219]=145}
  local result = {}
  for i = 1, #text do
      local c = text:byte(i)
      result[i] = string.char(convtbl[c] or c)
  end
  return table.concat(result)
end
function sampev.onShowTextDraw(textdrawId, data)
  sampAddChatMessage('Text: '..RusToGame(data.text)..' id:'..textdrawId,-1)
end
но он все равно выводит подобное: Text: €ABEPЋ…T’ id:2124
 
Решение
D
нашел соответствующий снипет, но он не помог, мб что-то не так делаю?
Lua:
function RusToGame(text)
  local convtbl = {[230]=155,[231]=159,[247]=164,[234]=107,[250]=144,[251]=168,[254]=171,[253]=170,[255]=172,[224]=97,[240]=112,[241]=99,[226]=162,[228]=154,[225]=151,[227]=153,[248]=165,[243]=121,[184]=101,[235]=158,[238]=111,[245]=120,[233]=157,[242]=166,[239]=163,[244]=63,[237]=174,[229]=101,[246]=36,[236]=175,[232]=156,[249]=161,[252]=169,[215]=141,[202]=75,[204]=77,[220]=146,[221]=147,[222]=148,[192]=65,[193]=128,[209]=67,[194]=139,[195]=130,[197]=69,[206]=79,[213]=88,[168]=69,[223]=149,[207]=140,[203]=135,[201]=133,[199]=136,[196]=131,[208]=80,[200]=133,[198]=132,[210]=143,[211]=89,[216]=142,[212]=129,[214]=137,[205]=72,[217]=138,[218]=167,[219]=145}
  local result = {}
  for i = 1, #text do
      local...
D

deleted-user-139653

Гость
нашел соответствующий снипет, но он не помог, мб что-то не так делаю?
Lua:
function RusToGame(text)
  local convtbl = {[230]=155,[231]=159,[247]=164,[234]=107,[250]=144,[251]=168,[254]=171,[253]=170,[255]=172,[224]=97,[240]=112,[241]=99,[226]=162,[228]=154,[225]=151,[227]=153,[248]=165,[243]=121,[184]=101,[235]=158,[238]=111,[245]=120,[233]=157,[242]=166,[239]=163,[244]=63,[237]=174,[229]=101,[246]=36,[236]=175,[232]=156,[249]=161,[252]=169,[215]=141,[202]=75,[204]=77,[220]=146,[221]=147,[222]=148,[192]=65,[193]=128,[209]=67,[194]=139,[195]=130,[197]=69,[206]=79,[213]=88,[168]=69,[223]=149,[207]=140,[203]=135,[201]=133,[199]=136,[196]=131,[208]=80,[200]=133,[198]=132,[210]=143,[211]=89,[216]=142,[212]=129,[214]=137,[205]=72,[217]=138,[218]=167,[219]=145}
  local result = {}
  for i = 1, #text do
      local c = text:byte(i)
      result[i] = string.char(convtbl[c] or c)
  end
  return table.concat(result)
end
function sampev.onShowTextDraw(textdrawId, data)
  sampAddChatMessage('Text: '..RusToGame(data.text)..' id:'..textdrawId,-1)
end
но он все равно выводит подобное: Text: €ABEPЋ…T’ id:2124
Сообщение в теме 'Проблема с отображением getGxtText' https://www.blast.hk/threads/196469/post-1419616

Так чисто к примеру
Lua:
function decodeText(encodedText)
    local dictionary = {
        ['a'] = 'а',
        ['A'] = 'А',
        ['—'] = 'б',
        ['Ђ'] = 'Б',
        ['ў'] = 'в',
        ['‹'] = 'В',
        ['™'] = 'г',
        ['‚'] = 'Г',
        ['љ'] = 'д',
        ['ѓ'] = 'Д',
        ['e'] = 'е',
        ['E'] = 'Е',
        ['›'] = 'ж',
        ['„'] = 'Ж',
        ['џ'] = 'з',
        ['€'] = 'З',
        ['њ'] = 'и',
        ['…'] = 'И',
        ['ќ'] = 'й',
        ['k'] = 'к',
        ['K'] = 'К',
        ['ћ'] = 'л',
        ['‡'] = 'Л',
        ['Ї'] = 'м',
        ['M'] = 'М',
        ['®'] = 'н',
        ['H'] = 'Н',
        ['o'] = 'о',
        ['O'] = 'О',
        ['Ј'] = 'п',
        ['Њ'] = 'П',
        ['p'] = 'р',
        ['P'] = 'Р',
        ['c'] = 'с',
        ['C'] = 'С',
        ['¦'] = 'т',
        ['Џ'] = 'Т',
        ['y'] = 'у',
        ['Y'] = 'У',
        ['?'] = 'ф',
        ['Ѓ'] = 'Ф',
        ['x'] = 'х',
        ['X'] = 'Х',
        ['$'] = 'ц',
        ['‰'] = 'Ц',
        ['¤'] = 'ч',
        ['Ќ'] = 'Ч',
        ['Ґ'] = 'ш',
        ['Ћ'] = 'Ш',
        ['Ў'] = 'щ',
        ['Љ'] = 'Щ',
        ['©'] = 'ь',
        ['’'] = 'Ь',
        ['ђ'] = 'ъ',
        ['§'] = 'Ъ',
        ['Ё'] = 'ы',
        ['‘'] = 'Ы',
        ['Є'] = 'э',
        ['“'] = 'Э',
        ['«'] = 'ю',
        ['”'] = 'Ю',
        ['¬'] = 'я',
        ['•'] = 'Я'
    }

    local decodedText = ""
    local i = 1
    while i <= #encodedText do
        local char = encodedText:sub(i, i)

        -- Проверяем, существует ли текущий символ в словаре
        if dictionary[char] then
            decodedText = decodedText .. dictionary[char]
        else
            -- Если символ не найден в словаре, оставляем его без изменений
            decodedText = decodedText .. char
        end

        i = i + 1
    end

    return decodedText
end

function main()
    sampRegisterChatCommand("test", function()
        text = sampTextdrawGetString(2056)
        sampAddChatMessage(decodeText(text), -1)
    end)
    wait(-1)
end

1705571937178.png
 
Последнее редактирование модератором:
  • Нравится
Реакции: iOS
D

deleted-user-139653

Гость
спасибо, работает.
не знаешь случайно почему проверка не работает?

Lua:
function decodeText(encodedText) -- хук текста с текстдрава на русский
    local dictionary = {
   ['a'] = 'а', ['A'] = 'А', ['—'] = 'б', ['Ђ'] = 'Б', ['ў'] = 'в', ['‹'] = 'В', ['™'] = 'г', ['‚'] = 'Г', ['љ'] = 'д', ['ѓ'] = 'Д', ['e'] = 'е', ['E'] = 'Е', ['›'] = 'ж', ['„'] = 'Ж', ['џ'] = 'з', ['€'] = 'З', ['њ'] = 'и', ['…'] = 'И', ['ќ'] = 'й', ['k'] = 'к', ['K'] = 'К', ['ћ'] = 'л', ['‡'] = 'Л', ['Ї'] = 'м', ['M'] = 'М', ['®'] = 'н', ['H'] = 'Н', ['o'] = 'о', ['O'] = 'О', ['Ј'] = 'п', ['Њ'] = 'П', ['p'] = 'р', ['P'] = 'Р', ['c'] = 'с', ['C'] = 'С', ['¦'] = 'т', ['Џ'] = 'Т', ['y'] = 'у', ['Y'] = 'У', ['?'] = 'ф', ['Ѓ'] = 'Ф', ['x'] = 'х', ['X'] = 'Х', ['$'] = 'ц', ['‰'] = 'Ц', ['¤'] = 'ч', ['Ќ'] = 'Ч', ['Ґ'] = 'ш', ['Ћ'] = 'Ш', ['Ў'] = 'щ', ['Љ'] = 'Щ', ['©'] = 'ь', ['’'] = 'Ь', ['ђ'] = 'ъ',['§'] = 'Ъ',['Ё'] = 'ы',['‘'] = 'Ы',['Є'] = 'э',['“'] = 'Э',['«'] = 'ю',['”'] = 'Ю',['¬'] = 'я',['•'] = 'Я'}
    local decodedText = ""
    local i = 1
  while i <= #encodedText do
  local char = encodedText:sub(i, i)
   -- Проверяем, существует ли текущий символ в словаре
  if dictionary[char] then
      decodedText = decodedText .. dictionary[char]
  else
      -- Если символ не найден в словаре, оставляем его без изменений
      decodedText = decodedText .. char
  end
   i = i + 1
  end
  return decodedText
  end
function sampev.onShowTextDraw(textdrawId, data)
lua_thread.create(function()
    if data.text:find('ЗАВЕРШИТЬ') then
        sampAddChatMessage('проверка ворк', -1)
        wait(2000)
        sampSendClickTextdraw(textdrawId)
    end
end)
end
я не знаю в чем прикол, надо искать текст так...
мой пример

Lua:
local sampev = require("samp.events")

function sampev.onShowTextDraw(id, data)
    if data.text:find("ToЈћњўo") then
        sampAddChatMessage("Я тебя нашел", -1)
    end
end

тебе же надо по сути

Lua:
local sampev = require("samp.events")

function sampev.onShowTextDraw(id, data)
    if data.text:find("€ABEPЋ…T’") then
        sampAddChatMessage("Я тебя нашел", -1)
    end
end
 
  • Нравится
Реакции: iOS