HLMOD.HU Forrás Megtekintés - www.hlmod.hu
  1. #include <amxmodx>
  2.  
  3. new count_ejaculate[33]
  4. new bool:EjaculateFlag[33]
  5. new bool:aim[33]
  6. new counter[33]
  7. #if !defined NO_CS_CZ
  8. new player_origins[33][3]
  9. #endif
  10.  
  11. public ejaculate_on_player(id)
  12. {
  13.  
  14. if (get_cvar_num("amx_maxejaculations")==0)
  15. return PLUGIN_HANDLED
  16. if (!is_user_alive(id))
  17. return PLUGIN_HANDLED
  18. if ( (get_cvar_num("amx_ejaculate_admin")==1) && !(get_user_flags(id) & ADMIN_LEVEL_A) )
  19. {
  20. console_print(id,"[AMXX] Nincs hozzaferesed a parancshoz.")
  21. return PLUGIN_HANDLED
  22. }
  23. if(EjaculateFlag[id])
  24. return PLUGIN_HANDLED
  25.  
  26. #if !defined NO_CS_CZ
  27. new player_origin[3], players[32], inum=0, dist, last_dist=99999, last_id
  28.  
  29. get_user_origin(id,player_origin,0)
  30. get_players(players,inum,"b")
  31. if (inum>0) {
  32. for (new i=0;i<inum;i++) {
  33. if (players[i]!=id) {
  34. dist = get_distance(player_origin,player_origins[players[i]])
  35. if (dist<last_dist) {
  36. last_id = players[i]
  37. last_dist = dist
  38. }
  39. }
  40. }
  41. if (last_dist<80) {
  42. #endif
  43. if (count_ejaculate[id] > get_cvar_num("amx_maxejaculations")) {
  44. client_print(id,print_chat,"Csak %d -szer tudsz hokizni koronkent.", get_cvar_num("amx_maxejaculations"))
  45. return PLUGIN_CONTINUE
  46. }
  47. new player_name[32]
  48. get_user_name(id, player_name, 31)
  49. #if !defined NO_CS_CZ
  50. new dead_name[32]
  51. get_user_name(last_id, dead_name, 31)
  52. client_print(0,print_chat,"%s ra hokizott %s halott testere! HaHaHaHa!", player_name, dead_name)
  53. #else
  54. client_print(0,print_chat,"%s hokizik", player_name)
  55. #endif
  56. count_ejaculate[id]+=1
  57. new ids[1]
  58. ids[0]=id
  59. EjaculateFlag[id]=true
  60. aim[id]=false
  61. counter[id]=0
  62. emit_sound(id, CHAN_VOICE, "ejaculate/ejaculate.wav", 1.0, ATTN_NORM, 0, PITCH_NORM)
  63. set_task(1.0,"make_ejaculate",4210+id,ids,1,"a",10)
  64. #if !defined NO_CS_CZ
  65. }
  66. else
  67. {
  68. client_print(id,print_chat,"Nincs holttest a kozeledben.")
  69. return PLUGIN_HANDLED
  70. }
  71. }
  72. #endif
  73.  
  74. return PLUGIN_HANDLED
  75. }
  76.  
  77. public sqrt(num)
  78. {
  79. new div = num
  80. new result = 1
  81. while (div > result) {
  82. div = (div + result) / 2
  83. result = num / div
  84. }
  85. return div
  86. }
  87.  
  88. public make_ejaculate(ids[])
  89. {
  90. new id=ids[0]
  91. new vec[3]
  92. new aimvec[3]
  93. new velocityvec[3]
  94. new length
  95. get_user_origin(id,vec)
  96. get_user_origin(id,aimvec,3)
  97. new distance = get_distance(vec,aimvec)
  98. new speed = floatround(distance*1.9)
  99.  
  100. velocityvec[0]=aimvec[0]-vec[0]
  101. velocityvec[1]=aimvec[1]-vec[1]
  102. velocityvec[2]=aimvec[2]-vec[2]
  103.  
  104. length=sqrt(velocityvec[0]*velocityvec[0]+velocityvec[1]*velocityvec[1]+velocityvec[2]*velocityvec[2])
  105.  
  106. velocityvec[0]=velocityvec[0]*speed/length
  107. velocityvec[1]=velocityvec[1]*speed/length
  108. velocityvec[2]=velocityvec[2]*speed/length
  109.  
  110. message_begin(MSG_BROADCAST,SVC_TEMPENTITY)
  111. write_byte(101)
  112. write_coord(vec[0])
  113. write_coord(vec[1])
  114. write_coord(vec[2])
  115. write_coord(velocityvec[0])
  116. write_coord(velocityvec[1])
  117. write_coord(velocityvec[2])
  118. write_byte(6) // color
  119. write_byte(160) // speed
  120. message_end()
  121.  
  122. counter[id]++
  123. if(counter[id]==10)
  124. EjaculateFlag[id]=false
  125. }
  126.  
  127. public death_event()
  128. {
  129. new victim = read_data(2)
  130. #if !defined NO_CS_CZ
  131. get_user_origin(victim,player_origins[victim],0)
  132. #endif
  133.  
  134. if(EjaculateFlag[victim])
  135. reset_ejaculate(victim)
  136.  
  137. return PLUGIN_CONTINUE
  138. }
  139.  
  140. public reset_ejaculate(id)
  141. {
  142. if(task_exists(4210+id))
  143. remove_task(4210+id)
  144. emit_sound(id,CHAN_VOICE,"ejaculate/ejaculate.wav", 0.0, ATTN_NORM, 0, PITCH_NORM)
  145. EjaculateFlag[id]=false
  146.  
  147. return PLUGIN_CONTINUE
  148. }
  149.  
  150. public reset_hud(id)
  151. {
  152. if(task_exists(4210+id))
  153. remove_task(4210+id)
  154. emit_sound(id,CHAN_VOICE,"ejaculate/ejaculate.wav", 0.0, ATTN_NORM, 0, PITCH_NORM)
  155. EjaculateFlag[id]=false
  156.  
  157. count_ejaculate[id]=1
  158.  
  159. return PLUGIN_CONTINUE
  160. }
  161.  
  162. public ejaculate_help(id)
  163. {
  164. client_print(id, print_chat, "Hokizni csak akkor tudsz ha be bindeled")
  165. client_print(id, print_chat, "Ird a konzolba hogy: bind ^"key^" ^"ejaculate^"")
  166. client_print(id, print_chat, "Pelda: bind ^"x^" ^"ejaculate^"")
  167.  
  168. return PLUGIN_CONTINUE
  169. }
  170.  
  171. public handle_say(id)
  172. {
  173. new said[192]
  174. read_args(said,192)
  175. remove_quotes(said)
  176.  
  177. if( ((containi(said, "ejaculate") != -1) && !(containi(said, "/ejaculate") != -1))
  178. || ((containi(said, "ejaculer") != -1) && !(containi(said, "/ejaculer") != -1)) )
  179. {
  180. client_print(id, print_chat, "[AMX] Ird /ejaculate az infokhoz")
  181. }
  182.  
  183. return PLUGIN_CONTINUE
  184. }
  185.  
  186. public plugin_precache()
  187. {
  188. if (file_exists("sound/ejaculate/ejaculate.wav"))
  189. precache_sound("ejaculate/ejaculate.wav")
  190.  
  191. return PLUGIN_CONTINUE
  192. }
  193.  
  194. public client_connect(id)
  195. {
  196. EjaculateFlag[id]=false
  197. count_ejaculate[id]=1
  198.  
  199. return PLUGIN_CONTINUE
  200. }
  201.  
  202. public client_disconnect(id)
  203. {
  204. reset_hud(id)
  205.  
  206. return PLUGIN_CONTINUE
  207. }
  208.  
  209. public plugin_init()
  210. {
  211. register_plugin("AMX Ejaculate","0.1","KRoTaL")
  212. register_clcmd("ejaculate","ejaculate_on_player",0,"- Ejaculate on a dead player")
  213. register_clcmd("ejaculer","ejaculate_on_player",0,"- Ejaculate on a dead player")
  214. register_clcmd("say /ejaculate","ejaculate_help",0,"- Displays Ejaculate help")
  215. register_clcmd("say /ejaculer","ejaculate_help",0,"- Displays Ejaculate help")
  216. register_clcmd("say","handle_say")
  217. register_cvar("amx_maxejaculations","6")
  218. register_cvar("amx_ejaculate_admin","0")
  219. register_event("DeathMsg","death_event","a")
  220. register_event("ResetHUD", "reset_hud", "be")
  221.  
  222. return PLUGIN_CONTINUE
  223. }
  224.  
  225. /* AMXX-Studio Notes - DO NOT MODIFY BELOW HERE
  226. *{\\ rtf1\\ ansi\\ ansicpg1250\\ deff0\\ deflang1038{\\ fonttbl{\\ f0\\ fnil Tahoma;}}\n\\ viewkind4\\ uc1\\ pard\\ f0\\ fs16 \n\\ par }
  227. */
  228.