Advertisement
Guest User

Untitled

a guest
Jul 26th, 2017
67
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 19.20 KB | None | 0 0
  1. new const VERSION[]="1.1" // current saved version of this plug-in.
  2. /* ===========================================================================================
  3.  
  4. _______________________________________________________________________
  5. |This program is free software: you can redistribute it and/or modify |
  6. |it under the terms of the GNU General Public License as published by |
  7. |the Free Software Foundation, either version 1.1 of the License, or |
  8. |(at your option) any later version. |
  9. | |
  10. |This program is distributed in the hope that it will be useful, |
  11. |but WITHOUT ANY WARRANTY; without even the implied warranty of |
  12. |MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
  13. |GNU General Public License for more details. |
  14. | |
  15. |You should have received a copy of the GNU General Public License |
  16. |along with this program. If not, see <http://www.gnu.org/licenses/>.|
  17. | |
  18. |In addition, as a special exception, the author gives permission to |
  19. |link the code of this program with the Half-Life Game Engine ("HL |
  20. |Engine") and Modified Game Libraries ("MODs") developed by Valve, |
  21. |L.L.C ("Valve"). You must obey the GNU General Public License in all |
  22. |respects for all of the code used other than the HL Engine and MODs |
  23. |from Valve. If you modify this file, you may extend this exception |
  24. |to your version of the file, but you are not obligated to do so. If |
  25. |you do not wish to do so, delete this exception statement from your |
  26. |version |
  27. | |
  28. |_____________________________________________________________________|
  29. |@ Rj's Plug-ins License |
  30. |_____________________________________________________________________|
  31. |CS:GO Knives Selector V1.1 - Copyright (c) 2016 by .:Rj:. | |
  32. |_____________________________________________________________________|
  33. _________________________________________________________
  34.  
  35. CS:GO Knives Selector V1.1
  36. - by .:Rj:.
  37.  
  38. DESCRIPTION:
  39. Menu of all CS:GO Knives; switch your knife to CS:GO Knife models.
  40. Both teams have own arm textures (unlike other csgo knife selector plugins)
  41. To show the menu, choose at least one command below then type it on console.
  42.  
  43. ________________________
  44. COMMANDS :
  45. ________________________
  46. - say /csgoknives
  47. - say /csgok
  48. - say /knivescsgo
  49. - say /knives
  50. - say /selectknives
  51. - say /knivesselector
  52. ________________________
  53. CS:GO AVAILABLE KNIVES :
  54. ________________________
  55. - Default CS:GO Knife
  56. - Bayonet
  57. - Gutt Knife
  58. - Flip Knife
  59. - Hunstman
  60. - Shadow Daggers
  61. - Butterfly Knife
  62. - Karambit
  63. - M9 Bayonet
  64.  
  65. --------------------------------------------------------------------------------------
  66. CHANGE LOG/ BUG LOG/ UPDATE LOG :
  67. --------------------------------------------------------------------------------------
  68. 1.0
  69. * First Release
  70. --------------------------------------------------------------------------------------
  71. 1.1:
  72.  
  73. - Change register_event "CurWeapon" to Register_Ham "Ham_Item_Deploy [weapon_knife]"
  74. - Reported as being lag to BOTs, fixed!.
  75. + Added engclient_cmd "weapon_knife" after set_pev "pev_viewmodel2"
  76. (view arm model) codes to switch the current weapon to knife, and
  77. added set_task for anti- model bug...
  78. - Bug confirmed, fixed!.
  79. - removed set_pcvar_num "csgoks_knife" to 0 in client_putinserver
  80. (player selected a team) and client_discnonected (player disconnected).
  81. - not neccessary, removed!.
  82. --------------------------------------------------------------------------------------
  83. */
  84.  
  85. //====================================================
  86. #include <amxmodx>
  87. #include <amxmisc>
  88. #include <cstrike>
  89. #include <fakemeta>
  90. #include <hamsandwich>
  91. //====================================================
  92. #define PLUGIN "CSGO Knives Selector"
  93. //====================================================
  94. new Menu
  95. new SayText
  96. const m_iPlayer = 41
  97. new cvar_enable,cvar_admin
  98. //====================================================
  99. // Do not change the codes below. If you would like to change the model, go to the folder and rename it with 'v_knife.mdl'.
  100. new const V_DEFAULT[] = "models/csgoks_knives/default/ct_hands/v_knife.mdl"
  101. new const T_DEFAULT[] = "models/csgoks_knives/default/leet_hands/v_knife.mdl"
  102. new const V_BAYONET[] = "models/csgoks_knives/bayonet/ct_arms/v_knife.mdl"
  103. new const T_BAYONET[] = "models/csgoks_knives/bayonet/leet_arms/v_knife.mdl"
  104. new const V_GUT[] = "models/csgoks_knives/gut/ct_arms/v_knife.mdl"
  105. new const T_GUT[] = "models/csgoks_knives/gut/leet_arms/v_knife.mdl"
  106. new const V_FLIP[] = "models/csgoks_knives/flip/ct_arms/v_knife.mdl"
  107. new const T_FLIP[] = "models/csgoks_knives/flip/leet_arms/v_knife.mdl"
  108. new const V_HUNSTMAN[] = "models/csgoks_knives/huntsman/ct_arms/v_knife.mdl"
  109. new const T_HUNSTMAN[] = "models/csgoks_knives/huntsman/leet_arms/v_knife.mdl"
  110. new const V_SHADOW[] = "models/csgoks_knives/shadow/ct_arms/v_knife.mdl"
  111. new const T_SHADOW[] = "models/csgoks_knives/shadow/leet_arms/v_knife.mdl"
  112. new const V_BUTTERFLY[] = "models/csgoks_knives/butterfly/ct_arms/v_knife.mdl"
  113. new const T_BUTTERFLY[] = "models/csgoks_knives/butterfly/leet_arms/v_knife.mdl"
  114. new const V_KARAMBIT[] = "models/csgoks_knives/karambit/ct_arms/v_knife.mdl"
  115. new const T_KARAMBIT[] = "models/csgoks_knives/karambit/leet_arms/v_knife.mdl"
  116. new const V_M9[] = "models/csgoks_knives/m9_bayonet/ct_arms/v_knife.mdl"
  117. new const T_M9[] = "models/csgoks_knives/m9_bayonet/leet_arms/v_knife.mdl"
  118. //====================================================
  119. public plugin_init() {
  120. //====================================================
  121. register_plugin(PLUGIN, VERSION, ".:Rj:.")
  122. //====================================================
  123. register_clcmd("say /csgoknives","selectknives")
  124. register_clcmd("say /csgok","selectknives")
  125. register_clcmd("say /knivescsgo","selectknives")
  126. register_clcmd("say /knives","selectknives")
  127. register_clcmd("say /selectknives","selectknives")
  128. register_clcmd("say /knivesselector","selectknives")
  129. //====================================================
  130. cvar_enable = register_cvar("csgok_knife","1")
  131. cvar_admin = register_cvar("csgo_admin_only","0")
  132. //====================================================
  133. /*register_event("CurWeapon" , "fwItemDeployPost" , "be" , "1=1" )*/ // 1.0 reproted bug #1
  134. RegisterHam(Ham_Item_Deploy, "weapon_knife", "fwItemDeployPost", 1);
  135. SayText=get_user_msgid("SayText")
  136. //====================================================
  137. Menu = menu_create("\yCSGO KNIVES SELECTOR BY .:RJ:.", "CSGO_SelectKnives")
  138.  
  139. menu_additem(Menu, "\wDefault", "1")
  140. menu_additem(Menu, "\wBayonet", "2")
  141. menu_additem(Menu, "\wGut Knife", "3")
  142. menu_additem(Menu, "\wFlip Knife", "4")
  143. menu_additem(Menu, "\wHunstman", "5")
  144. menu_additem(Menu, "\wShadow Daggers", "6")
  145. menu_additem(Menu, "\wButterfly Knife", "7")
  146. menu_additem(Menu, "\wKarambit", "8")
  147. menu_additem(Menu, "\wM9 Bayonet", "9")
  148. //====================================================
  149. menu_addblank(Menu)
  150. menu_addblank(Menu)
  151. menu_addblank(Menu)
  152. //====================================================
  153. menu_setprop(Menu, MPROP_ORDER)
  154. //====================================================
  155. }
  156. //====================================================
  157. public plugin_precache() // precaching csgo arms...
  158. {
  159.  
  160. precache_model("models/v_knife.mdl")
  161. precache_model(V_DEFAULT)
  162. precache_model(T_DEFAULT)
  163. precache_model(V_BAYONET)
  164. precache_model(T_BAYONET)
  165. precache_model(V_FLIP)
  166. precache_model(T_FLIP)
  167. precache_model(V_GUT)
  168. precache_model(T_GUT)
  169. precache_model(V_HUNSTMAN)
  170. precache_model(T_HUNSTMAN)
  171. precache_model(V_KARAMBIT)
  172. precache_model(T_KARAMBIT)
  173. precache_model(V_BUTTERFLY)
  174. precache_model(T_BUTTERFLY)
  175. precache_model(V_SHADOW)
  176. precache_model(T_SHADOW)
  177. precache_model(V_M9)
  178. precache_model(T_M9)
  179. }
  180. //====================================================
  181. stock client_printcolor(const id, const input[], any:...)
  182. {
  183. new count = 1, players[32]
  184. static msg[191]
  185. vformat(msg, 190, input, 3)
  186.  
  187. replace_all(msg, 190, "!g", "^4") // Green Color
  188. replace_all(msg, 190, "!y", "^1") // Default Color
  189. replace_all(msg, 190, "!t", "^3") // Team Color
  190.  
  191. if (id) players[0] = id; else get_players(players, count, "ch")
  192. {
  193. for ( new i = 0; i < count; i++ )
  194. {
  195. if ( is_user_connected(players[i]) )
  196. {
  197. message_begin(MSG_ONE_UNRELIABLE, SayText, _, players[i])
  198. write_byte(players[i]);
  199. write_string(msg);
  200. message_end();
  201. }
  202. }
  203. }
  204. }
  205. //====================================================
  206. public selectknives(id) // command to show the menu...
  207. {
  208. engclient_cmd(id,"weapon_knife")
  209. //====================================================
  210. if(get_pcvar_num(cvar_enable) <= 0 || get_pcvar_num(cvar_enable) > 9)
  211. {
  212. client_printcolor(id,"!t[!gCSGOKS!t] !gCSGO Knives Selector !yare currently disabled.")
  213. return 1
  214. }
  215. //====================================================
  216. if(get_pcvar_num(cvar_admin) && get_user_flags(id) != ADMIN_MENU)
  217. {
  218. client_printcolor(id,"!t[!gCSGOKS!t] !yOnly !tADMINs !ycan use !gCSGO Knives Selector!y.")
  219. return 1
  220. }
  221. //====================================================
  222. if(!is_user_alive(id)) return 1
  223. menu_display(id, Menu)
  224. //====================================================
  225. return 1
  226. }
  227. //====================================================
  228. public CSGO_SelectKnives(id, Menu, item) // Menu of knives.
  229. {
  230. //====================================================
  231. if(item == MENU_EXIT)
  232. {
  233. menu_destroy(Menu)
  234. return PLUGIN_HANDLED
  235. }
  236. //====================================================
  237. new iData[6]
  238. new iAccess
  239. new iCallback
  240. new iName[64]
  241. //====================================================
  242. menu_item_getinfo(Menu, item, iAccess, iData, 5, iName, 63, iCallback)
  243. //====================================================
  244. switch(str_to_num(iData))
  245. {
  246. //====================================================
  247. case 1:
  248. {
  249. if(!is_user_alive(id) )
  250. return 1
  251. if(get_pcvar_num(cvar_enable) <= 0)
  252. return 1
  253. if(get_pcvar_num(cvar_enable) == 1)
  254. {
  255. client_printcolor(id,"!t[!gCSGOKS!t] !yYou !galready own !ythis Knife.")
  256. return 1
  257. }
  258.  
  259. set_pcvar_num(cvar_enable,1)
  260. if(cs_get_user_team(id) == CS_TEAM_CT)
  261. set_pev(id, pev_viewmodel2, V_DEFAULT)
  262. else if(cs_get_user_team(id) == CS_TEAM_T)
  263. set_pev(id, pev_viewmodel2, T_DEFAULT)
  264. set_task(0.2,"knife_switching",id)
  265. client_printcolor(id,"!t[!gCSGOKS!t] !yKnife switched to !gDefault!y.")
  266. }
  267.  
  268. //====================================================
  269. case 2:
  270. {
  271. if(!is_user_alive(id) )
  272. return 1
  273. if(get_pcvar_num(cvar_enable) <= 0)
  274. return 1
  275. if(get_pcvar_num(cvar_enable) == 2)
  276. {
  277. client_printcolor(id,"!t[!gCSGOKS!t] !yYou !galready own !ythis Knife.")
  278. return 1
  279. }
  280.  
  281. set_pcvar_num(cvar_enable,2)
  282. if(cs_get_user_team(id) == CS_TEAM_CT)
  283. set_pev(id, pev_viewmodel2, V_BAYONET)
  284. else if(cs_get_user_team(id) == CS_TEAM_T)
  285. set_pev(id, pev_viewmodel2, T_BAYONET)
  286. set_task(0.2,"knife_switching",id)
  287. client_printcolor(id,"!t[!gCSGOKS!t] !yKnife switched to !gBayonet!y.")
  288.  
  289. }
  290. //====================================================
  291. case 3:
  292. {
  293. if(!is_user_alive(id) )
  294. return 1
  295. if(get_pcvar_num(cvar_enable) <= 0)
  296. return 1
  297. if(get_pcvar_num(cvar_enable) == 3)
  298. {
  299. client_printcolor(id,"!t[!gCSGOKS!t] !yYou !galready own !ythis Knife.")
  300. return 1
  301. }
  302.  
  303. set_pcvar_num(cvar_enable,3)
  304. if(cs_get_user_team(id) == CS_TEAM_CT)
  305. set_pev(id, pev_viewmodel2, V_GUT)
  306. else if(cs_get_user_team(id) == CS_TEAM_T)
  307. set_pev(id, pev_viewmodel2, T_GUT)
  308. set_task(0.2,"knife_switching",id)
  309. client_printcolor(id,"!t[!gCSGOKS!t] !yKnife switched to !gGut Knife!y.")
  310. }
  311. //====================================================
  312. case 4:
  313. {
  314. if(!is_user_alive(id) )
  315. return 1
  316. if(get_pcvar_num(cvar_enable) <= 0)
  317. return 1
  318. if(get_pcvar_num(cvar_enable) == 4)
  319. {
  320. client_printcolor(id,"!t[!gCSGOKS!t] !yYou !galready own !ythis Knife.")
  321. return 1
  322. }
  323. set_pcvar_num(cvar_enable,4)
  324. if(cs_get_user_team(id) == CS_TEAM_CT)
  325. set_pev(id, pev_viewmodel2, V_FLIP)
  326. else if(cs_get_user_team(id) == CS_TEAM_T)
  327. set_pev(id, pev_viewmodel2, T_FLIP)
  328. set_task(0.2,"knife_switching",id)
  329. client_printcolor(id,"!t[!gCSGOKS!t] !yKnife switched to !gFlip Knife!y.")
  330. }
  331. //====================================================
  332. case 5:
  333. {
  334. if(!is_user_alive(id) )
  335. return 1
  336. if(get_pcvar_num(cvar_enable) <= 0)
  337. return 1
  338. if(get_pcvar_num(cvar_enable) == 5)
  339. {
  340. client_printcolor(id,"!t[!gCSGOKS!t] !yYou !galready own !ythis Knife.")
  341. return 1
  342. }
  343.  
  344. set_pcvar_num(cvar_enable,5)
  345. if(cs_get_user_team(id) == CS_TEAM_CT)
  346. set_pev(id, pev_viewmodel2, V_HUNSTMAN)
  347. else if(cs_get_user_team(id) == CS_TEAM_T)
  348. set_pev(id, pev_viewmodel2, T_HUNSTMAN)
  349. set_task(0.2,"knife_switching",id)
  350. client_printcolor(id,"!t[!gCSGOKS!t] !yKnife switched to !gHunstman!y.")
  351. }
  352. //====================================================
  353. case 6:
  354. {
  355. if(!is_user_alive(id) )
  356. return 1
  357. if(get_pcvar_num(cvar_enable) <= 0)
  358. return 1
  359. if(get_pcvar_num(cvar_enable) == 6)
  360. {
  361. client_printcolor(id,"!t[!gCSGOKS!t] !yYou !galready own !ythis Knife.")
  362. return 1
  363. }
  364.  
  365. set_pcvar_num(cvar_enable,6)
  366. if(cs_get_user_team(id) == CS_TEAM_CT)
  367. set_pev(id, pev_viewmodel2, V_SHADOW)
  368. else if(cs_get_user_team(id) == CS_TEAM_T)
  369. set_pev(id, pev_viewmodel2, T_SHADOW)
  370. set_task(0.2,"knife_switching",id)
  371. client_printcolor(id,"!t[!gCSGOKS!t] !yKnife switched to !gShadow Daggers!y.")
  372. }
  373. //====================================================
  374. case 7:
  375. {
  376. if(!is_user_alive(id) )
  377. return 1
  378. if(get_pcvar_num(cvar_enable) <= 0)
  379. return 1
  380. if(get_pcvar_num(cvar_enable) == 7)
  381. {
  382. client_printcolor(id,"!t[!gCSGOKS!t] !yYou !galready own !ythis Knife.")
  383. return 1
  384. }
  385.  
  386. set_pcvar_num(cvar_enable,7)
  387. if(cs_get_user_team(id) == CS_TEAM_CT)
  388. set_pev(id, pev_viewmodel2, V_BUTTERFLY)
  389. else if(cs_get_user_team(id) == CS_TEAM_T)
  390. set_pev(id, pev_viewmodel2, T_BUTTERFLY)
  391. set_task(0.2,"knife_switching",id)
  392. client_printcolor(id,"!t[!gCSGOKS!t] !yKnife switched to !gButterfly Knife!y.")
  393. }
  394. //====================================================
  395. case 8:
  396. {
  397. if(!is_user_alive(id) )
  398. return 1
  399. if(get_pcvar_num(cvar_enable) <= 0)
  400. return 1
  401. if(get_pcvar_num(cvar_enable) == 8)
  402. {
  403. client_printcolor(id,"!t[!gCSGOKS!t] !yYou !galready own !ythis Knife.")
  404. return 1
  405. }
  406.  
  407. set_pcvar_num(cvar_enable,8)
  408. if(cs_get_user_team(id) == CS_TEAM_CT)
  409. set_pev(id, pev_viewmodel2, V_KARAMBIT)
  410. else if(cs_get_user_team(id) == CS_TEAM_T)
  411. set_pev(id, pev_viewmodel2, T_KARAMBIT)
  412. set_task(0.2,"knife_switching",id)
  413. client_printcolor(id,"!t[!gCSGOKS!t] !yKnife switched to !gKarambit!y.")
  414. }
  415. //====================================================
  416. case 9:
  417. {
  418. if(!is_user_alive(id) )
  419. return 1
  420. if(get_pcvar_num(cvar_enable) <= 0)
  421. return 1
  422. if(get_pcvar_num(cvar_enable) == 9)
  423. {
  424. client_printcolor(id,"!t[!gCSGOKS!t] !yYou !galready own !ythis Knife.")
  425. return 1
  426. }
  427.  
  428.  
  429. set_pcvar_num(cvar_enable,9)
  430. if(cs_get_user_team(id) == CS_TEAM_CT)
  431. set_pev(id, pev_viewmodel2, V_M9)
  432. else if(cs_get_user_team(id) == CS_TEAM_T)
  433. set_pev(id, pev_viewmodel2, T_M9)
  434. set_task(0.2,"knife_switching",id)
  435. client_printcolor(id,"!t[!gCSGOKS!t] !yKnife switched to !gM9 Bayonet!y.")
  436. }
  437. //====================================================
  438. }
  439. return 1
  440. }
  441. //====================================================
  442. public fwItemDeployPost(weapon)
  443. {
  444. //====================================================
  445. static id;
  446. id = get_pdata_cbase(weapon, m_iPlayer, 4);
  447. //====================================================
  448. /*if(get_user_weapon(id) != CSW_KNIFE) return*/
  449. if(get_pcvar_num(cvar_enable) > 9 || get_pcvar_num(cvar_enable) <= 0)
  450. {
  451. set_pev(id, pev_viewmodel2, "models/v_knife.mdl")
  452. return
  453. }
  454. //====================================================
  455. if(get_pcvar_num(cvar_enable) == 1)
  456. {
  457. if(cs_get_user_team(id) == CS_TEAM_CT)
  458. set_pev(id, pev_viewmodel2, V_DEFAULT)
  459. else if(cs_get_user_team(id) == CS_TEAM_T)
  460. set_pev(id, pev_viewmodel2, T_DEFAULT)
  461. return
  462. }
  463. //====================================================
  464. if(get_pcvar_num(cvar_enable) == 2)
  465. {
  466. if(cs_get_user_team(id) == CS_TEAM_CT)
  467. set_pev(id, pev_viewmodel2, V_BAYONET)
  468. else if(cs_get_user_team(id) == CS_TEAM_T)
  469. set_pev(id, pev_viewmodel2, T_BAYONET)
  470. return
  471. }
  472. //====================================================
  473. if(get_pcvar_num(cvar_enable) == 3)
  474. {
  475. if(cs_get_user_team(id) == CS_TEAM_CT)
  476. set_pev(id, pev_viewmodel2, V_GUT)
  477. else if(cs_get_user_team(id) == CS_TEAM_T)
  478. set_pev(id, pev_viewmodel2, T_GUT)
  479. return
  480. }
  481. //====================================================
  482. if(get_pcvar_num(cvar_enable) == 4)
  483. {
  484. if(cs_get_user_team(id) == CS_TEAM_CT)
  485. set_pev(id, pev_viewmodel2, V_FLIP)
  486. else if(cs_get_user_team(id) == CS_TEAM_T)
  487. set_pev(id, pev_viewmodel2, T_FLIP)
  488. return
  489. }
  490. //====================================================
  491. if(get_pcvar_num(cvar_enable) == 5)
  492. {
  493. if(cs_get_user_team(id) == CS_TEAM_CT)
  494. set_pev(id, pev_viewmodel2, V_HUNSTMAN)
  495. else if(cs_get_user_team(id) == CS_TEAM_T)
  496. set_pev(id, pev_viewmodel2, T_HUNSTMAN)
  497. return
  498. }
  499. //====================================================
  500. if(get_pcvar_num(cvar_enable) == 6)
  501. {
  502. if(cs_get_user_team(id) == CS_TEAM_CT)
  503. set_pev(id, pev_viewmodel2, V_SHADOW)
  504. else if(cs_get_user_team(id) == CS_TEAM_T)
  505. set_pev(id, pev_viewmodel2, T_SHADOW)
  506. return
  507. }
  508. //====================================================
  509. if(get_pcvar_num(cvar_enable) == 7)
  510. {
  511. if(cs_get_user_team(id) == CS_TEAM_CT)
  512. set_pev(id, pev_viewmodel2, V_BUTTERFLY)
  513. else if(cs_get_user_team(id) == CS_TEAM_T)
  514. set_pev(id, pev_viewmodel2, T_BUTTERFLY)
  515. return
  516. }
  517. //====================================================
  518. if(get_pcvar_num(cvar_enable) == 8)
  519. {
  520. if(cs_get_user_team(id) == CS_TEAM_CT)
  521. set_pev(id, pev_viewmodel2, V_KARAMBIT)
  522. else if(cs_get_user_team(id) == CS_TEAM_T)
  523. set_pev(id, pev_viewmodel2, T_KARAMBIT)
  524. return
  525. }
  526. //====================================================
  527. if(get_pcvar_num(cvar_enable) == 9)
  528. {
  529. if(cs_get_user_team(id) == CS_TEAM_CT)
  530. set_pev(id, pev_viewmodel2, V_M9)
  531. else if(cs_get_user_team(id) == CS_TEAM_T)
  532. set_pev(id, pev_viewmodel2, T_M9)
  533. return
  534. }
  535. //====================================================
  536. return
  537. }
  538. public knife_switching(id) engclient_cmd( id, "weapon_knife" ) // task to switch knife (time :0 .2)
  539. // 1.0 bug reported #3
  540. //====================================================
  541. /*
  542. //====================================================
  543. public client_putinserver()
  544. set_pcvar_num(cvar_enable,0)
  545. //====================================================
  546. public client_disconnect()
  547. set_pcvar_num(cvar_enable,0)
  548. //====================================================
  549. */
  550. //====================================================
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement