HLMOD.HU Forrás Megtekintés - www.hlmod.hu
  1. #include <amxmodx>
  2. #include <amxmisc>
  3. #include <sockets>
  4. #include <colorchat>
  5.  
  6. #define PLUGIN "TS3 Jelentés"
  7. #define VERSION "1.0"
  8. #define AUTHOR "MASKED"//+hackziner az alapokért +mforce a Jelentés rendszer pluginjáért
  9.  
  10. #define QUERYPORT 10011
  11. #define JELENT_IDOKOZ 180.0 //Mennyi időnközönként jelenthetnek a játékosok msp-ben megadva
  12. #define FLAG ADMIN_KICK
  13.  
  14. new tcp_socket
  15. new ts_ip[32]
  16. new ts_virtual_server[32]
  17. new ts_query[32]
  18. new ts_query_password[32]
  19. new status
  20. new format_msg[256]
  21. new g_iTarget[33]
  22. new bool:jelenthet[33]
  23. new indok[300]
  24. new tag
  25. new Prefix
  26.  
  27. new request
  28.  
  29.  
  30. public plugin_init() {
  31.  
  32. register_plugin(PLUGIN, VERSION, AUTHOR)
  33.  
  34. register_cvar("ts_version",VERSION,FCVAR_SERVER)
  35. register_cvar("ts_ip","ts.szerverem.hu",FCVAR_SERVER) //TS3 szervered IP vagy Domain címe
  36. register_cvar("ts_virtual_server","1",FCVAR_SERVER) //Virtuális szerver kiválasztása, ha nem tudod kérdezd meg a szolgáltatód
  37. register_cvar("ts_query","serveradmin",FCVAR_PROTECTED) //Query Fiók felhasználóneve az alap: serveradmin
  38. register_cvar("ts_query_password","",FCVAR_PROTECTED)//Query Fiók jelszava
  39. register_clcmd("say /jelent", "jelent")
  40. register_clcmd("say_team /jelent", "jelent")
  41. register_clcmd("_Jelent", "jelentok")
  42. Prefix = register_cvar("ts_prefix", "Szervered Neve") //Itt tudod a Szervered prefixét beállítani
  43.  
  44. get_cvar_string("ts_ip",ts_ip,31)
  45. get_cvar_string("ts_virtual_server",ts_virtual_server,31)
  46. get_cvar_string("ts_query",ts_query,31)
  47. get_cvar_string("ts_query_password",ts_query_password,31)
  48.  
  49. tcp_socket=socket_open(ts_ip,QUERYPORT,SOCKET_TCP,status)
  50. if(status!=0)
  51. {
  52. server_print("TS: Nem Sikerült csatlakozni a szerverhez!")
  53. return PLUGIN_CONTINUE
  54. }
  55.  
  56. set_task(1.0,"tsconnect",0,"",0,"b")
  57. set_task(60.0, "keeplogin",_,_,_,"b");
  58. return PLUGIN_CONTINUE
  59. }
  60.  
  61. public keeplogin(){
  62. format(format_msg,64,"use %s^n",ts_virtual_server)
  63. socket_send(tcp_socket,format_msg,63)
  64. }
  65.  
  66. public client_authorized(id) {
  67. jelenthet[id] = true
  68. }
  69.  
  70. public client_disconnect(id) {
  71. if(task_exists(id)) remove_task(id)
  72. }
  73.  
  74. public tsconnect(){
  75. static buffer[5012]
  76. if(socket_change(tcp_socket,1))
  77. {
  78. socket_recv(tcp_socket,buffer,5011)
  79. if(containi(buffer,"TS3")==0)
  80. {
  81. request=1
  82. format(format_msg,64,"login %s %s^n",ts_query,ts_query_password)
  83. socket_send(tcp_socket,format_msg,63)
  84. format(format_msg,64,"use %s^n",ts_virtual_server)
  85. socket_send(tcp_socket,format_msg,63)
  86. }
  87. if(containi(buffer,"error id=0 msg=ok")==0)
  88. {
  89. if(request==1)
  90. {
  91. server_print("TS: Sikeres Query bejelentkezés!")
  92. format(format_msg,64,"use %s^n",ts_virtual_server)
  93. socket_send(tcp_socket,format_msg,63)
  94. request=3
  95. }
  96. if(request==3)
  97. {
  98. server_print("TS: Sikeres Virtualis szerver választás!")
  99. request=0
  100. }
  101. if(request==4)
  102. {
  103. ColorChat(tag, GREEN, "[ %s ]^1 Jelentés sikeresen elküldve!", Prefix)
  104. server_print("TS: Jelentés Kézbesítve!")
  105. request=0
  106. }
  107. }
  108. }
  109. }
  110.  
  111. public jelent(id)
  112. {
  113. if(!jelenthet[id])
  114. {
  115. ColorChat(id, GREEN, "[ %s ]^1 Jelenleg nem jelenthetsz, próbálkozz később!", Prefix)
  116. return
  117. }
  118. new jelentmenu[256]
  119. formatex(jelentmenu, charsmax(jelentmenu), "\r[ %s ] \wCsaló Jelentése", Prefix);
  120.  
  121. new menu = menu_create(jelentmenu, "jelenth")
  122.  
  123. new players[32], num
  124. new szName[32], szTempid[32]
  125.  
  126. get_players(players, num, "ach")
  127.  
  128. for(new i; i < num; i++)
  129. {
  130. get_user_name(players[i], szName, charsmax(szName))
  131. num_to_str(get_user_userid(players[i]), szTempid, charsmax(szTempid))
  132. menu_additem(menu, szName, szTempid, 0)
  133. }
  134. menu_setprop(menu, MPROP_EXIT, MEXIT_ALL)
  135. menu_setprop(menu, MPROP_BACKNAME, "Vissza")
  136. menu_setprop(menu, MPROP_NEXTNAME, "Következő")
  137. menu_setprop(menu, MPROP_EXITNAME, "Kilépés")
  138. menu_display(id, menu)
  139. }
  140.  
  141. public jelenth(id, menu, item)
  142. {
  143. if(item == MENU_EXIT)
  144. {
  145. menu_destroy(menu)
  146. return PLUGIN_HANDLED
  147. }
  148.  
  149. new szData[6], szName[64], iAccess, iCallback
  150. menu_item_getinfo(menu, item, iAccess, szData, charsmax(szData), szName, charsmax(szName), iCallback)
  151.  
  152. g_iTarget[id] = find_player("k", str_to_num(szData))
  153.  
  154. client_cmd(id, "messagemode _Jelent")
  155. menu_destroy(menu)
  156. return PLUGIN_HANDLED
  157. }
  158.  
  159. public sendtextmessage(id)
  160. {
  161. new kuldo[32], jelentett[32]
  162. new a[191], b[191], c[191]
  163. get_user_name(id, kuldo, charsmax(kuldo))
  164. get_user_name(g_iTarget[id], jelentett, charsmax(jelentett))
  165. format(a, 190, "%s", indok)
  166. replace_all(a, 190, " ", "\s")
  167. replace_all(a, 190, "|", "\s")
  168. format(b, 190, "%s", kuldo)
  169. replace_all(b, 190, " ", "\s")
  170. replace_all(b, 190, "|", "\s")
  171. format(c, 190, "%s", jelentett)
  172. replace_all(c, 190, " ", "\s")
  173. replace_all(c, 190, "|", "\s")
  174. format(format_msg,255,"sendtextmessage targetmode=3 target=999 msg=[B][COLOR=#00ff00]%s[/COLOR]\sjelentette\s[COLOR=#00ff00]%s[/COLOR]-t.\sIndok:\s[COLOR=#ff0000]%s[/COLOR][/B] ^n", b, c, a)
  175. socket_send(tcp_socket,format_msg,255)
  176. request=4
  177. tag=id
  178. }
  179.  
  180. public jelentok(id)
  181. {
  182. indok[0] = EOS
  183. read_args(indok, charsmax(indok))
  184. remove_quotes(indok)
  185.  
  186. if(!strlen(indok))
  187. return PLUGIN_HANDLED
  188.  
  189. new num, jatekos[32]
  190. get_players(jatekos, num, "ch");
  191. new kuldo[32], jelentett[32]
  192. get_user_name(id, kuldo, charsmax(kuldo))
  193. get_user_name(g_iTarget[id], jelentett, charsmax(jelentett))
  194. set_task(3.0, "sendtextmessage", id)
  195. jelenthet[id] = false
  196. set_task(JELENT_IDOKOZ, "jelentenged", id)
  197. for(new i, iId ;i<num;i++)
  198. {
  199. iId=jatekos[i]
  200. if(get_user_flags(iId) & FLAG) ColorChat(iId, GREEN, "[ ADMINOK ]^3 %s ^1jelentette ^3%s^1-t. Indok: ^4%s", kuldo, jelentett, indok)
  201. }
  202. log_to_file( "jelentesek.log", "%s jelentette %s-t. Indok: %s", kuldo, jelentett, indok)
  203. return PLUGIN_CONTINUE
  204. }
  205.  
  206. public jelentenged(id) {
  207. jelenthet[id] = true
  208. }
  209.  
  210. public plugin_end ()
  211. {
  212. socket_close(tcp_socket)
  213. }