Код работает с косяками

wintreist

Активный
Автор темы
308
71
Версия MoonLoader
.026-beta
Отлавливаю я GameText'ы, и пересоздаю их с задержкой:
zxz3g8g.png

И вроде бы всё работает, тексты пересоздаются, вот только если одновременно появляются два текста, то всё идёт по пизде не по плану:

pgxlA4S.png

omqeMqL.png

на правом нижнем должна была появиться надпись Lada priora, а вывело это.

Может вы подскажете в чем проблема?

@chapo Надеюсь на вас
 
Последнее редактирование:

wintreist

Активный
Автор темы
308
71
Lua:
local on = require('lib.samp.events')
function on.onDisplayGameText(style, time, text)
    lua_thread.create(function()
        if isCharInAnyCar(playerPed) and not text:find('Comfort!') then
            sampAddChatMessage(style..' '..time..' '..text,-1)
            wait(1000)
            printStyledString(text, time, style+1)
        end
    end)
end
Спасибо) Но я хотел понять, почему в thread'е выводится style:comfort, а не lada priora
 

wintreist

Активный
Автор темы
308
71
а зачем вообще создавать свой, если можно редактировать серверный?
Мне нужно вывести его с задержкой

Потому что отправляется сразу два GameText

Посмотреть вложение 151727
Прошу обратить ваше внимание на timestamp
Да, но сервер же как-то это делает, как-то выводит сразу 2 текста, когда садишься в машину

Потому что отправляется сразу два GameText

Посмотреть вложение 151727
Прошу обратить ваше внимание на timestamp
Я только что попробовал отключить вообще хук текста, и оказывается, я сажусь в тачку, а её название и не выводится вовсе
 

qdIbp

Автор темы
Проверенный
1,451
1,190
Я только что попробовал отключить вообще хук текста, и оказывается, я сажусь в тачку, а её название и не выводится вовсе
Это всеми известный факт гейзоны

а зачем вообще создавать свой, если можно редактировать серверный?
Вот тут я соглашусь со смайликом
 

qdIbp

Автор темы
Проверенный
1,451
1,190
Lua:
local ev = require 'lib.samp.events'

function ev.onDisplayGameText(style, time, text)
    if text:find("~n~~n~~n~~n~~n~~n~~n~~n~~w~Style: .+" then
        return { style+1, time, text }
    end
end
Попробуй
КОД:
local ev = require 'lib.samp.events'

function ev.onDisplayGameText(style, time, text)
    if not text:find("~n~~n~~n~~n~~n~~n~~n~~n~~w~Style: .+") and isCharInAnyCar(playerPed) then
        return { style+1, time, text }
    end
end
Ему же надо вывести название авто
 

wintreist

Активный
Автор темы
308
71
Хорошо, я окончательно запутался, так что вопрос теперь стоит так:
Как мне отложить появление gametext'a?
Вот мне приходит с сервера он, а мне нужно чтобы он был выведен спустя какое-то количество времени
 

qdIbp

Автор темы
Проверенный
1,451
1,190
Не то даже при простом /time будет меняться стиль

Хорошо, я окончательно запутался, так что вопрос теперь стоит так:
Как мне отложить появление gametext'a?
Вот мне приходит с сервера он, а мне нужно чтобы он был выведен спустя какое-то количество времени
Lua:
local ev = require 'lib.samp.events'

function ev.onDisplayGameText(style, time, text)
    lua_thread.create(function()
    if not text:find("~n~~n~~n~~n~~n~~n~~n~~n~~w~Style: .+") and isCharInAnyCar(playerPed) then
        wait(1000)
        return { style+1, time, text }
    end
   end)
end
 

wintreist

Активный
Автор темы
308
71
Не то даже при простом /time будет меняться стиль


Lua:
local ev = require 'lib.samp.events'

function ev.onDisplayGameText(style, time, text)
    lua_thread.create(function()
    if not text:find("~n~~n~~n~~n~~n~~n~~n~~n~~w~Style: .+") and isCharInAnyCar(playerPed) then
        wait(1000)
        return { style+1, time, text }
    end
   end)
end
разве можно делать return в thread? И он выведет текст сразу

так просто wait поставь там и будет тебе с задержкой без костылей, в чем проблема?
Потому что wait, ни где не работает, кроме main и thread

Не то даже при простом /time будет меняться стиль


Lua:
local ev = require 'lib.samp.events'

function ev.onDisplayGameText(style, time, text)
    lua_thread.create(function()
    if not text:find("~n~~n~~n~~n~~n~~n~~n~~n~~w~Style: .+") and isCharInAnyCar(playerPed) then
        wait(1000)
        return { style+1, time, text }
    end
   end)
end
Не работает, он выводит текст сразу, а по прошествии wait'a ничего не происходит
 
  • Нравится
Реакции: moreveal