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

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

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

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

    • Популярное

    Рекомендуем

    • AMX Mod X
    • up.org.ua

    Наши друзья


  • Автор: True_Hacker Дата: 9-03-2014, 09:50 Просмотров: 4212

    Что такое ResetHUD и с чем его едят

    В этом уроке я хочу рассказать что такое на самом деле ResetHUD
    Как все уже знают ResetHUD это событие которое происходит при начале/старте раунда как многие думали,я же отвечу что это не так,для начала я расскажу вам что такое HUD - худ это не 1 и не 2 обьекта HUD это целая графическая система,а именно,я лучше приведу пример на моем скриншоте
    Что такое ResetHUD и с чем его едят

    ,на скриншоте я отчетливо показал что HUD это те же самые деньги,HP,AP,Радар,всякие иконки закупки,фанарика и прочее прочее прочее,это всё вместе называют HUD,так вот теперь когда вы знаете что такое HUD я расскажу про само событие ResetHUD - событие которое вызывается когда игрок зайдя на сервер выбирает команду,он возраждается,и у него появляется HUD,теперь я разберу ошибки многих скриптеров и скажу вам что стоит делать с ResetHUD а что нет,смотрим код


    #include <amxmodx>
    #include <amxmisc>
    #unclude <cstrike>
    #include <fun>
    #include <engine>
    #include <hamsandwich>
    #include <fakemeta>

    #define PLUGIN "ResetHUD test"
    #define VERSION "1.0"
    #define AUTHOR "True_Hacker"


    public plugin_init() {
        register_plugin(PLUGIN, VERSION, AUTHOR)
        register_event("ResetHUD","hud_show","be","1=1")
    }

    public hud_show(id)
    {
        set_user_health(id, 200)
        set_user_armor(id, 200)
    }


    Вот она,та самая ошибка всех скриптеров,после появления HUD у игрока скриптеры не осознавая этого загружают HUD под завязку и тем самым может упасть сервер,или клиент у игрока,а теперь пора вам рассказать как засунуть чтото в ResetHUD и чтобы это не нагружало сервер! смотрим код

    #include <amxmodx>
    #include <amxmisc>
    #include <cstrike>
    #include <fun>
    #include <engine>
    #include <hamsandwich>
    #include <fakemeta>

    #define PLUGIN "ResetHUD test"
    #define VERSION "1.0"
    #define AUTHOR "True_Hacker"


    public plugin_init() {
        register_plugin(PLUGIN, VERSION, AUTHOR)
        register_event("ResetHUD","hud_show","be","1=1")
    }

    public hud_show(id)
    {
        set_task(3.0,"armor_and_hp",1,_,_,_,1)
    }

    public armor_and_hp(id)
    {
        set_user_health(id, 200)
        set_user_armor(id, 200)
    }


    Да,да ! тот самый set_task,благодаря ему сервер не будет нагружаться,просто ставим задержку во времени и всё,спасибо за внимание надеюсь статью не зря писал,не забываем говорить спасибо fellow
    Новость отредактировал Admin - 8-03-2014, 21:24
    Причина: Коллеги, давайте расскажем автору о его ошибках в комментариях.
    Уважаемый посетитель, Вы зашли на сайт как незарегистрированный пользователь.
    Мы рекомендуем Вам зарегистрироваться либо войти на сайт под своим именем.
    Что такое ResetHUD и с чем его едят
    Admin

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

    хм, что ни кто ни чего не знает и не видит?
    --------------------
    Subb98

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

    Даже комментировать не хочется, ибо тут и без слов всё понятно...
    Genius

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

    хм, что ни кто ни чего не знает и не видит?

    Если ты так просишь winked , то

    #include <amxmodx>
    #include <amxmisc>
    #include <cstrike>
    #include <fun>
    #include <engine>
    #include <hamsandwich>
    #include <fakemeta>

    ну это пример и не так страшно


    public armor_and_hp(id)

    А тут как я понимаю id будет всегда "1" и далее нужен цикл
    Felix_Font

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

    Консольная комманда "fullupdate" на клиенте вызывает ResetHUD.

    #include <amxmodx>
    #include <amxmisc>

    #define PLUGIN "New Plug-In"
    #define VERSION "0.1"
    #define AUTHOR "Felix_Font"


    public plugin_init() {
        register_plugin(PLUGIN, VERSION, AUTHOR)
        register_event("ResetHUD","hud_show","be","1=1")
    }

    public hud_show()
    {
        client_print(0,print_chat,"Reset HUD function open!")
    }


    Зайдите на сервер и пропишите в консоле(клиента) "fullupdate"


    public plugin_init() {
        register_plugin(PLUGIN, VERSION, AUTHOR)
        register_event("ResetHUD","hud_show","be","1=1")
    }

    public hud_show(id)
    {
        set_user_health(id, 200)
        set_user_armor(id, 200)
    }


    Шо ? Упасть сервер? Клиент?
    Только что протестил. Ничего не подвисло даже. Броня и т.д. корректно установилась.
    grisha2429

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

    Первая ошибка сколько знаю health значение должно быть дроьным а не целым
    Т.е. 200.0
    А не
    200

    Второе нет проверки-
    if(cs_get_user_team(id) != CS_TEAM_SPECTATOR)

    Если не прав- поправьте
    артист

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

    grisha2429, вроде как везде ты ошибся.
    set_user_health и set_user_armor устанавливают целые значения.

    Проверка здесь вообще не нужна, бывает худ у спектров?...

    ResetHUD
    Вызывается после старта раунда, между pre и post спавном.

    register_event("ResetHUD","hud_show","be","1=1")

    1=1 - нет параметров у него.

    Цитата: Genius
    А тут как я понимаю id будет всегда "1" и далее нужен цикл


    Правильнее в таск вместо 1 передавать id.(хотя для проверки на локалке я так иногда делаю, боты заходят позже...)

    Функция вызывается для каждого игрока, и если ещё и делать цикл по всем игрокам в таске...Тогда сервер точно залагает ))
    Не говоря о том, что код в цикле будет выполнен на каждом игроке столько раз, сколько игроков спавнится.
    grisha2429

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

    Этого не знал.ща узнал.
    True_Hacker

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

    Genius, Это у меня после разработки Zombie-Mod осталось wink

    Subb98, Раз ты такой умник angry просвети тогда !
    Subb98

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

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

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

    Букву "a" забыл )

    set_task(3.0,"armor_and_hp",1,_,_,_,1)

    >>

    set_task(3.0,"armor_and_hp",1,_,_,"a",1)

    А можно и так

    set_task(3.0,"armor_and_hp",1)

    Информация

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

Реклама