Оптимизация SM-плагинов, сервера, написание плагинов

Статус
В этой теме нельзя размещать новые ответы.

KorDen

Atra esterní ono thelduin!
Сообщения
2,142
Реакции
1,424
Заказы пока не принимаются

В качестве вступления: Держа высоконагруженный сервер (x64), как-то у меня появилась идея переделать некоторые плагины, удалив ненужные мне функции, а так же убрав те переменные, которые не изменяются практически никогда, особенно в коде с огромной частотой срабатывания (Если у меня за сутки на севрере происходит 80 000 убийств, то с какой частотой происходит player_hurt - нанесение урона кому-либо?).
Посмотрев на код большинства плагинов я ужаснулся, и начал углубляться в Source Pawn с целью не написания каких-то супер-пупер плагинов, а с целью убирания всего ненужного из используемых мною.

Примеры оптимизации, в большинстве случаев с подробными комментариями изменений относительно оригинала, можно найти в теме http://hlmod.ru/forum/plaginy-dlya-sourcemod/15984-lite-plugins.html#post104108

Думаю очевидно, что принимаю на оптимизацию только плагины с исходниками (НЕ ДЕКОМПИЛИРОВАННЫЕ!).

От вас требуется явно указать, что вам не нужно вообще, какие из переменных никогда не изменяются, а что можно вынести в начало исходника (через define), если знаете как компилировать плагины.
Например, оптимизация High Ping Kicker Lite: не нужно изменять время проверок и их количество, нужно чтобы любой адимнский флаг давал иммунитет, однако нужно оставить возможность изменения максимально разрешенного пинга. Результат можно посмотреть в Lite Plugins.

Возможно рассмотрение списка ваших плагинов и комментирование по поводу того, что можно оптимизировать, а что нет, и комплексная оптимизация, то есть объединение нескольких плагинов в один.
Например, может быть неочевидным для вас то, что на самом деле можно объединить в один плагин простой NoBlock и Grenade Trails, поскольку часть кода NoBlock для гранат совпадает с часть кода Grenade Trails, а если у вас стоит еще и Throwing Knives - параллельно можно исправить возможность одновременной работы NoBlock для гранат и летающих ножей. Кажется немного странным? Однако это прекрасно работает, с меньшими затратами со стороны сервера, особенно когда гранаты летают ОЧЕНЬ часто.

В частных случаях делаю оптимизацию и, возможно, мелкую переделку расширений под конкретный сервер - например у меня на сервере стоит CSS:DM вообще без кода FFA, и с убранной частью функций/нативов, которые мне не нужны (пресеты спаунов, настройка исчезновения бомбы и оружия). В паблик такое не выложишь толком - небходимы конкретные изменения под условия и устоявшиеся параметры конкретного сервера, а сделать по заказу с необходимыми параметрами можно. Сразу небольшой список того, что уже менял или пробовал менять: Оффтоп

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

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

Оплата и цены
Цены зависят от задач, в некоторых случаях может быть и бесплатно.
Принимаю Яндекс.Деньги, WebMoney. Возможны и другие способы при согласовании.
После первичного просмотра и переделки кода могу потребовать частичную (50%) предоплату, по окончании плагин будет передан вам только после полной оплаты. Возможны другие схемы.

Связь: --- временно не занимаюсь ---
 
Последнее редактирование:
Сообщения
2,587
Реакции
1,344
Re: Оптимизация SM-плагинов, сервера

Есть предложение - собрать все популярные плагины, используемые например на паблике - в один ,вот это будет оптимизация ;)
 

R1KO

fuck society
Сообщения
9,457
Реакции
7,786
  • Команда форума
  • #3
Re: Оптимизация SM-плагинов, сервера

☆★☆БАТЯ☆★☆™, +1, тоже думал)
 

KorDen

Atra esterní ono thelduin!
Сообщения
2,142
Реакции
1,424
Re: Оптимизация SM-плагинов, сервера

Есть предложение - собрать все популярные плагины, используемые например на паблике - в один ,вот это будет оптимизация ;)
У меня есть такое:
bks-std.sp :
PHP:
/*
- ShowDamage
- Damage Sound
- HP Left
- ResetScore
- Game Events Advanced Messages
- UpdateRadar block
- Ping Kicker
- Rate Checker
- Admin List
*/
#define _DMGP 1
#define _DMGS 1
#define _HPLEFT 1
#define _UpdRadarBlock 1
#define _RateCheck 0
#define _GameDesc "Sky-Play CSS:DM"
bks-noblock-gt-skins.sp (NoBlock + Grenade Trails + просто изменение цвета стандартного скина, объединение на основании одних и тех же событий и схожих частей кода)
Есть даже такая хрень, как bks-basecommands.sp, включающий в себя стандартные BaseCommands, PlayerCommands и AntiFlood, с удаленными ненужными функциями, вроде шлепанья, sm_exec и sm_cvar (все что надо - через sm_rcon либо HLSW), и еще некоторые.
В паблик не выкладывал, поскольку очень уж узкие плагины получаются, без хотя бы базовых знаний невозможно что-то изменить, хоть какие-то переменные, но нужны. А реализовывать более-менее приемлимый код для паблика (чтобы можно было что-то отключить) и выкладывать - влом, тем более получается никакого профита... Позже возможно буду выкладывать куски кода как идеи простой реализации с комментариями что где меняется, но это получается только для тех, кто понимает как минимум основы скриптинга.

Однако да, идеи реализации были, например ShowDamage+ResetScore+HP Left+High Ping Kicker, этот набор получается вполне популярным, однако это нужно заняться и сделать паблик версию со всеми описаниями и сопутствующим... А делать все формальности напрягает...

R1KO, отвечу сюда по твоему ЛС о AFK-менеджере
R1KO написал(а):
Просто, я считаю что там много кваров не нужно.
Достаточно 2-3:
1) Время через которое переместить игрока в спеки.
2) Время через которое кикать игрока из спеков
3) Кол-во проверок (как получится).

Если игрок афк то его сначала должно кинуть в спеки, а потом уже кикнуть.
......
Да, я тоже думал над более оптимизированным плагином, относительно того, что выложен в теме простых плагинов, по приблизительно такой же логике, как ты описал (вначале в спеки,а потом кик), однако я все же беру за основу тот же самый AFK Manager, поскольку в нем очень хорошо работает сама логика определения AFK (то есть контролируется и чат и прочее не приходящее сразу в голову).
Предположительно думаю оставить переменные времени и минимального количества игроков, плюс возможно переменную админского флага и типа иммунитета админа.
 

KorDen

Atra esterní ono thelduin!
Сообщения
2,142
Реакции
1,424
Николай Николай, пока нет, возможно через неделю-две.
 
Статус
В этой теме нельзя размещать новые ответы.
Сверху Снизу