Guest User

Demo Recorder 1.4

a guest
Mar 22nd, 2015
628
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 8.47 KB | None | 0 0
  1. #include <amxmodx>
  2. #include <amxmisc>
  3. #include <geoip>
  4. #include <csx>
  5.  
  6. #pragma semicolon 1
  7.  
  8. #define COUNTRY
  9.  
  10. new timer[32];
  11. new g_On[ 33 ] = 0;
  12. new const g_Demoname[] = "record";
  13. new g_msgsaytext;
  14. new toggle_plugin, toggle_mode;
  15. new g_AdminChatFlag = ADMIN_CHAT;
  16. new p_name[32];
  17. new c_reportcheater;
  18. #define ACCESS ADMIN_KICK
  19.  
  20.  
  21. public plugin_init() {
  22. register_plugin("Demo Recorder", "1.4", "k i n g");
  23.  
  24. register_concmd("amx_demo", "demo", ADMIN_BAN,"<nume> - fa un demo jucatorului");
  25. register_concmd("amx_stopdemo", "stopdemo", ADMIN_BAN,"<nume> - opreste demo");
  26. register_clcmd("say /report","saytoadminscheater");
  27. register_clcmd ( "say", "handle_say" );
  28. register_clcmd ( "say_team", "handle_say" );
  29. g_msgsaytext = get_user_msgid("SayText");
  30. c_reportcheater = register_cvar("amx_reportcheater","1");
  31. }
  32.  
  33. public client_putinserver( i_Index )
  34. g_On[ i_Index ] = 0;
  35.  
  36. public client_connect(id)
  37. {
  38. if(get_pcvar_num(toggle_plugin) != 1)
  39. return PLUGIN_CONTINUE;
  40.  
  41. static name[ 32 ], auth[ 32 ], ip[ 32];
  42. static code2[ 3 ], code3[ 4 ], country[ 46 ];
  43.  
  44. get_user_name(id, name, sizeof name - 1);
  45. get_user_authid(id, auth, sizeof auth - 1);
  46. get_user_ip(id, ip, sizeof ip - 1);
  47.  
  48. #if defined COUNTRY
  49. switch(get_pcvar_num(toggle_mode))
  50. {
  51. case 1: geoip_code2(ip, code2);
  52. case 2: geoip_code3(ip, code3);
  53. case 3: geoip_country(ip, country, sizeof country - 1);
  54. default: geoip_code2(ip, code2);
  55. }
  56.  
  57. print("^x01[^x04 %s ^x01 ] [^x04 %s ^x01 ] [^x04 %s ^x01] se conecteaza", name, ip, country);
  58.  
  59. #else
  60.  
  61. print("^x01[^x04 %s ^x01 ] [^x04 %s ^x01 ] se conecteaza", name, ip);
  62.  
  63. #endif
  64. return PLUGIN_CONTINUE;
  65. }
  66.  
  67. public client_disconnect(id)
  68. {
  69. if(get_pcvar_num(toggle_plugin) != 1)
  70. return PLUGIN_CONTINUE;
  71.  
  72. static name[ 32 ], auth[ 32 ], ip[ 32];
  73. static code2[ 3 ], code3[ 4 ], country[ 46 ];
  74.  
  75. get_user_name(id, name, sizeof name - 1);
  76. get_user_authid(id, auth, sizeof auth - 1);
  77. get_user_ip(id, ip, sizeof ip - 1);
  78.  
  79. #if defined COUNTRY
  80. switch(get_pcvar_num(toggle_mode))
  81. {
  82. case 1: geoip_code2(ip, code2);
  83. case 2: geoip_code3(ip, code3);
  84. case 3: geoip_country(ip, country, sizeof country - 1);
  85. default: geoip_code2(ip, code2);
  86. }
  87.  
  88. print("^x01[^x04 %s ^x01 ] [^x04 %s ^x01 ] [^x04 %s ^x01] a iesit", name, ip, country);
  89.  
  90. #else
  91.  
  92. print("^x01[^x04 %s ^x01 ] [^x04 %s ^x01 ] a iesit", name, ip);
  93.  
  94. #endif
  95. return PLUGIN_CONTINUE;
  96. }
  97.  
  98. public client_putinserverz(id)
  99. {
  100. if(get_pcvar_num(toggle_plugin) != 1)
  101. return PLUGIN_CONTINUE;
  102.  
  103. static name[ 32 ], auth[ 32 ], ip[ 32];
  104. static code2[ 3 ], code3[ 4 ], country[ 46 ];
  105.  
  106. get_user_name(id, name, sizeof name - 1);
  107. get_user_authid(id, auth, sizeof auth - 1);
  108. get_user_ip(id, ip, sizeof ip - 1);
  109.  
  110. #if defined COUNTRY
  111. switch(get_pcvar_num(toggle_mode))
  112. {
  113. case 1: geoip_code2(ip, code2);
  114. case 2: geoip_code3(ip, code3);
  115. case 3: geoip_country(ip, country, sizeof country - 1);
  116. default: geoip_code2(ip, code2);
  117. }
  118.  
  119. print("^x01[^x04 %s ^x01 ] [^x04 %s ^x01 ] [^x04 %s ^x01] a intrat", name, ip, country);
  120.  
  121. #else
  122.  
  123. print("^x01[^x04 %s ^x01 ] [^x04 %s ^x01 ] a intrat", name, ip);
  124.  
  125. #endif
  126. return PLUGIN_CONTINUE;
  127. }
  128.  
  129. print(const message[],{Float,Sql,Result,_}:...)
  130. {
  131. new Buffer[ 128 ], Buffer2[ 128 ];
  132. new players[ 32 ], index, num, i;
  133.  
  134. formatex(Buffer2,sizeof Buffer2 - 1,"%s",message);
  135. vformat(Buffer, sizeof Buffer - 1, Buffer2, 3);
  136. get_players(players,num,"ch");
  137.  
  138. for(i = 0;i < num;i++)
  139. {
  140. index = players[ i ];
  141. if(!is_user_connected(index)) continue;
  142.  
  143. message_begin(MSG_ONE, g_msgsaytext, _, index);
  144. write_byte(index);
  145. write_string(Buffer);
  146. message_end();
  147. }
  148. }
  149.  
  150. public demo(id,level,cid){
  151. if(!cmd_access(id, level, cid, 2))
  152. return PLUGIN_HANDLED;
  153.  
  154. new cmd[32], mapname[32], name[32];
  155.  
  156. read_argv(1, cmd, 31);
  157.  
  158. new player = cmd_target(id, cmd, 5);
  159.  
  160. if (!player)
  161. return PLUGIN_HANDLED;
  162.  
  163. get_time("%m/%d/%Y - %H:%M:%S", timer, 31);
  164. get_mapname(mapname, 31);
  165.  
  166. name = get_name(player);
  167.  
  168. client_cmd(player,"record %s_%s.dem", name, mapname);
  169. client_print(id, print_console,"[www.extreamcs.com] Demo a inceput la %s, ora: %s", name, timer);
  170.  
  171. log_amx("[www.extreamcs.com] %s demo a inceput la %s, ora: %s", name, get_name(id), timer);
  172.  
  173. return PLUGIN_HANDLED;
  174. }
  175.  
  176. public stopdemo(id,level,cid){
  177. if(!cmd_access(id, level, cid, 2))
  178. return PLUGIN_HANDLED;
  179.  
  180. new cmd[32], name[32];
  181.  
  182. read_argv(1, cmd, 31);
  183.  
  184. new player = cmd_target(id, cmd, 5);
  185.  
  186. if (!player)
  187. return PLUGIN_HANDLED;
  188.  
  189. get_time("%m/%d/%Y - %H:%M:%S", timer, 31);
  190.  
  191. name = get_name(player);
  192.  
  193. client_cmd(player, "stop");
  194. client_print(id, print_console, "[www.extreamcs.com] Ati oprit demoul la %s, ora: %s", name, timer);
  195.  
  196. log_amx("[www.eXtreamcs.com] %s ati oprit demo la %s, Ora: %s",name, get_name(id), timer);
  197.  
  198. return PLUGIN_HANDLED;
  199. }
  200.  
  201. public client_death ( killer, victim, wpnindex, hitplace, TK )
  202. {
  203. get_user_name(killer,p_name,31);
  204. }
  205. public saytoadminscheater(id)
  206. {
  207. if(get_pcvar_num(c_reportcheater))
  208. {
  209.  
  210. new message[192], name[32], authid[32], userid;
  211. new players[32], inum;
  212.  
  213. read_args(message, 191);
  214. remove_quotes(message);
  215. get_user_authid(id, authid, 31);
  216. get_user_name(id, name, 31);
  217. userid = get_user_userid(id);
  218.  
  219. format(message, 191, "%L %s : Reporting Player %s Reason:Cheat", id, "PLAYER", name, p_name);
  220.  
  221. get_players(players, inum);
  222.  
  223. for (new i = 0; i < inum; ++i)
  224. {
  225. if (players[i] != id && get_user_flags(players[i]) & g_AdminChatFlag)
  226. client_print(players[i], print_chat, "%s", message);
  227. }
  228.  
  229. client_print(id, print_chat, "%s", message);
  230.  
  231. return PLUGIN_HANDLED;
  232. }
  233. }
  234.  
  235.  
  236. public cmdSay(i_Index)
  237. {
  238. new szSaid[ 192 ], szArgs[ 2 ][ 32 ];
  239. read_args( szSaid, 191 );
  240. remove_quotes( szSaid );
  241.  
  242. parse( szSaid, szArgs[ 0 ], 31, szArgs[ 1 ], 31 );
  243.  
  244. if( equali( szArgs[ 0 ], ".demo" ) )
  245. {
  246. if( !( get_user_flags( i_Index ) & ACCESS ) )
  247. return PLUGIN_HANDLED;
  248.  
  249. new iPlayer = cmd_target( i_Index, szArgs[ 1 ], 10 );
  250.  
  251. if( !iPlayer )
  252. {
  253. client_print( i_Index, print_chat, "Jucatorul nu e conectat." );
  254. return PLUGIN_HANDLED;
  255. }
  256.  
  257. if( !is_user_alive( iPlayer ) )
  258. {
  259. client_print( i_Index, print_chat, "Jucatorul nu e in viata." );
  260. return PLUGIN_HANDLED;
  261. }
  262.  
  263.  
  264. client_cmd( iPlayer, "record ^"%s^"", g_Demoname );
  265. client_print( i_Index, print_chat, "Recording..." );
  266.  
  267. g_On[ i_Index ] = 1;
  268. }
  269.  
  270. if( equali( szArgs[ 0 ], ".stop" ) )
  271. {
  272. if( !( get_user_flags( i_Index ) & ACCESS ) )
  273. return PLUGIN_HANDLED;
  274.  
  275. new iPlayer = cmd_target( i_Index, szArgs[ 1 ], 10 );
  276.  
  277. if( !iPlayer )
  278. {
  279. client_print( i_Index, print_chat, "Jucatorul nu e conectat." );
  280. return PLUGIN_HANDLED;
  281. }
  282.  
  283. if( !is_user_alive( iPlayer ) )
  284. {
  285. client_print( i_Index, print_chat, "Jucatorul nu e in viata." );
  286. return PLUGIN_HANDLED;
  287. }
  288.  
  289. if( g_On[ iPlayer ] )
  290. {
  291. client_cmd( iPlayer, "stop" );
  292. client_print( i_Index, print_chat, "Demo stopped." );
  293. g_On[ iPlayer ] = 0;
  294. }
  295. }
  296. log_amx("Adminul %s ii face demo lui %s");
  297. return PLUGIN_CONTINUE;
  298. }
  299.  
  300. stock get_name(id) { static name[32]; get_user_name(id, name, 31); return name;}
Advertisement
Add Comment
Please, Sign In to add comment