Veteran Member
Join Date: Feb 2016
Location: São Paulo, Brasil
|
01-12-2017
, 19:24
Re: Private Message
|
#11
|
Dude, thats what I am using on my Furien Mod
PHP Code:
/* Plugin generated by AMXX-Studio */
#include <amxmodx>
#include <amxmisc>
#define PLUGIN "New Plug-In"
#define VERSION "1.0"
#define AUTHOR "author"
new bool:pmon[33], bool:pmsound[33],gidPlayer[33]
new const ON_OFF[][] =
{
"\y[\rdisabled\y]","\y[\wenabled\y]"
}
public plugin_init()
{
register_plugin(PLUGIN, VERSION, AUTHOR)
register_clcmd("say /private", "cmd_privatemessage")
register_clcmd("say_team /private", "cmd_privatemessage")
register_clcmd("Private", "cmd_player")
}
public plugin_precache()
{
precache_sound("misc/sent.wav")
precache_sound("misc/incaa.wav")
}
public client_putinserver(id)
{
pmon[id] = false
pmsound[id] = true
}
public pm_menu(id)
{
new sztittle = menu_create("Private Message \w( \r/private\w )","cmd_pm_menu_handler")
menu_additem(sztittle,"Send PM")
menu_additem(sztittle,"Settings^n")
menu_display(id,sztittle)
}
public cmd_pm_menu_handler(id, menu, item)
{
switch(item)
{
case 0: cmd_privatemessage(id)
case 1: pm_config(id)
}
menu_destroy(menu)
return PLUGIN_HANDLED
}
public pm_config(id)
{
new menu_text[128]
new menu3 = menu_create("PM Settings \w( \r/private\w )", "menupm_menu_handle")
formatex(menu_text,charsmax(menu_text),"Receive PM ^t%s^n\d- Turn on/off the PM", ON_OFF[pmon[id]])
menu_additem(menu3,menu_text);
formatex(menu_text,charsmax(menu_text),"PM Sounds ^t^t^t^t^t^t^t^t^t%s^n\d- Turn on/off the PM sound", ON_OFF[pmsound[id]])
menu_additem(menu3,menu_text);
menu_display(id, menu3)
menu_setprop(menu3, MPROP_NUMBER_COLOR, "\r")
}
public menupm_menu_handle(id, menu, item)
{
switch(item)
{
case 0:
{
switch(pmon[id])
{
case false:
{
pmon[id] = true
ChatColor(id,"!gPrivate Messages !tenabled!g.")
pm_menu(id)
client_cmd(id,"spk buttons/lightswitch2")
}
case true:
{
pmon[id] = false
ChatColor(id,"!gPrivate Messages !tdisabled!g.")
pm_menu(id)
client_cmd(id,"spk buttons/lightswitch2")
}
}
}
case 1:
{
switch(pmsound[id])
{
case false:
{
pmsound[id] = true
ChatColor(id,"!gPrivate Messages sound !tenabled!g.")
pm_menu(id)
client_cmd(id,"spk buttons/lightswitch2")
}
case true:
{
pmsound[id] = false
ChatColor(id,"!gPrivate Messages sound !tdisabledo!g.")
pm_menu(id)
client_cmd(id,"spk buttons/lightswitch2")
}
}
}
}
menu_destroy(menu)
return PLUGIN_HANDLED
}
public cmd_privatemessage(id)
{
new iMenu = menu_create("Private Message \w (\r /private \w)","cmd_pm")
static opcion[64]
new players[32], pnum, tempid
new szName[32], szTempid[10]
get_players(players, pnum, "h")
for( new i; i<pnum; i++ )
{
tempid = players[i]
get_user_name(tempid, szName, 31)
num_to_str(tempid, szTempid, 9)
formatex(opcion, charsmax(opcion), "\w%s", szName)
menu_additem(iMenu, opcion, szTempid, 0)
}
menu_display(id, iMenu)
return PLUGIN_HANDLED
}
public cmd_pm(id, menu, item)
{
new Data[6], Name[64]
new Access, Callback
menu_item_getinfo(menu, item, Access, Data,5, Name, 63, Callback)
new tempid = str_to_num(Data)
gidPlayer[id] = tempid
client_cmd(id, "messagemode Private")
menu_destroy(menu)
return PLUGIN_HANDLED
}
public cmd_player(id)
{
new say[300]
read_args(say, charsmax(say))
remove_quotes(say)
if(equal(say, ""))
return PLUGIN_HANDLED;
cmd_send_pm(id, say)
return PLUGIN_CONTINUE;
}
public cmd_send_pm(id, say[])
{
new player = gidPlayer[id];
printMessage(player, id, say)
return PLUGIN_HANDLED;
}
stock printMessage(reciever, sender, const message[])
{
new name[32];
get_user_name(sender, name, charsmax(name))
new szname[32];
get_user_name(reciever,szname,31)
if(!pmon[reciever])
{
if(pmsound[sender])
client_cmd(sender,"spk misc/sent.wav")
if(pmsound[reciever])
client_cmd(reciever,"spk misc/incaa.wav")
ChatColor(sender,"!g[!yPrivate!g]!y To: !t%s!y message:!t %s", szname, message)
ChatColor(reciever,"!g[!yPrivate!g]!y Player !t %s!y: !t %s", name, message)
}
else
{
ChatColor(reciever,"!g[!yPrivate!g]!y !t%s!y want not receive private messages.", name)
}
return PLUGIN_HANDLED
}
stock ChatColor(const id, const input[], any:...)
{
new count = 1, players[ 32 ]
static msg[ 191 ]
vformat( msg, 190, input, 3 )
replace_all( msg, 190, "!g", "^4" )
replace_all( msg, 190, "!y", "^1" )
replace_all( msg, 190, "!t", "^3" )
if(id) players[ 0 ] = id; else get_players( players, count, "ch" )
{
for(new i = 0; i < count; i++)
{
if( is_user_connected( players[ i ] ) )
{
message_begin( MSG_ONE_UNRELIABLE, get_user_msgid("SayText"), _, players[ i ] )
write_byte( players[ i ] )
write_string( msg )
message_end( )
}
}
}
}
Yea, the code is horrible but it works. You can try it if you want.
__________________
Last edited by EFFx; 01-12-2017 at 19:25.
|
|