[message] Декали и с чем их едят

Сообщения
775
Реакции
293
Помог
11 раз(а)
Добрейшего времени суток. Загорелось мне чего-то переделать Gore_Ultimate на современный лад.
Но вот в чем проблема, код из плагина, а именно

Код:
fx_blood_small(origin[3],num)
{
    // Write Small splash decal
    for (new j = 0; j < num; j++)
    {
        message_begin(MSG_BROADCAST,SVC_TEMPENTITY)
        write_byte(TE_WORLDDECAL)
        write_coord(origin[0]+random_num(-100,100))
        write_coord(origin[1]+random_num(-100,100))
        write_coord(origin[2]-36)
        write_byte(blood_small_red[random_num(0,BLOOD_SM_NUM - 1)]) // index
        message_end()
    }
}
, где BLOOD_SM_NUM = 8 , а num = допустим 4

Исходя из файла decals.wad это у нас 1634240163218.png
Но к сожалению цвет у этих капель, желтый как у мочи, а перекрасить их я как понял не возможно, судя по содержанию инклуда
Код:
/**
 * Decal applied to the world brush
 *
 * @note
 * write_byte(TE_WORLDDECAL)
 * write_coord(position.x) decal position (center of texture in world)
 * write_coord(position.y)
 * write_coord(position.z)
 * write_byte(texture index of precached decal texture name)
 */
#define TE_WORLDDECAL               116
потому начал искать там же декали отрисовывающие кровь и о чудо после получаса тестов, я их нашел
1634240266183.png
Методом проб и ошибок, выяснилось что номер у этих декалий от 189 до 197
изменил код на
Код:
fx_blood_small(origin[3],num)
{
    for (new i = 0; i < num; i++)
    {
        message_begin(MSG_BROADCAST,SVC_TEMPENTITY)
        write_byte(TE_WORLDDECAL)
        write_coord(origin[0]+random_num(-100,100))
        write_coord(origin[1]+random_num(-100,100))
        write_coord(origin[2]-36)
        write_byte(random_num(189, 197)) // index
        message_end()
    }   
}
но проблема в том, что откуда ни возьмись появляется совершенно левая декаль, которая совершенно не соответствует номеру и почему-то как я понял она всегда заменяет первую.
И созревает вопрос и как же избавиться от этой проблемы

Возможно как-то плохо объяснил и потому заснял видео
https://poster.radikal.ru/2110/96/39a4fb72b726.jpg
 
Сообщения
3,593
Реакции
1,576
Помог
141 раз(а)
Уверен, что используешь верные номера? Посмотреть декали можно командой reslist decal
 
Сообщения
775
Реакции
293
Помог
11 раз(а)
Nordic Warrior, Ага, уверен.Нашел ошибку

Нужно было в
Код:
fx_blood_large(origin[3],num)
{
    for (new i = 0; i < num; i++)
    {
        message_begin(MSG_BROADCAST,SVC_TEMPENTITY)
        write_byte(TE_WORLDDECAL)
        write_coord(origin[0]+random_num(-50,50))
        write_coord(origin[1]+random_num(-50,50))
        write_coord(origin[2]-36)
        write_byte(random_num(189, 197)) // index
        message_end()
    }
}
Тоже эти декали поставить
14 Окт 2021
За команду спасибо, помогло определить, что не со 189 по 197, а с 190 по 197
 

Пользователи, просматривающие эту тему

Сейчас на форуме нет ни одного пользователя.
Сверху Снизу