seroff

Auto recording demo 2.5 By IzI | Bonaqua (Rebuild) + Seroff

Jun 22nd, 2016
202
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 6.94 KB | None | 0 0
  1. #include <amxmodx>
  2.  
  3. new const CFG_FILE[]="addons/amxmodx/configs/demo.cfg";
  4.  
  5. #define NAME "Auto recording demo"
  6. #define VERSION "2.5"
  7. #define AUTHOR "IzI | Bonaqua (Rebuild) + Seroff"
  8.  
  9. new g_DemoEnable, g_DemoRtimer, g_DemoPrefix, g_DemoName, g_DemoMsgType, g_DemoHudrgb, g_DemoHudx, g_DemoHudy, g_DemoEffect, g_DemoMsgTypePrintChat
  10. new Red, Green, Blue, Effect, Float:FadeIn, Float:FadeOut, Float:HoldTime
  11.  
  12. public plugin_init()
  13. {
  14. register_plugin( NAME, VERSION, AUTHOR )
  15. g_DemoEnable = register_cvar("amx_demo_enable", "");
  16. g_DemoRtimer = register_cvar("amx_demo_rectime", "");
  17. g_DemoPrefix = register_cvar("amx_demo_prefix", "");
  18. g_DemoName = register_cvar("amx_demo_name", "");
  19. g_DemoMsgType = register_cvar("amx_demo_msg_type", "");
  20. g_DemoMsgTypePrintChat = register_cvar("amx_demo_msg_chat_type", "");
  21. g_DemoHudrgb = register_cvar("amx_demo_hud_colour", "");
  22. g_DemoHudx = register_cvar("amx_demo_hud_xpozition", "");
  23. g_DemoHudy = register_cvar("amx_demo_hud_ypozition", "");
  24. g_DemoEffect = register_cvar("amx_demo_hud_effect", "");
  25. }
  26.  
  27. public plugin_cfg(){
  28. if(!file_exists(CFG_FILE)){
  29. new Formate[124];
  30. formatex(Formate,charsmax(Formate),"// %s (%s) By [%s]",NAME,VERSION,AUTHOR);
  31. write_file(CFG_FILE,Formate,-1);
  32. write_file(CFG_FILE,"",-1);
  33. write_file(CFG_FILE,"// ================================================ //",-1);
  34. write_file(CFG_FILE,"// Автоматическая запись демок на стороне игрока. //",-1);
  35. write_file(CFG_FILE,"// ================================================ //",-1);
  36. write_file(CFG_FILE,"^n^n",-1);
  37. write_file(CFG_FILE,"// Главные квары",-1);
  38. write_file(CFG_FILE,"amx_demo_enable ^"1^" // Работа плагина [ 0 = Выключен. 1 = Включён. ]",-1);
  39. write_file(CFG_FILE,"amx_demo_prefix ^"AMXX Demo^" // Префикс",-1);
  40. write_file(CFG_FILE,"amx_demo_name ^"recdemo^" // Название демки",-1);
  41. write_file(CFG_FILE,"amx_demo_rectime ^"10.0^" // Время через которое начнётся запись демо",-1);
  42. write_file(CFG_FILE,"amx_demo_msg_type ^"1^" // Тип оповещения [ 0 = Выключено. 1 = Чат. 2 = Худ. ]",-1);
  43. write_file(CFG_FILE,"amx_demo_msg_chat_type ^"0^" // Тип оповещения в чат [ 0 = Цветной чат. 1 = Стадартный ] ( Если amx_demo_msg_type ^"1^" )",-1);
  44. write_file(CFG_FILE,"^n",-1);
  45. write_file(CFG_FILE,"// Настройки HUD'a ( Если amx_demo_msg_type ^"2^" )",-1);
  46. write_file(CFG_FILE,"amx_demo_hud_colour ^"51, 153, 255^" // Цвет сообщения в формате RGB [ ПРИМЕР: 51, 153, 255 ]",-1);
  47. write_file(CFG_FILE,"amx_demo_hud_xpozition ^"0.01^" // Расположение по оси Х, стандартно 0.01",-1);
  48. write_file(CFG_FILE,"amx_demo_hud_ypozition ^"0.65^" // Расположение по оси Y, стандартно 0.65",-1);
  49. write_file(CFG_FILE,"amx_demo_hud_effect ^"1^" // Эффекты HUD'a [ 0 = Плавный переход. 1 = Мерцание + Плавный переход. 2. Печатная машинка. ]",-1);
  50. write_file(CFG_FILE,"^n^n",-1);
  51. write_file(CFG_FILE,"// Сообщение в консоль о том что конфиг загружен всё впорядке",-1);
  52. write_file(CFG_FILE,"echo ^"^"",-1);
  53. write_file(CFG_FILE,"echo ^" Demo CFG Loaded...^"",-1);
  54. write_file(CFG_FILE,"echo ^"^"",-1);
  55. }
  56. server_cmd("exec %s",CFG_FILE)
  57. }
  58.  
  59. public client_putinserver(i)
  60. {
  61. if(get_pcvar_num(g_DemoEnable) == 1)
  62. {
  63. set_task(get_pcvar_float(g_DemoRtimer), "g_RecDemoFunc", i);
  64. }
  65. }
  66.  
  67. public g_RecDemoFunc(i)
  68. {
  69. if(is_user_connected(i))
  70. {
  71. new Name[33], Time[9], Data[64], g_szDemoPrefix[64], g_szDemoName[64],g_formatex[1024];
  72.  
  73. get_user_name(i, Name, 32)
  74.  
  75. get_time("%H:%M:%S", Time, 8)
  76. get_time("%d.%m.%Y", Data, 63)
  77.  
  78.  
  79. get_pcvar_string( g_DemoPrefix, g_szDemoPrefix, 63 );
  80. get_pcvar_string( g_DemoName, g_szDemoName, 63 );
  81.  
  82. formatex(g_formatex,charsmax(g_formatex),"%s_%s_%s",g_szDemoName,Time,Data);
  83. replace_all(g_formatex,1023,".","_");
  84. replace_all(g_formatex,1023,":","_");
  85. client_cmd(i, "stop; record ^"%s^"", g_formatex)
  86.  
  87. switch(get_pcvar_num(g_DemoMsgType))
  88. {
  89. case 1:
  90. {
  91. switch(get_pcvar_num(g_DemoMsgTypePrintChat))
  92. {
  93. case 0:
  94. {
  95. ChatColor(i, "^3[^4%s^3]^1 Внимание ^3%s^1!", g_szDemoPrefix, Name)
  96. ChatColor(i, "^3[^4%s^3]^1 Идёт запись демо ^"^3%s.dem^1^"", g_szDemoPrefix, g_formatex)
  97. ChatColor(i, "^3[^4%s^3]^1 Время записи: ^4%s^1 Дата: ^4%s^1", g_szDemoPrefix , Time, Data)
  98. }
  99. case 1:
  100. {
  101. client_print(i, print_chat, "[%s] Внимание %s!", g_szDemoPrefix, Name)
  102. client_print(i, print_chat, "[%s] Идёт запись демо ^"%s.dem^"", g_szDemoPrefix, g_formatex)
  103. client_print(i, print_chat, "[%s] Время записи: %s Дата: %s", g_szDemoPrefix , Time, Data)
  104. }
  105. }
  106. }
  107. case 2:
  108. {
  109. {
  110. get_hud_color(Red, Green, Blue)
  111. switch(get_pcvar_num(g_DemoEffect))
  112. {
  113. case 1:
  114. {
  115. Effect = 1
  116. FadeIn = 0.2
  117. FadeOut = 0.2
  118. HoldTime = 6.0
  119. }
  120. case 2:
  121. {
  122. Effect = 2
  123. FadeIn = 0.05
  124. FadeOut = 0.5
  125. HoldTime = 6.0
  126. }
  127. default:
  128. {
  129. Effect = 0
  130. FadeIn = 0.5
  131. FadeOut = 0.5
  132. HoldTime = 6.0
  133. }
  134. }
  135. set_hudmessage( Red, Green, Blue, get_pcvar_float(g_DemoHudx), get_pcvar_float(g_DemoHudy), Effect, 6.0, HoldTime, FadeIn, FadeOut, 2)
  136. show_hudmessage(i, "[%s] Внимание %s!^n[%s] Идёт запись демо ^"%s.dem^"^n[%s] Время записи: %s Дата: %s", g_szDemoPrefix, Name, g_szDemoPrefix, g_formatex, g_szDemoPrefix, Time, Data)
  137. }
  138. }
  139. }
  140. }
  141. return PLUGIN_HANDLED
  142. }
  143.  
  144. get_hud_color(&r, &g, &b)
  145. {
  146. new color[20]
  147. static Red[5], Green[5], Blue[5]
  148.  
  149. get_pcvar_string(g_DemoHudrgb, color, charsmax(color))
  150. parse(color, Red, charsmax(Red), Green, charsmax(Green), Blue, charsmax(Blue))
  151.  
  152. r = str_to_num(Red)
  153. g = str_to_num(Green)
  154. b = str_to_num(Blue)
  155. }
  156.  
  157. /* Сток цветного чата */
  158. stock ChatColor(const id, const input[], any:...)
  159. {
  160. new count = 1, players[32]
  161. static msg[191]
  162. vformat(msg, 190, input, 3)
  163.  
  164. replace_all(msg, 190, "!g", "^4") // Зелёный
  165. replace_all(msg, 190, "!y", "^1") // Стандартный
  166. replace_all(msg, 190, "!t", "^3") // Цвет команды
  167.  
  168. if (id) players[0] = id; else get_players(players, count, "ch")
  169. {
  170. for (new i = 0; i < count; i++)
  171. {
  172. if (is_user_connected(players[i]))
  173. {
  174. message_begin(MSG_ONE_UNRELIABLE, get_user_msgid("SayText"), _, players[i])
  175. write_byte(players[i]);
  176. write_string(msg);
  177. message_end();
  178. }
  179. }
  180. }
  181. }
Advertisement
Add Comment
Please, Sign In to add comment