• Пожалуйста, создайте название темы отражающее ее смысл
  • Для ускорения решения Вашего вопроса заполните обязательные поля и подробно опишите возникшую проблему

Помощь CMS SkinManager дополнение autoset

stalin_alex

Участник
Сообщения
67
Реакции
5
Баллы
8
CMS SkinManager

Всех с Рождеством Христовым!
Ребят, скажите можно ли сделать дополнение к плагину, которое позволит задать игрокам модель по умолчанию из конфига. Если честно не совсем понятна принципиальная позиция автора, касаемо того, что плагин должен иметь такую уникальность и отличие от остальных, тем, что нет принуждения. Ведь это можно бы было сделать отдельным кваром и получить 100% аудиторию пользователей. А теперь надо изобретать какой - то костыль. Что делать если этот плагин почти полностью удовлетворяет нужды, но отсутствует такой немаловажный пункт? Использовать два плагина что - ли. В итоге конфликт и отсутствие нормальной работы от обоих .... Буду благодарен
 
Код:
#if defined _cms_skin_manager_included
    #endinput
#endif
#define _cms_skin_manager_included


/*Информация о скине (модели)*/
enum _:eSkinEnData
{
    skinName[MAX_NAME_LENGTH*2],
    skinModelT[MAX_NAME_LENGTH],
    skinModelCT[MAX_NAME_LENGTH],
    skinAccess[MAX_NAME_LENGTH],
    skinModelIndexT,
    skinModelIndexCT
}

/*Forwards Handle Types*/
enum _:hMFHandle
{
    fwdSkinSelect = 1,    /*При выборе скина в меню*/
    fwdSetSkin,            /*При установке скина игроку*/
    fwdOpenMenu            /*Перед открытием меню*/
};



/**
*    Выполняется при выборе игроком скина в меню
*
* @param iClient        Индекс игрока
* @param szSkinName        Название скина
* @param bCustomSkin    true- если устновлен нестандартный скин
*                        false - при сбросе скина (установка стандартного скина)
*
* @noreturn
*/
forward OnCMSSkinMenuItemSelection(iClient, szSkinName[], bool:bCustomSkin);

/**
*    Выполняется при установке скина игроку
*
* @param iClient        Индекс игрока
* @param szSkinName        Название скина
* @param post            true- после установки скина
*                        false - перед установкой скина
*
* @return                PLUGIN_HANDLED, если требуется заблокировать установку скина , выбранного игроком.
*                        PLUGIN_CONTINUE, продолжит установку скина, выбранного игроком
*/
forward OnCMSSkinSetSkin(iClient, szSkinName[], bool:post);

/**
*    Выполняется перед открытием меню скинов
*
* @param iClient        Индекс игрока
*
* @return                PLUGIN_HANDLED, если требуется заблокировать открытие меню
*                        PLUGIN_CONTINUE, продолжит открытие меню
*/
forward OnCMSSkinOpenMenu(iClient);

/**
*    Проверка, устновлен ли скин игроку
*
* @param iClient    Индекс игрока
*
* @return            true- если скин устновлен
*/
native bool:CMSSkinIsUserSkinSelected(iClient)

/**
*    Получение названия и модели скина, установленного игроку
*
* @param iClient        Индекс игрока
* @param szSkinName        Массив для записи названия скина
* @param iLenSkinName    Размер массива для записи названия скина
* @param szModelName    Массив для записи названия модели
* @param iLenModelName    Размер массива для записи названия модели
*
* @return                Индекс установленной модели m_modelIndexPlayer, 0 - если скин не выбран
*/
native CMSSkinGetUserSelectedSkin(iClient, szSkinName[], iLenSkinName, szModelName[] = "", iLenModelName = 0)

/**
*    Устновка скина игроку
*
* @param iClient        Индекс игрока
* @param szSkinName        Названия скина, параметр "skinName" в конфиге
* @param bRewrite        Перезаписать выбранный игроком скин
*                        true - перезапишет выбранный игроком скин на заданный. В меню скин будет также изменен.
*                        false - Будет установлен заданный скин, но в меню он изменен не будет и игрок сможет сам его сменить.
*
* @return                1 - если скин успешно установлен.
*/
native CMSSkinSetUserSkin(iClient, szSkinName[], bool:bRewrite = true);

/**
*    Проверка, имеет ли игрок доступ к скину
*
* @param iClient    Индекс игрока
* @param szSkinName        Названия скина
*
* @return            true- если игрок имеет доступ к скину
*/
native bool:CMSSkinGetUserSkinAccess(iClient, szSkinName[]);

/**
*    Показать игроку меню выбора скинов
*
* @param iClient    Индекс игрока
*
* @return            true- если меню успешно показано
* @note                Натив показывает меню принудительно, не вызывая форвард OnCMSSkinOpenMenu(iClient);
*/
native bool:CMSSkinOpenSkinMenu(iClient)
Источник плагина (ссылка на сайт или тему)
https://cs-games.club/index.php?resources/cms-skinmanager.23
Завтра вечером все объясню и расскажу.
 
Если честно не совсем понятна принципиальная позиция автора, касаемо того, что плагин должен иметь такую уникальность и отличие от остальных, тем, что нет принуждения.
Все очень просто. Если плагин не отличается от других, зачем его вообще писать.. Это моя позиция.
Все остальные подобные плагины имеют функцию, которую вы зачем-то хотите внедрить в данный плагин. Ваша позиция мне не понятна.
Ведь это можно бы было сделать отдельным кваром и получить 100% аудиторию пользователей.
И получить множество проблем. Я не хочу использовать модель, отключаю ее в меню, но вредный плагин все равно мне ее будет устанавливать.
Никак не могу понять, зачем использовать этот плагин, если другие вам подходят больше. И зачем что-то изобретать, если можно сказать игроку, чтобы он активировал скин в меню. Его настройки сохранятся и модель будет устанавливаться до тех пора, пока не сбросит в меню.
 
После выдачи каждой привилегии, надо будет каждому объяснять как заходить и активировать костюм. Недавно объяснял двум разным игрокам, что такое игровой чат и чем он отличается от консоли, ибо игрок упорно лезет в консоль прописывать команду чата. Это к разговору о лишних телодвижениях. Игрок, которому до лампочки этот костюм, вообще забьёт на это болт, ибо ему по барабану в чём бегать. Хотя визуально нашему проекту привычнее видеть игроков в своих скинах (видна услуга)... Уникальность плагина заключается в принципиальной позиции не сделать более гибкую настройку? (Странно...) Ну, если Вы считаете, что плагин этого делать не должен, то отключите на своём сервере квар (Которого нет)... И будет у Вас уникальный сервер, где нет принуждения. И ведь я не первый, кто спрашивал про эту возможность. Здесь на форуме. Значит спрос на это есть...

А можно ссылочку на точно такой же плагин, но с данной функцией? У меня же нет цели Вам что-то доказать.. У меня есть цель получить желаемое. Особенно после того как по своей невнимательности потратил на него деньги (моя вина..)
Добавлено:

Или, если можно, расскажите костыль прикрутить к плагину реально?
Добавлено:

cl_minmodel в клиенте по дефу 0
 
Последнее редактирование:
И ведь я не первый, кто спрашивал про эту возможность. Здесь на форуме. Значит спрос на это есть...
Значит, вы ознакомлены с ответами. Некоторые ваши предложения- это предложения переписать половину кода, потому что без этого не обойтись. Поэтому, не все ваши хотелки могут быть реализованы. Одно внедрение квара не сможет решить вашу задачу.
Добавлено:

Или, если можно, расскажите костыль прикрутить к плагину реально?
Кто-то делал так:
C++:
if (get_user_flags(id) & woman_flags) {
    CMSSkinSetUserSkin(id, "Девушка", true)   
    }
В вашем случае- не получится. Ну, или писать вручную название скина из конфига и выдавать конкретному игроку.
Для того, чтобы установить скин игроку через натив CMSSkinSetUserSkin нужно знать название скина. Узнать его вы не сможете. Только добавлять новые нативы в основной плагин.
 
Последнее редактирование:
Назад
Сверху