Advertisement
Guest User

Untitled

a guest
Feb 1st, 2017
126
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 13.16 KB | None | 0 0
  1. /*
  2. *Multumiri*:
  3. - Sn!ff3r
  4. */
  5.  
  6. #include < amxmodx >
  7. #include < amxmisc>
  8. #include < engine >
  9. #include < cstrike >
  10. #include < fun >
  11. #include < hamsandwich >
  12. #include < fakemeta_util >
  13.  
  14. #pragma tabsize 0
  15.  
  16. native fcs_get_user_credits(client);
  17. native fcs_set_user_credits(client, credits);
  18.  
  19. #define PLUGIN "Furien Shop"
  20. #define VERSION "0.1"
  21. #define AUTHOR "HyperioN."
  22.  
  23. #define IsPlayer(%0) ( 1 <= %0 <= g_iMaxPlayers )
  24.  
  25.  
  26. // -- | Shop | -- //
  27.  
  28. new bool: g_blockshop[ 33 ];
  29.  
  30.  
  31. new const Prefix[ ] = "^x04[Furien]^x01";
  32.  
  33. // == | Super-Knife | == //
  34.  
  35. new bool:Knife2X [ 33 ];
  36.  
  37.  
  38. new v_Knife2X [ 66 ] = "models/ultimate_furien/v_thunderknife.mdl";
  39.  
  40.  
  41.  
  42. // -- | Take Damage | -- //
  43. new g_iMaxPlayers;
  44.  
  45.  
  46. new bool: HaveNoFlash [ 33 ];
  47. new g_msgScreenFade;
  48.  
  49. new g_msgSayText;
  50.  
  51.  
  52.  
  53.  
  54.  
  55. public plugin_init() {
  56. register_plugin(PLUGIN, VERSION, AUTHOR);
  57.  
  58. //Register Shop
  59. register_clcmd("say /shop", "FurienShop" );
  60. register_clcmd("say shop", "FurienShop" );
  61. register_clcmd("say_team /shop", "FurienShop" );
  62. register_clcmd("say_team shop", "FurienShop" );
  63.  
  64. //Register Arme
  65. register_event ( "CurWeapon", "CurrWeapon", "be", "1=1" );
  66. RegisterHam ( Ham_TakeDamage, "player", "Player_TakeDamage" );
  67. RegisterHam ( Ham_Spawn, "player", "Spawn", true );
  68.  
  69. register_event("ScreenFade", "eventFlash", "be", "4=255", "5=255", "6=255", "7>199")
  70.  
  71.  
  72. g_iMaxPlayers = get_maxplayers ( );
  73. g_msgScreenFade = get_user_msgid("ScreenFade")
  74. g_msgSayText = get_user_msgid("SayText")
  75. }
  76.  
  77.  
  78. public plugin_precache ( ) {
  79.  
  80. //Super-Knife
  81. precache_model ( v_Knife2X );
  82.  
  83. }
  84.  
  85.  
  86.  
  87.  
  88. public client_putinserver(id)
  89. {
  90. g_blockshop[ id ] = true;
  91. }
  92.  
  93. public Spawn( id ) {
  94.  
  95.  
  96. fm_strip_user_weapons(id)
  97. fm_give_item(id, "weapon_knife" );
  98.  
  99. HaveNoFlash [ id ] = false;
  100.  
  101. if( get_user_team(id) == 2 )
  102. {
  103. Knife2X [ id ] = false;
  104. }
  105.  
  106. }
  107. public CurrWeapon ( id ) {
  108.  
  109. if ( Knife2X [ id ] && get_user_weapon ( id ) == CSW_KNIFE ) {
  110.  
  111. set_pev ( id, pev_viewmodel2, v_Knife2X );
  112. }
  113.  
  114. }
  115.  
  116. public FurienShop ( id ) {
  117.  
  118.  
  119. if(g_blockshop[ id ])
  120. {
  121. g_blockshop[ id ] = false;
  122. if ( get_user_team(id) == 1 ) {
  123.  
  124. ShopFurien( id )
  125. }
  126.  
  127. if ( get_user_team (id ) == 2 ) {
  128.  
  129. ShopAntiFurien ( id )
  130. }
  131.  
  132. set_task(5.0, "ShopBlock", id);
  133.  
  134. }
  135. else
  136. {
  137. ColorChat( id, "%s Poti accesa meniul odata la 5 secunde.", Prefix );
  138. }
  139.  
  140. }
  141.  
  142. public ShopBlock(id)
  143. {
  144. g_blockshop[ id ] = true;
  145. remove_task(id)
  146. }
  147.  
  148. public ShopAntiFurien ( id ) {
  149.  
  150. new Temp[101], credits = fcs_get_user_credits(id);
  151.  
  152. formatex(Temp,100, "\yShop Anti-Furien \r[ v0.1 ]\y:^nCreditele Tale:\r %d", credits);
  153. new menu = menu_create(Temp, "AntiFurien")
  154.  
  155. menu_additem(menu, "\y25AP [\r5 Credite\y]", "1", 0);
  156. menu_additem(menu, "\y25HP [\r10 Credite\y]", "2", 0);
  157. menu_additem(menu, "\y50HP + 50 AP [\r20 Credite\y]", "3", 0);
  158. menu_additem(menu, "\yHe Grenade [\r3 Credite\y]", "4", 0);
  159.  
  160.  
  161. menu_setprop(menu, MPROP_EXIT, MEXIT_ALL);
  162. menu_display(id, menu, 0);
  163.  
  164. return 1;
  165. }
  166.  
  167. public ShopFurien( id ) {
  168.  
  169. new Temp[101], credits = fcs_get_user_credits(id);
  170.  
  171. formatex(Temp,100, "\yShop Furien \r[ v0.1 ]\y:^nCreditele Tale:\r %d", credits);
  172. new menu = menu_create(Temp, "Furien")
  173.  
  174. menu_additem(menu, "\y50AP [\r5 Credite\y]", "1", 0);
  175. menu_additem(menu, "\y100HP [\r10 Credite\y]", "2", 0 );
  176. menu_additem(menu, "\y250HP + 100AP [\r20 Credite\y]", "3", 0 );
  177. menu_additem(menu, "\yNo Flash [\r5 Credite\y]", "4", 0);
  178. menu_additem(menu, "\ySuperKnife ( 2X ) [\r15 Credite\y]^n", "5", 0);
  179.  
  180.  
  181. menu_setprop(menu, MPROP_EXIT, MEXIT_ALL);
  182. menu_display(id, menu, 0);
  183.  
  184. return 1;
  185. }
  186.  
  187. public Furien(id, menu, item) {
  188.  
  189. if( item == MENU_EXIT )
  190. {
  191. return 1;
  192. }
  193.  
  194. new data [ 6 ], szName [ 64 ];
  195. new access, callback;
  196. menu_item_getinfo ( menu, item, access, data,charsmax ( data ), szName,charsmax ( szName ), callback );
  197. new key = str_to_num ( data );
  198.  
  199. switch ( key )
  200. {
  201.  
  202. case 1:
  203.  
  204. {
  205. if( get_user_team(id) == 1 )
  206. {
  207. new iCredits = fcs_get_user_credits ( id ) - 5;
  208. if( iCredits < 0 )
  209. {
  210. ColorChat( id, "%s Nu ai suficiente credite.", Prefix );
  211. return 1;
  212.  
  213. }
  214. else
  215. {
  216. new Armor = get_user_armor ( id );
  217. if ( Armor < 100 ) {
  218. fm_set_user_armor( id, get_user_armor ( id ) + 50 );
  219. ColorChat(id, "%s Ai cumparat 50 AP.", Prefix );
  220. fcs_set_user_credits ( id, iCredits );
  221. return 1;
  222. }
  223.  
  224. if ( Armor >= 100 )
  225.  
  226. {
  227.  
  228.  
  229. ColorChat( id, "%s Ai atins limita de AP.", Prefix);
  230. return 1;
  231. }
  232. }
  233. }
  234. else
  235. {
  236. ColorChat(id, "%s Doar Teroristi au acces la accest meniu.", Prefix );
  237. }
  238. }
  239.  
  240. case 2:
  241. {
  242. if( get_user_team(id) == 1 )
  243. {
  244. new iCredits = fcs_get_user_credits ( id ) - 10;
  245. if( iCredits < 0 )
  246. {
  247. ColorChat( id, "!%s Nu ai suficiente credite.", Prefix);
  248. return 1;
  249.  
  250. }
  251. else
  252. {
  253. new Health = get_user_health ( id );
  254. if ( Health < 3500 ) {
  255. fm_set_user_health( id, get_user_health ( id ) + 50 );
  256. ColorChat(id, "%s Ai cumparat 50 HP.", Prefix );
  257. fcs_set_user_credits ( id, iCredits );
  258. return 1;
  259. }
  260.  
  261. if ( Health >= 3500 )
  262.  
  263. {
  264.  
  265. ColorChat( id, "%s Ai atins limita de HP.", Prefix);
  266. return 1;
  267. }
  268. }
  269. }
  270. else
  271. {
  272. ColorChat(id, "%s Doar Teroristi au acces la accest meniu.", Prefix );
  273. }
  274. }
  275.  
  276. case 3:
  277. {
  278. if( get_user_team(id) == 1 )
  279. {
  280. new iCredits = fcs_get_user_credits ( id ) - 20;
  281. if( iCredits < 0 )
  282. {
  283. ColorChat( id, "!%s Nu ai suficiente credite.", Prefix);
  284. return 1;
  285.  
  286. }
  287. else
  288. {
  289. new Health = get_user_health ( id );
  290. if ( Health < 3500 ) {
  291. fm_set_user_health( id, get_user_health ( id ) + 100 );
  292. fm_set_user_armor( id, get_user_armor ( id ) + 100 );
  293. ColorChat(id, "%s Ai cumparat 100 HP si 100 AP.", Prefix );
  294. fcs_set_user_credits ( id, iCredits );
  295. return 1;
  296. }
  297.  
  298. if ( Health >= 3500 ) {
  299.  
  300. ColorChat( id, "%s Ai atins limita de HP.", Prefix);
  301. return 1;
  302. }
  303. }
  304. }
  305. else
  306. {
  307. ColorChat(id, "%s Doar Teroristi au acces la accest meniu.", Prefix );
  308. }
  309. }
  310.  
  311.  
  312.  
  313. case 4:
  314. {
  315. if( get_user_team(id) == 1 )
  316. {
  317. new iCredits = fcs_get_user_credits ( id ) - 5;
  318. if( iCredits < 0 )
  319. {
  320. ColorChat( id, "%s Nu ai suficiente credite.", Prefix);
  321. return 1;
  322.  
  323. }
  324. else
  325. {
  326. HaveNoFlash [ id ] = true;
  327.  
  328. ColorChat(id, "%s Ai cumparat No Flash.", Prefix );
  329. fcs_set_user_credits(id, iCredits);
  330. return 1;
  331. }
  332. }
  333. else
  334. {
  335. ColorChat(id, "%s Doar Teroristi au acces la accest meniu.", Prefix );
  336. }
  337. }
  338. case 5:
  339. {
  340. if( get_user_team(id) == 1 )
  341. {
  342. new iCredits = fcs_get_user_credits ( id ) - 15;
  343. if( iCredits < 0 )
  344. {
  345. ColorChat( id, "%s Nu ai credite suficiente.", Prefix);
  346. return 1;
  347.  
  348. }
  349. else
  350. {
  351. Knife2X [ id ] = true;
  352. CurrWeapon(id);
  353.  
  354. ColorChat(id, "%s Ai cumparat SuperKnife ( 2X ).", Prefix );
  355. fcs_set_user_credits(id, iCredits);
  356. }
  357. }
  358. else
  359. {
  360. ColorChat(id, "%s Doar Teroristi au acces la accest meniu.", Prefix );
  361. }
  362. }
  363. case 6:
  364. {
  365. if( get_user_team(id) == 1 )
  366. {
  367. new iCredits = fcs_get_user_credits ( id ) - 30;
  368. if( iCredits < 0 )
  369. {
  370. ColorChat( id, "%s Nu ai credite suficiente.", Prefix);
  371. return 1;
  372.  
  373. }
  374. else
  375. {
  376. Knife2X [ id ] = false;
  377.  
  378.  
  379. }
  380. }
  381. else
  382. {
  383. ColorChat(id, "%s Doar Teroristi au acces la accest meniu.", Prefix );
  384. }
  385. }
  386.  
  387.  
  388. }
  389. menu_destroy(menu);
  390. return 1;
  391. }
  392.  
  393. public AntiFurien(id, menu, item ) {
  394.  
  395. if( item == MENU_EXIT )
  396. {
  397. return 1;
  398. }
  399.  
  400. new data [ 6 ], szName [ 64 ];
  401. new access, callback;
  402. menu_item_getinfo ( menu, item, access, data,charsmax ( data ), szName,charsmax ( szName ), callback );
  403. new key = str_to_num ( data );
  404.  
  405. switch ( key )
  406. {
  407. case 1:
  408. {
  409. if( get_user_team(id) == 2 )
  410. {
  411. new iCredits = fcs_get_user_credits ( id ) - 3;
  412. if( iCredits < 0 )
  413. {
  414. ColorChat( id, "%s Nu ai suficiente credite.", Prefix );
  415. return 1;
  416.  
  417. }
  418. else
  419. {
  420. new Armor = get_user_armor ( id );
  421. if ( Armor < 100 ) {
  422. fm_set_user_armor( id, get_user_armor ( id ) + 25 );
  423. ColorChat(id, "%s Ai cumparat 25 AP.", Prefix );
  424. fcs_set_user_credits ( id, iCredits );
  425. return 1;
  426. }
  427.  
  428. if ( Armor >= 100 ) {
  429.  
  430. ColorChat( id, "%s Ai atins limita de AP.", Prefix);
  431. return 1;
  432. }
  433. }
  434. }
  435. else
  436. {
  437. ColorChat(id, "%s Doar Counter-Teroristi au acces la accest meniu.", Prefix );
  438. }
  439. }
  440.  
  441. case 2:
  442. {
  443. if( get_user_team(id) == 2 )
  444. {
  445. new iCredits = fcs_get_user_credits ( id ) - 3;
  446. if( iCredits < 0 )
  447. {
  448. ColorChat( id, "!%s Nu ai suficiente credite.", Prefix);
  449. return 1;
  450.  
  451. }
  452. else
  453. {
  454. new Health = get_user_health ( id );
  455. if ( Health < 150 ) {
  456. fm_set_user_health( id, get_user_health ( id ) + 25 );
  457. ColorChat(id, "%s Ai cumparat 25 HP.", Prefix );
  458. fcs_set_user_credits ( id, iCredits );
  459. return 1;
  460. }
  461.  
  462. if ( Health >= 150 ) {
  463.  
  464. ColorChat( id, "%s Ai atins limita de HP.", Prefix);
  465. return 1;
  466. }
  467. }
  468. }
  469. else
  470. {
  471. ColorChat(id, "%s Doar Counter-Teroristi au acces la accest meniu.", Prefix );
  472. }
  473. }
  474.  
  475. case 3:
  476. {
  477. if( get_user_team(id) == 2 )
  478. {
  479. new iCredits = fcs_get_user_credits ( id ) - 9;
  480. if( iCredits < 0 )
  481. {
  482. ColorChat( id, "!%s Nu ai suficiente credite.", Prefix);
  483. return 1;
  484.  
  485. }
  486. else
  487. {
  488. new Health = get_user_health ( id );
  489. if ( Health < 150 ) {
  490. fm_set_user_health( id, get_user_health ( id ) + 50 );
  491. fm_set_user_armor( id, get_user_armor ( id ) + 50 );
  492. ColorChat(id, "%s Ai cumparat 50 HP si 50 AP.", Prefix );
  493. fcs_set_user_credits ( id, iCredits );
  494. return 1;
  495. }
  496.  
  497. if ( Health >= 150 ) {
  498.  
  499. ColorChat( id, "%s Ai atins limita de HP.", Prefix);
  500. return 1;
  501. }
  502. }
  503. }
  504. else
  505. {
  506. ColorChat(id, "%s Doar Counter-Teroristi au acces la accest meniu.", Prefix );
  507. }
  508. }
  509.  
  510.  
  511.  
  512. case 4:
  513. {
  514.  
  515. if( get_user_team(id) == 2 )
  516. {
  517. new iCredits = fcs_get_user_credits ( id ) - 5;
  518. if( iCredits < 0 )
  519. {
  520. ColorChat( id, "%s Nu ai credite suficiente.", Prefix);
  521. return 1;
  522.  
  523. }
  524. else
  525. {
  526. if( get_user_weapon(id) == CSW_HEGRENADE)
  527. {
  528. ColorChat(id, "%s Detii deja un HE.", Prefix );
  529. }
  530. else
  531. {
  532. fm_give_item(id, "weapon_hegrenade");
  533. fcs_set_user_credits(id, iCredits);
  534. return 1;
  535. }
  536. }
  537. }
  538. else
  539. {
  540. ColorChat(id, "%s Doar Counter-Teroristi au acces la accest meniu.", Prefix );
  541. }
  542. }
  543. case 5:
  544. {
  545.  
  546. if( get_user_team(id) == 2 )
  547. {
  548. new iCredits = fcs_get_user_credits ( id ) - 5;
  549. if( iCredits < 0 )
  550. {
  551. ColorChat( id, "%s Nu ai credite suficiente.", Prefix);
  552. return 1;
  553.  
  554. }
  555. else
  556. {
  557. HaveNoFlash [ id ] = true;
  558.  
  559. ColorChat(id, "%s Ai cumparat No Flash.", Prefix );
  560. fcs_set_user_credits(id, iCredits);
  561. return 1;
  562. }
  563. }
  564. else
  565. {
  566. ColorChat(id, "%s Doar Counter-Teroristi au acces la accest meniu.", Prefix );
  567. }
  568.  
  569. }
  570. }
  571. menu_destroy(menu);
  572. return 1;
  573. }
  574.  
  575. public eventFlash(id)
  576. {
  577. if(is_user_connected(id) && HaveNoFlash [ id ])
  578. {
  579. message_begin(MSG_ONE, g_msgScreenFade, {0,0,0}, id)
  580. write_short(1)
  581. write_short(1)
  582. write_short(1)
  583. write_byte(0)
  584. write_byte(0)
  585. write_byte(0)
  586. write_byte(255)
  587. message_end()
  588. }
  589. }
  590.  
  591. public Player_TakeDamage ( iVictim, iInflictor, iAttacker, Float:fDamage, iDamageBits )
  592. {
  593. if ( IsPlayer ( iAttacker ) ) {
  594. if( iInflictor == iAttacker && Knife2X [ iAttacker ] && is_user_alive( iAttacker ) && get_user_weapon( iAttacker ) == CSW_KNIFE && cs_get_user_team( iAttacker ) == CS_TEAM_T )
  595. {
  596. SetHamParamFloat( 4, fDamage * 2.0);
  597. return HAM_HANDLED;
  598. }
  599.  
  600. }
  601.  
  602. return HAM_IGNORED;
  603. }
  604.  
  605. stock ColorChat(id, const input[], any:...)
  606. {
  607. static iPlayersNum[32], iCount; iCount = 1
  608. static szMsg[191]
  609.  
  610. vformat(szMsg, charsmax(szMsg), input, 3)
  611.  
  612. replace_all(szMsg, 190, "/g", "^x04") // green txt
  613. replace_all(szMsg, 190, "/y", "^x01") // orange txt
  614. replace_all(szMsg, 190, "/ctr", "^x03") // team txt
  615. replace_all(szMsg, 190, "/w", "^x00") // team txt
  616.  
  617. if(id) iPlayersNum[0] = id
  618. else get_players(iPlayersNum, iCount, "ch")
  619.  
  620. for (new i = 0; i < iCount; i++)
  621. {
  622. if (is_user_connected(iPlayersNum[i]))
  623. {
  624. message_begin(MSG_ONE_UNRELIABLE, g_msgSayText, _, iPlayersNum[i])
  625. write_byte(iPlayersNum[i])
  626. write_string(szMsg)
  627. message_end()
  628. }
  629. }
  630. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement