HLMOD.HU Forrás Megtekintés - www.hlmod.hu
  1. // UNCOMMENT IF YOU USE ANOTHER MOD THAN CS and CS-CZ
  2. //#define NO_CS_CZ
  3.  
  4. /***************************************************************************************************/
  5.  
  6. #include <amxmodx>
  7.  
  8.  
  9. new count_puke[33]
  10. new bool:PukeFlag[33]
  11. new bool:aim[33]
  12. new counter[33]
  13. #if !defined NO_CS_CZ
  14. new player_origins[33][3]
  15. #endif
  16.  
  17. public puke_on_player(id)
  18. {
  19.  
  20. if (get_cvar_num("amx_maxpukes")==0)
  21. return PLUGIN_HANDLED
  22. if (!is_user_alive(id) )
  23. return PLUGIN_HANDLED
  24. if ( (get_cvar_num("amx_puke_admin")==1) && !(get_user_flags(id) & ADMIN_LEVEL_A) )
  25. {
  26. console_print(id, "[AMX] Nincs elerhetoseged a parancs hasznalatahoz.")
  27. return PLUGIN_HANDLED
  28. }
  29. if(PukeFlag[id])
  30. return PLUGIN_HANDLED
  31.  
  32. #if !defined NO_CS_CZ
  33. new player_origin[3], players[32], inum=0, dist, last_dist=99999, last_id
  34.  
  35. get_user_origin(id,player_origin,0)
  36. get_players(players,inum,"b")
  37. if (inum>0) {
  38. for (new i=0;i<inum;i++) {
  39. if (players[i]!=id) {
  40. dist = get_distance(player_origin,player_origins[players[i]])
  41. if (dist<last_dist) {
  42. last_id = players[i]
  43. last_dist = dist
  44. }
  45. }
  46. }
  47. if (last_dist<80) {
  48. #endif
  49. if (count_puke[id] > get_cvar_num("amx_maxpukes") ){
  50. client_print(id,print_chat,"Hanyni csak %d alkalommal birsz egy korben !", id), get_cvar_num("amx_maxpukes")
  51. return PLUGIN_CONTINUE
  52. }
  53. new player_name[32]
  54. get_user_name(id, player_name, 31)
  55. #if !defined NO_CS_CZ
  56. new dead_name[32]
  57. get_user_name(last_id, dead_name, 31)
  58. client_print(0,print_chat,"%s lehanyta %s Halott Testet !! HaHaHaHa !!", player_name, dead_name)
  59. #else
  60. client_print(0,print_chat,"%s Okad !!", id), player_name)
  61. #endif
  62. count_puke[id]+=1
  63. new ids[1]
  64. ids[0]=id
  65. PukeFlag[id]=true
  66. aim[id]=false
  67. counter[id]=0
  68. new rand_sound=random_num(0,1)
  69. switch(rand_sound)
  70. {
  71. case 0: emit_sound(id, CHAN_VOICE, "puke/puke.wav", 1.0, ATTN_NORM, 0, PITCH_NORM)
  72. case 1: emit_sound(id, CHAN_VOICE, "puke/puke2.wav", 1.0, ATTN_NORM, 0, PITCH_NORM)
  73. }
  74. set_task(0.3,"make_puke",2412+id,ids,1,"a",9)
  75. #if !defined NO_CS_CZ
  76. }
  77. else
  78. {
  79. client_print(id,print_chat,"Nincs halott test a kozeledben.")
  80. return PLUGIN_HANDLED
  81. }
  82. }
  83. #endif
  84. return PLUGIN_HANDLED
  85. }
  86.  
  87. public sqrt(num)
  88. {
  89. new div = num
  90. new result = 1
  91. while (div > result) {
  92. div = (div + result) / 2
  93. result = num / div
  94. }
  95. return div
  96. }
  97.  
  98. public make_puke(ids[])
  99. {
  100. new id=ids[0]
  101. new vec[3]
  102. new aimvec[3]
  103. new velocityvec[3]
  104. new length
  105. get_user_origin(id,vec, 1)
  106. get_user_origin(id,aimvec,3)
  107. new distance = get_distance(vec,aimvec)
  108. new speed = floatround(distance*1.9)
  109.  
  110. velocityvec[0]=aimvec[0]-vec[0]
  111. velocityvec[1]=aimvec[1]-vec[1]
  112. velocityvec[2]=aimvec[2]-vec[2]
  113.  
  114. length=sqrt(velocityvec[0]*velocityvec[0]+velocityvec[1]*velocityvec[1]+velocityvec[2]*velocityvec[2])
  115.  
  116. velocityvec[0]=velocityvec[0]*speed/length
  117. velocityvec[1]=velocityvec[1]*speed/length
  118. velocityvec[2]=velocityvec[2]*speed/length
  119.  
  120. message_begin(MSG_BROADCAST,SVC_TEMPENTITY)
  121. write_byte(101)
  122. write_coord(vec[0])
  123. write_coord(vec[1])
  124. write_coord(vec[2]-2)
  125. write_coord(velocityvec[0])
  126. write_coord(velocityvec[1])
  127. write_coord(velocityvec[2])
  128. write_byte(82) // color
  129. write_byte(160) // speed
  130. message_end()
  131.  
  132. counter[id]++
  133. if(counter[id]==9)
  134. PukeFlag[id]=false
  135.  
  136. }
  137.  
  138. public death_event()
  139. {
  140. new victim = read_data(2)
  141. #if !defined NO_CS_CZ
  142. get_user_origin(victim,player_origins[victim],0)
  143. #endif
  144.  
  145. if(PukeFlag[victim])
  146. reset_puke(victim)
  147.  
  148. return PLUGIN_CONTINUE
  149. }
  150.  
  151. public reset_puke(id)
  152. {
  153. if(task_exists(2412+id))
  154. remove_task(2412+id)
  155. emit_sound(id,CHAN_VOICE,"puke/puke.wav", 0.0, ATTN_NORM, 0, PITCH_NORM)
  156. PukeFlag[id]=false
  157.  
  158. return PLUGIN_CONTINUE
  159. }
  160.  
  161. public reset_hud(id)
  162. {
  163. if(task_exists(2412+id))
  164. remove_task(2412+id)
  165. emit_sound(id,CHAN_VOICE,"puke/puke.wav", 0.0, ATTN_NORM, 0, PITCH_NORM)
  166. PukeFlag[id]=false
  167.  
  168. count_puke[id]=1
  169.  
  170. return PLUGIN_CONTINUE
  171. }
  172.  
  173. public puke_help(id)
  174. {
  175. client_print(id, print_chat, "Bindeld be a hanyashoz ezt: puke")
  176. client_print(id, print_chat, "Nyisd meg a konzolt es irdd bele: bind ^"key^" ^"puke^"")
  177. client_print(id, print_chat, "ex: bind ^"x^" ^"puke^"")
  178.  
  179. return PLUGIN_CONTINUE
  180. }
  181.  
  182. public handle_say(id)
  183. {
  184. new said[192]
  185. read_args(said,192)
  186. remove_quotes(said)
  187.  
  188. if( ((containi(said, "puke") != -1) && !(containi(said, "/puke") != -1) ) ||( ((containi(said, "vomir") != -1) && !(containi(said, "/vomir") != -1) ) ) )
  189. {
  190. client_print(id, print_chat, "[AMX] Hanyas segitseghez irdd a chatbe: /puke")
  191. }
  192.  
  193. return PLUGIN_CONTINUE
  194. }
  195.  
  196. public plugin_precache()
  197. {
  198. if (file_exists("sound/puke/puke.wav"))
  199. precache_sound("puke/puke.wav")
  200. if (file_exists("sound/puke/puke2.wav"))
  201. precache_sound("puke/puke2.wav")
  202.  
  203. return PLUGIN_CONTINUE
  204. }
  205.  
  206. public client_connect(id)
  207. {
  208. PukeFlag[id]=false
  209. count_puke[id]=1
  210.  
  211. return PLUGIN_CONTINUE
  212. }
  213.  
  214. public client_disconnect(id)
  215. {
  216. reset_hud(id)
  217.  
  218. return PLUGIN_CONTINUE
  219. }
  220.  
  221. public plugin_init()
  222. {
  223. register_plugin("AMX Puke","0.2","KRoTaL")
  224. register_clcmd("puke","puke_on_player",0,"- Puke on a dead player")
  225. register_clcmd("vomir","puke_on_player",0,"- Puke on a dead player")
  226. register_clcmd("say /puke","puke_help",0,"- Displays puke help")
  227. register_clcmd("say","handle_say")
  228. register_cvar("amx_maxpukes","1")
  229. register_cvar("amx_puke_admin","0")
  230. register_event("DeathMsg","death_event","a")
  231. register_event("ResetHUD", "reset_hud", "be")
  232.  
  233. return PLUGIN_CONTINUE
  234. }
  235.