need help to change something.. -
I have a admin system in which on player connect, it tells that you are not register pleas register. I want a dialog of register on player connect and when players try to escape that dialog. He will get kicked.
pawn Код:
public OnPlayerConnect(playerid)
{
//Auto log in
new Query[256], pName[MAX_PLAYER_NAME];
GetPlayerName(playerid, pName, sizeof pName);
mysql_real_escape_string(pName, pName);
format(Query, sizeof Query, "SELECT * FROM `accounts` WHERE `Name` = '%s' LIMIT 1", pName);
mysql_query(Query);
mysql_store_result();
if(mysql_num_rows() != 0)
{
new IP[16];
GetPlayerIp(playerid, IP, sizeof IP);
format(Query, sizeof Query, "SELECT * FROM `accounts` WHERE `Name` = '%s' and IP = '%s' LIMIT 1", pName, IP);
mysql_query(Query);
mysql_store_result();
if(mysql_num_rows() != 0)
{
mysql_fetch_row(Query);
new values[5];
sscanf(Query, "p<|>{s[24]s[129]s[16]}a<i>[5]", values);
SetPVarInt(playerid, "Admin", values[0]);
GivePlayerMoney(playerid, values[1]);
SetPlayerScore(playerid, values[2]);
SetPVarInt(playerid, "Kills", values[3]);
SetPVarInt(playerid, "Deaths", values[4]);
SetPVarInt(playerid, "Logged", 1);
SendClientMessage(playerid, COLOR_LIMEGREEN, "=> Welcome back! You've been automatically logged in.");
}
else SendClientMessage(playerid, COLOR_ORANGE, "=> Your account has been found, please use \"/login\" to log in!");
}
else SendClientMessage(playerid, COLOR_ORANGE, "=> You aren't registered! Use \"/register\" to register an account!");
mysql_free_result();
return 1;
}
pawn Код:
//Account-related
COMMAND:register(playerid, params[])
{
if(GetPVarInt(playerid, "Logged")) return SendClientMessage(playerid, COLOR_ORANGE, "=> You're already logged in!");
if(isnull(params)) return SendClientMessage(playerid, COLOR_ORANGE, "=> Usage: /register [pass]");
new Query[320], pName[MAX_PLAYER_NAME];
GetPlayerName(playerid, pName, MAX_PLAYER_NAME);
mysql_real_escape_string(pName, pName);
format(Query, sizeof Query, "SELECT * FROM `accounts` WHERE `Name` = '%s' LIMIT 1", pName);
mysql_query(Query);
mysql_store_result();
if(mysql_num_rows())
{
SendClientMessage(playerid, COLOR_ORANGE, "=> An account already exists under that name! Use \"/login\" to log in!");
mysql_free_result();
return 1;
}
mysql_free_result();
WP_Hash(Query, 129, params);
new IP[16];
GetPlayerIp(playerid, IP, 16);
format(Query, sizeof Query, "INSERT INTO `accounts` (Name, Password, IP, Admin, Money, Score, Kills, Deaths) VALUES ('%s', '%s', '%s', %i, %i, %i, %i, %i)",
pName,
Query,
IP,
GetPVarInt(playerid, "Admin"),
GetPlayerMoney(playerid),
GetPlayerScore(playerid),
GetPVarInt(playerid, "Kills"),
GetPVarInt(playerid, "Deaths"));
mysql_query(Query);
SetPVarInt(playerid, "Logged", 1);
SendClientMessage(playerid, COLOR_LIMEGREEN, "=> Succesfully registered and automatically logged in!");
return 1;
}
COMMAND:login(playerid, params[])
{
if(GetPVarInt(playerid, "Logged")) return SendClientMessage(playerid, COLOR_ORANGE, "=> You're already logged in!");
if(isnull(params)) return SendClientMessage(playerid, COLOR_ORANGE, "=> Usage: /login [pass]");
new Query[256], pName[MAX_PLAYER_NAME];
GetPlayerName(playerid, pName, MAX_PLAYER_NAME);
mysql_real_escape_string(pName, pName);
format(Query, sizeof Query, "SELECT * FROM `accounts` WHERE `Name` = '%s' LIMIT 1", pName);
mysql_query(Query);
mysql_store_result();
if(!mysql_num_rows())
{
SendClientMessage(playerid, COLOR_ORANGE, "=> You're not registered! Use \"/register\" to register an account!");
mysql_free_result();
return 1;
}
mysql_free_result();
WP_Hash(Query, 129, params);
format(Query, sizeof Query, "SELECT * FROM `accounts` WHERE `Name` = '%s' AND `Password` = '%s' LIMIT 1", pName, Query);
mysql_query(Query);
mysql_store_result();
if(!mysql_num_rows())
{
SetPVarInt(playerid, "LoginWarns", GetPVarInt(playerid, "LoginWarns") + 1);
if(GetPVarInt(playerid, "LoginWarns") == 3)
{
format(Query, sizeof Query, "=> %s has been kicked for 3 wrong login attempts!", pName);
SendClientMessageToAll(COLOR_ROYALBLUE, Query);
Kick(playerid);
}
else
{
format(Query, sizeof Query, "=> Wrong password! Attempt %i out of 3.", GetPVarInt(playerid, "LoginWarns"));
SendClientMessage(playerid, COLOR_ORANGE, Query);
}
return 1;
}
mysql_fetch_row(Query);
new values[5];
sscanf(Query, "p<|>{s[24]s[129]s[16]}a<i>[5]", values); //Enjoy editing.
SetPVarInt(playerid, "Admin", values[0]);
GivePlayerMoney(playerid, values[1]);
SetPlayerScore(playerid, values[2]);
SetPVarInt(playerid, "Kills", values[3]);
SetPVarInt(playerid, "Deaths", values[4]);
mysql_free_result();
SetPVarInt(playerid, "Logged", 1);
SendClientMessage(playerid, COLOR_LIMEGREEN, "=> Succesfully logged in!");
//Ip setting
GetPlayerIp(playerid, Query, 16);
format(Query, sizeof Query, "UPDATE `accounts` SET `IP` = '%s' WHERE `Name` = '%s' LIMIT 1", Query, pName);
mysql_query(Query);
return 1;
}
When you convert. Please don't remove the auto login feature.
Re: need help to change something.. -
I don't think nobody will help you in converting them to a dialog. It's easy as I pie, I could do that for you but I don't have much time. You could search for dialog tutorials.