Взаимодействие с текстами сервера...

Lo_Smite

Участник
Автор темы
56
9
Версия MoonLoader
.026-beta
sa-mp-053.png


Как мне менять именно какую-то строку в этом диалоге? Он серверный и также может постоянно меняться. Как мне сменить к примеру только [6] tophat01 на "Черный цилиндр"? Ниже код того что я написал. Он не работает. Даже если идеально подставлять [6]

Lua:
require "lib.moonloader" -- подключение библиотеки
local sampev = require "lib.samp.events"
local samprak = require 'lib.samp.raknet'

----Для диалога крч----
[0] GlassesNew Tinted
[1] Band Black & White
[2] GlassesType28
[3] PlainHelmet1
[4] Mask Skulls Black
[5] HatBowler Yelow
[6] tophat01
[7] tophat02
---------------------
GNT = "Черные очки с прозрачным стеклом"
BBW = "Черная головная бандана с черепами"
GT28 = "Черные очки с темным стеклом"
PH1 = "Черная панама"
MSK = "Черная маска-бандана"
t1 = "Черный цилиндр"
t2 = "Белый цилиндр"
HWY = "Желтая шляпа"
----Закончилось------

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

function sampev.onShowDialog(dialogId, style, title, button1, button2, text)
    if text:find("tophat01") then
        text = text:gsub("tophat01", t1)
        return {dialogId, style, title, button1, button2, text}
       end
end
 
Решение
Lua:
t1 = "Черный цилиндр"

function sampev.onShowDialog(dialogId, style, title, button1, button2, text)
     
      if text:find("tophat01") then
       
      s = text:gsub("tophat01", t1);
      text = s
   end
    return {dialogId, style, title, button1, button2, text}
end
Если не сработает , 3 параметр функции gsub передай индекс начало вхождения которая возвращает text:find
мб дело в [ ] перед строкой
[0] GlassesNew Tinted
[1] Band Black & White
[2] GlassesType28
[3] PlainHelmet1
[4] Mask Skulls Black
[5] HatBowler Yelow
[6] tophat01
[7] tophat02
Убери , или или за комментируй .

Salvatore_Ferrari

Известный
427
239
Lua:
t1 = "Черный цилиндр"

function sampev.onShowDialog(dialogId, style, title, button1, button2, text)
     
      if text:find("tophat01") then
       
      s = text:gsub("tophat01", t1);
      text = s
   end
    return {dialogId, style, title, button1, button2, text}
end
Если не сработает , 3 параметр функции gsub передай индекс начало вхождения которая возвращает text:find
мб дело в [ ] перед строкой
[0] GlassesNew Tinted
[1] Band Black & White
[2] GlassesType28
[3] PlainHelmet1
[4] Mask Skulls Black
[5] HatBowler Yelow
[6] tophat01
[7] tophat02
Убери , или или за комментируй .