1. Отключить сервер (установить --> SourceMod <--, если он еще не установлен) + socket 2. Скачать и распаковать на сервер --> ЭТОТ <-- архив 3. --> Скачать .smx <-- и поместить в addons/sourcemod/plugins 4. Установка завершена, можно включать сервер
Вы можете создать свои классы/уровни с разными способностями в cfg/ability_levels/levels.txt, которые игроки будут постепенно открывать зарабатывая очки за определенные действия (см. ability_levels.cfg) - это и есть основной смысл плагина. Открыв меню, игрок увидит список всех созданных вами классов, и если он достиг определенного уровня, то сможет выбрать соответствующий класс и играть с его преимуществами. Меню вызывается командами !level, /level в чате, или level в консоле. Классы/уровни в меню расположены в порядке возрастания. Игрок в любой момент может отключить преимущества своего класса и играть стандартно. Уровень и класс - это одно и тоже. Если игрок достиг третьего уровня, то для выбора ему будут доступны и те, которые расположены ниже - это значит, что он сможет выбирать и второй и первый уровень. Необязательно давать классу много способностей, можно просто сделать в стиле Skin Rank со званиями: чем лучше уровень, тем лучше звание и скин и тд.
По умолчанию статистика игроков сохраняется в addons/sourcemod/data/sqlite/ability_levels.sq3 - используется SQLite. Если вы хотите MYSQL, то в addons/sourcemod/configs/databases.cfg создайте новый разделчик:
downloads.txt - загрузка скинов и др. ability_levels.cfg - настройки ability_levels.phrases.txt - перевод, изменение текста, фраз ability_levels.inc - функции для скриптинга levels.txt - создание классов/уровней
Если вы изменили levels.txt и сервер включен: перезагрузите плагин командой sm_rcon sm plugins reload ability_levels.smx
Есть команда по z флагу: al_addcr "steamid" - примеры:
Кредиты игрока не могут быть < 0. И когда вы используете эту команду, игрок должен быть на сервере.
Рассмотрим класс "Мерцающий":
50 вверху - это количество кредитов, необходимое для открытия этого класса level_nam - имя класса level_inf - описание (старайтесь сокращать, т.к. есть лимит символов) spawn_cmd - команды, которые будут выполнены после рождения игрока death_cmd - после смерти model_red - скин T models/....mdl model_blu - скин CT
Внутри spawn_cmd и death_cmd можно использовать: {client} - индекс игрока, {userid} - ид, {steamid} - стим. Некоторые команды есть в плагине Ability Levels Commands.
Код
// Возвращает максимальный уровень. Уровни начинаются с 1. native AL_GetMaxLevel();
// Получить имя уровня/класса. maxlength 65. native bool:AL_GetLevelName(level, String:buffer[], maxlength);
// Сколько требуется очков для достижения уровня. // В случае успеха вернет 0 или больше; если ошибка: -1. native AL_GetLevelPoints(level);
// Вернет true, если игрок авторизован и все его данные были загружены из SQL. native bool:AL_IsClientAuthorized(client);
// Узнать сколько у игрока очков. native AL_GetClientPoints(client);
// На каком уровне игрок (последний достигнутый). native AL_GetClientLevel(client);
// Текущий уровень/класс игрока. У каждого уровня свои способности. // Например, если игрок достиг третьего, то он может выбрать и второй и первый, если захочет. native AL_GetClientActiveLevel(client);
// Узнать на каком игрок месте в топе. // Если очков у игрока < 1 или событие AL_Event_TopUpdated еще не сработало, то вернет 0. native AL_GetTopPlace(client);
// То же самое, что и AL_GetTopPlace, только вместо client -> steamid. native AL_GetTopPlaceBySteam(const String:steamid[]);
// Получить стим игрока из топа. place - место в топе от 1 до 9. native bool:AL_GetSteamByTopPlace(place, String:buffer[], maxlength);
// Сколько всего игроков в базе. // Если AL_Event_TopUpdated еще не сработало, вернет 0. native AL_GetDbPlayersCount();
/** * ИРОК АВТОРИЗОВАН. * * points - очки игрока * level - последний достигнутый уровень * active_level - текущий уровень/класс игрока (подробнее см. AL_GetClientActiveLevel) **/ forward AL_Event_ClientAuthorized(client, const String:steamid[], points, level, active_level);
/** * УРОВЕНЬ ИГРОКА ИЗМЕНЕН. * * old_level - прошлый уровень * new_level - новый * active_level - текущий уровень/класс игрока (подробнее см. AL_GetClientActiveLevel) **/ forward AL_Event_LevelChanged(client, old_level, new_level, active_level);
/** * ИГРОК ХОЧЕТ СМЕНИТЬ КЛАСС/УРОВЕНЬ (подробнее см. AL_GetClientActiveLevel) * * old_active_level - прошлый уровень * new_active_level - новый * return Plugin_Continue (разрешить); return Plugin_Stop (запретить); **/ forward Action:AL_OnClientChangeActiveLevel(client, old_active_level, new_active_level);
/** * ТОП ОБНОВЛЕН (каждый раз после смены карты). **/ forward AL_Event_TopUpdated();
Дата: Вторник, 26.03.2013, 22:25:17 | Сообщение # 2
- Добавлен ТОП-9 - Добавлены функции в .inc - В меню "СТАТУС" добавлены топ-опции/текст - Если у вас стояла v1.0, то учтите, что в SQL таблицу добавлено поле `lastjoin` - Удаление из статистики игроков, которые не заходили на сервер 30 дней+