Advertisement
Guest User

nozevi

a guest
Oct 4th, 2018
145
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 55.12 KB | None | 0 0
  1. #include <amxmodx>
  2. #include <fun>
  3. #include <fakemeta>
  4. #include <hamsandwich>
  5. #include <zombieplague>
  6.  
  7. #define PLUGIN "Nozevi"
  8. #define VERSION "1.0"
  9. #define AUTHOR ""
  10.  
  11. #define VIP ADMIN_IMMUNITY
  12. #define ADMIN ADMIN_BAN
  13. #define BOSS ADMIN_LEVEL_A
  14. #define Gl.ADMIN ADMIN_LEVEL_B
  15. #define OWNER ADMIN_RCON
  16.  
  17. new KNIFE1_V_MODEL[] = "models/CSO_Knifes/v_strong.mdl"
  18. new KNIFE1_P_MODEL[] = "models/CSO_Knifes/p_strong.mdl"
  19.  
  20. new KNIFE2_V_MODEL[] = "models/CSO_Knifes/v_katana.mdl"
  21. new KNIFE2_P_MODEL[] = "models/CSO_Knifes/p_katana.mdl"
  22.  
  23. new KNIFE3_V_MODEL[] = "models/CSO_Knifes/v_combat.mdl"
  24. new KNIFE3_P_MODEL[] = "models/CSO_Knifes/p_combat.mdl"
  25.  
  26. new KNIFE4_V_MODEL[] = "models/CSO_Knifes/v_hammer.mdl"
  27. new KNIFE4_P_MODEL[] = "models/CSO_Knifes/p_hammer.mdl"
  28.  
  29. new KNIFE5_V_MODEL[] = "models/CSO_Knifes/v_hammer1.mdl"
  30. new KNIFE5_P_MODEL[] = "models/CSO_Knifes/p_hammer1.mdl"
  31.  
  32. new KNIFE6_V_MODEL[] = "models/CSO_Knifes/v_hammer2.mdl"
  33. new KNIFE6_P_MODEL[] = "models/CSO_Knifes/p_hammer2.mdl"
  34.  
  35. new KNIFE7_V_MODEL[] = "models/CSO_Knifes/v_hammer3.mdl"
  36. new KNIFE7_P_MODEL[] = "models/CSO_Knifes/p_hammer3.mdl"
  37.  
  38. new KNIFE8_V_MODEL[] = "models/CSO_Knifes/v_hammer4.mdl"
  39. new KNIFE8_P_MODEL[] = "models/CSO_Knifes/p_hammer4.mdl"
  40.  
  41. new bool:g_has_strong[33]
  42. new bool:g_has_katana[33]
  43. new bool:g_has_combat[33]
  44. new bool:g_has_hammer[33]
  45. new bool:g_has_hammer1[33]
  46. new bool:g_has_hammer2[33]
  47. new bool:g_has_hammer3[33]
  48. new bool:g_has_hammer4[33]
  49.  
  50. new g_knife_menu, g_vip_knife_menu
  51. new cvar_knock_strong, cvar_jump_strong, cvar_speed_strong, cvar_damage_strong
  52. new cvar_knock_katana, cvar_jump_katana, cvar_speed_katana, cvar_damage_katana
  53. new cvar_knock_combat, cvar_jump_combat, cvar_speed_combat, cvar_damage_combat
  54. new cvar_knock_hammer, cvar_jump_hammer, cvar_speed_hammer, cvar_damage_hammer
  55. new cvar_knock_hammer1, cvar_jump_hammer1, cvar_speed_hammer1, cvar_damage_hammer1
  56. new cvar_knock_hammer2, cvar_jump_hammer2, cvar_speed_hammer2, cvar_damage_hammer2
  57. new cvar_knock_hammer3, cvar_jump_hammer3, cvar_speed_hammer3, cvar_damage_hammer3
  58. new cvar_knock_hammer4, cvar_jump_hammer4, cvar_speed_hammer4, cvar_damage_hammer4
  59.  
  60. new const g_sound_knife[] = { "items/gunpickup2.wav" }
  61.  
  62. new const strong_sounds[][] =
  63. {
  64. "CSO_Knifes/strong_draw.wav",
  65. "CSO_Knifes/strong_hit_01.wav",
  66. "CSO_Knifes/strong_hit_02.wav",
  67. "CSO_Knifes/strong_hit_wall.wav",
  68. "CSO_Knifes/strong_miss.wav",
  69. "CSO_Knifes/strong_stab.wav"
  70. }
  71.  
  72. new const katana_sounds[][] =
  73. {
  74. "CSO_Knifes/katana_draw.wav",
  75. "CSO_Knifes/katana_hit_01.wav",
  76. "CSO_Knifes/katana_hit_02.wav",
  77. "CSO_Knifes/katana_hit_wall.wav",
  78. "CSO_Knifes/katana_miss.wav",
  79. "CSO_Knifes/katana_stab.wav"
  80. }
  81.  
  82. new const combat_sounds[][] =
  83. {
  84. "CSO_Knifes/combat_draw.wav",
  85. "CSO_Knifes/combat_hit_01.wav",
  86. "CSO_Knifes/combat_hit_02.wav",
  87. "CSO_Knifes/combat_hit_wall.wav",
  88. "CSO_Knifes/combat_miss.wav",
  89. "CSO_Knifes/combat_stab.wav"
  90. }
  91.  
  92. new const hammer_sounds[][] =
  93. {
  94. "CSO_Knifes/hammer_draw.wav",
  95. "CSO_Knifes/hammer_hit_01.wav",
  96. "CSO_Knifes/hammer_hit_02.wav",
  97. "CSO_Knifes/hammer_hit_wall.wav",
  98. "CSO_Knifes/hammer_miss.wav",
  99. "CSO_Knifes/hammer_stab.wav"
  100. }
  101.  
  102. new const hammer1_sounds[][] =
  103. {
  104. "CSO_Knifes/hammer_draw.wav",
  105. "CSO_Knifes/hammer_hit_01.wav",
  106. "CSO_Knifes/hammer_hit_02.wav",
  107. "CSO_Knifes/hammer_hit_wall.wav",
  108. "CSO_Knifes/hammer_miss.wav",
  109. "CSO_Knifes/hammer_stab.wav"
  110. }
  111.  
  112. new const hammer2_sounds[][] =
  113. {
  114. "CSO_Knifes/hammer_draw.wav",
  115. "CSO_Knifes/hammer_hit_01.wav",
  116. "CSO_Knifes/hammer_hit_02.wav",
  117. "CSO_Knifes/hammer_hit_wall.wav",
  118. "CSO_Knifes/hammer_miss.wav",
  119. "CSO_Knifes/hammer_stab.wav"
  120. }
  121.  
  122. new const hammer3_sounds[][] =
  123. {
  124. "CSO_Knifes/hammer_draw.wav",
  125. "CSO_Knifes/hammer_hit_01.wav",
  126. "CSO_Knifes/hammer_hit_02.wav",
  127. "CSO_Knifes/hammer_hit_wall.wav",
  128. "CSO_Knifes/hammer_miss.wav",
  129. "CSO_Knifes/hammer_stab.wav"
  130. }
  131.  
  132. new const hammer4_sounds[][] =
  133. {
  134. "CSO_Knifes/hammer_draw.wav",
  135. "CSO_Knifes/hammer_hit_01.wav",
  136. "CSO_Knifes/hammer_hit_02.wav",
  137. "CSO_Knifes/hammer_hit_wall.wav",
  138. "CSO_Knifes/hammer_miss.wav",
  139. "CSO_Knifes/hammer_stab.wav"
  140. }
  141.  
  142. public plugin_init()
  143. {
  144. register_plugin(PLUGIN , VERSION , AUTHOR);
  145. register_cvar("zp_addon_knife", VERSION, FCVAR_SERVER);
  146.  
  147. g_knife_menu = menu_create("Izbor Nozeva","menu_handle")
  148. g_vip_knife_menu = menu_create("Izbor Nozeva","menu_handle_vip")
  149.  
  150. register_clcmd("/knife","knifemenu",ADMIN_ALL,"knife_menu")
  151.  
  152. build_menu()
  153. build_menu_vip()
  154.  
  155. register_event("CurWeapon","checkWeapon","be","1=1");
  156.  
  157. register_forward(FM_EmitSound, "CEntity__EmitSound");
  158. register_forward(FM_PlayerPreThink, "fw_PlayerPreThink");
  159.  
  160. RegisterHam(Ham_TakeDamage, "player", "fw_TakeDamage");
  161. RegisterHam(Ham_Use, "func_tank", "fw_UseStationary_Post", 1)
  162. RegisterHam(Ham_Use, "func_tankmortar", "fw_UseStationary_Post", 1)
  163. RegisterHam(Ham_Use, "func_tankrocket", "fw_UseStationary_Post", 1)
  164. RegisterHam(Ham_Use, "func_tanklaser", "fw_UseStationary_Post", 1)
  165.  
  166. register_message(get_user_msgid("DeathMsg"), "message_DeathMsg");
  167.  
  168. register_clcmd("zm_knife_katana", "clcmd_knife")
  169. register_clcmd("zm_knife_hammer", "clcmd_knife")
  170. register_clcmd("zm_knife_combat", "clcmd_knife")
  171. register_clcmd("zm_knife_strong", "clcmd_knife")
  172. register_clcmd("zm_knife_hammer1", "clcmd_knife")
  173. register_clcmd("zm_knife_hammer2", "clcmd_knife")
  174. register_clcmd("zm_knife_hammer3", "clcmd_knife")
  175. register_clcmd("zm_knife_hammer4", "clcmd_knife")
  176.  
  177. cvar_jump_strong = register_cvar("zp_strong_jump", "340.0")
  178. cvar_speed_strong = register_cvar("zp_strong_speed", "275.0")
  179. cvar_damage_strong = register_cvar("zp_strong_damage", "10.0")
  180. cvar_knock_strong = register_cvar("zp_strong_knockback", "10.0")
  181.  
  182. cvar_jump_katana = register_cvar("zp_katana_jump", "380.0")
  183. cvar_speed_katana = register_cvar("zp_katana_speed", "275.0")
  184. cvar_damage_katana = register_cvar("zp_katana_damage", "5.0")
  185. cvar_knock_katana = register_cvar("zp_katana_knockback", "2.4")
  186.  
  187. cvar_jump_combat = register_cvar("zp_combat_jump", "350.0")
  188. cvar_speed_combat = register_cvar("zp_combat_speed", "300.0")
  189. cvar_damage_combat = register_cvar("zp_combat_damage", "5.0")
  190. cvar_knock_combat = register_cvar("zp_combat_knockback", "2.6")
  191.  
  192. cvar_jump_hammer = register_cvar("zp_hammer_jump", "400.0")
  193. cvar_speed_hammer = register_cvar("zp_hammer_speed", "325.0")
  194. cvar_damage_hammer = register_cvar("zp_hammer_damage", "16.0")
  195. cvar_knock_hammer = register_cvar("zp_hammer_knockback", "14.0")
  196.  
  197. cvar_jump_hammer1 = register_cvar("zp_hammer1_jump", "420.0")
  198. cvar_speed_hammer1 = register_cvar("zp_hammer1_speed", "350.0")
  199. cvar_damage_hammer1 = register_cvar("zp_hammer1_damage", "18.0")
  200. cvar_knock_hammer1 = register_cvar("zp_hammer1_knockback", "16.0")
  201.  
  202. cvar_jump_hammer2 = register_cvar("zp_hammer2_jump", "440.0")
  203. cvar_speed_hammer2 = register_cvar("zp_hammer2_speed", "375.0")
  204. cvar_damage_hammer2 = register_cvar("zp_hammer2_damage", "20.0")
  205. cvar_knock_hammer2 = register_cvar("zp_hammer2_knockback", "18.0")
  206.  
  207. cvar_jump_hammer3 = register_cvar("zp_hammer3_jump", "460.0")
  208. cvar_speed_hammer3 = register_cvar("zp_hammer3_speed", "400.0")
  209. cvar_damage_hammer3 = register_cvar("zp_hammer3_damage", "22.0")
  210. cvar_knock_hammer3 = register_cvar("zp_hammer3_knockback", "20.0")
  211.  
  212. cvar_jump_hammer4 = register_cvar("zp_hammer4_jump", "500.0")
  213. cvar_speed_hammer4 = register_cvar("zp_hammer4_speed", "450.0")
  214. cvar_damage_hammer4 = register_cvar("zp_hammer4_damage", "28.0")
  215. cvar_knock_hammer4 = register_cvar("zp_hammer4_knockback", "26.0")
  216. }
  217.  
  218. public client_connect(id)
  219. {
  220. g_has_strong[id] = true
  221. g_has_katana[id] = false
  222. g_has_combat[id] = false
  223. g_has_hammer[id] = false
  224. g_has_hammer1[id] = false
  225. g_has_hammer2[id] = false
  226. g_has_hammer3[id] = false
  227. g_has_hammer4[id] = false
  228. }
  229.  
  230. public client_disconnect(id)
  231. {
  232. g_has_strong[id] = false
  233. g_has_katana[id] = false
  234. g_has_combat[id] = false
  235. g_has_hammer[id] = false
  236. g_has_hammer1[id] = false
  237. g_has_hammer2[id] = false
  238. g_has_hammer3[id] = false
  239. g_has_hammer4[id] = false
  240. }
  241.  
  242. public plugin_precache()
  243. {
  244. precache_model(KNIFE1_V_MODEL)
  245. precache_model(KNIFE1_P_MODEL)
  246. precache_model(KNIFE2_V_MODEL)
  247. precache_model(KNIFE2_P_MODEL)
  248. precache_model(KNIFE3_V_MODEL)
  249. precache_model(KNIFE3_P_MODEL)
  250. precache_model(KNIFE4_V_MODEL)
  251. precache_model(KNIFE4_P_MODEL)
  252. precache_model(KNIFE5_V_MODEL)
  253. precache_model(KNIFE5_P_MODEL)
  254. precache_model(KNIFE6_V_MODEL)
  255. precache_model(KNIFE6_P_MODEL)
  256. precache_model(KNIFE7_V_MODEL)
  257. precache_model(KNIFE7_P_MODEL)
  258. precache_model(KNIFE8_V_MODEL)
  259. precache_model(KNIFE8_P_MODEL)
  260.  
  261. precache_generic("sprites/zm_knife_katana.txt")
  262. precache_generic("sprites/zm_knife_hammer.txt")
  263. precache_generic("sprites/zm_knife_combat.txt")
  264. precache_generic("sprites/zm_knife_strong.txt")
  265.  
  266. precache_generic("sprites/CSO_Knifes/640hud7.spr")
  267. precache_generic("sprites/CSO_Knifes/640hud53.spr")
  268. precache_generic("sprites/CSO_Knifes/640hud38.spr")
  269. precache_generic("sprites/CSO_Knifes/640hud40.spr")
  270.  
  271. precache_sound(g_sound_knife)
  272.  
  273. for(new i = 0; i < sizeof strong_sounds; i++)
  274. precache_sound(strong_sounds[i])
  275.  
  276. for(new i = 0; i < sizeof katana_sounds; i++)
  277. precache_sound(katana_sounds[i])
  278.  
  279. for(new i = 0; i < sizeof combat_sounds; i++)
  280. precache_sound(combat_sounds[i])
  281.  
  282. for(new i = 0; i < sizeof hammer_sounds; i++)
  283. precache_sound(hammer_sounds[i])
  284.  
  285. for(new i = 0; i < sizeof hammer1_sounds; i++)
  286. precache_sound(hammer1_sounds[i])
  287.  
  288. for(new i = 0; i < sizeof hammer2_sounds; i++)
  289. precache_sound(hammer2_sounds[i])
  290.  
  291. for(new i = 0; i < sizeof hammer3_sounds; i++)
  292. precache_sound(hammer3_sounds[i])
  293.  
  294. for(new i = 0; i < sizeof hammer4_sounds; i++)
  295. precache_sound(hammer4_sounds[i])
  296. }
  297.  
  298. public clcmd_knife(id)
  299. {
  300. if(!is_user_alive(id))
  301. return;
  302.  
  303. engclient_cmd(id, "weapon_knife")
  304. }
  305.  
  306. build_menu()
  307. {
  308. menu_additem(g_knife_menu, "[\rН\w] Jump", "2")
  309. menu_additem(g_knife_menu, "[\rН\w] Brzina", "3")
  310. menu_additem(g_knife_menu, "[\rН\w] DMG^n", "1")
  311. menu_additem(g_knife_menu, "[\rН\w] \yVIP", "4")
  312. menu_additem(g_knife_menu, "[\rН\w] \yADMIN", "5")
  313. menu_additem(g_knife_menu, "[\rН\w] \yGold VIP^n", "6")
  314. menu_additem(g_knife_menu, "[\rН\w] \rHead ADMIN^n", "7")
  315. menu_additem(g_knife_menu, "[\rН\w] \dOWNER", "8")
  316. menu_setprop(g_knife_menu, MPROP_PERPAGE, 0)
  317. }
  318.  
  319. build_menu_vip()
  320. {
  321. menu_additem(g_vip_knife_menu, "[\rН\w] Jump", "2")
  322. menu_additem(g_vip_knife_menu, "[\rН\w] Brzina", "3")
  323. menu_additem(g_vip_knife_menu, "[\rН\w] DMG^n", "1")
  324. menu_additem(g_vip_knife_menu, "[\rН\w] \yVIP", "4")
  325. menu_additem(g_vip_knife_menu, "[\rН\w] \yADMIN", "5")
  326. menu_additem(g_vip_knife_menu, "[\rН\w] \yGold VIP^n", "6")
  327. menu_additem(g_vip_knife_menu, "[\rН\w] \rHead ADMIN^n", "7")
  328. menu_additem(g_vip_knife_menu, "[\rН\w] \dOWNER", "8")
  329. menu_setprop(g_vip_knife_menu, MPROP_PERPAGE, 0)
  330. }
  331.  
  332. public knifemenu(id)
  333. {
  334. if (zp_has_round_started())
  335. return;
  336.  
  337. if (!zp_has_round_started())
  338. {
  339. menu_display(id, !(get_user_flags(id) & VIP) ? g_knife_menu : g_vip_knife_menu, 0)
  340. }
  341. }
  342.  
  343. public menu_handle_vip(id, menu, item)
  344. {
  345. if(item < 0)
  346. return PLUGIN_CONTINUE
  347.  
  348. new cmd[2];
  349. new access, callback;
  350. menu_item_getinfo(menu, item, access, cmd,2,_,_, callback);
  351. new choice = str_to_num(cmd)
  352.  
  353. switch (choice)
  354. {
  355. case 1: buy_knife1(id)
  356. case 2: buy_knife2(id)
  357. case 3: buy_knife3(id)
  358. case 4: buy_knife4(id)
  359. case 5: buy_knife5(id)
  360. case 6: buy_knife6(id)
  361. case 7: buy_knife7(id)
  362. case 8: buy_knife8(id)
  363. }
  364. return PLUGIN_HANDLED;
  365. }
  366.  
  367. public menu_handle(id, menu, item)
  368. {
  369. if(item < 0)
  370. return PLUGIN_CONTINUE
  371.  
  372. new cmd[2];
  373. new access, callback;
  374. menu_item_getinfo(menu, item, access, cmd,2,_,_, callback);
  375. new choice = str_to_num(cmd)
  376.  
  377. switch (choice)
  378. {
  379. case 1: buy_knife1(id)
  380. case 2: buy_knife2(id)
  381. case 3: buy_knife3(id)
  382. case 4: buy_knife4(id)
  383. case 5: buy_knife5(id)
  384. case 6: buy_knife6(id)
  385. case 7: buy_knife7(id)
  386. case 8: buy_knife8(id)
  387. }
  388. return PLUGIN_HANDLED;
  389. }
  390.  
  391. public buy_knife1(id)
  392. {
  393. g_has_strong[id] = true
  394. g_has_katana[id] = false
  395. g_has_combat[id] = false
  396. g_has_hammer[id] = false
  397. g_has_hammer1[id] = false
  398. g_has_hammer2[id] = false
  399. g_has_hammer3[id] = false
  400. g_has_hammer4[id] = false
  401.  
  402. set_sprite(id)
  403.  
  404. message_begin(MSG_ONE, get_user_msgid("WeapPickup"), {0,0,0}, id)
  405. write_byte(29)
  406. message_end()
  407.  
  408. checkWeapon(id)
  409.  
  410. engfunc(EngFunc_EmitSound, id, CHAN_BODY, g_sound_knife, 1.0, ATTN_NORM, 0, PITCH_NORM)
  411. }
  412.  
  413. public buy_knife2(id)
  414. {
  415. g_has_strong[id] = false
  416. g_has_katana[id] = true
  417. g_has_combat[id] = false
  418. g_has_hammer[id] = false
  419. g_has_hammer1[id] = false
  420. g_has_hammer2[id] = false
  421. g_has_hammer3[id] = false
  422. g_has_hammer4[id] = false
  423.  
  424. set_sprite(id)
  425.  
  426. message_begin(MSG_ONE, get_user_msgid("WeapPickup"), {0,0,0}, id)
  427. write_byte(29)
  428. message_end()
  429.  
  430. checkWeapon(id)
  431.  
  432. engfunc(EngFunc_EmitSound, id, CHAN_BODY, g_sound_knife, 1.0, ATTN_NORM, 0, PITCH_NORM)
  433. }
  434.  
  435. public buy_knife3(id)
  436. {
  437. g_has_strong[id] = false
  438. g_has_katana[id] = false
  439. g_has_combat[id] = true
  440. g_has_hammer[id] = false
  441. g_has_hammer1[id] = false
  442. g_has_hammer2[id] = false
  443. g_has_hammer3[id] = false
  444. g_has_hammer4[id] = false
  445.  
  446. set_sprite(id)
  447.  
  448. message_begin(MSG_ONE, get_user_msgid("WeapPickup"), {0,0,0}, id)
  449. write_byte(29)
  450. message_end()
  451.  
  452. checkWeapon(id)
  453.  
  454. engfunc(EngFunc_EmitSound, id, CHAN_BODY, g_sound_knife, 1.0, ATTN_NORM, 0, PITCH_NORM)
  455. }
  456.  
  457. public buy_knife4(id)
  458. {
  459. if (get_user_flags(id) & VIP)
  460. {
  461. g_has_strong[id] = false
  462. g_has_katana[id] = false
  463. g_has_combat[id] = false
  464. g_has_hammer[id] = true
  465. g_has_hammer1[id] = false
  466. g_has_hammer2[id] = false
  467. g_has_hammer3[id] = false
  468. g_has_hammer4[id] = false
  469.  
  470.  
  471. set_sprite(id)
  472.  
  473. message_begin(MSG_ONE, get_user_msgid("WeapPickup"), {0,0,0}, id)
  474. write_byte(29)
  475. message_end()
  476.  
  477. checkWeapon(id)
  478.  
  479. engfunc(EngFunc_EmitSound, id, CHAN_BODY, g_sound_knife, 1.0, ATTN_NORM, 0, PITCH_NORM)
  480. }
  481. else
  482. {
  483. knifemenu(id)
  484. ChatColor(id, "!g[MILF] !yNoz !ydostupan samo za !gVIP! 1xBoost = VIP = 10 Days")
  485. }
  486.  
  487. }
  488.  
  489. public buy_knife5(id)
  490. {
  491. if (get_user_flags(id) & ADMIN)
  492. {
  493. g_has_strong[id] = false
  494. g_has_katana[id] = false
  495. g_has_combat[id] = false
  496. g_has_hammer[id] = false
  497. g_has_hammer1[id] = true
  498. g_has_hammer2[id] = false
  499. g_has_hammer3[id] = false
  500. g_has_hammer4[id] = false
  501.  
  502.  
  503. set_sprite(id)
  504.  
  505. message_begin(MSG_ONE, get_user_msgid("WeapPickup"), {0,0,0}, id)
  506. write_byte(29)
  507. message_end()
  508.  
  509. checkWeapon(id)
  510.  
  511. engfunc(EngFunc_EmitSound, id, CHAN_BODY, g_sound_knife, 1.0, ATTN_NORM, 0, PITCH_NORM)
  512. }
  513. else
  514. {
  515. knifemenu(id)
  516. ChatColor(id, "!g[MILF] !yNoz !ydostupan samo za !gADMIN!")
  517. }
  518.  
  519. }
  520.  
  521. public buy_knife6(id)
  522. {
  523. if (get_user_flags(id) & BOSS)
  524. {
  525. g_has_strong[id] = false
  526. g_has_katana[id] = false
  527. g_has_combat[id] = false
  528. g_has_hammer[id] = false
  529. g_has_hammer1[id] = false
  530. g_has_hammer2[id] = true
  531. g_has_hammer3[id] = false
  532. g_has_hammer4[id] = false
  533.  
  534.  
  535. set_sprite(id)
  536.  
  537. message_begin(MSG_ONE, get_user_msgid("WeapPickup"), {0,0,0}, id)
  538. write_byte(29)
  539. message_end()
  540.  
  541. checkWeapon(id)
  542.  
  543. engfunc(EngFunc_EmitSound, id, CHAN_BODY, g_sound_knife, 1.0, ATTN_NORM, 0, PITCH_NORM)
  544. }
  545. else
  546. {
  547. knifemenu(id)
  548. ChatColor(id, "!g[MILF] !yNoz !ydostupan samo za !gGold VIP!")
  549. }
  550.  
  551. }
  552.  
  553. public buy_knife7(id)
  554. {
  555. if (get_user_flags(id) & Gl.ADMIN)
  556. {
  557. g_has_strong[id] = false
  558. g_has_katana[id] = false
  559. g_has_combat[id] = false
  560. g_has_hammer[id] = false
  561. g_has_hammer1[id] = false
  562. g_has_hammer2[id] = false
  563. g_has_hammer3[id] = true
  564. g_has_hammer4[id] = false
  565.  
  566.  
  567. set_sprite(id)
  568.  
  569. message_begin(MSG_ONE, get_user_msgid("WeapPickup"), {0,0,0}, id)
  570. write_byte(29)
  571. message_end()
  572.  
  573. checkWeapon(id)
  574.  
  575. engfunc(EngFunc_EmitSound, id, CHAN_BODY, g_sound_knife, 1.0, ATTN_NORM, 0, PITCH_NORM)
  576. }
  577. else
  578. {
  579. knifemenu(id)
  580. ChatColor(id, "!g[MILF] !yНNoz !ydostupan samo za !gHead ADMIN!")
  581. }
  582.  
  583. }
  584.  
  585. public buy_knife8(id)
  586. {
  587. if (get_user_flags(id) & OWNER)
  588. {
  589. g_has_strong[id] = false
  590. g_has_katana[id] = false
  591. g_has_combat[id] = false
  592. g_has_hammer[id] = false
  593. g_has_hammer1[id] = false
  594. g_has_hammer2[id] = false
  595. g_has_hammer3[id] = false
  596. g_has_hammer4[id] = true
  597.  
  598.  
  599. set_sprite(id)
  600.  
  601. message_begin(MSG_ONE, get_user_msgid("WeapPickup"), {0,0,0}, id)
  602. write_byte(29)
  603. message_end()
  604.  
  605. checkWeapon(id)
  606.  
  607. engfunc(EngFunc_EmitSound, id, CHAN_BODY, g_sound_knife, 1.0, ATTN_NORM, 0, PITCH_NORM)
  608. }
  609. else
  610. {
  611. knifemenu(id)
  612. ChatColor(id, "!g[MILF] !yNoz !ydostupan samo za !gOWNER!")
  613. }
  614.  
  615. }
  616.  
  617. public fw_UseStationary_Post(entity, caller, activator, use_type)
  618. {
  619. if (use_type == 0 && is_user_connected(caller))
  620. checkWeapon(caller)
  621. }
  622.  
  623. public zp_user_infected_post(id)
  624. {
  625. set_sprite(id)
  626. }
  627.  
  628. public checkWeapon(id)
  629. {
  630. if(get_user_weapon(id) != CSW_KNIFE)
  631. return;
  632.  
  633. if (g_has_strong[id] || g_has_katana[id] || g_has_combat[id] || g_has_hammer[id] || g_has_hammer1[id] || g_has_hammer2[id] || g_has_hammer3[id] || g_has_hammer4[id])
  634. {
  635. checkModel(id)
  636. }
  637. return;
  638. }
  639.  
  640. public checkModel(id)
  641. {
  642. if (zp_get_user_zombie(id))
  643. {
  644. set_sprite(id)
  645. return;
  646. }
  647.  
  648. if(get_user_weapon(id) != CSW_KNIFE)
  649. return;
  650.  
  651. if (g_has_strong[id])
  652. {
  653. set_pev(id, pev_viewmodel2, KNIFE1_V_MODEL)
  654. set_pev(id, pev_weaponmodel2, KNIFE1_P_MODEL)
  655. }
  656. else if (g_has_katana[id])
  657. {
  658. set_pev(id, pev_viewmodel2, KNIFE2_V_MODEL)
  659. set_pev(id, pev_weaponmodel2, KNIFE2_P_MODEL)
  660. }
  661. else if (g_has_combat[id])
  662. {
  663. set_pev(id, pev_viewmodel2, KNIFE3_V_MODEL)
  664. set_pev(id, pev_weaponmodel2, KNIFE3_P_MODEL)
  665. }
  666. else if (g_has_hammer[id])
  667. {
  668. set_pev(id, pev_viewmodel2, KNIFE4_V_MODEL)
  669. set_pev(id, pev_weaponmodel2, KNIFE4_P_MODEL)
  670. }
  671. else if (g_has_hammer1[id])
  672. {
  673. set_pev(id, pev_viewmodel2, KNIFE5_V_MODEL)
  674. set_pev(id, pev_weaponmodel2, KNIFE5_P_MODEL)
  675. }
  676. else if (g_has_hammer2[id])
  677. {
  678. set_pev(id, pev_viewmodel2, KNIFE6_V_MODEL)
  679. set_pev(id, pev_weaponmodel2, KNIFE6_P_MODEL)
  680. }
  681. else if (g_has_hammer3[id])
  682. {
  683. set_pev(id, pev_viewmodel2, KNIFE7_V_MODEL)
  684. set_pev(id, pev_weaponmodel2, KNIFE7_P_MODEL)
  685. }
  686. else if (g_has_hammer4[id])
  687. {
  688. set_pev(id, pev_viewmodel2, KNIFE8_V_MODEL)
  689. set_pev(id, pev_weaponmodel2, KNIFE8_P_MODEL)
  690. }
  691. set_sprite(id)
  692. }
  693.  
  694. public CEntity__EmitSound(id, channel, const sample[], Float:volume, Float:attn, flags, pitch)
  695. {
  696. if (!is_user_connected(id))
  697. return HAM_IGNORED
  698.  
  699. if (zp_get_user_zombie(id))
  700. return HAM_IGNORED
  701.  
  702. if (sample[8] == 'k' && sample[9] == 'n' && sample[10] == 'i')
  703. {
  704.  
  705. if (sample[14] == 'd')
  706. {
  707. if(g_has_strong[id])
  708. emit_sound(id, channel, strong_sounds[0], volume, attn, flags, pitch)
  709. if(g_has_katana[id])
  710. emit_sound(id, channel, katana_sounds[0], volume, attn, flags, pitch)
  711. if(g_has_combat[id])
  712. emit_sound(id, channel, combat_sounds[0], volume, attn, flags, pitch)
  713. if(g_has_hammer[id])
  714. emit_sound(id, channel, hammer_sounds[0], volume, attn, flags, pitch)
  715. if(g_has_hammer1[id])
  716. emit_sound(id, channel, hammer1_sounds[0], volume, attn, flags, pitch)
  717. if(g_has_hammer2[id])
  718. emit_sound(id, channel, hammer2_sounds[0], volume, attn, flags, pitch)
  719. if(g_has_hammer3[id])
  720. emit_sound(id, channel, hammer3_sounds[0], volume, attn, flags, pitch)
  721. if(g_has_hammer4[id])
  722. emit_sound(id, channel, hammer4_sounds[0], volume, attn, flags, pitch)
  723. }
  724. else if (sample[14] == 'h')
  725. {
  726. if (sample[17] == 'w')
  727. {
  728. if(g_has_strong[id])
  729. emit_sound(id, channel, strong_sounds[3], volume, attn, flags, pitch)
  730. if(g_has_katana[id])
  731. emit_sound(id, channel, katana_sounds[3], volume, attn, flags, pitch)
  732. if(g_has_combat[id])
  733. emit_sound(id, channel, combat_sounds[3], volume, attn, flags, pitch)
  734. if(g_has_hammer[id])
  735. emit_sound(id, channel, hammer_sounds[3], volume, attn, flags, pitch)
  736. if(g_has_hammer1[id])
  737. emit_sound(id, channel, hammer1_sounds[3], volume, attn, flags, pitch)
  738. if(g_has_hammer2[id])
  739. emit_sound(id, channel, hammer2_sounds[3], volume, attn, flags, pitch)
  740. if(g_has_hammer3[id])
  741. emit_sound(id, channel, hammer3_sounds[3], volume, attn, flags, pitch)
  742. if(g_has_hammer4[id])
  743. emit_sound(id, channel, hammer4_sounds[3], volume, attn, flags, pitch)
  744. }
  745. else
  746. {
  747. if(g_has_strong[id])
  748. emit_sound(id, channel, strong_sounds[random_num(1,2)], volume, attn, flags, pitch)
  749. if(g_has_katana[id])
  750. emit_sound(id, channel, katana_sounds[random_num(1,2)], volume, attn, flags, pitch)
  751. if(g_has_combat[id])
  752. emit_sound(id, channel, combat_sounds[random_num(1,2)], volume, attn, flags, pitch)
  753. if(g_has_hammer[id])
  754. emit_sound(id, channel, hammer_sounds[random_num(1,2)], volume, attn, flags, pitch)
  755. if(g_has_hammer1[id])
  756. emit_sound(id, channel, hammer1_sounds[random_num(1,2)], volume, attn, flags, pitch)
  757. if(g_has_hammer2[id])
  758. emit_sound(id, channel, hammer2_sounds[random_num(1,2)], volume, attn, flags, pitch)
  759. if(g_has_hammer3[id])
  760. emit_sound(id, channel, hammer3_sounds[random_num(1,2)], volume, attn, flags, pitch)
  761. if(g_has_hammer4[id])
  762. emit_sound(id, channel, hammer4_sounds[random_num(1,2)], volume, attn, flags, pitch)
  763. }
  764. }
  765. else
  766. {
  767. if (sample[15] == 'l')
  768. {
  769. if(g_has_strong[id])
  770. emit_sound(id, channel, strong_sounds[4], volume, attn, flags, pitch)
  771. if(g_has_katana[id])
  772. emit_sound(id, channel, katana_sounds[4], volume, attn, flags, pitch)
  773. if(g_has_combat[id])
  774. emit_sound(id, channel, combat_sounds[4], volume, attn, flags, pitch)
  775. if(g_has_hammer[id])
  776. emit_sound(id, channel, hammer_sounds[4], volume, attn, flags, pitch)
  777. if(g_has_hammer1[id])
  778. emit_sound(id, channel, hammer1_sounds[4], volume, attn, flags, pitch)
  779. if(g_has_hammer2[id])
  780. emit_sound(id, channel, hammer2_sounds[4], volume, attn, flags, pitch)
  781. if(g_has_hammer3[id])
  782. emit_sound(id, channel, hammer3_sounds[4], volume, attn, flags, pitch)
  783. if(g_has_hammer4[id])
  784. emit_sound(id, channel, hammer4_sounds[4], volume, attn, flags, pitch)
  785. }
  786. else
  787. {
  788. if(g_has_strong[id])
  789. emit_sound(id, channel, strong_sounds[5], volume, attn, flags, pitch)
  790. if(g_has_katana[id] )
  791. emit_sound(id, channel, katana_sounds[5], volume, attn, flags, pitch)
  792. if(g_has_combat[id] )
  793. emit_sound(id, channel, combat_sounds[5], volume, attn, flags, pitch)
  794. if(g_has_hammer[id])
  795. emit_sound(id, channel, hammer_sounds[5], volume, attn, flags, pitch)
  796. if(g_has_hammer1[id])
  797. emit_sound(id, channel, hammer1_sounds[5], volume, attn, flags, pitch)
  798. if(g_has_hammer2[id])
  799. emit_sound(id, channel, hammer2_sounds[5], volume, attn, flags, pitch)
  800. if(g_has_hammer3[id])
  801. emit_sound(id, channel, hammer3_sounds[5], volume, attn, flags, pitch)
  802. if(g_has_hammer4[id])
  803. emit_sound(id, channel, hammer4_sounds[5], volume, attn, flags, pitch)
  804. }
  805. }
  806. return HAM_SUPERCEDE
  807. }
  808. return HAM_IGNORED
  809. }
  810.  
  811. public fw_PlayerPreThink(id)
  812. {
  813. if(!is_user_alive(id) || zp_get_user_zombie(id))
  814. return FMRES_IGNORED
  815.  
  816. new temp[2], weapon = get_user_weapon(id, temp[0], temp[1])
  817.  
  818. if (weapon == CSW_KNIFE && g_has_strong[id])
  819. {
  820. set_user_maxspeed(id,get_pcvar_float(cvar_speed_strong))
  821.  
  822. if ((pev(id, pev_button) & IN_JUMP) && !(pev(id, pev_oldbuttons) & IN_JUMP))
  823. {
  824. new flags = pev(id, pev_flags)
  825. new waterlvl = pev(id, pev_waterlevel)
  826.  
  827. if (!(flags & FL_ONGROUND))
  828. return FMRES_IGNORED
  829.  
  830. if (flags & FL_WATERJUMP)
  831. return FMRES_IGNORED
  832.  
  833. if (waterlvl > 1)
  834. return FMRES_IGNORED
  835.  
  836. new Float:fVelocity[3]
  837. pev(id, pev_velocity, fVelocity)
  838.  
  839. fVelocity[2] += get_pcvar_num(cvar_jump_strong)
  840.  
  841. set_pev(id, pev_velocity, fVelocity)
  842. set_pev(id, pev_gaitsequence, 6)
  843. }
  844. }
  845.  
  846. if(weapon == CSW_KNIFE && g_has_katana[id])
  847. {
  848. set_user_maxspeed(id,get_pcvar_float(cvar_speed_katana))
  849.  
  850. if ((pev(id, pev_button) & IN_JUMP) && !(pev(id, pev_oldbuttons) & IN_JUMP))
  851. {
  852. new flags = pev(id, pev_flags)
  853. new waterlvl = pev(id, pev_waterlevel)
  854.  
  855. if (!(flags & FL_ONGROUND))
  856. return FMRES_IGNORED
  857.  
  858. if (flags & FL_WATERJUMP)
  859. return FMRES_IGNORED
  860.  
  861. if (waterlvl > 1)
  862. return FMRES_IGNORED
  863.  
  864. new Float:fVelocity[3]
  865. pev(id, pev_velocity, fVelocity)
  866.  
  867. fVelocity[2] += get_pcvar_num(cvar_jump_katana)
  868.  
  869. set_pev(id, pev_velocity, fVelocity)
  870. set_pev(id, pev_gaitsequence, 6)
  871. }
  872. }
  873.  
  874. if(weapon == CSW_KNIFE && g_has_combat[id])
  875. {
  876. if ((pev(id, pev_button) & IN_JUMP) && !(pev(id, pev_oldbuttons) & IN_JUMP))
  877. {
  878. new flags = pev(id, pev_flags)
  879. new waterlvl = pev(id, pev_waterlevel)
  880.  
  881. if (!(flags & FL_ONGROUND))
  882. return FMRES_IGNORED
  883.  
  884. if (flags & FL_WATERJUMP)
  885. return FMRES_IGNORED
  886.  
  887. if (waterlvl > 1)
  888. return FMRES_IGNORED
  889.  
  890. new Float:fVelocity[3]
  891. pev(id, pev_velocity, fVelocity)
  892.  
  893. fVelocity[2] += get_pcvar_num(cvar_jump_combat)
  894.  
  895. set_pev(id, pev_velocity, fVelocity)
  896. set_pev(id, pev_gaitsequence, 6)
  897. }
  898.  
  899. set_user_maxspeed(id,get_pcvar_float(cvar_speed_combat))
  900. }
  901. if (weapon == CSW_KNIFE && g_has_hammer[id])
  902. {
  903. if ((pev(id, pev_button) & IN_JUMP) && !(pev(id, pev_oldbuttons) & IN_JUMP))
  904. {
  905. new flags = pev(id, pev_flags)
  906. new waterlvl = pev(id, pev_waterlevel)
  907.  
  908. if (!(flags & FL_ONGROUND))
  909. return FMRES_IGNORED
  910.  
  911. if (flags & FL_WATERJUMP)
  912. return FMRES_IGNORED
  913.  
  914. if (waterlvl > 1)
  915. return FMRES_IGNORED
  916.  
  917. new Float:fVelocity[3]
  918. pev(id, pev_velocity, fVelocity)
  919.  
  920. fVelocity[2] += get_pcvar_num(cvar_jump_hammer)
  921.  
  922. set_pev(id, pev_velocity, fVelocity)
  923. set_pev(id, pev_gaitsequence, 6)
  924. }
  925.  
  926. set_user_maxspeed(id, get_pcvar_float(cvar_speed_hammer))
  927. }
  928. if (weapon == CSW_KNIFE && g_has_hammer1[id])
  929. {
  930. if ((pev(id, pev_button) & IN_JUMP) && !(pev(id, pev_oldbuttons) & IN_JUMP))
  931. {
  932. new flags = pev(id, pev_flags)
  933. new waterlvl = pev(id, pev_waterlevel)
  934.  
  935. if (!(flags & FL_ONGROUND))
  936. return FMRES_IGNORED
  937.  
  938. if (flags & FL_WATERJUMP)
  939. return FMRES_IGNORED
  940.  
  941. if (waterlvl > 1)
  942. return FMRES_IGNORED
  943.  
  944. new Float:fVelocity[3]
  945. pev(id, pev_velocity, fVelocity)
  946.  
  947. fVelocity[2] += get_pcvar_num(cvar_jump_hammer1)
  948.  
  949. set_pev(id, pev_velocity, fVelocity)
  950. set_pev(id, pev_gaitsequence, 6)
  951. }
  952.  
  953. set_user_maxspeed(id, get_pcvar_float(cvar_speed_hammer1))
  954. }
  955. if (weapon == CSW_KNIFE && g_has_hammer2[id])
  956. {
  957. if ((pev(id, pev_button) & IN_JUMP) && !(pev(id, pev_oldbuttons) & IN_JUMP))
  958. {
  959. new flags = pev(id, pev_flags)
  960. new waterlvl = pev(id, pev_waterlevel)
  961.  
  962. if (!(flags & FL_ONGROUND))
  963. return FMRES_IGNORED
  964.  
  965. if (flags & FL_WATERJUMP)
  966. return FMRES_IGNORED
  967.  
  968. if (waterlvl > 1)
  969. return FMRES_IGNORED
  970.  
  971. new Float:fVelocity[3]
  972. pev(id, pev_velocity, fVelocity)
  973.  
  974. fVelocity[2] += get_pcvar_num(cvar_jump_hammer2)
  975.  
  976. set_pev(id, pev_velocity, fVelocity)
  977. set_pev(id, pev_gaitsequence, 6)
  978. }
  979.  
  980. set_user_maxspeed(id, get_pcvar_float(cvar_speed_hammer2))
  981. }
  982. if (weapon == CSW_KNIFE && g_has_hammer3[id])
  983. {
  984. if ((pev(id, pev_button) & IN_JUMP) && !(pev(id, pev_oldbuttons) & IN_JUMP))
  985. {
  986. new flags = pev(id, pev_flags)
  987. new waterlvl = pev(id, pev_waterlevel)
  988.  
  989. if (!(flags & FL_ONGROUND))
  990. return FMRES_IGNORED
  991.  
  992. if (flags & FL_WATERJUMP)
  993. return FMRES_IGNORED
  994.  
  995. if (waterlvl > 1)
  996. return FMRES_IGNORED
  997.  
  998. new Float:fVelocity[3]
  999. pev(id, pev_velocity, fVelocity)
  1000.  
  1001. fVelocity[2] += get_pcvar_num(cvar_jump_hammer3)
  1002.  
  1003. set_pev(id, pev_velocity, fVelocity)
  1004. set_pev(id, pev_gaitsequence, 6)
  1005. }
  1006.  
  1007. set_user_maxspeed(id, get_pcvar_float(cvar_speed_hammer3))
  1008. }
  1009. if (weapon == CSW_KNIFE && g_has_hammer4[id])
  1010. {
  1011. if ((pev(id, pev_button) & IN_JUMP) && !(pev(id, pev_oldbuttons) & IN_JUMP))
  1012. {
  1013. new flags = pev(id, pev_flags)
  1014. new waterlvl = pev(id, pev_waterlevel)
  1015.  
  1016. if (!(flags & FL_ONGROUND))
  1017. return FMRES_IGNORED
  1018.  
  1019. if (flags & FL_WATERJUMP)
  1020. return FMRES_IGNORED
  1021.  
  1022. if (waterlvl > 1)
  1023. return FMRES_IGNORED
  1024.  
  1025. new Float:fVelocity[3]
  1026. pev(id, pev_velocity, fVelocity)
  1027.  
  1028. fVelocity[2] += get_pcvar_num(cvar_jump_hammer4)
  1029.  
  1030. set_pev(id, pev_velocity, fVelocity)
  1031. set_pev(id, pev_gaitsequence, 6)
  1032. }
  1033.  
  1034. set_user_maxspeed(id, get_pcvar_float(cvar_speed_hammer4))
  1035. }
  1036. return FMRES_IGNORED
  1037. }
  1038.  
  1039. public fw_TakeDamage(victim, inflictor, attacker, Float:damage, damage_type)
  1040. {
  1041. if(!is_user_connected(attacker))
  1042. return HAM_IGNORED
  1043.  
  1044. if(zp_get_user_zombie(attacker))
  1045. return HAM_IGNORED
  1046.  
  1047. if(get_user_weapon(attacker) == CSW_KNIFE)
  1048. {
  1049.  
  1050. if (g_has_strong[attacker])
  1051. {
  1052. SetHamParamFloat(4, damage * get_pcvar_float(cvar_damage_strong))
  1053.  
  1054. new Float:vec[3];
  1055. new Float:oldvelo[3];
  1056. pev(victim, pev_velocity, oldvelo);
  1057. create_velocity_vector(victim , attacker , vec);
  1058. vec[0] += oldvelo[0] + get_pcvar_float(cvar_knock_strong);
  1059. vec[1] += oldvelo[1] + 0;
  1060. set_pev(victim, pev_velocity, vec);
  1061. }
  1062. else if (g_has_katana[attacker])
  1063. {
  1064. SetHamParamFloat(4, damage * get_pcvar_float(cvar_damage_katana))
  1065.  
  1066. new Float:vec[3];
  1067. new Float:oldvelo[3];
  1068. pev(victim, pev_velocity, oldvelo);
  1069. create_velocity_vector(victim , attacker , vec);
  1070. vec[0] += oldvelo[0] + get_pcvar_float(cvar_knock_katana);
  1071. vec[1] += oldvelo[1] + 0;
  1072. set_pev(victim, pev_velocity, vec);
  1073. }
  1074. else if (g_has_combat[attacker])
  1075. {
  1076. SetHamParamFloat(4, damage * get_pcvar_float(cvar_damage_combat))
  1077.  
  1078. new Float:vec[3];
  1079. new Float:oldvelo[3];
  1080. pev(victim, pev_velocity, oldvelo);
  1081. create_velocity_vector(victim , attacker , vec);
  1082. vec[0] += oldvelo[0] + get_pcvar_float(cvar_knock_combat);
  1083. vec[1] += oldvelo[1] + 0;
  1084. set_pev(victim, pev_velocity, vec);
  1085. }
  1086. else if (g_has_hammer[attacker])
  1087. {
  1088. SetHamParamFloat(4, damage * get_pcvar_float(cvar_damage_hammer))
  1089.  
  1090. new Float:vec[3];
  1091. new Float:oldvelo[3];
  1092. pev(victim, pev_velocity, oldvelo);
  1093. create_velocity_vector(victim , attacker , vec);
  1094. vec[0] += oldvelo[0] + get_pcvar_float(cvar_knock_hammer);
  1095. vec[1] += oldvelo[1] + 0;
  1096. set_pev(victim, pev_velocity, vec);
  1097. }
  1098. else if (g_has_hammer1[attacker])
  1099. {
  1100. SetHamParamFloat(4, damage * get_pcvar_float(cvar_damage_hammer1))
  1101.  
  1102. new Float:vec[3];
  1103. new Float:oldvelo[3];
  1104. pev(victim, pev_velocity, oldvelo);
  1105. create_velocity_vector(victim , attacker , vec);
  1106. vec[0] += oldvelo[0] + get_pcvar_float(cvar_knock_hammer1);
  1107. vec[1] += oldvelo[1] + 0;
  1108. set_pev(victim, pev_velocity, vec);
  1109. }
  1110. else if (g_has_hammer2[attacker])
  1111. {
  1112. SetHamParamFloat(4, damage * get_pcvar_float(cvar_damage_hammer2))
  1113.  
  1114. new Float:vec[3];
  1115. new Float:oldvelo[3];
  1116. pev(victim, pev_velocity, oldvelo);
  1117. create_velocity_vector(victim , attacker , vec);
  1118. vec[0] += oldvelo[0] + get_pcvar_float(cvar_knock_hammer2);
  1119. vec[1] += oldvelo[1] + 0;
  1120. set_pev(victim, pev_velocity, vec);
  1121. }
  1122. else if (g_has_hammer3[attacker])
  1123. {
  1124. SetHamParamFloat(4, damage * get_pcvar_float(cvar_damage_hammer3))
  1125.  
  1126. new Float:vec[3];
  1127. new Float:oldvelo[3];
  1128. pev(victim, pev_velocity, oldvelo);
  1129. create_velocity_vector(victim , attacker , vec);
  1130. vec[0] += oldvelo[0] + get_pcvar_float(cvar_knock_hammer3);
  1131. vec[1] += oldvelo[1] + 0;
  1132. set_pev(victim, pev_velocity, vec);
  1133. }
  1134. else if (g_has_hammer4[attacker])
  1135. {
  1136. SetHamParamFloat(4, damage * get_pcvar_float(cvar_damage_hammer4))
  1137.  
  1138. new Float:vec[3];
  1139. new Float:oldvelo[3];
  1140. pev(victim, pev_velocity, oldvelo);
  1141. create_velocity_vector(victim , attacker , vec);
  1142. vec[0] += oldvelo[0] + get_pcvar_float(cvar_knock_hammer4);
  1143. vec[1] += oldvelo[1] + 0;
  1144. set_pev(victim, pev_velocity, vec);
  1145. }
  1146. more_blood(victim)
  1147. }
  1148. return HAM_IGNORED
  1149. }
  1150.  
  1151. public message_DeathMsg(msg_id, msg_dest, id)
  1152. {
  1153. static szTruncatedWeapon[33], iattacker, ivictim
  1154.  
  1155. get_msg_arg_string(4, szTruncatedWeapon, charsmax(szTruncatedWeapon))
  1156.  
  1157. iattacker = get_msg_arg_int(1)
  1158. ivictim = get_msg_arg_int(2)
  1159.  
  1160. if(!is_user_connected(iattacker) || iattacker == ivictim)
  1161. return PLUGIN_CONTINUE
  1162.  
  1163. if (!zp_get_user_zombie(iattacker))
  1164. {
  1165. if(equal(szTruncatedWeapon, "knife") && get_user_weapon(iattacker) == CSW_KNIFE)
  1166. {
  1167. if(g_has_strong[iattacker])
  1168. set_msg_arg_string(4, "strong")
  1169. }
  1170.  
  1171. if(equal(szTruncatedWeapon, "knife") && get_user_weapon(iattacker) == CSW_KNIFE)
  1172. {
  1173. if(g_has_katana[iattacker])
  1174. set_msg_arg_string(4, "hatchet")
  1175. }
  1176.  
  1177. if(equal(szTruncatedWeapon, "knife") && get_user_weapon(iattacker) == CSW_KNIFE)
  1178. {
  1179. if(g_has_combat[iattacker])
  1180. set_msg_arg_string(4, "mastercombat")
  1181. }
  1182.  
  1183. if(equal(szTruncatedWeapon, "knife") && get_user_weapon(iattacker) == CSW_KNIFE)
  1184. {
  1185. if(g_has_hammer[iattacker])
  1186. set_msg_arg_string(4, "hammer")
  1187. }
  1188.  
  1189. if(equal(szTruncatedWeapon, "knife") && get_user_weapon(iattacker) == CSW_KNIFE)
  1190. {
  1191. if(g_has_hammer[iattacker])
  1192. set_msg_arg_string(4, "hammer1")
  1193. }
  1194.  
  1195. if(equal(szTruncatedWeapon, "knife") && get_user_weapon(iattacker) == CSW_KNIFE)
  1196. {
  1197. if(g_has_hammer[iattacker])
  1198. set_msg_arg_string(4, "hammer2")
  1199. }
  1200.  
  1201. if(equal(szTruncatedWeapon, "knife") && get_user_weapon(iattacker) == CSW_KNIFE)
  1202. {
  1203. if(g_has_hammer[iattacker])
  1204. set_msg_arg_string(4, "hammer3")
  1205. }
  1206.  
  1207. if(equal(szTruncatedWeapon, "knife") && get_user_weapon(iattacker) == CSW_KNIFE)
  1208. {
  1209. if(g_has_hammer[iattacker])
  1210. set_msg_arg_string(4, "hammer4")
  1211. }
  1212.  
  1213. if(equal(szTruncatedWeapon, "knife") && get_user_weapon(iattacker) == CSW_KNIFE)
  1214. {
  1215. if(!g_has_strong[iattacker] && !g_has_katana[iattacker] && !g_has_combat[iattacker] && !g_has_hammer[iattacker] && !g_has_hammer1[iattacker] && !g_has_hammer2[iattacker] && !g_has_hammer3[iattacker] && !g_has_hammer4[iattacker] && !zp_get_user_zombie(iattacker))
  1216. set_msg_arg_string(4, "knife")
  1217. }
  1218. }
  1219. if (zp_get_user_zombie(iattacker))
  1220. {
  1221. if(equal(szTruncatedWeapon, "knife") && get_user_weapon(iattacker) == CSW_KNIFE)
  1222. {
  1223. if(g_has_strong[iattacker] || g_has_katana[iattacker] || g_has_combat[iattacker] || g_has_hammer[iattacker] || g_has_hammer1[iattacker] || g_has_hammer2[iattacker] || g_has_hammer3[iattacker] || g_has_hammer4[iattacker])
  1224. set_msg_arg_string(4, "Claws")
  1225. }
  1226. }
  1227. return PLUGIN_CONTINUE
  1228. }
  1229.  
  1230. stock create_velocity_vector(victim,attacker,Float:velocity[3])
  1231. {
  1232. if(!zp_get_user_zombie(victim) || !is_user_alive(attacker))
  1233. return 0;
  1234.  
  1235. new Float:vicorigin[3];
  1236. new Float:attorigin[3];
  1237. pev(victim, pev_origin , vicorigin);
  1238. pev(attacker, pev_origin , attorigin);
  1239.  
  1240. new Float:origin2[3]
  1241. origin2[0] = vicorigin[0] - attorigin[0];
  1242. origin2[1] = vicorigin[1] - attorigin[1];
  1243.  
  1244. new Float:largestnum = 0.0;
  1245.  
  1246. if(floatabs(origin2[0])>largestnum) largestnum = floatabs(origin2[0]);
  1247. if(floatabs(origin2[1])>largestnum) largestnum = floatabs(origin2[1]);
  1248.  
  1249. origin2[0] /= largestnum;
  1250. origin2[1] /= largestnum;
  1251.  
  1252. if (g_has_strong[attacker])
  1253. {
  1254. velocity[0] = ( origin2[0] * get_pcvar_float(cvar_knock_strong) * 10000 ) / floatround(get_distance_f(vicorigin, attorigin));
  1255. velocity[1] = ( origin2[1] * get_pcvar_float(cvar_knock_strong) * 10000 ) / floatround(get_distance_f(vicorigin, attorigin));
  1256. }
  1257. else if (g_has_katana[attacker])
  1258. {
  1259. velocity[0] = ( origin2[0] * get_pcvar_float(cvar_knock_katana) * 10000 ) / floatround(get_distance_f(vicorigin, attorigin));
  1260. velocity[1] = ( origin2[1] * get_pcvar_float(cvar_knock_katana) * 10000 ) / floatround(get_distance_f(vicorigin, attorigin));
  1261. }
  1262. else if (g_has_combat[attacker])
  1263. {
  1264. velocity[0] = ( origin2[0] * get_pcvar_float(cvar_knock_combat) * 10000 ) / floatround(get_distance_f(vicorigin, attorigin));
  1265. velocity[1] = ( origin2[1] * get_pcvar_float(cvar_knock_combat) * 10000 ) / floatround(get_distance_f(vicorigin, attorigin));
  1266. }
  1267. else if (g_has_hammer[attacker])
  1268. {
  1269. velocity[0] = ( origin2[0] * get_pcvar_float(cvar_knock_hammer) * 10000 ) / floatround(get_distance_f(vicorigin, attorigin));
  1270. velocity[1] = ( origin2[1] * get_pcvar_float(cvar_knock_hammer) * 10000 ) / floatround(get_distance_f(vicorigin, attorigin));
  1271. }
  1272.  
  1273. else if (g_has_hammer1[attacker])
  1274. {
  1275. velocity[0] = ( origin2[0] * get_pcvar_float(cvar_knock_hammer1) * 10000 ) / floatround(get_distance_f(vicorigin, attorigin));
  1276. velocity[1] = ( origin2[1] * get_pcvar_float(cvar_knock_hammer1) * 10000 ) / floatround(get_distance_f(vicorigin, attorigin));
  1277. }
  1278.  
  1279. else if (g_has_hammer2[attacker])
  1280. {
  1281. velocity[0] = ( origin2[0] * get_pcvar_float(cvar_knock_hammer2) * 10000 ) / floatround(get_distance_f(vicorigin, attorigin));
  1282. velocity[1] = ( origin2[1] * get_pcvar_float(cvar_knock_hammer2) * 10000 ) / floatround(get_distance_f(vicorigin, attorigin));
  1283. }
  1284.  
  1285. else if (g_has_hammer3[attacker])
  1286. {
  1287. velocity[0] = ( origin2[0] * get_pcvar_float(cvar_knock_hammer3) * 10000 ) / floatround(get_distance_f(vicorigin, attorigin));
  1288. velocity[1] = ( origin2[1] * get_pcvar_float(cvar_knock_hammer3) * 10000 ) / floatround(get_distance_f(vicorigin, attorigin));
  1289. }
  1290.  
  1291. else if (g_has_hammer4[attacker])
  1292. {
  1293. velocity[0] = ( origin2[0] * get_pcvar_float(cvar_knock_hammer4) * 10000 ) / floatround(get_distance_f(vicorigin, attorigin));
  1294. velocity[1] = ( origin2[1] * get_pcvar_float(cvar_knock_hammer4) * 10000 ) / floatround(get_distance_f(vicorigin, attorigin));
  1295. }
  1296.  
  1297. if(velocity[0] <= 20.0 || velocity[1] <= 20.0)
  1298. velocity[2] = random_float(200.0 , 275.0);
  1299.  
  1300. return 1;
  1301. }
  1302.  
  1303. more_blood(id)
  1304. {
  1305. static iOrigin[3]
  1306. get_user_origin(id, iOrigin)
  1307.  
  1308. message_begin(MSG_PVS, SVC_TEMPENTITY, iOrigin)
  1309. write_byte(TE_BLOODSTREAM)
  1310. write_coord(iOrigin[0])
  1311. write_coord(iOrigin[1])
  1312. write_coord(iOrigin[2]+10)
  1313. write_coord(random_num(-360, 360))
  1314. write_coord(random_num(-360, 360))
  1315. write_coord(-10)
  1316. write_byte(70)
  1317. write_byte(random_num(50, 100))
  1318. message_end()
  1319.  
  1320. for (new j = 0; j < 4; j++)
  1321. {
  1322. message_begin(MSG_PVS, SVC_TEMPENTITY, iOrigin)
  1323. write_byte(TE_WORLDDECAL)
  1324. write_coord(iOrigin[0]+random_num(-100, 100))
  1325. write_coord(iOrigin[1]+random_num(-100, 100))
  1326. write_coord(iOrigin[2]-36)
  1327. write_byte(random_num(190, 197))
  1328. message_end()
  1329. }
  1330. }
  1331.  
  1332. public sprite(const player, const string_msg[], byte_1, byte_2, byte_3, byte_4, byte_5, byte_6, byte_7, byte_8)
  1333. {
  1334. message_begin( MSG_ONE, get_user_msgid("WeaponList"), .player = player );
  1335. {
  1336. write_string(string_msg);
  1337. write_byte(byte_1);
  1338. write_byte(byte_2);
  1339. write_byte(byte_3);
  1340. write_byte(byte_4);
  1341. write_byte(byte_5);
  1342. write_byte(byte_6);
  1343. write_byte(byte_7);
  1344. write_byte(byte_8);
  1345. }
  1346. message_end();
  1347. }
  1348.  
  1349. public set_sprite(id)
  1350. {
  1351. if(!is_user_alive(id))
  1352. {
  1353. return;
  1354. }
  1355.  
  1356. if(zp_get_user_zombie(id))
  1357. {
  1358. sprite(id, "weapon_knife", -1, -1, -1, -1, 2, 1, 29, 0)
  1359. return;
  1360. }
  1361.  
  1362. if(g_has_strong[id])
  1363. {
  1364. sprite(id, "zm_knife_strong", -1, -1, -1, -1, 2, 1, 29, 0)
  1365. return;
  1366. }
  1367.  
  1368. if(g_has_katana[id])
  1369. {
  1370. sprite(id, "zm_knife_katana", -1, -1, -1, -1, 2, 1, 29, 0)
  1371. return;
  1372. }
  1373.  
  1374. if(g_has_combat[id])
  1375. {
  1376. sprite(id, "zm_knife_combat", -1, -1, -1, -1, 2, 1, 29, 0)
  1377. return;
  1378. }
  1379.  
  1380. if(g_has_hammer[id])
  1381. {
  1382. sprite(id, "zm_knife_hammer", -1, -1, -1, -1, 2, 1, 29, 0)
  1383. return;
  1384. }
  1385. if(g_has_hammer1[id])
  1386. {
  1387. sprite(id, "zm_knife_hammer1", -1, -1, -1, -1, 2, 1, 29, 0)
  1388. return;
  1389. }
  1390. if(g_has_hammer2[id])
  1391. {
  1392. sprite(id, "zm_knife_hammer2", -1, -1, -1, -1, 2, 1, 29, 0)
  1393. return;
  1394. }
  1395. if(g_has_hammer3[id])
  1396. {
  1397. sprite(id, "zm_knife_hammer3", -1, -1, -1, -1, 2, 1, 29, 0)
  1398. return;
  1399. }
  1400. if(g_has_hammer4[id])
  1401. {
  1402. sprite(id, "zm_knife_hammer4", -1, -1, -1, -1, 2, 1, 29, 0)
  1403. return;
  1404. }
  1405. }
  1406.  
  1407. stock ChatColor(const id, const input[], any:...)
  1408. {
  1409. new count = 1, players[32]
  1410. static msg[191]
  1411. vformat(msg, 190, input, 3)
  1412.  
  1413. replace_all(msg, 190, "!g", "^4")
  1414. replace_all(msg, 190, "!y", "^1")
  1415. replace_all(msg, 190, "!team", "^3")
  1416.  
  1417. if (id) players[0] = id; else get_players(players, count, "ch")
  1418. {
  1419. for (new i = 0; i < count; i++)
  1420. {
  1421. if (is_user_connected(players[i]))
  1422. {
  1423. message_begin(MSG_ONE_UNRELIABLE, get_user_msgid("SayText"), _, players[i]);
  1424. write_byte(players[i]);
  1425. write_string(msg);
  1426. message_end();
  1427. }
  1428. }
  1429. }
  1430. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement