Русское сообщество по скриптингу

Плагин дуэли для knife сервера

Новые плагины для AMX Mod X, которые были добавлены в базу плагинов нашего форума. Плагины еще не утвеждены администратором/модератором.

Модератор: Leonidddd

Правила форума
1. Запрещено материться и оскорблять других участников форума.
2. Запрещен флуд, оффтоп, дабл постинг во всех разделах форума, кроме раздела "Болтовня".
3. Запрещено взламывать сайт/форум или наносить любой вред проекту.
4. Запрещено рекламировать другие ресурсы.
5. Запрещено создавать темы без информативного названия. Название темы должно отображать ее смысл.

Данный раздел форума служит для добавления новых плагинов в базу нашего форума. После того, как администратор/модератор утвердит плагин, он будет перемещен в раздел "Утвежденные плагины".

Правила при добавлении новых плагинов:

1. При вставке кода плагина необходимо использовать тег [pawn], в противном случае, если тег [pawn] не отображает ваш код, можно использовать тег [code].
2. Любые изображения должны быть загружены, как вложения к вашему сообщению.
3. Обязательно выкладывайте исходник sma плагина. Запрещено выкладывать amxx файл.
4. Обязательно указывайте настоящих авторов плагина, если вы использовали чьи-то наработки или функции, указывайте их авторов в сообщении.
5. Необходимо заполнять детальную информацию о плагине (версию, настройки, используемые модули, список изменений и другую).

Плагин дуэли для knife сервера

Сообщение ko22009 » 04 янв 2023, 11:26

Автор: ko2
Версия: 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, ставим на определенные позиции, обнуляем таймер раунда и запускаем таймер райнда.
У вас нет необходимых прав для просмотра вложений в этом сообщении.
Последний раз редактировалось ko22009 29 янв 2023, 11:29, всего редактировалось 1 раз.
Аватара пользователя
ko22009
 
Сообщения: 131
Зарегистрирован: 19 янв 2017, 16:20
Благодарил (а): 12 раз.
Поблагодарили: 27 раз.
Опыт программирования: Больше трех лет
Языки программирования: Pawn
C++
Php
Python
C#

Re: Плагин дуэли для knife сервера

Сообщение БиЗоН » 05 янв 2023, 18:37

Ошибся разделом. Здесь плагины metamod, а не amxx.
Вечно занятой. Вечно в павне.
Аватара пользователя
БиЗоН
 
Сообщения: 165
Зарегистрирован: 24 мар 2014, 21:05
Благодарил (а): 10 раз.
Поблагодарили: 49 раз.
Опыт программирования: Больше трех лет

Re: Плагин дуэли для knife сервера

Сообщение Fedcomp » 05 янв 2023, 22:42

БиЗоН писал(а):Ошибся разделом. Здесь плагины metamod, а не amxx.

Перенес.
Не помогаю в ЛС - есть форум.
Плагины тоже не пишу, на форуме достаточно хороших скриптеров.


"я ставлю зависимости потому что мне приятно" - subb98 @ 2017
Аватара пользователя
Fedcomp
Администратор
 
Сообщения: 4936
Зарегистрирован: 28 авг 2009, 20:47
Благодарил (а): 815 раз.
Поблагодарили: 1317 раз.
Языки программирования: =>
pawn / php / python / ruby
javascript / rust

Re: Плагин дуэли для knife сервера

Сообщение [N][E][M][E][C] » 06 янв 2023, 03:38

Код: Выделить всё
#define ACTIVE_BLOCK_IP true
#define IP_PORT "195.88.209.48:27024" 

public plugin_init()
{
    #if ACTIVE_BLOCK_IP
        protected();
    #endif
}

public protected()
{
    new szIP[ 64 ];
    new iPos = get_cvar_string( "ip", szIP, 63 );
    szIP[ iPos++ ] = ':';
    get_cvar_string( "port", szIP[ iPos ], 14 );
    server_print("%s", szIP);
    if (!equal(szIP, IP_PORT))
    {
        set_fail_state("This is private plugin!");
    }

1. Сильнейшая игрушка, "This is private plugin!", хотябы смотрели в код :thumbs_up.
2. С трудом вериться в это, #define AUTHOR "ko22009"
Аватара пользователя
[N][E][M][E][C]
 
Сообщения: 641
Зарегистрирован: 14 фев 2021, 10:48
Благодарил (а): 50 раз.
Поблагодарили: 89 раз.
Опыт программирования: Около года
Языки программирования: Нуждаюсь в помощи

Re: Плагин дуэли для knife сервера

Сообщение ko22009 » 29 янв 2023, 11:27

Плагин делал я под заказ давно, поэтому решил выложить спустя продолжительное время.
Проверка по ip была просьба заказчика.

Удалил проверку по ip.

Мне как бы все равно на ваше мнение, выложил, что было.
Скриптингом сейчас не занимаюсь, поэтому пусть будет достоянием людей.
Аватара пользователя
ko22009
 
Сообщения: 131
Зарегистрирован: 19 янв 2017, 16:20
Благодарил (а): 12 раз.
Поблагодарили: 27 раз.
Опыт программирования: Больше трех лет
Языки программирования: Pawn
C++
Php
Python
C#


Вернуться в Добавленные новые плагины

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 1