Masz tu gotowy plugin na info po śmierci.
Dorzuciłem do niego po prostu kod na hud z odliczaniem.
Nie bardzo wiem po co chcesz dodawać to do resetscore - trochę bez sensu.
Nie testowane, lecz powinno śmigać
#include <amxmodx>
#include <colorchat>
#include <fakemeta>
#define PLUGIN "Info po smierci"
#define VERSION "1.0"
#define AUTHOR "DarkGL"
new maxPlayers,
Float: taskTimeStop,
bool:bCan[ 33 ],
Float:fTimeLeft[33];
public plugin_init()
{
register_plugin(PLUGIN, VERSION, AUTHOR)
register_cvar( "info_smierci_czas" , "5.0" );
register_event("DeathMsg", "DeathMsg", "a")
register_clcmd("say","sayHandle")
register_clcmd("say_team","sayHandle")
register_forward(FM_Voice_SetClientListening, "Forward_SetClientListening");
maxPlayers = get_maxplayers();
}
public plugin_cfg()
taskTimeStop = get_cvar_float( "info_smierci_czas" );
public sayHandle(id)
{
if( !bCan[ id ] ) return PLUGIN_CONTINUE;
new szTmp[ 256 ],
szPrint[190],
szName[64];
read_argv(1,szTmp,charsmax(szTmp));
trim( szTmp )
get_user_name( id , szName,charsmax( szName ) );
formatex(szPrint,charsmax(szPrint),"[Info od %s] ^x01 %s",szName,szTmp);
ColorChat( id , GREEN , szPrint);
for(new iPlayer = 1;iPlayer <= maxPlayers; iPlayer++)
{
if( !is_user_alive( iPlayer ) || get_user_team( iPlayer ) != get_user_team(id)) continue;
ColorChat( iPlayer , GREEN , szPrint);
}
return PLUGIN_HANDLED;
}
public DeathMsg()
{
new idVictim = read_data( 2 );
if( !is_user_connected( idVictim ) || is_user_alive( idVictim ) ) return PLUGIN_CONTINUE;
bCan[ idVictim ] = true;
remove_task( idVictim );
remove_task(idVictim + 8899);
fTimeLeft[idVictim] = taskTimeStop;
showHud(idVictim + 8899);
set_task( taskTimeStop ,"stopInfo" , idVictim );
set_task( 1.0 , "showHud", idVictim + 8899, .flags = "b" );
return PLUGIN_CONTINUE;
}
public showHud(id)
{
id -= 8899;
if(!is_user_connected(id) || !bCan[id])
{
remove_task(id + 8899);
return;
}
set_hudmessage(0, 255, 0, -1.0, 0.6, 0, 0.0, 1.0, 0.0, 0.0);
show_hudmessage(id, "< Info po smierci: %.0f sek >", fTimeLeft[id]);
fTimeLeft[id] -= 1.0;
if(fTimeLeft[id] < 0.0)
{
remove_task(id + 8899);
return;
}
}
public client_connect( id ) bCan[ id ] = false;
public client_disconnected( id ) bCan[ id ] = false;
public stopInfo( id )
{
bCan[ id ] = false;
remove_task(id + 8899);
for(new iPlayer = 1;iPlayer <= maxPlayers; iPlayer++)
{
if( !is_user_alive( iPlayer ) ) continue;
engfunc(EngFunc_SetClientListening, iPlayer, id, false);
}
}
public Forward_SetClientListening( iReceiver, iSender, bool:bListen )
{
if( !is_user_connected(iSender) || !is_user_connected( iReceiver ) )
return FMRES_IGNORED;
if( get_user_team(iSender) != get_user_team( iReceiver ) )
return FMRES_IGNORED;
if( !bCan[iSender] )
return FMRES_IGNORED;
engfunc(EngFunc_SetClientListening, iReceiver, iSender, true);
forward_return(FMV_CELL, true);
return FMRES_SUPERCEDE
}


Dodatki SourceMod




Moja zawartość
Mężczyzna
