Welcome to Сообщество игровых серверов NETZONA.ORG

Присоединяйтесь к нам сейчас, чтобы получить доступ ко всем нашим функциям. Зарегистрировавшись и войдя в систему, вы сможете создавать темы, публиковать ответы в существующих темах, давать репутацию другим участникам, получать собственный личный мессенджер и многое другое. Это также быстро и совершенно бесплатно, так чего же вы ждете?
  • Приветствуем на сайте, Гость! Обязательно ознакомьтесь с условиями и правилами Публичной оферты Проекта NetZONA.org: https://netzona.org/help/public-offer/

  • Приветствуем на сайте, Гость! Обязательно ознакомьтесь с условиями и правилами использования Ваших файлов cookie на Проекте NetZONA.org: https://netzona.org/help/cookies/

  • Приветствуем на сайте, Гость! Обязательно ознакомьтесь с Политикой конфиденциальности Проекта NetZONA.org: https://netzona.org/pages/privacy-policy/

  • Ответы на основные вопросы: https://netzona.org/threads/populjarnye-voprosy-i-otvety-na-nix.6122/

  • Приветствуем на сайте, Гость! Приобрести (купить) Информационную услугу (в том числе группу "Проверенный") на Проекте NetZONA.org: https://netzona.org/account/upgrades

Проблема с уровнем SW

Danya

Пользователь
Регистрация
18 Мар 2020
Сообщения
70
Реакции
0
Баллы
18
1611586381145.png
Привет, помогите исправить эту проблему. Буду благодарен.
 

KailHet

Модератор
Команда форума
Регистрация
5 Ноя 2019
Сообщения
730
Реакции
9
Баллы
52
Возраст
21
Веб-сайт
kailhet.github.io
Пол
Мужской
Семейное положение
Свободен(а) как ветер
Род занятий
Веб разработчик
Чекни на ерроры и придется, наверное, кидать код, ибо непонятно, что там прописано
 

Danya

Пользователь
Регистрация
18 Мар 2020
Сообщения
70
Реакции
0
Баллы
18
Чекни на ерроры и придется, наверное, кидать код, ибо непонятно, что там прописано

Lua:
if CLIENT then

    surface.CreateFont("MainFont", { font = "Roboto", size = 22, weight = 500, extended = true })

    local need = LocalPlayer():GetNWInt("level") * 880

    local scr_w, scr_h = ScrW(), ScrH()
    local x, y = scr_w/3, scr_h / 1.2
    local w, h = x, 2
    
    local function text_exp()
        chat.AddText(Color(0,102,255),"[#]", Color(255,255,255), " Вы получили 80 опыта за убийство NPC")
    end
    
    net.Receive("killed_npc", text_exp)

    local function level()
        chat.AddText(Color(0,102,255),"[#]", Color(255,255,255), " Вы повысили свой уровень!")
    end

    net.Receive("next_level", level)

  hook.Add("HUDPaint", "hud", function()
    draw.SimpleText(math.ceil(LocalPlayer():GetNWInt("exp") / need * 100 ) .. "%", "MainFont",  w, y + 5, Color(255, 255, 255 ) )
    draw.SimpleText(LocalPlayer():GetNWInt("exp") .. " / " ..  LocalPlayer():GetNWInt("level") * 880 , "MainFont",  scr_w/1.585, y + 5, Color(255, 255, 255 ) )
    draw.SimpleText(LocalPlayer():GetNWInt("level") , "MainFont",  scr_w/2, y - 20, Color(255, 255, 255 ) )

    draw.RoundedBox(0, w, y, w, 5, Color(0,0,0,150))
    draw.RoundedBox(0, w, y, w*(LocalPlayer():GetNWInt("exp") / need), 5, Color(255,255,255))

  end)

end

if SERVER then
    
    hook.Add("PlayerInitialSpawn", "initspawn", function( ply )
        if ply:GetNWInt("first_zahod") == 0 then
            ply:SetNWInt("exp", 0 )
            ply:SetNWInt("level", 1 )

            ply:SetNWInt("first_zahod", 1 )
        elseif ply:GetNWInt("first_zahod") == 1 then
            ply:SetNWInt("exp", ply:GetPData("ex") )
            ply:SetNWInt("level", ply:GetPData("lvl") )
        end
    end)

    hook.Add("OnNPCKilled", "kill_npc", function( npc, attacker, inflictor )
        attacker:SetNWInt("exp", attacker:GetNWInt("exp") + 80)

        util.AddNetworkString("killed_npc")

        net.Start("killed_npc")
        net.Send(attacker)

        local exp = attacker:GetNWInt("exp")
        local lvl = attacker:GetNWInt("level")
        local next_level = lvl + 1
        local next_xp = attacker:GetNWInt("level") * 880

        if exp >= next_xp then
            attacker:SetNWInt("level", next_level)
            attacker:SetNWInt("exp", 0 )

            util.AddNetworkString("next_level")

            net.Start("next_level")
            net.Send(attacker)
        
        end
        
    end)

    hook.Add("PlayerDisconnected", "disconnect", function( ply )
        ply:SetPData("ex", ply:GetNWInt("ex") )
        ply:SetPData("lvl", ply:GetNWInt("level") )
    end)

end
 

KailHet

Модератор
Команда форума
Регистрация
5 Ноя 2019
Сообщения
730
Реакции
9
Баллы
52
Возраст
21
Веб-сайт
kailhet.github.io
Пол
Мужской
Семейное положение
Свободен(а) как ветер
Род занятий
Веб разработчик
Как я понял, проблема в переменной 'need', смотри:
Здесь указано то значение, где у тебя написано "inf"(infinity - бесконечно)
Lua:
    draw.SimpleText(math.ceil(LocalPlayer():GetNWInt("exp") / need * 100 ) .. "%", "MainFont",  w, y + 5, Color(255, 255, 255 ) )
В следующей строке мы видим, что "LocalPlayer():GetNWInt("exp")" читается (текущий опыт показан нормально, 160, а значит проблема не в этой переменной)
Код:
    draw.SimpleText(LocalPlayer():GetNWInt("exp") .. " / " ..  LocalPlayer():GetNWInt("level") * 880 , "MainFont",  scr_w/1.585, y + 5, Color(255, 255, 255 ) )
Несколько строк ниже мы снова встречаем "need", которая опять не читается, ибо не показан прогресс уровня в полоске
Lua:
    draw.RoundedBox(0, w, y, w*(LocalPlayer():GetNWInt("exp") / need), 5, Color(255,255,255))

Всё что могу сказать - ищи, что указывает переменная "need" и фикси, либо кидай код, мб помогу
 

KailHet

Модератор
Команда форума
Регистрация
5 Ноя 2019
Сообщения
730
Реакции
9
Баллы
52
Возраст
21
Веб-сайт
kailhet.github.io
Пол
Мужской
Семейное положение
Свободен(а) как ветер
Род занятий
Веб разработчик
Тупанул, увидел переменную "need"
Попробуй крч создать новую локальную переменную:
Lua:
local perc = LocalPlayer():GetNWInt("exp") / need * 100
draw.SimpleText( perc .. "%", "MainFont",  w, y + 5, Color(255, 255, 255 ) )
Хз насколько это сработает, но тк сам потыкать не могу, то пробуй
 

KailHet

Модератор
Команда форума
Регистрация
5 Ноя 2019
Сообщения
730
Реакции
9
Баллы
52
Возраст
21
Веб-сайт
kailhet.github.io
Пол
Мужской
Семейное положение
Свободен(а) как ветер
Род занятий
Веб разработчик
Даже не нужно создавать переменную, просто убери math.ceil()
 
Назад
Сверху Снизу