HALF-LIFE 2 FOREVER - Forums

HALF-LIFE 2 FOREVER - Forums (http://hl2forever.ru/forum.php)
-   HL2F #1 COOPERATIVE (http://hl2forever.ru/forumdisplay.php?f=5)
-   -   Улучшение сервера #1 (Предложения, обсуждения) (http://hl2forever.ru/showthread.php?t=87)

Mimity 25.05.2016 20:36

бессмертны вортигонты:
coop_level_12a
coop_city_17_level4_jedi_1h
coop_level_13a

drummer 25.06.2016 13:13

Уберите карту coop_town_level3a. Много раз замечал, что она лагает (к тому же маленькая!). Но сегодня в 12:06-12:09 несколько раз пытался поменять карту - ни в какую. Не меняет. При попытке поменять карту выдает "Сервер меняет уровень", но при этом ничего не прогружается (и естественно карта не меняется). Лично мне приходилось выходить из игры и заново заходить в игру, чтобы опять увидеть эту карту.

drummer 25.06.2016 13:49

И еще чуть позже перестали убиваться вортигонты на этой карте (Тоже, кстати, не впервые).

Nikita 03.07.2016 13:57

Цитата:

Сообщение от Mimity (Сообщение 2570)
бессмертны вортигонты:
coop_level_12a
coop_city_17_level4_jedi_1h
coop_level_13a

Исправлено.

Цитата:

Сообщение от drummer (Сообщение 2696)
Уберите карту coop_town_level3a. Много раз замечал, что она лагает (к тому же маленькая!). Но сегодня в 12:06-12:09 несколько раз пытался поменять карту - ни в какую. Не меняет. При попытке поменять карту выдает "Сервер меняет уровень", но при этом ничего не прогружается (и естественно карта не меняется). Лично мне приходилось выходить из игры и заново заходить в игру, чтобы опять увидеть эту карту.

Изменил стартовую карту на js_coop_thunder_b4

drummer 15.07.2016 18:28

js_coop_thunder_b4 в очередной раз не меняется (такая же проблема как и с coop_town_level3a). Получается одну зависающую убираем, то тут же начинает лагать другая?

БУЙНЫЙ 04.08.2016 13:52

На некоторых картах порой необходимо очень больно падать, изза чего народ убивается. админам приходится уменьшать гравитацию чтоб этого небыло.

необходимо уменьшить урон при падении до 10хп. делается это командой mp_falldamage 0.

VSDK2013 04.08.2016 15:45

Цитата:

необходимо уменьшить урон при падении до 10хп. делается это командой mp_falldamage 0.
Не совсем так. Это распространённое заблуждение. mp_falldamage лишь переключатель масштабирования урона при падении от текущей скорости падения. При 0 устанавливает фиксированный урон 10 единиц:

Код:

float CMultiplayRules::FlPlayerFallDamage( CBasePlayer *pPlayer )
{
        int iFallDamage = (int)falldamage.GetFloat();

        switch ( iFallDamage )
        {
        case 1://progressive
                pPlayer->m_Local.m_flFallVelocity -= PLAYER_MAX_SAFE_FALL_SPEED;
                return pPlayer->m_Local.m_flFallVelocity * DAMAGE_FOR_FALL_SPEED;
                break;
        default:
        case 0:// fixed
                return 10;
                break;
        }
}

https://github.com/ValveSoftware/sou...rules.cpp#L618

Варианты исправления:

1. SM плагин - хук OnTakeDamage с проверкой флага урона (DMG_FALL), либо взять какой-либо готовый плагин (возможно, необходимо будет его перебрать)
2. FlPlayerFallDamage объявлена виртуальной, поэтому возможен вариант SM плагина с хуком этой функции через DHooks, но преимущества перед №1 нет.
3. (По традиции) Сборка сервера из sdk, быстрее и стабильнее.

Вариант кода плагина по №1:

Код:

#pragma semicolon 1

#include <sdktools>
#include <sdkhooks>

#define DMG_FALL  (1 << 5)

public OnClientPutInServer(client)
{
        SDKHook(client, SDKHook_OnTakeDamage, OnTakeDamage);
}
public Action:OnTakeDamage(client, &attacker, &inflictor, &Float:damage, &damagetype)
{
        if (damagetype & DMG_FALL)
        {
                return Plugin_Handled;
        }
        return Plugin_Continue;
}

http://dropmefiles.com/k9CMC

VSDK2013 04.08.2016 16:05

Цитата:

но преимущества перед №1 нет.
Если подумать хорошо, то есть. Например, карта по каким-то известным только маперу причинам убивает игроков триггером через DMG_FALL, а не DMG_GENERIC, например. Тогда игроки не будут умирать. В этом случае, DHooks позволит переопределить FlPlayerFallDamage и такая карта будет работать, как задумано. Но это частный и маловероятный случай.

БУЙНЫЙ 05.08.2016 04:38

не понимаю к чему всё это, если в данном случае достаточно будет просто прописать mp_falldamage 0.

да я в общемто как раз и имел в виду что урон фиксируется 10 хп. неправильно выразился но в целом думаю всем понятно).

VSDK2013 05.08.2016 13:27

Тогда вопросов нет. А плагин всё равно могут поставить, не помешает, он рабочий =)

БУЙНЫЙ 06.08.2016 07:59

ну лишние плагины ставить если они не нужны тоже не стоит, даже если они мизерные). И особенно там где можно обойтись без них.

Своё время на ДМе попросили также зафиксировать урон 10 хп при падении, майн вообще хотел воткнуть какойто плагин чтоб вообще убрать урон при падении. Нафига плагин если достаточно всего одной команды? судя по всему он про эту команду вообще не знал, пока ему не объяснили. Вот что бывает когда за сервера берётся человек вообще нихрена не понимающий в игре, про матчасть я вообще молчу...

Также и с безконечным бегом на коопе. Майн зачемто воткнул плагин, когда можно просто прописать конвар sv_infinite_aux_power 1. Да понятно что плагинможет по отдельности делать безконечной энергию на разные вещи, тогда как команда применяет сразу на всё, но в данном случае оно не надо. конвара было бы достаточно! Так что ещё одно предложение: убрать плагин, прописать конвар).

БУЙНЫЙ 06.08.2016 08:18

И ещё: иногда после смены карты буквально на мгновение сервер врубает sv_cheats 1. Таким образом можно забиндить необходимые читерские команды и в нужный момент тупо нажимать на неё выполняя не хорошие команды). Думаю это необходимо исправить!

VSDK2013 06.08.2016 15:06

В целом, согласен, больше плагинов - дольше запуск сервера, больше требования к мощности машины. Я был однажды на кооперативе (баунси болл, если кто знает) и насчитал там около 400 плагинов. Я удивляюсь, как это вообще может работать. Если посмотреть в исходник сурсмода, то становится понятно, что плагин не просто создаёт, к примеру, переменные, указатели, таймеры, массивы и типы, но и тянет за собой целый интерфейс, описанный в исходном коде сурсмода, через который и работает. Поэтому требования к памяти больше, чем кажется. А поскольку многие плагины пишутся энтузиастами, то написаны бывают криво (все плагины рекомендую пересобирать и облегчать, но для этого нужно знать техническую сторону, не отрицаю. Лично разбирал плагин джетпака для ТФ2, который занимался рисованием эффектов через партикл систему в OnGameFrame! это сибирский пушной зверёк, товарищи! OnGameFrame выполняется в каждом тике сервера, друзья, так делать нельзя)

Майн в общем то делал, что мог, не буйствуй на него сильно =) Просто тут нужны по возможности глубокие знания движка, тут всё просто - больше знаешь, лучше сервер. И людей, которым это интересно, меньшинство. К сожалению. А если не знаешь, всегда ведь можно попросить помощи у того, кто знает, не так ли? =)

Цитата:

иногда после смены карты буквально на мгновение сервер врубает sv_cheats 1
Юра, карта включает, а не сервер. Это невозможно исправить, не пересобрав карту, сервер или не написав плагин. Кооп карты - это не дм карты. Например, карта хочет установить бесконечный бег через ту же sv_infinite_aux_power, которая помечена флагом FCVAR_CHEAT и не будет работать при sv_cheats 0. Эту переменную, при наличии сурсмода, можно изменить командой sm_cvar sv_infinite_aux_power 1, но не на всех серверах был и есть сурсмод, некоторые запущены под мани. Поэтому карта сперва включает читы, затем отключает. Это нормально. Как вариант исправления, можно написать плагин, который будет запрещать клиентам отправлять консольные команды, все или некоторые (повесив обработчик AddCommandListener, также можно перепилить смак, если в нём есть необходимость - smac_commands.sp), пока активна sv_cheats. Либо пересобрать такую карту.

VSDK2013 06.08.2016 15:09

Цитата:

Эту переменную, при наличии сурсмода, можно изменить командой sm_cvar sv_infinite_aux_power 1
Вариант - можно также просто лишить её чит флага, используя SetConVarFlags сурсмода.

БУЙНЫЙ 06.08.2016 16:19

Цитата:

Сообщение от VSDK2013 (Сообщение 2939)
Юра, карта включает, а не сервер.

да я собственно это тоже предполагал что возможно это включает карта. но на других серверах я такого не видел, только здесь. уж как там это исправляли я хз). моё дело сказать что есть такая проблема, а решать как её исправлять - забота не моя)). я наглый) :ag: . а если серьёзно тут я реально ХЗ как лучше сделать. но какимнибудь образом было бы неплохо наглухо запретить изменение переменной sv_cheats по многим причинам, одна из них (совсем мелочная) чуть ниже...

Цитата:

Сообщение от VSDK2013 (Сообщение 2939)
Эту переменную, при наличии сурсмода, можно изменить командой sm_cvar sv_infinite_aux_power 1

Вот кстати об этом я и говорю как можно включить безконечный бег без помощи плагинов. только в данном случае одно НО. при перекличении sv_cheats с 0 на 1 и потом обратно, читерские переменные сбиваются и таже sv_infinite_aux_power переходит в состояние 0((((! проверял лично и в SynergyMod и в HL2DM. Так что наверное и не имеет смысла разрешать картам менять sv_cheats. И для этого тоже было бы неплохо её запретить.

Цитата:

Сообщение от VSDK2013 (Сообщение 2940)
Вариант - можно также просто лишить её чит флага, используя SetConVarFlags сурсмода.

как вариант... НО, описанных выше проблем с sv_cheats это не решит. и опять же повторюсь на других серверах я такой фигни не видел!

Цитата:

Сообщение от VSDK2013 (Сообщение 2939)
но не на всех серверах был и есть сурсмод

Лично я ещё ни разу не видел сервера халфы без сурсмода). Кроме RLS конечно, но это ваще отдельная история! Ну и потом как минимум тут он есть, можно попробовать чёто делать).

Цитата:

Сообщение от VSDK2013 (Сообщение 2939)
Как вариант исправления, можно написать плагин, который будет запрещать клиентам отправлять консольные команды, все или некоторые

насчёт запрета всех - как бы чего не сломать игрокам...
насчёт частичной - несколько сомнительно. так как здесь действует принцип разрешено всё то что не запрещено. Для этого нужен список ВСЕХ халферных команд, сидеть выбирать что запретить а что нет и если случайно чтото упустишь может быть плохо). :cg:

а карту пересобирать тоже сомнительной занятие... думаю и проще и лучше ковырять сервак и\или сорсмод).


Текущее время: 09:21. Часовой пояс GMT +4.

Работает на vBulletin® Версия 3.9.1-dev
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd. Перевод: zCarot
® 2015-2021 HALF-LIFE 2 FOREVER