Всем привет. Решил выложить команду /delacc из своего мода Funny RP. Данная команда является копией команды как на оригинальном проекте Advance RP.
Команда на движке Pawn.CMD. (DC_CMD и похожие движки тоже подойдут, если хотите OnPlayerCommandText, просто смените шапку у команды)
CMD:delacc(playerid, params[])
{
if(Player[playerid][pAdmin] < 5) return 1;
{
if(sscanf(params,"s[24]", params[0])) return SendClientMessage(playerid, COLOR_GREY, "Используйте: /delacc [ник игрока]");
if(!strlen(params[0]))
{
if(GetPVarInt (playerid,"DellACC"))
{
SendClientMessage(playerid, COLOR_YELLOW, "Вы отменили удаление аккаунта");
DeletePVar (playerid, "DellACC");
return 1;
}
return 1;
}
new newstring[40];
mysql_real_escape_string(params[0], newstring);
new infodelaccasad[90];
format(infodelaccasad, sizeof(infodelaccasad), "SELECT * FROM `accounts` WHERE `name` = '%s'", newstring);
new Cache: trololo = mysql_query(connect_mysql,infodelaccasad,true);
if(cache_num_rows() == 0)
{
cache_delete(trololo);
return SendClientMessage(playerid, COLOR_GRAD, "Игрока с таким именем не существует");
}
else
{
new
lvl = cache_get_field_content_int(0, "level"),
homea = cache_get_field_content_int(0, "House"),
biza = cache_get_field_content_int(0, "Business"),
fuela = cache_get_field_content_int(0, "Fuel"),
idacs = cache_get_field_content_int(0, "IDacc");
if(!GetPVarInt(playerid, "DellACC"))
{
new strAcc[128];
format(strAcc, sizeof(strAcc), "Ник: %s, номер: %d, лвл: %d. Удалить аккаунт? ", params[0], idacs, lvl);
SendClientMessage(playerid, 0xFF6600AA, strAcc);
SendClientMessage(playerid, COLOR_YELLOW, "Для ОТМЕНЫ удаления введите /delacc без ника");
SendClientMessage(playerid, COLOR_YELLOW, "Для ПОДТВЕРЖДЕНИЯ повторите /delacc [ник]");
SetPVarInt (playerid, "DellACC", 1);
cache_delete(trololo);
return 1;
}
if(homea < 999)
{
HouseInfo[homea][hCar] = 0;
HouseInfo[homea][hOwned] = 0;
HouseInfo[homea][hLock] = 1;
if(HouseInfo[homea][hClass] == 0) HouseInfo[homea][hRentPlata] = 800;
if(HouseInfo[homea][hClass] == 1) HouseInfo[homea][hRentPlata] = 1500;
if(HouseInfo[homea][hClass] == 2) HouseInfo[homea][hRentPlata] = 2000;
if(HouseInfo[homea][hClass] == 3) HouseInfo[homea][hRentPlata] = 2000;
if(HouseInfo[homea][hClass] == 4) HouseInfo[homea][hRentPlata] = 3000;
if(HouseInfo[homea][hClass] == 5) HouseInfo[homea][hRentPlata] = 3500;
if(HouseInfo[homea][hClass] == 6) HouseInfo[homea][hRentPlata] = 5500;
if(HouseInfo[homea][hClass] == 7) HouseInfo[homea][hRentPlata] = 6000;
if(HouseInfo[homea][hClass] == 8) HouseInfo[homea][hRentPlata] = 10000;
if(HouseInfo[homea][hUpdate] == 5) Delete3DTextLabel(HouseInfo[homea][StoreInfoHouse]);
HouseInfo[homea][hUpdate] = 0;
HouseInfo[homea][hRentTime] = 5;
UpdateHouse(homea);
SaveHouse(homea);
}
if(biza < 999)
{
BizInfo[biza][bOwned] = 0;
BizInfo[biza][bUpdate] = 0;
BizInfo[biza][bRentTime] = 5;
BizInfo[biza][bGotoCena] = 0;
UpdateBiz(biza);
SaveBiz(biza);
}
if(fuela < 999)
{
FuelStInfo[fuela][bOwned] = 0;
FuelStInfo[fuela][bUpdate] = 0;
FuelStInfo[fuela][bRentTime] = 5;
UpdateFuelSt(fuela);
SaveFuelSt(fuela);
}
cache_delete(trololo);
new queryadmdelaccyo[80];
format(queryadmdelaccyo, sizeof(queryadmdelaccyo), "DELETE FROM accounts WHERE name = '%s' LIMIT 1", params[0]);
mysql_query(connect_mysql,queryadmdelaccyo,false);
format(query,sizeof(query),"[Внимание] %s[%d] удалил аккаунт игрока %s", Player[playerid][pName], playerid, params[0]);
SendAdminMessage(0xff0000AA,query);
new target;
target = ReturnUser(params[0]);
if(target != INVALID_PLAYER_ID) SendClientMessage(target,0xff0000AA,"Ваш аккаунт был удалён за нарушение правил сервера"), KickEx(target);
format(query,sizeof(query),"Аккаунт №%d удалён", idacs);
SendClientMessage(playerid, 0x00FF00AA, query);
DeletePVar (playerid, "DellACC");
}
}
return 1;
}
Скриншот: 
P.S. немного пояснений. Переменные в команде замените на те, которые у Вас в моде. У каждого они по разному могут называться.
Приведённый код ниже используется для того, чтобы после удаления аккаунта, если игрок владел бизнесом и домом, то все эти данные обнуляются и уходят в гос. продажу. При желании либо удалите, либо поменяйте на свои переменные. Данная команда полностью рабочая проверена в моде Funny RP.
Код:else { new lvl = cache_get_field_content_int(0, "level"), homea = cache_get_field_content_int(0, "House"), biza = cache_get_field_content_int(0, "Business"), fuela = cache_get_field_content_int(0, "Fuel"), idacs = cache_get_field_content_int(0, "IDacc"); if(!GetPVarInt(playerid, "DellACC")) { new strAcc[128]; format(strAcc, sizeof(strAcc), "Ник: %s, номер: %d, лвл: %d. Удалить аккаунт? ", params[0], idacs, lvl); SendClientMessage(playerid, 0xFF6600AA, strAcc); SendClientMessage(playerid, COLOR_YELLOW, "Для ОТМЕНЫ удаления введите /delacc без ника"); SendClientMessage(playerid, COLOR_YELLOW, "Для ПОДТВЕРЖДЕНИЯ повторите /delacc [ник]"); SetPVarInt (playerid, "DellACC", 1); cache_delete(trololo); return 1; } if(homea < 999) { HouseInfo[homea][hCar] = 0; HouseInfo[homea][hOwned] = 0; HouseInfo[homea][hLock] = 1; if(HouseInfo[homea][hClass] == 0) HouseInfo[homea][hRentPlata] = 800; if(HouseInfo[homea][hClass] == 1) HouseInfo[homea][hRentPlata] = 1500; if(HouseInfo[homea][hClass] == 2) HouseInfo[homea][hRentPlata] = 2000; if(HouseInfo[homea][hClass] == 3) HouseInfo[homea][hRentPlata] = 2000; if(HouseInfo[homea][hClass] == 4) HouseInfo[homea][hRentPlata] = 3000; if(HouseInfo[homea][hClass] == 5) HouseInfo[homea][hRentPlata] = 3500; if(HouseInfo[homea][hClass] == 6) HouseInfo[homea][hRentPlata] = 5500; if(HouseInfo[homea][hClass] == 7) HouseInfo[homea][hRentPlata] = 6000; if(HouseInfo[homea][hClass] == 8) HouseInfo[homea][hRentPlata] = 10000; if(HouseInfo[homea][hUpdate] == 5) Delete3DTextLabel(HouseInfo[homea][StoreInfoHouse]); HouseInfo[homea][hUpdate] = 0; HouseInfo[homea][hRentTime] = 5; UpdateHouse(homea); SaveHouse(homea); } if(biza < 999) { BizInfo[biza][bOwned] = 0; BizInfo[biza][bUpdate] = 0; BizInfo[biza][bRentTime] = 5; BizInfo[biza][bGotoCena] = 0; UpdateBiz(biza); SaveBiz(biza); } if(fuela < 999) { FuelStInfo[fuela][bOwned] = 0; FuelStInfo[fuela][bUpdate] = 0; FuelStInfo[fuela][bRentTime] = 5; UpdateFuelSt(fuela); SaveFuelSt(fuela); }