Эфект плавного затемнения

pokypka20

Участник
Сообщения
244
Реакции
31
Помогите пожалуйста, возможно ли реализовать эфект плавного затемнения в конце раунда. Нашол плагин blue screen of kill, там при убийстве игрока затемняется экран но спамит ошибками. Если кто уже делал подобное или может помочь подкиньте код.

Идея плагина:
Раунд закончился, экран у игрока плавно потемнел.

Вот что я нашол:
PHP:
#include <sourcemod>
 
public Plugin:myinfo = 
{
 name = "Blue Screen of Kill",
 author = "johnspade",
 description = "The plugin fades the screen to transparent blue for a second when you kill someone",
 version = "1.0",
 url = "http://johnspade.ru"
}
// Получение события смерти
public OnPluginStart()
{
 HookEvent("player_death", Event_PlayerDeath);
}
// Функция затемнения
PerformFade(client, duration, const color[4]) {
 new Handle:hFadeClient=StartMessageOne("Fade",client)
 BfWriteShort(hFadeClient,duration)
 BfWriteShort(hFadeClient,0)
 BfWriteShort(hFadeClient,(0x0001))
 BfWriteByte(hFadeClient,color[0])
 BfWriteByte(hFadeClient,color[1])
 BfWriteByte(hFadeClient,color[2])
 BfWriteByte(hFadeClient,color[3])
 EndMessage()
}
// Получение игрока-убийцы, применение к нему функции затемнения
public Event_PlayerDeath(Handle:event, const String:name[], bool:dontBroadcast)
{
 new attacker_id = GetEventInt(event, "attacker");
 new attacker = GetClientOfUserId(attacker_id);
 PerformFade(attacker, 300, {0, 0, 200, 51});
// PerformFade(клиент, продолжительность, {красный, зеленый, синий, прозрачность})
}

Я попробовал бы переделать это изменив собитые на конец раунда, но это чюда спамит ошибками.
 

R1KO

fuck society
Сообщения
9,457
Реакции
7,786
  • Команда форума
  • #2
PHP:
#define FFADE_IN			0x0001
#define FFADE_OUT			0x0002
#define FFADE_MODULATE	0x0004
#define FFADE_STAYOUT	0x0008
#define FFADE_PURGE		0x0010

stock PerformFade(iClient, duration, bool:in)
{
	new Handle:hFadeClient = StartMessageOne("Fade", iClient);
	BfWriteShort(hFadeClient, duration);
	BfWriteShort(hFadeClient, 0);
	BfWriteShort(hFadeClient, (in) ? (FFADE_PURGE|FFADE_IN):(FFADE_PURGE|FFADE_OUT|FFADE_STAYOUT));
	BfWriteByte(hFadeClient, 0);	// fade red
	BfWriteByte(hFadeClient, 0);	// fade green
	BfWriteByte(hFadeClient, 0);	// fade blue
	BfWriteByte(hFadeClient, 255);	// fade alpha
	EndMessage();
}

// Затемнение
PerformFade(iClient, 3000, false);

// Возвращение к нормальному режиму
PerformFade(iClient, 0, true);
 

Leckter Hannibal

Участник
Сообщения
538
Реакции
182
R1KO Здравствуй .
вот такую ошибку выдал
Process started >>>
SourcePawn Compiler 1.5.3-dev+3954
Copyright (c) 1997-2006, ITB CompuPhase, (C)2004-2008 AlliedModders, LLC

zatemnenie.sp(21) : error 010: invalid function or declaration
zatemnenie.sp(21) : error 021: symbol already defined: "PerformFade"
zatemnenie.sp(24) : error 010: invalid function or declaration
zatemnenie.sp(24) : error 021: symbol already defined: "PerformFade"

4 Errors.
<<< Process finished. (Exit code 1)
================ READY ================
 

R1KO

fuck society
Сообщения
9,457
Реакции
7,786
  • Команда форума
  • #4
lecktercss, потому что ты не верно используешь.
PHP:
#include <sourcemod>
#include <sdktools>
#pragma semicolon 1

public OnPluginStart()
{
	HookEvent("round_end", Event_OnRoundEnd, EventHookMode_PostNoCopy);
	HookEvent("round_start", Event_OnRoundStart, EventHookMode_PostNoCopy);
}

public Event_OnRoundEnd(Handle:event, const String:name[], bool:dontBroadcast)
{
	for(new i=1; i <= MaxClients; i++)
	{
		if(IsClientInGame(i)) PerformFade(i, 3000, false);
	}
}

public Event_OnRoundStart(Handle:event, const String:name[], bool:dontBroadcast)
{
	for(new i=1; i <= MaxClients; i++)
	{
		if(IsClientInGame(i)) PerformFade(i, 0, true);
	}
}

#define FFADE_IN            0x0001
#define FFADE_OUT            0x0002
#define FFADE_MODULATE    0x0004
#define FFADE_STAYOUT    0x0008
#define FFADE_PURGE        0x0010

stock PerformFade(iClient, duration, bool:in)
{
    new Handle:hFadeClient = StartMessageOne("Fade", iClient);
    BfWriteShort(hFadeClient, duration);
    BfWriteShort(hFadeClient, 0);
    BfWriteShort(hFadeClient, (in) ? (FFADE_PURGE|FFADE_IN):(FFADE_PURGE|FFADE_OUT|FFADE_STAYOUT));
    BfWriteByte(hFadeClient, 0);    // fade red
    BfWriteByte(hFadeClient, 0);    // fade green
    BfWriteByte(hFadeClient, 0);    // fade blue
    BfWriteByte(hFadeClient, 255);    // fade alpha
    EndMessage();
}
 

pokypka20

Участник
Сообщения
244
Реакции
31
Работает, спасибо. Подскажите а где изменяется скорость затемнения?
 
Сверху Снизу