BLOG Mini-Blog by Javekson

Сообщения
473
Реакции
249
Помог
6 раз(а)
fire-dance, почему не поставил? Поставил. Перед тем, как его ставить, нужно собрать основу на HLDS, чтобы её апгрейдить.
 
Сообщения
1,016
Реакции
818
Помог
10 раз(а)
Нашел в новом AMXX инклуд DataPack, но не совсем понял сути его применения, объясните пожалуйста.
 
Сообщения
1,016
Реакции
818
Помог
10 раз(а)
Наверное неудачная попытка будет вспомнить AMX, но да ладно. )

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

При выполнении команды в консоли сервера "hlds_stop" - удаляет всех игроков с причиной "Сервер остановлен", затем выполняется команда quit, так-как у меня стоит автоматическая перезагрузка после остановки сервера после 10 секунд, то скрип запуска/остановки сервере параллельно убивает процесс.

При выполнении команды в консоли сервера "hlds_restart" - происходит отсчет времени до рестарта сервера в виде DHUD-Сообщения вверху экрана, затем удаляет всех игроков с причиной "Сервер перезагружается", затем выполняется команда quit, так-как у меня стоит автоматическая перезагрузка после остановки сервера после 10 секунд, то он автоматически поднимается.

Вот такая вот фигня ))

2019-02-17_190438.png2019-02-17_190700.png2019-02-17_191811.png
 

Download all Attachments

Последнее редактирование:
Сообщения
1,016
Реакции
818
Помог
10 раз(а)
После нескольких наставлений, немного изменил алгоритм Server Commands.
Перезалил исходник.

C++:
#include <amxmodx>
#include <amxmisc>

#pragma semicolon 1

const RESTART_DELAY = 60;                    // Задержка в секунднах перед рестартом сервера(Отсчет времени в DHUD-Message)

public plugin_init() {
    register_plugin("Server Commands", "2.0", "Javekson");
    register_srvcmd("hlds_stop", "SrvCmdStop");
    register_srvcmd("hlds_restart", "SrvCmdRestart");
}

public SrvCmdStop() {
    kick(.sReason = "Сервер остановлен");
    server_cmd("quit");
}

public SrvCmdRestart() {
    TimeCount();
    set_task_ex(1.0, "TimeCount", .flags = SetTask_RepeatTimes, .repeat = RESTART_DELAY);
}

public TimeCount() {
    static iCounter;
    set_dhudmessage(0, 255, _, _, 0.01, _, 0.02, 1.0, 0.01, 0.1);
    show_dhudmessage(0, "До перезагрузки сервера осталось: %d сек", RESTART_DELAY - iCounter);
    if(iCounter == RESTART_DELAY) {
        kick(.sReason = "Сервер перезагружается");
        server_cmd("quit");
    }
    iCounter++;
}

stock kick(const sReason[]) {
    new aPlayersID[MAX_PLAYERS], iPlayersNum;
    get_players_ex(aPlayersID, iPlayersNum, GetPlayers_IncludeConnecting | GetPlayers_ExcludeBots | GetPlayers_ExcludeHLTV);
    for(new i; i < iPlayersNum; i++) {
        server_cmd("kick #%d ^"%s^"", get_user_userid(aPlayersID[i]), sReason);
    }
}
 
Сообщения
1,016
Реакции
818
Помог
10 раз(а)
Не самый лучший вариант начинать сразу со статистики игроков на sql, но если сейчас не начну, то боюсь вообще не начну.
Начала уже положено, на сегодня хватит =DDDD

2019-02-21_165230.png
 
Сообщения
283
Реакции
28
Помог
2 раз(а)
Javekson, the advertising manager plugin is great although there's one small thing that's missing - an autoresponder,hope you have time one day to add that too.
 
Сообщения
1,016
Реакции
818
Помог
10 раз(а)
Пожалуй поделюсь в блоге тоже наработкой статистики игроков. Конечно вряд-ли кому-то она понадобиться, но пусть лежит в копилке.

Много было вопрос, зачем насиловать сервер, сохранять статистику в реал-тайме. Отвечу почему выбрал именно такой подход, учитывая, что мне было необходимо максимально точно хранить достоверные данные игрока, а это, наверно единственный выход.

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

Физической нагрузки на сервер при апдейте в реал-тайме никакой не наблюдаю. Обработкой запроса занимается соседняя машинка, максимальная нагрузка на базу что я видел была в 1.3%

Тайминги так же в порядке, на локалке такие же.

2019-04-10_192741.png

Сортировка топа строго по Skill метода The Elo, игроки возмущались, которые любили набивать фраги, что они не в топе, но я решил держать в топе только скилловых игроков.

2019-04-08_153415.png

Итого имеем /top и /rank Отдельным плагином пилю /me и /hp
10 Апр 2019
Если кому то понравился стиль/уровни, ловите.
 

Download all Attachments

Сообщения
1,016
Реакции
818
Помог
10 раз(а)
Решил все же не уделять слишком много внимая к оптимизации кода в связи отсутствием времени, а побыстрее собрать сервер.
Игроки просили, потому накидал им, в прямом смысле маразматичный функционал плагина /me /hp

Над названием плагина даже не заморочился, ужас =D
Знаю, что в нем, по сути, много лишний информации, но моим почему-то понравилось.
С цветом чата тоже особо пока не заморачивался, вернусь к нему, как будет время, пока займусь другими делами.


Команда /me
de_inferno0000.jpg

Команда /hp
de_inferno0005.jpg

Kille Info
de_inferno0001.jpg
 

Download all Attachments

Последнее редактирование:
Сообщения
473
Реакции
249
Помог
6 раз(а)
Javekson, ну всё, сезон сообщения точного количества ХП и бомбёжки по этому поводу снова открыт)
 
Сообщения
1,016
Реакции
818
Помог
10 раз(а)
Да, кстати, че то я борщанул floatround(g_eMe[id][ME_DAMAGE] каждый дамаг вызывать, перенес непосредственно в команду /me
И убрал количество убийств за раунд, и так понятно сколько ты убил...
Обновил исходник.
15 Апр 2019
CHEL74, никогда не было такой бомбежки у меня
 
Сообщения
473
Реакции
249
Помог
6 раз(а)
никогда не было такой бомбежки у меня
Ну может ты не видел) Ты ж редко играешь. У меня раньше постоянно, один скажет, что например 1 хп остался у киллера, а его осуждать начинают за это) А если после этого ещё и гранатой того киллера убьют по инфе, то мат на мате вообще)) Раньше у меня это считалось инфой только для себя, а при разглашении ай-я-яй говорили игрокам, а щас вообще убрал урон, только в конце раунда в худе выводится. Так что игроки сами гадают, сколько они сняли) ИМХО, так более честно. В /me выводится только количество попаданий (команда работает только после смерти) и попадания в голову. А в /hp ник киллера, расстояние и оружие, с которого убил он. Ну тут конечно дело каждого, как делать. Я стараюсь снижать вероятность конфликтов между игроками на почве игровых ситуаций и делать игру более честной.
 
Сообщения
1,016
Реакции
818
Помог
10 раз(а)
Ты ж редко играешь.
Я редко играю лишь в последние время, до этого 7 лет играл как-то же

что например 1 хп остался у киллера, а его осуждать начинают за это)
За что его осуждать? Это уже маразмом попахивает с их стороны.

вероятность конфликтов между игроками на почве игровых ситуаций
У меня нету таких конфликтов, у каждого свой контингент игроков, не забывай об этом. Взрослые адекватные люди не будут паниковать по мелочам.
 
Сообщения
473
Реакции
249
Помог
6 раз(а)
у каждого свой контингент игроков
Ты о каких-то идеальных ситуациях говоришь. У тебя же серв крутится на раскрутках. Очень много новых людей прибывает, которые зачастую мягко говоря не очень адекватные и взрослые. Они между собой сцепиться могут по любым причинам. При чём контингент?)
 
Сообщения
1,016
Реакции
818
Помог
10 раз(а)
CHEL74, основной контингент это постоянные игроки, я не бусты скупаю, школьников у меня мало.
Давай закроем ненужный спор, ты не знаешь ни меня не мой сервер, зачем что-то говорить об этом?
17 Апр 2019
Обновил say_me_hp, изменил цвет чата, добавил возможность включать/отключать показывать killer info при смерти игрока по желанию игроков, информация храниться в invault'e, удаляются данные при неактивности больше 1 недели. По умолчанию киллер инфо включен
17 Апр 2019
Правда сделал реализацию через каллфунк, включение/отключение происходит через меню сервера, но если кому понадобиться думаю не сложно будет добавить простую команду в чате или консоли
 

Вложения

Последнее редактирование:
Сообщения
1,016
Реакции
818
Помог
10 раз(а)
Снова стал переписывать рекламные сообщения. Пока что оставил их только в чате.

* Реклама в чате только для мертвых игроков
* Автоматическое полное отключение рекламы для VIP-игроков
* Возможность частичного отключение для обычных игроков.
* Удаление неактивных игроков и базы через 7 дней

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

2019-04-19_182255.png
 

Download all Attachments

Сообщения
1,016
Реакции
818
Помог
10 раз(а)
Небольшой плагин снимающей ограничение при переходе между командами за раунд.

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

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

Вложения

Сообщения
2,491
Реакции
2,791
Помог
61 раз(а)
Javekson, раз уже юзается реапи, то хукать лучше на нем, вместо комманд. насколько я не ошибаюсь там вроде разные команды у старого и нового меню
 

Пользователи, просматривающие эту тему

Сейчас на форуме нет ни одного пользователя.
Сверху Снизу