Проблема с пингом MonetLoader

$Mr.R1ch$

Активный
Автор темы
242
33
Версия MoonLoader
Другое
Столкнулся с такой проблемой. В свой скрипт добавил возможность отображать свой текущий пинг, на мобайле такая проблема, что при спавне - пинг не отображается, просто стоит 0, если же открыть список игроков, то значение пинга начнет отображаться, но не обновляется постоянно. Я написал тестовый скрипт для ПК, и там же с пингом все хорошо, он обновляется и показывает текущий пинг, может быть это из за самого MonetLoader'а, но точно не знаю. Может кто то знает как можно пофиксить? (Кинул видео как это выглядет)
PC(Moonloader 0.26) - *тык*
Mobile(MonetLoader 3.5.0) - *тык*
(Код скрипта)
Lua:
local imgui = require 'mimgui'
local new = imgui.new

local WinState = imgui.new.bool()

imgui.OnFrame(function() return WinState[0] end, function()
imgui.Begin('Test Window', WinState, imgui.WindowFlags.AlwaysAutoResize)
imgui.Text('Ping Player: '..sampGetPlayerPing(select(2, sampGetPlayerIdByCharHandle(PLAYER_PED))))
imgui.End()
end)

function main()
while not isSampAvailable() do
        wait(100)
    end
    wait(500)
    sampRegisterChatCommand("testping", function() WinState[0] = not WinState[0] end)
    sampAddChatMessage('Скрипт запущен!', -1)
    end
 

Iskon

Участник
112
18
Код:
local imgui = require 'mimgui'
local new = imgui.new

local WinState = imgui.new.bool()

imgui.OnFrame(function() return WinState[0] end, function()
imgui.Begin('Test Window', WinState, imgui.WindowFlags.AlwaysAutoResize)
imgui.Text('Ping Player: '..sampGetPlayerPing(select(2, sampGetPlayerIdByCharHandle(PLAYER_PED))))
imgui.End()
end)

function main()
while not isSampAvailable() do
        wait(100)
    end
    wait(500)
    sampRegisterChatCommand("testping", function()
 WinState[0] = not WinState[0]
 local bs = raknetNewBitStream()
 raknetEmulRpcReceiveBitStream(155, bs) 
 end)
    sampAddChatMessage('Скрипт запущен!', -1)
    end
Попробуй
 

$Mr.R1ch$

Активный
Автор темы
242
33
Код:
local imgui = require 'mimgui'
local new = imgui.new

local WinState = imgui.new.bool()

imgui.OnFrame(function() return WinState[0] end, function()
imgui.Begin('Test Window', WinState, imgui.WindowFlags.AlwaysAutoResize)
imgui.Text('Ping Player: '..sampGetPlayerPing(select(2, sampGetPlayerIdByCharHandle(PLAYER_PED))))
imgui.End()
end)

function main()
while not isSampAvailable() do
        wait(100)
    end
    wait(500)
    sampRegisterChatCommand("testping", function()
 WinState[0] = not WinState[0]
 local bs = raknetNewBitStream()
 raknetEmulRpcReceiveBitStream(155, bs)
 end)
    sampAddChatMessage('Скрипт запущен!', -1)
    end
Попробуй
Короче, я как понял проблема сама в аризоне мобайл. При открытии Таба, у всех лвл и пинг 0, а если снова открыть, то информация обновится до актуальной. Но теперь надо попробовать сделать так, чтобы показало актуальную информацию о пинге когда он поменяется.
 

Iskon

Участник
112
18
Короче, я как понял проблема сама в аризоне мобайл. При открытии Таба, у всех лвл и пинг 0, а если снова открыть, то информация обновится до актуальной. Но теперь надо попробовать сделать так, чтобы показало актуальную информацию о пинге когда он поменяется.
Исправления в коде хоть как-то повлияли на что-то?

Если да, то попробуй так:

Код:
local imgui = require 'mimgui'
local new = imgui.new

local WinState = imgui.new.bool()

imgui.OnFrame(function() return WinState[0] end, function()
imgui.Begin('Test Window', WinState, imgui.WindowFlags.AlwaysAutoResize)
imgui.Text('Ping Player: '..sampGetPlayerPing(select(2, sampGetPlayerIdByCharHandle(PLAYER_PED))))
imgui.End()
end)

function main()
while not isSampAvailable() do
        wait(100)
    end
    wait(500)
    sampRegisterChatCommand("testping", function()
 WinState[0] = not WinState[0]
 end)
    sampAddChatMessage('Скрипт запущен!', -1)
    end

lua_thread.create(function()
  while WinState[0] do
    wait(5000)
    local bs = raknetNewBitStream()
  raknetEmulRpcReceiveBitStream(155, bs)
    raknetDeleteBitStream(bs)
  end
end)
 

$Mr.R1ch$

Активный
Автор темы
242
33
Исправления в коде хоть как-то повлияли на что-то?

Если да, то попробуй так:

Код:
local imgui = require 'mimgui'
local new = imgui.new

local WinState = imgui.new.bool()

imgui.OnFrame(function() return WinState[0] end, function()
imgui.Begin('Test Window', WinState, imgui.WindowFlags.AlwaysAutoResize)
imgui.Text('Ping Player: '..sampGetPlayerPing(select(2, sampGetPlayerIdByCharHandle(PLAYER_PED))))
imgui.End()
end)

function main()
while not isSampAvailable() do
        wait(100)
    end
    wait(500)
    sampRegisterChatCommand("testping", function()
 WinState[0] = not WinState[0]
 end)
    sampAddChatMessage('Скрипт запущен!', -1)
    end

lua_thread.create(function()
  while WinState[0] do
    wait(5000)
    local bs = raknetNewBitStream()
  raknetEmulRpcReceiveBitStream(155, bs)
    raknetDeleteBitStream(bs)
  end
end)
1. Никак не повлиял к сожалению
2. Такая же проблема, ничего не отображается, возможно это с клиентом самой аризоны, ведь на мобайле насколько помню не делали список игроков (TAB)
 

#Northn

Pears Project — уже запущен!
Всефорумный модератор
2,650
2,535
Lua:
do
    local lastUpdateSend = 0
    function sampSendScorePingUpdate()
        local now = os.clock()
        if now - lastUpdateSend <= 1.2 then return end
        local bs = raknetNewBitStream()
        raknetSendRpc(155, bs)
        raknetDeleteBitStream(bs)
        lastUpdateSend = now
    end
end
do
    local sampGetPlayerPing_ = sampGetPlayerPing
    local sampGetPlayerScore_ = sampGetPlayerScore
    function sampGetPlayerPing(id)
        sampSendScorePingUpdate()
        return sampGetPlayerPing_(id)
    end
    function sampGetPlayerScore(id)
        sampSendScorePingUpdate()
        return sampGetPlayerScore_(id)
    end
end
 

$Mr.R1ch$

Активный
Автор темы
242
33
Lua:
do
    local lastUpdateSend = 0
    function sampSendScorePingUpdate()
        local now = os.clock()
        if now - lastUpdateSend <= 1.2 then return end
        local bs = raknetNewBitStream()
        raknetSendRpc(155, bs)
        raknetDeleteBitStream(bs)
        lastUpdateSend = now
    end
end
do
    local sampGetPlayerPing_ = sampGetPlayerPing
    local sampGetPlayerScore_ = sampGetPlayerScore
    function sampGetPlayerPing(id)
        sampSendScorePingUpdate()
        return sampGetPlayerPing_(id)
    end
    function sampGetPlayerScore(id)
        sampSendScorePingUpdate()
        return sampGetPlayerScore_(id)
    end
end
В целом нормально, но после обновления пинга открывается таб, а затем не закрывается

Lua:
do
    local lastUpdateSend = 0
    function sampSendScorePingUpdate()
        local now = os.clock()
        if now - lastUpdateSend <= 1.2 then return end
        local bs = raknetNewBitStream()
        raknetSendRpc(155, bs)
        raknetDeleteBitStream(bs)
        lastUpdateSend = now
    end
end
do
    local sampGetPlayerPing_ = sampGetPlayerPing
    local sampGetPlayerScore_ = sampGetPlayerScore
    function sampGetPlayerPing(id)
        sampSendScorePingUpdate()
        return sampGetPlayerPing_(id)
    end
    function sampGetPlayerScore(id)
        sampSendScorePingUpdate()
        return sampGetPlayerScore_(id)
    end
end
Ещё что странно, начинает Фпс просидать, из за того что текст бегается в табе и его становится слишком много
 
Последнее редактирование: