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



Не найдено.

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

    • odosenok
      By odosenok
      Описание системы.
      Система полета камерой представляет собой возможность перемещаться в пространстве игры по всем осям (X, Y, Z) путем нажатия кнопок на клавиатуре.
       
      Подключение системы.
      1. Система написана в отдельном файле - include. Вам необходимо скачать этот файл и добавить в папку, находящейся в следующей директории:
      "..\pawno\include" 2. Затем Вам следует открыть свой игровой мод и в начале, после всех инклудов, дописать следующую строку:
      #include <fly>  
      Работа с системой.
      В систему полета камерой включены две функции:
      1.
      SetPlayerFlyStatus(playerid, status = 2) /* playerid - ID игрока, которого Вы хотите "отправить" в режим полета status - режим полета* * предусмотрено три режима полета: CAMERA_MODE_NONE (0) - выключить режим полета, CAMERA_MODE_FLY (1) - включить режим полета, CAMERA_MODE_REVERSE (2) - сменить режим на реверсивный */ 2. 
      IsPlayerFlying(playerid) /* playerid - ID игрока, пребывание в состоянии полета которого Вы хотите проверить *данная функция возвращает: CAMERA_MODE_NONE (0), если игрок не находится в состоянии полета, CAMERA_MODE_FLY (1), если игрок находится в состоянии полета */ При помощи данных функций Вы можете управлять пребыванием игрока в режиме полета, а также получать информацию о том, "летает" ли игрок в тот или иной момент.
       
      Особенности системы.
      Системой полета предусмотрено, что игрок, выходящий из режима полета, появится именно там, где вышел. Так, если Вы покидаете режим полета, пребывая в озере, то появление игрока будет именно в этом озере.
       
      Пример использования.
      CMD:fly(playerid, params[]) { static const MSG_USE_CMD[] = !"» Usage the command: /fly [mode 0-2]"; if(isnull(params)) return SendClientMessage(playerid, -1, MSG_USE_CMD) & 0; new mode; if(sscanf(params, "d", mode)) return SendClientMessage(playerid, -1, MSG_USE_CMD) & 0; else if(!(0 <= mode <= 2)) return SendClientMessage(playerid, -1, MSG_USE_CMD) & 0; SetPlayerFlyStatus(playerid, mode); return 1; } CMD:checkfly(playerid, params[]) { static const MSG_USE_CMD[] = !"» Usage the command: /checkfly [playerid]"; if(isnull(params)) return SendClientMessage(playerid, -1, MSG_USE_CMD) & 0; new id; if(sscanf(params, "u", id)) return SendClientMessage(playerid, -1, MSG_USE_CMD) & 0; else if(id == INVALID_PLAYER_ID) return SendClientMessage(playerid, -1, !"The player is not connected") & 0; static const status_fly[][] = { !"The player is not flying", !"The player is flying" }; SendClientMessage(playerid, -1, status_fly[IsPlayerFlying(id)]); return 1 } Авторское право.
      Функции для получения позиции для перемещения камеры, само перемещение вырезаны из разработки Norck.
      В свою очередь я, @odosenok, лишь преобразовал данный код, создал более удобный интерфейс.
       
      fly.inc
    • KAIF
      By KAIF
      Здравствуйте, хотел бы продать переделанный игровой мод всем знакомого проекта GTA RolePlay
      Фракции:
      1)Правительство
      2)ГИБДД
      3)Полиция Южного
      4)ФСБ
      5)ЦГБ-А
      6)Автошкола
      7)ВВС
      8)СМИ
      9)ОМОН
      10)опг.Тукаевские
      11)опг.Тяп-Ляп
      12)Чеченская Мафия
      13)Американская Мафия
      14)Якудза
      15)Русская Мафия
      16)Итальянская Мафия
      Добавлено/исправлено:
      1)Добавлен ВЕСЬ ОПТИМИЗИРОВАННЫЙ маппинг GTA ROLEPLAY.(2018-2019г)
      2)Добавлены организации мафий.
      3)Перенесены все чекпоинты как на GTA ROLEPLAY.
      4)Добавил в донат покупку военного билета.
      5)Изменил название рангов во фракциях как на GTA ROLEPLAY/
      6)Изменен логотип GTA ROLEPLAY
      7)Переделан весь GPS, изменены все координаты.
      В моде - 6 уровней администрации.(если хотите можете увелить кол-во админок)
      Имеется фуллдоступ, выдаётся в pawno.
      Так же в комплекте будет идти мод-пак к серверу.
      После покупки вы получите архив с модом, а в самом архиве будет текстовый файл с ссылкой на скачивание модпака.