HLMOD.HU Forrás Megtekintés - www.hlmod.hu
  1. #include <amxmodx>
  2. #include <fakemeta>
  3. #include <fun>
  4. #include <hamsandwich>
  5. #include <cstrike>
  6. #include <zombieplague>
  7.  
  8. #define is_valid_player(%1) (1 <= %1 <= 32)
  9.  
  10. new KL_V_MODEL[64] = "models/goldenawp/v_goldenawp.mdl"
  11. new KL_P_MODEL[64] = "models/goldenawp/p_goldenawp.mdl"
  12.  
  13. /* Pcvars */
  14. new cvar_dmgmultiplier, cvar_goldbullets, cvar_custommodel, cvar_uclip
  15.  
  16. // Item ID
  17. new g_itemid
  18.  
  19. new bool:g_HasDg[33]
  20.  
  21. new bullets[ 33 ]
  22.  
  23. // Sprite
  24. new m_spriteTexture
  25.  
  26. const Wep_awp = ((1<<CSW_AWP))
  27.  
  28. public plugin_init()
  29. {
  30.  
  31. /* CVARS */
  32. cvar_dmgmultiplier = register_cvar("zp_goldenawp_dmg_multiplier", "3")
  33. cvar_custommodel = register_cvar("zp_goldenawp_custom_model", "1")
  34. cvar_goldbullets = register_cvar("zp_goldenawp_gold_bullets", "1")
  35. cvar_uclip = register_cvar("zp_goldenawp_unlimited_clip", "1")
  36.  
  37. // Register The Plugin
  38. register_plugin("[ZP] Extra: Golden Awp", "1.1", "Davidoff")
  39. // Register Zombie Plague extra item
  40. g_itemid = zp_register_extra_item("Arany AWP", 40, ZP_TEAM_HUMAN)
  41. // Death Msg
  42. register_event("DeathMsg", "Death", "a")
  43. // Weapon Pick Up
  44. register_event("WeapPickup","checkModel","b","1=19")
  45. // Current Weapon Event
  46. register_event("CurWeapon","checkWeapon","be","1=1")
  47. register_event("CurWeapon", "make_tracer", "be", "1=1", "3>0")
  48. // Ham TakeDamage
  49. RegisterHam(Ham_TakeDamage, "player", "fw_TakeDamage")
  50. register_forward( FM_CmdStart, "fw_CmdStart" )
  51. RegisterHam(Ham_Spawn, "player", "fwHamPlayerSpawnPost", 1)
  52.  
  53. }
  54.  
  55. public client_connect(id)
  56. {
  57. g_HasDg[id] = false
  58. }
  59.  
  60. public client_disconnect(id)
  61. {
  62. g_HasDg[id] = false
  63. }
  64.  
  65. public Death()
  66. {
  67. g_HasDg[read_data(2)] = false
  68. }
  69.  
  70. public fwHamPlayerSpawnPost(id)
  71. {
  72. g_HasDg[id] = false
  73. }
  74.  
  75. public plugin_precache()
  76. {
  77. precache_model(KL_V_MODEL)
  78. precache_model(KL_P_MODEL)
  79. m_spriteTexture = precache_model("sprites/dot.spr")
  80. }
  81.  
  82. public zp_user_infected_post(id)
  83. {
  84. if (zp_get_user_zombie(id))
  85. {
  86. g_HasDg[id] = false
  87. }
  88. }
  89.  
  90. public checkModel(id)
  91. {
  92. if ( zp_get_user_zombie(id) )
  93. return PLUGIN_HANDLED
  94.  
  95. new szWeapID = read_data(2)
  96.  
  97. if ( szWeapID == CSW_AWP && g_HasDg[id] == true && get_pcvar_num(cvar_custommodel) )
  98. {
  99. set_pev(id, pev_viewmodel2, KL_V_MODEL)
  100. set_pev(id, pev_weaponmodel2, KL_P_MODEL)
  101. }
  102. return PLUGIN_HANDLED
  103. }
  104.  
  105. public checkWeapon(id)
  106. {
  107. new plrClip, plrAmmo, plrWeap[32]
  108. new plrWeapId
  109.  
  110. plrWeapId = get_user_weapon(id, plrClip , plrAmmo)
  111.  
  112. if (plrWeapId == CSW_AWP && g_HasDg[id])
  113. {
  114. checkModel(id)
  115. }
  116. else
  117. {
  118. return PLUGIN_CONTINUE
  119. }
  120.  
  121. if (plrClip == 0 && get_pcvar_num(cvar_uclip))
  122. {
  123. // If the user is out of ammo..
  124. get_weaponname(plrWeapId, plrWeap, 31)
  125. // Get the name of their weapon
  126. give_item(id, plrWeap)
  127. engclient_cmd(id, plrWeap)
  128. engclient_cmd(id, plrWeap)
  129. engclient_cmd(id, plrWeap)
  130. }
  131. return PLUGIN_HANDLED
  132. }
  133.  
  134.  
  135.  
  136. public fw_TakeDamage(victim, inflictor, attacker, Float:damage)
  137. {
  138. if ( is_valid_player( attacker ) && get_user_weapon(attacker) == CSW_AWP && g_HasDg[attacker] )
  139. {
  140. SetHamParamFloat(4, damage * get_pcvar_float( cvar_dmgmultiplier ) )
  141. }
  142. }
  143.  
  144. public fw_CmdStart( id, uc_handle, seed )
  145. {
  146. if( !is_user_alive( id ) )
  147. return PLUGIN_HANDLED
  148.  
  149. if( ( get_uc( uc_handle, UC_Buttons ) & IN_ATTACK2 ) && !( pev( id, pev_oldbuttons ) & IN_ATTACK2 ) )
  150. {
  151. new szClip, szAmmo
  152. new szWeapID = get_user_weapon( id, szClip, szAmmo )
  153.  
  154.  
  155. }
  156. return PLUGIN_HANDLED
  157. }
  158.  
  159.  
  160. public make_tracer(id)
  161. {
  162. if (get_pcvar_num(cvar_goldbullets))
  163. {
  164. new clip,ammo
  165. new wpnid = get_user_weapon(id,clip,ammo)
  166. new pteam[16]
  167.  
  168. get_user_team(id, pteam, 15)
  169.  
  170. if ((bullets[id] > clip) && (wpnid == CSW_AWP) && g_HasDg[id])
  171. {
  172. new vec1[3], vec2[3]
  173. get_user_origin(id, vec1, 1) // origin; your camera point.
  174. get_user_origin(id, vec2, 4) // termina; where your bullet goes (4 is cs-only)
  175.  
  176.  
  177. //BEAMENTPOINTS
  178. message_begin( MSG_BROADCAST,SVC_TEMPENTITY)
  179. write_byte (0) //TE_BEAMENTPOINTS 0
  180. write_coord(vec1[0])
  181. write_coord(vec1[1])
  182. write_coord(vec1[2])
  183. write_coord(vec2[0])
  184. write_coord(vec2[1])
  185. write_coord(vec2[2])
  186. write_short( m_spriteTexture )
  187. write_byte(1) // framestart
  188. write_byte(5) // framerate
  189. write_byte(2) // life
  190. write_byte(10) // width
  191. write_byte(0) // noise
  192. write_byte( 255 ) // r, g, b
  193. write_byte( 215 ) // r, g, b
  194. write_byte( 0 ) // r, g, b
  195. write_byte(200) // brightness
  196. write_byte(150) // speed
  197. message_end()
  198. }
  199.  
  200. bullets[id] = clip
  201. }
  202.  
  203. }
  204.  
  205. public zp_extra_item_selected(player, itemid)
  206. {
  207. if ( itemid == g_itemid )
  208. {
  209. if ( user_has_weapon(player, CSW_AWP) )
  210. {
  211. drop_prim(player)
  212. }
  213.  
  214. give_item(player, "weapon_awp")
  215. client_print(player, print_chat, "Vettel egy Arany AWP-t !")
  216. g_HasDg[player] = true;
  217. }
  218. }
  219.  
  220. stock drop_prim(id)
  221. {
  222. new weapons[32], num
  223. get_user_weapons(id, weapons, num)
  224. for (new i = 0; i < num; i++) {
  225. if (Wep_awp & (1<<weapons[i]))
  226. {
  227. static wname[32]
  228. get_weaponname(weapons[i], wname, sizeof wname - 1)
  229. engclient_cmd(id, "drop", wname)
  230. }
  231. }
  232. }
  233. /* AMXX-Studio Notes - DO NOT MODIFY BELOW HERE
  234. *{\\ rtf1\\ ansi\\ deff0{\\ fonttbl{\\ f0\\ fnil Tahoma;}}\n\\ viewkind4\\ uc1\\ pard\\ lang1034\\ f0\\ fs16 \n\\ par }
  235. */
  236.