Написал системку по быстрому
Добавляем переменную
Код:
new changename;
В OnGameModeInit
Код:
changename = CreatePickup(19134,23,359.1942,181.4973,1008.3828);
В OnPlayerPickUpPickup
Код:
if(pickupid == changename)
{
if(OldPickups[playerid] == pickupid) return true;
OldPickups[playerid] = pickupid;
ShowPlayerDialog(playerid,10352,DIALOG_STYLE_MSGBOX, "Смена имени","Вы желаете добавить заявку на смену имени?", "Добавить", "Отмена");
return 1;
}
В OnDialogResponse
Код:
case 10352:
{
if(response)
{
if(strlen(inputtext) < 3 || strlen(inputtext) > 24) return ShowPlayerDialog(playerid,10352,DIALOG_STYLE_INPUT,"Заявка на смену ника","Напишите новый ник (по форме Имя_Фамилия)","Отправить","Назад");
if (((inputtext[0] > 'a') && (inputtext[0] < 'z')) || (strfind(inputtext, "_", true, 1) == -1)) return ShowPlayerDialog(playerid,10352,DIALOG_STYLE_INPUT,"Заявка на смену ника","Вы указали нонРП ник! Напишите новый ник (по форме Имя_Фамилия)","Отправить","Назад");
if(pData[playerid][Bank] <= 2999999) return SendClientMessage(playerid, COLOR_GRAD1, " Для смены ника требуется 3000000 вирт на банковском счету");
format(httpquery,sizeof(httpquery),"SELECT * FROM `accounts` WHERE BINARY `Nick` = '%s'",inputtext);
mysql_query(httpquery);
mysql_store_result();
if(mysql_fetch_row_format(httpquery)) return SendClientMessage(playerid,COLOR_GREY," Аккаунт уже существует!"),mysql_free_result();
format(pData[playerid][CNick],24,"%s",inputtext);
FSendMes(16,0x9ACD32AA," [Заявка на смену ника] %s[%d] просит сменить ник на: %s",getName(playerid),playerid,inputtext);
SendMes(playerid,0x9ACD32AA," [Заявка на смену ника] %s[%d] просит сменить ник на: %s",getName(playerid),playerid,inputtext);
SendClientMessage(playerid, COLOR_LIGHTRED, " Ваша заявка отправлена. Ждите подтверждения мэром штата");
mysql_free_result();
return true;
}
}
Добавляем команду:
Код:
CMD:cname(playerid, params[])
{
if(!AcceptWrite(playerid)) return 1;
if(sscanf(params, "u", params[0])) return SendClientMessage(playerid, COLOR_WHITE, " Введите: /cname [id]");
if(pData[playerid][Leader] != 16) return SendClientMessage(playerid,COLOR_GREY," Функция доступна только мэру");
if(strlen(pData[params[0]][CNick]) < 4) return SendClientMessage(playerid,-1, " Этот игрок не подавал заявку на смену ника");
if(pData[params[0]][Bank] <= 2999999) return SendClientMessage(playerid, COLOR_GRAD1, " У него нету на счету 3000000 вирт");
SendMesAll(-1,0xFFFF00FF," %s сменил имя на %s",getName(params[0]), pData[params[0]][CNick]);
AccWriteString(getName(params[0]),"Nick",pData[params[0]][CNick]);
SetPlayerName(params[0],pData[params[0]][CNick]);
pData[params[0]][Bank] -=3000000;
SendClientMessage(playerid,COLOR_WHITE, " Ник одобрен");
if(pData[params[0]][House] != 9999) format(gHouse[pData[params[0]][House]][Nick],32,"%s",pData[params[0]][CNick]);
if(pData[params[0]][Biz] != 255) format(gBiz[pData[params[0]][Biz]][Buyer],32,"%s",pData[params[0]][CNick]);
SendMes(params[0],0xFFFF00FF," Ваш новый ник \" %s \", пропишите его в поле ника SAMP",pData[params[0]][CNick]);
format(pData[params[0]][CNick],24,"no");
GetPlayerName(params[0], pData[params[0]][Name], MAX_PLAYER_NAME);
Kick(params[0]);
return true;
}