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

Отследить координаты выброшенных спрайтов TE_SPRAY

Все вопросы по скриптингу для AMXX, помощь в редактировании плагинов.

Модераторы: Subb98, liFe iS GoOD

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

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

Правила при создании новой темы:
1. При вставке кода плагина необходимо использовать тег [code=php].
2. Любые изображения должны быть загружены, как вложения к вашему сообщению.
3. При описании проблемы или запросе на помощь в редактировании плагина обязательно выкладывайте исходник sma плагина.

Отследить координаты выброшенных спрайтов TE_SPRAY

Сообщение hren_morjovui » 18 апр 2019, 15:25

Можно ли отследить координаты спрайтов выброшенных при помощи

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

    message_begin
(MSG_BROADCAST, SVC_TEMPENTITY);
    {
        write_byte(TE_SPRAY);
        write_coord(start_origin[0]);
        write_coord(start_origin[1]);
        write_coord(start_origin[2] +4);
        write_coord(velocity[0]);
        write_coord(velocity[1]);
        write_coord(velocity[2] +3);
        write_short(fire_sprite_id);
        write_byte(1); //count
        write_byte(10); //speed
        write_byte(1); //noise
        write_byte(5); //rendermode
    }
    message_end();
 


если можно то подскажите как или как можно реализовать отслеживание?
"В этом мире неизбежны три вещи: смерть, налоги и гравитация."
Аватара пользователя
hren_morjovui
 
Сообщения: 258
Зарегистрирован: 29 май 2018, 09:15
Благодарил (а): 88 раз.
Поблагодарили: 22 раз.
Опыт программирования: Больше трех лет
Языки программирования: Pawn
PHP
jQuery

Re: Отследить координаты выброшенных спрайтов TE_SPRAY

Сообщение артист666 » 18 апр 2019, 18:41

Таким макаром - нет.
Через emessage_* - да.

Код: Выделить всё
public plugin_init()
{
    register_message(SVC_TEMPENTITY, "message_tempentity")
}
public message_tempentity(msgid, dest, id)
{
    if(get_msg_arg_int(1) != TE_SPRAY) return
    
    static Float
:start[3]
    start[0] = get_msg_arg_float(2)
    start[1] = get_msg_arg_float(3)
    start[2] = get_msg_arg_float(4)
    
    static Float
:end[3]
    end[0] = get_msg_arg_float(5)
    end[1] = get_msg_arg_float(6)
    end[2] = get_msg_arg_float(7)
    
    static spriteId
; spriteId = get_msg_arg_int(8)
    static count; count = get_msg_arg_int(9)
    static speed; speed = get_msg_arg_int(10)
    static noise; noise = get_msg_arg_int(11)
    static rendermode; rendermode = get_msg_arg_int(12)
    
    set_msg_arg_int
(8, ARG_BYTE, 15) 
Если вы хотите чему-то научиться, пробуйте, задавайте вопросы.
Иначе компенсируйте потраченное время на ваши "проблемы".
Аватара пользователя
артист666
 
Сообщения: 2706
Зарегистрирован: 09 апр 2013, 17:46
Благодарил (а): 284 раз.
Поблагодарили: 639 раз.
Опыт программирования: Больше трех лет
Языки программирования: С, C++
Delphi
HTML, CSS, Java Script
Pawn

Re: Отследить координаты выброшенных спрайтов TE_SPRAY

Сообщение hren_morjovui » 18 апр 2019, 19:33

артист666 писал(а):Таким макаром - нет.
Через emessage_* - да.

Код: Выделить всё
public plugin_init()
{
    register_message(SVC_TEMPENTITY, "message_tempentity")
}
public message_tempentity(msgid, dest, id)
{
    if(get_msg_arg_int(1) != TE_SPRAY) return
    
    static Float
:start[3]
    start[0] = get_msg_arg_float(2)
    start[1] = get_msg_arg_float(3)
    start[2] = get_msg_arg_float(4)
    
    static Float
:end[3]
    end[0] = get_msg_arg_float(5)
    end[1] = get_msg_arg_float(6)
    end[2] = get_msg_arg_float(7)
    
    static spriteId
; spriteId = get_msg_arg_int(8)
    static count; count = get_msg_arg_int(9)
    static speed; speed = get_msg_arg_int(10)
    static noise; noise = get_msg_arg_int(11)
    static rendermode; rendermode = get_msg_arg_int(12)
    
    set_msg_arg_int
(8, ARG_BYTE, 15) 


Спасибо! :shout:

Добавлено спустя 12 минут 56 секунд:
Я так понимаю на TE_SPRAY должно срабатывать, но ничего не происходит :dntknw: На разбитие стекла нормально проходит, на TE_SPRAY глухо :(
"В этом мире неизбежны три вещи: смерть, налоги и гравитация."
Аватара пользователя
hren_morjovui
 
Сообщения: 258
Зарегистрирован: 29 май 2018, 09:15
Благодарил (а): 88 раз.
Поблагодарили: 22 раз.
Опыт программирования: Больше трех лет
Языки программирования: Pawn
PHP
jQuery

Re: Отследить координаты выброшенных спрайтов TE_SPRAY

Сообщение артист666 » 18 апр 2019, 20:09

А что именно пробуешь отловить?
Спрайт и другим сообщением может выводиться...
Если вы хотите чему-то научиться, пробуйте, задавайте вопросы.
Иначе компенсируйте потраченное время на ваши "проблемы".
Аватара пользователя
артист666
 
Сообщения: 2706
Зарегистрирован: 09 апр 2013, 17:46
Благодарил (а): 284 раз.
Поблагодарили: 639 раз.
Опыт программирования: Больше трех лет
Языки программирования: С, C++
Delphi
HTML, CSS, Java Script
Pawn

Re: Отследить координаты выброшенных спрайтов TE_SPRAY

Сообщение hren_morjovui » 18 апр 2019, 21:30

артист666, ну из первого поста код, и не знаешь у выкидываемых спрайтов можно как-то посмотреть класснейм или отловить соприкосновение с игроком?
"В этом мире неизбежны три вещи: смерть, налоги и гравитация."
Аватара пользователя
hren_morjovui
 
Сообщения: 258
Зарегистрирован: 29 май 2018, 09:15
Благодарил (а): 88 раз.
Поблагодарили: 22 раз.
Опыт программирования: Больше трех лет
Языки программирования: Pawn
PHP
jQuery

Re: Отследить координаты выброшенных спрайтов TE_SPRAY

Сообщение артист666 » 18 апр 2019, 22:02

Из первого поста и не должен отлавливаться.
Отлавливаются только мессаги движка, и отправленные через emessage_begin.

Класснейма нет, и прикосновений тоже.
Это уже клиент рисует.
Если вы хотите чему-то научиться, пробуйте, задавайте вопросы.
Иначе компенсируйте потраченное время на ваши "проблемы".
Аватара пользователя
артист666
 
Сообщения: 2706
Зарегистрирован: 09 апр 2013, 17:46
Благодарил (а): 284 раз.
Поблагодарили: 639 раз.
Опыт программирования: Больше трех лет
Языки программирования: С, C++
Delphi
HTML, CSS, Java Script
Pawn

Re: Отследить координаты выброшенных спрайтов TE_SPRAY

Сообщение hren_morjovui » 18 апр 2019, 22:32

артист666 писал(а):Из первого поста и не должен отлавливаться.
Отлавливаются только мессаги движка, и отправленные через emessage_begin.

Класснейма нет, и прикосновений тоже.
Это уже клиент рисует.


Спасибо!
"В этом мире неизбежны три вещи: смерть, налоги и гравитация."
Аватара пользователя
hren_morjovui
 
Сообщения: 258
Зарегистрирован: 29 май 2018, 09:15
Благодарил (а): 88 раз.
Поблагодарили: 22 раз.
Опыт программирования: Больше трех лет
Языки программирования: Pawn
PHP
jQuery

Re: Отследить координаты выброшенных спрайтов TE_SPRAY

Сообщение hren_morjovui » 19 апр 2019, 10:28

Не, всё равно не то

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

    
static Float:end[3]
    
end[0] = get_msg_arg_float(5)
    
end[1] = get_msg_arg_float(6)
    
end[2] = get_msg_arg_float(7)
 


это не конечные координаты, это скорость
"В этом мире неизбежны три вещи: смерть, налоги и гравитация."
Аватара пользователя
hren_morjovui
 
Сообщения: 258
Зарегистрирован: 29 май 2018, 09:15
Благодарил (а): 88 раз.
Поблагодарили: 22 раз.
Опыт программирования: Больше трех лет
Языки программирования: Pawn
PHP
jQuery

Re: Отследить координаты выброшенных спрайтов TE_SPRAY

Сообщение артист666 » 19 апр 2019, 17:24

А, без разницы. Это всего лишь название массива. :-D
Если вы хотите чему-то научиться, пробуйте, задавайте вопросы.
Иначе компенсируйте потраченное время на ваши "проблемы".
Аватара пользователя
артист666
 
Сообщения: 2706
Зарегистрирован: 09 апр 2013, 17:46
Благодарил (а): 284 раз.
Поблагодарили: 639 раз.
Опыт программирования: Больше трех лет
Языки программирования: С, C++
Delphi
HTML, CSS, Java Script
Pawn


Вернуться в Скриптинг

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

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