PDA

Просмотр полной версии : [Вопрос] Все время пишет одно и тоже.



kala4iks
23.01.2017, 16:11
Добрый день столкнулся с такой проблемой сделал оповещение админам когда входит игрок на сервер авторизуется он или же начинает регистрацию но столкнулся с такой проблемой все время пишет что он начинает регистрацию как бы я не менял местами.

В


public OnPlayerConnect(playerid)


if(GetPVarInt(playerid,"Reg") == 1)
{
if(Player[playerid][pAdmin] != 0)
{
f(string,"(( %s[%d] авторизуется на сервере | IP: {FFFF00}%s {AFAFAF}))",sendername(playerid),playerid,ip);
ABroadCast(0xAFAFAFAA,string,1);
}
else
{
f(string,"(( %s[%d] авторизуется на сервере | IP: {FFFFFF}%s {AFAFAF}))",sendername(playerid),playerid,ip);
ABroadCast(0xAFAFAFAA,string,1);
}
}
else
{
f(string,"(( %s[%d] начинает регистрацию | IP: {FFFFFF}%s {AFAFAF}))",sendername(playerid),playerid,ip);
ABroadCast(0xAFAFAFAA,string,1);
}

_lizard
23.01.2017, 16:48
А может значение "Reg" обнуляется к моменту выполнения этого кода?

Geebrox
23.01.2017, 16:48
и где же ты задаешь значение для "Reg"?
Ты выполняешь этот код до того как устанавливаешь значение для "Reg". Конечно всегда будет так, как будто игрок регается.

kala4iks
23.01.2017, 16:53
и где же ты задаешь значение для "Reg"?
Ты выполняешь этот код до того как устанавливаешь значение для "Reg". Конечно всегда будет так, как будто игрок регается.

А можно ли как до узнать значение до того как установить значение? Или же как то по другому можно реализовать?

Geebrox
23.01.2017, 16:55
А можно ли как до узнать значение до того как установить значение? Или же как то по другому можно реализовать?

WAT?

Где ты узнаешь зареган ли игрок или нет, вот там и делай отправку сообщение админам.

_lizard
23.01.2017, 16:58
А можно ли как до узнать значение до того как установить значение? Или же как то по другому можно реализовать?

Когда игрок авторизуется - отправляй сообщение об авторизации, когда регистрируется - о регистрации

kala4iks
23.01.2017, 17:23
Когда игрок авторизуется - отправляй сообщение об авторизации, когда регистрируется - о регистрации

Спасибо работает но теперь столкнулся с другой проблемой когда игрок авторизуется пишет что авторизуется и IP белый я сделал чтоб когда админ авторизуется то желтый будет IP но когда и игрок и админ авторизуется IP и там и там белый.


public OnPlayerRequestClass(playerid,classid)
{
GetPlayerName(playerid,Player[playerid][pName],MAX_PLAYER_NAME);
if(IsPlayerNPC(playerid)) return true;
SetPVarInt(playerid,"ReSpawn",1);
SetPlayerFacingAngle(playerid, 19.1733);
TogglePlayerSpectating(playerid,1);
TextDrawShowForPlayer(playerid,ServerLogo);
TextDrawShowForPlayer(playerid,ServerDate);
SetPlayerCameraPos(playerid,1415.4607,-815.2944,75.4216);
SetPlayerCameraLookAt(playerid,1414.4186,-810.1878,75.4523,CAMERA_CUT);
SetPlayerVirtualWorld(playerid,playerid + 1);
new query[256];
mysql_format(mySQLDB,query,256,"SELECT `Nickname` FROM `accounts` WHERE `Nickname` = '%s'",Player[playerid][pName]);
mysql_function_query(mySQLDB,query,true,"OnPlayerRegCheck","d",playerid);
return true;
}



publics OnPlayerRegCheck(playerid)
{
new ip[MAX_PLAYER_NAME],string[124];
GetPlayerIp(playerid,ip,sizeof(ip));
ConnectIP[playerid] = ip;
new rows,fields;
cache_get_data(rows, fields);
if(rows)
{
ShowLogin(playerid);
if(Player[playerid][pAdmin] != 0)
{
f(string,"(( %s[%d] авторизуется на сервере | IP: {FFFF00}%s {AFAFAF}))",sendername(playerid),playerid,ip);
ABroadCast(0xAFAFAFAA,string,1);
}
else
{
f(string,"(( %s[%d] авторизуется на сервере | IP: {FFFFFF}%s {AFAFAF}))",sendername(playerid),playerid,ip);
ABroadCast(0xAFAFAFAA,string,1);
}
}
else
{
f(string,"(( %s[%d] начинает регистрацию | IP: {FFFFFF}%s {AFAFAF}))",sendername(playerid),playerid,ip);
ABroadCast(0xAFAFAFAA,string,1);
ShowRegister(playerid);
}
return true;
}

_lizard
23.01.2017, 17:25
Спасибо работает но теперь столкнулся с другой проблемой когда игрок авторизуется пишет что авторизуется и IP белый я сделал чтоб когда админ авторизуется то желтый будет IP но когда и игрок и админ авторизуется IP и там и там белый.


public OnPlayerRequestClass(playerid,classid)
{
GetPlayerName(playerid,Player[playerid][pName],MAX_PLAYER_NAME);
if(IsPlayerNPC(playerid)) return true;
SetPVarInt(playerid,"ReSpawn",1);
SetPlayerFacingAngle(playerid, 19.1733);
TogglePlayerSpectating(playerid,1);
TextDrawShowForPlayer(playerid,ServerLogo);
TextDrawShowForPlayer(playerid,ServerDate);
SetPlayerCameraPos(playerid,1415.4607,-815.2944,75.4216);
SetPlayerCameraLookAt(playerid,1414.4186,-810.1878,75.4523,CAMERA_CUT);
SetPlayerVirtualWorld(playerid,playerid + 1);
new query[256];
mysql_format(mySQLDB,query,256,"SELECT `Nickname` FROM `accounts` WHERE `Nickname` = '%s'",Player[playerid][pName]);
mysql_function_query(mySQLDB,query,true,"OnPlayerRegCheck","d",playerid);
return true;
}



publics OnPlayerRegCheck(playerid)
{
new ip[MAX_PLAYER_NAME],string[124];
GetPlayerIp(playerid,ip,sizeof(ip));
ConnectIP[playerid] = ip;
new rows,fields;
cache_get_data(rows, fields);
if(rows)
{
ShowLogin(playerid);
if(Player[playerid][pAdmin] != 0)
{
f(string,"(( %s[%d] авторизуется на сервере | IP: {FFFF00}%s {AFAFAF}))",sendername(playerid),playerid,ip);
ABroadCast(0xAFAFAFAA,string,1);
}
else
{
f(string,"(( %s[%d] авторизуется на сервере | IP: {FFFFFF}%s {AFAFAF}))",sendername(playerid),playerid,ip);
ABroadCast(0xAFAFAFAA,string,1);
}
}
else
{
f(string,"(( %s[%d] начинает регистрацию | IP: {FFFFFF}%s {AFAFAF}))",sendername(playerid),playerid,ip);
ABroadCast(0xAFAFAFAA,string,1);
ShowRegister(playerid);
}
return true;
}

Ну так конечно. Вы же не получаете вообще никаких данных, в т.ч. и уровень администратора

kala4iks
23.01.2017, 18:33
Ну так конечно. Вы же не получаете вообще никаких данных, в т.ч. и уровень администратора

А вообще больше не как не льзя реализовать это так чтоб оставалось в public OnPlayerConnect?

qwezert
23.01.2017, 18:50
А вообще больше не как не льзя реализовать это так чтоб оставалось в public OnPlayerConnect?

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