Форум Pawn-Wiki.Ru - Воплоти мечту в реальность!: ini_getInteger не достает из файла переменные. - Форум Pawn-Wiki.Ru - Воплоти мечту в реальность!

Перейти к содержимому

Страница 1 из 1
  • Вы не можете создать новую тему
  • Вы не можете ответить в тему

[ Pawn ]
ini_getInteger не достает из файла переменные.

#1
Пользователь офлайн   Sourire_Garcia 

  • Прохожий
  • Вставить ник
  • Раскрыть информацию
Столкнулся с проблемой, что ini_getInteger ничего не достает из файла и даже отладку делал - все переменные пусты. Чем это может быть вызвано?
Причем данная проблема только с авторизацией, с регистрацией все на ура.

if(dialogid == 3) {
	    if(strcmp(inputtext, playerInfo[playerid][pass], false, 13) || inputtext[0] == '\0') {
	    	TogglePlayerSpectating(playerid, false);
	        SendClientMessage(playerid, -1, "Ты подозреваешься в попытке взлома!");
	        new string[256], playerName[MAX_PLAYER_NAME]; GetPlayerName(playerid, playerName, MAX_PLAYER_NAME);
			format(string, 256, "%s кикнут за подозрение в попытке взлома.", playerName);
	        SendClientMessageToAll(-1, string);
	        Kick(playerid);
	    } else {
	        if(!response) {
	            Kick(playerid);
	        }
            TogglePlayerSpectating(playerid, false);
	        SendClientMessage(playerid, -1, "Приятной игры! <3");
	        new playerName[MAX_PLAYER_NAME], folder[MAX_PLAYER_NAME + 13]; GetPlayerName(playerid, playerName, MAX_PLAYER_NAME);
			format(folder, MAX_PLAYER_NAME + 13, "/players/%s.ini", playerName);
			new INI = ini_openFile(folder);
		    ini_getInteger(INI, "money", playerInfo[playerid][money]);
		    ini_getInteger(INI, "skin", playerInfo[playerid][skin]);
		    ini_getInteger(INI, "score", playerInfo[playerid][score]);
		    ini_getInteger(INI, "deaths", playerInfo[playerid][deaths]);
		    ini_getInteger(INI, "kills", playerInfo[playerid][kills]);
		    ini_getInteger(INI, "vehicle", playerInfo[playerid][vehicle]);
		    ini_getInteger(INI, "admin", playerInfo[playerid][admin]);
		    ini_closeFile(INI);
		    
			SpawnPlayer(playerid);
			
    		GivePlayerMoney(playerid, playerInfo[playerid][money]);
			SetPlayerSkin(playerid, playerInfo[playerid][skin]);
			playerInfo[playerid][score] = playerInfo[playerid][kills] - playerInfo[playerid][deaths];
			SetPlayerScore(playerid, playerInfo[playerid][score]);
	    }
	}

0

#2
Пользователь офлайн   SCRIPTMAN 

  • Новичок
  • Вставить ник
  • Раскрыть информацию
А ты ник правильно получаешь?
0

#3
Пользователь офлайн   MassonN 

  • Эксперт
  • Вставить ник
  • Раскрыть информацию
Советую проверять существует ли файл перед тем, как работать с ним)
0

#4
Пользователь офлайн   Sonic X 

  • Эксперт
  • Вставить ник
  • Раскрыть информацию
"/players/%s.ini"

Первый слеш зачем?
0

#5
Пользователь офлайн   Sourire_Garcia 

  • Прохожий
  • Вставить ник
  • Раскрыть информацию
Ну вроде правильно, я же прикрепил код.

Просмотр сообщенияSCRIPTMAN (23 мая 2020 - 10:42) писал:

А ты ник правильно получаешь?


Там при коннекте все проверяется. Файл в папке есть я смотрел.

Просмотр сообщенияMassonN (24 мая 2020 - 00:20) писал:

Советую проверять существует ли файл перед тем, как работать с ним)


Честно, не знаю) Ну сейчас попробую его убрать, если всё заработает отпишу.

Просмотр сообщенияSonic X (24 мая 2020 - 12:14) писал:

"/players/%s.ini"

Первый слеш зачем?


Ничего не изменилось.

Просмотр сообщенияSourire_Garcia (25 мая 2020 - 17:02) писал:


Честно, не знаю) Ну сейчас попробую его убрать, если всё заработает отпишу.

0

#6
Пользователь офлайн   MassonN 

  • Эксперт
  • Вставить ник
  • Раскрыть информацию
1. Названия ключей должны быть точь-в-точь как в файле.
2. Файл нужно проверять в любом случае, несмотря на более ранние проверки, ибо в процессе кода может произойти тайное и неизведанное.
3. Проверь разрешение файла, а также его нахождение в соответствующей папке.
4. Прошу отметить, что путь к файлу должен начинаться без слеша, а с названия папки с аккаунтами.
0

#7
Пользователь офлайн   Sourire_Garcia 

  • Прохожий
  • Вставить ник
  • Раскрыть информацию
Всё перечисленное соблюдается. Ошибка не ушла.

Просмотр сообщенияMassonN (26 мая 2020 - 00:16) писал:

Нажмите сюда, чтобы прочитать это сообщение. [Показать]

Сообщение отредактировал Sourire_Garcia: 26 мая 2020 - 07:24

0

#8
Пользователь офлайн   MassonN 

  • Эксперт
  • Вставить ник
  • Раскрыть информацию
Если все вышеперечисленное соблюдается, то и не будет ошибки. Хорошо, попробуй все таки добавить строчку после openFile:

if(INI <= 0) print ("Файл не найден");

Сообщение отредактировал MassonN: 26 мая 2020 - 07:31

0

Поделиться темой:


Страница 1 из 1
  • Вы не можете создать новую тему
  • Вы не можете ответить в тему

1 человек читают эту тему
0 пользователей, 1 гостей, 0 скрытых пользователей


Яндекс.Метрика