[CS:GO]Эффект искр

ToniWaor

Участник
Сообщения
76
Реакции
24
Зашел на сервак увидел эффект искр при попаданий пуль, оказалось что это плагин myjb ну и захотел такой эффект себе на сервер, но т.к. myjb мне не нужен решил вырезать часть кода с этим эффектом оттуда и засунуть в модуль випки от рико.

PHP:
#pragma semicolon 1
#include <sourcemod>
#include <sdktools>
#include <vip_core>

public Plugin:myinfo =
{
    name = "[VIP] Electro Effects",
    author = "R1KO",
    version = "1.0.2"
};

new const String:g_sFeature[] = "ElectroEffects";

public OnPluginStart()
{
    HookEvent("player_death", Event_OnPlayerDeath);
    HookEvent("bullet_impact", Event_OnBulletImpact);
}

public VIP_OnVIPLoaded()
{
    VIP_RegisterFeature(g_sFeature, BOOL);
}

public Event_OnBulletImpact(Handle:hEvent, const String:name[], bool:silent)
{
    new iClient = GetClientOfUserId(GetEventInt(hEvent, "userid"));
    if(iClient && VIP_IsClientVIP(iClient) && VIP_IsClientFeatureUse(iClient, g_sFeature))
    {
        decl Float:fPos[3];
        fPos[0] = GetEventFloat(hEvent, "x");
        fPos[1] = GetEventFloat(hEvent, "y");
        fPos[2] = GetEventFloat(hEvent, "z");

        Func_EnergySplash(fPos);
    }
}

public Event_OnPlayerDeath(Handle:hEvent, const String:name[], bool:silent)
{
    new iAttacker = GetClientOfUserId(GetEventInt(hEvent, "attacker")),
        iClient = GetClientOfUserId(GetEventInt(hEvent, "userid"));

    if(iAttacker && iClient && iAttacker != iClient && VIP_IsClientVIP(iAttacker) && VIP_IsClientFeatureUse(iAttacker, g_sFeature))
    {
        decl Float:fPos[3];
        GetClientAbsOrigin(iClient, fPos);
        Func_Sparks(fPos);
    }
}

Func_EnergySplash(Float:fPos[3])
{
    decl Float:fEndPos[3];
    fEndPos[0] = fPos[0] + 500;
    fEndPos[1] = fPos[1] - 500;
    fEndPos[2] = fPos[2] + 1000;

    TE_SetupSparks(fPos, fEndPos, 2500, 500);
    TE_SendToAll();
}

Func_Sparks(const Float:fPos[3])
{
    new iSparks = CreateEntityByName("env_spark");
    DispatchKeyValue(iSparks, "beamcount_min", "20");
    DispatchKeyValue(iSparks, "beamcount_max", "30");
    DispatchKeyValue(iSparks, "lifetime_min", "1.0");
    DispatchKeyValue(iSparks, "lifetime_max", "2.0");
    DispatchKeyValue(iSparks, "m_flRadius", "500.0");
    DispatchKeyValue(iSparks, "m_SoundName", "DoSpark");
    DispatchKeyValue(iSparks, "texture", "particle/sparks/sparks.vmt");
    DispatchKeyValue(iSparks, "m_Color", "255 0 0");
    DispatchKeyValue(iSparks, "thick_min", "15.0");
    DispatchKeyValue(iSparks, "thick_max", "25.0");
    DispatchKeyValue(iSparks, "interval_min", "1.2");
    DispatchKeyValue(iSparks, "interval_max", "2.4");

    DispatchSpawn(iSparks);
    TeleportEntity(iSparks, fPos, NULL_VECTOR, NULL_VECTOR);
    AcceptEntityInput(iSparks, "TurnOn");
    AcceptEntityInput(iSparks, "DoSpark");
}


Вот как я хотел бы что бы это было.

y_aSS4UyXAI.jpg

Bzxq9lsXxto.jpg

Как получилось в итоге

gcZI1RkcGpk.jpg
bhW-8ctitTE.jpg

Как видно в оригинале они разлетаются в стороны, а у меня якорем в низ... не могли бы вы помочь ?
 
Последнее редактирование:

ToniWaor

Участник
Сообщения
76
Реакции
24
вот что я понял из того плагина


PHP:
decl Float:fEndPos[3];
    fEndPos[0] = fPos[0] + 500;
    fEndPos[1] = fPos[1] - 500;
    fEndPos[2] = fPos[2] + 1000;
тут должен быть рандом но как его реализовать я не знаю.

PHP:
// get random numbers for the x and y starting positions
    int randomx = GetRandomInt(-500, 500);
    int randomy = GetRandomInt(-500, 500);

    // define where the lightning strike starts
    float startpos[3];
    startpos[0] = clientpos[0] + randomx;
    startpos[1] = clientpos[1] + randomy;
    startpos[2] = clientpos[2] + 800;

Так в оригинале, пробовал перенести, не вышло.
 

R1KO

fuck society
Сообщения
9,457
Реакции
7,786
  • Команда форума
  • #6
PHP:
float randomx = GetRandomFloat(-500.0, 500.0);
float randomy = GetRandomFloat(-500, 500);
 

teran

Участник
Сообщения
207
Реакции
44
мне кажется было бы неплохо вообще сделать отдельный модуль на эту тему
Я думаю, лучше засунуть "Искры" в модуль "Electro Effects" для випки от Рико. Чтобы можно было выбрать либо молнии, либо искры.
 

Drumanid

Нестандартное звание
Сообщения
1,862
Реакции
1,748
PHP:
/*
    Based on this plugins :
    Admin Smite 2.1 : https://forums.alliedmods.net/showthread.php?p=1086127
    Tracer Effects v 1.2.8 : https://forums.alliedmods.net/showthread.php?t=142046
*/

#pragma semicolon 1

#include <sourcemod>
#include <sdktools>

#define SOUND "ambient/explosions/explode_9.wav"

int g_SmokeSprite;
int g_LightningSprite;

Handle Cvar_Enabled = null;
Handle Cvar_Sound = null;
Handle Cvar_Beam = null;
Handle Cvar_Sparks = null;
Handle Cvar_EnergySplash = null;
Handle Cvar_Smoke = null;

int Enabled;
int Sound;
int Beam;
int Sparks;
int EnergySplash;
int Smoke;

public Plugin myinfo = 
{
    name = "AWP Zeus lightning bullets",
    author = "Hipster/Panduh (AlliedMods: thetwistedpanda)/TheBadTurtle(kupah)",
    description = "AWP OF ZEUS!!!!",
    version = "1.0",
    url = "https://forums.alliedmods.net/showthread.php?t=279827"
};

public void OnPluginStart() {
    HookEvent("bullet_impact", BulletImpact);

    Cvar_Enabled = CreateConVar("AWP_lightning_bullets_enable", "1", "Enables/disables lightning bullets");
    Enabled = GetConVarInt(Cvar_Enabled);
   
    Cvar_Sound = CreateConVar("AWP_lightning_bullets_sound", "1", "Enable/disable lightning bullets explode sound");
    Sound = GetConVarInt(Cvar_Sound);
   
    Cvar_Beam = CreateConVar("AWP_lightning_bullets_beam", "1", "Enable/disable lightning bullets beam");
    Beam = GetConVarInt(Cvar_Beam);
   
    Cvar_Sparks = CreateConVar("AWP_lightning_bullets_sparks", "1", "Enable/disable lightning bullets sparks");
    Sparks = GetConVarInt(Cvar_Sparks);
   
    Cvar_EnergySplash = CreateConVar("AWP_lightning_bullets_energy_splash", "1", "Enable/disable lightning bullets energy splash");
    EnergySplash = GetConVarInt(Cvar_EnergySplash);
   
    Cvar_Smoke = CreateConVar("AWP_lightning_bullets_smoke", "1", "Enable/disable lightning bullets smoke");
    Smoke = GetConVarInt(Cvar_Smoke);
   
    HookConVarChange(Cvar_Enabled, OnCvarChange);
    HookConVarChange(Cvar_Sound, OnCvarChange);
    HookConVarChange(Cvar_Beam, OnCvarChange);
    HookConVarChange(Cvar_Sparks, OnCvarChange);
    HookConVarChange(Cvar_EnergySplash, OnCvarChange);
    HookConVarChange(Cvar_Smoke, OnCvarChange);
   
    AutoExecConfig(true, "AWP_lightning_bullets");
}

public OnCvarChange(Handle:cvar, const String:oldvalue[], const String:newvalue[])
{
    if(cvar == Cvar_Enabled)
        Enabled = StringToInt(newvalue);
    if(cvar == Cvar_Sound)
        Sound = StringToInt(newvalue);
    if(cvar == Cvar_Beam)
        Beam = StringToInt(newvalue);
    if(cvar == Cvar_Sparks)
        Sparks = StringToInt(newvalue);
    if(cvar == Cvar_EnergySplash)
        EnergySplash = StringToInt(newvalue);
    if(cvar == Cvar_Smoke)
        Smoke = StringToInt(newvalue);
}

public void OnMapStart() {
    PrecacheSound(SOUND, true);
    g_SmokeSprite = PrecacheModel("sprites/steam1.vmt");
    g_LightningSprite = PrecacheModel("sprites/lgtning.vmt");
}

public int BulletImpact(Handle:event,const String:name[],bool:dontBroadcast) {
    if(Enabled == 1) {
        int client = GetClientOfUserId(GetEventInt(event, "userid"));
       
        char weaponname[64];
        GetClientWeapon(client, weaponname, sizeof(weaponname));
           
        if (StrEqual(weaponname, "weapon_awp")) {
            float fPosition[3];
            float fImpact[3];
            float fDifference[3];
               
            GetClientEyePosition(client, fPosition);
            fImpact[0] = GetEventFloat(event, "x");
            fImpact[1] = GetEventFloat(event, "y");
            fImpact[2] = GetEventFloat(event, "z");
           
            float fDistance = GetVectorDistance(fPosition, fImpact);
            float fPercent = (0.4 / (fDistance / 100.0));
           
            fDifference[0] = fPosition[0] + ((fImpact[0] - fPosition[0]) * fPercent);
            fDifference[1] = fPosition[1] + ((fImpact[1] - fPosition[1]) * fPercent) - 0.08;
            fDifference[2] = fPosition[2] + ((fImpact[2] - fPosition[2]) * fPercent);
               
            int color[4] =  { 255, 255, 255, 255 };
               
            float dir[3] = {0.0, 0.0, 0.0};
               
            if(Beam == 1) {
                TE_SetupBeamPoints(fDifference, fImpact, g_LightningSprite, 0, 0, 0, 0.2, 20.0, 10.0, 0, 1.0, color, 3);
                TE_SendToAll();
            }
            if(Sparks == 1) {
                TE_SetupSparks(fImpact, dir, 5000, 1000);
                TE_SendToAll();
            }
            if(EnergySplash == 1) {
                TE_SetupEnergySplash(fImpact, dir, false);
                TE_SendToAll();
            }
            if(Smoke == 1) {
                TE_SetupSmoke(fImpact, g_SmokeSprite, 5.0, 10);
                TE_SendToAll();
            }
               
            if(Sound == 1)
                EmitAmbientSound(SOUND, fImpact, client, SNDLEVEL_RAIDSIREN);
        }
    }
}

 

ToniWaor

Участник
Сообщения
76
Реакции
24
PHP:
/*
    Based on this plugins :
    Admin Smite 2.1 : https://forums.alliedmods.net/showthread.php?p=1086127
    Tracer Effects v 1.2.8 : https://forums.alliedmods.net/showthread.php?t=142046
*/

#pragma semicolon 1

#include <sourcemod>
#include <sdktools>

#define SOUND "ambient/explosions/explode_9.wav"

int g_SmokeSprite;
int g_LightningSprite;

Handle Cvar_Enabled = null;
Handle Cvar_Sound = null;
Handle Cvar_Beam = null;
Handle Cvar_Sparks = null;
Handle Cvar_EnergySplash = null;
Handle Cvar_Smoke = null;

int Enabled;
int Sound;
int Beam;
int Sparks;
int EnergySplash;
int Smoke;

public Plugin myinfo =
{
    name = "AWP Zeus lightning bullets",
    author = "Hipster/Panduh (AlliedMods: thetwistedpanda)/TheBadTurtle(kupah)",
    description = "AWP OF ZEUS!!!!",
    version = "1.0",
    url = "https://forums.alliedmods.net/showthread.php?t=279827"
};

public void OnPluginStart() {
    HookEvent("bullet_impact", BulletImpact);

    Cvar_Enabled = CreateConVar("AWP_lightning_bullets_enable", "1", "Enables/disables lightning bullets");
    Enabled = GetConVarInt(Cvar_Enabled);
  
    Cvar_Sound = CreateConVar("AWP_lightning_bullets_sound", "1", "Enable/disable lightning bullets explode sound");
    Sound = GetConVarInt(Cvar_Sound);
  
    Cvar_Beam = CreateConVar("AWP_lightning_bullets_beam", "1", "Enable/disable lightning bullets beam");
    Beam = GetConVarInt(Cvar_Beam);
  
    Cvar_Sparks = CreateConVar("AWP_lightning_bullets_sparks", "1", "Enable/disable lightning bullets sparks");
    Sparks = GetConVarInt(Cvar_Sparks);
  
    Cvar_EnergySplash = CreateConVar("AWP_lightning_bullets_energy_splash", "1", "Enable/disable lightning bullets energy splash");
    EnergySplash = GetConVarInt(Cvar_EnergySplash);
  
    Cvar_Smoke = CreateConVar("AWP_lightning_bullets_smoke", "1", "Enable/disable lightning bullets smoke");
    Smoke = GetConVarInt(Cvar_Smoke);
  
    HookConVarChange(Cvar_Enabled, OnCvarChange);
    HookConVarChange(Cvar_Sound, OnCvarChange);
    HookConVarChange(Cvar_Beam, OnCvarChange);
    HookConVarChange(Cvar_Sparks, OnCvarChange);
    HookConVarChange(Cvar_EnergySplash, OnCvarChange);
    HookConVarChange(Cvar_Smoke, OnCvarChange);
  
    AutoExecConfig(true, "AWP_lightning_bullets");
}

public OnCvarChange(Handle:cvar, const String:oldvalue[], const String:newvalue[])
{
    if(cvar == Cvar_Enabled)
        Enabled = StringToInt(newvalue);
    if(cvar == Cvar_Sound)
        Sound = StringToInt(newvalue);
    if(cvar == Cvar_Beam)
        Beam = StringToInt(newvalue);
    if(cvar == Cvar_Sparks)
        Sparks = StringToInt(newvalue);
    if(cvar == Cvar_EnergySplash)
        EnergySplash = StringToInt(newvalue);
    if(cvar == Cvar_Smoke)
        Smoke = StringToInt(newvalue);
}

public void OnMapStart() {
    PrecacheSound(SOUND, true);
    g_SmokeSprite = PrecacheModel("sprites/steam1.vmt");
    g_LightningSprite = PrecacheModel("sprites/lgtning.vmt");
}

public int BulletImpact(Handle:event,const String:name[],bool:dontBroadcast) {
    if(Enabled == 1) {
        int client = GetClientOfUserId(GetEventInt(event, "userid"));
      
        char weaponname[64];
        GetClientWeapon(client, weaponname, sizeof(weaponname));
          
        if (StrEqual(weaponname, "weapon_awp")) {
            float fPosition[3];
            float fImpact[3];
            float fDifference[3];
              
            GetClientEyePosition(client, fPosition);
            fImpact[0] = GetEventFloat(event, "x");
            fImpact[1] = GetEventFloat(event, "y");
            fImpact[2] = GetEventFloat(event, "z");
          
            float fDistance = GetVectorDistance(fPosition, fImpact);
            float fPercent = (0.4 / (fDistance / 100.0));
          
            fDifference[0] = fPosition[0] + ((fImpact[0] - fPosition[0]) * fPercent);
            fDifference[1] = fPosition[1] + ((fImpact[1] - fPosition[1]) * fPercent) - 0.08;
            fDifference[2] = fPosition[2] + ((fImpact[2] - fPosition[2]) * fPercent);
              
            int color[4] =  { 255, 255, 255, 255 };
              
            float dir[3] = {0.0, 0.0, 0.0};
              
            if(Beam == 1) {
                TE_SetupBeamPoints(fDifference, fImpact, g_LightningSprite, 0, 0, 0, 0.2, 20.0, 10.0, 0, 1.0, color, 3);
                TE_SendToAll();
            }
            if(Sparks == 1) {
                TE_SetupSparks(fImpact, dir, 5000, 1000);
                TE_SendToAll();
            }
            if(EnergySplash == 1) {
                TE_SetupEnergySplash(fImpact, dir, false);
                TE_SendToAll();
            }
            if(Smoke == 1) {
                TE_SetupSmoke(fImpact, g_SmokeSprite, 5.0, 10);
                TE_SendToAll();
            }
              
            if(Sound == 1)
                EmitAmbientSound(SOUND, fImpact, client, SNDLEVEL_RAIDSIREN);
        }
    }
}

Если бы мне это что-то дало, совсем не смыслю в скриптах.
 

ToniWaor

Участник
Сообщения
76
Реакции
24
Спасибо, скомпилровать я бы не осилил...
Я просил что бы помогли добавить эффект в модуль випки, а не отдельный плагин. Понятно бы было если бы я шарил(вырезал бы нужные куски и всунул), но я не шарю :ab:
--- Добавлено позже ---
Кто-нибудь ? :unknw:
 
Последнее редактирование:

AlmazON

Не путать с самим yand3xmail
Сообщения
5,099
Реакции
2,755
Последнее редактирование:

AzOne

Участник
Сообщения
12
Реакции
0
Я не очень понял всё написанное, но возможно ли сделать это отдельным плагином для sourcemod`а?
 

AlmazON

Не путать с самим yand3xmail
Сообщения
5,099
Реакции
2,755
отдельным плагином для sourcemod`а
PHP:
#pragma semicolon 1
#include <sourcemod>
#include <sdktools>

#pragma newdecls required

public Plugin myinfo =
{
	name = "Electro Effects",
	author = "R1KO & AlmazON",
	version = "1.0.2NotVip",
	url = "http://hlmod.ru"
};

public void OnPluginStart()
{
	HookEvent("player_death", Event_OnPlayerDeath);
	HookEvent("bullet_impact", Event_OnBulletImpact);
}

public void Event_OnBulletImpact(Event event, const char[] name, bool silent)
{
	static float fPos[3];
	fPos[0] = event.GetFloat("x");
	fPos[1] = event.GetFloat("y");
	fPos[2] = event.GetFloat("z");
	Func_EnergySplash(fPos);
}

public void Event_OnPlayerDeath(Event event, const char[] name, bool silent)
{
	int iAttacker = GetClientOfUserId(event.GetInt("attacker"));
	if(iAttacker)
	{
		int iClient = GetClientOfUserId(event.GetInt("userid"));
		if(iAttacker != iClient)
		{
			float fPos[3];
			GetClientAbsOrigin(iClient, fPos);
			Func_Sparks(fPos);
		}
	}
}

void Func_EnergySplash(const float fPos[3])
{
	TE_SetupSparks(fPos, view_as<float>({0.0, 0.0, 0.0}), 5000, 1000);
	TE_SendToAll();
}

void Func_Sparks(const float fPos[3])
{
    int iSparks = CreateEntityByName("env_spark");
    DispatchKeyValue(iSparks, "beamcount_min", "20");
    DispatchKeyValue(iSparks, "beamcount_max", "30");
    DispatchKeyValue(iSparks, "lifetime_min", "1.0");
    DispatchKeyValue(iSparks, "lifetime_max", "2.0");
    DispatchKeyValue(iSparks, "m_flRadius", "500.0");
    DispatchKeyValue(iSparks, "m_SoundName", "DoSpark");
    DispatchKeyValue(iSparks, "texture", "particle/sparks/sparks.vmt");
    DispatchKeyValue(iSparks, "m_Color", "255 0 0");
    DispatchKeyValue(iSparks, "thick_min", "15.0");
    DispatchKeyValue(iSparks, "thick_max", "25.0");
    DispatchKeyValue(iSparks, "interval_min", "1.2");
    DispatchKeyValue(iSparks, "interval_max", "2.4");

    DispatchSpawn(iSparks);
    TeleportEntity(iSparks, fPos, NULL_VECTOR, NULL_VECTOR);
    AcceptEntityInput(iSparks, "TurnOn");
    AcceptEntityInput(iSparks, "DoSpark");
}
 

AzOne

Участник
Сообщения
12
Реакции
0
А можно готовые smx\sp файлы?
Спасибо.
--- Добавлено позже ---
Спойлер: Electro Effects v1.0.2NotVip
спасибо, разобрался
--- Добавлено позже ---
Спойлер: Electro Effects v1.0.2NotVip
А можно его переписать, что бы искры летели только с "пули" зевса?
 
Последнее редактирование:

AlmazON

Не путать с самим yand3xmail
Сообщения
5,099
Реакции
2,755
только с "пули" зевса
PHP:
#pragma semicolon 1
#include <sourcemod>
#include <sdktools>

#pragma newdecls required

public Plugin myinfo =
{
    name = "Electro Effects - Zeus",
    author = "R1KO & AlmazON",
    version = "1.0.2NotVip",
    url = "http://hlmod.ru"
};

public void OnPluginStart()
{
    HookEvent("player_death", Event_OnPlayerDeath);
    HookEvent("bullet_impact", Event_OnBulletImpact);
}

public void Event_OnBulletImpact(Event event, const char[] name, bool silent)
{
    static char weapon[14];
    GetClientWeapon(GetClientOfUserId(event.GetInt("userid")), weapon, sizeof(weapon));
    if(strcmp(weapon, "weapon_taser") == 0)
    {
        static float fPos[3];
        fPos[0] = event.GetFloat("x");
        fPos[1] = event.GetFloat("y");
        fPos[2] = event.GetFloat("z");
        Func_EnergySplash(fPos);
    }
}

public void Event_OnPlayerDeath(Event event, const char[] name, bool silent)
{
    int iAttacker = GetClientOfUserId(event.GetInt("attacker"));
    if(iAttacker)
    {
        int iClient = GetClientOfUserId(event.GetInt("userid"));
        if(iAttacker != iClient)
        {
            float fPos[3];
            GetClientAbsOrigin(iClient, fPos);
            Func_Sparks(fPos);
        }
    }
}

void Func_EnergySplash(const float fPos[3])
{
    TE_SetupSparks(fPos, view_as<float>({0.0, 0.0, 0.0}), 5000, 1000);
    TE_SendToAll();
}

void Func_Sparks(const float fPos[3])
{
    int iSparks = CreateEntityByName("env_spark");
    DispatchKeyValue(iSparks, "beamcount_min", "20");
    DispatchKeyValue(iSparks, "beamcount_max", "30");
    DispatchKeyValue(iSparks, "lifetime_min", "1.0");
    DispatchKeyValue(iSparks, "lifetime_max", "2.0");
    DispatchKeyValue(iSparks, "m_flRadius", "500.0");
    DispatchKeyValue(iSparks, "m_SoundName", "DoSpark");
    DispatchKeyValue(iSparks, "texture", "particle/sparks/sparks.vmt");
    DispatchKeyValue(iSparks, "m_Color", "255 0 0");
    DispatchKeyValue(iSparks, "thick_min", "15.0");
    DispatchKeyValue(iSparks, "thick_max", "25.0");
    DispatchKeyValue(iSparks, "interval_min", "1.2");
    DispatchKeyValue(iSparks, "interval_max", "2.4");

    DispatchSpawn(iSparks);
    TeleportEntity(iSparks, fPos, NULL_VECTOR, NULL_VECTOR);
    AcceptEntityInput(iSparks, "TurnOn");
    AcceptEntityInput(iSparks, "DoSpark");
}
При убийстве - для любого оружия.
 

Ice_Sochi

Участник
Сообщения
709
Реакции
413
PHP:
#pragma semicolon 1
#include <sourcemod>
#include <sdktools>

#pragma newdecls required

public Plugin myinfo =
{
    name = "Electro Effects",
    author = "R1KO & AlmazON",
    version = "1.0.2NotVip",
    url = "http://hlmod.ru"
};

public void OnPluginStart()
{
    HookEvent("player_death", Event_OnPlayerDeath);
    HookEvent("bullet_impact", Event_OnBulletImpact);
}

public void Event_OnBulletImpact(Event event, const char[] name, bool silent)
{
    static float fPos[3];
    fPos[0] = event.GetFloat("x");
    fPos[1] = event.GetFloat("y");
    fPos[2] = event.GetFloat("z");
    Func_EnergySplash(fPos);
}

public void Event_OnPlayerDeath(Event event, const char[] name, bool silent)
{
    int iAttacker = GetClientOfUserId(event.GetInt("attacker"));
    if(iAttacker)
    {
        int iClient = GetClientOfUserId(event.GetInt("userid"));
        if(iAttacker != iClient)
        {
            float fPos[3];
            GetClientAbsOrigin(iClient, fPos);
            Func_Sparks(fPos);
        }
    }
}

void Func_EnergySplash(const float fPos[3])
{
    TE_SetupSparks(fPos, view_as<float>({0.0, 0.0, 0.0}), 5000, 1000);
    TE_SendToAll();
}

void Func_Sparks(const float fPos[3])
{
    int iSparks = CreateEntityByName("env_spark");
    DispatchKeyValue(iSparks, "beamcount_min", "20");
    DispatchKeyValue(iSparks, "beamcount_max", "30");
    DispatchKeyValue(iSparks, "lifetime_min", "1.0");
    DispatchKeyValue(iSparks, "lifetime_max", "2.0");
    DispatchKeyValue(iSparks, "m_flRadius", "500.0");
    DispatchKeyValue(iSparks, "m_SoundName", "DoSpark");
    DispatchKeyValue(iSparks, "texture", "particle/sparks/sparks.vmt");
    DispatchKeyValue(iSparks, "m_Color", "255 0 0");
    DispatchKeyValue(iSparks, "thick_min", "15.0");
    DispatchKeyValue(iSparks, "thick_max", "25.0");
    DispatchKeyValue(iSparks, "interval_min", "1.2");
    DispatchKeyValue(iSparks, "interval_max", "2.4");

    DispatchSpawn(iSparks);
    TeleportEntity(iSparks, fPos, NULL_VECTOR, NULL_VECTOR);
    AcceptEntityInput(iSparks, "TurnOn");
    AcceptEntityInput(iSparks, "DoSpark");
}
Данный код на ксс будет работать?
 
Сверху Снизу