Zobacz cz tak pasuje. Nie zrobilem jedynie cvary z hud'em
#include <amxmodx>
#include <amxmisc>
#include <csstats>
#define MAX_PLAYERS 32
enum CONNECT_TYPE
{
putinserver_admin,
putinserver_player,
disconnect_admin,
disconnect_player,
MAX_TYPE
}
new const CONNECT_MESSAGES[CONNECT_TYPE:MAX_TYPE][] =
{
/*
{name} = user name
{rankpos} = user rank
{connecttime} = user connection time
*/
"Przyszedl {name}\nRank:{rankpos}\nCzas podlaczania:{connecttime} sec.", //admin
"Przyszedl {name}\nRank:{rankpos}\nCzas podlaczania:{connecttime} sec.", //player
/*
{name} = user name
{rankpos} = user rank
{playtime} = user play time
*/
"{name} odchodzi. Do zobaczenia\nRank:{rankpos}\nGral przez:{playtime} min.", //admin
"{name} odchodzi. Do zobaczenia\nRank:{rankpos}\nGral przez:{playtime} min." //player
}
new const MESSAGES_COLOR[CONNECT_TYPE:MAX_TYPE][3] =
{
{0, 255, 0}, //admin
{0, 255, 0}, //player
{0, 255, 0}, //admin
{0, 255, 0} //player
}
new const CONNECT_SOUNDS[CONNECT_TYPE:MAX_TYPE][] =
{
"buttons/blip1.wav", //admin
"buttons/blip1.wav", //player
"buttons/blip1.wav", //admin
"buttons/blip1.wav" //player
}
new g_hudsync
new Float:g_connecttime[MAX_PLAYERS+1][2]
static const PLUGIN_NAME[] = "Enter-Leave Notifications"
static const PLUGIN_AUTHOR[] = "Cheap_Suit"
static const PLUGIN_VERSION[] = "1.2"
public plugin_init()
{
register_plugin(PLUGIN_NAME, PLUGIN_VERSION, PLUGIN_AUTHOR)
register_cvar(PLUGIN_NAME, PLUGIN_VERSION, FCVAR_SPONLY|FCVAR_SERVER)
g_hudsync = CreateHudSyncObj()
}
public plugin_precache()
{
if(strlen(CONNECT_SOUNDS[putinserver_admin]))
precache_sound(CONNECT_SOUNDS[putinserver_admin])
if(strlen(CONNECT_SOUNDS[putinserver_player]))
precache_sound(CONNECT_SOUNDS[putinserver_player])
}
public client_connect(id)
g_connecttime[id][0] = get_gametime()
public client_putinserver(id)
{
if(is_user_bot(id))
return
g_connecttime[id][1] = get_gametime()
set_task(2.0, "task_client_connected", id)
}
public client_disconnect(id)
{
if(is_user_bot(id))
return
g_connecttime[id][0] = get_gametime()
set_task(0.5, "task_client_disconnected", id)
}
public task_client_connected(id)
{
new admin = is_user_admin(id)
static sound[32]
format(sound, 31, CONNECT_SOUNDS[admin ? putinserver_admin : putinserver_player])
if(strlen(sound) > 0)
client_cmd(0, "spk %s", sound)
static putinserver_message[192]
format(putinserver_message, 191, CONNECT_MESSAGES[admin ? putinserver_admin : putinserver_player])
if(strlen(putinserver_message) > 0)
{
new Float:connecttime = g_connecttime[id][1] - g_connecttime[id][0]
static connecttime_str[4]
float_to_str(connecttime, connecttime_str, 3)
static temp[8]
static rank[8]
new position = get_user_stats(id, temp, temp)
num_to_str(position, rank, 7)
static name[32]
get_user_name(id, name, 31)
replace(putinserver_message, 191, "{name}", name)
replace(putinserver_message, 191, "{rankpos}", rank)
replace(putinserver_message, 191, "{connecttime}", connecttime_str)
replace_all(putinserver_message, 191, "\n", "^n")
static color[3]
for(new i = 0; i < 3; ++i)
color[i] = MESSAGES_COLOR[admin ? putinserver_admin : putinserver_player][i]
set_hudmessage(color[0], color[1], color[2], 0.10, 0.55, 0, 6.0, 6.0, 0.5, 0.15, 3)
ShowSyncHudMsg(0, g_hudsync, putinserver_message)
}
}
public task_client_disconnected(id)
{
new admin = is_user_admin(id)
static sound[32]
format(sound, 31, CONNECT_SOUNDS[admin ? putinserver_admin : putinserver_player])
if(strlen(sound) > 0)
client_cmd(0, "spk %s", sound)
static disconnect_message[192]
format(disconnect_message, 191, CONNECT_MESSAGES[admin ? disconnect_admin : disconnect_player])
if(strlen(disconnect_message) > 0)
{
new Float:playtime = (g_connecttime[id][0] - g_connecttime[id][1]) / 60.0
static playtime_str[5]
float_to_str(playtime, playtime_str, 4)
static temp[8]
static rank[8]
new position = get_user_stats(id, temp, temp)
num_to_str(position, rank, 7)
static name[32]
get_user_name(id, name, 31)
replace(disconnect_message, 191, "{name}", name)
replace(disconnect_message, 191, "{rankpos}", rank)
replace(disconnect_message, 191, "{playtime}", playtime_str)
replace_all(disconnect_message, 191, "\n", "^n")
static color[3]
for(new i = 0; i < 3; ++i)
color[i] = MESSAGES_COLOR[admin ? disconnect_admin : disconnect_player][i]
set_hudmessage(color[0], color[1], color[2], 0.10, 0.55, 0, 6.0, 6.0, 0.5, 0.15, 3)
ShowSyncHudMsg(0, g_hudsync, disconnect_message)
}
}