Half-Life и Adrenaline Gamer форум
http://www.aghl.ru/forum/

Одна пушка в одном слоте (или как запретить подъем оружия)
http://www.aghl.ru/forum/viewtopic.php?f=42&t=3177
Страница 1 из 2

Автор:  russia [ 26 сен 2020, 14:12 ]
Заголовок сообщения:  Одна пушка в одном слоте (или как запретить подъем оружия)

Привет всем!

Давно пользуюсь Weapon модулем, очень хороший мод!

На его основе держу сервер. Но учитывая специфику этого сервера хочу реализовать один ньюнс. Дело в том что в ХЛ не было предусмотренно ограничений по подъему оружия, у нас есть 5 слотов по 5 ячеек в каждом, и того 25 оружий игрок может нести с собой одновременно. По мне дак такое правило кажется не очень правильным.

Вопрос:
как ограничить подъем оружия, если игрок уже имеет в инвентаре это или другое оружие?

Или проще сказать:
Как сделать что бы в одном слоте можно было таскать только одну (или две, три... на усмотрение) пушку?

Читал по данному модулю мануал в википедии, но ничего схожего с моим вопросом я там не увидел (учитывая что половина тамошней информации на английском, с которым я не особо дружу, я мог просто чего то не заметить или не понять)
Самое близкое по смыслу, пожалуй, я видел wpnmod_get_weapon_count.

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

В конце концов самый оптимальный вариант, который я смог придумать это в момент спауна оружия получить наличие пушек в инвентаре игрока, и если в нем есть название определенных пушек, то просто дропнуть оружие, которые мы поднимаем. Но это немножечко не то, что я хотел бы.
Во-первых, как получить наличие оружие weapon мода в инвентаре? Стандартного оружия кс, пожалуйста, user_has_weapon...
Во-вторых, будет происходить неприятный процесс, в виде нежалетельной смены оружия в руках игрока каждый раз, когда он что то поднимает.
Хотелось бы что бы просто определенная пушка не поднималась, если у игрока есть в инвентаре другое опредленное оружие.

Есть какие то идеи как реализовать подобную идею?

Автор:  Safety1st [ 27 сен 2020, 02:08 ]
Заголовок сообщения:  Re: Одна пушка в одном слоте (или как запретить подъем оружи

russia, не очень понятно, чем конкретно тебе помочь, кроме как дать готовый плагин. Вполне реально блокировать подбор оружия по определённым правилам.

Автор:  russia [ 28 сен 2020, 22:55 ]
Заголовок сообщения:  Re: Одна пушка в одном слоте (или как запретить подъем оружи

Safety1st, ну плагин это конечно было бы здорово :D но кто станет заморачиваться его писать?

А так у меня сразу ряд вопросов:
Во-первых, как отловить косание с оружием впнмода? через RegisterHam(Ham_Touch, "armoury_entity", "Touch_Func") ? Конкретно именно так не канает.
Во-вторых, как отловить косание с конкретной пушкой (RegisterHam(Ham_Touch, "weapon_mywpn", "Touch_Func") не канает. И как быть с аммобоксом? В нем же вложено оружие, как узнать какое?
В-третьих, собственно какие условия должны быть? Если у игрока есть в инвентаре то или иное оружие, то блочим? Опять же как проверить наличие оружия у игрока в инвентаре?
Ну и пока что последнее, как заблочить подбор?

Автор:  Safety1st [ 29 сен 2020, 02:18 ]
Заголовок сообщения:  Re: Одна пушка в одном слоте (или как запретить подъем оружи

Давай разбираться)) Прежде всего мне необходимо понять твой уровень в скриптинге. Есть, что показать? :)

Автор:  russia [ 29 сен 2020, 18:39 ]
Заголовок сообщения:  Re: Одна пушка в одном слоте (или как запретить подъем оружи

Safety1st, мой уровень ниже среднего по моей оценке.

Показать могу вот такой плагин (прикрепил его к сообщению)

Его суть в том, что бы не хитрым способом отсрочить респаун в халве на определенное время (20 секунд по текущим настройкам), после чего дать "год мод" на указанное время с визуальной подцветкой (5 секунд). При том первые 40 секунд карты, респаун не отсрочивается. Как я уже говорил специфика моего сервера не приветсвует классическую "мясорубку".

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

Даю в общий доступ, берите и пользуйтесь на здоровье))

Вложения:
Скачать плагин или Скачать исходник [kill_time.sma - 5.32 КБ]
Скачиваний: 409

Автор:  Safety1st [ 29 сен 2020, 21:55 ]
Заголовок сообщения:  Re: Одна пушка в одном слоте (или как запретить подъем оружи

Мм, ты явно не ололошка, как 99% начинающих скриптеров, это хорошо :good: В данном плагине, однако, критичная недоработка: ты юзаешь FM_PlayerPreThink, только чтобы отслеживать события, которые прекрасно отслеживаются таймерами на тасках. Форвард вызывается <FPS игрока> раз в секунду, то бишь от 100 раз. Посмотри иной подход тут.

По сабжу подумаю, с чего начать в плане обучения :wink:

Автор:  russia [ 29 сен 2020, 22:21 ]
Заголовок сообщения:  Re: Одна пушка в одном слоте (или как запретить подъем оружи

Ну я же сказал что собрал этот плагин по кускам)) Данный подход я увидел в другом плагине, не сразу допер как он работает, но потом понял что эта штука постоянно обновляется и главное не забыть воткнуть "return FMRES_IGNORED"

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

Что ты там сказал про обучение? :D Я вообще то с конкретной темой пришел))

Автор:  Safety1st [ 29 сен 2020, 22:26 ]
Заголовок сообщения:  Re: Одна пушка в одном слоте (или как запретить подъем оружи

Обучение решению конкретной задачи, конечно. У меня нет мотивации ни делать из тебя супермегаскриптера, ни плагин самому писать. Я на пенсии, но кое-что могу :wink:

Автор:  russia [ 29 сен 2020, 22:32 ]
Заголовок сообщения:  Re: Одна пушка в одном слоте (или как запретить подъем оружи

Ну ок)

Давай уж тогда по порядку

russia писал(а):
Во-первых, как отловить косание с оружием впнмода? через RegisterHam(Ham_Touch, "armoury_entity", "Touch_Func") ? Конкретно именно так не канает.
Во-вторых, как отловить косание с конкретной пушкой (RegisterHam(Ham_Touch, "weapon_mywpn", "Touch_Func") не канает. И как быть с аммобоксом? В нем же вложено оружие, как узнать какое?
В-третьих, собственно какие условия должны быть? Если у игрока есть в инвентаре то или иное оружие, то блочим? Опять же как проверить наличие оружия у игрока в инвентаре?
Ну и пока что последнее, как заблочить подбор?

Автор:  Safety1st [ 29 сен 2020, 22:35 ]
Заголовок сообщения:  Re: Одна пушка в одном слоте (или как запретить подъем оружи

Не, твой порядок – фигня. Я напишу что-то полезное, когда у меня будет время.

Страница 1 из 2 Часовой пояс: UTC + 5 часов [ Летнее время ]
Powered by phpBB® Forum Software © phpBB Group
https://www.phpbb.com/