Fox228228
Новичок
Здравствуйте, хотел бы узнать как сделать так что бы МВД мог менять скины всему подразделу:
PHP:
new offerskin[15][27] =
{
{17,59,98,164,165,185,187,227,240,76,141,150,219, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},//frac 1
{311,310,309,307,306,305,304,303,295,288,285,284,283,282,281,280,266,265,17, 0, 0, 0, 0, 0, 0, 0, 0},//ЛСПД,СФПД,ЛВПД
//{311,310,309,307,306,305,304,303,295,294,288,286,285,284,283,282,281,280,267,266,265,166,165,164,163,147,98},//FRAC 20 - Министерство внутренних дел
{61,255,287,191,179,253,73, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},//3
{70,274,275,276,148,308, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},//4
{170,186,188,223,250,76,141,150,263, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},//5
{105,106,107,195,269,270,271, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},//6
{195,102,103,104, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},//7
{108,109,110,190, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},//8
{173,174,175,226,273,119, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},//9
{114,115,116,193,292, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},//10
{91,98,113,124,127,214,223, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},//11
{120,121,122,123,294,186,263,169, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},//12
{111,112,125,126,46,233, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},//13
{309,307,305,304,303,295,286,285,166,165,164,163,211, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},//FRAC 24 - FBI
{98,147,165,166,163,164,294,295,285, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}//FRAC 25 - Министерство юстиции
};
PHP:
case 98:
{
if(!response) return 1;
new changeskin;
new frac = player_info[playerid][FRAC];
new fraction = floatround(frac / 10, floatround_floor);
new string[80];
if(frac == 24) fraction = 14;
if(frac == 25) fraction = 15;
changeskin = offerskin[fraction-1][listitem];
format(string, sizeof(string), "Ваша внешность была изменена лидером организации %s[%d]", player_info[playerid][NAME], playerid);
SCM(GetPVarInt(playerid, "changeskinid"), COLOR_LIGHTBLUE, string);
format(string, sizeof(string), "Вы изменили внешность игрока %s[%d]", player_info[GetPVarInt(playerid, "changeskinid")][NAME], GetPVarInt(playerid, "changeskinid"));
SCM(playerid, COLOR_LIGHTBLUE, string);
SetPlayerSkin(GetPVarInt(playerid, "changeskinid"), changeskin);
static const fmt_query[] = "UPDATE `accounts` SET `fskin` = '%d' WHERE `id` = '%d'";
new query[sizeof(fmt_query)+(-2+1)+(-2+8)];
format(query, sizeof(query), fmt_query, changeskin, player_info[GetPVarInt(playerid, "changeskinid")][ID]);
mysql_query(dbHandle, query);
DeletePVar(playerid, "changeskinid");
}
PHP:
CMD:changeskin(playerid, params[])
{
if(player_info[playerid][RANG] < 8) return SCM(playerid, COLOR_LIGHTGREY, "Вам недоступна данная функция");
if(sscanf(params, "d", params[0])) return SCM(playerid, COLOR_LIGHTGREY, "Используйте /changeskin [id игрока]");
if(GetPVarInt(params[0], "logged") != 1) return SCM(playerid, COLOR_LIGHTGREY, "Такого игрока нет");
new idfrac = player_info[playerid][FRAC];
if(idfrac == 10 || idfrac == 20 || idfrac == 30 || idfrac == 40 || idfrac == 50)
{
if((idfrac / 10) != floatround(player_info[params[0]][FRAC] / 10, floatround_floor)) return SCM(playerid, COLOR_LIGHTGREY, "Игрок не состоит в Вашей организации");
}
else
{
if(player_info[params[0]][FRAC] == 0) return SCM(playerid, COLOR_LIGHTGREY, "Вы не можете изменить скин этому игроку");
if(player_info[playerid][FRAC] != player_info[params[0]][FRAC] && player_info[params[0]][FRAC] != 0) return SCM(playerid, COLOR_LIGHTGREY, "Игрок не состоит в Вашей организации (в подразделении)");
}
/*
Тут то же самое. Когда все скины заполнишь, условие в цикле "if(offerskin[frac-1][i] == 0) continue;" не нужно будет.
*/
new frac = floatround(player_info[playerid][FRAC] / 10, floatround_floor);
new string[220];
if(player_info[playerid][FRAC] == 25) frac = 15;
if(player_info[playerid][FRAC] == 24) frac = 14;
format(string, sizeof(string), "Скин 1 (id %d)", offerskin[frac-1][0]);
for(new i = 1; i < 13; i++)
{
if(offerskin[frac-1][i] == 0) continue;
format(string, sizeof(string), "%s\nСкин %d (id %d)", string, i+1, offerskin[frac-1][i]);
}
SPD(playerid, 98, DIALOG_STYLE_LIST, "Выберите внешность для игрока:",string, "Ок", "Отмена");
SetPVarInt(playerid, "changeskinid", params[0]);
return 1;
Последнее редактирование:
