/********************************************************* * Bugblatter Admin Chat Extension - V3.1 * ********************************************************* * * * This plug-in is linux & win32 friendly. * * * * Version history * * * * Version 3.1: * * * * - Initial Version * * * * Version 2.6: * * * * - Initial Version * *********************************************************/ #include <admin> #include <plugin> #include <adminlib> new g_Version[]="3.1"; forward BBSayAdmin(HLCommand,HLData,HLUserName,UserIndex); public plugin_init() { plugin_registerinfo("Bugblatter's Admin message Plugin","Sends a message to all administrators playing",g_Version); plugin_registercmd("say_admin","BBSayAdmin",ACCESS_ALL,"Sends a message to all administrators playing"); plugin_registercmd("respond","BBSayRespond",ACCESS_MAP,"Allows an administrator to respond to an admin say"); return PLUGIN_CONTINUE; } public BBSayAdmin(HLCommand,HLData,HLUserName,UserIndex) { new Data[MAX_DATA_LENGTH]; new Caller[MAX_DATA_LENGTH]; new Msg[MAX_DATA_LENGTH]; new name[MAX_NAME_LENGTH]; new i; new sessionid; convert_string(HLData,Data,MAX_DATA_LENGTH); convert_string(HLUserName,Caller,MAX_NAME_LENGTH); get_userSessionID(Caller,sessionid); snprintf(Msg,MAX_DATA_LENGTH,"(To Admins) %s [%i]: %s",Caller,sessionid,Data); new c= maxplayercount(); for (i=1;i<=c;i++) { if (playerinfo(i,name,MAX_NAME_LENGTH)!=0) { if (access(ACCESS_BAN,name) || access(ACCESS_KICK,name) || access(ACCESS_CONFIG,name)|| access(ACCESS_RCON,name)) { messageex(name,Msg,print_chat); } } } return PLUGIN_HANDLED; } public BBSayRespond(HLCommand,HLData,HLUserName,UserIndex) { new Data[MAX_DATA_LENGTH]; new Caller[MAX_DATA_LENGTH]; new Msg[MAX_DATA_LENGTH]; new strSessionID[MAX_DATA_LENGTH]; new name[MAX_NAME_LENGTH]; new i; new sessionid; convert_string(HLData,Data,MAX_DATA_LENGTH); convert_string(HLUserName,Caller,MAX_NAME_LENGTH); strbreak(Data,strSessionID,Msg, MAX_DATA_LENGTH); sessionid=strtonum(strSessionID); if (sessionid == 0) { selfmessage("Unregognised player ID"); return PLUGIN_HANDLED; } snprintf(Msg,MAX_DATA_LENGTH,"(Admin Response) %s [%i]: %s",Caller,sessionid,Msg); new s; new c= maxplayercount(); for (i=1;i<=c;i++) { if (playerinfo(i,name,MAX_NAME_LENGTH,s)!=0) { if ((access(ACCESS_BAN,name) || access(ACCESS_KICK,name) || access(ACCESS_CONFIG,name)|| access(ACCESS_RCON,name)) || (s==sessionid)){ messageex(name,Msg,print_chat); } } } return PLUGIN_HANDLED; }