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

Lafure | Ball

Утвержденные плагины для AMX Mod X администратором/модератором форума.

Модератор: Leonidddd

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

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

Lafure | Ball

Сообщение Qruker » 26 янв 2021, 19:16

Автор: Qruker
Версия: 0.12.0-beta
Описание: Необычная версия плагина для мяча.
#include <amxmodx>
#include <amxmisc>
#include <colorchat>
#include <engine>
#include <fakemeta>
#include <lafure_lib>
#define MODEL_BALL - установленная модель на мяч.
#define SOUND_BALL - установленный звук на мяч.
#define ARRAY_BALL_SIZE - максимальный размер лимита мячей (default = 10).
- Поддержка мультиязычности. (english, русский)
- Cоздание до 10 мячей.
- Индивидуальные функции/настройки для мячей.
- Копирование настроек/функций у определённых мячей.
- Изменение гравитации у мяча.
- Изменение скорости у мяча.
- Изменение вектора отдачи от стенок.
- Установка времени при котором, мяч будет останавливаться.
- Дистанции мяча от игрока.
- Дистанции мяча: забирания у игрока; подбирания не у игрока; забирания у кручёного (тоже самое через кнопку F (bind f "impulse 100")).
- Доступ включения/выключения к забиранию/подбиранию/бросанию мяча.
- Авто-бросок нескольких видов (при подбирании; при забирании; при забирании через F; при наличии).
- Настройки кручёного мяча (схожее на граб) (скорость; время; полёт; доступы).
- Свечение мяча (RGBA - red; green; blue; alpha (alpha - размер свечения)).
/ball (чат) - открывает меню.
ball (консоль) - открывает меню.

Подбирание мяча - встать на модельку мяча.
Забирание мяча у игрока - встать на модельку мяча или использовать фонарик (bind f "impulse 100").
Бросание мяча - использовать "Использование" (bind e +use).
Использование кручёного мяча - использовать перезарядку (bind r +reload).

Если что-то не работает из данного спойлера, настройте через меню настройки/функции у мяча.

Скриншоты и всё необходимое находится в архиве.

Утверждено. //Leonidddd
У вас нет необходимых прав для просмотра вложений в этом сообщении.
Последний раз редактировалось Qruker 28 янв 2021, 12:48, всего редактировалось 2 раз(а).
Skills are no more important than reason.
Аватара пользователя
Qruker
 
Сообщения: 21
Зарегистрирован: 27 авг 2019, 18:19
Благодарил (а): 2 раз.
Поблагодарили: 4 раз.
Опыт программирования: Больше трех лет
Языки программирования: Pawn & AmxModX (CS 1.6; SA:MP)
Java
JavaScript (+HTML/CSS)
Python
C# (+Unity)

Re: Lafure | Ball

Сообщение Leonidddd » 28 янв 2021, 00:21

Qruker, client_PreThink - не лучший вариант, лучше использовать уж FM_CmdStart, включив его только тогда, когда нужно( посмотрите unregister_forward ), зачем в плагине FM_Voice_SetClientListening ?
Чтоб не мучаться с FM_CmdStart советую сделать объект юзабельным ( чтоб на него срабатывал +use ), т.е. где-то на alliedmods лежал код от Простотёмы, где он через objectcaps реализовал это, чтоб к любой энтите можно было использовать +use. 10 меню в одной ф-ции ? Разделите на несколько и добавить lang бы желательно, а то разным людям может пригодиться данный плагин, плюс
Код: Выделить всё
511 i_Len

--------------->
Код: Выделить всё
charsmax(s_Buffer)- i_Len

Просто стилистика. Вместо
Код: Выделить всё
}else if(i_Key == 2){ 

Используйте switch, хоть и в других языках эта конструкция более эффективна, чем else if, но Pawn без разницы, всё же, читабильность сразу лучше становится.. .

Код: Выделить всё
        if(i_Key == 0){
            
client_cmd(i_Index"messagemode ^"BALL GRAVITY_RECOIL^""

и т.д. копирующиеся одни и те же участки кода, смотрите, можно сделать так, создать двумерный массив и потом выводить его в стиле а ля
Код: Выделить всё
client_cmd(i_Index"messagemode ^"%s^""szMassive[iKey]);
 

Это упростит код и опять же там огромная туча }else if{, которые можно заменить на case (switch-а), чтоб упростить код. Сложно читается код, позже ещё, возможно, отпишу, что может быть ещё не так с кодом..
Аватара пользователя
Leonidddd
Модератор
 
Сообщения: 2557
Зарегистрирован: 08 апр 2012, 18:13
Откуда: г. Запорожье
Благодарил (а): 192 раз.
Поблагодарили: 718 раз.

Re: Lafure | Ball

Сообщение Qruker » 28 янв 2021, 12:39

Обновление: 0.12.0-beta

Убраны лишние/тест функции.
Переделана часть кода.
Добавлена мультиязычность (english, русский) через файл (Lafure-Ball.txt).
Skills are no more important than reason.
Аватара пользователя
Qruker
 
Сообщения: 21
Зарегистрирован: 27 авг 2019, 18:19
Благодарил (а): 2 раз.
Поблагодарили: 4 раз.
Опыт программирования: Больше трех лет
Языки программирования: Pawn & AmxModX (CS 1.6; SA:MP)
Java
JavaScript (+HTML/CSS)
Python
C# (+Unity)

Re: Lafure | Ball

Сообщение Leonidddd » 29 янв 2021, 01:19

Комментарии с 1-88 строк можно убрать, слишком много и не нужно в коде столько комментов. Лучше это уже вывести в changelist в первом посту, уже всё намного получше, но всё же client_PreThink заменить на FM_CmdStart хотя бы заменить, но в идеале через objectcaps реализовать, Вы должны зарегистрироваться, чтобы видеть ссылки..
Аватара пользователя
Leonidddd
Модератор
 
Сообщения: 2557
Зарегистрирован: 08 апр 2012, 18:13
Откуда: г. Запорожье
Благодарил (а): 192 раз.
Поблагодарили: 718 раз.


Вернуться в Утвержденные плагины

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

Сейчас этот форум просматривают: Bing [Bot] и гости: 12