Перейти к содержанию
Авторизация  
An2d1s

Ограничение колличества ракет/вооружения.

Рекомендуемые сообщения

An2d1s

Здравствуйте, появилась некая необходимость в ограничении ракет у Гидры. Пишу мод сам по себе на CMD, вообщем, что требуется сделать:

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
Vegas

Я не знаю как, но сделать проверку на нажатие опр клавиши в опр id , таймер грубо говоря.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
NOBOOK

Могу написать систему, пиши в лс

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
16Shadows

Что-тот вроде предложенного выше - проверку клавиши через интервалы времени. Хотя способ явно ненадёжный. Возможно, можно написать плагин для AMX машины, но это требует серьёзных знаний.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
Vegas
В 6/27/2019 в 10:27 AM, Nikita870 сказал:

Могу написать систему, пиши в лс

ИМХО конечно , но судя по твоим темам на форуме - не можешь. 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
NOBOOK
2 минуты назад, Vegas сказал:

ИМХО конечно , но судя по твоим темам на форуме - не можешь. 

Так, оффтоп...

Изменено пользователем Nikita870

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
Web

В самое начало мода:

new HydraInWeaponCount[MAX_PLAYERS];
#define PRESSED(%0) (((newkeys & (%0)) == (%0)) && ((oldkeys & (%0)) != (%0)))

В public OnPlayerKeyStateChange(playerid, newkeys, oldkeys)

Если не объявлено, объявить:

new vehicleid;
vehicleid = GetPlayerVehicleID(playerid);

возможно  уже объявлено,  как как vehicle. По новой можно не объявлять, а изменить в коде  vehicled на vehicle

далее  добавить:

if(PRESSED ( KEY_ACTION ) || PRESSED ( KEY_FIRE ))
    {
        if(GetVehicleModel(vehicleid) == 520)
        {
            if (HydraInWeaponCount[playerid] == 1)
            {
                  SendClientMessage (playerid, -1, "У вас закончились снаряды");
                  Kick(playerid);
            }
            else
            {
                HydraInWeaponCount[playerid] = HydraInWeaponCount[playerid]+1;
                if (HydraInWeaponCount[playerid]>=1) SendClientMessage (playerid, -1, "У вас остался еще один снаряд");
            }
        }
    }

Реализация примитивная с учетом двух кнопок на Cntrl и левую кнопку мыши. Однако, она соответствует требованиям в начале темы. Стандартными средствами нельзя запретить сброс ракет. Но я как понял кик нужен именно для решения этой проблемы. Еще один возможный вариант реализации с перехватом пакетов через pawn.RakNet

В 6/27/2019 в 10:55 AM, 16Shadows сказал:

Что-тот вроде предложенного выше - проверку клавиши через интервалы времени. Хотя способ явно ненадёжный. Возможно, можно написать плагин для AMX машины, но это требует серьёзных знаний.

Что такое amx-машина и для чего она нужна и как каким образом это решит проблему?

 

В 6/28/2019 в 2:22 PM, Nikita870 сказал:

Так, оффтоп...

Можем убедится в твоих знаниях. Хочешь?

Изменено пользователем Web

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
16Shadows

Возможно, выразился не лучшим образом. Имел в виду виртуальную машину.

P.S. Скрипты на Pawn компилируются для использования на виртуальной машине (аналогично с Java и JVM).

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
Web
17 минут назад, 16Shadows сказал:

Возможно, выразился не лучшим образом. Имел в виду виртуальную машину.

P.S. Скрипты на Pawn компилируются для использования на виртуальной машине (аналогично с Java и JVM).

И причем тут она?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
16Shadows

Возможно, я неправильно понимаю концепцию виртуальной машины. В моём понимании плагины расширяют API виртуальной машины. Собственно, плагины для неё и пишутся. Просто указал "создать плагин" чуть длиннее.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Для публикации сообщений создайте учётную запись или авторизуйтесь

Вы должны быть пользователем, чтобы оставить комментарий

Создать учетную запись

Зарегистрируйте новую учётную запись в нашем сообществе. Это очень просто!

Регистрация нового пользователя

Войти

Уже есть аккаунт? Войти в систему.

Войти
Авторизация  

  • Последние посетители   0 пользователей онлайн

    Ни одного зарегистрированного пользователя не просматривает данную страницу

×

Важная информация

Мы разместили cookie-файлы на ваше устройство, чтобы помочь сделать этот сайт лучше. Вы можете изменить свои настройки cookie-файлов, или продолжить без изменения настроек.