diff --git a/amxmodx/amxmodx.cpp b/amxmodx/amxmodx.cpp index 55914ec1..06111f10 100755 --- a/amxmodx/amxmodx.cpp +++ b/amxmodx/amxmodx.cpp @@ -542,11 +542,27 @@ static cell AMX_NATIVE_CALL next_hudchannel(AMX *amx, cell *params) static cell AMX_NATIVE_CALL set_hudmessage(AMX *amx, cell *params) /* 11 param */ { - g_hudset.a1 = 0; - g_hudset.a2 = 0; - g_hudset.r2 = 255; - g_hudset.g2 = 255; - g_hudset.b2 = 250; + cell num_params = params[0] / sizeof(cell); + + if (num_params >= 13) + { + cell *color2 = get_amxaddr(amx, params[13]); + + g_hudset.a1 = static_cast(params[12]); + g_hudset.a2 = static_cast(color2[3]); + g_hudset.r2 = static_cast(color2[0]); + g_hudset.g2 = static_cast(color2[1]); + g_hudset.b2 = static_cast(color2[2]); + } + else + { + g_hudset.a1 = 0; + g_hudset.a2 = 0; + g_hudset.r2 = 255; + g_hudset.g2 = 255; + g_hudset.b2 = 250; + } + g_hudset.r1 = static_cast(params[1]); g_hudset.g1 = static_cast(params[2]); g_hudset.b1 = static_cast(params[3]); diff --git a/amxmodx/util.cpp b/amxmodx/util.cpp index 25c55de1..d09b032c 100755 --- a/amxmodx/util.cpp +++ b/amxmodx/util.cpp @@ -221,11 +221,11 @@ void UTIL_HudMessage(edict_t *pEntity, const hudtextparms_t &textparms, const ch WRITE_BYTE(textparms.r1); WRITE_BYTE(textparms.g1); WRITE_BYTE(textparms.b1); - WRITE_BYTE(0); - WRITE_BYTE(255); - WRITE_BYTE(255); - WRITE_BYTE(250); - WRITE_BYTE(0); + WRITE_BYTE(textparms.a1); + WRITE_BYTE(textparms.r2); + WRITE_BYTE(textparms.g2); + WRITE_BYTE(textparms.b2); + WRITE_BYTE(textparms.a2); WRITE_SHORT(FixedUnsigned16(textparms.fadeinTime, (1<<8))); WRITE_SHORT(FixedUnsigned16(textparms.fadeoutTime, (1<<8))); WRITE_SHORT(FixedUnsigned16(textparms.holdTime, (1<<8))); diff --git a/plugins/include/amxmodx.inc b/plugins/include/amxmodx.inc index 5f4ba7e2..901f3c10 100755 --- a/plugins/include/amxmodx.inc +++ b/plugins/include/amxmodx.inc @@ -681,10 +681,12 @@ native disable_logevent(handle); * @param fadeintime Time it takes the message to fully appear (fade-in) * @param fadeouttime Time it takes the message to fully disappear (fade-out) * @param channel Channel to use on the client - * + * @param alpha1 Alpha component of hudmessage color + * @param color2[4] Color 2 array {r,g,b,a} + * * @noreturn */ -native set_hudmessage(red = 200, green = 100, blue = 0, Float:x = -1.0, Float:y = 0.35, effects = 0, Float:fxtime = 6.0, Float:holdtime = 12.0, Float:fadeintime = 0.1, Float:fadeouttime = 0.2, channel = -1); +native set_hudmessage(red = 200, green = 100, blue = 0, Float:x = -1.0, Float:y = 0.35, effects = 0, Float:fxtime = 6.0, Float:holdtime = 12.0, Float:fadeintime = 0.1, Float:fadeouttime = 0.2, channel = -1, alpha1 = 0, color2[4] = {255, 255, 250, 0}); /** * Displays a message on the client HUD.