[РАЗРЕШЕНО] FVAULT занулява запазен стринг "%d %d %d"

Ако имате затруднения при изработката/преработката на даден плъгин - пишете тук, ще се опитаме да ви помогнем!
Аватар
hellmoss
Извън линия
AMXX Скриптър
AMXX Скриптър
Мнения: 79
Регистриран на: 15 Окт 2016, 20:24
Се отблагодари: 9 пъти
Получена благодарност: 14 пъти
Обратна връзка:

[РАЗРЕШЕНО] FVAULT занулява запазен стринг "%d %d %d"

Мнение от hellmoss » 09 Юни 2020, 19:24

[РАЗРЕШЕНО]

Здравейте, имам идентичен плъгин, който обаче запазва една единствена стойност и не ползвам parse, а str_to_num() при Load() и num_to_str() при client_disconnected() и там абсолютно никога (10 год.) не е правило проблеми или анулирания.

Ако искам да запазя повече параметри обаче, се получава анулиране на запазените стойности и това е нежелано, не мога да го хвана при какви обстоятелства се получава, при retry сейва ако съм правил промени, т.е. ако примерно клиента избира "1 0 0" или "1 1 1" и т.н.; при смяна на мап ту сейва, ту анулира всичките 3 на 0; по подразбиране са "1 1 0" и някой дори и да не го промени е възможно да му се анулират...

5 мапа подред сейва на 6тия ще анулира на произволно на някого (тест с 3ма в игра и някой остава с дефаулт, някой променя, нерелевантно от това се получава анулиране на 10тия retry (даже не винаги) или на 7мия мап примерно..) :think: :think: :think:

Глобалните масиви могат да имат само 2 стойности, или 0 или 1.

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

#include <amxmodx>
#include <fvault>
#include <zpclass>

new const g_vault[] = "personal"

new g_cdown[33], g_usnd[33], g_wide[33]

public plugin_init()
	register_plugin("save personaliz.", "1.0", "h3LLm0sS")

public client_putinserver(id)
{
	//set_task(0.1, "Load", id)
	Load(id)
	//set_task(300.0, "Save", id, _, _, "b")
}

public Load(id)
{
	if(is_user_hltv(id) || is_user_bot(id) || !is_user_connected(id))
		return

	new data[6], name[32]
	get_user_name(id, name, charsmax(name))

	if(fvault_get_data(g_vault, name, data, charsmax(data)))
	{
		new tempvar1[10], tempvar2[10], tempvar3[10]
		parse(data, tempvar1, charsmax(tempvar1), tempvar2, charsmax(tempvar2), tempvar3, charsmax(tempvar3))

		g_cdown[id]=str_to_num(tempvar1)
		g_usnd[id]=str_to_num(tempvar2)
		g_wide[id]=str_to_num(tempvar3)

		setdata(id)
	}
}

public client_disconnected(id)
{
	getdata(id)

	new data[6], name[32]
	get_user_name(id, name, charsmax(name))

	formatex(data, charsmax(data), "%d %d %d", g_cdown[id], g_usnd[id], g_wide[id])
	fvault_set_data(g_vault, name, data)
}

public getdata(id)
{
	g_cdown[id]=zp_get_cdown1(id)
	g_usnd[id]=zp_get_usound(id)
	g_wide[id]=zp_get_fov(id)
}

public setdata(id)
{
	if(!g_cdown[id])
		zp_toggle_cdown1(id)

	if(!g_usnd[id])
		zp_ultimate_toggle(id)

	if(g_wide[id])
		zp_human_fov(id)
}
Последно промяна от hellmoss на 11 Юни 2020, 12:32, променено общо 2 пъти.
xLd Zombie Plague -- 46.4.77.125
https://discord.gg/kbjN5JRxWb

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

FVAULT занулява запазен стринг "%d %d %d"

Мнение от OciXCrom » 09 Юни 2020, 21:42

И при мен се е случвало много пъти и не успях да разбера защо. Ползвах същия начин както и ти.
Проблемът се оправи като промених начина, именно load-ване директно в client_connect без никакъв task.

Аватар
hellmoss
Извън линия
AMXX Скриптър
AMXX Скриптър
Мнения: 79
Регистриран на: 15 Окт 2016, 20:24
Се отблагодари: 9 пъти
Получена благодарност: 14 пъти
Обратна връзка:

FVAULT занулява запазен стринг "%d %d %d"

Мнение от hellmoss » 10 Юни 2020, 00:59

Не става :(... по този начин (да, коментирах проверките в лоада) лоадва винаги дефаултите което означава че не стига до лоад.. Има ли някакви алтернативи?
xLd Zombie Plague -- 46.4.77.125
https://discord.gg/kbjN5JRxWb

Аватар
hellmoss
Извън линия
AMXX Скриптър
AMXX Скриптър
Мнения: 79
Регистриран на: 15 Окт 2016, 20:24
Се отблагодари: 9 пъти
Получена благодарност: 14 пъти
Обратна връзка:

FVAULT занулява запазен стринг "%d %d %d"

Мнение от hellmoss » 11 Юни 2020, 12:30

Проблема беше в client_disconnected() който се изпълнява два пъти понякога и при второ изпълнение може би установява нулеви стойности защото играча не е "в игра".
xLd Zombie Plague -- 46.4.77.125
https://discord.gg/kbjN5JRxWb

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

[РАЗРЕШЕНО] FVAULT занулява запазен стринг "%d %d %d"

Мнение от OciXCrom » 11 Юни 2020, 12:42

С коя АМХХ версия си?

Аватар
hellmoss
Извън линия
AMXX Скриптър
AMXX Скриптър
Мнения: 79
Регистриран на: 15 Окт 2016, 20:24
Се отблагодари: 9 пъти
Получена благодарност: 14 пъти
Обратна връзка:

[РАЗРЕШЕНО] FVAULT занулява запазен стринг "%d %d %d"

Мнение от hellmoss » 11 Юни 2020, 13:17

1.10.5388
xLd Zombie Plague -- 46.4.77.125
https://discord.gg/kbjN5JRxWb

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

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

Кой е на линия

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