Вопрос После перезахода на мапу ломаются нетвары... [Nixware]

На ваш бан.
Эксперт
Статус
Оффлайн
Регистрация
7 Дек 2020
Сообщения
1,453
Реакции[?]
434
Поинты[?]
36K
Пытаюсь написать луа, но если загрузить находясь на серве то работает, если ливнуть и снова зайти значения нетваров(оффсетов) ломаются(становятся просто неадекватными), то же самое и если загрузить луашку не находясь на серве. Как это фиксить?

Вот код, может скажете что тут неправильно сделано, на других по образцу думаю справлюсь, главное понять почему так происходит и как исправлять
Код:
local slowWalkActive = ui.get_key_bind("antihit_extra_slowwalk_bind")
local roll_aa = ui.get_slider_int("antihit_antiaim_desync_roll")
local localPlayer = entitylist.get_local_player()
local air_roll
local standing_roll
local swking_roll

local m_vecVelocity = {
    [0] = se.get_netvar("DT_BasePlayer", "m_vecVelocity[0]"),
    [1] = se.get_netvar("DT_BasePlayer", "m_vecVelocity[1]")
}

local exp_roll = ui.add_check_box("Disable Roll AA on exploits", "ya_prosto_ebu_sobak", false)
local def_value = ui.add_slider_int("Default value", "default_value_roll_aa", 0, 90, math.abs(roll_aa:get_value()))
local override_air = ui.add_check_box("Override Air", "override_air", false)
local in_air = ui.add_slider_int("In air override", "in_air_ya_ebu_sobak", 0, 90, math.abs(roll_aa:get_value()))
local override_standing = ui.add_check_box("Override Standing", "override_standing", false)
local standing = ui.add_slider_int("Standing override", "standing_ya_ebu_sobak", 0, 90, math.abs(roll_aa:get_value()))
local override_swking = ui.add_check_box("Override Slowwalk", "override_swking", false)
local swking = ui.add_slider_int("Slowwalk override", "swking_ya_ebu_sobak", 0, 90, math.abs(roll_aa:get_value()))

local function roll()
   
    if exp_roll:get_value() then
        if ui.get_key_bind("rage_active_exploit_bind"):is_active() and ui.get_combo_box("rage_active_exploit"):get_value() ~= 0  then
            return 0
        end
    end

    m_hGroundEntity = localPlayer:get_prop_int(se.get_netvar("DT_BasePlayer", "m_hGroundEntity"))

    if m_hGroundEntity == -1 or client.is_key_pressed(32) then
        return in_air:get_value()
    end

    if slowWalkActive:is_active() then
        return swking:get_value()
    end

    velocity = math.sqrt(localPlayer:get_prop_float(m_vecVelocity[0]) ^ 2 + localPlayer:get_prop_float(m_vecVelocity[1]) ^ 2)

    if velocity <= 5 then
        return standing:get_value()
    end

    return def_value:get_value()

end

local function visible()

    if override_air:get_value() then
        if f then
            in_air:set_value(air_roll)
            f = false
        end
        in_air:set_visible(true)
    else
        if def_value:get_value() ~= in_air:get_value() then
            air_roll = in_air:get_value()
            f = true
        end
        in_air:set_visible(false)
        in_air:set_value(def_value:get_value())
    end

    if override_standing:get_value() then
        if f1 then
            standing:set_value(standing_roll)
            f1 = false
        end
        standing:set_visible(true)
    else
        if def_value:get_value() ~= standing:get_value() then
            standing_roll = standing:get_value()
            f1 = true
        end
        standing:set_visible(false)
        standing:set_value(def_value:get_value())
    end

    if override_swking:get_value() then
        if f2 then
            swking:set_value(swking_roll)
            f2 = false
        end
        swking:set_visible(true)
    else
        if def_value:get_value() ~= swking:get_value() then
            swking_roll = swking:get_value()
            f2 = true
        end
        swking:set_visible(false)
        swking:set_value(def_value:get_value())
    end

end

local function main()

    if ui.get_key_bind("antihit_antiaim_flip_bind"):is_active() then
        roll_aa:set_value(roll())
    else
        roll_aa:set_value(-roll())
    end
   
end

client.register_callback("paint", visible)
client.register_callback("create_move", main)
Если что engine.is_connected() ничем не помогает



Закрыто, проблема решена. Ответ вот такой если у кого-нибудь возникнет такая же проблема: Ломаются абсолютно не нетвары и нет никакой разницы где как и когда они будут вызываться, проблема в local player'е, его получение нужно делать внутри каллбека(функции), ибо его значение при пере-заходе на сервер меняется.
 
Последнее редактирование:
Эксперт
Статус
Оффлайн
Регистрация
10 Фев 2021
Сообщения
1,740
Реакции[?]
559
Поинты[?]
2K
Пытаюсь написать луа, но если загрузить находясь на серве то работает, если ливнуть и снова зайти значения нетваров(оффсетов) ломаются(становятся просто неадекватными), то же самое и если загрузить луашку не находясь на серве. Как это фиксить?

Вот код, может скажете что тут неправильно сделано, на других по образцу думаю справлюсь, главное понять почему так происходит и как исправлять
Код:
local slowWalkActive = ui.get_key_bind("antihit_extra_slowwalk_bind")
local roll_aa = ui.get_slider_int("antihit_antiaim_desync_roll")
local localPlayer = entitylist.get_local_player()
local air_roll
local standing_roll
local swking_roll

local m_vecVelocity = {
    [0] = se.get_netvar("DT_BasePlayer", "m_vecVelocity[0]"),
    [1] = se.get_netvar("DT_BasePlayer", "m_vecVelocity[1]")
}

local exp_roll = ui.add_check_box("Disable Roll AA on exploits", "ya_prosto_ebu_sobak", false)
local def_value = ui.add_slider_int("Default value", "default_value_roll_aa", 0, 90, math.abs(roll_aa:get_value()))
local override_air = ui.add_check_box("Override Air", "override_air", false)
local in_air = ui.add_slider_int("In air override", "in_air_ya_ebu_sobak", 0, 90, math.abs(roll_aa:get_value()))
local override_standing = ui.add_check_box("Override Standing", "override_standing", false)
local standing = ui.add_slider_int("Standing override", "standing_ya_ebu_sobak", 0, 90, math.abs(roll_aa:get_value()))
local override_swking = ui.add_check_box("Override Slowwalk", "override_swking", false)
local swking = ui.add_slider_int("Slowwalk override", "swking_ya_ebu_sobak", 0, 90, math.abs(roll_aa:get_value()))

local function roll()
   
    if exp_roll:get_value() then
        if ui.get_key_bind("rage_active_exploit_bind"):is_active() and ui.get_combo_box("rage_active_exploit"):get_value() ~= 0  then
            return 0
        end
    end

    m_hGroundEntity = localPlayer:get_prop_int(se.get_netvar("DT_BasePlayer", "m_hGroundEntity"))

    if m_hGroundEntity == -1 or client.is_key_pressed(32) then
        return in_air:get_value()
    end

    if slowWalkActive:is_active() then
        return swking:get_value()
    end

    velocity = math.sqrt(localPlayer:get_prop_float(m_vecVelocity[0]) ^ 2 + localPlayer:get_prop_float(m_vecVelocity[1]) ^ 2)

    if velocity <= 5 then
        return standing:get_value()
    end

    return def_value:get_value()

end

local function visible()

    if override_air:get_value() then
        if f then
            in_air:set_value(air_roll)
            f = false
        end
        in_air:set_visible(true)
    else
        if def_value:get_value() ~= in_air:get_value() then
            air_roll = in_air:get_value()
            f = true
        end
        in_air:set_visible(false)
        in_air:set_value(def_value:get_value())
    end

    if override_standing:get_value() then
        if f1 then
            standing:set_value(standing_roll)
            f1 = false
        end
        standing:set_visible(true)
    else
        if def_value:get_value() ~= standing:get_value() then
            standing_roll = standing:get_value()
            f1 = true
        end
        standing:set_visible(false)
        standing:set_value(def_value:get_value())
    end

    if override_swking:get_value() then
        if f2 then
            swking:set_value(swking_roll)
            f2 = false
        end
        swking:set_visible(true)
    else
        if def_value:get_value() ~= swking:get_value() then
            swking_roll = swking:get_value()
            f2 = true
        end
        swking:set_visible(false)
        swking:set_value(def_value:get_value())
    end

end

local function main()

    if ui.get_key_bind("antihit_antiaim_flip_bind"):is_active() then
        roll_aa:set_value(roll())
    else
        roll_aa:set_value(-roll())
    end
   
end

client.register_callback("paint", visible)
client.register_callback("create_move", main)
Если что engine.is_connected() ничем не помогает
насколько я знаю нетвары надо писать не в каллбеке, а единоразово при загрузгке луа, т.е. ты делаешь значение local offset и присваиваешь ему нетвар
se.get_netvar("DT_BasePlayer", "m_hGroundEntity")
опять же я могу ошибаться с подобным дела не имел
 
На ваш бан.
Эксперт
Статус
Оффлайн
Регистрация
7 Дек 2020
Сообщения
1,453
Реакции[?]
434
Поинты[?]
36K
Получай нетвары только когда локалплеер жив
Попробую
насколько я знаю нетвары надо писать не в каллбеке, а единоразово при загрузгке луа, т.е. ты делаешь значение local offset и присваиваешь ему нетвар
se.get_netvar("DT_BasePlayer", "m_hGroundEntity")
опять же я могу ошибаться с подобным дела не имел
Вроде бы там похуй вообще
 
На ваш бан.
Эксперт
Статус
Оффлайн
Регистрация
7 Дек 2020
Сообщения
1,453
Реакции[?]
434
Поинты[?]
36K
Закрыто, проблема решена. Ответ вот такой если у кого-нибудь возникнет такая же проблема: Ломаются абсолютно не нетвары и нет никакой разницы где как и когда они будут вызываться, проблема в local player'е, его получение нужно делать внутри каллбека(функции), ибо его значение при пере-заходе на сервер меняется.
 
Эксперт
Статус
Оффлайн
Регистрация
10 Фев 2021
Сообщения
1,740
Реакции[?]
559
Поинты[?]
2K
На ваш бан.
Эксперт
Статус
Оффлайн
Регистрация
7 Дек 2020
Сообщения
1,453
Реакции[?]
434
Поинты[?]
36K
А ты не знал? По лп определяется хп и прочие аспекты, тикбаза плеера, так что лп меняется каждый тик
Нет не знал, + я код кидал но мне так никто и не сказал что проблема именно в этом
 
Сверху Снизу