Advertisement
Guest User

help me please

a guest
Aug 6th, 2016
129
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 38.27 KB | None | 0 0
  1. /* Plugin generated by AMXX-Studio */
  2.  
  3. #include <amxmodx>
  4. #include <amxmisc>
  5. #include <fvault>
  6. #include <engine>
  7. #include < hamsandwich >
  8. #include <cstrike>
  9. #include < fakemeta_util >
  10.  
  11.  
  12. #define MAX_KNIFE 33
  13. #define MAX_KNIFE_SNDS 9
  14.  
  15. new szVault[ ] = "IplayJailbreakNEW";
  16. new szPrefix[] = "iPlay"
  17.  
  18. enum _:enData {
  19. Cash,
  20. Bank,
  21. Connection,
  22. BoughtKnife,
  23. UseKnife,
  24. KnifeBRASS,
  25. KnifeCOPPER,
  26. KnifeBRONZE,
  27. KnifeALUMINUIM,
  28. KnifeIRON,
  29. KnifeSTEEL,
  30. KnifeSILVER,
  31. KnifeGOLD,
  32. KnifeDIAMOND
  33. };
  34. enum _: KnifeInfo {
  35. KnifeName[300],
  36. BunusHealth,
  37. KnifeDamage,
  38. KnifeCash,
  39. KnifeSlag,
  40. KnifePrice,
  41. SpecialSound,
  42. SpecialModel,
  43. MODEL[64]
  44. }
  45. enum _: KnifeMetals {
  46. BRASS,
  47. COPPER,
  48. BRONZE,
  49. ALUMINUIM,
  50. IRON,
  51. STEEL,
  52. SILVER,
  53. GOLD,
  54. DIAMOND
  55. }
  56.  
  57. enum _: KnifeModels {
  58. VMODEL[64]
  59. }
  60.  
  61. new const Knifemod[MAX_KNIFE][KnifeInfo] = {
  62. {"Beginner Knife",0,0,0,0,0,0,0,""},
  63. {"Dagger",1,1,1,0,12500,0,0,""},
  64. {"Sharp Knife",3,3,5,0,22500,0,0,""},
  65. {"Electric Shocker",4,4,7,0,32000,1,0,""},
  66. {"Dual Tiger Knife",4,4,8,0,40500,1,0,""},
  67. {"Simple Axe",6,6,10,0,59500,0,0,""},
  68. {"Dual Katanas",9,8,15,1,90000,0,1,"playermodel1"},
  69. {"Arbian Knife",10,10,17,1,105000,1,1,"playermodel2"},
  70. {"Dual Sharp Knives",12,11,20,1,115000,0,1,"playermodel3"},
  71. {"Void Weapon",13,13,22,1,140000,0,0,""},
  72. {"Dual LightSabers",15,14,25,2,165000,1,0,""},
  73. {"Dual Bars",16,16,28,2,190000,0,1,"playermodel4"},
  74. {"Swift Lightsaber",18,17,30,2,240000,1,0,""},
  75. {"Nigger",19,19,33,2,270000,0,1,"playermodel5"},
  76. {"Tiger Knife",21,20,35,2,365000,0,0,""},
  77. {"Demonic Knife",22,22,38,3,410000,1,0,""},
  78. {"Assassin Knives",24,23,40,3,460000,0,1,"playermodel6"},
  79. {"Blue Blade",25,25,43,3,525000,0,1,"playermodel7"},
  80. {"DemonBlade",26,26,45,3,600000,0,0,""},
  81. {"Blooded Machete",28,28,48,4,710000,0,0,""},
  82. {"Swift Assassin",29,29,50,4,855000,0,1,"playermodel8"},
  83. {"Shovel",31,31,53,4,1000000,0,0,""},
  84. {"Dragon Claws",32,32,55,4,1250000,0,1,"playermodel9"},
  85. {"Claws",34, 34,58,5,1550000,0,1,"playermodel10"},
  86. {"Reaper",35,35,60,5,1900000,0,0,""},
  87. {"Knight",37,37,63,5,2300000,1,0,""},
  88. {"Chinese Sword",38,39,65,5,2900000,1,0,""},
  89. {"Holiday Knife",40,40,68,5,3500000,1,0,""},
  90. {"Legendry Sword",41,42,70,5,4150000,0,1,"playermodel11"},
  91. {"Crystal Blades",43,43,73,5,4850000,1,1,"playermodel12"},
  92. {"Kratos",44,45,75,6,5500000,0,1,"playermodel13"},
  93. {"ChainSaw",46,46,78,8,7000000,0,0,""},
  94. {"Froze Blade",47,48,80,10,8000000,0,0,""}
  95. }
  96.  
  97. new const KnifemodMetals[MAX_KNIFE][KnifeMetals] = {
  98. {0,0,0,0,0,0,0,0,0}, // Normal
  99. {0,0,0,0,0,0,0,0,0}, // Dagger
  100. {0,0,0,0,0,0,0,0,0}, // Sharp Knife
  101. {4,2,1,0,0,0,0,0,0}, // Electric Shocker
  102. {0,5,5,1,2,0,0,0,0}, // Dual Tiger Knife
  103. {5,0,8,0,4,1,2,0,0}, // Simple Axe
  104. {7,6,7,0,7,4,0,1,0}, // Dual Katanas
  105. {0,4,3,2,1,0,0,0,0}, // Arbian Knife
  106. {9,7,4,5,6,2,6,2,0}, // Dual Sharp Knives
  107. {11,9,0,7,8,0,8,3,0}, // Void Weapon
  108. {13,10,10,0,9,0,9,1,0}, // Dual LightSabers
  109. {14,11,7,9,10,0,5,0,1}, // Dual Bars
  110. {16,13,9,5,9,3,0,3,2}, // Swift Lightsaber
  111. {7,3,1,0,13,11,9,4,0}, // Nigger
  112. {10,10,10,10,0,10,4,9,1}, // Tiger Knife
  113. {0,9,0,9,9,12,8,7,4}, // Demonic Knife
  114. {3,2,3,6,6,7,7,7,1}, // Assassin Knives
  115. {5,5,5,5,8,7,9,3,0}, // Blue Blade
  116. {0,1,1,9,9,9,4,4,3}, // DemonBlade
  117. {4,5,4,6,6,8,8,2,1}, // Blooded Machete
  118. {3,6,7,7,3,8,8,8,2}, // Swift Assassin
  119. {6,9,5,9,9,5,14,5,3}, // Shovel
  120. {9,9,9,9,4,5,3,4,1}, // Dragon Claws
  121. {0,0,0,4,13,14,11,10,5}, // Claws
  122. {5,5,5,5,10,10,10,7,1}, // Reaper
  123. {7,7,7,7,8,9,5,6,3}, // Knight
  124. {5,3,5,4,11,13,14,10,0}, // Chinese Sword
  125. {13,10,11,11,17,5,5,14,0}, // Holiday Knife
  126. {11,11,0,15,10,7,7,3,0}, // Legendry Sword
  127. {20,10,12,4,9,8,15,3,0}, // Crystal Blades
  128. {20,10,12,4,9,8,15,3,0}, // Kratos
  129. {20,10,12,4,9,8,15,3,0}, // ChainSaw
  130. {20,14,16,11,5,4,9,4,2} // Froze Blade
  131. }
  132.  
  133. new const Models[MAX_KNIFE][KnifeModels] = {
  134. {"models/newJailbreak/knifes/v_knife1.mdl", // Normal
  135. {"models/newJailbreak/knifes/v_knife2.mdl", // Dagger
  136. {"models/newJailbreak/knifes/v_knife3.mdl", // Sharp Knife
  137. {"models/newJailbreak/knifes/v_knife4.mdl", // Electric Shocker
  138. {"models/newJailbreak/knifes/v_knife5.mdl", // Dual Tiger Knife
  139. {"models/newJailbreak/knifes/v_knife6.mdl", // Simple Axe
  140. {"models/newJailbreak/knifes/v_knife7.mdl", // Dual Katanas
  141. {"models/newJailbreak/knifes/v_knife8.mdl", // Arbian Knife
  142. {"models/newJailbreak/knifes/v_knife9.mdl", // Dual Sharp Knives
  143. {"models/newJailbreak/knifes/v_knife10.mdl", // Void Weapon
  144. {"models/newJailbreak/knifes/v_knife11.mdl", // Dual LightSabers
  145. {"models/newJailbreak/knifes/v_knife12.mdl", // Dual Bars
  146. {"models/newJailbreak/knifes/v_knife13.mdl", // Swift Lightsaber
  147. {"models/newJailbreak/knifes/v_knife14.mdl", // Nigger
  148. {"models/newJailbreak/knifes/v_knife15.mdl", // Tiger Knife
  149. {"models/newJailbreak/knifes/v_knife16.mdl", // Demonic Knife
  150. {"models/newJailbreak/knifes/v_knife17.mdl", // Assassin Knives
  151. {"models/newJailbreak/knifes/v_knife18.mdl", // Blue Blade
  152. {"models/newJailbreak/knifes/v_knife19.mdl", // DemonBlade
  153. {"models/newJailbreak/knifes/v_knife20.mdl", // Blooded Machete
  154. {"models/newJailbreak/knifes/v_knife21.mdl", // Swift Assassin
  155. {"models/newJailbreak/knifes/v_knife22.mdl", // Shovel
  156. {"models/newJailbreak/knifes/v_knife23.mdl", // Dragon Claws
  157. {"models/newJailbreak/knifes/v_knife24.mdl", // Claws
  158. {"models/newJailbreak/knifes/v_knife25.mdl", // Reaper
  159. {"models/newJailbreak/knifes/v_knife26.mdl", // Knight
  160. {"models/newJailbreak/knifes/v_knife27.mdl", // Chinese Sword
  161. {"models/newJailbreak/knifes/v_knife28.mdl", // Holiday Knife
  162. {"models/newJailbreak/knifes/v_knife29.mdl", // Legendry Sword
  163. {"models/newJailbreak/knifes/v_knife30.mdl", // Crystal Blades
  164. {"models/newJailbreak/knifes/v_knife31.mdl", // Kratos
  165. {"models/newJailbreak/knifes/v_knife32.mdl", // ChainSaw
  166. {"models/newJailbreak/knifes/v_knife33.mdl" // Froze Blade
  167. }
  168.  
  169. new knife_sounds_o[MAX_KNIFE_SNDS][] =
  170. {
  171. "weapons/knife_deploy1.wav",
  172. "weapons/knife_hit1.wav",
  173. "weapons/knife_hit2.wav",
  174. "weapons/knife_hit3.wav",
  175. "weapons/knife_hit4.wav",
  176. "weapons/knife_hitwall1.wav",
  177. "weapons/knife_slash1.wav",
  178. "weapons/knife_slash2.wav",
  179. "weapons/knife_stab.wav"
  180. }
  181.  
  182. new knifesoundsone[MAX_KNIFE_SNDS][] =
  183. {
  184. "newJailbreak/knifes/knife1/knife_deploy.wav",
  185. "newJailbreak/knifes/knife1/knife_hit1.wav",
  186. "newJailbreak/knifes/knife1/knife_hit1.wav",
  187. "newJailbreak/knifes/knife1/knife_hit1.wav",
  188. "newJailbreak/knifes/knife1/knife_hit1.wav",
  189. "newJailbreak/knifes/knife1/knife_hitwall.wav",
  190. "newJailbreak/knifes/knife1/knife_slash1.wav",
  191. "newJailbreak/knifes/knife1/knife_slash2.wav",
  192. "newJailbreak/knifes/knife1/knife_stab.wav"
  193. }
  194.  
  195. new knifesoundtwo[MAX_KNIFE_SNDS][] =
  196. {
  197. "newJailbreak/knifes/knife2/knife_deploy.wav",
  198. "newJailbreak/knifes/knife2/knife_hit1.wav",
  199. "newJailbreak/knifes/knife2/knife_hit1.wav",
  200. "newJailbreak/knifes/knife2/knife_hit1.wav",
  201. "newJailbreak/knifes/knife2/knife_hit1.wav",
  202. "newJailbreak/knifes/knife2/knife_hitwall.wav",
  203. "newJailbreak/knifes/knife2/knife_slash1.wav",
  204. "newJailbreak/knifes/knife2/knife_slash2.wav",
  205. "newJailbreak/knifes/knife2/knife_stab.wav"
  206. }
  207.  
  208. new knifesoundthre[MAX_KNIFE_SNDS][] =
  209. {
  210. "weapons/knife_deploy1.wav",
  211. "newJailbreak/knifes/knife3/knife_hit1.wav",
  212. "newJailbreak/knifes/knife3/knife_hit1.wav",
  213. "newJailbreak/knifes/knife3/knife_hit1.wav",
  214. "newJailbreak/knifes/knife3/knife_hit1.wav",
  215. "newJailbreak/knifes/knife3/knife_hitwall.wav",
  216. "newJailbreak/knifes/knife3/knife_slash.wav",
  217. "newJailbreak/knifes/knife3/knife_slash.wav",
  218. "newJailbreak/knifes/knife3/knife_stab.wav"
  219. }
  220.  
  221. new const CantMassages[][] = {
  222. {"You don't have enough cash to buy this knife"},
  223. {"You Have to Purchase other knifes before"},
  224. {"You don't own this knife yet"},
  225. {"You already own this knife"},
  226. {"You already using this knife model"},
  227. {"You don't have enough metals to buy this knife"}
  228. }
  229.  
  230. new iData[ 33 ][ enData ];
  231. new betweenknifes = 1
  232.  
  233.  
  234. new GambleMin = 300
  235. new GambleChance = 50
  236.  
  237. new choose[33];
  238. public plugin_init() {
  239. register_plugin("iPlay Knife Shop", "1.0", "Not ColdWar")
  240.  
  241. register_clcmd("say /shop","shopmenu")
  242. register_clcmd("say /knife","knifemenu")
  243.  
  244. register_clcmd( "say", "CmdSay" );
  245. register_clcmd("say", "CmdEditData");
  246.  
  247. register_event( "CurWeapon", "evCurWeapon", "be", "1=1" );
  248. RegisterHam( Ham_Spawn, "player", "FwdSpawn_Post", 1 );
  249. RegisterHam( Ham_TakeDamage, "player", "FwdTakeDamage_Pre", 0 );
  250. RegisterHam( Ham_TakeDamage, "player", "Ham_TakeDamage_PostSlag", 0 );
  251.  
  252.  
  253. new KnifeMenu = register_menuid("Knife Menu");
  254. new MetalsMenu = register_menuid("Metals Menu");
  255.  
  256. register_menucmd(KnifeMenu, 1023, "KnifeMenu_Handler");
  257. register_menucmd(MetalsMenu, 1023, "MetalsMenuSub_Handler");
  258.  
  259. register_forward(FM_EmitSound , "EmitSound");
  260. }
  261.  
  262.  
  263. public plugin_natives()
  264. {
  265. register_library( "KnifeShop" );
  266.  
  267. register_native( "give_user_metals", "_get_metals" );
  268. register_native( "get_user_cash", "_get_cash" );
  269. register_native( "set_user_cash", "_set_cash" );
  270. register_native( "get_user_bank", "_get_bank" );
  271. register_native( "set_user_bank", "_set_bank" );
  272. }
  273. public _get_metals( plugin, params )
  274. {
  275. new client = get_param( 1 );
  276.  
  277. giverandommetals(client)
  278. }
  279.  
  280. public _get_cash( plugin, params )
  281. {
  282. new client = get_param( 1 );
  283.  
  284. return iData[ client ][ Cash ];
  285. }
  286.  
  287. public _set_cash( plugin, params )
  288. {
  289. new client = get_param( 1 );
  290.  
  291. new amount = max( 0, get_param( 2 ) );
  292.  
  293. iData[ client ][ Cash ] = amount;
  294.  
  295. if ( iData[ client ][ Bank ] <0 )
  296. iData[ client ][ Bank ] = 0;
  297.  
  298. SaveData( client );
  299.  
  300. return iData[ client ][ Cash ];
  301. }
  302.  
  303. public _get_bank( plugin, params )
  304. {
  305. new client = get_param( 1 );
  306.  
  307. return iData[ client ][ Bank ];
  308. }
  309.  
  310. public _set_bank( plugin, params )
  311. {
  312. new client = get_param( 1 );
  313.  
  314. new amount = max( 0, get_param( 2 ) );
  315.  
  316. iData[ client ][ Bank ] = amount;
  317.  
  318. if ( iData[ client ][ Bank ] <0 )
  319. iData[ client ][ Bank ] = 0;
  320.  
  321. SaveData( client );
  322.  
  323. return iData[ client ][ Bank ];
  324. }
  325.  
  326.  
  327. public plugin_precache()
  328. {
  329. for ( new i; i < sizeof Knifemod; i++ )
  330. {
  331. if(Knifemod[i][SpecialModel] == 1)
  332. {
  333. new szModel[ 128 ];
  334. formatex( szModel, charsmax( szModel ), "models/player/%s/%s.mdl", Knifemod[i][MODEL], Knifemod[i][MODEL] );
  335. precache_model( szModel );
  336. }
  337. }
  338. for ( new i; i < sizeof Models; i++ )
  339. {
  340. precache_model( Models[i][VMODEL] );
  341. }
  342.  
  343. for(new i = 0; i < MAX_KNIFE_SNDS; i++)
  344. {
  345. precache_sound( knifesoundsone[i] )
  346. precache_sound( knifesoundtwo[i] )
  347. precache_sound( knifesoundthre[i] )
  348. }
  349. }
  350.  
  351. public EmitSound(entity, channel, const sound[])
  352. {
  353. if(pev_valid(entity) && is_user_alive(entity))
  354. {
  355. if(Knifemod[iData[ entity ][ UseKnife ]][SpecialSound] > 0)
  356. {
  357. if(iData[ entity ][ UseKnife ] == 3)
  358. {
  359. for(new i = 0; i < MAX_KNIFE_SNDS; i++)
  360. {
  361. if(equal(sound , knife_sounds_o[i]))
  362. {
  363. emit_sound(entity, channel, knifesoundsone[i], 1.0, ATTN_NORM, 0, PITCH_NORM);
  364. return FMRES_SUPERCEDE;
  365. }
  366. }
  367. }
  368. else if(iData[ entity ][ UseKnife ] == 4)
  369. {
  370. for(new i = 0; i < MAX_KNIFE_SNDS; i++)
  371. {
  372. if(equal(sound , knife_sounds_o[i]))
  373. {
  374. emit_sound(entity, channel, knifesoundtwo[i], 1.0, ATTN_NORM, 0, PITCH_NORM);
  375. return FMRES_SUPERCEDE;
  376. }
  377. }
  378. }
  379. else if(iData[ entity ][ UseKnife ] == 7)
  380. {
  381. for(new i = 0; i < MAX_KNIFE_SNDS; i++)
  382. {
  383. if(equal(sound , knife_sounds_o[i]))
  384. {
  385. emit_sound(entity, channel, knifesoundthre[i], 1.0, ATTN_NORM, 0, PITCH_NORM);
  386. return FMRES_SUPERCEDE;
  387. }
  388. }
  389. }
  390. }
  391. }
  392. return FMRES_IGNORED;
  393. }
  394.  
  395. public CmdEditData( client)
  396. {
  397.  
  398. new szMsg[ 192 ], szArgs[ 3 ][ 32 ];
  399.  
  400. read_argv( 1, szMsg, charsmax( szMsg ) );
  401.  
  402. parse( szMsg, szArgs[ 0 ], 31, szArgs[ 1 ], 31, szArgs[ 2 ], 31 );
  403.  
  404. if(equali(szArgs[ 0 ], "/givecash") || equali(szArgs[ 0 ], "!givecash"))
  405. {
  406. if(!(get_user_flags(client) & ADMIN_IMMUNITY))
  407. {
  408. ColorChat(client, "You ^4don't^1 have ^3access^1 to do this ^4command^1" );
  409. return 1;
  410. }
  411. new iPlayer = cmd_target( client, szArgs[ 1 ], 8 );
  412.  
  413.  
  414. if ( !iPlayer )
  415. return ColorChat( client, "^3%s^1 was not found!", szArgs[ 1 ] );
  416.  
  417. if ( !is_user_connected( iPlayer ) )
  418. return 1;
  419.  
  420. if ( !is_str_num( szArgs[ 2 ] ) )
  421. {
  422. ColorChat(client, "You ^4need^1 to use ^3valid^1 numbers ^4only^1." );
  423. return 1;
  424. }
  425.  
  426. new Amount = str_to_num( szArgs[ 2 ] );
  427.  
  428. if ( Amount < 1 )
  429. {
  430. ColorChat(client, "^4Error^1: Minimum value is: ^3 1^1.");
  431. return 1;
  432. }
  433.  
  434.  
  435. new amountofnumber = iData[ iPlayer ][ Cash ] + Amount;
  436.  
  437. iData[ iPlayer ][ Cash ] += Amount;
  438.  
  439. if(amountofnumber < 0)
  440. {
  441. iData[ iPlayer ][ Cash ] = 0;
  442. }
  443.  
  444. ColorChat(0, "^4%s^1 just give ^3%i^1 cash to ^4%s^1",GetName( client ),Amount,GetName( iPlayer ) );
  445.  
  446. SaveData( iPlayer );
  447.  
  448. return 1;
  449. }
  450. if(equali(szArgs[ 0 ], "/takecash") || equali(szArgs[ 0 ], "!takecash"))
  451. {
  452. if(!(get_user_flags(client) & ADMIN_IMMUNITY))
  453. {
  454. ColorChat(client, "You ^4don't^1 have ^3access^1 to do this ^4command^1" );
  455. return 1;
  456. }
  457.  
  458. new iPlayer = cmd_target( client, szArgs[ 1 ], 8 );
  459.  
  460.  
  461. if ( !iPlayer )
  462. return ColorChat( client, "^3%s^1 was not found!", szArgs[ 1 ] );
  463.  
  464. if ( !is_user_connected( iPlayer ) )
  465. return 1;
  466.  
  467. if ( !is_str_num( szArgs[ 2 ] ) )
  468. {
  469. ColorChat(client, "You ^4need^1 to use ^3valid^1 numbers ^4only^1." );
  470. return 1;
  471. }
  472.  
  473. if(iData[ iPlayer ][ Cash ] == 0)
  474. {
  475. ColorChat(client, "you ^3cant^1 take ^4cash^1 from ^3%s^1",GetName( iPlayer ) );
  476. return 1;
  477. }
  478. new Amount = str_to_num( szArgs[ 2 ] );
  479.  
  480. if ( Amount < 1 )
  481. {
  482. ColorChat(client, "^4Error^1: Minimum value is: ^3 1^1.");
  483. return 1;
  484. }
  485.  
  486.  
  487. new amountofnumber = iData[ iPlayer ][ Cash ] - Amount;
  488.  
  489. iData[ iPlayer ][ Cash ] -= Amount;
  490.  
  491. if(amountofnumber < 0)
  492. {
  493. iData[ iPlayer ][ Cash ] = 0;
  494. }
  495.  
  496. ColorChat(0, "^4%s^1 just take ^3%i^1 cash From ^4%s^1",GetName( client ),Amount,GetName( iPlayer ) );
  497.  
  498. SaveData( iPlayer );
  499.  
  500. return 1;
  501. }
  502. return 0;
  503. }
  504.  
  505. public CmdSay( client )
  506. {
  507. new szMsg[ 192 ], szArgs[ 3 ][ 32 ];
  508.  
  509. read_argv( 1, szMsg, charsmax( szMsg ) );
  510.  
  511. parse( szMsg, szArgs[ 0 ], 31, szArgs[ 1 ], 31, szArgs[ 2 ], 31 );
  512.  
  513. if ( equali( szArgs[ 0 ], "/cash" ) )
  514. {
  515. new iPlayer = cmd_target( client, szArgs[ 1 ], 8 );
  516.  
  517. if ( equali( szMsg, "/cash" ) )
  518. iPlayer = client;
  519.  
  520. if ( !iPlayer )
  521. return ColorChat( client, "There are ^4no^1 players with name ^3%s^1", szArgs[ 1 ] );
  522.  
  523. if(client == iPlayer)
  524. {
  525. if(iData[ iPlayer ][ UseKnife ] != iData[ iPlayer ] [BoughtKnife])
  526. ColorChat( client, "You have ^3%i^1 cash, ^3%i^1 in bank, you have ^4%s^1, you are using ^4%s^1, not ranked.",iData[ iPlayer ][ Cash ],iData[ iPlayer ][ Bank ],Knifemod[iData[ iPlayer ] [BoughtKnife]][KnifeName],Knifemod[iData[ iPlayer ] [UseKnife]][KnifeName]);
  527. else
  528. ColorChat( client, "You have ^3%i^1 cash, ^3%i^1 in bank, you have ^4%s^1, not ranked.",iData[ iPlayer ][ Cash ],iData[ iPlayer ][ Bank ],Knifemod[iData[ iPlayer ] [BoughtKnife]][KnifeName]);
  529.  
  530. return 1;
  531. }
  532. else
  533. {
  534. if(iData[ iPlayer ][ UseKnife ] != iData[ iPlayer ] [BoughtKnife])
  535. ColorChat( client, "^3%s^1 has ^4%i^1 cash, ^4%i^1 in bank, he has ^4%s^1, he is using ^4%s^1, not ranked.",GetName(iPlayer),iData[ iPlayer ][ Cash ],iData[ iPlayer ][ Bank ],Knifemod[iData[ iPlayer ] [BoughtKnife]][KnifeName],Knifemod[iData[ iPlayer ] [UseKnife]][KnifeName])
  536. else
  537. ColorChat( client, "^3%s^1 has ^4%i^1 cash, ^4%i^1 in bank, he has ^4%s^1, not ranked.",GetName(iPlayer),iData[ iPlayer ][ Cash ],iData[ iPlayer ][ Bank ],Knifemod[iData[ iPlayer ] [BoughtKnife]][KnifeName])
  538.  
  539. return 1;
  540. }
  541. }
  542. if ( equali( szArgs[ 0 ], "/gamble" ) )
  543. {
  544. new bool:GambleAll[33] = false;
  545.  
  546. new Amount = str_to_num( szArgs[ 1 ] );
  547.  
  548. if ( equali( szArgs[ 1 ], "allin" ) || equali( szArgs[ 1 ], "all" ) )
  549. {
  550. Amount = iData[ client ][ Cash ];
  551. GambleAll[client] = true;
  552.  
  553. }
  554.  
  555. else if ( equali( szMsg, "/gamble" ) || !is_str_num( szArgs[ 1 ] ) )
  556. return ColorChat( client, "Syntax: /^4gamble^1 <^3amount^1>" );
  557.  
  558. if ( Amount > iData[ client ][ Cash ] )
  559. return ColorChat( client, "You don't have this amount of cash." );
  560.  
  561. if ( Amount < GambleMin )
  562. return ColorChat( client, "The amount must be greater than ^4%i^1.", GambleMin );
  563.  
  564.  
  565. new g_iChance = random_num( 1, 100 );
  566.  
  567. new bool: b_gambleWin = false, iTotal = iData[ client ][ Cash ];
  568.  
  569. iData[ client ][ Cash ] -= Amount;
  570.  
  571.  
  572. if ( g_iChance <= GambleChance )
  573. {
  574. b_gambleWin = true;
  575.  
  576. iData[ client ][ Cash ] = iTotal + Amount;
  577. }
  578.  
  579. if( GambleAll[client])
  580. {
  581. ColorChat( 0, "^3%s^1 just gambled on ^4%i^1 cash and ^3%s^1.^4[^1ALL^3-^1IN^4]^1", GetName( client ), Amount, b_gambleWin ? "won" : "lost");
  582. GambleAll[client] = false;
  583. }
  584. else
  585. {
  586. ColorChat( 0, "^3%s^1 just gambled on ^4%i^1 cash and ^3%s^1.", GetName( client ), Amount, b_gambleWin ? "won" : "lost");
  587. }
  588.  
  589.  
  590. SaveData( client );
  591. return 1;
  592. }
  593. if ( equali( szArgs[ 0 ], "/metals" ) )
  594. {
  595. new iPlayer = cmd_target( client, szArgs[ 1 ], 8 );
  596.  
  597. if ( equali( szMsg, "/metals" ) )
  598. iPlayer = client;
  599.  
  600. if ( !iPlayer )
  601. return ColorChat( client, "There are ^4no^1 players with name ^3%s^1", szArgs[ 1 ] );
  602.  
  603. if(client == iPlayer)
  604. {
  605. new totalmetals = iData[ iPlayer ] [KnifeBRASS] + iData[ iPlayer ] [KnifeCOPPER] + iData[ iPlayer ] [KnifeBRONZE] + iData[ iPlayer ] [KnifeALUMINUIM] + iData[ iPlayer ] [KnifeIRON] + iData[ iPlayer ] [KnifeSTEEL] + iData[ iPlayer ] [KnifeSILVER] + iData[ iPlayer ] [KnifeGOLD] + iData[ iPlayer ] [KnifeDIAMOND]
  606. ColorChat( client, "You have the following ^4metals^1")
  607. ColorChat( client, "Brass: ^4%i^1 ^3|^1 Copper: ^4%i^1 ^3|^1 Bronze: ^4%i^1.",iData[ iPlayer ] [KnifeBRASS],iData[ iPlayer ] [KnifeCOPPER],iData[ iPlayer ] [KnifeBRONZE])
  608. ColorChat( client, "Aluminium: ^4%i^1 ^3|^1 Iron: ^4%i^1 ^3|^1 Steel: ^4%i^1.",iData[ iPlayer ] [KnifeALUMINUIM],iData[ iPlayer ] [KnifeIRON],iData[ iPlayer ] [KnifeSTEEL])
  609. ColorChat( client, "Silver: ^4%i^1 ^3|^1 Gold: ^4%i^1 ^3|^1 Diamond: ^4%i^1.",iData[ iPlayer ] [KnifeSILVER],iData[ iPlayer ] [KnifeGOLD],iData[ iPlayer ] [KnifeDIAMOND])
  610. ColorChat( client, "You have ^4%i^1 metals, not ranked.",totalmetals)
  611.  
  612. return 1;
  613. }
  614. else
  615. {
  616. new totalmetals = iData[ iPlayer ] [KnifeBRASS] + iData[ iPlayer ] [KnifeCOPPER] + iData[ iPlayer ] [KnifeBRONZE] + iData[ iPlayer ] [KnifeALUMINUIM] + iData[ iPlayer ] [KnifeIRON] + iData[ iPlayer ] [KnifeSTEEL] + iData[ iPlayer ] [KnifeSILVER] + iData[ iPlayer ] [KnifeGOLD] + iData[ iPlayer ] [KnifeDIAMOND]
  617. ColorChat( client, "^3%s^1 has the following ^4metals^1",GetName(iPlayer))
  618. ColorChat( client, "Brass: ^4%i^1 ^3|^1 Copper: ^4%i^1 ^3|^1 Bronze: ^4%i^1.",iData[ iPlayer ] [KnifeBRASS],iData[ iPlayer ] [KnifeCOPPER],iData[ iPlayer ] [KnifeBRONZE])
  619. ColorChat( client, "Aluminium: ^4%i^1 ^3|^1 Iron: ^4%i^1 ^3|^1 Steel: ^4%i^1.",iData[ iPlayer ] [KnifeALUMINUIM],iData[ iPlayer ] [KnifeIRON],iData[ iPlayer ] [KnifeSTEEL])
  620. ColorChat( client, "Silver: ^4%i^1 ^3|^1 Gold: ^4%i^1 ^3|^1 Diamond: ^4%i^1.",iData[ iPlayer ] [KnifeSILVER],iData[ iPlayer ] [KnifeGOLD],iData[ iPlayer ] [KnifeDIAMOND])
  621. ColorChat( client, "^3%s^1 has ^4%i^1 metals, not ranked.",GetName(iPlayer),totalmetals)
  622.  
  623. return 1;
  624. }
  625. }
  626. return 0;
  627. }
  628.  
  629. public FwdSpawn_Post( client )
  630. {
  631. if ( !is_user_connected( client ) || !is_user_alive( client ))
  632. return 1;
  633.  
  634.  
  635. fm_set_user_health( client, get_user_health( client ) + Knifemod[iData[ client ][ BoughtKnife ]][BunusHealth] );
  636.  
  637. GiveSkinModel(client)
  638.  
  639. return 0;
  640. }
  641.  
  642. public shopmenu( id )
  643. {
  644. static Menuz[100],Item[200];
  645.  
  646. formatex(Menuz,charsmax(Menuz),"\r[%s] \wJailbreak Shop^n\wChoose the shop category that you`d like to browse:",szPrefix);
  647. new menu = menu_create(Menuz, "shopmenuhandler");
  648.  
  649.  
  650. formatex(Item, charsmax(Item),"\wKnife Shop");
  651. menu_additem(menu, Item, "0")
  652. formatex(Item, charsmax(Item),"\wBoosts Shop^n");
  653. menu_additem(menu, Item, "1")
  654. formatex(Item, charsmax(Item),"\wSpecial Traits Menu");
  655. menu_additem(menu, Item, "2")
  656. formatex(Item, charsmax(Item),"\wLottery Menu");
  657. menu_additem(menu, Item, "3")
  658. formatex(Item, charsmax(Item),"\wJackpot Menu");
  659. menu_additem(menu, Item, "4")
  660. formatex(Item, charsmax(Item),"\wTop Players Menu");
  661. menu_additem(menu, Item, "5")
  662.  
  663. menu_setprop( menu, MPROP_NUMBER_COLOR, "\r");
  664. menu_display(id, menu)
  665.  
  666. return 1;
  667. }
  668.  
  669. public shopmenuhandler(id, menu, item)
  670. {
  671. switch(item)
  672. {
  673.  
  674. case 0:
  675. {
  676. knifemenu(id)
  677. }
  678.  
  679. case 1:
  680. {
  681. shopmenu( id )
  682. }
  683. case 2:
  684. {
  685. shopmenu( id )
  686. }
  687. case 3:
  688. {
  689. shopmenu( id )
  690. }
  691. case 4:
  692. {
  693. shopmenu( id )
  694. }
  695. case 5:
  696. {
  697. shopmenu( id )
  698. }
  699.  
  700. }
  701. }
  702.  
  703.  
  704. public knifemenu(id)
  705. {
  706. new Menuz[300]
  707. formatex(Menuz,charsmax(Menuz),"\r[%s] \wJailbreak Shop^nYou own %i/%i You are not ranked^nChoose a knife you`d like to view its information:",szPrefix,iData[ id ][ BoughtKnife ],(MAX_KNIFE - 1));
  708. new iMenu = menu_create(Menuz, "knifemenuHandler");
  709.  
  710. new szItem[64],size;
  711. for( new i; i < sizeof Knifemod; i++)
  712. {
  713. if(i == 0)
  714. continue
  715. size = i - iData[ id ][ BoughtKnife ]
  716. if(size > betweenknifes)
  717. formatex(szItem, charsmax(szItem),"\d%s ",Knifemod[i][KnifeName]);
  718. else
  719. formatex(szItem, charsmax(szItem),"\w%s",Knifemod[i][KnifeName]);
  720. menu_additem(iMenu, szItem)
  721. }
  722. menu_setprop( iMenu, MPROP_NUMBER_COLOR, "\r");
  723. menu_display(id, iMenu)
  724.  
  725. return 1;
  726. }
  727.  
  728. public knifemenuHandler(id, iMenu, item)
  729. {
  730. if(item == MENU_EXIT)
  731. {
  732. shopmenu( id )
  733. return 1;
  734. }
  735. choose[id] = (item + 1)
  736. KnifeMenuSub(id);
  737. menu_destroy (iMenu)
  738. return 1;
  739. }
  740.  
  741.  
  742. public KnifeMenuSub(id) {
  743.  
  744. new szBuffer[512], iLen,Change[500],UsingModelSta[500];
  745. new totalmetals = KnifemodMetals[choose[id]][BRASS] + KnifemodMetals[choose[id]][COPPER] + KnifemodMetals[choose[id]][BRONZE] + KnifemodMetals[choose[id]][ALUMINUIM] + KnifemodMetals[choose[id]][IRON] + KnifemodMetals[choose[id]][STEEL] + KnifemodMetals[choose[id]][SILVER] + KnifemodMetals[choose[id]][DIAMOND]
  746. new ifcanbought = choose[id] - iData[ id ][ BoughtKnife ]
  747. formatex(UsingModelSta,charsmax(UsingModelSta),"\y- \dSpecial Sound: %s\w.^n\y- \dSpecial Model: %s\w.",Knifemod[choose[id]][SpecialSound] ? "\yYES" : "\rNO",Knifemod[choose[id]][SpecialModel] ? "\yYES" : "\rNO" );
  748. formatex(Change,charsmax(Change),"\y- \dBunus Health \r+%i\w.^n\y- \dDamage Modifier \r+%i%%\w.^n\y- \dCash Modifier \r+%i%%\w.^n\y- \dSlag Chance \r+%i%%\w.^n\y- \dPrice: \r%i cash\w, \r%i metals\w.^n%s",Knifemod[choose[id]][BunusHealth],Knifemod[choose[id]][KnifeDamage],Knifemod[choose[id]][KnifeCash],Knifemod[choose[id]][KnifeSlag],Knifemod[choose[id]][KnifePrice],totalmetals,UsingModelSta);
  749.  
  750. iLen = formatex(szBuffer, sizeof szBuffer - 1, "\r[%s] \wJailbreak Shop ^n\y%s`s \wstats:^n^n%s^n^n",szPrefix,Knifemod[choose[id]][KnifeName],Change);
  751.  
  752. if(totalmetals > 0 )
  753. iLen += formatex(szBuffer[iLen], (sizeof szBuffer - 1) - iLen, "\r1.\wEnter knife`s metals list^n");
  754. else
  755. iLen += formatex(szBuffer[iLen], (sizeof szBuffer - 1) - iLen, "\r1.\dThis knife has no required metals^n");
  756.  
  757.  
  758. if(ifcanbought > betweenknifes)
  759. {
  760. iLen += formatex(szBuffer[iLen], (sizeof szBuffer - 1) - iLen, "\r2.\dKnife can't be bought due to: \y%s^n",CantMassages[1]);
  761. }
  762. else if(Knifemod[choose[id]][KnifePrice] > iData[ id ][ Cash ] && iData[ id ][ BoughtKnife ] < choose[id])
  763. {
  764. iLen += formatex(szBuffer[iLen], (sizeof szBuffer - 1) - iLen, "\r2.\dKnife can't be bought due to: \y%s^n",CantMassages[0]);
  765. }
  766. else if(iData[ id ][ BoughtKnife ] >= choose[id])
  767. {
  768. iLen += formatex(szBuffer[iLen], (sizeof szBuffer - 1) - iLen, "\r2.\dKnife can't be bought due to: \y%s^n",CantMassages[3]);
  769. }
  770. else if( checkfirstmetal(id) || checkfirstmetalsec(id) || checkfirstmetalthree(id))
  771. {
  772. iLen += formatex(szBuffer[iLen], (sizeof szBuffer - 1) - iLen, "\r2.\dKnife can't be bought due to: \y%s^n",CantMassages[5]);
  773. }
  774. else if(iData[ id ][ Cash ] >= Knifemod[choose[id]][KnifePrice] && iData[ id ][ BoughtKnife ] < choose[id])
  775. {
  776. iLen += formatex(szBuffer[iLen], (sizeof szBuffer - 1) - iLen, "\r2.\wPurchase^n");
  777. }
  778.  
  779.  
  780. if(iData[ id ][ BoughtKnife ] < choose[id])
  781. {
  782. iLen += formatex(szBuffer[iLen], (sizeof szBuffer - 1) - iLen, "\r3.\dKnife's model can't be use due to: \y%s^n^n",CantMassages[2]);
  783. }
  784. else if(iData[ id ][ UseKnife ] == choose[id])
  785. {
  786. iLen += formatex(szBuffer[iLen], (sizeof szBuffer - 1) - iLen, "\r3.\dKnife's model can't be use due to: \y%s^n^n",CantMassages[4]);
  787. }
  788. else if(iData[ id ][ BoughtKnife ] >= choose[id] && iData[ id ][ UseKnife ] != choose[id])
  789. {
  790. iLen += formatex(szBuffer[iLen], (sizeof szBuffer - 1) - iLen, "\r3.\wUse^n^n");
  791. }
  792.  
  793. iLen += formatex(szBuffer[iLen], (sizeof szBuffer - 1) - iLen, "\r0. \wExit");
  794.  
  795. new iKeys = ( 1<<0 | 1<<1 | 1<<2 | 1<<9 );
  796. show_menu(id, iKeys, szBuffer, -1, "Knife Menu");
  797. }
  798. public KnifeMenu_Handler(id, key) {
  799. switch(key) {
  800. case 0:
  801. {
  802. new totalmetals = KnifemodMetals[choose[id]][BRASS] + KnifemodMetals[choose[id]][COPPER] + KnifemodMetals[choose[id]][BRONZE] + KnifemodMetals[choose[id]][ALUMINUIM] + KnifemodMetals[choose[id]][IRON] + KnifemodMetals[choose[id]][STEEL] + KnifemodMetals[choose[id]][SILVER] + KnifemodMetals[choose[id]][DIAMOND]
  803.  
  804. if( totalmetals > 0)
  805. MetalsMenuSub(id)
  806. else
  807. KnifeMenuSub(id)
  808. }
  809. case 1:
  810. {
  811. new ifcanbought = choose[id] - iData[ id ][ BoughtKnife ]
  812.  
  813. if(ifcanbought > betweenknifes)
  814. {
  815. KnifeMenuSub(id)
  816. }
  817. else if(Knifemod[choose[id]][KnifePrice] > iData[ id ][ Cash ] && iData[ id ][ BoughtKnife ] < choose[id])
  818. {
  819. KnifeMenuSub(id)
  820. }
  821. else if(iData[ id ][ BoughtKnife ] >= choose[id])
  822. {
  823. KnifeMenuSub(id)
  824. }
  825. else if( checkfirstmetal(id) || checkfirstmetalsec(id) || checkfirstmetalthree(id))
  826. {
  827. KnifeMenuSub(id)
  828. }
  829. else if(iData[ id ][ Cash ] >= Knifemod[choose[id]][KnifePrice] && iData[ id ][ BoughtKnife ] < choose[id])
  830. {
  831. new totalmetals = KnifemodMetals[choose[id]][BRASS] + KnifemodMetals[choose[id]][COPPER] + KnifemodMetals[choose[id]][BRONZE] + KnifemodMetals[choose[id]][ALUMINUIM] + KnifemodMetals[choose[id]][IRON] + KnifemodMetals[choose[id]][STEEL] + KnifemodMetals[choose[id]][SILVER] + KnifemodMetals[choose[id]][DIAMOND]
  832.  
  833. if(totalmetals > 0)
  834. {
  835. iData[ id ][ KnifeBRASS ]-= KnifemodMetals[choose[id]][BRASS]
  836. iData[ id ][ KnifeCOPPER ]-= KnifemodMetals[choose[id]][COPPER]
  837. iData[ id ][ KnifeBRONZE ]-= KnifemodMetals[choose[id]][BRONZE]
  838. iData[ id ][ KnifeALUMINUIM ]-= KnifemodMetals[choose[id]][ALUMINUIM]
  839. iData[ id ][ KnifeIRON ]-= KnifemodMetals[choose[id]][IRON]
  840. iData[ id ][ KnifeSTEEL ]-= KnifemodMetals[choose[id]][STEEL]
  841. iData[ id ][ KnifeSILVER ]-= KnifemodMetals[choose[id]][SILVER]
  842. iData[ id ][ KnifeGOLD ]-= KnifemodMetals[choose[id]][GOLD]
  843. iData[ id ][ KnifeDIAMOND ]-= KnifemodMetals[choose[id]][DIAMOND]
  844. }
  845.  
  846. iData[ id ][ Cash ]-=Knifemod[choose[id]][KnifePrice]
  847.  
  848. iData[ id ][ BoughtKnife ] = choose[id]
  849. iData[ id ][ UseKnife ] = choose[id]
  850.  
  851. ColorChat(0,"^4%s^1 just bought ^3%s^1 for ^4%i^1 cash",GetName(id),Knifemod[choose[id]][KnifeName],Knifemod[choose[id]][KnifePrice])
  852.  
  853. SaveData(id)
  854. KnifeMenuSub(id)
  855. GiveKnifeModel(id)
  856. GiveSkinModel(id)
  857. }
  858. }
  859. case 2:
  860. {
  861. if(iData[ id ][ BoughtKnife ] < choose[id])
  862. {
  863. KnifeMenuSub(id)
  864. }
  865. else if(iData[ id ][ UseKnife ] == choose[id])
  866. {
  867. KnifeMenuSub(id)
  868. }
  869. else if(iData[ id ][ BoughtKnife ] >= choose[id] && iData[ id ][ UseKnife ] != choose[id])
  870. {
  871. iData[ id ][ UseKnife ] = choose[id]
  872. ColorChat(id,"you ^3are^1 using ^4%s^1",Knifemod[choose[id]][KnifeName])
  873. SaveData(id)
  874. KnifeMenuSub(id);
  875. GiveKnifeModel(id)
  876. GiveSkinModel(id)
  877. }
  878.  
  879. }
  880. case 9: knifemenu(id);
  881. }
  882. return PLUGIN_HANDLED;
  883. }
  884.  
  885.  
  886.  
  887. public MetalsMenuSub(id) {
  888.  
  889. new szBuffer[512], iLen,Change[500],Jail[500];
  890. formatex(Jail,charsmax(Jail),"\y- \dSteel \r(\y%i\r/\y%i\r)\w.^n\y- \dSilver \r(\y%i\r/\y%i\r)\w.^n\y- \dGold \r(\y%i\r/\y%i\r)\w.^n\y- \dDiamond \r(\y%i\r/\y%i\r)\w.^n",iData[ id ][ KnifeSTEEL ],KnifemodMetals[choose[id]][STEEL],iData[ id ][ KnifeSILVER ],KnifemodMetals[choose[id]][SILVER],iData[ id ][ KnifeGOLD ],KnifemodMetals[choose[id]][GOLD],iData[ id ][ KnifeDIAMOND ],KnifemodMetals[choose[id]][DIAMOND]);
  891. formatex(Change,charsmax(Change),"\y- \dBrass \r(\y%i\r/\y%i\r)\w.^n\y- \dCopper \r(\y%i\r/\y%i\r)\w.^n\y- \dBronze \r(\y%i\r/\y%i\r)\w.^n\y- \dAluminium \r(\y%i\r/\y%i\r)\w.^n\y- \dIron \r(\y%i\r/\y%i\r)\w.^n%s",iData[ id ][ KnifeBRASS ],KnifemodMetals[choose[id]][BRASS],iData[ id ][ KnifeCOPPER ],KnifemodMetals[choose[id]][COPPER],iData[ id ][ KnifeBRONZE ],
  892. KnifemodMetals[choose[id]][BRONZE],iData[ id ][ KnifeALUMINUIM ],KnifemodMetals[choose[id]][ALUMINUIM],iData[ id ][ KnifeIRON ],KnifemodMetals[choose[id]][IRON],Jail);
  893.  
  894. iLen = formatex(szBuffer, sizeof szBuffer - 1, "\r[%s] \wJailbreak Knifes^nView \r%s`s \wrequired metals^nFormat: \y- \dMetal \r(\yYour Metal\r/\yRequired Metal\r)\w.^n^n%s",szPrefix,Knifemod[choose[id]][KnifeName],Change);
  895.  
  896. iLen += formatex(szBuffer[iLen], (sizeof szBuffer - 1) - iLen, "^n^n\r0. \wExit");
  897.  
  898. new iKeys = ( 1<<0 | 1<<9 );
  899. show_menu(id, iKeys, szBuffer, -1, "Metals Menu");
  900. }
  901. public MetalsMenuSub_Handler(id, key) {
  902. switch(key)
  903. {
  904. case 0: MetalsMenuSub(id)
  905. case 9: KnifeMenuSub(id);
  906. }
  907. return PLUGIN_HANDLED;
  908. }
  909.  
  910. public evCurWeapon( client )
  911. {
  912. if ( !is_user_alive( client ) || !is_user_connected( client ))
  913. return 0;
  914.  
  915. if ( get_user_weapon( client ) == CSW_KNIFE)
  916. {
  917. entity_set_string(client,EV_SZ_viewmodel,Models[iData[ client ][ UseKnife ]][VMODEL]);
  918. }
  919.  
  920. return 0;
  921. }
  922.  
  923. public client_putinserver( index )
  924. {
  925. LoadData( index );
  926.  
  927. if ( iData[ index ][ Connection ] == 0 )
  928. {
  929. iData[ index ][ Connection ] = 1;
  930. iData[ index ][ Cash ] = 3000
  931. }
  932. }
  933.  
  934. public client_disconnect( client )
  935. {
  936. SaveData( client );
  937. }
  938.  
  939. public FwdTakeDamage_Pre( iVictim, Inf, iAttacker, Float:fDamage, iDmgBits )
  940. {
  941. static gMaxPlayers;
  942.  
  943. gMaxPlayers = get_maxplayers();
  944.  
  945. if ( 1 <= iAttacker <= gMaxPlayers && 1 <= iVictim <= gMaxPlayers && get_user_weapon( iAttacker ) == CSW_KNIFE && iDmgBits & DMG_NEVERGIB && !(iDmgBits&(1<<24)) )
  946. {
  947. new Float:adddamage = ((fDamage * float(Knifemod[iData[ iAttacker ] [BoughtKnife]][KnifeDamage])) / 100.0)
  948.  
  949. SetHamParamFloat( 4, fDamage + adddamage );
  950.  
  951. if ( cs_get_user_team( iVictim ) == cs_get_user_team( iAttacker ) && get_cvar_num( "mp_friendlyfire" ) == 0 )
  952. return 1;
  953.  
  954. new Float:fRandom[ 3 ];
  955.  
  956. for ( new i; i < 3; i++ )
  957. fRandom[ i ] = random_float( 100.0, 150.0 );
  958.  
  959. entity_set_vector( iVictim, EV_VEC_punchangle, fRandom );
  960. }
  961. return 1;
  962. }
  963.  
  964. public Ham_TakeDamage_PostSlag( iVictim, Inf, iAttacker, Float:fDamage, iDmgBits )
  965. {
  966. new iChance = Knifemod[iData[ iAttacker ] [BoughtKnife]][KnifeSlag]
  967.  
  968. if( iChance == 0 )
  969. return 1;
  970.  
  971. new bool:doSlag = ( random_num( 1, 100 ) <= iChance );
  972.  
  973. static gMaxPlayers;
  974. gMaxPlayers = get_maxplayers();
  975.  
  976. if( doSlag )
  977. {
  978. if ( 1 <= iAttacker <= gMaxPlayers && 1 <= iVictim <= gMaxPlayers && get_user_weapon( iAttacker ) == CSW_KNIFE && iDmgBits & DMG_NEVERGIB && !(iDmgBits&(1<<24)) )
  979. {
  980. SetHamParamFloat( 4, fDamage * 2 );
  981.  
  982. if ( cs_get_user_team( iVictim ) == cs_get_user_team( iAttacker ) && get_cvar_num( "mp_friendlyfire" ) == 0 )
  983. return 1;
  984.  
  985. fm_set_user_rendering(iVictim, kRenderFxGlowShell, 28,134,238, kRenderNormal, 65);
  986. set_pev(iVictim, pev_flags, (pev(iVictim, pev_flags) | FL_FROZEN));
  987. set_task(2.5,"RemoveGlow",iVictim);
  988. }
  989. }
  990. return 1;
  991. }
  992. public RemoveGlow(id)
  993. {
  994. fm_set_user_rendering(id);
  995. set_pev(id, pev_flags, (pev(id, pev_flags) & ~FL_FROZEN));
  996. remove_task(id);
  997. }
  998.  
  999. public giverandommetals(id)
  1000. {
  1001. new randommetal = random_num(0,8)
  1002.  
  1003. switch(randommetal)
  1004. {
  1005. case 0:
  1006. {
  1007. iData[ id ][ KnifeBRASS ]++
  1008. ColorChat(id,"You ^3opened^1 the box metals and got ^4Brass^1")
  1009. }
  1010. case 1:
  1011. {
  1012. iData[ id ][ KnifeCOPPER ]++
  1013. ColorChat(id,"You ^3opened^1 the box metals and got ^4Copper^1")
  1014. }
  1015. case 2:
  1016. {
  1017. iData[ id ][ KnifeBRONZE ]++
  1018. ColorChat(id,"You ^3opened^1 the box metals and got ^4Bronze^1")
  1019. }
  1020. case 3:
  1021. {
  1022. iData[ id ][ KnifeALUMINUIM ]++
  1023. ColorChat(id,"You ^3opened^1 the box metals and got ^4Aluminuim^1")
  1024. }
  1025. case 4:
  1026. {
  1027. iData[ id ][ KnifeIRON ]++
  1028. ColorChat(id,"You ^3opened^1 the box metals and got ^4Iron^1")
  1029. }
  1030. case 5:
  1031. {
  1032. iData[ id ][ KnifeSTEEL ]++
  1033. ColorChat(id,"You ^3opened^1 the box metals and got ^4Steel^1")
  1034. }
  1035. case 6:
  1036. {
  1037. iData[ id ][ KnifeSILVER ]++
  1038. ColorChat(id,"You ^3opened^1 the box metals and got ^4Silver^1")
  1039. }
  1040. case 7:
  1041. {
  1042. iData[ id ][ KnifeGOLD ]++
  1043. ColorChat(id,"You ^3opened^1 the box metals and got ^4Gold^1")
  1044. }
  1045. case 8:
  1046. {
  1047. iData[ id ][ KnifeDIAMOND ]++
  1048. ColorChat(id,"You ^3opened^1 the box metals and got ^4Diamond^1")
  1049. }
  1050. }
  1051. SaveData(id)
  1052. }
  1053. stock GiveKnifeModel(client)
  1054. {
  1055. static Clip, Ammo, Weapon;
  1056. Weapon = get_user_weapon( client, Clip, Ammo );
  1057. if( Weapon == CSW_KNIFE && is_user_alive(client) && iData[ client ][ BoughtKnife ] > 0)
  1058. {
  1059. entity_set_string(client,EV_SZ_viewmodel,Models[iData[ client ][ UseKnife ]][VMODEL]);
  1060. }
  1061. }
  1062.  
  1063. stock GiveSkinModel(client)
  1064. {
  1065. if(cs_get_user_team( client ) == CS_TEAM_T && Knifemod[iData[ client ][ UseKnife ]][SpecialModel] > 0 )
  1066. {
  1067. cs_set_user_model(client,Knifemod[iData[ client ][ UseKnife ]][MODEL])
  1068. }
  1069. }
  1070.  
  1071. stock bool:checkfirstmetal(id)
  1072. {
  1073. if((iData[ id ][ KnifeBRASS ] < KnifemodMetals[choose[id]][BRASS]) && (iData[ id ][ KnifeBRASS ] != KnifemodMetals[choose[id]][BRASS]) || (iData[ id ][ KnifeCOPPER ] < KnifemodMetals[choose[id]][COPPER]) && (iData[ id ][ KnifeCOPPER ]!= KnifemodMetals[choose[id]][COPPER]) || (iData[ id ][ KnifeBRONZE ] < KnifemodMetals[choose[id]][BRONZE]) && (iData[ id ][ KnifeBRONZE ] != KnifemodMetals[choose[id]][BRONZE]))
  1074. return true
  1075.  
  1076. return false
  1077. }
  1078. stock bool:checkfirstmetalsec(id)
  1079. {
  1080. if((iData[ id ][ KnifeALUMINUIM ] < KnifemodMetals[choose[id]][ALUMINUIM]) && (iData[ id ][ KnifeALUMINUIM ] != KnifemodMetals[choose[id]][ALUMINUIM]) || (iData[ id ][ KnifeIRON ] < KnifemodMetals[choose[id]][IRON]) && (iData[ id ][ KnifeIRON ]!= KnifemodMetals[choose[id]][IRON]) || (iData[ id ][ KnifeSTEEL ] < KnifemodMetals[choose[id]][STEEL]) && (iData[ id ][ KnifeSTEEL ] != KnifemodMetals[choose[id]][STEEL]))
  1081. return true
  1082.  
  1083. return false
  1084. }
  1085. stock bool:checkfirstmetalthree(id)
  1086. {
  1087. if((iData[ id ][ KnifeSILVER ] < KnifemodMetals[choose[id]][SILVER]) && (iData[ id ][ KnifeSILVER ] != KnifemodMetals[choose[id]][SILVER]) || (iData[ id ][ KnifeGOLD ] < KnifemodMetals[choose[id]][GOLD]) && (iData[ id ][ KnifeGOLD ]!= KnifemodMetals[choose[id]][GOLD]) || (iData[ id ][ KnifeDIAMOND ] < KnifemodMetals[choose[id]][DIAMOND]) && (iData[ id ][ KnifeDIAMOND ] != KnifemodMetals[choose[id]][DIAMOND]))
  1088. return true
  1089.  
  1090. return false
  1091. }
  1092. stock SaveData(index)
  1093. {
  1094. if(is_user_bot(index) || is_user_hltv(index))
  1095. return;
  1096.  
  1097. new szKey[ 64 ], szData[ 256 ];
  1098. formatex( szKey, charsmax( szKey ), "%s", szAuth( index ) );
  1099. formatex( szData, charsmax( szData ), "%i %i %i %i %i %i %i %i %i %i %i %i %i %i %s", iData[ index ][ Cash ],iData[ index ][ Bank ],iData[ index ][ Connection ],iData[ index ][ BoughtKnife ],iData[ index ][ UseKnife ],
  1100. iData[ index ][ KnifeBRASS ],iData[ index ][ KnifeCOPPER ],
  1101. iData[ index ][ KnifeBRONZE ],iData[ index ][ KnifeALUMINUIM ],iData[ index ][ KnifeIRON ],iData[ index ][ KnifeSTEEL ],iData[ index ][ KnifeSILVER ],
  1102. iData[ index ][ KnifeGOLD ],iData[ index ][ KnifeDIAMOND ],GetName( index ));
  1103.  
  1104. fvault_set_data( szVault, szKey, szData );
  1105. }
  1106.  
  1107. stock LoadData( index )
  1108. {
  1109. new szKey[ 64 ], szData[ 256 ];
  1110.  
  1111. formatex( szKey, charsmax( szKey ), "%s", szAuth( index ) );
  1112.  
  1113. formatex( szData, charsmax( szData ), "%i %i %i %i %i %i %i %i %i %i %i %i %i %i %s", iData[ index ][ Cash ],iData[ index ][ Bank ],iData[ index ][ Connection ],iData[ index ][ BoughtKnife ],iData[ index ][ UseKnife ],
  1114. iData[ index ][ KnifeBRASS ],iData[ index ][ KnifeCOPPER ],
  1115. iData[ index ][ KnifeBRONZE ],iData[ index ][ KnifeALUMINUIM ],iData[ index ][ KnifeIRON ],iData[ index ][ KnifeSTEEL ],iData[ index ][ KnifeSILVER ],
  1116. iData[ index ][ KnifeGOLD ],iData[ index ][ KnifeDIAMOND ],GetName( index ));
  1117.  
  1118. fvault_get_data( szVault, szKey, szData, 255 );
  1119.  
  1120. new SetData[ 14 ][ 32 ];
  1121. parse( szData, SetData[ 0 ], 31, SetData[ 1 ], 31, SetData[ 2 ],31, SetData[ 3 ],31,SetData[ 4 ],31,SetData[ 5 ],31,SetData[ 6 ],31,SetData[ 7 ],31,SetData[ 8 ],31,SetData[ 9 ],31,SetData[ 10],31,SetData[ 11 ],31,SetData[ 12 ],31,SetData[ 13 ],31);
  1122.  
  1123. iData[ index ][ Cash ] = str_to_num( SetData[ 0 ] );
  1124. iData[ index ][ Bank ] = str_to_num( SetData[ 1 ] );
  1125. iData[ index ][ Connection ] = str_to_num( SetData[ 2 ] );
  1126. iData[ index ][ BoughtKnife ] = str_to_num( SetData[ 3 ] );
  1127. iData[ index ][ UseKnife ] = str_to_num( SetData[ 4 ] );
  1128. iData[ index ][ KnifeBRASS ] = str_to_num( SetData[ 5 ] );
  1129. iData[ index ][ KnifeCOPPER ] = str_to_num( SetData[ 6 ] );
  1130. iData[ index ][ KnifeBRONZE ] = str_to_num( SetData[ 7 ] );
  1131. iData[ index ][ KnifeALUMINUIM ] = str_to_num( SetData[ 8 ] );
  1132. iData[ index ][ KnifeIRON ] = str_to_num( SetData[ 9 ] );
  1133. iData[ index ][ KnifeSTEEL ] = str_to_num( SetData[ 10 ] );
  1134. iData[ index ][ KnifeSILVER ] = str_to_num( SetData[ 11 ] );
  1135. iData[ index ][ KnifeGOLD ] = str_to_num( SetData[ 12 ] );
  1136. iData[ index ][ KnifeDIAMOND ] = str_to_num( SetData[ 13 ] );
  1137.  
  1138. }
  1139.  
  1140. stock GetName( id )
  1141. {
  1142. static szName[ 32 ];
  1143. get_user_name( id, szName, charsmax( szName ) );
  1144. return szName;
  1145. }
  1146. stock szAuth( const index )
  1147. {
  1148. static Auth[ 35 ];
  1149. get_user_authid( index, Auth, charsmax( Auth ) );
  1150. return Auth;
  1151. }
  1152.  
  1153. stock ColorChat(const id, const string[], {Float, Sql, Resul,_}:...) {
  1154. new msg[191], players[32], count = 1;
  1155. static len; len = formatex(msg, charsmax(msg), "^4[^1%s^4]^1 ",szPrefix);
  1156. vformat(msg[len], charsmax(msg) - len, string, 3);
  1157.  
  1158. if(id) players[0] = id;
  1159. else get_players(players,count,"ch");
  1160.  
  1161. for (new i = 0; i < count; i++)
  1162. {
  1163. if(is_user_connected(players[i]))
  1164. {
  1165. message_begin(MSG_ONE_UNRELIABLE, get_user_msgid("SayText"),_, players[i]);
  1166. write_byte(players[i]);
  1167. write_string(msg);
  1168. message_end();
  1169. }
  1170. }
  1171. return 1;
  1172. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement