Проверка на регистрацию игрока -
semiromid - 22.02.2012
Подскажите алгоритм . Как сделать проверку на игрока , зарегистрирован он или нет ?
Систему регистрации я почни написал , только на сервер можно войти без регистрации , используя кнопку "spawn".
Re: Проверка на регистрацию игрока -
jhonyxakep - 22.02.2012
Те надо чтобы игрок обязательно логинился и регистрировался?
Если да, то в ваших руках все функции сампа.
1. Например можно обездвижить игрока, перехватывать ввод всех команд (кроме логина и регистрации).
2. Кикать игрока по таймеру если он не залогинился или не зарегестрировался
3. после спавна делать игрока зрителем
4. Сделать зону, из которой незалогиненые выходить не смогут.
Лично я использую первый вариант.
Re: Проверка на регистрацию игрока -
semiromid - 22.02.2012
Когда игрок уже зарегистрировался , ему нужно завоно ввести свой пароль , для авторизаци ( идентификации).
Я вот придумал вот этоту простую функцию . Я ее проверил , вроде все работает правильно .
PHP Code:
((часть кода "Проверка игрока на авторизацию . Если он нажал кнопку "spawn" , значит он неавторизировался и его кикает с сервера ))
public OnPlayerSpawn(playerid)
{
if(login != 2)
{
Kick(playerid);
}
return 1;
}
PHP Code:
((часть кода авторизации ))
login = 2;
SendClientMessage(playerid,COLOR_YELLOW1,"Вы авторизировались");
SetSpawnInfo( playerid, 0, 79, 2227.4424,-1150.3325,1025.7969,91.0615, 0, 0, 0, 0, 0, 0 );
SpawnPlayer(playerid);
Можно ли так проверять игрока на именно авторизацию ? Нету ли тут не каких багов или лишний нагрузки на сервер?
Re: Проверка на регистрацию игрока -
js - 22.02.2012
semiromid, ваш код полный бред, почему например вам не взять уже готовую регистрацию?
Re: Проверка на регистрацию игрока -
semiromid - 22.02.2012
Quote:
Originally Posted by js
semiromid, ваш код полный бред, почему например вам не взять уже готовую регистрацию?
|
Ув.профессионал
Js ,подскажите пожалуйста. Почему бред и я постараюсь исправить это.
Я хочу сам написать систему регистрации, хочу знать все возможные лазейки и тонкости в ней .
Re: Проверка на регистрацию игрока -
js - 22.02.2012
присваивает значение login = 1 всему серверу, а не отдельному игроку.
используйте так:
PHP Code:
new login[MAX_PLAYERS] = 1;
везде замените login на login[playerid]
и в
OnPlayerConnect
PHP Code:
login[playerid] = 1;
Re: Проверка на регистрацию игрока -
Mutha_X - 22.02.2012
Может у него сервер с лимитом на не более чем 32 игрока, вот он и задумывается о запихивании логина каждого игрока в одну переменную с помощью битовых манипуляций xD
Правда тут не должно быть значений для каждого игрока иначе как 0 или 1)
Re: Проверка на регистрацию игрока -
semiromid - 22.02.2012
Quote:
Originally Posted by js
присваивает значение login = 1 всему серверу, а не отдельному игроку.
используйте так:
|
Спасибо . Я так и думал . И сделал по другому чють раньше .
А как лучше сделать . Как вы посоветывали или по нижеприведенному варианту?
public OnPlayerConnect(playerid)
PHP Code:
SetPVarInt(playerid,"Logen2",000);
public OnPlayerSpawn(playerid)
PHP Code:
if(GetPVarInt(playerid,"Logen2") != 222)
{
SendClientMessage(playerid,COLOR_YELLOW2,"Вы отключены от сервера");
Kick(playerid);
}
public OnPlayerDisconnect(playerid, reason)
PHP Code:
{
SetPVarInt(playerid,"Logen2",000);
return 1;
}
public OnDialogResponse (часть кода )
PHP Code:
SetPVarInt(playerid,"Logen2",222);
SendClientMessage(playerid,COLOR_YELLOW1,"Вы авторизировались");
SetSpawnInfo( playerid, 0, 79, 2227.4424,-1150.3325,1025.7969,91.0615, 0, 0, 0, 0, 0, 0 );
SpawnPlayer(playerid);
Re: Проверка на регистрацию игрока -
ZiGGi - 22.02.2012
Quote:
Originally Posted by semiromid
Спасибо . Я так и думал . И сделал по другому чють раньше .
А как лучше сделать . Как вы посоветывали или по нижеприведенному варианту?
public OnPlayerConnect(playerid)
PHP Code:
SetPVarInt(playerid,"Logen2",000);
public OnPlayerSpawn(playerid)
PHP Code:
if(GetPVarInt(playerid,"Logen2") != 222)
{
SendClientMessage(playerid,COLOR_YELLOW2,"Вы отключены от сервера");
Kick(playerid);
}
public OnPlayerDisconnect(playerid, reason)
PHP Code:
{
SetPVarInt(playerid,"Logen2",000);
return 1;
}
public OnDialogResponse (часть кода )
PHP Code:
SetPVarInt(playerid,"Logen2",222);
SendClientMessage(playerid,COLOR_YELLOW1,"Вы авторизировались");
SetSpawnInfo( playerid, 0, 79, 2227.4424,-1150.3325,1025.7969,91.0615, 0, 0, 0, 0, 0, 0 );
SpawnPlayer(playerid);
|
Logen2
называй нормально...
Оставляй это:
pawn Code:
SetPVarInt(playerid,"Login",1);
SendClientMessage(playerid,COLOR_YELLOW1,"Вы авторизировались");
SetSpawnInfo( playerid, 0, 79, 2227.4424,-1150.3325,1025.7969,91.0615, 0, 0, 0, 0, 0, 0 );
SpawnPlayer(playerid);
pulic OnPlayerRequestSpawn(playerid)
pawn Code:
if (GetPVarInt(playerid,"Login") != 1) return 0;
Остальное убирай к чёрту.
Re: Проверка на регистрацию игрока -
semiromid - 22.02.2012
Quote:
Originally Posted by ZiGGi
Logen2 называй нормально...
Оставляй это:
pawn Code:
SetPVarInt(playerid,"Login",1); SendClientMessage(playerid,COLOR_YELLOW1,"Вы авторизировались"); SetSpawnInfo( playerid, 0, 79, 2227.4424,-1150.3325,1025.7969,91.0615, 0, 0, 0, 0, 0, 0 ); SpawnPlayer(playerid);
pulic OnPlayerRequestSpawn(playerid)
pawn Code:
if (GetPVarInt(playerid,"Login") != 1) return 0;
Остальное убирай к чёрту.
|
Как вы считаете . Нужно ли еще делать режим спектатора ?
PHP Code:
TogglePlayerSpectating