//#define UseTeamColor; // Використовувати кольори команди. Закоментуйте, якщо хочете використовувати кольори для кожної гранати. |
#if defined UseTeamColor |
// RGB Кольори, якщо гравець грає за терористів. |
new g_iColorsTT[3] = { |
191, 130, 0 |
}; |
// RGB Кольори, якщо гравець грає за спецназівців. |
new g_iColorsCT[3] = { |
0, 130, 191 |
}; |
#else |
// RGB Кольори для гранати HE. |
new const g_szGrenadeColorHE[3] = { |
191, 130, 0 |
}; |
// RGB Кольори для гранати Flash. |
new const g_szGrenadeColorFlash[3] = { |
0, 130, 191 |
}; |
// RGB Кольори для гранати Smoke. |
new const g_szGrenadeColorSmoke[3] = { |
0, 255, 0 |
}; |
#endif |
const LIFETIME = 3; // Час життя на секундах. |
const WIDTH = 5; // Ширини лінії. |
const BRIGHTNESS = 225; // Яскравість лінії. |
/*
Благодарность: Всем в данной теме - https://dev-cs.ru/threads/34925/
Отдельное спасибо Flymic24 за готовый код.
*/
#include <amxmodx>
#include <reapi>
//#define UseTeamColor; // Использовать цвета команды. Закоментировать, если хотите использовать цвета для каждой гранаты.
new g_SpriteTrail;
// RGB Цвета, если игрок играет за террористов.
new g_iColorsTT[3] = {
191, 130, 0
};
// RGB Цвета, если игрок играет за спецназовцев.
new g_iColorsCT[3] = {
0, 130, 191
};
// RGB Цвета для гранаты HE.
new const g_szGrenadeColorHE[3] = {
191, 130, 0
};
// RGB Цвета для гранаты Flash.
new const g_szGrenadeColorFlash[3] = {
0, 130, 191
};
// RGB Цвета для гранаты Smoke.
new const g_szGrenadeColorSmoke[3] = {
0, 255, 0
};
const LIFETIME = 3; // Время жизни в секундах.
const WIDTH = 5; // Ширини линии.
const BRIGHTNESS = 225; // Яркость линии.
public plugin_precache() {
g_SpriteTrail = precache_model("sprites/smoke.spr");
}
public plugin_init() {
register_plugin("[ReAPI] Grenade Trile Like CS:GO", "1.2", "Base Code: Fatih ~ EjderYa / Edite Cod: ImmortalAmxx");
RegisterHookChain(RG_CBasePlayer_ThrowGrenade, "@CBasePlayer_TrhowGrenade_Post", true);
}
UserId, WeaponId) { (
new pGrenade = GetHookChainReturn(ATYPE_INTEGER);
if(is_nullent(pGrenade))
return HC_CONTINUE;
#if defined UseTeamColor
(get_member(UserId, m_iTeam), pGrenade, LIFETIME, WIDTH, BRIGHTNESS);
#else
(get_member(WeaponId, m_iId), pGrenade, LIFETIME, WIDTH, BRIGHTNESS);
#endif
return HC_CONTINUE;
}
iColorData, GrenadeId, LifeTime, Width, Brig) { (
new iR, iG, iB;
(iColorData, iR, iG, iB);
message_begin(MSG_BROADCAST, SVC_TEMPENTITY);
write_byte(TE_BEAMFOLLOW);
write_short(GrenadeId);
write_short(g_SpriteTrail);
write_byte(LifeTime * 10);
write_byte(Width);
write_byte(iR);
write_byte(iG);
write_byte(iB);
write_byte(Brig);
message_end();
}
iColorData, &iR, &iG, &iB) { (
switch(iColorData) {
case TEAM_TERRORIST: {
iR = g_iColorsTT[0];
iG = g_iColorsTT[1];
iB = g_iColorsTT[2];
}
case TEAM_CT: {
iR = g_iColorsCT[0];
iG = g_iColorsCT[1];
iB = g_iColorsCT[2];
}
case WEAPON_HEGRENADE: {
iR = g_szGrenadeColorHE[0];
iG = g_szGrenadeColorHE[1];
iB = g_szGrenadeColorHE[2];
}
case WEAPON_FLASHBANG: {
iR = g_szGrenadeColorFlash[0];
iG = g_szGrenadeColorFlash[1];
iB = g_szGrenadeColorFlash[2];
}
case WEAPON_SMOKEGRENADE: {
iR = g_szGrenadeColorSmoke[0];
iG = g_szGrenadeColorSmoke[1];
iB = g_szGrenadeColorSmoke[2];
}
default: {
iR = 150;
iG = 150;
iB = 150;
}
}
}