Плавное затухание Screen Fade

Сообщения
2,288
Реакции
1,739
Помог
31 раз(а)
Привет никак не могу увеличить длительность эффекта и плавное затухание.Эффект вообще не срабатывает. Пробовал сделать так

Код:
   {
message_begin(MSG_ONE, get_user_msgid("ScreenFade"), {0,0,0}, iKiller)
write_short(1<<36)
write_short(1<<24)
write_short(0x0001)
write_byte( 0 )
write_byte( 0 )
write_byte( 255 )
write_byte(75)
message_end()
}


в чем ошибка? первая строка как я понял длительность. вторая затухание. третья эффект . правильно ведь?
 
Сообщения
2,288
Реакции
1,739
Помог
31 раз(а)
Tranquillity, чето все равно очень быстро гаснет,хоть и увеличил значения
 
Последнее редактирование:
Сообщения
258
Реакции
262
Помог
5 раз(а)
Pokemoshka, попробуй этот код:

Код:
// Пример использования
MessageScreenFade(pTarget, FADE_IN_TIME, FADE_HOLD_TIME, FADE_OUT_TIME, FADE_COLOR, FADE_ALPHA);

Код:
// Сам код:
#define FADE_IN_TIME 2.0
#define FADE_HOLD_TIME 6.0
#define FADE_OUT_TIME 4.0
#define FADE_TIME (FADE_IN_TIME + FADE_HOLD_TIME + FADE_OUT_TIME)
#define FADE_COLOR 0, 0, 0 // цвет экрана игрока в RGB формате (по умолчанию 0, 0, 0)
#define FADE_ALPHA 255 // уровень непрозрачности экрана игрока (по умолчанию 255)
#define MESSAGE_SCREEN_FADE 98
#define FFADE_OUT 0x0001
#define FFADE_IN 0x0000

MessageScreenFade(const id, const Float:fInTime, const Float:fHoldTime, const Float:fOutTime, const iRed, const iGreen, const iBlue, const iAlpha)
{
message_begin(MSG_ONE, MESSAGE_SCREEN_FADE, _, id);
write_short(min(floatround(fInTime * 4096), 65535)); // в данном случае, short - это word, максимум ~16 секунд (без 1/4096)
write_short(65535);
write_short(FFADE_OUT);
write_byte(iRed);
write_byte(iGreen);
write_byte(iBlue);
write_byte(iAlpha);
message_end();
new aData[DATA_SCREENFADE_SIZE];
aData[DSS_OutTime] = _:fOutTime;
aData[DSS_Red] = iRed;
aData[DSS_Green] = iGreen;
aData[DSS_Blue] = iBlue;
aData[DSS_Alpha] = iAlpha;
set_task(fInTime + fHoldTime, "MessageScreenFadeOut", id, aData, sizeof aData);
}

public MessageScreenFadeOut(const aData[DATA_SCREENFADE_SIZE], const id)
{
message_begin(MSG_ONE, MESSAGE_SCREEN_FADE, _, id);
write_short(min(floatround(aData[DSS_OutTime] * 4096), 65535)); // в данном случае, short - это word, максимум ~16 секунд (без 1/4096)
write_short(0);
write_short(FFADE_IN);
write_byte(aData[DSS_Red]);
write_byte(aData[DSS_Green]);
write_byte(aData[DSS_Blue]);
write_byte(aData[DSS_Alpha]);
message_end();
}


В своё время его написал PRoSToTeM@ для моего плагина Warnings.
 
Сообщения
2,288
Реакции
1,739
Помог
31 раз(а)
Subb98, Спасибо, я конечно уже другой поставил, но все равно спасибо)
 

d3m37r4

111111
Сообщения
1,451
Реакции
1,177
Помог
10 раз(а)
Subb98, закиньте, пожалуйста пост в тему с полезным кодом, думаю будет полезно, ну и чтобы не потерялось:)
 
Сообщения
354
Реакции
73
Помог
1 раз(а)
Pokemoshka,
Привет никак не могу увеличить длительность эффекта и плавное затухание.Эффект вообще не срабатывает. Пробовал сделать так

Код:
   {
write_short(1<<36)
write_short(1<<24)

}


в чем ошибка? первая строка как я понял длительность. вторая затухание. третья эффект . правильно ведь?
write_short(3<<10)
write_short(3<<10)
 

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

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