/setname [стандартный движок + sscanf] [MySQL R39-2]
Всем привет. Перед началом написания этой команды, искал на форумах, похожего найти не смог, поэтому выкладываю. Проверенное, рабочее. Пользуйтесь.
PHP код:
#define clightred 0xFF6347AA
#define cgrey 0xAFAFAFAA
#define cwhite 0xFFFFFFAA
CMD:
PHP код:
if(Command("/setname"))
{
if(GetPVarInt(playerid, "Admin") < 3) return 1;
if(sscanf(params, "us[32]", params[0], params[1])) return SendClientMessage(playerid, cwhite, "***Используйте: /setname [ID/Имя_Фамилия] [New_Name]");
if(!IsPlayerConnected(params[0])) return SendClientMessage(playerid, cgrey, "**Персонаж отсутствует на сервере.");
if(GetPVarInt(params[0], "Login") == 0) return SendClientMessage(playerid, cgrey, "**Не авторизирован.");
new query_string[128];
f(query_string,"SELECT * FROM `players` WHERE `NAME` = '%s'", params[1]);
mysql_function_query(mysql_connect_ID, query_string, false, "OnPlayerSetName", "ds", params[0], params[1]);
return 1;
}
Public:
PHP код:
forward OnPlayerSetName(playerid, text[]);
public OnPlayerSetName(playerid, text[])
{
static rows, fields;
cache_get_data(rows, fields);
switch(rows)
{
case 0:
{
new query_string[128];
f(query_string, "UPDATE `players` SET `NAME` = '%s' WHERE `ID` = '%d'", text, GetPVarInt(playerid, "Mysql_ID"));
mysql_function_query(mysql_connect_ID, query_string, false, "", "");
SetPlayerName(playerid, text);
GetPlayerName(playerid, Name(playerid), MAX_PLAYER_NAME);
new setnamemess[MAX_PLAYER_NAME+MAX_PLAYER_NAME+40];
f(setnamemess, "%s известен, как %s", Name(playerid), text); SendClientMessageToAll(clightred, setnamemess);
SendClientMessage(playerid, cyellow, "* Не забудьте ввести свой новый ник в SA:MP Client.");
}
case 1:
{
SendMes(playerid, cgrey, "**Ник %s используется!", text);
}
}
}