Правила форума Гаранты форума
Размещение рекламы AMX-X компилятор

Здравствуйте, гость Вход | Регистрация

Наши новости:

14-дек
24-апр
10-апр
11-апр

> Правила форума

Этот раздел, как вы могли заметить по названию, предназначен для решения вопросов по поводу уже существующих модов и плагинов.
Пожалуйста, если у вас проблема с написанием плагина, не путайте этот раздел с разделом по скриптингу.
Для поиска плагинов и модов существует соответствующий раздел.

Название темы должно соответствовать содержанию. Темы с названием типа "Помогите", "Вопрос", "парни подскажите..." - будут удалены.
Все темы, не относящиеся к "Вопросам по модам и плагинам", будут удалены или перемещены в соответствующий раздел.

Правила оформления темы:
1. Помимо заголовка не забудьте верно сформулировать свой вопрос.
2. Выложите исходник (в тег кода + ) или ссылку на плагин который вызывает у вас вопросы.
3. Выложите лог с ошибками (если имеется) под спойлер

Сохранение по nvault

, Описание ниже
Статус пользователя Captain
сообщение 21.9.2016, 21:14
Сообщение #1
Стаж: 12 лет

Сообщений: 251
Благодарностей: 7
Полезность: < 0

Всем привет. Помогите сделать нормальное сохранение по nvault. В текущей версии плагина, после того как уровень поднимается, сохранение перестает работать. Мне кажется, что проблема в сохранение ... Перейти на Mysql не предлагать)

Прикрепленный файл  zp_addon_level.sma ( 5,12 килобайт ) Кол-во скачиваний: 54
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   Цитировать сообщение
Статус пользователя Andrei
сообщение 21.9.2016, 21:22
Сообщение #2


Стаж: 15 лет

Сообщений: 1335
Благодарностей: 693
Полезность: 740

Тут всё доступно и понятно описано, как сделать. Так же если полистать, есть примеры https://forums.alliedmods.net/showthread.php?t=91503
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя Unknown
сообщение 22.9.2016, 11:14
Сообщение #3
Стаж: 10 лет

Сообщений: 291
Благодарностей: 70
Полезность: < 0

Цитата
проблема в сохранение ...

ну да...
Код:
public plugin_end()
if(get_pcvar_num(cvar_enable))
nvault_close(gVault)

Проблема там везде..


Аткажитесъ от плагенов бес исходника.
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя Unknown
сообщение 22.9.2016, 11:21
Сообщение #4
Стаж: 10 лет

Сообщений: 291
Благодарностей: 70
Полезность: < 0

Если не понял:
Кто-то из адменов меняет квар rank_enable 0 т.е отключает прямо в середине карты когда меняется карта игроки потеряют ранки. Т.к
Цитата
Неуспешное закрытие файла может привести к порче и потери данных

(цитата из амх-х.ру)


Аткажитесъ от плагенов бес исходника.
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя Captain
сообщение 22.9.2016, 18:13
Сообщение #5
Стаж: 12 лет

Сообщений: 251
Благодарностей: 7
Полезность: < 0

Цитата(Andrei @ 21.9.2016, 22:22) *
Тут всё доступно и понятно описано, как сделать. Так же если полистать, есть примеры https://forums.alliedmods.net/showthread.php?t=91503

а есть на русском?)
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя Unknown
сообщение 22.9.2016, 18:39
Сообщение #6
Стаж: 10 лет

Сообщений: 291
Благодарностей: 70
Полезность: < 0

http://amx-x.ru/viewtopic.php?f=9&t=1389


Аткажитесъ от плагенов бес исходника.
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя Captain
сообщение 22.9.2016, 19:14
Сообщение #7
Стаж: 12 лет

Сообщений: 251
Благодарностей: 7
Полезность: < 0

Исходник
Код
#include <amxmodx>
#include <hamsandwich>
#include <amxmisc>
#include <zombieplague>
#include <nvault>

new gPlayerRank[33]
new gPlayerPoints[33]

new szAuthID[35]
new szData[30]
new iTimestamp
new iVault

new iDataExists

enum _:Ranks
{
        I_1,
        I_2,
        I_3,
        I_4,
        I_5,
        I_6,
        I_7,
        I_8,
        I_9,
        I_10,
        I_11,
        I_12,
        I_13,
        I_14,
        I_15,
        I_16,
        I_17,
        I_18,
        I_19,
        I_20
}

new RankDescription[Ranks][] =
{
    "1,
    "2",
    "3",
    "4",
    "5",
    "6",
    "7",
    "8",
    "9",
    "10",
    "11",
    "12",
    "13",
    "14",
    "15",
    "16",
    "17",
    "18",
    "19",
    "20"
}

public plugin_init()
{
    register_plugin("[ZP] Addon: Level", "1.0", "Admin")
    register_event("StatusValue", "showStatus", "be", "1=2", "2!0")
    RegisterHam(Ham_Spawn, "player", "fw_spawn")
    register_event("DeathMsg", "fw_death", "a", "1>0")

    register_dictionary("zp_aim_info.txt")
}

public plugin_cfg()
{
    iVault = nvault_open("level")

        if(iVault == INVALID_HANDLE)
    {
            set_fail_state("Error opening nVault!")
    }
}

public client_authorized(id)
{
        get_user_authid(id, g_szSteamID[id], charsmax(g_szSteamID[]))
    ps_load_points(id)
}


public client_disconnect(id)
{
    ps_save_points(id)

    gPlayerPoints[id] = 0
    gPlayerRank[id] = 0
    szAuthID[id][0] = 0
}

public plugin_end()
{
    nvault_close(iVault)
}

ps_load_points(id)
{
    static szData[7], iTimestamp

    if(nvault_lookup(iVault, szAuthID, szData, 6, charsmax(szData), iTimestamp)
    {
        gPlayerPoints[id] = str_to_num(szData)
    }
    open_rank(id)
}

ps_save_points(id)
{
    static szData[7]
    num_to_str(gPlayerPoints[id], szData, 6)
    nvault_set(iVault, szAuthID[id], szData)
}

public fw_spawn(id)
{
    open_rank(id)
}

public fw_death()
{
    new killer = read_data(1)
    new victim = read_data(2)

    if(zp_get_user_nemesis(killer) || zp_get_user_last_human(victim) || zp_get_user_survivor(victim))
        return

    if(killer! = victim)
    {
        gPlayerPoints[read_data(1)]

        switch(gPlayerPoints[read_data(1)])
        {
            case 20, 50, 100, 200, 350, 550, 800, 1100, 1450, 1850, 2300, 2800, 3350, 3950, 4600, 5300, 6050, 6950, 8000: open_rank(killer)
        }
    }
}

public open_rank(id)
{
    new iPoints = gPlayerPoints[id]
        
    switch(iPoints)
    {
    case 0..19: gPlayerRank[id] = I_1
    case 20..49: gPlayerRank[id] = I_2
    case 50..99: gPlayerRank[id] = I_3
    case 100..199: gPlayerRank[id] = I_4
    case 200..349: gPlayerRank[id] = I_5
    case 350..549: gPlayerRank[id] = I_6
    case 550..799: gPlayerRank[id] = I_7
    case 800..1099: gPlayerRank[id] = I_8
    case 1100..1449: gPlayerRank[id] = I_9
    case 1450..1849: gPlayerRank[id] = I_10
    case 1850..2299: gPlayerRank[id] = I_11
    case 2300..2799: gPlayerRank[id] = I_12
    case 2800..3349: gPlayerRank[id] = I_13
    case 3350..3949: gPlayerRank[id] = I_14
    case 3950..4599: gPlayerRank[id] = I_15
    case 4600..5299: gPlayerRank[id] = I_16
    case 5300..6049: gPlayerRank[id] = I_17
    case 6050..6949: gPlayerRank[id] = I_18
    case 6950..7999: gPlayerRank[id] = I_19
    default: gPlayerRank[id] = I_20
    }

    if (!task_exists(id))
    {
        set_task(2.0, "PointsRank", id, _, _, "b")
    }
}


public PointsRank(id)
{
    if(is_user_alive(id) && !zp_get_user_nemesis(id) && !zp_get_user_zombie(id))
    {
        set_hudmessage(0, 255, 0, -1.0, 0.9, 0, 6.0, 3.0)
        show_hudmessage(id, "%s | Уровень: %d", RankDescription[gPlayerRank[id]], gPlayerPoints[id])
    }
}

public showStatus(id)
{
    if(!is_user_bot(id) && is_user_connected(id))
    {
        new name[32], pid = read_data(2)
        get_user_name(pid, name, 31)
        new color1 = 0, color2 = 0

        new team1 = zp_get_user_zombie(id), team2 = zp_get_user_zombie(pid)

        if (team2 == 1)
            color1 = 255
        else
            color2 = 255

        if (team1 == team2)
        {
            set_hudmessage(color1, 50, color2, -1.0, 0.60, 1, 0.01, 3.0, 0.01, 0.01, -1)
            show_hudmessage(id, "%L", LANG_PLAYER, "AIM_INFO", name, RankDescription[gPlayerRank[pid]], get_user_health(pid), get_user_armor(pid), zp_get_user_ammo_packs(pid))
        }
    }
}


правильно?
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя Captain
сообщение 27.9.2016, 21:57
Сообщение #8
Стаж: 12 лет

Сообщений: 251
Благодарностей: 7
Полезность: < 0

Captain, правильно???)))
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
  Ответить в данную темуНачать новую тему
 
0 пользователей и 1 гостей читают эту тему: