SA-MP Forums

Go Back   SA-MP Forums > Non-English > Languages > Русский/Russian

Reply
 
Thread Tools Display Modes
Old 25/11/2018, 12:34 PM   #1
Ejikin91
Little Clucker
 
Join Date: Oct 2011
Location: Moscow
Posts: 10
Reputation: 0
Default Проблема с реализацией Screen Fader'а

Ребята, привет. Реализую затухающий экран, за основу взял этот скрипт https://forum.sa-mp.com/showthread.php?t=454681

Текущий код выглядит вот так:
Code:
#define FADE_IN_SPEED 	5
#define FADE_OUT_SPEED 	5

#define RGBToHex(%0,%1,%2,%3) %0 << 24 | %1 << 16 | %2 << 8 | %3

forward Background_FadeIn(playerid, A);
forward Background_FadeOut(playerid, A);

static 
	Text:TD_Background;

public OnGameModeInit()
{
	TD_Background = TextDrawCreate(320.0, 0.0, "_");
	TextDrawUseBox(TD_Background, 1);
	TextDrawLetterSize(TD_Background, 1.0, 49.6);
	TextDrawTextSize(TD_Background, 1.0, 640.0);
	TextDrawBoxColor(TD_Background, 0x00000000);
	TextDrawAlignment(TD_Background, 2);
	return 1;
}

public Background_FadeIn(playerid, A)
{
	TextDrawBoxColor(TD_Background, RGBToHex(0,0,0,A));
	TextDrawShowForPlayer(playerid, TD_Background);
	if (A) SetTimerEx("Background_FadeIn", FADE_IN_SPEED, false, "id", playerid, A-1); else TextDrawHideForPlayer(playerid, TD_Background);
}

public Background_FadeOut(playerid, A)
{
	TextDrawBoxColor(TD_Background, RGBToHex(0,0,0,A));
	TextDrawShowForPlayer(playerid, TD_Background);
	if (A < 255) SetTimerEx("Background_FadeOut", FADE_OUT_SPEED, false, "id", playerid, A+1);
}

public OnPlayerRequestClass(playerid, classid)
{
	Background_FadeOut(playerid, 0); // Затухание экрана при подключении игрока
	return 1;
} 
public OnPlayerSpawn(playerid)
{
	Background_FadeIn(playerid, 255); // "Растухание" экрана при спавне игрока
	return 1;
}
public OnPlayerDeath(playerid, killerid, reason)
{
	Background_FadeOut(playerid, 0); // Затухание экрана при смерти игрока
	return 1;
}
Проблема: При первом запуске одной из функций Background_FadeIn или Background_FadeOut, затухание/появление происходит не плавно, с лагами (выяснил так же, что лагает примерно до 150-ой итерации альфа-канала). Последующие запуски функций происходят плавно, т.е. при спавне и смерти все хорошо.
Если убрать затухание при подключении игрока, лаги анимации произойдут при спавне, и все последующие вызовы функции будут нормальные.

В чем может быть проблема? Можно ли это как нибудь исправить?
Ejikin91 is offline   Reply With Quote
Old 25/11/2018, 05:41 PM   #2
White_116
High-roller
 
Join Date: Sep 2010
Location: Russia/116
Posts: 1,485
Reputation: 69
Default Re: Проблема с реализацией Screen Fader'а

ТЫ же в курсе что это глобальный ТД, и альфа у тебя при двух игроках будет меняться хаотично?
__________________
White_116 is offline   Reply With Quote
Old 25/11/2018, 07:29 PM   #3
Ejikin91
Little Clucker
 
Join Date: Oct 2011
Location: Moscow
Posts: 10
Reputation: 0
Default Re: Проблема с реализацией Screen Fader'а

Quote:
Originally Posted by White_116 View Post
ТЫ же в курсе что это глобальный ТД, и альфа у тебя при двух игроках будет меняться хаотично?
Да, разумеется вкурсе. Но на самом деле, все может работать на одном текстдраве, т.к. изменение TextDrawBoxColor будет видно только когда мы покажем этот текстдрав игроку через TextDrawShowForPlayer. Я тестировал эту штуку на сервере в двух окнах. На двух игроках параллельно нормально работало затухание и растухание.
В общем, пока для тестов перевел на глобальный тексдрав, чтобы посмотреть, как будет работать.
А проблема еще в оригинальном коде с PlayerTextDraw была.
Ejikin91 is offline   Reply With Quote
Old 26/11/2018, 08:23 AM   #4
White_116
High-roller
 
Join Date: Sep 2010
Location: Russia/116
Posts: 1,485
Reputation: 69
Default Re: Проблема с реализацией Screen Fader'а

Ты же в курсе, что синхра игрока составляет 40мс, это примерно 25 кадров. Зачем вызывать так часто обновление тд, пожалей траффик игроков.
__________________
White_116 is offline   Reply With Quote
Reply

Thread Tools
Display Modes

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off


Similar Threads
Thread Thread Starter Forum Replies Last Post
[Include] [INC]Screen Fader -- Supports color-to-color fades! Joe Staff Includes 98 20/11/2018 06:39 PM
[Include] Screen Colour Fader kvann Includes 18 04/10/2018 12:39 AM
Joe's fader. h4Xz0R Scripting Help 0 11/12/2013 12:02 PM
[Include] screen fader Claude_StreeT Includes 4 01/12/2012 09:54 PM
Seifader vs JS screen fader zgintasz Scripting Help 3 13/06/2012 01:19 PM


All times are GMT. The time now is 03:59 AM.


Powered by vBulletin® Version 3.8.6
Copyright ©2000 - 2019, Jelsoft Enterprises Ltd.