Рекомендованные сообщения



Не найдено.

16 posts in this topic

Друзья, выручайте :)

Слетают аккаунты после перезагрузки сервера на хостинге.

Сейчас объясню как это происходит.

 

Допустим игрок находится на сервере (в игре), я перезагружаю мод на хостинге, игрок ждет пока пройдет перезагрузка - вводит пароль и авторизуется, все хорошо, все сохраняется, но... Если после перезагрузки на авторизации подождать пока выйдет время, которые дается на авторизацию, игрока кикает с сервера и только в этом случае слетают данные аккаунта, лвл, деньги, админка и т.д.

Share this post


Link to post
Share on other sites

@Yong скидывайте OnPlayerConnect под спойлером и кодом https://pawno-rus.ru/osnova.html/faq/spoiler-and-code/

 

Share this post


Link to post
Share on other sites
Спойлер

GetPlayerName(playerid, player[playerid][pname], MAX_PLAYER_NAME);
static fmt_str[] = "SELECT `Score` FROM `accounts` WHERE `Name` = '%s'";
new string[sizeof(fmt_str)+MAX_PLAYER_NAME-1];
mysql_format(connect_mysql, string, sizeof(string), fmt_str, GN(playerid));
mysql_function_query(connect_mysql, string, true, "OnPlayerCheck", "d", playerid);
Clear(playerid);
TextDrawShowForPlayer(playerid,Textdraw0);

 

Данные аккаунта слетают именно если после перезагрузки сервера, если не авторизоваться, а просто выйти.

Edited by Yong

Share this post


Link to post
Share on other sites

@Yong если сервер не перезагружать и выполнить те же самые действия, все нормально?

Share this post


Link to post
Share on other sites
4 минуты назад, DEST сказал:

@Yong если сервер не перезагружать и выполнить те же самые действия, все нормально?

Да, если не перезагружать серверй, все сохраняется

Share this post


Link to post
Share on other sites

@Yong перезагружаешь сервер через хостинг или через команду? 

Share this post


Link to post
Share on other sites
3 минуты назад, DEST сказал:

@Yong перезагружаешь сервер через хостинг или через команду? 

Хостинг

Share this post


Link to post
Share on other sites

@Yong скорее всего сохранение прописано в OnPlayerDisconnect, а при перезагрузке через хостинг этот паблик просто не срабатывает, в связи с чем данные не сохраняются. 

Share this post


Link to post
Share on other sites
5 минут назад, DEST сказал:

@Yong скорее всего сохранение прописано в OnPlayerDisconnect, а при перезагрузке через хостинг этот паблик просто не срабатывает, в связи с чем данные не сохраняются. 

Сейчас попробовал так-же через команду /restart, перезагружаешься - авторизуешься - все сохроняется.

А если перезагрузиться и не авторизоваться, просто выйти с игры во время перезагрузки или на вводе пароля - слетают данные аккаунта.

Share this post


Link to post
Share on other sites

@Yong Сразу тестите хорошо, а потом отвечайте на поставленные вопросы. Это вводит в заблуждение. Из OnPlayerConnect удалите 

Clear(playerid); 

и вставьте в OnPlayerDisconnect ПОСЛЕ операции сохранения аккаунта 

Share this post


Link to post
Share on other sites
3 минуты назад, DEST сказал:

@Yong Сразу тестите хорошо, а потом отвечайте на поставленные вопросы. Это вводит в заблуждение. Из OnPlayerConnect удалите 

Clear(playerid); 

и вставьте в OnPlayerDisconnect ПОСЛЕ операции сохранения аккаунта 

Все тоже самое. "Clear" это - 

 

Спойлер

stock Clear(playerid)
{
	login_check[playerid] = false;
	check_pass[playerid] = 0;
	dm[playerid] = 0;
	loc[playerid] = 0;
	parkour[playerid] = 0;
}

 

И я думаю что он нужен при коннекте, а не наоборот.   

Share this post


Link to post
Share on other sites

@Yong другие стоки / паблики есть, которые очищают данные игрока? 

Share this post


Link to post
Share on other sites
1 минуту назад, DEST сказал:

@Yong другие стоки / паблики есть, которые очищают данные игрока? 

Спойлер

stock SavePlayer(playerid)
{
    static fmt_str[] ="UPDATE `accounts` SET `Skin` = %d, `Score` = %d, `Money` = %d, `Admin` = %d, `Mute` = %d WHERE `Name` = '%s'";
	new string[sizeof(fmt_str)+MAX_PLAYER_NAME+50];
	mysql_format(connect_mysql, string, sizeof(string), fmt_str
	,
		player[playerid][pskin],
		player[playerid][pscore],
		player[playerid][pmoney],
		player[playerid][padmin],
		player[playerid][pmute],
		GN(playerid)
	);
	mysql_function_query(connect_mysql, string, true, "", "");
}

 

 

Share this post


Link to post
Share on other sites

@Yong так это не очищает, а сохраняет данные. Скидывайте тогда OnPlayerDisconnect. 

Share this post


Link to post
Share on other sites
1 минуту назад, DEST сказал:

@Yong так это не очищает, а сохраняет данные. Скидывайте тогда OnPlayerDisconnect. 

Спойлер

public OnPlayerDisconnect(playerid, reason)
{
	if(login_check[playerid] == true)
    KillTimers(playerid);
    Delete3DTextLabel(Admin3D{playerid});
    SavePlayer(playerid);
	return true;
}

 

 

Share this post


Link to post
Share on other sites

Решил проблему данным путем.

Перед рестартом кикаю всех игроков с сервера.

Потом сам рестарт. Теперь не слетатет.

Share this post


Link to post
Share on other sites
Guest
This topic is now closed to further replies.
Sign in to follow this  
Followers 0

  • Recently Browsing   0 members

    No registered users viewing this page.

  • Similar Content

    • Твой инвестор
      By Твой инвестор
      Ищу маппера для доработки мода, работы вроде как немного но вся оплатиться, все предложения жду в дс или в вк, ссылочки оставляю ниже.
      https://vk.com/dvankov
      SmirnoffredTV#3255
    • Alexey_Astrovskiy
      By Alexey_Astrovskiy
      Помогите перенести мигалки с ексайтинга(не пиар) в свой мод.