Некоторые, можете ли вы объединить эти два плагина?
Добавьте этот код ко второму коду, который я дал. 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); }
|