Некоторые, можете ли вы объединить эти два плагина?
Добавьте этот код ко второму коду, который я дал. TrailColor, добавьте в rpg_color.
Код:
#include <amxmodx>
#include <fakemeta>
#define PLUGIN "Trail Color"
#define VERSION "0.9"
#define AUTHOR "LetiLetiLepestok"
// 08.05.2012
new g_Colors[5][4] =
{
{0, 0, 0, 0},
{80, 80, 255, 255}, // color for team 1
{255, 80, 80, 255}, // color for team 2
{200, 200, 80, 255}, // color for team 3
{80, 200, 80, 255} // color for team 4
}
new g_pcvar_mode
new g_pcvar_colors[2]
new g_user_colors[2][4]
public plugin_init()
{
register_plugin(PLUGIN, VERSION, AUTHOR)
register_message(SVC_TEMPENTITY, "MessageTempEntity")
g_pcvar_mode = register_cvar("tc_mode", "2") // 1 - random colors; 2 - team colors; 3 - usercolors
g_pcvar_colors[0] = register_cvar("tc_rpg", "255 255 0 128") // user ccolors "<red 0..255> <green 0..255> <blue 0..255> <brightness 0..255>"
g_pcvar_colors[1] = register_cvar("tc_hornet", "0 255 100 128") // user ccolors "<red 0..255> <green 0..255> <blue 0..255> <brightness 0..255>"
register_srvcmd("tc_refresh", "get_cvars")
get_cvars()
}
public get_cvars()
{
new text[32]
new strs[4][8]
for(new i = 0; i < sizeof g_pcvar_colors; i++)
{
get_pcvar_string(g_pcvar_colors[i], text, 31)
parse(text, strs[0], 7, strs[1], 7, strs[2], 7, strs[3], 7)
g_user_colors[i][0] = clamp(str_to_num(strs[0]), 0, 255)
g_user_colors[i][1] = clamp(str_to_num(strs[1]), 0, 255)
g_user_colors[i][2] = clamp(str_to_num(strs[2]), 0, 255)
g_user_colors[i][3] = clamp(str_to_num(strs[3]), 0, 255)
}
}
public MessageTempEntity()
{
if(get_msg_arg_int(1) != TE_BEAMFOLLOW)
return PLUGIN_CONTINUE
static classname[32]
static ent, hr, team
ent = get_msg_arg_int(2)
pev(ent, pev_classname, classname, 31)
if(equal(classname, "hornet"))
hr = 1
else if(equal(classname, "rpg_rocket"))
hr = 0
else
return PLUGIN_CONTINUE
if(get_pcvar_num(g_pcvar_mode) == 1)
{
team = 0
g_Colors[0][0] = random_num(0, 255)
g_Colors[0][1] = random_num(0, 255)
g_Colors[0][2] = random_num(0, 255)
g_Colors[0][3] = 255
}
else if(get_pcvar_num(g_pcvar_mode) == 2)
{
team = get_user_team(pev(ent, pev_owner))
if(team <= 0 || team > 4)
{
team = 0
g_Colors[0] = g_user_colors[hr]
}
}
else
{
team = 0
g_Colors[0] = g_user_colors[hr]
}
set_msg_arg_int(6, ARG_BYTE, g_Colors[team][0])
set_msg_arg_int(7, ARG_BYTE, g_Colors[team][1])
set_msg_arg_int(8, ARG_BYTE, g_Colors[team][2])
set_msg_arg_int(9, ARG_BYTE, g_Colors[team][3])
return PLUGIN_CONTINUE
}
rpg_colorКод:
#include <amxmodx>
#include <fakemeta>
#include <hamsandwich>
#include <hl>
#define PLUGIN "[HL] RPG Trail & LaserSpot Color"
#define VERSION "2.0"
#define AUTHOR "LetiLetiLepestok"
#define IsValidPev(%1) (bool:(pev_valid(%1) == 2))
#define XO_WEAPON 4
#define m_pPlayer 28
#define m_pSpot 45
#define m_fSpotActive 46
#define LASER_SPOT_RED "sprites/laserspot_red.spr"
#define LASER_SPOT_BLUE "sprites/laserspot_blue.spr"
enum _:ENUM_DATA_TEAM
{
TEAM_NONE = 0,
TEAM_BLUE, //1
TEAM_RED, //2
TEAM_SPEC //3
};
new g_iszColors[ENUM_DATA_TEAM][3]=
{
{0, 0, 0},
{80, 80, 255}, // color for team BLUE
{255, 80, 80}, // color for team RED
{200, 200, 80} // color for team SPEC
}
new HamHook:g_iHamHook_Item_PostFrame;
public plugin_init()
{
register_plugin(PLUGIN, VERSION, AUTHOR);
register_message(SVC_TEMPENTITY, "MessageHook_TempEntity");
RegisterHam(Ham_Spawn, "laser_spot", "HamHook_LaserSpotSpawn_Post", true);
DisableHamForward(g_iHamHook_Item_PostFrame = RegisterHam(Ham_Item_PostFrame, "weapon_rpg", "HamHook_Item_PostFrame", false));
}
public plugin_precache()
{
precache_model(LASER_SPOT_BLUE);
precache_model(LASER_SPOT_RED);
}
public HamHook_LaserSpotSpawn_Post(iLaserSpot)
{
EnableHamForward(g_iHamHook_Item_PostFrame);
}
public HamHook_Item_PostFrame(const iItem)
{
if(IsValidPev(iItem) && get_pdata_int(iItem, m_fSpotActive, XO_WEAPON))
{
static iPlayer;
iPlayer = get_pdata_cbase(iItem, m_pPlayer, XO_WEAPON);
static iLaserSpot;
iLaserSpot = get_pdata_cbase(iItem, m_pSpot, XO_WEAPON);
if(pev_valid(iLaserSpot))
{
switch(hl_get_user_team(iPlayer))
{
case TEAM_RED: engfunc(EngFunc_SetModel, iLaserSpot, LASER_SPOT_RED);
case TEAM_BLUE: engfunc(EngFunc_SetModel, iLaserSpot, LASER_SPOT_BLUE);
}
}
}
DisableHamForward(g_iHamHook_Item_PostFrame);
return HAM_IGNORED;
}
public MessageHook_TempEntity()
{
if(get_msg_arg_int(1) != TE_BEAMFOLLOW)
return;
new iEnt = get_msg_arg_int(2);
new szClassName[32];
pev(iEnt, pev_classname, szClassName, charsmax(szClassName));
if(!equal(szClassName, "rpg_rocket"))
return;
new iTeam = hl_get_user_team(pev(iEnt, pev_owner));
if(iTeam <= TEAM_NONE || iTeam > TEAM_SPEC)
{
iTeam = TEAM_NONE;
g_iszColors[0][0] = random(255);
g_iszColors[0][1] = random(255);
g_iszColors[0][2] = random(255);
}
set_msg_arg_int(6, ARG_BYTE, g_iszColors[iTeam][0]);
set_msg_arg_int(7, ARG_BYTE, g_iszColors[iTeam][1]);
set_msg_arg_int(8, ARG_BYTE, g_iszColors[iTeam][2]);
set_msg_arg_int(9, ARG_BYTE, 255);
}