• Приветствуем на сайте, Гость! Обязательно ознакомьтесь с условиями и правилами Публичной оферты Проекта 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

Предложение Готовый sqlite

  • Автор темы Автор темы Hikka
  • Дата начала Дата начала
Статус
В этой теме нельзя размещать новые ответы.

Hikka

Модератор
Команда форума
Регистрация
29 Сен 2016
Сообщения
556
Реакции
1
Баллы
60
Возраст
30
Пол
Может кому-то понадобится.
Код:
local sqlite_dbname = "db_new_new"

local function sqlQuery(q)
    local res = sql.Query(q)
    if res == false then
        error("Failure during SQL Query: "..sql.LastError())
        return false
    end
    return res
end

function CreateTables()
    if !sql.TableExists(sqlite_dbname) then
        sqlQuery("CREATE TABLE "..sqlite_dbname.." ( steamid TEXT, XP INT, LEVEL INT, Unique(steamid))")
        print("Таблица "..sqlite_dbname.." создана")
    end
end
hook.Add( "Initialize", "Initialize", CreateTables )

function playerAccountValid( ply, st, a )
    result = sql.QueryRow("SELECT steamid, XP, LEVEL FROM "..sqlite_dbname.." WHERE steamid = '"..ply:SteamID().."'")
    if (result) then
        print("Загружаем аккаунт игрока "..ply:Nick())
        ply:PlayerSetXP(tonumber(result.XP))    -- вытаскиваем XP из result, после устанавиваем игроку его опыт.
        ply:PlayerSetLevel(tonumber(result.LEVEL))    -- вытаскиваем LEVEL из result, после устанавливаем игроку его уровень.
        saveCharacter(ply)    -- сразу сохраняем статистику игрока
    else
        print("Создаем аккаунт игрока "..ply:Nick())   
        sql.Query("INSERT INTO "..sqlite_dbname.." (steamid, XP, LEVEL) VALUES ('"..ply:SteamID().."', 0, 1)")
        playerAccountValid(ply)        -- возвращаемся обратно к результатам, чтобы загрузить статистику игрока!
    end
end
hook.Add("PlayerAuthed", "playerstats.auth", playerAccountValid)

function saveCharacter(ply)
    sql.Query("UPDATE "..sqlite_dbname.." SET XP = "..ply:PlayerGetXP()..", LEVEL = "..ply:PlayerGetLevel().." WHERE steamid = '"..ply:SteamID().."'")
    print("Статистика "..ply:Nick().." сохранена!")
end

concommand.Add("sm_savestats", function(ply,cmd,args)
    saveCharacter(ply)
end)
 
Статус
В этой теме нельзя размещать новые ответы.
Главная Регистрация
Назад
Сверху