Advertisement
Guest User

Untitled

a guest
Mar 8th, 2014
403
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 18.12 KB | None | 0 0
  1. #include < amxmodx >
  2. #include < sockets >
  3. #include < amxmisc>
  4. #include < engine >
  5. #include < cstrike >
  6. #include < hamsandwich >
  7. #include < fakemeta >
  8. #include < fakemeta_util >
  9. #include < CC_ColorChat >
  10. #include < fun >
  11.  
  12. #define PLUGIN "Shop Pe Credite"
  13. #define VERSION "0.0.2"
  14.  
  15.  
  16. #pragma tabsize 0
  17.  
  18. native fcs_get_user_credits(id);
  19. native fcs_set_user_credits(id, credits);
  20.  
  21. new bool:have_molotov[ 33 ];
  22. new bool:super_knifex2[ 33 ];
  23. new bool:super_knifex3[ 33 ];
  24.  
  25. new const have_molotov_v_model [] = "models/Furien_2015/v_molotov.mdl"
  26. new const super_knifex2_v_model [] = "models/Furien_2015/v_super_knife2X.mdl"
  27. new const super_knifex3_v_model [] = "models/Furien_2015/v_superknife3X.mdl"
  28.  
  29. public plugin_init()
  30. {
  31. register_plugin(PLUGIN, VERSION, "DaNe");
  32.  
  33. register_clcmd("say /shop", "FurienShop", 0);
  34. register_clcmd("say shop", "FurienShop", 0);
  35. register_clcmd("say_team /shop", "FurienShop", 0);
  36. register_clcmd("say_team shop", "FurienShop", 0);
  37. register_clcmd("shop", "FurienShop", 0)
  38. register_event ( "CurWeapon", "CurrentWeapon", "be", "1=1" );
  39. RegisterHam ( Ham_TakeDamage, "player", "Player_TakeDamage" );
  40. RegisterHam ( Ham_Spawn, "player", "Spawn", 1 );
  41. }
  42. //----------------------------------------------------------------------------------------------
  43.  
  44.  
  45. public plugin_precache ( )
  46. {
  47. precache_model ( have_molotov_v_model );
  48. precache_model ( super_knifex2_v_model );
  49. precache_model ( super_knifex3_v_model );
  50. }
  51.  
  52. public Spawn ( id )
  53. {
  54. if(is_user_alive(id))
  55. strip_user_weapons ( id );
  56. if(is_user_alive(id))
  57. give_item ( id, "weapon_knife" );
  58. give_item ( id, "weapon_hegrenade" );
  59. give_item ( id, "weapon_smokegrenade" )
  60. cs_set_user_bpammo( id, CSW_SMOKEGRENADE, 2 )
  61. give_item ( id, "weapon_flashbang" );
  62. cs_set_user_bpammo( id, CSW_FLASHBANG, 2 )
  63. super_knifex2 [ id ] = false;
  64. super_knifex3 [ id ] = false;
  65. have_molotov [id] = false;
  66. give_item ( id, "item_thighpack" )
  67. }
  68.  
  69. public CurrentWeapon ( id )
  70. {
  71.  
  72. if ( super_knifex2 [ id ] && get_user_weapon ( id ) == CSW_KNIFE )
  73. {
  74. set_pev ( id, pev_viewmodel2, super_knifex2_v_model );
  75. }
  76.  
  77. if ( super_knifex3 [ id ] && get_user_weapon ( id ) == CSW_KNIFE )
  78. {
  79. set_pev ( id, pev_viewmodel2, super_knifex3_v_model );
  80. }
  81.  
  82. if ( have_molotov [ id ] && get_user_weapon ( id ) == CSW_HEGRENADE )
  83. {
  84. set_pev ( id, pev_viewmodel2, have_molotov_v_model );
  85. }
  86. }
  87.  
  88. public FurienShop ( id )
  89. {
  90. if (get_user_team(id) == 1 )
  91. {
  92. set_task( 0.1, "ShowFurien", id );
  93. }
  94.  
  95. if (get_user_team (id ) == 2 )
  96. {
  97. set_task( 0.1, "ShowAntiFurien", id );
  98. }
  99. }
  100.  
  101. public ShowAntiFurien(id, level, cid)
  102. {
  103. new menu = menu_create( "\rFurien.\yeXtreamCS.\wCom - \y Shop", "antifurienhandler");
  104. new iCredits = fcs_get_user_credits( id );
  105.  
  106. /*********************************************| Hp + Ap Pack |*********************************************/
  107.  
  108. if( iCredits < 20 )
  109. {
  110. menu_additem(menu, "\yHP \w+ \yAP \rPack \y- \w[ \dNo Credits \w]", "1", 0);
  111. }
  112. else if( iCredits >= 20 )
  113. {
  114. menu_additem(menu, "\yHP \w+ \yAP \rPack \y- \w[ \r20 \yCredits \w]", "1", 0);
  115. }
  116.  
  117. /*********************************************| Hp + Ap Pack |*********************************************/
  118. ///////////////////////////////////////////////////////////////////////////////////////////////////////////
  119. /*********************************************| Magic Pack |*********************************************/
  120.  
  121. if( iCredits < 70 )
  122. {
  123. menu_additem(menu, "\yMagic \rPack \y- \w[ \dNo Credits \w]", "2", 0 );
  124. }
  125. else if( iCredits >= 70 )
  126. {
  127. menu_additem(menu, "\yMagic \rPack \y- \w[ \r70 \yCredits \w]", "2", 0 );
  128. }
  129.  
  130. /*********************************************| Magic Pack |*********************************************/
  131. /////////////////////////////////////////////////////////////////////////////////////////////////////////
  132. /*********************************************| 50 Hp |*********************************************/
  133.  
  134. if( iCredits < 5 )
  135. {
  136. menu_additem(menu, "\y50 \rHP \y- \w[ \dNo Credits \w]", "3", 0);
  137. }
  138. else if( iCredits >= 5 )
  139. {
  140. menu_additem(menu, "\y50 \rHP \y- \w[ \r5 \yCredits \w]", "3", 0);
  141. }
  142.  
  143. /*********************************************| 50 Hp |*********************************************/
  144. ////////////////////////////////////////////////////////////////////////////////////////////////////
  145. /*********************************************| 50 Ap |*********************************************/
  146.  
  147. if( iCredits < 5 )
  148. {
  149. menu_additem(menu, "\y50 \rAP \y- \w[ \dNo Credits \w]", "4", 0);
  150. }
  151. else if( iCredits >= 5 )
  152. {
  153. menu_additem(menu, "\y50 \rAP \y- \w[ \r5 \yCredits \w]", "4", 0);
  154. }
  155.  
  156. /*********************************************| 50 Ap |*********************************************/
  157. ///////////////////////////////////////////////////////////////////////////////////////////////////
  158. /*********************************************| Molotov |*********************************************/
  159.  
  160. if( iCredits < 10 )
  161. {
  162. menu_additem(menu, "\yMolotov \rCocktail \y- \w[ \d10 Credits \w]", "5", 0);
  163. }
  164. else if( iCredits >= 10 )
  165. {
  166. menu_additem(menu, "\yMolotov \rCocktail \y- \w[ \r10 \yCredits \w]", "5", 0);
  167. }
  168.  
  169. /*********************************************| Molotov |*********************************************/
  170. //////////////////////////////////////////////////////////////////////////////////////////////////////
  171. /*********************************************| FrosT |*********************************************/
  172.  
  173. if( iCredits < 5 )
  174. {
  175. menu_additem(menu, "\yFrost \rNade \y- \w[ \dNo Credits \w]", "6", 0);
  176. }
  177. else if( iCredits >= 5 )
  178. {
  179. menu_additem(menu, "\yFrost \rNade \y- \w[ \r5 \yCredits \w]", "6", 0);
  180. }
  181.  
  182. /*********************************************| FrosT |*********************************************/
  183. ////////////////////////////////////////////////////////////////////////////////////////////////////
  184. /*********************************************| PeT |*********************************************/
  185.  
  186. if( iCredits < 30 )
  187. {
  188. menu_additem(menu, "\yPet \rHP + AP \y LongJump- \w[ \dNo Credits \w]", "7", 0);
  189. }
  190. else if( iCredits >= 30 )
  191. {
  192. menu_additem(menu, "\yPet \rHP + AP \y LongJump- \w[ \r30 \yCredits \w]", "7", 0);
  193. }
  194.  
  195. /*********************************************| PeT |*********************************************/
  196.  
  197. menu_setprop(menu, MPROP_EXIT, MEXIT_ALL);
  198. menu_display(id, menu, 0);
  199. }
  200.  
  201. public ShowFurien(id, level, cid)
  202. {
  203. new menu = menu_create( "\rFurien.\yeXtreamCS.\wCom - \y Shop", "furienhandler");
  204. new iCredits = fcs_get_user_credits( id );
  205.  
  206. /*********************************************| SK X2 |*********************************************/
  207.  
  208. if( iCredits < 10 )
  209. {
  210. menu_additem(menu, "\ySuperKnife \rX2 \y- \w[ \dNo Credits \w]", "1", 0);
  211. }
  212. else if( iCredits >= 10 )
  213. {
  214. menu_additem(menu, "\ySuperKnife \rX2 \y- \w[ \r10 \yCredits \w]", "1", 0);
  215. }
  216.  
  217. /*********************************************| SK X2 |*********************************************/
  218. ////////////////////////////////////////////////////////////////////////////////////////////////////
  219. /*********************************************| SK X3 |*********************************************/
  220.  
  221. if( iCredits < 20 )
  222. {
  223. menu_additem(menu, "\ySuperKnife \rX3 \y- \w[ \dNo Credits \w]", "2", 0);
  224. }
  225. else if( iCredits >= 20 )
  226. {
  227. menu_additem(menu, "\ySuperKnife \rX3 \y- \w[ \r20 \yCredits \w]", "2", 0);
  228. }
  229.  
  230. /*********************************************| SK X3 |*********************************************/
  231. ////////////////////////////////////////////////////////////////////////////////////////////////////
  232.  
  233. /*********************************************| 50 HP |*********************************************/
  234.  
  235. if( iCredits < 5 )
  236. {
  237. menu_additem(menu, "\y50 \rHP \y- \w[ \dNo Credits \w]", "3", 0);
  238. }
  239. else if( iCredits >= 5 )
  240. {
  241. menu_additem(menu, "\y50 \rHP \y- \w[ \r5 \yCredits \w]", "3", 0);
  242. }
  243.  
  244. /*********************************************| 50 HP |***********************************************/
  245. //////////////////////////////////////////////////////////////////////////////////////////////////////
  246. /*********************************************| 50 AP |*********************************************/
  247.  
  248. if( iCredits < 5 )
  249. {
  250. menu_additem(menu, "\y50 \rAP \y- \w[ \dNo Credits \w]", "4", 0);
  251. }
  252. else if( iCredits >= 5 )
  253. {
  254. menu_additem(menu, "\y50 \rAP \y- \w[ \r5 \yCredits \w]", "4", 0);
  255. }
  256.  
  257. /*********************************************| 50 AP |*********************************************/
  258. ////////////////////////////////////////////////////////////////////////////////////////////////////
  259. /*********************************************| Molotov |*********************************************/
  260.  
  261. if( iCredits < 10 )
  262. {
  263. menu_additem(menu, "\yMolotov \rCocktail \y- \w[ \d10 Credits \w]", "5", 0);
  264. }
  265. else if( iCredits >= 10 )
  266. {
  267. menu_additem(menu, "\yMolotov \rCocktail \y- \w[ \r10 \yCredits \w]", "5", 0);
  268. }
  269.  
  270. /*********************************************| 50 AP |*********************************************/
  271. ////////////////////////////////////////////////////////////////////////////////////////////////////
  272. /*********************************************| FrosT |*********************************************/
  273.  
  274. if( iCredits < 5 )
  275. {
  276. menu_additem(menu, "\yFrost \rNade \y- \w[ \dNo Credits \w]", "6", 0);
  277. }
  278. else if( iCredits >= 5 )
  279. {
  280. menu_additem(menu, "\yFrost \rNade \y- \w[ \r5 \yCredits \w]", "", 0);
  281. }
  282.  
  283. /*********************************************| FrosT |*********************************************/
  284.  
  285. menu_setprop(menu, MPROP_EXIT, MEXIT_ALL);
  286. menu_display(id, menu, 0);
  287. }
  288.  
  289. public furienhandler (id, menu, item, level, cid)
  290. {
  291. if( item == MENU_EXIT )
  292. {
  293. return 1;
  294. }
  295.  
  296. new data[6], szName[64];
  297. new access, callback;
  298. menu_item_getinfo(menu, item, access, data,charsmax(data), szName,charsmax(szName), callback);
  299. new key = str_to_num(data);
  300.  
  301. switch(key)
  302. {
  303. case 1:
  304. {
  305. new iCredits = fcs_get_user_credits(id) - 10;
  306. if( iCredits < 0 )
  307. {
  308. ColorChat ( id, GREEN, "^x01[^x04 FurienShop^x01 ] You don't have enough credits." );
  309. return 1;
  310. }
  311. else
  312. {
  313. super_knifex2[ id ] = true;
  314. CurrentWeapon( id );
  315. ColorChat( id, GREEN, "^x01[^x04 FurienShop^x01 ]^x03 You Have bought ^x04 SuperKnife X2 DMG!");
  316.  
  317. fcs_set_user_credits( id, iCredits );
  318. return 1;
  319. }
  320. }
  321.  
  322. case 2:
  323. {
  324. new iCredits = fcs_get_user_credits(id) - 20;
  325. if( iCredits < 0 )
  326. {
  327. ColorChat ( id, GREEN, "^x01[^x04 FurienShop^x01 ] You don't have enough credits." );
  328. return 1;
  329. }
  330. else
  331. {
  332. super_knifex3[ id ] = true;
  333. CurrentWeapon( id );
  334. ColorChat( id, GREEN, "^x01[^x04 FurienShop^x01 ]^x03 You Have bought ^x04 SuperKnife X3 DMG!");
  335.  
  336. fcs_set_user_credits( id, iCredits );
  337. return 1;
  338. }
  339. }
  340.  
  341. case 3:
  342. {
  343. new iCredits = fcs_get_user_credits(id) - 5;
  344. if( iCredits < 0 )
  345. {
  346. ColorChat ( id, GREEN, "^x01[^x04 FurienShop^x01 ] You don't have enough credits." );
  347. return 1;
  348. }
  349. else
  350. {
  351. new Health = get_user_health ( id );
  352. if ( Health <= 300 )
  353. {
  354. fm_set_user_health ( id, get_user_health ( id ) + 50 );
  355. ColorChat( id, GREEN, "^x01[ ^x04 FurienShop^x01 ]^x03 You Have bought ^x04 50 HP!");
  356. fcs_set_user_credits ( id, iCredits );
  357. return 1;
  358. }
  359.  
  360. if ( Health > 300 )
  361. {
  362.  
  363. ColorChat ( id, GREEN, "^x01[ ^x04 FurienShop^x01 ]^x03 You have to much HP !" );
  364. return 1;
  365. }
  366. }
  367. }
  368.  
  369. case 4:
  370. {
  371. new iCredits = fcs_get_user_credits(id) - 5;
  372. if( iCredits < 0 )
  373. {
  374. ColorChat ( id, GREEN, "^x01[^x04 FurienShop^x01 ] You don't have enough credits." );
  375. return 1;
  376. }
  377. else
  378. {
  379. new Armor = get_user_armor ( id );
  380. if ( Armor <= 300 )
  381. {
  382. fm_set_user_armor( id, get_user_armor ( id ) + 50 );
  383. ColorChat( id, GREEN, "^x01[ ^x04 FurienShop^x01 ]^x03 You Have bought ^x04 50 AP!");
  384. fcs_set_user_credits ( id, iCredits );
  385. return 1;
  386. }
  387.  
  388. if ( Armor > 300 )
  389. {
  390.  
  391. ColorChat( id, GREEN, "^x01[ ^x04 FurienShop^x01 ]^x03 You have to much AP !" );
  392. return 1;
  393. }
  394. }
  395. }
  396.  
  397. case 5:
  398. {
  399. new iCredits = fcs_get_user_credits(id) - 10;
  400. if( iCredits < 0 )
  401. {
  402. ColorChat ( id, GREEN, "^x01[^x04 FurienShop^x01 ] You don't have enough credits." );
  403. return 1;
  404. }
  405. else
  406. {
  407. give_item ( id, "weapon_hegrenade" );
  408. have_molotov[ id ] = true;
  409. CurrentWeapon( id );
  410. ColorChat( id, GREEN, "^x01[ ^x04 FurienShop^x01 ]^x03 You Have bought ^x04 Molotov x5 DMG!");
  411.  
  412. fcs_set_user_credits( id, iCredits );
  413. return 1;
  414. }
  415. }
  416.  
  417. case 6:
  418. {
  419. new iCredits = fcs_get_user_credits(id) - 5;
  420. if( iCredits < 0 )
  421. {
  422. ColorChat ( id, GREEN, "^x01[^x04 FurienShop^x01 ] You don't have enough credits." );
  423. return 1;
  424. }
  425. else
  426. {
  427. give_item ( id, "weapon_smokegrenade" );
  428. CurrentWeapon( id );
  429. ColorChat( id, GREEN, "^x01[ ^x04 FurienShop^x01 ]^x03 You Have bought ^x04 Freeze Nade!");
  430.  
  431. fcs_set_user_credits( id, iCredits );
  432. return 1;
  433. }
  434. }
  435.  
  436. }
  437. menu_destroy(menu);
  438. return 1;
  439. }
  440.  
  441. public antifurienhandler(id, menu, item, level, cid)
  442. {
  443. if( item == MENU_EXIT )
  444. {
  445. return 1;
  446. }
  447.  
  448. new data[6], szName[64];
  449. new access, callback;
  450. menu_item_getinfo(menu, item, access, data,charsmax(data), szName,charsmax(szName), callback);
  451. new key = str_to_num(data);
  452.  
  453. switch(key)
  454. {
  455. case 1:
  456. {
  457. new iCredits = fcs_get_user_credits(id) - 20;
  458. if( iCredits < 0 )
  459. {
  460. ColorChat ( id, GREEN, "^x01[^x04 FurienShop^x01 ] You don't have enough credits." );
  461. return 1;
  462. }
  463. else
  464. {
  465. new Health = get_user_health ( id );
  466.  
  467. if ( Health <= 300 )
  468. {
  469. fm_set_user_health ( id, get_user_health ( id ) + 300 );
  470. }
  471.  
  472. new Armor = get_user_armor ( id );
  473.  
  474. if ( Armor <= 300 )
  475. {
  476. fm_set_user_armor( id, get_user_armor ( id ) + 300 );
  477. }
  478. ColorChat( id, GREEN, "^x01[ ^x04 FurienShop^x01 ]^x03 You Have bought ^x04 Pack HP + AP!");
  479.  
  480. fcs_set_user_credits ( id, iCredits );
  481. return 1;
  482. }
  483. }
  484.  
  485. case 2:
  486. {
  487. new iCredits = fcs_get_user_credits(id) - 70;
  488. if( iCredits < 0 )
  489. {
  490. ColorChat ( id, GREEN, "^x01[^x04 FurienShop^x01 ] You don't have enough credits." );
  491. return 1;
  492. }
  493. else
  494. {
  495. client_cmd (id, "ClCmdBuyMagicWand");
  496. ColorChat( id, GREEN, "^x01[ ^x04 FurienShop^x01 ]^x03 You Have bought ^x04 Magic Pack!");
  497. fcs_set_user_credits ( id, iCredits );
  498. return 1;
  499. }
  500. }
  501.  
  502. case 3:
  503. {
  504. new iCredits = fcs_get_user_credits(id) - 5;
  505. if( iCredits < 0 )
  506. {
  507. ColorChat ( id, GREEN, "^x01[^x04 FurienShop^x01 ] You don't have enough credits." );
  508. return 1;
  509. }
  510. else
  511. {
  512. new Health = get_user_health ( id );
  513. if ( Health <= 300 )
  514. {
  515. fm_set_user_health ( id, get_user_health ( id ) + 50 );
  516. fcs_set_user_credits ( id, iCredits );
  517. ColorChat( id, GREEN, "^x01[ ^x04 FurienShop^x01 ]^x03 You Have bought ^x04 50 HP!");
  518. return 1;
  519. }
  520. if ( Health > 300 )
  521. {
  522.  
  523. ColorChat ( id, GREEN, "^x01[ ^x04 FurienShop^x01 ]^x03 You have to much HP !" );
  524. return 1;
  525. }
  526. }
  527. }
  528.  
  529. case 4:
  530. {
  531. new iCredits = fcs_get_user_credits(id) - 5;
  532. if( iCredits < 0 )
  533. {
  534. ColorChat ( id, GREEN, "^x01[^x04 FurienShop^x01 ] You don't have enough credits." );
  535. return 1;
  536. }
  537. else
  538. {
  539. new Armor = get_user_armor ( id );
  540. if ( Armor <= 300 )
  541. {
  542. fm_set_user_armor( id, get_user_armor ( id ) + 50 );
  543. ColorChat( id, GREEN, "^x01[ ^x04 FurienShop^x01 ]^x03 You Have bought ^x04 50 AP!");
  544. fcs_set_user_credits ( id, iCredits );
  545. return 1;
  546. }
  547.  
  548. if ( Armor > 300 )
  549. {
  550.  
  551. ColorChat( id, GREEN, "^x01[ ^x04 FurienShop^x01 ]^x03 You have to much AP !" );
  552. return 1;
  553. }
  554. }
  555. }
  556.  
  557. case 5:
  558. {
  559. new iCredits = fcs_get_user_credits(id) - 10;
  560. if( iCredits < 0 )
  561. {
  562. ColorChat ( id, GREEN, "^x01[^x04 FurienShop^x01 ] You don't have enough credits." );
  563. return 1;
  564. }
  565. else
  566. {
  567. give_item ( id, "weapon_hegrenade" );
  568. have_molotov[ id ] = true;
  569. CurrentWeapon( id );
  570. ColorChat( id, GREEN, "^x01[ ^x04 FurienShop^x01 ]^x03 You Have bought ^x04 Molotov X5 DMG!");
  571.  
  572. fcs_set_user_credits( id, iCredits );
  573. return 1;
  574. }
  575. }
  576.  
  577. case 6:
  578. {
  579. new iCredits = fcs_get_user_credits(id) - 5;
  580. if( iCredits < 0 )
  581. {
  582. ColorChat ( id, GREEN, "^x01[^x04 FurienShop^x01 ] You don't have enough credits." );
  583. return 1;
  584. }
  585. else
  586. {
  587. give_item ( id, "weapon_smokegrenade" );
  588. CurrentWeapon( id );
  589. ColorChat( id, GREEN, "^x01[ ^x04 FurienShop^x01 ]^x03 You Have bought ^x04 Frost Nade!");
  590.  
  591. fcs_set_user_credits( id, iCredits );
  592. return 1;
  593. }
  594. }
  595. case 7:
  596. {
  597. client_cmd( id, "buypet" );
  598. }
  599. }
  600.  
  601. menu_destroy(menu);
  602. return 1;
  603. }
  604.  
  605. public Player_TakeDamage ( iVictim, iInflictor, iAttacker, Float:fDamage, iDamageBits )
  606. {
  607. if( iInflictor == iAttacker && super_knifex2 [ iAttacker ] && is_user_alive( iAttacker ) && get_user_weapon( iAttacker ) == CSW_KNIFE && cs_get_user_team( iAttacker ) == CS_TEAM_T )
  608. {
  609. SetHamParamFloat( 4, fDamage * 2.0);
  610. return HAM_HANDLED;
  611. }
  612. if( iInflictor == iAttacker && super_knifex3 [ iAttacker ] && is_user_alive( iAttacker ) && get_user_weapon( iAttacker ) == CSW_KNIFE && cs_get_user_team( iAttacker ) == CS_TEAM_T )
  613. {
  614. SetHamParamFloat( 4, fDamage * 3.0);
  615. return HAM_HANDLED;
  616. }
  617. if( iInflictor == iAttacker && have_molotov [ iAttacker ] && is_user_alive( iAttacker ) && get_user_weapon( iAttacker ) == CSW_HEGRENADE && cs_get_user_team( iAttacker ) == CS_TEAM_T )
  618. {
  619. SetHamParamFloat( 4, fDamage * 5.0);
  620. return HAM_HANDLED;
  621. }
  622. if( iInflictor == iAttacker && have_molotov [ iAttacker ] && is_user_alive( iAttacker ) && get_user_weapon( iAttacker ) == CSW_HEGRENADE && cs_get_user_team( iAttacker ) == CS_TEAM_CT )
  623. {
  624. SetHamParamFloat( 4, fDamage * 5.0);
  625. return HAM_HANDLED;
  626. }
  627.  
  628. return HAM_IGNORED;
  629. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement