KeyValuesToFile не сохраняет в файл.

uhx

Участник
Сообщения
20
Реакции
0
Собсна сабж:
Разбираюсь тут с KeyValues, вроде все допер, но тут беда: не могу сохранить свой список. Весь код выкладывать не хочу, скину основные (как по мне) моменты.

PHP:
new Handle:kv = INVALID_HANDLE;
...
public void OnPluginStart(){
	kv = CreateKeyValues("File");
	FileToKeyValues(kv, "/configs/file.txt");
}
...
// Потом обработка нажатия в меню, удаляем/добавляем какие-то ключи и пытаюсь сохранить:

	KvRewind(kv);
	if(KeyValuesToFile(kv, "/configs/file.txt")){
		CGOPrintToChat(client, "[{GREEN}VCC{DEF}] Список {LIME}успешно {DEF}обновлен!");
	}
	else{
		CGOPrintToChat(client, "[{GREEN}VCC{DEF}] {RED}Ошибка! {DEF}Запись в файл невозможна!");
	}

Никаких исключений в консоли не вылетает, просто функция возвращает 0, а не 1.
Я не знаю в чем беда, в меню все сохраненные изменения отображаются корректно, а в файл это записать не могу.
Вроде бы все верно сделал: вызвал KvRewind - поднялся на самую верхушку, чтобы записать все ключики, затем вызываю KeyValuesToFile - Invalid Handle (из вики).
Хотя как хендл может быть битым, если я продолжаю корректно обновлять данные в списке? (ошибок то нет, кроме этой)
 
Последнее редактирование:

FrozDark

Участник
Сообщения
1,769
Реакции
2,050
KeyValuesToFile(kv, "/configs/file.txt")

Путь нужно указывать из под корня cstrike (если игра CS)

К примеру:
KeyValuesToFile(kv, "addons/sourcemod/configs/file.txt");

И в начале никогда не ставь слэшы
 
  • Мне нравится
Реакции: uhx

uhx

Участник
Сообщения
20
Реакции
0
KeyValuesToFile(kv, "/configs/file.txt")

Путь нужно указывать из под корня cstrike (если игра CS)

К примеру:
KeyValuesToFile(kv, "addons/sourcemod/configs/file.txt");

И в начале никогда не ставь слэшы

Спасибо, все работает :) А то ни в одном гайде не было написано, как путь нормально прописать)
 

R1KO

fuck society
Сообщения
9,457
Реакции
7,786
  • Команда форума
  • #4
uhx, можно посмотреть в других плагинах.
 

uhx

Участник
Сообщения
20
Реакции
0
uhx, можно посмотреть в других плагинах.

Я знаю, благо в нотпаде++ есть поиск подстроки во всех файлах указанного каталога)
Просто писалось уже это дело под утро и я не соображал, а там вот какие строчки:

new String:m_szFile[PLATFORM_MAX_PATH];
BuildPath(Path_SM, STRING(m_szFile), "configs/store/items.txt");
new Handle:m_hKV = CreateKeyValues("Store");
FileToKeyValues(m_hKV, m_szFile);


Красным выделено то, куда я в первую очередь смотрел, а розовым - на что я не обратил внимания) В общем, мой косяк.
ЗЫ в теге пчп цвета не работают :с
 
Сверху Снизу