HLMOD.HU Forrás Megtekintés - www.hlmod.hu
  1. /*
  2. PUBLIC SERVER RULES 1.20 ( 2005-08-18 )
  3.  
  4. Plugin by Priski
  5. HU Language by: Voga.
  6.  
  7. Usage :
  8. Put rules in rules.txt file in cstrike folder
  9. and set rules_speed and rules_interval whatever you like
  10.  
  11. Commands :
  12. rules_show - shows rules listed in rules.txt
  13. rules_enable - set this to 0 to disable automatic rules display
  14. say /rules - displays rules to normal user
  15.  
  16. CVARS :
  17. rules_interval - interval between automatic rules display
  18. rules_admin_only - disables say /rules command from regular users
  19. rules_join - if set 1 displays rules after player have joined server
  20. rules_hudmessage_time - time how long hudmessage is displayed
  21. rules_join_timeout - delay to show rules when joining to the server
  22.  
  23. Changelog :
  24.  
  25. 1.20 / 2005-08-18
  26. - removed client chat rules
  27. - fixed major bugs
  28.  
  29. 1.11 / 2005-08-15
  30. - fixed some bugs
  31.  
  32. 1.10 / 2005-08-14
  33. - new CVARs : rules_hudmessage, rules_hudmessage_time
  34. rules_join_timeout
  35. - Rules in hudmessage mode also
  36.  
  37. 1.03 / 2005-08-12
  38. - rules_enable command fix.
  39. - new CVAR "rules_join" set 1 to show rules
  40. to players when they join server
  41.  
  42. 1.02 / 2005-08-11
  43. - optimized code
  44. - rules_enable is now a command
  45. - default interval is now 10 minutes
  46.  
  47. 1.01 / 2005-08-11
  48. - added rules_admin_only & say /rules command
  49. - variables are global now
  50.  
  51. 1.0 / 2005-08-11
  52. - first release
  53.  
  54. */
  55.  
  56. #include <amxmodx>
  57. #include <amxmisc>
  58.  
  59. new base[] = "szabaly.txt"
  60.  
  61. new i, num, text[127], hudmsg[440] //a hud üzenetnek max 439 karaktere lehet
  62.  
  63. public plugin_init()
  64. {
  65.  
  66. register_plugin("AMXX Public server rules", "1.20", "Priski")
  67.  
  68. // register command
  69.  
  70. register_concmd("rules_show", "rules", ADMIN_KICK, "- mutassa a szabályokat mindenkinek")
  71. register_concmd("rules_enable", "r_enable", ADMIN_KICK, "- <1|0> autó üzenet ki/be kapcsolása")
  72. register_cvar("rules_admin_only", "0") //Sima játékosok nem használhatják a /szabaly parancsot | 1 - Bekapcsol
  73. register_cvar("rules_join", "1") //Ha ez bevan kapcsolva akkor ahogy fellép az adott játékos a szerverre a lenti cvarral beállított másodperc után már mutatja a hud üzenetet
  74. register_cvar("rules_join_timeout", "5") //Mennyit késsen a hud üzenet behozása,mikor a játékos feljön a szerverre (másodperc)
  75. register_cvar("rules_hudmessage_time", "10") //Idő ammenyi ideig mutassa a HUD üzenetet a bal felső sarokban (másodperc)
  76. register_cvar("rules_interval", "600") //Időköz az automatikus szabályok között
  77. register_clcmd("say /szabaly", "clientrules", ADMIN_ALL, "- szabályok megtekintése")
  78. }
  79.  
  80. public plugin_cfg() {
  81.  
  82. if (!file_exists(base)) {
  83. write_file(base, "; Ez az alap szabály fájl, amit a plugin generál")
  84. write_file(base, "; Próbálj ne 439-nél több karaktert írni")
  85. write_file(base, "; Üdvözlettel: Voga. | HLMOD.hu")
  86. write_file(base, " ")
  87. write_file(base, "Ide írd a szabályzatot")
  88. console_print(0, "%s fájl nem található...új létrehozása folyamatban ...", base)
  89. }
  90.  
  91. }
  92.  
  93. public client_authorized ( id ) {
  94. // on join display rules
  95.  
  96. if (get_cvar_num("rules_join")) {
  97. new tmp[1]
  98. tmp[0] = id
  99. set_task(1.0, "showrules",id,tmp,1)
  100. console_print(0, "[user %d] client auth!", tmp[0])
  101. }
  102.  
  103. return PLUGIN_HANDLED
  104. }
  105.  
  106.  
  107. public showrules (pid[]) {
  108. new id = pid[0]
  109.  
  110. if ( get_user_team(id) != 1 && get_user_team(id) != 2 ) {
  111. if (id) {
  112. new tmp[1]
  113. tmp[0] = id
  114. set_task(2.0, "showrules",id,tmp,1) // not yet in server
  115. console_print(0, "[user %d] várakozás míg csapatba csatlakozik ...", id)
  116. }
  117. return PLUGIN_HANDLED
  118. }
  119.  
  120. new tmp[1]
  121. tmp[0] = id
  122.  
  123. console_print(0, "[user %d] csapatba csatlakozott : %d", id, get_user_team(id))
  124. console_print(0, "[user %d] printing rules after %d seconds", id, get_cvar_num("rules_join_timeout"))
  125.  
  126. set_task(get_cvar_float("rules_join_timeout"), "printrules", id, tmp, 1) // not yet in server
  127.  
  128. return PLUGIN_HANDLED
  129. }
  130.  
  131. public printrules(pid[])
  132. {
  133. new id = pid[0]
  134. if (file_exists(base))
  135. {
  136.  
  137. console_print(0, "[user] adott játékosnak mutatja a szabályzatot: %d", id)
  138.  
  139. set_hudmessage ( 200, 150, 0, 0.02, 0.25, 2, 0.1, get_cvar_float("rules_hudmessage_time"), 0.05, 1.0, 1) //Itt testre szabhatod a HUD üzenetedet
  140. format(hudmsg, 439, "")
  141.  
  142. // read all the rules
  143. for(i=0; read_file(base, i, text, 127, num); i++) {
  144. if (num > 0 && text[0] != ';') {
  145. // display with predefined delay
  146. add(hudmsg,439,text)
  147. add(hudmsg,439,"^n")
  148. }
  149. }
  150.  
  151. // show hudmessages
  152. show_hudmessage(id, hudmsg)
  153.  
  154. }
  155.  
  156. return PLUGIN_HANDLED
  157. }
  158.  
  159.  
  160. public r_enable(id, level, cid)
  161. {
  162. if (!cmd_access(id, level, cid, 0)) { // NOT ADMIN
  163. return PLUGIN_HANDLED
  164. }
  165.  
  166. new arg[3]
  167.  
  168. read_argv(1, arg, 2)
  169. new value = str_to_num(arg)
  170.  
  171. if (!isalnum(arg[0]))
  172. value = -1
  173.  
  174. if (value == 0) {
  175.  
  176. if (task_exists(2)) // close task
  177. remove_task(2)
  178.  
  179. console_print(id, "Te kikapcsoltad az autó HUD üzenetet")
  180. return PLUGIN_HANDLED
  181.  
  182. }
  183. if (value == 1) {
  184. // activate task, reload if already exist
  185. if (task_exists(2)) {
  186. change_task(2, get_cvar_float("rules_interval"))
  187. } else {
  188. set_task(get_cvar_float("rules_interval"), "rules", 2, "", 0, "b")
  189. }
  190. console_print(id, "Te bekapcsoltad az autó HUD üzenetet")
  191. return PLUGIN_HANDLED
  192. }
  193. if (task_exists(2)) {
  194. console_print(id, "autoüzenet : ON.")
  195. } else {
  196. console_print(id, "autoüzenet : OFF.")
  197. }
  198. console_print(id, "rules_enable <1|0> (1 = ON, 0 = OFF)")
  199. return PLUGIN_HANDLED
  200.  
  201. }
  202.  
  203. public clientrules(id, level, cid) {
  204. new pID[1]
  205. pID[0] = id
  206.  
  207. console_print(0,"[user %d]Mutassa a szabályzatot csak nekem",pID[0])
  208. printrules(pID[0])
  209. }
  210.  
  211. public rules(id, level, cid)
  212. {
  213. new pID[1]
  214. pID[0] = id
  215.  
  216. if (!cmd_access(id, level, cid, 0)) { // NOT ADMIN
  217. return PLUGIN_HANDLED
  218. }
  219.  
  220. // read file to all users
  221. pID[0] = 0
  222. console_print(0,"[user %d]Mutassa a szabályzatot mindenkinek",id)
  223. printrules(pID[0])
  224.  
  225. // Reset scheduled task after display
  226. if (get_cvar_float("rules_interval") > 0) {
  227. if (task_exists(2)) {
  228. change_task(2, get_cvar_float("rules_interval"))
  229. } else {
  230. set_task(get_cvar_float("rules_interval"), "rules", 200, "", 0, "b")
  231. }
  232. }
  233.  
  234. return PLUGIN_HANDLED
  235. }
  236.