Версия: 1.0.0
Плагин позволяет администратору устанавливать прозрачную платформу в любом месте.
На дуэль могут вызывать игроки из разных команд. Другие игроки не могут вмешиваться в процесс дуэли игроков.
Дуэль ограничена временем. Писался плагин давно для knife сервера.
Выложил, чтобы данное творчество жило.
Плагин уникальный. начисляет бонусы победители и забирает у проигравшего, если активен плагин aes.
Админ может устанавливать платформу командами:
в чате /bm
чтобы можно было перемещать мышкой и клавишей, придется привязать кнопки
register_clcmd("+bmgrab", "cmdGrab", ADMIN_ACCESS, "bind a key to +bmgrab");
register_clcmd("-bmgrab", "cmdRelease", ADMIN_ACCESS);
Команды для игроков, в чате:
/duel
1) Если игрок играл раньше с кем-то или с ним играли, то он не может никого пригласить на дуэль, пока не обнулится предыдущий список игроков. Либо не сыграют новые игроки. У функции обнулении есть таймер, который удаляется в случае если сыграли новые игроки, чтобы не затереть предыдущий таймером тек. значения сыгравших игроков.
С этим все в порядке, когда игрок отсоединяться, у него обнуляется id. Так как id повторяется, когда зайдет новый игрок на сервер; вместо предыдущего.
2) Пригласить на дуэль можно, когда первый дуэлянт равен нулю и второй тоже.
При выборе игрока, когда никто не соревнуется, поступает запрос выбранному игроку. Иначе выводит, что дуэль занята.
Время ожидания ответа составляет 10 секунд. По истечении всех дуэлянтов обнуляют и игроку выводят, что его проигнорировали.
3) Второй игрок отвечает, проверяется условие, чтобы второй игрок не был задан, таким образом мы предостережем себя от перезамены второго игрока, если первый игрок пригласил на дуэль нескольких игроков. При новом пришлашении игрока этим же игроком таймер обнуления сбрасываем. А также проверяется, что приглашенный игрок в последний момент оказался тем, кто отвечает на приглашение.
При положительном ответе последним игроком, таймер обнуления удаляется. Сохраняем второго игрока и начинаем запуск дуэли.
При отрицательном последним игроком, первому игроку выводится, что его отменили.
4) Зацикливаем время раунда на фун-цию с эпизодичностью 1 сек, пока не будет 0.
По истечению обнуляем все показатели.
В ф-ции вывода таймера обратного отсчета:
Успеют ли телепортироваться игроки teleport_to_spawn, если после него обнуляются переменные? - да, т.к. значения передаются до обнуления.
По истечению времени телепортирует дуэлянтов на базы и обнуляет переменные игроков дуэлянтов.
5) При убийстве игрока, проверяется, чтобы переменные дуэлянтов были.
Не учитываются самойбийства. А также убийца и жертва были дуэлянты. При достижении определенных фрагов, убийцу телепортируют. Также очищается после смерти таймер раунда.
Если админ открыл меню блоков, а в этом режиме показывают платформу и нет дуэлянтов, то скрываем платформу. Меню блоков, который было открыто у админа скрывается.
При телепорте убийцы, ему восстанавливают hp. Скрывается потом платформа.
Таймер раунда после смерте удаляется.
6) При спавне игроков, проверяется условие, что если заспавненный игрок, дуэлянт и его оппонент не равен 0, тогда проверяется кол-во фрагов на полноту. Если не полно, тогда удаляем таймер раунда и заново запускаем раунд.
Иначе телепортирует заспавненного игрока на предыдущее место и устанавливает ему столько hp, сколько на карте. Этот вариант сработает для дулянта, который первый умер.
! Спустя 4 секунды после спавна, переменные дуэлянтов обнуляются. До этого момента дуэль занята.
Ф-ция обнуления удаляет предыдущий таймер обнуления последних игроков и ставит новый, сохраняя при это последних игроков.
7) При отсоединении игрока, если есть дужлянты и отсоединившийся один из них, тогда удаляем таймер раунда и очищаем экраны игроков.
Отсоединившигося игрока удаляем из последних сыграных, чтобы не смешать с новым зашедшим игроком. Оставшегося игрока телепортируем обратно. Скрываем платформу и переменные дуэлянтов обнуляем. Если отсоединился админ, скрываем платформу в том случае, когда не было дуэлянтов.
8) При инициализации дуэли, фраги обнуляются, раунд становится первым. Показывается платформа. Если платформа не установлена, тогда переменные дуэлянтов обнуляются и выводятся сообщения дуэлянтам о неустановленной платформе.
Устанавливается определенное кол-во hp, ставим на определенные позиции, обнуляем таймер раунда и запускаем таймер райнда.
С этим все в порядке, когда игрок отсоединяться, у него обнуляется id. Так как id повторяется, когда зайдет новый игрок на сервер; вместо предыдущего.
2) Пригласить на дуэль можно, когда первый дуэлянт равен нулю и второй тоже.
При выборе игрока, когда никто не соревнуется, поступает запрос выбранному игроку. Иначе выводит, что дуэль занята.
Время ожидания ответа составляет 10 секунд. По истечении всех дуэлянтов обнуляют и игроку выводят, что его проигнорировали.
3) Второй игрок отвечает, проверяется условие, чтобы второй игрок не был задан, таким образом мы предостережем себя от перезамены второго игрока, если первый игрок пригласил на дуэль нескольких игроков. При новом пришлашении игрока этим же игроком таймер обнуления сбрасываем. А также проверяется, что приглашенный игрок в последний момент оказался тем, кто отвечает на приглашение.
При положительном ответе последним игроком, таймер обнуления удаляется. Сохраняем второго игрока и начинаем запуск дуэли.
При отрицательном последним игроком, первому игроку выводится, что его отменили.
4) Зацикливаем время раунда на фун-цию с эпизодичностью 1 сек, пока не будет 0.
По истечению обнуляем все показатели.
В ф-ции вывода таймера обратного отсчета:
Успеют ли телепортироваться игроки teleport_to_spawn, если после него обнуляются переменные? - да, т.к. значения передаются до обнуления.
По истечению времени телепортирует дуэлянтов на базы и обнуляет переменные игроков дуэлянтов.
5) При убийстве игрока, проверяется, чтобы переменные дуэлянтов были.
Не учитываются самойбийства. А также убийца и жертва были дуэлянты. При достижении определенных фрагов, убийцу телепортируют. Также очищается после смерти таймер раунда.
Если админ открыл меню блоков, а в этом режиме показывают платформу и нет дуэлянтов, то скрываем платформу. Меню блоков, который было открыто у админа скрывается.
При телепорте убийцы, ему восстанавливают hp. Скрывается потом платформа.
Таймер раунда после смерте удаляется.
6) При спавне игроков, проверяется условие, что если заспавненный игрок, дуэлянт и его оппонент не равен 0, тогда проверяется кол-во фрагов на полноту. Если не полно, тогда удаляем таймер раунда и заново запускаем раунд.
Иначе телепортирует заспавненного игрока на предыдущее место и устанавливает ему столько hp, сколько на карте. Этот вариант сработает для дулянта, который первый умер.
! Спустя 4 секунды после спавна, переменные дуэлянтов обнуляются. До этого момента дуэль занята.
Ф-ция обнуления удаляет предыдущий таймер обнуления последних игроков и ставит новый, сохраняя при это последних игроков.
7) При отсоединении игрока, если есть дужлянты и отсоединившийся один из них, тогда удаляем таймер раунда и очищаем экраны игроков.
Отсоединившигося игрока удаляем из последних сыграных, чтобы не смешать с новым зашедшим игроком. Оставшегося игрока телепортируем обратно. Скрываем платформу и переменные дуэлянтов обнуляем. Если отсоединился админ, скрываем платформу в том случае, когда не было дуэлянтов.
8) При инициализации дуэли, фраги обнуляются, раунд становится первым. Показывается платформа. Если платформа не установлена, тогда переменные дуэлянтов обнуляются и выводятся сообщения дуэлянтам о неустановленной платформе.
Устанавливается определенное кол-во hp, ставим на определенные позиции, обнуляем таймер раунда и запускаем таймер райнда.