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

Advanced Health

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

Модератор: Leonidddd

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

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

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

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

Advanced Health

Сообщение kypbep » 08 ноя 2016, 18:05

Автор: Kyp`ep
Версия: 2.5
Последний раз редактировалось kypbep 29 дек 2016, 13:47, всего редактировалось 6 раз(а).
Аватара пользователя
kypbep
 
Сообщения: 7
Зарегистрирован: 22 сен 2016, 09:40
Благодарил (а): 2 раз.
Поблагодарили: 0 раз.
Опыт программирования: Около года
Языки программирования: Pawn
Html

Re: Advanced Health

Сообщение Subb98 » 08 ноя 2016, 18:29

Для первого плагина вполне себе ничего. Только замените

Код: Выделить всё
PLUGIN_HANDLED

на

Код: Выделить всё
HAM_IGNORED

или уберите вовсе return в конце обработчика (он там не нужен, в принципе). И ещё, ознакомьтесь с данной статьёй, Вы должны зарегистрироваться, чтобы видеть ссылки., с разделами "2. Последовательные отступы" и "6. Избегайте глубокой вложенности кода" в частности.
“Первый тост – за localhost!” ©
Аватара пользователя
Subb98
Модератор
 
Сообщения: 3833
Зарегистрирован: 24 мар 2011, 19:42
Откуда: г. Пермь
Благодарил (а): 1135 раз.
Поблагодарили: 1887 раз.
Опыт программирования: Больше трех лет
Языки программирования: Pawn, PHP

Re: Advanced Health

Сообщение kypbep » 08 ноя 2016, 18:45

Спасибо за совет! Стоит ли прожолжать?
Subb98 писал(а):Для первого плагина вполне себе ничего. Только замените

Код: Выделить всё
PLUGIN_HANDLED

на

Код: Выделить всё
HAM_IGNORED

или уберите вовсе return в конце обработчика (он там не нужен, в принципе). И ещё, ознакомьтесь с данной статьёй, Вы должны зарегистрироваться, чтобы видеть ссылки., с разделами "2. Последовательные отступы" и "6. Избегайте глубокой вложенности кода" в частности.
Аватара пользователя
kypbep
 
Сообщения: 7
Зарегистрирован: 22 сен 2016, 09:40
Благодарил (а): 2 раз.
Поблагодарили: 0 раз.
Опыт программирования: Около года
Языки программирования: Pawn
Html

Re: Advanced Health

Сообщение Subb98 » 08 ноя 2016, 18:47

kypbep, стоит ли продолжать писать? Всё зависит от вашего желания. Если оно есть, то да, стоит.
“Первый тост – за localhost!” ©
Аватара пользователя
Subb98
Модератор
 
Сообщения: 3833
Зарегистрирован: 24 мар 2011, 19:42
Откуда: г. Пермь
Благодарил (а): 1135 раз.
Поблагодарили: 1887 раз.
Опыт программирования: Больше трех лет
Языки программирования: Pawn, PHP

Re: Advanced Health

Сообщение Hedgehog Fog » 08 ноя 2016, 19:24

kypbep,
Не судите строго

Это фраза в твоем и многих случаях говорит о том, что человек боится критики и не заинтересован/сомневается в том, что хочет развиваться далее.

Спасибо за совет! Стоит ли прожолжать?

Что и подтверждает слова выше.

Адекватная и обоснованная критика со стороны - это лучший способ развиваться.
Так что мы будем судить строго и судить строго надо.

В любом случае я желаю тебе удачи в обучении. Ну а теперь перейдем к критике.

Во первых
cvar_health и cvar_enable - это переменные для хранения хэндлеров, а не квары.
Писать в описании нужно имя самих кваров. В твоем слуачае это "amount of health" и "Enable/Disable" что в корне неверно.

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

Таким образом для изменения этих значений в консоле нужно прописать:
Код: Выделить всё
"amount of health" "100"

что совершенно неудобно. Имена для кваров надо задать примерно такие:
  • ah_enabled
  • ah_amount_of_health
где ah - сокращение от Advanced Health.

После этого можно будет писать
Код: Выделить всё
ah_amount_of_health значение

и не парится из-за пробелов

Во вторых
Приведи отступы в порядок, а то уехавшие фигурные скобки смотрятся ужасно. Придерживайся одной стилистики оформления кода.

Во третьих
Отделяй логические блоки кода, чтоб вместо такого:
Код: Выделить всё

    RegisterHam
( Ham_Spawn, "player", "fwHamPlayerSpawnPost", 1 );
    register_plugin(PLUGIN, VERSION, AUTHOR);    
    cvar_health 
= register_cvar("amount of health", "200")
    cvar_enable = register_cvar("Enable/Disable", "1")


Было что-то вроде этого:
Код: Выделить всё

    register_plugin
(PLUGIN, VERSION, AUTHOR);

    cvar_enable = register_cvar("ah_enabled", "1");
    cvar_health = register_cvar("ah_amount_of_health", "200");

    RegisterHam(Ham_Spawn, "player", "fwHamPlayerSpawnPost", 1);


В четвертых
Сразу видно, что код делался копипастой, лишние пробелы, отсутствие точек с запятой в одних местах и их наличие в других.

В пятых
Нету никакого смысла делать return HAM_IGNORED в твоем случае.

В шестых
Я рекомендую использовать префикс "g_" для глобальных переменных. Например:
Код: Выделить всё
new g_cvar_enabled

или
Код: Выделить всё
new g_cvarEnabled
Аватара пользователя
Hedgehog Fog
 
Сообщения: 29
Зарегистрирован: 05 фев 2016, 18:15
Благодарил (а): 1 раз.
Поблагодарили: 38 раз.
Опыт программирования: Больше трех лет
Языки программирования: Pawn, С++, C#, JavaScript

Re: Advanced Health

Сообщение kypbep » 17 ноя 2016, 17:47

Hedgehog Fog,
Спасибо за адекватную критику! Посмотри есть ли что исправить?

Добавлено спустя 3 минуты 42 секунды:
И, я не знаю про точки, но я в самом редакторе делаю отступы через таб, а сюда просто вставляю все, что у меня есть в самом редакторе (utf-8 без бом я тут не кодировал).
Аватара пользователя
kypbep
 
Сообщения: 7
Зарегистрирован: 22 сен 2016, 09:40
Благодарил (а): 2 раз.
Поблагодарили: 0 раз.
Опыт программирования: Около года
Языки программирования: Pawn
Html

Re: Advanced Health

Сообщение Hedgehog Fog » 18 ноя 2016, 18:39

kypbep,
Пожалуйста.

Во первых
При возврате результата выполнения в калбэке Hamsandwich используй константы с префиксом "HAM_".

Во вторых
В твоем случае return в функции fwHamPlayerSpawnPost не нужен вовсе. Функция и так вернет 0.

В третьих
return завершает выполнение функции, так что такое:
Код: Выделить всё

if 
(g_bFuncUse[id])
{
    if (get_pcvar_num(cvar_enable))
    {
        if( is_user_alive(id) && get_user_flags(id) & ADMIN_LEVEL_A)            
        
{
            set_user_health( id, get_pcvar_num(cvar_health))
        }
    }
}
 


можно заменить на более аккуратный вариант с обратными условиями:
Код: Выделить всё

if 
(!g_bFuncUse[id])
  return;

if (!get_pcvar_num(cvar_enable))
  return;

if (!is_user_alive(id))
  return;

if (!(get_user_flags(id) & ADMIN_LEVEL_A))
  return;

set_user_health(id, get_pcvar_num(cvar_health))
 


В четвертых
Код: Выделить всё
cvar_enable = register_cvar("Enable/Disable", "1")

Как я уже говорил задавай кварам нормальные имена и используй только буквы и подчеркивания.
Так же используй префикс, который будет говорить о том, к какому конкретно плагину относится тот или иной квар.
Аватара пользователя
Hedgehog Fog
 
Сообщения: 29
Зарегистрирован: 05 фев 2016, 18:15
Благодарил (а): 1 раз.
Поблагодарили: 38 раз.
Опыт программирования: Больше трех лет
Языки программирования: Pawn, С++, C#, JavaScript

Re: Advanced Health

Сообщение kypbep » 19 ноя 2016, 20:10

Hedgehog Fog,
На счет третьего, мне просто так понятнее, что куда и т.д.
Аватара пользователя
kypbep
 
Сообщения: 7
Зарегистрирован: 22 сен 2016, 09:40
Благодарил (а): 2 раз.
Поблагодарили: 0 раз.
Опыт программирования: Около года
Языки программирования: Pawn
Html


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

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

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