Raised This Month: $ Target: $400
 0% 

Admin Screen 2


  
 
 
Thread Tools Display Modes
Prev Previous Post   Next Post Next
isotonic
AlliedModders Donor
Join Date: Jun 2011
Location: Moscow, Russia
Old 02-18-2012 , 19:31   Re: Admin Screen 2
Reply With Quote #34

I have edited the plugin:
- added delay before taking snapshot to wait till chat message & HUD appears on client screen
- added notification to other admins about taking snapshot using amx_chat

Code:
/* AMX Mod X script.
*
*  Admin Screen 2 v1.0 by uTg | bigpapajiggs
*
*  Based on Admin Screen by Rav
*
*  amx_screen <authid/nick/userid> <number of screens>
*
*  It was edited by Safety1st:
*   added delay before taking snapshot to wait till chat message & HUD appears on client screen
*   added notification to other admins about taking snapshot using amx_chat
*/ 
#include <amxmodx>
#include <amxmisc>
new player
//PCVAR
new maxss, ssinterval, timestamptype
public plugin_init() 
{ 
 register_plugin("Admin Screen 2", "1.1", "uTg | bigpapajiggs")
 
 register_concmd("amx_screen", "concmd_screen", ADMIN_LEVEL_A, "<authid, nick or #userid> <screens>")
 
 maxss = register_cvar("amx_maxscreens", "10")
 ssinterval = register_cvar("amx_ssinterval", "1.0")
 timestamptype = register_cvar("amx_timestamptype", "3")
}
public concmd_screen(id, level, cid)
{ 
 //Is the amx_screen'er an admin?
 if(!cmd_access(id, level, cid, 3))
 {
  return PLUGIN_HANDLED
 }
 
 //Read the arguements
 new arg1[24], arg2[4]
 read_argv(1, arg1, 23)
 read_argv(2, arg2, 3)
 
 new screens = str_to_num(arg2)
 new maxscreens = get_pcvar_num(maxss)
 
 //Let us make sure that there aren't too many screenshots taken
 if(screens > maxscreens)
 {
  console_print(id, "[AMXX] You cannot take that many screenshots!")
 
  return PLUGIN_HANDLED
 }
 
 //Does the target exist?
 player = cmd_target(id, arg1, 1)
 if (!player)
 {
  return PLUGIN_HANDLED
 }
 
 //How many screenshots?
 new Float:interval = get_pcvar_float(ssinterval)
 new array[2]
 array[0] = id
 array[1] = player
 set_task(interval, "takeScreen", 0, array,2, "a", screens)
 
 return PLUGIN_HANDLED
}
 
public takeScreen(array[2])
{
 new player = array[1]
 new id = array[0]
 
 //Get time, admin name, and target name
 new timestamp[32], timestampmsg[128], name[32], adminname[32]
 get_time("%m/%d/%Y - %H:%M:%S", timestamp, 31)
 get_user_name(player, name, 31)
 get_user_name(id, adminname, 31)
 
 //No timestamp
 if(get_pcvar_num(timestamptype) == 0)
 {
  client_print(player, print_chat, "** Screenshot taken on player ^"%s^" by admin ^"%s^" **", name, adminname)
 }
 //Client Print only
 else if(get_pcvar_num(timestamptype) == 1)
 {
  //client_print Timestamp Message
  client_print(player, print_chat, "** Screenshot taken on player ^"%s^" by admin ^"%s^" (%s) **", name, adminname, timestamp)
 }
 //HUD Message only
 else if(get_pcvar_num(timestamptype) == 2)
 {
  //HUD Timestamp Message
  set_hudmessage(player, 255, 0, -1.0, 0.3, 0, 0.25, 1.0, 0.0, 0.0, 4)
  format(timestampmsg, 127, "** TIMESTAMP - %s **", timestamp)
  show_hudmessage(player, timestampmsg)
 }
 //Both
 else if(get_pcvar_num(timestamptype) == 3)
 {
  //HUD Timestamp Message
  set_hudmessage(player, 255, 0, -1.0, 0.3, 0, 0.25, 1.0, 0.0, 0.0, 4)
  format(timestampmsg, 127, "** TIMESTAMP - %s **", timestamp)
  show_hudmessage(player, timestampmsg)
 
  //client_print Timestamp Message
  client_print(player, print_chat, "** Screenshot taken on player ^"%s^" by admin ^"%s^" (%s) **", name, adminname, timestamp)
 }
 set_task(0.2,"take_screenshot",player)
 //Notify other admins about taking snapshot
 client_cmd(id, "amx_chat ** Screenshot taken on player ^"%s^" (%s) **", name, timestamp)
 return PLUGIN_CONTINUE
}
public take_screenshot(player)
{
 client_cmd(player, "snapshot")
 return PLUGIN_CONTINUE 
}
But I'm not a coder ;)

I ask about some improvements:
- switch() instead of if() statements
- code optimization
- hide nick of admin if amx_activity is set to 1

admin_screen2.sma

Last edited by isotonic; 02-18-2012 at 19:35.
isotonic is offline
 



Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off

Forum Jump


All times are GMT -4. The time now is 09:15.


Powered by vBulletin®
Copyright ©2000 - 2024, vBulletin Solutions, Inc.
Theme made by Freecode