Доступ к готовым решениям

Переход в группу "Пользователь"

300.00
Одноразовый платёж
Быстрый переход в группу "Пользователи", без надобности написания постов и ожидания.

Покупка дает возможность:
Быть полноправным участником форума
Нормальное копирование кода
Создавать темы
Скачивать файлы
Доступ к архиву Pawno-Info

/setskin | Устанавливает скин игроку с возможностью выбора

Valera_Kovshikov

Изучающий
Пользователь
Регистрация
28 Сен 2013
Сообщения
752
Лучшие ответы
4
Репутация
166
/setskin
Устанавливает скин игроку с возможностью выбора, постоянный или временный скин с поддержкой MySQL и 0.3DL скинов.

Зависимости:
  • Любой командный процессор имеющий синтаксис ZCMD [DC_CMD | iZCMD, Pawn.CMD (если будете использовать флаги)]
  • sscanf 2.8.2 и выше
  • MySQL R40+

Параметры:
PHP:
player_id, modelid, is_tmp
  • player_id - ID игрока, которому будет изменятся скин
  • modelid - ID скина, который заменит нынешний скин (От 1 до 311, кроме 74)
  • is_tmp - необязательный параметр (по стандарту - 1), который обозначает постоянный скин (0) (с записью в бд) или временный (1) (без записи)


Код:
PHP:
flags:setskin(/* Ваш флаг уровня администратора */);
/* Если не используете флаги - удалите строчку выше */
CMD:setskin(playerid, params[])
{
    if(!/* переменная отвечающая за админку */)
       return SendClientMessage(playerid, -1, "{FF0000}Ошибка: {F6F6F6}Команда доступна только администратору.");
 
    if(/* переменная отвечающая за админку */ < /* требуемый уровень админки для выполнения команды */)
        return SendClientMessage(playerid, -1, "{FF0000}Ошибка: {F6F6F6}Недостаточный уровень администратора, для использования команды.");
 
    /* Если используете флаги - уберите выше обе проверки на админку и уровень администратора */
    extract params -> new player:targetid, modelid, is_tmp = 1; else
        return SendClientMessage(playerid, -1, "{FF9900}Используйте: {F6F6F6}/setskin [playerid] [modelid] {временный (1)/постоянный (0)}");
 
    if(targetid == INVALID_PLAYER_ID)
        return SendClientMessage(playerid, -1, "{FF0000}Ошибка: {F6F6F6}Неверный ID игрока.");
 
    #if defined GetPlayerCustomSkin
		if(!(1 <= modelid <= 311) || modelid == 74 || !(20_000 <= modelid <= 30_000))
		return SendClientMessage(playerid, -1, "{FF0000}Ошибка: {F6F6F6}Неверный ID скина. Диапазон: 1 - 311 или 20000 - 30000, кроме 74.");
	#else 
		if(!(1 <= modelid <= 311) || modelid == 74)
		return SendClientMessage(playerid, -1, "{FF0000}Ошибка: {F6F6F6}Неверный ID скина. Диапазон: 1 - 311, кроме 74.");
	#endif
 
    /* измените на вашу переменную скина */ = modelid;     
 
    if(!is_tmp)
    {
		#if !defined TABLE_ACCOUNTS
			#define TABLE_ACCOUNTS	"accounts"	/* таблица с аккаунтами */
		#endif
	 
		#if !defined COLUMN_SKIN
			#define COLUMN_SKIN		"skin"		/* столбец отвечающий за скин */
		#endif
	 
		#if !defined COLUMN_ID
			#define COLUMN_ID		"id"		/* столбец отвечающий за ID игрока в базе */
		#endif
	
        static const save_skin_query[] = "UPDATE "TABLE_ACCOUNTS" SET "COLUMN_SKIN" = %d WHERE "COLUMN_ID" = %d";
        new save_skin_str[sizeof(save_skin_query) + ((-2 * 2) + 3 + MAX_PLAYER_NAME) +1];
 
        format
        (
            save_skin_str, sizeof(save_skin_str),
            save_skin_query, 
            /* измените на вашу переменную скина */,
            /* замените на свою переменную ID игрока, пример *PlayerInfo[playerid][pID]* */
        );
        mysql_query(/* переменная подключения MySQL */, save_skin_str, false);
    }
    SetPlayerSkin(playerid, /* измените на вашу переменную скина */);
 
    new player_name[MAX_PLAYER_NAME +1];
    GetPlayerName(targetid, player_name, sizeof(player_name));

    static const set_skin[] = "{87CEEB}Выполнено: {F6F6F6}Вы установили игроку {FF9900}%s[%d] {FFFF00}%s {F6F6F6}скин под номером {FF9900}%d{F6F6F6}.";
    new str[sizeof(set_skin) + ((-2 * 4) + sizeof(player_name) + 4 + 10 + 3) +1];
 
    format(str, sizeof(str), set_skin, player_name, targetid, is_tmp ? ("временный") : ("постоянный"), modelid);
    SendClientMessage(playerid, -1, str);
    return 1;
}
На случай, если скриншот не появился -

 
Последнее редактирование:
Сверху Снизу