| juanjotoronja |
05-08-2015 12:52 |
Re: [Request] Breathing effect
There is a pluggin made by ConnorMcLeod but is for low health, what im looking is one that start playing a custom breath sound at roundstart and when the player is dead/disconnected/spectator it should stop playing. Btw this is the code...
PHP Code:
#include <amxmodx>
#define PLUGIN "Low health breathe" #define VERSION "1.0" #define AUTHOR "balck"
new dmgcvar, lowdmgfade; new bool:low_dmg[33] = false; new color, r, g, b;
public plugin_precache() { precache_sound("breathe.wav"); }
public plugin_init(){ register_plugin(PLUGIN, VERSION, AUTHOR); register_cvar("lowhealthbreathe", VERSION, FCVAR_SERVER|FCVAR_SPONLY); dmgcvar = register_cvar( "amx_low_dmg", "26" ); lowdmgfade = register_cvar( "amx_low_dmg_sfade", "1" ); color = register_cvar( "amx_low_color", "210 0 0" ); register_event("Damage", "event_damage", "be"); register_event("DeathMsg", "event_deathmsg", "a"); register_event("HLTV", "event_new_round", "a", "1=0", "2=0");
new colors[16], red[4], green[4], blue[4]; get_pcvar_string( color, colors, sizeof colors - 1 ); parse( colors, red, 3, green, 3, blue, 3 ); r = str_to_num( red ); g = str_to_num( green ); b = str_to_num( blue ); }
public event_damage(id){ if(!is_user_connected(id) || is_user_bot(id)) return PLUGIN_HANDLED; if(get_user_health(id) < get_pcvar_num(dmgcvar)){ if(low_dmg[id] == true){ return PLUGIN_HANDLED } else{ set_task(1.7, "lowdmg", id, _, _, "b"); low_dmg[id] = true; } } return PLUGIN_CONTINUE; }
public event_deathmsg(){ new id = read_data(2); if(!is_user_connected(id) || is_user_bot(id) || low_dmg[id] == false) return PLUGIN_HANDLED; remove_task(id); low_dmg[id] = false; return PLUGIN_CONTINUE; }
public event_new_round(){ new pnum, id, players[32]; get_players(players, pnum, "c"); for(new i = 0; i < pnum; i++){ id = players[i]; if(is_user_connected(id) && low_dmg[id] == true){ remove_task(id); low_dmg[id] = false; } } }
public lowdmg(id){ if( get_user_health( id ) > get_pcvar_num( dmgcvar ) ){ remove_task( id ) low_dmg[ id ] = false return } client_cmd(id, "spk sound/breathe"); if(get_pcvar_num(lowdmgfade)){ message_begin(MSG_ONE, get_user_msgid("ScreenFade"), {0,0,0}, id) write_short( 10<<12 ) // fade lasts this long duration write_short( 10<<16 ) // fade lasts this long hold time write_short( 1<<0 ) // fade type (in / out) write_byte( r ) // fade red write_byte( g ) // fade green write_byte( b ) // fade blue write_byte( 210 ) // fade alpha message_end() } }
|