Запазване на данни с fVault библиотека

Ако имате затруднения при изработката/преработката на даден плъгин - пишете тук, ще се опитаме да ви помогнем!
Аватар
gadinkata
Извън линия
Потребител
Потребител
Мнения: 259
Регистриран на: 21 Мар 2018, 12:33
Местоположение: Враца
Се отблагодари: 25 пъти
Получена благодарност: 7 пъти
Обратна връзка:

Запазване на данни с fVault библиотека

Мнение от gadinkata » 13 Апр 2020, 01:29

Оригинален код

Код за потвърждение: Избери целия код

UseVault(id, iType)
{
    new szName[32], szData[16]
    get_user_name(id, szName, charsmax(szName))

    switch(iType)
    {
        case 0:
        {
            formatex(szData, charsmax(szData), "%i %i", get_user_frags(id), cs_get_user_deaths(id))
            fvault_set_data(g_szVault, szName, szData)
        }
        case 1:
        {
            fvault_get_data(g_szVault, szName, szData, charsmax(szData))

            new szArg[2][8]
            parse(szData, szArg[0], charsmax(szArg[]), szArg[1], charsmax(szArg[]))
            set_user_frags(id, str_to_num(szArg[0]))
            cs_set_user_deaths(id, str_to_num(szArg[1]))
        }
    }
}
Моят код

Код за потвърждение: Избери целия код

UseVault(id, iType)
{
    new szName[32], szData[16]
    get_user_name(id, szName, charsmax(szName))

    switch(iType)
    {
        case 0:
        {
            formatex(szData, charsmax(szData), "%i %i %i", get_user_frags(id), cs_get_user_deaths(id), cs_get_user_money(id))
            fvault_set_data(g_szVault, szName, szData)
        }
        case 1:
        {
            fvault_get_data(g_szVault, szName, szData, charsmax(szData))

            new szArg[3][8]
            parse(szData, szArg[0], charsmax(szArg[]), szArg[1], charsmax(szArg[]), szArg[2], charsmax(szArg[]))
            set_user_frags(id, str_to_num(szArg[0]))
            cs_set_user_deaths(id, str_to_num(szArg[1]))
	    cs_set_user_money(id, str_to_num(szArg[2]))
        }
    }
}
Запазването на парите го направих успешно
Трудно ми беше да дам парите когато играча влезне ,но успях като промених

Код за потвърждение: Избери целия код

szArg[2][8] на szArg[3][8]
Мисълта ми е следната тази [8] в моя случай трябва ли да е друга стойност и какво дефинира така го нарека?
Другия ми въпрос е може ли да се напише друг топ15 с fVault?
szData[16] трябва ли да овелича и нея,ако добавям други неща

Аватар
OciXCrom
Извън линия
Администратор
Администратор
Мнения: 7206
Регистриран на: 06 Окт 2016, 19:20
Местоположение: /resetscore
Се отблагодари: 117 пъти
Получена благодарност: 1295 пъти
Обратна връзка:

Запазване на данни с fVault библиотека

Мнение от OciXCrom » 13 Апр 2020, 02:28

Нямам време да разглеждам целия код в момента, така че единствено на въпроса ще ти отговоря.

Числото в скобите означава големина на масива. В твоя случай, масивът може да възприеме 3 стойности, като максималната дължина на всяка една от тях е 8 символи. Понеже парите може да са максимум 16000, достатъчно е да сложиш 6 като големина (5 + 1).

Демек, ако искаш да запазиш името на играча, на пример, нужни са ти 32 символа понеже това е максималната дължина за име на играч.

Аватар
gadinkata
Извън линия
Потребител
Потребител
Мнения: 259
Регистриран на: 21 Мар 2018, 12:33
Местоположение: Враца
Се отблагодари: 25 пъти
Получена благодарност: 7 пъти
Обратна връзка:

Запазване на данни с fVault библиотека

Мнение от gadinkata » 17 Юни 2020, 21:05

Здравейте ползвам примера на окси,за fvault save,
ето го моят код

Код за потвърждение: Избери целия код

#include <amxmodx>
#include <amxmisc>
#include <cstrike>
#include <fun>
#include <fvault>

#define PLUGIN "New Plug-In"
#define VERSION "1.0"
#define AUTHOR "IOCOCVETI"

new const g_szVault[] = "Atm_Ranks"

public plugin_init() {
	register_plugin(PLUGIN, VERSION, AUTHOR)
	
	// Add your code here...
}

UseVault(id, iType)
{
    new szName[32], szData[16]
    get_user_name(id, szName, charsmax(szName))

    switch(iType)
    {
        case 0:
        {
            formatex(szData, charsmax(szData), "%i %i", get_user_frags(id), cs_get_user_deaths(id))
            fvault_set_data(g_szVault, szName, szData)
        }
        case 1:
        {
            fvault_get_data(g_szVault, szName, szData, charsmax(szData))

            new szArg[2][8]
            parse(szData, szArg[0], charsmax(szArg[]), szArg[1], charsmax(szArg[]))
            set_user_frags(id, str_to_num(szArg[0]))
            cs_set_user_deaths(id, str_to_num(szArg[1]))
        }
    }
}

public client_disconnected(id)
    UseVault(id, 0)
    
public client_connect(id)
    UseVault(id, 1)
    
public plugin_end()
    fvault_clear(g_szVault)
Компилира се всичко,добавих debug и ми се появи това в конзолата

Код за потвърждение: Избери целия код

L 06/17/2020 - 21:02:40: [FUN] Invalid player 1
L 06/17/2020 - 21:02:40: [AMXX] Displaying debug trace (plugin "fvalt.amxx", version "1.0")
L 06/17/2020 - 21:02:40: [AMXX] Run time error 10: native error (native "set_user_frags")
L 06/17/2020 - 21:02:40: [AMXX]    [0] fvalt.sma::UseVault (line 37)
L 06/17/2020 - 21:02:40: [AMXX]    [1] fvalt.sma::client_connect (line 47)
Като разменя някой местата UseVault(id, 0/1)
Получавам пък друга подобна грешка

Код за потвърждение: Избери целия код

L 06/17/2020 - 21:12:14: [CSTRIKE] Invalid player 1 (not in-game)
L 06/17/2020 - 21:12:14: [AMXX] Displaying debug trace (plugin "fvalt.amxx", version "1.0")
L 06/17/2020 - 21:12:14: [AMXX] Run time error 10: native error (native "cs_get_user_deaths")
L 06/17/2020 - 21:12:14: [AMXX]    [0] fvalt.sma::UseVault (line 24)
L 06/17/2020 - 21:12:14: [AMXX]    [1] fvalt.sma::client_connect (line 49)

Аватар
JackEyedJones
Извън линия
Потребител
Потребител
Мнения: 399
Регистриран на: 10 Сеп 2018, 17:26
Местоположение: Plovdiv, Bulgaria, Europe, Entire World
Се отблагодари: 4 пъти
Получена благодарност: 69 пъти
Обратна връзка:

Запазване на данни с fVault библиотека

Мнение от JackEyedJones » 17 Юни 2020, 21:44

1. public plugin_init()
2. public plugin_end()
Под него:
3. public client_connect(id)
4. public client_disconnected(id)

Наредени са грешно, вероятно е от това.

Аватар
gadinkata
Извън линия
Потребител
Потребител
Мнения: 259
Регистриран на: 21 Мар 2018, 12:33
Местоположение: Враца
Се отблагодари: 25 пъти
Получена благодарност: 7 пъти
Обратна връзка:

Запазване на данни с fVault библиотека

Мнение от gadinkata » 17 Юни 2020, 22:06

Ами не,подредих ги както ти каза,пак една от тези грешки... :)

Аватар
OciXCrom
Извън линия
Администратор
Администратор
Мнения: 7206
Регистриран на: 06 Окт 2016, 19:20
Местоположение: /resetscore
Се отблагодари: 117 пъти
Получена благодарност: 1295 пъти
Обратна връзка:

Запазване на данни с fVault библиотека

Мнение от OciXCrom » 17 Юни 2020, 22:08

JackEyedJones написа: 17 Юни 2020, 21:44 1. public plugin_init()
2. public plugin_end()
Под него:
3. public client_connect(id)
4. public client_disconnected(id)

Наредени са грешно, вероятно е от това.
Няма абсолютно никакво значение по какъв начин са наредени. Отново пишеш глупости.

Играчът все още не е в сървъра когато се извиква client_connect, така че няма как да ползваш set_user_frags.

Аватар
gadinkata
Извън линия
Потребител
Потребител
Мнения: 259
Регистриран на: 21 Мар 2018, 12:33
Местоположение: Враца
Се отблагодари: 25 пъти
Получена благодарност: 7 пъти
Обратна връзка:

Запазване на данни с fVault библиотека

Мнение от gadinkata » 17 Юни 2020, 22:22

OciXCrom написа: 17 Юни 2020, 22:08 Няма абсолютно никакво значение по какъв начин са наредени. Отново пишеш глупости.

Играчът все още не е в сървъра когато се извиква client_connect, така че няма как да ползваш set_user_frags.
Добре,но ти си дал това за пример,по какъв начин да го направя,аз преди 6 месеца,го писах и го бях нагласил,но не помня,кво правих......
ПС:Изполвах client_putinserver и проработи

Заключено
  • Подобни теми
    Отговори
    Преглеждания
     Последно мнение

Обратно към “Помощ в скриптирането”

Кой е на линия

Потребители разглеждащи този форум: 0 регистрирани и 14 госта