HLMOD.HU Forrás Megtekintés - www.hlmod.hu
  1. /*
  2. Credits:
  3.  
  4. GHW_Chronic for sizing help
  5. knekter for some code
  6. v3x for misc help
  7.  
  8. Sizes:
  9.  
  10. 0 = Small
  11. 1 = Large
  12.  
  13.  
  14. Fordította: BBk - Death of Legend
  15.  
  16. */
  17. #include <amxmodx>
  18. #include <amxmisc>
  19. #include <cstrike>
  20.  
  21. #define keys (1<<0)|(1<<1)|(1<<2)|(1<<3)|(1<<9)
  22.  
  23. new bool:haslaser[33] = false
  24. new sprite, red, green , blue , crosshairs
  25.  
  26. public plugin_init()
  27. {
  28. register_plugin("Laser Sight","1.2","Mr. Jiggafly")
  29.  
  30. register_clcmd("say /buyls","showMenu")
  31. register_clcmd("say_team /buyls","showMenu")
  32.  
  33. register_cvar("amx_laser_cost","200")
  34. register_cvar("amx_laser_size","0")
  35.  
  36. register_menucmd(register_menuid("showmenu"),1023,"give_ls")
  37.  
  38. register_event("DeathMsg","hook_death","a")
  39.  
  40. set_task(60.0,"advertise")
  41. }
  42.  
  43. public plugin_precache()
  44. {
  45. sprite = precache_model("sprites/zbeam4.spr")
  46. }
  47.  
  48. public client_putinserver(id)
  49. {
  50. haslaser[id] = false
  51.  
  52. }
  53.  
  54. public client_disconnect(id)
  55. {
  56. haslaser[id] = false
  57. }
  58.  
  59. public showMenu(id)
  60. {
  61. new menu[256]
  62. new len = format(menu, 255, "\rLaseriranyzek Bolt^n")
  63. len += format(menu[len], 255 - len, "\y1.\w Piros lezert szeretnek!^n")
  64. len += format(menu[len], 255 - len, "\y2.\w Zold lezert szeretnek!^n")
  65. len += format(menu[len], 255 - len, "\y3.\w Kek lezert szeretnek!^n")
  66. len += format(menu[len], 255 - len, "\y4.\w Feher lezert szeretnek!^n^n")
  67. len += format(menu[len], 255 - len, "\y0.\w Nem szeretnek lezert!^n")
  68.  
  69. show_menu(id,keys,menu,-1,"showmenu")
  70. }
  71.  
  72. public give_ls(id,key)
  73. {
  74. new money = cs_get_user_money(id)
  75. new price = get_cvar_num("amx_laser_cost")
  76. new crosshairs = get_cvar_num("amx_laser_crosshairs")
  77.  
  78. if(money >= price)
  79. {
  80. switch(key)
  81. {
  82. case 0:
  83. {
  84. haslaser[id] = true
  85.  
  86. red = 255
  87. blue = 0
  88. green = 0
  89. }
  90. case 1:
  91. {
  92. haslaser[id] = true
  93.  
  94. red = 0
  95. blue = 0
  96. green = 255
  97. }
  98. case 2:
  99. {
  100. haslaser[id] = true
  101.  
  102. red = 0
  103. blue = 255
  104. green = 0
  105. }
  106. case 3:
  107. {
  108. haslaser[id] = true
  109.  
  110. red = 255
  111. blue = 255
  112. green = 255
  113. }
  114. case 4:
  115. {
  116. return PLUGIN_HANDLED
  117. }
  118. }
  119. cs_set_user_money(id,money - price,1)
  120. }
  121. else
  122. {
  123. client_print(id,print_chat,"[AMXX] Nincs eleg penzed a lezerhez.")
  124.  
  125. return PLUGIN_HANDLED
  126. }
  127. return PLUGIN_HANDLED
  128. }
  129.  
  130. public client_PreThink(id)
  131. {
  132. new size = get_cvar_num("amx_laser_size")
  133.  
  134. if(haslaser[id] == true && size == 0)
  135. {
  136. new porigin[3], horigin[3];
  137. get_user_origin(id, porigin, 2);
  138. get_user_origin(id, horigin, 3);
  139.  
  140. message_begin(MSG_BROADCAST, SVC_TEMPENTITY);
  141. write_byte(0); // TE_BEAMPOINTS
  142. write_coord(horigin[0] + 1) // Start X
  143. write_coord(horigin[1] + 0) // Start Y
  144. write_coord(horigin[2] + 0) // Start Z
  145. write_coord(horigin[0] - 1) // End X
  146. write_coord(horigin[1] - 0) // End Y
  147. write_coord(horigin[2] - 0) // End Z
  148. write_short(sprite) // Sprite
  149. write_byte(1) // Start frame
  150. write_byte(10) // Frame rate
  151. write_byte(1) // Life
  152. write_byte(5) // Line width
  153. write_byte(0) // Noise
  154. write_byte(red) // Red
  155. write_byte(green) // Green
  156. write_byte(blue) // Blue
  157. write_byte(150) // Brightness
  158. write_byte(10) // Scroll speed
  159. message_end()
  160. }
  161. if(haslaser[id] == true && size == 1)
  162. {
  163. new porigin[3], horigin[3];
  164. get_user_origin(id, porigin, 2);
  165. get_user_origin(id, horigin, 3);
  166.  
  167. message_begin(MSG_BROADCAST, SVC_TEMPENTITY);
  168. write_byte(0); // TE_BEAMPOINTS
  169. write_coord(porigin[0]) // Start X
  170. write_coord(porigin[1]) // Start Y
  171. write_coord(porigin[2]) // Start Z
  172. write_coord(horigin[0]) // End X
  173. write_coord(horigin[1]) // End Y
  174. write_coord(horigin[2]) // End Z
  175. write_short(sprite) // Sprite
  176. write_byte(1) // Start frame
  177. write_byte(10) // Frame rate
  178. write_byte(1) // Life
  179. write_byte(5) // Line width
  180. write_byte(0) // Noise
  181. write_byte(red) // Red
  182. write_byte(green) // Green
  183. write_byte(blue) // Blue
  184. write_byte(150) // Brightness
  185. write_byte(10) // Scroll speed
  186. message_end()
  187. }
  188. return PLUGIN_HANDLED
  189. }
  190.  
  191. public advertise()
  192. {
  193. new price = get_cvar_num("amx_laser_cost")
  194.  
  195. client_print(0,print_chat,"[AMXX] Lezeriranyzek Vasarolhato! Vasarlashoz ird be /buyls. Ara: $%d",price)
  196. }
  197.  
  198. public hook_death(id)
  199. {
  200. haslaser[read_data(2)] = false
  201. }
  202.