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

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

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

[ Pawn ]
Иногда на спавнит игрока

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

  • Новичок
  • Вставить ник
  • Раскрыть информацию
Доброго времени суток. Я написал систему регистрации игрока на MySQL, вроде бы всё работает чётко, но есть проблема: если авторизоваться с одного ника, выйти с сервера и попытаться авторизоваться с другого ника, то все данные прогрузит (если пароль правильный конечно же), но самого игрока не заспавнит. Почему так? Вот мой паблик где собственно и происходит спавн:
public LoadAccount(playerid, password[]) {
	new row_Count;
	cache_get_row_count(row_Count);
	PlayerInfo[playerid][pPassword] = 0;
	if(row_Count > 0) {
		strins(PlayerInfo[playerid][pPassword], password, 0);
		cache_get_value_int(0, "Number", PlayerInfo[playerid][pAccountNumber]);
		cache_get_value_int(0, "Money", PlayerInfo[playerid][pMoney]);
		cache_get_value_int(0, "Sex", PlayerInfo[playerid][pSex]);
		cache_get_value_int(0, "Skin", PlayerInfo[playerid][pSkin]);
		isPlayerLogged[playerid] = true;
		SpawnPlayer(playerid);
	}
	else {
  		ShowDialogLogin(playerid, "Пароль неверен");
	}
	return true;
}

P.S. Заметил вот что: когда показывается тот диалог, после которого игрока не спавнит отсутствуют элементы управления снизу, т.е. <<, >>, SPAWN. TogglePlayerSpectating нигде не используется.

Сообщение отредактировал Jackson2008: 06 Декабрь 2017 - 15:22

0

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

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

public LoadAccount(playerid, password[]) 
{
        new row_Count;
        cache_get_row_count(row_Count);
        PlayerInfo[playerid][pPassword] = 0;
        if(row_Count > 0) {
                strins(PlayerInfo[playerid][pPassword], password, 0);
                cache_get_value_int(0, "Number", PlayerInfo[playerid][pAccountNumber]);
                cache_get_value_int(0, "Money", PlayerInfo[playerid][pMoney]);
                cache_get_value_int(0, "Sex", PlayerInfo[playerid][pSex]);
                cache_get_value_int(0, "Skin", PlayerInfo[playerid][pSkin]);
                isPlayerLogged[playerid] = true;
                SetSpawnInfo( playerid, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 );
                SpawnPlayer(playerid);
        }
        else {
                ShowDialogLogin(playerid, "Пароль неверен");
        }
        return true;
}




Замени свой на вот эту

Сообщение отредактировал Ambrel: 06 Декабрь 2017 - 11:42

0

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

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

Просмотр сообщенияAmbrel (06 Декабрь 2017 - 11:41) писал:

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

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

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

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

public LoadAccount(playerid, password[]) 
{
        new rows, fields;
        cache_get_data(rows, fields);
        if(rows)
        {
                strins(PlayerInfo[playerid][pPassword], password, 0);
                cache_get_value_int(0, "Number", PlayerInfo[playerid][pAccountNumber]);
                cache_get_value_int(0, "Money", PlayerInfo[playerid][pMoney]);
                cache_get_value_int(0, "Sex", PlayerInfo[playerid][pSex]);
                cache_get_value_int(0, "Skin", PlayerInfo[playerid][pSkin]);
                
                SetSpawnInfo( playerid, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 );
                SpawnPlayer(playerid);
                isPlayerLogged[playerid] = true;
        }
        else 
        {
                ShowDialogLogin(playerid, "Пароль неверен");
        }
        return 1;
}



0

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

  • Новичок
  • Вставить ник
  • Раскрыть информацию
При замене cache_get_value_int (который вроде как отсутствует в R40) на cache_get_value_name_int проблема со спавном вроде как ушла, но проблема с исчезновением элементов управления снизу осталась
0

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

  • Новичок
  • Вставить ник
  • Раскрыть информацию
После переноса регистрации из OnPlayerConnect в OnPlayerRequestClass проблема ушла.

Сообщение отредактировал Jackson2008: 06 Декабрь 2017 - 16:46

0

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

  • Новичок
  • Вставить ник
  • Раскрыть информацию
Теперь другая хрень: если с открытым диалогом логина зарестартить сервер, то после коннекта диалог не появится из-за того, что OnPlayerRequestClass не вызывается. Как исправить?
0

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

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

#9
Пользователь офлайн   hypebot 

  • Местный
  • Вставить ник
  • Раскрыть информацию
Это MySQL R40-41?
0

#10
Пользователь офлайн   Jackson2008 

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

Просмотр сообщенияhypebot (07 Декабрь 2017 - 22:40) писал:

Это MySQL R40-41?

Да, R41-4

Сообщение отредактировал Jackson2008: 08 Декабрь 2017 - 15:34

0

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


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

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