Готовая сборка Match-сервера
|
|
GAVVVR
Консультант
Пользователь
с 11.04.2010
Offline
| Всем привет. В связи с тем, что моя сборка стала пользоваться спросом и уже прошла некоторые тесты, посчу ссылки на скачивание тут. Версия для windows Версия для linux По этим ссылкам можно всегда скачать самую последнюю версию. Более подробно о сборке можно прочесть тут. Если возникают какие-то вопросы или наши косяк, пишите в этой теме.
|
|
|
|
|
|
GAVVVR
Консультант
Пользователь
с 11.04.2010
Offline
| Сегодня добавлена приятная мелочь: при выполнении конфигов dm/tdm.cfg, значение mp_teamplay меняется и карта сразу же перезагружается для смены режима игры.
|
|
|
|
|
|
Assassin1996
Пользователь
с 20.12.2009
Offline
| GAVVVR, лол. что за плагин? для смены мапы? я тут смотрю у тя sm_reloadmap добавлена. По подробней плз :3
|
|
|
|
|
|
Kirtanus
Консультант
Пользователь
с 25.06.2010
Offline
| GAVVVR, как я понял ты добавил в тдм.кфг команду sm_reloadmap. спасибо что нашел этот плагин - а то мне влом было искать его)
◄ VG ► HIPPI∑ или Sun of Beach Вот такой я хр**ов оптимист в Светлое Будущее ХЛ2дм - кто не согласен: s*ck it
Отредактировано Kirtanus - Понедельник, 24.01.2011, 20:01
|
|
|
|
|
|
GAVVVR
Консультант
Пользователь
с 11.04.2010
Offline
| Assassin1996, все очень просто. Задача: Замутить возможность менять режим игры в пару кликов мышью. Решение: Делаем два конфига, которые меняют mp_teamplay и перезагружают карту, добавляем конфиги в админское меню. Проблема: Поспрашивав на форумах и погуглив сам, я пришел к выводу, что всроенной команды для перезагрузки карты (как restart в c.s. 1.6) в source не существует. Решение проблемы: плагин Reload Map, который добавляет команду sm_reloadmap, перезагружающую карту. Плагин очень прост и работает так: берет название текущей карты и выполняет "changelevel <текущая карта>" Прошу не беспокоиться на тему: ой, еще плагин добавился, нагрузка на сервер... SM плагины написаны на языке sourcepawn, адаптированный под source engine язык pawn. Сам pawn предназначен для низкоуровневых устройств, поэтому плагины на SM очень маленькие и нересурсоемкие. Kirtanus, честно говоря, наткнулся на него случайно, искал совсем другое. Но он оооочень маленький и я включил его в сборку.
Отредактировано GAVVVR - Понедельник, 24.01.2011, 20:03
|
|
|
|
|
|
|
|
Dog
Консультант - Инструктор
Пользователь
с 15.03.2009
Offline
| Quote (GAVVVR) Решение проблемы: плагин Reload Map, который добавляет команду sm_reloadmap, перезагружающую карту. Плагин очень прост и работает так: берет название текущей карты и выполняет "changelevel <текущая карта>" У меня есть идея получше: Code #pragma semicolon 1
#include <sourcemod>
new Handle:tdm;
public Plugin:myinfo = { name = "Teamplay changer", author = "The Dog", description = "Changes teamplay and restarts map if needed", version = "1.0", url = "http://www.hl2dm-university.ru" };
public OnPluginStart() { tdm = FindConVar("mp_teamplay"); RegAdminCmd("sm_tp", Change_Teamplay, ADMFLAG_RCON); }
public Action:Change_Teamplay(client,args) { if (args < 1) { ReplyToCommand(client, "[SM] Usage: sm_tp <teamplay 1/0>"); return Plugin_Handled; }
new String:string[255]; new String:descript[128]; new String:map[128]; GetGameDescription(descript, sizeof(descript)); GetCmdArgString(string, sizeof(string)); if(StrEqual(string, "1")) { if(StrEqual(descript, "Team Deathmatch")) { if(!GetConVarBool(tdm)) ServerCommand("mp_teamplay %s", string); } else { if(!GetConVarBool(tdm)) ServerCommand("mp_teamplay %s", string); GetCurrentMap(map, sizeof(map)); ServerCommand("changelevel %s", map); } } else if(StrEqual(string, "0")) { if(StrEqual(descript, "Deathmatch")) { if(GetConVarBool(tdm)) ServerCommand("mp_teamplay %s", string); } else { if(GetConVarBool(tdm)) ServerCommand("mp_teamplay %s", string); GetCurrentMap(map, sizeof(map)); ServerCommand("changelevel %s", map); } } else ReplyToCommand(client, "[SM] Usage: sm_tp <teamplay 1/0>"); return Plugin_Handled; } Сменит карту только в случае необходимости.
:)
|
|
|
|
|
|
GAVVVR
Консультант
Пользователь
с 11.04.2010
Offline
| Dog, расскажи на словах, что он делает. А то даже я не понял Я хотел научиться кодить на павн, но пока нету времени. Quote (Dog) Сменит карту только в случае необходимости. Когда он он проверяет условия необходимости? Что конкретно делает sm_tp и в какой из конфигов ты предлагаешь его включить?
|
|
|
|
|
|
Dog
Консультант - Инструктор
Пользователь
с 15.03.2009
Offline
| GAVVVR, в общем, ты вводишь sm_tp 1/0, он проверяет тип игры, если он "Deathmatch", а ты ввёл sm_tp 1, то он меняет карту на эту же, такая же ситуация с "Team Deathmatch"/sm_tp 0, потом проверяет значение mp_teamplay, если оно не такое, то становится таковым. Но смена карты идёт после смены значения mp_teamplay. Вообще размер массива string лучше поменять на 2 (0/1 + символ конца строки, незачем память лишнюю тратить). Quote (GAVVVR) Что конкретно делает sm_tp и в какой из конфигов ты предлагаешь его включить? Замени mp_teamplay на sm_tp.
:)
|
|
|
|
|
|
GAVVVR
Консультант
Пользователь
с 11.04.2010
Offline
| Quote (Dog) Замени mp_teamplay на sm_tp. В КУ конфигах? Или в dm.cfg и tdm.cfg? Dog, мне кажется, что ты не очень хорошо знаком с этой сборкой и поэтому изобретаешь велосипед, либо я что-то не так понимаю. Пока я не увидел никаких преимуществ. Использования sm_tp Зачем писать sm_tp 0, если стоит тимплей 0 и это видно нажатием кнопки tab? Аналгично - зачем выполнять dm.cfg в этой сборке, если мы видим, что тимплей 0? Или ты предлагаешь заменить mp_teamplay на sm_tp непосредственно в CU конфигах?
|
|
|
|
|
|
Fkk
2337
Администратор
с 30.04.2010
Offline
| Dog, я несколько раз перечитал той пост не увидел преимуществ xD
|
|
|
|
|
|
Dog
Консультант - Инструктор
Пользователь
с 15.03.2009
Offline
| GAVVVR, в любых конфигах, содержащих переменную mp_teamplay. Эффект будет тот же, как и от reload map, только он НЕ будет перезагружать карту, если это не надо. Вот допустим: у тебя паблик сервер, работает в режиме ффа, тут тебе приспичило поиграть кв, sm_tp 1 включит тимплей и сменит мапу на эту же, потом ты запускаешь ещё раз конфиг, но sm_tp 1 уже не будет менять мапу, он лишь изменит значение mp_teamplay на 1 (а т.к. пример на паблике ффа, то очевидно, что после смены мапы тимплей будет включён, но переменная будет равна 0). Надеюсь, смог донести, что хотел.
:)
|
|
|
|
|
|
GAVVVR
Консультант
Пользователь
с 11.04.2010
Offline
| Dog, я примерно понял. Идея такая же, как в скрипте на ES от Weirdie, где управление осуществлялось через #.#. Однако, количество заходов в меню на SM при этом не уменьшится. Как было 2, так и останется (если режим не подходящий). Поэтому смысла в этом не вижу и идея мне не очень понравилась.
|
|
|
|
|
|
Dog
Консультант - Инструктор
Пользователь
с 15.03.2009
Offline
| Quote (GAVVVR) Идея такая же, как в скрипте на ES от Weirdie, где управление осуществлялось через #.# Ага, именно так. Quote (GAVVVR) Однако, количество заходов в меню на SM при этом не уменьшится. (...) Поэтому смысла в этом не вижу Ну я себе сделал консольные команды sm_duel и sm_cw, удобно, в меню лезть не надо. :) Если интересует: Code #pragma semicolon 1
#include <sourcemod>
new Handle:tdmconfig, Handle:config1v1;
public Plugin:myinfo = { name = "Config Control", author = "The Dog", description = "Easy access to execute configurations.", version = "1.0", url = "http://www.hl2dm-university.ru" };
public OnPluginStart() { config1v1 = CreateConVar("sv_config_duel", "cu1v1", "Name of configuration file for duel matches"); tdmconfig = CreateConVar("sv_config_tdm", "cutdm", "Name of configuration file for tdm matches"); RegAdminCmd("sm_cw", Launch_Clanwar, ADMFLAG_RCON); RegAdminCmd("sm_duel", Launch_Duel, ADMFLAG_RCON); // AutoExecConfig(true, "configcontrol"); }
public Action:Launch_Clanwar(client,args) { if(args >= 1) { ReplyToCommand(client, "[SM] Usage: sm_cw"); return Plugin_Handled; } new String:temp[64]; GetConVarString(tdmconfig, temp, sizeof(temp)); ServerCommand("exec %s", temp); return Plugin_Handled; } public Action:Launch_Duel(client,args) { if(args >= 1) { ReplyToCommand(client, "[SM] Usage: sm_duel"); return Plugin_Handled; } new String:temp[64]; GetConVarString(config1v1, temp, sizeof(temp)); ServerCommand("exec %s", temp); return Plugin_Handled; }
:)
|
|
|
|
|
|
GAVVVR
Консультант
Пользователь
с 11.04.2010
Offline
| DooMeR нашел классную программу для удобного создания и управления админами и группами админов - KVManager.
|
|
|
|
|
|
GAVVVR
Консультант
Пользователь
с 11.04.2010
Offline
| Обновил сборку, добавил самый новый фикс очков, и обновленный автоспек, обновил конфиги. Прочие подробности тут.
|
|
|
|
|
|
Fkk
2337
Администратор
с 30.04.2010
Offline
| GAVVVR, Будет правильный счет? Наконецта!!!!
|
|
|
|
|
|
GAVVVR
Консультант
Пользователь
с 11.04.2010
Offline
| 2Faka, да, счет верный. Плагин с фиксами от 8го ферваля (новее, чем в КУ сборке) Вот пример 
|
|
|
|
|
|
Vels
Пользователь
с 03.04.2009
Offline
| Как правильно запустить плагин autorecorder? sm_autorecorder 1; sm_record все включал не пишет совсем. Команду: sm_autorecord_minplayers ставил как 1 так и 0. Тоже не пишет.
|
|
|
|
|
|
GAVVVR
Консультант
Пользователь
с 11.04.2010
Offline
| Vels, сорри, если я тебя обижу вопросом - но СТВ у тебя точно включен? Для записи ТОЛЬКО матчей нужно, чтобы: -sm_autorecorder 0 -СТВ бот был включен; -Плагин autorecorder был включен (включен он или нет можно проверить командой sm plugins list) -Когда необходимо начать запись, выполнялась команда sm_record (это команда плагина авторекорд, которая выполняет команду сервера tv_record <время, карта>) Т.о. плагин авторекорд в моей сборке служит только лишь для того, чтобы правильно назвать демку.
|
|
|
|
|
|
GAVVVR
Консультант
Пользователь
с 11.04.2010
Offline
| Сраные КУ конфиги с кучей ошибок, ни хрена не проверены. Сорри, народ. Quote //warmode on sourcemod/sm_warmode_on.cfg exec пропущен, вармод не включается. Сообщу, когда поправлю сборку.
|
|
|
|
|
|
Vels
Пользователь
с 03.04.2009
Offline
| GAVVVR, да всё включено, но я хотел добиться результата, чтобы демка писалась только тогда, когда на сервере кто-то есть и как минимум 2 человека. А не так, чтобы оно писалось постоянно. PS Захожу на сервер, пишу sm_record. Демка все равно не появляется на сервере.
Отредактировано Vels - Понедельник, 28.02.2011, 18:55
|
|
|
|
|
|
GAVVVR
Консультант
Пользователь
с 11.04.2010
Offline
| Vels, проверь, запущен ли плагин. У меня работает sm_record. Исправил ошибку в сборке.
|
|
|
|
|
|
Vels
Пользователь
с 03.04.2009
Offline
| А какие именно ошибки в сборке были? Думаю проще подправить вручную. Чем заново скачивать. PS У меня была включена команда sm_autorecord, отключать как я понял? Плюс, autorecorder.cfg хранится в cfg\sourcemod. Настройки плагина считываются из этого файла или их надо отдельно записать к server.cfg например?
Отредактировано Vels - Понедельник, 28.02.2011, 19:03
|
|
|
|
|
|
GAVVVR
Консультант
Пользователь
с 11.04.2010
Offline
| Quote (Vels) А какие именно ошибки в сборке были? Думаю проще подправить вручную. Чем заново скачивать. В cutdm и cu1v1 пропущен exec в этом месте. Quote //warmode on exec sourcemod/sm_warmode_on.cfg Quote (Vels) Плюс, autorecorder.cfg хранится в cfg\sourcemod. Настройки плагина считываются из этого файла или их надо отдельно записать к server.cfg например? Настройки авторекордера считываются из autorecorder.cfg в cfg\sourcemod при каждой каждой его перезагрузки. Если ты хочешь юзать непрерывную запись, то тут все сложнее. Лучше, чтобы плагин не перезагружался вообще. Чтобы авторекордер не перезагружался, его нужно настроить соответствующим образом в /hl2mp/addons/sourcemod/configs/plugin_settings.cfg, но я пока не умею этого делать. Quote (Vels) PS У меня была включена команда sm_autorecord, отключать как я понял? Если не хочешь, чтобы он писал все подряд-отключай.
|
|
|
|