Главная | Комментарии | О проекте
Чтение RSS
Суперсайт
Главная Контакты Карта сайта Добавить в избранное
  • Кто OnLine

    Всего на сайте: 8
    Гостей: 4
    Пользователи: - отсутствуют
    Роботы: Yandex Bot, Yandex Bot, crawl Bot, Google AdSense

    Опрос пользователей

    Для какого мода Вы пишите плагины?

    • Популярное

    Рекомендуем

    • AMX Mod X
    • up.org.ua

    Наши друзья


  • Автор: ViniPux Дата: 14-01-2013, 14:05 Просмотров: 3872

    Детальное описание работы плагина Glow by Health

    В этой статье рассказано как работают разные функции на примере плагина Glow by Health(Изменяет подсветку игрока в зависимости от здоровья).Скриптерам,которые уже знают азы программирования думаю будет не интересно.
    И так,вот код плагина о котором шла речь.
    #include <amxmod> 
    #include <fun>

    public plugin_init(){
      register_plugin("[http://amxxmodx.ru]Glow by Health","1.1","Freecode")
      register_event("Damage","event_damage","b")
      register_event("ResetHUD","spawn","be","1=1")  
      register_cvar("amx_healthglow","1")
    }

    public spawn(id){
      if (get_cvar_num("amx_healthglow")!=1) return PLUGIN_HANDLED

      new health = get_user_health(id)
      new Float:Red = ((1.0 - (float(health) / 100.0)) * 255.0)
      new Float:Green = ((float(health) / 100.0) * 255.0)
      set_user_rendering(0, kRenderFxGlowShell,0,255,0, kRenderNormal, 40)
      set_user_rendering(id, kRenderFxGlowShell, floatround(Red), floatround(Green), 0, kRenderNormal, 40)  
      return PLUGIN_HANDLED
    }


    public event_damage(id){
      if (get_cvar_num("amx_healthglow")!=1) return PLUGIN_HANDLED
      new health = get_user_health(id)
      new Float:Red = ((1.0 - (float(health) / 100.0)) * 255.0)
      new Float:Green = ((float(health) / 100.0) * 255.0)
      set_user_rendering(id, kRenderFxGlowShell, floatround(Red), floatround(Green), 0, kRenderNormal, 40)
      return PLUGIN_HANDLED
    }


    Теперь подробно о каждом кусочке плагина:
    Функция plugin_init()

    1.
    register_plugin("[http://amxxmodx.ru]Glow by Health","1.1","Freecode") 

    Указывает Название,Версию,Автора данного плагина.
    2.
    register_event("Damage","event_damage","b")

    Регистрирует событие получения\нанесения урона
    3.
    register_event("ResetHUD","spawn","be","1=1")

    Регистрирует событие спавна игрока.
    4.
    register_cvar("amx_healthglow","1") 

    Регистрирует Квар.
    О этих функциях подробно можете почитать на данном сайте.
    Функция spawn(id)
    1.
      if (get_cvar_num("amx_healthglow")!=1) return PLUGIN_HANDLED 

    Проверка на активацию квара.Если квар amx_healthglow не равен 1,то последующий код не активируем.
    2.
      new health = get_user_health(id) 
      new Float:Red = ((1.0 - (float(health) / 100.0)) * 255.0)
      new Float:Green = ((float(health) / 100.0) * 255.0)

    Переменной health присваиваем жизни игрока.
    Далее,переменной Red и Green устанавливаем значения цвета в зависимости от того,сколько у игрока HP.
    3.
      set_user_rendering(0, kRenderFxGlowShell,0,255,0, kRenderNormal, 40)

    Честно говоря не вижу смысла в этой строке,она устанавливает всем игрокам зеленое свечение.
    4.
      set_user_rendering(id, kRenderFxGlowShell, floatround(Red), floatround(Green), 0, kRenderNormal, 40)  

    А вот тут уже устанавливаем свечение в соответствии с жизнями игрока.
    5.
      return PLUGIN_HANDLED 

    Что-бы компилятор не ругался,возвращаем PLUGIN_HANDLED
    В функции event_damage(id) код аналогичен,думаю нет смысла его описывать.
    Описание:
    При нанесении урона, проверяется квар,получается здоровье игрока,генерируется случайный цвет Red,green и устанавливается свечение.
    На этом мое небольшое описание плагина заканчиваю.
    Если вам была полезна статья,пишите в комментариях,буду писать еще.
    Если есть вопросы тоже просьба писать в комментарии.
    Уважаемый посетитель, Вы зашли на сайт как незарегистрированный пользователь.
    Мы рекомендуем Вам зарегистрироваться либо войти на сайт под своим именем.
    Детальное описание работы плагина Glow by Health
    panov

    --
    ICQ: --
    Публикаций: 0
    Комментариев: 0
    Репутация: -  0  +

    очень тяжело, но спс!
    Valer4

    --
    ICQ: --
    Публикаций: 0
    Комментариев: 0
    Репутация: -  0  +

    Переменной health присваиваем жизни игрока. - Не присваиваем,а получаем. Без обид)
    артист

    --
    ICQ: --
    Публикаций: 0
    Комментариев: 0
    Репутация: -  0  +

    Акула скриптинга ))

    get_user_health(id) - получаем.
    А переменной присваиваем.
    Valer4

    --
    ICQ: --
    Публикаций: 0
    Комментариев: 0
    Репутация: -  0  +

    артист,
    Я написал, мапменеджер, афкменеджер, античит - антиспидхак&антифастфайре, причём они лучше всех аналогов, плагин для рекконекта, который в инфе сервера пишет список игроков как на сервере на который делает рекконект и карту меняет на такую же и многое другое, а у тебя ума хватает только ничтожные ошибки замечать. Учись детка)))
    артист

    --
    ICQ: --
    Публикаций: 0
    Комментариев: 0
    Репутация: -  0  +

    Пфф...Я аж с кресла упал, как увидел сколько пользы ты принёс этому миру))
    Молодец.
    По моему это ты мастер замечать ошибки (которых нет...)
    Admin

    30.07.2011
    ICQ: 980500
    Публикаций: 507
    Комментариев: 333
    Репутация: -  56  +

    Лучше бы оба написали по материалу и мерились их популярностью, а не голословием.
    --------------------
    артист

    --
    ICQ: --
    Публикаций: 0
    Комментариев: 0
    Репутация: -  0  +

    Я добавлял, целую "статью" , модерацию не прошла wink

    Информация

    Посетители, находящиеся в группе Гости, не могут оставлять комментарии к данной публикации.
Наверх

Реклама