25.08.2010, 03:40
Я делал эффект затемнения экрана, правильно говорять, нужен таймер, по нему плавно изменяешь альфа составляющую цвета у TextDraw, т.е. меняешь прозрачность, а когда она 0 убираешь текст, все.
Единственное что тут подсказали неправильно это время, тут нужна апперировать значениями милисекунд.
У меня за это отвечал вот такой паблик:
атрибуты:
playerid - кому показывать
bool:type - первый запуск true или изменение параметров false
aaa - стартовый цвет (0 - замтемнение, 255 наоборот с церного на полное исчезновение)
speed - скорость
чтобы скрыть экран я вызывал его со следующими параметрами OnPlayerBlackScreen(playerid,true,0,3);
Единственное что тут подсказали неправильно это время, тут нужна апперировать значениями милисекунд.
У меня за это отвечал вот такой паблик:
pawn Код:
new Text:BlackScreen[MAX_PLAYERS],BlackScreenTimer[MAX_PLAYERS];
forward OnPlayerBlackScreen(playerid,bool:type,aaa,speed);
public OnPlayerBlackScreen(playerid,bool:type,aaa,speed)
{
if(BlackScreenTimer[playerid] != -1)
{
KillTimer(BlackScreenTimer[playerid]);
BlackScreenTimer[playerid] = -1;
}
if(type)
{
if(aaa == 0)
{
BlackScreen[playerid] = TextDrawCreate(0.0, 0.0, "_");
TextDrawFont(BlackScreen[playerid], 1);
TextDrawLetterSize(BlackScreen[playerid], 0.0, 50.0);
TextDrawUseBox(BlackScreen[playerid], true);
TextDrawColor(BlackScreen[playerid], 0);
TextDrawBoxColor(BlackScreen[playerid], aaa);
TextDrawShowForPlayer(playerid,BlackScreen[playerid]);
aaa += 1;
}
else if(aaa < 255)
{
TextDrawHideForPlayer(playerid,BlackScreen[playerid]);
TextDrawBoxColor(BlackScreen[playerid], aaa);
TextDrawShowForPlayer(playerid,BlackScreen[playerid]);
aaa += 1;
}
else if(254 < aaa < 265)
{
aaa += 1;
}
else if(aaa == 265)
{
type = false;
aaa = 255;
return 1;
}
BlackScreenTimer[playerid] = SetTimerEx("OnPlayerBlackScreen",speed,0,"dddd",playerid,type,aaa,speed);
}
else
{
if(aaa > 0)
{
TextDrawHideForPlayer(playerid,BlackScreen[playerid]);
TextDrawBoxColor(BlackScreen[playerid], aaa);
TextDrawShowForPlayer(playerid,BlackScreen[playerid]);
aaa -= 1;
BlackScreenTimer[playerid] = SetTimerEx("OnPlayerBlackScreen",speed,0,"dddd",playerid,type,aaa,speed);
}
else if(aaa <= 0)
{
TextDrawHideForPlayer(playerid,BlackScreen[playerid]);
TextDrawDestroy(BlackScreen[playerid]);
}
}
return 1;
}
playerid - кому показывать
bool:type - первый запуск true или изменение параметров false
aaa - стартовый цвет (0 - замтемнение, 255 наоборот с церного на полное исчезновение)
speed - скорость
чтобы скрыть экран я вызывал его со следующими параметрами OnPlayerBlackScreen(playerid,true,0,3);