Готовая сборка Match-сервера
|
|
|
GAVVVR
Удаленные
с
| Всем привет. В связи с тем, что моя сборка стала пользоваться спросом и уже прошла некоторые тесты, посчу ссылки на скачивание тут. Версия для windows Версия для linux По этим ссылкам можно всегда скачать самую последнюю версию. Более подробно о сборке можно прочесть тут. Если возникают какие-то вопросы или наши косяк, пишите в этой теме.
|
|
|
|
|
GAVVVR
Удаленные
с
| Сегодня добавлена приятная мелочь: при выполнении конфигов dm/tdm.cfg, значение mp_teamplay меняется и карта сразу же перезагружается для смены режима игры.
|
|
|
|
|
Assassin1996
Удаленные
с
| GAVVVR, лол. что за плагин? для смены мапы? я тут смотрю у тя sm_reloadmap добавлена. По подробней плз :3
|
|
|
|
|
Kirtanus
Удаленные
с
| GAVVVR, как я понял ты добавил в тдм.кфг команду sm_reloadmap. спасибо что нашел этот плагин - а то мне влом было искать его)
Отредактировано Kirtanus - Понедельник, 24.01.2011, 20:01
|
|
|
|
|
GAVVVR
Удаленные
с
| 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
Удаленные
с
| 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
Удаленные
с
| Dog, расскажи на словах, что он делает. А то даже я не понял Я хотел научиться кодить на павн, но пока нету времени. Quote (Dog) Сменит карту только в случае необходимости. Когда он он проверяет условия необходимости? Что конкретно делает sm_tp и в какой из конфигов ты предлагаешь его включить?
|
|
|
|
|
Dog
Удаленные
с
| 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
Удаленные
с
| 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
Удаленные
с
| Dog, я несколько раз перечитал той пост не увидел преимуществ xD
|
|
|
|
|
Dog
Удаленные
с
| GAVVVR, в любых конфигах, содержащих переменную mp_teamplay. Эффект будет тот же, как и от reload map, только он НЕ будет перезагружать карту, если это не надо. Вот допустим: у тебя паблик сервер, работает в режиме ффа, тут тебе приспичило поиграть кв, sm_tp 1 включит тимплей и сменит мапу на эту же, потом ты запускаешь ещё раз конфиг, но sm_tp 1 уже не будет менять мапу, он лишь изменит значение mp_teamplay на 1 (а т.к. пример на паблике ффа, то очевидно, что после смены мапы тимплей будет включён, но переменная будет равна 0). Надеюсь, смог донести, что хотел.
|
|
|
|
|
GAVVVR
Удаленные
с
| Dog, я примерно понял. Идея такая же, как в скрипте на ES от Weirdie, где управление осуществлялось через #.#. Однако, количество заходов в меню на SM при этом не уменьшится. Как было 2, так и останется (если режим не подходящий). Поэтому смысла в этом не вижу и идея мне не очень понравилась.
|
|
|
|
|
Dog
Удаленные
с
| 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
Удаленные
с
| DooMeR нашел классную программу для удобного создания и управления админами и группами админов - KVManager.
|
|
|
|
|
GAVVVR
Удаленные
с
| Обновил сборку, добавил самый новый фикс очков, и обновленный автоспек, обновил конфиги. Прочие подробности тут.
|
|
|
|
|
Fkk
Удаленные
с
| GAVVVR, Будет правильный счет? Наконецта!!!!
|
|
|
|
|
GAVVVR
Удаленные
с
| 2Faka, да, счет верный. Плагин с фиксами от 8го ферваля (новее, чем в КУ сборке) Вот пример
|
|
|
|
|
Vels
Удаленные
с
| Как правильно запустить плагин autorecorder? sm_autorecorder 1; sm_record все включал не пишет совсем. Команду: sm_autorecord_minplayers ставил как 1 так и 0. Тоже не пишет.
|
|
|
|
|
GAVVVR
Удаленные
с
| Vels, сорри, если я тебя обижу вопросом - но СТВ у тебя точно включен? Для записи ТОЛЬКО матчей нужно, чтобы: -sm_autorecorder 0 -СТВ бот был включен; -Плагин autorecorder был включен (включен он или нет можно проверить командой sm plugins list) -Когда необходимо начать запись, выполнялась команда sm_record (это команда плагина авторекорд, которая выполняет команду сервера tv_record <время, карта>) Т.о. плагин авторекорд в моей сборке служит только лишь для того, чтобы правильно назвать демку.
|
|
|
|
|
GAVVVR
Удаленные
с
| Сраные КУ конфиги с кучей ошибок, ни хрена не проверены. Сорри, народ. Quote //warmode on sourcemod/sm_warmode_on.cfg exec пропущен, вармод не включается. Сообщу, когда поправлю сборку.
|
|
|
|
|
Vels
Удаленные
с
| GAVVVR, да всё включено, но я хотел добиться результата, чтобы демка писалась только тогда, когда на сервере кто-то есть и как минимум 2 человека. А не так, чтобы оно писалось постоянно. PS Захожу на сервер, пишу sm_record. Демка все равно не появляется на сервере.
Отредактировано Vels - Понедельник, 28.02.2011, 18:55
|
|
|
|
|
GAVVVR
Удаленные
с
| Vels, проверь, запущен ли плагин. У меня работает sm_record. Исправил ошибку в сборке.
|
|
|
|
|
Vels
Удаленные
с
| А какие именно ошибки в сборке были? Думаю проще подправить вручную. Чем заново скачивать. PS У меня была включена команда sm_autorecord, отключать как я понял? Плюс, autorecorder.cfg хранится в cfg\sourcemod. Настройки плагина считываются из этого файла или их надо отдельно записать к server.cfg например?
Отредактировано Vels - Понедельник, 28.02.2011, 19:03
|
|
|
|
|
GAVVVR
Удаленные
с
| 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, отключать как я понял? Если не хочешь, чтобы он писал все подряд-отключай.
|
|
|
|