Форум Pawn-Wiki.Ru - Воплоти мечту в реальность!: Помогите с сохранением данных. - Форум Pawn-Wiki.Ru - Воплоти мечту в реальность!

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

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

[ Pawn ]
Помогите с сохранением данных. mxINI

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

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

Тема закрыта.

Проблема была в том, что:
В общем. Столкнулся с проблемой, что не сохраняются данные о игроке при выключении сервера (mxINI). То есть если игрок вышел, а только потом уже выключается сервер всё нормально сохраняется. В чём моя ошибка? Перепробовал все варианты: foreach, for, без того и другого.

Вот public OnGameModeExit:

public OnGameModeExit()
{
        for(new i=0;i<MAX_PLAYERS;i++)
	{
             SavePlayer(i);
        }
	SaveGZ();
	return 1;
} 


Вот stock SavePlayer:

stock SavePlayer(playerid)
{
	new str[50];
	if(Login[playerid] == false) return true;
	format(str, sizeof(str), "users/%s.ini", PlayerInfo[playerid][pName]);
	new File = ini_openFile(str);
        ini_setInteger(File, "Level", PlayerInfo[playerid][pLevel]);
        ...
        return 1;
}

Сообщение отредактировал EyGikGo: 06 Декабрь 2018 - 17:38

0

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

  • Эксперт
  • Вставить ник
  • Раскрыть информацию
Возможно, в этой проверке.
if(Login[playerid] == false)

0

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

  • Новичок
  • Вставить ник
  • Раскрыть информацию

Просмотр сообщенияNEKS (06 Декабрь 2018 - 16:14) писал:

Возможно, в этой проверке.
if(Login[playerid] == false)


К сожалению нет, ибо после этого стоит return true; Это для того, чтобы не сохранялся аккаунт, который ещё не вошёл в игру.
0

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

  • Эксперт
  • Вставить ник
  • Раскрыть информацию
В OnPlayerDisconnect пропиши свой stock.
0

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

  • Новичок
  • Вставить ник
  • Раскрыть информацию

Просмотр сообщенияPa4enka (06 Декабрь 2018 - 16:44) писал:

В OnPlayerDisconnect пропиши свой stock.


Он там есть. Проблема в том, что stock в OnGameModeExit не работает. То есть если игрок был на сервере в момент его выключения, то данные о игроке не сохраняются.

Может как-то по другому нужно писать сохранение. Покажите, как нужно сохранять аккаунт в OnGameModeExit?

Сообщение отредактировал EyGikGo: 06 Декабрь 2018 - 16:51

0

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

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

Закрываю тему.
0

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

  • Эксперт
  • Вставить ник
  • Раскрыть информацию
Сохранять аккаунты при выключении сервера не самая лучшая идея. Намного проще прописать один раз сток сохранения для одного игрока(без цикла) в OnPlayerDisconnect. Он в любом случаи вызовется раньше OnGameModeExit.
0

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


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

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