//Privat Uzenetek /////
/////////////////////////////////////////
//
// Steam ID-re uzeneteket allithatsz be a jatekosoknak,amelyek a szerverre valo csatlakozaskor megjelennek zölden a Chat-ben.
//
//Pelda: amx_uzenet "STEAMID_0:0:12345" "Pixaa112 - A plugint pixa112 keresere alakitottam at." //Ez az alap. Csak annak szol, akinek a STEAM ID-jet megadjuk. /////
/////////////////////////////////////////
//
//Ha a Steam ID helyere "*"-ot irsz,akkor az uzenet mindenkinek szol.
//
//Pelda: amx_uzenet "*" "A szervert konfigolja: a konfigos." //Ezt mindenki latja.
/////
////////////////////////////////////////
//Egyeb infok a leirasban.
#include <amxmodx>
#include <nvault>
#define ADMIN_LEVEL ADMIN_PASSWORD
#define PLUGIN "Privat Uzenetek"
#define VERSION "1.1"
#define AUTHOR "DeStRoY"
new g_Vault
new gmsgSayText
new g_pm_active
new g_pm_delete
public plugin_init()
{
register_plugin(PLUGIN, VERSION, AUTHOR)
register_clcmd("amx_uzenet", "add_pm", 0, "<steamid> <Uzenet> - Uzenet adasa jatekosnak.")
register_clcmd("amx_uzenet_torles", "remove_pm", 0, "<steamid> - Uzenet torlese.")
register_clcmd("amx_uzenet_mutatas", "view_pm", 0, "<steamid> - Uzenet lejatszasa a jatekosnak.")
g_pm_active = register_cvar("amx_pm_active","1")
g_pm_delete = register_cvar("amx_pm_autodelete","0")
gmsgSayText = get_user_msgid("SayText");
}
public plugin_cfg()
{
g_Vault=nvault_open("PMdata")
}
public plugin_end()
{
nvault_close(g_Vault)
}
public client_putinserver(id)
{
if (get_pcvar_num(g_pm_active))
set_task(10.0,"pm_check",id)
}
public pm_check(id)
{
new vaultkey[64], vaultdata[190];
new TimeStamp;
new authid[35]
get_user_authid(id,authid,34);
new line[190]
formatex(vaultkey,63,"Uzenet-%s",authid);
if(nvault_lookup(g_Vault, vaultkey, vaultdata, sizeof(vaultdata) - 1, TimeStamp ))
{
line[0] = 0x04;
format(line[1],188,"[Uzenet]%s",vaultdata)
ShowColorMessage(id,line)
if (get_pcvar_num(g_pm_delete))
nvault_remove(g_Vault,vaultkey)
}
formatex(vaultkey,63,"PM-*");
if(nvault_lookup(g_Vault, vaultkey, vaultdata, sizeof(vaultdata) - 1, TimeStamp ))
{
line[0] = 0x04;
format(line[1],188,"[Uzenet]%s",vaultdata)
ShowColorMessage(id,line)
}
return PLUGIN_HANDLED
}
public add_pm(id)
{
if (!(get_user_flags(id) & ADMIN_LEVEL))
{
console_print(id,"Sajnalom,ez a parancs nem elerheto szamodra.")
return PLUGIN_HANDLED
}
new vaultkey[64], vaultdata[190];
new args[220]
new message[190]
new authid[35]
read_args(args,219)
remove_quotes(args)
strbreak(args,authid,34,message,189)
remove_quotes(authid)
remove_quotes(message)
if (!check_steam_id(id,authid) && !equal(authid,"*"))
{
console_print(id,"A SteamID nem megfelelo!")
return PLUGIN_HANDLED
}
formatex(vaultkey,63,"PM-%s",authid);
formatex(vaultdata,189,"%s",message)
nvault_set(g_Vault,vaultkey,vaultdata)
console_print(id,"[Uzenet-%s] Uj uzenet HOZZAADVA.",authid)
return PLUGIN_HANDLED
}
public remove_pm(id)
{
if (!(get_user_flags(id) & ADMIN_LEVEL))
{
console_print(id,"Sajnalom,ez a parancs nem elerheto szamodra.")
return PLUGIN_HANDLED
}
new vaultkey[64], vaultdata[190];
new TimeStamp;
new authid[35]
read_args(authid,34)
remove_quotes(authid)
if (!check_steam_id(id,authid) && !equal(authid,"*"))
{
console_print(id,"A SteamID nem megfelelo!")
return PLUGIN_HANDLED
}
formatex(vaultkey,63,"PM-%s",authid);
if(nvault_lookup(g_Vault, vaultkey, vaultdata, sizeof(vaultdata) - 1, TimeStamp ))
{
nvault_remove(g_Vault,vaultkey)
console_print(id,"[Uzenet-%s] Uzenet TOROLVE.",authid)
}
return PLUGIN_HANDLED
}
public view_pm(id)
{
if (!(get_user_flags(id) & ADMIN_LEVEL))
{
console_print(id,"Sajnalom,ez a parancs nem elerheto szamodra.")
return PLUGIN_HANDLED
}
new vaultkey[64], vaultdata[190];
new TimeStamp;
new authid[35]
read_args(authid,34)
remove_quotes(authid)
if (!check_steam_id(id,authid) && !equal(authid,"*"))
{
console_print(id,"A SteamID nem megfelelo!")
return PLUGIN_HANDLED
}
formatex(vaultkey,63,"PM-%s",authid);
if(nvault_lookup(g_Vault, vaultkey, vaultdata, sizeof(vaultdata) - 1, TimeStamp ))
{
console_print(id,"[Uzenet-%s]%s",authid,vaultdata)
}
return PLUGIN_HANDLED
}
public ShowColorMessage(id, message[])
{
message_begin(MSG_ONE, gmsgSayText, _, id);
write_byte(id)
write_string(message);
message_end();
}
public bool:check_steam_id(id,authid[])
{
if (equali(authid,"STEAM_ID_PENDING") || equali(authid,"STEAM_ID_LAN"))
return true
if (contain(authid,"STEAM_") == -1)
return false
if ((authid[7] != ':') || (authid[9] != ':'))
return false
if (!is_str_num(authid[10]))
return false
return true
}