#include <amxmodx>
#include <amxmisc>
#include <nvault>
#define PLUGIN "New Plug-In"
#define VERSION "1.0"
#define AUTHOR "author"
new message[192]
new alive[11]
new strName[191]
new strText[191]
new maxPlayers
new sayText
new teamInfo
new gVault;
new vKey[ 64 ];
new vData[ 64 ];
new piname[32];
new kills[32];
public plugin_init() {
register_plugin(PLUGIN, VERSION, AUTHOR)
register_clcmd("say", "HookSayCommands")
register_clcmd("say_team", "HookTeamSayCommands")
sayText = get_user_msgid ("SayText")
teamInfo = get_user_msgid ("TeamInfo")
maxPlayers = get_maxplayers()
register_message (sayText, "avoid_duplicated")
register_event( "DeathMsg", "hahahahalalhahaha", "a" );
}
public client_connect(id)
{
kills[id] = 0;
ment(id)
}
public client_disconnect(id)
ment(id)
stock ment( index )
{
/* --| Vault megnyitás */
gVault = nvault_open( "fearpontok" );
/* --| Ha vault visszateres -1, akkor hagyja abba ezt a szart */
if( gVault == INVALID_HANDLE )
{
set_fail_state( "WHATTHEFUCK ERROR: =-> Invalid-Handle" );
}
/* --| Játékos név */
get_user_name( index, piname, charsmax( piname ) );
/* --| Beallitasok oszt bezaras */
formatex( vKey, charsmax( vKey ), "%sOLES", piname );
formatex( vData, charsmax( vData ), "%d", kills[ index ] );
nvault_set( gVault, vKey, vData );
nvault_close( gVault );
}
stock betolt( index )
{
/* --| Megnyitas */
gVault = nvault_open( "fearpontok" );
/* --| Ha vault visszateres -1, akkor hagyja abba ezt a szart */
if( gVault == INVALID_HANDLE )
{
set_fail_state( "WHATTHEFUCK ERROR: =-> Invalid-Handle" );
}
/* --| jatekos neve */
get_user_name( index, piname, charsmax( piname ) );
/* --| Beallitasok oszt bezaras */
formatex( vKey, charsmax( vKey ), "%sOLES", piname );
kills[ index ] = nvault_get( gVault, vKey );
nvault_close( gVault );
}
public avoid_duplicated (msgId, msgDest, receiver)
{
return PLUGIN_HANDLED
}
public hahahahalalhahaha()
{
new killer = read_data( 1 );
new victim = read_data( 2 );
if(killer == victim)
{
return PLUGIN_HANDLED;
}
kills[killer]++
return PLUGIN_CONTINUE;
}
public HookSayCommands(id)
{
read_args(message, 191)
remove_quotes(message)
if (message[0] == '@' || message[0] == '/' || message[0] == '!' || equal (message, ""))
return PLUGIN_CONTINUE
new name[32]
get_user_name (id, name, 31)
new isAlive
if (is_user_alive (id))
{
isAlive = 1
alive = "^x01"
}
else
{
isAlive = 0
alive = "^x01*HALOTT* "
}
static color[10]
new rang[32];
if(kills[id] < 10)
rang = "Rangtalan"
else if(kills[id] >= 10 && kills[id] < 20)
rang = "Kezdo"
else if(kills[id] >= 20 && kills[id] < 30)
rang = "Halado"
else if(kills[id] >= 30)
rang = "Profi"
//Rang+Name
get_user_team (id, color, 9)
format (strName, 191, "%s^x04[%s]^x03%s", alive, rang, name)
format (strText, 191, "%s", message)
format (message, 191, "%s^x01 : %s", strName, strText)
sendMessage (color, isAlive)
return PLUGIN_CONTINUE
}
public HookTeamSayCommands(id)
{
new playerTeam = get_user_team(id)
new playerTeamName[19]
switch (playerTeam)
{
case 1:
copy (playerTeamName, 11, "Terrorista")
case 2:
copy (playerTeamName, 18, "Zsaru")
default:
copy (playerTeamName, 9, "Nezo")
}
read_args(message, 191)
remove_quotes(message)
if (message[0] == '@' || message[0] == '/' || message[0] == '!' || equal (message, ""))
return PLUGIN_CONTINUE
new name[32]
get_user_name (id, name, 31)
new isAlive
if (is_user_alive (id))
{
isAlive = 1
alive = "^x01"
}
else
{
isAlive = 0
alive = "^x01*HALOTT* "
}
static color[10]
new rang[32];
if(kills[id] < 10)
rang = "Rangtalan"
else if(kills[id] >= 10 && kills[id] < 20)
rang = "Kezdo"
else if(kills[id] >= 20 && kills[id] < 30)
rang = "Halado"
else if(kills[id] >= 30)
rang = "Profi"
//Rang+Name
get_user_team (id, color, 9)
format (strName, 191, "%s(%s) ^x04[%s]^x03%s", alive, playerTeamName, rang, name)
format (strText, 191, "%s", message)
format (message, 191, "%s^x01 : %s", strName, strText)
sendTeamMessage (color, isAlive, playerTeam)
return PLUGIN_CONTINUE
}
public sendMessage (color[], alive)
{
new teamName[10]
for (new player = 1; player < maxPlayers; player++)
{
if (!is_user_connected(player))
continue
if (alive && is_user_alive(player) || !alive && !is_user_alive(player))
{
get_user_team (player, teamName, 9)
changeTeamInfo (player, color)
writeMessage (player, message)
changeTeamInfo (player, teamName)
}
}
}
public sendTeamMessage (color[], alive, playerTeam)
{
new teamName[10]
for (new player = 1; player < maxPlayers; player++)
{
if (!is_user_connected(player))
continue
if (get_user_team(player) == playerTeam)
{
if (alive && is_user_alive(player) || !alive && !is_user_alive(player))
{
get_user_team (player, teamName, 9)
changeTeamInfo (player, color)
writeMessage (player, message)
changeTeamInfo (player, teamName)
}
}
}
}
public changeTeamInfo (player, team[])
{
message_begin (MSG_ONE, teamInfo, _, player)
write_byte (player)
write_string (team)
message_end()
}
public writeMessage (player, message[])
{
message_begin (MSG_ONE, sayText, {0, 0, 0}, player)
write_byte (player)
write_string (message)
message_end ()
}