Баг Moonloader | Дублирование кода в потоке

Hatiko

Известный
Автор темы
Проверенный
1,471
612
Версия MoonLoader
.026-beta
Приветствую форумчане.
Вообще произошла не очень приятная вещь. В созданных потоках начал выполняться код по два раза.
Всё началось с того, что я решил поискать проблему, почему не работала bass.lua либа спустя пол года... Переустановил игру, закинул самое необходимое, либа заработала. Но увидел в чате, что начались дублироваться строчки, которые были прописаны в поток скрипта. Перевернул все файлы верх дном, всё перерыл, понять не могу почему.
Установил чистую игру, samp R1, cleo 4.1, SF 5.4.1, Moon 0.26, базовый комплект либ для муна (samp.lua, imgui, rkeys.lua) и тестовый скрипт. В тестовом скрипте собственно нихера ничего нет, кроме main потока и своего созданного с print() функции, чтобы видеть результат.
 

Hatiko

Известный
Автор темы
Проверенный
1,471
612
Очень интересный код...

Lua:
function main()
    repeat wait(100) until isSampAvailable()

    -- repeat wait(100) until sampIsLocalPlayerSpawned()
    
    ---------------------------------------
  while true do
    wait(0)

  end
end

lua_thread.create(function()
    print(0)
end)
Собственно print(0) два раза выполняется.
 

Hatiko

Известный
Автор темы
Проверенный
1,471
612
Ну начнем с того, что print(0) не выведет в консоль ничего, а закончим тем, что заменив 0, допустим, на "test", сообщение отправляется 1 раз. Т.е никакого бага, по-крайней мере у меня, нет
Хорошо, как тебе такой расклад?

Lua:
function main()
    repeat wait(100) until isSampAvailable()
    lua_thread.create(function()
        sampAddChatMessage("Test",-1)
    end)
    -- repeat wait(100) until sampIsLocalPlayerSpawned()
    
    ---------------------------------------
  while true do
    wait(0)

  end
end
 

Вложения

  • sa-mp-000.png
    sa-mp-000.png
    295.1 KB · Просмотры: 119

sᴀxᴏɴ

#Mary
Всефорумный модератор
791
846
Хорошо, как тебе такой расклад?

Lua:
function main()
    repeat wait(100) until isSampAvailable()
    lua_thread.create(function()
        sampAddChatMessage("Test",-1)
    end)
    -- repeat wait(100) until sampIsLocalPlayerSpawned()
   
    ---------------------------------------
  while true do
    wait(0)

  end
end
просто отлично. проблема, видимо, у тебя. если бы в мунлоадере 0.26 был такой баг, то его бы уже в день релиза и пофиксили
1600802542224.png
 
  • Нравится
Реакции: Hatiko

Hatiko

Известный
Автор темы
Проверенный
1,471
612
просто отлично. проблема, видимо, у тебя
В том и прикол, что он из воздуха появился.


22:39 | Произошёл какой-то сдвиг. Обновил gta_set.exe. Баг на одной папке игры исправился. На других результата нет. Пока пробую переустановить игру и повторить алгоритм воспроизведения бага и его предполагаемый фикс.
 
Последнее редактирование:

севен мемз)

t.me/sssecretway | ТГК: t.me/razor_code
Модератор
1,898
3,071
Проверил твой код, все нормально выводится (один раз)
На счет дублирования, это баг в сампе.
Когда одно сообщение появляется одновременно с другим, они багаются т.е может замениться цвет, текст и т.д
 

Gorskin

{Reverse Developer} ✓
Проверенный
1,256
1,058
Проверь C:\Users\<username>AppData\Local\VirtualStore
М.б что там не так? У меня помню была проблема в том что я удаляю мод какой из гта, захожу в игру а он не удалён, долго голову ломал над этим пока не нашел файлы по пути выше.
 

Hatiko

Известный
Автор темы
Проверенный
1,471
612
Конечно по рофлу проверять такой код. 😀
Когда одно сообщение появляется одновременно с другим, они багаются т.е может замениться цвет, текст и т.д
Не, это не из-за этого, очень мало вероятно.


23:27 | Устанавливая Moonloader 0.27 pre3, баг пропадает странным образом. Пока ищу причину, раньше 0,26 работало нормально.


Наконец-то. Проблема найдена.
Решил запустить очень старую папку, где 0,26 мун стоит, там нормально всё. Решил перекинуть из этой папки Moonloader.asi, смотрю,в окне замене пишет, что перемещаемый файл (1.98 MB) больше текущего (1.97 MB).
Чекнул логи муна. В старом пишет v.026.5-beta, а где проблема v.026-beta. Потестировав ещё несколько раз с этими файлами, пришёл к выводу, что причина заключалась в версии самого муна.
Moonloader версии именно 0.26 обладает таким багом, хз как у других будет, попробуйте потестировать, я прикреплю файл. Установливая Moonloader v.026.5-beta, проблема пропадает.
Оказывается всё это время, устанавливая Moonloader 0.26 (говоря 0.26, подразумевается последний релиз этот версии), ставился именно Moonloader 0.26, а не v.026.5-beta.
Спасибо всем, кто откликнулся.
 

Вложения

  • MoonLoader.asi
    2 MB · Просмотры: 3
Последнее редактирование: